website view doc/cookbook/receipts.html @ rev 4

French doc with Handbook and Cookbook
author Christophe Lincoln <pankso@slitaz.org>
date Sat Mar 29 12:01:05 2008 +0100 (2008-03-29)
parents
children bb46a115d36e
line source
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
4 <head>
5 <title>SliTaz Cookbook - Receipts (Recettes des paquets)</title>
6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
7 <meta name="description" content="SliTaz packages receipt la recette de construction d'un paquet slitaz tazpkg tazwok" />
8 <meta name="expires" content="never" />
9 <meta name="modified" content="2007-12-24 17:00:00" />
10 <meta name="publisher" content="www.slitaz.org" />
11 <meta name="author" content="Christophe Lincoln"/>
12 <link rel="shortcut icon" href="favicon.ico" />
13 <link rel="stylesheet" type="text/css" href="book.css" />
14 </head>
15 <body bgcolor="#ffffff">
17 <!-- Header and quick navigation -->
18 <div id="header">
19 <div align="right" id="quicknav">
20 <a name="top"></a>
21 <a href="wok-tools.html">Wok &amp; tools</a> |
22 <a href="index.html">Table des matières</a>
23 </div>
24 <h1><font color="#3E1220">SliTaz Cookbook</font></h1>
25 </div>
27 <!-- Content. -->
28 <div id="content">
29 <div class="content-right"></div>
32 <h2><font color="#DF8F06">Receipts (Recettes des paquets)</font></h2>
33 <p>
34 Ce document décrit les possibilités offertes par les recettes utilisées par
35 Tazwok pour compiler et générer des paquets pour SliTaz et tazpkg, via
36 (<a href="wok-tools.html">le wok et les outils</a>). La recette d'un paquet
37 est aussi utilisée par Tazpkg pour installer/désinstaller et donner des
38 informations au sujet d'un paquet.tazpkg (package). Chaque recette commence
39 par un commentaire en English :
40 </p>
41 <pre class="script">
42 # SliTaz package receipt.
43 </pre>
45 <h3>Variables de base</h3>
46 <p>
47 Les 5 premières variables devraient toujours être présentes et configurées.
48 Elles configure respectivement le non du paquet ($PACKAGE), sa version, sa
49 catégorie, une courte description et le nom du mainteneur. Exemple pour le
50 paquet du gestionnaire de fichiers Clex :
51 </p>
52 <pre class="script">
53 PACKAGE="clex"
54 VERSION="3.16"
55 CATEGORY="base-apps"
56 SHORT_DESC="Text mode file manager."
57 MAINTAINER="pankso@slitaz.org"
58 </pre>
60 <h3>Variables optionnelles</h3>
61 <p>
62 Tazwok sait aussi utiliser divers variables optionnelles si elles existent, il
63 peut par exemple, utiliser un autre nom pour le paquet source. Il y a aussi des
64 variables qui sont utilisées par Tazpkg pour gérer les dépendances ou donner
65 des informations sur le paquet.
66 </p>
67 <p>
68 <code>$DEPENDS</code>: Specifie les dépendances, il peut y avoir plusieurs
69 paquets séparés par un espace ou sur plusieurs lignes. Cette variable est
70 principalement utilisée par Tazpkg lors de l'installation du paquet et Tazwok
71 pour construire de gros paquets comme Xorg. Exemple pour Clex qui dépend du
72 paquet ncurses :
73 </p>
74 <pre class="script">
75 DEPENDS="ncurses"
76 </pre>
77 <code>$BUILD_DEPENDS</code>: Specifie les dépendances de compilation, séparées
78 par un espace ou sur plusieurs lignes. Cette variable est utilisée par Tazwok
79 lors de la cuisson d'un paquet et Tazwok. Exemple :
80 </p>
81 <pre class="script">
82 BUILD_DEPENDS="ncurses-dev"
83 </pre>
84 <p>
85 <code>$TARBALL</code> : L'archive source avec sont extension (tar.gz, tgz ou
86 tar.bz2). En générale, les variables $PACAKAGE et $VERSION sont utilisées et
87 il suffit de modifier l'extension, cela permet de mettre à jour le paquet en
88 ne modifiant que la variable de la version. Exemple générique (voir aussi
89 la variable $SOURCE) :
90 </p>
91 <pre class="script">
92 TARBALL="$PACKAGE-$VERSION.tar.gz"
93 </pre>
94 <p>
95 <code>$WEB_SITE</code> : Le site web officiel du paquet. Il se peut que
96 certaines bibliothèques n'aient pas de site Web, dans ce cas il n'y a pas
97 besoin de spécifier d'URL. Tazwok et Tazpkg s'attendent a trouver l'URL
98 complet avec le http :
99 </p>
100 <pre class="script">
101 WEB_SITE="http://www.clex.sk/"
102 </pre>
103 <p>
104 <code>$WGET_URL</code> : L'url de téléchargement des l'archive source. En
105 générale la variable $TARBALL devraient être utilisée pour faciliter la mise
106 à jour du paquet en ne modifiant que $VERSION. Le fichier de configuration de
107 Tazwok configure aussi, par défaut, 3 variable de miroir souvent utilisés.
108 $GNU_MIRROR pour les miroir GNU, $SF_MIRROR pour SourceForge et XORG_MIRROR
109 pour le mirroir du serveur graphique Xorg. Exemple pour Clex :
110 </p>
111 <pre class="script">
112 WGET_URL="http://www.clex.sk/download/$TARBALL"
113 </pre>
114 <p>
115 <code>$WANTED</code> : Il y a des paquets SliTaz qui sont dépendants de la
116 compilation d'un paquet source. La recette de ces paquets ne nécessite pas de
117 règles de compilation, une variable $WANTED peut être utilisée pour copier des
118 fichiers depuis les sources du paquet voulu en utilisant la variable $src.
119 </p>
120 <p>
121 <code>$SOURCE</code> : Il se peut que le nom du paquet Tazpkg diffère du nom
122 du paquet source. C'est le cas par exemple pour les paquets d'Xorg, le nom
123 Tazpkg des bibliothèque X11 est 'xorg-libX11' et le nom du paquet source est
124 libX11. Cette astuces permet aussi de continuer à utiliser les varibables
125 $src et $_pkg lors la cuisson d'un paquet. A noter que dans le cas libX11,
126 le nom de l'archive source devient $SOURCE-$VERSION.tar.gz.
127 </p>
129 <h3>Variables utilisables dans les fonctions</h3>
130 <p>
131 Tazwok configure plusieurs variables permettant de faciliter la compilation et
132 la construction de paquets Tazpkg. Ces variables sont gérées automatiquement
133 par Tazwok en utilisant les informations contenues dans les recettes, elles
134 peuvent être utilisées par la fonction compile_rules et genpkg_rules décrites
135 toutes deux dans le chapitre : Fonctions.
136 </p>
137 <p>
138 <code>$src</code> : Définit le chemin vers le répertoire des sources désarchivée.
139 </p>
140 <p>
141 <code>$_pkg</code> : Définit le chemin vers les binaires compliés et installés
142 via la commande 'make DESTDIR=$PWD/_pkg install'. Cette variable est utilisée
143 pour copier les fichiers générés et créer des paquets tazpkg.
144 </p>
145 <p>
146 <code>$fs</code> : Définit le chemin vers le pseudo système de fichier (fs)
147 propre à chaque paquet. Le 'fs' d'un paquet correspond à la racine du système
148 cible, un binaire tel que Clex sera par exemple dans $fs/usr/bin/clex, à noter
149 qu'il faut créer les répertoires nécessaires via la fonction genpkg_rules()
150 avant de copier des fichiers.
151 </p>
152 <p>
153 <code>$CONFIGURE_ARGS</code> : Cette variables est définie dans le fichier de
154 configuration de Tazwok (tazwok.conf), elle permet de spécifier des
155 arguments d'optimisation générique lors de la configuration d'un paquet.
156 Par défaut l'architecture est i486.
157 </p>
159 <h3>Fonctions</h3>
160 <p>
161 Une recette peut contenir 4 fonctions. Tazwok sait traiter les fonctions
162 contenant les règles de compliation (compile_rules) et les règles servant à
163 générer un paquet Tazpkg (genpkg_rules). Ces fonctions peuvent contenir toutes
164 sortes de commandes GNU/Linux standards tels que sed ou patch et les variables
165 configurées automatiquements. A noter que ces deux fonctions utilisent les
166 commandes du Cookbook de SliTaz : http://www.slitaz.org/doc/cookbook/
167 </p>
168 <h4>compile_rules()</h4>
169 <p>
170 Pour compiler un paquet vous pouvez utiliser la variable $src pour vous
171 déplacer (cd) dans le répertoire des sources et utiliser $CONFIGURE_ARGS
172 pour inclure les arguments depuis le fichiers de configuration de Tazwok.
173 Pour construire le paquet il suffit généralement de lancer 'make' sans
174 arguments et pour installer le paquet dans un répertoire _pkg/ il faut
175 utiliser la commande 'make DESTDIR=$PWD/_pkg install'. Exemple générique :
176 </p>
177 <pre class="script">
178 # Rules to configure and make the package.
179 compile_rules()
180 {
181 cd $src
182 ./configure --prefix=/usr --infodir=/usr/share/info \
183 --mandir=/usr/share/man $CONFIGURE_ARGS
184 make
185 make DESTDIR=$PWD/_pkg install
186 }
187 </pre>
188 <h4>genpkg_rules()</h4>
189 <p>
190 Pour générer un paquet Tazpkg il faut mettre les commandes à lancer dans la
191 fonction <code>genpkg_rules</code>. Dans cet exemple on créer le répertoire
192 <code>usr/</code> dans le pseudo système de fichiers du paquet, on copie tout
193 le(s) binaires(s) et on finit par un strip pour nettoyer les fichiers :
194 </p>
195 <pre class="script">
196 # Rules to gen a SliTaz package suitable for Tazpkg.
197 genpkg_rules()
198 {
199 mkdir -p $fs/usr
200 cp -a $_pkg/usr/bin $fs/usr
201 strip -s $fs/usr/bin/*
202 }
203 </pre>
204 <h4>pre_install() et post_install()</h4>
205 <p>
206 Ces deux fonctions sont lancées par Tazpkg lors de l'installation du paquet.
207 Il faut les définir avant de générer le paquet.tazpkg avec Tazwok. Si aucune
208 commandes n'est nécessaires ces deux fonction n'ont aucune raison d'être et
209 peuvent être supprimées. Exemple avec echo pour afficher un peu de texte
210 (aucune fonction ne doit être vide) :
211 </p>
212 <pre class="script">
213 # Pre and post install commands for Tazpkg.
214 pre_install()
215 {
216 echo "Processing pre-install commands..."
217 }
218 post_install()
219 {
220 echo "Processing post-install commands..."
221 }
222 </pre>
225 <!-- End of content -->
226 </div>
228 <!-- Footer. -->
229 <div id="footer">
230 <div class="footer-right"></div>
231 <a href="#top">Haut de la page</a> |
232 <a href="index.html">Table des matières</a>
233 </div>
235 <div id="copy">
236 Copyright © 2007 <a href="http://www.slitaz.org/">SliTaz</a> -
237 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
238 Documentation publiées sous
239 <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
240 et codée en <a href="http://validator.w3.org/">xHTML 1.0 valide</a>.
241 </div>
243 </body>
244 </html>