Skip to content

Comments

build: support native architecture builds on ARM hosts#8547

Merged
aarongable merged 4 commits intoletsencrypt:mainfrom
sheurich:native-arch-build
Feb 23, 2026
Merged

build: support native architecture builds on ARM hosts#8547
aarongable merged 4 commits intoletsencrypt:mainfrom
sheurich:native-arch-build

Conversation

@sheurich
Copy link
Contributor

@sheurich sheurich commented Jan 8, 2026

Removes forced amd64 cross-compilation. Builds now run natively for the host architecture.

This is a focused subset of #8389, extracting only the changes needed for native ARM builds without CI workflow modifications.

The upstream CI currently runs on amd64 only. A future PR can add parallel arm64 runners to produce multi-platform binaries and container images.

Changes

  • tools/container-build.sh: Detect host architecture instead of forcing amd64 on ARM.
  • Containerfile: Add TARGETPLATFORM arg for correct Go binary download.
  • tools/make-deb.sh: Accept ARCH from caller for deb packaging. ARCH env var is now required.
  • Artifact naming: Standardized to amd64/arm64 (previously x86_64).
  • Bug fix: Removed errant trailing . from tar command.
  • Cleanup: Added .github to .dockerignore and build artifact patterns to .gitignore.

Testing

Native builds work on both architectures:

GO_VERSION=1.25.5 ./tools/container-build.sh
# arm64 host → arm64 artifacts ✓
# amd64 host → amd64 artifacts ✓

Cross-compilation via QEMU is not supported (Go assembler segfaults under emulation). For multi-platform binaries, use native runners for each architecture.

@sheurich sheurich requested a review from a team as a code owner January 8, 2026 14:52
@sheurich sheurich requested a review from jsha January 8, 2026 14:52
aarongable
aarongable previously approved these changes Feb 23, 2026
Copy link
Contributor

@aarongable aarongable left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apologies for taking so long to get back to this. LGTM, and we're happy to merge this. Note, however, that we've been working on container-based architecture and don't plan to invest further in our debian-based deploy system.

@aarongable aarongable merged commit 948cbe5 into letsencrypt:main Feb 23, 2026
51 of 53 checks passed
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.

3 participants