Skip to content

Build ARM64 musl release in Alpine#2

Closed
frankmanzhu wants to merge 3 commits into
mainfrom
alpine-arm64-musl-packaging
Closed

Build ARM64 musl release in Alpine#2
frankmanzhu wants to merge 3 commits into
mainfrom
alpine-arm64-musl-packaging

Conversation

@frankmanzhu

@frankmanzhu frankmanzhu commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Adds scripts/package-release-alpine.sh to package aarch64-unknown-linux-musl inside an ARM64 Alpine Rust container.
  • Uses Alpine build-base, cmake, binutils, file, pkgconf, and python3 for a real musl C/C++ build environment.
  • Keeps the existing Zig packaging path for the other Unix release targets.
  • Adds a ZM_USE_SYSTEM_MUSL_TOOLCHAIN=1 path in scripts/package-release.sh so the Alpine build uses system cc/c++/ar instead of Zig.
  • Keeps the Linux install guide aligned with the static runtime guarantee asserted by CLI integration tests.

Why

The Linux ARM64 musl package build failed when sha2-asm compiled its AArch64 .S source through the Zig wrapper. This tries a native ARM64 Alpine musl environment instead, preserving the SHA2 assembly path and avoiding a software fallback unless this approach still fails.

Validation

  • bash -n scripts/package-release.sh scripts/package-release-alpine.sh
  • cargo test -p zmanager-cli --test help_cli linux_release_artifacts_are_static_tarballs
  • cargo tree --locked --target aarch64-unknown-linux-musl -i sha2-asm confirms sha2-asm remains in the ARM64 musl dependency tree.
  • Repository branding guardrail scan completed with no matches.

Full release packaging is intentionally left for GitHub Actions on the ARM64 runner.

@frankmanzhu frankmanzhu deleted the alpine-arm64-musl-packaging branch June 16, 2026 01:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant