Bug#601977: cyrus-sasl2-heimdal-dbg: file conflict during upgrade from lenny

Luca Capello luca at pca.it
Sun Nov 28 03:11:36 UTC 2010


tags 601977 + patch
thanks

Hi there!

On Sun, 31 Oct 2010 15:42:29 +0100, Lucas Nussbaum wrote:
> Installing cyrus-sasl2-heimdal-dbg in a lenny chroot, then upgrading to
> squeeze, causes:
[...]
> dpkg: error processing /var/cache/apt/archives/cyrus-sasl2-dbg_2.1.23.dfsg1-6_amd64.deb (--unpack):
>  trying to overwrite
> /usr/lib/debug/usr/lib/sasl2/libgssapiv2.so.2.0.23', which is also in
> package cyrus-sasl2-heimdal-dbg 2.1.23.dfsg1-6

Here the situation in lenny:
=====
(lenny)root at gismo:/# dpkg -L cyrus-sasl2-dbg | grep gssapi
/usr/lib/debug/usr/lib/sasl2/libgssapiv2.so.2.0.22
diverted by cyrus-sasl2-heimdal-dbg to: /usr/lib/debug/usr/lib/sasl2/libgssapiv2.so.2.0.22.mit
(lenny)root at gismo:/#
=====

This happens because cyrus-sasl2-heimdal-dbg is unpacked *before*
cyrus-sasl2-dbg, thus /u/l/debug/u/l/sasl2/libgssapiv2.so.2.0.23 is the
one shipped by the cyrus-sasl2-heimdal-dbg package.  It is (sort of)
funny that this happens because of two other NMU fixes (#530781 and
#590759).

Solutions...


1) cyrus-sasl2-heimdal-dbg Pre-Depends: cyrus-sasl2-dbg

   If we want to preserve the status quo, I guess this is the more
   logical solution, i.e. the non-heimdal package must be unpacked
   *before* the heimdal one.  However, technically speaking I do not
   think this will be ever accepted...

   FWIW, tested to work with the following patch:

--8<---------------cut here---------------start------------->8---
diff -u cyrus-sasl2-2.1.23.dfsg1/debian/changelog cyrus-sasl2-2.1.23.dfsg1/debian/changelog
--- cyrus-sasl2-2.1.23.dfsg1/debian/changelog
+++ cyrus-sasl2-2.1.23.dfsg1/debian/changelog
@@ -1,3 +1,12 @@
+cyrus-sasl2 (2.1.23.dfsg1-6.1) UNRELEASED; urgency=low
+
+  * Non-maintainer upload.
+  * debian/control:
+    + in the cyrus-sasl2-heimdal-dbg binary package, move
+      cyrus-sasl2-dbg to Pre-Depends: (Closes: #601977).
+
+ -- Luca Capello <luca at pca.it>  Sat, 27 Nov 2010 20:35:49 +0100
+
 cyrus-sasl2 (2.1.23.dfsg1-6) unstable; urgency=low
 
   * Acknowlge NMU (thanks to Ben Hutchings)
diff -u cyrus-sasl2-2.1.23.dfsg1/debian/control cyrus-sasl2-2.1.23.dfsg1/debian/control
--- cyrus-sasl2-2.1.23.dfsg1/debian/control
+++ cyrus-sasl2-2.1.23.dfsg1/debian/control
@@ -155,7 +155,8 @@
 Section: debug
 Architecture: any
 Priority: extra
-Depends: cyrus-sasl2-dbg (= ${binary:Version}), libsasl2-modules-gssapi-heimdal (= ${binary:Version}), ${misc:Depends}
+Pre-Depends: cyrus-sasl2-dbg (= ${binary:Version})
+Depends: libsasl2-modules-gssapi-heimdal (= ${binary:Version}), ${misc:Depends}
 Description: Debugging symbols for Cyrus SASL
  This is the Cyrus SASL API implementation, version 2. See package
  libsasl2-2 and RFC 2222 for more information.
--8<---------------cut here---------------end--------------->8---


2) splitting the offending library out of the "common" cyrus-sasl2-dbg
   package into its own cyrus-sasl2-mit-dbg, which Conflicts: with
   cyrus-sasl2-heimdal-dbg.  This reflects the situation present with
   the runtime libraries and avoid any diversion at all.

   FWIW, tested to work with the following patch:

