Opened on 01/15/2018 at 06:27:14 AM
Closed on 01/19/2018 at 07:05:45 AM
#6264 closed defect (fixed)
Can't prepare libadblockplus dependencies
Reported by: | asmirnov | Assignee: | |
---|---|---|---|
Priority: | P2 | Milestone: | |
Module: | Adblock-Plus-for-Chromium | Keywords: | |
Cc: | sergz | Blocked By: | #6263 |
Blocking: | #6286 | Platform: | Unknown / Cross platform |
Ready: | no | Confidential: | no |
Tester: | Unknown | Verified working: | no |
Review URL(s): |
Description
Environment
We use ensure_dependencies.py script to prepare libadblockplus deps. However for linking with Chromium's V8 we have to use Chromium's revisions of libadblockplus deps. So third_party directory subdirectories are mostly replaced by prepare_dependencies.py script (https://gitlab.com/adblockplus/chromium/blob/abp/third_party/libadblockplus/prepare_dependencies.py) that is called as gclient sync hook (see https://gitlab.com/adblockplus/chromium/blob/abp/DEPS#L1245).
However after the deps are prepared next invocation of gclient sync fails:
Running hooks: 53% (35/65) libadblockplus_ensure_dependencies ________ running '/usr/bin/python src/third_party/libadblockplus/ensure_dependencies.py' in '/media/dominik/USB/chromium' INFO: Revision 9a4991959e231351e52266b631cbd36f8341bdc3 is unknown, downloading remote changes Traceback (most recent call last): File "src/third_party/libadblockplus/ensure_dependencies.py", line 380, in <module> resolve_deps(repo) File "src/third_party/libadblockplus/ensure_dependencies.py", line 324, in resolve_deps update_repo(target, vcs, rev) File "src/third_party/libadblockplus/ensure_dependencies.py", line 286, in update_repo raise Exception('Failed to resolve revision %s' % revision) Exception: Failed to resolve revision 9a4991959e231351e52266b631cbd36f8341bdc3 Error: Command '/usr/bin/python src/third_party/libadblockplus/ensure_dependencies.py' returned non-zero exit status 1 in /media/dominik/USB/chromium Hook '/usr/bin/python src/third_party/libadblockplus/ensure_dependencies.py' took 865.91 secs
At that particular case the problem is that V8 is copied including .git directory and it's not our repository v8-googlesource but https://chromium.googlesource.com/v8/v8.git. So ensure_dependencies.py tries to find revision
9a4991959e231351e52266b631cbd36f8341bdc3 in https://chromium.googlesource.com/v8/v8.git and obviously fails.
This could be fixed with just deleting src/third_party/libadblockplus/third_party as the simplest workaround, but it would be great to avoid any manual actions and make the thing just working out-of-box.
How to reproduce
- Run gclient sync and wait for it to finish
- Run gclient sync again
- See the error above
Observed behaviour
Fails to ensure dependencies
Expected behaviour
libadblockplus dependencies are prepared without any failures
Attachments (0)
Change History (7)
comment:1 Changed on 01/16/2018 at 05:40:40 AM by asmirnov
- Review URL(s) modified (diff)
- Status changed from new to reviewing
comment:2 Changed on 01/16/2018 at 09:08:46 AM by asmirnov
- Blocking 6273 added
comment:3 Changed on 01/16/2018 at 09:09:01 AM by asmirnov
- Blocking 6273 removed
comment:4 in reply to: ↑ description ; follow-up: ↓ 5 Changed on 01/16/2018 at 11:03:36 AM by sergz
- Cc sergz added
comment:5 in reply to: ↑ 4 Changed on 01/16/2018 at 11:13:31 AM by asmirnov
Replying to sergz:
Could you please specify in the issue description what repositories are replaced in libadblockplus/third_party and why? In particular in order to build libadblockplus with another version of V8 there is no reason to put it into libadblockplus/third_party because one can specify the path to V8 headers in the environment variable.
- v8 https://gitlab.com/adblockplus/chromium/blob/abp/third_party/libadblockplus/prepare_dependencies.py#L51
- v8/base/trace_event/common https://gitlab.com/adblockplus/chromium/blob/abp/third_party/libadblockplus/prepare_dependencies.py#L59
- v8/build https://gitlab.com/adblockplus/chromium/blob/abp/third_party/libadblockplus/prepare_dependencies.py#L64
- v8/tools/gyp https://gitlab.com/adblockplus/chromium/blob/abp/third_party/libadblockplus/prepare_dependencies.py#L78
- v8/tools/clang https://gitlab.com/adblockplus/chromium/blob/abp/third_party/libadblockplus/prepare_dependencies.py#L83
- v8/third_party/icu https://gitlab.com/adblockplus/chromium/blob/abp/third_party/libadblockplus/prepare_dependencies.py#L88
- v8/third_party/jinja2 https://gitlab.com/adblockplus/chromium/blob/abp/third_party/libadblockplus/prepare_dependencies.py#L93
- v8/third_party/markupsafe https://gitlab.com/adblockplus/chromium/blob/abp/third_party/libadblockplus/prepare_dependencies.py#L98
comment:6 Changed on 01/18/2018 at 08:44:39 AM by asmirnov
- Blocking 6286 added
comment:7 Changed on 01/19/2018 at 07:05:45 AM by asmirnov
- Resolution set to fixed
- Status changed from reviewing to closed
Replying to asmirnov:
Could you please specify in the issue description what repositories are replaced in libadblockplus/third_party and why? In particular in order to build libadblockplus with another version of V8 there is no reason to put it into libadblockplus/third_party because one can specify the path to V8 headers in the environment variable.