Page précédente Page suivante Table des matières

2. La marche à suivre

Après avoir reconstruit puis installé le package par:


rpm --rebuild ghostscript-5.10-2.src.rpm
rpm -Uvh /usr/src/redhat/RPMS/i386/ghostscript-5.10-2.i386.rpm

il s'avère que les drivers pour les imprimantes Epson Stylus ne sont pas inclus par défaut. Pour les avoir, il faut modifier quelque peu les sources de Ghostscript, comme indiqué par Jean-Michel Claude dans son article sur la Stylus Color II.

Commencez par installer le RPM source, sans le recompiler. Pour cela, utilisez:


rpm -ivh ghostscript-5.10-2.src.rpm

Cette commande va rajouter quelques fichiers à votre système:
/usr/src/redhat/SPECS/ghostscript-5.10-1.spec
/usr/src/redhat/SOURCES/ghostscript-5.10.tar.gz
/usr/src/redhat/SOURCES/ghostscript-5.10jpeg.tar.gz
/usr/src/redhat/SOURCES/ghost.gif
/usr/src/redhat/SOURCES/ghostscript-5.10-config.patch
Le premier de ces fichiers est un script qui sera interpreté par rpm pour obtenir un package utilisable à partir des sources. Ce script indique entre autres le rôle des autres fichiers:
Icon: ghost.gif
Source0: ftp://ftp.cs.wisc.edu/ghost/aladdin/ghostscript-5.10.tar.gz
Source1: ftp://ftp.cs.wisc.edu/ghost/aladdin/ghostscript-5.10jpeg.tar.gz
Patch0: ghostscript-5.10-config.patch
Cela signifie que ghost.gif est l'icone qui apparaîtra dans le gestionnaire de packages Glint, que ghostscript-5.10.tar.gz et ghostscript-5.10jpeg.tar.gz sont des archives qui contiennent les sources de Ghostscript et que ghostscript-5.10-config.patch est un patch qui sera appliqué à ces sources avant la compilation.

Puisque nous voulons modifier les sources, il va falloir construire un autre patch. Pour cela, commençons par désarchiver les sources:


cd /usr/src/redhat/SPECS
rpm -bp ghostscript-5.10-1.spec

La seconde commande exécute la section %prep du script ghostscript-5.10-1.spec, à savoir:
%prep
%setup -n gs5.10
%setup -T -D -a 1 -n gs5.10
%patch0 -p1
./tar_cat
ln -s unix-gcc.mak Makefile
Les sources désarchivées et prêtes à compiler se trouvent dans le sous-répertoire gs5.10 de /usr/src/redhat/BUILD. Commençons par en faire une copie de sauvegarde, par exemple dans un répertoire /usr/src/redhat/BUILD/gs5.10.orig, qui nous sera utile par la suite pour créer notre patch:

cd /usr/src/redhat/BUILD
mkdir gs5.10.orig
( cd gs5.10 && tar cf - . ) | ( cd gs5.10.orig && tar xpvf - )

Maintenant, suivez les instructions du document mentionné plus haut. Il s'agit de modifier les fichiers gp_unix.c et gcc-head.mak du répertoire gs5.10. Une fois les modifications effectuées, faites un patch:

cd /usr/src/redhat/BUILD
diff -ur gs5.10.orig gs5.10 > ../SOURCES/ghostscript-5.10-epson.patch

Voila, le plus gros du boulot est fait. Il reste juste à faire comprendre à rpm qu'il doit tenir compte du nouveau patch. Pour cela, commencez par faire une copie du fichier spec:

cd /usr/src/redhat/SPECS
cp ghostscript-5.10-1.spec ghostscript-5.10-3.spec

Maintenant, éditez le nouveau fichier ghostscript-5.10-3.spec avec votre éditeur de textes favori.

Commencez par remplacer la ligne Release: 2 par Release: 3; c'est cosmétique, mais autant faire les choses comme il faut. Ensuite, rajoutez, après la ligne Patch0: ..., la ligne suivante:


Patch1: ghostscript-5.10-epson.patch

Maintenant, rpm tiendra compte de notre patch, mais il n'en fera rien si on ne lui indique pas explicitement. Pour cela, localisez la ligne %patch0 -p1 dans la section %prep. Elle indique ce qu'il faut faire du patch 0 (ghostscript-5.10-config.patch). C'est le même comportement que nous voulons pour notre patch, donc rajoutez à la suite une nouvelle ligne:

%patch1 -p1

La modification est maintenant terminée, il ne reste plus qu'à reconstruire le package proprement dit. Pour cela:

rpm -ba --clean /usr/src/redhat/SPECS/ghostscript-5.10-3.spec

Allez boire une bière, un thé ou ce que vous voulez pendant que ça compile; ça prend une bonne douzaine de minutes sur mon P200+ avec 64 Mo de RAM, sous une charge modérée.

Voila, vous avez maintenant un bô Ghostscript tout neuf avec les options qui vont bien, dans /usr/src/redhat/RPMS/i386/ghostscript-5.10-3.i386.rpm, et le package source qui va avec dans le répertoire /usr/src/redhat/SRPMS. Pour installer le nouveau package:


rpm -Uvh /usr/src/redhat/RPMS/i386/ghostscript-5.10-3.i386.rpm


Page précédente Page suivante Table des matières