Skip to main content

xPack Build Box v3.3 released

· 4 min read

Version 3.3 is a new release; it updates to GCC 11.

The xPack Build Box (XBB) is a build environment intended for reproducible builds.

Supported platforms

XBB supports building binaries for the following platforms:

  • Intel GNU/Linux 64/32-bit
  • Arm GNU/Linux 64/32-bit
  • Intel macOS 64-bit
  • Intel Windows 64/32-bit

Windows binaries are built on GNU/Linux, using mingw-w64.

Compatibility

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:

  • x86/x64 GNU/Linux: Ubuntu 12.04 with GLIBC 2.15; this should provide compatibility with:
    • Ubuntu 12 or later
    • Debian 8 or later
    • RedHat/CentOS 7 later
    • Fedora 20 or later
    • any other distributions using GLIBC 2.15 or higher
  • arm64/arm GNU/Linux: Ubuntu 16.04 with GLIBC 2.23; this should provide compatibility with:
    • Ubuntu 16 or later
    • Debian 9 or later
    • RedHat/CentOS 8 or later
    • Fedora 24 or later
    • any other distributions using GLIBC 2.23 or higher
  • x86/x64 Windows: Windows 7 with the new Universal C Runtime (UCRT)
  • x64 macOS: 10.13; this should provide compatibility with:
    • macOS 10.13 or later
info

The Intel macOS builds use -mmacosx-version-min=10.10, which configures the resulting binaries to run on macOS 10.10 or later; however the toolchain packages (like GCC and clang) require the Command Line Tools to be present in /Library/Developer/CommandLineTools, and this is available only since macOS 10.13; so, except the toolchains, the other binaries may also run on macOS 10.10 or later.

GLIBC version

To find out the GLIBC version on a given GNU/Linux distribution, use:

ldd --version

Tools versions

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.18
  • gawk 5.1.0
  • sed 4.8
  • autoconf 2.71
  • automake 1.16.3
  • make 4.3
  • perl 5.32.0
  • cmake 3.20.6
  • python 3.9.7
  • ninja 1.10.2
  • wine 6.17

For the full list of available tools, see the common-versions-xbb-source.sh file.

GNU/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).

Intel GNU/Linux:

  • ilegeul/ubuntu:amd64-12.04-xbb-v3.3
  • ilegeul/ubuntu:i386-12.04-xbb-v3.3
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ilegeul/ubuntu i386-12.04-xbb-v3.3 35fb0236572c 23 hours ago 5GB
ilegeul/ubuntu amd64-12.04-xbb-v3.3 1c4ba2e7e87e 29 hours ago 5.43GB

For projects that do not require compatibility with systems that old, images based on Ubuntu 18 are also available:

  • ilegeul/ubuntu:amd64-18.04-xbb-v3.3
  • ilegeul/ubuntu:i386-18.04-xbb-v3.3

The images were created on a Debian 10 running on an Intel NUC.

Arm GNU/Linux:

  • ilegeul/ubuntu:arm64v8-16.04-xbb-v3.3
  • ilegeul/ubuntu:arm32v7-16.04-xbb-v3.3
REPOSITORY       TAG                      IMAGE ID       CREATED          SIZE
ilegeul/ubuntu arm32v7-16.04-xbb-v3.3 a0ceaa6dad05 57 minutes ago 3.34GB
ilegeul/ubuntu arm64v8-16.04-xbb-v3.3 1b0b4a94de6d 13 hours ago 3.6GB

For projects that do not require compatibility with systems that old, images based on Ubuntu 18 are also available:

  • ilegeul/ubuntu:arm64v8-18.04-xbb-v3.3
  • ilegeul/ubuntu:arm32v7-18.04-xbb-v3.3

The images were created on a Raspberry Pi OS running on a Raspberry CM4 with 8 GB RAM.

macOS

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 (like ${HOME}/.local/xbb), 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:

  • /Library/Developer/CommandLineTools/usr/bin

TeX

All platforms include an instance of the 2018 TeX Live tools.