rev |
line source |
pankso@368
|
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
pankso@368
|
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
pankso@368
|
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
|
pankso@368
|
4 <head>
|
pankso@781
|
5 <title>SliTaz (fr) - Forge</title>
|
pankso@368
|
6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
|
pankso@368
|
7 <meta name="description" content="Développement de SliTaz GNU/Linux" />
|
pankso@368
|
8 <meta name="keywords" lang="fr" content="developpement slitaz developer GNU Linux" />
|
pankso@368
|
9 <meta name="robots" content="index, follow, all" />
|
pankso@781
|
10 <meta name="modified" content="2011-03-26 23:15:00" />
|
pankso@368
|
11 <meta name="author" content="Christophe Lincoln"/>
|
pankso@368
|
12 <link rel="shortcut icon" href="../../favicon.ico" />
|
pankso@368
|
13 <link rel="stylesheet" type="text/css" href="../../slitaz.css" />
|
pankso@368
|
14 </head>
|
pankso@781
|
15 <body>
|
pankso@368
|
16
|
pankso@368
|
17 <!-- Header -->
|
pankso@368
|
18 <div id="header">
|
pankso@781
|
19 <div id="logo"></div>
|
pankso@781
|
20 <div id="network">
|
pankso@781
|
21 <a href="http://www.slitaz.org/netmap.php">
|
pankso@781
|
22 <img src="../../images/network.png" alt="network.png" /></a>
|
pankso@781
|
23 <a href="http://scn.slitaz.org/">Community</a>
|
pankso@781
|
24 <a href="http://doc.slitaz.org/">Doc</a>
|
pankso@781
|
25 <a href="http://forum.slitaz.org/">Forum</a>
|
claudinei@819
|
26 <a href="http://bugs.slitaz.org">Bugs</a>
|
pankso@781
|
27 <a href="http://hg.slitaz.org/">Hg</a>
|
pankso@781
|
28 </div>
|
pankso@781
|
29 <h1><a href="http://www.slitaz.org/">SliTaz GNU/Linux</a></h1>
|
pankso@368
|
30 </div>
|
pankso@368
|
31
|
pankso@781
|
32 <!-- Block -->
|
pankso@781
|
33 <div id="block">
|
pankso@781
|
34 <!-- Navigation -->
|
pankso@781
|
35 <div id="block_nav">
|
pankso@781
|
36 <h4>Navigation</h4>
|
pankso@781
|
37 <div class="right_box">
|
pankso@781
|
38 <ul>
|
pankso@781
|
39 <li><a href="../mailing-list.html">Mailing List</a></li>
|
pankso@781
|
40 <li><a href="../devel/">Développement</a></li>
|
pankso@781
|
41 <li><a href="../packages/">Paquets</a></li>
|
pankso@781
|
42 <li><a href="../artwork/">Artwork</a></li>
|
pankso@781
|
43 <li><a href="../search.html">Recherche</a></li>
|
pankso@781
|
44 </ul>
|
pankso@781
|
45 </div>
|
pankso@781
|
46 <div class="left_box">
|
pankso@781
|
47 <ul>
|
pankso@783
|
48 <li><a href="../">Actualités</a></li>
|
pankso@781
|
49 <li><a href="../about/">A propos</a></li>
|
pankso@781
|
50 <li><a href="../get/">Téléchargement</a></li>
|
pankso@781
|
51 <li><a href="../asso/">Association</a></li>
|
pankso@781
|
52 <li><a href="../doc/">Documentation</a></li>
|
pankso@781
|
53 </ul>
|
pankso@781
|
54 </div>
|
pankso@781
|
55 </div>
|
pankso@781
|
56 <!-- Information/image -->
|
pankso@781
|
57 <div id="block_info">
|
pankso@781
|
58 <h4>Forge</h4>
|
pankso@781
|
59 <p>
|
pankso@781
|
60 Les outils et services utilisés pour forger Slitaz :-)
|
pankso@781
|
61 </p>
|
pankso@781
|
62 <p>
|
pankso@781
|
63 <img src="../../images/users.png" alt="users.png" />
|
pankso@781
|
64 <a href="http://scn.slitaz.org/">Rejoingez nous sur SCN</a>
|
pankso@781
|
65 et la <a href="../mailing-list.html">mailing list</a>
|
pankso@781
|
66 </p>
|
pankso@781
|
67 </div>
|
pankso@368
|
68 </div>
|
pankso@368
|
69
|
pankso@368
|
70 <!-- Content -->
|
pankso@368
|
71 <div id="content">
|
pankso@368
|
72
|
pankso@781
|
73 <h2>Gestion collaborative du développement</h2>
|
pankso@368
|
74
|
pankso@368
|
75 <ul>
|
pankso@781
|
76 <li><a href="#kiss">KISS et respect des standards.</a></li>
|
pankso@781
|
77 <li><a href="#tank">Build host & home.</a></li>
|
pankso@781
|
78 <li><a href="#repos">Dépôts Mercurial.</a></li>
|
pankso@781
|
79 <li><a href="#iconv">Implémentation d'iconv().</a></li>
|
pankso@781
|
80 <li><a href="#pkgs">Paquets tazpkg.</a></li>
|
pankso@781
|
81 <li><a href="#pkgs-naming">Nommage des paquets.</a></li>
|
pankso@781
|
82 <li><a href="#site">Gestion du site Web et des livres.</a></li>
|
pankso@781
|
83 <li><a href="#xhtml">xHTML coding style.</a></li>
|
pankso@368
|
84 </ul>
|
pankso@368
|
85
|
pankso@368
|
86 <p>
|
pankso@368
|
87 Le projet SliTaz dispose de divers moyens pour gérer le travail des
|
pankso@368
|
88 développeurs et collaborer. Un système de gestion de révision avec Mercurial
|
pankso@368
|
89 (Hg), des modules de synchronisation avec Rsync, de la documentation, une
|
pankso@368
|
90 <a href="../mailing-list.html">liste de discussion</a> et un canal IRC. Tous
|
pankso@368
|
91 les développeurs sont inscrits sur la liste, c'est le moyen de collaboration
|
pankso@368
|
92 principal et privilégié.
|
pankso@368
|
93 </p>
|
pankso@368
|
94
|
pankso@506
|
95 <a name="kiss"></a>
|
pankso@506
|
96 <h3>KISS et respect des standards</h3>
|
pankso@506
|
97 <p>
|
pankso@506
|
98 Rester simple, respecter au mieux les standards, réaliser un travail soigné,
|
pankso@506
|
99 rédiger de la documentation de haute qualité, fournir un système stable et
|
pankso@506
|
100 robuste et garder le <em>rootfs</em> du LiveCD standard assez léger pour que
|
pankso@506
|
101 SliTaz tourne sur des machines ayant au minimum 128 Mb de RAM. Possibilité
|
pankso@506
|
102 d'utiliser GTK+2, Dialog, Gtkdialog, des scripts SHell ou encore PHP pour
|
pankso@506
|
103 coder des outils propres à la distribution. L'idée est aussi de ne pas faire
|
pankso@506
|
104 de doublons et de penser mini...
|
pankso@506
|
105 </p>
|
pankso@506
|
106 <p>
|
pankso@506
|
107 SliTaz se veut un projet proche et à l'écoute des ses utilisateurs. Il y a
|
pankso@506
|
108 plusieurs développeurs actifs sur le <a href="http://forum.slitaz.org/">forum</a>
|
pankso@506
|
109 et sur la <a href="../mailing-list.html">liste de discussion</a>.
|
pankso@506
|
110 </p>
|
pankso@506
|
111
|
pankso@368
|
112 <a name="tank"></a>
|
pankso@368
|
113 <h3>Tank - Build host & home</h3>
|
pankso@368
|
114 <p>
|
pankso@368
|
115 Chaque contributeur peut avoir un compte sur le serveur principal du
|
pankso@368
|
116 projet, avec un accès sécurisé, de l'espace disque, un répertoire public
|
pankso@368
|
117 et tous les outils de développement. Les développeurs peuvent y compiler
|
pankso@368
|
118 leurs paquets et les mainteneurs du miroir s'occupent de la synchronisation.
|
pankso@368
|
119 Tank héberge aussi le site internet, le web boot et les dépôts Mercurial:
|
pankso@368
|
120 <a href="http://tank.slitaz.org/">tank.slitaz.org</a>
|
pankso@368
|
121 </p>
|
pankso@368
|
122 <p>
|
pankso@368
|
123 L'utilisation du build host est décrite dans le Cookbook:
|
pascal@844
|
124 <a href="http://doc.slitaz.org/en:cookbook:buildhost">SliTaz Build Host (tank)</a>.
|
pankso@368
|
125 </p>
|
pankso@368
|
126
|
pankso@368
|
127 <a name="repos"></a>
|
pankso@368
|
128 <h3>Dépôts Mercurial</h3>
|
pankso@368
|
129 <p>
|
pankso@368
|
130 Tous les sous-projets tels que Tazpkg, Tazwok ou Tazlito ont leurs propres
|
pankso@368
|
131 dépôts Hg sur le serveur du projet, tout comme le wok. Les développeurs ont
|
pankso@368
|
132 un compte et des droits en écriture afin de pouvoir envoyer leurs recettes,
|
pankso@368
|
133 mises à jour ou modifications. Il est bien sûr possible de demander la création
|
pankso@368
|
134 d'un nouveau dépôt pour collaborer sur un nouveau sous-projet lié à SliTaz.
|
pankso@368
|
135 A noter qu'il y a 2 domaines : <a href="http://hg.slitaz.org/">hg.slitaz.org</a>
|
taziden@507
|
136 est public et <code>repos.slitaz.org</code> nécessite une authentification, c'est-à-dire
|
pierre@452
|
137 que vous pouvez cloner hg.slitaz.org mais pas y pousser vos changements ou fichiers.
|
pankso@368
|
138 </p>
|
pankso@368
|
139 <h4>~/.hgrc</h4>
|
pankso@368
|
140 <p>
|
pankso@368
|
141 Mercurial utilise un fichier caché <code>~./hgrc</code> permettant de
|
pankso@368
|
142 spécifier son nom d'utilisateur. Il faut mettre votre nom et adresse mail pour
|
pankso@368
|
143 qu'on sache qui a modifié quoi. Et attention à ne pas être <em>root</em> pour
|
pankso@368
|
144 pousser vos modifications. Exemple :
|
pankso@368
|
145 </p>
|
pankso@368
|
146 <pre class="script">
|
pankso@368
|
147 [ui]
|
pankso@368
|
148 username = Prénom Nom <you@example.org>
|
pankso@368
|
149 </pre>
|
pankso@368
|
150 <h4>Cloner, modifier, commiter et pousser</h4>
|
pankso@368
|
151 <p>
|
pankso@368
|
152 Vous avez le choix de cloner anonymement via hg.slitaz.org ou directement avec
|
pankso@368
|
153 votre login et mot de passe. Pour cloner un dépôt tel que le wok :
|
pankso@368
|
154 </p>
|
pankso@368
|
155 <pre>
|
pankso@368
|
156 $ hg clone http://repos.slitaz.org/wok/
|
pankso@368
|
157 </pre>
|
pankso@368
|
158 <p>
|
pankso@368
|
159 Copier, créer, modifier des recettes ou des fichiers dans <code>stuff</code>.
|
pankso@368
|
160 Avant de pouvoir pousser vos modifs, il faut les additionner à votre dépôt
|
pankso@368
|
161 local et les commiter. A noter que la commande <code>status</code> permet de
|
pankso@368
|
162 savoir quels fichiers ont été modifiés :
|
pankso@368
|
163 </p>
|
pankso@368
|
164 <pre>
|
pankso@368
|
165 $ cd wok
|
pankso@368
|
166 $ hg status
|
pankso@368
|
167 $ hg add
|
pankso@368
|
168 $ hg commit
|
pankso@368
|
169 </pre>
|
pankso@368
|
170 <p>
|
pierre@452
|
171 La commande <code>commit</code> va ouvrir l'éditeur de texte Nano pour écrire le message
|
pierre@452
|
172 destiné aux logs (Ctrl + X pour enregistrer et quitter). Vous pouvez éviter
|
pankso@368
|
173 Nano en utilisant l'option : <code>-m "Message"</code>. And please,
|
pankso@368
|
174 messages in English if possible :
|
pankso@368
|
175 </p>
|
pankso@368
|
176 <pre>
|
pankso@368
|
177 $ hg commit -m "Message for Mercurial log"
|
pankso@368
|
178 </pre>
|
pankso@368
|
179 <p>
|
pankso@368
|
180 Une fois que tout est prêt, vous pouvez encore utiliser la commande
|
pankso@368
|
181 <code>log</code> pour voir ce qui va être affiché sur l'interface web. Pour
|
pankso@368
|
182 pousser vos changements c'est <code>push</code> :
|
pankso@368
|
183 </p>
|
pankso@368
|
184 <pre>
|
pankso@368
|
185 $ hg log
|
pankso@368
|
186 $ hg push
|
pankso@368
|
187 </pre>
|
pankso@368
|
188 <p>
|
pankso@368
|
189 Si vous avez cloné depuis hg.slitaz.org, il faut alors pousser en spécifiant
|
pankso@368
|
190 le bon URL :
|
pankso@368
|
191 </p>
|
pankso@368
|
192 <pre>
|
pankso@368
|
193 $ hg push http://repos.slitaz.org/wok/
|
pankso@368
|
194 </pre>
|
pankso@368
|
195 <h4>Mettre à jour un wok local</h4>
|
pankso@368
|
196 <p>
|
pankso@368
|
197 Pour mettre à jour votre wok local avec celui du serveur (<em>pull</em> pour
|
pankso@368
|
198 tirer les changements) :
|
pankso@368
|
199 </p>
|
pankso@368
|
200 <pre>
|
pankso@368
|
201 $ hg pull
|
pankso@368
|
202 $ hg update
|
pankso@368
|
203 </pre>
|
pierre@452
|
204 <h4>Commandes utiles</h4>
|
pankso@368
|
205 <p>
|
pankso@368
|
206 Des commandes hg qui peuvent servir.
|
pankso@368
|
207 </p>
|
pankso@368
|
208 <ul>
|
pierre@452
|
209 <li><code>hg help</code> : affiche la liste complète des commandes.</li>
|
pierre@452
|
210 <li><code>hg rollback</code> : annule la dernière action exécutée (commit,
|
pankso@368
|
211 pull, push).</li>
|
pierre@452
|
212 <li><code>hg log <paquet></code> : affiche les logs pour un paquet.</li>
|
pierre@452
|
213 <li><code>hg head</code> : affiche le dernier log.</li>
|
pankso@368
|
214 </ul>
|
pankso@368
|
215
|
pankso@506
|
216 <a name="iconv"></a>
|
pankso@506
|
217 <h3>Implémentation d'iconv()</h3>
|
pankso@506
|
218 <p>
|
pankso@506
|
219 SliTaz utilise iconv() fourni par la GNU glibc, même si certain paquets
|
pankso@506
|
220 proposent d'utiliser <code>libiconv</code> il faut utiliser la version de
|
pankso@506
|
221 la glibc (paquet <code>glibc-locale</code>). Il n'y a donc pas de paquet
|
pankso@506
|
222 libiconv (1,2 Mb) dans SliTaz.
|
pankso@506
|
223 </p>
|
pankso@506
|
224
|
pankso@368
|
225 <a name="pkgs"></a>
|
pankso@368
|
226 <h3>Paquets tazpkg</h3>
|
pankso@368
|
227 <p>
|
pankso@368
|
228 Les paquets tazpkg de SliTaz sont créés automatiquement via Tazwok et les
|
pascal@844
|
229 recettes contenues dans le wok, <a href="http://doc.slitaz.org/fr:cookbook:start">le Cookbook</a>
|
pascal@844
|
230 décrit <a href="http://doc.slitaz.org/fr:cookbook:wok">l'utilisation des outils SliTaz</a>
|
pascal@844
|
231 et le format des <a href="http://doc.slitaz.org/fr:cookbook:receipt">recettes</a>,
|
pankso@368
|
232 c'est sans doute par un petit peu de lecture qu'il faut commencer.
|
pankso@368
|
233 </p>
|
pankso@368
|
234 <p>
|
pierre@452
|
235 Concernant le choix des paquets, l'idée est de proposer un paquet par tâche ou
|
pankso@368
|
236 fonctionnalité, c'est à dire pas (trop) de doublons et de trouver
|
pankso@368
|
237 l'application la plus légère dans son domaine. A noter que les paquets actuels
|
pankso@368
|
238 ne sont pas figés, si vous trouvez une alternative à un paquet existant, étant
|
pankso@368
|
239 plus légère, ayant plus de fonctionnalités ou étant plus <em>sexy</em> pour
|
pankso@368
|
240 quelques Ko supplémentaires, vous pouvez la proposer sur la liste. Une
|
pierre@452
|
241 attention particulière est portée aux paquets destinés au LiveCD : strip,
|
pankso@368
|
242 suppression de tout ce qui est inutile, dépendances et options de compilation.
|
pankso@368
|
243 En général, les paquets candidats pour le corps du LiveCD sont discutés sur
|
pankso@368
|
244 la liste.
|
pankso@368
|
245 </p>
|
pankso@368
|
246 <p>
|
pankso@368
|
247 Avant de commencer à compiler et créer des paquets pour SliTaz, assurez-vous
|
pierre@452
|
248 qu'une recette n'existe pas dans le wok undigest, disponible sur le miroir
|
pankso@368
|
249 principal de SliTaz. N'oubliez pas non plus que les membres de la liste sont
|
pascal@844
|
250 là pour vous aider et que pour bien commencer, <a href="http://doc.slitaz.org/fr:cookbook:wok"
|
pierre@452
|
251 >la documentation du wok et des outils</a> existe.
|
pankso@368
|
252 </p>
|
pankso@368
|
253
|
pankso@506
|
254 <a name="pkgs-naming"></a>
|
pankso@506
|
255 <h3>Nommage des paquets</h3>
|
pankso@506
|
256 <p>
|
pankso@506
|
257 Dans la majorité des cas le nom du paquet est celui des sources exception
|
pankso@506
|
258 faite des modules Python, Perl, PHP, Ruby, Lua. Par example le paquet Kid
|
pankso@506
|
259 fournissant un système de template XML et écrit en Python se nomme:
|
pankso@506
|
260 <code>python-kid</code>.
|
pankso@506
|
261 </p>
|
pankso@506
|
262
|
pankso@368
|
263 <a name="site"></a>
|
pankso@368
|
264 <h3>Gestion du site Web et des livres</h3>
|
pankso@368
|
265 <p>
|
pierre@452
|
266 La gestion du site et des livres (Handbook et Cookbook) est faite via un
|
pierre@452
|
267 dépôt Mercurial, ce qui nous permet de traviller à plusieurs. Il faut
|
pankso@396
|
268 juste installer <code>mercurail</code> sur SliTaz et connaître les commandes
|
pankso@396
|
269 de base. Une fois le dépôt cloné vous avez une copie complète du site en
|
pierre@452
|
270 local pour commencer à travailler. Pour cloner le site web :
|
pankso@368
|
271 </p>
|
pankso@368
|
272 <pre>
|
pankso@368
|
273 $ hg clone http://hg.slitaz.org/website
|
pierre@452
|
274 </pre>
|
pierre@452
|
275 <p>
|
pierre@452
|
276 Si vous avez les droits :
|
pierre@452
|
277 </p>
|
pierre@452
|
278 <pre>
|
pankso@368
|
279 $ hg clone http://repos.slitaz.org/website
|
pankso@368
|
280 </pre>
|
pankso@396
|
281 <p>
|
pankso@396
|
282 Sur SliTaz vous pouvez installer le serveur web Lighttpd et mettre le
|
pankso@396
|
283 site dans votre répertoire ~/Public, cela permet de naviguer dans votre
|
pankso@396
|
284 copie locale via localhost/~user.
|
pankso@396
|
285 </p>
|
pankso@368
|
286
|
pankso@506
|
287 <a name="xhtml"></a>
|
pankso@506
|
288 <h3>xHTML coding style</h3>
|
pankso@506
|
289 <p>
|
pankso@506
|
290 Les pages du site et des différents <em>books</em> sont codés en xHTML 1.0
|
pankso@506
|
291 Transitional, les couleurs pour le <code>body</code> et les titres sont
|
pankso@506
|
292 directement mis dans la page, cela permet d'avoir une présentation plus soignée
|
pankso@506
|
293 pour Links. Le titre de niveau 1 est utilisé une seule fois en haut de page,
|
pankso@506
|
294 le titre 2 correspond au titre du document et les titres de niveau 3 et 4 sont
|
pankso@506
|
295 ensuite utilisés pour les sous-titres. Si il y a lieu d'avoir une liste à puces
|
pankso@506
|
296 avec des ancres, elle se met en haut juste après le titre de niveau 2. Les
|
pankso@506
|
297 paragraphes sont contenus dans les balises <code><p></p></code>.
|
pankso@506
|
298 Pour indenter, nous utilisons des tabulations, elles ont une raison d'être
|
pankso@506
|
299 sémantique et prennent moins de place en terme d'octets. Pour mettre
|
pankso@506
|
300 du code tel que le nom d'une commande dans un paragraphe, la balise
|
pankso@506
|
301 <code><code></code> est recommandée. Pour afficher une ou des commandes
|
pankso@506
|
302 à lancer dans un terminal, les pages du site utilisent la balise
|
pankso@506
|
303 <code><pre></code> permettant d'afficher du texte préformaté. Exemple :
|
pankso@506
|
304 </p>
|
pankso@506
|
305 <pre>
|
pankso@506
|
306 $ command
|
pankso@506
|
307 </pre>
|
pankso@506
|
308 <p>
|
pankso@506
|
309 Pour afficher du texte à copier/coller tels que des scripts, des bouts de
|
pankso@506
|
310 code, des exemples de fichiers de configuration, etc, c'est aussi la balise
|
pankso@506
|
311 <code><pre></code> mais avec une classe CSS nommée "script". Exemple:
|
pankso@506
|
312 </p>
|
pankso@506
|
313 <pre class="script">
|
pankso@506
|
314 <pre class="script">
|
pankso@506
|
315
|
pankso@506
|
316 code...
|
pankso@506
|
317
|
pankso@506
|
318 </pre>
|
pankso@506
|
319 </pre>
|
pankso@506
|
320 <p>
|
pankso@506
|
321 Les mots en <em>English</em> se mettent dans la balise <code><em></code>
|
pankso@506
|
322 et les liens internes sont relatifs. Penser à vérifier la validité du code via
|
pankso@506
|
323 le <em>validator</em> en ligne du W3C.
|
pankso@506
|
324 </p>
|
pankso@506
|
325
|
pankso@368
|
326 <h3>Diff et patch</h3>
|
pankso@368
|
327 <p>
|
pankso@368
|
328 Les utilitaires <code>diff</code> et <code>patch</code> sont des outils en
|
pankso@368
|
329 ligne de commande permettant de créer et d'appliquer un fichier contenant
|
pankso@368
|
330 les différences entre deux fichiers. Cette technique est souvent utilisée
|
pankso@368
|
331 pour collaborer et permet d'extraire clairement les modifications apportées
|
pankso@368
|
332 au fichier original. Pour créer un fichier <code>diff</code> lisible par
|
pankso@368
|
333 les humains dans un simple éditeur de texte, il faut utiliser l'option
|
pankso@368
|
334 <code>-u</code> en argument :
|
pankso@368
|
335 </p>
|
pankso@368
|
336 <pre>
|
pankso@368
|
337 $ diff -u file.orig file.new > file.diff
|
pankso@368
|
338 </pre>
|
pankso@368
|
339 <p>
|
pankso@368
|
340 Pour appliquer un patch :
|
pankso@368
|
341 </p>
|
pankso@368
|
342 <pre>
|
pankso@368
|
343 $ patch file.orig file.diff
|
pankso@368
|
344 </pre>
|
pankso@368
|
345
|
pankso@781
|
346 <!-- End of content -->
|
pankso@368
|
347 </div>
|
pankso@368
|
348
|
pankso@781
|
349 <!-- Footer -->
|
pankso@781
|
350 <div id="footer">
|
pankso@781
|
351 Copyright © <span class="year"></span>
|
pankso@781
|
352 <a href="http://www.slitaz.org/">SliTaz</a> - Network:
|
pankso@781
|
353 <a href="http://scn.slitaz.org/">Community</a>
|
pankso@781
|
354 <a href="http://doc.slitaz.org/">Doc</a>
|
pankso@781
|
355 <a href="http://forum.slitaz.org/">Forum</a>
|
pankso@781
|
356 <a href="http://pkgs.slitaz.org/">Packages</a>
|
claudinei@819
|
357 <a href="http://bugs.slitaz.org">Bugs</a>
|
pankso@781
|
358 <a href="http://hg.slitaz.org/">Hg</a>
|
pankso@781
|
359 <p>
|
pankso@781
|
360 SliTaz @
|
pankso@781
|
361 <a href="http://twitter.com/slitaz">Twitter</a>
|
pankso@781
|
362 <a href="http://www.facebook.com/slitaz">Facebook</a>
|
pankso@781
|
363 <a href="http://distrowatch.com/slitaz">Distrowatch</a>
|
pankso@781
|
364 <a href="http://en.wikipedia.org/wiki/SliTaz">Wikipedia</a>
|
pankso@781
|
365 <a href="http://flattr.com/profile/slitaz">Flattr</a>
|
pankso@781
|
366 </p>
|
pankso@368
|
367 </div>
|
pankso@368
|
368
|
pankso@368
|
369 </body>
|
pankso@368
|
370 </html>
|
pankso@368
|
371
|
pankso@368
|
372
|