From e0179e24465c183ab1cf607e936479d5ea5f61ae Mon Sep 17 00:00:00 2001 From: Raphael Date: Sat, 24 Oct 2026 22:26:50 +0200 Subject: [PATCH] Build Linux release as static musl binary The Linux release was built for x86_64-unknown-linux-gnu on ubuntu-latest (Ubuntu 24.04, glibc 2.39), so the dynamically-linked binary refused to run on distros with older glibc (e.g. Debian 12 at glibc 2.36). See #16. Switch the Linux target to x86_64-unknown-linux-musl to produce a fully static binary with no glibc floor. This is painless here because ureq uses rustls (not OpenSSL) and flate2 uses the pure-Rust backend, so glibc was the only runtime dynamic dependency. Co-Authored-By: Claude Opus 4.8 --- .github/workflows/release.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0ab9445..95264d8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,7 +15,7 @@ jobs: matrix: include: - os: ubuntu-latest - target: x86_64-unknown-linux-gnu + target: x86_64-unknown-linux-musl asset: codezero-linux-x86_64 - os: macos-latest target: x86_64-apple-darwin @@ -39,6 +39,10 @@ jobs: with: key: ${{ matrix.target }} + - name: Install musl tools + if: matrix.target == 'x86_64-unknown-linux-musl' + run: sudo apt-get update && sudo apt-get install -y musl-tools + - name: Build run: cargo build --release --target ${{ matrix.target }}