Source: python2.7
Version: 2.7.18-6
Severity: important
Tags: patch

Hi,

the previously added Breaks (against python-minimal and libpython-stdlib)
fixed many upgrade paths, but against unversioned 'python' there is only a
transitive conflict (due to unsatifiable strict versioned dependencies)
and that does not work out for all upgrade paths. So let's add
'python (<< 2.7.18)' to the list of Breaks to catch these cases as well.

Example: rambo-k

Bad (incomplete) upgrade:

  Starting 2 pkgProblemResolver with broken count: 6
  Investigating (0) python2.7:amd64 < 2.7.16-2+deb10u1 -> 2.7.18-6 @ii umU Ib >
  Broken python2.7:amd64 Breaks on libpython-stdlib:amd64 < 2.7.16-1 @ii mK Ib 
> (< 2.7.18)
    Considering libpython-stdlib:amd64 3 as a solution to python2.7:amd64 14
    Added libpython-stdlib:amd64 to the remove list
  Broken python2.7:amd64 Breaks on python-minimal:amd64 < 2.7.16-1 @ii mK Ib > 
(< 2.7.18)
    Considering python-minimal:amd64 3 as a solution to python2.7:amd64 14
    Added python-minimal:amd64 to the remove list
    Fixing python2.7:amd64 via remove of libpython-stdlib:amd64
    Fixing python2.7:amd64 via remove of python-minimal:amd64
  Investigating (0) python:amd64 < 2.7.16-1 @ii mK Ib >
  Broken python:amd64 PreDepends on python-minimal:amd64 < 2.7.16-1 @ii mR > (= 
2.7.16-1)
    Considering python-minimal:amd64 3 as a solution to python:amd64 11
    Added python-minimal:amd64 to the remove list
  Broken python:amd64 Depends on libpython-stdlib:amd64 < 2.7.16-1 @ii mR > (= 
2.7.16-1)
    Considering libpython-stdlib:amd64 3 as a solution to python:amd64 11
    Added libpython-stdlib:amd64 to the remove list
  Broken python:amd64 Depends on python2:amd64 < 2.7.16-1 -> 2.7.18-2 @ii umU > 
(= 2.7.16-1)
    Considering python2:amd64 9 as a solution to python:amd64 11
    Added python2:amd64 to the remove list
    Fixing python:amd64 via keep of python-minimal:amd64
    Fixing python:amd64 via keep of libpython-stdlib:amd64
    Fixing python:amd64 via keep of python2:amd64
   Try to Re-Instate (0) python2:amd64
  Re-Instated python2:amd64 (6 vs 6)
  Investigating (0) libpython2.7-minimal:amd64 < 2.7.16-2+deb10u1 -> 2.7.18-6 
@ii umU Ib >
  Broken libpython2.7-minimal:amd64 Breaks on libpython-stdlib:amd64 < 2.7.16-1 
@ii mK Ib > (< 2.7.18)
    Considering libpython-stdlib:amd64 3 as a solution to 
libpython2.7-minimal:amd64 9
    Added libpython-stdlib:amd64 to the remove list
  Broken libpython2.7-minimal:amd64 Breaks on python-minimal:amd64 < 2.7.16-1 
@ii mK Ib > (< 2.7.18)
    Considering python-minimal:amd64 3 as a solution to 
libpython2.7-minimal:amd64 9
    Added python-minimal:amd64 to the remove list
    Fixing libpython2.7-minimal:amd64 via remove of libpython-stdlib:amd64
    Fixing libpython2.7-minimal:amd64 via remove of python-minimal:amd64
  Investigating (1) python:amd64 < 2.7.16-1 @ii mK Ib >
  Broken python:amd64 PreDepends on python-minimal:amd64 < 2.7.16-1 @ii mR > (= 
2.7.16-1)
    Considering python-minimal:amd64 3 as a solution to python:amd64 11
    Added python-minimal:amd64 to the remove list
  Broken python:amd64 Depends on libpython-stdlib:amd64 < 2.7.16-1 @ii mR > (= 
2.7.16-1)
    Considering libpython-stdlib:amd64 3 as a solution to python:amd64 11
    Added libpython-stdlib:amd64 to the remove list
  Broken python:amd64 Depends on python2:amd64 < 2.7.16-1 -> 2.7.18-2 @ii umU > 
(= 2.7.16-1)
    Considering python2:amd64 9 as a solution to python:amd64 11
    Added python2:amd64 to the remove list
    Fixing python:amd64 via keep of python-minimal:amd64
    Fixing python:amd64 via keep of libpython-stdlib:amd64
    Fixing python:amd64 via keep of python2:amd64
  Investigating (1) python2:amd64 < 2.7.16-1 | 2.7.18-2 @ii umH Ib >
  Broken python2:amd64 PreDepends on python2-minimal:amd64 < 2.7.16-1 -> 
