B.6. Compilation de X.org 7.3.0

La compilation de X est certainement l'une des opérations les plus difficiles à réaliser, car ce logiciel est constitué d'une myriade de petits composants interdépendants. Initialement, X.org était monolithique et donc relativement facile à compiler, mais il a été rendu modulaire afin de faciliter le développement en permettant la compilation et la distribution de modules relativement indépendants. De ce fait, si la compilation d'un seul module de X.org est à présent une opération relativement facile sur un système où il est déjà installé, la compilation complète de X.org initiale est devenue très compliquée, parce qu'il faut compiler tous les modules un à un en respectant un ordre bien précis.

La compilation de X.org est donc quasiment inaccessible pour un particulier. Il s'agit typiquement d'une tâche qui est dévolue aux distributions et aux intégrateurs. Ainsi, je vous invite à utiliser les paquetages sources ou les scripts de compilation fournisé par votre distribution, et de ne pas vous lancer dans une compilation complètement manuelle. La suite de cette section décrit toutefois la procédure générale à suivre pour information.

X.org requiert que d'autres logiciels indépendants soient installés. Les dépendances les plus importantes à ce sujet sont les bibliothèques Freetype, FontConfig, Mesa et libdrm. La compilation de Mesa a été présentée dans la section précédente. Celle des autres bibliothèques est décite ci-dessous.

La bibliothèque libdrm est une bibliothèque permettant d'accéder aux fonctionnalités graphiques des cartes devant s'exécuter en mode noyau. C'est donc une bibliothèque d'interfaçage avec les pilotes DRM fournis par le noyau. Les sources de cette bibliothèque peuvent être trouvées sur le site de Freedesktop. La compilation et l'installation se fait simplement avec le triplet configure, make et make install. Veillez à indiquer les bonnes options au programme configure, en particulier an niveau du répertoire d'installation cible (option --prefix).

Freetype est une bibliothèque de gestion des polices de caractères vectorielles, capable entre autres d'afficher les polices de caractères TrueType. Les sources de cette bibliothèque sont disponibles sur le site de Freetype. L'installation se fait simplement avec le triplet configure, make et make install. Toutefois, les sources de Freetype n'activent pas un algorithme essentiel pour l'affichage correct des polices TrueType par défaut, pour des raisons de brevets de logiciel détenus par Apple. Tant que ces brevets seront illégaux en Europe (ce qui ne saurait durer étant donné le lobbying effectué par les grandes sociétés), il est possible d'utiliser cet algorithme. Aussi est-il recommandé de l'activer, afin d'avoir un affichage correct des polices TrueType (sans cet algorithme, autant le dire tout de suite, ces polices sont inutilisables et l'installation de Freetype est déconseillée). Pour cela, il faut décommenter la ligne

#define  TT_CONFIG_OPTION_BYTECODE_INTERPRETER
du fichier ftoption.h du répertoire include/freetype/config/ des sources de Freetype. Une fois cette option modifiée, la compilation et l'installation se fera avec les trois commandes suivantes :
./configure --prefix=/usr
make
make install

Fontconfig est une bibliothèque de gestion des polices de caractères au sens général. Elle est maintenue par le projet Freedesktop. Elle peut être installée également très simplement, avec les trois commandes suivantes :

./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man
make
make install

Note : Remarquez que pour certaines versions de cette bibliothèque, la documentation ne compile pas. La commande make signale donc une erreur. On peut malgré tout réaliser l'installation sans problème, et cela ne doit donc pas vous arrêter.

Une fois ces bibliothèques installées, la compilation de X.org se déroule classiquement avec les commandes configure et make. La plupart des fichiers sources de la distribution X.org sont fournis par la fondation X.org. Vous devrez procéder comme suit pour chacun des modules à compiler :

Note : La compilation des documentation de X.org nécessite que vous disposiez des outils de génération de documentation SMGL. Ces outils comprennent OpenJade, un traducteur SGML utilisant des feuilles de styles DSSSL, et les feuilles de styles associées. Ces outils sont normalement fournis avec toute bonne distribution, leur installation ne sera donc pas traitée dans ce document. Notez toutefois qu'il faut s'assurer que des liens symboliques jade et nsgmls existent et référencent respectivement les programmes openjade et onsgmls pour que la compilation des documentations puisse bien se passer.

Comme on le voit, la principale difficulté dans la compilation de X.org réside dans la détermination de l'ordre de compilation des différents modules, ainsi que des options spécifiques éventuelles à fournir à la commande configure. Vous pourrez vous inspirer du script build-from-tarball.sh fourni par X.org sur son Wiki (section développeurs) pour la génération à partir des sources, afin de déterminer l'ordre de compilation des modules et les options à utiliser.

La procédure de génération détaillée est donnée ci-dessous à titre indicatif :