Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 134249 - gnome-terminal and other apps use hardcoded nvidia paths for libGL.so
Summary: gnome-terminal and other apps use hardcoded nvidia paths for libGL.so
Status: VERIFIED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Unspecified (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-05-24 11:48 UTC by Rémi Cardona (RETIRED)
Modified: 2006-05-24 13:08 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rémi Cardona (RETIRED) gentoo-dev 2006-05-24 11:48:10 UTC
I have an old TNT2 which is no longer supported by the newer nvidia-kernel for some reason the old ebuilds don't work anymore (but the xorg "nv" driver works fine), so I decided to remove nvidia-kernel and -glx. Unfortunately, some apps such as gnome-terminal were linked with nvidia's libGL.so.1

stratos share # eselect opengl set nvidia
Switching to nvidia OpenGL interface... done
stratos share # ldd /usr/bin/gnome-terminal | grep GL
        libGLU.so.1 => /usr/lib/libGLU.so.1 (0xb6ef3000)
        libGL.so.1 => /usr/lib/opengl/nvidia/lib/libGL.so.1 (0xb6e7b000)
        libGLcore.so.1 => /usr/lib/opengl/nvidia/lib/libGLcore.so.1 (0xb6447000)
stratos share # eselect opengl set xorg-x11
Switching to xorg-x11 OpenGL interface... done
stratos share # ldd /usr/bin/gnome-terminal | grep GL
        libGLU.so.1 => /usr/lib/libGLU.so.1 (0xb6f76000)
        libGL.so.1 => /usr/lib/opengl/nvidia/lib/libGL.so.1 (0xb6efe000)
        libGLcore.so.1 => not found

The problem is that if I remove nvidia-glx, reemerging gnome-terminal will fail, because something (I think it may be libtool, but I'm no expert) is still looking for nvidia's libraries instead of using the eselect symlinks in /usr/lib nvidia-glx has become both a build-time and run-time dependency and I can't remove it.

On a side note, --as-needed didn't help one bit to fix the problem ... Why would gnome-terminal need opengl is beyond me, but that's another issue.

Here's what happens when I emerge gnome-terminal without nvidia-glx installed :

LC_ALL=C ../intltool-merge -s -u -c ../po/.intltool-merge-cache ../po gnome-terminal.schemas.in gnome-terminal.schemas
Generating and caching the translation database
/bin/sh ../libtool --mode=link i686-pc-linux-gnu-gcc  -O3 -march=athlon -pipe -mmmx -m3dnow -funroll-loops -Wall  -Wl,--as-needed -o gnome-terminal  encoding.o profile-editor.o skey-popup.o terminal.o terminal-accels.o terminal-profile.o terminal-screen.o terminal-widget-vte.o terminal-window.o terminal-notebook.o simple-x-font-selector.o eggaccelerators.o eggcellrendererkeys.o    -lSM -lICE -lX11  -pthread -lglade-2.0 -lgnomeui-2 -lSM -lICE -lbonoboui-2 -lgnome-keyring -lxml2 -lgnomecanvas-2 -lgnome-2 -lpopt -lart_lgpl_2 -lstartup-notification-1 -lvte -lz -lncurses -lGLU -lGL -lXft -lX11 -lfreetype -lXrender -lgtk-x11-2.0 -lpangoxft-1.0 -lpangox-1.0 -lfontconfig -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpangoft2-1.0 -lpango-1.0 -lgnomevfs-2 -lbonobo-2 -lgconf-2 -lgobject-2.0 -lbonobo-activation -lORBit-2 -lm -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0   skey/libskey.la
mkdir .libs
libtool: link: cannot find the library `/usr/lib/opengl/nvidia/lib/libGL.la' or unhandled argument `/usr/lib/opengl/nvidia/lib/libGL.la'
make[3]: *** [gnome-terminal] Erreur 1
make[3]: *** Attente des t
Comment 1 Rémi Cardona (RETIRED) gentoo-dev 2006-05-24 11:48:10 UTC
I have an old TNT2 which is no longer supported by the newer nvidia-kernel for some reason the old ebuilds don't work anymore (but the xorg "nv" driver works fine), so I decided to remove nvidia-kernel and -glx. Unfortunately, some apps such as gnome-terminal were linked with nvidia's libGL.so.1

stratos share # eselect opengl set nvidia
Switching to nvidia OpenGL interface... done
stratos share # ldd /usr/bin/gnome-terminal | grep GL
        libGLU.so.1 => /usr/lib/libGLU.so.1 (0xb6ef3000)
        libGL.so.1 => /usr/lib/opengl/nvidia/lib/libGL.so.1 (0xb6e7b000)
        libGLcore.so.1 => /usr/lib/opengl/nvidia/lib/libGLcore.so.1 (0xb6447000)
stratos share # eselect opengl set xorg-x11
Switching to xorg-x11 OpenGL interface... done
stratos share # ldd /usr/bin/gnome-terminal | grep GL
        libGLU.so.1 => /usr/lib/libGLU.so.1 (0xb6f76000)
        libGL.so.1 => /usr/lib/opengl/nvidia/lib/libGL.so.1 (0xb6efe000)
        libGLcore.so.1 => not found

The problem is that if I remove nvidia-glx, reemerging gnome-terminal will fail, because something (I think it may be libtool, but I'm no expert) is still looking for nvidia's libraries instead of using the eselect symlinks in /usr/lib nvidia-glx has become both a build-time and run-time dependency and I can't remove it.

On a side note, --as-needed didn't help one bit to fix the problem ... Why would gnome-terminal need opengl is beyond me, but that's another issue.

Here's what happens when I emerge gnome-terminal without nvidia-glx installed :

LC_ALL=C ../intltool-merge -s -u -c ../po/.intltool-merge-cache ../po gnome-terminal.schemas.in gnome-terminal.schemas
Generating and caching the translation database
/bin/sh ../libtool --mode=link i686-pc-linux-gnu-gcc  -O3 -march=athlon -pipe -mmmx -m3dnow -funroll-loops -Wall  -Wl,--as-needed -o gnome-terminal  encoding.o profile-editor.o skey-popup.o terminal.o terminal-accels.o terminal-profile.o terminal-screen.o terminal-widget-vte.o terminal-window.o terminal-notebook.o simple-x-font-selector.o eggaccelerators.o eggcellrendererkeys.o    -lSM -lICE -lX11  -pthread -lglade-2.0 -lgnomeui-2 -lSM -lICE -lbonoboui-2 -lgnome-keyring -lxml2 -lgnomecanvas-2 -lgnome-2 -lpopt -lart_lgpl_2 -lstartup-notification-1 -lvte -lz -lncurses -lGLU -lGL -lXft -lX11 -lfreetype -lXrender -lgtk-x11-2.0 -lpangoxft-1.0 -lpangox-1.0 -lfontconfig -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpangoft2-1.0 -lpango-1.0 -lgnomevfs-2 -lbonobo-2 -lgconf-2 -lgobject-2.0 -lbonobo-activation -lORBit-2 -lm -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0   skey/libskey.la
mkdir .libs
libtool: link: cannot find the library `/usr/lib/opengl/nvidia/lib/libGL.la' or unhandled argument `/usr/lib/opengl/nvidia/lib/libGL.la'
make[3]: *** [gnome-terminal] Erreur 1
make[3]: *** Attente des tâches non terminées....
Merging translations into gnome-terminal.schemas.
make[3]: Leaving directory `/var/tmp/portage/gnome-terminal-2.14.1/work/gnome-terminal-2.14.1/src'
make[2]: *** [all-recursive] Erreur 1
make[2]: Leaving directory `/var/tmp/portage/gnome-terminal-2.14.1/work/gnome-terminal-2.14.1/src'
make[1]: *** [all-recursive] Erreur 1
make[1]: Leaving directory `/var/tmp/portage/gnome-terminal-2.14.1/work/gnome-terminal-2.14.1'
make: *** [all] Erreur 2

!!! ERROR: x11-terms/gnome-terminal-2.14.1 failed.
!!! Function gnome2_src_compile, Line 58, Exitcode 2
!!! compile failure
!!! If you need support, post the topmost build error, NOT this status message.


/usr/lib/libGL.a is present and not empty (unlike most other bugs I found related to this file) but it wants /usr/lib/opengl/nvidia/lib/libGL.la




stratos share # emerge --info
Portage 2.0.54-r2 (default-linux/x86/2006.0, gcc-3.4.5, glibc-2.3.6-r3, 2.6.16-gentoo-r6 i686)
=================================================================
System uname: 2.6.16-gentoo-r6 i686 AMD Duron(tm) Processor
Gentoo Base System version 1.6.14
dev-lang/python:     2.3.5-r2, 2.4.2
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-r1
sys-devel/binutils:  2.16.1
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O3 -march=athlon -pipe -mmmx -m3dnow -funroll-loops"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/eselect/compiler /etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O3 -march=athlon -pipe -mmmx -m3dnow -funroll-loops"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/ http://gentoo.mirror.sdv.fr"
LANG="fr_FR.UTF-8"
LDFLAGS="-Wl,--as-needed"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage /usr/local/overlay/liferea_overlay"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="x86 3dnow X a52 aac aalib acpi alsa apache2 audiofile avahi avi berkdb bitmap-fonts bzip2 cairo cdr cli crypt cups curl daap dbus dga directfb dri dts dvd dvdread eds emboss encode evo exif expat faad fam ffmpeg flac foomaticdb gd gdbm gif glut gmp gnome gphoto2 gpm gstreamer gtk gtk2 gtkhtml guile hal howl-compat idn imagemagick imap imlib isdnlog java joystick jpeg lcms ldap libg++ libwww mad mhash mikmod mmx mng motif mozcalendar mozilla mp3 mpeg mysql nautilus ncurses nls nptl nptlonly ogg opengl pam pcre pda pdflib perl php png ppds pppd python quicktime readline real reflection ruby sdl session slang spell spl sqlite ssl svg tcpd tetex theora tiff truetype truetype-fonts type1-fonts udev unicode usb userlocales v4l v4l2 vcd vorbis webdav win32codecs wma wxwindows xml xml2 xorg xv xvid zlib userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS, PORTAGE_RSYNC_OPTS
Comment 2 Jakub Moc (RETIRED) gentoo-dev 2006-05-24 11:53:37 UTC
Run revdep-rebuild...
Comment 3 Rémi Cardona (RETIRED) gentoo-dev 2006-05-24 12:58:38 UTC
I should have pointed out that revdep-rebuild did not find any broken packages on my system (except OOo-bin but that's normal).

On my laptop where there are no problems, I still see gnome-terminal being linked with libGL.so through /usr/lib/opengl/xorg-x11/lib/libGL.so.1 so it's still implementation dependant should I ever need to switch opengl libs.
Comment 4 Jakub Moc (RETIRED) gentoo-dev 2006-05-24 13:08:48 UTC
(In reply to comment #2)
> On my laptop where there are no problems, I still see gnome-terminal being
> linked with libGL.so through /usr/lib/opengl/xorg-x11/lib/libGL.so.1 so it's
> still implementation dependant should I ever need to switch opengl libs.

Yeah, that's completely normal. Closing.