MonWiki

CompileKde4

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: Vous êtes ec2-3-21-106-4.us-east-2.compute.amazonaws.com

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
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
Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]