Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 265428 - gnome-base/libgnomekbd-2.24.0: libgnomekbdui.so gets linked to old version of libgnomekbd.so
Summary: gnome-base/libgnomekbd-2.24.0: libgnomekbdui.so gets linked to old version of...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GNOME (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL: https://bugzilla.gnome.org/show_bug.c...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-04-08 11:14 UTC by Marcel Keller
Modified: 2009-04-27 19:47 UTC (History)
1 user (show)

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


Attachments
libgnomekbdui.so.3.0.0 (libgnomekbdui.so.3.0.0,62.23 KB, application/octet-stream)
2009-04-08 12:18 UTC, Marcel Keller
Details
build.log (build.log,65.84 KB, text/plain)
2009-04-09 22:38 UTC, Marcel Keller
Details
workdir after installation (libgnomekbd-2.24.0-workdir.tar.bz2,665.17 KB, application/octet-stream)
2009-04-10 12:21 UTC, Marcel Keller
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Marcel Keller 2009-04-08 11:14:52 UTC
After emerging gnome-base/libgnomekbd-2.24.0 the first time, libgnomekbdui.so.3 is linked against libgnomekbd.so.2, which is removed after the installation. This breaks e.g. gnome-screensaver-dialog. I had to kill gnome-screensaver from the console.

Reproducible: Couldn't Reproduce

Steps to Reproduce:
emerge libgnomekbd
Actual Results:  
When emerging gnome-base/libgnomekbd-2.24.0 the second time, libgnomekbd.so.2 is not present anymore and everything goes fine.


Portage 2.1.6.7 (default/linux/x86/2008.0/desktop, gcc-4.1.2, glibc-2.8_p20080602-r1, 2.6.27-gentoo-r7 i686)
=================================================================
System uname: Linux-2.6.27-gentoo-r7-i686-Intel-R-_Pentium-R-_M_processor_1.50GHz-with-glibc2.0
Timestamp of tree: Tue, 07 Apr 2009 13:45:02 +0000
app-shells/bash:     3.2_p39
dev-java/java-config: 1.3.7, 2.1.6-r1
dev-lang/python:     2.5.2-r7
dev-util/cmake:      2.6.2-r1
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium-m -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/4.0/env /usr/kde/4.0/share/config /usr/kde/4.0/shutdown /usr/kde/4.2/env /usr/kde/4.2/share/config /usr/kde/4.2/shutdown /usr/share/config /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -march=pentium-m -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://mirror.switch.ch/ftp/mirror/gentoo/ ftp://mirror.switch.ch/mirror/gentoo/ ftp://ftp.solnet.ch/mirror/Gentoo http://gentoo.mirror.solnet.ch "
LANG="de_CH"
LDFLAGS="-Wl,-O1"
LINGUAS="de"
MAKEOPTS="-j2"
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="/usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="X a52 aac acpi aiglx alsa amr avahi bash-completion berkdb bluetooth branding bzip2 cairo cddb cdr cli cracklib crypt cups curl daap dbus dri dvd dvdr dvdread eds emacs emboss encode esd evo exif exscalibar fam fftw firefox flac fortran galago gdbm gif gimp gimpprint glitz gnome gnome-keyring gphoto2 gpm gstreamer gtk hal howl iconv idn imap ipod irda isdnlog jpeg kde kdeprefix lcms ldap libnotify logrotate mad mbox midi mikmod mmx mng mp3 mpeg mudflap musicbrainz nautilus ncurses network nfs nls nptl nptlonly nsplugin offensive ogg opengl openmp oss pam pcmcia pcre pdf perl png pop ppds pppd python qt3 qt3support qt4 quicktime readline reflection sasl sdl session spell spl sqlite sse sse2 ssl startup-notification svg sysfs t1lib tcpd theora tiff truetype usb v4l v4l2 vcd visualization vorbis wifi win32codecs x86 xml xorg xosd xulrunner xv xvid xvmc zeroconf zlib" ALSA_CARDS="intel8x0" 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 auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" CAMERAS="ptp2" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de" USERLAND="GNU" VIDEO_CARDS="i810 vesa vga intel"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Rémi Cardona (RETIRED) gentoo-dev 2009-04-08 11:38:57 UTC
/me bets a buck on libtool 1.5 being the one to blame
Comment 2 Gilles Dartiguelongue (RETIRED) gentoo-dev 2009-04-08 11:47:51 UTC
I'd like to see a readelf -d of the library or some other proof of that.
Comment 3 Marcel Keller 2009-04-08 11:53:00 UTC
I missed to save the library before I emerged again. But I'm sure that ldd said: libgnomekbd.so.2 => not found.
Comment 4 Gilles Dartiguelongue (RETIRED) gentoo-dev 2009-04-08 11:56:33 UTC
ldd isn't a good source of information for this. It could very well have shown that another lib in the stack needed the old lib and hasn't been recompiled against the new version yet. It wouldn't be the same problem at all.
Comment 5 Marcel Keller 2009-04-08 12:16:52 UTC
I've now downgraded to libgnomekbd-2.22.0 and upgraded again, and I could reproduce the error. (BTW: Isn't it quite unlikely that libgnomekbdui depends on something that depends on libgnomekbd although libgnomekbdui and libgnomekbd are in the same package?)

