Source: six Version: 1.16.0-1 Severity: serious Tags: patch Hi,
I'm trying to solve some incomplete upgrades from buster to bullseye. I.e. apt tries to keep some obsolete packages from buster installed and therefore cannot upgrade some other packages instead of removing the obsolete bits and upgrading everything upgradable. This usually needs some additional Breaks to be added to guide apt to the right way. One challenge upgrading from buster is to get rid of the unversioned python and friends along with most of the packaged Python 2 modules. The openstack stack is a bit problematic here, but this can be solved by adding some Breaks in python-six/python3-six. (Sounds a bit non-intuitive to add them to a python3-* package, but there is no better fitting package with a sufficiently high score involved in these scenarios.) I've run a lot of upgrade tests and the results look very promising that we can improve the number of clean upgrade paths with this patch. Andreas PS: I thought I had sent this bug report a month ago together with all the related fixes, but somewhere I must have missed this one. I'll file an unblock request right away, too.
diff -Nru six-1.16.0/debian/changelog six-1.16.0/debian/changelog --- six-1.16.0/debian/changelog 2021-05-09 12:40:54.000000000 +0200 +++ six-1.16.0/debian/changelog 2021-06-11 15:49:07.000000000 +0200 @@ -1,3 +1,18 @@ +six (1.16.0-2) UNRELEASED; urgency=medium + + * python-six/python3-six: Copy Breaks: python (<< 2.7.18), + python-minimal (<< 2.7.18), libpython-stdlib (<< 2.7.18), + python-iso8601 (<< 0.1.12-2~), python-pbr (<< 5.4.5) from python2.7 to + ensure removal of the unversioned python packages (and some persisting + obsolete Python 2 module packages) on upgrades from buster. In some + upgrade scenarios (mostly involving openstack packages) these Breaks in + python2.7 were ineffective because the unversioned python packages got + higher scores than python2.7. python-six/python3-six are usually very + high scoring Python module packages in these cases, making them ideal + candidates for such copies of the Breaks. (Closes: #-1) + + -- Andreas Beckmann <[email protected]> Fri, 11 Jun 2021 15:49:07 +0200 + six (1.16.0-1) unstable; urgency=medium * New upstream release. diff -Nru six-1.16.0/debian/control six-1.16.0/debian/control --- six-1.16.0/debian/control 2021-05-09 12:40:54.000000000 +0200 +++ six-1.16.0/debian/control 2021-06-11 15:49:07.000000000 +0200 @@ -26,6 +26,11 @@ Multi-Arch: foreign Depends: ${misc:Depends}, ${python:Depends}, +Breaks: python (<< 2.7.18), + python-minimal (<< 2.7.18), + libpython-stdlib (<< 2.7.18), + python-iso8601 (<< 0.1.12-2~), + python-pbr (<< 5.4.5), Description: Python 2 and 3 compatibility library (Python 2 interface) Six is a Python 2 and 3 compatibility library. It provides utility functions for smoothing over the differences between the Python versions @@ -40,6 +45,9 @@ Multi-Arch: foreign Depends: ${misc:Depends}, ${python3:Depends}, +Breaks: python (<< 2.7.18), + python-minimal (<< 2.7.18), + libpython-stdlib (<< 2.7.18), Description: Python 2 and 3 compatibility library (Python 3 interface) Six is a Python 2 and 3 compatibility library. It provides utility functions for smoothing over the differences between the Python versions

