debian

Tutorial: Up-to-Date Software on Debian Etch
Final: KDE, XFCE4 and Applications

home
previous

KDE

KDE, even of the latest version on Dec 20, 2007, is not as advanced as Gnome and doesn't need fancy dependencies. Everything except only a few packages can be taken from Etch repositories.

I didn't bother to install the dependencies. I had some before, and later, compiling Garnome, I installed more. If you get any errors, read the messages in the terminal and config.log carefully. But most likely following this tutorial you won't get any. Anyway dependencies for Lenny and Sid are listed on the KDE website. They should work also on Etch.

Dependencies:

Kde Dependencies

Download:

kdelibs-3.5.8.tar.bz2
kdebase-3.5.8.tar.bz2
arts-1.5.8.tar.bz2
kdeaddons-3.5.8.tar.bz2
kdeartwork-3.5.8.tar.bz2
kdebindings-3.5.8.tar.bz2
kdegames-3.5.8.tar.bz2
kdegraphics-3.5.8.tar.bz2
kdeutils-3.5.8.tar.bz2
kdemultimedia-3.5.8.tar.bz2
kdenetwork-3.5.8.tar.bz2
kdepim-3.5.8.tar.bz2
kdeadmin-3.5.8.tar.bz2
kdeedu-3.5.8.tar.bz2
kdeaccessibility-3.5.8.tar.bz2
kdetoys-3.5.8.tar.bz2
kdevelop-3.5.0.tar.bz2
kdewebdev-3.5.8.tar.bz2
kdesdk-3.5.8.tar.bz2
Required
Required
Required
Optional
Optional
Optional
Optional
Optional
Optional
Optional
Optional
Optional
Optional
Optional
Optional
Optional
Optional
Optional
Optional

aRts and then kdelibs should be installed before everything else, and kdeaddons last. The other packages can be installed in any arbitrary order.

Make your .bashrc look like this:

KDEDIR=/opt/kde-3.5.8

PATH=$KDEDIR/bin:$PATH
export PATH

LD_LIBRARY_PATH=$KDEDIR/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

PKG_CONFIG_PATH=$/opt/kde-3.5.8/lib/pkgconfig: \
/opt/kde-3.5.8/lib/pkgconfig:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH

Run configure with the options:

./configure --prefix=/opt/kde-3.5.8 --exec_prefix=/opt/kde-3.5.8 --bindir=/opt/kde-3.5.8/bin --sbindir=/opt/kde-3.5.8/sbin --libexecdir=/opt/kde-3.5.8/libexec --datadir=/opt/kde-3.5.8/share --sysconfdir=/opt/kde-3.5.8/etc --sharedstatedir=/opt/kde-3.5.8/share --localstatedir=/opt/kde-3.5.8/var --libdir=/opt/kde-3.5.8/lib --infodir=/opt/kde-3.5.8/info --includedir=/opt/kde-3.5.8/include --mandir=/opt/kde-3.5.8/man --disable-static --disable-maintainer-mode --disable-debug --disable-tests

Compiling KDE, Summery and Errors
arts

apt-get install libqt3-headers libaudio-dev libmng-dev libqt3-mt-dev libxmu-dev libxt-dev qt3-dev-tools

kdelibs

apt-get install hspell libopenexr-dev libacl1-dev libattr1-dev

Download: mDNSResponder-107.6.tar.gz
cd /home/rex/Desktop/Downloads/mDNSResponder-107.6/mDNSPosix
make os=linux
make os=linux install

kdebase

This is the last package of the required ones. If you don't want any bloats, then you are done.

kdeartwork

Put into your .bashrc:
CPPFLAGS="-I/opt/kde-3.5.8/include"
LDFLAGS="-L/opt/kde-3.5.8/lib"
export CPPFLAGS LDFLAGS

kdebindings

apt-get install libmono-peapi1.0-cil libmono-relaxng1.0-cil libmono-system-runtime1.0-cil mono-mcs libqt3-compat-headers python-kde3 python-qt3 python-sip4 ruby1.8-dev

kdeadmin

Nothing is needed.

kdesdk

apt-get install libaprutil1-dev libsvn-dev

kdesdk

Nothing.

kdenetwork

apt-get install libslp-dev xmms-dev libmeanwhile-dev libmeanwhile1 libspeex-dev

Add to configure the option:
--enable-jingle