$ readelf -d libgnomekbdui.so

Dynamic section at offset 0xed64 contains 67 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libgtk-x11-2.0.so.0]
 0x00000001 (NEEDED)                     Shared library: [libatk-1.0.so.0]
 0x00000001 (NEEDED)                     Shared library: [libgnomekbd.so.2]
 0x00000001 (NEEDED)                     Shared library: [libgdk-x11-2.0.so.0]
 0x00000001 (NEEDED)                     Shared library: [libgdk_pixbuf-2.0.so.0]
 0x00000001 (NEEDED)                     Shared library: [libgio-2.0.so.0]
 0x00000001 (NEEDED)                     Shared library: [libpangocairo-1.0.so.0]
 0x00000001 (NEEDED)                     Shared library: [libpangoft2-1.0.so.0]
 0x00000001 (NEEDED)                     Shared library: [libpango-1.0.so.0]
 0x00000001 (NEEDED)                     Shared library: [libcairo.so.2]
 0x00000001 (NEEDED)                     Shared library: [libpixman-1.so.0]
 0x00000001 (NEEDED)                     Shared library: [libfontconfig.so.1]
 0x00000001 (NEEDED)                     Shared library: [libfreetype.so.6]
 0x00000001 (NEEDED)                     Shared library: [libexpat.so.1]
 0x00000001 (NEEDED)                     Shared library: [libglitz-glx.so.1]
 0x00000001 (NEEDED)                     Shared library: [libGL.so.1]
 0x00000001 (NEEDED)                     Shared library: [libXmu.so.6]
 0x00000001 (NEEDED)                     Shared library: [libXt.so.6]
 0x00000001 (NEEDED)                     Shared library: [libSM.so.6]
 0x00000001 (NEEDED)                     Shared library: [libICE.so.6]
 0x00000001 (NEEDED)                     Shared library: [libXi.so.6]
 0x00000001 (NEEDED)                     Shared library: [libXext.so.6]
 0x00000001 (NEEDED)                     Shared library: [libglitz.so.1]
 0x00000001 (NEEDED)                     Shared library: [libpng12.so.0]
 0x00000001 (NEEDED)                     Shared library: [libXrender.so.1]
 0x00000001 (NEEDED)                     Shared library: [libgconf-2.so.4]
 0x00000001 (NEEDED)                     Shared library: [libORBit-2.so.0]
 0x00000001 (NEEDED)                     Shared library: [libgmodule-2.0.so.0]
 0x00000001 (NEEDED)                     Shared library: [libgthread-2.0.so.0]
 0x00000001 (NEEDED)                     Shared library: [libpthread.so.0]
 0x00000001 (NEEDED)                     Shared library: [librt.so.1]
 0x00000001 (NEEDED)                     Shared library: [libdbus-glib-1.so.2]
 0x00000001 (NEEDED)                     Shared library: [libnsl.so.1]
 0x00000001 (NEEDED)                     Shared library: [libdbus-1.so.3]
 0x00000001 (NEEDED)                     Shared library: [libxklavier.so.12]
 0x00000001 (NEEDED)                     Shared library: [libxkbfile.so.1]
 0x00000001 (NEEDED)                     Shared library: [libgobject-2.0.so.0]
 0x00000001 (NEEDED)                     Shared library: [libglib-2.0.so.0]
 0x00000001 (NEEDED)                     Shared library: [libxml2.so.2]
 0x00000001 (NEEDED)                     Shared library: [libz.so.1]
 0x00000001 (NEEDED)                     Shared library: [libm.so.6]
 0x00000001 (NEEDED)                     Shared library: [libX11.so.6]
 0x00000001 (NEEDED)                     Shared library: [libXau.so.6]
 0x00000001 (NEEDED)                     Shared library: [libXdmcp.so.6]
 0x00000001 (NEEDED)                     Shared library: [libdl.so.2]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x0000000e (SONAME)                     Library soname: [libgnomekbdui.so.3]
 0x0000000c (INIT)                       0x52b0
 0x0000000d (FINI)                       0xdc94
 0x00000004 (HASH)                       0xf4
 0x6ffffef5 (GNU_HASH)                   0xf8c
 0x00000005 (STRTAB)                     0x2690
 0x00000006 (SYMTAB)                     0x12c0
 0x0000000a (STRSZ)                      8254 (bytes)
 0x0000000b (SYMENT)                     16 (bytes)
 0x00000003 (PLTGOT)                     0xfff4
 0x00000002 (PLTRELSZ)                   2168 (bytes)
 0x00000014 (PLTREL)                     REL
 0x00000017 (JMPREL)                     0x4a38
 0x00000011 (REL)                        0x4998
 0x00000012 (RELSZ)                      160 (bytes)
 0x00000013 (RELENT)                     8 (bytes)
 0x6ffffffe (VERNEED)                    0x4948
 0x6fffffff (VERNEEDNUM)                 2
 0x6ffffff0 (VERSYM)                     0x46ce
 0x6ffffffa (RELCOUNT)                   4
 0x00000000 (NULL)                       0x0
