msgbartop
Faut pas y craindre
msgbarbottom

07 fév 10 [KDE 4] Compiler KDE pour Kubuntu à partir des sources (Build KDE from trunk)

Introduction

Pourquoi compiler KDE?

Cela a commencé peu après la sortie de KDE4.1, KDE4 commencait à devenir utilisable et progressait à grand pas. A l’époque je posais régulièrement des questions sur des fonctionnalités manquantes ou buguées, la réponse se résumait souvent par un « It’s in trunk! » ( »C’est dans le tronc »). Las! J’ai donc décidé de me lancer dans la compilation de KDE depuis ses sources les plus récentes (le « trunk »), pour bénéficier moi aussi des dernières avancées dès qu’elles étaient disponibles, c’est à dire avant leur packaging pour Kubuntu, ma distribution.

Qui a dit impatient? :)

Cela ne s’est pas fait sans mal, compiler KDE, même après plusieurs semaines de pratique reste une aventure toujours pleine d’imprévus :) La première fois j’y ai passé un week-end entier. Mais cela m’a permis de bien mieux comprendre la structure de KDE et d’apprendre plusieurs choses au passage. Et surtout cela m’a permis de contribuer au code par la suite!

En résumé, je compile KDE car:

  • C’est fun d’avoir les dernières fonctionnalités avant tout le monde.
  • Cela permet de participer plus efficacement au débuggage, voir au développement.
  • C’est un peu comme la chasse au trésor :-p

Méthode choisie

Il y a différentes façons de compiler KDE[1]. A ma connaissance les deux méthodes les plus utilisées sont:

Par ailleurs, on peut décider de compiler KDE avec son utilisateur courant ou avec un utilisateur spécialement créé pour l’occasion.

Pour ma part je présenterai ici l’approche « à la David Faure », en utilisant mon utilisateur courant. C’est la méthode que j’ai adoptée initialement car c’était la mieux documentée à mon sens lorsque j’ai débuté, et elle s’est avérée satisfaisante. J’essaie de la synthétiser ici car la documentation pour la compilation sur le wiki officiel est énorme car très complète, regroupant toutes les approches possibles et nécessitant beaucoup de temps à être décortiquer quand on débute. Elle nécessiterait sans doute d’être reprise et scindée en plusieurs morceaux (c’est un wiki), mais ce n’est pas quelque chose que je me sens capable de faire pour le moment :/

Mise en place de l’environnement de compilation

C’est sans doute la partie la plus mystérieuse mais aussi la plus critique pour obtenir quelque chose qui marche sans polluer son installation courante. L’explication à ce propos est éclatée dans plusieurs endroits dans la doc de KDE.

Création des répertoires nécessaires à l’installation

Je conseille pour la suite de créer un répertoire kde dans votre home. Dans mon cas j’ai donc un répertoire /home/kolia/kde. Cela sera votre $KDEDIR. A l’intérieur de ce répertoire vous pouvez déjà créer les sous-dossiers /src et /build, qui accueilleront respectivement les sources de KDE et les fichiers de build.

Copie des variables d’environnement dans un fichier .my-setup

Pour compiler une installation à l’écart de l’installation courante, et trouver les sources il est nécessaire de paramétrer et sourcer des variables d’environnement.

Donc récupérer le code à cette adresse: http://techbase.kde.org/Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc et collez-le dans un fichier .my-setup que vous placerez dans votre /home/yourusername/kde/src/

Les seules variables à modifier éventuellement sont:

  • KDEDIR : Pas la peine d’y toucher si vous avez suivi ma recommandation, elle vaut $HOME/kde
  • KDEHOME: Chez moi j’ai mis $HOME/.kdebranch au lieu de $HOME/.kde4 pour être bien clair. Mais pas obligé d’y toucher.
  • QTDIR: Là ou sera installé la version plus récente de QT nécessaire pour compiler KDE. Pas la peine d’y toucher non plus. Juste de le savoir.

Ajout des fonctions qui vont bien dans le .bashrc pour trouver le .my-setup

Afin de « sourcer » (charger) le fichier .my-setup quand vous le rencontrez, pour vous mettre dans les conditions de votre installation parallèle, il faut ajouter une fonction à votre .bashrc. Donc recopiez ce code: http://web.davidfaure.fr/scripts/cd_function dans le fichier /home/yourusername/.bashrc

Ajout du fichier findup pour faire fonctionner la fonction précédente

La fonction rajoutée dans le .bashrc précédemment appelle la fonction findup que vous trouverez ici :http://web.davidfaure.fr/scripts/findup Copiez le code dans un fichier ‘findup’ que vous placerez dans /home/yourusername/bin/

Ca marche?

Voilà, maintenant sourcez votre .bashrc (ou redémarrez).
Si vous vous rendez ensuite dans /home/yourusername/kde/src dans une console vous devriez lire ce message:
Loading /home/yourusername/kde/src/.my-setup
OK, ça veut dire qu’il a bien été pris en compte!

Pré-requis

Les paquets pré-requis à la compilation de KDE pour Kubuntu se trouvent ici:
http://techbase.kde.org/Getting_Started/Build/KDE4/Kubuntu_and_Debian
Copiez-y la seconde commande qui installe tous les pré-requis, paquets optionnels inclus.