--8<---------------cut here---------------start------------->8---
diff -u cyrus-sasl2-2.1.23.dfsg1/debian/changelog cyrus-sasl2-2.1.23.dfsg1/debian/changelog
--- cyrus-sasl2-2.1.23.dfsg1/debian/changelog
+++ cyrus-sasl2-2.1.23.dfsg1/debian/changelog
@@ -1,3 +1,24 @@
+cyrus-sasl2 (2.1.23.dfsg1-6.1) UNRELEASED; urgency=low
+
+  * Non-maintainer upload.
+  * Fix for (Closes: #601977), the idea coming from Gaudenz Steinlin
+    <gaudenz at debian.org>:
+    * debian/control:
+      + cyrus-sasl2-dbg Depends: on one of the two GSSAPI dbg packages.
+      + new cyrus-sasl2-mit-dbg package which Conflicts: with
+        cyrus-sasl2-heimdal-dbg.
+      + cyrus-sasl2-heimdal-dbg now Conflicts: with cyrus-sasl2-mit-dbg.
+    * debian/cyrus-sasl2-heimdal-dbg.prerm:
+      - remove, useless.
+    * debian/cyrus-sasl2-heimdal-dbg.postinst:
+      - remove, useless.
+    * debian/cyrus-sasl2-mit-dbg.dirs:
+      + create /usr/lib/debug/usr/lib/sasl2/.
+    * debian/rules:
+      + mv MIT libgssapiv2.so.2.0.23 into cyrus-sasl2-mit-dbg.
+
+ -- Luca Capello <luca at pca.it>  Sun, 28 Nov 2010 03:57:38 +0100
+
 cyrus-sasl2 (2.1.23.dfsg1-6) unstable; urgency=low
 
   * Acknowlge NMU (thanks to Ben Hutchings)
diff -u cyrus-sasl2-2.1.23.dfsg1/debian/control cyrus-sasl2-2.1.23.dfsg1/debian/control
--- cyrus-sasl2-2.1.23.dfsg1/debian/control
+++ cyrus-sasl2-2.1.23.dfsg1/debian/control
@@ -141,7 +141,7 @@
 Section: debug
 Architecture: any
 Priority: extra
-Depends: libsasl2-2 (= ${binary:Version}), ${misc:Depends}
+Depends: libsasl2-2 (= ${binary:Version}), ${misc:Depends}, cyrus-sasl2-mit-dbg | cyrus-sasl2-heimdal-dbg
 Description: Cyrus SASL - debugging symbols
  This is the Cyrus SASL API implementation, version 2. See package
  libsasl2-2 and RFC 2222 for more information.
@@ -151,11 +151,28 @@
  library or tools. You may be asked to install this package if you encounter
  such a crash.
 
+Package: cyrus-sasl2-mit-dbg
+Section: debug
+Architecture: any
+Priority: extra
+Depends: cyrus-sasl2-dbg (= ${binary:Version}), libsasl2-modules-gssapi-mit (= ${binary:Version}), ${misc:Depends}
+Conflicts: cyrus-sasl2-heimdal-dbg
+Description: Cyrus SASL - debugging symbols
+ This is the Cyrus SASL API implementation, version 2. See package
+ libsasl2-2 and RFC 2222 for more information.
+ .
+ This package contains the debugging symbols for the Cyrus SASL MIT
+ GSSAPI modules package (libsasl2-modules-gssapi-mit). The debugging
+ symbols can be useful when investigating crashes in the SASL library or
+ tools. You may be asked to install this package if you encounter such a
+ crash.
+
 Package: cyrus-sasl2-heimdal-dbg
 Section: debug
 Architecture: any
 Priority: extra
 Depends: cyrus-sasl2-dbg (= ${binary:Version}), libsasl2-modules-gssapi-heimdal (= ${binary:Version}), ${misc:Depends}
+Conflicts: cyrus-sasl2-mit-dbg
 Description: Debugging symbols for Cyrus SASL
  This is the Cyrus SASL API implementation, version 2. See package
  libsasl2-2 and RFC 2222 for more information.
reverted:
--- cyrus-sasl2-2.1.23.dfsg1/debian/cyrus-sasl2-heimdal-dbg.preinst
+++ cyrus-sasl2-2.1.23.dfsg1.orig/debian/cyrus-sasl2-heimdal-dbg.preinst
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-set -e
-
-#DEBHELPER#
-
-if [ install = "$1" ]; then
-  dpkg-divert --package cyrus-sasl2-heimdal-dbg --divert /usr/lib/debug/usr/lib/sasl2/libgssapiv2.so.2.0.23.mit --rename /usr/lib/debug/usr/lib/sasl2/libgssapiv2.so.2.0.23
-fi
-
reverted:
--- cyrus-sasl2-2.1.23.dfsg1/debian/cyrus-sasl2-heimdal-dbg.postrm
+++ cyrus-sasl2-2.1.23.dfsg1.orig/debian/cyrus-sasl2-heimdal-dbg.postrm
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-set -e
-
-#DEBHELPER#
-
-if [ remove = "$1" ]; then
-  dpkg-divert --package cyrus-sasl2-heimdal-dbg --rename --remove /usr/lib/debug/usr/lib/sasl2/libgssapiv2.so.2.0.23
-fi
-
diff -u cyrus-sasl2-2.1.23.dfsg1/debian/rules cyrus-sasl2-2.1.23.dfsg1/debian/rules
--- cyrus-sasl2-2.1.23.dfsg1/debian/rules
+++ cyrus-sasl2-2.1.23.dfsg1/debian/rules
@@ -308,6 +308,7 @@
 	dh_link -s
 	dh_strip -s -psasl2-bin -plibsasl2-2 -plibsasl2-modules -plibsasl2-modules-ldap -plibsasl2-modules-otp -plibsasl2-modules-sql -plibsasl2-modules-gssapi-mit -plibsasl2-dev -Nlibsasl2-modules-gssapi-heimdal --dbg-package=cyrus-sasl2-dbg
 	dh_strip -s -plibsasl2-modules-gssapi-heimdal -Nsasl2-bin -Nlibsasl2-2 -Nlibsasl2-modules -Nlibsasl2-modules-ldap -Nlibsasl2-modules-otp -Nlibsasl2-modules-sql -Nlibsasl2-modules-gssapi-mit -Nlibsasl2-dev --dbg-package=cyrus-sasl2-heimdal-dbg
+	mv debian/cyrus-sasl2-dbg/usr/lib/debug/usr/lib/sasl2/libgssapiv2.so.2.0.23 debian/cyrus-sasl2-mit-dbg/usr/lib/debug/usr/lib/sasl2/
 	dh_compress -s
 	dh_fixperms -s
 	dh_makeshlibs -s -X/usr/lib/sasl2
only in patch2:
unchanged:
--- cyrus-sasl2-2.1.23.dfsg1.orig/debian/cyrus-sasl2-mit-dbg.dirs
+++ cyrus-sasl2-2.1.23.dfsg1/debian/cyrus-sasl2-mit-dbg.dirs
@@ -0,0 +1 @@
+usr/lib/debug/usr/lib/sasl2/
--8<---------------cut here---------------end--------------->8---

Thx, bye,
Gismo / Luca
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-cyrus-sasl2-debian-devel/attachments/20101128/bc3e7cbe/attachment.pgp>


More information about the Pkg-cyrus-sasl2-debian-devel mailing list