rev |
line source |
pankso@4
|
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
pankso@4
|
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
pankso@4
|
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
|
pankso@4
|
4 <head>
|
pankso@4
|
5 <title>SliTaz Cookbook - Receipts (Recettes des paquets)</title>
|
pankso@4
|
6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
|
pankso@4
|
7 <meta name="description" content="SliTaz packages receipt la recette de construction d'un paquet slitaz tazpkg tazwok" />
|
pankso@4
|
8 <meta name="expires" content="never" />
|
pankso@4
|
9 <meta name="modified" content="2007-12-24 17:00:00" />
|
pankso@4
|
10 <meta name="publisher" content="www.slitaz.org" />
|
pankso@4
|
11 <meta name="author" content="Christophe Lincoln"/>
|
pankso@4
|
12 <link rel="shortcut icon" href="favicon.ico" />
|
pankso@4
|
13 <link rel="stylesheet" type="text/css" href="book.css" />
|
pankso@4
|
14 </head>
|
pankso@4
|
15 <body bgcolor="#ffffff">
|
pankso@4
|
16
|
pankso@4
|
17 <!-- Header and quick navigation -->
|
pankso@4
|
18 <div id="header">
|
pankso@4
|
19 <div align="right" id="quicknav">
|
pankso@4
|
20 <a name="top"></a>
|
pankso@4
|
21 <a href="wok-tools.html">Wok & tools</a> |
|
pankso@4
|
22 <a href="index.html">Table des matières</a>
|
pankso@4
|
23 </div>
|
pankso@4
|
24 <h1><font color="#3E1220">SliTaz Cookbook</font></h1>
|
pankso@4
|
25 </div>
|
pankso@4
|
26
|
pankso@4
|
27 <!-- Content. -->
|
pankso@4
|
28 <div id="content">
|
pankso@4
|
29 <div class="content-right"></div>
|
pankso@4
|
30
|
pankso@4
|
31
|
pankso@4
|
32 <h2><font color="#DF8F06">Receipts (Recettes des paquets)</font></h2>
|
pankso@4
|
33 <p>
|
pankso@4
|
34 Ce document décrit les possibilités offertes par les recettes utilisées par
|
pankso@4
|
35 Tazwok pour compiler et générer des paquets pour SliTaz et tazpkg, via
|
pankso@4
|
36 (<a href="wok-tools.html">le wok et les outils</a>). La recette d'un paquet
|
pankso@4
|
37 est aussi utilisée par Tazpkg pour installer/désinstaller et donner des
|
pankso@4
|
38 informations au sujet d'un paquet.tazpkg (package). Chaque recette commence
|
pankso@4
|
39 par un commentaire en English :
|
pankso@4
|
40 </p>
|
pankso@4
|
41 <pre class="script">
|
pankso@4
|
42 # SliTaz package receipt.
|
pankso@4
|
43 </pre>
|
pankso@4
|
44
|
pankso@4
|
45 <h3>Variables de base</h3>
|
pankso@4
|
46 <p>
|
pankso@4
|
47 Les 5 premières variables devraient toujours être présentes et configurées.
|
pankso@4
|
48 Elles configure respectivement le non du paquet ($PACKAGE), sa version, sa
|
pankso@4
|
49 catégorie, une courte description et le nom du mainteneur. Exemple pour le
|
pankso@4
|
50 paquet du gestionnaire de fichiers Clex :
|
pankso@4
|
51 </p>
|
pankso@4
|
52 <pre class="script">
|
pankso@4
|
53 PACKAGE="clex"
|
pankso@4
|
54 VERSION="3.16"
|
pankso@4
|
55 CATEGORY="base-apps"
|
pankso@4
|
56 SHORT_DESC="Text mode file manager."
|
pankso@4
|
57 MAINTAINER="pankso@slitaz.org"
|
pankso@4
|
58 </pre>
|
pankso@4
|
59
|
pankso@4
|
60 <h3>Variables optionnelles</h3>
|
pankso@4
|
61 <p>
|
pankso@4
|
62 Tazwok sait aussi utiliser divers variables optionnelles si elles existent, il
|
pankso@4
|
63 peut par exemple, utiliser un autre nom pour le paquet source. Il y a aussi des
|
pankso@4
|
64 variables qui sont utilisées par Tazpkg pour gérer les dépendances ou donner
|
pankso@4
|
65 des informations sur le paquet.
|
pankso@4
|
66 </p>
|
pankso@4
|
67 <p>
|
pankso@4
|
68 <code>$DEPENDS</code>: Specifie les dépendances, il peut y avoir plusieurs
|
pankso@4
|
69 paquets séparés par un espace ou sur plusieurs lignes. Cette variable est
|
pankso@4
|
70 principalement utilisée par Tazpkg lors de l'installation du paquet et Tazwok
|
pankso@4
|
71 pour construire de gros paquets comme Xorg. Exemple pour Clex qui dépend du
|
pankso@4
|
72 paquet ncurses :
|
pankso@4
|
73 </p>
|
pankso@4
|
74 <pre class="script">
|
pankso@4
|
75 DEPENDS="ncurses"
|
pankso@4
|
76 </pre>
|
pankso@4
|
77 <code>$BUILD_DEPENDS</code>: Specifie les dépendances de compilation, séparées
|
pankso@4
|
78 par un espace ou sur plusieurs lignes. Cette variable est utilisée par Tazwok
|
pankso@4
|
79 lors de la cuisson d'un paquet et Tazwok. Exemple :
|
pankso@4
|
80 </p>
|
pankso@4
|
81 <pre class="script">
|
pankso@4
|
82 BUILD_DEPENDS="ncurses-dev"
|
pankso@4
|
83 </pre>
|
pankso@4
|
84 <p>
|
pankso@4
|
85 <code>$TARBALL</code> : L'archive source avec sont extension (tar.gz, tgz ou
|
pankso@4
|
86 tar.bz2). En générale, les variables $PACAKAGE et $VERSION sont utilisées et
|
pankso@4
|
87 il suffit de modifier l'extension, cela permet de mettre à jour le paquet en
|
pankso@4
|
88 ne modifiant que la variable de la version. Exemple générique (voir aussi
|
pankso@4
|
89 la variable $SOURCE) :
|
pankso@4
|
90 </p>
|
pankso@4
|
91 <pre class="script">
|
pankso@4
|
92 TARBALL="$PACKAGE-$VERSION.tar.gz"
|
pankso@4
|
93 </pre>
|
pankso@4
|
94 <p>
|
pankso@4
|
95 <code>$WEB_SITE</code> : Le site web officiel du paquet. Il se peut que
|
pankso@4
|
96 certaines bibliothèques n'aient pas de site Web, dans ce cas il n'y a pas
|
pankso@4
|
97 besoin de spécifier d'URL. Tazwok et Tazpkg s'attendent a trouver l'URL
|
pankso@4
|
98 complet avec le http :
|
pankso@4
|
99 </p>
|
pankso@4
|
100 <pre class="script">
|
pankso@4
|
101 WEB_SITE="http://www.clex.sk/"
|
pankso@4
|
102 </pre>
|
pankso@4
|
103 <p>
|
pankso@4
|
104 <code>$WGET_URL</code> : L'url de téléchargement des l'archive source. En
|
pankso@4
|
105 générale la variable $TARBALL devraient être utilisée pour faciliter la mise
|
pankso@4
|
106 à jour du paquet en ne modifiant que $VERSION. Le fichier de configuration de
|
pankso@4
|
107 Tazwok configure aussi, par défaut, 3 variable de miroir souvent utilisés.
|
pankso@4
|
108 $GNU_MIRROR pour les miroir GNU, $SF_MIRROR pour SourceForge et XORG_MIRROR
|
pankso@4
|
109 pour le mirroir du serveur graphique Xorg. Exemple pour Clex :
|
pankso@4
|
110 </p>
|
pankso@4
|
111 <pre class="script">
|
pankso@4
|
112 WGET_URL="http://www.clex.sk/download/$TARBALL"
|
pankso@4
|
113 </pre>
|
pankso@4
|
114 <p>
|
pascal@152
|
115 <code>$CONFIG_FILES</code> : Certains paquets fournissent des fichiers de
|
pascal@152
|
116 configuration à adapter. La variable $CONFIG_FILES donne la liste de ces
|
pascal@152
|
117 fichiers qui pourront être sauvegardés par la commande 'tazpkg repack-config'.
|
pascal@152
|
118 Ces fichiers ne seront pas écrasés lors de l'installation du paquet s'ils
|
pascal@152
|
119 existent déjà et le paquet pourra être récréé avec 'tazpkg repack' même s'ils
|
pascal@152
|
120 ont été modifiés par la suite. Exemple pour Netatalk :
|
pascal@152
|
121 </p>
|
pascal@152
|
122 <pre class="script">
|
pascal@152
|
123 CONFIG_FILES="/etc/netatalk/AppleVolumes.* /etc/netatalk/*.conf"
|
pascal@152
|
124 </pre>
|
pascal@152
|
125 <p>
|
pankso@4
|
126 <code>$WANTED</code> : Il y a des paquets SliTaz qui sont dépendants de la
|
pankso@4
|
127 compilation d'un paquet source. La recette de ces paquets ne nécessite pas de
|
pankso@4
|
128 règles de compilation, une variable $WANTED peut être utilisée pour copier des
|
pankso@4
|
129 fichiers depuis les sources du paquet voulu en utilisant la variable $src.
|
pankso@4
|
130 </p>
|
pankso@4
|
131 <p>
|
pankso@4
|
132 <code>$SOURCE</code> : Il se peut que le nom du paquet Tazpkg diffère du nom
|
pankso@4
|
133 du paquet source. C'est le cas par exemple pour les paquets d'Xorg, le nom
|
pankso@4
|
134 Tazpkg des bibliothèque X11 est 'xorg-libX11' et le nom du paquet source est
|
pankso@4
|
135 libX11. Cette astuces permet aussi de continuer à utiliser les varibables
|
pankso@4
|
136 $src et $_pkg lors la cuisson d'un paquet. A noter que dans le cas libX11,
|
pankso@4
|
137 le nom de l'archive source devient $SOURCE-$VERSION.tar.gz.
|
pankso@4
|
138 </p>
|
pascal@261
|
139 <p>
|
pascal@261
|
140 <code>$PROVIDE</code> : Certains paquets offrent la même fonctionalité. Par
|
pascal@261
|
141 exemple, le serveur web de Slitaz fut dans un premier temps lighttpd.
|
pascal@261
|
142 Maintenant apache est aussi disponible. Tous les paquets dépendants d'un
|
pascal@261
|
143 serveur web font référence à lighttpd. Le ligne <code>PROVIDE="lighttpd"</code>
|
pascal@261
|
144 de la recette de apache signale qu'il peut se subsituer à lighttpd, c'est à
|
pascal@261
|
145 dire qu'un paquet dépendant de lighttpd n'a pas à l'installer si apache est
|
pascal@261
|
146 déjà installé.<br>
|
pascal@261
|
147 Mais cette alternative peut avoir des conséquences sur le choix des paquets qui
|
pascal@261
|
148 en dépendent. Le paquet php est prévu pour fonctionner uniquement avec lighttpd.
|
pascal@261
|
149 C'est php-apache qu'il faut installer avec apache. Le ligne
|
pascal@261
|
150 <code>PROVIDE="php:apache"</code> dans la recette de php-apache indique qu'il
|
pascal@261
|
151 faut substituer php-apache à php si apache est installé.
|
pascal@261
|
152 Les paquets dépendants de php installeront alors php-apache ou php selon le
|
pascal@261
|
153 serveur web installé.<br>
|
pascal@261
|
154 Cette variable permet aussi d'avoir un paquet compilé avec différentes options.
|
pascal@261
|
155 La ligne <code>PROVIDE="epdfview:cups"</code> du paquet epdfview-cups permet
|
pascal@261
|
156 d'installer un package epdfview compilé avec le support de l'impression par
|
pascal@261
|
157 cups.
|
pascal@261
|
158 </p>
|
pankso@4
|
159
|
pascal@259
|
160 <h3>Variables générées automatiquement par tazwok</h3>
|
pascal@259
|
161 <p>
|
pascal@259
|
162 Certaines variables ne sont connues qu'au moment la cuisson du paquet ou
|
pascal@259
|
163 juste après la cuisson. Tazwok se charge de les ajouter au receipt
|
pascal@259
|
164 automatiquement.
|
pascal@259
|
165 </p>
|
pascal@259
|
166 <p>
|
pascal@259
|
167 <code>$PACKED_SIZE</code> : Taille du ficher tazpkg.
|
pascal@259
|
168 </p>
|
pascal@259
|
169 <p>
|
pascal@259
|
170 <code>$UNPACKED_SIZE</code> : Taille utilisée par le paquet après son
|
pascal@259
|
171 installation.
|
pascal@259
|
172 </p>
|
pascal@259
|
173 <p>
|
pascal@259
|
174 <code>$EXTRAVERSION</code> : Certains packages ont besion de 2 numéros de
|
pascal@259
|
175 version distincts. C'est le cas des modules ajoutés au noyau linux comme
|
pascal@259
|
176 squashfs car le module produit dépend aussi de la version du noyau avec
|
pascal@259
|
177 laquelle il a été compilé. Dans ce cas EXTRAVERSION contient la version du
|
pascal@259
|
178 noyau et tazwok le détermine à partir du contenu de /lib/modules.
|
pascal@259
|
179 </p>
|
pascal@259
|
180
|
pankso@4
|
181 <h3>Variables utilisables dans les fonctions</h3>
|
pankso@4
|
182 <p>
|
pankso@4
|
183 Tazwok configure plusieurs variables permettant de faciliter la compilation et
|
pankso@4
|
184 la construction de paquets Tazpkg. Ces variables sont gérées automatiquement
|
pankso@4
|
185 par Tazwok en utilisant les informations contenues dans les recettes, elles
|
pankso@4
|
186 peuvent être utilisées par la fonction compile_rules et genpkg_rules décrites
|
pankso@4
|
187 toutes deux dans le chapitre : Fonctions.
|
pankso@4
|
188 </p>
|
pankso@4
|
189 <p>
|
pankso@4
|
190 <code>$src</code> : Définit le chemin vers le répertoire des sources désarchivée.
|
pankso@4
|
191 </p>
|
pankso@4
|
192 <p>
|
pankso@4
|
193 <code>$_pkg</code> : Définit le chemin vers les binaires compliés et installés
|
pankso@4
|
194 via la commande 'make DESTDIR=$PWD/_pkg install'. Cette variable est utilisée
|
pankso@4
|
195 pour copier les fichiers générés et créer des paquets tazpkg.
|
pankso@4
|
196 </p>
|
pankso@4
|
197 <p>
|
pankso@4
|
198 <code>$fs</code> : Définit le chemin vers le pseudo système de fichier (fs)
|
pankso@4
|
199 propre à chaque paquet. Le 'fs' d'un paquet correspond à la racine du système
|
pankso@4
|
200 cible, un binaire tel que Clex sera par exemple dans $fs/usr/bin/clex, à noter
|
pankso@4
|
201 qu'il faut créer les répertoires nécessaires via la fonction genpkg_rules()
|
pankso@4
|
202 avant de copier des fichiers.
|
pankso@4
|
203 </p>
|
pankso@4
|
204 <p>
|
pankso@4
|
205 <code>$CONFIGURE_ARGS</code> : Cette variables est définie dans le fichier de
|
pankso@4
|
206 configuration de Tazwok (tazwok.conf), elle permet de spécifier des
|
pankso@4
|
207 arguments d'optimisation générique lors de la configuration d'un paquet.
|
pankso@4
|
208 Par défaut l'architecture est i486.
|
pankso@4
|
209 </p>
|
pankso@4
|
210
|
pankso@4
|
211 <h3>Fonctions</h3>
|
pankso@4
|
212 <p>
|
pankso@4
|
213 Une recette peut contenir 4 fonctions. Tazwok sait traiter les fonctions
|
pankso@4
|
214 contenant les règles de compliation (compile_rules) et les règles servant à
|
pankso@4
|
215 générer un paquet Tazpkg (genpkg_rules). Ces fonctions peuvent contenir toutes
|
pankso@4
|
216 sortes de commandes GNU/Linux standards tels que sed ou patch et les variables
|
pankso@4
|
217 configurées automatiquements. A noter que ces deux fonctions utilisent les
|
pankso@4
|
218 commandes du Cookbook de SliTaz : http://www.slitaz.org/doc/cookbook/
|
pankso@4
|
219 </p>
|
pankso@4
|
220 <h4>compile_rules()</h4>
|
pankso@4
|
221 <p>
|
pankso@4
|
222 Pour compiler un paquet vous pouvez utiliser la variable $src pour vous
|
pankso@4
|
223 déplacer (cd) dans le répertoire des sources et utiliser $CONFIGURE_ARGS
|
pankso@4
|
224 pour inclure les arguments depuis le fichiers de configuration de Tazwok.
|
pankso@4
|
225 Pour construire le paquet il suffit généralement de lancer 'make' sans
|
pankso@4
|
226 arguments et pour installer le paquet dans un répertoire _pkg/ il faut
|
pankso@4
|
227 utiliser la commande 'make DESTDIR=$PWD/_pkg install'. Exemple générique :
|
pankso@4
|
228 </p>
|
pankso@4
|
229 <pre class="script">
|
pankso@4
|
230 # Rules to configure and make the package.
|
pankso@4
|
231 compile_rules()
|
pankso@4
|
232 {
|
pankso@4
|
233 cd $src
|
pankso@4
|
234 ./configure --prefix=/usr --infodir=/usr/share/info \
|
pankso@4
|
235 --mandir=/usr/share/man $CONFIGURE_ARGS
|
pankso@4
|
236 make
|
pankso@4
|
237 make DESTDIR=$PWD/_pkg install
|
pankso@4
|
238 }
|
pankso@4
|
239 </pre>
|
pankso@4
|
240 <h4>genpkg_rules()</h4>
|
pankso@4
|
241 <p>
|
pankso@4
|
242 Pour générer un paquet Tazpkg il faut mettre les commandes à lancer dans la
|
pankso@4
|
243 fonction <code>genpkg_rules</code>. Dans cet exemple on créer le répertoire
|
pankso@4
|
244 <code>usr/</code> dans le pseudo système de fichiers du paquet, on copie tout
|
pankso@4
|
245 le(s) binaires(s) et on finit par un strip pour nettoyer les fichiers :
|
pankso@4
|
246 </p>
|
pankso@4
|
247 <pre class="script">
|
pankso@4
|
248 # Rules to gen a SliTaz package suitable for Tazpkg.
|
pankso@4
|
249 genpkg_rules()
|
pankso@4
|
250 {
|
pankso@4
|
251 mkdir -p $fs/usr
|
pankso@4
|
252 cp -a $_pkg/usr/bin $fs/usr
|
pankso@4
|
253 strip -s $fs/usr/bin/*
|
pankso@4
|
254 }
|
pankso@4
|
255 </pre>
|
pankso@4
|
256 <h4>pre_install() et post_install()</h4>
|
pankso@4
|
257 <p>
|
pankso@4
|
258 Ces deux fonctions sont lancées par Tazpkg lors de l'installation du paquet.
|
pankso@4
|
259 Il faut les définir avant de générer le paquet.tazpkg avec Tazwok. Si aucune
|
pankso@4
|
260 commandes n'est nécessaires ces deux fonction n'ont aucune raison d'être et
|
pankso@4
|
261 peuvent être supprimées. Exemple avec echo pour afficher un peu de texte
|
pankso@4
|
262 (aucune fonction ne doit être vide) :
|
pankso@4
|
263 </p>
|
pankso@4
|
264 <pre class="script">
|
pankso@4
|
265 # Pre and post install commands for Tazpkg.
|
pankso@4
|
266 pre_install()
|
pankso@4
|
267 {
|
pankso@4
|
268 echo "Processing pre-install commands..."
|
pankso@4
|
269 }
|
pankso@4
|
270 post_install()
|
pankso@4
|
271 {
|
pankso@4
|
272 echo "Processing post-install commands..."
|
pankso@4
|
273 }
|
pankso@4
|
274 </pre>
|
erjo@114
|
275 <h4>clean_wok()</h4>
|
erjo@114
|
276 <p>
|
erjo@114
|
277 Cette fonction est lancée par Tazwok avec la commande clean.
|
erjo@114
|
278 Elle permet définir des commandes supplémentaires à exécuter lors nettoyage du wok.
|
erjo@114
|
279 Elle est très utiles pour supprimer des fichiers ou répertoires qui ne sont pas pris en charge par Tazwok.
|
erjo@114
|
280 </p>
|
erjo@114
|
281 <pre class="script">
|
erjo@114
|
282 # clean commands for Tazwok.
|
erjo@114
|
283 clean_wok()
|
erjo@114
|
284 {
|
erjo@114
|
285 rm -rf $WOK/$PACKAGE/vim71
|
erjo@114
|
286 }
|
erjo@114
|
287 </pre>
|
pankso@4
|
288 <!-- End of content -->
|
pankso@4
|
289 </div>
|
pankso@4
|
290
|
pankso@4
|
291 <!-- Footer. -->
|
pankso@4
|
292 <div id="footer">
|
pankso@4
|
293 <div class="footer-right"></div>
|
pankso@4
|
294 <a href="#top">Haut de la page</a> |
|
pankso@4
|
295 <a href="index.html">Table des matières</a>
|
pankso@4
|
296 </div>
|
pankso@4
|
297
|
pankso@4
|
298 <div id="copy">
|
pankso@4
|
299 Copyright © 2007 <a href="http://www.slitaz.org/">SliTaz</a> -
|
pankso@4
|
300 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
|
pankso@4
|
301 Documentation publiées sous
|
pankso@4
|
302 <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
|
pankso@4
|
303 et codée en <a href="http://validator.w3.org/">xHTML 1.0 valide</a>.
|
pankso@4
|
304 </div>
|
pankso@4
|
305
|
pankso@4
|
306 </body>
|
pankso@4
|
307 </html>
|