ERROR:
linphonemediaengine.cc:142: error: 'speex_wb' was not declared in this scope

Supposedly libortp5 libortp5-dev should work, but they don't have the necessary features compiled into them:

<<Any version other than 0.7.1 will not work!>>

FIX:
Remove libortp5 libortp5-dev, if you have them installed.
Download and install ortp-0.7.1.tar.gz

kdemultimedia

apt-get install libtheora-dev liboggflac-dev libsamplerate0-dev libspeex-dev libtag1-dev libmusicbrainz4-dev libtunepimp3 libtunepimp3-dev libgstreamer-plugins0.8-0 libgstreamer-plugins0.8-dev libgstreamer0.8-0 libgstreamer0.8-dev

Download and install 30375-akode-2.0.2.tar.bz2

kdepim

apt-get install kttsd libakode2 libgnokii3 libgnokii3-dev libopensync0 libopensync0-dev

Download and install libmal-0.44.tar.gz

Add to configure the option:
--enable-indexlib

kdeedu

apt-get install python-dev libboost-dev libboost-python1.33.1 ocaml-base ocaml-base-nox ocaml-interp ocaml-nox libfacile-ocaml-dev

MESSAGE:
Kig WARNING
===========
There is a problem using unpatched Boost.Python 1.30 in combination
with GCC 3.2 and above. In some distributions, like Debian sarge,
this problem has been fixed, but in other distributions, the problem
may still be there. If you encounter problems while compiling Kig,
then you should try to re-run configure with the option
"--disable-kig-python-scripting". This may fix the compilation, but
you will not be able to use the Kig Python Scripting.

Funny. What crap this latest KDE is.

kdegames

Nothing is needed.

kdetoys

Nothing, either

kdewebdev

MESSAGE:
*************** Important *************************

Add /opt/kde-3.5.8/bin to your PATH and
add /opt/kde-3.5.8 to your KDEDIRS!

We did this already.

kdeutils

MESSAGE:
You're missing tpctl. If you're using a ThinkPad, you may miss
some functionality of klaptopdaemon.
You can get them from http://tpctl.sourceforge.net/tpctlhome.htm

Download and install tpctl_4.17.orig.tar.gz
There's also a deb package on that ftp repository. You can try it, if you're not afraid.

kdeaccessibility

This package depends on ancient buggy crap. I didn't install it. If you need it, you can spend your time on adjusting the pieces on your own.

kdevelop

MESSAGE:
You have no kdelibs documentation generated by Doxygen installed.
You should install Doxygen from www.doxygen.org, reconfigure
and rebuild the kdelibs sources. You should 'make apidox' and
'make install' in your kdelibs build dir, and then rerun this
configure script.

No, thanks. I have doxygen installed, but they say, it will take several hours to generate documentation that will occupy the volume of 500 Mb. I am not a KDE developer.

I didn't install this package.

kdegraphics

apt-get libcairo2-dev libpoppler-dev libpoppler-qt-dev libpoppler0c2-qt libpaper-dev imlib11-dev

