Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 41492 - broken library dependencies after QT upgrade to x11-libs/qt-3.3.0
Summary: broken library dependencies after QT upgrade to x11-libs/qt-3.3.0
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: All Linux
: High major (vote)
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords:
: 41524 41693 41765 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-02-13 11:59 UTC by Daniel Seyffer
Modified: 2004-02-18 06:26 UTC (History)
9 users (show)

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 Daniel Seyffer 2004-02-13 11:59:52 UTC
Hi,

after updating to qt-3.3.0 not only am I hit by the binary incompatibility problem (having to recompile kdelibs/addons) but my library dependencies for kde totally broke up!

1.) find /usr/ -name *.la -exec grep /var/tmp/portage '{}' \;
    returns a huge list of .la files that have references to 
    var/tmp/portage/qt-3.3.0/image/usr/qt/3/lib/libqt-mt.la

2.) during emerge of kdelibs it sporadically says:
    [...]
    libtool: link: warning: library `/usr/qt/3/lib/libqt-mt.la' was moved.
    libtool: link: warning: library `/usr/lib/libGL.la' was moved.
    libtool: link: warning: library `/usr/lib/libGL.la' was moved.
    libtool: link: warning: library `/usr/qt/3/lib/libqt-mt.la' was moved.
    libtool: link: warning: library `/usr/lib/libGL.la' was moved.
    libtool: link: warning: library `/usr/qt/3/lib/libqt-mt.la' was moved.
    libtool: link: warning: library `/usr/lib/libGL.la' was moved.
    libtool: link: warning: library `/usr/lib/libGL.la' was moved.
    libtool: link: warning: library `/usr/lib/libGL.la' was moved.
    libtool: link: warning: library `/usr/qt/3/lib/libqt-mt.la' was moved.
    libtool: link: warning: library `/usr/lib/libGL.la' was moved.
    libtool: link: warning: library `/usr/lib/libGL.la' was moved.
    [...]