Récupération des sources

On commence enfin les choses intéressantes. Il s’agit donc de récupérer le code source de KDE mais aussi des autres composants qui vont être nécessaire à la compilation de KDE

Récupération du code de QT from git

La version de développement de KDE utilise une version de QT plus récente que celle généralement disponible dans les paquets de votre distribution, il va donc falloir compiler QT également à partir d’un dépot spécifique géré par Git. Si vous n’avez pas encore installé Git sur votre machine c’est le moment.

Ensuite rendez-vous dans le dossier /home/yourusername/kde/src et tapez-y la commande:
git clone git://gitorious.org/+kde-developers/qt/kde-qt.git qt-kde. Cela va récupérer le code source de QT dans un dossier qt-kde.

Récupération du code des composants annexes: kdesupport

Un certain nombre de composants qui ne sont pas propres à KDE mais lui sont nécessaires sont hébergés dans le SVN de kde, dans le répertoire kdesupport. Pour le récupérer tapez juste en console:
svn co svn://anonsvn.kde.org/home/kde/trunk/kdesupport. Cela va récupérer le code de kdesupport dans un dossier kdesupport.

Récupération des sources de KDE

Je ne vais donner ici que les commandes pour récupérer les modules nécessaires a minima pour compiler KDE:

  • svn co svn://anonsvn.kde.org/home/kde/trunk/kdelibs
  • svn co svn://anonsvn.kde.org/home/kde/trunk/kdepimlibs
  • svn co svn://anonsvn.kde.org/home/kde/trunk/kdebase
  • Et en bonus kdeplasma-addons pour récupérer la majorité des widgets aussi :) svn co svn://anonsvn.kde.org/home/kde/trunk/kdeplasma-addons

Vous devez maintenant avoir le code source de toutes les briques nécessaires. Passons à la compilation!

Compilation

Qt

On commence par Qt:

  1. cd qt-kde
  2. ./configure -qt-gif -debug -fast -no-separate-debug-info \
    -system-libpng -system-libjpeg -system-zlib \
    -dbus -webkit -plugin-sql-mysql \
    -nomake examples -nomake demos -prefix $QTDIR
  3. make -j2
  4. make install

Cela va durer un moment, vous pouvez aller vous faire un café…

kdesupport

  • cd ../kdesupport
  • cmakekde


Note
: 'cmakekde' est une fonction fournie par l’un des fichiers que l’on a configuré lors de la mise en place de l’environnement. Elle regroupe en fait les fonctions cmake, make et make install, ce qui permet d’effectuer une compilation en une commande.

KDE

La démarche est ensuite la même pour chaque composant qu’on souhaite compiler: on entre dans le dossier source et on execute cmakekde (attention:exception pour kdebase, voir ci-dessous)

  • cd ../kdelibs
  • cmakekde
  • cd ../kdepimlibs
  • cmakekde
  • cd ../kdebase
  • cmakekde -DPYTHON_SITE_PACKAGES_DIR=~/.local/lib/python2.6/site-packages
  • cd ../kdeplasma-addons
  • cmakekde

Si tout se passe bien (ce qui est peu probable la première fois :-p) vous devriez avoir compilé le nécessaire poru faire tourner la dernière version de KDE. Si vous rencontrez un problème (la résolution des problèmes de compilation n’est pas l’objet de ce post), quelques solutions:

Se logger dans une session utilisant KDE compilé

Maintenant que vous avez réussi la compilation, vous mourrez évidemment d’envie, et vous ne souhaitez plus qu’une chose: admirez le résultat! Pour cela, il faut créer un fichier qui va rajouter une entrée de choix de session au niveau de la page de connexion.

Création de l’entrée de choix de session

Il vous faut créer un fichier .desktop dans /usr/share/apps/kdm/sessions/ ou dans /usr/share/xsessions/ . Le plus simple est de copier un fichier kde.desktop existant et le renommer en kdetrunk.desktop. Ensuite ouvrez ce nouveau fichier dans un éditeur de texte et changez les lignes Exec, TryExec et Name. Si vous avez suivi mon conseil initial et créé votre dossier kde dans votre /home/yourusername/ cela doit être:

  • Exec=/home/yourusername/kde/bin/startkde
  • TryExec=/home/yourusername/kde/bin/startkde
  • Name=KDEtrunk

Enjoy

Vous pouvez maintenant vous déconnecter et vous reconnectant en choisissant comme session: KDEtrunk
Bonne chance!

Note: Si vous constatez des erreurs ou des inexactitudes dans ce post, n’hésitez par à me le signaler pour que je le corrige :)

[1] La doc officielle pour compiler la version de développement de KDE: http://techbase.kde.org/Getting_Started/Build/KDE4

Faites tourner!
  • Facebook
  • Twitter
  • Slashdot
  • Identi.ca
  • del.icio.us
  • Digg
  • StumbleUpon
  • Netvibes
  • Google Bookmarks
  • Print
  • FriendFeed
Articles en rapport (ou pas!) :

Leave a Comment