Bug#637968: Please transition cyrus-sasl2 for multiarch

Steve Langasek steve.langasek at canonical.com
Mon Aug 15 23:49:17 UTC 2011


Package: cyrus-sasl2
Version: 2.1.24~rc1.dfsg1+cvs2011-05-23-4
Severity: normal
Tags: patch
User: ubuntu-devel at lists.ubuntu.com
Usertags: origin-ubuntu oneiric ubuntu-patch

Hi guys,

Please find attached a patch to cyrus-sasl2 to transition it to use of the
multiarch library paths as described at
<http://wiki.debian.org/Multiarch/Implementation>.  This patch has been
tested and included in Ubuntu Oneiric.

As a dependency of libldap-2.4-2, libsas2-2 is part of the stack packaged in
ia32-libs.  Converting cyrus-sasl2 for multiarch use, and thus facilitating
the direct installation of i386 packages on amd64 systems, will be a great
step forward in the release goal of getting rid of ia32-libs for wheezy.  So
please consider including this patch in Debian sooner rather than later.

Note that this patch includes backwards-compatibility with the
/usr/lib/sasl2 module path in case of out-of-tree modules on the system, but
that /usr/lib/$arch/sasl2 is now the preferred path.  I've tested here to
confirm that libsasl2-2 will still load modules from both directories.

Thanks,
--
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek at ubuntu.com                                     vorlon at debian.org
-------------- next part --------------
=== modified file 'debian/compat'
--- debian/compat	2011-05-25 21:57:11 +0000
+++ debian/compat	2011-08-15 22:27:29 +0000
@@ -1 +1 @@
-7
+9

=== modified file 'debian/control'
--- debian/control	2011-08-13 16:02:30 +0000
+++ debian/control	2011-08-15 22:30:46 +0000
@@ -4,7 +4,7 @@
 Maintainer: Debian Cyrus SASL Team <pkg-cyrus-sasl2-debian-devel at lists.alioth.debian.org>
 Uploaders: Fabian Fagerholm <fabbe at debian.org>, Roberto C. Sanchez <roberto at connexer.com>, Ond?ej Sur? <ondrej at debian.org>
 Standards-Version: 3.9.2
-Build-Depends: debhelper (>= 7.0.50~), quilt (>= 0.46-7~), autotools-dev, automake, autoconf, libtool, libdb-dev, libpam0g-dev (>= 0.76-22), libssl-dev (>= 0.9.7e-3), libmysqlclient-dev | libmysqlclient15-dev (>= 5.0.20), libpq-dev (>= 8.1.3-4), heimdal-multidev, krb5-multidev, libsqlite3-dev, libldap2-dev (>= 2.1.30-8), chrpath, groff-base, debconf (>= 0.5) | debconf-2.0, po-debconf, docbook-to-man, hardening-wrapper
+Build-Depends: debhelper (>= 8.1.3), quilt (>= 0.46-7~), autotools-dev, automake, autoconf, libtool, libdb-dev, libpam0g-dev (>= 0.76-22), libssl-dev (>= 0.9.7e-3), libmysqlclient-dev | libmysqlclient15-dev (>= 5.0.20), libpq-dev (>= 8.1.3-4), heimdal-multidev, krb5-multidev, libsqlite3-dev, libldap2-dev (>= 2.1.30-8), chrpath, groff-base, debconf (>= 0.5) | debconf-2.0, po-debconf, docbook-to-man, hardening-wrapper
 Build-Conflicts: heimdal-dev
 Vcs-Browser: http://git.debian.org/?p=pkg-cyrus-sasl2/cyrus-sasl2.git
 Vcs-Git: git://git.debian.org/pkg-cyrus-sasl2/cyrus-sasl2/
@@ -35,6 +36,8 @@
 
 Package: libsasl2-2
 Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Recommends: libsasl2-modules (= ${binary:Version})
 Replaces: libsasl2
@@ -57,6 +60,7 @@
 Package: libsasl2-modules
 Priority: optional
 Architecture: any
+Multi-Arch: same
 Depends: libsasl2-2 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
 Suggests: libsasl2-modules-otp, libsasl2-modules-ldap, libsasl2-modules-sql, libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal
 Description: Cyrus SASL - pluggable authentication modules
@@ -69,6 +73,7 @@
 Package: libsasl2-modules-ldap
 Priority: extra
 Architecture: any
