[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#554788: courier-authlib shlibs missing



tags 554788 + patch
thanks

On Fri, 06 Aug 2010 at 19:01:17 -0400, Steve Langasek wrote:
> On Thu, Aug 05, 2010 at 06:46:04PM +0100, Neil McGovern wrote:
> > With regards to #554788, is there a chance that this could be fixed, or
> > even replied to? I really would rather not remove courier from testing.
> 
> Based on recent policy discussions, it appears one possible workaround which
> will generate dependencies in spite of the absence of soname by using
> symbols instead.  I'm not confident that this workaround will continue to
> work, but it might be enough to get us to release with a downgraded bug.

This does seem to generate the right dependencies once I pass appropriate runes
to dh_makeshlibs[1]. I tried compiling maildrop against the resulting packages,
and it picks up a versioned dependency on courier-authlib (>= 0.63.0).

For the symbols file I assumed that libraries matching libcourier*.so were
shared libraries, that those matching libauth*.so were just loadable modules
that don't need shlibs, and that 0.63.0 (with no Debian revision) was a good
conservative option for the dependency version.

For future upstream versions it might also be necessary to drop some internal
symbols from the symbols file or mark them as optional - not everything in
there looked as though it was intended to be library ABI.

Regards,
    Simon

[1] dh_makeshlibs normally assumes that the libraries will
    still be in debian/tmp and that they'll be in a normal library path, but
    courier-authlib's use of dh_movefiles (I'm opening a bug now) and a
    non-standard library directory (#378241) makes this more awkward.
diffstat for courier-authlib_0.63.0-2 courier-authlib_0.63.0-2.1

 courier-authlib-0.63.0/debian/changelog |   13 +++
 courier-authlib-0.63.0/debian/rules     |    8 +-
 debian/courier-authlib.symbols          |  116 ++++++++++++++++++++++++++++++++
 3 files changed, 134 insertions(+), 3 deletions(-)

diff -u courier-authlib-0.63.0/debian/rules courier-authlib-0.63.0/debian/rules
--- courier-authlib-0.63.0/debian/rules
+++ courier-authlib-0.63.0/debian/rules
@@ -92,7 +92,7 @@
 	rm -f stamp-build stamp-install
 
 # Add here commands to clean up after the build process.
-	[ ! -f Makefile ] || $(MAKE) clean
+	[ ! -f Makefile ] || $(MAKE) distclean
 	dh_clean
 
 install: check stamp-build
@@ -168,6 +168,8 @@
 	dh_md5sums -i
 	dh_builddeb -i
 
+calibdir = debian/courier-authlib/usr/lib/courier-authlib
+
 # Build architecture-dependent files here.
 binary-arch: stamp-build stamp-install
 	dh_testdir
@@ -185,8 +187,8 @@
 	dh_fixperms -a
 	debian/courier_perms -a
 	dh_perl -a
-	dh_makeshlibs -a
-	dh_shlibdeps -a
+	dh_makeshlibs -pcourier-authlib -- -Pdebian/courier-authlib -e$(calibdir)/libcourier*.so
+	dh_shlibdeps -a -l$(calibdir)
 	dh_installdeb -a
 	dh_gencontrol -- -VRELUP="$(RELUP)"
 	dh_md5sums -a
diff -u courier-authlib-0.63.0/debian/changelog courier-authlib-0.63.0/debian/changelog
--- courier-authlib-0.63.0/debian/changelog
+++ courier-authlib-0.63.0/debian/changelog
@@ -1,3 +1,16 @@
+courier-authlib (0.63.0-2.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Add a symbols file for libcourier*.so to work around the library name
+    being unsuitable for dpkg-shlibdeps (based on a suggestion from
+    Steve Langasek, Closes: #554788)
+  * Tell dh_makeshlibs and dh_shlibdeps to look in the non-standard library
+    directory
+  * Make distclean rather than clean to avoid garbage in the Debian diff when
+    building twice (patch from Peter Eisentraut, Closes: #527971)
+
+ -- Simon McVittie <smcv@debian.org>  Sat, 09 Oct 2010 18:05:21 +0100
+
 courier-authlib (0.63.0-2) unstable; urgency=low
 
   * rebuild to really fix MySQL dependency (Closes: #574101)
only in patch2:
unchanged:
--- courier-authlib-0.63.0.orig/debian/courier-authlib.symbols
+++ courier-authlib-0.63.0/debian/courier-authlib.symbols
@@ -0,0 +1,116 @@
+libcourierauth.so courier-authlib #MINVER#
+* Build-Depends-Package: courier-authlib-dev
+ _auth_enumerate@Base 0.63.0
+ _authdaemondo@Base 0.63.0
+ _authdaemondopasswd@Base 0.63.0
+ auth_callback_default@Base 0.63.0
+ auth_daemon_cleanup@Base 0.63.0
+ auth_enumerate@Base 0.63.0
+ auth_generic@Base 0.63.0
+ auth_getoption@Base 0.63.0
+ auth_getoptionenv@Base 0.63.0
+ auth_getoptionenvint@Base 0.63.0
+ auth_getuserinfo@Base 0.63.0
+ auth_login@Base 0.63.0
+ auth_passwd@Base 0.63.0
+ authdaemondo@Base 0.63.0
+ authdaemondopasswd@Base 0.63.0
+ courier_auth_err@Base 0.63.0
+ courier_authdebug_authinfo@Base 0.63.0
+ courier_authdebug_login@Base 0.63.0
+ courier_authdebug_login_init@Base 0.63.0
+ courier_authdebug_login_level@Base 0.63.0
+ courier_authdebug_printf@Base 0.63.0
+ courier_safe_printf@Base 0.63.0
+ hmac_hashkey@Base 0.63.0
+ hmac_hashtext@Base 0.63.0
+ hmac_list@Base 0.63.0
+ hmac_md5@Base 0.63.0
+ hmac_sha1@Base 0.63.0
+ hmac_sha256@Base 0.63.0
+ libmail_atogid_t@Base 0.63.0
+ libmail_atotime_t@Base 0.63.0
+ libmail_atouid_t@Base 0.63.0
+ libmail_changegroup@Base 0.63.0
+ libmail_changeuidgid@Base 0.63.0
+ libmail_changeusername@Base 0.63.0
+ libmail_encode@Base 0.63.0
+ libmail_encode_end@Base 0.63.0
+ libmail_encode_start@Base 0.63.0
+ libmail_str_dev_t@Base 0.63.0
+ libmail_str_gid_t@Base 0.63.0
+ libmail_str_ino_t@Base 0.63.0
+ libmail_str_off_t@Base 0.63.0
+ libmail_str_pid_t@Base 0.63.0
+ libmail_str_size_t@Base 0.63.0
+ libmail_str_sizekb@Base 0.63.0
+ libmail_str_time_t@Base 0.63.0
+ libmail_str_uid_t@Base 0.63.0
+ libmail_strh_dev_t@Base 0.63.0
+ libmail_strh_ino_t@Base 0.63.0
+ libmail_strh_pid_t@Base 0.63.0
+ libmail_strh_time_t@Base 0.63.0
+ libmail_strtogid_t@Base 0.63.0
+ libmail_strtotime_t@Base 0.63.0
+ libmail_strtouid_t@Base 0.63.0
+ md5_context_digest@Base 0.63.0
+ md5_context_endstream@Base 0.63.0
+ md5_context_hash@Base 0.63.0
+ md5_context_hashstream@Base 0.63.0
+ md5_context_init@Base 0.63.0
+ md5_context_restore@Base 0.63.0
+ md5_crypt_redhat@Base 0.63.0
+ md5_digest@Base 0.63.0
+ md5_hash_courier@Base 0.63.0
+ md5_hash_raw@Base 0.63.0
+ random128@Base 0.63.0
+ random128_alpha@Base 0.63.0
+ random128_binary@Base 0.63.0
+ sha1_context_digest@Base 0.63.0
+ sha1_context_endstream@Base 0.63.0
+ sha1_context_hash@Base 0.63.0
+ sha1_context_hashstream@Base 0.63.0
+ sha1_context_init@Base 0.63.0
+ sha1_context_restore@Base 0.63.0
+ sha1_digest@Base 0.63.0
+ sha1_hash@Base 0.63.0
+ sha256_context_digest@Base 0.63.0
+ sha256_context_endstream@Base 0.63.0
+ sha256_context_hash@Base 0.63.0
+ sha256_context_hashstream@Base 0.63.0
+ sha256_context_init@Base 0.63.0
+ sha256_context_restore@Base 0.63.0
+ sha256_digest@Base 0.63.0
+ sha256_hash@Base 0.63.0
+ sha512_context_digest@Base 0.63.0
+ sha512_context_endstream@Base 0.63.0
+ sha512_context_hash@Base 0.63.0
+ sha512_context_hashstream@Base 0.63.0
+ sha512_context_init@Base 0.63.0
+ sha512_context_restore@Base 0.63.0
+ sha512_digest@Base 0.63.0
+ sha512_hash@Base 0.63.0
+ ssha_hash@Base 0.63.0
+ strdupdefdomain@Base 0.63.0
+libcourierauthcommon.so courier-authlib #MINVER#
+* Build-Depends-Package: courier-authlib-dev
+ auth_cram_callback@Base 0.63.0
+ auth_get_cram@Base 0.63.0
+ auth_pwd_enumerate@Base 0.63.0
+ auth_sys_common@Base 0.63.0
+ auth_syspasswd@Base 0.63.0
+ auth_verify_cram@Base 0.63.0
+ authcheckpassword@Base 0.63.0
+ authcheckpasswordmd5@Base 0.63.0
+ authcheckpasswordsha1@Base 0.63.0
+ authcryptpasswd@Base 0.63.0
+ authsasl_frombase64@Base 0.63.0
+ authsasl_tobase64@Base 0.63.0
+ courier_auth_ldap_escape@Base 0.63.0
+libcourierauthsasl.so courier-authlib #MINVER#
+* Build-Depends-Package: courier-authlib-dev
+ auth_sasl@Base 0.63.0
+ auth_sasl_ex@Base 0.63.0
+libcourierauthsaslclient.so courier-authlib #MINVER#
+* Build-Depends-Package: courier-authlib-dev
+ auth_sasl_client@Base 0.63.0

Reply to: