mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-24 09:46:59 -06:00
packaging: RPM glibc floor names libm's GLIBC_2.35, so RHEL 9 refuses it
#1290 (from #1275) declared the glibc floor as `libc.so.6(GLIBC_2.35)(64bit)`. That doesn't stop RHEL 9: its current glibc, `2.34-283.el9_8`, provides `libc.so.6(GLIBC_2.35)` through backports. On Rocky Linux 9, dnf upgrades glibc to that build, installs VectorCraft 0.10.0, and `vectorcraft-cli` then fails with ``/lib64/libm.so.6: version `GLIBC_2.35' not found``. The binaries' only GLIBC_2.35 symbols are `hypot` and `hypotf`, from libm, and RHEL 9 doesn't provide `libm.so.6(GLIBC_2.35)`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
committed by
bflatastic
co-authored by
Claude Opus 5.5
parent
82db3344bf
commit
e12a670c40
+7
-4
@@ -150,12 +150,14 @@ image raises that floor, so do it deliberately. After packaging, the job prints
|
||||
metadata and contents, runs `ldd` on the binary and runs each AppImage with `--version`.
|
||||
|
||||
**RPM dependencies.** The x86_64 and aarch64 RPMs require 64-bit shared-library
|
||||
capabilities rather than distribution-specific package names: glibc's `GLIBC_2.35`,
|
||||
`libm`, `libgcc_s`, `libxkbcommon`, and either Vulkan or EGL. Windowing and GPU
|
||||
capabilities rather than distribution-specific package names: `libc`, libm's `GLIBC_2.35`,
|
||||
`libgcc_s`, `libxkbcommon`, and either Vulkan or EGL. Windowing and GPU
|
||||
libraries are loaded at runtime, so `ldd` alone does not list every requirement.
|
||||
The glibc capability enforces the same floor as the `.deb`; a distribution with
|
||||
an older glibc is not supported by these binaries. Weak recommendations still use
|
||||
package names and do not block installation.
|
||||
an older glibc is not supported by these binaries. It names libm, whose `hypot` and `hypotf`
|
||||
are the binaries' GLIBC_2.35 symbols: RHEL 9's glibc 2.34 provides `libc.so.6(GLIBC_2.35)`
|
||||
through backports, so a libc capability let it install binaries that can't start. Weak
|
||||
recommendations still use package names and do not block installation.
|
||||
|
||||
Before publishing a Linux release:
|
||||
|
||||
@@ -224,4 +226,5 @@ warning, never a failed build.
|
||||
|
||||
| Date | Change | Summary |
|
||||
|---|---|---|
|
||||
| 2026-10-14 | minor | RPM glibc floor names libm's `GLIBC_2.35`: RHEL 9's glibc 2.34 provides libc's through backports |
|
||||
| 2026-10-12 | minor | RPM dependencies use 64-bit runtime capabilities and enforce glibc 2.35 (#1275); real distro install/start-up checks remain pending |
|
||||
|
||||
@@ -45,9 +45,11 @@ overrides:
|
||||
# Require 64-bit library capabilities, not distro-specific package names. nfpm
|
||||
# does not scan ELF dependencies; declare the direct runtimes and glibc floor
|
||||
# as well as the libraries loaded at runtime. Release RPMs are amd64/arm64.
|
||||
# The glibc floor names libm because the binaries' GLIBC_2.35 symbols (hypot, hypotf) are
|
||||
# libm's: RHEL 9's glibc 2.34 provides libc.so.6(GLIBC_2.35) through backports, but not this.
|
||||
depends:
|
||||
- libc.so.6(GLIBC_2.35)(64bit)
|
||||
- libm.so.6()(64bit)
|
||||
- libc.so.6()(64bit)
|
||||
- libm.so.6(GLIBC_2.35)(64bit)
|
||||
- libgcc_s.so.1()(64bit)
|
||||
- libxkbcommon.so.0()(64bit)
|
||||
- (libvulkan.so.1()(64bit) or libEGL.so.1()(64bit))
|
||||
|
||||
Reference in New Issue
Block a user