New issue
Advanced search Search tips

Issue 855791 link

Starred by 9 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , iOS , Chrome , Mac , Fuchsia
Pri: 3
Type: Bug


Sign in to add a comment

Use CIPD gn packages

Project Member Reported by scottmg@chromium.org, Jun 23 2018

Issue description

I'd like to switch to pulling GN from cipd packages.

Dirk and I talked about this for a while. It's a fairly awkward because we want GN pinned for chromium, so it shouldn't live in depot_tools. But there's forwarding scripts in depot_tools that need to find the binary. Additionally, buildtools holds the gn.sha1 files, but DEPS entries in projects (i.e. src.git) are what actually download the binaries.

Here's my summary of the plan:

- remove gn.sha1s from buildtools
- add a DEPS hook in buildtools that will delete stale gn binaries (so that places that are accidentally calling those locations will fail rather than quietly use old gns)
- add a pull of the gn cipd package in src/DEPS into src/third_party/gn
- update depot_tools/gn.py to look in src/third_party/gn before falling back to the old buildtools behaviour (fallback is necessary because depot_tools autoupdates, so until all projects have moved to this way of getting GN they'd otherwise fail).
- update src/tools/mb/mb.py to look in third_party rather than buildtools (it doesn't use the wrapper in depot_tools)

I'm not sure if there's other places that will need to be fixed, but hopefully there's not too many more and we'll notice quickly because the buildtools locations will have been deleted.

I've tested this locally with the old infra/tools/gn cipd package, and I think it should work, so once the gn/gn package exists I'll give this a whirl.
 
Hrm, the paths in buildtools/DEPS aren't relative to buildtools/ in actions.

I can understand why, but it makes them not super-useful I think. (Maybe there's a way to get a relativized path into a variable or something?)
Yeah, it seems that subrepo hooks run in the root projects cwd and the path to them is relative to that also, so I don't think there's really a way to usefully have a hooks in a sub-deps unless all projects happen to have it in the same place (which isn't true for buildtools; Crashpad has it beside "crashpad", rather than inside it).

I think what I'll do then is have chromium src/DEPS delete old versions of gn binaries which will take care of the edge cases for Chromium. Other projects will know that GN has moved when they roll buildtools because the .sha1 files will be gone, and if they are complicated enough to not know if they're directly calling the gn binaries in buildtools rather than using depot_tools's forwarding, then they can also add gn binary cleanups in their DEPS.

Yucky, but oh well.
Status: Started (was: Unconfirmed)
Alright, here's the 3 sided change:

1. https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1112817
2. https://chromium-review.googlesource.com/c/chromium/buildtools/+/1112818
3. https://chromium-review.googlesource.com/c/chromium/src/+/1112840

If we agree this looks OK, then I will land them in that order, depot_tools can be any time, and the buildtools roll will need to be included in the third CL.
Project Member

Comment 4 by bugdroid1@chromium.org, Jun 26 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/depot_tools/+/a991ac69eb052dfbd460459203d4946168622385

commit a991ac69eb052dfbd460459203d4946168622385
Author: Scott Graham <scottmg@chromium.org>
Date: Tue Jun 26 23:19:51 2018

gn: Look in src for gn binaries before trying old buildtools location

Bug: 855791
Change-Id: I964df1a781da4335e9b77192faf7913d3546de13
Reviewed-on: https://chromium-review.googlesource.com/1112817
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>

[modify] https://crrev.com/a991ac69eb052dfbd460459203d4946168622385/gn.py

Project Member

Comment 5 by bugdroid1@chromium.org, Jun 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/buildtools/+/f45682622e92e65482b3568bd15f39d227b5e078

commit f45682622e92e65482b3568bd15f39d227b5e078
Author: Scott Graham <scottmg@chromium.org>
Date: Tue Jun 26 18:43:52 2018

Remove GN from buildtools

GN should be pulled via CIPD in the project now. depot_tools's gn.py
will look in third_party/gn for the binary, for projects that use
depot_tools.

Bug: 855791
Change-Id: I64df23837166cbc8974357ddabbad36ee363d3c2
[delete] https://crrev.com/9c9fd97928dd45a0d9738af90f7c03b082f1216f/win/gn.exe.sha1
[delete] https://crrev.com/9c9fd97928dd45a0d9738af90f7c03b082f1216f/linux64/gn.sha1
[delete] https://crrev.com/9c9fd97928dd45a0d9738af90f7c03b082f1216f/mac/gn.sha1
[modify] https://crrev.com/f45682622e92e65482b3568bd15f39d227b5e078/README.txt
[modify] https://crrev.com/f45682622e92e65482b3568bd15f39d227b5e078/.gitignore

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/981b006d84d3ed95fee1f2aa612b4ddca05c9af3

commit 981b006d84d3ed95fee1f2aa612b4ddca05c9af3
Author: depot-tools-chromium-autoroll <depot-tools-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Wed Jun 27 02:35:03 2018

Roll src/third_party/depot_tools 1d5659c89760..a991ac69eb05 (1 commits)

https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/1d5659c89760..a991ac69eb05


git log 1d5659c89760..a991ac69eb05 --date=short --no-merges --format='%ad %ae %s'
2018-06-26 scottmg@chromium.org gn: Look in src for gn binaries before trying old buildtools location


Created with:
  gclient setdep -r src/third_party/depot_tools@a991ac69eb05

The AutoRoll server is located here: https://depot-tools-chromium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.



BUG=chromium:855791
TBR=agable@chromium.org

Change-Id: Ib04195c40fab284b947011a2c173759ab11d11b6
Reviewed-on: https://chromium-review.googlesource.com/1116081
Reviewed-by: depot-tools-chromium-autoroll <depot-tools-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: depot-tools-chromium-autoroll <depot-tools-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#570640}
[modify] https://crrev.com/981b006d84d3ed95fee1f2aa612b4ddca05c9af3/DEPS

Project Member

Comment 7 by bugdroid1@chromium.org, Jun 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0895c7977a5c312aca132b23a3a9d46f78f77ee4

commit 0895c7977a5c312aca132b23a3a9d46f78f77ee4
Author: Scott Graham <scottmg@chromium.org>
Date: Wed Jun 27 16:10:36 2018

Pull GN via CIPD package

The gn binary will be downloaded into third_party/gn. This CL rolls
buildtools forward to a revision where gn is no longer in buildtools.

Because buildtools has no way to cleanup after itself, add
build/util/gn_cleanup.py to delete the old binaries so that we don't
accidentally depend on them.

Update mb.py to use the new location.

Update explicit location in ios/web_view/BUILD.gn for the new location.

Update explicit location in
tools/traffic_annotation/auditor/traffic_annotation_auditor.cc for the new
location.

Update explicit location in tools/licenses.py with for the new location.

Bug: 855791
Bug:  794764 
Bug: 856883
Bug:  856884 
Bug: 856878
Bug:  856899 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I92c908faf4f868850eafa1b4adf6e7c33c365116
Reviewed-on: https://chromium-review.googlesource.com/1112840
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570792}
[modify] https://crrev.com/0895c7977a5c312aca132b23a3a9d46f78f77ee4/DEPS
[add] https://crrev.com/0895c7977a5c312aca132b23a3a9d46f78f77ee4/build/util/gn_cleanup.py
[modify] https://crrev.com/0895c7977a5c312aca132b23a3a9d46f78f77ee4/ios/web_view/BUILD.gn
[modify] https://crrev.com/0895c7977a5c312aca132b23a3a9d46f78f77ee4/tools/licenses.py
[modify] https://crrev.com/0895c7977a5c312aca132b23a3a9d46f78f77ee4/tools/mb/mb.py
[modify] https://crrev.com/0895c7977a5c312aca132b23a3a9d46f78f77ee4/tools/mb/mb_unittest.py
[modify] https://crrev.com/0895c7977a5c312aca132b23a3a9d46f78f77ee4/tools/traffic_annotation/auditor/traffic_annotation_auditor.cc

Blockedon: 856878
Blockedon: 856883
Blockedon: 856884
Blockedon: 856899
Blockedon: 857107
Project Member

Comment 13 by bugdroid1@chromium.org, Jun 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/35383539aa83f27185a661215773ece946535676

commit 35383539aa83f27185a661215773ece946535676
Author: Scott Graham <scottmg@chromium.org>
Date: Wed Jun 27 16:27:35 2018

Revert "Pull GN via CIPD package"

This reverts commit 0895c7977a5c312aca132b23a3a9d46f78f77ee4.

Reason for revert: Missed a hardcoded gn location: https://crbug.com/857107.

Original change's description:
> Pull GN via CIPD package
> 
> The gn binary will be downloaded into third_party/gn. This CL rolls
> buildtools forward to a revision where gn is no longer in buildtools.
> 
> Because buildtools has no way to cleanup after itself, add
> build/util/gn_cleanup.py to delete the old binaries so that we don't
> accidentally depend on them.
> 
> Update mb.py to use the new location.
> 
> Update explicit location in ios/web_view/BUILD.gn for the new location.
> 
> Update explicit location in
> tools/traffic_annotation/auditor/traffic_annotation_auditor.cc for the new
> location.
> 
> Update explicit location in tools/licenses.py with for the new location.
> 
> Bug: 855791
> Bug:  794764 
> Bug: 856883
> Bug:  856884 
> Bug: 856878
> Bug:  856899 
> Cq-Include-Trybots: luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet
> Change-Id: I92c908faf4f868850eafa1b4adf6e7c33c365116
> Reviewed-on: https://chromium-review.googlesource.com/1112840
> Commit-Queue: Scott Graham <scottmg@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#570792}

TBR=dpranke@chromium.org,scottmg@chromium.org

Change-Id: I89e180710b5ce483106fa3b4ff6e8dec06780c07
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 855791,  794764 , 856883,  856884 , 856878,  856899 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet
Reviewed-on: https://chromium-review.googlesource.com/1117219
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570799}
[modify] https://crrev.com/35383539aa83f27185a661215773ece946535676/DEPS
[delete] https://crrev.com/d0ed5774569fc56f4a0c74affafda8a7ad2a02aa/build/util/gn_cleanup.py
[modify] https://crrev.com/35383539aa83f27185a661215773ece946535676/ios/web_view/BUILD.gn
[modify] https://crrev.com/35383539aa83f27185a661215773ece946535676/tools/licenses.py
[modify] https://crrev.com/35383539aa83f27185a661215773ece946535676/tools/mb/mb.py
[modify] https://crrev.com/35383539aa83f27185a661215773ece946535676/tools/mb/mb_unittest.py
[modify] https://crrev.com/35383539aa83f27185a661215773ece946535676/tools/traffic_annotation/auditor/traffic_annotation_auditor.cc

Blockedon: 857110
Project Member

Comment 15 by bugdroid1@chromium.org, Jun 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/buildtools/+/506ae1c7367053eaa6bc9c8d956c2f6fd765940d

commit 506ae1c7367053eaa6bc9c8d956c2f6fd765940d
Author: Scott Graham <scottmg@chromium.org>
Date: Wed Jun 27 23:16:41 2018

Add gn-has-moved binary in old gn location

Linux and Mac built from moved.c:
-----
 #include <stdio.h>
int main() {
  printf("The gn binary has moved, please re-run `gn gen <your-out-dir>`.\n");
  return 1;
}
-----
$ clang -Os -Wall -Werror -pedantic moved.c -o gn && strip gn

Windows (the above is 130k, this one is 3k):
-----
 #include <Windows.h>
int mainCRTStartup(void) {
  char msg[] =
      "The gn binary has moved, please re-run `gn gen <your-out-dir>`.\n";
  HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE);
  WriteFile(out, msg, sizeof(msg), (DWORD[]){0}, NULL);
  return 1;
}
-----
> cl /Os /Gy /GS- /nologo /DNDEBUG /W4 /WX moved.c /link /opt:ref /opt:icf /nodefaultlib /subsystem:console kernel32.lib /out:gn.exe

Bug: 855791
Change-Id: Idfd9f7d030b29346a02bd2061b5637e4e1443cff
[add] https://crrev.com/506ae1c7367053eaa6bc9c8d956c2f6fd765940d/linux64/gn.sha1
[add] https://crrev.com/506ae1c7367053eaa6bc9c8d956c2f6fd765940d/mac/gn.sha1
[add] https://crrev.com/506ae1c7367053eaa6bc9c8d956c2f6fd765940d/win/gn.exe.sha1

Project Member

Comment 16 by bugdroid1@chromium.org, Jun 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fed0e8ec393c317037a824b63b3e9690b8b0a4fc

commit fed0e8ec393c317037a824b63b3e9690b8b0a4fc
Author: Scott Graham <scottmg@chromium.org>
Date: Thu Jun 28 05:02:14 2018

Pull GN via CIPD package

This is a reland of
https://chromium-review.googlesource.com/c/chromium/src/+/1112840.


The gn binary will be downloaded into third_party/gn. This CL rolls
buildtools forward to a revision where the gn binary is a stub that
prints an error message and returns 1. This is to avoid depending
on the old location, and helping users relying on gn auto regen.

Update mb.py to use the new location.

Update explicit location in ios/web_view/BUILD.gn for the new location.

Update explicit location in
tools/traffic_annotation/auditor/traffic_annotation_auditor.cc for the new
location.

Update explicit location in tools/licenses.py with for the new location.

Update explicit location in testing/libfuzzer/gen_fuzzer_owners.py.

Bug: 855791
Bug: 856883
Bug:  856884 
Bug: 856878
Bug:  856899 
Bug: 857107
Bug:  857110 
Change-Id: Iedaa29161e56cc90beafd802efca3a6c12859c58
Cq-Include-Trybots: luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet
Reviewed-on: https://chromium-review.googlesource.com/1117264
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571031}
[modify] https://crrev.com/fed0e8ec393c317037a824b63b3e9690b8b0a4fc/DEPS
[modify] https://crrev.com/fed0e8ec393c317037a824b63b3e9690b8b0a4fc/ios/web_view/BUILD.gn
[modify] https://crrev.com/fed0e8ec393c317037a824b63b3e9690b8b0a4fc/testing/libfuzzer/gen_fuzzer_owners.py
[modify] https://crrev.com/fed0e8ec393c317037a824b63b3e9690b8b0a4fc/tools/licenses.py
[modify] https://crrev.com/fed0e8ec393c317037a824b63b3e9690b8b0a4fc/tools/mb/mb.py
[modify] https://crrev.com/fed0e8ec393c317037a824b63b3e9690b8b0a4fc/tools/mb/mb_unittest.py
[modify] https://crrev.com/fed0e8ec393c317037a824b63b3e9690b8b0a4fc/tools/traffic_annotation/auditor/traffic_annotation_auditor.cc

