From 5b3d6bfe8414561701cad9c098e1084ccd890881 Mon Sep 17 00:00:00 2001 From: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Date: Sat, 16 May 2026 13:50:29 -0700 Subject: [PATCH] fix: statically link prebuilt Linux binaries against musl Fixes #300 --- .github/workflows/release-prebuilt-npm.yml | 4 ++++ scripts/build-bin.ts | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release-prebuilt-npm.yml b/.github/workflows/release-prebuilt-npm.yml index 4aa3accc..eae54bc4 100644 --- a/.github/workflows/release-prebuilt-npm.yml +++ b/.github/workflows/release-prebuilt-npm.yml @@ -34,8 +34,10 @@ jobs: include: - package_name: hunkdiff-linux-arm64 runner: ubuntu-24.04-arm + target_triple: bun-linux-arm64-musl - package_name: hunkdiff-linux-x64 runner: ubuntu-latest + target_triple: bun-linux-x64-musl - package_name: hunkdiff-windows-x64 runner: windows-latest - package_name: hunkdiff-darwin-x64 @@ -55,6 +57,8 @@ jobs: run: bun install --frozen-lockfile - name: Build host artifact + env: + HUNK_TARGET_TRIPLE: ${{ matrix.target_triple }} run: | bun run build:bin bun run ./scripts/build-prebuilt-artifact.ts --expect-package "${{ matrix.package_name }}" diff --git a/scripts/build-bin.ts b/scripts/build-bin.ts index 2158d454..4ad3008d 100644 --- a/scripts/build-bin.ts +++ b/scripts/build-bin.ts @@ -12,8 +12,15 @@ const legacyOutfile = path.join(distDir, process.platform === "win32" ? "otdiff. mkdirSync(distDir, { recursive: true }); rmSync(legacyOutfile, { force: true }); +const buildArgs = ["bun", "build", "--compile"]; +const targetTriple = process.env.HUNK_TARGET_TRIPLE; +if (targetTriple) { + buildArgs.push("--target", targetTriple); +} +buildArgs.push(path.join(repoRoot, "src", "main.tsx"), "--outfile", outfile); + const proc = Bun.spawnSync( - ["bun", "build", "--compile", path.join(repoRoot, "src", "main.tsx"), "--outfile", outfile], + buildArgs, { cwd: repoRoot, stdin: "inherit",