3.) emerge kdeaddons fails with:
[...]
/bin/sh ../../libtool --silent --mode=link --tag=CXX g++  -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -DNDEBUG -DNO_DEBUG -O2 -march=athlon-xp -O3 -pipe -fomit-frame-pointer -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION  -L/usr/X11R6/lib -L/usr/qt/3/lib -L/usr/kde/3.2/lib  -R /usr/kde/3.2/lib -R /usr/qt/3/lib -R /usr/X11R6/lib  -o atlantikdesigner  boardinfo.o designer.o editor.o main.o group.o -latlantikui -lkdegames -lkio
libtool: link: cannot find the library `/var/tmp/portage/qt-3.3.0/image/usr/qt/3/lib/libqt-mt.la'
make[4]: *** [atlantikdesigner] Fehler 1
make[4]: Leaving directory `/var/tmp/portage/kdeaddons-3.2.0/work/kdeaddons-3.2.0/atlantikdesigner/designer'
make[3]: *** [all-recursive] Fehler 1
make[3]: Leaving directory `/var/tmp/portage/kdeaddons-3.2.0/work/kdeaddons-3.2.0/atlantikdesigner/designer'
make[2]: *** [all-recursive] Fehler 1
make[2]: Leaving directory `/var/tmp/portage/kdeaddons-3.2.0/work/kdeaddons-3.2.0/atlantikdesigner'
make[1]: *** [all-recursive] Fehler 1
make[1]: Leaving directory `/var/tmp/portage/kdeaddons-3.2.0/work/kdeaddons-3.2.0'
make: *** [all] Fehler 2

!!! ERROR: kde-base/kdeaddons-3.2.0 failed.
!!! Function kde_src_compile, Line 127, Exitcode 2
!!! died running emake, kde_src_compile:make
----

I re-emerged qt kdelib (and also libtool) a few times now but so far I just can't get rid of the /var/tmp references. :-/

Reproducible: Always
Steps to Reproduce:
1.
2.
3.




Portage 2.0.50-r1 (default-x86-1.4, gcc-3.3.2, glibc-2.3.3_pre20040207-r0,
2.6.1-gentoo-r1)
=================================================================
System uname: 2.6.1-gentoo-r1 i686 AMD Athlon(tm) XP 3200+
Gentoo Base System version 1.4.3.13
distcc 2.12.1 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled]
ccache version 2.3 [enabled]
Autoconf: sys-devel/autoconf-2.59
Automake: sys-devel/automake-1.8.2
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config
/usr/kde/3.1/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config
/usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d"
CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache distcc sandbox"
GENTOO_MIRRORS="ftp://sunsite.cnlab-switch.ch/mirror/gentoo/
http://ftp.easynet.nl/mirror/gentoo/ ftp://gentoo.ccccom.com
ftp://ftp.easynet.nl/mirror/gentoo/ http://gentoo.inode.at/"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow S3TC X aalib acpi acpi4linux alsa apache2 apm arts artswrappersuid
avi berkdb bonobo cdr crypt cups dga directfb dvd dvdr encode esd ethereal evo
fbcon fbdev foomaticdb freetype gb gdbm gif gnome gphoto2 gpm gtk gtk2 gtk2i
gtkhtml hbci imagemagick imap imlib java javascript jikes joystick jpeg kde lcms
ldap libg++ libwww linguas_de mad maildir mikmod mmx motif mozilla moznocompose
moznoirc mpeg ncurses nls nptl oav oggvorbis opengl pam pcmcia pdflib perl pic
png pnp ppds python qt quicktime readline samba sdl slang spell sse ssl svga
tcpd tiff transcode truetype trusted type1 usb videos x86 xml xml2 xmms xv zlib"
Comment 1 plasmagunman 2004-02-13 17:15:56 UTC
same problem here:
* in /usr/qt/3/lib/libqt-mt.la is the line: "libdir='/var/tmp/portage/qt-3.3.0/image/usr/qt/3/lib'"
* in /usr/qt/3/.qmake.cache some variables are set to "/var/tmp/portage/qt-3.3.0/image//usr/qt/3"
* .la-files from kdelibs referencing to "/var/tmp/portage/qt-3.3.0/image/usr/qt/3/lib/libqt-mt.la"
* kdebase fails to compile
Comment 2 Denis Dupeyron (RETIRED) gentoo-dev 2004-02-14 01:30:32 UTC
Bug #41524 was marked a duplicate of this one while I was typing this :

I had the problem recompiling arts. I changed the link in /usr/qt/3/lib/libqt-mt.la to show "libdir='/usr/qt/3/lib'" instead. I re-emerged arts and it worked. It's working its way through kdelibs now.

Note. I would *really* not mind if developpers left unstable ebuilds in ~x86.
Comment 3 Philipp Kern 2004-02-14 01:35:09 UTC
Please include x11-libs/qt-3.3.0 in the summary for easier lookup and increase the severity |:
It seems that a rm of the faulty .la helps solving the problem. At least the messages inbetween the compile process do not pop up again. (So there has to be a fixed provided in qt - like the newest nvidia-glx, released today, does it (as libGL.la wasn't correct neither)).
Can't tell about the whole build process of kdelibs by now. It takes time to compile.
Comment 4 Oliver Schoett 2004-02-14 03:05:33 UTC
The workaround in comment #2 did not help in my case.  After editing usr/qt/3/lib/libqt-mt.la, emerge kdemultimedia still fails with

/bin/sh ../../../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../arts/runtime -I../../../arts/gui/common -I/usr/kde/3.2/include/arts -I/usr/kde/3.2/include -I/usr/qt/3/include -I/usr/X11R6/include   -DQT_THREAD_SUPPORT  -D_REENTRANT  -DNDEBUG -DNO_DEBUG -O2 -march=pentium4 -O2 -pipe -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION  -c -o klabel_impl.lo `test -f 'klabel_impl.cpp' || echo './'`klabel_impl.cpp
/bin/sh ../../../libtool --silent --mode=link --tag=CXX g++  -DNDEBUG -DNO_DEBUG -O2 -march=pentium4 -O2 -pipe -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION    -o libartsgui_kde.la -rpath /usr/kde/3.2/lib -L/usr/X11R6/lib -L/usr/qt/3/lib -L/usr/kde/3.2/lib  -no-undefined -Wl,--no-undefined -Wl,--allow-shlib-undefined kwidget_impl.lo kbutton_impl.lo kpoti_impl.lo kpoti.lo kwidgetrepo.lo kartswidget.lo klineedit_impl.lo khbox_impl.lo kvbox_impl.lo kspinbox_impl.lo kcombobox_impl.lo kfader.lo kfader_impl.lo kgraph_impl.lo kgraph.lo kgraphline_impl.lo kframe_impl.lo klayoutbox_impl.lo kpopupbox_impl.lo klevelmeter_impl.lo klevelmeter_small.lo klevelmeter_linebars.lo klevelmeter_normalbars.lo klevelmeter_firebars.lo ktickmarks_impl.lo kvolumefader_impl.lo klabel_impl.lo -lkio -lkdecore -lkdeui ../../../arts/gui/common/libartsgui_idl.la 
grep: /var/tmp/portage/qt-3.3.0/image/usr/qt/3/lib/libqt-mt.la: No such file or directory
/bin/sed: can't read /var/tmp/portage/qt-3.3.0/image/usr/qt/3/lib/libqt-mt.la: No such file or directory
libtool: link: `/var/tmp/portage/qt-3.3.0/image/usr/qt/3/lib/libqt-mt.la' is not a valid libtool archive
make[5]: *** [libartsgui_kde.la] Error 1
make[5]: Leaving directory `/var/tmp/portage/kdemultimedia-3.2.0/work/kdemultimedia-3.2.0/arts/gui/kde'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/var/tmp/portage/kdemultimedia-3.2.0/work/kdemultimedia-3.2.0/arts/gui/kde'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/var/tmp/portage/kdemultimedia-3.2.0/work/kdemultimedia-3.2.0/arts/gui'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/var/tmp/portage/kdemultimedia-3.2.0/work/kdemultimedia-3.2.0/arts'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/kdemultimedia-3.2.0/work/kdemultimedia-3.2.0'
make: *** [all] Error 2

!!! ERROR: kde-base/kdemultimedia-3.2.0 failed.
!!! Function kde_src_compile, Line 127, Exitcode 2
!!! died running emake, kde_src_compile:make

There are still references to /var/tmp/portage embedded in the binaries:

# find /usr/qt/3/lib -type f -print0 | xargs -0 grep /var/tmp/portage
Binary file /usr/qt/3/lib/libqui.so.1.0.0 matches
Binary file /usr/qt/3/lib/libqt-mt.so.3.3.0 matches

Seems I cannot continue until this is fixed (-> severity should be raised).
Comment 5 plasmagunman 2004-02-14 03:15:30 UTC
hi oliver, check if there are files from kdelibs which adopted the false reference and change them. in this case you have to recompile kdelibs first. make sure all depending packages get rid of the false reference.
Comment 6 Jose 2004-02-14 04:09:33 UTC
i have the problem compiling the kdelibs against this qt version :/
emerging kdelibs:
libtool: link: warning: `/usr/qt/3/lib/libqt-mt.la' seems to be moved
libtool: link: warning: `/usr/qt/3/lib/libqt-mt.la' seems to be moved
libtool: link: warning: `/usr/qt/3/lib/libqt-mt.la' seems to be moved
libtool: link: warning: library `/usr/qt/3/lib/libqt-mt.la' was moved.
seems to be the same problem
but when i upgraded to the qt new version (wihout ipv6) i _could_ compile the kdelibs and kdeartwork , but now with qt compiled with ipv6 i cant
Comment 7 Giulio Prina Ricotti 2004-02-14 04:19:01 UTC
I've two machines, A which is working, B which has this problem. It seems the only difference is that while the working one contains

./configure -sm -thread -stl -system-libjpeg -verbose -largefile \
	-qt-imgfmt-{jpeg,mng,png} -tablet -system-libmng \
	-system-libpng -lpthread -xft -platform ${PLATFORM} -xplatform \
	${PLATFORM} -xrender -prefix ${D}${QTBASE} -plugindir ${QTBASE}/plugins \
	-docdir ${QTBASE}/doc -translationdir ${QTBASE}/translations \
       -datadir ${QTBASE} -sysconfdir ${QTBASE}/etc/settings -fast ${myconf} \
	-libdir ${QTBASE}/lib -headerdir ${QTBASE}/include \
	-bindir ${QTBASE}/bin -dlopen-opengl || die

In the B's ebuild (which isn't working) last two lines are commented out and the "|| die" statement has been moved at the end of the "-datadir [...]" line.

I hope this helps (it seemed relevant to me)
Comment 8 Daniel Seyffer 2004-02-14 05:04:55 UTC
As requested I just added "x11-libs/qt-3.3.0" to the summary and raised the priority (well at least one step for now. But I feel tempted to call this one a blocker...).
Comment 9 Daniel Seyffer 2004-02-14 07:33:03 UTC
Hello everyone.

To sum up a possible workaround seems to be:
1.) in case you use nvidia: emerge sync; emerge -u nvidia-glx
2.) emerge qt
3.) edit /usr/qt/3/lib/libqt-mt.la and change libdir (last line) to libdir='/usr/qt/3/lib'
4.) emerge kdelibs
5.) emerge kdeaddons
6.) emerge kdemultimedia (this might be optional)
5.) check for remaining .la files with broken references. (e.g. # find /usr -name *.la -print -exec grep /var/tmp '{}' \; | less)

at least this seems to work fine for me.
Comment 10 Caleb Tennis (RETIRED) gentoo-dev 2004-02-14 07:46:35 UTC
My apologies - I committed a fix for one bug and created another in the process.  This bug should now be fixed within the ebuild - you can either re-emerge or change the .la file as noted in the comments.
Comment 11 Caleb Tennis (RETIRED) gentoo-dev 2004-02-14 07:48:13 UTC
*** Bug 41524 has been marked as a duplicate of this bug. ***
Comment 12 Andreas Vinsander 2004-02-14 09:13:46 UTC

Everybody makes mistakes sometimes...
I think you're doing a great job Caleb!
Comment 13 Donovan Long 2004-02-14 11:28:08 UTC
I'm trying to emerge kdenetwork:

--8<--snip--8<--
grep: /var/tmp/portage/qt-3.3.0/image/usr/qt/3/lib/libqt-ml.la: No such file or directory
/bin/sed: /var/tmp/portage/qt-3.3.0/image/usr/qt/3/lib/libqt-ml.la: No such file or directory
libtool: link: `/var/tmp/portage/qt-3.3.0/image/usr/qt/3/lib/libqt-ml.la' is not a valid libtool archive
--8<--snip--8<--

