Le Jeu 4 Mai 2006 23:37, Steve Langasek a écrit : > On Thu, May 04, 2006 at 05:24:07PM +0200, Pierre HABOUZIT wrote: > > On Wed, May 03, 2006 at 02:43:13AM -0700, Steve Langasek wrote: > > > Is anything being done to fix this bug in cdbs? The libtunepimp > > > transition is blocked by kdemultimedia, which is RC-buggy until > > > cdbs is fixed. > > > > > > Thanks, > > > > If I understand it right, the incriminated part is that: > > > > - dh_shlibdeps (in binary-predeb target that runs after > > binary-fixup) is called before after dh_makeshlibs. > > > > - when dh_slibdeps is run on kscd, it clearly sees that > > libkcdb.so.1 is needed, but can't know without the shlibs that the > > corresponding package is libkcddb1, and also ignores that. (I > > suppose buildd logs could here confirm what I suppose). > > > > so my guess is that dh_makeshlibs must move into the binary-fixup > > target as well. > > Could you perhaps provide a test patch that implements this? > > Thanks,
ok, got the reason of the bug for real, and a patch (tested against kdemultimedia). the reason of the problem is that: dh_makeshlibs is run in binary-fixup dh_shlibdeps is run in binary-predeb binary-predeb/$(pkg) had a per package pre-dependency on binary-fixup/$(pkg) causing the calls be: for pkg in DEB_ALL_PACKAGES; do dh_makeshelibs $pkg dh_shlibdeps $pkg done where in fact you want *all* makesehlibs be called before any of the dh_shlibdeps runs, meanint a sequencing point misses. I've made any binary-predeb depend on a rule that depends on all binary-fixups, using the common -IMPL trick. the patch is tested against kdemultimedia: packages are built, and dh_makeshlibs/dh_shlibdeps are run in right order. Cheers, -- ·O· Pierre Habouzit ··O [EMAIL PROTECTED] OOO http://www.madism.org
diff -Nura cdbs-0.4.39/1/rules/debhelper.mk.in cdbs-0.4.39.fixed/1/rules/debhelper.mk.in --- cdbs-0.4.39/1/rules/debhelper.mk.in 2006-04-19 02:19:57.000000000 +0200 +++ cdbs-0.4.39.fixed/1/rules/debhelper.mk.in 2006-05-05 00:34:07.000000000 +0200 @@ -180,6 +180,12 @@ $(patsubst %,binary-strip-IMPL/%,$(DEB_ALL_PACKAGES)) :: binary-strip-IMPL/%: $(if $(is_debug_package),,dh_strip -p$(cdbs_curpkg) $(call cdbs_add_dashx,$(DEB_STRIP_EXCLUDE)) $(DEB_DH_STRIP_ARGS)) +# This rule is called right before generating debs {post,pre}{inst,rm} and controls, deps, are calculated +# for each package, but after the binary-fixup hooks have been run. +# (necessary for dh_shlibdeps to work on our own dh_makeshlibs'ed libs) +common-binary-fixup-arch:: $(patsubst %,binary-fixup/%,$(DEB_ARCH_PACKAGES)) +common-binary-fixup-indep:: $(patsubst %,binary-fixup/%,$(DEB_INDEP_PACKAGES)) + # This rule is called after stripping; it compresses, fixes permissions, # and sets up shared library information. $(patsubst %,binary-fixup/%,$(DEB_ALL_PACKAGES)) :: binary-fixup/%: binary-strip/% @@ -194,7 +200,9 @@ # This rule is called right before a packages' .deb file is made. # It is a good place to make programs setuid, change the scripts in DEBIAN/, etc. -$(patsubst %,binary-predeb/%,$(DEB_ALL_PACKAGES)) :: binary-predeb/%: binary-fixup/% +$(patsubst %,binary-predeb/%,$(DEB_ARCH_PACKAGES)) :: binary-predeb/%: common-binary-fixup-arch binary-predeb-IMPL/% +$(patsubst %,binary-predeb/%,$(DEB_INDEP_PACKAGES)) :: binary-predeb/%: common-binary-fixup-indep binary-predeb-IMPL/% +$(patsubst %,binary-predeb-IMPL/%,$(DEB_ALL_PACKAGES)) :: binary-predeb-IMPL/%: dh_installdeb -p$(cdbs_curpkg) $(DEB_DH_INSTALLDEB_ARGS) dh_perl -p$(cdbs_curpkg) $(DEB_DH_PERL_ARGS) dh_shlibdeps -p$(cdbs_curpkg) $(DEB_DH_SHLIBDEPS_ARGS)
pgpOnZjtL3y8W.pgp
Description: PGP signature