ERROR:
GlobalParams.cc: In destructor 'GlobalParams::~GlobalParams()':
GlobalParams.cc:1827: warning: dereferencing type-punned pointer will break strict-aliasing rules
GlobalParams.cc: In function 'void parseStyle(QString&, int&, int&, int&)':
GlobalParams.cc:2069: error: 'FC_WIDTH_CONDENSED' was not declared in this scope
GlobalParams.cc: In member function 'DisplayFontParam* GlobalParams::getDisplayFont(GString*)':
GlobalParams.cc:2083: error: 'FC_WIDTH_NORMAL' was not declared in this scope
GlobalParams.cc:2089: error: 'FC_WIDTH' was not declared in this scope
GlobalParams.cc: In member function 'CharCodeToUnicode* GlobalParams::getUnicodeToUnicode(GString*)':
GlobalParams.cc:2580: warning: dereferencing type-punned pointer will break strict-aliasing rules
make[4]: *** [GlobalParams.lo] Error 1
make[4]: Leaving directory `/home/rex/Desktop/Downloads/kdegraphics-3.5.8/kpdf/xpdf/xpdf'

FIX:
It's a fontconfig issue. It comes out that Etch's fontconfog is too old. I fixed this problem by installing the latest fontconfig-2.5.0.tar.gz into /opt/kde-3.5.8 my usual way. Thanks to the Spanish guy for the hint.

ERROR :
./.libs/libkdeinit_kuickshow.so: undefined reference to `Imlib_save_image'
./.libs/libkdeinit_kuickshow.so: undefined reference to `Imlib_render'

FIX:
This is an absolutely weird error. I have imlib headers and libraries which I compiled sepretaly trying to fix this issue:

IMLIB_CFLAGS='-I/opt/kde-3.5.8/include -I/usr/X11R6/include '
IMLIB_LIBS='-L/opt/kde-3.5.8/lib -L/usr/X11R6/lib -lImlib -ljpeg -ltiff -lungif -lpng -lz -lm -lSM -lICE -lXext -lX11 '

I fixed it this way. I deleted the entire kdegraphics-3.5.8 folder and unpacked a new one from the tarball. Then after running ./configure I changed directory to kdegraphics-3.5.8/kuickshow and ran make. So kuickshow was the first application I built. Than I changed directory back to kdegraphics-3.5.8 and ran make as usual. Maybe that was not a fix at all. Maybe shit just happened. Anyway it works now.

kdeaddons

OK.

Installing KDE

Create file KDE-3.5.8.desktop with the following content:

[Desktop Entry]
Name=KDE-3.5.8

Exec=/opt/kde-3.5.8/bin/startkde

Make it executable and put into /usr/share/xsessions

sudo chmod a+x KDE-3.5.8.desktop

If you start X with startx command, put into your .xinitrc:

/opt/kde-3.5.8/bin/startkde

XFCE4

XFCE people warn that compiling programs from source might be a pain and suggest a nice graphical installer which due to some reason was not helpful for me. Probably because I ran XFree86 binaries on my machine. Anyway compiling 25 Mb XFCE after giant Gnome and crappy KDE was like a toy, like candy. It went flawlessly, and I was done in 40 minutes.

Change directory to xfce-4.4.2/src and untar all the packages.

Then compile in order:

exo-0.3.4
gtk-xfce-engine-2.4.2
libxfce4util-4.4.2
mousepad-0.2.13
libxfce4mcs-4.4.2
xfce-mcs-manager-4.4.2
xfce4-panel-4.4.2
orage-4.4.2
Terminal-0.2.8
Thunar-0.9.0
xfce4-appfinder-4.4.2
xfce4-dev-tools-4.4.0.1
xfce4-icon-theme-4.4.2
xfce4-mixer-4.4.2
xfce4-session-4.4.2
xfce-mcs-plugins-4.4.2
xfprint-4.4.2
xfwm4-4.4.2
xfwm4-themes-4.4.2
xfce-utils-4.4.2
xfdesktop-4.4.2
xfwm4-themes-4.4.2

Use these options for ./configure:

./configure --prefix=/opt/xfce-4.4.2 --exec_prefix=/opt/xfce-4.4.2 --bindir=/opt/xfce-4.4.2/bin --sbindir=/opt/xfce-4.4.2/sbin --libexecdir=/opt/xfce-4.4.2/libexec --datadir=/opt/xfce-4.4.2/share --sysconfdir=/opt/xfce-4.4.2/etc --sharedstatedir=/opt/xfce-4.4.2/share --localstatedir=/opt/xfce-4.4.2/var --libdir=/opt/xfce-4.4.2/lib --infodir=/opt/xfce-4.4.2/info --includedir=/opt/xfce-4.4.2/include --mandir=/opt/xfce-4.4.2/man --disable-static --disable-maintainer-mode --disable-debug --disable-tests

I had Garnome already installed, and I linked to it. I made my .bashrc look like this:

# ====== XFCE ===============================

PATH=/home/rex/garnome/bin:/opt/python-2.5.1/bin:$PATH
export PATH

PKG_CONFIG_PATH=$/usr/lib/pkgconfig:/opt/xfce-4.4.2/lib/pkgconfig: \
/home/rex/garnome/lib/pkgconfig:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH

LD_LIBRARY_PATH=/home/rex/garnome/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

CPPFLAGS="-I/home/rex/garnome/include"
LDFLAGS="-L/home/rex/garnome/lib"

export CPPFLAGS LDFLAGS

You might want to install libgtk2.0-dev:

apt-get install libgtk2.0-dev

When compiling is done, create a file launch-xfce-4.4.2 with the following content:

#!/bin/bash

XFCE4=/opt/xfce-4.4.2

PATH=/bin:/usr/bin:/opt/garnome/bin:/opt/xfce-4.4.2/bin
LD_LIBRARY_PATH=$XFCE4/lib:$LD_LIBRARY_PATH

PKG_CONFIG_PATH=$XFCE4/lib/pkgconfig:/usr/lib/pkgconfig
XDG_DATA_DIRS=$XFCE4/share

XDG_CONFIG_DIRS=$GXFCE4/etc/xdg
MANPATH=$XFCE4/man:$MANPATH

export PATH LD_LIBRARY_PATH PYTHONPATH PKG_CONFIG_PATH \
GDK_USE_XFT XDG_DATA_DIRS XDG_CONFIG_DIRS MANPATH DBUS_LAUNCHexec $DBUS_LAUNCH

$XFCE4/bin/xfce4-session

Make it executable and put into /opt/xfce-4.4.2/bin directory.

Create file xfce-4.4.2.desktop with the following content:

[Desktop Entry]
Encoding=UTF-8
Name=xfce-4.4.2
Exec=/opt/xfce-4.4.2/bin/launch-xfce-4.4.2
Type=Application

Make it executable and put into /usr/share/xsessions:

sudo chmod a+x xfce-4.4.2.desktop
sudo cp xfce-4.4.2.desktop /usr/share/xsessions

Now the Button xfce-4.4.2 should appear in GDM or KDM.

If you start X with startx, put into your .xinitrc the line:

/opt/xfce-4.4.2/bin/launch-xfce-4.4.2

If you want to get rid of your older xfce4 and don't know which packages to remove, you can get them with the command:

sudo apt-cache depends xfce4

Applications

Having newer libraries it is quite easy to compile newer applications. Gimp-2.4.1, Firefox-2.0.0.10 or even GTK+-2.12.2 and many more can be taken right from Garnome. Just change the directory to the folder containing the application or the library and run "make install". The program will be built and installed together with its dependencies. You might want to take a look into gar.conf.mk file to change paths. Once you have the dependencies, it is easy to build other programs. For example, I couldn't run Etch's Sylpheed Claws and some other programs which crashed in Garnome because they were compiled with the older GTK. I compiled new ones instead.

Claws-Mail
The only difficulty in compilation is to make pkg-config use the packages not the ones it wants but the ones we need. One of the ways to do that is editing your .bashrc. Put the following content into it:

PATH=/home/rex/garnome/bin:$PATH
export PATH

PKG_CONFIG_PATH=$:/home/rex/garnome/lib/pkgconfig:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH

LD_LIBRARY_PATH=/home/rex/garnome/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

CPPFLAGS="-I/home/rex/garnome/include"
LDFLAGS="-L/home/rex/garnome/lib"

export CPPFLAGS LDFLAGS

Then you will need X server headers. Otherwise you can get the error:

Package x11 was not found in the pkg-config search path. Perhaps you should add the directory containing `x11.pc' to the PKG_CONFIG_PATH environment variable Package 'x11', required by 'cairo', not found.

