On the web: http://wiki.baserock.org/releases/baserock-6/
Baserock 6 is released
The Baserock team, and Codethink Limited are proud to announce the release
of version 6 of the Baserock system. In this release, we are pleased to
showcase fully self-bootstrapped systems.
What is new in this version?
This is a development release of Baserock. It consists of four virtual
machine disk images; base and devel for x86_32 and x86_64. base is a
relatively small system, used as an example target image, and devel is
a system with all the tools required to build itself, plus development
conveniences like text editors and debugging tools. The images are
available on the download page.
What has changed since the previous release?
The biggest change in this release is that a system branch is built with
the toolchain in that system branch, and that this drops the need for
"staging fillers". This makes it easier to make changes to the toolchain
and makes builds more fully traceable and reproducible. There is a new
stratum, build-essential, which contains the toolchain, and some other
fundamental tools. When a system branch is built the first time, the
system branch's version of the toolchain is bootstrapped, and the rest
of the system branch is built using the bootstrapped toolchain. Thanks
to Morph's advanced caching mechanism, if the system branch makes no
changes to the toolchain, the bootstrapping can be safely skipped and
an already built toolchain from another system branch can be re-used.
The other major change is that we're now always building systems as a
tar archive of the root filesystem. Previously, we would build, say, a
raw disk image that could be directly booted as a virtual machine. This
has now been replaced with the new morph deploy mechanism, which deploys
a new system using a built root filesystem tar file. The deployment
mechanism is flexible and will be adapted to all the different kinds of
systems that are needed. It can currently deploy to a raw disk image,
or to a VirtualBox or KVM/libvirt virtual machine.
Minor changes and bugfixes:
* Artifacts are no longer compressed, to save build time.
* Staging areas are now created by combining unpacked chunk artifacts
using hardlink copies ("cp -al"). This speeds up the setup of staging
areas by about two orders of magnitude. linux-user-chroot is used
to protect the chunks from modification.
* System branches can now be tagged for releases.
* Morph now automatically uses ccache when it is safe to do so.
* We have added support for morphology files in the YAML format. JSON
still works in this release but is deprecated and will be removed
in a future release of Baserock.
How do I get started?
You can find a quick start guide on the Baserock wiki and also a short
guide on developing with Baserock which follows on from the quick start
and shows you how to get to the point of proving you can build Baserock
>From that point on, your imagination is the limit. You can follow some
of that development in the Git repositories we publish.
How do I get in contact?
The Baserock project has an IRC channel and mailing list for developers
to gather and discuss anything associated with Baserock. It is strongly
recommended that you use the IRC and lists to contact the team for
anything associated with the public development of Baserock. We also
have a mailing list for announcements which will be notified of any new
releases or big developments in Baserock.
Should you manage to find a bug in Baserock, we'd like to hear from
you. You can find our bug reporting guidelines on the Baserock wiki and
we will do our best to help.
We hope you enjoy experimenting with Baserock and look forward to hearing
about any cool things you do with our work.
We will release Baserock 6 on Friday 22nd March.
In preparation for this, major changes have been merged that remove the
need for staging fillers when building. Baserock users who are building
from 'master' should be aware of the following points:
* Building with a staging filler is not supported and is likely to cause
failure when building 'master' of baserock:baserock/morphs.
* Versions of Morph older than commit
13cded5a796889c748e60ffa17fc92bad592bf39 cannot build 'master' of
* Some of the morphologies are now written in YAML. However, to ensure
that Baserock 6 can be built by the previous release of Baserock
(water-bomb) with the newer version of Morph, we do not want to require
support for YAML morphologies yet. To this end, the YAML morphologies
are named 'xx.morph.yaml' and have JSON counterparts named 'xx.morph',
which are generated automatically using the 'scripts/edit-morph' tool
found in the Morph source-tree, as follows:
scripts/edit-morph to-json foo.morph.yaml
Both versions are committed to git, but you should only edit the YAML
versions, which allow comments and more flexible embedding of shell
There are several benefits to the removal of staging fillers, will be
covered in more detail in the release notes for Baserock 6.
Sam Thursfield (on behalf of the Baserock team)