KDE 4.9.5 on EL6

Hi all,

I finally got a first version of a quite complete KDE 4.9.5 distribution compiled and working on CentOS 6.3.
After a while having troubles with kdesrc-build I decided to just download the sources linked on the page http://www.kde.org/info/4.9.5.php and compile them one-by-one. The most of the dependencies like QT 4.8, attica and so on, I already build by hand or with help of kdesrc-build.

What is out there now

  • 2 large tarballs with the KDE 4.9.5 and QT 4.8.2 compiled for x86_64 to be extracted in /opt/kde49 and /opt/qt48
  • a dozen even larger tarballs containing sources.
  • an incomplete list of dependencies

What KDE components?

  • analitza
  • audiocd-kio
  • blinken
  • cantor
  • gwenview
  • kactivities
  • kalzium
  • kanagram
  • kate
  • kbruch
  • kdeadmin
  • kde-baseapps
  • kde-base-artwork
  • kdegames
  • kdelibs
  • kdenetwork
  • kdepim
  • kdepimlibs
  • kdepim-runtime
  • kde-runtime
  • kdesdk
  • kdetoys
  • kde-workspace
  • kmix
  • konsole
  • kscd
  • okular
  • oxygen-gtk
  • oxygen-icons

How to use this?

  • extract these tarballs, install the dependencies with yum and find missing ones by trying to run the software or run an ldd script on all the executables
  • download the sources and try to build it yourself

TODO

  • build even more KDE packages that aren’t build yet
  • create nice complete lists of dependencies and build-dependencies
  • separate tarballs for each KDE program or component
  • install libs in lib64 instead of lib
  • convert all this to neat RPM packages
  • fix packaging related bugs when they are found
  • create i686 version if needed

How to get it running

  1. kde49.tar.bz2 (1.3GB, unpacked 3,6GB)
  2. qt48.tar.bz2 (337MB, unpacked 950MB)

unpack these files in /opt and chown them to root.

Next:

  • Add a file /etc/ld.so.conf.d/kde49.conf file with the single line:
    /opt/kde49/lib
  • Add a file /etc/ld.so.conf.d/qt48.conf file with the single line:
    /opt/qt48/lib
  • Add a file /etc/profile.d/kde49.sh which will extend $PATH:
    export PATH=/opt/qt48/bin:/opt/kde49/bin:$PATH
  • To get KDM working and started automaticly with runlevel 5, add following line to /etc/X11/prefdm within the “if [ -f /etc/sysconfig/desktop ]” block from line 13 on:

    elif [ "$DISPLAYMANAGER" = KDE49 ]; then
    preferred=/opt/kde49/bin/kdm

    (of course, add it AFTER the “. /etc/sysconfig/desktop” line) and create/edit a file /etc/sysconfig/desktop with the single line:
    DISPLAYMANAGER=KDE49
  • Install dependencies. These can be installed with `yum install’ and need the repositories base, epel and atrpms (for multimedia/mp3 related items). Unfortunatly, on this moment, I don’t have a full list of dependencies because of the chaotic process building the software. I have a list with packages needed to build the software
    el6-dependencies
    When only running the software, the -devel packages are not needed, so you can run a s/-devel//g on this list.

Building

The source tree can be found here. It contains the tar balls with the KDE software, and a subdirectory with dependencies.
Last few tips when you want to build it:

  • install cmake28 from epel, and symlink ~/bin/cmake (or /usr/local/bin/cmake) to /usr/bin/cmake28, and check if `cmake –version’ runs this newer version instead of the standard 2.6 one.
  • pkg-config issues can be addressed by creating a /etc/profiles.d/pkgconfig.sh file containing
    export PKG_CONFIG_PATH=/opt/kde49/lib/pkgconfig:/usr/share/pkgconfig:/usr/local/share/pkgconfig
  • the src/dependencies directory is unfortunately not complete because I threw away some stuff in the middle of the process. I’ll try to rebuild everything on a clean CentOS install and record it properly as soon as I find time for it.
  • Tags: , , , , , , , ,

