Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 360893

Summary: net-libs/libproxy uses libmozjs.so provided by dev-lang/spidermonkey instead of xulrunner one causing undefined symbols
Product: Gentoo Linux Reporter: Graham Murray <gmurray>
Component: [OLD] GNOMEAssignee: Freedesktop bugs <freedesktop-bugs>
Status: RESOLVED FIXED    
Severity: major CC: aklhfex, basdebakker, bugsgentoo, mozilla, ooblick, raimue
Priority: Normal    
Version: 10.0   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 366791    
Attachments: Build log for libproxy
mozilla-pkgconfg.patch

Description Graham Murray 2011-03-28 10:00:32 UTC
Building mail-client/evolution-2.32.2-r2 fails with a link error against libproxy. 

Libproxy was upgraded to 0.4.6-r2 earlier earlier in the emerge update and built without any problems. I would have expected missing symbols to be detected during the build of libproxy and for the build to fail. 

I do not think that this is a duplicate of bug #359879 as I had already upgraded to xulrunner-2.0 prior to the upgrade of libproxy and evolution.

 CCLD   evolution
/usr/lib/libproxy.so.1: undefined reference to `JS_StrictPropertyStub'
collect2: ld returned 1 exit status
make[4]: *** [evolution] Error 1

emerge --info evolution
Portage 2.2.0_alpha29 (default/linux/x86/10.0/desktop/gnome, gcc-4.5.2, glibc-2.13-r2, 2.6.38-gentoo-r1 i686)
=================================================================
                         System Settings
=================================================================
System uname: Linux-2.6.38-gentoo-r1-i686-Intel-R-_Core-TM-2_Duo_CPU_E8200_@_2.66GHz-with-gentoo-2.0.2
Timestamp of tree: Mon, 28 Mar 2011 06:30:01 +0000
app-shells/bash:     4.2_p8
dev-java/java-config: 2.1.11-r3
dev-lang/python:     2.6.6-r2, 2.7.1-r1, 3.1.3-r1, 3.2
dev-util/cmake:      2.8.4
sys-apps/baselayout: 2.0.2
sys-apps/openrc:     0.8.0
sys-apps/sandbox:    2.5
sys-devel/autoconf:  2.13, 2.68
sys-devel/automake:  1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.21
sys-devel/gcc:       4.3.5, 4.4.5, 4.5.2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.4-r1
sys-devel/make:      3.82
virtual/os-headers:  2.6.38 (sys-kernel/linux-headers)
Repositories: gentoo sunrise x11 Grahams_local_portage
Installed sets: @system
ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_LICENSE="*"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=native -mtune=native -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -march=native -mtune=native -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps y"
FEATURES="assume-digests binpkg-logs buildsyspkg distlocks fixlafiles fixpackages news parallel-fetch preserve-libs protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS=""
GENTOO_MIRRORS="http://de-mirror.org/distro/gentoo/ http://gentoo.tiscali.nl/ http://mirror.ovh.net/gentoo-distfiles/ http://ftp.uni-erlangen.de/pub/mirrors/gentoo http://ftp.snt.utwente.nl/pub/os/linux/gentoo"
LANG="en_GB.UTF-8"
LC_ALL="en_GB.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en_GB en"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/sunrise /var/lib/layman/x11 /usr/portage/local"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa apache2 avahi bash-completion berkdb branding bzip2 cairo caps cdr cli consolekit cracklib crypt cups curl cvs cxx dbus doc dri dts dvd dvdr eds emacs emboss encode evo examples exif expat fam ffmpeg flac fortran gd gdbm gdu geoip gif gnome gnome-keyring gnutls gpm gstreamer gtk gtkhtml htmlhandbook iconv icu idn imagemagick imlib ipv6 java jpeg kde kdehiddenvisibility lcms ldap libnotify libsamplerate logrotate lzma lzo mad mikmod mmap mmx mng modules mono mp3 mp4 mpeg mudflap nautilus ncurses nls nptl nptlonly nsplugin ogg opengl openmp pam pango pcre pdf perl png policykit postgres ppds pppd pulseaudio python qt3support qt4 readline samba sdl semantic-desktop session speex spell sqlite sqlite3 sse sse2 ssl startup-notification subversion svg sysfs tcl tcpd theora threads tiff tk truetype udev unicode usb vim-syntax vorbis x264 x86 xattr xcb xcomposite xml xorg xulrunner xv xvid zlib" ALSA_CARDS="intel-hda" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" APACHE2_MPMS="worker" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_GB en" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="vesa fbdev nv nouveau" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

=================================================================
                        Package Settings
=================================================================

mail-client/evolution-2.32.2-r1 was built with the following:
USE="crypt doc gstreamer ldap python ssl (-clutter) -connman -kerberos -networkmanager"
Comment 1 Samuli Suominen (RETIRED) gentoo-dev 2011-03-28 10:10:11 UTC
Well, make sure you don't have old libproxy or xulrunner in, say, /usr/local/lib and /usr/local/include.

Then post build.log of libproxy, with verbose output:

CMAKE_VERBOSE=yes emerge -av libproxy
Comment 2 Graham Murray 2011-03-28 11:14:10 UTC
Created attachment 267515 [details]
Build log for libproxy

I cannot find any old xulrunner or libproxy on my system. The verbose libproxy build log is attached
Comment 3 Nirbheek Chauhan (RETIRED) gentoo-dev 2011-03-28 11:23:41 UTC
Do you have spidermonkey installed?
Comment 4 Graham Murray 2011-03-28 11:37:18 UTC
(In reply to comment #3)
> Do you have spidermonkey installed?

Yes.

#emerge -pv spidermonkey

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] dev-lang/spidermonkey-1.9.2.15  USE="threadsafe" 0 kB
Comment 5 Samuli Suominen (RETIRED) gentoo-dev 2011-03-28 11:46:08 UTC
(In reply to comment #4)
> (In reply to comment #3)
> > Do you have spidermonkey installed?
> 
> Yes.
> 
> #emerge -pv spidermonkey
> 
> These are the packages that would be merged, in order:
> 
> Calculating dependencies... done!
> [ebuild   R    ] dev-lang/spidermonkey-1.9.2.15  USE="threadsafe" 0 kB

- lddtree /usr/lib/libproxy.so.1.0.0
post output please
- emerge -C spidermonkey
- lddtree /usr/lib/libproxy.so.1.0.0
post output please
- emerge -1 libproxy
does it work?
Comment 6 Graham Murray 2011-03-28 12:29:48 UTC
(In reply to comment #5)

> - lddtree /usr/lib/libproxy.so.1.0.0
> post output please

libproxy.so.1 => /usr/lib/libproxy.so.1 (interpreter => none)
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RUNPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
    libmodman.so.1 => /usr/lib/libmodman.so.1
        libdl.so.2 => /lib/libdl.so.2
            ld-linux.so.2 => /lib/ld-linux.so.2
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RUNPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
    libpthread.so.0 => /lib/libpthread.so.0
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RUNPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
    libmozjs.so => /usr/lib/xulrunner-devel-2.0/lib/libmozjs.so
        libnspr4.so => /usr/lib/libnspr4.so
        libm.so.6 => /lib/libm.so.6
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RUNPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
    libstdc++.so.6 => /usr/lib/gcc/i686-pc-linux-gnu/4.5.2/libstdc++.so.6
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RUNPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
    libc.so.6 => /lib/libc.so.6
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RUNPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
    libgcc_s.so.1 => /usr/lib/gcc/i686-pc-linux-gnu/4.5.2/libgcc_s.so.1


> - emerge -C spidermonkey
> - lddtree /usr/lib/libproxy.so.1.0.0

libproxy.so.1 => /usr/lib/libproxy.so.1 (interpreter => none)
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RUNPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
    libmodman.so.1 => /usr/lib/libmodman.so.1
        libdl.so.2 => /lib/libdl.so.2
            ld-linux.so.2 => /lib/ld-linux.so.2
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RUNPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
    libpthread.so.0 => /lib/libpthread.so.0
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RUNPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
    libmozjs.so => /usr/lib/xulrunner-devel-2.0/lib/libmozjs.so
        libnspr4.so => /usr/lib/libnspr4.so
        libm.so.6 => /lib/libm.so.6
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RUNPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
    libstdc++.so.6 => /usr/lib/gcc/i686-pc-linux-gnu/4.5.2/libstdc++.so.6
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RUNPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
    libc.so.6 => /lib/libc.so.6
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
scanelf: rpath_security_checks(): Maybe? sec problem with DT_RUNPATH='lib:/usr/lib/xulrunner-devel-2.0/lib' in /usr/lib/libproxy.so.1
    libgcc_s.so.1 => /usr/lib/gcc/i686-pc-linux-gnu/4.5.2/libgcc_s.so.1


> - emerge -1 libproxy
> does it work?

Yes, it now works. But there are other installed packages which depend on spidermonkey, so the next emerge --update will merge it.

As the ldd_tree outputs were identical, I wonder if perhaps the loader is respecting the DT_RPATH and/or DT_RUNPATH in libproxy.so.1 but that the linker is not and attempting to link against the wrong libmozjs?
Comment 7 Pacho Ramos gentoo-dev 2011-03-29 08:03:52 UTC
Where is the problem here then? Spidermonkey?
Comment 8 Nirbheek Chauhan (RETIRED) gentoo-dev 2011-03-29 08:28:59 UTC
spidermonkey installs /usr/lib*/libmozjs.so, while xulrunner installs it in /usr/lib*/xulrunner-2.0, so unless the Makefiles give the proper library path, spidermonkey's lib will get picked up.

My libtool/autotools-fu is not strong, someone will have to look at this.
Comment 9 Chr0nos 2011-03-31 11:54:13 UTC
i had the same error when tring to compile: dev-libs/totem-pl-parser-2.32.4
"/usr/lib64/libproxy.so: undefined reference to `JS_StrictPropertyStub'"

