XIII. Annexe B. Compilation et mise à jour des principaux composants du système▲
Les paragraphes suivants contiennent les remarques et les options à choisir pour compiler les principaux composants du système. La compilation de GCC et du noyau a déjà été vue et ne sera donc pas décrite ici. Les informations fournies ci-dessous ne sont pas très détaillées, car la plupart des gens n'en ont pas besoin. Elles relèvent plus de la création du système que de son installation, mais elles sont fournies, car elles peuvent être utiles pour les personnes désirant approfondir sérieusement le sujet et disposant d'un certain niveau en informatique.
XIII-A. Compilation de make 3.81▲
Le programme make est utilisé systématiquement lors des compilations. Certaines compilations nécessitent la dernière version de make, qui n'est pas forcément fournie avec votre distribution. Vous pouvez donc avoir besoin de le recompiler. La version courante de make est la 3.81, il est fortement recommandé de l'utiliser.
La compilation de make est tout à fait classique. Elle nécessite de :
- extraire les fichiers sources de leur archive dans un répertoire source srcdir ;
- créer un répertoire pour les objets et s'y placer ;
-
taper :
SélectionnezCFLAGS=-O2 ../srcdir/configure --enable-shared --host=i686-pc-linux-gnu \ --prefix=/usr
- lancer make.
Lorsque la compilation sera terminée, vous pourrez tester le nouveau programme avant de l'installer. Pour cela, il suffit de taper la commande suivante :
make check
Le programme make ainsi configuré sera installé avec la simple commande suivante :
make install
Le répertoire d'installation est le répertoire /usr/bin si le préfixe utilisé est /usr/.
XIII-B. Compilation des binutils 2.17.0▲
L'archive de GCC ne fournit en soi que les compilateurs des langages supportés, ainsi que quelques outils complémentaires. Elle ne contient pas en revanche les outils de génération et de manipulation des fichiers binaires. Ces outils sont fournis dans un paquetage distinct, les binutils.
La qualité des outils de manipulation des fichiers binaires est un facteur important pour une génération correcte des programmes à partir de leurs sources. En clair, le compilateur ne fait qu'une partie du travail, le reste revient aux binutils. Il est donc nécessaire de disposer des dernières versions de ces outils, car certaines compilations de grande taille peuvent mal se passer avec les anciennes versions. C'est en particulier le cas de la glibc.
La version courante des binutils est la 2.17.0. Les sources de ce paquetage peuvent, comme à l'accoutumée, être récupérées sur le site Internet du GNU. Leur compilation ne pose pas de problème, puisqu'elle utilise le très classique script de configuration de GNU. La configuration se fera donc avec la commande suivante :
CFLAGS=-O2 ./configure --prefix=/usr
La compilation et l'installation de ces outils pourront alors être faites simplement avec les deux commandes suivantes :
make
make install
Comme d'habitude, vous pourrez tester que tout s'est bien passé à l'aide de la commande make check avant de lancer l'installation.
XIII-C. Compilation de la bibliothèque C 2.5.0▲
La bibliothèque C constitue l'ensemble des bibliothèques de fonctions que tous les programmes écrits en C utilisent pour accéder au système. Il s'agit donc d'un composant essentiel dans le système (qui, rappelons-le, est lui-même écrit en C). Recompiler la bibliothèque C est donc une opération très sensible. Vous pouvez donc casser complètement votre système en effectuant cette mise à jour. De plus, certaines distributions fournissent des versions personnalisées du noyau, de GCC et de la bibliothèque C et recompiler les versions officielles de ces composants est certainement le meilleur moyen pour ne plus pouvoir lancer le moindre programme avec ces distributions. Vous êtes prévenus.
La compilation de la bibliothèque C est une opération fastidieuse à plus d'un titre. Elle nécessite souvent de recompiler certains outils, et elle est longue et consomme énormément de ressources. Enfin, il faut parfois recompiler certaines parties du système après son installation, afin de résoudre des conflits de versions dus à la migration. La dernière version de la bibliothèque C GNU est la 2.3.6, elle peut être récupérée sur le site projet du GNU.
Les prérequis sont les suivants :
- les sources du noyau Linux 2.6 doivent être disponibles dans le répertoire /usr/src/linux/ ;
- le compilateur GCC (version 3.4.6 ou plus) doit avoir été compilé et installé ;
- les outils de manipulation des fichiers binaires (binutils 2.17 ou plus) doivent avoir été compilés et installés ;
- le programme make utilisé doit être de version récente (3.80 ou plus).
Le processus de compilation est ensuite assez classique. Il suffit de :
- extraire les fichiers sources de leur archive dans un répertoire source srcdir ;
- créer un répertoire pour les objets en dehors du répertoire des sources de la bibliothèque et s'y placer ;
- taper :
CFLAGS=-O2 ../srcdir/configure --prefix=/usr --enable-shared \
--enable-add-ons=libidn,nptl --with-tls
Les options de la commande de configuration permettent l'emploi des bibliothèques dynamiques et la compilation des modules additionnels pour le support du multithreading de nouvelle génération. Le répertoire d'installation sera /usr/lib/ pour les bibliothèques, et /usr/include/ pour les fichiers d'en-têtes.
La compilation peut ensuite être lancée avec la simple commande suivante :
make
Une fois la compilation effectuée, vous pouvez tester la nouvelle bibliothèque avant de l'installer. Pour cela, tapez la commande suivante :
make check
Il est vivement recommandé d'effectuer ce test. Si la moindre erreur apparaît pendant l'exécution du test, n'installez surtout pas la bibliothèque, vous détruiriez sans aucun doute votre système.
Note : En général, un échec de ce test provient souvent d'une mauvaise génération de la bibliothèque due à l'utilisation de programmes trop vieux sur votre système. Il est donc parfois nécessaire de mettre à jour d'autres programmes avant d'effectuer la mise à jour de la bibliothèque C. Par exemple, votre version de make peut être obsolète, ainsi que celle de GCC ou encore celle des outils GNU binutils (assembleur, éditeur de liens, archiveur, etc.). Les sources de tous ces programmes peuvent être trouvées sur le site du GNU.
La compilation de la bibliothèque C, ainsi que celle des autres composants « lourds » du système comme le noyau, GCC, XWindow, Gnome ou KDE, peuvent stresser votre système d'une manière qu'il n'a jamais connu. Les calculs intensifs peuvent durer plusieurs heures, ce qui fait chauffer les composants de votre ordinateur. Il n'est pas rare de voir certains de ces composants défaillir dans ces circonstances, alors qu'ils se sont toujours comportés apparemment normalement jusqu'à présent. En particulier, vous pouvez avoir des problèmes de surchauffe du processeur et des corruptions de données dans les barrettes de mémoire. Les symptômes sont en général l'apparition d'une erreur de type « SIG 11 » (erreur de segmentation) sur des programmes très fiables, comme gcc ou le shell. Dans ce cas, il faut identifier et remplacer les composants défectueux (ce n'est pas une blague, ce problème m'est personnellement arrivé avec trois barrettes mémoires et un processeur en moins d'un an, et il est arrivé à bien d'autres personnes dans le monde). Il est facile de penser que, avec la baisse du prix des barrettes mémoires que l'on a vécu ces derniers temps, les fabricants sont tentés d'être un peu plus laxistes au niveau du contrôle qualité des composants en fin de chaîne. Le phénomène risque donc de devenir courant, et il peut parfaitement vous arriver. Bien entendu, il va de soi qu'il ne faut pas overclocker sa machine lorsqu'on se lance dans des opérations telles que celles-ci. L'overclocking est de toute manière une technique douteuse dont le but n'est que d'arriver plus vite à avoir des problèmes curieux, surtout sous Linux. Vous êtes avertis.
L'installation se fera enfin avec les deux commandes suivantes :
make install
Note : ATTENTION ! La technique utilisée par le fichier Makefile pour l'installation de la bibliothèque C ne permet pas de remplacer la bibliothèque C du système en cours d'exécution de manière fiable. En pratique, cette commande ne fonctionnera que pour une mise à jour ou une installation de bibliothèque C compatible avec celle en cours d'exécution (c'est-à-dire compilée avec les mêmes options). Le remplacement de la bibliothèque en cours d'exécution par une bibliothèque compilée de même version, mais incompatible échouera et laissera le système dans un état pitoyable. Il est recommandé, dans ce cas, de générer un paquetage pour votre distribution et d'utiliser les scripts d'installation fournis avec elle.
La commande suivante doit être ensuite utilisée pour installer l'ensemble des locales prises en charge par la bibliothèque C :
make localedata/install-locales
La compilation des paramètres internationaux pour la France se fera alors avec la commande suivante :
localedef -i fr_FR -f ISO-8859-15 fr_FR
Cette commande permet de compiler les fichiers des paramètres d'affichage des monnaies et des dates, ainsi que le jeu de caractères utilisé pour comparer et trier les chaînes de caractères. Dans l'exemple donné ci-dessus, la langue choisie est le français (« fr ») tel qu'il est parlé en France (« FR »), avec le jeu de caractères ISO-8859-15. Les fichiers compilés sont placés dans le répertoire /usr/lib/locale/, à raison d'un sous-répertoire pour chaque locale configurée. Si ce répertoire n'existe pas sur votre machine, vous devrez le créer manuellement, car la commande localedef ne le fait pas automatiquement.
Une fois la bibliothèque C installée, il est nécessaire de mettre à jour les fichiers d'en-tête du noyau utilisés pour la compilation des autres programmes. En effet, les fichiers d'en-tête du noyau utilisés pour la compilation de la bibliothèque C ne sont peut-être pas les mêmes que ceux de l'ancienne bibliothèque, et il est nécessaire de les remplacer pour que la compilation des autres programmes avec la nouvelle bibliothèque se fasse de manière cohérente. Ces fichiers d'en-têtes sont normalement placés dans les répertoires /usr/src/linux/include/linux/, /usr/src/linux/include/asm/ et /usr/src/linux/include/asm-generic/. Ces deux derniers sont des liens symboliques vers les fichiers d'en-tête de la plate-forme matérielle cible du noyau (généralement, /usr/src/linux/include/asm-i386/ et /usr/src/linux/include/asm-generic/). Ils doivent donc être recopiés dans le répertoire des en-têtes du système, à savoir le répertoire /usr/include/. Cela pourra être réalisé avec les commandes suivantes :
cd /usr/include
rm -rf linux asm*
( cd /usr/src/linux/include ; tar cf - linux/* asm/* asm-generic/* ; ) | tar xvf -
Note : Vous aurez peut-être à recompiler GCC après installation de la nouvelle bibliothèque C, ainsi qu'un certain nombre d'autres programmes, car la compatibilité binaire d'une version à l'autre de la bibliothèque C est très relative. Si la version que vous utilisez est un simple correctif de bug cependant, la compatibilité sera sans doute totale, mais il faut savoir qu'à chaque version majeure un certain nombre de fonctionnalités sont modifiées et peuvent nécessiter des mises à jour en cascade.
À partir de la version 2.3 de la bibliothèque C et de la version 2.13 des binutils, une amélioration dans le chargement des bibliothèques dynamiques a été apportée. Cette amélioration permet de « précharger » ces bibliothèques et donc de gagner du temps au démarrage des programmes. Pour pouvoir bénéficier de ces améliorations, il faut installer un outil complémentaire nommé « prelink ». Les sources de cet outil pourront être trouvés sur le compte de son auteur, à l'adresse ftp://people.redhat.com/jakub/prelink/ [ftp://people.redhat.com/jakub/prelink/]. Sa compilation requiert que la bibliothèque libelf, permettant de manipuler les fichiers binaires, soit installée. Les sources de cette bibliothèque peuvent également être récupérés sur Internet, à l'adresse http://www.stud.uni-hannover.de/~michael/software/libelf-0.8.2.tar.gz. L'installation de cette bibliothèque et de prelink se fait simplement à l'aide des commandes suivantes :
./configure --prefix=/usr
make
make install
Note : Pour pouvoir utiliser correctement prelink, vous devez créer un fichier /etc/prelink.conf contenant la liste de tous les répertoires des bibliothèques de votre système, à raison d'une ligne par répertoire. Le contenu de ce fichier est donc typiquement le suivant :
# Exemple de fichier /etc/prelink.conf :
/lib
/usr/lib
/usr/local/lib
/usr/lib/qt/lib
/opt/kde/lib
De plus, sachez que le préchargement des bibliothèques ne peut fonctionner que si toutes les bibliothèques dont dépend un programme directement ou indirectement (c'est-à-dire par l'intermédiaire d'éventuelles autres bibliothèques) ont été générées avec les binutils 2.13 ou plus. Cela implique qu'un certain nombre de composants systèmes (pour ne pas dire tous) devront être recompilés au préalable. Une mise à jour de votre distribution semble donc être la solution la plus simple à ce stade.
XIII-D. Compilation de OpenSSL▲
Les communications sur Internet n'ont jamais été considérées comme quelque chose de sûr. C'est pour cela que bon nombre de programmes ont recours au chiffrement des données pour assurer des communications fiables. Ce chiffrement est une nécessité vitale si vous désirez acheter quelque chose sur Internet ou consulter vos comptes en ligne, tant pour assurer votre protection que celle des intervenants commerciaux. La plupart des sites commerciaux refuseront l'accès aux clients non sécurisés.
La plupart des distributions utilisent, pour assurer le chiffrement, une bibliothèque fournissant un accès standard à la plupart des algorithmes de chiffrement : OpenSSL. Vous pourrez trouver cette bibliothèque sur Internet.
La compilation d'OpenSSL n'est pas compliquée, car un jeu de fichier makefile pour Linux est fourni avec les sources. Vous devez simplement taper la commande suivante pour les sélectionner :
./Configure linux-elf shared
Note : Par défaut, OpenSSL va s'installer dans le répertoire /usr/local/ssl/, y compris les fichiers d'en-tête. Il faut donc ajouter le chemin /usr/local/ssl/ dans les variables d'environnement C_INCLUDE_PATH et CPLUS_INCLUDE_PATH si on veut compiler des programmes qui utilisent SSL (c'est en particulier le cas de KDE). Une autre solution est de demander une configuration explicite et d'utiliser l'option --prefix pour indiquer le répertoire de base pour l'installation, et l'option --openssldir pour indiquer le répertoire d'installation des utilitaires :
./Configure linux-elf shared --prefix=/usr --openssldir=/etc/ssl
pour effectuer l'installation des bibliothèques et des en-têtes dans les répertoires /usr/lib et /usr/include respectivement, et de placer les clefs privées et les fichiers de configuration dans le répertoire /etc/ssl.
Une fois la configuration effectuée, il suffit de taper les commandes suivantes pour effectuer la compilation et l'installation :
make
make install
Comme d'habitude, vous pouvez effectuer un test avec la commande make test avant de réaliser l'installation pour vérifier que tout est correct.
XIII-E. Compilation de MESA 6.5.2▲
MESA est une bibliothèque compatible avec le standard OpenGL introduit par Silicon Graphics pour uniformiser les fonctions 3D des systèmes d'exploitation. X.org utilise MESA pour fournir les fonctions graphiques 3D accélérées ou simulées (selon votre matériel). Vous devrez donc recompiler MESA si vous voulez compiler X.org, ou si vous voulez effectuer une mise à jour.
L'installation de MESA ne pose pas de problème particulier, si ce n'est qu'il faut récupérer également l'archive des fichiers de démonstration, car elle contient la bibliothèque complémentaire GLUT que bon nombre de programmes OpenGL utilisent. L'archive de MESA et l'archive de ses programmes d'exemples peuvent être récupérées toutes les deux sur le site Web de Mesa. Ces archives portent respectivement les noms MesaLib-6.5.2.tar.bz2 et MesaDemos-6.5.2.tar.bz2.
Lorsque vous aurez récupéré ces archives, vous devrez les décompresser toutes les deux dans le même répertoire. Vous disposerez alors d'un sous-répertoire Mesa-6.5.2, dans lequel se trouvent tous les fichiers sources.
La compilation de MESA se fait simplement avec en exécutant la commande suivante :
make système
où système est le nom du système cible pour lequel MESA doit être compilé. Vous obtiendrez la liste des systèmes utilisables si vous n'en spécifiez aucun. Une fois la compilation effectuée, l'installation se fait manuellement, par copie des fichiers. Ceci se réalise simplement avec les deux commandes suivantes :
cp -r include/GL /usr/include
cp -pd lib/* /usr/lib
Note : Il est nécessaire de compiler les programmes de test pour que la bibliothèque GLUT soit installée. Pour cela, il faut que l'archive MesaDemos-6.5.2.tar.bz2 ait été décompactée avant la compilation de la bibliothèque MESA.
Il est recommandé de supprimer les fichiers de l'ancienne version de la bibliothèque MESA fournie avec X.org. Ces fichiers sont situés dans le répertoire /usr/lib/, et portent des noms du type libGL*.
Si vous avez installé des bibliothèques permettant de bénéficier de l'accélération 3D matérielle de votre carte graphique, vous devrez supprimer les bibliothèques installées par MESA, et au besoin réinstaller vos bibliothèques prenant en charge votre carte graphique. Dans le cas contraire, les programmes utilisant OpenGL seront considérablement ralentis, et vous ne pourrez certainement plus les utiliser. Ce genre de situation se produit par exemple sur les machines disposant de cartes graphiques à base de puces nVidia, pour lesquelles vous devez utiliser les pilotes fournis par nVidia afin de bénéficier des accélérations 3D par le matériel.
XIII-F. 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écrite 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 font 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 :
- 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 installez le module avec les commandes make et make install.
Note : La compilation des documentations 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).
XIII-G. Compilation de Lesstif 0.95.0▲
Lesstif est un clone libre de la bibliothèque de composants graphiques Motif, qui est l'une des bibliothèques les plus utilisées en programmation graphique sous X11, mais dont l'utilisation est soumise à une licence commerciale. Lesstif est donc à Motif ce que Linux est à Unix en quelque sorte. Étant donné le grand nombre de programmes qui utilisent Motif, il est nécessaire de l'installer sur votre machine. La dernière version actuellement disponible est la 0.93.41. Vous pourrez en trouver les sources sur le site de Lesstif.
La compilation et l'installation de Lesstif s'effectuent classiquement, à l'aide des programmes configure et make. Vous aurez donc à exécuter les commandes suivantes dans le répertoire d'installation des sources de Lesstif :
./configure --prefix=/usr
make
make install
Ce jeu de commandes installera Lesstif dans le répertoire /usr/lib/LessTif. Bien entendu, vous êtes libre d'utiliser un autre emplacement, mais il vous faudra alors modifier les chemins de recherche des fichiers d'en-tête et des bibliothèques lorsque vous voudrez utiliser des programmes qui en ont besoin.
XIII-H. Compilation de KDE 3.5.7▲
KDE utilise XWindow et la bibliothèque Qt. Il faut donc disposer des bibliothèques et des fichiers d'en-tête de XWindow, et compiler la bibliothèque Qt au préalable pour compiler KDE. La version de Qt recommandée pour compiler KDE 3.5.7 est la version 3.3.8. Les paragraphes qui suivent supposent que vous disposez de cette version.
Si la bibliothèque Qt est fournie avec votre distribution, sont répertoire d'installation sera /usr/lib/. Dans le cas contraire, elle sera placée dans /usr/local/lib/. La compilation se fait sur place, ce qui permet d'éviter d'avoir à l'installer. Elle se déroule de la manière suivante :
-
il faut se placer dans le répertoire /usr/lib/ :
Sélectionnezcd /usr/lib
-
les sources doivent ensuite être extraites de l'archive de la bibliothèque Qt :
Sélectionneztar xvfz qt-x11-free-3.3.8.tar.gz
-
les sources sont extraites dans le répertoire qt-x11-free-3.3.8/. Il faut renommer ce répertoire en qt/ (c'est-à-dire, supprimer les numéros de version) ou faire un lien symbolique qt vers ce répertoire (solution permettant de conserver les anciennes bibliothèques, pour les anciens programmes) ;
-
il faut ensuite ajouter les variables d'environnement dans le .profile ou .login (selon le shell utilisé, pour bash, il faut modifier .profile) comme indiqué dans le fichier INSTALL du répertoire qt. Ces variables d'environnement sont utilisées par le processus de compilation. Vous devrez bien entendu corriger les chemins définis par défaut pour référencer le répertoire d'installation des sources de Qt ;
-
il faut recharger le fichier .profile ou .login afin de définir ces variables ;
-
lancer la commande configure avec les options suivantes :
Sélectionnez./configure -shared -thread -no-g++-exceptions -no-stl -system-zlib -qt-gif -system-libpng -system-libjpeg -plugin-imgfmt-mng -xft
-
lancer la commande make pour construire la bibliothèque :
Sélectionnezmake
- lancer ldconfig.
Outre la bibliothèque Qt, KDE utilise également quelques bibliothèques utilitaires qu'il est fortement recommandé d'installer. Il s'agit principalement de la bibliothèque pcre (http://www.pcre.org), qui permet de gérer les expressions rationnelles, de la bibliothèque Xine (http://xinehq.de), qui permet de jouer des fichiers vidéo de manière indépendante de leur format, et d'un certain nombre de bibliothèques du gestionnaire de bureau Gnome (http://www.gnome.org) :
- la bibliothèque libaudiofile, qui permet de manipuler les fichiers sons ;
- les bibliothèques libxml et libxslt, qui permettent d'analyser les documents au format XML ;
- et des bibliothèques libart et ImLib, qui permettent de manipuler les différents formats d'image de manière uniforme.
Ces bibliothèques peuvent être compilées de manière classique, à l'aide du classique triplet configure, make et make install.
D'autres bibliothèques devront être installées pour bénéficier de fonctionnalités complémentaires. Cependant, l'installation de ces bibliothèques reste facultative et n'est pas nécessaire à la compilation complète de KDE. Certaines d'entre elles sont cependant très intéressantes, et leur installation devra être considérée en fonction de vos besoins. Les bibliothèques et utilitaires utilisés par les différents composants de KDE sont listés ci-dessous
- Le paquetage kdelib utilise la bibliothèque mDNS (disponible surhttp://www.opensource.apple.com/darwinsource/tarballs/apsl) pour permettre l'utilisation automatique des appareils réseau compatible avec le protocole ZeroConf.
- Le paquetage kdebase utilise la bibliothèque d'authentification simplifiée SASL (http://asg.web.cmu.edu/sasl/index.html) pour l'authentification des protocoles de consultation et d'envoi de mails sécurisés.
- Le paquetage kdegraphics ne prendra en charge les métainformations des fichiers PDF que si xpdf est installé (http://www.foolabs.com/xpdf/download.html). L'accès aux appareils photo numérique se fait via la bibliothèque gphoto (http://www.gphoto.org/). La prise en charge des fichiers SVG requiert quant à elle la bibliothèque de gestion de couleurs lcms (http://www.littlecms.com) et la bibliothèque fribidi, qui implémente l'algorithme de gestion des textes bidirectionnels d'Unicode (http://fribidi.sf.net). Enfin, la prise en charge des scanners requiert l'installation de Sane (http://www.sane-project.org).
- Outre la bibliothèque libxine pour la lecture des fichiers vidéo, le paquetage kdemultimedia requiert utilise les outils mpg123 et Lame (disponibles respectivement à http://www.mpg123.de et http://lame.sourceforge.net) pour permettre l'encodage et le décodage des fichiers MP3, ainsi que les bibliothèques Ogg Vorbis et FLAC (disponibles à http://www.xiph.org/ogg/vorbis/download.html et http://flac.sourceforge.net) pour la prise en charge du fichier compressé en Ogg Vorbis ou via FLAC. La bibliothèque tablib permettra également de lire et de modifier les métainformations ID3 des fichiers Audio qui le supportent (http://ktown.kde.org/~wheeler/taglib). Enfin, la bibliothèque libmusicbrainz (http://www.musicbrainz.org/products/client/download.html) vous permettra d'obtenir les noms des morceaux à partir de leurs identifiants, via les serveurs MusicBrainz.
- Le paquetage kdenetwork utilise les outils Wireless pour les réseaux sans-fil (http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html). L'utilisation des outils de déport d'affichage et de prise de contrôle à distance requiert l'installation de openslp, protocole d'exploration et de localisation des services réseau (http://www.openslp.org).
- Le paquetage kdepim vous permettra de manipuler votre téléphone portable via la bibliothèque libgnokii et ses gestionnaires de périphériques (http://www.gnokii.org). Les programmes de synchronisation avec les Palms requièrent quant à eux la bibliothèque libmal (http://jasonday.home.att.net/code/libmal).
- L'environnement de développement kdevelop pourra générer des documentations à l'aide de Doxygen si celui-ci est installé (http://www.doxygen.org), et des diagrammes de dépendances entre les composants d'un logiciel si Dot est présent (http://www.graphviz.org).
Une fois les bibliothèques utilitaires et la bibliothèque Qt compilées, on peut s'attaquer à KDE lui-même. La compilation de KDE suppose que les variables d'environnement de la bibliothèque Qt sont toujours définies, il ne faut donc pas les supprimer après avoir compilé celle-ci.
KDE se configure classiquement, avec le programme de configuration configure. Pour chaque composant de KDE, il faut procéder comme suit :
- extraire les fichiers sources de l'archive ;
- appeler configure avec les bonnes options ;
- lancer la compilation avec « make » ;
- installer les fichiers binaires avec « make install ».
Sur certaines distributions, KDE est installé dans le répertoire /opt/kde/. Sur d'autres, il est considéré comme faisant partie intégrante du système et est installé dans le répertoire /usr/. Il faut donc spécifier les bons préfixes lors de l'appel à configure. Par exemple, pour installer KDE dans le répertoire /usr/, il faut utiliser la commande suivante :
./configure --prefix=/usr
Comme d'habitude, il faut éventuellement indiquer le type de machine avec l'option --host et demander l'utilisation des bibliothèques dynamiques avec l'option --enable-shared.
L'ordre des opérations lors de la compilation de KDE est important, parce que certaines parties de KDE en utilisent d'autres. En particulier, il faut impérativement compiler et installer les bibliothèques en premier. Il est donc recommandé d'opérer dans l'ordre suivant :
- arts ;
- kdelib ;
- kdebindings ;
- kdebase ;
- les autres composants de KDE, kdenetwork devant être compilé avant kdepim, et kdeaddons devant être compilé en dernier.
Note : Si l'on veut que la bibliothèque Xine puisse utiliser le serveur de son arts, il est nécessaire de la compiler après celui-ci. Toutefois, elle devra être compilée avant le paquetage kdemultimedia, qui l'utilise pour la lecture des fichiers vidéo).
Note : Contrairement aux autres parties du système, il faut compiler KDE dans le répertoire des sources. En effet, certaines bibliothèques fournies avec les sources sont nécessaires pour la compilation correcte de quelques modules non essentiels de KDE.
D'autre part, si KDE est déjà présent sur votre système, il faut le supprimer avant de le recompiler (ou au moins renommer son répertoire si vous n'êtes pas sûr de vous…). En effet, les fichiers d'en-tête et les bibliothèques de l'ancienne version peuvent faire échouer la compilation de la nouvelle version.
Si vous le supprimez complètement, il se réinstallera avec la configuration par défaut. Les scripts de configuration de votre distribution pourront alors très bien ne plus fonctionner sur la configuration de KDE. Dans ce cas, vous aurez certainement quelques problèmes avec les droits fixés par défaut sur certains programmes. En particulier, vous ne pourrez jouer des fichiers son que sous le compte root, car le serveur de son « artsd » de KDE et ses outils connexes ont besoin de privilèges pour utiliser les fichiers spéciaux de périphérique de la carte son. La manière la plus propre pour régler ce problème est de créer un groupe d'utilisateurs nommé audio et contenant tous les utilisateurs ayant le droit d'utiliser la carte son, et d'attribuer à ce groupe les fichiers spéciaux de périphérique /dev/dsp, /dev/audio, /dev/mixer et tous les fichiers spéciaux de périphériques du répertoire /dev/snd/. Les droits d'accès en lecture et écriture sur ces fichiers devront ensuite être donnés au propriétaire (root) et au groupe d'utilisateurs (audio). Normalement, les autres utilisateurs ne doivent avoir aucun droit sur ces fichiers.
Note : KDE 3.5.7 et Qt 3.3.8 sont capables d'utiliser les fonctionnalités les plus avancées des serveurs X. Ces fonctionnalités peuvent apporter un plus indéniable, et il est recommandé que XWindow soit correctement installé avant de lancer leur compilation . En particulier, il est recommandé d'avoir compilé et installé la bibliothèque FreeType 2, pour le support des polices TrueType et l'antialiasing des polices de caractères, ainsi que la bibliothèque Open GL MESA.
Note : Enfin, sachez que KDE 3.5.7 nécessite la version 1.4.2 ou plus de l'environnement d'exécution java pour permettre l'utilisation de java et de JavaScript dans le navigateur Konqueror. Cet environnement peut être téléchargé gratuitement sur le site de Sun. Les binaires fournis par Sun ne sont pas des logiciels libres, mais ce sont les seuls qui respectent réellement la norme Java (ce qui est logique, puisqu'elle est imposée par Sun). L'installation de cet environnement d'exécution se fait extrêmement simplement. Il est recommandé d'installer les binaires dans le répertoire /usr/lib/jrex.y.z et de créer un lien symbolique /usr/lib/java vers ce répertoire, afin de permettre l'installation de plusieurs versions de l'environnement d'exécution java tout en sélectionnant la version x.y.z par défaut. Après installation, vous devrez ajouter le répertoire /usr/lib/java/bin aux répertoires de votre variable d'environnement PATH pour permettre l'utilisation de Java par les programmes tels que Konqueror. Enfin, le script de lancement de la machine virtuelle utilise les commandes cut et head, et suppose qu'elles sont installées dans le répertoire /usr/bin/, alors que la plupart des distributions les placent directement dans le répertoire /bin/. Vous aurez donc peut-être à faire des liens symboliques cut et head sur ces deux commandes dans le répertoire /usr/bin/.
Notez que le support de Java doit également être activé manuellement dans la configuration de Konqueror pour que vous puissiez utiliser toutes les fonctionnalités de Java.
XIII-I. 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èque ainsi que les bibliothèques utilitaires qu'il utilise avant de compiler les applications.
Le nombre de modules constituant 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ée, 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.
XIII-I-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épertoires. 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.
XIII-I-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 :
- pkgconfig (bibliothèque de gestions de paquetages sources, disponible chez Freedesktop) ;
- guile (implémentation du langage Scheme, disponible sur le site du projet GNU ;
- autogen (utilitaire d'automatisation de génération de code répétitif, disponible sur le site du projet autogen ;
- liboil (bibliothèque d'opérations classiques optimisées pour les différents types de processeurs, disponible sur le site de Freedesktop ;
- fontconfig (bibliothèque de gestion de la configuration des polices de caractères, disponible sur le site de Freedesktop ;
- libXft (bibliothèque d'affichage des polices TrueType de X11, disponible sur le site de Freedesktop ;
- libgpg-error (bibliothèque GNU de gestion des erreurs relatives au logiciel cryptographique GnuPG, disponible sur le site du projet GNU ;
- libgcrypt (bibliothèque GNU de gestion des algorithmes cryptographiques du logiciel GnuPG, disponible sur le site du projet GNU ;
- libtasn1 (bibliothèque GNU de gestion des certificats en notation ASN.1, disponible sur le site du projet GNU ;
- opencdk (bibliothèque GNU de gestion des messages du protocole cryptographique utilisé par le logiciel GnuPG, disponible sur le site du projet GNU ;
- gnutls (bibliothèque GNU de gestion des communications chiffrées, disponible sur le site du projet GNU ;
- libxml2 (bibliothèque d'analyse des flux XML, disponible sur le site de Gnome ;
- libxslt (bibliothèque de transformation des flux XML, disponible sur le site de Gnome ;
- gnome-common (utilitaires divers nécessaires à la compilation des paquets Gnome, mais non requis à l'exécution, disponible sur le site de Gnome ;
- intltool (bibliothèque d'aide à l'internationalisation des programmes, disponible sur le site de Gnome ;
- rarian (utilitaires divers pour l'indexation de la documentation, disponible sur le site de Gnome[ftp://ftp.gnome.org/pub/gnome/sources/rarian/0.6/rarian-0.6.0.tar.bz2] ;
- gtk-doc (utilitaires d'aide à la génération de la documentation du code source en langage C, disponible sur le site de Gnome ;
- glib (bibliothèque utilitaire complémentaire à la bibliothèque C, disponible sur le site de Gnome ;
- shared-mime-info (déclarations de type de fichiers MIME standards utilisables par les différents environnements de bureau, disponible sur le site de Freedesktop ;
- hicolor-icon-theme (jeu d'icônes de base pour les différents environnements de bureau, disponible sur le site de Freedesktop ;
- cairo (bibliothèque de rendu 2D vectoriel et disposant de plusieurs périphériques de sortie, disponible sur le site de Freedesktop ;
- pango (bibliothèque d'internationalisation de gestion du texte, disponible sur le site de Gnome ;
- gnome-doc-utils (utilitaires nécessaires pour la génération des documentations de Gnome, disponible sur le site de Gnome ;
- atk (bibliothèque de gestion de l'accessibilité, disponible sur le site de Gnome ;
- gtk+ (bibliothèque graphique générale de Gnome et de nombreux autres programmes, disponible sur le site de Gnome ;
- dbus (bibliothèque de communication interprocessus bas niveau utilisée par les composants systèmes, disponible sur le site de Freedesktop ;
- dbus-glib (bibliothèque d'intégration de DBUS dans la bibliothèque générale GLib, disponible sur le site de Gnome ;
- libvolume_id (bibliothèque Linux de lecture des informations des périphériques de stockage de masse, disponible sur le site du noyau Linux ;
- hal (bibliothèque de gestion du matériel sous Linux, disponible sur le site de Freedesktop ;
- audiofile (bibliothèque de gestion du son, disponible sur le site de la bibliothèque audiofile ;
- libart_lgpl (bibliothèque graphique 2D, disponible sur le site de Gnome ;
- libmusicbrainz (bibliothèque d'identification des fichiers musicaux par consultation d'un serveur MusicBrainz, disponible sur le site de la bibliothèque Musicbrainz ;
- libdaemon (bibliothèque utilitaire pour réaliser des démons Unix, disponible sur le site de la bibliothèque libdaemon ;
- libgtop (bibliothèque portable de gestion des processus, disponible sur le site de Gnome ;
- gamin (bibliothèque de gestion des notifications de changements sur les systèmes de fichiers, disponible sur le site de Gnome ;
- libIDL (bibliothèque de gestion des fichiers de description d'interfaces CORBA pour l'environnement CORBA ORBit2, disponible sur le site de Gnome ;
- ORBit2 (système à composants CORBA pour le langage C, disponible sur le site de Gnome ;
- gconf (bibliothèque de gestion de base de données de configuration Gnome, disponible sur le site de Gnome ;
- poppler (bibliothèque générique de manipulation et de rendu des fichiers PDF, disponible sur le site de Freedesktop ;
- libglade (bibliothèque de gestion d'interfaces graphiques Gnome basées sur des ressources XML, disponible sur le site de Gnome ;
- firefox (navigateur Internet Firefox, disponible sur le site de la fondation Mozilla ;
- xdg-user-dirs (bibliothèque de gestion des répertoires du bureau avec prise en charge de l'internationalisation, disponible sur le site de Freedesktop ;
- icon-naming-utils (utilitaires permettant d'installer les icônes de manière standard pour une utilisation correcte par les différents environnements de bureau, disponible sur le site du projet Tango ;
- iso-codes (listes des codes ISO de pays et de régions, disponibles sur le site des sources de la distribution Debian [ftp://pkg-isocodes.alioth.debian.org/pub/pkg-isocodes/iso-codes-0.53.tar.bz2] ;
- desktop-file-utils (utilitaires pour la manipulation des fichiers sur le bureau, disponible sur le site de Freedesktop ;
- startup-notification (bibliothèque de gestion du protocole de notification de démarrage des applications des environnements de bureau, disponible sur le site de Freedesktop ;
- libcolorblind (bibliothèque de gestion des couleurs contrastées pour les daltoniens, disponible sur le site des sources de la distribution Debian ;
- enchant (bibliothèque générique de gestion des correcteurs orthographiques, disponible sur le site du projet AbiWord ;
- pwlib (bibliothèque de fonctions générales portables sur les systèmes Unix et Windows, disponible sur le site de Gnome ;
- opal (bibliothèque d'abstraction pour la téléphonie sur Internet, disponible sur le site de Gnome ;
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 utilise 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.
XIII-I-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++ :
- libsigc++2 (bibliothèque de gestion des signaux génériques pour le langage C++, disponible sur le site de Gnome ;
- glibmm (bibliothèque d'interface avec la bibliothèque Glib pour le langage C++, disponible sur le site de Gnome ;
- libxml++ (bibliothèque d'interface avec la bibliothèque libxml pour le langage C++, disponible sur le site de Gnome ;
- cairomm (bibliothèque d'interface avec la bibliothèque Cairo pour le langage C++, disponible sur le site du projet Cairo ;
- gtkmm (bibliothèque d'interface avec la bibliothèque GTK pour le langage C++, disponible sur le site de Gnome ;
- libglademm (bibliothèque d'interface avec la bibliothèque libglade pour le langage C++, disponible sur le site de Gnome ;
Les bibliothèques suivantes permettent essentiellement d'accéder aux fonctionnalités des bibliothèques de base avec le langage python :
- dbus-python (bibliothèque d'interface avec DBUS pour le langage Python, disponible sur le site de Freedesktop ;
- pycairo (bibliothèque d'interface avec la bibliothèque Cairo pour le langage Python, disponible sur le site du projet Cairo ;
- pygobject (bibliothèque d'interface avec la bibliothèque Glib pour le langage Python, disponible sur le site de Gnome ;
- pygtk (bibliothèque d'interface avec la bibliothèque GTK pour le langage Python, disponible sur le site de Gnome ;
- pyorbit (bibliothèque d'interface avec la bibliothèque ORBit pour le langage Python, disponible sur le site de Gnome ;
La bibliothèque suivante permet d'accéder aux fonctionnalités de Gtk avec le langage C# sous l'environnement Mono :
- gtk-sharp (disponible sur le site de Gnome).
XIII-I-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.
- avahi (bibliothèque de détection de services sur le réseau, disponible sur le site de la bibliothèque Avahi ;
- gnome-mime-data (déclarations de type de fichiers MIME complémentaires pour l'environnement de bureau Gnome, disponible sur le site de Gnome ;
- gnome-icon-theme (jeu d'icônes par défaut de Gnome, disponible sur le site deGnome ;
- esound (serveur de son pour Gnome, disponible sur le site de Gnome ;
- gail (bibliothèque d'abstraction des bibliothèques de gestion de l'accessibilité, disponible sur le site de Gnome ;
- gnome-vfs (bibliothèque d'abstraction des différentes sources de données permettant une manipulation uniforme des flux de données, disponible sur le site de Gnome ;
- libbonobo (bibliothèque de gestion des documents composites, disponible sur le site de Gnome ;
- gnome-vfs-monikers (bibliothèque de gestion des noms de ressources abstraites pour les flux gnome-vfs, disponible sur le site de Gnome ;
- libgnome (bibliothèque de base de Gnome, disponible sur le site de Gnome ;
- libgnomecanvas (bibliothèque de gestion d'objets graphiques en 2D sur un canevas, disponible sur le site de Gnome ;
- libbonoboui (bibliothèque graphique de gestion des documents composites de Gnome, disponible sur le site de Gnome ;
- gnome-keyring (gestionnaire de mots de passe et de clefs secrètes de Gnome, disponible sur le site de Gnome ;
- libgnomeui (bibliothèque graphique de base de Gnome, disponible sur le site de Gnome ;
- libgnomecups (bibliothèque de gestion d'objets graphiques en 2D, disponible sur le site de Gnome ;
- libgnomeprint (bibliothèque de gestion des fonctions d'impression de Gnome, disponible sur le site de Gnome ;
- libgnomeprintui (bibliothèque graphique de gestion des fonctions d'impression de Gnome, disponible sur le site de Gnome ;
- libcroco (bibliothèque de gestion des feuilles de style CSS pour Gnome, disponible sur le site de Gnome ;
- libgsf (bibliothèque de lecture de fichiers structurés, tels que les fichiers OLE de Microsoft ou les fichiers .zip, disponible sur le site de Gnome ;
- libxklavier (bibliothèque Gnome pour la gestion du clavier sous X, disponible sur le site de Gnome ;
- at-spi (bibliothèque d'interface pour l'accessibilité sous Gnome, disponible sur le site de Gnome ;
- gtk-engines (collection de thèmes pour Gtk, disponible sur le site de Gnome ;
- gnome-themes (jeu de thèmes pour Gnome, disponible sur le site de Gnome ;
- gnome-desktop (bibliothèques et modules de base de Gnome, disponible sur le site de Gnome ;
- librsvg (bibliothèque graphique de rendu de fichiers SVG, disponible sur le site de Gnome ;
- gnome-menus (jeu de menus standards pour Gnome, disponible sur le site de Gnome ;
- eel (bibliothèque de fonctions générales complémentaire des bibliothèques de base de Gnome, disponible sur le site de Gnome ;
- system-tools-backends (bibliothèques de gestion des tâches d'administration du système, disponible sur le site de Gnome ;
- gstreamer (bibliothèque multimédia généraliste, disponible sur le site de Gnome ;
- gst-plugins-base (modules complémentaires pour gstreamer, disponible sur le site de Gnome ;
- gst-plugins-good (modules complémentaires pour gstreamer, disponible sur le site de Gnome ;
- gnome-backgrounds (jeu d'arrière-plans pour le bureau de Gnome, disponible sur le site de Gnome ;
- gnome-speech (bibliothèque Gnome de fonctions dédiées à la synthèse vocale pour la lecture de textes, disponible sur le site de Gnome ;
- libsoup (bibliothèque de gestion du protocole HTTP, disponible sur le site de Gnome ;
- gtkhtml (bibliothèque de rendu graphique de pages HTML de Gnome, disponible sur le site de Gnome ;
- gtksourceview (bibliothèque de visualisation et de mise en forme de fichiers sources de Gnome, disponible sur le site de Gnome ;
- gtksourceview-1.0 (ancienne bibliothèque de visualisation et de mise en forme de fichiers sources de Gnome, disponible sur le site de Gnome ;
- libwnck (bibliothèque de gestion des notifications d'événements relatifs à l'affichage des documents multipage, disponible sur le site de Gnome ;
- evolution-data-server (serveur de données personnelles et de gestion des agendas, disponible sur le site de Gnome ;
- gnome-panel (barre de tâches de Gnome, disponible sur le site de Gnome ;
- libgail-gnome (bibliothèque de gestion de l'accessibilité de Gnome, disponible sur le site de Gnome ;
- libgnomekbd (bibliothèque de configuration du clavier sous Gnome, disponible sur le site de Gnome ;
- liboobs (bibliothèque d'interfaçage objet pour Gnome des utilitaires systèmes, disponible sur le site de Gnome ;
XIII-I-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 :
- evolution (logiciel de messagerie, de gestion de contact et d'agenda de Gnome, disponible sur le site de Gnome ;
- evolution-exchange (module de communication avec Microsoft Exchange pour evolution, disponible sur le site de Gnome ;
- evolution-webcal (utilitaire de gestion des calendriers Web pour evolution, disponible sur le site de Gnome ;
- metacity (gestionnaire de fenêtres de Gnome, disponible sur le site de Gnome ;
- gdm2 (gestionnaire de connexions de Gnome, disponible sur le site de Gnome ;
- fast-user-switch-applet (module de commutation d'utilisateur de Gnome, disponible sur le site de Gnome ;
- bug-buddy (outil de rapport de bogues de Gnome, disponible sur le site de Gnome ;
- dasher (utilitaire de saisie pour l'accessibilité, disponible sur le site de Gnome ;
- nautilus (gestionnaire de fichiers de Gnome, disponible sur le site de Gnome ;
- nautilus-cd-burner (module de gestion des graveurs de CD pour nautilus, disponible sur le site de Gnome ;
- gnome-control-center (panneau de contrôle de Gnome, disponible sur le site de Gnome ;
- alacarte (éditeur de menus de Gnome, disponible sur le site de Gnome ;
- gconf-editor (éditeur de configuration du système, disponible sur le site de Gnome ;
- pygtksourceview (bibliothèque d'interface avec la bibliothèque gtksourceview pour le langage Python, disponible sur le site de Gnome ;
- gedit (éditeur de texte de Gnome, disponible sur le site de Gnome ;
- gnome-media (suite de logiciels multimédia de Gnome, disponible sur le site de Gnome ;
- totem (programme de lecture multimédia de Gnome, disponible sur le site de Gnome ;
- gnome-python (bibliothèque d'interface pour Gnome pour le langage Python, disponible sur le site de Gnome ;
- gnome-python-desktop (interfaces pour quelques bibliothèques de Gnome pour le langage Python, disponible sur le site de Gnome ;
- deskbar-applet (applet de requêtes de recherches documentaires, disponible sur le site de Gnome ;
- ekiga (logiciel de communication sur Internet, anciennement appelé Gnomemeeting, disponible sur le site de Gnome ;
- eog (logiciel de visualisation d'images de Gnome, disponible sur le site de Gnome ;
- epiphany (navigateur Web de Gnome, disponible sur le site de Gnome ;
- evince (logiciel de visualisation de documents, disponible sur le site de Gnome ;
- file-roller (gestionnaire d'archives et de fichiers compressés de Gnome, disponible sur le site de Gnome ;
- gcalctool (calculatrice de Gnome, disponible sur le site de Gnome ;
- gucharmap (table de caractères de Gnome, disponible sur le site de Gnome ;
- gnome-applets (applets diverses pour la barre de tâches de Gnome, disponible sur le site de Gnome ;
- gnome-games (jeux de Gnome, disponible sur le site de Gnome ;
- gnome-keyring-manager (interface du gestionnaire de clefs et de mots de passe de Gnome, disponible sur le site de Gnome ;
- gnome-netstatus (applet permettant d'afficher l'état de la connexion réseau, disponible sur le site de Gnome ;
- gnome-nettool (suite de logiciels de gestion du réseau sous Gnome, disponible sur le site de Gnome ;
- gnome-mag (outil de grossissement de Gnome, disponible sur le site de Gnome ;
- gnome-power-manager (gestionnaire d'énergie des portables sous Gnome, disponible sur le site de Gnome ;
- gnome-screensaver (jeu d'économiseurs d'écran de Gnome, disponible sur le site de Gnome ;
- gnome-session (gestionnaire de sessions utilisateur de Gnome, disponible sur le site de Gnome ;
- gnome-system-monitor (gestionnaire de tâches de Gnome, disponible sur le site de Gnome ;
- gnome-system-tools (outils graphiques d'administration du système, disponible sur le site de Gnome ;
- vte (contrôle d'accès aux terminaux virtuels, disponible sur le site de Gnome ;
- gnome-terminal (émulateur de terminal de Gnome, disponible sur le site de Gnome ;
- gnome-user-docs (base de la documentation de Gnome, disponible sur le site de Gnome ;
- gnome-utils (utilitaires divers de Gnome, disponible sur le site de Gnome ;
- gnome-volume-manager (gestionnaires de périphériques de stockage de masse de Gnome, disponible sur le site de Gnome ;
- gok (clavier virtuel de Gnome, disponible sur le site de Gnome ;
- orca (logiciel de prise d'écran de Gnome, disponible sur le site de Gnome ;
- seahorse (frontal Gnome pour le logiciel cryptographique GnuPG, disponible sur le site de Gnome ;
- sound-juicer (logiciel d'extraction de pistes audio, disponible sur le site de Gnome ;
- tomboy (logiciel de prise de notes de Gnome, disponible sur le site de Gnome ;
- vino (serveur d'accès à distance compatible VNC pour Gnome, disponible sur le site de Gnome ;
- yelp (logiciel d'affichage de l'aide de Gnome, disponible sur le site de Gnome ;
- zenity (outil d'affichage de boîtes de dialogue scriptable en ligne de commande, disponible sur le site de Gnome ;
- xchat (logiciel de communication en temps réel multiplateforme, disponible sur le site de Gnome ;
- camorama (logiciel de visiophonie pour Gnome, disponible sur le site de Gnome ;
XIII-I-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++ :
- gconfmm (bibliothèque d'interface avec la bibliothèque GConf pour le langage C++, disponible sur le site de Gnome ;
- libgnomecanvasmm (bibliothèque d'interface avec la bibliothèque libgnomecanvas pour le langage C++, disponible sur le site de Gnome ;
- gnome-vfsmm (bibliothèque d'interface avec la bibliothèque gnome-vfs pour le langage C++, disponible sur le site de Gnome ;
- libgnomemm (bibliothèque d'interface pour Gnome pour le langage C++, disponible sur le site de Gnome ;
- libgnomeuimm (bibliothèque d'interface avec la bibliothèque libgnomeui pour le langage C++, disponible sur le site de Gnome ;
XIII-I-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 :
- pessulus (utilitaire de verrouillage de la configuration de Gnome, disponible sur le site de Gnome ;
- sabayon (utilitaire de création des profils utilisateurs pour Gnome, disponible sur le site de Gnome ;
- devhelp (utilitaire d'affichage de la documentation Gnome pour les développeurs, disponible sur le site de Gnome ;
- glade3 (utilitaire de création d'interfaces graphiques basée sur libglade pour Gnome, disponible sur le site de Gnome ;
- accerciser (utilitaire de manipulation des options d'accessibilité de Gnome, disponible sur le site de Gnome ;
- gnome-devel-docs (documentation pour les développeurs Gnome, disponible sur le site de Gnome ;
- gob2 (préprocesseur permettant de faciliter l'écriture d'objets Gtk+ en C, disponible sur le site de Gnome ;
XIII-J. Compilation de Samba 3.0.23▲
La compilation de Samba 3.0.23 ne pose désormais plus de problèmes particuliers. Cependant, le choix des répertoires par défaut utilisés par Samba n'est pas très judicieux sur une machine Linux et pourra être éventuellement modifié.
La configuration se fait classiquement avec configure :
CFLAGS="-O2 -pipe" ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
--with-smbmount --with-smbwrapper
L'option --with-smbmount permet de compiler également les utilitaires smbmount, smbmnt et smbumount, qui permettent de monter les volumes partagés comme des systèmes de fichiers classiques. De même, l'option --with-smbwrapper permet de créer une bibliothèque dynamique que les programmes peuvent utiliser pour accéder directement aux partages SMB, qu'ils trouveront dans un répertoire virtuel /smb/.
Une fois la configuration faite, il est recommandé de modifier les chemins déclarés dans le fichier makefile. En effet, ces chemins ne sont pas forcément ceux spécifiés au programme de configuration. Les variables suivantes devront donc éventuellement être redéfinies :
# Répertoire des fichiers de configuration de Samba :
CONFIGDIR = ${sysconfdir}
# Répertoire privé pour les fichiers de mots de passe :
PRIVATEDIR=/etc/samba
La compilation se fait simplement avec la commande suivante :
make
et l'installation avec :
make install
Notez cependant que les outils smbmnt et smbumount ne sont pas setuid. Leurs droits doivent donc être modifiés avec les deux commandes suivantes :
chmod +s /usr/bin/smbmnt
chmod +s /usr/bin/smbumount