Square Pyramid is released

The Baserock team, and Codethink Limited are proud to announce the third public release of the Baserock system build infrastructure. In this release, Square Pyramid we are pleased to be able to showcase the ability of Baserock to build a system entirely from Git repositories.

What is in Square Pyramid

Square Pyramid is a development release of Baserock. It consists of four VM 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.

What has changed since Secret Volcano?

We updated busybox to a newer release, which fixes vi's $ command. The current time is set by ntpd. We no longer use busybox's less. cmake and valac have been added to allow building new types of software, strace and gdb have been added to aid debugging of programs, and lsof has been added for debugging system problems. rsync has been added, this will make copying disk images between VMs easier.

morph has seen more internal changes.

  • System and Stratum morphologies don't need to be in the same repository any more.
  • Where artifacts are cached to is printed to the terminal, so it's easier to find where built system images are located.
  • The morph build command is now called morph build-morphology.
  • System and Stratum morphologies have been renamed
    • x86_64-generic-base-system is now base-system-x86_64-generic
    • x86_64-generic-devel-system is now devel-system-x86_64-generic
  • Development System images are 2G in size, rather than 10G, since the recommended practise is to add an extra disk for caches anyway.
  • The baserock workflow tools are now considered useful, if not very well documented.
    • morph init $dir creates a workspace
    • When in $dir, morph checkout baserock:baserock/morphs master will check out the master system branch into your workspace.
    • morph branch baserock:baserock/morphs $foo [master] will create a new branch called $foo based off master
    • morph edit $system $stratum $chunk will allow you to make changes to the chunk $chunk in the system.
    • morph build $system will build the system called $system based on the current state of your current system branch
      • Build is pretty cool, as it allows you to build without committing your changes, but since morph needs to build from committed code, it commits in a temporary branch, which means you can see what changed between builds.

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. We're working on several things we hope to showcase later in the year and 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.

Richard Maw (On behalf of the Baserock team)