fix(admin-config-tool): pin xceadmin's python3 to meson's own resolution
Both meson-build.sh (venv creation) and meson-install.sh (wrapper
shebang) resolved python3 independently at run time (bare `python3 -m
venv` / `command -v python3`) -- correct as long as invoked inside
nix develop/build, but nothing prevented a stray non-nix system
python3 earlier on PATH from shadowing it.
meson.build now resolves python3 once via import('python').
find_installation('python3') -- same mechanism as find_program('go')/
capnp/packcc elsewhere in this build, printed at `meson setup` time
as "Program python3 found: YES (/nix/store/...)" -- and threads that
exact resolved path into both scripts as an explicit argument instead
of a fresh lookup.
Verified: meson setup prints the pinned python3, xceadmin target
rebuilds clean (165/165 passed), and the built venv's own python3
resolves through to that exact nix store path.
This commit is contained in:
parent
d5330fc976
commit
db2b5f17f0
3 changed files with 28 additions and 10 deletions
|
|
@ -9,15 +9,18 @@
|
|||
#
|
||||
# Instead: copy just the xceadmin/xcecommon package dirs (pure files, no
|
||||
# shebang) into $out, and hand-write a wrapper whose shebang and PYTHONPATH
|
||||
# are resolved against *this* install script's own environment (python3
|
||||
# and the nix-provided pycapnp/pyyaml/jsonschema/click site-packages come
|
||||
# from nativeBuildInputs, same as every other phase of this derivation) --
|
||||
# every path baked in below is a real /nix/store path, so nix's reference
|
||||
# scanner picks each one up as a proper runtime dependency of $out.
|
||||
# are resolved against *this* install script's own environment (python3 --
|
||||
# passed in as $1, meson's own resolved interpreter (import('python').
|
||||
# find_installation()) from meson.build, not a fresh `command -v python3`
|
||||
# lookup here -- and the nix-provided pycapnp/pyyaml/jsonschema/click
|
||||
# site-packages come from nativeBuildInputs, same as every other phase of
|
||||
# this derivation) -- every path baked in below is a real /nix/store path,
|
||||
# so nix's reference scanner picks each one up as a proper runtime
|
||||
# dependency of $out.
|
||||
set -euo pipefail
|
||||
|
||||
PYTHON="$1"
|
||||
DESTDIR_PREFIX="$MESON_INSTALL_DESTDIR_PREFIX"
|
||||
PYTHON="$(command -v python3)"
|
||||
|
||||
VENV_SITE_GLOB=("$MESON_BUILD_ROOT"/xceadmin/.venv/lib/python3.*/site-packages)
|
||||
VENV_SITE="${VENV_SITE_GLOB[0]}"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue