Skip to main content

The xPack Build Box history

The project was initiated in January 2018 to address the need for a development environment capable of building the cross toolchains (Arm and RISC-V) in order to integrate them into the GNU ARM Eclipse plug-ins.

Previously, building binaries was necessary for openocd (2014), qemu (2015), and the RISC-V toolchain (2017).

The initial XBB release, version 1, drew inspiration from the Holy Build Box.

This initial (naive) approach utilised a Mac Mini for all builds; the macOS binaries were built with Homebrew and the GNU/Linux binaries were built with CentOS 6 Docker containers.

Aside the modest performance of the Mac Mini at the time, the main issue was a Docker bug, probably a memory leak in the code that handled the file system, which caused the build to fail after a few hours.

March 2019

In March 2019, version 2 of XBB was released, incorporating a major rework.

June 2019

In June 2019, a dedicated Intel NUC NUC8i7BEH was installed (named xbbli) to build the x64 GNU/Linux and Windows binaries.

The macOS binaries were built on an old MacBook Pro 2011, running macOS 10.13 (named xbbmi). It was used until 2022, when the GPU died.

January 2020

In January 2020, version 3.0 of XBB introduced an upgrade to Ubuntu 12 for x64 and Ubuntu 16 for Arm.

The build process was divided into two steps, beginning with a bootstrap phase that included essential tools required to build the final tools.

The first machine used to build the Arm binaries was a Radxa ROCK 4A (named xbbla). It was preferred over the Raspberry Pi because it advertised more cores and support for NVMe SSD. Unfortunately, the performance was disappointing, and the quality of the operating system was not up to the task.

September 2021

The NUC was a nice machine, but it was definitely not designed for continuous use over multiple hours, as required by the toolchain builds. The fan began to creak and eventually failed.

After some research, it was determined that the case was thermally inadequate for the task. With some mechanical tweaks, a large heat sink was fitted to the CPU, with a Noctua fan on top.

This resolved the thermal issues permanently, and the machine was able to run continuously at full speed without throttling down.

November 2021

In November 2021, thanks to the generous open source program from MacStadium, a Mac Mini M1 (named xbbma) was added to the build farm to build the arm64 macOS binaries.

August 2022

In August 2022, the ROCK 4A was replaced with a pair of Raspberry Pi 4 machines, one with 8 GB running the 64-bit variant of the Raspbian OS (named xbbla), and one with 4 GB running the 32-bit variant of the Raspbian OS (named xbbla32).

An early picture during the experimental phase:

Also in August 2022, after the MacBook Pro died, a new machine was added to the build farm: a Gigabyte B550M DS3H motherboard with an AMD Ryzen 5 5600G and 32 GB of RAM (named xbbli).

This also freed the NUC, and allowed the installation of a Nucintosh running macOS 10.14, to take over the tasks of the defunct MacBook Pro (named xbbmi).

January 2023

The complexity of the custom builds increased to the point where the entire project became difficult to manage, taking days to complete.

The solution was to migrate all tools to binary xpm packages. This was accomplished in two steps. In the intermediate version 4.0, all tools were packaged as binary xpm packages, known as the The xPack XBB Bootstrap. The base XBB environment was simplified to standard Docker images or macOS systems.

The next step, version 5.0.0, upgraded the environment to Ubuntu 18.

The v5.0.0 release represents a major milestone for the xPack project, since it is the first self-sustained release, which allows new binary xpm packages to be built using previous packages, without requiring any custom Docker images, or other compiled tools.

September 2023

In September 2023, the Raspberry Pi machines were equipped with heat sinks and Noctua fans, to ensure they never throttle back even under very heavy loads, and were installed in a custom-made rack:

Both were upgraded with 500 GB T7 Samsung USB SSDs.

At the same time the NUC used for the x64 macOS builds was installed in the same rack:

November 2023

In November 2023, using the new Oracle Ampere virtual servers, a new machine was added to the build farm (named ampere). With 4 cores, 24 GB RAM and 200 GB disk, it is many times faster than the Raspberry Pi 4 machines, and it took over the task of running the development builds for the arm64 GNU/Linux binaries.

February 2025

In February 2025, version v6.0.0 was released, upgrading the environment to Debian 10 and macOS 11.0.

Support for Arm 32-bit was dropped, and the Raspberry Pi 4 machines were retired, all arm64 GNU/Linux builds being taken over by the Oracle Ampere machine.

The foreseeable future

The next step is planned for 2027, possibly with an upgrade to Debian 11.