+Multi-Arch: same
 Depends: libsasl2-modules (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
 Description: Cyrus SASL - pluggable authentication modules (LDAP)
  This is the Cyrus SASL API implementation, version 2.1. See package
@@ -79,6 +84,7 @@
 Package: libsasl2-modules-otp
 Priority: extra
 Architecture: any
+Multi-Arch: same
 Depends: libsasl2-modules (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
 Description: Cyrus SASL - pluggable authentication modules (OTP)
  This is the Cyrus SASL API implementation, version 2.1. See package
@@ -89,6 +95,7 @@
 Package: libsasl2-modules-sql
 Priority: extra
 Architecture: any
+Multi-Arch: same
 Depends: libsasl2-modules (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
 Description: Cyrus SASL - pluggable authentication modules (SQL)
  This is the Cyrus SASL API implementation, version 2.1. See package
@@ -100,6 +107,7 @@
 Package: libsasl2-modules-gssapi-mit
 Priority: extra
 Architecture: any
+Multi-Arch: same
 Depends: libsasl2-modules (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
 Conflicts: libsasl2-modules-gssapi-heimdal
 Description: Cyrus SASL - pluggable authentication modules (GSSAPI)
@@ -123,6 +131,7 @@
 
 Package: libsasl2-modules-gssapi-heimdal
 Architecture: any
+Multi-Arch: same
 Priority: extra
 Depends: libsasl2-modules (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
 Conflicts: libsasl2-modules-gssapi-mit

=== removed file 'debian/cyrus-sasl2-mit-dbg.dirs'
--- debian/cyrus-sasl2-mit-dbg.dirs	2010-12-18 11:14:59 +0000
+++ debian/cyrus-sasl2-mit-dbg.dirs	1970-01-01 00:00:00 +0000
@@ -1 +0,0 @@
-usr/lib/debug/usr/lib/sasl2/

=== modified file 'debian/libsasl2-2.install'
--- debian/libsasl2-2.install	2011-05-25 21:57:11 +0000
+++ debian/libsasl2-2.install	2011-08-15 22:27:29 +0000
@@ -1,3 +1,3 @@
-usr/lib/libsasl2.so.*
-usr/lib/sasl2/libsasldb.so*
+usr/lib/*/libsasl2.so.*
+usr/lib/*/sasl2/libsasldb.so*
 usr/lib/sasl2/berkeley_db.txt

=== removed file 'debian/libsasl2-dev.dirs'
--- debian/libsasl2-dev.dirs	2006-12-13 23:22:02 +0000
+++ debian/libsasl2-dev.dirs	1970-01-01 00:00:00 +0000
@@ -1,3 +0,0 @@
-usr/include/sasl
-usr/lib
-usr/share/man/man3

=== modified file 'debian/libsasl2-dev.install'
--- debian/libsasl2-dev.install	2011-05-25 21:57:11 +0000
+++ debian/libsasl2-dev.install	2011-08-15 22:27:29 +0000
@@ -1,4 +1,4 @@
 usr/include/sasl
-usr/lib/libsasl2.so
-usr/lib/libsasl2.a
+usr/lib/*/libsasl2.so
+usr/lib/*/libsasl2.a
 usr/share/man/man3

=== removed file 'debian/libsasl2-modules-gssapi-heimdal.dirs'
--- debian/libsasl2-modules-gssapi-heimdal.dirs	2010-08-19 20:45:57 +0000
+++ debian/libsasl2-modules-gssapi-heimdal.dirs	1970-01-01 00:00:00 +0000
@@ -1,2 +0,0 @@
-usr/lib/sasl2
-usr/share/lintian/overrides

=== modified file 'debian/libsasl2-modules-gssapi-heimdal.install'
--- debian/libsasl2-modules-gssapi-heimdal.install	2011-05-25 21:57:11 +0000
+++ debian/libsasl2-modules-gssapi-heimdal.install	2011-08-15 22:27:29 +0000
@@ -1 +1 @@
-usr/lib/sasl2/libgssapiv2.so*
+usr/lib/*/sasl2/libgssapiv2.so*

=== removed file 'debian/libsasl2-modules-gssapi-mit.dirs'
--- debian/libsasl2-modules-gssapi-mit.dirs	2006-12-22 00:04:32 +0000
+++ debian/libsasl2-modules-gssapi-mit.dirs	1970-01-01 00:00:00 +0000
@@ -1 +0,0 @@
-usr/lib/sasl2

=== modified file 'debian/libsasl2-modules-gssapi-mit.install'
--- debian/libsasl2-modules-gssapi-mit.install	2011-05-27 17:05:30 +0000
+++ debian/libsasl2-modules-gssapi-mit.install	2011-08-15 22:27:29 +0000
@@ -1,3 +1,3 @@
-usr/lib/sasl2/libgssapiv2.so*
-usr/lib/sasl2/libscram.so*
-usr/lib/sasl2/libgs2.so*
+usr/lib/*/sasl2/libgssapiv2.so*
+usr/lib/*/sasl2/libscram.so*
+usr/lib/*/sasl2/libgs2.so*

=== removed file 'debian/libsasl2-modules-ldap.dirs'
--- debian/libsasl2-modules-ldap.dirs	2006-12-22 00:04:32 +0000
+++ debian/libsasl2-modules-ldap.dirs	1970-01-01 00:00:00 +0000
@@ -1 +0,0 @@
-usr/lib/sasl2

=== modified file 'debian/libsasl2-modules-ldap.install'
--- debian/libsasl2-modules-ldap.install	2011-05-25 21:57:11 +0000
+++ debian/libsasl2-modules-ldap.install	2011-08-15 22:27:29 +0000
@@ -1 +1 @@
-usr/lib/sasl2/libldapdb.so*
+usr/lib/*/sasl2/libldapdb.so*

=== removed file 'debian/libsasl2-modules-otp.dirs'
--- debian/libsasl2-modules-otp.dirs	2009-06-04 16:03:06 +0000
+++ debian/libsasl2-modules-otp.dirs	1970-01-01 00:00:00 +0000
@@ -1,2 +0,0 @@
-usr/lib/sasl2
-usr/share/lintian/overrides

=== modified file 'debian/libsasl2-modules-otp.install'
--- debian/libsasl2-modules-otp.install	2011-05-25 21:57:11 +0000
+++ debian/libsasl2-modules-otp.install	2011-08-15 22:27:29 +0000
@@ -1 +1 @@
-usr/lib/sasl2/libotp.so*
+usr/lib/*/sasl2/libotp.so*

=== removed file 'debian/libsasl2-modules-sql.dirs'
--- debian/libsasl2-modules-sql.dirs	2006-12-22 00:04:32 +0000
+++ debian/libsasl2-modules-sql.dirs	1970-01-01 00:00:00 +0000
@@ -1 +0,0 @@
-usr/lib/sasl2

=== modified file 'debian/libsasl2-modules-sql.install'
--- debian/libsasl2-modules-sql.install	2011-05-25 21:57:11 +0000
+++ debian/libsasl2-modules-sql.install	2011-08-15 22:27:29 +0000
@@ -1 +1 @@
-usr/lib/sasl2/libsql.so*
+usr/lib/*/sasl2/libsql.so*

=== removed file 'debian/libsasl2-modules.dirs'
--- debian/libsasl2-modules.dirs	2009-06-04 16:03:06 +0000
+++ debian/libsasl2-modules.dirs	1970-01-01 00:00:00 +0000
@@ -1,2 +0,0 @@
-usr/lib/sasl2
-usr/share/lintian/overrides

=== modified file 'debian/libsasl2-modules.install'
--- debian/libsasl2-modules.install	2011-05-25 21:57:11 +0000
+++ debian/libsasl2-modules.install	2011-08-15 22:27:29 +0000
@@ -1,6 +1,6 @@
-usr/lib/sasl2/libanonymous.so*
-usr/lib/sasl2/libcrammd5.so*
-usr/lib/sasl2/libdigestmd5.so*
-usr/lib/sasl2/liblogin.so*
-usr/lib/sasl2/libntlm.so*
-usr/lib/sasl2/libplain.so*
+usr/lib/*/sasl2/libanonymous.so*
+usr/lib/*/sasl2/libcrammd5.so*
+usr/lib/*/sasl2/libdigestmd5.so*
+usr/lib/*/sasl2/liblogin.so*
+usr/lib/*/sasl2/libntlm.so*
+usr/lib/*/sasl2/libplain.so*

=== modified file 'debian/rules'
--- debian/rules	2011-08-13 16:08:26 +0000
+++ debian/rules	2011-08-15 22:27:29 +0000
@@ -20,6 +20,8 @@
 #export DH_VERBOSE=1 # uncomment this to turn on verbose mode
 export DEB_BUILD_HARDENING=1
 
+DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+
 # Save Berkeley DB used for building the package
 BDB_VERSION ?= $(shell LC_ALL=C dpkg-query -l 'libdb[45].[0-9]-dev' | grep ^ii | sed -e 's|.*\s\libdb\([45]\.[0-9]\)-dev\s.*|\1|')
 
@@ -78,7 +80,8 @@
 	--with-pam \
 	--with-saslauthd=/var/run/saslauthd \
 	$(CONFIGURE_LDAP) \
-	--with-configdir=/etc/sasl2:/etc/sasl:/usr/lib/sasl2 \
+	--with-configdir=/etc/sasl2:/etc/sasl:/usr/lib/$(DEB_HOST_MULTIARCH)/sasl2:/usr/lib/sasl2 \
+	--with-plugindir=/usr/lib/$(DEB_HOST_MULTIARCH)/sasl2:/usr/lib/sasl2 \
 	--sysconfdir=/etc \
 	--with-devrandom=/dev/urandom
 
@@ -111,7 +114,7 @@
 ### The Makefile targets begin. ###
 
 %:
-	dh --with=quilt $@
+	dh $@ --with=quilt
 
 override_dh_auto_clean:
 	dh_auto_clean -B$(TMPBUILD_MIT)
@@ -158,8 +161,8 @@
 		>> debian/README.configure-options
 
 override_dh_auto_build:
-	dh_auto_build -B$(TMPBUILD_MIT)
-	dh_auto_build -B$(TMPBUILD_HEIMDAL)
+	dh_auto_build -B$(TMPBUILD_MIT) -- sasldir=/usr/lib/$(DEB_HOST_MULTIARCH)/sasl2
+	dh_auto_build -B$(TMPBUILD_HEIMDAL) -- sasldir=/usr/lib/$(DEB_HOST_MULTIARCH)/sasl2
 
 	# Build sample-{client,server}
 	$(MAKE) -f $(CURDIR)/debian/sample/Makefile -C $(CURDIR)/sample T=$(TMPBUILD_MIT)
@@ -173,10 +176,12 @@
 	/usr/bin/pod2man --stderr debian/gen-auth/gen-auth >gen-auth.1
 
 override_dh_auto_install:
-	dh_auto_install -B$(TMPBUILD_MIT) -- DESTDIR=$(TMPPKG_MIT)
-	dh_auto_install -B$(TMPBUILD_HEIMDAL) -- DESTDIR=$(TMPPKG_HEIMDAL)
+	dh_auto_install -B$(TMPBUILD_MIT) -- DESTDIR=$(TMPPKG_MIT) sasldir=/usr/lib/$(DEB_HOST_MULTIARCH)/sasl2
+	dh_auto_install -B$(TMPBUILD_HEIMDAL) -- DESTDIR=$(TMPPKG_HEIMDAL) sasldir=/usr/lib/$(DEB_HOST_MULTIARCH)/sasl2
+
 
 	# Note the version of Berkeley DB used to build this package
+	mkdir -p $(TMPPKG_MIT)/usr/lib/sasl2
 	echo $(BDB_VERSION) > $(TMPPKG_MIT)/usr/lib/sasl2/berkeley_db.txt
 
 	# Alter the default location and names of files to fit Debian
@@ -201,7 +206,7 @@
 	# Alter the rpath of certain binaries and shared libraries.
 	chrpath -d $(TMPPKG_MIT)/usr/sbin/sasldblistusers2 \
 		$(TMPPKG_MIT)/usr/sbin/saslpasswd2
-	chrpath -d $(TMPPKG_MIT)/usr/lib/sasl2/libsql.so.2.0.24
+	chrpath -d $(TMPPKG_MIT)/usr/lib/$(DEB_HOST_MULTIARCH)/sasl2/libsql.so.2.0.24
 
 	# Install the sasl-sample-client and -server man pages.
 	dh_installman -psasl2-bin sasl-sample-client.8 sasl-sample-server.8
@@ -226,10 +231,11 @@
 override_dh_strip:
 	dh_strip -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 -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.24 debian/cyrus-sasl2-mit-dbg/usr/lib/debug/usr/lib/sasl2/
+	mkdir -p debian/cyrus-sasl2-mit-dbg/usr/lib/debug/usr/lib/$(DEB_HOST_MULTIARCH)/sasl2
+	mv debian/cyrus-sasl2-dbg/usr/lib/debug/usr/lib/$(DEB_HOST_MULTIARCH)/sasl2/libgssapiv2.so.2.0.24 debian/cyrus-sasl2-mit-dbg/usr/lib/debug/usr/lib/$(DEB_HOST_MULTIARCH)/sasl2/
 
 override_dh_makeshlibs:
-	dh_makeshlibs -X/usr/lib/sasl2
+	dh_makeshlibs -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