Blockedon: v8:7900
This broke building Chrome on Chrome OS. The ebuilds are still looking for gn in buildtools/linux64/gn. I wrote a naive CL that switches this over tothird_party/gn/gn (http://crrev.com/c/1118162) but the new binary is dynamically linked against a library that cannot be found:

/home/bartfab/chrome_root/src/third_party/gn/gn: error while loading shared libraries: libatomic.so.1: cannot open shared object file: No such file or directory

I have two copies of this library, but my Chrome OS foo is not strong enough to know how to pick the right one automatically and how to point the ebuild at it:

/home/bartfab/chrome_root/src/build/linux/debian_sid_i386-sysroot/usr/lib/i386-linux-gnu/libatomic.so.1
/home/bartfab/chrome_root/src/build/linux/debian_sid_amd64-sysroot/usr/lib/x86_64-linux-gnu/libatomic.so.1
Re Comment #18:
That's weird, gn seems to have been using libatomic since https://codereview.chromium.org/2064513002 for reasons I don't understand (and which seem to be unrelated to that CL descritpion :? )

Anyway, when I run ldd third_party/gn/gn in ~/chromium/src, I get:
libatomic.so.1 => /usr/lib/x86_64-linux-gnu/libatomic.so.1 (0x00007f1c0ec46000)

Maybe libatomic.so.1 is missing from the cros_sdk chroot?
But that wouldn't explain why it worked before.
Project Member

Comment 20 by bugdroid1@chromium.org, Jun 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b4a8afc78e0421fcf99c558f57ec7998c6cc9bed

commit b4a8afc78e0421fcf99c558f57ec7998c6cc9bed
Author: Greg Kraynov <kraynov@chromium.org>
Date: Thu Jun 28 13:43:04 2018

GN: gitignore //third_party/gn.

Depot tools download the GN here now.

Bug: 855791
Change-Id: Id2d60230331b90ff97018493892189deed5bbb77
Reviewed-on: https://chromium-review.googlesource.com/1118269
Reviewed-by: agrieve <agrieve@chromium.org>
Commit-Queue: Greg Kraynov <kraynov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571102}
[modify] https://crrev.com/b4a8afc78e0421fcf99c558f57ec7998c6cc9bed/third_party/.gitignore