2.7.18-2 @ii umU > (= 2.7.16-1)
    Considering python2-minimal:amd64 2 as a solution to python2:amd64 9
    Added python2-minimal:amd64 to the remove list
  Broken python2:amd64 Depends on libpython2-stdlib:amd64 < 2.7.16-1 -> 
2.7.18-2 @ii umU > (= 2.7.16-1)
    Considering libpython2-stdlib:amd64 2 as a solution to python2:amd64 9
    Added libpython2-stdlib:amd64 to the remove list
    Fixing python2:amd64 via keep of python2-minimal:amd64
    Fixing python2:amd64 via keep of libpython2-stdlib:amd64
  Investigating (1) libpython2.7-minimal:amd64 < 2.7.16-2+deb10u1 -> 2.7.18-6 
@ii umU Ib >
  Broken libpython2.7-minimal:amd64 Breaks on libpython-stdlib:amd64 < 2.7.16-1 
@ii mK > (< 2.7.18)
    Considering libpython-stdlib:amd64 3 as a solution to 
libpython2.7-minimal:amd64 9
    Added libpython-stdlib:amd64 to the remove list
  Broken libpython2.7-minimal:amd64 Breaks on python-minimal:amd64 < 2.7.16-1 
@ii mK > (< 2.7.18)
    Considering python-minimal:amd64 3 as a solution to 
libpython2.7-minimal:amd64 9
    Added python-minimal:amd64 to the remove list
    Fixing libpython2.7-minimal:amd64 via remove of libpython-stdlib:amd64
    Fixing libpython2.7-minimal:amd64 via remove of python-minimal:amd64
   Try to Re-Instate (1) python2-minimal:amd64
   Try to Re-Instate (1) libpython2-stdlib:amd64
  Investigating (2) python:amd64 < 2.7.16-1 @ii mK Ib >
  Broken python:amd64 PreDepends on python-minimal:amd64 < 2.7.16-1 @ii mR > (= 
2.7.16-1)
    Considering python-minimal:amd64 3 as a solution to python:amd64 11
    Added python-minimal:amd64 to the remove list
  Broken python:amd64 Depends on libpython-stdlib:amd64 < 2.7.16-1 @ii mR > (= 
2.7.16-1)
    Considering libpython-stdlib:amd64 3 as a solution to python:amd64 11
    Added libpython-stdlib:amd64 to the remove list
    Fixing python:amd64 via keep of python-minimal:amd64
    Fixing python:amd64 via keep of libpython-stdlib:amd64
  Investigating (2) libpython2.7-minimal:amd64 < 2.7.16-2+deb10u1 -> 2.7.18-6 
@ii umU Ib >
  Broken libpython2.7-minimal:amd64 Breaks on libpython-stdlib:amd64 < 2.7.16-1 
@ii mK > (< 2.7.18)
    Considering libpython-stdlib:amd64 11 as a solution to 
libpython2.7-minimal:amd64 9
    Holding Back libpython2.7-minimal:amd64 rather than change 
libpython-stdlib:amd64
  Investigating (2) python2.7-minimal:amd64 < 2.7.16-2+deb10u1 -> 2.7.18-6 @ii 
umU Ib >
  Broken python2.7-minimal:amd64 Depends on libpython2.7-minimal:amd64 < 
2.7.16-2+deb10u1 | 2.7.18-6 @ii umH > (= 2.7.18-6)
    Considering libpython2.7-minimal:amd64 9 as a solution to 
python2.7-minimal:amd64 7
    Holding Back python2.7-minimal:amd64 rather than change 
libpython2.7-minimal:amd64
  Investigating (3) python2.7:amd64 < 2.7.16-2+deb10u1 -> 2.7.18-6 @ii umU Ib >
  Broken python2.7:amd64 Depends on python2.7-minimal:amd64 < 2.7.16-2+deb10u1 
| 2.7.18-6 @ii umH > (= 2.7.18-6)
    Considering python2.7-minimal:amd64 7 as a solution to python2.7:amd64 14
    Removing python2.7:amd64 rather than change python2.7-minimal:amd64
  Investigating (3) python:amd64 < 2.7.16-1 @ii mK Ib >
  Broken python:amd64 Depends on python2.7:amd64 < 2.7.16-2+deb10u1 | 2.7.18-6 
@ii umR > (>= 2.7.16-1~)
    Considering python2.7:amd64 14 as a solution to python:amd64 11
    Removing python:amd64 rather than change python2.7:amd64
  Investigating (3) libpython2.7-stdlib:amd64 < 2.7.16-2+deb10u1 -> 2.7.18-6 
@ii umU Ib >
  Broken libpython2.7-stdlib:amd64 Depends on libpython2.7-minimal:amd64 < 
