Bug 133096 - Undefined symbols in /usr/lib/gnome-vfs-2.0/modules/libhttp.so from gnome-base/gnome-vfs-2.14.1
Bug#: 133096 Product:  Gentoo Linux Version: unspecified Platform: All
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: gnome@gentoo.org Reported By: castan.o@free.fr
Component: GNOME
URL:  http://bugzilla.gnome.org/show_bug.cgi?id=324874
Summary: Undefined symbols in /usr/lib/gnome-vfs-2.0/modules/libhttp.so from gnome-base/gnome-vfs-2.14.1
Keywords:  
Status Whiteboard: 
Opened: 2006-05-12 02:37 0000
Description:   Opened: 2006-05-12 02:37 0000
$ ldd -r /usr/lib/gnome-vfs-2.0/modules/libhttp.so
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x6ff53000)
        libgconf-2.so.4 => /usr/lib/libgconf-2.so.4 (0x6feed000)
        libORBit-2.so.0 => /usr/lib/libORBit-2.so.0 (0x6fe5f000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x6fe3a000)
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x6fe14000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x6fd42000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0x6fbdc000)
        libdl.so.2 => /lib/libdl.so.2 (0x6fbb8000)
        libz.so.1 => /lib/libz.so.1 (0x6fb83000)
        libm.so.6 => /lib/libm.so.6 (0x6faee000)
        libgnomevfs-2.so.0 => /usr/lib/libgnomevfs-2.so.0 (0x6fa48000)
        libutil.so.1 => /lib/libutil.so.1 (0x6fa25000)
        librt.so.1 => /lib/librt.so.1 (0x6f9fd000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x6f9c9000)
        libc.so.6 => /lib/libc.so.6 (0x6f879000)
        libpopt.so.0 => /usr/lib/libpopt.so.0 (0x6f84e000)
        /lib/ld.so.1 (0x08000000)
        libbonobo-2.so.0 => /usr/lib/libbonobo-2.so.0 (0x6f7ab000)
        libbonobo-activation.so.4 => /usr/lib/libbonobo-activation.so.4
(0x6f76f000)
        libssl.so.0.9.7 => /usr/lib/libssl.so.0.9.7 (0x6f713000)
        libcrypto.so.0.9.7 => /usr/lib/libcrypto.so.0.9.7 (0x6f589000)
        libavahi-glib.so.1 => /usr/lib/libavahi-glib.so.1 (0x6f564000)
        libavahi-common.so.3 => /usr/lib/libavahi-common.so.3 (0x6f534000)
        libavahi-client.so.3 => /usr/lib/libavahi-client.so.3 (0x6f501000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x6f4ce000)
        libORBitCosNaming-2.so.0 => /usr/lib/libORBitCosNaming-2.so.0
(0x6f4a7000)
        libdbus-1.so.2 => /usr/lib/libdbus-1.so.2 (0x6f446000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x6f411000)
undefined symbol: ne_xml_dispatch_request      
(/usr/lib/gnome-vfs-2.0/modules/libhttp.so)
undefined symbol: ne_ssl_context_trustcert     
(/usr/lib/gnome-vfs-2.0/modules/libhttp.so)

Looks like a mess in the neon library included in gnome-vfs package. Seen both
on ppc and x86 archs.


Portage 2.1_pre10-r5 (hardened/ppc, gcc-3.4.6, glibc-2.3.6-r4, 2.6.15-gentoo-r1
ppc)
=================================================================
System uname: 2.6.15-gentoo-r1 ppc 7455, altivec supported
Gentoo Base System version 1.12.0_pre19
dev-lang/python:     2.3.5, 2.4.3-r1
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     [Not Present]
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.16.1-r2
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r4
ACCEPT_KEYWORDS="ppc ~ppc"
AUTOCLEAN="yes"
CBUILD="powerpc-unknown-linux-gnu"
CFLAGS="-O2 -pipe -mcpu=7400 -maltivec -mabi=altivec"
CHOST="powerpc-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.1/share/config
/usr/kde/3.2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config
/usr/kde/3.4/shutdown /usr/kde/3.5/env /usr/kde/3.5/share/config
/usr/kde/3.5/shutdown /usr/kde/3/share/config /usr/share/X11/xkb
/usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/eselect/compiler /etc/gconf /etc/revdep-rebuild
/etc/terminfo /etc/texmf/web2c /etc/env.d"
CXXFLAGS="-O2 -pipe -mcpu=7400 -maltivec -mabi=altivec"
DISTDIR="/home/portage/distfiles"
FEATURES="autoconfig distlocks metadata-transfer nostrip sfperms strict"
GENTOO_MIRRORS="http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/
http://mir.zyrianes.net/gentoo/
ftp://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/
http://pandemonium.tiscali.de/pub/gentoo/
ftp://pandemonium.tiscali.de/pub/gentoo/"
LANG="fr_FR.UTF-8"
LINGUAS="en fr"
PKGDIR="/usr/portage//packages/ppc/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress
--force --whole-file --delete --delete-after --stats --timeout=180
--exclude='/distfiles' --exclude='/local' --exclude='/packages'"
PORTAGE_TMPDIR="/home/portage/tmp"
PORTDIR="/usr/portage/"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="ppc X X509 a52 aac aalib aio alsa altivec amr async audiofile avahi
bash-completion berkdb bonobo browserplugin bzip2 cairo canvas cdda cddb cdio
cdparanoia cdr chroot crypt cups dbus dga dillo directfb djvu dlloader dri dts
dv dvd dvdr dvdread dvi edl eds encode erandom exif faac faad fam fb fbcon
ffmpeg firefox fla flac fortran freetype gdbm ggi gif gimpprint glx gnome
gphoto2 gpm graphviz gs gstreamer gtk gtkhtml gzip hal hardened hddtemp
howl-compat hpn imagemagick imlib imlib2 java javascript jp2 jpeg jpeg2k ldap
libcaca live logrotate lzo lzw lzw-tiff mad mailwrapper matroska md5sum
mdnsresponder-compat mikmod mime mjpeg mng motif moznocompose moznoirc
moznomail mozsvg mp3 mp4 mp4live mpeg mpeg2 mpeg4 mplayer nautilus ncurses
network nls nptl nsplugin ntlm odbc offensive ogg oggvorbis opengl oss pam pdf
perl pg-hier physfs pic pie png ppds pthreads python quicktime radeon readline
rtc rtsp ruby sdl sftplogging skins slang smime spell sqlite ssl
startup-notification stencil-buffer svg svgz sysfs tcltk tcpd tga theora tiff
truetype truetype-fonts type1 type1-fonts unicode usb userlocales utf8 v4l v4l2
vcd video_cards_radeon vorbis wmf x264 xanim xface xml xml2 xmms xosd xpm
xscreensaver xv xvid zlib elibc_glibc input_devices_keyboard
input_devices_mouse kernel_linux linguas_en linguas_fr userland_GNU"
Unset:  ASFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LDFLAGS,
MAKEOPTS, PORTAGE_RSYNC_EXTRA_OPTS