Project Member

Comment 21 by bugdroid1@chromium.org, Jun 28 2018

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/clank/internal/apps/+/de0bd7a88ceba9686a25547ce288d4f993c4fbf3

commit de0bd7a88ceba9686a25547ce288d4f993c4fbf3
Author: Andrew Grieve <agrieve@chromium.org>
Date: Thu Jun 28 13:59:15 2018

Re #19: I hacked LD_LIBRARY_PATH to make gn find libatomic.so.1. After that, it was missing libpcre.so.3. I added that too - and gn segfaulted while building Chrome.

Buidling Chrome via "emerge-${BOARD}" in the Chrome OS chroot worked until yesterday. It somehow did find its libraries and did not segfault :) before.
The old gn binaries where built in a sysroot. Maybe the new ones aren't yet?
No, those builders aren't using a sysroot. I mistakenly thought if the waterfall was OK then it would be OK.

I will work on getting the GN builders to pull/use a sysroot.
"sid" is OK for "everyone" as far as we know? https://cs.chromium.org/chromium/src/build/linux/sysroot_scripts/sysroots.json?q=build/linux/sysroot_scripts/sysroots.json&sq=package:chromium&dr&l=2 or is anyone aware of targets that need older sysroots?

(I think Crashpad is still using an older "stretch" but I don't really know what the state of things is.)
https://gn.googlesource.com/gn/+/master/build also doesn't pass -mmacosx-version-min from what I can tell, so it'll implicitly require whatever macOS version the gn binary was built on. Probably a good idea to pass in something explicitly.
Cc: thomasanderson@chromium.org
+thomasanderson to confirm, but I'm pretty sure we think sid is okay for everyone now.
https://gn-review.googlesource.com/c/gn/+/1900 makes it build against sid on Linux. It didn't change the output of readelf -d though, so I'm not sure if it will help.
> libatomic.so.1

this one should be easy to get into the CrOS SDK

> it was missing libpcre.so.3

unfortunately, this isn't something we'll be able to easily resolve.  Debian uses a different SONAME from the rest of the distro world (and different from the upstream libpcre project).  it's probably for historical baggage reasons, but they haven't gone back and fixed things.
@vapier - did the older GN binaries not have these dependency? I'm not sure why we would've grown a dependency on pcre that wasn't there before.
Project Member

Comment 32 by bugdroid1@chromium.org, Jun 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8962649114490c145c5cba76fe290752014d6432

commit 8962649114490c145c5cba76fe290752014d6432
Author: Xiaoqian Dai <xdai@chromium.org>
Date: Thu Jun 28 17:07:46 2018

Revert "Pull GN via CIPD package"

This reverts commit fed0e8ec393c317037a824b63b3e9690b8b0a4fc.

Reason for revert: It broke most of the chrome_informational builders at BuildPackages stage. See  crbug.com/857133  for details. 

Original change's description:
> Pull GN via CIPD package
> 
> This is a reland of
> https://chromium-review.googlesource.com/c/chromium/src/+/1112840.
> 
> 
> The gn binary will be downloaded into third_party/gn. This CL rolls
> buildtools forward to a revision where the gn binary is a stub that
> prints an error message and returns 1. This is to avoid depending
> on the old location, and helping users relying on gn auto regen.
> 
> Update mb.py to use the new location.
> 
> Update explicit location in ios/web_view/BUILD.gn for the new location.
> 
> Update explicit location in
> tools/traffic_annotation/auditor/traffic_annotation_auditor.cc for the new
> location.
> 
> Update explicit location in tools/licenses.py with for the new location.
> 
> Update explicit location in testing/libfuzzer/gen_fuzzer_owners.py.
> 
> Bug: 855791
> Bug: 856883
> Bug:  856884 
> Bug: 856878
> Bug:  856899 
> Bug: 857107
> Bug:  857110 
> Change-Id: Iedaa29161e56cc90beafd802efca3a6c12859c58
> Cq-Include-Trybots: luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet
> Reviewed-on: https://chromium-review.googlesource.com/1117264
> Commit-Queue: Scott Graham <scottmg@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#571031}

TBR=dpranke@chromium.org,scottmg@chromium.org

Change-Id: I28962c879b7bc24e809b29427122bb425e9450a5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 855791, 856883,  856884 , 856878,  856899 , 857107,  857110 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet
Reviewed-on: https://chromium-review.googlesource.com/1118825
Reviewed-by: Xiaoqian Dai <xdai@chromium.org>
Commit-Queue: Xiaoqian Dai <xdai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571170}
[modify] https://crrev.com/8962649114490c145c5cba76fe290752014d6432/DEPS
[modify] https://crrev.com/8962649114490c145c5cba76fe290752014d6432/ios/web_view/BUILD.gn
[modify] https://crrev.com/8962649114490c145c5cba76fe290752014d6432/testing/libfuzzer/gen_fuzzer_owners.py
[modify] https://crrev.com/8962649114490c145c5cba76fe290752014d6432/tools/licenses.py
[modify] https://crrev.com/8962649114490c145c5cba76fe290752014d6432/tools/mb/mb.py
[modify] https://crrev.com/8962649114490c145c5cba76fe290752014d6432/tools/mb/mb_unittest.py
[modify] https://crrev.com/8962649114490c145c5cba76fe290752014d6432/tools/traffic_annotation/auditor/traffic_annotation_auditor.cc