3 Responses to “KDE 4.9.5 on EL6”

  1. Fabrice Says:

    It is an interesting work. KDE on RHEL 6 is stable but quite old on some aspects and some software are really buggy. Moreover I am pretty sure it is not a priority for Red Hat to rebase it soon.

    I have some questions/TODO items:
    - Can we have in parallel KDE TUV and KDE 4.9 without interference?
    - Can we select both in KDM?
    - What about Nepomuk (virtuoso dependency)?
    - What is the list of broken things?
    - Does common software (out of KDE) work?

    To get dependencies, I would use rpm/srpm/readelf data on another distro and process them with graphviz.

    The reason to use RHEL for me is stability, thus upgrade KDE is a big and hazarding step.

  2. bastiaan Says:

    Hi,

    The reason I want to use CentOS or RHEL is the stable base for the coming years. I don’t want to upgrade every year my operating system and after the upgrade see things broken that worked before. On common distributions, older but well working versions of software disappear quite soon, things like Gnome2 and KDE3. I still use KDE3 programs which lack a good KDE4 alternative, like Amarok 1.4 and KDirstat.
    With EL6 basis you can just build and install this software and keep running for the next years that wouldn’t be possible with other distributions, because the library basis changes after an upgrade.

    With KDE4 I want to run the latest stable version because this works the best. Like you said, older KDE4 versions are buggy an lack functionality, like the KDE 4.3 version shipped with EL6.
    I also do my work with KDevelop, on version 3 before, but the 4 version has a couple of great functionalities like code auto completion and “variable awareness”, and for the 4 version you need the latest one that is most stable.

    How does KDE 4.9.5 work for now? It works quite well, but a few problems I discovered for now:
    - kdm and the KDE screen locker is compiled against wrong PAM module, so password auth didn’t work, is fixed now
    - nepomuk/virtuoso didn’t work because the iODBC modules couldn’t be found. I fixed it by creating symlinks /opt/kde49/lib/odbc/virtodbc_r.so => /usr/lib64/virtodbc_r.so. Virtuoso is the opensource-6.1 version from Epel, Soprano is custom compiled against it.
    - even after nepomuk fixed, KDE doesn’t seem to remember my Desktop settings. Didn’t find the problem yet. I am on this now.

    Remember that this KDE version is installed aside all the EL6 stuff. It is easy to install and reinstall by just unpacking tarball/rm -rf /opt/kde49. The only thing you should be aware off is that your old KDE4 settings from your home directory may be upgraded as soon as you log on, so going back to the old KDE 4.3 version with previous settings could be a problem if you have no backup of your home directory. I think KDE 4.3 put your settings in $HOME/.kde4 (not sure) but KDE 4.9.5 puts it in $HOME/.local somewhere.
    Using different users for KDE 4.3 and KDE 4.9.5 desktop environments can avoid problems.

    All other software works and should work without problems. KDE3 stuff works as before (doesn’t conflict) and GTK programs like Gimp, Firefox and Chrome work fine, especially with the oxygen-gtk engine, so they look like the KDE programs.

    I configured the system to use the new version of KDM instead, so it starts up the newest KDE version. I think KDM can be configured to use both, but I am not sure if it works. I should change KDM versions, see the /etc/sysconfig/desktop part of my article.
    Remember that the PATH environment should change to when you want to change between KDE 4.3 from RHEL or custom KDE4.9.5 (put /opt/kde49/bin before /usr/bin etc)

  3. Nathan Says:

    I have just tried this and unfortunately did not see the warning about backing up the .kde directory and could not revert back to KDE 4.3 so temporarily switched to gnome with a broken KDE for now, but I digress… I even backed out all path changes and KDE 4.3 was toast.

    The real reason for this is I had 2 strange errors. The first is it dropped my sound card and switched to default, but kept throwing the error ding sound over and over and would not stop. The dinging did not happen the first time I used it, but on subsequent logins.

    More importantly, when I tried to logoff, I received a kbuildsycoca4 crash right after the logoff occurrs, and before the login prompt appears.

    Most likely a dependency issue, but I don’t know what it would be. I am running RHEL 6.3.

Leave a Reply