Bibliothèques GTK+
Compilation et installation des bibliothèques GTK+ et compagnie.
- A propos de ce chapitre. - Description et variable d'environnement ($fs)
- cairo-1.2.6 - 2D graphics library.
- glib-2.12.4 - C routines.
- pango-1.14.8 - Library for layout and rendering of text.
- atk-1.12.4 - Accessibility toolkit.
- gtk-2.8.20 - The GIMP Toolkit.
- Génération de l'initramfs, et d'une image ISO.
A propos
Ce chapitre décrit l'installation et la configuration sur SliTaz, des bibliothèques GTK permettant d'insataller des miliers de logiciels. A noter que vous pouvez simplement compiler, et créer un paquet SliTaz que vous installé ensuite à la demande avec tazpkg.
La compilation de GTK demandes pas mal de temp, et il faut satisfaire beaucoup de dépendances. Vous trouverez (en anglais) le guide de compilation de GTK: gtk-building.html sur developer.gnome.org. Ce document précise qu'il faut compiler dans l'ordre: GLib, Pango, ATK, puis GTK+. Avant de commancer il faur vérifier que les dépendances soient bien installées sur votre système hôte. Les paquets GLib, Pango, ATK, et GTK+ vont ensemles, et sont distribués par l'équipe des développeurs GTK. Nous ne les décrivons pas, seulement les commandes à lancer.
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
cairo-1.2.6 - 2D graphics library
Nous commençons par libcairo (http://www.cairographics.org/) utilisé pour compiler pango:
# cd src # wget http://cairographics.org/releases/cairo-1.2.6.tar.gz # tar xzf cairo-1.2.6.tar.gz # cd cairo-1.2.6 # ./configure --prefix=/usr --mandir=/usr/share/man \ --with-html-dir=/usr/share/doc # make # make DESTDIR=$PWD/_pkg install # strip -v _pkg/usr/lib/*.so*
Install in rootfs
# cp -av _pkg/usr/lib/*.so* $fs/usr/lib
glib-2.12.4 - C routines
# cd .. # wget ftp://ftp.gtk.org/pub/glib/2.12/glib-2.12.4.tar.bz2 # tar xjf glib-2.12.4.tar.bz2 # cd glib-2.12.4 # ./configure --prefix=/usr --sysconfdir=/etc \ --mandir=/usr/share/man --with-html-dir=/usr/share/doc # make # make DESTDIR=$PWD/_pkg install # strip -v _pkg/usr/bin/* # strip -v _pkg/usr/lib/*.so*
Install in rootfs
Option, les utilitaires glib-genmarshal et gobject-query on besoin de /lib/tls/librt.so.1:
# cp -a _pkg/usr/lib/*.so* $fs/usr/lib # cp -a _pkg/usr/share/locale/fr $fs/usr/share/locale Les binaires en option: # cp -a _pkg/usr/bin/* $fs/usr/bin
pango-1.14.8 - Library for layout and rendering of text
# cd .. # wget ftp://ftp.gtk.org/pub/pango/1.14/pango-1.14.8.tar.bz2 # tar xjf pango-1.14.8.tar.bz2 # cd pango-1.14.8 # ./configure --prefix=/usr --sysconfdir=/etc \ --mandir=/usr/share/man --with-html-dir=/usr/share/doc # make # make DESTDIR=$PWD/_pkg install # strip -v _pkg/usr/bin/* # strip -v _pkg/usr/lib/*.so* # strip -v _pkg/usr/lib/pango/1.5.0/modules/*
Install in rootfs
# cp -a _pkg/usr/bin/* $fs/usr/bin # cp -a _pkg/usr/lib/*.so* $fs/usr/lib # cp -a _pkg/usr/lib/pango $fs/usr/lib # rm -rf $fs/usr/lib/pango/1.5.0/modules/*.la # cp -a _pkg/etc $fs
Création du fichier /etc/pango/pango.modules via un chroot dans le rootfs (pango-querymodules utilise librt.so.1):
# chroot $fs /bin/ash /# pango-querymodules > /etc/pango/pango.modules # exit
atk-1.12.4 - Accessibility toolkit
# cd .. # wget http://ftp.gnome.org/pub/gnome/sources/atk/1.12/atk-1.12.4.tar.bz2 # tar xjf atk-1.12.4.tar.bz2 # cd atk-1.12.4 # ./configure --prefix=/usr --mandir=/usr/share/man \ --with-html-dir=/usr/share/doc # make # make DESTDIR=$PWD/_pkg install # strip -v _pkg/usr/lib/*.so*
Install in rootfs
# cp -a _pkg/usr/lib/*.so* $fs/usr/lib # cp -a _pkg/usr/share/locale/fr $fs/usr/share/locale
gtk+-2.8.20 - The GIMP Toolkit
# cd .. # wget ftp://ftp.gtk.org/pub/gtk/v2.8/gtk+-2.8.20.tar.bz2 # tar xjf gtk+-2.8.20.tar.bz2 # cd gtk+-2.8.20 # ./configure --prefix=/usr --sysconfdir=/etc \ --mandir=/usr/share/man --with-html-dir=/usr/share/doc # make # make DESTDIR=$PWD/_pkg install # strip -v _pkg/usr/bin/* # strip -v _pkg/usr/lib/*.so* # strip -v --strip-unneeded \ _pkg/usr/lib/gtk-2.0/2.4.0/*/*
Install in rootfs
# cp -a _pkg/usr/lib/*.so* $fs/usr/lib # mkdir $fs/usr/lib/gtk-2.0 # cp -a _pkg/usr/lib/gtk-2.0/2.4.0 $fs/usr/lib/gtk-2.0 # rm -rf $fs/usr/lib/gtk-2.0/2.4.0/*/*.la Locale et themes: # cp -a _pkg/usr/share/locale/fr $fs/usr/share/locale # cp -a _pkg/usr/share/themes $fs/usr/share Les applications: # cp _pkg/usr/bin/gtk-query-immodules-2.0 $fs/usr/bin # cp _pkg/usr/bin/gtk-update-icon-cache $fs/usr/bin # cp _pkg/usr/bin/gdk-pixbuf-csource $fs/usr/bin # cp _pkg/usr/bin/gdk-pixbuf-query-loaders $fs/usr/bin ... Pour l'application gtk-demo: # cp -a _pkg/usr/bin/gtk-demo $fs/usr/bin # cp -a _pkg/usr/share/gtk-2.0 $fs/usr/share
Création des fichiers /etc/gtk-2.0/gtk.immodules et gdk-pixbuf.loaders via un chroot dans le rootfs:
# chroot $fs /bin/ash /# mkdir /etc/gtk-2.0 /# gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules /# gdk-pixbuf-query-loaders > /etc/gtk-2.0/gdk-pixbuf.loaders # exit
A ce stade vous pouvez tester GTK+ avec l'application 'gtk-demo' en créant une ISO, et en utilisant 'qemu'. Vous pouvez aussi compiler une petite application GTK+ tel que LeafPad, et tester! La compilation et l'installation des application GTK+ distribuées par défaut avec SliTaz, est décrite dans le chapitre gtk-apps.
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. Vous pouvez aussi créer un nouvelle image initramfs, et la copier dans /boot de la racine de cdrom (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
Après les bibliothèques, les applications GTK+.