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 |