I emerged qt-3.3.0 that was updated today (Feb 14th) and KDEnetwork still refused to compile.  Using the kludge (shown below) from the forums was the only way to get it to install (lots of 'seems to be moved warnings' though), so I'd suggest we still have a piece of the puzzle missing...

--8<--snip--8<--
follow this steps to solve the problem: 
1. # mkdir /var/tmp/portage/qt-3.3.0/image/usr/qt/3/lib/ 
2. # cp /usr/qt/3/lib/* /var/tmp/portage/qt-3.3.0/image/usr/qt/3/lib/ 
now you can emerge any kde 3.2 package. good luck
--8<--snip--8<--

Thanks!
Comment 14 Oliver Schoett 2004-02-14 12:42:40 UTC
Thanks for repairing the bug, but shouldn't the revised ebuild be called -r1 so that people who have the broken ebuild installed get their systems repaired instead of having to hunt through the bug data base? (Recall that the problems manifest themselves when trying to build *other* packages!)
Comment 15 Chris Aniszczyk (RETIRED) gentoo-dev 2004-02-14 13:52:43 UTC
This isn't fixed yet on my side :O
Comment 16 Donovan Long 2004-02-14 20:32:15 UTC
As I mentioned above,

"I emerged qt-3.3.0 that was updated today (Feb 14th) and KDEnetwork still refused to compile."

