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