We ought to be able to reproduce the Baserock 6 and Baserock 7 releases, since they were after we include the version of morph used in the metadata.
However download.baserock.org no longer contains those images, and my approach for testing reproducibility is to take an existing system artifact, boot that, use morph branch-from-image to get a workspace, and then build the system.
An alternative approach would be to take a different system, mount the disk image, work out which version of morph to use, then use branch-from-image, telling it to use the baserock directory in the chroot.
Baserock 8
Baserock 8 was built with temporary build branches, but the
baserock/release/baserock-8 branch, so instead of using morph
branch-from-image
we can check that branch out instead.
It is old, so rather than running morph build
devel-system-x86_64-generic.morph
, you need to run morph build
devel-system-x86_64-generic
.
Baserock 9
Baserock 9 was built without temporary build branches messing things up.
morph branch-from-image baserock:baserock/morphs
baserock/release/baserock-9
is still required to do the checkout.
You still need to strip the .morph of the end of the morphology name,
and you may also encounter the warning about disk space availability.
Setting --cachedir-min-space=0 --tempdir-min-space=0
will shut it up,
but you should probably increase the disk size instead.
Baserock 10
The Baserock 10 release had artifacts that used temporary build branches,
so morph checkout baserock:baserock/morphs baserock/release/baserock-10
had to be used.
Using OpenStack
By this point, it was obvious that this needed to be tested in parallel, so the remaining images were modified so they would boot in OpenStack.
This is not sufficient to make them nice images, as they do not have
cloud-init. So you need to log in via the console, set up ssh keys,
and resize the disk image with btrfs filesystem resize max /
.
Baserock 11
By Baserock 11, morph branch-from-image
learned to get more from the
/baserock metadata, so it no longer needed to be told which repo/ref to
start from.
Since Baserock 11 wasn't built from a temporary build branch, it is
possible to use morph branch-from-image $BRANCH
to get a branch you
can build in.
It still needs to have the .morph stripped from the system name.
Baserock 12
As before, but branch-from-image spews a lot of output to the terminal.
Baserock 13
As before, but now it may include the .morph in the filename.
Baserock 14.20
This does not boot cleanly, since /etc/fstab hard-codes /dev/sda. Fixing the fstab and rebooting appears to work.
branch-from-image is broken. This is because the deployment config is now included in /baserock. Removing /baserock/deployment.meta makes it work again, but would break upgrades.
For this reason, this release must be built with morph checkout
baserock:baserock/definitions baserock-14.20
.
Baserock 14.22
The fstab is also broken for OpenStack here.
branch-from-image is also broken.
Checkout with morph checkout baserock:baserock/definitions
baserock-14.22
Baserock 14.23
The fstab is also broken for OpenStack here.
branch-from-image is also broken.
Checkout with morph checkout baserock:baserock/definitions
baserock-14.23
Baserock 14.24
The fstab is not broken from now onwards.
branch-from-image is still broken.
Checkout with morph checkout baserock:baserock/definitions
baserock-14.24
Baserock 14.26
branch-from-image is still broken.
Checkout with morph checkout baserock:baserock/definitions
baserock-14.26
Baserock 14.28
branch-from-image is still broken.
Checkout with morph checkout baserock:baserock/definitions
baserock-14.28
, or remove /baserock/deployment.meta.
Baserock 14.29
branch-from-image is still broken.
Checkout with morph checkout baserock:baserock/definitions
baserock-14.29
, or remove /baserock/deployment.meta.