2.7.16-2+deb10u1 | 2.7.18-6 @ii umH > (= 2.7.18-6)
    Considering libpython2.7-minimal:amd64 9 as a solution to 
libpython2.7-stdlib:amd64 10
    Holding Back libpython2.7-stdlib:amd64 rather than change 
libpython2.7-minimal:amd64
  Investigating (3) python2:amd64 < 2.7.16-1 | 2.7.18-2 @ii umH Ib >
  Broken python2:amd64 Depends on python2.7:amd64 < 2.7.16-2+deb10u1 | 2.7.18-6 
@ii umR > (>= 2.7.16-1~)
    Considering python2.7:amd64 14 as a solution to python2:amd64 9
    Removing python2:amd64 rather than change python2.7:amd64
   Try to Re-Instate (3) libpython2.7-minimal:amd64
   Try to Re-Instate (3) python2.7-minimal:amd64
  Investigating (3) python-pkg-resources:amd64 < 40.8.0-1 -> 44.1.1-1 @ii umU 
Ib >
  Broken python-pkg-resources:amd64 Depends on python2:any:any < none @un H > 
(< 2.8)
    Considering python2:amd64 14 as a solution to python-pkg-resources:amd64 3
    Removing python-pkg-resources:amd64 rather than change python2:any:any
  Investigating (3) python-numpy:amd64 < 1:1.16.2-1 @ii mK Ib >
  Broken python-numpy:amd64 Depends on python:amd64 < 2.7.16-1 @ii mR > (< 2.8)
    Considering python:amd64 14 as a solution to python-numpy:amd64 2
    Removing python-numpy:amd64 rather than change python:amd64
  Investigating (3) python-scipy:amd64 < 1.1.0-7 @ii mK Ib >
  Broken python-scipy:amd64 Depends on python-numpy:amd64 < 1:1.16.2-1 @ii mR > 
(>= 1:1.16.0~rc1)
    Considering python-numpy:amd64 14 as a solution to python-scipy:amd64 -1
    Removing python-scipy:amd64 rather than change python-numpy:amd64
  Investigating (3) python-joblib:amd64 < 0.13.0-2 @ii mK Ib >
  Broken python-joblib:amd64 Depends on python:amd64 < 2.7.16-1 @ii mR > (< 2.8)
    Considering python:amd64 14 as a solution to python-joblib:amd64 -1
    Removing python-joblib:amd64 rather than change python:amd64
  Investigating (3) python-decorator:amd64 < 4.3.0-1.1 @ii mK Ib >
  Broken python-decorator:amd64 Depends on python:any:any < none @un H > (< 2.8)
    Considering python:amd64 14 as a solution to python-decorator:amd64 -1
    Removing python-decorator:amd64 rather than change python:any:any
  Investigating (3) python-sklearn-lib:amd64 < 0.20.2+dfsg-6 @ii mK Ib >
  Broken python-sklearn-lib:amd64 Depends on python-numpy:amd64 < 1:1.16.2-1 
@ii mR > (>= 1:1.16.0~rc1)
    Considering python-numpy:amd64 14 as a solution to python-sklearn-lib:amd64 
-1
    Removing python-sklearn-lib:amd64 rather than change python-numpy:amd64
  Investigating (3) python-sklearn:amd64 < 0.20.2+dfsg-6 @ii mK Ib >
  Broken python-sklearn:amd64 Depends on python:any:any < none @un H > (< 2.8)
    Considering python:amd64 14 as a solution to python-sklearn:amd64 -2
    Removing python-sklearn:amd64 rather than change python:any:any
   Try to Re-Instate (4) libpython2.7-stdlib:amd64
  Done
  
  The following packages were automatically installed and are no longer 
required:
    [...]
  Use 'sudo apt autoremove' to remove them.
  The following packages will be REMOVED:
    python python-decorator python-joblib python-numpy python-pkg-resources
    python-scipy python-sklearn python-sklearn-lib python2 python2.7
  The following NEW packages will be installed:
    [...]
  The following packages have been kept back:
    libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib python2-minimal
    python2.7-minimal
  The following packages will be upgraded:
    [...]
  90 upgraded, 46 newly installed, 10 to remove and 5 not upgraded.

Fixed with the additional Breaks to

  Starting 2 pkgProblemResolver with broken count: 6
  Investigating (0) python2.7:amd64 < 2.7.16-2+deb10u1 -> 2.7.18-7~deb11anbe1 
@ii umU Ib >
  Broken python2.7:amd64 Breaks on libpython-stdlib:amd64 < 2.7.16-1 @ii mK Ib 