Comment 6 Marcel Keller 2009-04-08 12:18:30 UTC
Created attachment 187681 [details]
libgnomekbdui.so.3.0.0
Comment 7 Gilles Dartiguelongue (RETIRED) gentoo-dev 2009-04-09 20:48:15 UTC
ok I've tested this myself and it indeed relinks to .so.2. That sounds like a crazy libtool issue again.
Comment 8 Rémi Cardona (RETIRED) gentoo-dev 2009-04-09 22:15:57 UTC
If anyone could post a full build.log, I could take a look at it to make sure that it is indeed a libtool bug.

Thanks
Comment 9 Marcel Keller 2009-04-09 22:38:08 UTC
Created attachment 187832 [details]
build.log
Comment 10 Rémi Cardona (RETIRED) gentoo-dev 2009-04-10 11:55:02 UTC
@Marcel,

This bug is getting _really_ tricky to track down. Could I ask you to do the following :

 - FEATURES="keepwork" emerge -1 libgnomekbd
 - cd /var/tmp/portage/gnome-base/
 - tar -cjf libgnomekbd-2.24.0-workdir.tar.bz2 libgnomekbd-2.24.0/

And try to post this file somewhere public so I can really see what's going on on your system.

@Gnome, my hunch now is that elibtoolize is actually breaking a perfectly good tarball...

Thanks
Comment 11 Rémi Cardona (RETIRED) gentoo-dev 2009-04-10 12:04:06 UTC
Oh, btw, I forgot to mention what the bug is in the build.log. Here's what can be found on line 273, starting at column 343 :

-L/usr/lib -L/var/tmp/portage/gnome-base/libgnomekbd-2.24.0/image//usr/lib [...] -lgnomekbd

So it's quite obvious why libgnomekbdui.so would link to the installed libgnomekbd.so ...

Cheers
Comment 12 Marcel Keller 2009-04-10 12:21:54 UTC
Created attachment 187879 [details]
workdir after installation
Comment 13 Marcel Keller 2009-04-10 12:23:23 UTC
I saw that there are two libgnomekbdui.so in libgnomekbd-2.24.0/libgnomekbd/.libs: libgnomekbdui.so.3.0.0 is linked correctly and libgnomekbdui.so.3.0.0T is not
Comment 14 Rémi Cardona (RETIRED) gentoo-dev 2009-04-10 13:50:48 UTC
I have no idea what's going on and why this is happening. If I keep digging, I think I may pull my hair out.

@Toolchain, could you guys take a look at this? I pretty much narrowed the bug down to the libtool call, but this is way out of my league. It's the first time I see this happening with a _libtool_2.2_ generated tarball.

Any help with this would be greatly appreciated.

Thanks
Comment 15 SpanKY gentoo-dev 2009-04-12 04:54:53 UTC
the problem is the relinking step during install.  libtool puts a -L path for /usr/lib before $D/usr/lib and so when libgnomekbdui gets relinked, it picks up the old lib in /usr/lib rather than the new one in $D/usr/lib.  but libtool does this because it's doing what it's told ...

i'm pretty sure this is just an error in libgnomekbd.  you might want to apply this patch:
--- libgnomekbd/Makefile.am
+++ libgnomekbd/Makefile.am
@@ -33,9 +33,9 @@
 libgnomekbd_la_LIBADD =  $(common_LIBADD)

 libgnomekbdui_la_LDFLAGS = $(common_LDFLAGS)
-libgnomekbdui_la_LIBADD =  $(common_LIBADD) \
-                           $(GTK_LIBS) \
-                           libgnomekbd.la
+libgnomekbdui_la_LIBADD =  libgnomekbd.la \
+                           $(common_LIBADD) \
+                           $(GTK_LIBS)

 libgnomekbd_la_SOURCES = \
                          gkbd-desktop-config.c \

since you arent already running autotools, it'll be a lot easier to patch Makefile.in ... the change will be exactly the same since libgnomekbdui_la_LIBADD is copied verbatim from Makefile.am to Makefile.in.
Comment 16 Gilles Dartiguelongue (RETIRED) gentoo-dev 2009-04-26 22:37:47 UTC
Fixed in overlay. Thanks for reporting.
Comment 17 Gilles Dartiguelongue (RETIRED) gentoo-dev 2009-04-26 22:47:42 UTC
I also applied this to 2.22 and 2.24 ebuilds without a bump. Thanks for reporting and thanks vapier for the solution.
Comment 18 Matt Michalowski 2009-04-27 00:52:26 UTC
I think this breaks building with libtool-1.5.26, which is still the stable libtool.
Comment 19 Gilles Dartiguelongue (RETIRED) gentoo-dev 2009-04-27 06:39:47 UTC
ok I'll have a lookg
Comment 20 Gilles Dartiguelongue (RETIRED) gentoo-dev 2009-04-27 19:47:02 UTC
re-fixed  in 2.24 and 2.26. Thanks.