Files
Martin BallandClaude Opus 5.5 879a6a1684 fix(release): give riscv64 packages the glibc floor of their runner (#62)
* fix(release): give riscv64 packages the glibc floor of their runner

The riscv64 job builds on ubuntu-24.04, so its GUI binaries need GLIBC_2.39,
but the apps' nfpm.yaml declares the 2.35 floor of the other Linux jobs.
Ubuntu 22.04 can't host the cross build: jammy's ncurses security update was
never built for riscv64, so libtinfo6 can't match across architectures.

Export GLIBC_FLOOR=2.39 on the riscv64 job for each app's package.sh and
nfpm.yaml to declare. Refs #44.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* docs(release): say GLIBC_FLOOR reaches the packages only through the app's nfpm.yaml

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-22 17:10:08 -04:00

24 lines
700 B
Python

"""The riscv64 packages must declare the glibc of the Ubuntu they are built on (#44)."""
from pathlib import Path
import unittest
import yaml
ROOT = Path(__file__).resolve().parents[1]
JOBS = yaml.load((ROOT / '.github/workflows/release.yml').read_text(), Loader=yaml.BaseLoader)['jobs']
# glibc of each GitHub-hosted Ubuntu runner the Linux package jobs use.
UBUNTU_GLIBC = {'ubuntu-22.04': '2.35', 'ubuntu-24.04': '2.39'}
class LinuxGlibcFloorTests(unittest.TestCase):
def test_riscv64_declares_its_runners_glibc(self):
job = JOBS['linux-riscv64']
self.assertEqual(job['env']['GLIBC_FLOOR'], UBUNTU_GLIBC[job['runs-on']])
if __name__ == '__main__':
unittest.main()