Skip to content

fix(releasing): restore EL8 install for GNU artifacts (glibc 2.28 floor)#25387

Draft
pront wants to merge 1 commit intomasterfrom
fix/el8-glibc-baseline-25253
Draft

fix(releasing): restore EL8 install for GNU artifacts (glibc 2.28 floor)#25387
pront wants to merge 1 commit intomasterfrom
fix/el8-glibc-baseline-25253

Conversation

@pront
Copy link
Copy Markdown
Member

@pront pront commented May 7, 2026

Summary

v0.55.0 broke installation on EL8 (RHEL 8 / Rocky 8 / AlmaLinux 8 / CentOS Stream 8). The cross-compilation base image was bumped from a sysroot with glibc 2.23 to one with glibc 2.31, which made the binary reference GLIBC_2.29 and GLIBC_2.30 symbols. EL8 ships glibc 2.28, so the dynamic loader rejects the binary at startup.

Reported in #25253.

This PR builds the x86_64-unknown-linux-gnu and aarch64-unknown-linux-gnu release binaries natively inside an almalinux:8 container on GitHub-hosted runners. The build environment IS the install floor (glibc 2.28), so the binary cannot reference a glibc symbol newer than what install will see, by construction. The same almalinux:8 image is also used by rpm-verify, making build and install symmetric.

The musl and 32-bit ARM targets continue to use cross-rs. They have no glibc-floor obligation: musl is statically linked, and EL8 family does not ship for 32-bit ARM at all.

What changed

  • Split build-linux-packages into build-linux-gnu-native (x86_64 and aarch64 GNU, container: almalinux:8 on hosted runners) and build-linux-cross (musl + 32-bit ARM via cross-rs on the existing self-hosted runner).
  • Added NATIVE=true mode to the Makefile's target/%/vector rule so the package-...-all chain runs cargo build instead of cross.
  • Added almalinux:8 to the rpm-verify container matrix so install on the floor distribution is exercised before publish.
  • Removed the manylinux Dockerfile and MANYLINUX_DIGEST mechanism that were the previous proposal: the native-build approach makes them unnecessary.

Vector configuration

N/A. Build-tooling change.

How did you test this PR?

Custom CI build exercises the full publish matrix end-to-end: native GNU build inside almalinux:8 (x86_64 on ubuntu-24.04, aarch64 on ubuntu-24.04-arm), cross builds for musl and 32-bit ARM on release-builder-linux, and rpm-verify on almalinux:8 (the floor) plus the rest of the matrix.

Change Type

  • Bug fix
  • New feature
  • Dependencies
  • Non-functional (chore, refactoring, docs)
  • Performance

Is this a breaking change?

  • Yes
  • No

This restores behavior that was unintentionally regressed in v0.55.0.

Does this PR include user facing changes?

  • Yes. Changelog fragment added at changelog.d/25253_el8_glibc_floor.fix.md.

References

@github-actions github-actions Bot added domain: ci Anything related to Vector's CI environment docs review on hold The documentation team reviews PRs only after a PR is approved by the COSE team. labels May 7, 2026
pront

This comment was marked as outdated.

Comment thread changelog.d/25253_el8_glibc_floor.fix.md Fixed
Comment thread changelog.d/25253_el8_glibc_floor.fix.md Fixed
Comment thread docs/PLATFORM_SUPPORT.md Fixed
Comment thread docs/PLATFORM_SUPPORT.md Fixed
Comment thread docs/PLATFORM_SUPPORT.md Fixed
Comment thread docs/PLATFORM_SUPPORT.md Fixed
Comment thread docs/PLATFORM_SUPPORT.md Fixed
Comment thread docs/PLATFORM_SUPPORT.md Fixed
Comment thread docs/PLATFORM_SUPPORT.md Fixed
Comment thread docs/PLATFORM_SUPPORT.md Fixed
@pront pront force-pushed the fix/el8-glibc-baseline-25253 branch from f7cee79 to c59549b Compare May 7, 2026 16:30
Copy link
Copy Markdown
Member Author

@pront pront left a comment

Choose a reason for hiding this comment

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

/ci-run-cross

@pront pront force-pushed the fix/el8-glibc-baseline-25253 branch 3 times, most recently from 1bc7735 to 3b286b1 Compare May 7, 2026 20:13
@pront pront changed the title fix(releasing): restore EL8 install for x86_64 GNU artifacts (glibc 2.28 floor) fix(releasing): restore EL8 install for GNU artifacts (glibc 2.28 floor) May 7, 2026
@@ -0,0 +1,5 @@
Restored support for installing Vector RPMs on RHEL 8 / Rocky 8 / AlmaLinux 8 / CentOS Stream 8. v0.55.0 binaries inadvertently linked against `GLIBC_2.29` and `GLIBC_2.30` after a build-tooling change, breaking installation on EL8 (which ships glibc 2.28).

The `x86_64-unknown-linux-gnu` and `aarch64-unknown-linux-gnu` release binaries are now built natively inside an `almalinux:8` container on GitHub-hosted runners, so the build environment IS the install floor (glibc 2.28). AlmaLinux 8 has also been added to the pre-release RPM verification matrix so install on the floor distribution is exercised before publish.
v0.55.0 broke installation on EL8 (RHEL 8 / Rocky 8 / AlmaLinux 8 /
CentOS Stream 8). The cross-compilation base image was bumped from a
sysroot with glibc 2.23 to one with glibc 2.31, which made the binary
reference GLIBC_2.29 and GLIBC_2.30 symbols. EL8 ships glibc 2.28, so
the dynamic loader rejects the binary at startup.

Build the x86_64-unknown-linux-gnu and aarch64-unknown-linux-gnu
release binaries natively inside an almalinux:8 container on
GitHub-hosted runners. The build environment IS the install floor
(glibc 2.28), so the binary cannot reference a glibc symbol newer
than what install will see.

- Split build-linux-packages into build-linux-gnu-native (x86_64 and
  aarch64 GNU, container: almalinux:8 on hosted runners) and
  build-linux-cross (musl + 32-bit ARM via cross-rs).
- Add NATIVE=true mode to Makefile's target/%/vector rule so the
  package-...-all chain runs cargo build instead of cross.
- Add almalinux:8 to the rpm-verify container matrix so install on
  the floor distribution is exercised before publish.

Closes: #25253
Related: #25215, #21721

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@pront pront force-pushed the fix/el8-glibc-baseline-25253 branch from 3b286b1 to 02a072b Compare May 7, 2026 20:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs review on hold The documentation team reviews PRs only after a PR is approved by the COSE team. domain: ci Anything related to Vector's CI environment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

v0.55.0 RPM fails to install on Rocky Linux 8 / EL8: requires GLIBC_2.29 and GLIBC_2.30

2 participants