Table of Contents
X window system
Installation et configuration de base du système de fenêtres X.
À propos
Ce chapitre décrit l'installation et la configuration du système X window sur SliTaz. Nous allons installer les bibliothèques pour les polices, expat, XML, un serveur graphique (Xvesa), un émulateur de terminal (XTerm), divers petits outils, et un gestionnaire de fenêtres (JWM). Nous vous proposons aussi d'installer les bibliothèques JPEG et le navigateur web Links (en français).
Variable d'environnement ($fs)
Pour ne pas spécifier tout le chemin vers le répertoire rootfs, export de la variable d'environnement:
# export fs=$PWD/rootfs
Pour vérifier:
# echo $fs
expat-2.0.0 - XML parser library
Expat (http://expat.sourceforge.net/) contient des bibliothèques d'analyse XML:
# cd .. # wget http://switch.dl.sourceforge.net/sourceforge/expat/expat-2.0.0.tar.gz # tar xzf expat-2.0.0.tar.gz # cd expat-2.0.0 # ./configure --sysconfdir=/etc --prefix=/usr \\ --mandir=/usr/share/man # make # make DESTDIR=$PWD/_pkg install # strip -v _pkg/usr/lib/* # strip -v _pkg/usr/bin/*
Par la suite nous allons installer 'xterm' qui a besoin de libexpat.so.0, il suffit de créer un lien symbolique sur libexpat.so.1.5.0, et le tour est joué. Ensuite vous pouvez installer les bibliothèques, et l'application 'xmlwf' dans le rootfs:
# cd _pkg/usr/lib # ln -s libexpat.so.1.5.0 libexpat.so.0 # cp -a *.so* $fs/usr/lib # cd .. # cp -a bin/* $fs/usr/bin # cd ../..
libs
Bibliothèques utilisées par xmlwf:
libexpat.so.1 => /usr/lib/libexpat.so.1 (0x40021000) libc.so.6 => /lib/tls/libc.so.6 (0x40041000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
freetype-2.3.1 - Bibliothèques de police sytème
Le paquet freetype (http://www.freetype.org/) contient des bibliothèques utilisées par X pour la configuration des polices du système:
# cd .. # wget http://download.savannah.gnu.org/releases/freetype/freetype-2.3.1.tar.bz2 # tar xjf freetype-2.3.1.tar.bz2 # cd freetype-2.3.1 # ./configure --sysconfdir=/etc --prefix=/usr \\ --mandir=/usr/share/man # make # make DESTDIR=$PWD/_pkg install # strip -vs _pkg/usr/lib/* # cp -a _pkg/usr/bin/* $fs/usr/bin # cp -a _pkg/usr/lib/*.so* $fs/usr/lib
fontconfig 2.4.2 - Outils de gestion des polices
Le paquet fontconfig (www.fontconfig.org/wiki/) fourni la bibliothèque libfontconfig, utilisée par de nombreux programme sous X. Note: XFree86 fournit aussi ces bibliothèques, et les utilitaires. Nous avons choisi d'utiliser le paquet original, car il fonctionne mieux avec JWM:
# cd .. # wget http://fontconfig.org/release/fontconfig-2.4.2.tar.gz # tar xzf fontconfig-2.4.2.tar.gz # cd fontconfig-2.4.2 # ./configure --sysconfdir=/etc --prefix=/usr \\ --mandir=/usr/share/man --localstatedir=/var # make # make DESTDIR=$PWD/_pkg install # strip -v _pkg/usr/bin/* # strip -v _pkg/usr/lib/* # cp -a _pkg/usr/bin/* $fs/usr/bin # cp -a _pkg/usr/lib/*.so* $fs/usr/lib # cp -a _pkg/etc $fs # cp -a _pkg/var $fs
libs
Un 'ldd' sur fc-cache donne, le bibliothèques ci-dessous. Vous pouvez utiliser libfreetype d'Xfree86:
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7f12000) libz.so.1 => /usr/lib/libz.so.1 (0xb7eff000) libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7edf000) libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7eb0000) libc.so.6 => /lib/tls/libc.so.6 (0xb7d7b000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7f8c000)
Xserver - Serveur graphique Xvesa d'Xfree86
Nous allons utiliser la versions binaires du serveur Xvesa et les polices distribuée par Xfree86.org (www.xfree86.org/). Nous allons par contre, copier les bibliothèques d'Xorg depuis le système hôte, car elle seront utilisées par la compilation des applications X, Xvesa fonctionne très bien comme ça et cela simplifie les choses. Vous pouvez aussi recompiler les paquets d'Xorg sur votre système de développement.
Xtinyx server - Xvesa
Le serveur Xvesa est très léger, et utilise peu de bibliothèques, il se trouve dans l'archive Xtinyx.tgz. Téléchargement et installation dans /usr/bin du rootfs de SliTaz:
# cd .. # mkdir -p XFree86-4.6.0 && cd XFree86-4.6.0 # wget http://ftp.xfree86.org/pub/XFree86/4.6.0/binaries/Linux-ix86-glibc23/Xtinyx.tgz # tar xzf Xtinyx.tgz # cp bin/Xvesa $fs/usr/bin # strip $fs/usr/bin/Xvesa # chmod 4711 $fs/usr/bin/Xvesa
libs pour Xvesa
libz.so.1 => /usr/lib/libz.so.1 (0xb7ed6000) libm.so.6 => /lib/tls/libm.so.6 (0xb7eb1000) libc.so.6 => /lib/tls/libc.so.6 (0xb7d7e000) /lib/ld-linux.so.2 (0xb7ef8000)
rgb.txt - Les couleurs RGB sous X
Le fichier de configuration des couleurs utilisée par le serveur X se nomme “rgb.txt”, nous vous proposons de copier celui du système hôte. La bibliothèque libX11.so d'Xorg va chercher les fichiers de configuration dans /usr/share/X11, et le serveur Xvesa dans /usr/X11R6/lib/X11, nous allons créer un lien dans /usr/share/X11 afin de satisfaire cela:
# mkdir -p $fs/usr/share/X11 # cp /usr/share/X11/rgb.txt $fs/usr/share/X11 # chroot $fs /bin/ash /# mkdir -p /usr/X11R6/lib/X11/ /# ln -s /usr/share/X11/rgb.txt /usr/X11R6/lib/X11/rgb.txt /# exit
Xfnts - Les polices
Pour que le serveur fonctionne il nous faut les polices de base, que vous pouvez télécharger depuis xfree86.org, les compiler depuis les paquets d'Xorg, ou les copier depuis votre système hôte. Les polices du système peuvent se mettre dans différents dossiers, et une fois installées pour devez lancer “lc-cache” pour mettre à jour le cache. Attention les polices prennent de la place, vous pouvez ne copier que le minimum. Le répertoire /usr/share/fonts contient les polices truetype tels que biststream-vera:
# wget http://ftp.xfree86.org/pub/XFree86/4.6.0/binaries/Linux-ix86-glibc23/Xfnts.tgz # tar xzf Xfnts.tgz # mkdir -p $fs/usr/X11R6/lib/X11/fonts # mkdir -p $fs/usr/share/fonts/truetype
Copie des polices... (# cp -a lib/X11/fonts/* $fs/usr/X11R6/lib/X11/fonts) (# cp -a /usr/share/fonts/truetype/* $fs/usr/share/fonts/truetype
Pour regénérer le fichier fonts.dir, il vous faut lancer mkfontdir sur le répertoire en question:
# mkfontdir $fs/usr/X11R6/lib/X11/fonts/75dpi
Les fichiers de configuration de fontconfig, se trouvent dans /etc/fonts, fourni par le paquet fontconfig. Vous pouvez maintenant lancer 'fc-cache', et pour connaître la liste des polices vous pouvez utiliser 'fc-list'. Vous pouvez faire cela avec un chroot dans le rootfs:
# chroot $fs /bin/ash # fc-cache -v # fc-list # exit
Xlib locale - Les fichiers de localisation
Sur SliTaz nous avons installé que 4 locales, C, iso8859-1, iso8859-15, et iso8859-2 provenant de la compilation d'Xorg. Vous pouvez copier les fichiers depuis le système hôte ou utiliser les fichiers distribuées par XFree86. Exemple de copie de toutes les locales depuis le système hôte:
# mkdir -p $fs/usr/share/X11/locale # cp -a /usr/share/X11/locale/* $fs/usr/share/X11/locale
Utilisation de X
À noter que vous pouvez déjà utiliser Xvesa comme terminal X, si vous avez une machine sur le réseau acceptant les connexions Xdmcp. Pour cela vous pouvez lancer le server avec l'option “-query”, exemple:
# Xvesa -ac -shadow -screen 1024x768x24 -query 192.168.0.2
xterm - Emulateur de terminal
Le paquet Xterm (invisible-island.net/xterm/)fournit un émulateur de terminal pour X:
# wget ftp://invisible-island.net/xterm/xterm-223.tgz # tar xzf xterm-223.tgz # cd xterm-223 # ./configure --prefix=/usr --sysconfdir=/etc \\ --mandir=/usr/share/man --localstatedir=/var \\ --with-app-defaults=/usr/share/X11/app-defaults \\ --build=i486-pc-linux-gnu --host=i486-pc-linux-gnu # make # make DESTDIR=$PWD/_pkg install # strip _pkg/usr/bin/* # cp _pkg/usr/bin/* $fs/usr/bin # cp -a _pkg/usr/share/X11/* $fs/usr/share/X11
libs
Un ldd sur XTerm, nous fait copier les bibliothèques manquantes depuis le système hôte et n'oubliez pas de stripper le tout à la fin:
libXft.so.2 => /usr/lib/libXft.so.2 (0xb7f09000) libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb7f00000) libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7ed5000) libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7e68000) libz.so.1 => /usr/lib/libz.so.1 (0xb7e54000) libX11.so.6 => /usr/lib/libX11.so.6 (0xb7d68000) libXaw.so.7 => /usr/lib/libXaw.so.7 (0xb7d0f000) libXmu.so.6 => /usr/lib/libXmu.so.6 (0xb7cfa000) libXext.so.6 => /usr/lib/libXext.so.6 (0xb7cec000) libXt.so.6 => /usr/lib/libXt.so.6 (0xb7c9e000) libSM.so.6 => /usr/lib/libSM.so.6 (0xb7c96000) libICE.so.6 => /usr/lib/libICE.so.6 (0xb7c7f000) libncurses.so.5 => /lib/libncurses.so.5 (0xb7c3c000) libc.so.6 => /lib/libc.so.6 (0xb7b2c000) libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7b0b000) libXau.so.6 => /usr/lib/libXau.so.6 (0xb7b08000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7b03000) libdl.so.2 => /lib/libdl.so.2 (0xb7aff000) libXpm.so.4 => /usr/lib/libXpm.so.4 (0xb7aee000)
libpng-1.2.18 - Bibliothèques PNG
Les bibliothèques PNG (http://libpng.org/pub/png/libpng.html)permettent de manipuler et d'utiliser les images au format .png:
# wget http://puzzle.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.18.tar.bz2 # tar xjf libpng-1.2.18.tar.bz2 # cd libpng-1.2.18 # ./configure --enable-shared --prefix=/usr \\ --mandir=/usr/share/man # make # make DESTDIR=$PWD/_pkg install # strip _pkg/usr/lib/*.so* # cp -a _pkg/usr/lib/libpng12.so* $fs/usr/lib # cp -a _pkg/usr/bin/libpng12* $fs/usr/bin
jwm-2.0 - Gestionnaire de fenêtres
Joe's Window Manager (http://www.joewing.net/programs/jwm/) est un gestionnaire de fenêtres ultra léger, et convivial. C'est le window manager par défaut de SliTaz. Le fichier de configuration principal est dans /etc/jwm/system.jwmrc, comprenant la config du menu et du style:
# cd .. # wget http://www.joewing.net/programs/jwm/releases/jwm-2.0.tar.bz2 # tar xjf jwm-2.0.tar.bz2 # cd jwm-2.0 # ./configure --prefix=/usr --mandir=/usr/share/man \\ --sysconfdir=/etc/jwm --disable-xinerama # make # strip src/jwm # cp src/jwm $fs/usr/bin # mkdir $fs/etc/jwm # cp example.jwmrc $fs/etc/jwm/system.jwmrc
libs
Les bibliothèques que ldd nous aura fourni:
libX11.so.6 => /usr/lib/libX11.so.6 (0xb7e35000) libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb7e12000) libXft.so.2 => /usr/lib/libXft.so.2 (0xb7e00000) libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb7df7000) libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7dcc000) libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7d5f000) libz.so.1 => /usr/lib/libz.so.1 (0xb7d4a000) libXpm.so.4 => /usr/lib/libXpm.so.4 (0xb7d3a000) libXext.so.6 => /usr/lib/libXext.so.6 (0xb7d2c000) libc.so.6 => /lib/libc.so.6 (0xb7c1c000) libXau.so.6 => /usr/lib/libXau.so.6 (0xb7c19000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7c14000) libdl.so.2 => /lib/libdl.so.2 (0xb7c0f000) libm.so.6 => /lib/libm.so.6 (0xb7bea000) libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7bc9000)
Vous pouvez démarrer le serveur X et JWM avec la commande ci-dessous, ou en créant un script, tel que /usr/bin/startx avec pour contenu:
Xvesa -ac -shadow -screen 1024x768x24 & exec jwm
Sur SliTaz
SliTaz utilise le fichier ~/.xsession pour lancer un session graphique. La commande 'startx' vérifie si il existe, si oui il le lance, sinon il lance le script 'tazx' pour configurer le système X. La page du guide de l'utilisateur au sujet d'X window est dans: /usr/share/doc/slitaz/user-guide/x-window.html, et sur le site web.
Nous avons choisi d'utiliser les icons du thème Tango: http://tango.freedesktop.org/, que nous n'avons pas compilé. Nous utilisons seulement le minimum, et des images au format 16×16 que nous mettons dans /usr/share/icons.
Pour tester JWM, avec une ISO en cuisson:
# Xvesa -ac -shadow -screen 800x600x24 & exec jwm
jpeg-6b - Bibliothèques JPEG
Les bibliothèques de manipulation des images JPEG, et quelques petits utilitaires:
# wget http://www.ijg.org/files/jpegsrc.v6b.tar.gz # tar xzf jpegsrc.v6b.tar.gz # cd jpeg-6b # ./configure --enable-shared --prefix=/usr \\ --mandir=/usr/share/man # make # strip .libs/* # cp -a .libs/*.so* $fs/usr/lib # cp .libs/{cjpeg,djpeg,jpegtran} $fs/usr/bin
tiff-3.8.2 - Bibliothèques et utilitaires TIFF
Les bibliothèques de manipulation des images TIFF, et quelques petits utilitaires en option:
# wget ftp://ftp.remotesensing.org/pub/libtiff/tiff-3.8.2.tar.gz # tar xzf tiff-3.8.2.tar.gz # cd tiff-3.8.2 # ./configure --prefix=/usr --mandir=/usr/share/man # make # make DESTDIR=$PWD/_pkg install # strip _pkg/usr/bin/* # strip _pkg/usr/lib/*.so* # cp -a _pkg/usr/lib/*.so* $fs/usr/lib
À vous d'installer les utilitaires que vous voulez.
links-2.1pre29 - Navigateur web graphique et texte
Links (links.twibright.com) est un navigateur web proposant un mode texte et un mode graphique, il est traduit dans de multiples langues, dont le français:
# cd .. # wget http://links.twibright.com/download/links-2.1pre28.tar.gz # tar xzf links-2.1pre28.tar.gz # cd links-2.1pre28 # ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man \\ --without-directfb --without-ssl --enable-graphics --enable-javascript # make # make DESTDIR=$PWD/_pkg install # strip -v _pkg/usr/bin/* # cp -v _pkg/usr/bin/* $fs/usr/bin
libs
libtiff.so.3 => /usr/lib/libtiff.so.3 libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb7ede000) libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb7eba000) libz.so.1 => /usr/lib/libz.so.1 (0xb7ea7000) libX11.so.6 => /usr/lib/libX11.so.6 (0xb7dbb000) libdl.so.2 => /lib/tls/libdl.so.2 (0xb7db7000) libpcre.so.0 => /usr/lib/libpcre.so.0 (0xb7d96000) libm.so.6 => /lib/tls/libm.so.6 (0xb7d70000) libc.so.6 => /lib/tls/libc.so.6 (0xb7c3e000) libXau.so.6 => /usr/lib/libXau.so.6 (0xb7c3b000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7c36000) /lib/ld-linux.so.2 (0xb7f5d000)
Génération de l'initramfs, et d'une image ISO
Pour créer une nouvelle image ISO vous pouvez utiliser 'mktaziso' contenu dans SliTaz tools. Ou vous pouvez créer un nouvelle image initramfs, et la copier dans /boot de la racine de cd-rom (rootcd), et pour finir créer un image ISO avec genisoimage:
# cd $fs # find . -print | cpio -o -H newc | gzip -9 > ../rootfs.gz # cd .. # cp rootfs.gz rootcd/boot # genisoimage -R -o slitaz-cooking.iso -b boot/isolinux/isolinux.bin \\ -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \\ -V "SliTaz" -boot-info-table rootcd
Suite
La suite logique du cookbook passe par l'installation des bibliothèques GTK décrite dans le chapitre : GTK+ libs.