Bug#982924: what-is-python: The python-is-python3 and python-dev-is-python3 packages should not exist

2021-02-17 Thread Dimitri John Ledkov
In Bullseye release file:/usr/bin/python is not reserved, but
intentionally unused.
In Bullseye release neither deb:python2 nor deb:python3 packages own
/usr/bin/python.
This is a Bullseye Release Goal with consensus from all
cpythons/pypys/etc interpreter maintainers, modules maintainers, and
app maintainers.
Specifically cpython2.7 is still around to allow for re-bootstrapping
of pypy* ecosystem on existing or new architectures.
No packages in Bullseye may depend, or build-depend on neither
deb:python, nor deb:python-is-python* packages.
Thus it is a leaf package without any dependencies. By definition not
impacting any unrelated software.
It is intended for this package, and all of its binaries to be removed
in some future Debian release after the next one.
I hope you notice the irony in the package name src:what-is-python, it
is meant for local admins to deploy as compatibility with their
respective venvs and other estates only.
It is intended for nobody to use "/usr/bin/python" outside of venv for
now. And for them to change their scripts to use either python3 or
python2 explicitly.

I want to say this bug report is "bullseye-ignore" or "wontfix".



Bug#982924: what-is-python: The python-is-python3 and python-dev-is-python3 packages should not exist

2021-02-16 Thread Zack Weinberg
Source: what-is-python
Version: 3.8.6-3
Severity: critical
Justification: breaks unrelated software
X-Debbugs-Cc: za...@panix.com

Any system where the unqualified command names ‘python’ and/or
‘python-config’, or the well-known pathname /usr/bin/python, refer to
Python 3, is misconfigured.  These names need to be **permanently**
reserved for the legacy Python 2 interpreter, even after Debian ceases
to ship Python 2, or you risk breaking unpackaged software that has
not yet been ported to Python 3.  Unpackaged Python-2-only software
will continue to exist indefinitely—I am *certain* that I will still
need a Python 2 interpreter ten years from now, and I fully expect my
grandchildren will occasionally trip over Python-2-only software even
a hundred years from now.

(I am aware that PEP 394 explicitly licenses ‘python’ to run the
Python 3 interpreter.  PEP 394 is wrong.  It is my understanding that
the authors of PEP 394 felt they could not declare various
distributions (e.g. arch), that had already made ‘python’ run the v3
interpreter, to be buggy—but they should have.)

Please remove the python-is-python3 and python-dev-is-python3 packages
from Debian, and document in Debian’s Python policy that the
unqualified command names ‘python’ and ‘python-config’ and the
pathname /usr/bin/python are **permanently** reserved for the Python 2
interpreter.

I cannot overstate how much I mean **permanently**.  Forever.

-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 5.10.0-3-amd64 (SMP w/32 CPU threads)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled