clone 546626 -1 reassign -1 perl 5.10.1-1 retitle -1 ExtUtils::LibList unconditionally chooses libfoo_s.a over libfoo.a severity -1 normal tag 546626 patch thanks
On Mon, Sep 14, 2009 at 08:47:32PM +0300, Niko Tyni wrote: > Package: libgtk2-mozembed-perl > Version: 0.08-2 > Severity: important > User: debian-p...@lists.debian.org > Usertags: perl-5.10.1-transition > > This package fails to build with Perl 5.10.1 (currently in experimental.) > /usr/bin/perl: symbol lookup error: > blib/arch/auto/Gtk2/MozEmbed/MozEmbed.so: undefined symbol: XPCOMGlueStartup > It boils down to this: > > % perl -MExtUtils::Liblist -E 'say "$]: " . > (ExtUtils::Liblist->ext("-L/usr/lib/xulrunner-devel-1.9/sdk/lib > -lxpcomglue"))[0]' > 5.010000: -L/usr/lib/xulrunner-devel-1.9/sdk/lib -lxpcomglue > 5.010001: -L/usr/lib/xulrunner-devel-1.9/sdk/lib -lxpcomglue_s > which is due to this change in ExtUtils::MakeMaker 6.45_01: > } elsif (-f ($fullname="$thispth/lib${thislib}_s$Config_libext") > - && (! $Config{'archname'} =~ /RM\d\d\d-svr4/) > + && ($Config{'archname'} !~ /RM\d\d\d-svr4/) > && ($thislib .= "_s") ){ # we must explicitly use _s version > So, ExtUtils::LibList now prefers the _s variant as it was apparently > meant to do earlier too but didn't (because '!' has a stronger precedence > than '=~', so (! $Config{'archname'} =~ /RM\d\d\d-svr4/) was never true). I believe the intended effect is to support systems where libfoo_s.a is the shared version of libfoo.a, and this conflicts with the way xulrunner names its libraries. I'm cloning a bug against perl; this needs to be discussed upstream, and it would be nice to have at least a way to override the above behaviour. The attached (ugly) workaround makes the libgtk2-mozembed-perl package build for me. -- Niko Tyni nt...@debian.org
diff --git a/debian/rules b/debian/rules index 14317f6..9681a02 100755 --- a/debian/rules +++ b/debian/rules @@ -9,6 +9,11 @@ build-stamp: $(QUILT_STAMPFN) dh --after dh_auto_test build touch $@ +# workaround for #546626 +override_dh_auto_configure: + dh_auto_configure + perl -pi -e s/xpcomglue_s/xpcomglue/g Makefile + clean: unpatch dh $@