From 8f533cd7dbf74d6884b8cf0eee6c4040f5cd723a Mon Sep 17 00:00:00 2001 From: Vincent Taverna Date: Wed, 29 Jul 2026 22:32:51 +0000 Subject: [PATCH] fix(release): pin glibc for linux release builds to match distroless runtime Build the *-unknown-linux-gnu binaries inside rust:1.92-slim-bookworm (glibc 2.36) instead of bare ubuntu-24.04 (glibc 2.39), so they run on the distroless/cc-debian12 runtime and on older systems npm users have. The rust slim image lacks git, so the container legs install it before checkout. Verified locally: the binary requires <=GLIBC_2.34 and runs under distroless/cc-debian12:nonroot. Bumps bulltui 0.2.0 -> 0.2.1. --- .github/workflows/release.yml | 8 ++++++++ npm/bulltui/CHANGELOG.md | 6 ++++++ npm/bulltui/package.json | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 17ae12a..cfe1eb0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,12 +27,20 @@ jobs: target: x86_64-unknown-linux-gnu bin: bulltui npm-pkg: bulltui-linux-x64 + # Pin glibc to distroless/cc-debian12 (2.36); bare ubuntu-24.04 links 2.39. + container: rust:1.92-slim-bookworm - os: ubuntu-24.04-arm target: aarch64-unknown-linux-gnu bin: bulltui npm-pkg: bulltui-linux-arm64 + container: rust:1.92-slim-bookworm runs-on: ${{ matrix.os }} + container: ${{ matrix.container || '' }} # empty = no container (macOS legs) steps: + # rust:*-slim-bookworm has no git; without it checkout falls back to a tarball. + - name: Install git (container legs) + if: matrix.container + run: apt-get update && apt-get install -y --no-install-recommends git - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@stable with: diff --git a/npm/bulltui/CHANGELOG.md b/npm/bulltui/CHANGELOG.md index 601a95b..3acdd7d 100644 --- a/npm/bulltui/CHANGELOG.md +++ b/npm/bulltui/CHANGELOG.md @@ -1,5 +1,11 @@ # bulltui +## 0.2.1 + +### Patch Changes + +- fix release ABI mismatch: build the Linux gnu binaries inside `rust:1.92-slim-bookworm` so their glibc matches the `distroless/cc-debian12` runtime. v0.2.0 was built on bare `ubuntu-24.04` (glibc 2.39) and failed at container/CLI start with `GLIBC_2.39 not found`. + ## 0.2.0 ### Minor Changes diff --git a/npm/bulltui/package.json b/npm/bulltui/package.json index 1ea1b30..e4022c3 100644 --- a/npm/bulltui/package.json +++ b/npm/bulltui/package.json @@ -1,6 +1,6 @@ { "name": "bulltui", - "version": "0.2.0", + "version": "0.2.1", "description": "A fast, keyboard-driven terminal UI for BullMQ", "homepage": "https://tangled.sh/@vinnymac.dev/bulltui", "repository": { -- 2.51.2