website diff fr/doc/cookbook/receipts.html @ rev 371
fr: Add doc section
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Sat Apr 11 19:48:44 2009 +0200 (2009-04-11) |
parents | |
children | 81d0a30755e3 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/fr/doc/cookbook/receipts.html Sat Apr 11 19:48:44 2009 +0200 1.3 @@ -0,0 +1,338 @@ 1.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 1.5 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 1.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> 1.7 +<head> 1.8 + <title>SliTaz Cookbook - Receipts (Recettes des paquets)</title> 1.9 + <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 1.10 + <meta name="description" content="SliTaz packages receipt la recette de construction d'un paquet slitaz tazpkg tazwok" /> 1.11 + <meta name="expires" content="never" /> 1.12 + <meta name="modified" content="2007-12-24 17:00:00" /> 1.13 + <meta name="publisher" content="www.slitaz.org" /> 1.14 + <meta name="author" content="Christophe Lincoln"/> 1.15 + <link rel="shortcut icon" href="favicon.ico" /> 1.16 + <link rel="stylesheet" type="text/css" href="book.css" /> 1.17 +</head> 1.18 +<body bgcolor="#ffffff"> 1.19 + 1.20 +<!-- Header and quick navigation --> 1.21 +<div id="header"> 1.22 +<div align="right" id="quicknav"> 1.23 + <a name="top"></a> 1.24 + <a href="wok-tools.html">Wok & tools</a> | 1.25 + <a href="index.html">Table des matières</a> 1.26 +</div> 1.27 +<h1><font color="#3E1220">SliTaz Cookbook</font></h1> 1.28 +</div> 1.29 + 1.30 +<!-- Content. --> 1.31 +<div id="content"> 1.32 +<div class="content-right"></div> 1.33 + 1.34 + 1.35 +<h2><font color="#DF8F06">Receipts (Recettes des paquets)</font></h2> 1.36 +<p> 1.37 +Ce document décrit les possibilités offertes par les recettes utilisées par 1.38 +Tazwok pour compiler et générer des paquets pour SliTaz et tazpkg, via 1.39 +(<a href="wok-tools.html">le wok et les outils</a>). La recette d'un paquet 1.40 +est aussi utilisée par Tazpkg pour installer/désinstaller et donner des 1.41 +informations au sujet d'un paquet.tazpkg (package). Chaque recette commence 1.42 +par un commentaire en English : 1.43 +</p> 1.44 +<pre class="script"> 1.45 + # SliTaz package receipt. 1.46 +</pre> 1.47 + 1.48 +<h3>Variables de base</h3> 1.49 +<p> 1.50 +Les 5 premières variables devraient toujours être présentes et configurées. 1.51 +Elles configure respectivement le non du paquet ($PACKAGE), sa version, sa 1.52 +catégorie, une courte description et le nom du mainteneur. Exemple pour le 1.53 +paquet du gestionnaire de fichiers Clex : 1.54 +</p> 1.55 +<pre class="script"> 1.56 + PACKAGE="clex" 1.57 + VERSION="3.16" 1.58 + CATEGORY="base-apps" 1.59 + SHORT_DESC="Text mode file manager." 1.60 + MAINTAINER="pankso@slitaz.org" 1.61 +</pre> 1.62 + 1.63 +<h3>Variables optionnelles</h3> 1.64 +<p> 1.65 +Tazwok sait aussi utiliser divers variables optionnelles si elles existent, il 1.66 +peut par exemple, utiliser un autre nom pour le paquet source. Il y a aussi des 1.67 +variables qui sont utilisées par Tazpkg pour gérer les dépendances ou donner 1.68 +des informations sur le paquet. 1.69 +</p> 1.70 +<p> 1.71 +<a name="depends"></a> 1.72 +<code>$DEPENDS</code>: Specifie les dépendances, il peut y avoir plusieurs 1.73 +paquets séparés par un espace ou sur plusieurs lignes. Cette variable est 1.74 +principalement utilisée par Tazpkg lors de l'installation du paquet et Tazwok 1.75 +pour construire de gros paquets comme Xorg. Exemple pour Clex qui dépend du 1.76 +paquet ncurses : 1.77 +</p> 1.78 +<pre class="script"> 1.79 + DEPENDS="ncurses" 1.80 +</pre> 1.81 +<a name="build_depends"></a> 1.82 +<code>$BUILD_DEPENDS</code>: Specifie les dépendances de compilation, séparées 1.83 +par un espace ou sur plusieurs lignes. Cette variable est utilisée par Tazwok 1.84 +lors de la cuisson d'un paquet et Tazwok. Exemple : 1.85 +</p> 1.86 +<pre class="script"> 1.87 + BUILD_DEPENDS="ncurses-dev" 1.88 +</pre> 1.89 +<p> 1.90 +<a name="suggested"></a> 1.91 +<code>$SUGGESTED</code> : Liste les paquets pouvant être utiles sans pour 1.92 +autant être indispensables. Ils serviront à activer des fonctionnalités 1.93 +optionnelles. 1.94 +</p> 1.95 +<p> 1.96 +<a name="tarball"></a> 1.97 +<code>$TARBALL</code> : L'archive source avec sont extension (tar.gz, tgz ou 1.98 +tar.bz2). En générale, les variables $PACAKAGE et $VERSION sont utilisées et 1.99 +il suffit de modifier l'extension, cela permet de mettre à jour le paquet en 1.100 +ne modifiant que la variable de la version. Exemple générique (voir aussi 1.101 +la variable $SOURCE) : 1.102 +</p> 1.103 +<pre class="script"> 1.104 + TARBALL="$PACKAGE-$VERSION.tar.gz" 1.105 +</pre> 1.106 +<p> 1.107 +<a name="web_site"></a> 1.108 +<code>$WEB_SITE</code> : Le site web officiel du paquet. Il se peut que 1.109 +certaines bibliothèques n'aient pas de site Web, dans ce cas il n'y a pas 1.110 +besoin de spécifier d'URL. Tazwok et Tazpkg s'attendent a trouver l'URL 1.111 +complet avec le http : 1.112 +</p> 1.113 +<pre class="script"> 1.114 + WEB_SITE="http://www.clex.sk/" 1.115 +</pre> 1.116 +<p> 1.117 +<a name="wget_url"></a> 1.118 +<code>$WGET_URL</code> : L'url de téléchargement des l'archive source. En 1.119 +générale la variable $TARBALL devraient être utilisée pour faciliter la mise 1.120 +à jour du paquet en ne modifiant que $VERSION. Le fichier de configuration de 1.121 +Tazwok configure aussi, par défaut, 3 variable de miroir souvent utilisés. 1.122 +$GNU_MIRROR pour les miroir GNU, $SF_MIRROR pour SourceForge et XORG_MIRROR 1.123 +pour le mirroir du serveur graphique Xorg. Exemple pour Clex : 1.124 +</p> 1.125 +<pre class="script"> 1.126 + WGET_URL="http://www.clex.sk/download/$TARBALL" 1.127 +</pre> 1.128 +<p> 1.129 +<a name="config_files"></a> 1.130 +<code>$CONFIG_FILES</code> : Certains paquets fournissent des fichiers de 1.131 +configuration à adapter. La variable $CONFIG_FILES donne la liste de ces 1.132 +fichiers qui pourront être sauvegardés par la commande 'tazpkg repack-config'. 1.133 +Ces fichiers ne seront pas écrasés lors de l'installation du paquet s'ils 1.134 +existent déjà et le paquet pourra être récréé avec 'tazpkg repack' même s'ils 1.135 +ont été modifiés par la suite. Exemple pour Netatalk : 1.136 +</p> 1.137 +<pre class="script"> 1.138 + CONFIG_FILES="/etc/netatalk/AppleVolumes.* /etc/netatalk/*.conf" 1.139 +</pre> 1.140 +<p> 1.141 +<a name="wanted"></a> 1.142 +<code>$WANTED</code> : Il y a des paquets SliTaz qui sont dépendants de la 1.143 +compilation d'un paquet source. La recette de ces paquets ne nécessite pas de 1.144 +règles de compilation, une variable $WANTED peut être utilisée pour copier des 1.145 +fichiers depuis les sources du paquet voulu en utilisant la variable $src. 1.146 +</p> 1.147 +<p> 1.148 +<a name="source"></a> 1.149 +<code>$SOURCE</code> : Il se peut que le nom du paquet Tazpkg diffère du nom 1.150 +du paquet source. C'est le cas par exemple pour les paquets d'Xorg, le nom 1.151 +Tazpkg des bibliothèque X11 est 'xorg-libX11' et le nom du paquet source est 1.152 +libX11. Cette astuces permet aussi de continuer à utiliser les varibables 1.153 +$src et $_pkg lors la cuisson d'un paquet. A noter que dans le cas libX11, 1.154 +le nom de l'archive source devient $SOURCE-$VERSION.tar.gz. 1.155 +</p> 1.156 +<p> 1.157 +<a name="provide"></a> 1.158 +<code>$PROVIDE</code> : Certains paquets offrent la même fonctionalité. Par 1.159 +exemple, le serveur web de Slitaz fût dans un premier temps lighttpd. 1.160 +Maintenant apache est aussi disponible. Tous les paquets dépendants d'un 1.161 +serveur web font référence à lighttpd. La ligne <code>PROVIDE="lighttpd"</code> 1.162 +de la recette d'apache signale qu'il peut se substituer à lighttpd, c'est à 1.163 +dire qu'un paquet dépendant de lighttpd n'a pas à l'installer si apache est 1.164 +déjà installé.<br> 1.165 +Mais cette alternative peut avoir des conséquences sur le choix des paquets qui 1.166 +en dépendent. Le paquet php est prévu pour fonctionner uniquement avec lighttpd. 1.167 +C'est php-apache qu'il faut installer avec apache. La ligne 1.168 +<code>PROVIDE="php:apache"</code> dans la recette de php-apache indique qu'il 1.169 +faut substituer php-apache à php si apache est installé. 1.170 +Les paquets dépendants de php installeront alors php-apache ou php selon le 1.171 +serveur web installé.<br> 1.172 +Cette variable permet aussi d'avoir un paquet compilé avec différentes options. 1.173 +La ligne <code>PROVIDE="epdfview:cups"</code> du paquet epdfview-cups permet 1.174 +d'installer un package epdfview compilé avec le support de l'impression par 1.175 +cups. 1.176 +On peut aussi définir des paquets virtuels avec cette variable. Les lignes 1.177 +<code>PROVIDE="libgl"</code> du paquet <code>mesa</code> et 1.178 +<code>PROVIDE="libgl:nvidia"</code> du paquet <code>nvidia-glx</code> 1.179 +définissent le paquet virtuel <code>libgl</code> qui sera une version 1.180 +optimisée lorsque le paquet <code>nvidia</code> est installé. 1.181 +</p> 1.182 + 1.183 +<h3>Variables générées automatiquement par tazwok</h3> 1.184 +<p> 1.185 +Certaines variables ne sont connues qu'au moment la cuisson du paquet ou 1.186 +juste après la cuisson. Tazwok se charge de les ajouter au receipt 1.187 +automatiquement. 1.188 +</p> 1.189 +<p> 1.190 +<a name="packed_size"></a> 1.191 +<code>$PACKED_SIZE</code> : Taille du ficher tazpkg. 1.192 +</p> 1.193 +<p> 1.194 +<a name="unpacked_size"></a> 1.195 +<code>$UNPACKED_SIZE</code> : Taille utilisée par le paquet après son 1.196 +installation. 1.197 +</p> 1.198 +<p> 1.199 +<a name="extraversion"></a> 1.200 +<code>$EXTRAVERSION</code> : Certains packages ont besion de 2 numéros de 1.201 +version distincts. C'est le cas des modules ajoutés au noyau linux comme 1.202 +squashfs car le module produit dépend aussi de la version du noyau avec 1.203 +laquelle il a été compilé. Dans ce cas EXTRAVERSION contient la version du 1.204 +noyau et tazwok le détermine à partir du contenu de /lib/modules. 1.205 +</p> 1.206 + 1.207 +<h3>Variables utilisables dans les fonctions</h3> 1.208 +<p> 1.209 +Tazwok configure plusieurs variables permettant de faciliter la compilation et 1.210 +la construction de paquets Tazpkg. Ces variables sont gérées automatiquement 1.211 +par Tazwok en utilisant les informations contenues dans les recettes, elles 1.212 +peuvent être utilisées par la fonction compile_rules et genpkg_rules décrites 1.213 +toutes deux dans le chapitre : Fonctions. 1.214 +</p> 1.215 +<p> 1.216 +<a name="src"></a> 1.217 +<code>$src</code> : Définit le chemin vers le répertoire des sources désarchivée. 1.218 +</p> 1.219 +<p> 1.220 +<a name="pkg"></a> 1.221 +<code>$_pkg</code> : Définit le chemin vers les binaires compliés et installés 1.222 +via la commande 'make DESTDIR=$PWD/_pkg install'. Cette variable est utilisée 1.223 +pour copier les fichiers générés et créer des paquets tazpkg. 1.224 +</p> 1.225 +<p> 1.226 +<a name="fs"></a> 1.227 +<code>$fs</code> : Définit le chemin vers le pseudo système de fichier (fs) 1.228 +propre à chaque paquet. Le 'fs' d'un paquet correspond à la racine du système 1.229 +cible, un binaire tel que Clex sera par exemple dans $fs/usr/bin/clex, à noter 1.230 +qu'il faut créer les répertoires nécessaires via la fonction genpkg_rules() 1.231 +avant de copier des fichiers. 1.232 +</p> 1.233 +<p> 1.234 +<a name="configure_args"></a> 1.235 +<code>$CONFIGURE_ARGS</code> : Cette variables est définie dans le fichier de 1.236 +configuration de Tazwok (tazwok.conf), elle permet de spécifier des 1.237 +arguments d'optimisation générique lors de la configuration d'un paquet. 1.238 +Par défaut l'architecture est i486. 1.239 +</p> 1.240 + 1.241 +<h3>Fonctions</h3> 1.242 +<p> 1.243 +Une recette peut contenir 4 fonctions. Tazwok sait traiter les fonctions 1.244 +contenant les règles de compliation (compile_rules) et les règles servant à 1.245 +générer un paquet Tazpkg (genpkg_rules). Ces fonctions peuvent contenir toutes 1.246 +sortes de commandes GNU/Linux standards tels que sed ou patch et les variables 1.247 +configurées automatiquements. A noter que ces deux fonctions utilisent les 1.248 +commandes du Cookbook de SliTaz : http://www.slitaz.org/doc/cookbook/ 1.249 +</p> 1.250 +<a name="compile_rules"></a> 1.251 +<h4>compile_rules()</h4> 1.252 +<p> 1.253 +Pour compiler un paquet vous pouvez utiliser la variable $src pour vous 1.254 +déplacer (cd) dans le répertoire des sources et utiliser $CONFIGURE_ARGS 1.255 +pour inclure les arguments depuis le fichiers de configuration de Tazwok. 1.256 +Pour construire le paquet il suffit généralement de lancer 'make' sans 1.257 +arguments et pour installer le paquet dans un répertoire _pkg/ il faut 1.258 +utiliser la commande 'make DESTDIR=$PWD/_pkg install'. Exemple générique : 1.259 +</p> 1.260 +<pre class="script"> 1.261 +# Rules to configure and make the package. 1.262 +compile_rules() 1.263 +{ 1.264 + cd $src 1.265 + ./configure --prefix=/usr --infodir=/usr/share/info \ 1.266 + --mandir=/usr/share/man $CONFIGURE_ARGS 1.267 + make 1.268 + make DESTDIR=$PWD/_pkg install 1.269 +} 1.270 +</pre> 1.271 +<a name="genpkg_rules"></a> 1.272 +<h4>genpkg_rules()</h4> 1.273 +<p> 1.274 +Pour générer un paquet Tazpkg il faut mettre les commandes à lancer dans la 1.275 +fonction <code>genpkg_rules</code>. Dans cet exemple on créer le répertoire 1.276 +<code>usr/</code> dans le pseudo système de fichiers du paquet, on copie tout 1.277 +le(s) binaires(s) et on finit par un strip pour nettoyer les fichiers : 1.278 +</p> 1.279 +<pre class="script"> 1.280 +# Rules to gen a SliTaz package suitable for Tazpkg. 1.281 +genpkg_rules() 1.282 +{ 1.283 + mkdir -p $fs/usr 1.284 + cp -a $_pkg/usr/bin $fs/usr 1.285 + strip -s $fs/usr/bin/* 1.286 +} 1.287 +</pre> 1.288 +<a name="pre_install"></a> 1.289 +<h4>pre_install() et post_install()</h4> 1.290 +<p> 1.291 +Ces deux fonctions sont lancées par Tazpkg lors de l'installation du paquet. 1.292 +Il faut les définir avant de générer le paquet.tazpkg avec Tazwok. Si aucune 1.293 +commandes n'est nécessaires ces deux fonction n'ont aucune raison d'être et 1.294 +peuvent être supprimées. Exemple avec echo pour afficher un peu de texte 1.295 +(aucune fonction ne doit être vide) : 1.296 +</p> 1.297 +<pre class="script"> 1.298 +# Pre and post install commands for Tazpkg. 1.299 +pre_install() 1.300 +{ 1.301 + echo "Processing pre-install commands..." 1.302 +} 1.303 +post_install() 1.304 +{ 1.305 + echo "Processing post-install commands..." 1.306 +} 1.307 +</pre> 1.308 +<a name="clean_wok"></a> 1.309 +<h4>clean_wok()</h4> 1.310 +<p> 1.311 +Cette fonction est lancée par Tazwok avec la commande clean. 1.312 +Elle permet définir des commandes supplémentaires à exécuter lors nettoyage du wok. 1.313 +Elle est très utiles pour supprimer des fichiers ou répertoires qui ne sont pas pris en charge par Tazwok. 1.314 +</p> 1.315 +<pre class="script"> 1.316 +# clean commands for Tazwok. 1.317 +clean_wok() 1.318 +{ 1.319 + rm -rf $WOK/$PACKAGE/vim71 1.320 +} 1.321 +</pre> 1.322 +<!-- End of content --> 1.323 +</div> 1.324 + 1.325 +<!-- Footer. --> 1.326 +<div id="footer"> 1.327 + <div class="footer-right"></div> 1.328 + <a href="#top">Haut de la page</a> | 1.329 + <a href="index.html">Table des matières</a> 1.330 +</div> 1.331 + 1.332 +<div id="copy"> 1.333 + Copyright © 2007 <a href="http://www.slitaz.org/">SliTaz</a> - 1.334 + <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br /> 1.335 + Documentation publiées sous 1.336 + <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a> 1.337 + et codée en <a href="http://validator.w3.org/">xHTML 1.0 valide</a>. 1.338 +</div> 1.339 + 1.340 +</body> 1.341 +</html>