1 <!DOCTYPE debiandoc PUBLIC "-//DebianDoc//DTD DebianDoc//EN" [
2 <!-- include version information so we don't have to hard code it
3 within the document -->
4 <!entity % versiondata SYSTEM "version.ent"> %versiondata;
5 <!-- common, language independant entities -->
6 <!entity % commondata SYSTEM "common.ent" > %commondata;
8 <!-- CVS revision of this document -->
9 <!entity cvs-rev "$Revision: 1.37 $">
10 <!-- if you are translating this document, please notate the CVS
11 revision of the developers reference here -->
13 <!entity cvs-en-rev "1.197">
17 <!entity FIXME "<em>FIXME:</em> ">
23 <title>Référence du développeur Debian
25 <author>L'équipe de la Référence du développeur &email-devel-ref;
26 <author>Adam Di Carlo, éditeur
27 <author>Raphaël Hertzog
28 <author>Christian Schwarz
31 <translator>version française par Antoine Hulin</translator>
32 <translator>et Frédéric Bothamy (traducteur actuel)</translator>
33 <translator>et les membres de la liste <email>debian-l10n-french@lists.debian.org</email></translator>
34 <version>Version &version;, &date-fr; (version française 20030502).</version>
37 <copyrightsummary>Copyright © 1998—2003 Adam Di Carlo</copyrightsummary>
38 <copyrightsummary>Copyright © 2002 Raphaël Hertzog</copyrightsummary>
39 <copyrightsummary>Copyright © 1997, 1998 Christian Schwarz.</copyrightsummary>
41 Ce manuel est un logiciel libre ; il peut être redistribué et/ou modifié
42 selon les termes de la licence publique générale du projet GNU (GNU GPL), telle
43 que publiée par la « Free Software Foundation » (version 2 ou toute
47 Il est distribué dans l'espoir qu'il sera utile, mais <em>sans aucune
48 garantie</em>, sans même la garantie implicite d'une possible valeur marchande
49 ou d'une adéquation à un besoin particulier. Consultez la licence publique
50 générale du projet GNU pour plus de détails.
52 <p>Une copie de la licence publique générale du projet GNU est disponible dans
53 le fichier &file-GPL; de la distribution &debian-formal; ou sur la toile :
54 <url id="&url-gpl" name="la licence publique générale du projet GNU">. Vous
55 pouvez également l'obtenir en écrivant à la &fsf-addr;.
59 <chapt id="scope">Portée de ce document
62 Le but de ce document est de donner une vue d'ensemble des procédures à suivre
63 et des ressources mises à la disposition des développeurs Debian.
65 <!-- FIXME: rewrites -->
67 Les procédures décrites ci-après expliquent comment devenir responsable Debian
68 (<ref id="new-maintainer">), comment créer de nouveaux paquets (<ref
69 id="newpackage">) et comment les installer dans l'archive (<ref id="upload">),
70 comment gérer les rapports de bogues (<ref id="bug-handling">), comment
71 déplacer, effacer ou abandonner un paquet (<ref id="archive-manip">), comment
72 faire le portage d'un paquet (<ref id="porting">), quand et comment faire la
73 mise à jour du paquet d'un autre responsable (<ref id="nmu">).
76 Les ressources présentées dans ce manuel incluent les listes de diffusion (<ref
77 id="mailing-lists">) et les serveurs (<ref id="server-machines">), une
78 présentation de la structure de l'archive Debian (<ref id="archive">), des
79 explications sur les serveurs qui acceptent les mises à jour de paquets (<ref
80 id="upload-ftp-master">) et une présentation des outils qui peuvent aider un
81 responsable à améliorer la qualité de ses paquets (<ref id="tools">).
84 Ce manuel de référence ne présente pas les aspects techniques liés aux paquets
85 Debian, ni comment les créer. Il ne décrit pas non plus les règles que doivent
86 respecter les paquets Debian. Cette information est disponible dans la <url
87 id="&url-debian-policy;" name="charte Debian">.
90 De plus ce document <em>n'est pas l'expression d'une politique officielle</em>.
91 Il contient de la documentation sur le système Debian et des conseils pratiques
92 largement suivis. C'est une sorte de guide pratique.
94 <sect>Introduction à la version française
99 Bien que ce document soit en français, l'activité de responsable Debian implique
100 une maîtrise de la langue anglaise. Le projet Debian est un projet international
101 auquel participent des japonais, néo-zélandais, américains, allemands,
102 finlandais, français, espagnols, danois, etc.
105 En conséquence, la langue utilisée dans toutes les listes de diffusion destinées
106 aux développeurs (à l'exception de la liste
107 <email>debian-devel-french@&lists-host;</email>) est l'anglais et les rapports
108 de bogue doivent être rédigés en anglais. En fait, sauf exception rare, tout
109 dialogue avec les autres responsables Debian se fera en anglais quel que soit le
116 Cette section liste les termes techniques qui ont un sens spécifique dans le
117 projet Debian. Pour chacune de ces expressions, vous trouverez la traduction
118 française utilisée dans ce manuel, une définition et une référence à la section
119 du manuel qui traite de ce sujet.
123 <item><em>Upload</em> : mise à jour, téléchargement (parfois
124 livraison). Opération qui consiste à télécharger un nouveau paquet ou
125 une nouvelle version de paquet dans l'archive Debian (<ref
128 <item><em>Non-maintainer upload (NMU)</em> : mise à jour
129 indépendante. Téléchargement d'une nouvelle version de paquet dans
130 l'archive Debian par une personne qui n'est pas officiellement
131 responsable de ce paquet (<ref id="nmu">).
133 <item><em>Source NMU</em> : mise à jour indépendante source. Il
134 s'agit d'une mise à jour indépendante pour un paquet source (<ref
137 <item><em>Binary NMU</em> : mise à jour indépendante binaire. Mise
138 à jour indépendante pour un paquet binaire (<ref id="nmu-terms">).
140 <item><em>Bug Tracking System (BTS)</em> : système de suivi des
141 bogues. Il s'agit du système utilisé par le projet Debian pour suivre
142 les bogues et leur correction (<ref id="bug-handling">).
144 <item><em>Bug submitter</em> : rapporteur du bogue. Personne qui
145 envoie un rapport de bogue au système de suivi des bogues (<ref
148 <item><em>Release critical bug</em> : bogue empêchant l'intégration
149 du paquet dans la distribution. Bogues de gravité <em>critique</em>,
150 <em>grave</em> et <em>sérieuse</em>. Ces bogues ne doivent pas
151 apparaître dans une distribution <em>stable</em>. Ils doivent être
152 corrigés ou bien les paquets en cause doivent être supprimés (<ref
155 <item><em>Package Tracking System (PTS)</em> : système de suivi des
156 paquets. Il s'agit du système utilisé par le projet Debian pour suivre
157 les paquets sources des différentes distributions (<ref
158 id="pkg-tracking-system">).
160 <item><em>Unstable</em> : nom de la distribution en cours de
161 développement. Cette distribution contient les paquets envoyés par les
162 développeurs. Ceux-ci étant humains, elle est parfois cassée (<ref
165 <item><em>Testing</em> : nom de la distribution en test. Cette
166 distribution reçoit les paquets des développeurs qui ont passé une
167 période de deux semaines dans <em>unstable</em> et pour lesquels aucun
168 bogue remettant en cause la distribution (cf. <em>Release critical
169 bug</em>) n'a été découvert. Cette distribution n'a pas été testée en
170 profondeur. Elle est cependant censée être plus stable
171 qu'<em>unstable</em> (<ref id="sec-dists">).
173 <item><em>Stable</em> : Nom de la distribution stable. Cette
174 distribution a été testée, validée et diffusée (<ref id="sec-dists">).
176 <item><em>Debian maintainer</em> : responsable Debian, développeur
177 Debian (parfois mainteneur). Personne qui fait officiellement partie du
178 projet Debian. Elle a accès aux serveurs Debian et participe au
179 développement — au sens large — de la distribution (<ref
180 id="developer-duties">). La plupart des responsables font de la mise en
181 paquet, mais il existe d'autres activités telles que la documentation,
182 la gestion du site web, la création des cédéroms, l'administration des
185 <item><em>Upstream version</em> : version amont. Il s'agit du
186 logiciel tel qu'il est fourni par le responsable amont — par
187 opposition à la version fournie par la distribution Debian. (Voir <ref
188 id="upstream-coordination">.)
190 <item><em>Upstream maintainer</em> : responsable amont ou
191 développeur amont. Personne responsable du développement ou de la
192 maintenance d'un logiciel. En général, le responsable amont n'a rien à
193 voir avec le projet Debian (<ref id="upstream-coordination">).
195 <item><em>Debian keyring</em> : porte-clés Debian. Le porte-clés
196 Debian contient les clés publiques de tous les responsables Debian (<ref
199 <item><em>Work-needing and prospective packages (WNPP)</em> :
200 paquets en souffrance et paquets souhaités. La liste des paquets en
201 souffrance indique les paquets qui n'ont plus de responsable. La liste
202 des paquets souhaités indique les logiciels que des utilisateurs
203 aimeraient bien voir dans la distribution (<ref id="upload">).
208 <chapt id="new-maintainer">Devenir responsable Debian
210 <sect id="getting-started">Pour commencer
212 Vous avez lu toute la documentation, vous avez examiné le <url
213 id="&url-newmaint-guide;" name="guide du nouveau responsable">, vous comprenez
214 l'intérêt de tout ce qui se trouve dans le paquet d'exemple
215 <package>hello</package> et vous vous apprêtez à mettre en paquet votre
216 logiciel préféré. Comment devenir responsable Debian et intégrer votre travail
219 Si vous ne l'avez pas encore fait, commencez par vous inscrire à la
220 liste &email-debian-devel;. Pour cela, envoyez un courrier à l'adresse
221 &email-debian-devel-req; avec le mot <tt>subscribe</tt> dans la ligne
222 <em>Objet</em><footnote><p><em>Subject</em> en anglais</footnote> de votre
223 message. En cas de problème, contactez l'administrateur de la liste
224 &email-listmaster;. Vous trouverez plus d'informations dans la section <ref
225 id="mailing-lists">. &email-debian-devel-announce; est une autre liste
226 incontournable pour qui veut suivre les développements de Debian.
228 Vous suivrez les discussions de cette liste (sans poster) pendant quelque temps
229 avant de coder quoi que ce soit et vous informerez la liste de votre intention
230 de travailler sur quelque chose pour éviter de dupliquer le travail d'un autre.
232 Une autre liste intéressante est &email-debian-mentors;. Voir la section <ref
233 id="mentors"> pour les détails. Le canal IRC <tt>#debian</tt> pourra aussi être
237 Quand vous avez choisi la manière dont vous contribuerez au projet
238 &debian-formal;, prenez contact avec les responsables Debian qui travaillent
239 sur des tâches similaires. Ainsi vous pourrez apprendre auprès de personnes
240 expérimentées. Si, par exemple, vous voulez mettre en paquet des logiciels
241 existants, trouvez-vous un parrain. Un parrain est une personne qui travaillera
242 sur vos paquets avec vous et les téléchargera dans l'archive Debian une fois
243 qu'il sera satisfait de votre mise en paquet. Pour trouver un parrain, envoyez
244 une demande de parrainage à la liste &email-debian-mentors; en vous présentant
245 et en décrivant votre paquet (voir <ref id="sponsoring"> pour en savoir plus
246 sur le sujet). Si vous préférez porter Debian sur une architecture ou un noyau
247 alternatif, abonnez-vous aux listes dédiées au portage et demandez-y comment
248 démarrer. Finalement, si vous êtes intéressé par la documentation ou
249 l'assurance qualité (QA), vous pouvez contacter les responsables qui
250 travaillent déjà sur ces tâches et proposer des correctifs et des
254 <sect id="registering">S'enregistrer comme responsable Debian
256 Avant de décider de devenir responsable Debian, il vous faudra lire toute la
257 documentation disponible dans le <url id="&url-newmaint;" name="coin du nouveau
258 responsable">. Elle décrit toutes les étapes préparatoires qu'il vous faudra
259 franchir avant de déposer votre candidature.
261 Par exemple, avant d'être candidat, il vous faudra lire le <url
262 id="&url-social-contract;" name="contrat social Debian">. Devenir responsable
263 Debian implique que vous adhériez à ce contrat social et que vous vous engagiez
264 à le soutenir ; il est très important que les responsables soient en
265 accord avec les principes fondamentaux qui animent le projet &debian-formal;.
266 Lire le <url id="&url-gnu-manifesto;" name="Manifeste GNU"> est aussi une bonne
269 Le processus d'enregistrement a pour but de vérifier votre identité, vos
270 intentions et vos compétences. Le nombre de personnes travaillant pour
271 &debian-formal; a atteint &number-of-maintainers; et notre système est utilisé
272 dans plusieurs endroits très importants : nous devons rester vigilants
273 pour éviter un acte malveillant. C'est pourquoi nous contrôlons les nouveaux
274 responsables avant de leur donner un compte sur nos serveurs et de les autoriser à
275 ajouter des paquets dans l'archive.
277 Pour devenir responsable, il faudra montrer que vous pouvez faire du bon travail
278 et que vous serez un bon contributeur. Pour cela, vous pourrez proposer des correctifs
279 par le système de suivi des bogues (BTS) ou maintenir un paquet parrainé
280 pendant un temps. Nous attendons aussi des contributeurs qu'ils soient
281 intéressés par le projet dans son ensemble et pas uniquement par leurs propres
282 paquets. Si vous pouvez aider d'autres responsables en fournissant des
283 informations sur un bogue ou même avec un correctif, faites-le !
285 Pour votre candidature, vous devrez être familiarisé avec la philosophie du
286 projet Debian et avec sa documentation technique. Il vous faudra aussi une clé
287 GnuPG signée par un responsable Debian. Si votre clé GnuPG n'est pas encore
288 signée, vous devriez essayer de rencontrer un responsable Debian pour le faire.
289 La <url id="&url-gpg-coord;" name="page de coordination des signatures de clé
290 GnuPG"> devrait vous aider à trouver un responsable Debian près de chez vous.
291 (Si vous ne trouvez pas de responsable près de chez vous, il existe un second
292 moyen pour valider votre identité. Vous pouvez envoyer une photo d'identité
293 signée avec votre clé GnuPG. Privilégiez tout de même la clé GnuPG signée pour
294 valider une identité. Reportez-vous à la <url id="&url-newmaint-id;" name="page
295 d'identification"> pour en savoir plus sur ces deux options.)
298 Si vous n'avez pas de clé OpenPGP, créez-la. Tout responsable a besoin d'une clé
299 OpenPGP pour signer et vérifier les mises à jour de paquets. Vous lirez la
300 documentation du logiciel de cryptographie que vous utiliserez car elle
301 contient des informations indispensables pour la sécurité de votre clé. Les
302 défaillances de sécurité sont bien plus souvent dues à des erreurs humaines
303 qu'à des problèmes logiciels ou à des techniques d'espionnage avancées. Voir
304 <ref id="key-maint"> pour plus d'informations sur la gestion de votre clé
307 Debian utilise <prgn>GNU Privacy Guard</prgn> (paquet <package>gnupg</package>
308 version 1 ou supérieure) comme standard de base. Vous pouvez aussi utiliser une
309 autre implémentation d'OpenPGP. OpenPGP est un standard ouvert basé sur la <url
310 id="&url-rfc2440;" name="RFC 2440">.
312 L'algorithme à clé publique recommandé pour les développements Debian est DSA
313 (parfois appelé « DSS » ou « DH\ElGamal »). Vous pouvez
314 aussi utiliser d'autres types de clés. La longueur de votre clé doit être au
315 minimum de 1024 bits ; il n'y a pas de raison d'utiliser une clé plus
316 courte et le faire serait beaucoup moins sûr. Votre clé doit être signée avec
317 votre propre identifiant ; cela évite les falsifications. <prgn>GNU
318 Privacy Guard</prgn> le fait automatiquement.
320 Si votre clé publique n'est pas sur un serveur public tel que &pgp-keyserv;,
321 reportez-vous à la documentation disponible localement dans &file-keyservs;.
322 Cette documentation explique comment mettre votre clé publique sur un serveur.
323 L'équipe <em>New maintainer</em> mettra votre clé publique sur les serveurs de
324 clés si elle n'y est pas déjà.
326 Certains pays limitent l'usage des logiciels de cryptographie. Cela ne devrait
327 cependant pas avoir d'impact sur l'activité d'un responsable de paquet car il
328 peut être tout à fait légal d'utiliser des logiciels de cryptographie pour
329 l'authentification plutôt que pour le chiffrement. &debian-formal; ne nécessite
330 en aucune façon l'utilisation de chiffrement. Si vous vivez dans un pays où
331 l'utilisation de la cryptographie pour authentification est interdite,
332 contactez-nous pour que nous prenions des dispositions particulières.
334 Pour faire acte de candidature, il vous faut un responsable Debian qui vérifiera
335 votre candidature (un <em>avocat</em>). Après avoir contribué au projet Debian
336 pendant un temps, quand vous choisissez de devenir un responsable Debian
337 officiel, un responsable déjà enregistré avec qui vous aurez travaillé dans les
338 derniers mois devra exprimer que, d'après lui, vous pouvez contribuer avec
339 succès au projet Debian.
341 Quand vous avez trouvez un <em>avocat</em>, quand votre clé GnuPG est signée et
342 quand vous avez déjà contribué au projet, vous êtes prêt à faire
343 acte de candidature. Il vous suffit pour cela de vous enregistrer sur notre
344 <url id="&url-newmaint-apply;" name="page de candidature">. Ensuite, votre
345 avocat devra confirmer votre candidature. Quand il aura accompli cette tâche,
346 un responsable de candidature<footnote><p>Application manager</footnote> sera
347 désigné pour vous accompagner dans le processus d'enregistrement. Vous pouvez
348 toujours consulter le <url id="&url-newmaint-db;" name="tableau de bord des
349 candidatures"> pour connaître l'état de votre candidature.
351 Pour en savoir plus, consultez le <url id="&url-newmaint;" name="coin des
352 nouveaux responsables"> sur le site Debian. Assurez-vous de bien connaître les
353 étapes nécessaires au processus d'enregistrement avant de vous porter candidat.
354 Vous gagnerez beaucoup de temps si vous êtes bien préparé.
357 <sect id="mentors">Mentors et parrains Debian
359 La liste de diffusion &email-debian-mentors; a été créée pour les responsables
360 débutants qui cherchent de l'aide pour leur première création de paquet ainsi
361 que pour des problèmes spécifiques aux développeurs. Tout responsable débutant
362 est invité à s'y inscrire (voir <ref id="mailing-lists"> pour plus de détails).
364 Ceux qui préfèrent une aide personnalisée (via une correspondance privée)
365 doivent aussi poster dans cette liste, un développeur expérimenté se portera
366 volontaire pour les aider.
368 Si vos paquets sont prêts à être intégrés mais que vous attendiez le
369 résultat de votre candidature, vous pouvez chercher un parrain qui téléchargera
370 les paquets à votre place. Les parrains sont des responsables Debian officiels
371 volontaires pour examiner et télécharger vos paquets. Vous pouvez
372 demander un parrainage à l'adresse <url id="&url-sponsors;">.
374 Si vous désirez être mentor ou parrain, reportez-vous à <ref id="newmaint">.
377 <chapt id="developer-duties">Les charges du responsable Debian
379 <sect id="user-maint">Mise à jour de vos références Debian
381 Il existe une base de données LDAP contenant des informations concernant les
382 développeurs Debian à <url id="&url-debian-db;">. Vous devriez y entrer vos
383 informations et les mettre à jour quand elles changent. Le plus important est de
384 vous assurer que l'adresse vers laquelle est redirigée votre adresse debian.org
385 est toujours à jour, de même que l'adresse à laquelle vous recevez votre
386 abonnement à debian-private si vous choisissez d'être abonné à cette liste.
388 Pour plus d'informations à propos de cette base de données, veuillez consulter
391 <sect id="key-maint">Gérer votre clé publique
393 Soyez très vigilant en utilisant votre clé privée. Ne la placez pas sur un
394 serveur public ou sur des machines multi-utilisateurs telles que les serveurs
395 Debian (voir <ref id="server-machines">). Sauvegardez vos clés et gardez-en une
396 copie hors connexion. Lisez la documentation fournie avec votre logiciel et la
397 <url id="&url-pgp-faq;" name="FAQ PGP">.
399 Si vous ajoutez des signatures ou des identifiants à votre clé publique, vous
400 pouvez mettre à jour le porte-clés Debian en envoyant votre clé publique à
401 <tt>&keyserver-host;</tt>. Si vous voulez ajouter ou supprimer une clé, envoyez
402 un courrier à &email-debian-keyring;. Les procédures d'extraction de clé
403 décrites dans <ref id="registering"> s'appliquent ici.
405 Vous pouvez trouver une présentation approfondie de la gestion de clé Debian
406 dans la documentation du paquet <package>debian-keyring</package>.
408 <sect id="voting">Voter
410 Bien que Debian ne soit pas vraiment une démocratie, nous disposons d'un
411 processus démocratique pour élire nos chefs et pour approuver les résolutions
412 générales. Ces procédures sont définies par la <url id="&url-constitution;"
413 name="charte Debian">.
415 En dehors de l'élection annuelle du chef, les votes ne se tiennent pas
416 régulièrement et ils ne sont pas entrepris à la légère. Chaque proposition est
417 tout d'abord discutée sur la liste de diffusion &email-debian-vote; et elle a
418 besoin de plusieurs approbations avant que le secrétaire du projet n'entame la
421 Vous n'avez pas besoin de suivre les discussions précédant le vote car le
422 secrétaire enverra plusieurs appels au vote sur la liste
423 &email-debian-devel-announce; (et tous les développeurs devraient être inscrits
424 à cette liste). La démocratie ne fonctionne pas si les personnes ne prennent pas
425 part au vote, c'est pourquoi nous encourageons tous les développeurs à voter. Le
426 vote est conduit par messages signés ou chiffrés par GPG.
429 La liste de toutes les propositions (passées et présentes) est disponible à la
430 page <url id="&url-vote;" name="Informations sur les votes Debian">, ainsi que
431 des informations complémentaires sur la procédure à suivre pour effectuer une
432 proposition, la soutenir et voter pour elle.
434 <sect id="inform-vacation">Prendre des vacances courtoisement
437 Il est courant pour les développeurs de s'absenter, que ce
438 soit pour des vacances prévues ou parce qu'ils sont submergés de travail. La
439 chose importante à noter est que les autres développeurs ont besoin de savoir
440 que vous êtes en vacances pour qu'ils puissent agir en conséquence si un
441 problème se produit pendant vos vacances.
443 Habituellement, cela veut dire que les autres développeurs peuvent faire des NMU
444 (voir <ref id="nmu">) sur votre paquet si un gros problème (bogues empêchant
445 l'intégration dans la distribution, mise à jour de sécurité, etc.) se produit pendant que vous êtes en
446 vacances. Parfois, ce n'est pas très important, mais il est de
447 toute façon approprié d'indiquer aux autres que vous n'êtes pas disponible.
449 Il y a deux choses à faire pour informer les autres développeurs.
450 Premièrement, envoyez un courrier électronique à &email-debian-private; en
451 commençant le sujet de votre message par « [VAC] »<footnote>Ainsi, le
452 message peut être facilement filtré par les personnes qui ne veulent pas lire
453 ces annonces de vacances.</footnote> et donnez la période de vos
454 vacances. Vous pouvez également donner quelques instructions pour
455 indiquer comment agir si un problème survenait.
457 L'autre chose à faire est de vous signaler comme « en
458 vacances »<footnote><p><em>on vacation</em> en anglais</footnote> dans la
459 <qref id="devel-db">base de données Debian LDAP</qref> (l'accès à cette
460 information est réservé aux développeurs). N'oubliez pas de retirer votre
461 indicateur « en vacances » lorsque celles-ci sont terminées !
463 <sect id="upstream-coordination">Coordination avec les développeurs amonts
465 Une grande part de votre travail de responsable Debian sera de rester en contact
466 avec les développeurs amonts. Parfois, les utilisateurs établissent des
467 rapports de bogue qui ne sont pas spécifiques à Debian. Vous devez transmettre
468 ces rapports de bogue aux développeurs amonts pour qu'ils soient corrigés dans
469 les prochaines versions. Il n'est pas de votre responsabilité de corriger les
470 bogues qui ne sont pas spécifiques à Debian. Toutefois, si vous êtes capable de
471 le faire, nous vous encourageons à contribuer au développement amont en
472 proposant un correctif qui corrige le bogue. Les utilisateurs et responsables
473 Debian proposent souvent des correctifs pour corriger des bogues amonts, il
474 vous faudra alors évaluer ce correctif puis le transmettre aux développeurs
477 Si vous avez besoin de modifier les sources d'un logiciel pour fabriquer un
478 paquet conforme à la charte Debian, alors vous devriez proposer un correctif
479 aux développeurs amonts pour qu'il soit inclus dans leur version. Ainsi, vous
480 n'aurez plus besoin de modifier les sources lors des mises à jour amonts
481 suivantes. Quels que soient les changements dont vous avez besoin, il faut
482 toujours essayer de rester dans la lignée des sources amonts.
484 <sect id="rc-bugs">Comment gérer les bogues empêchant l'intégration du
485 paquet dans la distribution ?
487 Habituellement, vous devriez traiter les rapports de bogue sur vos paquets tel
488 que cela est décrit dans <ref id="bug-handling">. Cependant, il y a une
489 catégorie spéciale de bogues qui nécessite particulièrement votre
490 attention : les bogues empêchant l'intégration du paquet dans la
491 distribution<footnote>Traduction de l'anglais <em>Release-critical bug (RC
492 Bugs)</em></footnote>. Tous les rapports de bogue de gravité <em>critique</em>,
493 <em>grave</em> et <em>sérieuse</em><footnote>Respectivement <em>critical</em>,
494 <em>grave</em> et <em>serious</em> en anglais</footnote> sont considérés comme
495 ayant un impact sur la présence du paquet dans la prochaine version stable de
496 Debian. Ces bogues peuvent retarder la diffusion d'une distribution Debian
497 ou peuvent justifier la suppression d'un paquet d'une distribution gelée.
498 C'est pourquoi ces bogues doivent être corrigés au plus vite.
500 Les développeurs faisant partie de l'équipe d'<url id="&url-debian-qa;"
501 name="assurance qualité Debian"> surveillent ces bogues et essaient de vous
502 aider chaque fois qu'ils le peuvent. Si vous ne pouvez pas corriger un bogue de
503 ce type dans les deux semaines, vous devriez soit demander de l'aide en
504 envoyant un courrier à l'équipe d'assurance qualité (<em>QA group</em>) à
505 &email-debian-qa;, soit expliquer vos difficultés et présenter un plan pour
506 corriger le problème en répondant au rapport de bogue concerné. Si rien n'est
507 fait, des personnes de l'équipe d'assurance qualité pourraient chercher à
508 corriger votre paquet (voir <ref id="nmu">) après avoir tenté de vous contacter
509 (ils pourraient attendre moins longtemps que d'habitude pour faire leur mise à
510 jour s'il n'y a pas trace d'activité récente de votre part dans le système de
516 Si vous choisissez de quitter le projet Debian, procédez comme suit :
517 <enumlist compact="compact">
518 <item><p>abandonnez tous vos paquets comme décrit dans <ref
519 id="orphaning"> ;</item>
520 <item><p>envoyez un courrier électronique à &email-debian-private; indiquant
521 pourquoi vous quittez le projet ;</item>
522 <item><p>signalez aux responsables du porte-clés Debian que vous quittez le
523 projet en écrivant à &email-debian-keyring;.</item>
528 <chapt id="resources">Ressources pour le responsable Debian
530 Dans ce chapitre, vous trouverez une brève description des listes de diffusion,
531 des machines Debian qui seront à votre disposition en tant que responsable
532 Debian ainsi que toutes les autres ressources à votre disposition pour vous
533 aider dans votre travail de responsable.
535 <sect id="mailing-lists">Les listes de diffusion
537 Le serveur de liste de diffusion est <tt>&lists-host;</tt>.
539 Les archives des listes de diffusion sont consultables à <url
540 id="&url-lists-archives;">.
542 <sect1 id="core-devel-mailing-lists">Principales listes pour les
545 Les principales listes de diffusion de Debian que les développeurs
546 devraient suivre sont :
548 <item>&email-debian-devel-announce;, utilisée pour les annonces importantes
549 faites aux responsables. Tous les responsables Debian sont censés être
550 inscrits à cette liste,</item>
551 <item>&email-debian-devel;, utilisée pour discuter de diverses questions
552 techniques relatives au développement,</item>
553 <item>&email-debian-policy; où l'on discute et vote les modifications de la
554 charte Debian,</item>
555 <item>&email-debian-project;, utilisée pour discuter de questions non
559 Il existe d'autres listes de diffusion spécialisées dans différents thèmes.
560 Reportez-vous à la page <url id="&url-debian-lists-subscribe;"> pour en obtenir
563 <sect1 id="mailing-lists-subunsub">S'abonner et se désabonner
565 Pour vous abonner ou vous désabonner de n'importe quelle liste, envoyez un
566 courrier électronique à
567 <tt>debian-<var>foo</var>-REQUEST@&lists-host;</tt>, où
568 <tt>debian-<var>foo</var></tt> est le nom de la
569 liste<footnote><var>foo</var> étant le thème de la liste</footnote>, avec
570 le mot <tt>subscribe</tt> dans le champ
571 <em>Objet</em><footnote><p><em>Subject</em> en anglais</footnote> pour vous
572 abonner à la liste ou <tt>unsubscribe</tt> pour vous désabonner.
574 Si vous préférez utiliser une page web pour vous inscrire à plusieurs listes,
575 celle-ci se trouve à l'adresse <url id="&url-debian-lists-subscribe;">.
577 Vous pouvez télécharger la liste des listes de diffusion et quelques
578 instructions depuis <url id="&url-debian-lists-txt;"> ou installer le paquet
579 <package>doc-debian</package> et en disposer localement dans le fichier
582 <sect1 id="mailing-lists-rules">Règles d'usage simple
584 Lorsque vous répondez aux messages d'une liste de diffusion, n'envoyez pas de
585 copie (<tt>CC</tt>) à l'auteur du courrier à moins qu'il ne l'ait demandé
586 explicitement. Celui qui envoie un message à une liste de diffusion se doit
587 d'y lire les réponses.
589 La multi-diffusion (envoyer le même message à plusieurs listes) est déconseillée.
590 Comme toujours sur Internet, veuillez réduire le texte cité des messages
591 auxquels vous répondez. En général, veuillez adhérer aux conventions usuelles
594 Veuillez lire le <url id="&url-debian-lists;" name="code de conduite"> pour plus
597 <sect1 id="mailing-lists-special">Listes spéciales
599 &email-debian-private; est une liste de diffusion destinée aux discussions
600 privées entre développeurs Debian. Elle doit être utilisée pour tout message
601 qui ne doit pas être publié, quelle qu'en soit la raison. C'est une liste à
602 faible trafic et les utilisateurs sont priés de ne l'utiliser qu'en cas de
603 réelle nécessité. De plus, il ne faut <em>jamais</em> faire suivre un courrier
604 de cette liste à qui que ce soit. Pour des raisons évidentes, les archives de
605 cette liste ne sont pas disponibles sur la toile. Vous pouvez les consulter en
606 visitant le répertoire <file>~debian/archive/debian-private</file> avec votre
607 compte sur <tt>lists.debian.org</tt>.
609 &email-debian-email; est une liste de diffusion fourre-tout. Elle est utilisée
610 pour les correspondances relatives à Debian qu'il serait utile d'archiver,
611 telles que des échanges avec les auteurs amonts à propos de licences, de bogues
612 ou encore des discussions sur le projet avec d'autres personnes.
615 <sect id="irc-channels">Canaux IRC
617 Plusieurs canaux IRC sont dédiés au développement Debian. Ils sont
618 principalement hébergés sur le réseau <url id="&url-openprojects;"
619 name="freenode"> (anciennement connu sous le nom de Open Projects Network).
620 L'entrée DNS <tt>irc.debian.org</tt> est simplement un alias vers
621 <tt>irc.freenode.net</tt>.
623 Le principal canal pour Debian est <em>#debian</em>. Il s'agit d'un
624 canal important, généraliste, où les utilisateurs peuvent trouver des nouvelles
625 récentes dans le sujet et qui est administré par des robots. <em>#debian</em>
626 est destiné aux anglophones ; il existe également <em>#debian.de</em>,
627 <em>#debian-fr</em>, <em>#debian-br</em> et d'autres canaux avec des noms
628 semblables pour les personnes parlant d'autres langues.
630 Le canal principal pour le développement Debian est <em>#debian-devel</em>.
631 C'est un canal très actif avec habituellement plus de 150 personnes connectées
632 en permanence. C'est un canal pour les personnes qui travaillent sur Debian, ce
633 n'est pas un canal d'aide (il existe <em>#debian</em> pour cela). Il est
634 cependant ouvert à tous ceux qui veulent écouter (et apprendre). Le sujet est
635 toujours rempli d'informations intéressantes.
637 Comme <em>#debian-devel</em> est un canal ouvert, vous ne devriez pas y parler
638 de problèmes discutés sur &email-debian-private;. Il existe un canal protégé
639 par clé <em>#debian-private</em> dans ce but. La clé est disponible dans les
640 archives de debian-private à
641 <file>master.debian.org:&file-debian-private-archive;</file>, effectuez
642 simplement un <prgn>zgrep</prgn> avec <em>#debian-private</em> dans tous les
645 Il existe d'autres canaux dédiés à des sujets spécifiques. <em>#debian-bugs</em>
646 est utilisé pour la coordination des <em>chasses aux bogues</em>.
647 <em>#debian-boot</em> est utilisé pour la coordination du travail sur les
648 disquettes de démarrage (i.e., l'installeur). <em>#debian-doc</em> est utilisé
649 occasionnellement pour travailler sur la documentation comme celle que vous
650 lisez actuellement. D'autres canaux sont dédiés à une architecture ou un
651 ensemble de paquets : <em>#debian-bsd</em>, <em>#debian-kde</em>,
652 <em>#debian-jr</em>, <em>#debian-edu</em>, <em>#debian-sf</em> (paquet
653 SourceForge), <em>#debian-oo</em> (paquet OpenOffice), etc.
655 Certains canaux pour développeurs non anglophones existent, par exemple,
656 <em>#debian-devel-fr</em> pour les francophones intéressés dans le
657 développement de Debian.
659 Il existe également des canaux dédiés pour Debian sur d'autres réseaux IRC,
660 notamment sur le réseau IRC <url name="Open and free technology community
661 (OFTC)" id="http://www.oftc.net/">.
664 <sect id="doc-rsrcs">Documentation
666 Ce document contient beaucoup d'informations très utiles aux développeurs
667 Debian, mais il ne peut pas tout contenir. La plupart des autres documents
668 intéressants sont référencés dans le <url id="&url-devel-docs;" name="coin
669 du développeur Debian">. Prenez le temps de parcourir tous les liens, vous
670 apprendrez encore beaucoup de choses.
673 <sect id="server-machines">Les serveurs Debian
675 Debian possède plusieurs ordinateurs employés comme serveurs, dont la plupart hébergent
676 les fonctions critiques du projet Debian. La plupart des machines sont
677 utilisées pour des activités de portage et elles ont toutes un accès permanent
680 La plupart des machines peuvent être utilisées par les développeurs
681 tant qu'ils respectent les règles définies dans la <url
682 id="&url-dmup;" name="charte d'utilisation des machines Debian">.
684 Dans l'ensemble, vous pouvez faire usage de ces machines pour des buts relatifs
685 à Debian comme vous l'entendez. Veuillez cependant être gentil avec les
686 administrateurs système et ne pas utiliser de grandes quantités d'espace
687 disque, de ressource réseau ou CPU sans obtenir auparavant l'accord des
688 administrateurs. Habituellement, ces machines sont administrées par des
691 Veuillez prendre soin de votre mot de passe Debian ainsi que des clés SSH
692 installées sur les machines Debian. Évitez les méthodes de connexion ou d'envoi
693 de données qui envoient les mots de passe en clair par l'Internet comme telnet,
696 Veuillez ne pas déposer de données non relatives à Debian sur les serveurs
697 Debian à moins que vous n'ayez préalablement obtenu la permission de le faire.
699 La liste actuelle des machines Debian est disponible à <url
700 id="&url-devel-machines;">. Cette page web contient les noms des machines, les
701 informations de contact, les informations sur qui peut s'y connecter, les clés
704 Si vous avez un problème en utilisant un serveur Debian et si vous estimez que
705 les administrateurs système devraient en être avertis, l'équipe des
706 administrateurs système peut être jointe à
707 <email>debian-admin@lists.debian.org</email>.
709 Si votre problème est lié à un certain service ou n'est pas lié au système
710 (paquet à supprimer de l'archive ou suggestion pour le site web par exemple),
711 il vous faudra en général ouvrir un rapport de bogue sur un
712 « pseudo-paquet ». Reportez-vous à la section <ref id="submit-bug">
713 pour connaître la procédure à suivre.
715 <sect1 id="servers-bugs">Le serveur pour les rapports de bogues
717 <tt>&bugs-host;</tt> est le serveur maître du système de suivi des bogues
718 (BTS<footnote><p>Système de suivi des bogues se dit <em>Bug Tracking
719 System</em> en anglais</footnote>). Si vous envisagez de manipuler les rapports
720 de bogue ou d'en faire une analyse statistique, ce sera le bon endroit pour le
721 faire. Informez la liste &email-debian-devel; de votre intention avant
722 d'implémenter quoi que ce soit afin d'éviter un travail en double ou un
723 gaspillage de temps machine.
725 Tous les développeurs Debian ont un compte sur
726 <tt>&bugs-host;</tt>.
728 <sect1 id="servers-ftp-master">Le serveur ftp-master
730 Le serveur <tt>ftp-master.debian.org</tt> est le serveur maître de l'archive
731 Debian (exception faite des paquets non-US). En général, les mises à jour de
732 paquets se font sur ce serveur. Reportez-vous à la section <ref id="upload">
735 Les problèmes avec l'archive Debian FTP doivent généralement être rapportés
736 comme bogues sur le pseudo-paquet <package>ftp.debian.org</package> ou par
737 courrier électronique à &email-ftpmaster; ; reportez-vous à la section
738 <ref id="archive-manip"> pour connaître la procédure à suivre.
740 <sect1 id="servers-non-us">Le serveur non-US
742 Le serveur non-US <tt>non-us.debian.org</tt> est le serveur maître de la partie
743 non-US de l'archive Debian. Si vous avez besoin d'envoyer un paquet dans l'une
744 des sections non-US, envoyez-le vers ce serveur. Reportez-vous à la section
745 <ref id="upload-non-us"> pour en savoir plus.
747 Les problèmes avec l'archive de paquets non-US doivent généralement être
748 rapportés comme bogues sur le pseudo-paquet <package>nonus.debian.org</package>
749 (remarquez l'absence de trait d'union entre "non" et "us" dans le nom du
750 pseudo-paquet — c'est dû à la compatibilité descendante). Rappelez-vous
751 de vérifier si quelqu'un n'aurait pas déjà rempli un rapport de bogue
752 concernant le problème sur le <url id="http://&bugs-host;/nonus.debian.org"
753 name="système de suivi des bogues">.
755 <sect1 id="servers-www">Le serveur www-master
757 Le serveur web principal est <tt>www-master.debian.org</tt>. Il héberge les
758 pages web officielles, la façade de Debian pour la plupart des débutants.
760 Si vous rencontrez un problème avec un serveur web Debian, vous devez
761 généralement envoyer un rapport de bogue sur le pseudo-paquet
762 <package>www.debian.org</package>. Vérifiez d'abord sur le <url
763 id="http://&bugs-host;/www.debian.org" name="système de suivi des bogues">
764 que personne ne l'a déjà rapporté avant vous.
766 <sect1 id="servers-people">Le serveur web people
768 <tt>people.debian.org</tt> est le serveur utilisé par les développeurs pour
769 leurs pages concernant Debian.
771 Si vous avez des informations spécifiques Debian que vous voulez rendre
772 disponibles sur le web, vous pouvez le faire en les plaçant dans le répertoire
773 <file>public_html</file> de votre répertoire personnel sur
774 <tt>people.debian.org</tt>. Elles seront accessibles à l'adresse
775 <tt>http://people.debian.org/~<var>votre-user-id</var>/</tt>.
777 Vous ne devriez utiliser que cet emplacement particulier car il sera sauvegardé
778 alors que sur les autres serveurs, ce ne sera pas le cas.
780 Habituellement, la seule raison pour utiliser un serveur différent est que vous
781 avez besoin de publier des informations soumises aux restrictions d'exportation
782 américaines, dans ce cas, vous pouvez utiliser l'un des autres serveurs situés
783 en dehors des États-Unis, comme le serveur mentionné ci-dessus
784 <tt>non-us.debian.org</tt>.
786 Veuillez envoyer un courrier à &email-debian-devel; si vous avez une question.
788 <sect1 id="servers-cvs">Le serveur CVS
790 Notre serveur CVS est situé sur <tt>cvs.debian.org</tt>.
792 Si vous avez besoin d'un serveur CVS accessible par tous pour, par exemple,
793 coordonner le travail de plusieurs développeurs sur un paquet, vous pouvez
794 demander un espace CVS sur ce serveur.
796 Le serveur <tt>cvs.debian.org</tt> autorise les accès CVS locaux, les accès en
797 lecture seule pour les connexions client-serveur anonymes et les accès
798 client-serveur complets pour les connexions <prgn>ssh</prgn>. L'espace CVS peut
799 aussi être consulté par la toile à l'adresse <url id="&url-cvsweb;">.
801 Pour obtenir un espace CVS, envoyez une demande à l'adresse &email-debian-admin;
802 en précisant le nom de l'espace, le compte Debian propriétaire du répertoire
803 racine et pourquoi vous en avez besoin.
806 <sect id="devel-db">La base de données des développeurs
808 La base de données des développeurs à <url id="&url-debian-db;"> est un annuaire
809 LDAP de gestion des informations des développeurs Debian. Vous pouvez utiliser
810 cette ressource pour rechercher la liste des développeurs Debian. Une partie de
811 ces informations est également disponible à travers le service finger sur les
812 serveurs Debian, essayez <prgn>finger yourlogin@debian.org</prgn> pour voir ce
815 Les développeurs peuvent <url name="se connecter à la base de données"
816 id="&url-debian-db-login;"> pour modifier différentes informations les
817 concernant, comme :
819 <item>l'adresse de suivi pour leur adresse debian.org,
820 <item>l'abonnement à debian-private,
821 <item>l'état en vacances ou non,
822 <item>des informations personnelles comme les adresse, pays, latitude et
823 longitude de l'endroit où ils vivent pour utilisation dans la <url
824 name="carte mondiale des développeurs Debian" id="&url-worldmap">,
825 numéros de téléphone et de fax, surnom IRC et page web,
826 <item>le mot de passe et le shell préféré sur les machines du projet Debian.
829 La plupart des informations ne sont naturellement pas accessibles publiquement.
830 Pour plus d'informations, veuillez lire la documentation en ligne que vous
831 pouvez trouver à <url id="&url-debian-db-doc;">.
834 Il est également possible d'envoyer ses clés SSH pour les utiliser pour
835 autorisation sur les machines Debian officielles et même d'ajouter de nouvelles
836 entrées DNS du type *.debian.net. Ces fonctionnalités sont documentées à <url
837 id="&url-debian-db-mail-gw;">.
840 <sect id="archive">L'archive Debian
842 La distribution &debian-formal; est composée d'un grand nombre de paquets
843 (fichiers <tt>.deb</tt> : actuellement, à peu près &number-of-pkgs;) et de
844 quelques autres fichiers (comme la documentation et des images des disquettes
847 Voici un exemple d'arborescence pour une archive Debian complète :
849 &sample-dist-dirtree;
851 Comme vous pouvez le voir, le répertoire racine contient deux répertoires,
852 <file>dists/</file> et <file>pool/</file>. Le second est un ensemble de
853 répertoires où sont stockés les paquets. Ceux-ci sont manipulés grâce à la base
854 de données de l'archive et aux logiciels qui l'accompagnent. Le premier
855 répertoire contient les distributions <em>stable</em>, <em>testing</em> et
856 <em>unstable</em>. Les fichiers <file>Packages</file> et <file>Sources</file>
857 qui se trouvent dans les répertoires de distribution peuvent faire référence à
858 des fichiers du répertoire <file>pool/</file>. Le découpage en sous-répertoires
859 est identique d'un répertoire de distribution à l'autre . Ce que nous
860 exposerons ci-dessous pour la distribution <em>stable</em> est également
861 applicable aux distributions <em>unstable</em> et <em>testing</em>.
863 Le répertoire <file>dists/stable</file> contient trois répertoires nommés
864 <file>main</file>, <file>contrib</file> et <file>non-free</file>.
866 Dans chacune de ces sections, se trouve un répertoire contenant les paquets
867 sources (<file>source/</file>) et un répertoire pour chaque architecture
868 acceptée (<file>binary-i386/</file>, <file>binary-m68k/</file>, etc.).
870 La section <em>main</em> contient d'autres répertoires destinés aux images de
871 disquettes et à plusieurs documents essentiels pour installer la distribution
872 Debian sur une architecture particulière (<file>disk-i386/</file>,
873 <file>disk-m68k/</file>, etc.).
877 La section <em>main</em> constitue la <strong>distribution &debian-formal;
878 officielle</strong>. Elle est officielle parce qu'elle est entièrement conforme
879 à toutes nos recommandations. Les deux autres sections divergent de ces
880 recommandations à différents degrés, elles <strong>ne</strong> font donc <strong>pas</strong>
881 officiellement partie de &debian-formal;.
883 Chaque paquet de la section <em>main</em> doit être conforme aux <url
884 id="&url-dfsg;" name="directives Debian pour le logiciel
885 libre"><footnote>Debian Free Software Guidelines</footnote> et à toutes les
886 autres recommandations décrites dans <url id="&url-debian-policy;" name="la
887 charte Debian"><footnote>Debian Policy Manual</footnote>. Les
888 DFSG<footnote><em>Debian Free Software Guidelines</em></footnote> constituent
889 notre définition de « logiciel libre ». Reportez-vous à la <em>charte
890 Debian</em> pour en savoir plus.
892 Les paquets de la section <em>contrib</em> doivent être conformes aux DFSG, mais
893 ne respectent pas d'autres contraintes. Ils peuvent, par exemple, dépendre de
894 paquets de la section <em>non-free</em>.
896 Les paquets qui ne sont pas conformes aux DFSG sont rangés dans la section
897 <em>non-free</em>. Bien que nous supportions l'usage de ces paquets et qu'ils
898 bénéficient de nos infrastructures (système de suivi des bogues, listes de
899 diffusion, etc.), ces paquets <em>non-free</em> ne font pas partie de la
902 La <em>charte Debian</em> donne des définitions plus précises pour ces trois
903 sections. Les paragraphes précédents ne constituent qu'une introduction.
905 La séparation de l'archive en trois sections est importante pour toute personne
906 qui désire distribuer Debian, que ce soit par serveur FTP ou sur cédérom. Il
907 suffit de distribuer les sections <em>main</em> et <em>contrib</em> pour éviter
908 tout problème légal. Certains paquets de la section <em>non-free</em>
909 interdisent leur distribution à titre commercial par exemple.
911 D'un autre côté, un distributeur de cédérom pourra facilement vérifier
912 la licence de chacun des paquets de la section <em>non-free</em> et
913 inclure tous les paquets qu'il lui sera autorisé (dans
914 la mesure où cela varie énormément d'un distributeur à l'autre, ce travail ne
915 peut être fait par les développeurs Debian).
917 Notez que le terme « section » est également utilisé pour faire
918 référence aux catégories qui simplifient l'organisation des paquets
919 disponibles et leur recherche, e.g. <em>admin</em>, <em>net</em>, <em>utils</em> etc. Il
920 fut un temps où ces sections (sous-sections, plutôt) existaient sous la forme
921 de sous-répertoires dans l'archive Debian. Actuellement, elles n'existent plus
922 que dans le champ en-tête « Section » des paquets.
924 <sect1>Les architectures
926 À ses débuts, le noyau Linux existait uniquement pour les architectures Intel
927 x86 ; il en était de même pour Debian. Linux devenant de plus en plus
928 populaire, il a été porté vers d'autres architectures.
930 Le noyau 2.0 existe pour les architectures Intel x86, DEC Alpha, SPARC,
931 Motorola, 680x0 (Atari, Amiga, et Macintosh), MIPS et PowerPC. Le noyau 2.2
932 reconnaît de nouvelles architectures, comme ARM et UltraSPARC. Puisque Linux
933 reconnaît ces architectures, le projet Debian a décidé qu'il devait également les
934 accepter. C'est pourquoi plusieurs portages sont en cours ; en fait, il y
935 a aussi des portages vers d'autres noyaux. À côté d'<em>i386</em> (notre nom
936 pour Intel x86), nous avons, au moment où j'écris, <em>m68k</em>,
937 <em>alpha</em>, <em>powerpc</em>, <em>sparc</em>, <em>hurd-i386</em>,
938 <em>arm</em>, <em>ia64</em>, <em>hppa</em>, <em>s390</em>, <em>mips</em>,
939 <em>mipsel</em> et <em>sh</em>.
941 &debian-formal; 1.3 est disponible uniquement pour <em>i386</em>. Debian 2.0
942 reconnaît les architectures <em>i386</em> et <em>m68k</em>. Debian 2.1 reconnaît
943 les architectures <em>i386</em>, <em>m68k</em>, <em>alpha</em> et
944 <em>sparc</em>. Debian 2.2 accepte en plus les architectures
945 <em>powerpc</em> et <em>arm</em>. Debian 3.0 accepte cinq
946 nouvelles architectures : <em>ia64</em>, <em>hppa</em>, <em>s390</em>,
947 <em>mips</em> et <em>mipsel</em>.
949 Pour chaque portage, vous trouverez des informations destinées aux développeurs
950 et utilisateurs sur la page <url id="&url-debian-ports;" name="Portage
955 Il existe deux types de paquets Debian : les paquets sources et les paquets
958 Les paquets sources sont constitués de deux ou trois fichiers : un fichier
959 <file>.dsc</file> et soit un fichier <file>.tar.gz</file>, soit un fichier
960 <file>.orig.tar.gz</file> et un fichier <file>.diff.gz</file>.
962 Si un paquet est développé spécifiquement pour le projet Debian et n'est pas
963 distribué en dehors de Debian, il n'y a qu'un fichier <file>.tar.gz</file> qui
964 contient les sources du programme. Si un paquet est distribué ailleurs, le
965 fichier <file>.orig.tar.gz</file> contient ce que l'on appelle <em>code source
966 amont</em>, c'est-à-dire, le code source distribué par le <em>mainteneur
967 amont</em> (il s'agit souvent de l'auteur du logiciel). Dans ce cas, le fichier
968 <file>.diff.gz</file> contient les modifications faites par le responsable
971 Le fichier <file>.dsc</file> liste tous les fichiers sources avec leurs sommes
972 de contrôle (<prgn>md5sums</prgn>) et quelques informations supplémentaires
973 concernant le paquet (responsable, version, etc.).
975 <sect1>Les répertoires des distributions
977 L'organisation des répertoires présentée précédemment est elle-même englobée par
978 les <em>répertoires des distributions</em>. Chaque distribution est incluse
979 dans le répertoire <file>pool</file> à la racine de l'archive Debian.
981 En résumant, une archive Debian a un répertoire racine sur un serveur FTP. Par
982 exemple, sur le site miroir <ftpsite>ftp.us.debian.org</ftpsite>, l'archive
983 Debian se trouve dans <ftppath>/debian</ftppath> ce qui est un emplacement
984 courant. Un autre emplacement courant est <file>/pub/debian</file>.
986 Une distribution est composée de paquets sources et binaires et des
987 fichiers <file>Sources</file> et <file>Packages</file> correspondants qui
988 contiennent toutes les méta-informations sur les paquets. Les premiers sont
989 conservés dans le répertoire <file>pool/</file> tandis que les seconds sont
990 conservés dans le répertoire <file>dists/</file> de l'archive (pour
991 compatibilité descendante).
993 <sect2 id="sec-dists"><em>Stable</em>, <em>testing</em> et
996 Il y a toujours une distribution appelée <em>stable</em> (dans le répertoire
997 <file>dists/stable</file>), une distribution appelée <em>testing</em> (dans le
998 répertoire <file>dists/testing</file>) et une distribution appelée
999 <em>unstable</em> (dans le répertoire <file>dists/unstable</file>). Ceci
1000 reflète le processus de développement du projet Debian.
1002 Les développements se font sur la distribution
1003 <em>unstable</em><footnote><p><em>unstable</em> signifie
1004 « instable »</footnote> (c'est pourquoi elle est aussi appelée
1005 <em>distribution de développement</em>). Chaque développeur Debian peut
1006 modifier ses paquets à tout moment dans cette distribution. Ainsi son contenu
1007 change tous les jours. Comme aucun effort particulier n'est fait pour s'assurer
1008 que tout fonctionne correctement dans cette distribution, elle est parfois
1009 littéralement « instable ».
1011 <ref id="testing"> est générée automatiquement en prenant les paquets
1012 d'<em>unstable</em> s'ils satisfont à certains critères. Ces critères
1013 garantissent que les paquets de <em>testing</em> sont de bonne qualité. La
1014 mise à jour de <em>testing</em> est lancée chaque jour après que les
1015 nouveaux paquets ont été installés.
1017 Après une période de développement, quand le responsable de
1018 distribution<footnote><p><em>Release manager</em></footnote> le juge opportun,
1019 la distribution <em>testing</em> est gelée, ce qui signifie que les conditions
1020 à remplir pour qu'un paquet passe d'<em>unstable</em> à <em>testing</em> sont
1021 durcies. Les paquets trop bogués sont supprimés et les seules mises à jours
1022 autorisées concernent les corrections de bogues. Après quelque temps, selon
1023 l'avancement, la distribution entre dans une phase de « gel complet »
1024 où les seules modifications acceptées concernent la procédure d'installation.
1025 Cette phase s'appelle un « cycle de test » et cela peut durer jusqu'à
1026 deux semaines. Il peut y avoir plusieurs cycles de tests avant que le
1027 responsable de distribution ne la déclare prête pour la diffusion. À la fin du
1028 dernier cycle de test, la distribution <em>frozen</em> devient <em>stable</em>,
1029 remplaçant l'ancienne distribution <em>stable</em> qui est enlevée à cette
1030 occasion (elle peut être retrouvée à l'adresse <tt>&archive-host;</tt>).
1032 Ce cycle de développement est basé sur l'idée que la distribution
1033 <em>unstable</em> devient <em>stable</em> après une période de test
1034 (<em>testing</em>). Une distribution contient inévitablement des bogues, même
1035 si elle est classée stable. C'est pourquoi les distributions stables sont mises
1036 à jour de temps en temps. Les corrections introduites sont testées avec une
1037 grande attention et sont ajoutées une à une à l'archive pour diminuer les
1038 risques d'introduire de nouveaux bogues. Vous pouvez trouver des paquets
1039 proposés pour les mises à jour de <em>stable</em> dans le répertoire
1040 <file>proposed-updates</file>. De temps en temps, les paquets de ce répertoire
1041 qui ne présentent pas de problème sont installés dans la distribution
1042 <em>stable</em> et le numéro de révision de cette distribution est incrémenté
1043 (« 3.0 » devient « 3.0r1 », « 2.0r4 » devient
1044 « 2.0r5 » et ainsi de suite).
1046 Notez que, pendant la période de gel, les développements continuent sur la
1047 distribution <em>unstable</em> car cette distribution reste en place.
1049 <sect2 id="experimental">Experimental
1051 La distribution <em>experimental</em> est une distribution particulière. Ce n'est
1052 pas une distribution à part entière comme le sont <em>stable</em> et
1053 <em>unstable</em>. Elle est prévue pour servir de plate-forme de
1054 développement pour les projets expérimentaux qui risquent vraiment de
1055 détruire le système ou bien pour des logiciels qui sont vraiment trop
1056 instables pour être inclus dans la distribution <em>unstable</em> (mais pour
1057 lesquels une mise en paquet est justifiée). Les utilisateurs qui téléchargent
1058 et installent des paquets depuis <em>experimental</em> sont prévenus :
1059 on ne peut pas faire confiance à la distribution <em>experimental</em>.
1061 Voici les lignes de <manref name="sources.list" section="5"> pour
1062 <em>experimental</em> :
1064 deb http://ftp.<var>xy</var>.debian.org/debian/ ../project/experimental main
1065 deb-src http://ftp.<var>xy</var>.debian.org/debian/ ../project/experimental main
1068 Si un logiciel peut causer des dégats importants, il sera sûrement
1069 préférable de le mettre dans la distribution <em>experimental</em>. Un
1070 système expérimental de fichier compressé, par exemple, devrait probablement
1071 aller dans <em>experimental</em>.
1073 Une nouvelle version amont qui ajoute de nouvelles fonctions tout en supprimant
1074 de nombreuses autres ne devra pas être téléchargée dans l'archive Debian,
1075 elle pourra cependant être téléchargée dans <em>experimental</em>. Une
1076 nouvelle version non finalisée d'un logiciel qui utilise une méthode de
1077 configuration complètement différente pourrait aller dans
1078 <em>experimental</em> au gré du responsable. Si vous travaillez sur un cas de
1079 mise à jour complexe ou incompatible, vous pouvez aussi utiliser
1080 <em>experimental</em> comme plate-forme d'intégration et ainsi fournir un
1083 Quelques logiciels expérimentaux peuvent cependant aller dans <em>unstable</em>,
1084 avec un avertissement dans la description, mais ce n'est pas recommandé car
1085 les paquets d'<em>unstable</em> se propagent dans <em>testing</em> et
1086 aboutissent dans <em>stable</em>. Vous ne devriez pas avoir peur d'utiliser
1087 <em>experimental</em> car ceci ne cause aucun souci aux ftpmasters, les
1088 paquets expérimentaux sont automatiquement enlevés quand vous envoyez le
1089 paquet dans <em>unstable</em> avec un numéro de version supérieur.
1091 Un nouveau logiciel qui ne risque pas d'endommager le système ira directement
1092 dans <em>unstable</em>.
1094 Une alternative à <em>experimental</em> consiste à utiliser vos pages
1095 personnelles sur le serveur <tt>people.debian.org</tt>.
1097 <sect1 id="codenames">Les noms de distribution
1099 Chaque distribution Debian diffusée a un <em>nom de code</em> : Debian 1.1
1100 s'appelle « buzz » ; Debian 1.2, « rex » ; Debian
1101 1.3, « bo » ; Debian 2.0, « hamm » ; Debian 2.1,
1102 « slink »; Debian 2.2, « potato » et Debian 3.0,
1103 « woody ». Il y a aussi une pseudo-distribution nommée
1104 « sid », il s'agit de la distribution <em>unstable</em> ; comme
1105 les paquets vont d'<em>unstable</em> à <em>testing</em> quand ils approchent
1106 de la stabilité, la distribution « sid » n'est jamais diffusée. En
1107 plus du contenu habituel d'une distribution Debian, « sid » contient
1108 des paquets pour des architectures qui ne sont pas encore officiellement
1109 reconnues ou pour lesquelles la distribution n'a pas encore été diffusée. Ces
1110 architectures seront intégrées ulterieurement à la distribution principale.
1112 Comme Debian est un projet de développement ouvert (i.e. tout le monde peut
1113 participer et suivre les développements), même les distributions
1114 <em>unstable</em> et <em>testing</em> sont disponibles sur les serveurs HTTP et
1115 FTP de Debian. Si nous avions nommé le répertoire qui contient la prochaine
1116 distribution à diffuser « testing », il aurait fallu changer son nom en
1117 « stable » au moment de la diffusion, ce qui aurait forcé les miroirs
1118 FTP à télécharger à nouveau la distribution complète (qui est plutôt volumineuse).
1120 D'un autre côté, si une distribution s'appelait <em>Debian-x.y</em> dès le
1121 départ, des personnes pourraient s'imaginer que la distribution Debian
1122 <em>x.y</em> est disponible. (Cela s'est produit par le passé, un distributeur
1123 avait gravé des cédéroms Debian 1.0 en utilisant une version de développement
1124 pré-1.0. C'est pour cette raison que la première version officielle était la
1125 version 1.1 et non la 1.0).
1127 En conséquence, les noms de répertoire des distributions dans l'archive sont
1128 déterminés par leur nom de code et non par leur statut (exemple :
1129 slink). Ces noms sont identiques pendant la période de développement et une
1130 fois la distribution diffusée ; des liens symboliques, qui peuvent être
1131 modifiés facilement, indiquent la distribution stable actuelle. Tout ceci
1132 explique pourquoi les répertoires des distributions sont nommés à partir des
1133 noms de code des distributions alors que <em>stable</em>, <em>testing</em> et
1134 <em>unstable</em> sont des liens symboliques qui pointent vers les répertoires
1138 <sect id="mirrors">Les miroirs Debian
1140 Les différentes archives de téléchargement et le site web disposent de plusieurs
1141 miroirs pour soulager les serveurs principaux d'une lourde charge. En fait,
1142 certains de ces serveurs ne sont pas publics et la charge est
1143 répartie sur une première série de serveurs. De cette façon, les
1144 utilisateurs ont toujours accès aux miroirs et s'y habituent, ce qui permet à
1145 Debian de mieux répartir les besoins en bande passante sur plusieurs serveurs et
1146 plusieurs réseaux différents et évitent aux utilisateurs de surcharger
1147 l'emplacement primaire. Notez que, dans cette première série, les serveurs sont aussi à jour
1148 que possible car la mise à jour est déclenchée par les sites maîtres internes.
1150 Toutes les informations sur les miroirs Debian peuvent être trouvées à <url
1151 id="&url-debian-mirrors;">, y compris une liste des miroirs publics disponibles
1152 FTP/HTTP. Cette page utile inclut également des informations et des outils pour
1153 créer son propre miroir, soit en interne soit pour un accès public.
1155 Les miroirs sont en général mis en œuvre par des tiers qui veulent aider
1156 Debian. C'est pourquoi les développeurs n'ont en général pas de compte sur ces
1160 <sect id="incoming-system">
1161 <heading>Le système Incoming
1163 Le système Incoming est responsable de la collecte des paquets mis à jour et de
1164 leur installation dans l'archive Debian. Il est constitué d'un ensemble de
1165 répertoires et de scripts qui sont installés à la fois sur
1166 <tt>&ftp-master-host;</tt> et sur <tt>&non-us-host;</tt>.
1168 Les paquets sont envoyés par tous les responsables Debian dans un répertoire
1169 nommé <file>unchecked</file>. Ce répertoire est parcouru toutes les 15 minutes
1170 par le script <prgn>katie</prgn> qui vérifie l'intégrité des paquets envoyés et
1171 les signatures de chiffrage. Si le paquet est considéré comme prêt à être
1172 installé, il est déplacé dans le répertoire <file>accepted</file>. S'il s'agit
1173 du premier envoi du paquet, il est déplacé dans le répertoire <file>new</file>
1174 où il attend l'approbation des ftpmasters. Si le paquet contient des fichiers
1175 devant être installés <em>à la main</em>, il est déplacé dans le répertoire
1176 <file>byhand</file> où il attend une installation manuelle par les ftpmasters.
1177 Sinon, si une erreur a été détectée, le paquet est refusé et il est déplacé
1178 dans le répertoire <file>reject</file>.
1180 Une fois que le paquet est accepté, le système envoie une confirmation par
1181 courrier au responsable et ferme les bogues corrigés par l'envoi, puis
1182 les compilateurs automatiques peuvent commencer la recompilation. Le paquet est
1183 maintenant accessible publiquement à <url id="&url-incoming;"> (une telle
1184 adresse n'existe pas pour les paquets de l'archive non-US) jusqu'à ce qu'il
1185 soit vraiment installé dans l'archive Debian. Ceci se produit seulement une
1186 fois par jour, le paquet est alors supprimé de <file>Incoming</file> et
1187 installé dans le pool avec les autres paquets. Une fois que toutes les autres
1188 mises à jour (générant des nouveaux fichiers d'index <file>Packages</file> et
1189 <file>Sources</file> par exemple) ont été effectuées, un script spécial est
1190 appelé pour demander aux miroirs primaires de se mettre à jour.
1192 Le logiciel de maintenance de l'archive enverra également le fichier
1193 <file>.changes</file> signé avec OpenPGP/GnuPG que vous avez envoyé, à la liste
1194 de diffusion appropriée. Si un paquet est diffusé avec le champ
1195 <tt>Distribution:</tt> positionné à « stable », l'annonce sera envoyée
1196 à &email-debian-changes;. Si un paquet est diffusé avec le champ
1197 <tt>Distribution:</tt> positionné à « unstable » ou
1198 « experimental », l'annonce sera à la place envoyée à
1199 &email-debian-devel-changes;.
1201 Tous les développeurs Debian ont un droit d'écriture dans le répertoire
1202 <file>unchecked</file> pour pouvoir y envoyer leurs paquets, ils ont également
1203 accès au répertoire <file>reject</file> pour supprimer les mauvais envois ou
1204 déplacer certains fichiers dans le répertoire <file>unchecked</file>. Mais
1205 seuls les ftpmasters ont droit d'écriture dans les autres répertoires.
1206 C'est pourquoi vous ne pouvez pas supprimer un envoi une fois qu'il a été
1209 <sect1 id="delayed-incoming">Incoming différé
1211 Le répertoire <file>unchecked</file> comprend un sous-répertoire spécial,
1212 <file>DELAYED</file><footnote>Différé en anglais</footnote>. Celui-ci est
1213 lui-même subdivisé en neuf répertoires nommés <file>1-day</file> à
1214 <file>9-day</file>. Les paquets qui sont envoyés dans l'un de ces
1215 répertoires seront déplacés dans le vrai répertoire <file>unchecked</file>
1216 après le nombre correspondant de jours. Un script, exécuté chaque jour,
1217 déplace les paquets entre les répertoires. Ceux
1218 qui sont dans « 1-day » sont installés dans
1219 <file>unchecked</file> alors que les autres sont déplacés dans le
1220 répertoire adjacent (par exemple, un paquet dans <file>5-day</file> sera
1221 déplacé dans <file>4-day</file>). Cette fonctionnalité est particulièrement
1222 utile pour les personnes qui effectuent des mises à jour indépendantes
1223 (NMU, « non-maintainer uploads »). Au lieu d'attendre avant
1224 d'envoyer la NMU, elle est envoyée dès qu'elle est prête dans l'un de ces
1225 répertoires <file>DELAYED/<var>x</var>-day</file>. Ceci laisse le nombre
1226 correspondant de jours au responsable pour réagir et envoyer lui-même une
1227 autre correction s'il n'est pas complètement satisfait par la NMU. Il peut
1228 également enlever complètement la NMU.
1230 L'utilisation de ce délai peut être simplifiée en
1231 l'intégrant à votre outil d'envoi. Par exemple, si vous utilisez
1232 <prgn>dupload</prgn> (voir <ref id="dupload">), vous pouvez ajouter cette
1233 partie à votre fichier de configuration :
1235 $delay = ($ENV{DELAY} || 7);
1237 fqdn => "&ftp-master-host;",
1238 login => "yourdebianlogin",
1239 incoming => "/org/ftp.debian.org/incoming/DELAYED/$delay-day/",
1243 Une fois que vous avez fait ce changement, <prgn>dupload</prgn> peut être
1244 utilisé pour envoyer facilement dans l'un des répertoires de délai ainsi :
1245 <example>DELAY=5 dupload --to delayed <changes-file></example>
1249 <heading>La distribution « testing »
1251 Les scripts qui mettent à jour la distribution <em>testing</em> sont exécutés
1252 chaque jour après l'installation des paquets mis à jour. Ils génèrent les
1253 fichiers <file>Packages</file> pour la distribution <em>testing</em>, mais ils
1254 le font d'une manière intelligente pour éviter toute incohérence et essayer de
1255 n'utiliser que des paquets sans bogue.
1257 L'inclusion d'un paquet d'<em>unstable</em> est soumise aux
1258 conditions suivantes :
1259 <list compact="compact">
1260 <item><p>Le paquet doit avoir été disponible dans <em>unstable</em> depuis
1261 plusieurs jours ; le nombre précis dépend du champ d'urgence de
1262 l'envoi. Il s'agit de 10 jours pour une urgence faible, 5 jours pour une
1263 urgence moyenne et 2 jours pour une urgence élevée. Ces délais peuvent
1264 être doublés lors d'un gel de distribution ;</item>
1265 <item><p>Il doit avoir moins de bogues empêchant l'intégration dans la distribution que la
1266 version disponible dans <em>testing</em> ;</item>
1267 <item><p>Il doit être disponible pour toutes les architectures pour lesquelles
1268 il a été auparavant construit. <ref id="madison"> peut être
1269 intéressant pour vérifier cette information ;</item>
1270 <item><p>Il ne doit pas casser les dépendances d'un paquet qui est déjà
1271 disponible dans <em>testing</em> ;</item>
1272 <item><p>Les paquets dont il dépend doivent soit être déjà disponibles dans
1273 <em>testing</em> soit être acceptés dans <em>testing</em> au
1274 même moment (et ils doivent eux-mêmes respecter tous ces
1278 Pour savoir si un paquet a progressé ou non dans <em>testing</em>, veuillez voir la
1279 sortie du script de <em>testing</em> sur la <url name="page web de la distribution testing"
1280 id="&url-testing-maint;"> ou utilisez le programme <prgn>grep-excuses</prgn>
1281 inclus dans le paquet <package>devscripts</package>. Si l'on veut rester
1282 informé de la progression de ses paquets dans <em>testing</em>, on peut
1283 facilement le mettre dans la <manref
1284 section="5" name="crontab">.
1286 Le fichier <file>update_excuses</file> ne donne pas toujours la raison précise
1287 pour laquelle un paquet est refusé, on peut avoir à la chercher soi-même en
1288 regardant ce qui serait cassé avec l'inclusion du paquet. La <url
1289 id="&url-testing-maint;" name="page web de la distribution testing"> donne plus
1290 d'informations à propos des problèmes courants qui peuvent occasionner cela.
1292 Parfois, certains paquets n'entrent jamais dans <em>testing</em> parce que le
1293 jeu des inter-relations est trop compliqué et ne peut être résolu par le
1294 script. Dans ce cas, le responsable de version doit être contacté et il forcera
1295 l'inclusion du paquet.
1297 En général, veuillez vous référer à la <url name="page web de la distribution testing"
1298 id="&url-testing-maint;"> pour plus d'informations. Cette page inclut également
1299 des réponses aux questions fréquemment posées.
1302 <sect id="pkg-info">Informations sur un paquet
1305 <sect1 id="pkg-info-web">Sur le web
1307 Chaque paquet a plusieurs pages web dédiées.
1308 <tt>http://&packages-host;/<var>package-name</var></tt> affiche chaque version
1309 du paquet disponible dans les différentes distributions. Les informations
1310 détaillées par version incluent la description du paquet, les dépendances et
1311 des liens pour récupérer le paquet.
1313 Le système de suivi des bogues trie les bogues par paquet. Vous pouvez regarder
1314 les bogues de chaque paquet à
1315 <tt>http://&bugs-host;/<var>package-name</var></tt>.
1317 <sect1 id="madison">L'outil <prgn>madison</prgn>
1319 <prgn>madison</prgn> est un outil en ligne de commande qui est disponible sur
1320 <tt>&ftp-master-host;</tt> et sur <tt>&non-us-host;</tt>. Il utilise un seul
1321 argument qui correspond au nom du paquet. Il affiche comme résultat quelle
1322 version du paquet est disponible pour chaque combinaison d'architecture et de
1323 distribution. Un exemple l'expliquera mieux.
1326 $ madison libdbd-mysql-perl
1327 libdbd-mysql-perl | 1.2202-4 | stable | source, alpha, arm, i386, m68k, powerpc, sparc
1328 libdbd-mysql-perl | 1.2216-2 | testing | source, arm, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390, sparc
1329 libdbd-mysql-perl | 1.2216-2.0.1 | testing | alpha
1330 libdbd-mysql-perl | 1.2219-1 | unstable | source, alpha, arm, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390, sparc</example>
1332 Dans cet exemple, vous pouvez voir que la version dans <em>unstable</em> diffère
1333 de celle de <em>testing</em> et qu'il y a eu une NMU binaire seulement pour
1334 l'architecture alpha. À chaque fois, le paquet a été recompilé sur la plupart
1338 <sect id="pkg-tracking-system">Système de suivi des paquets
1339 <!-- FIXME: talk about
1340 http://qa.debian.org/developer.php?login=aph@debian.org
1341 http://packages.qa.debian.org/
1342 http://packages.qa.debian.org/pkgname -->
1344 Le système de suivi des paquets (PTS)<footnote>« Package Tracking
1345 System »</footnote> est un outil pour suivre par courrier l'activité
1346 concernant un paquet source. Il suffit simplement de s'inscrire à un
1347 paquet source pour recevoir les courriers liés à celui-ci. Vous
1348 recevrez les mêmes courriers que le responsable. Chaque courrier envoyé par le
1349 PTS est classé et associé à l'un des mots-clés listés ci-dessous. Ceci vous
1350 permettra de sélectionner les courriers que vous voulez recevoir.
1352 Par défaut, vous recevrez :
1355 <item>Tous les rapports de bogue et les discussions qui
1358 <tag><tt>bts-control</tt>
1359 <item>Les courriers de contrôle notifiant le changement d'état de l'un des
1362 <tag><tt>upload-source</tt>
1363 <item>Le courrier de confirmation de <prgn>katie</prgn> quand un paquet
1364 source envoyé a été accepté.
1366 <tag><tt>katie-other</tt>
1367 <item>Les autres courriers d'avertissement et d'erreur de
1368 <prgn>katie</prgn> (comme une incohérence de forçage pour les champs
1369 section ou priorité).
1371 <tag><tt>default</tt>
1372 <item>Tout courrier non automatique envoyé au PTS par les personnes qui
1373 veulent contacter les inscrits au paquet.
1375 <tag><tt>summary</tt>
1376 <item>À l'avenir, vous pourriez recevoir des courriers de résumé pour vous
1377 tenir informé de l'état du paquet (statistiques sur les bogues, vue
1378 générale du portage, progression dans <em>testing</em>,
1383 Vous pouvez également décider de recevoir plus d'informations :
1385 <tag><tt>upload-binary</tt>
1386 <item>Le courrier d'information de <prgn>katie</prgn> quand un paquet
1387 binaire envoyé est accepté (pour vérifier que votre paquet est
1388 recompilé pour toutes les architectures).
1391 <item>Les modifications CVS<footnote><p><em>CVS commits</em></footnote> si le
1392 responsable a mis en place un système pour faire suivre les
1393 notifications de modifications vers le PTS.
1396 <item>Les traductions des descriptions ou des questionnaires debconf soumis
1397 au Projet de traduction des descriptions de paquets
1398 Debian<footnote><p><em>Debian Description Translation Project,
1399 DDTP</em></footnote>.
1403 <sect1 id="pts-commands">L'interface de courrier du PTS
1405 Vous pouvez contrôler votre (vos) inscription(s) au PTS en envoyant différents
1406 commandes à <email>pts@qa.debian.org</email>.
1409 <tag><tt>subscribe <srcpackage> [<email>]</tt>
1410 <item>Inscrit <var>email</var> aux communications liées au paquet source
1411 <var>srcpackage</var>. L'adresse de l'expéditeur est utilisée si le
1412 second argument n'est pas présent. Si <var>srcpackage</var> n'est pas
1413 un paquet source valide, vous obtiendrez un avertissement. Cependant,
1414 s'il s'agit d'un paquet binaire valide, le PTS vous inscrira pour le
1415 paquet source correspondant.
1417 <tag><tt>unsubscribe <srcpackage> [<email>]</tt>
1418 <item>Supprime une inscription précédente au paquet source
1419 <var>srcpackage</var> en utilisant l'adresse spécifiée ou l'adresse de
1420 l'expéditeur si le second argument n'est pas rempli.
1422 <tag><tt>which [<email>]</tt>
1423 <item>Liste les inscriptions pour l'expéditeur ou pour l'adresse indiquée
1424 si elle est spécifiée.
1426 <tag><tt>keyword [<email>]</tt>
1427 <item>Donne les mots-clés que vous acceptez. Chaque courrier envoyé par le
1428 PTS est associé à un mot-clé et vous ne recevez que les courriers associés
1429 aux mots-clés que vous avez acceptés. Voici la liste des mots-clés
1432 <item><tt>bts</tt> : courriers venant du système de gestion de bogues (BTS) Debian
1433 <item><tt>bts-control</tt> : réponses aux courriers envoyés à
1434 &bugs-host;&email-bts-control;
1435 <item><tt>summary</tt> : courriers de résumé automatique sur l'état
1437 <item><tt>cvs</tt> : notifications de modifications CVS
1438 <item><tt>ddtp</tt> : traductions des descriptions et
1439 questionnaires debconf
1440 <item><tt>upload-source</tt> : annonce d'un nouvel envoi de paquet
1441 source qui a été accepté
1442 <item><tt>upload-binary</tt> : annonce d'un nouvel envoi de binaire
1444 <item><tt>katie-other</tt> : autres courriers des ftpmasters
1445 (incohérence de forçage, etc.)
1446 <item><tt>default</tt> : tous les autres courriers (ceux qui ne sont
1450 <tag><tt>keyword <srcpackage> [<email>]</tt>
1451 <item>Identique à l'élément précédent, mais pour un paquet source donné
1452 car vous pouvez sélectionner un ensemble de mots-clés différent pour
1453 chaque paquet source.
1455 <tag><tt>keyword [<email>] {+|-|=} <list of keywords></tt>
1456 <item>Accepte (+) ou refuse (-) les courriers associés au(x) mot(s)-clé(s).
1457 Définit la liste (=) des mots-clés acceptés.
1459 <tag><tt>keyword <srcpackage> [<email>] {+|-|=} <list of keywords></tt>
1460 <item>Identique à l'élément précédent, mais remplace la liste des mots-clés
1461 pour le paquet source indiqué.
1463 <tag><tt>quit | thanks | --</tt>
1464 <item>Arrête le traitement des commandes. Toutes les lignes suivantes sont
1465 ignorées par le robot.
1468 <sect1 id="pts-mail-filtering">Filtrer les courriers du PTS
1470 Une fois que vous vous êtes inscrit à un paquet, vous recevrez les courriers
1471 envoyés à <tt><var>srcpackage</var>@packages.qa.debian.org</tt>. Ces courriers
1472 ont des en-têtes spéciaux ajoutés pour vous permettre de les filtrer dans des
1473 boîtes aux lettres avec <prgn>procmail</prgn>. Les en-têtes ajoutés sont
1474 <tt>X-Loop</tt>, <tt>X-PTS-Package</tt>, <tt>X-PTS-Keyword</tt> et
1475 <tt>X-Unsubscribe</tt>.
1477 Voici un exemple d'en-têtes ajoutés pour une notification d'envoi de
1478 source sur le paquet <package>dpkg</package> :
1480 X-Loop: dpkg@&pts-host;
1482 X-PTS-Keyword: upload-source
1483 X-Unsubscribe: echo 'unsubscribe dpkg' | mail pts@qa.debian.org
1486 <sect1 id="pts-cvs-commit">Faire suivre les modifications de CVS vers le PTS
1488 Si vous utilisez un référentiel CVS accessible publiquement pour maintenir votre
1489 paquet Debian, vous pouvez vouloir faire suivre les notifications de
1490 modifications vers le PTS pour que les inscrits (par exemple, des
1491 co-responsables) puissent suivre de près l'évolution du paquet.
1493 C'est très facile à mettre en place. Une fois que votre référentiel génère des
1494 notifications de modifications, vous devez simplement vous assurer qu'il envoie une
1495 copie de tous ces courriers à <tt><var>srcpackage</var>_cvs@&pts-host;</tt>.
1496 Seules les personnes qui ont accepté le mot-clé <em>cvs</em> recevront les
1500 <sect id="ddpo">Vue d'ensemble des paquets d'un développeur
1502 Un portail web pour l'Assurance Qualité (QA) est disponible à <url
1503 id="&url-ddpo;"> qui affiche un tableau de tous les paquets d'un
1504 développeur (y compris ceux pour lequel il est co-responsable). Le tableau donne
1505 un bon résumé sur les paquets d'un développeur : nombre de bogues par
1506 gravité, liste des versions disponibles, état des tests et des liens vers
1507 d'autres informations utiles.
1509 C'est une bonne idée de vérifier régulièrement vos données pour ne pas oublier
1510 de bogues ouverts et pour ne pas oublier quels paquets sont sous votre
1514 <chapt id="pkgs">Gestion des paquets
1516 Ce chapitre contient des informations relatives à la création, l'envoi, la
1517 maintenance et le portage des paquets.
1520 <sect id="newpackage">Nouveaux paquets
1522 Si vous voulez créer un nouveau paquet pour la distribution Debian, vous devriez
1523 commencer par consulter la liste des <url id="&url-wnpp;" name="paquets en
1524 souffrance et paquets souhaités">. Vous pourrez ainsi vérifier que personne ne
1525 travaille déjà sur ce paquet et éviter un double travail. Consultez aussi cette
1526 page si vous voulez en savoir plus.
1528 Supposons que personne ne travaille sur le paquet que vous visez, vous devez
1529 alors envoyer un rapport de bogue (voir <ref id="submit-bug">) concernant le
1530 pseudo-paquet <package>wnpp</package>. Ce courrier devra décrire le paquet que
1531 vous projetez de créer, la licence de ce paquet et l'URL à laquelle le source
1532 peut être téléchargé. Cette liste n'est pas limitative.
1534 Le sujet de votre rapport de bogue devra être <ITP<footnote><p><em>Intent To
1535 Package</em> : intention de mise en paquet</footnote> :
1536 <var>NomDuPaquet</var> — <var>courte description</var>>, en remplaçant
1537 <var>NomDuPaquet</var> par le nom du paquet. La gravité du bogue sera
1538 <em>wishlist</em>. Si vous le jugez nécessaire, envoyez une copie à
1539 &email-debian-devel; en mettant cette adresse dans le champ
1540 <tt>X-Debbugs-CC:</tt> de l'en-tête du message. N'utilisez pas le champ
1541 <tt>CC:</tt> car de cette manière le sujet du message ne contiendrait pas le
1544 Il faudra aussi ajouter une entrée <tt>Closes: bug#<var>nnnnn</var></tt> dans le
1545 fichier <file>changelog</file> du nouveau paquet. Cette indication fermera
1546 automatiquement le rapport de bogue à l'installation du nouveau paquet sur les
1547 serveurs d'archivage (voir <ref id="upload-bugfix">).
1549 Plusieurs raisons nous poussent à demander aux responsables
1550 d'annoncer leur intention :
1552 <item>Les responsables ont ainsi la possibilité de puiser dans l'expérience
1553 des autres responsables et cela leur permet de savoir si une autre
1554 personne travaille déjà dessus.
1555 <item>D'autres personnes qui envisagent de travailler sur le même paquet
1556 apprendront ainsi qu'il existe déjà un volontaire, l'effort peut alors
1557 être partagé.</item>
1558 <item>Cela permet aux autres responsables de connaître le nouveau
1559 paquet mieux que ne le permettent la description d'une ligne et l'habituelle
1560 entrée de type changelog <em>Initial release</em> postée sur
1561 <tt>debian-devel-changes</tt>.
1562 <item>C'est une information utile pour
1563 les gens qui utilisent la distribution <em>unstable</em> et qui sont nos
1564 premiers testeurs. Nous devons faciliter la tâche de ces gens.
1565 <item>Avec ces annonces, les développeurs Debian et toutes les autres personnes
1566 intéressées peuvent se faire une meilleure idée des évolutions et des
1567 nouveautés du projet.
1571 <sect id="changelog-entries">Enregistrer les modifications dans le paquet
1573 Les modifications que vous apportez au paquet doivent être notifiées dans le
1574 fichier <file>debian/changelog</file>. Ces notes doivent donner une
1575 description concise des changements, expliquer les raisons de ceux-ci (si
1576 ce n'est pas clair) et indiquer si des rapports de bogue ont été clos. Il
1577 faut aussi indiquer quand le paquet a été terminé. Ce fichier sera
1579 <file>/usr/share/doc/<var>paquet</var>/changelog.Debian.gz</file> ou
1580 <file>/usr/share/doc/<var>paquet</var>/changelog.gz</file> pour un paquet
1583 Le fichier <file>debian/changelog</file> a une structure précise comportant
1584 différents champs. Le champ <em>distribution</em> est décrit dans <ref
1585 id="distribution">. Vous trouverez plus d'informations sur la structure de ce
1586 fichier dans la section « <file>debian/changelog</file> » de la
1587 <em>charte Debian</em>.
1589 Les entrées du fichier <file>changelog</file> peuvent être
1590 utilisées pour fermer des rapports de bogue au moment où le paquet est
1591 installé dans l'archive. Voir la section <ref id="upload-bugfix">.
1593 Par convention, l'entrée changelog d'un paquet contenant une nouvelle version
1594 amont ressemble à :
1596 * new upstream version
1599 Quelques outils peuvent vous aider à créer des entrées et à finaliser le fichier
1600 <file>changelog</file> pour une livraison — voir les sections <ref
1601 id="devscripts"> et <ref id="dpkg-dev-el">.
1603 Voir aussi <ref id="bpp-debian-changelog">.
1606 <sect id="sanitycheck">Tester le paquet
1608 Avant d'envoyer votre paquet, vous devriez faire quelques tests de base. Vous
1609 devriez au moins faire les tests suivants (il vous faut une ancienne version
1612 <item>Installez le paquet et vérifiez que le logiciel fonctionne. Si le
1613 paquet existait déjà dans une version plus ancienne, faites une mise à
1615 <item>Exécutez <prgn>lintian</prgn> sur votre paquet. Vous pouvez exécuter
1616 <prgn>lintian</prgn> comme suit : <tt>lintian -v
1617 <var>package-version</var>.changes</tt>. Ce programme fera une
1618 vérification sur les paquets source et binaire. Si vous ne comprenez pas
1619 les messages générés par <prgn>lintian</prgn>, essayez l'option
1620 <tt>-i</tt>. Cette option rendra <prgn>lintian</prgn> beaucoup plus
1621 bavard dans sa description du problème.
1623 En principe, un paquet pour lequel <prgn>lintian</prgn> génère des erreurs
1624 (elles commencent par <tt>E</tt>) <em>ne doit pas</em> être installé dans
1627 Pour en savoir plus sur <prgn>lintian</prgn>, reportez-vous à la section
1629 <item>Vous pouvez facultativement exécuter <ref id="debdiff"> pour analyser les
1630 modifications depuis une ancienne version si celle-ci existe.
1631 <item>Faites régresser le paquet vers sa version précédente si elle existe
1632 — cela permet de tester les scripts <file>postrm</file> et
1634 <item>Désinstallez le paquet et réinstallez-le.
1638 <sect id="sourcelayout">Disposition du paquet source
1640 Il existe deux types de paquets sources Debian :
1642 <item>les paquets soi-disant appelés <em>natifs</em> pour lesquels il
1643 n'y a pas de distinction entre les sources d'origine et les
1644 correctifs appliqués pour Debian
1645 <item>les paquets (plus courants) où il y a un fichier archive source
1646 d'origine accompagné par un autre fichier contenant les
1647 correctifs pour Debian.
1650 Pour les paquets natifs, le paquet source inclut un fichier de contrôle source
1651 Debian (<tt>.dsc</tt>) et l'archive source (<tt>.tar.gz</tt>). Un paquet source
1652 d'un paquet non natif inclut un fichier de contrôle source Debian, l'archive
1653 source d'origine (<tt>.orig.tar.gz</tt>) et les correctifs Debian
1654 (<tt>.diff.gz</tt>).
1656 Le caractère natif d'un paquet est déterminé lorsqu'il est construit par <manref
1657 name="dpkg-buildpackage" section="1">. Le reste de cette section ne se rapporte
1658 qu'aux paquets non natifs.
1661 La première fois qu'un paquet est installé dans l'archive pour une version amont
1662 donnée, le fichier <file>tar</file> de cette version amont doit être
1663 téléchargé et mentionné dans le fichier <file>.changes</file>. Par la suite,
1664 ce fichier <file>tar</file> sera utilisé pour générer les fichiers
1665 <file>diff</file> et <file>.dsc</file> et il ne sera pas nécessaire de le
1666 télécharger à nouveau.
1668 Par défaut, <prgn>dpkg-genchanges</prgn> et <prgn>dpkg-buildpackage</prgn>
1669 incluront le fichier <file>tar</file> amont si et seulement si le numéro de
1670 révision du paquet source est 0 ou 1, ce qui indique une nouvelle version
1671 amont. Ce comportement peut être modifié en utilisant <tt>-sa</tt> pour
1672 l'inclure systématiquement ou <tt>-sd</tt> pour ne jamais l'inclure.
1674 Si la mise à jour ne contient pas le fichier <file>tar</file> des sources
1675 originaux, <prgn>dpkg-source</prgn> <em>doit</em>, pour construire les
1676 fichiers <file>.dsc</file> et <file>diff</file> de la mise à jour, utiliser
1677 un fichier <tt>tar</tt> identique à l'octet près à celui déjà présent dans
1680 <sect1 id="distribution">Choisir une distribution
1682 Chaque envoi doit spécifier à quelle distribution le paquet est destiné. Le
1683 processus de construction de paquet extrait cette information à partir de la
1684 première ligne du fichier <file>debian/changelog</file> et la place dans le champ
1685 <tt>Distribution</tt> du fichier <tt>.changes</tt>.
1687 Il existe plusieurs valeurs possibles pour ce champ : « stable »,
1688 « unstable », « testing-proposed-updates » et
1689 « experimental ».
1691 En fait, il y a deux autres possibilités :
1692 « stable-security » et « testing-security », mais
1693 veuillez lire <ref id="bug-security"> pour plus d'informations sur celles-ci.
1695 Il est techniquement possible d'envoyer un paquet dans plusieurs distributions
1696 en même temps, mais ceci n'a habituellement aucun sens d'utiliser cette
1697 fonctionnalité car les dépendances d'un paquet peuvent varier selon les
1698 distributions. En particulier, il est absurde de combiner la distribution
1699 <em>experimental</em> avec tout autre chose.
1701 <sect1 id="upload-stable">Mise à jour d'un paquet de la distribution
1704 Livrer un paquet pour la distribution <em>stable</em> signifie que le paquet
1705 sera dirigé vers le répertoire <file>stable-proposed-updates</file> des
1706 archives Debian pour y être testé avant d'être effectivement inclus dans
1709 Une livraison pour la distribution <em>stable</em> requiert des soins
1710 supplémentaires. Un paquet de cette distribution ne devrait être mis à jour
1711 que dans les cas suivants :
1713 <item>un problème de sécurité (un avis de sécurité Debian<footnote>Debian
1714 security advisory</footnote>),
1715 <item>un problème fonctionnel vraiment critique,
1716 <item>un paquet devenu ininstallable,
1717 <item>un paquet indisponible pour une architecture.
1720 Il est fortement déconseillé de changer quoi que ce soit si ce
1721 n'est pas important car même une modification triviale peut provoquer un
1722 bogue. Livrer une nouvelle version amont d'un logiciel pour
1723 corriger un problème de sécurité est désapprouvé ; dans la plupart
1724 des cas, la bonne solution consiste à prendre le correctif correspondant de
1725 la nouvelle version amont et à l'appliquer à l'ancienne (faire un
1726 rétroportage<footnote><em>backport</em></footnote> du correctif).
1728 Les paquets livrés pour <em>stable</em> doivent être compilés avec la
1729 distribution <em>stable</em> pour que leurs dépendances se limitent aux
1730 bibliothèques (et autres paquets) disponibles dans <em>stable</em> ;
1731 un paquet livré pour la distribution <em>stable</em> qui dépend d'une
1732 bibliothèque qui n'est disponible que dans <em>unstable</em> sera rejeté.
1733 Modifier les dépendances d'autres paquets (en manipulant le champ
1734 <tt>Provides</tt> ou les fichiers shlibs) et, peut-être, rendre ces paquets
1735 ininstallables, est fortement déconseillé.
1737 L'équipe responsable de la distribution<footnote><em>the Release
1738 team</em></footnote> (joignable à l'adresse &email-debian-release;)
1739 évaluera régulièrement le contenu de <em>stable-proposed-updates</em> et
1740 décidera si votre paquet peut être inclus dans la distribution
1741 <em>stable</em>. Soyez précis (et, si nécessaire, prolixe) quand vous
1742 décrivez, dans le fichier changelog, vos changements pour une livraison
1743 vers <em>stable</em>, sinon le paquet ne sera pas pris en considération.
1745 <sect1 id="upload-t-p-u">Mise à jour d'un paquet de la distribution
1746 <em>testing-proposed-updates</em>
1748 La distribution <em>testing</em> est peuplée avec des paquets en provenance
1749 d'<em>unstable</em> selon des règles expliquées dans <ref id="testing">.
1750 Cependant, le responsable de distribution peut stopper les scripts de
1751 <em>testing</em> quand il veut geler la distribution. Dans ce cas, vous
1752 pouvez envoyer vos paquets vers <em>testing-proposed-updates</em> pour
1753 fournir des paquets corrigés durant le gel.
1755 Souvenez-vous que les paquets envoyés là ne sont pas traités automatiquement,
1756 ils doivent passer entre les mains du responsable de distribution. Vous devez
1757 donc avoir une bonne raison pour les y envoyer. Pour savoir ce que
1758 représente une bonne raison aux yeux du responsable de distribution, vous
1759 devriez lire les instructions données qu'il envoie régulièrement sur
1760 &email-debian-devel-announce;.
1762 Vous ne devriez pas envoyer un paquet à <em>testing-proposed-updates</em> quand
1763 vous pouvez le mettre à jour par <em>unstable</em>. Si vous ne pouvez faire
1764 autrement (par exemple, parce que vous avez une nouvelle version dans
1765 <em>unstable</em>), vous pouvez l'utiliser, mais il est recommandé de
1766 demander l'autorisation du responsable de distribution auparavant.
1769 <sect id="upload">Mettre à jour un paquet
1771 <sect1 id="upload-ftp-master">Installer un paquet sur
1774 Pour installer un paquet, vous avez besoin d'un compte sur
1775 <ftpsite>&ftp-master-host;</ftpsite>, ce que vous devriez déjà avoir en tant
1776 que développeur Debian. Si vous utilisez <prgn>scp</prgn> ou
1777 <prgn>rsync</prgn> pour télécharger vos paquets, placez-les dans
1778 &us-upload-dir;. Si vous utilisez un FTP anonyme, placez-les dans
1779 &upload-queue;. Attention, il est préférable de transférer le fichier
1780 <tt>changes</tt> en dernier. Dans le cas contraire, votre livraison pourrait
1781 être rejetée car l'outil de maintenance de l'archive pourrait lire le fichier
1782 <tt>changes</tt> et constater que les fichiers ne sont pas tous présents. Si
1783 vous ne voulez pas vous embêter avec l'ordre de transfert des fichiers, vous
1784 pouvez tout simplement copier vos fichiers dans un répertoire temporaire de
1785 <tt>ftp-master</tt> et les déplacer ensuite vers &us-upload-dir;.
1787 <em>Note :</em> ne téléchargez pas sur <tt>ftp-master</tt> de paquet
1788 concernant la cryptographie qui appartiendrait à <em>contrib</em> ou <em>non-free</em>.
1789 Ces logiciels doivent aller sur <tt>non-us</tt> (voir <ref
1790 id="upload-non-us">). De plus, les paquets contenant un logiciel protégé par
1791 des brevets américains ne peuvent pas être envoyés sur
1792 <tt>ftp-master</tt> ; selon le cas, ils peuvent peut-être pourtant être
1793 envoyés vers <file>non-US/non-free</file> (le paquet est dans
1794 <em>non-free</em> à cause de problèmes de distribution et non pas à cause de
1795 la licence du logiciel). Quand vous ne pouvez télécharger sur
1796 <tt>ftp-master</tt>, vous ne pouvez pas non plus télécharger sur
1797 <tt>chiark</tt> ou <tt>erlangen</tt>. Si vous ne savez pas si votre paquet
1798 est protégé par un brevet ou s'il est soumis aux lois de contrôle des
1799 exportations américaines, posez la question sur la liste
1800 &email-debian-devel;.
1802 Les paquets <ref id="dupload"> ou <ref id="dput"> pourront vous faciliter le
1803 travail lors du téléchargement. Ces programmes, bien pratiques, aident à
1804 automatiser le processus d'envoi de paquets vers Debian
1806 Après avoir téléchargé votre paquet, vous pouvez vérifier ce qu'en
1807 fera le logiciel de maintenance de l'archive en exécutant
1808 <prgn>dinstall</prgn> sur votre fichier <file>.changes</file> :
1809 <example>dinstall -n foo.changes</example>
1811 Notez que <prgn>dput</prgn> peut le faire automatiquement pour vous.
1813 <sect1 id="upload-non-us">Installer un paquet sur <tt>non-US</tt>
1815 Comme nous l'avons dit un peu plus haut, les programmes soumis au contrôle des
1816 exportations américaines ne doivent pas être installés sur
1817 <tt>ftp-master</tt>. Installez le paquet sur
1818 <ftpsite>non-us.debian.org</ftpsite> dans le répertoire &non-us-upload-dir;
1819 (<ref id="dupload"> et <ref id="dput"> avec les options adéquates peuvent
1820 tous deux être utilisés pour cela). Par défaut, vous pouvez utiliser le même
1821 <em>login/mot de passe</em> que pour <tt>ftp-master</tt>. Si vous utilisez
1822 une connexion FTP anonyme pour le téléchargement, placez vos fichiers dans le
1823 répertoire &upload-queue;.
1825 Tout comme sur <tt>ftp-master</tt>, vous pouvez vérifier votre téléchargement
1826 avec : <example>dinstall -n foo.changes</example>
1828 Attention, les personnes résidant aux États-Unis et les citoyens américains sont
1829 soumis à des restrictions sur l'exportation des logiciels de cryptographie.
1830 Au moment où j'écris, les citoyens américains peuvent exporter quelques
1831 logiciels de cryptographie soumis à une obligation de déclaration auprès du
1832 département du commerce américain. Toutefois, cette restriction a été
1833 abandonnée pour des logiciels qui sont déjà disponibles en dehors des
1834 États-Unis. En conséquence, tout logiciel de cryptographie de la section
1835 <em>main</em> de l'archive Debian qui ne dépend d'aucun paquet d'une autre
1836 section — il ne doit pas dépendre de <em>non-US/main</em> — peut
1837 être téléchargé sur <tt>ftp-master</tt> ou l'une de ses files d'attente
1840 La <em>charte Debian</em> n'empêche pas les résidents et citoyens américains de
1841 livrer des paquets sur <tt>non-US</tt> mais ils devront être vigilants en le
1842 faisant. Nous recommandons aux responsables concernés de prendre toutes les
1843 précautions nécessaires, <em>y compris la consultation d'un juriste</em>,
1844 pour s'assurer qu'ils n'enfreignent pas une loi américaine en livrant un
1845 paquet sur <tt>non-US</tt>.
1847 Pour les paquets des sections <em>non-US/main</em> et <em>non-US/contrib</em>,
1848 les responsables devraient au moins suivre la <url id="&url-u.s.-export;"
1849 name="procédure décrite par le gouvernement américain">. Les responsables de
1850 paquets <em>non-US/non-free</em> devront en plus consulter les <url
1851 id="&url-notification-of-export;" name="règles de déclaration d'exportation
1852 pour les logiciels commerciaux">.
1854 Cette section a pour seul but d'informer, elle n'a pas valeur de conseil
1855 juridique. Une fois encore, nous recommandons aux résidents et citoyens
1856 américains de consulter un juriste avant de livrer un paquet sur
1859 <sect1>Installer un paquet via <tt>chiark</tt>
1861 Si votre connexion vers <tt>ftp-master</tt> est lente, vous avez plusieurs
1862 possibilités. L'une d'elles consiste à télécharger vos fichiers dans
1863 <file>Incoming</file> en passant par le serveur <tt>chiark</tt> en Europe.
1864 Pour les détails, consultez <url id="&url-chiark-readme;">.
1866 Attention, ne téléchargez pas de paquet contenant un logiciel soumis aux lois de
1867 contrôle des exportations américaines sur <tt>chiark</tt>. Les paquets
1868 téléchargés sur ce serveur sont redirigés vers <tt>ftp-master</tt>, les
1869 indications de la section <ref id="upload-ftp-master"> sont applicables ici
1872 Le programme <prgn>dupload</prgn> est capable de télécharger sur
1873 <tt>chiark</tt> ; consultez la documentation de ce programme pour en
1876 <sect1>Installer un paquet via <tt>erlangen</tt>
1878 Vous pouvez aussi accéder à un serveur situé en Allemagne : il vous suffit
1879 d'ouvrir une connexion anonyme sur <url id="&url-upload-erlangen;">.
1881 Le téléchargement fait sur ce serveur doit être aussi complet que s'il était
1882 fait dans le répertoire <file>Incoming</file> sur <tt>ftp-master</tt> : il
1883 doit comporter le fichier <file>.changes</file> et tous les fichiers
1884 mentionnés dans ce dernier. Le serveur vérifie que le fichier
1885 <file>.changes</file> est bien signé avec la clé PGP d'un développeur Debian
1886 pour éviter que des faux paquets n'atteignent <tt>ftp-master</tt>. Vérifiez
1887 bien que le champ <tt>Maintainer</tt> du fichier <file>.changes</file>
1888 contient <em>votre</em> adresse électronique. De même que sur
1889 <tt>ftp-master</tt>, cette adresse est ensuite utilisée pour toutes les
1892 Il n'est pas nécessaire de déplacer votre fichier dans un autre répertoire après
1893 le téléchargement, contrairement au serveur <tt>chiark</tt>. Vous devriez
1894 ensuite recevoir un courrier du serveur expliquant ce qu'il a fait de votre
1895 paquet. Normalement, il devrait avoir été déplacé vers
1896 <tt>ftp-master</tt> ; vous serez informé par le même biais si une erreur
1897 s'est produite au cours du processus.
1899 Attention, ne téléchargez pas de paquet contenant un logiciel soumis aux lois de
1900 contrôle des exportations américaines sur <tt>erlangen</tt>. Les paquets
1901 téléchargés sur ce serveur sont redirigés vers <tt>ftp-master</tt>, les
1902 indications de la section <ref id="upload-ftp-master"> sont applicables ici
1905 Le programme <prgn>dupload</prgn> est capable de télécharger sur
1906 <tt>erlangen</tt> ; consultez la documentation de ce programme pour en
1909 <sect1>Les autres serveurs
1911 Un autre serveur est disponible aux États-Unis ; c'est un bon point de
1912 repli quand il est difficile de joindre <tt>ftp-master</tt>. Livrez vos
1913 paquets à l'adresse <url id="&url-upload-samosa;"> comme vous le feriez sur
1916 Il existe aussi un serveur au Japon : téléchargez vos paquet par FTP
1917 anonyme sur <url id="&url-upload-jp;">.
1919 <sect1 id="upload-notification">
1920 <heading>Notification de l'installation d'un nouveau paquet</heading>
1922 Les administrateurs de l'archive Debian sont responsables de l'installation des
1923 mises à jour. La plupart des mises à jour sont gérées quotidiennement par le
1924 logiciel de gestion de l'archive <prgn>katie</prgn>. Les mises à jour de
1925 paquets sur la distribution <em>unstable</em> sont installées
1926 ainsi. Dans les autres cas et notamment dans le cas d'un nouveau paquet,
1927 celui-ci sera installé manuellement. Il peut s'écouler jusqu'à un mois entre le
1928 téléchargement d'un paquet vers un serveur et son installation effective. Soyez
1931 Dans tous les cas, vous recevrez un accusé de réception par courrier
1932 électronique indiquant que votre paquet a été installé et quels rapports de
1933 bogues ont été clos. Lisez attentivement ce courrier et vérifiez que tous les
1934 rapports de bogue que vous vouliez clore sont bien dans cette liste.
1936 L'accusé de réception indique aussi la section dans laquelle le paquet a été
1937 installé. S'il ne s'agit pas de votre choix, vous recevrez un second courrier
1938 qui vous informera de cette différence (voir ci-dessous).
1941 <sect id="override-file">Déterminer la section et la priorité d'un paquet
1943 Les champs <tt>Section</tt> et <tt>Priority</tt> du fichier
1944 <file>debian/control</file> n'indiquent ni où le paquet sera installé dans
1945 l'archive Debian, ni sa priorité. Afin de conserver la cohérence de
1946 l'archive, ce sont les administrateurs qui contrôlent ces champs. Les valeurs
1947 du fichier <file>debian/control</file> sont juste des indications.
1949 Les administrateurs de l'archive indiquent les sections et priorités des paquets
1950 dans le fichier <em>override</em>. Si ce fichier <em>override</em> et le
1951 fichier <file>debian/control</file> de votre paquet diffèrent, vous en serez
1952 informé par courrier électronique quand votre paquet sera installé dans
1953 l'archive. Vous pourrez corriger votre fichier <em>debian/control</em> avant
1954 votre prochain téléchargement ou alors vous pourrez vouloir modifier le
1955 fichier <em>override</em>.
1957 Pour modifier la section dans laquelle un paquet est archivé, vous devez d'abord
1958 vérifier que fichier <file>debian/control</file> est correct. Ensuite,
1959 envoyez un courrier à &email-override; ou un rapport de bogue sur le
1960 pseudo-paquet <package>ftp.debian.org</package> demandant la modification de
1961 la section ou de la priorité de votre paquet. Exposez bien les raisons qui
1962 vous amènent à demander ces changements.
1964 Pour en savoir plus sur les <em>fichiers override</em>, reportez-vous à <manref
1965 name="dpkg-scanpackages" section="8"> et <url
1966 id="&url-bts-devel;#maintincorrect">.
1968 Notez également que le terme « section » est utilisé pour la
1969 séparation des paquets selon leur licence, e.g <em>main</em>, <em>contrib</em>
1970 et <em>non-free</em>. Ceci est décrit dans une autre section, <ref
1974 <sect id="bug-handling">Gérer les bogues
1976 Chaque développeur doit être capable de travailler avec le <url name="système de
1977 suivi des bogues" id="&url-bts;"> Debian. Il faut savoir comment remplir
1978 des rapports de bogue correctement (voir <ref id="submit-bug">), comment les
1979 mettre à jour et les réordonner et comment les traiter et les fermer.
1981 Les fonctionnalités du système de suivi des bogues qui intéressent les
1982 développeurs sont décrites dans la <url id="&url-bts-devel;" name="documentation
1983 du BTS pour les développeurs">. Ceci inclut la fermeture des bogues, l'envoi des
1984 messages de suivi, l'assignation des niveaux de gravité, des marques,
1985 l'indication que les bogues ont été envoyés au développeur amont et autres
1988 Des opérations comme réassigner des bogues à d'autres paquets, réunir des
1989 rapports de bogues séparés traitant du même problème ou réouvrir des bogues
1990 quand ils ont été prématurément fermés, sont gérées en utilisant le serveur de
1991 courrier de contrôle. Toutes les commandes disponibles pour ce serveur sont
1992 décrites dans la <url id="&url-bts-control;" name="documentation du serveur de
1995 <sect1 id="bug-monitoring">Superviser les rapports de bogue
1997 Si vous voulez être un bon responsable, consultez régulièrement la page du <url
1998 id="&url-bts;" name="système de suivi des bogues">. Cette page contient tous
1999 les rapports de bogue qui concernent vos paquets. Vous pouvez les vérifier avec
2000 cette page : <tt>http://&bugs-host;/<var>yourlogin</var>@debian.org</tt>.
2002 Les responsables interagissent avec le système de suivi des bogues en utilisant
2003 l'adresse électronique <tt>&bugs-host;</tt>. Vous trouverez une documentation
2004 sur les commandes disponibles à l'adresse <url id="&url-bts;"> ou, si vous avez
2005 installé le paquet <package>doc-debian</package>, dans les fichiers locaux
2008 Certains trouvent utile de recevoir régulièrement une synthèse des rapports de
2009 bogues ouverts. Si vous voulez recevoir une synthèse hebdomadaire relevant tous
2010 les rapports de bogue ouverts pour vos paquets, vous pouvez configurer
2011 <prgn>cron</prgn> comme suit :
2013 # Synthèse hebdomadaire des rapports de bogue qui me concernent
2016 Remplacez <var>address</var> par votre adresse officielle de responsable Debian.
2018 <sect1 id="bug-answering">Répondre à des rapports de bogue
2020 Assurez-vous que toutes vos discussions concernant les bogues sont envoyées au
2021 rapporteur du bogue et au bogue lui-même (<email>123@&bugs-host;</email>
2022 par exemple). Si vous rédigez un nouveau courrier et que vous ne vous souvenez
2023 plus de l'adresse du rapporteur de bogue, vous pouvez utiliser l'adresse
2024 <email>123-submitter@&bugs-host;</email> pour contacter le rapporteur
2025 <em>et</em> enregistrer votre courrier dans le journal du bogue (ce qui veut
2026 dire que vous n'avez pas besoin d'envoyer une copie du courrier à
2027 <email>123@&bugs-host;</email>).
2029 Une fois que vous avez traité un rapport de bogue (i.e. que vous l'avez
2030 corrigé), marquez-le comme <em>done</em> (fermez-le) en envoyant un message
2031 d'explication à <email>123-done@&bugs-host;</email>. Si vous corrigez un
2032 bogue en changeant et en envoyant une nouvelle version du paquet, vous pouvez
2033 fermer le bogue automatiquement comme décrit dans <ref id="upload-bugfix">.
2035 Vous ne devez <em>jamais</em> fermer un rapport de bogue en envoyant la commande
2036 <tt>close</tt> à l'adresse &email-bts-control;.Si vous le faites, le rapporteur
2037 n'aura aucune information sur la clôture de son rapport.
2039 <sect1 id="bug-housekeeping">Gestion générale des bogues
2041 En tant que responsable de paquet, vous trouverez fréquemment des bogues dans
2042 d'autres paquets ou vous aurez des bogues sur vos paquets qui sont en fait des
2043 bogues sur d'autres paquets. Les fonctions intéressantes du système de suivi
2044 des bogues pour les développeurs sont décrites dans la <url
2045 id="&url-bts-devel;" name="documentation du BTS pour les développeurs Debian">.
2046 Les <url id="&url-bts-control;" name="instructions du serveur de contrôle du
2047 BTS"> documentent les opérations techniques du BTS, telles que comment remplir,
2048 réassigner, regrouper et marquer des bogues. Cette section contient des lignes
2049 directrices pour gérer vos propres bogues, définies à partir de l'expérience
2050 collective des développeurs Debian.
2052 Remplir des rapports de bogue pour des problèmes que vous trouvez dans d'autres
2053 paquet est l'une des « obligations civiques » du responsable,
2054 reportez-vous à <ref id="submit-bug"> pour les détails. Cependant, gérer les
2055 bogues de vos propres paquets est encore plus important.
2057 Voici une liste des étapes que vous pouvez suivre pour gérer un rapport de
2061 Décider si le rapport correspond à un bogue réel ou non. Parfois, les
2062 utilisateurs exécutent simplement un programme de la mauvaise façon car
2063 ils n'ont pas lu la documentation. Si c'est votre diagnostic, fermez
2064 simplement le bogue avec assez d'informations pour laisser l'utilisateur
2065 corriger son problème (donnez des indications vers la bonne
2066 documentation et ainsi de suite). Si le rapport de bogue revient
2067 régulièrement, vous devriez vous demander si la documentation est assez
2068 bonne ou si le programme ne devrait pas détecter une mauvaise
2069 utilisation pour donner un message d'erreur informatif. Il s'agit d'un
2070 problème qui peut être présenté à l'auteur amont.
2072 Si le rapporteur de bogue n'est pas d'accord avec votre décision de
2073 fermeture du bogue, il peut le ré-ouvrir jusqu'à ce que vous trouviez un
2074 accord sur la façon de le gérer. Si vous n'en trouvez pas, vous pouvez
2075 marquer le bogue avec <tt>wontfix</tt> pour indiquer aux personnes que
2076 le bogue existe, mais ne sera pas corrigé. Si cette situation n'est pas
2077 acceptable, vous (ou le rapporteur) pouvez vouloir demander une décision
2078 par le comité technique en réattribuant le bogue à
2079 <package>tech-ctte</package> (vous pouvez utiliser la commande
2080 <tt>clone</tt> du BTS si vous désirez garder le bogue comme rapporté sur
2081 votre paquet). Avant de faire cela, veuillez lire la <url
2082 id="&url-tech-ctte;" name="procédure recommandée">.
2085 Si le bogue est réel, mais est causé par un autre paquet,
2086 réattribuez simplement le bogue à l'autre paquet. Si vous ne savez pas à
2087 quel paquet il doit être réattribué, vous pouvez demander de l'aide sur
2088 &email-debian-devel; ou vous pouvez le réattribuer à
2089 <package>debian-policy</package> pour les laisser décider dans quel
2090 paquet est située l'erreur.
2092 Parfois, vous devez également ajuster la gravité du bogue pour qu'elle
2093 corresponde à notre définition de gravité des bogues. C'est dû au
2094 fait que les gens tendent à augmenter la gravité des bogues pour
2095 s'assurer que leurs bogues seront corrigés rapidement. La gravité de
2096 certains bogues peut même être rétrogradée en <em>wishlist</em> (souhait)
2097 quand le changement demandé est seulement d'ordre cosmétique.
2100 Le rapporteur de bogue peut avoir oublié de fournir certaines
2101 informations. Dans ce cas, vous devez lui demander les informations
2102 nécessaires. Vous pouvez utiliser la marque <tt>moreinfo</tt> (plus
2103 d'information) sur le bogue. De plus, si vous ne pouvez pas reproduire le
2104 bogue, vous pouvez le marquer comme <tt>unreproducible</tt> (non
2105 reproductible). Une personne qui arriverait à reproduire le bogue est
2106 alors invitée à fournir plus d'informations sur la façon de le
2107 reproduire. Après quelques mois, si cette information n'a été envoyée
2108 par personne, le bogue peut être fermé.
2111 Si le bogue est lié à l'empaquetage, vous devez simplement le
2112 corriger. Si vous ne pouvez pas le corriger vous-même, marquez alors le
2113 bogue avec <tt>help</tt> (aide). Vous pouvez également demander de
2114 l'aide sur &email-debian-devel; ou &email-debian-qa;. S'il s'agit d'un
2115 problème amont, vous devez faire suivre le rapport à l'auteur amont.
2116 Faire suivre un bogue n'est pas suffisant, vous devez vérifier à chaque
2117 version si le bogue a été corrigé ou non. S'il a été corrigé, vous le
2118 fermez simplement, sinon vous devez le rappeler à l'auteur. Si vous avez
2119 les compétences nécessaires, vous pouvez préparer un correctif pour
2120 corriger le bogue et l'envoyer en même temps à l'auteur. Assurez-vous
2121 d'envoyer le correctif au BTS et marquez le bogue avec <tt>patch</tt>
2125 Si vous avez corrigé un bogue sur votre copie locale ou si un correctif
2126 a été inclus dans le référentiel CVS, vous pouvez marquer le bogue avec
2127 <tt>pending</tt> (en attente) pour informer que le bogue est corrigé et
2128 qu'il sera fermé lors du prochain envoi (ajoutez le <tt>closes:</tt>
2129 dans le <file>changelog</file>). C'est particulièrement utile si
2130 plusieurs développeurs travaillent sur le même paquet.
2133 Une fois que le paquet corrigé est disponible dans la distribution
2134 <em>unstable</em>, vous pouvez fermer le bogue. Ceci peut être fait
2135 automatiquement, pour cela, reportez-vous à <ref id="upload-bugfix">.
2139 <sect1 id="upload-bugfix">Quand les rapports de bogue sont-ils fermés par
2140 une mise à jour ?
2142 Au fur et à mesure que les bogues et problèmes sont corrigés dans vos paquets,
2143 il est de votre responsabilité de fermer le rapport de bogue associé.
2144 Cependant, vous ne devez pas le fermer avant que le paquet n'ait été accepté
2145 dans l'archive Debian. C'est pourquoi, vous pouvez et vous devez clore le
2146 rapport dans le système de suivi des bogues une fois que vous avez reçu l'avis
2147 indiquant que votre nouveau paquet a été installé dans l'archive.
2149 Cependant, il est possible d'éviter d'avoir à fermer manuellement les bogues
2150 après l'envoi — indiquez simplement les bogues corrigés dans le fichier
2151 <file>changelog</file> en suivant une syntaxe précise. Par exemple :
2154 acme-cannon (3.1415) unstable; urgency=low
2156 * Frobbed with options (closes: Bug#98339)
2157 * Added safety to prevent operator dismemberment, closes: bug#98765,
2159 * Added man page. Closes: #98725.
2162 Techniquement parlant, l'expression rationnelle Perl suivante décrit comment les
2163 lignes de <em>changelogs</em> de fermeture de bogues sont identifiées :
2166 /closes:\s*(?:bug)?\#\s*\d+(?:,\s*(?:bug)?\#\s*\d+)*/ig
2169 Nous préfèrons la syntaxe <tt>closes: #<var>XXX</var></tt>, car c'est l'entrée
2170 la plus concise et la plus facile à intégrer dans le texte du fichier
2171 <file>changelog</file>.
2173 Si vous entrez un numéro de bogue incorrect ou si vous oubliez un bogue dans les
2174 entrées du fichier <file>changelog</file>, n'hésitez pas à annuler tout dommage
2175 que l'erreur a entraîné. Pour réouvrir un bogue fermé par erreur, envoyez une
2176 commande <tt>reopen <var>XXX</var></tt> à l'adresse de contrôle du système de
2177 suivi des bogues, &email-bts-control;. Pour fermer tous les bogues restants qui
2178 ont été corrigés par votre envoi, envoyez le fichier <file>.changes</file> à
2179 <email>XXX-done@&bugs-host;</email> où <var>XXX</var> est le numéro du
2182 Rappelez-vous qu'il n'est pas obligatoire de fermer les bogues en utilisant le
2183 <file>changelog</file> tel que décrit ci-dessus. Si vous désirez simplement
2184 fermer les bogues qui n'ont rien à voir avec l'un de vos envois, faites-le
2185 simplement en envoyant une explication à
2186 <email>XXX-done@&bugs-host;</email>. Vous <strong>ne devez pas</strong> pas
2187 fermer des bogues dans une entrée de changelog d'une version si les
2188 changements dans cette version n'ont rien à voir avec le bogue.
2190 Pour une information plus générale sur ce qu'il faut mettre dans les entrées de
2191 changelog, veuillez vous reporter aux <ref id="bpp-debian-changelog">.
2193 <sect1 id="bug-security">Gérer les bogues de sécurité
2195 À cause de leur nature sensible, les bogues liés à la sécurité doivent être
2196 soigneusement traités. L'équipe de sécurité de Debian est là pour coordonner
2197 cette activité, pour faire le suivi des problèmes de sécurité en cours, pour
2198 aider les responsables ayant des problèmes de sécurité ou pour les corriger
2199 elle-même, pour envoyer les annonces de sécurité et pour maintenir le site
2200 security.debian.org.
2202 <sect2 id="bug-security-you">Que faire si vous apprenez l'existence d'un
2203 problème de sécurité ?
2205 Si vous prenez connaissance d'un bogue lié à un problème de sécurité sur un
2206 paquet Debian, que vous soyez ou non le responsable, regroupez les
2207 informations pertinentes sur le problème et contactez rapidement l'équipe de
2208 sécurité à &email-security-team;. Les informations utiles incluent, par
2213 les versions du paquet connues pour être affectées par le bogue. Vérifiez
2214 chaque version présente dans les distributions maintenues par Debian ainsi
2215 que dans <em>testing</em> et dans <em>unstable</em>,
2218 la nature d'une solution si elle est disponible (les correctifs sont
2219 particulièrement utiles),
2222 tout paquet corrigé que vous avez vous-même préparé (envoyez seulement les
2223 fichiers <file>.diff.gz</file> et <file>.dsc</file>),
2226 toute information nécessaire pour l'annonce de sécurité (voir <ref
2227 id="bug-security-advisories">).
2231 <sect2 id="bug-security-confidentiality">Confidentialité
2233 À la différence de la plupart des autres activités au sein de Debian, les
2234 informations sur les problèmes de sécurité doivent parfois être gardées en
2235 privé pour un certain temps. Cette décision dépend de la nature du problème
2236 et de l'existence d'une solution correspondante et également s'il s'agit d'un
2237 fait connu publiquement.
2239 Il existe plusieurs façons pour un développeur de prendre connaissance d'un
2240 problème de sécurité :
2244 il le remarque sur un forum public (liste de diffusion, site web, etc.),
2247 quelqu'un remplit un rapport de bogue,
2250 quelqu'un l'informe par courrier privé.
2254 Dans les deux premiers cas, l'information est publique et il est important
2255 d'avoir une solution le plus vite possible. Dans le dernier cas, cependant, ce
2256 n'est peut-être pas une information publique. Dans ce cas, il existe quelques
2257 options possibles pour traiter le problème :
2261 si le problème est trivial (comme des fichiers temporaires non sécurisés),
2262 il n'y a pas besoin de garder le secret sur le problème et une correction
2263 devrait être effectuée et diffusée,
2266 si le problème est grave (exploitable à distance, possibilité d'accéder
2267 aux privilèges d'administratation), il est préférable de partager cette
2268 information avec d'autres vendeurs et de coordonner une diffusion.
2269 L'équipe de sécurité garde des contacts avec les différentes organisations
2270 et individus et peut prendre soin des actions à mener.
2275 Dans tous les cas, si la personne qui indique le problème demande à ne pas
2276 diffuser l'information, cela devrait être respecté avec l'évidente exception
2277 d'informer l'équipe de sécurité (assurez-vous d'informer l'équipe de sécurité
2278 que l'information ne doit pas être révélée).
2280 <p>Veuillez noter que si le secret est nécessaire, vous ne pourrez pas envoyer
2281 un correctif vers <em>unstable</em> (ou ailleurs) puisque les informations de
2282 changelog et de diff sont publiques pour <em>unstable</em>.
2284 <p>Il existe deux raisons pour diffuser l'information même si le secret est
2285 demandé : le problème est connu depuis un certain temps ou le problème ou
2286 son exploitation est devenu public.
2288 <sect2 id="bug-security-advisories">Annonces de sécurité
2290 Les annonces de sécurité ne sont émises que pour la distribution actuelle
2291 diffusée <em>stable</em>, pas pour <em>testing</em> ou <em>unstable</em>.
2292 Quand elle est diffusée, l'annonce est envoyée à la liste de diffusion
2293 &email-debian-security-announce; et elle est postée sur <url
2294 id="&url-debian-security-advisories;" name="la page de sécurité">. Les
2295 annonces de sécurité sont écrites et postées par les membres de l'équipe de sécurité.
2296 Cependant, ils ne verront aucun inconvénient à ce qu'un responsable leur
2297 apporte des informations ou écrive une partie du texte. Les informations qui
2298 devraient être présentes dans une annonce incluent :
2301 une description du problème et de sa portée, y compris :
2304 le type du problème (escalade de privilège, déni de service,
2308 comment il peut être exploité,
2311 si le problème peut être exploité à distance ou localement,
2314 comment le problème a été corrigé,
2319 les numéros de version des paquets affectés,
2322 les numéros de version des paquets corrigés,
2325 une information sur la façon de récupérer les paquets mis à jour,
2328 des références à des annonces amont, des identifiants <url
2329 id="http://cve.mitre.org" name="CVE"> et toute autre information utile
2330 pour recouper les références de la vulnérabilité.
2334 <sect2 id="bug-security-building">
2335 <heading>Préparer les paquets pour corriger des problèmes de sécurité
2337 Une façon d'aider l'équipe de sécurité dans ses travaux est de fournir des
2338 paquets corrigés convenables pour une annonce de sécurité pour la version
2339 <em>stable</em> de Debian
2341 Quand une mise à jour de la version <em>stable</em> est effectuée, un soin
2342 particulier doit être apporté pour éviter de modifier le comportement du
2343 système ou d'introduire de nouveaux bogues. Pour cela, faites le moins de
2344 changements possibles pour corriger le bogue. Les utilisateurs et les
2345 administrateurs s'attendent à un comportement identique dans une version
2346 lorsque celle-ci est diffusée, donc tout changement qui est fait est
2347 susceptible de casser le système de quelqu'un. Ceci est spécialement vrai pour
2348 les bibliothèques : assurez-vous ne de jamais changer l'API ou l'ABI,
2349 quelque minimal que soit le changement.
2351 Cela veut dire que passer à une version amont supérieure n'est pas une bonne
2352 solution. À la place, les changements pertinents devraient être rétro-portés
2353 vers la version présente dans la distribution <em>stable</em> de Debian.
2354 Habituellement, les développeurs amont veulent bien aider. Sinon, l'équipe de
2355 sécurité Debian peut le faire.
2357 Dans certains cas, il n'est pas possible de rétro-porter un correctif de
2358 sécurité, par exemple, quand de grandes quantités de code source doivent être
2359 modifiées ou réécrites. Si cela se produit, il peut être nécessaire de passer à
2360 une nouvelle version amont. Cependant, vous devez toujours coordonner cela avec
2361 l'équipe de sécurité au préalable.
2363 Il existe une autre règle de conduite liée à cela : testez toujours vos
2364 changements. Si une exploitation du problème existe, essayez-la et
2365 vérifiez qu'elle réussit sur le paquet non corrigé et échoue sur le paquet
2366 corrigé. Testez aussi les autres actions normales car parfois un correctif de
2367 sécurité peut casser de manière subtile des fonctionnalités qui ne semblent pas
2370 Examinez et testez autant que possible vos changements. Vérifiez les différences
2371 avec la version précédente de manière répétée (<prgn>interdiff</prgn> du
2372 paquet <package>patchutils</package> et <prgn>debdiff</prgn> du paquet
2373 <package>devscripts</package> sont des outils utiles pour cela, voir <ref
2376 Lors de la construction de la correction, gardez les points suivants à
2381 Assurez-vous que vous avez pour cible la bonne distribution dans votre
2382 fichier <file>debian/changelog</file>. Pour <em>stable</em>, il s'agit de
2383 <tt>stable-security</tt> et pour <em>testing</em>, c'est
2384 <tt>testing-security</tt> et pour l'ancienne distribution stable, c'est
2385 <tt>oldstable-security</tt>. Ne ciblez pas
2386 <var>distribution</var>-proposed-updates !
2389 Assurez-vous que le numéro de version est correct. Il doit être plus élevé
2390 que celui du paquet actuel, mais moins que ceux des paquets des versions
2391 des distributions suivantes. En cas de doute, testez-le avec <tt>dpkg
2392 --compare-versions</tt>. Pour <em>testing</em>, il doit y avoir un numéro
2393 de version supérieur dans <em>unstable</em>. S'il n'y en a pas encore (par
2394 exemple, si <em>testing</em> et <em>unstable</em> ont la même version),
2395 vous devez envoyer une nouvelle version vers <em>unstable</em> en premier.
2398 Ne faites pas d'envoi de source seul si votre paquet possède un ou
2399 plusieurs paquets binary-all (n'utilisez pas l'option <tt>-S</tt> de
2400 <prgn>dpkg-buildpackage</prgn>). L'infrastructure <prgn>buildd</prgn> ne
2401 construira pas ceux-ci. Ce point s'applique aux envois de paquets normaux
2405 Si la source amont a été envoyée auparavant à security.debian.org (par une
2406 précédente mise à jour de sécurité), construisez le paquet sans la source
2407 amont (<tt>dpkg-buildpackage -sd</tt>). Sinon, construisez-le avec le
2408 source complet (<tt>dpkg-buildpackage -sa</tt>).
2411 Assurez-vous d'utiliser exactement le même nom <file>*.orig.tar.gz</file>
2412 que celui utilisé dans l'archive normale, sinon il ne sera pas possible de
2413 déplacer plus tard le correctif de sécurité dans l'archive principale.
2416 Assurez-vous, lors de la compilation du paquet, de compiler sur un système
2417 propre, dont tous les paquets appartiennent à la distribution pour laquelle vous
2418 construisez le paquet. Si vous n'avez pas un tel système, vous pouvez
2419 utiliser l'une des machines de debian.org (voir <ref
2420 id="server-machines">) ou mettez en place un chroot (voir <ref id=
2421 "pbuilder"> et <ref id="debootstrap">).
2425 <sect2 id="bug-security-upload">Mettre à jour le paquet corrigé
2427 Vous <em>NE DEVEZ PAS</em> envoyer un paquet dans la file d'attente des envois de sécurité
2428 sans l'accord préalable de l'équipe de sécurité. Si le paquet ne remplit pas
2429 exactement les exigences de l'équipe, il causera beaucoup de problèmes, ainsi
2430 que des délais dans la gestion de l'envoi indésirable.
2432 Vous <em>NE DEVEZ PAS</em> envoyer votre correction dans
2433 <em>proposed-updates</em> sans vous coordonner avec l'équipe de sécurité. Les
2434 paquets seront copiés de security.debian.org dans le répertoire
2435 <file>proposed-updates</file> automatiquement. Si un paquet avec le même numéro
2436 de version ou un numéro plus grand est déjà installé dans l'archive, la mise à
2437 jour de sécurité sera rejetée par le système d'archive. Ainsi, la distribution
2438 <em>stable</em> se retrouvera à la place sans la mise à jour de sécurité de ce
2441 Une fois que vous avez créé et testé le nouveau paquet et qu'il a été approuvé
2442 par l'équipe de sécurité, il doit être envoyé pour être installé dans les
2443 archives. Pour les envois de sécurité, l'adresse d'envoi est
2444 <tt>ftp://security.debian.org/pub/SecurityUploadQueue/</tt>.
2447 Une fois que l'envoi vers la file d'attente de sécurité a été accepté, le paquet sera
2448 automatiquement recompilé pour toutes les architectures et stocké pour
2449 vérification par l'équipe de sécurité.
2452 Les envois en attente d'acceptation ou de vérification ne sont accessibles que
2453 par l'équipe de sécurité. C'est nécessaire car il pourrait y avoir des
2454 correctifs pour des problèmes de sécurité qui ne peuvent pas encore être
2458 Si une personne de l'équipe de sécurité accepte un paquet, il sera installé sur
2459 security.debian.org ainsi que dans le répertoire
2460 <var>distribution</var>-proposed-updates qui convient sur ftp-master ou dans
2463 <sect id="archive-manip">
2464 <heading>Déplacer, effacer, changer le nom, adopter et abandonner des paquets
2466 Certaines manipulations de l'archive ne sont pas possibles avec le processus
2467 de mise à jour automatisé. Elles sont appliquées manuellement par les
2468 développeurs. Ce chapitre décrit ce qu'il faut faire dans ces situations.
2470 <sect1 id="moving-pkgs">Déplacer des paquets
2472 Parfois, un paquet pourra changer de section. Une nouvelle version d'un paquet
2473 de la section <tt>non-free</tt> pourrait, par exemple, être distribuée sous
2474 licence GNU GPL ; dans ce cas, le paquet doit être déplacé dans la section
2475 <tt>main</tt> ou <tt>contrib</tt><footnote><p>Reportez-vous à la <url
2476 id="&url-debian-policy;" name="charte Debian"> pour savoir dans quelle section
2477 un paquet doit être classé.</footnote>.
2479 Si vous avez besoin de modifier la section de l'un de vos paquets, modifiez les
2480 informations de contrôle du paquet pour le placer dans la section désirée et
2481 téléchargez à nouveau votre paquet dans l'archive. Reportez-vous à la <url
2482 id="&url-debian-policy;" name="charte Debian"> pour en savoir plus. Si votre
2483 nouvelle section est valide, il sera déplacé automatiquement. Si ce n'est pas
2484 le cas, contactez les responsables ftp pour comprendre ce qui s'est passé.
2486 Si vous avez besoin de modifier la sous-section de l'un de vos paquets
2487 (<tt>devel</tt> ou <tt>admin</tt> par exemple), la procédure est légèrement
2488 différente. Modifiez la sous-section dans le fichier de contrôle de votre
2489 paquet et téléchargez-le. Il vous faudra ensuite demander la modification du
2490 fichier <em>override</em> comme décrit dans la section <ref
2491 id="override-file">.
2494 <sect1 id="removing-pkgs">Supprimer des paquets
2496 Si, pour une raison ou une autre, vous avez besoin de supprimer un paquet de
2497 l'archive (disons qu'il s'agit d'une vieille bibliothèque devenue inutile, que
2498 l'on conservait pour des raisons de compatibilité), il vous faudra envoyer un
2499 rapport de bogue concernant le pseudo-paquet <tt>ftp.debian.org</tt> et
2500 demander sa suppression. N'oubliez pas de préciser de quelle distribution le
2501 paquet doit être supprimé. Normalement, vous ne devriez avoir à supprimer que
2502 des paquets d'<em>unstable</em> ou de <em>experimental</em>. Les paquets de
2503 <em>testing</em> ne sont pas supprimés directement. Ils sont plutôt enlevés
2504 automatiquement après que le paquet a été supprimé d'<em>unstable</em> et
2505 si aucun paquet de <em>testing</em> n'en dépend.
2507 Vous devez également détailler les raisons justifiant cette demande. Ceci a pour
2508 but d'éviter les suppressions non désirées et de garder une trace de la raison
2509 pour laquelle un paquet a été supprimé. Par exemple, vous pouvez fournir le nom
2510 du paquet qui remplace celui à supprimer.
2512 Vous ne pouvez demander la suppression d'un paquet que si vous en
2513 êtes le responsable. Si vous voulez supprimer un autre paquet, vous devez
2514 obtenir l'accord de son dernier responsable.
2516 Si vous ne savez pas bien si un paquet peut être supprimé, demandez l'avis des
2517 autres développeurs sur la liste &email-debian-devel;. Le programme
2518 <prgn>apt-cache</prgn> du paquet <package>apt</package> pourra aussi vous être
2519 utile. La commande <tt>apt-cache showpkg <var>paquet</var> </tt> vous
2520 indiquera, entre autres, les paquets qui dépendent de <var>paquet</var>.
2522 Une fois que le paquet a été supprimé, les bogues du paquet doivent être gérés.
2523 Soit ils sont réattribués à un autre paquet dans le cas où le code actuel a
2524 évolué en un autre paquet (par exemple, <tt>libfoo12</tt> a été supprimé parce
2525 que <tt>libfoo13</tt> le remplace) ou ils sont fermés si le logiciel ne fait
2526 simplement plus partie de Debian.
2528 <sect2>Supprimer des paquets dans <tt>Incoming</tt>
2530 Par le passé, il était possible de supprimer un paquet de <file>Incoming</file>.
2531 Cependant, ce n'est plus possible depuis la mise en place du nouveau système
2532 de file d'attente. Il vous faudra télécharger une nouvelle version de votre
2533 paquet avec un numéro de version postérieur à celui que vous voulez
2534 remplacer. Les deux versions seront installées dans l'archive mais seule la
2535 plus récente sera accessible dans <em>unstable</em> car la précédente sera
2536 immédiatement remplacée par la nouvelle. Toutefois, si vous testez
2537 correctement vos paquets, le besoin d'en remplacer un ne devrait pas être
2540 <sect1>Remplacer un paquet ou changer son nom
2542 Il peut vous arriver de vous tromper en nommant un paquet et de vouloir
2543 changer son nom. Dans ce cas, vous devrez intervenir en deux étapes. D'abord, modifiez
2544 votre fichier <file>debian/control</file> pour que votre nouveau paquet
2545 remplace et entre en conflit avec l'ancien paquet que vous voulez remplacer
2546 (reportez-vous à la <url id="&url-debian-policy;" name="charte Debian"> pour
2547 les détails). Une fois que votre paquet est installé dans l'archive, faites un
2548 rapport de bogue concernant le pseudo-paquet <tt>ftp.debian.org</tt> et
2549 demandez la suppression du paquet mal nommé. N'oubliez pas de réattribuer
2550 correctement les bogues du paquet en même temps.
2552 D'autres fois, vous pouvez commettre une erreur en construisant le paquet et
2553 vous désirez le remplacer. La seule façon de faire est d'incrémenter le numéro de
2554 version et d'envoyer une nouvelle version. L'ancienne version expirera de la
2555 façon habituelle. Notez que ceci s'applique à chaque partie de votre paquet, y
2556 compris les sources : si vous désirez remplacer l'archive source amont de
2557 votre paquet, vous devez l'envoyer avec un numéro de version différent. Une
2558 possibilité simple est de remplacer <file>foo_1.00.orig.tar.gz</file> par
2559 <file>foo_1.00+0.orig.tar.gz</file>. Cette restriction donne à chaque fichier
2560 du site ftp un nom unique, ce qui aide à garantir la consistance dans le réseau
2563 <sect1 id="orphaning">Abandonner un paquet
2565 Si vous ne pouvez plus maintenir un paquet, vous devez en informer les autres et
2566 faire le nécessaire pour qu'il soit marqué <em>abandonné</em> (i.e.
2567 <em>orphaned</em>). Vous devriez aussi remplacer votre nom par <tt>Debian QA
2568 Group &orphan-address;</tt> dans le champ <tt>maintainer</tt> du paquet et
2569 faire un rapport de bogue sur le pseudo-paquet <package>wnpp</package>. Le
2570 titre de votre rapport de bogue devrait être
2571 « <tt>O<footnote><p><em>Orphaned</em> : abandonné.</footnote>:
2572 <var>paquet</var> — <var>courte description</var></tt> » pour
2573 indiquer que le paquet est abandonné. La gravité du bogue sera
2574 <em>normale</em>. Si vous le jugez nécessaire, envoyez une copie à
2575 &email-debian-devel; en mettant cette adresse dans le champ X-Debbugs-CC: de
2576 l'en-tête du message. N'utilisez pas le champ CC: car de cette manière le sujet
2577 du message ne contiendra pas le numéro du bogue.
2579 Si le paquet est particulièrement important pour la distribution, il vous faudra
2580 faire un rapport de bogue sur le pseudo-paquet <package>wnpp</package>,
2581 l'intituler « <tt>RFA<footnote><p><em>Request For Adoption</em> :
2582 offre d'adoption.</footnote>: <var>paquet</var> — <var>courte
2583 description</var></tt> » et lui affecter la gravité <em>importante</em>.
2584 Envoyez une copie de votre rapport de bogue à la liste debian-devel comme
2587 Reportez-vous à la page WNPP<footnote><p><em>Work-needing and prospective
2588 packages</em> : paquets en souffrance et paquets souhaités.</footnote>
2589 <url id="&url-wnpp;"> pour en savoir plus.
2591 <sect1 id="adopting">Adopter un paquet
2593 Une liste des paquets en attente de nouveau responsable est disponible à la page
2594 <url id="&url-wnpp;" name="paquets en souffrance et paquets souhaités">. Si
2595 vous voulez prendre en charge un paquet de cette liste, reportez-vous à la page
2596 mentionnée ci-dessus pour connaître la procédure à suivre.
2598 Prendre un paquet parce qu'il vous semble que celui-ci est négligé n'est pas
2599 correct — ce serait un détournement de paquet. Vous pouvez prendre
2600 contact avec le responsable actuel et lui demander si vous pouvez prendre en
2601 charge ce paquet. Si vous avez le sentiment qu'un responsable est parti sans
2602 prévenir depuis un moment, veuillez vous reporter à <ref id="mia-qa">).
2604 Généralement, vous ne pouvez pas adopter un paquet sans l'accord du responsable
2605 actuel. Même s'il vous ignore, ce n'est pas une raison pour le faire. Les
2606 plaintes à propos des responsables devraient être portées sur la liste de
2607 diffusion des développeurs. Si la discussion ne se termine pas par une
2608 conclusion positive et que le problème est de nature technique, considérez de
2609 porter le cas à l'attention du comité technique (voir la <url name="page web du
2610 comité technique" id="&url-tech-ctte;"> pour plus d'information).
2612 Si vous reprenez un vieux paquet, vous voudrez sûrement que le système de suivi
2613 des bogues indique que vous êtes le responsable du paquet. Cela se produira
2614 automatiquement une fois que vous aurez installé une nouvelle version du paquet
2615 dans l'archive avec le champ <tt>Maintainer</tt> à jour. Cela peut prendre
2616 quelques heures après le téléchargement. Si vous pensez ne pas avoir de mise à
2617 jour à faire pour un moment, vous pouvez utiliser le <ref
2618 id="pkg-tracking-system"> pour recevoir les rapports de bogue. Cependant,
2619 assurez-vous que cela ne pose aucun problème à l'ancien responsable de
2620 continuer à recevoir les bogues durant ce temps.
2622 <sect id="porting">Le portage
2624 Debian accepte un nombre croissant d'architectures. Même si vous n'êtes pas un
2625 porteur et même si vous n'utilisez qu'une architecture, il est de votre
2626 responsabilité de développeur d'être attentif aux questions de
2627 portabilité. C'est pourquoi il est important que vous lisiez ce chapitre
2628 même si vous n'êtes pas un porteur.
2630 Porter un paquet consiste à faire un paquet binaire pour une architecture
2631 différente de celle du paquet binaire fait par le responsable du paquet.
2632 C'est une activité remarquable et essentielle. En fait, les porteurs sont
2633 à l'origine de la plupart des compilations de paquets Debian. Pour un
2634 paquet binaire <em>i386</em>, par exemple, il faut compter une
2635 recompilation pour chaque autre architecture, soit un total de
2636 &number-of-arches; recompilations.
2639 <sect1 id="kind-to-porters">Être gentil avec les porteurs
2641 Les porteurs ont une tâche remarquable et difficile car ils doivent gérer un
2642 grand nombre de paquets. Idéalement, tout paquet source devrait compiler sans
2643 modification. Malheureusement, c'est rarement le cas. Cette section contient
2644 une liste d'erreurs commises régulièrement par les responsables Debian —
2645 problèmes courants qui bloquent souvent les porteurs et compliquent inutilement
2648 Ici, le mot d'ordre est de répondre rapidement aux rapports de bogues et
2649 remarques soulevées par les porteurs. Traitez-les courtoisement, comme s'ils
2650 étaient co-responsables de vos paquets (ce qu'ils sont d'une certaine manière).
2651 Merci pour votre indulgence envers des rapports de bogue succincts ou peu
2652 clairs ; faites de votre mieux pour éliminer le problème.
2654 Les problèmes les plus couramment rencontrés par les porteurs sont causés par
2655 des erreurs de mise en paquet dans le paquet source. Voici un
2656 pense-bête pour les choses auxquelles vous devez être attentif :
2659 Vérifiez que les champs <tt>Build-Depends</tt> et
2660 <tt>Build-Depends-Indep</tt> du fichier <file>debian/control</file> sont
2661 corrects. Le meilleur moyen de le vérifier est d'utiliser le paquet
2662 <package>debootstrap</package> pour créer un environnement
2663 <em>unstable</em> <em>chrooté</em> (voir <ref id="debootstrap">). Dans
2664 cet environnement <em>chrooté</em>, il faudra installer le paquet
2665 <package>build-essential</package> et tous les paquets mentionnés dans
2666 les champs <tt>Build-Depends</tt> et <tt>Build-Depends-Indep</tt>.
2667 Ensuite, vous essayerez de fabriquer votre paquet dans cet
2668 environnement. Ces étapes peuvent être automatisées en utilisant le
2669 programme <prgn>pbuilder</prgn> qui est fourni par le paquet de même
2670 nom (voir <ref id="pbuilder">).
2672 Si vous n'arrivez pas à installer un environnement <em>chrooté</em>,
2673 <prgn>dpkg-depcheck</prgn> pourra peut-être vous aider (voir <ref
2674 id="dpkg-depcheck">).
2676 Consultez la <url id="&url-debian-policy;" name="charte Debian"> pour en
2677 savoir plus sur les dépendances de fabrication.
2680 Ne choisissez pas d'autres valeurs que <em>all</em> ou <em>any</em> pour
2681 le champ architecture sans avoir de bonnes raisons pour le faire. Trop
2682 souvent, les développeurs ne respectent pas les instructions de la <url
2683 id="&url-debian-policy;" name="charte Debian">. Choisir la valeur
2684 « i386 » est la plupart du temps incorrect.
2687 Vérifiez que votre paquet source est bon. Faites <tt>dpkg-source -x
2688 <var>package</var>.dsc</tt> pour vous assurer que le paquet se
2689 décompresse correctement. En utilisant le résultat de ce test,
2690 construisez votre paquet binaire à l'aide de la commande
2691 <prgn>dpkg-buildpackage</prgn>.
2694 Vérifiez que les fichiers <file>debian/files</file> et
2695 <file>debian/substvars</file> ne sont pas dans votre paquet source. Ils
2696 doivent être effacés par la cible <em>clean</em> de
2697 <file>debian/rules</file>.
2700 Assurez-vous que vous ne vous appuyez pas sur des éléments de
2701 configuration ou des logiciels installés ou modifiés localement. Par
2702 exemple, vous ne devriez jamais appeler des programmes du répertoire
2703 <file>/usr/local/bin</file> ou de répertoires équivalents. Essayez de ne
2704 pas vous appuyer sur des logiciels configurés de manière spéciale.
2705 Essayez de construire votre paquet sur une autre machine, même s'il
2706 s'agit de la même architecture.
2709 Ne vous appuyez pas sur une installation préexistante de votre paquet
2710 (un sous-cas de la remarque précédente).
2713 Si possible, ne vous appuyez pas sur une particularité présente dans un
2714 compilateur précis ou dans une certaine version d'un compilateur. Si
2715 vous ne pouvez pas faire autrement, assurez-vous que les dépendances de
2716 fabrication reflètent bien cette restriction. Dans ce cas, vous cherchez
2717 sûrement les problèmes car quelques architectures pourraient choisir un
2718 compilateur différent.
2721 Vérifiez que votre fichier <file>debian/rules</file> distingue les
2722 cibles <em>binary-arch</em> et <em>binary-indep</em> comme l'exige la
2723 charte Debian. Vérifiez que ces cibles sont indépendantes l'une de
2724 l'autre, c'est-à-dire, qu'il n'est pas nécessaire d'invoquer l'une de
2725 ces cibles avant d'invoquer l'autre. Pour vérifier cela, essayez
2726 d'exécuter <tt>dpkg-buildpackage -b</tt>.
2731 <sect1 id="porter-guidelines">Instructions pour les mises à jour des
2734 Si le paquet se construit tel quel sur l'architecture que vous visez, vous avez
2735 de la chance et votre travail est facile. Cette section s'applique dans ce
2736 cas ; elle décrit comment construire et installer correctement votre
2737 paquet binaire dans l'archive Debian. Si vous devez modifier le paquet pour le
2738 rendre compilable sur votre architecture cible vous devez faire une mise à jour
2739 des sources, consultez la section <ref id="nmu-guidelines">.
2741 Pour un envoi de portage, ne faites pas de changement dans les sources. Vous
2742 n'avez pas besoin de modifier les fichiers du paquet source (cela inclut le
2743 fichier <file>debian/changelog</file>).
2745 La manière d'invoquer <prgn>dpkg-buildpackage</prgn> est la suivante :
2746 <tt>dpkg-buildpackage -B -m<var>adresse-porteur</var></tt>. Bien sûr, remplacez
2747 <var>adresse-porteur</var> par votre adresse électronique. Cette commande
2748 construira les parties du paquet qui dépendent de l'architecture, en utilisant
2749 la cible <em>binary-arch</em> de <file>debian/rules</file>.
2751 <sect2 id="binary-only-nmu">
2752 Mises à jour indépendantes binaires ou recompilations
2754 Parfois, l'envoi du portage initial pose problème car l'environnement dans lequel
2755 le paquet a été construit n'était pas bon (bibliothèques plus à jour ou
2756 obsolètes, mauvais compilateur, etc.). Il se peut que vous ayez à le recompiler
2757 dans un environnement mis à jour. Cependant, dans ce cas, vous devez changer
2758 le numéro de version pour que les mauvais anciens paquets soient remplacés dans
2759 l'archive Debian (<prgn>katie</prgn> refuse d'installer de nouveaux paquets
2760 s'ils n'ont pas un numéro de version supérieur à celui actuellement
2761 disponible). Malgré les modifications nécessaires du changelog, ce type de mise
2762 à jour reste une mise à jour indépendante binaire — il n'est pas
2763 nécessaire de reconsidérer le statut des paquets binaires des autres
2764 architectures pour les marquer périmés ou à recompiler.
2766 Ces recompilations nécessitent des numéros de version « magiques »
2767 pour que le système de maintenance de l'archive comprennent que, bien qu'il y
2768 ait une nouvelle version, il n'y a pas eu de modification des sources. Si vous
2769 ne faites pas cela correctement, les administrateurs de l'archive rejetteront
2770 votre mise à jour (car il n'y aura pas de code source associé).
2772 Cette magie associée à une mise à jour par recompilation est déclenchée en
2773 utilisant un troisième nombre dans la partie debian du numéro de version. Si,
2774 par exemple, la dernière version du paquet que vous recompilez était
2775 « 2.9-3 », votre mise à jour portera le numéro
2776 « 2.9-3.0.1 ». Si cette version était « 3.4-2.1 » votre
2777 mise à jour portera le numéro « 3.4-2.1.1 ».
2780 <sect2 id="source-nmu-when-porter">
2781 Quand faire une mise à jour indépendante source pour un portage ?
2783 Les porteurs qui font des mises à jour indépendantes sources suivent
2784 généralement les instructions de la section <ref id="nmu"> tout comme les
2785 non-porteurs. Les délais d'attente sont cependant plus courts car les
2786 porteurs doivent manipuler un grand nombre de paquets. À nouveau, la
2787 situation diffère selon la distribution visée.
2789 Si vous êtes porteur et faites une mise à jour pour <em>unstable</em>, les
2790 instructions précédentes sont applicables à deux différences près. Tout
2791 d'abord, le temps d'attente raisonnable — délai entre le moment où vous
2792 envoyez un rapport au système de suivi des bogues et le moment où vous pouvez
2793 faire une mise à jour indépendante <em>(NMU)</em> — est de sept jours.
2794 Ce délai peut être raccourci si le problème est crucial et met l'effort de
2795 portage en difficulté : c'est à la discrétion de l'équipe de portage.
2796 (Souvenez-vous, il ne s'agit pas d'un règlement, mais de recommandations
2797 communément acceptées.)
2799 Deuxième différence, les porteurs qui font des mises à jour indépendantes
2800 sources doivent choisir une gravité <em>sérieuse</em> (i.e. <em>serious</em>)
2801 ou supérieure quand ils envoient leur rapport au système de suivi des bogues.
2802 Ceci assure qu'un paquet source unique permet de produire un paquet binaire
2803 pour chaque architecture supportée au moment de la sortie de la distribution.
2804 Il est très important d'avoir un paquet source et un paquet binaire pour
2805 toutes les architectures pour être conforme à plusieurs licences.
2807 Les porteurs doivent éviter d'implémenter des contournements pour des bogues de
2808 l'environnement de compilation, du noyau ou de la libc. Quelques fois, ces
2809 contournements sont inévitables. Si vous devez faire quelque chose de ce
2810 genre, marquez proprement vos modifications avec des <tt>#ifdef</tt> et
2811 documentez votre contournement pour que l'on sache le retirer une fois que le
2812 problème aura disparu.
2814 Les porteurs peuvent aussi avoir une adresse où ils publient le résultat de leur
2815 travail pendant le délai d'attente. Ainsi, d'autres personnes peuvent
2816 bénéficier du travail du porteur même pendant ce délai. Bien sûr, ces
2817 adresses n'ont rien d'officiel, alors soyez sur vos gardes si vous les
2821 <sect1 id="porter-automation">
2822 <heading>Infrastructure de portage et automatisation</heading>
2824 Il existe une infrastructure et plusieurs outils pour faciliter l'automatisation
2825 du portage des paquets. Cette section contient un bref aperçu de cette
2826 automatisation et du portage de ces outils ; veuillez vous reporter à la
2827 documentation des paquets ou les références pour une information complète.</p>
2830 <heading>Listes de diffusion et pages web</heading>
2832 Les pages web contenant l'état de chaque portage peuvent être trouvées à <url
2833 id="&url-debian-ports;">.
2835 Chaque portage de Debian possède sa propre liste de diffusion. La liste des
2836 listes de diffusion de portage peut être trouvée à <url
2837 id="&url-debian-port-lists;">. Ces listes sont utilisées pour coordonner les
2838 porteurs et pour mettre en relation les utilisateurs d'un portage donné avec les
2843 <heading>Outils pour les porteurs</heading>
2845 Les descriptions de plusieurs outils de portage peuvent être trouvées dans les
2846 <ref id="tools-porting">.</p>
2850 <heading><package>buildd</package></heading>
2852 Le système <package>buildd</package> est un système distribué pour la
2853 compilation d'une distribution. Il est habituellement utilisé en conjonction
2854 avec des automates de compilation ; ce sont des machines
2855 « esclaves » qui récupèrent des paquets sources et tentent de les
2856 compiler. Il est aussi possible d'interagir par courrier électronique avec ce
2857 système. Cette interface est utilisée par les porteurs pour récupérer un
2858 paquet source (en général, un paquet qui ne peut être compilé
2859 automatiquement) et travailler dessus.
2861 <package>buildd</package> n'est pas disponible sous forme de paquet ;
2862 pourtant, la plupart des équipes de porteurs l'utilisent aujourd'hui ou ont
2863 prévu de l'utiliser bientôt. L'outil de construction automatisé réel est dans
2864 le paquet <package>sbuild</package>, voir la description dans <ref
2865 id="sbuild">. Le système <package>buildd</package> regroupe également un
2866 ensemble de composants très utiles, continuellement utilisés, mais non encore
2867 mis en paquet, tels que <prgn>andrea</prgn> et <prgn>wanna-build</prgn>.
2869 Une partie des informations produites par <package>buildd</package> —
2870 utiles pour les porteurs — est disponible sur la toile à l'adresse <url
2871 id="&url-buildd;">. Ces informations incluent les résultats produits toutes
2872 les nuits par <prgn>andrea</prgn> (dépendances des sources) et
2873 <prgn>quinn-diff</prgn> (paquets à recompiler).
2875 Nous sommes très fiers de ce système car il a de nombreux usages potentiels. Des
2876 groupes de développeurs indépendants peuvent utiliser ce système pour créer
2877 différentes saveurs de Debian — qui peuvent être ou ne pas être
2878 intéressantes pour tous (par exemple, une version de Debian compilée avec des
2879 vérifications relatives à <prgn>gcc</prgn>). Ce système nous permettra aussi
2880 de recompiler rapidement toute une distribution.
2883 <sect id="nmu">Mise à jour indépendante
2885 Dans certaines circonstances, il est nécessaire qu'une personne autre que le
2886 responsable d'un paquet fasse une mise à jour de ce paquet. Ce type de
2887 mise à jour est désigné en anglais par l'expression <em>non-maintainer
2888 upload (NMU)</em>. Dans le présent document, nous traduisons librement
2889 cette expression par « mise à jour indépendante ».
2891 Ces mises à jour indépendantes de binaires font de temps en temps partie du
2892 travail normal des porteurs qui compilent les paquets pour d'autres
2893 architectures (voir <ref id="porting">). Un développeur peut aussi faire
2894 des mises à jour indépendantes quand il corrige le paquet d'un autre
2895 développeur pour éliminer un problème de sécurité ou un bogue bloquant. Cela
2896 se produit plus particulièrement en période de gel de la distribution de
2897 développement ou quand le responsable officiel du paquet ne peut pas
2898 fournir une correction dans un délai raisonnable.
2900 Ce chapitre contient des informations qui vous expliqueront quand et comment
2901 faire des mises à jour indépendantes. Une distinction fondamentale doit
2902 être faite entre les mises à jour indépendantes sources et les mises à
2903 jour indépendantes binaires. Elle est explicitée dans la section suivante.
2905 <sect1 id="nmu-terms">Terminologie
2907 Deux nouvelles expressions sont introduites dans cette section :
2908 « mise à jour indépendante source » et « mise à jour
2909 indépendante binaire ». Ces expressions ont une définition précise dans le
2910 monde Debian. Elles correspondent toutes deux au même type d'activité ;
2911 elles impliquent toutes deux qu'une personne fait une mise à jour d'un paquet
2912 alors qu'elle n'est pas officiellement responsable de ce paquet. C'est pourquoi
2913 nous qualifions ces mises à jours
2914 d'<em>indépendantes</em><footnote>Contrairement à ce que pourrait laisser
2915 entendre cette traduction de <em>non-maintainer upload</em>, il n'est pas
2916 question d'agir sans prévenir le responsable au préalable (voir <ref
2917 id="nmu-guidelines">).</footnote>.
2919 Une mise à jour indépendante source est une livraison de paquet faite par une
2920 personne qui n'est pas le responsable officiel de ce paquet avec pour objectif
2921 de corriger un bogue dans le paquet. Une mise à jour indépendante source
2922 implique toujours une modification des sources du paquet, même s'il ne s'agit
2923 que d'un changement dans le fichier <file>debian/changelog</file>. Ce
2924 changement peut tout aussi bien concerner la partie amont du source que la
2925 partie spécifique à Debian. Une mise à jour indépendante source peut aussi
2926 inclure des paquets spécifiques à une architecture tout comme un fichier
2927 <em>diff</em> modifié.
2929 Une mise à jour indépendante binaire est constitué par la recompilation et
2930 l'archivage d'un paquet pour une architecture donnée. Il s'agit souvent du
2931 résultat d'un effort de portage. Une mise à jour indépendante binaire est la
2932 livraison d'un paquet compilé (souvent pour une autre architecture) à condition
2933 que cette compilation n'ait pas nécessité de modifications des sources. Dans de
2934 nombreux cas, les porteurs sont obligés de modifier les sources pour les rendre
2935 compilables sur leur architecture cible ; il s'agira alors d'une mise à
2936 jour indépendante source et non d'une mise à jour indépendante binaire. Comme
2937 vous pouvez le remarquer, nous ne faisons pas de distinction entre les mises à
2938 jour indépendantes faites par des porteurs et les autres mises à jour
2941 Les mises à jour indépendantes sources et binaires sont toutes deux couvertes
2942 par l'expression « mise à jour indépendante »
2943 (NMU<footnote><p>Non-maintainer upload</footnote>). Pourtant, cela conduit
2944 souvent à des confusions car beaucoup associent « mise à jour
2945 indépendante » et « mise à jour indépendante source ». Il faut
2946 donc rester vigilant. Dans ce chapitre, si nous utilisons l'expression
2947 « mise à jour indépendante » seule, il s'agit des deux types de
2951 <sect1 id="nmu-who">Qui peut faire une mise à jour indépendante ?
2953 Seuls les responsables Debian officiels peuvent faire des mises à jour
2954 indépendantes. Un responsable officiel est une personne dont la clé est dans le
2955 porte-clés Debian. Toute personne est invitée à télécharger les paquets sources
2956 pour corriger des bogues ; au lieu de faire des mises à jour
2957 indépendantes, ils pourront soumettre les correctifs qui le méritent au système
2958 de suivi des bogues. Les responsables apprécient presque toujours les
2959 correctifs et les rapports de bogue soignés.
2962 <sect1 id="nmu-when">Quand faire une mise à jour indépendante
2965 Les recommandations pour déterminer quand faire une mise à jour indépendante
2966 source dépendent de la distribution visée (i.e. <em>stable</em>,
2967 <em>unstable</em> ou <em>experimental</em>). Les porteurs, ayant une activité
2968 particulière, obéissent à des règles légèrement différentes (voir <ref
2969 id="source-nmu-when-porter">).
2971 Quand une bogue de sécurité est détecté, l'équipe de sécurité peut faire une
2972 mise à jour indépendante. Veuillez vous reporter à <ref id="bug-security"> pour
2973 plus d'informations.
2975 Pendant le cycle de mise au point (<em>release cycle</em>, voir <ref
2976 id="sec-dists">), les livraisons qui corrigent les bogues de gravité
2977 <em>sérieuse</em> (i.e. <em>serious</em>) et supérieures sont encouragées et
2978 acceptées. Même pendant cette période, vous devriez tenter d'entrer en contact
2979 avec le responsable du paquet ; il pourrait bien être sur le point de
2980 livrer un paquet corrigé lui aussi. Comme pour n'importe quelle mise à jour
2981 indépendante source, les recommandations de la section <ref
2982 id="nmu-guidelines"> doivent être respectées. Des exceptions spéciales sont
2983 effectuées pour <ref id="qa-bsp">.
2985 Envoyer des corrections de bogues vers <em>unstable</em> par une autre personne
2986 que le responsable ne devrait être fait qu'en suivant ce protocole :
2989 <item>Vérifiez que les bogues du paquet qui devraient être corrigés par la
2990 mise à jour indépendante sont bien référencés dans le système de suivi des
2991 bogues. S'ils n'y sont pas, faites des rapports de bogue
2993 <item>Attendez la réponse du responsable quelques jours. Si vous n'obtenez
2994 aucune réponse, vous pouvez l'aider en lui envoyant le correctif qui
2995 corrige le bogue. N'oubliez pas de marquer le bogue avec le mot-clé
2996 « patch ».
2997 <item>Patientez quelques jours. Si vous n'avez toujours aucune réponse du
2998 responsable, envoyez-lui un courrier annonçant votre intention
2999 d'effectuer une mise à jour indépendante du paquet. Préparez la NMU comme
3000 décrit dans <ref id="nmu-guidelines">, testez-la soigneusement sur votre
3001 machine (cf. <ref id="sanitycheck">). Re-vérifiez que votre correctif
3002 n'a aucun effet de bord inattendu. Assurez-vous que votre correctif est
3003 aussi minimaliste et non intrusif que possible.
3004 <item>Envoyez votre paquet à incoming dans <file>DELAYED/7-day</file> (cf.
3005 <ref id="delayed-incoming">), envoyez le correctif final au responsable
3006 par le BTS et expliquez-lui qu'il a 7 jours pour réagir s'il veut annuler
3008 <item>Suivez ce qui se passe, vous êtes responsable pour tout bogue que vous
3009 auriez introduit avec votre NMU. Vous devriez probablement utiliser le
3010 <ref id="pkg-tracking-system"> (PTS) pour vous tenir informé de l'état du
3011 paquet après votre NMU.
3014 Parfois, le responsable de version ou un groupe organisé de
3015 développeurs peut annoncer une certaine période de temps au cours de laquelle
3016 les règles de mise à jour indépendante seront plus souples. Ceci implique
3017 habituellement une période plus courte d'attente avant d'envoyer des
3018 correctifs et une période de délai plus courte. Il est important de noter que,
3019 même au cours de ces « chasses aux bogues », la personne
3020 désirant faire la mise à jour indépendante doit remplir des bogues et
3021 contacter en premier le développeur, et ensuite seulement passer à
3024 <sect1 id="nmu-guidelines">Comment faire une mise à jour indépendante
3027 Les règles qui suivent s'appliquent aux porteurs tant qu'ils jouent le double
3028 rôle de correcteur de bogue et de porteur. Si un porteur doit modifier le
3029 paquet source, cette mise à jour est automatiquement une mise à jour
3030 indépendante source et est soumise aux règles qui suivent. Si un porteur
3031 construit un paquet binaire recompilé, les règles sont différentes (voir <ref
3032 id="porter-guidelines">.
3034 Tout d'abord, il est capital que ces mises à jour indépendantes soient aussi peu
3035 intrusives que possible. Ne faites pas de ménage, ne modifiez pas le nom des
3036 modules ou des fichiers, ne déplacez pas les répertoires ; plus
3037 généralement, ne corrigez pas ce qui n'est pas cassé. Faites un correctif aussi
3038 petit que possible. Si certaines choses froissent votre sens de l'esthétique,
3039 parlez-en au responsable du paquet, au responsable amont ou soumettez un
3040 rapport de bogue. Quoiqu'il en soit, les changements esthétiques <em>ne doivent
3041 pas</em> être effectués lors d'une mise à jour indépendante.
3044 <sect2 id="nmu-version">Numéro de version pour les mises à jour
3045 indépendantes sources
3047 Chaque fois que vous modifiez un paquet, le numéro de version de ce paquet doit
3048 changer, même pour la plus triviale des modifications. Notre système de
3049 gestion de paquets s'appuie sur ces numéros de version.
3051 Si vous faites une mise à jour indépendante <em>(NMU)</em>, vous devez ajouter
3052 un numéro de version mineur à la partie <var>debian-revision</var> du numéro
3053 de version (la partie qui suit le dernier trait d'union). Ce numéro
3054 supplémentaire débutera à « 1 ». Prenons pour exemple le paquet
3055 « foo » qui porte le numéro de version 1.1-3. Dans l'archive, le
3056 fichier de contrôle du paquet source serait <file>foo_1.1-3.dsc</file>. La
3057 version amont est « 1.1 » et la révision Debian est
3058 « 3 ». La mise à jour indépendante suivante ajouterait le numéro de
3059 version mineur « .1 » au numéro de révision Debian; le nouveau
3060 fichier de contrôle du paquet source serait alors
3061 <file>foo_1.1-3.1.dsc</file>.
3063 Le numéro de révision mineur est nécessaire pour éviter de prendre un numéro de
3064 version au responsable officiel du paquet, ce qui pourrait perturber son
3065 travail. Cela a aussi l'avantage de montrer clairement que le paquet n'a pas
3066 été livré par le responsable officiel.
3068 S'il n'y a pas de partie <var>debian-revision</var> dans le numéro de version du
3069 paquet, il faut en créer une en démarrant à « 0.1 ». S'il est
3070 absolument nécessaire qu'une personne qui n'est pas responsable d'un paquet
3071 fasse une livraison basée sur une nouvelle version amont, cette personne doit
3072 choisir « 0.1 » comme numéro de révision Debian. Le mainteneur du
3073 paquet doit, lui, démarrer sa numérotation à « 1 ».
3076 <sect2 id="nmu-changelog">
3077 <heading>Les mises à jour indépendantes sources doivent être
3078 mentionnées dans le fichier changelog</heading>
3080 Une personne qui fait une mise à jour indépendante source doit ajouter une
3081 entrée dans le fichier <file>changelog</file> qui indique les bogues corrigés
3082 et qui précise pourquoi cette mise à jour était nécessaire. Cette entrée
3083 comportera l'adresse de la personne ayant fait la mise à jour ainsi que la
3086 Par convention, dans le cas d'une mise à jour indépendante source
3087 <em>(NMU)</em>, l'entrée du fichier changelog débute par la ligne :
3090 * Non-maintainer upload
3094 <sect2 id="nmu-patch">Mise à jour indépendante source et système de
3097 Un développeur qui n'est pas responsable d'un paquet doit faire aussi peu de
3098 modifications que possible et doit toujours envoyer ses modifications au
3099 système de suivi des bogues au format diff unifié (<tt>diff -u</tt>).
3101 Et si vous recompilez simplement le paquet ? Si vous avez simplement besoin
3102 de recompiler le paquet pour une seule architecture, vous pouvez faire une
3103 NMU binaire seulement comme décrit dans <ref id="binary-only-nmu"> qui ne
3104 nécessite pas qu'un correctif soit envoyé. Si vous désirez que le paquet soit
3105 recompilé pour toutes les architectures, vous devez alors faire une NMU
3106 source et vous devrez envoyer un correctif.
3108 Si la mise à jour indépendante source (<em>source NMU</em>) corrige des bogues,
3109 ceux-ci doivent être marqués <em>fixed</em> (corrigé) dans le système de
3110 suivi des bogues plutôt que clos. Par convention, seul le responsable du
3111 paquet et la personne qui a ouvert le rapport de bogue peuvent clore ce
3112 rapport. Heureusement, le système d'archivage Debian reconnaît les mises à
3113 jours indépendantes et positionne correctement le statut des bogues à
3114 <em>fixed</em> si la personne qui fait la mise à jour a listé tous les bogues
3115 dans le fichier changelog en utilisant la syntaxe <tt>Closes:
3116 bug#<var>nnnnn</var></tt> (voir <ref id="upload-bugfix"> pour en savoir plus
3117 sur la fermeture de bogue par le fichier <file>changelog</file>). Ce passage
3118 au statut <em>fixed</em> assure que chacun sait que le bogue est corrigé par
3119 une mise à jour indépendante tout en laissant le rapport de bogue ouvert
3120 jusqu'à ce que le responsable du paquet incorpore les modifications de cette
3121 mise à jour dans la version officielle du paquet.
3123 Après avoir fait une mise à jour indépendante, il vous faudra aussi ouvrir un
3124 nouveau rapport de bogue qui inclura un correctif contenant toutes les
3125 modifications que vous avez faites. Sinon, vous pouvez envoyer cette
3126 information aux bogues qui sont fixés par votre NMU. Le responsable officiel
3127 pourra choisir d'appliquer le correctif, il pourra aussi employer une autre
3128 méthode pour régler le problème. Certains bogues sont corrigés dans la
3129 version amont, ce qui est une bonne raison pour annuler les modifications
3130 d'une mise à jour indépendante. Si le responsable choisit de mettre à jour le
3131 paquet plutôt que d'utiliser les correctifs de la mise à jour indépendante,
3132 il devra s'assurer que cette nouvelle version corrige effectivement chacun
3133 des bogues corrigés dans la mise à jour indépendante.
3135 De plus, le responsable officiel devrait <em>toujours</em> conserver les entrées
3136 documentant une mise à jour indépendante dans le fichier
3137 <file>changelog</file>.
3140 <sect2 id="nmu-build">Fabriquer une mise à jour indépendante source
3142 Les paquets faisant l'objet d'une mise à jour indépendante source sont
3143 construits comme les autres. Sélectionnez une distribution en utilisant les
3144 règles décrites dans la section <ref id="distribution"> en suivant toutes les
3145 prescriptions de la section <ref id="upload">.
3147 Vérifiez que vous n'avez pas modifié la valeur du champ <tt>maintainer</tt> dans
3148 le fichier <file>debian/control</file>. Votre nom, mentionné dans l'entrée du
3149 fichier <file>debian/changelog</file> concernant la mise à jour, sera utilisé
3150 pour signer le fichier <file>.changes</file>.
3152 <sect1 id="ack-nmu">Valider une mise à jour indépendante
3154 Si l'un de vos paquets a subi une mise à jour indépendante, vous devez récupérer
3155 les changements dans votre copie des sources. Ceci est aisé, vous avez
3156 simplement à appliquer le correctif qui vous a été envoyé. Une fois ceci fait,
3157 vous devez fermer les bogues qui ont été marqués comme fixés par la mise à
3158 jour. Vous pouvez soit les fermer manuellement en envoyant les courriers
3159 nécessaires au BTS soit ajouter les <tt>closes: #nnnn</tt> nécessaires dans
3160 l'entrée du changelog de votre prochain envoi.
3162 Dans tous les cas, vous ne devriez pas être perturbé par la NMU. Une NMU n'est
3163 pas une attaque personnelle contre le responsable. C'est une preuve que le
3164 paquet est important pour quelqu'un et qu'il est désireux de vous aider dans
3165 votre travail, vous devriez donc lui être reconnaissant. Vous pouvez également
3166 lui demander s'il serait intéressé pour vous aider sur une base plus régulière
3167 comme co-responsable ou responsable de secours (cf. <ref
3168 id="collaborative-maint">).
3172 <sect id="collaborative-maint">
3173 <heading>Maintenance collective</heading>
3175 « Maintenance collective » est un terme décrivant le partage des
3176 devoirs de la maintenance d'un paquet Debian par plusieurs personnes. Cette
3177 collaboration est presque toujours une bonne idée car il en résulte
3178 généralement une meilleure qualité et un temps de correction de bogues plus
3179 petit. Il est fortement recommandé que les paquets de priorité
3180 <tt>Standard</tt> ou qui font partie de la base aient des co-responsables.
3182 Habituellement, il y a un responsable principal et un ou plusieurs
3183 co-responsables. Le responsable principal est celui dont le nom est indiqué
3184 dans le champ <tt>Maintainer</tt> du fichier <file>debian/control</file>. Les
3185 co-responsables sont tous les autres responsables.
3187 Dans sa forme la plus simple, ajouter un nouveau co-responsable est assez
3190 <item><p> Donner au co-responsable un accès aux sources à partir desquelles vous
3191 construisez le paquet. Habituellement, cela implique que vous utilisiez un
3192 système de contrôle de version comme <prgn>CVS</prgn> ou
3193 <prgn>Subversion</prgn>.
3195 <item><p> Ajouter les nom et adresse correctes du co-responsable au champ
3196 <tt>Uploaders</tt> dans la partie globale du fichier
3197 <file>debian/control</file>.
3199 Uploaders: John Buzz <jbuzz@debian.org>, Adam Rex <arex@debian.org>
3203 En utilisant le PTS (<ref id="pkg-tracking-system">), les
3204 co-responsables devraient s'inscrire eux-mêmes aux paquets sources
3209 <chapt id="best-pkging-practices">
3210 <heading>Les meilleurs pratiques pour la construction des paquets
3212 La qualité de Debian est principalement due à la <url id="&url-debian-policy;"
3213 name="charte Debian"> qui définit explicitement les obligations que tous les
3214 paquets doivent suivre. Mais c'est également grâce à une histoire partagée
3215 d'expériences qui va au-delà de la charte Debian, une accumulation d'années
3216 d'expérience pour la construction des paquets ; des développeurs de grand
3217 talent ont créé de bons outils qui vous aideront, vous, responsable Debian, à
3218 créer et maintenir d'excellents paquets.
3221 Ce chapitre fournit les meilleurs pratiques pour les développeurs Debian. Ce ne
3222 sont que des recommandations, non pas des obligations ou des règles. Ce sont
3223 seulement des astuces et conseils subjectifs et des liens collectés pour les
3224 développeurs Debian. Prenez et choisissez ce qui vous convient le mieux.
3226 <sect id="bpp-debian-rules">
3227 <heading>Les meilleures pratiques pour le fichier <file>debian/rules</file></heading>
3229 Les recommandations suivantes s'appliquent au fichier <file>debian/rules</file>.
3230 Comme ce fichier contrôle le processus de compilation et qu'il sélectionne les
3231 fichiers inclus dans le paquet (directement ou indirectement), il s'agit
3232 habituellement du fichier sur lequel les responsables passent le plus de temps.
3235 <sect1 id="helper-scripts">Scripts d'aide
3237 La raison sous-jacente à l'utilisation des scripts d'aide dans le fichier
3238 <file>debian/rules</file> est que cela permet aux responsables d'utiliser et de
3239 partager une logique commune pour un grand nombre de paquets. Prenez, par
3240 exemple, l'installation des entrées de menu : vous avez besoin de
3241 placer un fichier dans <file>/usr/lib/menu</file> et d'ajouter des commandes aux
3242 scripts de maintenance pour enregistrer et désenregistrer ces entrées de menu.
3243 Comme il s'agit d'une chose très commune, pourquoi chaque
3244 responsable devrait-il écrire sa propre version, parfois avec des bogues ?
3245 Supposons également que le répertoire de menu soit modifié, chaque paquet
3246 devrait être modifié.
3248 Les scripts d'aide peuvent résoudre ces problèmes. En supposant que vous vous
3249 conformiez aux conventions attendues par le script d'aide, celui-ci prend soin
3250 de tous les détails. Les changements dans la charte peuvent alors être faits
3251 dans le script d'aide, les paquets ont alors simplement besoin d'être
3252 reconstruits avec la nouvelle version du script et sans aucun changement
3255 L'<ref id="tools"> contient plusieurs systèmes d'aide. Le plus
3256 courant et le meilleur (à notre avis) système est <package>debhelper</package>.
3257 Les précédents systèmes d'aide comme <package>debmake</package> étaient
3258 « monolithiques » : vous ne pouviez pas choisir quelles parties
3259 intéressantes vous pouviez utiliser, mais vous étiez obligé de choisir le
3260 système pour tout faire. <package>debhelper</package>, à l'inverse, consiste en
3261 un certain nombre de petits programmes <prgn>dh_*</prgn>. Par exemple,
3262 <prgn>dh_installman</prgn> installe et compresse les pages de manuel,
3263 <prgn>dh_installmenu</prgn> installe les fichiers de menu et ainsi de suite.
3264 Ainsi, il offre une flexibilité suffisante pour pouvoir utiliser les scripts
3265 d'aide quand ils sont utiles, en complément de commandes définies manuellement
3266 dans le fichier <file>debian/rules</file>.
3268 Vous pouvez débuter avec <package>debhelper</package> en lisant <manref
3269 name="debhelper" section="1"> et en regardant les exemples fournis avec le
3270 paquet. <prgn>dh_make</prgn> du paquet <package>dh-make</package> (voir <ref
3271 id="dh-make">) peut être utilisé pour convertir un paquet source
3272 « vierge » en une version utilisant <package>debhelper</package>. Ce
3273 raccourci ne devrait cependant pas vous faire croire que vous n'avez pas besoin
3274 de comprendre les scripts individuels <prgn>dh_*</prgn>. Si vous comptez
3275 utiliser un système d'aide, vous devez prendre le temps d'apprendre à utiliser
3276 ce système pour savoir ce que vous pouvez en attendre ainsi que son
3279 Plusieurs personnes pensent que des fichiers <file>debian/rules</file> vierges
3280 sont préférables car vous n'avez pas à apprendre les détails internes d'un
3281 quelconque système d'aide. La décision vous appartient complètement. Utilisez ce
3282 qui vous convient. Plusieurs exemples de fichiers <file>debian/rules</file> sont
3283 disponibles à <url id="&url-rules-files;">.
3285 <sect1 id="multiple-patches">
3286 <heading>Séparer vos correctifs en plusieurs fichiers</heading>
3288 Les gros paquets peuvent avoir plusieurs bogues que vous devez gérer. Si
3289 vous corrigez sans faire attention les bogues dans les sources, vous ne
3290 pourrez pas différencier facilement les nombreux correctifs que vous aurez
3291 appliqués. Cela peut devenir trés compliqué de mettre à jour le paquet avec
3292 une nouvelle version amont qui intègre certains correctifs (mais pas tous).
3293 Vous ne pouvez pas prendre l'ensemble des correctifs (par exemple, dans les
3294 fichiers <file>.diff.gz</file>) et décider quels correctifs il vous faut
3295 enlever parce que les bogues ont été corrigés en amont.
3297 Malheureusement, le système de création des paquets tel qu'il est actuellement
3298 ne fournit pas de moyen de séparer les correctifs en plusieurs fichiers.
3299 Cependant, il existe des moyens de séparer les correctifs : les fichiers
3300 correctifs sont livrés dans le fichier correctif Debian
3301 (<file>.diff.gz</file>), habituellement dans le répertoire <file>debian/</file>.
3302 La seule différence est qu'ils ne sont pas appliqués immédiatement par
3303 dpkg-source, mais par la règle <tt>build</tt> du fichier
3304 <file>debian/rules</file>. Inversement, ils sont annulés par la règle
3307 <prgn>dbs</prgn> est l'une des approches les plus populaires pour cela. Il fait
3308 ce qui est décrit ci-dessus et fournit la possibilité de créer de nouveaux
3309 correctifs et de mettre à jour d'anciens correctifs. Veuillez vous reporter au
3310 paquet <package>dbs</package> pour plus d'informations et au paquet
3311 <package>hello-dbs</package> pour un exemple.
3313 <prgn>dpatch</prgn> fournit également ces fonctions, mais il est prévu pour être
3314 encore plus facile d'utilisation. Veuillez voir le paquet
3315 <package>dpatch</package> pour la documentation et des exemples (dans
3316 <file>/usr/share/doc/dpatch</file>).
3319 <sect1 id="multiple-binary">Paquets binaires multiples
3321 Un simple paquet source va souvent permettre de construire plusieurs paquets
3322 binaires différents, que ce soit pour fournir plusieurs saveurs du même
3323 paquet (par exemple, le paquet source <package>vim</package>) ou pour créer
3324 plusieurs petits paquets au lieu d'un seul gros (par exemple, si
3325 l'utilisateur peut n'installer que la partie dont il a besoin et ainsi
3326 économiser de l'espace disque).
3328 Le second cas peut facilement être géré dans le fichier
3329 <file>debian/rules</file>. Vous avez simplement besoin de déplacer les fichiers
3330 appropriés du répertoire de construction dans les arborescence temporaires du
3331 paquet. Vous pouvez le faire en utilisant <prgn>install</prgn>
3332 ou <prgn>dh_install</prgn> du paquet <package>debhelper</package>.
3333 Assurez-vous de vérifier les différentes permutations de paquets, en
3334 garantissant que vous avez bien défini les dépendances entre les paquets dans
3335 le fichier <file>debian/control</file>.
3337 Le premier cas est un peu plus diffile car il implique de multiples
3338 recompilations du même logiciel, mais avec différentes options de
3339 configuration. Le paquet source <package>vim</package> est un exemple de la
3340 façon de gérer cela avec un fichier <file>rules</file> écrit à la main.
3342 <!-- &FIXME; Find a good debhelper example with multiple configure/make cycles
3347 <sect id="bpp-debian-control">
3348 <heading>Les meilleures pratiques pour le fichier
3349 <file>debian/control</file></heading>
3351 Les pratiques suivantes sont relatives au fichier <file>debian/control</file>.
3352 Elles viennent en complément des <url
3353 id="&url-debian-policy;ch-miscellaneous.html#s-descriptions" name="règles pour
3354 les descriptions de paquet">.
3356 La description du paquet, telle qu'elle est définie par le champ correspondant
3357 dans le fichier <file>control</file>, contient à la fois le résumé du paquet et
3358 la description longue pour le paquet. <ref id="bpp-desc-basics"> décrit des
3359 lignes générales pour les deux parties de la description. Ensuite, <ref
3360 id="bpp-pkg-synopsis"> fournit des principes spécifiques pour le résumé et <ref
3361 id="bpp-pkg-desc"> contient des principes spécifiques pour la description
3364 <sect1 id="bpp-desc-basics">
3365 <heading>Les règles générales pour les descriptions des paquets</heading>
3367 La description du paquet devrait être écrite pour l'utilisateur moyen,
3368 l'utilisateur qui va utiliser et bénéficier du paquet. Par exemple, les paquets
3369 de développement sont pour les développeurs et leur description peut utiliser un
3370 langage technique. Pour les applications à but plus général comme un éditeur, la
3371 description devrait être écrite pour un non-spécialiste.
3373 Notre critique des descriptions des paquets nous amène à conclure que la plupart
3374 des descriptions des paquets sont techniques, c'est-à-dire, qu'elles ne sont pas
3375 écrites pour être comprises par les non-spécialistes. À moins que
3376 votre paquet ne soit que pour les techniciens, c'est un problème.
3378 Comment écrire pour les non-spécialistes ? Évitez le jargon.
3379 Évitez de vous référer à d'autres applications et cadres de travail avec
3380 lesquels l'utilisateur n'est pas forcément familier — « GNOME »
3381 ou « KDE » sont corrects car les utilisateurs sont probablement
3382 familiers avec ces termes, mais « GTK+ » ne l'est probablement pas.
3383 Ne supposez aucune connaissance. Si vous devez utiliser des termes techniques,
3386 Soyez objectif. Les descriptions de paquet ne sont pas un endroit pour
3387 promouvoir votre paquet, quel que soit l'amour que vous lui portez.
3388 Rappelez-vous que le lecteur n'a pas forcément les mêmes priorités que vous.
3390 Des références aux noms de tout autre paquet de logiciels, noms de protocoles,
3391 standards ou spécifications devraient utiliser leurs formes canoniques si elles
3392 existent. Par exemple, utilisez « X Window System », « X11 »
3393 ou « X » et non « X Windows », « X-Windows » ou
3394 « X Window ». Utilisez « GTK+ » et non « GTK » ou
3395 « gtk ». Utilisez « GNOME » et non « Gnome ».
3396 Utilisez « PostScript » et non « Postscript » ou
3397 « postscript ».
3399 Si vous avez des problèmes pour écrire votre description, vous pouvez l'envoyer à
3400 &email-debian-l10n-english; et demander un retour d'informations.
3404 <sect1 id="bpp-pkg-synopsis">
3405 <heading>Le résumé du paquet ou description courte</heading>
3407 La ligne de résumé (la description courte) devrait être concise. Elle ne doit
3408 pas répéter le nom du paquet (c'est une règle).
3410 C'est une bonne idée de penser au résumé comme à une clause apposée et non une
3411 phrase complète. Une clause apposée est définie dans WordNet comme une relation
3412 grammaticale entre un mot et une phrase pronominale qui la suit, par exemple
3413 « Rudolph, le renne au nez rouge ». La clause apposée ici est
3414 « le renne au nez rouge ». Comme le résumé est une clause et non une
3415 phrase complète, nous recommandons de ne pas la commencer par une majuscule et
3416 de ne pas la finir par un point. Il ne doit pas non plus commencer avec un
3417 article, défini (« le ») ou indéfini (« un »).
3419 Cela peut vous aider d'imaginer le résumé combiné avec le nom du paquet de
3420 la façon suivante :
3422 <example><var>nom-paquet</var> est un <var>résumé</var>.</example>
3424 Sinon, il peut être plus compréhensible de le voir comme
3426 <example><var>nom-paquet</var> est <var>résumé</var>.</example>
3428 ou, si le nom du paquet est lui-même un pluriel (comme
3429 « developer-tools »)
3431 <example><var>nom-paquet</var> sont <var>résumé</var>.</example>
3433 Cette façon de former une phrase à partir du nom du paquet et du résumé devrait
3434 être considérée comme une heuristique et non comme une règle stricte. Il y a
3435 certains cas où cela n'a aucun sens de former une phrase.
3439 <sect1 id="bpp-pkg-desc">
3440 <heading>La description longue</heading>
3442 La description longue du paquet est la première information dont dispose
3443 l'utilisateur avant d'installer un paquet. Aussi, elle devrait fournir toutes
3444 les informations nécessaires pour le laisser décider de l'installation du
3445 paquet. Vous pouvez supposer que l'utilisateur a déjà lu le résumé du paquet.
3447 La description longue devrait toujours être constituée de phrases complètes.
3449 Le premier paragraphe de la description longue devrait répondre aux questions
3450 suivantes : qu'est-ce que fait le paquet ? Quelle tâche aide-t-il
3451 l'utilisateur à accomplir ? Il est important de décrire ceci d'une manière
3452 non technique, à moins que le paquet ne s'adresse qu'à un auditoire de techniciens.
3454 Les paragraphes suivants devraient répondre aux questions suivantes :
3455 Pourquoi, en tant qu'utilisateur, ai-je besoin de ce paquet ? Quelles
3456 sont les autres fonctionnalités dont dispose le paquet ? Quelles
3457 sont les fonctionnalités marquantes et les déficiences de ce paquet comparé à
3458 d'autres paquets (par exemple, « si vous avez besoin de X, utilisez Y à la
3459 place ») ? Est-ce que le paquet est lié à d'autres paquets d'une
3460 certaine façon qui n'est pas gérée par le gestionnaire de paquet (par exemple,
3461 « il s'agit d'un client pour le serveur foo ») ?
3463 Soyez attentif à éviter les fautes d'orthographe et de grammaire. N'oubliez
3464 pas votre vérificateur orthographique. <prgn>ispell</prgn> possède une option
3465 spéciale (<tt>-g</tt>) pour cela :
3467 <example>ispell -d american -g debian/control</example>
3471 <sect1 id="bpp-upstream-info">
3472 <heading>Page d'accueil amont</heading>
3474 Nous vous recommandons d'ajouter l'adresse de la page d'accueil du paquet à la
3475 description du paquet dans le fichier <file>debian/control</file>. Cette
3476 information devrait être ajoutée à la fin de la description en utilisant le
3477 format suivant :
3480 Homepage: http://some-project.some-place.org/</example>
3482 Veuillez noter les espaces au début de la ligne, ils servent à séparer les
3483 lignes correctement. Pour voir un exemple de ce que cela affiche, veuillez vous
3484 reporter à <url id="&url-eg-desc-upstream-info;">.
3486 Ne mettez rien s'il n'existe pas de page pour le logiciel.
3489 Veuillez noter que nous espérons que ce champ sera remplacé par un
3490 vrai champ de <file>debian/control</file> que comprendraient <prgn>dpkg</prgn>
3491 et <tt>&packages-host;</tt>. Si vous ne voulez pas vous embêter à déplacer la
3492 page d'accueil depuis la description vers ce nouveau champ, vous devriez
3493 probablement attendre qu'il soit disponible.</p>
3498 <sect id="bpp-debian-changelog">
3499 <heading>Les meilleures pratiques pour le fichier <file>debian/changelog</file></heading>
3501 Les pratiques suivantes viennent en complément de la <url name="directive sur
3502 les fichiers changelog" id="&url-debian-policy;ch-docs.html#s-changelogs">.</p>
3504 <sect1 id="bpp-changelog-do">
3505 <heading>Écrire des entrées de changelog utiles</heading>
3507 L'entrée de changelog pour une révision de paquet documente les changements dans
3508 cette révision et seulement ceux-ci. Concentrez-vous sur la description des
3509 changements significatifs et visibles de l'utilisateur qui ont été effectués
3510 depuis la dernière version.
3512 Ciblez <em>ce</em> qui a été changé — qui, comment et quand cela a été fait
3513 est généralement de moindre importance. Ceci dit, rappelez-vous de nommer
3514 poliment les personnes qui ont fourni une aide notable pour réaliser le
3515 paquet (par exemple, ceux qui ont envoyé des correctifs).
3517 Vous n'avez pas besoin de détailler les changements triviaux et évidents. Vous
3518 pouvez également regrouper plusieurs de ces changements dans une seule entrée.
3519 D'un autre côté, ne soyez pas trop concis si vous avez entrepris un changement
3520 majeur. Soyez tout spécialement clair s'il y a des changements qui modifient le
3521 comportement du programme. Pour plus d'explications, utilisez le fichier
3522 <file>README.Debian</file>.
3524 Utilisez un langage anglais commun pour que la majorité des lecteur puissent le
3525 comprendre. Évitez les abbréviations, le parler technique et le jargon quand
3526 vous expliquez des changements fermant un bogue, spécialement pour les rapports
3527 de bogue créés par des utilisateurs qui ne vous paraissent pas particulièrement
3528 à l'aise techniquement. Vous devez être poli et ne pas jurer.
3530 Il est parfois désirable de préfixer les entrées de changelog avec le nom des
3531 fichiers qui ont été modifiés. Cependant, il n'est pas besoin de lister
3532 explicitement tous les fichiers modifiés, particulièrement si la modification
3533 est petite ou répétitive. Vous pouvez utiliser les caractères génériques.
3535 Quand vous faites référence aux bogues, ne supposez rien a priori. Dites ce
3536 qu'était le problème, comment il a été résolu et ajoutez la chaîne de caractères
3537 « closes: #nnnnn ». Veuillez voir <ref id="upload-bugfix"> pour plus
3540 <sect1 id="bpp-changelog-misconceptions">
3541 <heading>Communes idées fausses sur les entrées de changelog</heading>
3543 Les entrées de changelog <strong>ne devraient pas</strong> documenter des
3544 problèmes génériques d'empaquetage (« Hé, si vous cherchez foo.conf, il
3545 est dans /etc/blah/. ») car les administrateurs et utilisateurs sont
3546 supposés être au moins vaguement rompus à la façon dont les choses sont
3547 arrangées sur un système Debian. Mentionnez cependant tout changement
3548 d'emplacement d'un fichier de configuration.
3550 Les seuls bogues fermés par une entrée de changelog devraient être ceux qui sont
3551 vraiment corrigés dans la même révision du paquet. Fermer des bogues non liés
3552 par le fichier changelog est considéré comme une très mauvaise pratique.
3553 Veuillez voir <ref id="upload-bugfix">.
3555 Les entrées de changelog <strong>ne devraient pas</strong> être le lieu de
3556 discussions avec les émetteurs de bogues (« Je ne vois pas de segfaults
3557 lors du lancement de foo avec l'option bar ; envoyez-moi plus
3558 d'informations. »), ni celui de phrases génériques sur la vie, l'univers et
3559 tout le reste (« Désolé, cet envoi m'a pris du temps, mais j'avais attrapé
3560 la grippe. ») ou celui de demandes d'aide (" La liste des bogues sur
3561 ce paquet est énorme, donnez-moi un coup de main. »). Ceci ne sera
3562 généralement pas remarqué par les personnes ciblées, mais peut ennuyer les
3563 personnes qui désirent lire des informations sur les changements réels du
3564 paquet. Veuillez vous reporter à <ref id="bug-answering"> pour plus
3565 d'informations sur la façon d'utiliser le système de suivi des bogues.
3567 C'est une vieille tradition de valider les bogues fixés par une mise à jour
3568 indépendante dans la première entrée du changelog de l'envoi du vrai
3569 responsable, par exemple, dans une entrée de changelog comme ceci :
3571 * Maintainer upload, closes: #42345, #44484, #42444.
3573 Ceci fermera les bogues NMU marqués comme corrigé (« fixed ») quand le
3574 paquet arrivera dans l'archive. Le bogue pour le fait qu'une NMU a été faite
3575 peut être fermé de la même façon. Bien sûr, il est également parfaitement
3576 acceptable de fermer les bogues corrigés par NMU par d'autres moyens ; voir
3577 <ref id="bug-answering">.
3580 <sect1 id="bpp-changelog-errors">
3581 <heading>Erreurs communes dans les entrées de changelogs</heading>
3583 Les exemples suivants montrent des erreurs communes ou des exemples de mauvais
3584 style dans les entrées de changelog<footnote>NdT : Les entrées de
3585 changelog sont ici affichées en français pour faciliter la compréhension, mais
3586 vos entrées devront naturellement être rédigées en anglais.</footnote>.
3590 * Corrige tous les bogues restants.
3593 Ceci n'indique visiblement rien d'utile au lecteur.
3596 * Correctif de Jane Random appliqué.
3598 Sur quoi portait le correctif ?
3602 * Révision de cible d'installation la nuit dernière.
3604 Révision qui a accompli quoi ? Est-ce que la mention de la nuit dernière
3605 est supposée nous rappeler que nous ne devons pas faire confiance à ce
3610 * Corrige MRD vsync av. anciens CRTs.
3612 Trop d'acronymes et il n'est pas très clair de ce qu'était vraiment cette...
3613 euh..., merde (oups, un mot interdit !) ou comment cela a été corrigé.
3617 * Ceci n'est pas un bogue. Closes: #nnnnnn.
3619 Premièrement, il n'y a absolument pas besoin d'envoyer un paquet pour
3620 communiquer cette information ; à la place, utilisez le système de suivi des
3621 bogues. Deuxièmement, il n'y a aucune explication concernant la raison
3622 pour laquelle le rapport n'était pas un bogue.
3626 * A été fixé il y a longtemps, mais j'ai oublié de le fermer. Closes: #54321.
3628 Si, pour toute raison, vous n'aviez pas indiqué le numéro du bogue dans une
3629 précédente entrée de changelog, ceci n'est pas un problème, fermez simplement le
3630 bogue normalement dans le BTS. Il n'y a pas besoin de modifier le fichier
3631 changelog, en supposant que la description de la correction est déjà intégrée
3632 (ceci s'applique aux correctifs par les auteurs/responsables amonts également,
3633 vous n'avez pas à suivre les bogues qui ont été corrigés il y a longtemps dans
3636 <p> <!-- MANQUE UN . final -->
3638 * Closes: #12345, #12346, #15432
3640 Où est la description ?! Si vous n'arrivez pas à trouver un message
3641 descriptif, commencez par insérer le titre de chacun des différents bogues.
3646 <!-- <sect1 id="pkg-mgmt-cvs">Managing a package with CVS
3648 &FIXME; presentation of cvs-buildpackage, updating sources
3649 via CVS (debian/rules refresh).
3650 <url id="http://www.debian.org/devel/cvs_packages">
3653 <sect id="bpp-debian-maint-scripts">
3654 <heading>Les meilleures pratiques pour les scripts de
3655 maintenance</heading>
3657 Les scripts de maintenance incluent les fichiers <file>debian/postinst</file>,
3658 <file>debian/preinst</file>, <file>debian/prerm</file> et
3659 <file>debian/postrm</file>. Ces scripts prennent soin de la configuration
3660 d'installation ou de désinstallation des paquets, ce qui n'est pas simplement créer ou
3661 supprimer des fichiers et des répertoires. Les instructions suivantes
3662 complètent la <url id="&url-debian-policy;" name="charte Debian">.
3664 Les scripts de maintenance doivent être idempotents. Cela veut dire que vous
3665 devez vous assurer que rien de grave ne se produit si un script est appelé deux
3666 fois là où il ne devrait habituellement être appelé qu'une fois.
3668 Les entrée et sortie standard peuvent être redirigées (par exemple, dans des
3669 tubes<footnote><p>pipes</p></footnote>) pour des besoins d'enregistrement
3670 d'activité, donc vous ne devez pas supposer que ce sont des tty.
3672 Tous les affichages et les configurations interactives devraient être
3673 minimisées. Quand cela est nécessaire, vous devriez utiliser le paquet
3674 <package>debconf</package> pour l'interface. Rappelez-vous que, dans tous les
3675 cas, l'affichage ne doit se faire que dans l'étape de configuration,
3676 <tt>configure</tt> du script de post-installation, <file>postinst</file>.
3678 Gardez les scripts de maintenance aussi simples que possible. Nous vous
3679 suggérons d'utiliser des scripts shell POSIX purs. Rappelez-vous, que si vous
3680 avez besoin d'une fonctionnalité de Bash, le script de maintenance doit
3681 l'indiquer dans sa première ligne. Un shell POSIX ou Bash sont préférés à
3682 Perl car ils permettent à <package>debhelper</package> d'ajouter facilement des
3683 parties aux scripts.
3685 Si vous modifiez les scripts de maintenance, assurez-vous de tester la
3686 suppression du paquet, la double installation et la purge complète. Assurez-vous
3687 qu'il ne reste rien d'un paquet purgé, c'est-à-dire, que la purge doit enlever
3688 tout fichier créé, directement ou indirectement, par les scripts de
3691 Si vous avez besoin de vérifier l'existence d'une commande, vous devriez
3692 utiliser quelque chose comme :
3693 <example>if [ -x /usr/sbin/install-docs ]; then ...</example>
3695 Si vous ne désirez pas mettre en dur le chemin de la commande dans le script de
3696 maintenance, la fonction de shell suivante conforme à POSIX peut vous
3701 Vous pouvez utiliser cette fonction pour rechercher le <tt>$PATH</tt> pour un
3702 nom de commande passé en argument. Il renvoie vrai (zéro) si la commande a été
3703 trouvée et faux sinon. Il s'agit réellement de la façon la plus portable de faire
3704 car <tt>command -v</tt>, <prgn>type</prgn> et <prgn>which</prgn> ne sont pas
3707 Bien que <prgn>which</prgn> soit une alternative acceptable car il est
3708 présent dans le paquet classé <em>required</em> <package>debianutils</package>, il n'est pas
3709 présent dans la partition racine. Autrement dit, il est placé dans
3710 <file>/usr/bin</file> au lieu de <file>/bin</file>, il n'est donc pas possible
3711 de l'utiliser dans les scripts qui sont exécutés avant que la partition
3712 <file>/usr</file> soit montée. Cependant, la plupart des scripts n'auront pas ce
3716 <sect id="bpp-config-mgmt">
3717 <heading>Gestion de la configuration avec <package>debconf</package></heading>
3721 <package>Debconf</package> est un système de gestion de configuration qui
3722 peut être utilisé par les divers scripts de maintenance (principalement
3723 en post-installation dans le fichier <file>postinst</file>) pour demander à
3724 l'utilisateur des informations concernant la configuration du paquet. Il
3725 faut maintenant éviter les interactions directes avec l'utilisateur et
3726 préférer les interactions utilisant <package>debconf</package>. Ceci permettra
3727 à l'avenir des installations non interactives. <!-- pas de trait d'union
3728 entre non et adjectif -->
3730 Debconf est un bon outil, mais il est souvent mal utilisé. Plusieurs erreurs
3731 communes sont référencées dans la page de manuel <manref section="8"
3732 name="debconf-devel">. Vous devriez vraiment lire cette page si vous décidez
3737 <sect id="bpp-i18n">
3738 <heading>Internationalisation</heading>
3742 <sect1 id="bpp-i18n-debconf">Gestion des traductions de
3745 Comme les porteurs, les traducteurs ont une tâche difficile. Ils travaillent sur
3746 un grand nombre de paquets et doivent donc collaborer avec plusieurs
3747 responsables différents. De plus, la plupart du temps, l'anglais n'est pas leur
3748 langue maternelle, il se peut que vous deviez être particulièrement patient
3751 Le but de <package>debconf</package> était de faciliter la configuration des
3752 paquets aux responsables et aux utilisateurs. À l'origine, les
3753 traductions des questionnaires debconf étaient gérées avec
3754 <prgn>debconf-mergetemplate</prgn>. Cependant, cette technique est maintenant
3755 déconseillée ; la meilleure façon pour l'internationalisation de
3756 <package>debconf</package> est d'utiliser le paquet
3757 <package>po-debconf</package>. Cette méthode est plus facile et pour le
3758 responsable et pour les traducteurs ; des scripts de transition sont
3761 Lors de l'utilisation de <package>po-debconf</package>, la traduction est
3762 stockée dans des fichiers <file>po</file> (à l'instar des techniques de
3763 traduction de <prgn>gettext</prgn>). Des fichiers modèles contiennent les
3764 messages d'origine et indiquent quels sont les champs traduisibles. Quand vous
3765 modifiez l'état d'un champ traduisible en appelant
3766 <prgn>debconf-updatepo</prgn>, la traduction est marquée comme ayant besoin de
3767 l'attention des traducteurs. Puis, lors de la construction du paquet, le
3768 programme <prgn>dh_installdebconf</prgn> prendra soin de toute la magie
3769 nécessaire à l'ajout du modèle avec les traductions à jour dans les paquets
3770 binaires. Veuillez vous reporter à la page de manuel <manref name="po-debconf"
3771 section="7"> pour les détails.
3774 <sect1 id="bpp-i18n-docs">
3775 <heading>Documentation traduite</heading>
3777 La traduction de la documentation est cruciale pour les utilisateurs, mais elle
3778 représente un important travail. Il n'existe aucun moyen d'éliminer ce travail,
3779 mais vous pouvez faciliter les choses pour les traducteurs.
3781 Si vous êtes responsable d'une documentation quelle que soit sa taille, il est
3782 plus facile pour les traducteurs d'avoir accès à un système de contrôle de
3783 source. Ceci permet aux traducteurs de voir les différences entre deux versions
3784 de la documentation, pour, par exemple, qu'ils puissent voir ce qui a besoin
3785 d'être retraduit. Il est recommandé que le document traduit inclue une note à
3786 propos de la révision de contrôle du source sur laquelle la traduction est
3787 basée. Un système intéressant est fourni par <url id="&url-i18n-doc-check;"
3788 name="doc-check"> dans le paquet <package>boot-floppies</package> qui donne un
3789 aperçu de l'état de la traduction pour une langue donnée, en utilisant les
3790 commentaires structurés pour une révision donnée du fichier à traduire et, pour
3791 un fichier traduit, la révision du fichier d'origine sur laquelle la traduction
3792 est basée. Vous pouvez vouloir adapter et fournir ceci dans votre référentiel CVS.
3794 Si vous maintenez de la documentation au format XML ou SGML, nous vous suggérons
3795 d'isoler les informations indépendantes de la langue et de les définir
3796 comme des entités dans un fichier séparé qui sera inclus par les différentes
3797 traductions. Ceci aide, par exemple, à garder à jour les adresses pour
3803 <sect id="bpp-common-situations">
3804 <heading>Pratiques d'empaquetage communes</heading>
3807 <sect1 id="bpp-kernel">Kernel modules/patches
3810 &FIXME; Heavy use of kernel-package. provide files in
3811 /etc/modutils/ for module configuration.
3814 <sect1 id="bpp-autotools">
3815 <heading>Paquets utilisant <prgn>autoconf</prgn>/<prgn>automake</prgn>
3817 Conserver à jour les fichiers d'<prgn>autoconf</prgn>, <file>config.sub</file>
3818 et <file>config.guess</file>, est critique pour les porteurs, spécialement pour
3819 les architectures plus changeantes. De très bonnes pratiques d'empaquetage
3820 utilisant <prgn>autoconf</prgn> et/ou <prgn>automake</prgn> ont été regroupées
3821 dans &file-bpp-autotools; du paquet <package>autotools-dev</package>. Vous êtes
3822 vivement encouragé à lire ce fichier et à suivre les recommandations indiquées.
3825 <sect1 id="bpp-libraries">Bibliothèques
3827 Pour diverses raisons, il a toujours été difficile d'empaqueter les
3828 bibliothèques. La charte impose plusieurs contraintes pour faciliter la maintenance
3829 et pour garantir que les mises à jour sont aussi simples que possible quand une
3830 nouvelle version amont est disponible. Une erreur dans une bibliothèque peut
3831 rendre défectueux une douzaine de paquets qui en dépendent.
3833 Les bonnes pratiques d'empaquetage des bibliothèques ont été regroupées dans
3834 <url id="&url-libpkg-guide;" name="le guide d'empaquetage des
3837 <sect1 id="bpp-docs">Documentation
3839 Assurez-vous de suivre les <url id="&url-debian-policy;ch-docs.html"
3840 name="règles sur la documentation">.</p>
3842 Si votre paquet contient de la documentation construite à partir de XML ou SGML,
3843 nous vous recommandons de ne pas fournir le source XML ou SGML dans le(s)
3844 paquet(s) binaire(s). Si les utilisateurs désirent avoir le source de la
3845 documentation, ils peuvent récupérer le paquet source.</p>
3847 La charte spécifie que la documentation doit être fournie au format HTML.
3848 Nous vous recommandons également de la fournir au format PDF et texte simple si
3849 c'est adapté et qu'une sortie de qualité est possible. Cependant, il n'est
3850 généralement pas approprié de fournir des versions en texte simple pour la
3851 documentation dont le format source est du HTML.</p>
3853 Les principaux manuels fournis devraient être enregistrés par le paquet
3854 <package>doc-base</package> à l'installation. Reportez-vous à la documentation
3855 du paquet <package>doc-base</package> pour plus d'information.</p>
3859 <sect1 id="bpp-other">Types spécifiques de paquets
3861 Plusieurs types spécifiques de paquets ont des sous-chartes spéciales et des
3862 règles et pratiques d'empaquetage correspondantes :
3865 Les paquets liés à Perl ont leur <url id="&url-perl-policy;" name="charte
3866 Perl">, quelques exemples de paquets qui suivent cette charte sont
3867 <package>libdbd-pg-perl</package> (module perl binaire) ou
3868 <package>libmldbm-perl</package> (module perl indépendant de
3872 Les paquets liés à Python ont leur charte Python ; voir
3873 &file-python-policy; dans le paquet <package>python</package>.
3876 Les paquets liés à Emacs ont leur <url id="&url-emacs-policy;"
3877 name="charte Emacs">.
3880 Les paquets liés à Java ont leur <url id="&url-java-policy;" name="charte
3884 Les paquets liés à Ocaml ont leur propre charte que l'on trouve dans
3885 &file-ocaml-policy; du paquet <package>ocaml</package>. Un bon exemple est
3886 le paquet source <package>camlzip</package>.
3889 Les paquets fournissant des DTDs XML ou SGML devraient se conformer aux
3890 recommandations que l'on peut trouver dans le paquet
3891 <package>sgml-base-doc</package>
3893 Les paquets Lisp devraient s'enregistrer avec le paquet
3894 <package>common-lisp-controller</package> pour lequel vous pouvez vous
3895 reporter au fichier &file-lisp-controller;.
3900 <sect1 id="bpp-archindepdata">Données indépendantes de l'architecture
3902 Il n'est pas rare d'avoir une grande quantité de données indépendantes de
3903 l'architecture fournie avec un programme. Par exemple, des fichiers
3904 audio, une collection d'icônes, des motifs de papiers peints ou autres
3905 fichiers graphiques. Si la taille des données est négligeable par
3906 rapport à la taille du reste du paquet, il est probablement mieux de
3907 tout garder dans le même paquet.
3910 Cependant, si la taille des données est considérable, vous devez
3911 envisager de les partager dans un paquet séparé et indépendant de
3912 l'architecture (« _all.deb »). Ainsi, en faisant cela, vous
3913 évitez une duplication inutile des mêmes données dans onze fichiers
3914 .debs pour chaque architecture. Bien que ceci ajoute une surcharge
3915 supplémentaire aux fichiers <file>Packages</file>, ceci sauve beaucoup
3916 d'espace disque sur les miroirs Debian. Séparer les données
3917 indépendantes de l'architecture réduit également le temps de traitement
3918 de <prgn>lintian</prgn> ou de <prgn>linda</prgn> (voir <ref
3919 id="tools-lint">) quand ils sont exécutés sur l'ensemble de l'archive
3927 <chapt id="beyond-pkging">
3928 <heading>Au-delà de l'empaquetage
3930 Debian, c'est beaucoup plus que de l'empaquetage de logiciels et de
3931 la maintenance de paquets. Ce chapitre contient des informations sur les
3932 façons, souvent vraiment importantes, de contribuer à Debian au-delà de la
3933 simple création et maintenance de paquets.
3935 En tant qu'organisation de volontaires, Debian repose sur la liberté de
3936 choisir ce sur quoi l'on désire travailler et de choisir la
3937 partie la plus importante à laquelle on veut consacrer son temps.
3939 <sect id="submit-bug">
3940 <heading>Rapporter des bogues
3942 Nous vous encourageons à remplir des rapports de bogue quand vous trouvez des
3943 bogues dans les paquets Debian. En fait, les développeurs Debian sont souvent
3944 les testeurs de première ligne. Trouver et rapporter les bogues dans les
3945 paquets d'autres développeurs améliore la qualité de Debian.
3947 Lisez les <url name="instructions pour créer un rapport de bogue"
3948 id="&url-bts-report;"> dans le <url name="système de suivi des bogues"
3949 id="&url-bts;"> Debian.
3951 Essayez de soumettre le bogue à partir d'un compte utilisateur normal sur lequel
3952 vous pouvez recevoir des courriers, pour que les personnes puissent vous
3953 joindre s'ils ont besoin de plus d'informations à propos du bogue. Ne soumettez
3954 pas de bogues en tant que root.
3956 Vous pouvez utiliser un outil comme <manref name="reportbug" section="1"> pour
3957 soumettre des bogues. Il peut automatiser et dans l'ensemble faciliter le
3960 Assurez-vous que le bogue n'a pas déjà été rapporté. Chaque paquet dispose d'une
3961 liste de bogues facilement accessible à
3962 <tt>http://&bugs-host;/<var>packagename</var></tt>. Des outils comme <manref
3963 name="querybts" section="1"> peuvent également vous fournir ces informations (et
3964 <prgn>reportbug</prgn> invoquera également habituellement <prgn>querybts</prgn>
3967 Essayer d'envoyer vos bogues au bon emplacement. Quand, par exemple, votre bogue
3968 concerne un paquet qui réécrit des fichiers d'un autre paquet, vérifiez les
3969 listes des bogues pour les <em>deux</em> paquets pour éviter de créer des
3970 rapports de bogues dupliqués.
3972 Vous pouvez également parcourir les bogues d'autres paquets, en les regroupant
3973 s'ils sont indiqués plus d'une fois, ou en les marquant avec
3974 « fixed » quand ils ont déjà été corrigés. Notez cependant que si
3975 vous n'êtes ni le rapporteur du bogue, ni le responsable du paquet, vous ne
3976 devriez pas fermer réellement le bogue (à moins que vous n'ayez obtenu la
3977 permission du responsable).
3979 De temps en temps, vous pourrez vouloir vérifier ce qui s'est passé à propos des
3980 bogues que vous avez rapportés. Saisissez cette occasion pour fermer les bogues
3981 que vous ne pouvez plus reproduire. Pour trouver tous les bogues que vous avez
3982 rapportés, vous avez simplement besoin d'aller à
3983 <tt>http://&bugs-host;/from:<var><your-email-addr></var></tt>.
3985 <sect1 id="submit-many-bugs">Ouvrir un grand nombre de rapports d'un seul
3988 Ouvrir un grand nombre de rapports pour le même problème sur un grand nombre de
3989 paquets — plus de dix — est une pratique que nous déconseillons.
3990 Prenez toutes les mesures possibles pour éviter cette situation. Si le problème
3991 peut être détecté automatiquement par exemple, ajoutez un nouveau test dans le
3992 paquet <package>lintian</package> pour générer une erreur ou un avertissement.
3994 Si vous ouvrez plus de dix rapports sur le même sujet, il est préférable
3995 d'indiquer votre intention sur la liste &email-debian-devel;. Cela donnera à
3996 d'autres développeurs la possibilité de vérifier que le problème existe
3997 vraiment. De plus, cela permet d'éviter que plusieurs responsables ne rédigent
3998 les mêmes rapports de bogue simultanément.
4000 Quand vous envoyez un grand nombre de rapports sur le même sujet, vous devriez
4001 les envoyer à <email>maintonly@&bugs-host;</email> pour qu'ils ne soient
4002 pas redirigés vers les listes de diffusion.
4005 <sect id="qa-effort">Effort d'assurance qualité
4007 <sect1 id="qa-daily-work">Travail journalier
4009 Bien qu'il y ait un groupe de personnes dédiées à l'assurance qualité, les
4010 devoirs de QA ne leur sont pas exclusivement réservés. Vous pouvez participer à
4011 cet effort en conservant vos paquets aussi exempts de bogues que possible et
4012 aussi corrects que possible selon <prgn>lintian</prgn> (reportez-vous à <ref
4013 id="lintian">). Si cela vous paraît impossible, vous devriez alors envisager
4014 d'abandonner certains de vos paquets (reportez-vous à <ref id="orphaning">).
4015 Sinon, vous pouvez demander de l'aide à d'autres personnes pour qu'elles
4016 puissent rattraper votre retard dans la correction des bogues (vous pouvez
4017 demander de l'aide sur &email-debian-qa; ou &email-debian-devel;). En même
4018 temps, vous pouvez rechercher des co-responsables (reportez-vous à <ref
4019 id="collaborative-maint">).
4021 <sect1 id="qa-bsp">Les chasses aux bogues
4023 De temps en temps, le groupe d'assurance qualité organise des chasses aux
4024 bogues<footnote><em>Bug Squashing Party</em></footnote> pour essayer de
4025 supprimer le plus de problèmes possible. Elles sont annoncées sur
4026 &email-debian-devel-announce; et l'annonce explique quel domaine sera visé
4027 pendant la chasse : habituellement, il s'agit des bogues empêchant
4028 l'intégration du paquet dans la distribution (« Release Critical »),
4029 mais il peut arriver qu'ils décident d'aider à finir une transition majeure
4030 (comme une nouvelle version de Perl qui demande la recompilation de tous les
4033 Les règles pour les mises à jour indépendantes sont différentes au cours de la
4034 chasse parce que l'annonce de la chasse est considérée comme une annonce
4035 préalable pour les mises à jour indépendantes. Si vous avez des paquets qui
4036 peuvent être affectées par la chasse (parce qu'ils ont des bogues critiques par
4037 exemple), vous devriez envoyer une mise à jour pour chaque bogue correspondant
4038 pour expliquer leur état actuel et ce que vous attendez de la chasse. Si vous
4039 ne voulez pas d'une mise à jour indépendante ou si vous n'êtes intéressé que
4040 par un correctif ou si vous voulez gérer vous-même le bogue, veuillez l'expliquer
4043 Les personnes qui participent à la chasse ont des règles spécifiques pour les
4044 mises à jour indépendantes, ils peuvent en faire une sans avertissement
4045 préalable s'ils envoient leur paquet avec un délai d'au moins 3 jours dans
4046 DELAYED/3-day. Toutes les autres règles de mise à jour indépendante
4047 s'appliquent comme d'habitude, ils devraient envoyer le correctif de la
4048 mise à jour dans le BTS (pour l'un des bogues ouverts corrigé par la mise à
4049 jour ou pour un nouveau bogue marqué comme fixé). Ils devraient également
4050 respecter les souhaits du responsable s'il en a exprimés.
4052 Si une personne ne se sent pas à l'aise avec une mise à jour indépendante, elle
4053 devrait simplement envoyer un correctif au BTS. C'est de loin meilleur qu'une
4054 mise à jour défectueuse.
4056 <sect id="contacting-maintainers">Contacter d'autres responsables
4058 Pendant vos activités dans Debian, vous aurez à contacter d'autres responsables
4059 pour différentes raisons. Vous pourrez vouloir discuter d'une nouvelle
4060 façon de coopérer au sein d'un ensemble de paquets liés, ou vous pouvez
4061 simplement rappeler à quelqu'un qu'une nouvelle version est disponible et
4062 que vous en avez besoin.
4064 Chercher l'adresse d'un responsable d'un paquet peut être fastidieux.
4065 Heureusement, il existe un alias de courrier simple,
4066 <tt><package>@&packages-host;</tt>, qui fournit un moyen d'envoyer
4067 un courrier à un responsable, quelle que soit son adresse (ou ses
4068 adresses). Remplacez <tt><package></tt> par le nom du paquet source
4071 Vous pouvez également vouloir contacter les personnes qui sont inscrites à un
4072 paquet de source donné par le <ref id="pkg-tracking-system">. Vous pouvez le
4073 faire en utilisant l'adresse <tt><package-name>@&pts-host;</tt>.
4076 <sect id="mia-qa">Gérer les responsables non joignables
4078 Si vous remarquez qu'un paquet manque de maintenance, vous devriez vous assurer
4079 que le responsable est toujours actif et qu'il continue à travailler sur
4080 ses paquets. Il est possible qu'il ne soit plus actif, mais qu'il ne se
4081 soit pas désenregistré du système. D'un autre côté, il est possible qu'il
4082 ait simplement besoin d'un rappel.
4084 La première étape est de contacter poliment le responsable et d'attendre une
4085 réponse pendant un temps raisonnable. Il est assez difficile de définir le
4086 « temps raisonnable », mais il est important de prendre en compte que
4087 la vraie vie est parfois assez mouvementée. Une façon de gérer cela pourrait
4088 être d'envoyer un rappel après deux semaines.
4090 Si le responsable ne répond pas après quatre semaines (un mois), on peut
4091 supposer qu'il n'y aura probablement pas de réponse. Si ceci se produit, vous
4092 devriez poursuivre vos investigations et essayer de réunir toutes les
4093 informations utiles sur ce responsable. Ceci inclut :
4096 <item>Les informations « echelon » disponibles dans la <url
4097 id="&url-debian-db;" name="base de données LDAP des
4098 développeurs">, qui indiquent quand le développeur a envoyé un
4099 message pour la dernière fois sur une liste de diffusion Debian.
4100 (Ceci inclut les envois via les listes debian-*-changes.)
4101 Rappelez-vous également de vérifier si le responsable est indiqué
4102 comme en vacances dans la base de données.
4104 <item>Le nombre de paquets de ce responsable et les conditions de ces
4105 paquets. En particulier, restent-ils des bogues empêchant
4106 l'intégration du paquet dans la distribution qui sont ouverts
4107 depuis des lustres ? De plus, combien de bogues y a-t-il en
4108 général ? Un autre point d'information important est si les
4109 paquets ont subi des mises à jour indépendantes et si oui, par
4112 <item>Est-ce que le responsable est actif en dehors de Debian ? Par
4113 exemple, il peut avoir envoyé des messages récemment à des
4114 listes de diffusion non-Debian ou des groupes de discussion.
4117 Un gros problème est représenté par les paquets parrainés — le responsable
4118 n'est pas un développeur Debian officiel. Les informations « echelon »
4119 ne sont pas disponibles pour les personnes parrainés, par exemple, vous devez
4120 donc trouver et contacter le responsable Debian qui a réellement envoyé le
4121 paquet. Étant donné qu'il a signé le paquet, il est responsable de l'envoi de
4122 toute façon et il devrait savoir ce qui s'est passé avec la personne qu'il
4125 Il est également permis d'envoyer une demande à &email-debian-devel; demandant
4126 si quelqu'un est au courant d'information sur le responsable manquant.
4128 Une fois que vous avez réuni toutes ces informations, vous pouvez contacter
4129 &email-debian-qa;. Les personnes de cet alias utiliseront les informations que
4130 vous aurez fournies pour décider comment procéder. Par exemple, ils peuvent
4131 abandonner un ou tous les paquets du responsable. Si un paquet a subi une mise à
4132 jour indépendante, ils peuvent préférer contacter le responsable ayant fait cette
4133 mise à jour — il est peut-être intéressé par le paquet.
4135 Un dernier mot : veuillez vous souvenir d'être poli. Nous sommes tous des
4136 volontaires et nous ne pouvons dédier l'intégralité de notre temps à Debian.
4137 Vous n'êtes pas non plus au courant des circonstances de la personne impliquée.
4138 Elle est peut-être sérieusement malade ou pourrait même nous avoir quitté
4139 — vous ne savez pas qui recevra vos courriers — imaginez comme un
4140 proche se sentira s'il lit un courrier pour la personne décédée et trouve un
4141 message très impoli, en colère et accusateur !)
4143 D'un autre côté, bien que nous soyons tous volontaires, nous avons une
4144 responsabilité. Vous pouvez donc insister sur l'importance du plus grand intérêt
4145 — si un responsable n'a plus le temps ou l'envie, il devrait
4146 « laisser filer » et donner le paquet à quelqu'un ayant plus de temps.
4148 <sect id="newmaint">
4149 <heading>Interagir avec de futurs développeurs Debian
4151 Le succès de Debian dépend de sa capacité à attirer et retenir de nouveaux et
4152 talentueux volontaires. Si vous êtes un développeur expérimenté, nous vous
4153 recommandons de vous impliquer dans le processus d'apport des nouveaux
4154 responsables. Cette section décrit comment aider les futurs développeurs.
4157 <sect1 id="sponsoring">Parrainer des paquets
4159 Parrainer un paquet veut dire envoyer un paquet pour un responsable qui n'est
4160 pas encore autorisé à le faire lui-même, un candidat nouveau responsable.
4161 Parrainer un paquet veut aussi dire que vous en acceptez la responsabilité.
4163 Si vous désirez être volontaire pour être parrain, vous pouvez vous inscrire à
4164 <url id="&url-sponsors;">.
4166 Les nouveaux responsables ont habituellement certaines difficultés à créer des
4167 paquets Debian — ceci est bien compréhensible. C'est pourquoi le parrain
4168 est là pour vérifier que le paquet parrainé est assez bon pour être inclus
4169 dans Debian. (Notez que si le paquet parrainé est nouveau, les ftpmasters
4170 devront également l'inspecter avant de l'intégrer)
4172 Effectuer un parrainage en signant simplement l'envoi ou en recompilant le
4173 paquet <strong>n'est définitivement pas recommandé</strong>. Vous devez
4174 construire le paquet source comme si vous vouliez construire l'un de vos
4175 paquets. Rappelez-vous que cela ne change rien si vous avez laissé le nom du
4176 candidat développeur dans le changelog et dans le fichier de
4177 contrôle, il est toujours possible de savoir que c'est vous qui avez fait l'envoi.
4179 Si vous êtes un gestionnaire de candidature pour un futur développeur, vous
4180 pouvez également être son parrain. Ainsi, vous pourrez vérifier comment le
4181 candidat gère la partie « Tâches et Capacités »<footnote>Tasks and
4182 Skills</footnote> de sa candidature.
4184 <sect1>Gérer les paquets parrainés
4186 En envoyant un paquet sponsorisé vers Debian, vous certifiez que le paquet
4187 atteint les standards minimum de Debian. Ceci implique que vous devez
4188 construire et tester le paquet sur votre propre système avant l'envoi.
4190 Vous ne pouvez pas simplement envoyer un fichier <file>.deb</file> binaire d'un
4191 filleul. En théorie, vous devriez seulement demander le fichier diff et
4192 l'emplacement de l'archive source d'origine et ensuite vous devriez récupérer
4193 le source et appliquer le diff vous-même. En pratique, vous pouvez vouloir
4194 utiliser le paquet source construit par votre filleul. Dans ce cas, vous devez
4195 vérifier qu'il n'a pas modifié les fichiers sources du fichier
4196 <file>.orig.tar.gz</file> qu'il fournit.
4198 N'ayez pas peur de répondre au filleul et de lui indiquer les changements qu'il
4199 doit faire. Cela prend souvent plusieurs échanges de courriers avant que le
4200 paquet ne soit dans un état acceptable. Être un parrain veut dire être un
4203 Une fois que le paquet a atteint les standards Debian, construisez le paquet
4206 dpkg-buildpackage -us -uc
4210 debsign -m <var>"Nom complet</var> <var>votre-adresse-courrier</var> <var>changes-file</var>
4212 avant de l'envoyer dans le répertoire Incoming.
4214 Le champ Maintainer du fichier <file>control</file> et le fichier
4215 <file>changelog</file> devraient lister la personne qui a fait l'empaquetage,
4216 c'est-à-dire, le filleul. Celui-ci recevra donc tous les courriers du système
4217 de suivi des bogues (BTS) à propos de son paquet.
4219 Si vous préférez laisser une trace plus visible de votre travail de parrainage,
4220 vous pouvez ajouter une ligne l'indiquant dans la plus récente entrée du
4223 Vous êtes encouragé à garder un œil sur le suivi des paquets que vous parrainez
4224 en utilisant le <ref id="pkg-tracking-system">.
4226 <sect1>Recommander un nouveau développeur
4228 Reportez-vous à la page sur les <url id="&url-newmaint-advocate;"
4229 name="recommandations pour un développeur prospectif"> sur le site web Debian.
4231 <sect1>Gérer les candidatures des nouveaux candidats
4233 Veuillez vous reporter à la <url id="&url-newmaint-amchecklist;" name="liste à
4234 vérifier pour les responsables de candidatures"> sur le site web Debian.
4238 <appendix id="tools">Aperçu des outils du responsable Debian
4240 Cette section contient un aperçu rapide des outils dont dispose le responsable.
4241 Cette liste n'est ni complète, ni définitive, il s'agit juste d'un guide
4242 des outils les plus utilisés.
4244 Les outils du responsable Debian sont destinés à améliorer le confort des
4245 responsables et libérer leur temps des tâches plus cruciales. Comme le dit
4246 Larry Wall, il y a plus d'une manière de le faire.
4248 Certaines personnes préfèrent utiliser des outils de haut niveau, d'autres pas.
4249 Debian n'a pas de position officielle sur la question ; tout outil
4250 conviendra du moment qu'il fait le boulot. C'est pourquoi cette section
4251 n'a pas été conçue pour indiquer à chacun quel outil il doit utiliser ou
4252 comment il devrait faire pour gérer sa charge de responsable Debian. Elle
4253 n'est pas non plus destinée à favoriser l'utilisation d'un outil aux
4256 La plupart des descriptions de ces outils proviennent des descriptions de leurs
4257 paquets. Vous trouverez plus d'informations dans les documentations de ces
4258 paquets. Vous pouvez aussi obtenir plus d'informations avec la commande
4259 <tt>apt-cache show <package_name></tt>.</p>
4262 <sect id="tools-core">
4263 <heading>Outils de base</heading>
4265 Les outils suivants sont pratiquement nécessaires à tout responsable.</p>
4268 <sect1 id="dpkg-dev">
4269 <heading><package>dpkg-dev</package></heading>
4271 Le paquet <package>dpkg-dev</package> contient les outils (y compris
4272 <prgn>dpkg-source</prgn>) nécessaires pour déballer, fabriquer et livrer des
4273 paquets Debian source. Ces utilitaires fournissent les fonctionnalités de bas
4274 niveau indispensables pour créer et manipuler les paquets ; en tant que
4275 tels, ils sont indispensables à tout responsable Debian.
4277 <sect1 id="debconf">
4278 <heading><package>debconf</package></heading>
4280 Le paquet <package>debconf</package> fournit une interface unifiée pour
4281 configurer les paquets interactivement. Il est indépendant de l'interface et
4282 permet une configuration en mode texte, par une interface HTML ou par boîtes de
4283 dialogue. D'autres types d'interface peuvent être ajoutés sous forme de
4286 Vous trouverez la documentation de ce paquet dans le paquet
4287 <package>debconf-doc</package>.
4289 Beaucoup pensent que ce système devrait être utilisé pour tout paquet
4290 nécessitant une configuration interactive ; reportez-vous à la <ref
4291 id="bpp-config-mgmt">. <package>debconf</package> n'est pas requis par la
4292 <em>charte Debian</em> pour le moment ; cependant, cela pourra changer.
4295 <sect1 id="fakeroot">
4296 <package>fakeroot</package>
4298 <package>fakeroot</package> simule les privilèges <em>root</em>. Cela permet de
4299 fabriquer un paquet sans être root (en général, les paquets installent des
4300 fichiers appartenant à <em>root</em>). Si vous avez installé
4301 <package>fakeroot</package>, vous pouvez construire un paquet en tant que
4302 simple utilisateur avec : <tt>dpkg-buildpackage -rfakeroot</tt>.
4305 <sect id="tools-lint">
4306 <heading>Outils du paquet lint</heading>
4308 Selon le « Free On-line Dictionary of Computing » (FOLDOC),
4309 « lint » est « un outil de traitement de langage C qui contient
4310 beaucoup plus de tests complets sur le code que n'en font habituellement les
4311 compilateurs C. ». Les outils du paquet lint aide les responsables de
4312 paquet à trouver automatiquement des problèmes habituels et des violations de
4313 charte dans leurs paquets</p>
4315 <sect1 id="lintian">
4316 <heading><package>lintian</package></heading>
4318 <package>lintian</package> dissèque les paquets pour y repérer des bogues et des
4319 manquements aux règles de développement. Il contient des tests automatisés pour
4320 vérifier de nombreuses règles et quelques erreurs courantes.
4322 Vous devriez récupérer la dernière version de <package>lintian</package> depuis
4323 <em>unstable</em> régulièrement et vérifier tous vos paquets. Notez que
4324 l'option <tt>-i</tt> donne des explications détaillées sur la signication de
4325 chaque erreur, la partie concernée dans la charte et le moyen habituel de
4328 Veuillez vous reporter à <ref id="sanitycheck"> pour plus d'informations sur
4329 comment et quand utiliser Lintian.
4331 Vous pouvez aussi obtenir un résumé de tous les problèmes reportés par Lintian
4332 sur vos paquets à <url id="&url-lintian;">. Ces rapports contiennent la sortie
4333 de la dernière version de <prgn>lintian</prgn> sur l'ensemble de la
4334 distribution de développement (<em>unstable</em>).
4338 <heading><package>linda</package></heading>
4340 <package>linda</package> est un autre vérificateur de paquet. Il est sembable à
4341 <package>lintian</package>, mais il a un ensemble de tests différents. Il est écrit
4342 en Python plutôt qu'en Perl.</p>
4346 <sect1 id="debdiff">
4347 <heading><package>debdiff</package></heading>
4349 <prgn>debdiff</prgn> (du paquet <package>devscripts</package>, <ref
4350 id="devscripts">) compare des listes de fichiers et des fichiers de contrôle de
4351 deux paquets. C'est un simple test de régression qui peut vous aider à remarquer
4352 si le nombre de paquets binaires à changer depuis le dernier envoi ou si autre
4353 chose a changé dans le fichier de contrôle. Bien sûr, certains des changements
4354 qu'il indique sont normaux, mais il peut aider à empêcher différents accidents.
4356 Vous pouvez l'exécuter sur un couple de paquets binaires :
4358 debdiff package_1-1_arch.deb package_2-1_arch.deb
4361 Ou même sur un couple de fichiers de changements :
4363 debdiff package_1-1_arch.changes package_2-1_arch.changes
4366 Pour plus d'informations, veuillez voir <manref name="debdiff" section="1">.
4372 <sect id="tools-helpers">
4373 <heading>Aides pour le fichier <file>debian/rules</file></heading>
4375 Des outils de construction de paquets rendent le processus d'écriture du fichier
4376 <file>debian/rules</file> plus facile. Veuillez voir les <ref
4377 id="helper-scripts"> pour plus d'informations sur les raisons pour lesquelles
4378 ils peuvent être désirables ou non.
4380 <sect1 id="debhelper">
4381 <heading><package>debhelper</package></heading>
4383 Le paquet <package>debhelper</package> regroupe un ensemble de programmes qui
4384 peuvent être utilisés dans <file>debian/rules</file> pour automatiser les
4385 tâches courantes relatives à la fabrication des paquets Debian binaires. Ce
4386 paquet contient des utilitaires pour installer différents fichiers, les
4387 compresser, ajuster leurs droits et intégrer votre paquet dans le système de
4390 À la différence des autres approches, <package>debhelper</package> est divisé en
4391 plusieurs petits utilitaires qui agissent de manière cohérente. Ce découpage
4392 permet un contrôle des opérations plus fin que d'autres « <em>outils
4393 debian/rules</em> ».
4395 Il existe aussi un certain nombre de petites extensions
4396 <package>debhelper</package> trop éphémères pour être documentées. Vous en
4397 listerez la plupart en faisant <tt>apt-cache search ^dh-</tt>.
4401 <sect1 id="debmake">
4402 <heading><package>debmake</package></heading>
4404 <package>debmake</package> — un précurseur de <package>debhelper</package>
4405 — est un assistant moins modulaire pour manipuler le fichier
4406 <file>debian/rules</file>. Il inclut deux programmes principaux :
4407 <prgn>deb-make</prgn>, utile au développeur Debian pour convertir un paquet
4408 source normal (non-Debian) en paquet source Debian, et <prgn>debstd</prgn> qui
4409 regroupe le type de fonction que l'on trouve dans <package>debhelper</package>.
4411 Le consensus actuel est que l'usage de <package>debmake</package> est
4412 déconseillé au profit de <package>debhelper</package>, mais ce n'est pas une
4413 erreur d'utiliser <package>debmake</package>.
4416 <sect1 id="dh-make">
4417 <heading><package>dh-make</package>
4419 Le paquet <package/dh-make/ contient <prgn/dh_make/, un programme qui crée un
4420 squelette de fichiers nécessaires à la construction d'un paquet Debian à partir
4421 d'une arborescence source. Comme le nom le suggère, <prgn/dh_make/ est une
4422 ré-écriture de <package/debmake/ et ses fichiers modèles utilisent les
4423 programmes dh_* de <package/debhelper/.
4425 Quoique les fichiers de règles générés par <prgn/dh_make/ constituent en général
4426 une base suffisante pour un paquet fonctionnel, ce ne sont que les
4427 fondations : la charge incombe toujours au responsable d'affiner
4428 les fichiers générés et de rendre le paquet complètement fonctionnel et
4429 en conformité avec la charte.
4433 <heading><package>yada</package></heading>
4435 Le paquet <package>yada</package> est un autre assistant pour la création de
4436 paquets. Il utilise un fichier <file>debian/packages</file> pour générer
4437 <file>debian/rules</file> et d'autres fichiers nécessaires dans le
4438 sous-répertoire <file>debian/</file>.
4440 Remarque : <package>yada</package> est qualifié de « quasiment non
4441 maintenu » par son responsable, Charles Briscoe-Smith. Son usage est donc
4447 <heading><package>equivs</package></heading>
4449 <package>equivs</package> est un autre paquet pour faire des paquets. Il est
4450 souvent conseillé pour un usage local, si vous avez besoin de faire un paquet
4451 pour satisfaire des dépendances. Il est aussi parfois utilisé pour faire des
4452 « méta-paquets » qui sont des paquets dont l'unique objet est de
4453 dépendre d'autres paquets.</p>
4458 <sect id="tools-builders">
4459 <heading>Constructeurs de paquets</heading>
4461 Les paquets suivants aident le processus de construction des paquets, en général
4462 en contrôlant <prgn>dpkg-buildpackage</prgn> ainsi que la gestion du support de
4465 <sect1 id="cvs-buildpackage">
4466 <heading><package>cvs-buildpackage</package></heading>
4468 Le paquet <package>cvs-buildpackage</package> permet de mettre à jour ou de
4469 récupérer des paquets sources dans un référentiel CVS, il permet de fabriquer
4470 un paquet Debian depuis le référentiel CVS et il assiste le développeur lors de
4471 l'intégration de modifications amonts dans le référentiel.
4473 Ce paquet fournit l'infrastructure facilitant l'utilisation de CVS pour le
4474 responsable Debian. Il permet de conserver des branches CVS distinctes pour les
4475 distributions <em>stable</em>, <em>unstable</em> et probablement
4476 <em>experimental</em> et de bénéficier des avantages d'un système de contrôle
4480 <sect1 id="debootstrap">
4481 <heading><package>debootstrap</package></heading>
4483 Le paquet <package>debootstrap</package> vous permet d'amorcer un système Debian
4484 de base à n'importe quel endroit dans votre système de fichier. Par
4485 « système de base », nous entendons le strict minimum nécessaire pour
4486 fonctionner et installer le reste du système.
4488 Avoir un système comme celui-ci peut vous servir de différentes manières. Vous
4489 pouvez, par exemple, déplacer votre racine dans ce système avec
4490 <prgn>chroot</prgn> pour tester vos dépendances de fabrication. Vous pouvez
4491 aussi l'utiliser pour voir comment se comporte votre paquet quand il est
4492 installé dans un environnement minimum.
4495 <sect1 id="pbuilder">
4496 <heading><package>pbuilder</package></heading>
4498 <package>pbuilder</package> construit un système « chrooté » et
4499 compile des paquets dans ce système. Ceci est très utile pour vérifier que les
4500 dépendances de compilation de votre paquet sont correctes et pour vous assurer
4501 qu'aucune dépendance de construction inutile ou incorrecte n'existe dans le
4502 paquet résultant. </sect1>
4505 <heading><package>sbuild</package></heading>
4507 <package>sbuild</package> est un autre compilateur automatique. Il peut aussi
4508 être utilisé dans un environnement « chrooté ». Il peut être utilisé
4509 seul ou comme partie d'un environnement de compilation distribué en réseau.
4510 Comme le précédent, c'est une partie du système utilisé par les porteurs pour
4511 construire des paquets binaires pour toutes les architectures disponibles.
4512 Veuillez vous reporter à <ref id="buildd"> pour plus d'informations et à <url
4513 id="&url-buildd;"> pour voir le système en fonctionnement.</p>
4517 <sect id="uploaders">
4518 <heading>Téléchargeurs de paquets</heading>
4520 Les paquets suivants aident à automatiser ou à simplifier le processus d'envoi
4521 de paquets dans l'archive officielle.</p>
4523 <sect1 id="dupload">
4524 <heading><package>dupload</package></heading>
4526 Le paquet <package>dupload</package> contient un script du même nom pour mettre
4527 à jour des paquets dans l'archive Debian, tracer les mises à jour et les
4528 annoncer par courrier électronique automatiquement. Vous pouvez le configurer
4529 pour faire des mises à jour à d'autres endroits et avec d'autres méthodes.
4533 <heading><package>dput</package></heading>
4535 Le script <package>dput</package> fait à peu près la même chose que
4536 <package>dupload</package>, mais il le fait différemment. Il a aussi quelques
4537 fonctions supplémentaires telles que la possibilité de vérifier la signature
4538 GnuPG et les sommes de contrôles avant le téléchargement et la possibilité de
4539 démarrer <prgn>dinstall</prgn> en mode simulation (<em>dry-run</em>) après le
4545 <sect id="tools-maint-automate">
4546 <heading>Automatisation de la maintenance</heading>
4548 Les outils suivants aident à automatiser les différentes tâches de maintenance
4549 par l'ajout des entrées de changelog ou de lignes de signatures, par la
4550 recherche de bogues à partir d'Emacs ou par l'utilisation du plus récent fichier
4551 officiel <file>config.sub</file>.</p>
4554 <sect1 id="devscripts">
4555 <heading><package>devscripts</package></heading>
4557 Le paquet <package>devscripts</package> contient des scripts et outils qui sont
4558 très utiles pour maintenir vos paquets Debian. Parmi ces scripts, vous
4559 trouverez <prgn>debchange</prgn> et <prgn>dch</prgn> qui manipulent votre
4560 fichier <file>debian/changelog</file> depuis la ligne de commande et
4561 <prgn>debuild</prgn> qui est construit au-dessus de
4562 <prgn>dpkg-buildpackage</prgn>. L'outil <prgn>bts</prgn> est également très
4563 utile pour mettre à jour l'état des rapports de bogue depuis la ligne de
4564 commande. Le programme <prgn>uscan</prgn> peut être utilisé pour suivre les
4565 nouvelles versions amonts de vos paquets. Le programme <prgn>debrsign</prgn>
4566 peut être utilisé pour signer à distance un paquet avant de l'envoyer, ce qui
4567 est agréable quand la machine sur laquelle vous construisez le paquet est
4568 différente de celle où résident vos clés GPG.</p>
4570 Vérifiez la page de manuel <manref section="1" name="devscripts"> pour une liste
4571 complète des scripts disponibles.
4573 <sect1 id="autotools-dev">
4574 <heading><package>autotools-dev</package></heading>
4576 Contient les meilleurs pratiques pour des personnes assurant la maintenance de
4577 paquets qui utilisent <prgn>autoconf</prgn> et/ou <prgn>automake</prgn>.
4578 Contient également des fichiers canoniques <file>config.sub</file> et
4579 <file>config.guess</file> qui sont connus pour fonctionner avec tous les
4580 portages Debian.</p>
4583 <sect1 id="dpkg-repack">
4584 <heading><package>dpkg-repack</package></heading>
4586 <prgn>dpkg-repack</prgn> crée un paquet Debian à partir d'un paquet qui
4587 a déjà été installé. Si des changements ont été effectués sur le paquet quand il
4588 a été décompressé (par exemple, des fichiers dans <file>/etc</file> ont été
4589 modifés), le nouveau paquet héritera de ces changements.</p>
4591 Cet utilitaire peut faciliter la copie de paquet d'un ordinateur vers un autre
4592 ou la re-création de paquets installés sur un système, mais qui ne sont plus
4593 disponibles ailleurs ou pour stocker l'état actuel d'un paquet avant de le
4598 <heading><package>alien</package></heading>
4600 <prgn>alien</prgn> convertit des paquets binaires entre différents formats de
4601 paquets, y compris des paquets Debian, RPM (RedHat), LSB (Linux Standard Base),
4602 Solaris et Slackware.</p>
4605 <sect1 id="debsums">
4606 <heading><package>debsums</package></heading>
4608 <prgn>debsums</prgn> vérifie des paquets installés par rapport à leur somme de
4609 hachage MD5. Veuillez noter que tous les paquets n'ont pas de sommes MD5 car
4610 elles ne sont pas requises par la charte.</p>
4613 <sect1 id="dpkg-dev-el">
4614 <heading><package>dpkg-dev-el</package></heading>
4616 <package>dpkg-dev-el</package> fournit des macros Emacs Lisp qui apportent une
4617 aide lors de l'édition des fichiers du répertoire <file>debian</file> de votre
4618 paquet. À l'édition de <file>debian/changelog</file>, par exemple, vous
4619 disposez de fonctions pour finaliser une version et consulter la liste des
4620 rapports de bogue ouverts.</p>
4624 <sect1 id="dpkg-depcheck">
4625 <heading><package>dpkg-depcheck</package></heading>
4627 <prgn>dpkg-depcheck</prgn> (du paquet <package>devscripts</package>, <ref
4628 id="devscripts">) exécute une commande sous <prgn>strace</prgn> pour déterminer
4629 tous les paquets utilisés par la commande.
4631 Pour les paquets Debian, c'est utile quand vous devez créer une ligne
4632 <tt>Build-Depends</tt> pour votre nouveau paquet : exécuter le processus de
4633 compilation avec <prgn>dpkg-depcheck</prgn> vous fournira une bonne première
4634 approximation des dépendances de compilation. Par exemple :
4636 dpkg-depcheck -b debian/rules build
4639 <prgn>dpkg-depcheck</prgn> peut aussi être utilisé pour vérifier les dépendances
4640 d'exécution, particulièrement si votre paquet utilise exec(2) pour exécuter
4641 d'autres programmes.
4643 Pour plus d'informations, veuillez voir <manref name="dpkg-depcheck" section="1">.
4647 <sect id="tools-porting">
4648 <heading>Outils de portage</heading>
4650 Les outils suivants facilitent le travail des porteurs et la compilation
4653 <sect1 id="quinn-diff">
4654 <heading><package>quinn-diff</package></heading>
4656 <package>quinn-diff</package> est utilisé pour localiser les différences d'une
4657 architecture à l'autre. Il pourrait vous dire, par exemple, quels paquets de
4658 l'architecture <var>X</var> doivent être portés sur l'architecture
4661 <sect1 id="dpkg-cross">
4662 <heading><package>dpkg-cross</package></heading>
4664 <package>dpkg-cross</package> est un outil qui installe les bibliothèques et les
4665 en-têtes nécessaires à une compilation
4666 croisée<footnote><p><em>cross-compilation</em></footnote> d'une manière
4667 similaire à <package>dpkg</package>. De plus, les paquets
4668 <prgn>dpkg-buildpackage</prgn> et <prgn>dpkg-shlibdeps</prgn> ont été
4669 améliorés pour accepter les compilations croisées.
4671 <sect id="tools-doc">
4672 <heading>Documentation et information</heading>
4674 Les paquets suivants fournissent des informations pour les responsables ou de
4675 l'aide pour construire de la documentation
4677 <sect1 id="debiandoc-sgml">
4678 <heading><package>debiandoc-sgml</package></heading>
4680 <package>debiandoc-sgml</package> fournit la DTD DebianDoc SGML qui est
4681 habituellement utilisée pour la documentation Debian. Ce manuel, par exemple,
4682 est écrit en DebianDoc. Il fournit également des scripts pour construire et
4683 décliner le source en de multiples formats de sortie.</p>
4685 La documentation sur la DTD peut être trouvée dans le paquet
4686 <package>debiandoc-sgml-doc</package>.</p>
4689 <sect1 id="debian-keyring">
4690 <heading><package>debian-keyring</package></heading>
4692 Contient les clés publiques GPG et PGP des développeurs Debian. Voir <ref
4693 id="key-maint"> et la documentation du paquet pour plus d'informations.</p>
4696 <sect1 id="debview">
4697 <heading><package>debview</package></heading>
4699 <package>debview</package> fournit un mode Emacs pour voir les paquets binaires
4700 Debian. Il vous permet d'examiner un paquet sans le décompresser.</p>
4705 <!-- FIXME: add the following
4708 dbs (referred to above)
4709 dpatch (referred to above)
4726 debaux: too new, unmaintained?
4727 dh-make-perl: too new, unmaintained?
4734 <!-- Keep this comment at the end of the file
4739 sgml-minimize-attributes:nil
4740 sgml-always-quote-attributes:t
4742 sgml-indent-data:nil
4743 sgml-parent-document:nil
4744 sgml-exposed-tags:nil
4745 sgml-declaration:nil
4746 sgml-local-catalogs:nil
4747 sgml-local-ecat-files:nil