[kde-freebsd] KDE4 apps porting questions

Max Brazhnikov makc at issp.ac.ru
Mon Oct 6 15:55:56 CEST 2008


On Mon, 6 Oct 2008 02:48:25 -0400, Jason E. Hale wrote:
> On Sunday 05 October 2008 11:33:55 Max Brazhnikov wrote:
> > You may use ldd to find qt4 libraries required by ports binary/libraries,
> > eg: ~> ldd /usr/local/kde4/bin/kid3 |grep -i qt
> >         libQtSvg.so.4 => /usr/local/lib/qt4/libQtSvg.so.4 (0x28be3000)
> >         libQtCore.so.4 => /usr/local/lib/qt4/libQtCore.so.4 (0x28cc3000)
> >         libQtGui.so.4 => /usr/local/lib/qt4/libQtGui.so.4 (0x28ffe000)
> >         libQtNetwork.so.4 => /usr/local/lib/qt4/libQtNetwork.so.4
> > (0x2983b000) libQtDBus.so.4 => /usr/local/lib/qt4/libQtDBus.so.4
> > (0x29924000) libQtXml.so.4 => /usr/local/lib/qt4/libQtXml.so.4
> > (0x2997d000)
> >
> > corresponding qt components (corelib is omitted):
> > QT_COMPONENTS= svg gui network dbus xml
> >
> > kde4 ports also need qt tools like qmake, uic. So the full line will be:
> > QT_COMPONENTS=	svg gui network dbus xml \
> > 		qmake_build moc_build rcc_build uic_build
>
> Thanks for your feedback.  But if audio/kid3-kde4 requires all of those qt
> components, then why does the port only have:
> QT_COMPONENTS=	corelib qmake_build moc_build
This line is incorrect and may cause problems in a future. You can poke 
maintainer to fix this :)

USE_KDE4 and QT_COMPONENTS duplicate work in some sense. kdelibs4 
depends on lots of qt4 components, so these components could be omitted for 
your port. But you cannot leave QT_COMPONENTS empty, because this will bring 
dependency on whole Qt4.
Also not all kde ports really need rcc_build or uic_build for build (e.g. 
audio/kid3), but cmake fails to find qt if there is no rcc and/or uic 
binaries. So the minimal correct QT_COMPONENTS for kde4 ports will be:
corelib qmake_build moc_build rcc_build uic_build

I'm not satisfied with the situation, and hope I'll will work on this 
somedays.

> Even the deskutils/kdeplasma-addons port has:
> QT_COMPONENTS=	opengl webkit xml network moc rcc uic
> But if I run:
> $ ldd /usr/local/kde4/lib/kde4/plasma_applet_luna.so | grep -i qt
>         libQtSvg.so.4 => /usr/local/lib/qt4/libQtSvg.so.4 (0x2830f000)
>         libQtCore.so.4 => /usr/local/lib/qt4/libQtCore.so.4 (0x28592000)
>         libQtGui.so.4 => /usr/local/lib/qt4/libQtGui.so.4 (0x288b5000)
>         libQtNetwork.so.4 => /usr/local/lib/qt4/libQtNetwork.so.4
> (0x2906f000) libQtDBus.so.4 => /usr/local/lib/qt4/libQtDBus.so.4
> (0x29151000) libQtXml.so.4 => /usr/local/lib/qt4/libQtXml.so.4 (0x291aa000)
> libQtWebKit.so.4 => /usr/local/lib/qt4/libQtWebKit.so.4 (0x29a96000)
> libQtOpenGL.so.4 => /usr/local/lib/qt4/libQtOpenGL.so.4 (0x2a571000) So,
> svg and dbus are omitted.  Why would that be?

> Also, why do all of the KDE4 ports use moc, rcc, and uic instead of
> moc_build, rcc_build, and uic_build?
This will be fixed with update to 4.1.2 (already fixed in area51)

Max


More information about the kde-freebsd mailing list