> +thomasanderson to confirm, but I'm pretty sure we think sid is okay for everyone now.

It should be fine as long as gn doesn't depend directly on libdbus or libfontconfig
Cc: vapier@chromium.org
@dpranke: seems like it has grown deps it didn't have before

$ gn --version
439377
$ lddtree /usr/bin/gn
/usr/bin/gn (interpreter => /lib64/ld-linux-x86-64.so.2)
    libpthread.so.0 => /lib64/libpthread.so.0
    librt.so.1 => /lib64/librt.so.1
    libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/libstdc++.so.6
        libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/libgcc_s.so.1
    libm.so.6 => /lib64/libm.so.6
    libc.so.6 => /lib64/libc.so.6
    ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2

$ ./buildtools/linux64/gn --version
570036
$ lddtree ./buildtools/linux64/gn
./buildtools/linux64/gn (interpreter => /lib64/ld-linux-x86-64.so.2)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6

$ ./third_party/gn/gn --version
UNKNOWN
$ lddtree ./third_party/gn/gn
./third_party/gn/gn (interpreter => /lib64/ld-linux-x86-64.so.2)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
    ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1
    libatomic.so.1 => /usr/lib/x86_64-linux-gnu/libatomic.so.1
Thanks, I'll make sure the lddtree (TIL!) looks identical before trying again.
https://gn-review.googlesource.com/c/gn/+/1940 makes it closer. It's lost  librt.so.1 but gained ld-linux-x86-64.so.2.

