Skip to content

fix(ci): use cargo-zigbuild to lower Linux glibc requirement to 2.28#556

Merged
Hmbown merged 1 commit into
Hmbown:mainfrom
staryxchen:fix/glibc-compat
May 4, 2026
Merged

fix(ci): use cargo-zigbuild to lower Linux glibc requirement to 2.28#556
Hmbown merged 1 commit into
Hmbown:mainfrom
staryxchen:fix/glibc-compat

Conversation

@staryxchen

Copy link
Copy Markdown
Contributor

Summary

Replace cargo build with cargo zigbuild for Linux release binaries, targeting x86_64-unknown-linux-gnu.2.28 and aarch64-unknown-linux-gnu.2.28 so prebuilt binaries run on distributions with glibc ≥ 2.28 instead of requiring glibc ≥ 2.39.

What changed

  • 4 Linux matrix entries: added target_zig field (.2.28 zig target)
  • Build steps: added zig + cargo-zigbuild install (Linux only), conditional build logic
  • Added rust-cache to build job to speed up compilation and cargo-zigbuild install

What didn't change

  • macOS / Windows builds — untouched
  • Asset names — identical
  • npm wrapper — no changes needed
  • glibc coverage table:
Distribution Before (glibc ≥ 2.39) After (glibc ≥ 2.28)
RHEL 8 / CentOS 8 / TencentOS 3
Debian 10 (buster)
Debian 11 (bullseye)
Ubuntu 20.04
Ubuntu 22.04
Ubuntu 24.04

Test plan

  • CI: Release workflow passes on push to fix/glibc-compat (can be triggered via workflow_dispatch on the fork)
  • Verify built Linux x64 binary with readelf -V shows GLIBC_2.28 as the highest required version
  • Smoke test binary on a glibc 2.28 system (e.g. TencentOS 3.2 / CentOS 8 container)

Fixes #555.

🤖 Generated with Claude Code

Replace `cargo build` with `cargo zigbuild` for Linux release binaries,
targeting `x86_64-unknown-linux-gnu.2.28` and `aarch64-unknown-linux-gnu.2.28`
so prebuilt binaries run on distributions with glibc ≥ 2.28 (RHEL 8+, CentOS 8+,
TencentOS 3, Debian 10+, Ubuntu 20.04+) instead of requiring glibc ≥ 2.39.

Fixes Hmbown#555.

Signed-off-by: staryxchen <staryxchen@tencent.com>
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Note

Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported.

@Hmbown

Hmbown commented May 4, 2026

Copy link
Copy Markdown
Owner

great idea - thank you so much - will work to incorporate this

@Hmbown Hmbown added the v0.8.10 Targeting v0.8.10 label May 4, 2026
@Hmbown Hmbown added this to the v0.8.10 milestone May 4, 2026
@Hmbown Hmbown merged commit 41843e6 into Hmbown:main May 4, 2026
8 checks passed
@staryxchen staryxchen deleted the fix/glibc-compat branch May 4, 2026 07:24
@Hmbown Hmbown mentioned this pull request May 4, 2026
4 tasks
Hmbown added a commit that referenced this pull request May 4, 2026
Picks up the v0.8.10 patch release contents:
* Daemon API quartet for whalescale-desktop integration (#561-#564,
  PR #567).
* Bug cluster: macOS seatbelt cargo registry (#558), MCP SIGTERM
  shutdown (#420), Linux PR_SET_PDEATHSIG (#421).
* npm install on older glibc fix (#555/#560 via #556 + #565).
* Shell cwd workspace-boundary validation (#524).
* Memory help/docs polish (#497 via #569).
* Onboarding language picker (#566).
* Whale nicknames interleaved with Simplified Chinese.

First-time contributors credited in CHANGELOG: @staryxchen,
@shentoumengxin, @Vishnu1837, @20bytes.

Workspace `Cargo.toml`, all 9 internal path-dep version pins, and
`npm/deepseek-tui/package.json` all bumped to 0.8.10. `Cargo.lock`
regenerated and committed alongside.

Verified locally:
* cargo fmt --all -- --check
* cargo clippy --workspace --all-targets --all-features --locked -- -D warnings
* cargo test --workspace --all-features --locked
* bash scripts/release/check-versions.sh

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
MMMarcinho pushed a commit to MMMarcinho/DeepSeek-TUI that referenced this pull request May 6, 2026
…mbown#556)

Replace `cargo build` with `cargo zigbuild` for Linux release binaries,
targeting `x86_64-unknown-linux-gnu.2.28` and `aarch64-unknown-linux-gnu.2.28`
so prebuilt binaries run on distributions with glibc ≥ 2.28 (RHEL 8+, CentOS 8+,
TencentOS 3, Debian 10+, Ubuntu 20.04+) instead of requiring glibc ≥ 2.39.

Fixes Hmbown#555.

Signed-off-by: staryxchen <staryxchen@tencent.com>
MMMarcinho pushed a commit to MMMarcinho/DeepSeek-TUI that referenced this pull request May 6, 2026
Picks up the v0.8.10 patch release contents:
* Daemon API quartet for whalescale-desktop integration (Hmbown#561-Hmbown#564,
  PR Hmbown#567).
* Bug cluster: macOS seatbelt cargo registry (Hmbown#558), MCP SIGTERM
  shutdown (Hmbown#420), Linux PR_SET_PDEATHSIG (Hmbown#421).
* npm install on older glibc fix (Hmbown#555/Hmbown#560 via Hmbown#556 + Hmbown#565).
* Shell cwd workspace-boundary validation (Hmbown#524).
* Memory help/docs polish (Hmbown#497 via Hmbown#569).
* Onboarding language picker (Hmbown#566).
* Whale nicknames interleaved with Simplified Chinese.

First-time contributors credited in CHANGELOG: @staryxchen,
@shentoumengxin, @Vishnu1837, @20bytes.

Workspace `Cargo.toml`, all 9 internal path-dep version pins, and
`npm/deepseek-tui/package.json` all bumped to 0.8.10. `Cargo.lock`
regenerated and committed alongside.

Verified locally:
* cargo fmt --all -- --check
* cargo clippy --workspace --all-targets --all-features --locked -- -D warnings
* cargo test --workspace --all-features --locked
* bash scripts/release/check-versions.sh

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

v0.8.10 Targeting v0.8.10

Projects

None yet

Development

Successfully merging this pull request may close these issues.

npm install prebuilt Linux binary fails on older glibc (requires ≥2.39, e.g. CentOS 7/8, RHEL 7/8, TencentOS)

2 participants