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):

https://codereview.adblockplus.org/29670555/

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

  1. Run gclient sync and wait for it to finish
  2. Run gclient sync again
  3. 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: Changed on 01/16/2018 at 11:03:36 AM by sergz

  • Cc sergz added

Replying to asmirnov:

... 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 ...

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.

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

Add Comment

Modify Ticket

Change Properties
Action
as closed .
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from (none).
 
Note: See TracTickets for help on using tickets.