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 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

   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
   Required: kdelibs, gpgme, boost
   Optional: openldap, cyrus-sasl
   Required: kdelibs, qimageblitz
   Required: kdepimlibs, samba
   Optional: soprano, xine
   Optional: lm_sensors, libcaptury, libusb, bluez, networkmanager, libxklavier, libraw1394
   Required: kdepimlibs
   Optional: xscreensaver
   Optional: ruby, pyqt4, gmcs, gacutil
   Optional: libusb, cfitsio, libsbigudrv, libnova, facile, openbabel2, eigen, boost.python
   Optional: ggz-client-libs
   Optional: gphoto2, sane, exiv2, poppler, ghostscript, chm, djvulibre, tiff, openexr
   Required: kdepimlibs, alsa
   Optional: taglib, libvorbis, cdparanoia, flac, tunepimp, libtheora, libmusicbrainz
   Required: kdepimlibs, boost
   Optional: ktorrent, libvncserver, qca2, jpeg, openslp, decibel, libidn, sqlite, xmms, mdnsresponder
   Required: kdepimlibs
   Optional: subversion
   Required: kdepimlibs
   Optional: tpctl, python, gmp, libzip, libarchive
   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