diff options
authorSam Thursfield <>2017-10-26 12:17:04 +0000
committerSam Thursfield <>2017-10-26 16:58:44 +0000
commitcaf42036e490ff930d084f9218a37cad8f6c3e69 (patch)
parentf9fafe8f8dc62ea82efa3c1fd3982f7a65817aa5 (diff)
downloaddefinitions-caf42036e490ff930d084f9218a37cad8f6c3e69.tar.gz Add instructions on how to release sysroots
1 files changed, 59 insertions, 0 deletions
diff --git a/ b/
index 67e86f43..ca8ac0a5 100644
--- a/
+++ b/
@@ -50,3 +50,62 @@ to be manually dealt with.
files to support many platforms, but it's not easy to automatically achieve
this in places like linux.bst where Baserock currently has many different
+Bootstrap sysroots
+BuildStream requires an initial set of sysroot binaries to "seed" its build
+sandbox. We produce suitable binaries using the `bootstrap/stage3-sysroot.bst`
+element, and host them at <>. These are
+then pulled by the `gnu-toolchain/base.bst` element.
+I expect that the sysroot binaries will rarely need to change as they are only
+used to bootstrap the `gnu-toolchain.bst` stack, and that stack is then used to
+build everything else. However there will occasionally need to be updates; the
+process is documented below.
+There are also detailed instructions on how to produce binaries for new platforms
+The release process needs to be done for each supported architecture. To get an
+idea of what we consider supported, look in `gnu-toolchain/base.bst`. Where you
+see `$arch` in these instructions, substitute the corresponding Baserock
+architecture name for the current platform.
+ 1. Build and checkout the sysroot binaries:
+ bst build bootstrap/stage3-sysroot.bst`
+ bst checkout bootstrap/stage3-sysroot.bst ./sysroot
+ 2. Add the provenance metadata:
+ scripts/baserock-release-metadata > ./sysroot/metadata
+ 4. Clone the releases OSTree repo locally.
+ ostree init --repo=releases --mode=archive-z2
+ ostree remote add --repo=releases \
+ origin --no-gpg-verify
+ ostree pull --repo=releases origin stage3-sysroot/$arch
+ 5. Commit the binaries to the correct branch.
+ cd sysroot
+ ostree commit --repo=../releases \
+ --branch=stage3-sysroot/$arch \
+ ./*
+ cd -
+ 6. Push to the releases repo. You will need an SSH key that is authorized to
+ connect as -- contact if
+ you need access. You will also need to have installed our version of
+ [ostree-push](
+ ostree-push --repo=./releases \
+ ssh:// stage3-sysroot/$arch
+Once this is done you can update `base.bst` to pull in the new version of the
+binaries (the `bst track` command can help with this).
+In future we should would GPG sign the release binaries, and we would automate
+the whole process in GitLab CI.