[kde-de] QTDIR

David Sandberg David_Sandberg at t-online.de
Mi Mai 21 12:42:00 CEST 2003


Hallo Stephan,
das Problem bei redhat und KDE scheint vielfältig. Zunaöchst einmal ist
kein $KDEDIR gesetzt. Tatsächlich befindet es sich aber in /usr/. D.h.
alle binarys, libs, includes usw. sind dort, wo auch die anderen Programme
ihre haben. Es gibt also kein /opt/KDE3 wie bei Suse.

Bei der Kompilierung von Qt hatte ich mich nach dem INSTALL glaube ich
gerichtet. d.h. das kompilierte QT liegt jetzt in /usr/local/qt. So mache
ich es eigentlich mit allen neukompilierten Programmen. Die KDE-Teile, die
ich jetzt versucht habe nachzukompilieren, habe ich aber dorthin
kompiliert, wo auch die release ihre Objektfiles etc. ablegt, d.h. in
/usr/bi, /usr/lib, /usr/include. Mit anderen Worten, die aus der Release
werden überschrieben. Ich will ja nciht testen, sondern ein
funktionierendes System haben. Die besonderen Probleme ergeben sich
natürlich, weil ich nicht das komplette KDE kompilieren will, sondern
grundsätlcih die rpm-redhat-release weiterpflegen. Versuchsweise habe ich
jetzt kde-libs kompiliert und kde-admin configured in der Hoffnung dann
nur in /kpackage ein make machen zu können. Das Ergebnis kenne ich noch
nicht.

>Also im cvs gibt es ein qt-copy.README, das folgende Konfiguration
empfiehlt.

>./configure -system-zlib -qt-gif -system-libpng -system-libjpeg \
>  -plugin-imgfmt-mng -thread -no-exceptions -fast
Ok, das kann ich in aller Ausführlichkeit nochmal versuchen, bin aber
nicht Sicher, ob sich da was verändert. Das Qt-3.1.2-5 Dir liegt in
/usr/lib/Qt-3.1


>Das -debug hab ich Dir ausgeschmissen. Es ist immer besser gegen die
>im System vorhandenen Libs zu linken. Gerade bei RedHat weiß man
>nie, wo sie dran rumgespielt haben ...
Du meinst ich muß genau einstellen, wo sich die systemlibs befinden. ich
denke , daß ich das getan habe.

>Was mich wundert: wohin installiert qt sich eigentlich, wenn man kein
>prefix angibt?
Ich hatte gleich laut Anweisung QTDIR=/usr/local/qt gesetzt (ein link auf
/usr/local/qt-x11-free-3.1.2).
Aber schaun wir mal: mit QTDIR=   (nichts) macht ./configure --help
"default /usr/local/qt-x11-free-3.1.2"

d.h. der default PREFIX liegt im eigenen Pfad.

>Was viel mehr interessieren würde, ist gegen welche libs die kde
Programme
>gelinkt sind. Eventuell linken die noch gegen eine alte qt.
Kannich mir nicht vorstelen, da ich QTDIR gesetzt hatte und beide
Varianten ausprobiert, zumal ich ja QT 3.1.2-5 aus der rawhide installiert
hatte. Eine dritte Variante ist nicht im System, auch keine 3.1.1 mehr, da
ja KDE unter redhat seine libs defaultmässig in /usr/lib usw. ablegt unf
sucht.


>Probier mal

>ldd $KDEDIR/bin/kmail

Das wird jetzt nicht mehr viel bringen, weil ich inzwischen ja die neue
KDE-3.1.2- release für redhat installiert habe, die allerdings auch wie
vorher beschrieben abgespeckt ist. Und ohne die selbstkompilierten Pakete
funktioniert es mit den brokenlinks auf die jpegs korrekt.

ldd $KDEDIR/bin/kmail

KDEDIR ist nicht gesetzt, also

