Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 # Linux sysroot images | |
| 2 | |
| 3 The chromium build system for Linux will (by default) use a sysroot image | |
| 4 rather than building against the libraries installed in on the host system. | |
|
binji
2016/03/03 23:54:08
installed on
| |
| 5 This serves several purposes. Firstly, it ensures that binaries will run on all | |
| 6 supported linux systems independent of the packages installed on the build | |
| 7 machine. Secondly, it makes the build more hermetic, preventing issues that | |
| 8 arise for variations amoung developer's systems. | |
|
binji
2016/03/03 23:54:08
developers'
binji
2016/03/03 23:54:08
among
| |
| 9 | |
| 10 The sysroot consists of a minimal installation of Debian/stable (or old-stable) | |
| 11 to ensure maximum compatibility. Pre-built sysroot images are stored in | |
| 12 Google Cloud Storage and downloaded during `gclient runhooks` | |
| 13 | |
| 14 ## Installing the sysroot images | |
| 15 | |
| 16 Installation of the sysroot is performed by | |
| 17 `build/linux/sysroot_scripts/install-sysroot.py`. | |
| 18 | |
| 19 This script can be run manually but is normally run as part of gclient | |
| 20 hooks. When run from hooks this script in a no-op on non-linux platforms. | |
| 21 | |
| 22 ## Rebuilding the sysroot image | |
| 23 | |
| 24 The pre-built sysroot images occasionally needs to be rebuilt. For example, whe n | |
|
binji
2016/03/03 23:54:08
wrap at 80
| |
| 25 security updates to debian are released, or when a new package is needed by | |
| 26 the chromium build. | |
| 27 | |
| 28 ### Rebuilding | |
| 29 | |
| 30 To rebuild the images (without any changes) run the following commands: | |
| 31 | |
| 32 $ cd build/linux/sysroot_scripts | |
| 33 $ ./sysroot-creator-wheezy.sh BuildSysrootAll | |
|
binji
2016/03/03 23:54:08
why wheezy? Are there other Debian images?
| |
| 34 | |
| 35 The above command will rebuild the sysroot for all architectures. To build | |
| 36 just one architecture use `BuildSysroot<arch>`. For example: | |
|
binji
2016/03/03 23:54:08
where do we get the arch list?
| |
| 37 | |
| 38 $ ./sysroot-creator-wheezy.sh BuildSysrootAmd64 | |
| 39 | |
| 40 This command on its own should be a no-op and produce an image identical to | |
| 41 the one on Google Cloud Storage. | |
| 42 | |
| 43 ### Updating existing package list | |
| 44 | |
| 45 To update packages to the latest versions run: | |
| 46 | |
| 47 $ ./sysroot-creator-wheezy.sh UpdatePackageListsAll | |
| 48 | |
| 49 This command will update the package lists that are stored alongside the script. | |
| 50 If not packages have changed then this script will have no effect. | |
|
binji
2016/03/03 23:54:08
s/not/no
| |
| 51 | |
| 52 ### Adding new packages | |
| 53 | |
| 54 To add a new package, edit the `sysroot-creator-wheezy.sh` script and modify | |
| 55 the `DEBIAN_PACKAGES` list, then run the update step above | |
| 56 (`UpdatePackageListsAll`). | |
| 57 | |
| 58 ### Uploading new images | |
| 59 | |
| 60 To upload images to Google Cloud Storage run the following command: | |
| 61 | |
| 62 $ ./sysroot-creator-wheezy.sh UploadSysrootAll <SHA1> | |
| 63 | |
| 64 Here you should use the SHA1 of the git revision at which the images were | |
| 65 created. | |
| 66 | |
| 67 Uploading new images to Google Clound Storage requires write permission on the | |
| 68 `chrome-linux-sysroot` bucket. | |
| 69 | |
| 70 ### Rolling the sysroot version used by chromium | |
| 71 | |
| 72 Once new images have been uploaded the `install-sysroot.py` script needs to be | |
| 73 updated to reference the new versions. This process is manual and involves | |
| 74 updating the `REVISION` and `SHA1SUM` variables in the script | |
|
binji
2016/03/03 23:54:08
period at the end
| |
| OLD | NEW |