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 Handbook - Developpement</title>
|
pankso@4
|
6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
|
pankso@4
|
7 <meta name="description" content="developpement sur Slitaz Geany scripts dialog toolchain gcc make" />
|
pankso@4
|
8 <meta name="expires" content="never" />
|
pankso@319
|
9 <meta name="modified" content="2009-03-22 19:30: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="secure-shell.html">SHell sécurisé</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 Handbook</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 <h2><font color="#DF8F06">Développement</font></h2>
|
pankso@4
|
32
|
pankso@4
|
33 <ul>
|
pankso@4
|
34 <li><a href="#about">À propos du développement</a> - Sur SliTaz
|
pankso@4
|
35 et de SliTaz.</li>
|
pankso@4
|
36 <li><a href="#shell-scripts">Scripts SHell</a> - #!/bin/sh</li>
|
pankso@4
|
37 <li><a href="#dialog">Dialog</a> - Création d'interface graphique
|
pankso@4
|
38 basée sur la console.</li>
|
pankso@4
|
39 <li><a href="#geany">Geany</a> - IDE ou Environnement de Développement
|
pankso@4
|
40 Intégré.</li>
|
pankso@4
|
41 <li><a href="#perl">Perl ou Microperl</a> - Coder et utiliser des scripts
|
pankso@4
|
42 Perl et/ou CGI propulsés par microperl.</li>
|
pankso@4
|
43 <li><a href="#python">Python</a> - Le langage Python</li>
|
pankso@320
|
44 <li><a href="#ruby">Ruby</a> - Le langage Ruby</li>
|
pankso@4
|
45 <li><a href="#toolchain">Toolchain</a> - Bibliothèques, compilateur C
|
pankso@4
|
46 et outils associés.</li>
|
pankso@4
|
47 </ul>
|
pankso@4
|
48
|
pankso@4
|
49 <a name="about"></a>
|
pankso@4
|
50 <h3><font color="#6c0023">À propos du dévelopement</font></h3>
|
pankso@4
|
51 <p>
|
pankso@4
|
52 SliTaz fournit quelques outils de développement, conception de sites web,
|
pankso@4
|
53 édition avancée de scripts, et de code source avec l'IDE 'geany'. Création
|
pankso@4
|
54 d'interface graphique à vos scripts SHell avec 'dialog'.
|
pankso@4
|
55 </p>
|
pankso@4
|
56 <p>
|
pankso@4
|
57 Si vous cherchez des informations sur le développement de SliTaz,
|
pankso@4
|
58 le <a href="http://www.slitaz.org/doc/cookbook/">cookbook</a> (livre de
|
pankso@4
|
59 cuisine) vous décrira toutes les étapes de construction du système. Sur le
|
pankso@4
|
60 site web de SliTaz, la partie <a href="http://www.slitaz.org/devel/">devel</a>
|
pankso@4
|
61 vous donnera des informations générales au sujet des développeurs et des
|
pankso@4
|
62 possibilités de participation.
|
pankso@4
|
63 </p>
|
pankso@4
|
64 <a name="shell-scripts"></a>
|
pankso@4
|
65 <h3><font color="#6c0023">Scripts SHell</font></h3>
|
pankso@4
|
66 <p>
|
pankso@4
|
67 L'écriture de scripts SHell est la manière la plus simple pour commencer à
|
pankso@4
|
68 coder, ils permettent d'avoir rapidement un résultat et les seuls prérequis
|
pankso@4
|
69 sont de savoir ouvrir un terminal et utiliser un éditeur de texte tels
|
pankso@4
|
70 que Nano, LeafPad ou Geany. Les scripts SHell permettent de faire énomérement
|
pankso@4
|
71 de choses sur un système GNU/Linux, initialiser le système, faire des
|
pankso@4
|
72 sauvegardes, exécuter des tâches répétitives, afficher des informations sur
|
pankso@4
|
73 l'état du système, créer ou modifier des fichier, etc. Dans un script SHell,
|
pankso@4
|
74 vous pouvez aussi utiliser des variables, des fonctions ou encore des appels
|
pankso@4
|
75 pour inclure un fichier. A noter que vous pouvez nommer vos scripts comme bon
|
pankso@4
|
76 vous semble et que l'utilisation de l'extension <code>.sh</code> est largement
|
pankso@4
|
77 utilisée.
|
pankso@4
|
78 </p>
|
pankso@4
|
79 <h4>Créer un script SHell</h4>
|
pankso@4
|
80 <p>
|
pankso@4
|
81 Avant de commencer un nouveau script SHell, vous devez faire attention
|
pankso@4
|
82 à l'interprétateur utilisé. La plus part du temps les scripts SHell
|
pankso@4
|
83 utilisent <code>/bin/sh</code>, cela permet d'être plus portable.
|
pankso@4
|
84 Il y a aussi des scripts qui appelent <code>/bin/bash</code>, mais cela
|
pankso@4
|
85 implique que Bash soit installé sur le système. Pour qu'un script SHell
|
pankso@4
|
86 fonctionne il doit être exécutable par l'utilisateur courant, le changement
|
pankso@4
|
87 des permissions sur un fichier peut se faire en ligne de commande via
|
pankso@4
|
88 l'outils <code>chmod</code>. Pour créer un <code>script.sh</code> et le
|
pankso@4
|
89 rendre exécutable :
|
pankso@4
|
90 </p>
|
pankso@4
|
91 <pre>
|
pankso@4
|
92 $ touch script.sh
|
pankso@4
|
93 $ chmod +x script.sh
|
pankso@4
|
94 </pre>
|
pankso@4
|
95 <p>
|
pankso@4
|
96 Maintenant que vous avez un nouveau fichier exécutable, vous allez pouvoir
|
pankso@4
|
97 l'éditer. Vous pouvez continuer en restant dans le terminal et en utilisant
|
pankso@4
|
98 l'éditeur Nano (Ctrl+X pour enregistrer) ou en ouvrant l'IDE Geany sur le
|
pankso@4
|
99 fichier :
|
pankso@4
|
100 </p>
|
pankso@4
|
101 <pre>
|
pankso@4
|
102 $ nano script.sh
|
pankso@4
|
103 Ou :
|
pankso@4
|
104 $ geany script.sh &
|
pankso@4
|
105 </pre>
|
pankso@4
|
106 <p>
|
pankso@4
|
107 Voici un µscript qui contient une variable <code>NAME</code> et qui en
|
pankso@4
|
108 affiche la valeur avec la commande <code>echo</code> :
|
pankso@4
|
109 </p>
|
pankso@4
|
110 <pre class="script">
|
pankso@4
|
111 #!/bin/sh
|
pankso@4
|
112
|
pankso@4
|
113 NAME="kayam"
|
pankso@4
|
114
|
pankso@4
|
115 echo "$NAME est sympa."
|
pankso@4
|
116
|
pankso@4
|
117 </pre>
|
pankso@4
|
118 <p>
|
pankso@4
|
119 Une fois que vous avez créé/modifié votre <code>script.sh</code>, il suffit
|
pankso@4
|
120 d'enregistrer et d'exécuter le script pour voir le résultat :
|
pankso@4
|
121 </p>
|
pankso@4
|
122 <pre>
|
pankso@4
|
123 $ ./script.sh
|
pankso@4
|
124 </pre>
|
pankso@4
|
125 <p>
|
pankso@4
|
126 Voilà pour cette brève introduction au scripts SHell. Pour aller plus loin, le
|
pankso@4
|
127 web regorge d'informations à ce sujet et regarder ce qu'on fait les autres
|
pankso@4
|
128 peut aussi aider.
|
pankso@4
|
129 </p>
|
pankso@4
|
130 <a name="dialog"></a>
|
pankso@4
|
131 <h3><font color="#6c0023">Dialog</font></h3>
|
pankso@4
|
132 <p>
|
pankso@4
|
133 Dialog permet de créer des interfaces graphique basées sur la console, telles
|
pankso@4
|
134 que 'tazkmap'. Le fichier de configuration de dialog est /etc/dialogrc, et/ou
|
pankso@4
|
135 ~/.dialogrc pour chaque utilisateur. Voici un simple exemple d'utilisation de
|
pankso@4
|
136 dialog via une console ou un terminal :
|
pankso@4
|
137 </p>
|
pankso@4
|
138 <pre>
|
pankso@4
|
139 $ dialog --title "Hello $USER" \
|
pankso@4
|
140 --msgbox "Message propulsé par dialog." 5 54
|
pankso@4
|
141 </pre>
|
pankso@4
|
142 <p>
|
pankso@4
|
143 Vous trouverez pleins d'exemples de scripts dans le répertoire /sample des
|
pankso@4
|
144 sources de dialog, que vous pouvez télécharger depuis:
|
pankso@4
|
145 <a href="http://invisible-island.net/dialog/dialog.html"
|
pankso@4
|
146 >invisible-island.net/dialog/dialog.html</a>. Download des sources avec
|
pankso@4
|
147 'wget' et décompression :
|
pankso@4
|
148 </p>
|
pankso@4
|
149 <pre>
|
pankso@4
|
150 $ wget ftp://invisible-island.net/dialog/dialog.tar.gz
|
pankso@4
|
151 $ tar xzf dialog.tar.gz
|
pankso@4
|
152 </pre>
|
pankso@4
|
153 <a name="geany"></a>
|
pankso@4
|
154 <h3><font color="#6c0023">Geany IDE</font></h3>
|
pankso@4
|
155 <p>
|
pankso@4
|
156 Geany est un IDE ou Environnement de Dévelopement Intégré, il est simple,
|
pankso@4
|
157 léger, et rapide, proposant la coloration syntaxique, les onglets,
|
pankso@4
|
158 pliage/dépliage du code, la complétion automatique, de l'aide à l'écriture.
|
pankso@4
|
159 Vous avez une liste des symboles, fonctions, méthodes, variables très utiles,
|
pankso@4
|
160 avec une petite flèche de signalisation. Et encore, sélecteur de couleurs
|
pankso@4
|
161 intégré, fenêtre de messages, lancement du script courant via le bouton
|
pankso@4
|
162 Exécuter, etc. C'est avec lui que nous avons créé cette page,
|
pankso@4
|
163 la documentation, et presque tout le site web (un peu avec Nano aussi).
|
pankso@4
|
164 </p>
|
pankso@4
|
165 <h4>Lancer Geany</h4>
|
pankso@4
|
166 <p>
|
pankso@4
|
167 Vous trouverez Geany dans le menu de JWM --> Development --> Geany.
|
pankso@4
|
168 Un fois lancé pour la première fois, vous pouvez ajuster vos préférences
|
pankso@4
|
169 via --> Editer --> Préférences. Vous pouvez aussi lancer Geany via un
|
pankso@4
|
170 terminal X et la commande :
|
pankso@4
|
171 </p>
|
pankso@4
|
172 <pre>
|
pankso@4
|
173 $ geany &
|
pankso@4
|
174 </pre>
|
pankso@4
|
175 <p>
|
pankso@4
|
176 Note : Lors de la compilation des sources, le scripts <code>./configure</code>
|
pankso@4
|
177 propose l'option : <code>--enable-the-force</code>... Que l'on peut utiliser
|
pankso@4
|
178 si l'on penser avoir la force et être Luc Skywalker!
|
pankso@4
|
179 </p>
|
pankso@4
|
180 <a name="perl"></a>
|
pankso@4
|
181 <h3><font color="#6c0023">Perl ou Microperl - Coder/utiliser des scripts Perl</font></h3>
|
pankso@4
|
182 <p>
|
pankso@4
|
183 Sur SliTaz vous pouvez coder et utiliser le puissant langage de scripts Perl
|
pankso@4
|
184 via le binaire <code>perl</code> ou <code>microperl</code>. Microperl est une
|
pankso@4
|
185 version très allégée de Perl compilée à partir des sources officielles de Perl,
|
pankso@4
|
186 les scripts fonctionnant avec microperl sont complètement compatible avec la
|
pankso@4
|
187 version complète de Perl. C'est justement une des forces de Perl, il est portable
|
pankso@4
|
188 et fonctionne sur toutes les systèmes d'exploitations. Perl est un langage
|
pankso@4
|
189 interprété cela veut dire que le code n'a pas besoin d'être compilé et qu'il
|
pankso@4
|
190 peut être utilisé directement. A noter que sur SliTaz, <code>perl</code>
|
pankso@4
|
191 et/ou <code>microperl</code> se sont pas installé par défaut sur le LiveCD, vous
|
pankso@4
|
192 pouvez soit reconstruire votre propore ISO en incluant Perl ou installer via
|
pankso@4
|
193 le gestionnaire de paquets. A noter que le paquet Microperl fait mois d'1 Mb
|
pankso@4
|
194 et ne fournit aucun modules, juste le minimum :
|
pankso@4
|
195 </p>
|
pankso@4
|
196 <pre>
|
pankso@4
|
197 # tazpkg install perl
|
pankso@4
|
198 Ou :
|
pankso@4
|
199 # tazpkg install microperl
|
pankso@4
|
200 </pre>
|
pankso@4
|
201
|
pankso@4
|
202 <h4>Hello world!</h4>
|
pankso@4
|
203 <p>
|
pankso@4
|
204 Le but de ce µscript est d'afficher <em>Hello World</em>. Vous pouvez
|
pankso@4
|
205 commencer par créer le fichier et le rendre exécutable depuis la ligne de
|
pankso@4
|
206 commandes et l'éditer ensuite graphiquement avec l'IDE Geany. A noter que nous
|
pankso@4
|
207 nommons le scripts <code>hello.pl</code> mais que vous pouvez nommer un
|
pankso@4
|
208 script Perl comme bon vous semble, avec ou sans l'extension <code>.pl</code> :
|
pankso@4
|
209 </p>
|
pankso@4
|
210 <pre>
|
pankso@4
|
211 $ touch hello.pl
|
pankso@4
|
212 $ chmod +x hello.pl
|
pankso@4
|
213 $ geany hello.pl &
|
pankso@4
|
214 </pre>
|
pankso@4
|
215 <p>
|
pankso@4
|
216 La première ligne d'un scripts Perl commence par définir le chemin vers
|
pankso@4
|
217 l'interprétateur Perl, généralement <code>/usr/bin/perl</code> et pour
|
pankso@4
|
218 afficher du texte il suffit d'utiliser la commande <code>print</code>.
|
pankso@4
|
219 Code à copier/coller. A noter que le langage Perl est sensible à la casse et
|
pankso@4
|
220 qu'une instruction devrait toujours se terminer par un point-virgule :
|
pankso@4
|
221 </p>
|
pankso@4
|
222 <pre class="script">
|
pankso@4
|
223 #!/usr/bin/perl
|
pankso@4
|
224 #
|
pankso@4
|
225
|
pankso@4
|
226 print "Hello World!\n";
|
pankso@4
|
227
|
pankso@4
|
228 </pre>
|
pankso@4
|
229 <p>
|
pankso@4
|
230 Pour exécuter et tester le script :
|
pankso@4
|
231 </p>
|
pankso@4
|
232 <pre>
|
pankso@4
|
233 $ ./hello.pl
|
pankso@4
|
234 </pre>
|
pankso@4
|
235
|
pankso@4
|
236 <h4>Scripts CGI et Perl</h4>
|
pankso@4
|
237 <p>
|
pankso@4
|
238 Les scripts CGI ont pour but d'afficher des pages web générées dynamiquement.
|
pankso@4
|
239 Le langage Perl assoicié au serveur web LightTPD vous permet d'utiliser
|
pankso@4
|
240 des scripts CGI via votre espace public ou via des hôtes virtuels. Perl est
|
pankso@4
|
241 tout à fait adapté au web 2.0 et permet de générer rapidement des pages xHTML.
|
pankso@4
|
242 Sur Slitaz, vous devez avoir installé Perl ou Microperl et
|
pankso@4
|
243 <a href="web-server.html#cgi-perl">configuré le serveur Web LightTPD</a> avant
|
pankso@4
|
244 de pouvoir utiliser des scripts CGI codé en Perl. A noter que par défaut vous
|
pankso@4
|
245 pouvez utiliser des scripts SHell (.sh) et les placer dans /cgi-bin/).
|
pankso@4
|
246 </p>
|
pankso@4
|
247 <p>
|
pankso@4
|
248 Une fois le server bien configuré, vous pouvez directement placer des scripts
|
pankso@4
|
249 CGI dans votre répertoire <code>$HOME/Public/cgi-bin</code> en utilisant
|
pankso@4
|
250 l'extension <code>.pl</code> ou <code>.cgi</code> et les visualiser en local
|
pankso@4
|
251 ou à distance. Exemple de script CGI utilisant Perl :
|
pankso@4
|
252 </p>
|
pankso@4
|
253 <pre class="script">
|
pankso@4
|
254 #!/usr/bin/perl
|
pankso@4
|
255 #
|
pankso@4
|
256 print "content-type : text/html\n\n";
|
pankso@4
|
257
|
pankso@4
|
258 print "Hello World!\n";
|
pankso@4
|
259
|
pankso@4
|
260 </pre>
|
pankso@4
|
261
|
pankso@4
|
262 <a name="python"></a>
|
pankso@4
|
263 <h3><font color="#6c0023">Python</font></h3>
|
pankso@4
|
264 <p>
|
pankso@4
|
265 Le langage de programmation Python est disponible sous forme de paquet
|
pankso@4
|
266 facilement installable. Un fois Python installé vous pouvez créer vos propre
|
pankso@4
|
267 scripts/programmes et utiliser des applications CGI via le serveur Web LightTPD
|
pankso@4
|
268 en prenant soin de <a href="web-server.html#cgi-python">configurer le serveur</a>
|
pankso@4
|
269 correctement. A noter que le dépôt Mercurial officiel de SliTaz fourni une
|
pankso@4
|
270 interface Web CGI/Python, c'est une solution adaptée à la production, robuste
|
pankso@4
|
271 et fiable. Pour installer le paquet <code>python</code> avec Tazpkg :
|
pankso@4
|
272 </p>
|
pankso@4
|
273 <pre>
|
pankso@4
|
274 # tazpkg get-install python
|
pankso@4
|
275 </pre>
|
pankso@4
|
276
|
pankso@320
|
277 <a name="ruby"></a>
|
pankso@320
|
278 <h3><font color="#6c0023">Ruby</font></h3>
|
pankso@320
|
279 <p>
|
pankso@320
|
280 Ruby est un langage de programmation interprété et orienté objet. Ruby
|
pankso@320
|
281 est fourni avec irb, un interpréteur de commandes interactif pour tester
|
pankso@320
|
282 en profondeur le fonctionnement du langage. Il existe même une version
|
pankso@320
|
283 web d'irb pour tester Ruby dans un navigateur. Ruby fourni aussi un
|
pankso@320
|
284 gestionnaire de paquet nommé <code>gem</code> et un framework pour créer
|
pankso@320
|
285 des applications Web nommé <code>rails</code>. Pour installer Ruby sur
|
pankso@320
|
286 SliTaz:
|
pankso@320
|
287 </p>
|
pankso@320
|
288 <pre>
|
pankso@320
|
289 $ tazpkg get-install ruby
|
pankso@320
|
290 </pre>
|
pankso@320
|
291 <p>
|
pankso@320
|
292 Le site oficell fourni toute la documentation utile à l'apprentissage du
|
pankso@320
|
293 langage facilement et efficacement:
|
pankso@320
|
294 <a href="http://www.ruby-lang.org/">www.ruby-lang.org</a>
|
pankso@320
|
295 </p>
|
pankso@320
|
296
|
pankso@4
|
297 <a name="toolchain"></a>
|
pankso@4
|
298 <h3><font color="#6c0023">Toolchain - Bibliothèques, compilateur C et outils associés</font></h3>
|
pankso@4
|
299 <p>
|
pankso@4
|
300 Pour compiler des logiciels depuis les sources ou son propre code, vous avez
|
pankso@4
|
301 au minimum, besoin de la chaîne d'outils de base (<em>toolchain</em>),
|
pankso@4
|
302 composée des outils Binutils, de la bibliothèque Glibc , du compilateur
|
pankso@4
|
303 GCC, des <em>headers</em> du noyau et de l'utilitaire Make. Cette chaîne
|
pankso@4
|
304 d'outils peut être installée via le gestionnaire de paquets Tazpkg et une
|
pankso@4
|
305 seule commande. A noter que cette <em>toolchain</em> est utilisée par les
|
pankso@4
|
306 développeurs de SliTaz pour compiler le système entier depuis les sources.
|
pankso@4
|
307 Pour installer les paquets via l'installation d'un meta paquet créant les
|
pankso@4
|
308 dépendances qu'il faut :
|
pankso@4
|
309 </p>
|
pankso@4
|
310 <pre>
|
pankso@4
|
311 # tazpkg get-install slitaz-toolchain
|
pankso@4
|
312 </pre>
|
pankso@4
|
313 <p>
|
pankso@4
|
314 L'installation de la toolchain permet de compiler beaucoup d'applications
|
pankso@4
|
315 de base et en mode texte. A noter que beaucoup de paquets compileront sans
|
pankso@4
|
316 problème en utilisant le SHell Ash de Busybox, mais d'autres paquets ne
|
pankso@4
|
317 compileront pas sans Bash. GNU bash est disponnible sous forme de paquet
|
pankso@4
|
318 ainsi que divers outils de développement de base tels que Flex, M4, Bison,
|
pankso@4
|
319 ou encore Pkg-config. Si vous cherchez pkg-config par exemple :
|
pankso@4
|
320 </p>
|
pankso@4
|
321 <pre>
|
pankso@4
|
322 $ tazpkg search pkg-config
|
pankso@4
|
323 </pre>
|
pankso@4
|
324 <p>
|
pankso@4
|
325 Si vous désirez compiler des applications utilsant les bibliothèques Ncurses,
|
pankso@4
|
326 vous devez installer le paquet <code>ncurses-dev</code> complet (par défaut
|
pankso@4
|
327 il n'y a que le paquet minimum installé). A noter que le paquet ncurses fournit
|
pankso@4
|
328 aussi divers petits programmes tels que <code>tic</code> ou <code>tack</code> :
|
pankso@4
|
329 </p>
|
pankso@4
|
330 <pre>
|
pankso@4
|
331 $ tazpkg search ncurses
|
pankso@4
|
332 </pre>
|
pankso@4
|
333
|
pankso@4
|
334 <!-- End of content -->
|
pankso@4
|
335 </div>
|
pankso@4
|
336
|
pankso@4
|
337 <!-- Footer. -->
|
pankso@4
|
338 <div id="footer">
|
pankso@4
|
339 <div class="footer-right"></div>
|
pankso@4
|
340 <a href="#top">Haut de la page</a> |
|
pankso@4
|
341 <a href="index.html">Table des matières</a>
|
pankso@4
|
342 </div>
|
pankso@4
|
343
|
pankso@4
|
344 <div id="copy">
|
pankso@313
|
345 Copyright © 2009 <a href="http://www.slitaz.org/">SliTaz</a> -
|
pankso@4
|
346 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
|
pankso@4
|
347 Documentation publiées sous
|
pankso@4
|
348 <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
|
pankso@4
|
349 et codée en <a href="http://validator.w3.org/">xHTML 1.0 valide</a>.
|
pankso@4
|
350 </div>
|
pankso@4
|
351
|
pankso@4
|
352 </body>
|
pankso@4
|
353 </html>
|