Skip Menu |

This queue is for tickets about the Gtk2-MozEmbed CPAN distribution.

Report information
The Basics
Id: 14795
Status: resolved
Priority: 0/
Queue: Gtk2-MozEmbed

People
Owner: Nobody in particular
Requestors: jose.auguste-etienne [...] cgss-guyane.fr
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 0.04
Fixed in: (no value)



Subject: [Gtk2-MozEmbed-0.04] build error : LD_RUN_PATH not properly set ?
Hi, after using the patch reported here http://rt.cpan.org/NoAuth/Bug.html?id=14792 I was trying to build Gtk2-MozEmbed-0.04, but got an error when running make $ perl Makefile.PL Including ApiDoc pod... Loaded 3 type definitions from maps 2 GFlags 1 GtkObject Found Mozilla::DOM in /home/joseae/perl5/lib/site_perl/5.8.7/i686-linux/Mozilla/DOM/Install Found Gtk2 in /home/joseae/perl5/lib/i686-linux/Gtk2/Install Found Glib in /home/joseae/perl5/lib/i686-linux/Glib/Install Writing build/IFiles.pm Checking if your kit is complete... Looks good Unrecognized argument in LIBS ignored: '-pthread' Writing Makefile for Gtk2::MozEmbed [joseae@sinf009w Gtk2-MozEmbed-0.04]$ make cp gtkmozembed2perl.h blib/arch/Gtk2/MozEmbed/Install/gtkmozembed2perl.h cp build/IFiles.pm blib/arch/Gtk2/MozEmbed/Install/Files.pm cp build/gtkmozembed2perl-autogen.h blib/arch/Gtk2/MozEmbed/Install/gtkmozembed2perl-autogen.h cp MozEmbed.pm blib/lib/Gtk2/MozEmbed.pm cp /home/joseae/perl5/CPAN/build/Gtk2-MozEmbed-0.04/gtkmozembed.typemap blib/arch/Gtk2/MozEmbed/Install/gtkmozembed.typemap cp /home/joseae/perl5/CPAN/build/Gtk2-MozEmbed-0.04/build/gtkmozembed2perl.typemap blib/arch/Gtk2/MozEmbed/Install/gtkmozembed2perl.typemap /home/joseae/perl5/bin/perl /home/joseae/perl5/lib/5.8.7/ExtUtils/xsubpp -noprototypes -C++ -typemap /home/joseae/perl5/lib/5.8.7/ExtUtils/typemap -typemap /home/joseae/perl5/CPAN/build/Gtk2-MozEmbed-0.04/gtkmozembed.typemap -typemap /home/joseae/perl5/CPAN/build/Gtk2-MozEmbed-0.04/build/gtkmozembed2perl.typemap -typemap /home/joseae/perl5/lib/i686-linux/Glib/Install/typemap -typemap /home/joseae/perl5/lib/site_perl/5.8.7/i686-linux/Mozilla/DOM/Install/mozilladom.typemap -typemap /home/joseae/perl5/lib/i686-linux/Gtk2/Install/gtk2perl.typemap -typemap /home/joseae/perl5/lib/i686-linux/Gtk2/Install/gdk.typemap -typemap /home/joseae/perl5/lib/i686-linux/Gtk2/Install/gtk.typemap -typemap /home/joseae/perl5/lib/i686-linux/Gtk2/Install/pango.typemap xs/GtkMozEmbed.xs > xs/GtkMozEmbed.xsc && mv xs/GtkMozEmbed.xsc xs/GtkMozEmbed.c c++ -c -I/usr/include/mozilla-firefox-1.0.2/gtkembedmoz -I/usr/include/mozilla-firefox-1.0.2 -I/usr/include/mozilla-firefox-1.0.2/xpcom -I/usr/include/mozilla-firefox-1.0.2/string -I/usr/include/mozilla-firefox-1.0.2/nspr -I/home/joseae/perl5/lib/i686-linux/Glib/Install -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -pthread -I. -I/home/joseae/perl5/lib/site_perl/5.8.7/i686-linux/Mozilla/DOM/Install -I./build -I/usr/include/mozilla-firefox-1.0.2/dom -I/usr/include/mozilla-firefox-1.0.2/webbrwsr -I/usr/include/mozilla-firefox-1.0.2/content -I/usr/include/mozilla-firefox-1.0.2/docshell -I/home/joseae/perl5/lib/i686-linux/Gtk2/Install -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/freetype2/freetype2 -I/usr/include/freetype2/freetype2/config -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"0.04\" -DXS_VERSION=\"0.04\" -o xs/GtkMozEmbed.o -fpic "-I/home/joseae/perl5/lib/5.8.7/i686-linux/CORE" xs/GtkMozEmbed.c Running Mkbootstrap for Gtk2::MozEmbed () chmod 644 MozEmbed.bs rm -f blib/arch/auto/Gtk2/MozEmbed/MozEmbed.so LD_RUN_PATH="/usr/lib/mozilla-firefox-1.0.2:/usr/lib:/lib" LD_RUN_PATH= gcc -shared -L/usr/local/lib xs/GtkMozEmbed.o -o blib/arch/auto/Gtk2/MozEmbed/MozEmbed.so -L/usr/lib/mozilla-firefox-1.0.2 -lgtkembedmoz -lxpcom -lplds4 -lplc4 -lnspr4 -lpthread -ldl -lgobject-2.0 -lglib-2.0 -lgthread-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgmodule-2.0 chmod 755 blib/arch/auto/Gtk2/MozEmbed/MozEmbed.so cp MozEmbed.bs blib/arch/auto/Gtk2/MozEmbed/MozEmbed.bs chmod 644 blib/arch/auto/Gtk2/MozEmbed/MozEmbed.bs /home/joseae/perl5/bin/perl -I blib/lib -I blib/arch -MGlib::GenPod -MGtk2::MozEmbed \ -e 'add_types ("/home/joseae/perl5/lib/i686-linux/Glib/Install/doctypes", "/home/joseae/perl5/lib/i686-linux/Gtk2/Install/doctypes", "/home/joseae/perl5/lib/site_perl/5.8.7/i686-linux/Mozilla/DOM/Install/doctypes"); $Glib::GenPod::COPYRIGHT="Copyright (C) 2004-2005 by the gtk2-perl team.\n\nThis software is licensed under the LGPL. See L<Gtk2::MozEmbed> for a full\nnotice.\n"; $Glib::GenPod::MAIN_MOD="Gtk2::MozEmbed"; xsdoc2pod("build/doc.pl", "blib/lib", "build/podindex");' Can't load 'blib/arch/auto/Gtk2/MozEmbed/MozEmbed.so' for module Gtk2::MozEmbed: libgtkembedmoz.so: cannot open shared object file: No such file or directory at /home/joseae/perl5/lib/5.8.7/i686-linux/DynaLoader.pm line 230. at -e line 0 Compilation failed in require. BEGIN failed--compilation aborted. make: *** [build/podindex] Erreur 2 $ ldd blib/arch/auto/Gtk2/MozEmbed/MozEmbed.so|grep 'not found' libgtkembedmoz.so => not found libxpcom.so => not found $ locate libgtkembedmoz /usr/lib/mozilla-firefox-1.0.2/libgtkembedmoz.so $ locate libxpcom.so /usr/lib/mozilla-firefox-1.0.2/libxpcom.so I noticed that we have above LD_RUN_PATH="/usr/lib/mozilla-firefox-1.0.2:/usr/lib:/lib" LD_RUN_PATH= this means that LD_RUN_PATH is properly set then unset. when I run the same command lines : 1) gcc with LD_RUN_PATH properly set, 2) perl -e 'add_types...', 3) make test I get LD_RUN_PATH="/usr/lib/mozilla-firefox-1.0.2:/usr/lib:/lib" gcc -shared -L/usr/local/lib xs/GtkMozEmbed.o -o blib/arch/auto/Gtk2/MozEmbed/MozEmbed.so -L/usr/lib/mozilla-firefox-1.0.2 -lgtkembedmoz -lxpcom -lplds4 -lplc4 -lnspr4 -lpthread -ldl -lgobject-2.0 -lglib-2.0 -lgthread-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgmodule-2.0 [joseae@sinf009w Gtk2-MozEmbed-0.04]$ chmod 755 blib/arch/auto/Gtk2/MozEmbed/MozEmbed.so [joseae@sinf009w Gtk2-MozEmbed-0.04]$ cp MozEmbed.bs blib/arch/auto/Gtk2/MozEmbed/MozEmbed.bs $ /home/joseae/perl5/bin/perl -I blib/lib -I blib/arch -MGlib::GenPod -MGtk2::MozEmbed \ Show quoted text
> -e 'add_types
("/home/joseae/perl5/lib/i686-linux/Glib/Install/doctypes", "/home/joseae/perl5/lib/i686-linux/Gtk2/Install/doctypes", "/home/joseae/perl5/lib/site_perl/5.8.7/i686-linux/Mozilla/DOM/Install/doctypes"); $Glib::GenPod::COPYRIGHT="Copyright (C) 2004-2005 by the gtk2-perl team.\n\nThis software is licensed under the LGPL. See L<Gtk2::MozEmbed> for a full\nnotice.\n"; $Glib::GenPod::MAIN_MOD="Gtk2::MozEmbed"; xsdoc2pod("build/doc.pl", "blib/lib", "build/podindex");' loaded 7 extra types from /home/joseae/perl5/lib/i686-linux/Glib/Install/doctypes loaded 9 extra types from /home/joseae/perl5/lib/i686-linux/Gtk2/Install/doctypes loaded 111 extra types from /home/joseae/perl5/lib/site_perl/5.8.7/i686-linux/Mozilla/DOM/Install/doctypes podifying blib/lib/Gtk2/MozEmbed/main.pod $ make test PERL_DL_NONLAZY=1 /home/joseae/perl5/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/GtkMozEmbed....ok All tests successful. Files=1, Tests=8, 0 wallclock secs ( 0.31 cusr + 0.04 csys = 0.35 CPU) Do you have any clue on why is there a problem with the LD_RUN_PATH setting ? perl -v follows Hope this helps, Regards José A-E OS is Mandriva LE2005, $ uname -r 2.6.11-12mdk Perl version 5.8.7 $ perl -v This is perl, v5.8.7 built for i686-linux Copyright 1987-2005, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using `man perl' or `perldoc perl'. If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.
[guest - Wed Sep 28 10:30:08 2005]: Show quoted text
> LD_RUN_PATH="/usr/lib/mozilla-firefox-1.0.2:/usr/lib:/lib"
LD_RUN_PATH= gcc -shared -L/usr/local/lib xs/GtkMozEmbed.o -o blib/arch/auto/Gtk2/MozEmbed/MozEmbed.so [...] Show quoted text
> I noticed that we have above > > LD_RUN_PATH="/usr/lib/mozilla-firefox-1.0.2:/usr/lib:/lib" > LD_RUN_PATH= > > this means that LD_RUN_PATH is properly set then unset.
Yeah. In the Makefile.PL's WriteMakefile() call, there is this line: LD => "LD_RUN_PATH=$libdir $Config{ld}", It was originally added specifically because the Mozilla/Firefox libraries reside outside the normal path. $libdir comes from pkg-config: my $libdir = `pkg-config --variable=libdir $pkg`; So it seems like your .pc file for firefox doesn't contain a libdir entry. I wonder where the correct LD_RUN_PATH comes from, though. Any insights?
[jose.auguste-etienne@cgss-guyane.fr - Mon Oct 10 16:17:32 2005]: Show quoted text
> Please find attached, a better patch, I hope
Ah, okay. Scott Lanning already submitted a patch for this and it got applied to HEAD of CVS. I'll prepare a release with these two fixes. Thanks.