Package: libibverbs1 Version: 1.1.8-1 Severity: serious Tags: patch User: debian...@lists.debian.org Usertags: piuparts Control: affects -1 + libopenmpi1.6 src:openmpi
Hi, while analyzing some piuparts upgrade tests I noticed some cases where the openmpi 1.3 -> 1.6 transition does not work out as expected. If this happens, the scoring in apt generates a tie for the scores of libopenmpi1.3 and libopenmpi1.6 which is resolved in favor of the package already installed. This results in some packages not being upgraded - which is not the intended result for a distupgrade. To work around this, I suggest to add a Breaks: libopenmpi1.3 to any dependency of libopenmpi1.6, e.g. libibverbs1. The dependency will have a score slightly higher that that of the dependee, which is sufficient to break the tie the other way around. Since libopenmpi1.6 already has a 'Conflicts: libopenmpi1.3', there is no wheezy -> jessie upgrade patch where the obsolete libopenmpi1.3 should survive. Adding more Breaks on libopenmpi1.3, e.g. to libibverbs1, will only help to reach this goal. Apt problemresolver debug output before the patch: [...] 1 libibverbs1 [ amd64 ] < 1.1.6-1 -> 1.1.8-1 > ( libs ) [...] -1 libhdf5-openmpi-8 [ amd64 ] < none -> 1.8.13+docs-15 > ( libs ) -1 libopenmpi1.3 [ amd64 ] < 1.4.5-1 > ( libs ) -1 libopenmpi1.6 [ amd64 ] < none -> 1.6.5-9.1 > ( libs ) -2 libhdf5-openmpi-7 [ amd64 ] < 1.8.8-9+b1 > ( libs ) [...] Starting 2 Investigating (0) gcc-4.9-base [ amd64 ] < none -> 4.9.2-10 > ( libs ) Broken gcc-4.9-base:amd64 Breaks on gcc-4.7-base [ amd64 ] < 4.7.2-5 > ( libs ) (< 4.7.3) Considering gcc-4.7-base:amd64 2 as a solution to gcc-4.9-base:amd64 39 Added gcc-4.7-base:amd64 to the remove list Fixing gcc-4.9-base:amd64 via remove of gcc-4.7-base:amd64 Investigating (0) libopenmpi1.6 [ amd64 ] < none -> 1.6.5-9.1 > ( libs ) Broken libopenmpi1.6:amd64 Conflicts on libopenmpi1.3 [ amd64 ] < 1.4.5-1 > ( libs ) Considering libopenmpi1.3:amd64 -1 as a solution to libopenmpi1.6:amd64 -1 Holding Back libopenmpi1.6:amd64 rather than change libopenmpi1.3:amd64 Investigating (1) libhdf5-openmpi-8 [ amd64 ] < none -> 1.8.13+docs-15 > ( libs ) Broken libhdf5-openmpi-8:amd64 Depends on libopenmpi1.6 [ amd64 ] < none -> 1.6.5-9.1 > ( libs ) Considering libopenmpi1.6:amd64 -1 as a solution to libhdf5-openmpi-8:amd64 -1 Holding Back libhdf5-openmpi-8:amd64 rather than change libopenmpi1.6:amd64 Investigating (2) libmed1 [ amd64 ] < 3.0.3-3 -> 3.0.6-7 > ( libs ) Broken libmed1:amd64 Depends on libhdf5-openmpi-8 [ amd64 ] < none -> 1.8.13+docs-15 > ( libs ) (>= 1.8.13) Considering libhdf5-openmpi-8:amd64 -1 as a solution to libmed1:amd64 0 Holding Back libmed1:amd64 rather than change libhdf5-openmpi-8:amd64 Try to Re-Instate (3) libmed1:amd64 Done The following packages will be REMOVED: gcc-4.7-base The following NEW packages will be installed: [...] The following packages have been kept back: libmed1 The following packages will be upgraded: [...] Apt problemresolver debug output after the patch: [...] 1 libibverbs1 [ amd64 ] < 1.1.6-1 -> 1.1.8-2 > ( libs ) [...] -1 libhdf5-openmpi-8 [ amd64 ] < none -> 1.8.13+docs-15 > ( libs ) -1 libopenmpi1.3 [ amd64 ] < 1.4.5-1 > ( libs ) -1 libopenmpi1.6 [ amd64 ] < none -> 1.6.5-9.1 > ( libs ) -2 libhdf5-openmpi-7 [ amd64 ] < 1.8.8-9+b1 > ( libs ) [...] Starting 2 Investigating (0) gcc-4.9-base [ amd64 ] < none -> 4.9.2-10 > ( libs ) Broken gcc-4.9-base:amd64 Breaks on gcc-4.7-base [ amd64 ] < 4.7.2-5 > ( libs ) (< 4.7.3) Considering gcc-4.7-base:amd64 2 as a solution to gcc-4.9-base:amd64 39 Added gcc-4.7-base:amd64 to the remove list Fixing gcc-4.9-base:amd64 via remove of gcc-4.7-base:amd64 Investigating (0) libibverbs1 [ amd64 ] < 1.1.6-1 -> 1.1.8-2 > ( libs ) Broken libibverbs1:amd64 Breaks on libopenmpi1.3 [ amd64 ] < 1.4.5-1 > ( libs ) Considering libopenmpi1.3:amd64 -1 as a solution to libibverbs1:amd64 1 Added libopenmpi1.3:amd64 to the remove list Fixing libibverbs1:amd64 via remove of libopenmpi1.3:amd64 Investigating (0) libhdf5-openmpi-7 [ amd64 ] < 1.8.8-9+b1 > ( libs ) Broken libhdf5-openmpi-7:amd64 Depends on libopenmpi1.3 [ amd64 ] < 1.4.5-1 > ( libs ) Considering libopenmpi1.3:amd64 -1 as a solution to libhdf5-openmpi-7:amd64 -2 Removing libhdf5-openmpi-7:amd64 rather than change libopenmpi1.3:amd64 Done The following packages will be REMOVED: gcc-4.7-base libhdf5-openmpi-7 libopenmpi1.3 The following NEW packages will be installed: [...] The following packages will be upgraded: [...] Attached is the patch I used to verify my suggested fix as well as the two full piuparts logfiles. I do *not* intend to NMU libibverbs1. Andreas
diff -Nru libibverbs-1.1.8/debian/changelog libibverbs-1.1.8/debian/changelog --- libibverbs-1.1.8/debian/changelog 2014-05-05 20:45:06.000000000 +0200 +++ libibverbs-1.1.8/debian/changelog 2015-03-17 02:02:30.000000000 +0100 @@ -1,3 +1,10 @@ +libibverbs (1.1.8-2) UNRELEASED; urgency=medium + + * Add 'Breaks: libopenmpi1.3' to smoothen the openmpi transition on some + wheezy -> jessie upgrade paths. (Closes: #xxxxxx) + + -- Andreas Beckmann <a...@debian.org> Tue, 17 Mar 2015 02:01:00 +0100 + libibverbs (1.1.8-1) unstable; urgency=low * New upstream release. diff -Nru libibverbs-1.1.8/debian/control libibverbs-1.1.8/debian/control --- libibverbs-1.1.8/debian/control 2014-05-05 20:45:06.000000000 +0200 +++ libibverbs-1.1.8/debian/control 2015-03-17 02:00:58.000000000 +0100 @@ -10,6 +10,7 @@ Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, adduser +Breaks: libopenmpi1.3 Description: Library for direct userspace use of RDMA (InfiniBand/iWARP) libibverbs is a library that allows userspace processes to use RDMA "verbs" as described in the InfiniBand Architecture Specification and
libmed1.fail.log.gz
Description: application/gzip
libmed1.pass.log.gz
Description: application/gzip