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 <s...@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_enumer...@base 0.63.0
+ _authdaemo...@base 0.63.0
+ _authdaemondopas...@base 0.63.0
+ auth_callback_defa...@base 0.63.0
+ auth_daemon_clea...@base 0.63.0
+ auth_enumer...@base 0.63.0
+ auth_gene...@base 0.63.0
+ auth_getopt...@base 0.63.0
+ auth_getoption...@base 0.63.0
+ auth_getoptionenv...@base 0.63.0
+ auth_getuseri...@base 0.63.0
+ auth_lo...@base 0.63.0
+ auth_pas...@base 0.63.0
+ authdaemo...@base 0.63.0
+ authdaemondopas...@base 0.63.0
+ courier_auth_...@base 0.63.0
+ courier_authdebug_authi...@base 0.63.0
+ courier_authdebug_lo...@base 0.63.0
+ courier_authdebug_login_i...@base 0.63.0
+ courier_authdebug_login_le...@base 0.63.0
+ courier_authdebug_pri...@base 0.63.0
+ courier_safe_pri...@base 0.63.0
+ hmac_hash...@base 0.63.0
+ hmac_hasht...@base 0.63.0
+ hmac_l...@base 0.63.0
+ hmac_...@base 0.63.0
+ hmac_s...@base 0.63.0
+ hmac_sha...@base 0.63.0
+ libmail_atogi...@base 0.63.0
+ libmail_atotim...@base 0.63.0
+ libmail_atoui...@base 0.63.0
+ libmail_changegr...@base 0.63.0
+ libmail_changeuid...@base 0.63.0
+ libmail_changeusern...@base 0.63.0
+ libmail_enc...@base 0.63.0
+ libmail_encode_...@base 0.63.0
+ libmail_encode_st...@base 0.63.0
+ libmail_str_de...@base 0.63.0
+ libmail_str_gi...@base 0.63.0
+ libmail_str_in...@base 0.63.0
+ libmail_str_of...@base 0.63.0
+ libmail_str_pi...@base 0.63.0
+ libmail_str_siz...@base 0.63.0
+ libmail_str_siz...@base 0.63.0
+ libmail_str_tim...@base 0.63.0
+ libmail_str_ui...@base 0.63.0
+ libmail_strh_de...@base 0.63.0
+ libmail_strh_in...@base 0.63.0
+ libmail_strh_pi...@base 0.63.0
+ libmail_strh_tim...@base 0.63.0
+ libmail_strtogi...@base 0.63.0
+ libmail_strtotim...@base 0.63.0
+ libmail_strtoui...@base 0.63.0
+ md5_context_dig...@base 0.63.0
+ md5_context_endstr...@base 0.63.0
+ md5_context_h...@base 0.63.0
+ md5_context_hashstr...@base 0.63.0
+ md5_context_i...@base 0.63.0
+ md5_context_rest...@base 0.63.0
+ md5_crypt_red...@base 0.63.0
+ md5_dig...@base 0.63.0
+ md5_hash_cour...@base 0.63.0
+ md5_hash_...@base 0.63.0
+ random...@base 0.63.0
+ random128_al...@base 0.63.0
+ random128_bin...@base 0.63.0
+ sha1_context_dig...@base 0.63.0
+ sha1_context_endstr...@base 0.63.0
+ sha1_context_h...@base 0.63.0
+ sha1_context_hashstr...@base 0.63.0
+ sha1_context_i...@base 0.63.0
+ sha1_context_rest...@base 0.63.0
+ sha1_dig...@base 0.63.0
+ sha1_h...@base 0.63.0
+ sha256_context_dig...@base 0.63.0
+ sha256_context_endstr...@base 0.63.0
+ sha256_context_h...@base 0.63.0
+ sha256_context_hashstr...@base 0.63.0
+ sha256_context_i...@base 0.63.0
+ sha256_context_rest...@base 0.63.0
+ sha256_dig...@base 0.63.0
+ sha256_h...@base 0.63.0
+ sha512_context_dig...@base 0.63.0
+ sha512_context_endstr...@base 0.63.0
+ sha512_context_h...@base 0.63.0
+ sha512_context_hashstr...@base 0.63.0
+ sha512_context_i...@base 0.63.0
+ sha512_context_rest...@base 0.63.0
+ sha512_dig...@base 0.63.0
+ sha512_h...@base 0.63.0
+ ssha_h...@base 0.63.0
+ strdupdefdom...@base 0.63.0
+libcourierauthcommon.so courier-authlib #MINVER#
+* Build-Depends-Package: courier-authlib-dev
+ auth_cram_callb...@base 0.63.0
+ auth_get_c...@base 0.63.0
+ auth_pwd_enumer...@base 0.63.0
+ auth_sys_com...@base 0.63.0
+ auth_syspas...@base 0.63.0
+ auth_verify_c...@base 0.63.0
+ authcheckpassw...@base 0.63.0
+ authcheckpassword...@base 0.63.0
+ authcheckpasswords...@base 0.63.0
+ authcryptpas...@base 0.63.0
+ authsasl_frombas...@base 0.63.0
+ authsasl_tobas...@base 0.63.0
+ courier_auth_ldap_esc...@base 0.63.0
+libcourierauthsasl.so courier-authlib #MINVER#
+* Build-Depends-Package: courier-authlib-dev
+ auth_s...@base 0.63.0
+ auth_sasl...@base 0.63.0
+libcourierauthsaslclient.so courier-authlib #MINVER#
+* Build-Depends-Package: courier-authlib-dev
+ auth_sasl_cli...@base 0.63.0

Reply via email to