You have X headers already installed, but pkg-config should find then, since flags are pointed to garnome. I made just a bunch of symlinks:

cd /opt/garnome/lib/pkgconfig
sudo ln -s /usr/lib/pkgconfig/x11.pc
sudo ln -s /usr/lib/pkgconfig/xproto.pc
sudo ln -s /usr/lib/pkgconfig/kbproto.pc
sudo ln -s /usr/lib/pkgconfig/xau.pc
sudo ln -s /usr/lib/pkgconfig/xdmcp.pc
sudo ln -s /usr/lib/pkgconfig/xext.pc
sudo ln -s /usr/lib/pkgconfig/xextproto.pc
sudo ln -s /usr/lib/pkgconfig/xinerama.pc
sudo ln -s /usr/lib/pkgconfig/xineramaproto.pc
sudo ln -s /usr/lib/pkgconfig/xi.pc
sudo ln -s /usr/lib/pkgconfig/inputproto.pc
sudo ln -s /usr/lib/pkgconfig/xrandr.pc
sudo ln -s /usr/lib/pkgconfig/randrproto.pc
sudo ln -s /usr/lib/pkgconfig/xfixes.pc
sudo ln -s /usr/lib/pkgconfig/fixesproto.pc
sudo ln -s /usr/lib/pkgconfig/xcomposite.pc
sudo ln -s /usr/lib/pkgconfig/compositeproto.pc
sudo ln -s /usr/lib/pkgconfig/xdamage.pc
sudo ln -s /usr/lib/pkgconfig/damageproto.pc

