blob: 2f34585fd1e32e0eb9206aaa83fc083e1221ae2f [file] [log] [blame] [view]
# 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.
TODO: These instructions are out of date. Use CIPD for everything.
### 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
...
```