I try to build v8 on ubuntu (using docker because I don't have root access on my dev environment).
I try to follow the instruction here https://github.com/v8mips/v8mips/wiki/Get-the-code
I can get the depot_tools
but when I run fetch v8
, I get the following error:
Error: Command '/usr/bin/python v8/third_party/binutils/download.py'
returned non-zero exit status 1 in /home
Traceback (most recent call last):
File "/home/depot_tools/fetch.py", line 300, in <module>
sys.exit(main())
File "/home/depot_tools/fetch.py", line 295, in main
return run(options, spec, root)
File "/home/depot_tools/fetch.py", line 289, in run
return checkout.init()
File "/home/depot_tools/fetch.py", line 132, in init
self.run_gclient(*sync_cmd)
File "/home/depot_tools/fetch.py", line 76, in run_gclient
return self.run(cmd_prefix + cmd, **kwargs)
File "/home/depot_tools/fetch.py", line 66, in run
return subprocess.check_output(cmd, **kwargs)
File "/usr/lib/python2.7/subprocess.py", line 574, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '('gclient', 'sync', '--with_branch_heads')'
returned non-zero exit status 2
Do anyone know what could be the issue? Here is my Dockerfile
:
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -y git
RUN apt-get install -y python
WORKDIR /home
RUN git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
ENV PATH /home/depot_tools:"$PATH"
I then run the docker with docker run -it v8build
(name of the docker image) and run fetch v8
Edit (adding version info):
I've figured out what was the issue and here is the answer. Hopefully, someone would be able to benefit from it.
It turns out you can run fetch -n v8
to see all the commands that will be run. And the commands are as follow:
fetch -n v8
Running: gclient root
Running: gclient config --spec 'solutions = [
{
"url": "https://chromium.googlesource.com/v8/v8.git",
"managed": False,
"name": "v8",
"deps_file": "DEPS",
"custom_deps": {},
},
]
'
Running: gclient sync --with_branch_heads
cd /home/x/v8
Running: git submodule foreach 'git config -f $toplevel/.git/config submodule.$name.ignore all'
Running: git config --add remote.origin.fetch '+refs/tags/*:refs/tags/*'
Running: git config diff.ignoreSubmodules all
The error occurs at gclient sync --with_branch_heads
as described by the error output.
I ran the commands one by one to replicate the process manually so it can print out messages that were hidden by running fetch v8
.
And the error turns out to be that the ubuntu:latest
docker image does not have lbzip2
.
Installing that solves the issue.
Updated Dockerfile
:
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -y git python lbzip2 && apt-get clean
WORKDIR /home
RUN git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
ENV PATH /home/depot_tools:"$PATH"
RUN cd /home && fetch v8
The journey continues...