> (< 2.7.18)
    Considering libpython-stdlib:amd64 0 as a solution to python2.7:amd64 11
    Added libpython-stdlib:amd64 to the remove list
  Broken python2.7:amd64 Breaks on python:amd64 < 2.7.16-1 @ii mK Ib > (< 
2.7.18)
    Considering python:amd64 8 as a solution to python2.7:amd64 11
    Added python:amd64 to the remove list
  Broken python2.7:amd64 Breaks on python-minimal:amd64 < 2.7.16-1 @ii mK Ib > 
(< 2.7.18)
    Considering python-minimal:amd64 0 as a solution to python2.7:amd64 11
    Added python-minimal:amd64 to the remove list
    Fixing python2.7:amd64 via remove of libpython-stdlib:amd64
    Fixing python2.7:amd64 via remove of python:amd64
    Fixing python2.7:amd64 via remove of python-minimal:amd64
  Investigating (0) python-numpy:amd64 < 1:1.16.2-1 @ii mK Ib >
  Broken python-numpy:amd64 Depends on python:amd64 < 2.7.16-1 @ii mR > (< 2.8)
    Considering python:amd64 8 as a solution to python-numpy:amd64 2
    Removing python-numpy:amd64 rather than change python:amd64
  Investigating (0) python-joblib:amd64 < 0.13.0-2 @ii mK Ib >
  Broken python-joblib:amd64 Depends on python:amd64 < 2.7.16-1 @ii mR > (< 2.8)
    Considering python:amd64 8 as a solution to python-joblib:amd64 -1
    Removing python-joblib:amd64 rather than change python:amd64
  Investigating (0) python-scipy:amd64 < 1.1.0-7 @ii mK Ib >
  Broken python-scipy:amd64 Depends on python-numpy:amd64 < 1:1.16.2-1 @ii mR > 
(>= 1:1.16.0~rc1)
    Considering python-numpy:amd64 2 as a solution to python-scipy:amd64 -1
    Removing python-scipy:amd64 rather than change python-numpy:amd64
  Investigating (0) python-decorator:amd64 < 4.3.0-1.1 @ii mK Ib >
  Broken python-decorator:amd64 Depends on python:any:any < none @un H > (< 2.8)
    Considering python:amd64 8 as a solution to python-decorator:amd64 -1
    Removing python-decorator:amd64 rather than change python:any:any
  Investigating (0) python-sklearn-lib:amd64 < 0.20.2+dfsg-6 @ii mK Ib >
  Broken python-sklearn-lib:amd64 Depends on python-numpy:amd64 < 1:1.16.2-1 
@ii mR > (>= 1:1.16.0~rc1)
    Considering python-numpy:amd64 2 as a solution to python-sklearn-lib:amd64 
-1
    Removing python-sklearn-lib:amd64 rather than change python-numpy:amd64
  Investigating (0) python-sklearn:amd64 < 0.20.2+dfsg-6 @ii mK Ib >
  Broken python-sklearn:amd64 Depends on python:any:any < none @un H > (< 2.8)
    Considering python:amd64 8 as a solution to python-sklearn:amd64 -2
    Removing python-sklearn:amd64 rather than change python:any:any
  Done
  
  The following packages were automatically installed and are no longer 
required:
    [...]
  Use 'sudo apt autoremove' to remove them.
  The following packages will be REMOVED:
    libpython-stdlib python python-decorator python-joblib python-minimal
    python-numpy python-scipy python-sklearn python-sklearn-lib
  The following NEW packages will be installed:
    [...]
  The following packages will be upgraded:
    [...]
  98 upgraded, 46 newly installed, 9 to remove and 0 not upgraded.


Andreas
diff -u python2.7-2.7.18/debian/changelog python2.7-2.7.18/debian/changelog
--- python2.7-2.7.18/debian/changelog
+++ python2.7-2.7.18/debian/changelog
@@ -1,3 +1,12 @@
+python2.7 (2.7.18-7) UNRELEASED; urgency=medium
+
+  * python2.7, libpython2.7-minimal: Add Breaks: python (<< 2.7.18) to ensure
+    removal of the unversioned python packages on upgrades from buster. The
+    previously added (transitive) Breaks are not sufficient in a few upgrade
+    scenarios. Closes: #-1.
+
+ -- Andreas Beckmann <a...@debian.org>  Mon, 12 Apr 2021 10:36:11 +0200
+
 python2.7 (2.7.18-6) unstable; urgency=medium
 
   * python2.7, libpython2.7-minimal: Add Breaks: python-minimal (<< 2.7.18),
diff -u python2.7-2.7.18/debian/py27-breaks.Debian 
python2.7-2.7.18/debian/py27-breaks.Debian
--- python2.7-2.7.18/debian/py27-breaks.Debian
+++ python2.7-2.7.18/debian/py27-breaks.Debian
@@ -2,0 +3 @@
+python (<< 2.7.18),

Reply via email to