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.