[Update-05/01/2010] Kdesupport now requires a thread-safe version of libxml2-dev; if you are running Karmic, you have to download the sources and install the new library and header from the following link: https://launchpad.net/ubuntu/+source/libxml2/2.7.6.dfsg-1ubuntu1; this is not necessary if you are using Lucid Lynx.
[Update-24/12/2009] New dependencies are required, as pointed out in the kde-devel mailing list yesterday, you have to download, unzip and install the following new packages in order to fully enjoy KDE ;P
Ok, since the steps are quite the same I previously described in this post, and since these days I’m too lazy to write a full-detailed how-to on building KDE, I’ll write here only the steps changed from the past post.
If you read some KDE developer’s blog in the few past months, you already noticed that some KDE modules are moving to git, so some of these will be managed from the kdesvn script, such as the QT repository. But, before starting with the sources, as usual download some files (look at the Step0 section) plus libssh:
$ git clone git://git.libssh.org/projects/libssh/libssh.git
then clean up the whole KDE enviroment and install the needed files ( Step2 ): I added some new files, so here it is the updated version:
$ sudo apt-get remove –purge kdebase* kde-* kdelibs* kdepim* kde-icons-oxygen libqt* libpoppler* poppler-utils libqca2 libqimageblitz4 libsoprano4 libstreamanalyzer0 libstreams0 libstrigiqtdbusclient0 libqca1c2 qca-dev
and install the following packages :
$ sudo apt-get install build-essential cdbs debhelper cmake libxml2-dev libxslt1-dev libbz2-dev shared-mime-info dbus-x11 libxkbfile-dev libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev libxext-dev libjpeg62-dev libical-dev libpng12-dev subversion libsm-dev libxinerama-dev libtiff4-dev libxrender-dev libfontconfig1-dev libcurl4-openssl-dev libboost-dev libxcursor-dev doxygen libungif4-dev libdbus-1-dev libssl-dev libgpgme11-dev libasound2-dev kdesdk-scripts libpth-dev libjasper-dev ssh libglib2.0-dev libpcre3-dev diffstat libexpat-ocaml-dev libclucene-dev libclucene0ldbl libexiv2-dev quilt libspectre-dev xsltproc libxtst-dev libxdamage-dev libxcomposite-dev x-dev libfam0 libfam-dev libaspell-dev libenchant-dev libsmbclient-dev libopenexr-dev libraw1394-dev libpulse-dev libpci-dev libusb-dev network-manager-dev libgphoto2-2-dev mysql-server-core-5.1 mysql-admin libeet-dev gstreamer0.10-plugins-base sun-java6-jdk libcppunit-dev libgstreamer-plugins-base0.10-dev libmono-dev libiw-dev libxss-dev libslp-dev lm-sensors bluez libbluetooth-dev libgps-dev libxklavier-dev libsasl2-dev acl flex bison libck-connector-dev libsensors-dev libxrandr-dev lzma-dev libssh-dev libxft-dev libpolkit-grant-dev libpolkit-dbus-dev libosip2-dev libeigen2-dev libdvdread-dev libmusicbrainz-dev libflac-dev libflac++-dev libsndfile-dev libsamplerate-dev libogg-dev libmpcdec-dev libmad0-dev libmp3lame-dev libavbin-dev libavcodec-dev libswscale-dev libcdparanoia-dev libmysqld-dev libtidy-dev libimlib2-dev libnl-dev libexempi-dev libv4l-dev libgcal-dev xscreensaver libcfitsio3-dev libindi-dev xplanet libsane-dev libxxf86vm1 libchm-dev libdjvulibre-dev libepub-dev libacl1-dev libvncserver-dev libortp-dev libspeex-dev libotr2-dev libmsn-dev libmediastreamer-dev libmeanwhile-dev libgadu-dev libassuan-dev libpilotobjects-dev libhunspell-dev libsvn-dev libarchive-dev libfftw3-dev libtheora0 libvorbisenc2 libxine-dev libxine-xvdr libmtp-dev libloudmouth1-dev libxine1-ffmpeg libgpod-nogtk-dev libaudio-dev liblcms1-dev libmng-dev libsqlite0 libsqlite0-dev libgmp3-dev libxmu-dev libaviformat-dev
Now it’s time to build and install the QT libraries ( Step2 ): since kdesvn-build script handle this for you, the only step you have to perform is adding some lines in the .kdesvn-buildrc file, after the end of the global definitions:
configure-flags -qt-gif -debug -fast -no-separate-debug-info \
-system-libpng -system-libjpeg -system-zlib \
-dbus -webkit -no-phonon -plugin-sql-mysql \
-script -scripttools \
-nomake examples -nomake demos -prefix /opt/qt4 -v
then, type sudo kdesvn-build qt-copy and take a coffee !
By the way, I didn’t tested this new kdesvn feature ( I prefer the old “git clone/pull .. checkout .. blablabla .. install” stuff indeed ) because I actually build QT from scratch every 2 or 3 months, depending on the features/patched introduced; thus, I don’t need to rebuild QT everytime I type “sudo kdesvn-build” ( yeah I know, there is also the “–resume-from<module>” option but, you know, I’d rather prefer type the “git pull” stuff once in 3 months rather than the “kdesvn-build –resume-from blabla” twice a week 😛 ). So, think about your real need and then do your best choice 😉 Now, you have to build all the packages you downloaded from the previous guide i linked at the beginning of this post; but, before doing that, install libssh:
- $ cd your_libssh_directory
- $ mkdir build && cd build
- cmake .. && make && sudo make install
Now it’s time to download and build KDE sources: the process is almost the same I described in my last how-to with the following exceptions:
- kdevplatform, kdevelop modules are now part of extragear/sdk module, so if you are using my kdesvn-buildrc config file, be sure to remove these two modules, and replace them with
and build and install the extragear/sdk/kdevplatform submodule; otherwise building the whole sdk in one step will fail.
- konversation moved to git too, so if you want to try it, add the following lines in your kdesvn-buildrc file:
and delete the old entry in extragear/network
Now you can run kdesvn-build =)
After this looong building, it’s time to set up kdm: as regards the kde4.desktop and kdestart.sh files, the procedure is the same described in the old Step4; things are slightly different only for kdm. Since K/Ubuntu 9.10 moved permanently to Upstart, I wanted to setup kdm in the right way, not with a workaround such as in my last how-to. So I cheked in the /kdm/README file, and I discovered the last update was ~2 years ago and contained only a guide to set it up with inittab ( my reaction –> O.o ). So I started reading how Upstart works and, after some wrong tries, I came up with a functioning procedure =)
Then, I wrote a mail to the kde-devel mailing lists to see if my procedure was making sense, and then finally a developers asked me to update the README file: here you can find out how to setup kdm in the right way ; )