B.9. Compilation de Gnome 2.20.0

Contrairement à KDE, Gnome utilise sa propre bibliothèque graphique, qui est elle-même basée sur XWindow. La compilation de Gnome requiert donc de compiler cette bibliothèques ainsi que les bibliothèques utilitaires qu'il utilise avant de compiler les applications.

Le nombre de modules constitant l'environnement Gnome est très important, essentiellement parce que cela permet des installations et des mises à jour partielles, mais cela induit une grande complexité dans les dépendances entre les modules et requiert un ordre de génération relativement strict. Malheureusement, tout comme pour X.org, cet ordre de compilation n'est pas ou très peu documenté, cette opération n'étant supposée être faite que par les distributions. De plus, les développeurs de Gnome ne s'imposent pas des contraintes d'intégration très strictes, et il n'est pas rare qu'une bibliothèque supposée être utilisée avec une version de Gnome ne compile pas, ne fonctionne pas correctement, ou ne soit tout simplement pas fournie. Il faut donc aller à la pêche pour retrouver les composants nécessaires et suffisants, dans la bonne version, avant de parvenir à compiler Gnome. La complexité est telle que certaines distributions ne fournissent plus que les bibliothèques de base et laissent de côté le reste de l'environnement.

Toutefois, les dernières versions de Gnome sont fournies avec un script de génération nommé Garnome. L'utilisation de ce script est recommandé, mais il ne fonctionnera que sur un système récent, en raison des dépendances fortes des bibliothèques de Gnome envers d'autres modules non fournis directement par le projet Gnome. En particulier, un certain nombre de ces modules proviennent du projet Free Desktop (http://www.freedesktop.org), mais cette règle n'est pas absolue. D'autres bibliothèques externes sont également requises, et ne sont pas listées dans les dépendances de Gnome.

B.9.1. Récupération des sources

Les fichiers d'archives de Gnome 2.20.0 peuvent être téléchargés directement à partir du site du projet Gnome (http://www.gnome.org) ou à partir de l'un de ses miroirs. Certaines archives non listées dans la version courante doivent être récupérées dans les répertoires des anciennes versions de Gnome.

Les sources de Gnome sont réparties dans trois répertoire. Le répertoire platform/ contient les sources des bibliothèques de base de Gnome, qu'il est conseillé d'installer même si on n'utilise pas l'environnement Gnome lui-même, car elles sont souvent utilisées par des programmes indépendants. Le répertoire desktop/ contient les sources des programmes de l'environnement de bureau Gnome lui-même. Le répertoire bindings/ contient les sources des bibliothèques permettant de programmer et de commander les programmes Gnome dans différents langages de programmation. Enfin, le répertoire admin/ contient des programmes complémentaires pour configurer et administrer Gnome dans le contexte d'un déploiement en entreprise.

B.9.2. Compilation des bibliothèques générales

La première étape dans la compilation de Gnome est donc d'installer les bibliothèques de base fournies par Freedesktop ou des projets tiers, ainsi que les bibliothèques de base de Gnome lui-même. L'ordre d'installation recommandé est le suivant :

Toutes ces bibliothèques et ces programmes peuvent être installés simplement en exécutant avec les commandes classiques configure, make et make install. Il est possible d'installer ces bibliothèques dans un autre répertoire que le répertoire par défaut en spécifiant le répertoire destination à l'aide de l'option --prefix lors de la compilation de chaque module. Ces bibliothèques et outils étant utilisés par un grand nombre de programmes (et pas uniquement par Gnome), il est recommandé de les installer globalement dans le système. Dans le cas d'une installation non standard, il est impératif dans ce cas d'ajouter le répertoire des binaires de Gnome dans la variable d'environnement PATH, ainsi que le répertoire des bibliothèques de Gnome dans la variable d'environnement LD_LIBRARY_PATH pour que la compilation des autres modules qui les utilisent se déroule sans problème. Il est également nécessaire d'ajouter le répertoire de stockage des informations sur les paquetages sources dans la variable d'environnement PKG_CONFIG_PATH.

Note : Le navigateur Internet firefox ne fait pas à proprement parler partie de Gnome, et encore moins de ses bibliothèques. Toutefois, l'environnement de Gnome utilisent certaines de ses bibliothèques d'une part, et il s'appuie sur la bibliothèque graphique Gtk+ de Gnome. De ce fait, son installation est un prérequis et il est considéré ici comme une des dépendances de base de Gnome.

DBUS utilise un démon de communication qu'il est conseillé d'exécuter dans un compte utilisateur spécifique pour des raisons de sécurité. Par défaut, cet utilisateur est l'utilisateur messagebus, qui doit appartenir au groupe d'utilisateur du même nom. Enfin, il faut s'assurer que le démon de gestion du bus de communication est effectivement lancé avant la compilation des modules suivants. Des scripts de démarrage système sont fournis avec les sources de DBUS pour les principales distributions, il vous faudra les installer à l'endroit prévu à cet effet et lancer le démon avant de poursuivre la compilation.

La bibliothèque DBUS a changé le nom d'une de ses fonctions récemment, ce qui empêche la compilation des outils de la bibliothèque HAL. Il faut donc corriger les noms de cette fonction dans la bibliothèque HAL. Ainsi, il vous faudra remplacer toutes les occurrences de « dbus_connection_disconnect » en « dbus_connection_close » dans les fichiers sources de HAL. Par ailleurs, la compilation de la documentation de HAL ne se fait pas correctement. Cela n'est toutefois pas gênant et n'empêche pas l'installation des binaires avec la commande make install.

Vous devrez peut-être indiquer à Gnome où se trouve la DTD XML de DocBook une fois les bibliothèques libxml et libxslt installées. Cela peut être réalisé à l'aide des commandes suivantes :

xmlcatalog --noout --create /etc/xml/catalog
xmlcatalog --noout --add public "-//OASIS//DTD DocBook XML V4.1.2//EN"  \
    /usr/share/sgml/docbook/xml-dtd-4.1.2/docbookx.dtd /etc/xml/catalog
La première commande permet de créer un fichier de configuration vierge pour l'enregistrement des DTDs au niveau de la bibliothèque libxml, et la deuxième permet d'ajouter la DTD DocBook dans ce fichier. Bien entendu, vous ne devrez exécuter la première commande que si le fichier /etc/xml/catalog n'existe pas déjà. Le chemin indiqué pour le fichier docbookx.dtd donné ici l'est à titre d'exemple et doit bien entendu être modifié en fonction de l'emplacement où vous avez installé la DTD DocBook.

B.9.3. Compilation des modules de base d'interfaçage avec les langages

Une fois les bibliothèques de base installées, il est recommandé d'installer les bibliothèques d'interfaçage avec les différents langages de programmation utilisés pour les autres modules de Gnome. En particulier, l'installation des bibliothèques d'interfaçage avec le langage Python et le langage C# (environnement Mono) sont fortement recommandés. Les bibliothèques pour s'interfacer avec le langage C++ sont nettement moins utilisées.

Les bibliothèques suivantes permettent essentiellement d'accéder aux fonctionnalités des bibliothèques de base avec le langage C++ :

Les bibliothèques suivantes permettent essentiellement d'accéder aux fonctionnalités des bibliothèques de base avec le langage python :

La bibliothèque suivante permet d'accéder aux fonctionnalités de Gtk avec le langage C# sous l'environnement Mono :

B.9.4. Compilation des bibliothèques de Gnome

Les bibliothèques de cette section sont les bibliothèques de base de Gnome, qu'il faut impérativement installer pour compiler les modules de Gnome restants.

B.9.5. Compilation de Gnome

La compilation et l'installation des composants principaux de Gnome se fait ensuite également à l'aide des commandes configure, make et make install. L'ordre proposé ci-dessous permet de faire cette installation en respectant les dépendances entre les composants, mais n'est pas structuré par fonctionnalité comme dans les sections précédentes.

Les modules constituant le corps du gestionnaire de bureau Gnome sont les suivants :

B.9.6. Compilation des bindings de Gnome

Une fois les modules de Gnome générés, il est possible d'installer les bibliothèques complémentaires de liaisons avec les langages.

Les bibliothèques suivantes permettent d'accéder aux fonctionnalités des bibliothèques de Gnome avec le langage C++ :

B.9.7. Compilation des outils de développements complémentaires

L'environnement Gnome fournit des outils de développements complémentaires, qui permettent de modifier la configuration du bureau et de l'adapter à des besoins spécifiques. Ces outils sont accessibles en Une fois les modules de Gnome générés, il est possible d'installer les bibliothèques complémentaires de liaisons avec les langages.

Les modules de ces outils sont les suivants :