Skip to content

Build release binaries on EL8 so packages run on every supported distro - #76

Open
mscasso-scanoss wants to merge 2 commits into
masterfrom
build/el8-glibc-baseline
Open

mscasso-scanoss wants to merge 2 commits into
masterfrom
build/el8-glibc-baseline

Conversation

@mscasso-scanoss

@mscasso-scanoss mscasso-scanoss commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

Release binaries are built on ubuntu-22.04 (glibc 2.35), so ldb and libldb.so require GLIBC_2.33/GLIBC_2.34:

  • the .rpm can't be installed on RHEL/Rocky/Alma 8 (glibc 2.28): nothing provides libc.so.6(GLIBC_2.34)(64bit) needed by ldb-4.1.11-1.x86_64;
  • the .deb can't run on Debian 11 (glibc 2.31), and also declares libgcrypt20 (>= 1.9.0) while Debian 11 ships 1.8.x.

Changes

  • Build in a rockylinux:8 container (glibc 2.28 baseline). The same binaries, .tar.gz, .deb and .rpm then work on every supported distro. Packaging still runs on the Ubuntu runner.
  • Check the glibc baseline: the release fails if ldb or libldb.so requires glibc > 2.28.
  • Package with package.sh directly: make prepare_*_package depends on all and would rebuild on the runner, undoing the EL8 build.
  • .deb depends on libgcrypt20 (>= 1.8.0): built on EL8 (libgcrypt 1.8.5) the binaries only need 1.8 symbols (GCRYPT_1.6).
  • Manual runs (workflow_dispatch) upload the packages as workflow artifacts instead of creating a release, and the tarball name is file-safe for branch names.

Package file names are unchanged, so nothing changes for consumers (e.g. the on-premise installer).

Testing

Distro glibc Result
debian:11 2.31 ✅
debian:12 2.36 ✅
debian:13 2.41 ✅
ubuntu:22.04 2.35 ✅
ubuntu:24.04 2.39 ✅
rockylinux:8 2.28 ✅ (fails today: requires GLIBC_2.33/2.34)
rockylinux:9 2.34 ✅
almalinux:10 2.39 ✅
fedora:latest 2.43 ✅

Related: scanoss/on-premise#31.

🤖 Generated with Claude Code

mscasso-scanoss and others added 2 commits October 29, 2026 16:56
Release binaries were built on Ubuntu 22.04 (glibc 2.35), so ldb and
libldb.so required glibc 2.33/2.34: the .rpm could not be installed on
RHEL/Rocky/Alma 8 (glibc 2.28) and the .deb not on Debian 11 (2.31).

- Compile in a rockylinux:8 container (glibc 2.28 baseline) and fail
  the release if any binary requires a newer glibc.
- Package with package.sh directly: make prepare_*_package rebuilds on
  the runner.
- Depend on libgcrypt20 >= 1.8.0 (Debian 11 ships 1.8.x; EL8 builds
  only need 1.8 symbols).
- Upload the packages as workflow artifacts on manual runs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…work

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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