eris/packaging/build-pyinstaller
Andrew Hamilton 5e0fd54a92 Use pyinstaller build for Docker images, drop shiv
The shiv zipapp's shebang points at the system python3 (GIL-enabled),
which cannot load the cp314t extensions built under the free-threaded
3.14 project venv, so ./dist/eris failed at runtime. pyinstaller bundles
its own 3.14t interpreter and works, so the Dockerfiles now run the
pyinstaller binary directly instead of via a python wrapper, and the
debian image no longer needs to install uv/python. Remove build-shiv and
the shiv dev dependency; build comments use podman.
2026-08-04 10:33:13 +10:00

32 lines
585 B
Bash
Executable file

#!/bin/bash
set -e
set -x
cd "$(dirname "$0")/.."
mkdir -p dist
COMMON_ARGS=(
--onefile
--add-data "$PWD/eris/tools.toml:eris"
--add-data "$PWD/eris/__main__.py:eris"
--add-data "$PWD/eris/tools.py:eris"
--hidden-import lzma
--hidden-import bz2
--collect-data lscolors
--collect-data fill3
--collect-data termstr
--distpath dist
--specpath build/pyinstaller
--workpath build/pyinstaller
--noconfirm
)
uv run pyinstaller "${COMMON_ARGS[@]}" --name eris eris/__main__.py
rm -rf build/pyinstaller
echo "Built:"
ls -lh dist/eris