Bug#655845: proposed fix for slapd upgrades

Helmut Grohne helmut at subdivi.de
Sun Mar 4 08:07:47 UTC 2012


reassign 628237 libsasl2-2
reassign 655845 libsasl2-2
found 628237 2.1.25.dfsg1-3
found 655845 2.1.25.dfsg1-3
tags 628237 + patch
tags 655845 + patch
thanks

Most of the work on understanding these issues was already done by Ralph
Rößner[1] and Steve Langasek[2]. Thank you both for your excellent work.

I can not explain precisely how 628237 happened. However I did try
upgrading slapd from squeeze to sid and encountered both of these issues
in different ways.

The first event was that libsasl2-2 changed its ABI without bumping the
soname. If you upgrade libsasl2-2 on from squeeze to sid and the upgrade
slapd, you will see that the dumping of the database (preinst) will fail
with the error message shown in #655845. Later Steve Langasek rebuilt[3]
slapd against the changed libsasl2. Now this rebuilt slapd fails to work
with squeeze libsasl2-2. This can be seen by upgrading just slapd (and
everything it pulls which does not include libsasl2-2) from squeeze to
sid. Interestingly this gives an error (postinst) very similar to the
one shown in #628237, which looks like a time loop, but is what I
observe.

Now Steve Langasek already observed[2] that libsasl2-2 needs to break
the squeeze version of slapd (or bump soname, but it is too late for
this move). On the other hand slapd needs to depend on the changed ABI
of libsasl2-2. The preferred way of doing this is by libsasl2-2
providing a shlibs dependency. I attached a debdiff to cyrus-sasl2 that
applies both changes. Of course this also requires a rebuild of openldap
against the fixed libsasl2-2. Using these new packages the upgrade from
squeeze to sid works as expected.

Helmut

[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=628237#80
[2] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=628237#129
[3] version 2.4.25-4, closing #628237, see
    http://packages.debian.org/changelogs/pool/main/o/openldap/current/changelog#version2.4.25-4
-------------- next part --------------
diff -Nru cyrus-sasl2-2.1.25.dfsg1/debian/changelog cyrus-sasl2-2.1.25.dfsg1/debian/changelog
--- cyrus-sasl2-2.1.25.dfsg1/debian/changelog	2012-01-18 08:47:29.000000000 +0100
+++ cyrus-sasl2-2.1.25.dfsg1/debian/changelog	2012-03-03 22:45:16.000000000 +0100
@@ -1,3 +1,11 @@
+cyrus-sasl2 (2.1.25.dfsg1-3.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Breaks: slapd < 2.4.25-4 (Closes: #655845)
+  * Introduce shlib dependency on 2.1.24 for libsasl2-2. (Closes: #628237)
+
+ -- Helmut Grohne <helmut at subdivi.de>  Sat, 03 Mar 2012 22:42:42 +0100
+
 cyrus-sasl2 (2.1.25.dfsg1-3) unstable; urgency=low
 
   [ Thomas Preud'homme ]
diff -Nru cyrus-sasl2-2.1.25.dfsg1/debian/control cyrus-sasl2-2.1.25.dfsg1/debian/control
--- cyrus-sasl2-2.1.25.dfsg1/debian/control	2012-01-18 08:47:29.000000000 +0100
+++ cyrus-sasl2-2.1.25.dfsg1/debian/control	2012-03-03 17:14:17.000000000 +0100
@@ -39,7 +39,7 @@
 Pre-Depends: ${misc:Pre-Depends}
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Recommends: libsasl2-modules (= ${binary:Version})
-Breaks: postfix (<= 2.8.3-1)
+Breaks: postfix (<= 2.8.3-1), slapd (<= 2.4.25-3)
 Replaces: libsasl2
 Description: Cyrus SASL - authentication abstraction library
  This is the Cyrus SASL API implementation, version 2.1.
diff -Nru cyrus-sasl2-2.1.25.dfsg1/debian/rules cyrus-sasl2-2.1.25.dfsg1/debian/rules
--- cyrus-sasl2-2.1.25.dfsg1/debian/rules	2012-01-18 08:47:29.000000000 +0100
+++ cyrus-sasl2-2.1.25.dfsg1/debian/rules	2012-03-03 23:33:02.000000000 +0100
@@ -232,7 +232,7 @@
 	dh_strip -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
 
 override_dh_makeshlibs:
-	dh_makeshlibs -X/usr/lib/$(DEB_HOST_MULTIARCH)/sasl2
+	dh_makeshlibs -V "libsasl2-2 (>= 2.1.24)" -X/usr/lib/$(DEB_HOST_MULTIARCH)/sasl2
 
 override_dh_auto_test:
 	cd $(TMPBUILD_MIT)/saslauthd && $(MAKE) testsaslauthd


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