ldd /usr/bin/kmail
 libkhtml.so.4 => /usr/lib/libkhtml.so.4 (0x40017000)
        libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x40283000)
        libkdeprint.so.4 => /usr/lib/libkdeprint.so.4 (0x402a1000)
        libkparts.so.2 => /usr/lib/libkparts.so.2 (0x40359000)
        libkutils.so.1 => /usr/lib/libkutils.so.1 (0x403a0000)
        libkspell.so.4 => /usr/lib/libkspell.so.4 (0x403b6000)
        libkdenetwork.so.2 => /usr/lib/libkdenetwork.so.2 (0x403d6000)
        libmimelib.so.1 => /usr/lib/libmimelib.so.1 (0x4048f000)
        libkabc.so.1 => /usr/lib/libkabc.so.1 (0x404c4000)
        libvcard.so.0 => /usr/lib/libvcard.so.0 (0x4054a000)
        libkio.so.4 => /usr/lib/libkio.so.4 (0x40571000)
        libkdeui.so.4 => /usr/lib/libkdeui.so.4 (0x4082c000)
        libkdesu.so.4 => /usr/lib/libkdesu.so.4 (0x40a94000)
        libkdecore.so.4 => /usr/lib/libkdecore.so.4 (0x40aa6000)
        libDCOP.so.4 => /usr/lib/libDCOP.so.4 (0x40c45000)
        libdl.so.2 => /lib/libdl.so.2 (0x40c9c000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x40c9f000)
        libart_lgpl_2.so.2 => /usr/lib/libart_lgpl_2.so.2 (0x40cb2000)
        libkdefx.so.4 => /usr/lib/libkdefx.so.4 (0x40cc8000)
        libqt-mt.so.3 => /usr/lib/qt-3.1/lib/libqt-mt.so.3 (0x40cfc000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0x41367000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x4138a000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x41398000)
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x41478000)
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x41481000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x41498000)
        libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0x414a5000)
        libutil.so.1 => /lib/libutil.so.1 (0x414ad000)
        libz.so.1 => /usr/lib/libz.so.1 (0x414b0000)
        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x414bf000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x41572000)
        libm.so.6 => /lib/tls/libm.so.6 (0x4157a000)
        libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
        libmng.so.1 => /usr/lib/libmng.so.1 (0x4159d000)
        libGL.so.1 => /usr/lib/libGL.so.1 (0x415e1000)
        libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x41654000)
        libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0x4166a000)
        libXft.so.2 => /usr/X11R6/lib/libXft.so.2 (0x4166f000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x41681000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x416d2000)
        libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x416f7000)
        libexpat.so.0 => /usr/lib/libexpat.so.0 (0x41749000)

Aha, kde verwendet die qt-libs aus der rawhide. QT habe ich nicht aus der
neuen release neu installiert, sondern die qt-3.1.2-5 aus der rawhide
gelassen. Diese dürfte aktuell genug und abwärtskompatibel sein. Es
funktioneirt ja auch. Das rpm scheint QTDIR nicht zu berücksichtigen. Das
setzen von QTDIR ist also ohne Bedeutung. Aber beim kompilieren werden die
qtlibs aus QTDIR=/usr/local/qt verwendet.

In PATH ist übrigen /usr/local/qt/bin mit enthalten. Die binarys müßten
also in jedem fall gefunden werden.

Ich vermute also, daß es bei der KDE 3.1.1a ebenso verlief, da ich ja
dafür extra die Qt-3.1.2-5 aus der rawhide installiert hatte. Warum also
funktioniert es jetzt, und vorher nicht?

Das kpackage lief übrigens einwandfrei in der Kombination KDE-3.1.1a und
qt aus der rawhide. Was mich an dem ganzen wundert ist, daß das release
3.1.1a aus der sourceforg offenbar vollständig ist, das 3.1.2 von kde.org
aber abgespeckt, genau wie das alte 3.1-12 aus der redhat9 release. Beide
sind ausdrücklich für redhat 9 ausgewiesen. Und nirgends scheint dieser
Umstand beschrieben.

D.