1
0
mirror of synced 2026-10-23 07:08:55 +03:00

Fix the Linux packages shipping a stray copy of Python as venv/bin/𝜋thon. #10414 (#10564)

Python 3.14's venv module creates a "𝜋thon" symlink next to python,
python3 and python3.X (CPython gh-119535). The hash bang fixup runs
"sed -i" over venv/bin/*, which replaces every symlink with a regular
copy of its target; the python* links are recreated afterwards, but the
new alias was not, so packages built against Python 3.14 shipped a full
copy of the interpreter under that name, and dpkg on Ubuntu 26.04 fails
to unpack it. Nothing uses the alias, so remove it when the venv is
created.
This commit is contained in:
Dave Page
2026-10-13 13:21:50 +01:00
parent e02150e634
commit 26a7d92b0b

View File

@@ -102,6 +102,16 @@ _create_python_virtualenv() {
# file inside the venv's own site-packages (which we do own), added
# once pip/wheel are installed below.
"${SYSTEM_PYTHON_PATH}" -m venv venv
# Python 3.14's venv module adds a novelty "𝜋thon" alias (U+1D70B, see
# CPython gh-119535) alongside python/python3/python3.X. Nothing uses it,
# and the "sed -i" hash bang fixup below turns the symlink into a full
# copy of the interpreter which, unlike the python* links, is never put
# back. dpkg on Ubuntu 26.04 then fails to unpack it with EPERM (#10414),
# so remove it. The name is given as raw UTF-8 bytes so that it matches
# whatever the build shell's locale is.
rm -f "venv/bin/"$'\360\235\234\213'"thon"
# shellcheck disable=SC1091
. venv/bin/activate