i tried the "emerge -1 libproxy" but the error is still here

how can i fix it please ?
Comment 10 bugsgentoo 2011-04-06 18:39:17 UTC
Got the same problem emerging gnome-panel-2.32.1-r2.
Comment 11 Vijayender 2011-04-07 07:06:51 UTC
Make sure your /usr/lib*/libmozjs.so is a symlink to /usr/lib*/xulrunner-2.0/libmozjs.so and the problem should be gone.

If your current /usr/lib*/libmozjs.so is a symlink, you could make it point to xulrunner-2.0/libmozjs.so. (Though an ugly fix.)
Comment 12 Pacho Ramos gentoo-dev 2011-06-04 10:39:33 UTC
I read somewhere that libmozjs was going to be only provided by spidermonkey, maybe that could help on this :-/
Comment 13 Pacho Ramos gentoo-dev 2011-06-05 10:34:53 UTC
The same problem on opensuse:
https://bugzilla.novell.com/show_bug.cgi?id=479505
Comment 14 Pacho Ramos gentoo-dev 2011-06-05 10:47:03 UTC
Created attachment 275873 [details, diff]
mozilla-pkgconfg.patch

And this is the opensuse patch for handling this to be applied to xulrunner
Comment 15 Pacho Ramos gentoo-dev 2011-06-05 12:05:08 UTC
+*libproxy-0.4.6-r3 (05 Jun 2011)
+
+  05 Jun 2011; Pacho Ramos <pacho@gentoo.org> +libproxy-0.4.6-r3.ebuild,
+  +files/libproxy-0.4.6-backports.patch,
+  +files/libproxy-0.4.6-flags-mixing.patch:
+  Revision bump disabling webkit support as it causes problems like bug #366791
+  (we will be able to recover this with webkit-1.6), do the same for xulrunner
+  support because of important problems like bug #360893 giving unresolved
+  symbols due problems to use proper mozjs. Thanks a lot to Nirbheek for his
+  assistance with this. Also include and old upstream patch to stop mixing
+  CFLAGS and CXXFLAGS (bug #338125 by Justin Lecher) and an opensuse patch
+  including some more fixes from upstream.
+
Comment 16 Ian Stakenvicius (RETIRED) gentoo-dev 2011-07-29 20:37:03 UTC
An alternative to this would be to DEPEND and RDEPEND on !=dev-lang/spidermonkey-1.8.2*

...assuming that this works with xulrunner-2 / spidermonkey-1.8.5, that is, and bug 359879 seems to imply that it does.  Note, the package may need to be patch to pkg-config [whatever] mozjs185 in order to support spidermonkey-1.8.5.