binárka / linux (pull_request) Failing after 4s
Runner běží v host módu, bez dockeru, takže se v něm kontejner na AlmaLinux spustit nedá. Ukázalo se ale, že kontejner potřeba není: stačí stavět proti samostatnému CPythonu od uv. Ten je slinkovaný s glibc 2.17 a nic z hostitele se do binárky nedostane — změřeno objdumpem přes všechno, co se z ní rozbaluje. Výsledek je tedy přenositelnější než přes AlmaLinux 8 (2.28) a build.sh je o polovinu kratší. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
23 lines
842 B
Bash
Executable File
23 lines
842 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Postaví jednosouborovou binárku pro Linux do dist/kostky.
|
|
#
|
|
# Staví se proti samostatnému CPythonu od uv, ne proti systémovému. Ten je
|
|
# slinkovaný s glibc 2.17, takže binárka jede i na letitých systémech.
|
|
# Postavená proti Pythonu z Fedory 44 by chtěla glibc 2.43 a nešla by
|
|
# spustit skoro nikde — glibc drží zpětnou kompatibilitu, ne dopřednou.
|
|
# Nic z hostitele se do ní nedostane, takže kontejner k tomu není potřeba.
|
|
set -euo pipefail
|
|
|
|
VERSION=${VERSION:-3.11}
|
|
BUILD=${BUILD:-.build}
|
|
|
|
uv python install "$VERSION"
|
|
uv venv --quiet --managed-python --python "$VERSION" "$BUILD"
|
|
uv pip install --quiet --python "$BUILD/bin/python" -r requirements.txt pyinstaller
|
|
|
|
"$BUILD/bin/pyinstaller" --clean --noconfirm \
|
|
--distpath dist --workpath "$BUILD/work" kostky.spec
|
|
|
|
echo
|
|
ls -lh dist/kostky
|