Bibliothèques GTK+

Compilation et installation des bibliothèques GTK+ et compagnie.

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+.

Copyright © SliTaz - GNU General Public License;
Documentation publiées sous GNU Free Documentation License et codée en xHTML 1.0 valide.