From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.1) Gecko/20031030 Description of problem: libXi is not mentioned in the dynamic section of libgdk.so as NEEDED (objdump -x /usr/lib/libgdk.so). This means that most existing gtk+ applications won't start, instead complaining "relocation error: /usr/lib/libgdk-1.2.so.0: undefined symbol: XListInputDevices". XListInputDevices is contained in libXi Note that there is nothing wrong in the _source_ RPM, however the _binary_ RPM is misbuilt, because of a bug in libtool-1.5-8. See Bug 109669. Version-Release number of selected component (if applicable): gtk+-1.2.10-28.1 How reproducible: Always Steps to Reproduce: 1. objdump -x /usr/lib/libgdk.so Additional info:
What sort of "most existing apps"? - I'd expect any GTK+ app built against Red Hat since 1998 or so to have a DT_NEEDED against libXi itself: $ gtk-config --libs gtk -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm Which will cover this problem up. Certainly works fine with all the GTK+-1.2 apps I have here.
I've got a couple apps I've packaged against the then current RedHat release: rpm -qi qiv Name : qiv Relocations: (not relocateable) Version : 1.0.1 Vendor: Adam Kopacz / kLoGraFX <Adam.K> Release : 1 Build Date: Wed Mar 3 00:41:32 1999 Install Date: Wed Mar 3 00:48:51 1999 Build Host: playstation.ampr.org Group : X11/Applications/Graphics Source RPM: qiv-1.0.1-1.src.rpm Size : 45615 License: GNU GENERAL PUBLIC LICENSE Signature : (none) Packager : Thomas Sailer <sailer.ethz.ch> Summary : Quick Image Viewer Description : Quick Image Viewer Dynamic Section: NEEDED libgdk_imlib.so.1 NEEDED libgtk-1.2.so.0 NEEDED libgdk-1.2.so.0 NEEDED libgmodule-1.2.so.0 NEEDED libglib-1.2.so.0 NEEDED libdl.so.2 NEEDED libXext.so.6 NEEDED libX11.so.6 NEEDED libm.so.6 NEEDED libc.so.6 Anyway, have you looked at the stdout/stderr output of rpmbuild --rebuild gtk+*src.rpm? There are quite a lot of shell errors. These seem to be due to libtoolize --force not replacing all required files (eg. ltconfig remains the old version)
Hi, Owen, the problem is with apps that didn't use 'gtk-config --libs gtk', but linked directly to libgtk. There seem to be some of them. I have problems because of this with some own binaries. Not that it's a problem for me to recompile, but there would be third parties with problems running it (part of real-time graphics demos). I think that it's clear that libgdk has broken dependencies, anyway. Is there a way I can help to fix this issue? Or you're just fixing it for FC2? Thanks a lot.
For me, the easiest fix was to patch the gtk+ specfile, and replace make with make LIBTOOL=/usr/bin/libtool and %makeinstall with %makeinstall LIBTOOL=/usr/bin/libtool
> the problem is with apps that didn't use 'gtk-config --libs > gtk', but linked directly to libgtk. gtk-config --libs is the only supported way to link against gtk+-1.2. Apps which don't play by the rules have to look after themselves.
FYI, see also bug #114587 (pretty much a dup of this one). I'm sorry your consider it WONTFIX, because, IMO, shared libraries, in this case: /usr/lib/libgdk-1.2.so.0 should not contain undefined references, period.