Growing Our Build Farm

Andreas Enge — November 10, 2016

We have received our new server for continuous builds of the GNU Guix system, and are putting the finishing touches on its installation. The machine is intended as an eventual replacement for hydra.gnu.org, a virtual machine kindly hosted by the FSF. The new machine will drive our build farm, which continuously compiles the GNU system, and it will feed the mirror with binary packages, so that end users who do not wish to compile packages by themselves can easily keep up-to-date. Time to report on the adventure! This first part covers the hardware.

Buying the new machine has been made possible through a very generous donation by Igalia to Guix Europe. Igalia is a free software consultancy well known for its involvement in the development of the GNOME stack, GStreamer, the JavaScript compilers of Web browsers, and more, promoting values close to the GNU Guix project. It is heartening that the company is helping us towards our goal of creating a free system that liberates its users to take their computing and data processing needs into their own hands!

Of course, we wanted to buy the best for the money — but it turned out the best did not exist yet! Our goal was a system that would be as free as possible, starting from the BIOS, without backdoors of one kind or another; of course it also needed to be powerful enough to pilot our build farm, which is expected to grow with an ever increasing number of packages and maybe new architectures. The Libreboot project provides a free BIOS, which was in the process of being ported to the ASUS KGPE-D16 mainboard. Timothy Pearson from the Coreboot project (on which Libreboot is based) worked hard to make the port a reality. We bought the machine from Thomas Umbach, owner of VIKINGS, a company selling complete servers based on this board and planning to provide hosting services on this platform. Thomas made us a very generous offer of only billing the parts, so we are grateful to VIKINGS as a second sponsor for this machine; independently, the close interaction with Thomas and his fast and helpful replies to our questions meant a very pleasant experience for a first-time buyer of a server machine! Hopefully, this will not be the last time either.

The machine arrived carefully packaged in styrofoam and cardboard packaging with a power cable and the rails for mounting it in the rack of the hosting facility (for the time being, however, it is still sitting on a Moroccan pouffe in my living room, waiting for its installation to be finished). It is 1U high to save hosting fees. At the front, two USB ports, a power and a reset button. At the back, more USB ports, Ethernet ports, a VGA and a serial port; apart from the latter, it does not look more exotic than my laptop.

Interior of the server. The interior looks very tidy to my untrained eyes. This is not only a good sign for the vendor's professionalism, but according to Thomas also a necessity for ensuring sufficient air flow in the 1U case! This air flow is created by the array of five case fans on the right, in their orange housing. At the left, one can distinguish the two processors. We opted for the AMD Opteron 6262HE, which is free of backdoors to the best of our knowledge and power saving. Each of the processors has 16 cores, which should be amply enough for our needs (remember that the compilation of packages will take place on the build farm and not on this machine). Actually, only the processor fans and their big copper heatpipes are visible. There are 16 slots for memory, of which only four are used so far, each with a 16GB module for 64GB of total RAM — I do not think we will need to make use of our extension possibilities any time soon! Two hard disks of 4TB each are hidden under the metal cover to the right.

So the hardware looks very neat, and in the next installment, we will have a look at the installation of GuixSD on it.

Thanks again to all who made this adventure possible through their hard work and dedication, in particular Igalia, Thomas of VIKINGS, and Timothy of Coreboot and Raptor Engineering!

About GNU Guix

GNU Guix is a transactional package manager for the GNU system. The Guix System Distribution or GuixSD is an advanced distribution of the GNU system that relies on GNU Guix and respects the user's freedom.

In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. Guix uses low-level mechanisms from the Nix package manager, except that packages are defined as native Guile modules, using extensions to the Scheme language. GuixSD offers a declarative approach to operating system configuration management, and is highly customizable and hackable.

GuixSD can be used on an i686 or x86_64 machine. It is also possible to use Guix on top of an already installed GNU/Linux system, including on mips64el and armv7.