Is that useful, or is ld-linux-x86-64.so.2 a problem?
the ldso (ld-linux-x86-64.so.2) is not a problem at all

it'd be nice to not need libatomic.so.1, but i'm guessing that's coming from the C++ toolchain and C++ atomics.  we'll have to deal with it in CrOS.
OK, thanks!

After https://gn-review.googlesource.com/c/gn/+/1940, lddtree doesn't report depending on libatomic.so.1, so hopefully that won't be a problem? (Maybe I'm misunderstanding that there's a dynamic dependency on that though.)

phosek@ is working on a way to statically link libc++ without needing to build it locally (which I'd rather avoid doing in the gn repo), but said that won't be rolled in from upstream clang for a while. So I'll stick with the linked CL for now, which should hopefully be OK.
the set of libs listed in that CL look fine for pretty much any distro out there.  it's just glibc and gcc libs which are very basic.
Owner: scottmg@chromium.org
As a summary here's a variety of "opportunities to improve": https://docs.google.com/document/d/1a9dFI9wJOWpiExKPJEQY-o8U8Afv0EdPo7e2-iyzJu4/edit?usp=sharing.
Project Member

Comment 42 by bugdroid1@chromium.org, Jun 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f75b418b5679b9f8836ae7bad517dab3c20695ce

commit f75b418b5679b9f8836ae7bad517dab3c20695ce
Author: Scott Graham <scottmg@chromium.org>
Date: Fri Jun 29 14:50:21 2018

Roll src/buildtools/ 9c9fd9792..aec56e260 (3 commits)

https://chromium.googlesource.com/chromium/buildtools.git/+log/9c9fd97928dd..aec56e26079f

$ git log 9c9fd9792..aec56e260 --date=short --no-merges --format='%ad %ae %s'
2018-06-28 scottmg Roll to gn from gn.googlesource.com
2018-06-27 scottmg Add gn-has-moved binary in old gn location
2018-06-26 scottmg Remove GN from buildtools

Bug:  858852 , 855791

Change-Id: Iff22850633eac5a56540d261da6fd52c021e2ba4
Reviewed-on: https://chromium-review.googlesource.com/1119579
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571471}
[modify] https://crrev.com/f75b418b5679b9f8836ae7bad517dab3c20695ce/DEPS

Issue 859475 has been merged into this issue.
Blockedon: 858852
Blockedon: 857504
Blockedon: 859536
Blocking: 862864
Components: Infra
 Issue #504074  has been around for some time already. Might need to be closed since this issue has resolved that.
Components: -Infra Infra>Client>Chrome
re: comment 26 - Using an older sysroot would help for folks on RHEL 6 and other older distros. FWIW, Ninja was built with the Wheezy sysroot. See  bug 762354 .
Blocking: 658104

Sign in to add a comment