Skip to content

Why do good people do bad things?

Sunday, 9 October 2005  |  njaard

arkimedes:~# apt-get install dbus-qt-1-dev (stuff skipped) The following NEW packages will be installed: dbus-qt-1-dev dbus-qt-1c2 hicolor-icon-theme kdelibs-bin kdelibs-data kdelibs4c2 libarts1c2 libaspell15 libfam0 libjasper-1.701-1 libnetpbm10 libopenexr2c2 menu-xdg netpbm 0 upgraded, 14 newly installed, 0 to remove and 2 not upgraded. Need to get 19.9MB/21.0MB of archives. After unpacking 69.5MB of additional disk space will be used. Do you want to continue [Y/n]?

Ok, I have to investigate. Why does DBUS's Qt bindings want to link to all of Qt?

So I grab the DBUS source code, compile it, do an ldd libdbus-qt-1.so -- to my dismay, it links to libkdecore.so! What gives?

So, upon further investigation into the DBUS build system, I find, much my dismay, the following: dnl linking to kdecore will give us a bit of help from libtool if (! kde-config >& /dev/null); then have_qt=no else kdelibs=kde-config --install lib --expandvars 2>/dev/null if test -z $kdelibs -o ! -f $kdelibs/libkdecore.la; then have_qt=no else DBUS_QT_LIBS="$kdelibs/libkdecore.la" fi fi

Brilliant. They link to KDE just because KDE links to Qt, and they need Qt. Sheer brilliance. I'm impressed.

(it should be noted that the cvs version of DBUS doesn't have this problem).

So, I submitted a patch to the Debian maintainers (as that's the distribution I use). I'm sure they'll reject it, as they always do.