*** Claws Mail requires libetpan 0.49 or newer. See http://www.etpan.org/
*** You can use --disable-libetpan if you don't need IMAP4 and/or NNTP support.
configure: error: libetpan 0.49 not found.

In etch it is libetpan-dev (0.48-1)

In garnome there's no libetpan at all.

DOWNLOAD libetpan-0.52.tar.gz and compile it into Garnome with

./configure --prefix=/home/rex/garnome --exec_prefix=/home/rex/garnome --bindir=/home/rex/garnome/bin --sbindir=/home/rex/garnome/sbin --libexecdir=/home/rex/garnome/libexec --datadir=/home/rex/garnome/share --sysconfdir=/home/rex/garnome/etc --sharedstatedir=/home/rex/garnome/share --localstatedir=/home/rex/garnome/var --libdir=/home/rex/garnome/lib --infodir=/home/rex/garnome/info --includedir=/home/rex/garnome/include --mandir=/home/rex/garnome/man --disable-static --disable-maintainer-mode --disable-debug --disable-tests --enable-gnutls

DOWNLOAD and compile:

claws-mail-3.2.0.tar.bz2
claws-mail-extra-plugins-3.2.0.tar.bz2 - a bunch of plugins
claws-mail-themes-20070116.tar.bz2

XFree86
I had xfree86 binaries from XFree86 installed. I didn't notice any difference between it and xorg except that gliv crashed with the error:

drm_radeon_cmd_buffer_t: -22 (exiting)

So if you want to uninstall xfree86 from XFree86 try my way:

sudo mv /etc/X11/app-defaults /etc/X11/app-defaults.xfree86
sudo mv /etc/X11/xserver /etc/X11/xserver.xfree86
sudo mv /etc/X11/xinit /etc/X11/xinit.xfree86

sudo mv /etc/X11/app-defaults.3827 /etc/X11/app-defaults
sudo mv /etc/X11/xserver.3827 /etc/X11/xserver
sudo mv /etc/fonts/fonts.conf.3827 /etc/fonts/fonts.conf
sudo mv /etc/fonts/fonts.dtd.3827 /etc/fonts/fonts.dtd
sudo mv /etc/X11/xinit.3827 /etc/X11/xinit

sudo rm /usr/bin/X
sudo ln -s /usr/bin/Xorg /usr/bin/X

When you get sure that everything is OK, delete everything related to xfree86:

sudo rm -rf /usr/X11R6
sudo rm -rf /etc/X11/xinit.xfree86
sudo rm -rf /etc/X11/xserver.xfree86
sudo rm -rf /etc/X11/app-defaults.xfree86
sudo rm /usr/bin/XFree86
sudo rm /usr/bin/xf86cfg

gpicview
Gpicview is a very nice and fast emage viewer. It doesn't take a lot of resources and pops up in an instance. Gpicview is very handy, when you need just quickly open and take a look at the picture.

DOWNLOAD gpicview-0.1.7.tar.gz and compile like Claws-Mail. No other issues.

gliv
The same requirements are for Gliv as well. It needs gtkglext installed first.

DOWNLOAD gtkglext-1.2.0.tar.bz2 gliv-1.9.6.tar.bz2 and compile like for Claws-Mail and run ./configure with the following options:

--prefix=/home/rex/garnome --bindir=/home/rex/garnome/bin --libdir=/home/rex/garnome/lib

mplayer
The same way you can even install Mplayer.

DOWNLOAD from Mplayer website:

MPlayer v1.0rc2 source
Linux x86 20071007 codecs
Some skin

I made /opt/applications folder and put codecs into it. There's a switch in configure pointing to that.

--prefix=/home/rex/garnome --bindir=/home/rex/garnome/bin --libdir=/home/rex/garnome/lib --enable-gui --codecsdir=/opt/applications/mplayer-codecs

When compiling is done, put a font into ~/.mplayer or /folder_containing_mplayer/share/mplayer like:

cp /usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf ~/.mplayer/subfont.ttf

Then make the folder "skins" in ~/.mplayer or/folder_containing_mplayer/share/mplayer and put your skin into it like:

mkdir ~/.mplayer/skins
mv clearplayer ~/.mplayer/skins

Enjoy!

  
© Copyright 2007 design by Alex Ivanov contact me top   home   previous
3dplumbing