so the current fix isn't working for me either, only the hack, not the new ebuild.
Comment 17 Donovan Long 2004-02-14 20:49:03 UTC
http://forums.gentoo.org/viewtopic.php?p=867006#867006
My Kopete still doesn't work, might be related to this bug...?
Comment 18 Tuomas Suutari 2004-02-15 01:39:12 UTC
I don't know a lot about this. But I think that qt-3.3.0.ebuild (v 1.17) is incorrect at line 83. Prefix is set to ${D}${QTBASE} (/var/tmp/portage/qt-3.3.0/image//usr/qt/3) and so that path is written to .qmake.cache and *.la.

I changed "-prefix ${D}${QTBASE}" to "-prefix ${QTBASE}" and re-emerged qt. After it /usr/qt/3/.qmake.cache and /usr/qt/3/lib/libqt-mt.la contained correct paths.

After qt I've already re-emerged arts and currently my (slow) machine is compiling kdelibs. Previusly emerging kdelibs failed after few minutes, but now it's been compiling over 3 hours, so I think my trick worked.

Am I missing something here?
Comment 19 Daniel Seyffer 2004-02-15 02:06:15 UTC
Just another thing: even _after_ (successfully) recompiling qt, kdelibs, kdebase, kdemultimedia and kdeaddons I am still missing the Plastik widget style... :-(
Comment 20 plasmagunman 2004-02-15 03:03:56 UTC
that's kinda off topic, isn't it?
Comment 21 Donovan Long 2004-02-15 08:59:03 UTC
I solved my Kopete library problem:
rm -fR /usr/lib/kde3
(see forum link above for more info)
Comment 22 Philipp Kern 2004-02-15 09:14:13 UTC
#18: Were you successful?
The ${D} is even in older (working) ebuilds...
As the qt recompiling task is quite time- and CPU-intensive, is there anybody who got it working again? (except of downgrading, I'm using ~x86 anyway)
Comment 23 Ralph Rodkey 2004-02-15 09:41:36 UTC
In response to #22, I've gotten my install working with qt-3.3.0. I kept running into problems with the "libqt-mt.la is not a valid file" sorts of messages until I realized that the problem was caused by arts. I'd compiled it against the broken qt-3.3.0, but once I recompiled it against the new qt, I was able to get through the kdelibs-3.2.0 ebuild successfully.
Comment 24 Tuomas Suutari 2004-02-15 13:36:09 UTC
#22: As I mentioned earlier, qt was build just fine without ${D} in prefix.
Currently I've build arts-1.2.0 and kdelibs-3.2.0 with modified qt, and I haven't noticed any problems with them yet.

Is there any reason why -prefix should be ${D}${QTBASE}?
Just ${QTBASE} feels more correct to me...
Comment 25 Caleb Tennis (RETIRED) gentoo-dev 2004-02-15 13:44:40 UTC
It has to be ${D}${QTBASE} or Qt won't (in most cases) be able to build properly.  When building using ${QTBASE} it will look for all of its tools in the wrong directory, meaning that you will be building the current Qt with the already installed Qt - something that will usually fail.
Comment 26 Caleb Tennis (RETIRED) gentoo-dev 2004-02-16 10:15:59 UTC
*** Bug 41765 has been marked as a duplicate of this bug. ***
Comment 27 Caleb Tennis (RETIRED) gentoo-dev 2004-02-16 10:16:59 UTC
I'm now considering changing it back to $QTBASE.  It will bring back the original problem that we had before the fix, but that seems like the lesser of two evils.  I guess it will force me to think of a different workaround.
Comment 28 Philipp Kern 2004-02-16 10:24:33 UTC
Re-emerging the "new" qt ebuild, *reemerging arts* and kdelibs, kdebase work fine.
It fixed the problem on most systems, Caleb.
However I still think it should have been -r1 ;)
Comment 29 Caleb Tennis (RETIRED) gentoo-dev 2004-02-16 10:27:14 UTC
I just committed -r1 which reverts the behavior back to $QTBASE (amongst a few other minor bug fixes).  
Comment 30 Caleb Tennis (RETIRED) gentoo-dev 2004-02-18 06:19:17 UTC
Ok, this should all be fixed now.  First, an upgrade to 3.3.0-r1 is in order.  Second, if you still have any problems, you'll need to re-emerge arts, kdelibs, kdebase, etc, until it propogates through.

Alternatively, you can just find files in /usr/kde/3.2/lib/*.la that contain references to the wrong Qt installation directory, and alter them. This will save on compile/emerge time.

Sorry for any problems this has caused.
Comment 31 Caleb Tennis (RETIRED) gentoo-dev 2004-02-18 06:26:29 UTC
*** Bug 41693 has been marked as a duplicate of this bug. ***