PagePrincipale .
memos .
CompileKde4
Compiler et installer KDE4
Testé: Lucid
Source documentaire: http://techbase.kde.org/
Prérequis
Installer le nécessaire pour compiler:
sudo apt-get install build-essential xorg-dev cdbs debhelper cmake \
kdesdk-scripts subversion xserver-xephyr doxygen dbus-x11 \
libstreamanalyzer-dev libstrigiqtdbusclient-dev libsasl2-dev libaspell-dev \
libxml2-dev libxslt1-dev shared-mime-info libical-dev libgif-dev libssl-dev \
libboost-dev libboost-program-options-dev libgpgme11-dev libxine-dev \
libqimageblitz-dev libbz2-dev libdbus-1-dev libpam0g-dev libpcre3-dev \
libkrb5-dev libsm-dev libclucene0ldbl libclucene-dev libjpeg62-dev libmysqlclient15-dev \
libxtst-dev xsltproc libxrender-dev libfontconfig1-dev libarchive-dev git-core \
librdf0-dev libraptor1-dev docbook-xsl polkit-agent-1-dev xutils-dev libpulse-dev
Création d'un compte utilisateur spécifique et préparations
sudo useradd -m kde-devel -s /bin/bash
sudo passwd kde-devel
Créer le fichier ~kde-devel/.bashrc à partir de cet
exemple à adapter au besoin, notamment en positionnent la variable
QTDIR et
KDEDIR :
export QTDIR=$HOME/qt-kde/
export KDEDIR=$HOME/kde/
Si une autre version de KDE4 est disponible sur votre système, modifier le fichier
.bashrc en remplaçant:
# XDG
unset XDG_DATA_DIRS # to avoid seeing kde3 files from /usr
unset XDG_CONFIG_DIRS
par:
# XDG
unset XDG_DATA_DIRS # to avoid seeing kde3 files from /usr
unset XDG_CONFIG_DIRS
if test -z "$XDG_DATA_DIRS"; then
- XDG_DATA_DIRS="`kde4-config --prefix`/share:/usr/share:/usr/local/share"
- export XDG_DATA_DIRS
fi
Important: Quitter et relancer la session
kde-devel pour que les variables d'environnement soient prises en compte.
Compilation de Qt4
Se connecter en tant que
kde-devel:
ssh -X kde-devel@localhost (si un serveur ssh est installé sur la machine. Pour l'installer:
sudo apt-get install openssh-server)
ou bien avec
su:
su - kde-devel
récupérer la version de Qt utilisée pour compiler KDE:
cd
git clone git://gitorious.org/+kde-developers/qt/kde-qt.git qt-kde
ou si votre FAI bride certains ports TCP :
git clone http://git.gitorious.org/+kde-developers/qt/kde-qt.git qt-kde/
création du Makefile
cd qt-kde/
KDE nous recommande d'exécuter
./configure avec ces options (voir
qt-kde/README.kde-qt):
./configure -qt-gif -debug -fast -no-exceptions -no-separate-debug-info \
-system-libpng -system-libjpeg -system-zlib -dbus -webkit \
-plugin-sql-mysql -nomake examples -nomake demos -prefix $QTDIR
IMPORTANT: Si on décide de changer les options de configuration, il faudra faire un
make confclean avant d'exécuter à nouveau
./configure (argument
--help pour voir les options disponibles).
Compilation
export MAKEFLAGS=-j2
make
-j2 permet d'utiliser les deux processeurs pour la compilation, remplacer par -j4 si quatre procs, etc (à rajouter éventuellement dans
~/.bashrc:
export MAKEFLAGS=-j2)
Installation
make install
Il est possible d'effacer les fichiers de compilation devenus inutiles pour libérer de la place sur le disque:
find . -name '*.o' -delete ;
et vérifier que
which qmake retourne:
/home/kde-devel/qt-kde/bin/qmake
Compilation de KDE
IMPORTANT: KDE va progressivement utiliser GIT en lieu et place de SVN, il se peut que cet article ne concorde pas toujours avec la configuration du moment.
kdesupport
kdesupport fournit des librairies externes à KDE mais indispensable à son fonctionnement:
libphonon, libgif, libmime, libqca, ...
On peut se passer de compiler
kdesupport si toutes les librairies sont présentes sur la machine.
cd
cs
svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport
cd kdesupport
cmakekde
ce qui est maintenant sur GIT:
attica: cs && git clone git://anongit.kde.org/attica && cd attica && cmakekde
akonadi: cs && git clone git://anongit.kde.org/akonadi && cd akonadi && cmakekde
phonon: cs && git clone git://anongit.kde.org/phonon && cd phonon && cmakekde
soprano: cs && git clone git://anongit.kde.org/soprano && cd soprano && cmakekde
polkit-qt-1: cs && git clone git://anongit.kde.org/polkit-qt-1 && cd polkit-qt-1 && cmakekde
Akonadi
Akonadi est utilisé par
kdepim (gestion des données personnelles - kmail, kopete, ...).
akonadi requiert
mysqld pour fonctionner:
sudo apt-get install mysql-server
Pour que le service
mysql ne démarre pas automatiquement au démarrage de l'ordinateur:
sudo update-rc.d -f mysql remove
Si un message nous informe qu'il est impossible d'enregistrer
akonadi dans
D-Bus (
Akonadi control process not registered at D-Bus):
sudo aa-complain mysqld
sudo /etc/init.d/apparmor reload
puis relancer akonadi:
akonadictl stop
akonadictl start
kdelibs
"KDElibs est un ensemble de bibliothèques qui fournissent des frameworks et des fonctionnalités pour les développeurs de logiciels s'intégrant à l'environnement KDE." (source wikipedia)
Importance:
INDISPENSABLE
depuis KDE 4.4: Il est nécessaire de récupérer et compiler la source suivante (requis par nepomuk) :
http://oscaf.sourceforge.net - décompresser puis compiler (cmakekde)
cd
cs
mkdir KDE && cd KDE
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs
cd kdelibs
cmakekde
kdepimlibs
kdepimlibs est nécessaire à
kdebase, il faut donc l'installer d'abord.
Importance:
INDISPENSABLE
kdepimlibs requiert
libical.
libical
Si la version fournie par la distribution est trop ancienne, téléchargez
libical à partir de
http://sourceforge.net/project/showfiles.php?group_id=16077 , puis compilez et installez.
boost
kdepimlibs requiert
libboost-graph1.xx-dev
kdepimlibs
cs KDE
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs
cd kdepimlibs
cmakekde
kdebase
"KDEBase est l'ensemble de base de bibliothèques et d'applications pour obtenir un environnement de bureau KDE minimal et fonctionnel.
En particulier, ce paquet contient les logiciels formant le bureau KDE, comme Kicker, KDesktop, KControl, Konqueror et Konsole." (source wikipedia)
Importance:
INDISPENSABLE
dbusmenu-qt a été récemment rajouté comme dépendance:
cs && git clone git://gitorious.org/dbusmenu/dbusmenu-qt.git && cd dbusmenu-qt && cmakekde
puis
checkout et compilation:
cs KDE
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase
cd kdebase
cmakekde
Autres paquets
Le principe est exactement le même pour les autres paquets:
kdeartwork, kdeadmin, kdemultimedia, kdenetwork, ...
Traductions
récupérer les traductions françaises:
cd
cs
mkdir l10n-kde4 && cd l10n-kde4
svn checkout svn://anonsvn.kde.org/home/kde/trunk/l10n-kde4/fr
svn checkout svn://anonsvn.kde.org/home/kde/trunk/l10n-kde4/scripts
./scripts/autogen.sh fr
cd fr
cmakekde
Mettre un module à jour
Il n'est pas nécessaire d'utiliser
cmakekde pour garder son système à jour. Exemple pour
kdesupport:
cs kdesupport
svn update
cb
make install
Exécuter KDE
Tester une application
Se connecter en tant que
kde-devel:
méthode 1:
ssh -X kde-devel@localhost
méthode 2:
xhost +local:kde-devel
su - kde-devel
export DISPLAY=:0
pour automatiser, on créé un script (
~/.kde/Autostart/fix_xhost.sh) qui sera exécuté à chaque démarrage de KDE (à partir de l'utilisateur d'où est lancé l'interface graphique):
echo -e "#\!/bin/bash\nxhost +local:kde-devel\n" > ~/.kde/Autostart/fix_xhost.sh
puis rendre exécutable:
chmod 750 ~/.kde/Autostart/fix_xhost.sh
et dans le fichier
.bashrc de l'utilisateur
kde-devel, positionner la variable
DISPLAY:
su - kde-devel
echo -e "export DISPLAY=:0\n" >> ~/.bashrc
méthode 1 et 2:
Exécuter l'application:
kwrite
kwrite --version pour vérifier qu'on exécute bien la version fraîchement compilée.
Ouvrir l'environnement KDE4 dans une fenêtre
Copier le script
startkde:
cp ~/kde/bin/startkde ~/kde/bin/startkde-modified
puis modifier
startkde-modified en ajoutant au début de script (après
#!/bin/bash)
prepend() { [ -d "$2" ] && eval $1=\"$2\$\{$1:+':'\$$1\}\" && export $1 ; }
# Qt
# only set Qt related variables if you compiled Qt on your own
# (which is discouraged). if you use the distro provided Qt, skip
# this section. Comment it if necessary.
export QTDIR=/home/kde-devel/qt-kde
prepend PATH $QTDIR/bin
prepend LD_LIBRARY_PATH $QTDIR/lib
prepend PKG_CONFIG_PATH $QTDIR/lib/pkgconfig
# KDE
export KDEDIR=/home/kde-devel/kde/
export KDEHOME=$HOME/.kde4
export KDETMP=/tmp/kde4-$USER
mkdir -p $KDETMP
prepend PATH $KDEDIR/bin
prepend LD_LIBRARY_PATH $KDEDIR/lib
prepend PKG_CONFIG_PATH $KDEDIR/lib/pkgconfig
prepend QT_PLUGIN_PATH $KDEDIR/lib/kde4/plugins
export PATH
export LD_LIBRARY_PATH
export PKG_CONFIG_PATH
export QT_PLUGIN_PATH
Si une autre version de KDE4 est disponible nous pouvons positionner la variable
KDEDIRS en rajoutant également dans ce fichier, le chemin des différentes versions de KDE (séparé par ":"):
export KDEDIRS=$KDEDIR:/usr
puis on utilise
Xephyr pour lancer une nouvelle session X:
Xephyr :1 -extension GLX -screen 1024x768 -kb&
export DISPLAY=:1
~/kde/bin/startkde-modified
Si
:1 est déjà utilisé, remplacer par
:2, et ainsi de suite.
Automatiser à l'aide d'un script
run_kde4.sh:
#!/bin/bash
NESTED_KDE_DISPLAY_BACKUP=$DISPLAY
echo "current display: $NESTED_KDE_DISPLAY_BACKUP"
Xephyr :1 -extension GLX -screen 1024x768 -kb &
export DISPLAY=:1
sleep 1
~/kde/bin/startkde-modified &
export DISPLAY=${NESTED_KDE_DISPLAY_BACKUP}
Configurer KDM
Objectif: ajouter une entrée à KDM pointant sur le fichier
startkde-modified précèdemment créé.
sudo cp /usr/share/xsessions/kde.desktop /usr/share/xsessions/kde4.desktop
et adapter ce nouveau fichier pour pointer sur le bon programme:
Exec=/home/kde-devel/kde/bin/startkde-modified
TryExec=/home/kde-devel/kde/bin/startkde-modified
Name=KDE4
et après avoir redémarré
kdm il est possible de lancer le bureau KDE4.
Divers
Chemin d'installation de KDE et compiler en mode "Release" pour
cmake :
cmake ../ -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` -DCMAKE_BUILD_TYPE=Release
Pages utiles:
RechercheTexte,
TableauDeBordDeCeWiki
Flux RSS:
Wiki,
Commentaires