Debian 10261 Published by

Ondřej Nový published an update on the state of the removal of Python 2 in Debian Sid (Unstable) and Bullseye (Testing). They are now almost done with half of the removals.



Hi,

We are aiming to remove Python 2 for the bullseye release, or at least remove as many Python 2 related packages as possible. Python 2 is discontinued upstream, but crucially, more and more providers of Python modules don't support Python 2 in either the current or future upstream version.

Some FAQs and guidelines can be found at
https://wiki.debian.org/Python/2Removal.

With about 3300 py2removal bugs filed and 1500 closed, we are now almost done with half of the removals.

We are going to raise the severity of the py2removal bugs to "serious" in several steps. In the
first phase we are going to raise severity of the py2removal bugs for all leaf module packages and low popcon (< 300) application packages. Bugs marked with the "py2keep" user tag will not have their severity raised. If nobody fixes that bug, the packages will be auto-removed from testing.
We will also then file bug reports against ftp.debian.org to remove such packages from unstable. We are going to do this semi- automatically as additional packages become leaf packages.

We are working with the Lintian maintainers to bump the severity of Python 2 related tags in Lintian.

If you are absolutely sure you need to keep your Python 2 only application
in Debian, you should mark the Python 2 removal bug with the "py2keep" user tag
(please do not replace the py2remove tag), using the
debian-python@lists.debian.org user.
Please CC the bug report, because it's non-obvious who is changing a user tag by just reading the bug report, and provide a rationale for claiming it is "py2keep".
py2keep must not be placed on reverse dependencies of pygtk, because the Debian Gnome maintainers already announced the removal of pygtk in bullseye.

All dependency fields in debian/control and debian/tests/control must also be updated to stop using the unversioned python
packages (python, python-dbg, python-dev, python-doc) and instead use the versioned package names (python2,
python2-dbg, python2-dev, python2-doc); this applies to both build-time and runtime dependencies.
Unversioned interpreters must also not be used in the shebang lines (use
#!/usr/bin/python2 instead). When using dh-python, this will be done automatically. Check for explicit python and python-dev build dependencies. Don't forget to look at autopkgtest tests as well (for both package and interpreter names).

For questions, feel free to contact people on the
debian-python@lists.debian.org ML or on IRC (#debian-python on OFTC).
--
Best regards
Ondřej Nový
Matthias Klose