Guide d'installation et de configuration de Linux | ||
---|---|---|
Précédent | Annexe B. Compilation et mise à jour des principaux composants du système | Suivant |
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_INTERPRETERdu 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 :
décompressez le fichier d'archive du module ;
allez dans le répertoire des sources du module ;
éxécutez la commande configure
avec les options adéquat (en particulier, l'option --prefix
qui indique
le répertoire cible où X.org sera installé, ainsi que les autres options définissant
les répertoires des bibliothèques et des fichiers de configuration) ;
compilez et installer le module avec les commandes make et make install.
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 :
installation des macros pour le programme aclocal (paquetage util-macros) ;
installation de la documentation (paquetages xorg-sgml-doctools et xorg-docs) ;
installation des définitions de protocoles X (paquetages bigreqsproto, compositeproto, damageproto, dmxproto, evieproto, fixesproto, fontcacheproto, fontsproto, glproto, inputproto, kbproto, pmproto, printproto, randrproto, recordproto, renderproto, resourceproto, scrnsaverproto, trapproto, videoproto, windowswmproto, x11proto, xcmiscproto, xextproto, xf86bigfontproto, xf86dgaproto, xf86driproto, xf86miscproto, xf86rushproto, xf86vidmodeproto, xineramaproto, xproto et xproxymanagementprotocol) ;
compilation et installation des bibliothèques X (paquetages xtrans, libXau, libXdmcp, libX11, libXext, libAppleWM, libWindowsWM, libdmx, libfontenc, libFS, libICE, liblbxutil, liboldX, libSM, libXt, libXmu, libXpm, libXp, libXaw, libXfixes, libXcomposite, libXrender, libXdamage, libXcursor, libXevie, libXfont, libXfontcache, libXft, libXi, libXinerama, libxkbfile, libxkbui, libXprintUtil, libXprintAppUtil, libXrandr, libXres, libXScrnSaver, libXTrap, libXtst, libXv, libXvMC, libXxf86dga, libXxf86misc, libXxf86vm et libpciaccess) ;
installation des images fournies avec X (paquetage xbitmaps) ;
compilation et installation des applications et utilitaires fournis avec X (paquetage appres, bdftopcf, beforelight, bitmap, editres, fonttosfnt, fslsfonts, fstobdf, iceauth, ico, lbxproxy, listres, luit, mkfontdir, mkfontscale, oclock, proxymngr, rgb, randercheck, rstart, scripts, sessreg, setxkbmap, showfont, smproxy, twm, viewres, x11perf, xauth, xbiff, xcalc, xclipboard, xclock, xcmsdb, xconsole, xcursorgen, xdbedizzy, xditview, xdm, xdpyinfo, xdriinfo, xedit, xev, xeyes, xf86dga, xfindproxy, xfd, xfontsel, xfs, xfsinfo, xfwp, xgamma, xgc, xhost, xinit, xkbcomp, xkbevd, xkbprint, xkbutils, xkill, xload, xlogo, xlsatoms, xlsclients, xlsfonts, xmag, xman, xmessage, xmh, xmodmap, xmore, xphelloworld, xplsprinters, xpr, xprehashprinterlist, xprop, xrandr, xrdb, xrefresh, xrx, xset, xsetmode, xsetpointer, xsetroot, xsm, xstdcmap, xtrap, xvidtune, xvinfo, xwd, xwininfo et xwud) ;
compilation et installation de l'exécutable principal
du serveur X (paquetage xorg-server, à configurer avec l'option
-with-mesa-source
pour indiquer le répertoire des sources de la version
de Mesa qui a été installée) ;
compilation et installation des pilotes de périphériques d'entrée/sortie (paquetages xf86-input-aiptek, xf86-input-evdev, xf86-input-ur98, xf86-input-vmmouse, xf86-input-acecad, xf86-input-calcomp, xf86-input-citron, xf86-input-digitaledge, xf86-input-dmc, xf86-input-dynapro, xf86-input-elo2300, xf86-input-elographics, xf86-input-fpit, xf86-input-hyperpen, xf86-input-jamstudio, xf86-input-joystick, xf86-input-keyboard, xf86-input-magellan, xf86-input-magictouch, xf86-input-microtouch, xf86-input-mouse, xf86-input-mutouch, xf86-input-palmax, xf86-input-penmount, xf86-input-spaceorb, xf86-input-summa, xf86-input-tek4957 et xf86-input-void) ;
compilation et installation des pilotes de cartes graphiques (paquetages xf86-video-sisusb, xf86-video-sunffb, xf86-video-v4l, xf86-video-apm, xf86-video-ark, xf86-video-ast, xf86-video-ati, xf86-video-chips, xf86-video-cirrus, xf86-video-cyrix, xf86-video-dummy, xf86-video-fbdev, xf86-video-glide, xf86-video-glint, xf86-video-i740, xf86-video-intel, xf86-video-via, xf86-video-i128, xf86-video-imstt, xf86-video-mga, xf86-video-neomagic, xf86-video-newport, xf86-video-nsc, xf86-video-nv, xf86-video-rendition, xf86-video-s3, xf86-video-s3virge, xf86-video-savage, xf86-video-siliconmotion, xf86-video-sis, xf86-video-sunbw2, xf86-video-suncg14, xf86-video-suncg3, xf86-video-suncg6, xf86-video-sunleo, xf86-video-suntcx, xf86-video-tdfx, xf86-video-tga, xf86-video-trident, xf86-video-tseng, xf86-video-vesa, xf86-video-vga, xf86-video-vmware, xf86-video-voodoo, xf86-video-xgi et xf86-video-xgixp,) ;
installation des fichiers de données additionnels (paquetage xcursor-themes) ;
compilation et installation des outils de gestion des polices de caractères et des fichiers de définition des encodages (paquetages font-util et encodings) ;
installation des fichiers de polices de caractères (paquetages font-adobe-100dpi, font-adobe-75dpi, font-adobe-utopia-100dpi, font-adobe-utopia-75dpi, font-adobe-utopia-type1, font-arabic-misc, font-bh-100dpi, font-bh-75dpi, font-bh-lucidatypewriter-100dpi, font-bh-lucidatypewriter-75dpi, font-bh-ttf, font-bh-type1, font-bitstream-100dpi, font-bitstream-75dpi, font-bitstream-speedo, font-bitstream-type1, font-cronyx-cyrillic, font-cursor-misc, font-daewoo-misc, font-dec-misc, font-ibm-type1, font-isas-misc, font-jis-misc, font-micro-misc, font-misc-cyrillic, font-misc-ethiopic, font-misc-meltho, font-misc-misc, font-mutt-misc, font-schumacher-misc, font-screen-cyrillic, font-sony-misc, font-sun-misc, font-winitzki-cyrillic, font-xfree86-type1 et font-alias) ;
compilation et installation des outils de développement (paquetages xorg-cf-files, imake, makedepend, gccmakedep et lndir).
Précédent | Sommaire | Suivant |
Compilation de MESA 6.5.2 | Niveau supérieur | Compilation de Lesstif 0.95.0 |