Date: 2013-03-22

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 within 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.