What topic says - it should run elibtoolize to make sure libtool linker scripts are free of $S and $D.
Created attachment 25591 [details] libqt-mt.la Reason for this - see $D in 'libdir'.
Created attachment 25592 [details, diff] kde_eclass-use-elibtoolize.patch Patch to enable this. I am not too familiar with KDE eclasses, so could have missed something.
Created attachment 25593 [details] libqtmcop.la Better example, as I see my old one was from qt.
Created attachment 25594 [details, diff] qt-use-elibtoolize.patch Here is a patch also for QT (3.3.0) to enable this.
Actually below fixes the libqt-mt.la's libdir ... anybody got any idea's as to why it was done? -- Index: qt-3.3.0.ebuild =================================================================== RCS file: /home/cvsroot/gentoo-x86/x11-libs/qt/qt-3.3.0.ebuild,v retrieving revision 1.16 diff -u -r1.16 qt-3.3.0.ebuild --- qt-3.3.0.ebuild 13 Feb 2004 13:05:15 -0000 1.16 +++ qt-3.3.0.ebuild 14 Feb 2004 17:01:01 -0000 @@ -79,7 +79,7 @@ ./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 \ + ${PLATFORM} -xrender -prefix ${QTBASE} -plugindir ${QTBASE}/plugins \ -docdir ${QTBASE}/doc -translationdir ${QTBASE}/translations \ -datadir ${QTBASE} -sysconfdir ${QTBASE}/etc/settings -fast ${myconf} || die # -libdir ${QTBASE}/lib -headerdir ${QTBASE}/include \
Comment on attachment 25594 [details, diff] qt-use-elibtoolize.patch Not needed anymore after looking at it closer.
The reason we do it with the prefix set to $D$QTBASE is because if it's just set to QTBASE, Qt will attempt to build and link against the already installed Qt and not the currently installing Qt. Setting the prefix as such would be much easier, but I don't know anyway to trick Qt into thinking it's already installed in $QTBASE.
Well, then we need to sed the .la file. Didn't you get any new bugs yet about failsing with this installed? k3b for instance did not build. (although I did see you reverted it). Here is a possible patch (not tested) against qt-3.3.0.ebuild: -- Index: qt-3.3.0.ebuild =================================================================== RCS file: /home/cvsroot/gentoo-x86/x11-libs/qt/qt-3.3.0.ebuild,v retrieving revision 1.17 diff -u -r1.17 qt-3.3.0.ebuild --- qt-3.3.0.ebuild 14 Feb 2004 15:44:00 -0000 1.17 +++ qt-3.3.0.ebuild 16 Feb 2004 19:01:52 -0000 @@ -103,6 +103,9 @@ dolib lib/libqt-mt.so.3.3.0 lib/libqui.so.1.0.0 dolib lib/lib{editor,qassistantclient,designercore}.a lib/libqt-mt.la + dosed -e "s:${D}::g" \ + -e 's://:/:g' \ + $QTBASE/lib/libqt-mt.la cd ${D}/$QTBASE/lib for x in libqui.so ; do -- Although - have you tried to 'export QTDIR="${S}"' during src_compile() for qt-3.3.0-r1? It might fix the linking issues, no? As for the kde.eclass changes, I would really appreciate if we could get it in ...
i've reverted the behavior back to -prefix $QTBASE. This will fix all of the problems. If/when the link problems re-occur, I will investigate more closely a way around them. In the meantime, this is the best way to handle it.
Above should also fix all problems, with future link problems ... What about the eclass changes?
I'll put in the eclass change as something that will hopefully catch any problems in the future, though it shouldn't creep up. It won't fix the linking problem with QT though. The problem is that during the build, when Qt uses the "uic" program, sometimes it dynamically links against the already installed Qt library instead of the currently installing Qt library. This can obviously create problems. The workaround is to pass different parameters to the configure script telling it where to use things, but then these parameters get saved (inside of the binaries) and then programs like qmake want to save config files into /var/tmp/portage... Don't worry though, it will get sorted out.
the above should now be fixed. I added a LD_PRELOAD to the Qt ebuild so that it forces the currently compiling Qt to use the currently compiled Qt library and not anything that is already installed on the system. This allowed me to refert to setting -prefix to $QTBASE instead of $D$QTBASE, which fixes all of the problems. Hooray!