The xPack Build Box (XBB) is a build environment intended for reproducible builds.
XBB supports building binaries for the following platforms:
- GNU/Linux Intel 64-bit
- GNU/Linux Arm 64/32-bit
- macOS Intel 64-bit
- Windows Intel 64-bit
Windows binaries are built on Linux, using mingw-w64.
To allow the resulting binaries to run on as many existing systems as possible, the XBB build environments are on purpose based on older GNU/Linux and macOS releases:
- GNU/Linux Intel & Arm: Ubuntu 12.04 with GLIBC 2.27; this
should provide compatibility with:
- Ubuntu 18 or later
- Debian 10 or later
- RedHat 8 later
- Fedora 29 or later
- any other distributions using GLIBC 2.15 or higher
- Windows Intel: Windows 7 with the new Universal C Runtime (UCRT)
- macOS Intel: 10.13; this should provide compatibility with macOS 10.13 or later
- macOS Apple Silicon 11.6; this should provide compatibility with macOS 11.6 or later
To find out the GLIBC version on a given GNU/Linux distribution, use:
In version 3.3, the main tools provided by XBB were updated to:
- GCC 11.2.0
- binutils 2.36.1
- mingw-w64 9.0.0
- m4 1.4.19
- gawk 5.1.1
- sed 4.8
- autoconf 2.71
- automake 1.16.5
- make 4.3
- perl 5.34.0
- cmake 3.21.4
- python 3.9.9
- ninja 1.10.2
- wine 6.17
For the full list of available tools, see the common-versions-xbb-source.sh file.
Linux Docker images
On GNU/Linux, the production XBB consists of multiple Docker images, in pairs of 32/64-bit, for each platform and version.
The images are published on Docker Hub (pulling can be done anonymously, pushing requires login).
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ilegeul/ubuntu amd64-18.04-xbb-v3.4 ace5ae2e98e5 4 weeks ago 5.11GB
The images were created on a Debian 10 running on an Intel NUC.
REPOSITORY TAG IMAGE ID CREATED SIZE ilegeul/ubuntu arm64v8-18.04-xbb-v3.4 4e7f14f6c886 3 weeks ago 3.29GB ilegeul/ubuntu arm32v7-18.04-xbb-v3.4 a3718a8e6d0f 3 weeks ago 2.92GB
The arm64v8 image was created on a 64-bit Raspberry Pi OS running on a Raspberry CM4 with 8 GB RAM. The arm32v7 image was built on a 32-bit Raspberry Pi OS with 4 GB RAM.
When running on macOS, the build scripts cannot use Docker, since there
are no macOS Docker images; instead,
a custom set of tools is expected in a specific folder
which includes the same tools as packed in the Docker images.
Command Line Tools
As usual with macOS, the compiler and other development tools are not packed in the base system and need to be installed separately as part of the Command Line Tools package, available from Apple.
The XBB binaries expect the CLT binary tools to be present in a fixed location, which is:
All platforms include an instance of the 2018 TeX Live tools.