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 $@
 

Reply via email to