[prebuilt] Update GN to version 547759

Changelog:
8ca5c09bb15f [gn] Updating args --list to emit json
e65dd61a5fea Fix gn bootstrap
c89b8fabf7a9 Fix gn bootstrap
dcba727e7e8b GN: Don't crash when mutating the list in a foreach.
3325da9a7b57 GN: Correct Git Bash removal of leading "/" of "//" labels
36773f30d944 Improved GN code related to resolving paths.
1252d9cdc7a7 gn clean: Don't delete and recreate the build directory.
2caa6c11ddb3 Update GN docs.
6783e46fa01a Correct off-by-one in `Tokenizer::CanIncrement`.
1bcad90daf3d GN: Force normal subprocess task priority on Windows
a3ec9fb724c0 GN: Fix Mac bootstrap compile error
bbc17a396560 GN: Make sure print function flushes stdout to avoid output
delays caused by buffered pipes.
99637d39f360 Remove reference to deleted sequenced_worker_pool
4416579b311c Rename buildflag_header targets in base for consistency
cf54d20bfce0 gn: Write no stamp files for action inputs.
00eba1868282 Fix gn reference in build.ninja after bootstrapping

Change-Id: I39d7a163e8e714f560f6615de4dfb80370efee7d
1 file changed
tree: aaf04101d01d99735360367094b1d1ce98072ea4
  1. manifest/
  2. .cipd_version
  3. .gitignore
  4. AUTHORS
  5. cipd
  6. download.sh
  7. exec_tool.sh
  8. fuchsia.ensure
  9. gn
  10. go
  11. godepfile
  12. LICENSE
  13. ninja
  14. PATENTS
  15. README.md
  16. update.sh
  17. vars.sh
README.md

Fuchsia Build Tools

This repository contains the hashes of a number of prebuilt tools that are used to build Fuchsia-related projects. The actual tools themselves are located in Google Storage.

In most cases, the jiri tool will download the build tools automatically during its update step. To download the tools manually, run update.sh.

Uploading a tool

NOTE: These instructions are for Googlers only.

Installing gsutil

The tarballs are uploaded with the “gsutil” program. See https://cloud.google.com/storage/docs/gsutil

There's a link there to download and install the Google Cloud SDK: https://cloud.google.com/sdk/docs/

After installing the SDK you need to initialize/authenticate: https://cloud.google.com/storage/docs/gsutil_install#authenticate

One of the steps will ask you for a cloud project. Choose loas-fuchsia-team.

At this point you can use gsutil to upload/download tarballs, view cloud directory contents, and so on.

Tarballs

Tarballs must have the tool name as the top level directory. E.g.,

bash$ tar tvf qemu.tar.bz2
drwxr-xr-x ... qemu/
drwxr-xr-x ... qemu/libexec/
...

The uploaded file name is the sha1 hash of the tarball. It could also be a sha1 hash of the tarball contents, avoiding unnecessary spurious differences in uploads.

To compute the latter, one can do something like:

bash$ LC_ALL=POSIX cat $(find qemu/ -type f | sort) | shasum -a1

The sha1 hash is checked into the buildtools repo and supports adding new tarballs or rolling back to a previous one. See the *.sha1 files in buildtools/{mac,linux64}.

There are separate directories for mac and linux tarballs. E.g.,

bash$ ./bin/gsutil ls gs://fuchsia-build/fuchsia/qemu/mac
gs://fuchsia-build/fuchsia/qemu/mac/
gs://fuchsia-build/fuchsia/qemu/mac/10d77d7df5b39440148ac3aab1a401ff42337a76
...
bash$ ./bin/gsutil ls gs://fuchsia-build/fuchsia/qemu/linux64
gs://fuchsia-build/fuchsia/qemu/linux64/
gs://fuchsia-build/fuchsia/qemu/linux64/10d77d7df5b39440148ac3aab1a401ff42337a76
...