mirror of
https://github.com/storytold/craft-common-actions.git
synced 2026-10-31 15:57:54 +00:00
* 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>
24 lines
700 B
Python
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()
|