------- Comment #1 From John N. Laliberte (RETIRED) 2006-05-12 04:37:27 0000 -------
Are you using gnome-vfs 2.14.1 ( the latest in the tree )?

can you supply emerge -pv gnome-vfs galeon

galeon starts fine even with the undefined symbols.  

the following command also works fine:
gnomevfs-cat http://www.gnome.org

are you still using hardened as the upstream bug says?
( use flags look like it )

------- Comment #2 From Olivier Castan 2006-05-12 09:34:10 0000 -------
$ emerge -pv gnome-vfs galeon

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

Calculating dependencies... done!
[ebuild   R   ] gnome-base/gnome-vfs-2.14.1  USE="avahi hal ssl -debug -doc
-gnutls -ipv6 -samba" 0 kB
[ebuild  N    ] www-client/galeon-2.0.1  USE="firefox -debug" 2,921 kB

Both my x86 and ppc have hardened profile and keyword.

$ gnomevfs-cat http://www.gnome.org

(process:28847): libgnomevfs-WARNING **: Cannot load module
`/usr/lib/gnome-vfs-2.0/modules/libhttp.so'
(/usr/lib/gnome-vfs-2.0/modules/libhttp.so: undefined symbol:
ne_xml_dispatch_request)

(process:28847): libgnomevfs-WARNING **: Cannot load module
`/usr/lib/gnome-vfs-2.0/modules/libhttp.so'
(/usr/lib/gnome-vfs-2.0/modules/libhttp.so: undefined symbol:
ne_xml_dispatch_request)
open `http://www.gnome.org': Invalid URI

Looks like it's related to gnome-vfs sources, after unpacking
gnome-vfs-2.14.1.tar.bz2 :

$ grep -R ne_xml_dispatch_request gnome-vfs-2.14.1/
gnome-vfs-2.14.1/imported/neon/ne_xmlreq.h:int
ne_xml_dispatch_request(ne_request *req, ne_xml_parser *parser);
gnome-vfs-2.14.1/imported/neon/ne_locks.c:    ret =
ne_xml_dispatch_request(req, parser);
gnome-vfs-2.14.1/imported/neon/ne_locks.c:    ret =
ne_xml_dispatch_request(req, parser);

$ grep -R ne_ssl_context_trustcert gnome-vfs-2.14.1/
gnome-vfs-2.14.1/imported/neon/ne_ssl.h:void
ne_ssl_context_trustcert(ne_ssl_context *ctx, const ne_ssl_certificate *cert);
gnome-vfs-2.14.1/imported/neon/ne_session.c:   
ne_ssl_context_trustcert(sess->ssl_context, cert);

The build process use a copy of neon library which lacks some definitions. On
usual systems that may not be a problem if these functions are not used due to
lazy binding, but that might become one on hardened systems since linking is
done before running anything (-z now linker option).

------- Comment #3 From Martin Schlemmer (RETIRED) 2006-07-22 09:49:42 0000 -------
Created an attachment (id=92503) [details]
gnome-vfs-2.14.2-http_module-undef-neon-symbols.patch

Patch to fix this issue for gnome-vfs-2.14.2.  Basically we add stubs for the
missing symbols, and as a good measure do not export any neon symbols that
might clash for apps actually using neon as well (although I am not too sure on
the workings of GModule that that will be an issue).

------- Comment #4 From solar 2006-07-23 11:54:17 0000 -------
This patch solves the problem that started appearing with the gnome-2.14
updates.

------- Comment #5 From John N. Laliberte (RETIRED) 2006-07-23 15:43:32 0000 -------
Thanks! in cvs.

+  23 Jul 2006; John N. Laliberte <allanonjl@gentoo.org>
+  +files/gnome-vfs-2.14.2-http_module-undef-neon-symbols.patch,
+  -gnome-vfs-2.14.1.ebuild, +gnome-vfs-2.14.2-r1.ebuild:
+  apply patch from Martin Schlemmer <azarah@nosferatu.za.org> to fix #133096.
+  Patch sent upstream.

------- Comment #6 From solar 2006-07-23 17:51:34 0000 -------
after the patch is applied you will need a call to eautomake 
And an inherit autotools at the top.

------- Comment #7 From John N. Laliberte (RETIRED) 2006-07-23 18:08:21 0000 -------
thanks!

sorry about that, in cvs.