KDE4

Robert Daniels 0m3g4_w34p0n at earthlink.net
Mon Jan 28 18:35:44 PST 2008


Thought I'd share my progress on building KDE4 with everyone.  I think the biggest contribution I have is a nearly-complete dependency list.
Because of the list, this will be a somewhat long message.

A few notes beforehand, I made this list by grepping all the CMakeLists.txt for every package, as well as looking at cmake's output.
I think I've gotten at least mostly everything that is actually checked for (omitting some redundancies), but there may be something required
that is not checked for.  Also, note that some optional packages are only optional in the sense that kde will compile without them.
Some, such as pcre, really should be required, as khtml will need it to render many sites.

kdebase has been split into kdebase, kdebase-runtime, and kdebase-workspace.  I'm pretty sure kdebase needs to go first, but I am
uncertain as to the order of the other two.

Also, you may notice that I don't have kdelibs or base listed as dependencies for most packages.  Everything has a check reading
'find_package(KDE4 REQUIRED)' which looks like a variable expansion, but I could not find a definition of it anywhere.  In any case, 
I would say to install in order kdelibs, kdepimlibs, kdebase, kdebase-runtime, kdebase-workspace, then everthing else.

All packages compiled with the following commands: (from top sourcedir)
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/kde-4.0.0
make
make install

Obviously, the prefix can be adjusted to whatever you want.  Also, there is a switch analogous to --sysconfdir, but I don't know what it is.
You will want this to put config files into /etc/kde4 or similar.  I wasn't too concerned with it myself.

Anyway, on to the dependency list

kdelibs
   Required: strigi, jpeg, giflib, libpng, libxml2, libxslt, shared-mime-info, qt4
   Optional: alsa, openssl, libintl, xorg, soprano, jasper, openexr, gssapi (kerberos), gamin, acl, avahi, aspell, hspell, enchant, pcre
kdepimlibs
   Required: kdelibs, gpgme, boost
   Optional: openldap, cyrus-sasl
kdebase
   Required: kdelibs, qimageblitz
kdebase-runtime
   Required: kdepimlibs, samba
   Optional: soprano, xine
kdebase-workspace
   Optional: lm_sensors, libcaptury, libusb, bluez, networkmanager, libxklavier, libraw1394
kdeadmin:
   Required: kdepimlibs
kdeartwork
   Optional: xscreensaver
kdebindings
   Optional: ruby, pyqt4, gmcs, gacutil
kdeedu:
   Optional: libusb, cfitsio, libsbigudrv, libnova, facile, openbabel2, eigen, boost.python
kdegames:
   Optional: ggz-client-libs
kdegraphics:
   Optional: gphoto2, sane, exiv2, poppler, ghostscript, chm, djvulibre, tiff, openexr
kdemultimedia
   Required: kdepimlibs, alsa
   Optional: taglib, libvorbis, cdparanoia, flac, tunepimp, libtheora, libmusicbrainz
kdenetwork
   Required: kdepimlibs, boost
   Optional: ktorrent, libvncserver, qca2, jpeg, openslp, decibel, libidn, sqlite, xmms, mdnsresponder
kdesdk
   Required: kdepimlibs
   Optional: subversion
kdeutils
   Required: kdepimlibs
   Optional: tpctl, python, gmp, libzip, libarchive
kdewebdev
   Optional: tidy

A couple other things to note:
   1) It looks like kdenetwork still looks for Apple's mdnsresponder, even though kdelibs asks for avahi.  Don't ask me why.
   2) kdewebdev looks for tidy's header files in /usr/include/tidy/, but the blfs installation puts them directly in /usr/include.
      2 seds will fix the problem:
          sed -i 's%tidy/%%g' cmake/modules/FindLibTidy.cmake
          sed -i 's%tidy/%%g' klinkstatus/src/tidy/tidyx.h

A lot of new packages in the list, and many of them depend on other things not in the book, but I'll leave it here for now.
Ask me if you want any more details.

Robert Daniels



More information about the blfs-dev mailing list