PEP 394 [1] saw an update in April 2018 [2], the diffs at [3].

The most important change from my point of view is

-* It is suggested that even distribution-specific packages follow the
-  ``python2``/``python3`` convention, even in code that is not intended to
+* It is strongly encouraged that distribution-specific packages use ``python2``
+  or ``python3`` rather than ``python``, even in code that is not intended to
   operate on other distributions.

I don't think there is enough time to replace all python shebangs to python2 in
time for the buster release, however there is no harm in starting this process
now.  But I'd like to get this done for buster+1, in the case we still need to
ship a Python2/2.7, so that buster+1 doesn't ship with a python command, but
maybe with a python2 command.

The first step is to create a set of python2* packages in python-defaults, with
contain all the python2* symlinks, and having the python* packages depend on
those python2 packages.  This change itself is a no-op and shouldn't affect

As a second step change the dh_python2 (in python-defaults), and dh-python to
generate dependencies on python2 instead of python, and replacing the shebang
from python to python2.

This should cover the majority of packages to replace dependencies on python
with dependencies on python2.  There are packages which don't check for python2,
so these probably need adjustments.  But again, the goal for buster+1 is to ship
as few Python2 dependent packages as possible, if any.

The third step for buster+1 would be to drop the set of python* packages from

Both Debian 8 and Debian 9 already have the python2 symlink, so you could even
reuse binary packages in the older releases.  If needed, python-defaults could
be packported to Debian 9 using versioned provides, and to Debian 8 introducing
the same set of python2 packages.



Reply via email to