chiark / gitweb /
Sync to CVS 1.282 by commenting out bpp-debian-security-audit and bpp-lower-privs...
[developers-reference.git] / developers-reference.fr.sgml
index 8962efb17f0e601a7039519f8cadb0803f299416..540cabb428039e92b91c0f6368a5af63f70e6ac3 100644 (file)
@@ -7,10 +7,10 @@
   <!ENTITY % dynamicdata  SYSTEM "dynamic.ent" > %dynamicdata;
 
   <!-- CVS revision of this document -->
-  <!ENTITY cvs-rev "$Revision: 1.45 $">
+  <!ENTITY cvs-rev "$Revision: 1.56 $">
   <!-- if you are translating this document, please notate the CVS
        revision of the developers reference here -->
-  <!-- <!ENTITY cvs-en-rev "1.260"> -->
+  <!-- <!ENTITY cvs-en-rev "1.282"> -->
 
   <!-- how to mark a section that needs more work -->
   <!ENTITY FIXME "<em>FIXME:</em>&nbsp;">
@@ -31,7 +31,7 @@
       <translator>version française par Frédéric Bothamy (traducteur actuel)</translator>
       <translator>et Antoine Hulin (ancien traducteur)</translator>
       <translator>et les membres de la liste <email>debian-l10n-french@lists.debian.org</email></translator>
-      <version>Version &version;, &date-fr; (version française 20050207).</version>
+      <version>Version &version;, &date-fr; (version française 20051026).</version>
 
       <copyright>
        <copyrightsummary>Copyright &copy; 2004&mdash;2005 Andreas Barth</copyrightsummary>
@@ -59,6 +59,7 @@ pouvez 
 <p>
 Si vous désirez imprimer cette référence, vous devriez utiliser la <url
 id="developers-reference.pdf" name="version PDF">.
+Cette page est également disponible en <url id="index.en.html" name="anglais">.
 ]]>
 
     <toc detail="sect1">
@@ -418,15 +419,12 @@ Si vous ajoutez des signatures ou des identifiants 
  pouvez mettre à jour le porte-clés Debian en envoyant votre clé publique à
  <tt>&keyserver-host;</tt>.
 <p>
-Si vous voulez ajouter une nouvelle clé ou supprimer une ancienne clé, vous
-devez faire signer la nouvelle clé par un autre développeur. Après cela, un
-courriel signé par cet autre développeur listant votre nom de compte, les
-identifiants de clé («&nbsp;keyids&nbsp;») de l'ancienne clé et de la nouvelle
-et la raison doivent être envoyés à &email-debian-keyring;. Si l'ancienne clé
-est compromise ou invalide, vous devez également ajouter le certification de
-révocation. S'il n'y pas de vraie raison pour une nouvelle clé, les responsables
-du trousseau de clés ne l'accepteront que si elle est plus sure et connectée à
-l'ancienne clé.
+Si vous voulez ajouter une nouvelle clé ou supprimer une ancienne clé, vous 
+ devez faire signer la nouvelle clé par un autre développeur. Si l'ancienne clé
+ est compromise ou invalide, vous devez également ajouter le certification de
+ révocation. S'il n'y pas de vraie raison pour une nouvelle clé, les responsables
+ du trousseau de clés peuvent rejeter la nouvelle clé. Vous pouvez trouver plus
+ de détails à <url id="http://keyring.debian.org/replacing_keys.html">.
 <p>
 Les mêmes routines d'extraction de clé décrites dans <ref id="registering"> s'appliquent.
 <p>
@@ -792,6 +790,7 @@ Les probl
 
       <sect1 id="servers-non-us">Le serveur non-US
 <p>
+<!--
 Le serveur non-US <tt>non-us.debian.org</tt> est le serveur maître de la partie
  non-US de l'archive Debian. Si vous avez besoin d'envoyer un paquet dans l'une
  des sections non-US, envoyez-le vers ce serveur. Reportez-vous à la section
@@ -804,6 +803,10 @@ Les probl
  de vérifier si quelqu'un n'aurait pas déjà rempli un rapport de bogue
  concernant le problème sur le <url id="http://&bugs-host;/nonus.debian.org"
  name="système de suivi des bogues">.
+-->
+Le serveur non-US <tt>non-us.debian.org</tt> a été interrompu avec la
+ publication de <em>Sarge</em>. Le pseudo-paquet
+ <package>nonus.debian.org</package> existe encore pour le moment.
 
       <sect1 id="servers-www">Le serveur www-master
 <p>
@@ -833,8 +836,7 @@ Vous ne devriez utiliser que cet emplacement particulier car il sera sauvegard
 Habituellement, la seule raison pour utiliser un serveur différent est que vous
  avez besoin de publier des informations soumises aux restrictions d'exportation 
  américaines, dans ce cas, vous pouvez utiliser l'un des autres serveurs situés
- en dehors des États-Unis, comme le serveur mentionné ci-dessus
- <tt>non-us.debian.org</tt>.
+ en dehors des États-Unis.
 <p>
 Veuillez envoyer un courrier à &email-debian-devel; si vous avez une question.
 
@@ -1089,7 +1091,9 @@ Apr
  à remplir pour qu'un paquet passe d'<em>unstable</em> à <em>testing</em> sont
  durcies. Les paquets trop bogués sont supprimés et les seules mises à jours
  autorisées concernent les corrections de bogues. Après quelque temps, selon
- l'avancement, la distribution entre dans une phase de «&nbsp;gel complet&nbsp;»
+ l'avancement, la distribution <em>testing</em>
+ <!-- 
+ entre dans une phase de «&nbsp;gel complet&nbsp;»
  où les seules modifications acceptées concernent la procédure d'installation.
  Cette phase s'appelle un «&nbsp;cycle de test&nbsp;» et cela peut durer jusqu'à
  deux semaines. Il peut y avoir plusieurs cycles de tests avant que le
@@ -1097,6 +1101,17 @@ Apr
  dernier cycle de test, la distribution <em>frozen</em> devient <em>stable</em>,
  remplaçant l'ancienne distribution <em>stable</em> qui est enlevée à cette
  occasion (elle peut être retrouvée à l'adresse <tt>&archive-host;</tt>).
+ -->
+ est gelée encore plus. Les détails de la gestion de la distribution
+ <em>testing</em> sont publiées par l'équipe de publication sur la liste
+ debian-devel-announce. Après la résolution des problèmes restants à la
+ satisfaction de l'équipe de publication, la distribution est publiée.
+ La publication veut dire que <em>testing</em> est renommée en
+ <em>stable</em>, une nouvelle copie est créée pour la nouvelle
+ <em>testing</em> et l'ancienne <em>stable</em> est renommée en
+ <em>oldstable</em> et y reste jusqu'à ce qu'elle soit finalement
+ archivée. Lors de l'archivage, son contenu est déplacé sur
+ <tt>&archive-host;</tt>.
 <p>
 Ce cycle de développement est basé sur l'idée que la distribution
  <em>unstable</em> devient <em>stable</em> après une période de test
@@ -1109,8 +1124,10 @@ Ce cycle de d
  <file>proposed-updates</file>. De temps en temps, les paquets de ce répertoire
  qui ne présentent pas de problème sont installés dans la distribution
  <em>stable</em> et le numéro de révision de cette distribution est incrémenté
- («&nbsp;3.0&nbsp;» devient «&nbsp;3.0r1&nbsp;», «&nbsp;2.0r4&nbsp;» devient
- «&nbsp;2.0r5&nbsp;» et ainsi de suite).
+ («&nbsp;3.0&nbsp;» devient «&nbsp;3.0r1&nbsp;», «&nbsp;2.2r4&nbsp;» devient
+ «&nbsp;2.2r5&nbsp;» et ainsi de suite). Veuillez vous référer aux
+ <qref id="upload-stable">envois dans la distribution <em>stable</em></qref>
+ pour plus de détails.
 <p>
 Notez que, pendant la période de gel, les développements continuent sur la
  distribution <em>unstable</em> car cette distribution reste en place.
@@ -1250,8 +1267,7 @@ Les miroirs sont en g
 <p>
 Le système Incoming est responsable de la collecte des paquets mis à jour et de
  leur installation dans l'archive Debian. Il est constitué d'un ensemble de
- répertoires et de scripts qui sont installés à la fois sur
- <tt>&ftp-master-host;</tt> et sur <tt>&non-us-host;</tt>.
+ répertoires et de scripts qui sont installés sur <tt>&ftp-master-host;</tt>.
 <p>
 Les paquets sont envoyés par tous les responsables Debian dans un répertoire
  nommé <file>UploadQueue</file>. Ce répertoire est parcouru toutes les
@@ -1368,7 +1384,7 @@ Le syst
       <sect1 id="madison">L'outil <prgn>madison</prgn>
 <p>
 <prgn>madison</prgn> est un outil en ligne de commande qui est disponible sur
- <tt>&ftp-master-host;</tt>, sur <tt>&non-us-host;</tt> et sur le miroir
+ <tt>&ftp-master-host;</tt> et sur le miroir
  <tt>&ftp-master-mirror;</tt>. Il utilise un seul
  argument qui correspond au nom du paquet. Il affiche comme résultat quelle
  version du paquet est disponible pour chaque combinaison d'architecture et de
@@ -1664,8 +1680,23 @@ soutenus ou dirig
 externes aux projets initiés par Debian et à aider des projets dont les buts
 sont de promouvoir Debian ou ses dérivés.
 <p>
+Tous les développeurs Debian ont automatiquement un compte sur Alioth. Ils
+peuvent l'activer en utilisant la fonctionnalité de récupération des mots de
+passe. Les développeurs externes peuvent demander un compte invité sur Alioth.
+<p>
 Pour plus d'informations, veuillez visiter <url id="&url-alioth;">.
 
+    <sect id="developer-misc">«&nbsp;Goodies&nbsp;» pour les développeurs
+        <p>
+     <sect1 id="lwn">Abonnements LWN
+        <p>
+Depuis octobre&nbsp;2002, HP parraine l'abonnement à LWN pour tous les
+développeurs Debian intéressés.
+
+Les détails sur les moyens d'accéder à cet avantage sont expliqués dans <url
+id="http://lists.debian.org/debian-devel-announce/2002/10/msg00018.html">.
+
+
    <chapt id="pkgs">Gestion des paquets
 <p>
 Ce chapitre contient des informations relatives à la création, l'envoi, la
@@ -1924,6 +1955,7 @@ Attention, il est pr
    <tt>changes</tt> et constater que les fichiers ne sont pas tous présents.
 <p>
 <!-- FIXME: is this still topical? Explain the rationale? -->
+<!--
 <em>Note&nbsp;:</em> ne téléchargez pas sur <tt>ftp-master</tt> de paquets
    concernant la cryptographie qui appartiendraient à <em>contrib</em> ou <em>non-free</em>.
    Ces logiciels doivent aller sur <tt>non-us</tt> (voir <ref
@@ -1939,6 +1971,7 @@ Attention, il est pr
    exportations américaines, posez la question sur la liste
    &email-debian-devel;.
 <p>
+-->
 Les paquets <ref id="dupload"> ou <ref id="dput"> pourront vous faciliter le
    travail lors du téléchargement. Ces programmes, bien pratiques, aident à
    automatiser le processus d'envoi de paquets vers Debian
@@ -1948,6 +1981,7 @@ FTP et le paquet Debian <ref id="dcut">.
 
        <sect1 id="upload-non-us">Installer un paquet sur <tt>non-US</tt>
 <p>
+<!--
 <em>Note&nbsp;:</em> non-us n'est plus traité actuellement.
          <p>
 Comme nous l'avons dit un peu plus haut, les programmes soumis au contrôle des
@@ -1987,6 +2021,9 @@ Cette section a pour seul but d'informer, elle n'a pas valeur de conseil
    juridique. Une fois encore, nous recommandons aux résidents et citoyens
    américains de consulter un juriste avant de livrer un paquet sur
    <tt>non-US</tt>.
+--> 
+<em>Note&nbsp;:</em> non-us a été interrompu avec la publication de
+   <em>Sarge</em>.
 
        <sect1 id="delayed-incoming">Envois différés
          <p>
@@ -2020,7 +2057,7 @@ envoi non d
 
        <sect1>Les autres files d'envoi
          <p>
-Les files scp sur ftp-master, non-us et security sont pratiquement inutilisables
+Les files scp sur ftp-master et security sont pratiquement inutilisables
 à cause des restrictions de connexion sur ces hôtes.
          <p>
 Les files anonymes sur ftp.uni-erlangen.de et ftp.uk.debian.org sont
@@ -2084,7 +2121,7 @@ Pour modifier la section dans laquelle un paquet est archiv
    vous amènent à demander ces changements.
 <p>
 Pour en savoir plus sur les <em>fichiers override</em>, reportez-vous à <manref
-name="dpkg-scanpackages" section="8"> et <url
+name="dpkg-scanpackages" section="1"> et <url
 id="&url-bts-devel;#maintincorrect">.
        <p>
 Notez que le champ <tt>Section</tt> décrit à la fois la section et la
@@ -2212,6 +2249,9 @@ Voici une liste des 
        réattribuez simplement le bogue à l'autre paquet. Si vous ne savez pas à
        quel paquet il doit être réattribué, vous pouvez demander de l'aide sur
        <qref id="irc-channels">IRC</qref> ou sur &email-debian-devel;.
+       Veuillez vous assurer que le (ou les) responsable(s) du paquet
+       sur lequel est réattribué le paquet sait pourquoi vous l'avez
+       ainsi réattribué.
         <p>
         Parfois, vous devez également ajuster la gravité du bogue pour qu'elle
        corresponde à notre définition de gravité des bogues. C'est dû au
@@ -2571,12 +2611,6 @@ Assurez-vous de conserver les points suivants 
       identifiant CVE n'a encore été assigné, l'équipe de sécurité en demandera
       un pour qu'il puisse être inclus dans le paquet et dans le changelog.
 </item>
-<item>
-      Fournissez des entrées de changelog descriptives et complètes. D'autres
-      personnes se baseront dessus pour déterminer si un bogue particulier a été
-      corrigé. Quand cela est possible, incluez une référence externe, de
-      préférence, un identifiant CVE, pour qu'elle puisse être recoupée.
-</item>
 <item>
       Assurez-vous que le numéro de version est correct. Il doit être plus élevé
       que celui du paquet actuel, mais moins que ceux des paquets des versions
@@ -3100,7 +3134,59 @@ Nous sommes tr
    intéressantes pour tous (par exemple, une version de Debian compilée avec des
    vérifications relatives à <prgn>gcc</prgn>). Ce système nous permettra aussi
    de recompiler rapidement toute une distribution.
-</sect2>
+<p>
+Les administrateurs des buildds pour chaque architecture peuvent être
+   contactés à l'adresse électronique $arch@buildd.debian.org.
+
+       <sect1 id="packages-arch-specific">Quand votre paquet <em>n'est pas</em>
+       portable
+       <p>
+Certains paquets ont encore des problèmes pour être construits et/ou pour
+fonctionner sur certaines des architectures prises en charge par Debian et ne
+peuvent pas du tout être portés, ou pas dans un laps de temps raisonnable. Un
+exemple est un paquet qui est spécifique SGVA (i386 seulement) ou qui utilise
+des fonctionnalités spécifiques au matériel qui ne sont pas gérées sur toutes
+les architectures.
+       <p>
+Pour éviter que des paquets cassés soient envoyés dans l'archive et qu'ils fassent
+perdre du temps des buildd, vous devez faire plusieurs choses&nbsp;:
+       <p>
+      <list>
+      <item>
+       <p>
+Tout d'abord, assurez-vous que votre paquet <em>échoue</em> à la compilation
+sur les architectures qu'il ne gère pas. Il y a plusieurs moyens de faire
+cela. Le moyen préféré est d'avoir une petite suite de tests pendant la
+construction qui testera la fonctionnalité et qui échouera si cela ne
+fonctionne pas. C'est de toute façon une bonne idée et empêchera des
+(certains) envois cassés pour toutes les architectures, et cela permettra
+également au paquet d'être construit dès que la fonctionnalité nécessaire est
+disponible.
+       <p>
+De plus, si vous croyez que la liste des architectures gérées est plutôt
+constante, vous devriez changer «&nbsp;any&nbsp;» en une liste des
+architectures gérées dans le fichier <file>debian/control</file>. Ainsi, la
+construction échouera également et l'indiquera à un lecture humain sans
+vraiment essayer.
+      <item>
+       <p>
+Pour empêcher les compilateurs automatiques de tenter sans raison de
+construire votre paquet, il peut être inclus dans
+<file>packages-arch-specific</file>, une liste utilisée par le script
+<prgn>wanna-build</prgn>. La version actuelle est disponible à
+<url
+id="http://cvs.debian.org/srcdep/Packages-arch-specific?rev=HEAD&#38;cvsroot=dak&#38;content-type=text/vnd.viewcvs-markup">&nbsp;;
+veuillez consulter le début du fichier pour savoir qui contacter pour le
+modifier.
+      </list>
+       <p>
+Veuillez noter qu'il est insuffisant de simplement ajouter votre paquet à
+Packages-arch-specific sans le faire également échouer lors de compilation sur
+les architectures non gérées&nbsp;: un porteur ou toute autre personne
+essayant de construire votre paquet peut accidentellement l'envoyer sans
+remarquer qu'il ne fonctionne pas. Si dans le passé certains paquets binaires
+ont été envoyés pour des architectures non gérées, demandez leur suppression
+en remplissant un bogue sur <package>ftp.debian.org</package>.
 
     <sect id="nmu">Mise à jour indépendante
 <p>
@@ -3493,7 +3579,8 @@ une version candidate stable. Veuillez voir ci-dessous pour les d
         <heading>Mises à jour depuis <em>unstable</em></heading>
        <p>
 Les scripts qui mettent à jour la distribution <em>testing</em> sont exécutés
- chaque jour après l'installation des paquets mis à jour. Ils fabriquent les
+ chaque jour après l'installation des paquets mis à jour&nbsp;; ces
+ scripts sont appelés <em>britney</em>. Ils fabriquent les
  fichiers <file>Packages</file> pour la distribution <em>testing</em>, mais ils
  le font d'une manière intelligente pour éviter toute incohérence et essayer de
  n'utiliser que des paquets sans bogue.
@@ -4371,6 +4458,305 @@ de l'utiliser dans les scripts qui sont ex
 problème.
       </sect>
 
+<!-- Les 2 prochaines sections sont provisoirement commentées tant que
+      le bogue 337086 n'est pas clos -->
+<!-- 
+      <sect id="bpp-debian-security-audit">
+        <heading>Les meilleures pratiques en matière de sécurité</heading>
+
+<p>Si vous empaquetez un logiciel pour d'autres utilisateurs, vous devez
+vous efforcer de garantir que l'installation du logiciel et son
+utilisation n'introduisent pas de risques pour la sécurité du
+système sur lequel il est installé ou de ses utilisateurs.</p>
+
+<p>Vous devez vous efforcer d'examiner le code source du paquet
+et détecter les problèmes qui pourraient amener des bogues concernant la
+sécurité. Les erreurs de programmation qui entraînent des bogues concernant la sécurité
+sont généralement du type&nbsp;: <url
+id="http://en.wikipedia.org/wiki/Buffer_overflow" name="dépassement de
+tampon">, <url
+id="http://en.wikipedia.org/wiki/Cross_site_scripting" name="dépassement
+de chaînes de formatage">, <url
+id="http://en.wikipedia.org/wiki/Cross_site_scripting" name="dépassement
+de tas"> et <url
+id="http://en.wikipedia.org/wiki/Cross_site_scripting" name="dépassement
+d'entier"> (dans les programmes C/C++), <url
+id="http://en.wikipedia.org/wiki/Symlink_race" name="situation de
+concurrence entre liens symboliques"> temporaire (dans les scripts), <url
+id="http://en.wikipedia.org/wiki/Directory_traversal" name="traversée de
+répertoire"> et injection de commandes (dans les serveurs) et <url
+id="http://en.wikipedia.org/wiki/Cross_site_scripting"
+name="scripts intersites">, et <url
+id="http://en.wikipedia.org/wiki/Cross_site_scripting" name="bogues
+d'injection SQL"> (dans le cas d'applications orientées web).</p>
+
+<p>Certains de ces problèmes peuvent ne pas être évidents à détecter à
+moins d'être un expert dans le langage de programmation utilisé par le
+programme, mais d'autres sont faciles à détecter et
+à corriger. Par exemple, il est facile de trouver des situations de concurrence
+temporaires dans un code source&nbsp;: on peut exécuter
+<tt>grep -r "/tmp/" .</tt> dans le code source et remplacer les noms
+de fichier codés en dur utilisant des répertoires temporaires par des
+appels soit à <prgn>mktemp</prgn> ou à <prgn>tempfile</prgn> dans les
+scripts shell, à <manref name="File::Temp" section="3perl"> dans les
+scripts Perl, et à <manref name="tmpfile" section="3"> pour du C/C++.
+Vous pouvez également utiliser des <url
+id="http://www.debian.org/security/audit/tools" name="outils
+spécifiques"> qui facilitent la phase d'étude du code du point de vue de la sécurité.</p>
+
+<p>Quand vous empaquetez un logiciel, assurez-vous que&nbsp;:
+
+<list>
+
+<item>le logiciel fonctionne avec le minimum de privilèges&nbsp;:
+
+<list>
+<item>le paquet installe des binaires setuid ou setgid.
+<prgn>Lintian</prgn> émettra un avertissement pour les binaires <url
+id="http://lintian.debian.org/reports/Tsetuid-binary.html"
+name="setuid">, <url id="http://lintian.debian.org/reports/Tsetgid-binary.html"
+name="setgid"> et <url
+id="http://lintian.debian.org/reports/Tsetuid-gid-binary.html"
+name="setuid et setgid">.
+
+<item>les démons fournis par le paquet s'exécutent avec un utilisateur à
+privilège réduit (voir <ref id="bpp-lower-privs">).
+
+</list>
+
+<item>les tâches programmées (par exemple, <prgn>cron</prgn>)
+ne s'exécutent PAS en tant que root ou si
+elles le font, elles n'implémentent pas de tâches complexes.
+
+</list>
+
+<p>Si votre paquet se trouve dans l'un des cas ci-dessus, assurez-vous que les programmes
+qui s'exécutent avec des privilèges plus élevés ont été audités pour les
+bogues de sécurité. Si vous n'en êtes pas certain ou si vous avez besoin
+d'aide, contactez l'<url
+id="http://www.debian.org/security/audit/" name="équipe d'audit de
+sécurité Debian">. Dans le cas de binaires setuid/setgid, suivez la
+charte Debian en ce qui concerne les 
+<url id="http://www.debian.org/doc/debian-policy/ch-files.html#s10.9"
+name="permissions et propriétaires">.
+</p>
+
+<p>Pour d'autres informations spécifiques à la programmation sécurisée,
+lisez (ou signalez au développeur amont) <url
+id="http://www.dwheeler.com/secure-programs/" name="Secure Programming
+for Linux and Unix HOWTO"> et le portail <url
+id="https://buildsecurityin.us-cert.gov/portal/" name="Build Security
+In">. Pour des informations spécifiques à la sécurité dans la distribution Debian, vous
+pouvez lire le <url
+id="http://www.debian.org/doc/manuals/securing-debian-howto/"
+name="guide de sécurisation de Debian">.
+</p>
+  -->
+
+<!-- This should be explained here until #291177 gets fixed and this is
+        added to poliy -->
+
+<!--
+        <sect1 id="bpp-lower-privs">
+          <heading>Créer des groupes et des utilisateurs pour des démons
+          logiciels
+
+<p>Si votre logiciel exécute un démon qui n'a pas besoin des privilèges
+du superadministrateur, vous devez lui créer un utilisateur. Il existe
+deux types d'utilisateurs Debian pouvant être utilisés par des
+paquets&nbsp;: les identifiants statiques (assignés par
+<package>base-passwd</package>) et les identifiants dynamiques dans
+l'intervalle assigné aux utilisateurs système.
+
+<p>Dans le premier cas, vous devez demander un identifiant d'utilisateur
+ou de groupe à <package>base-passwd</package> et ajouter une dépendance
+versionnée correctement sur le paquet <package>base-passwd</package>
+fournissant cet utilisateur.
+
+<p>Dans le second cas, vous devez créer l'utilisateur système dans
+le script <em>preinst</em> ou <em>postinst</em> et rendre le paquet
+dépendant de <tt>adduser (>= 3.11)</tt>.
+
+<p>Le code exemple suivant crée l'utilisateur et le groupe du démon avec
+lequel le démon fonctionnera au moment de l'installation ou de la mise à
+jour du paquet&nbsp;:
+
+<example>
+[...]
+case "$1" in
+    install|upgrade)
+
+       # Si le paquet a un fichier par défaut, il peut être sourcé afin
+       # que l'administrateur local puisse écraser les valeurs par défaut
+
+       [ -f "/etc/default/<var>packagename</var>" ] && .
+       /etc/default/<var>packagename</var>
+
+
+       # Valeurs par défaut saines :
+
+       [ -z "$SERVER_HOME" ] && SERVER_HOME=<var>server_dir</var>
+       [ -z "$SERVER_USER" ] && SERVER_USER=<var>server_user</var>
+       [ -z "$SERVER_NAME" ] && SERVER_NAME="<var>Server description</var>"
+       [ -z "$SERVER_GROUP" ] && SERVER_GROUP=<var>server_group</var>
+
+       # Groupes auxquels l'utilisateur sera ajouté, si non défini, alors rien.
+       ADDGROUP=""
+
+
+       # Crée l'utilisateur pour éviter d'exécuter le serveur en tant que root
+       # 1. Création du groupe s'il n'existe pas
+       if ! getent group | grep -q "^$SERVER_GROUP:" ; then
+             echo -n "Adding group $SERVER_GROUP.."
+             addgroup --quiet --system $SERVER_GROUP 2>/dev/null ||true
+            echo "..done"
+       fi
+       # 2. Création du répertoire personnel s'il n'existe pas
+       test -d $SERVER_HOME || mkdir $SERVER_HOME
+       # 3. Création de l'utilisateur s'il n'existe pas
+       if ! getent passwd | grep -q "^$SERVER_USER:"; then
+           echo -n "Adding system user $SERVER_USER.."
+           adduser --quiet \
+               --system \
+               --ingroup $SERVER_GROUP \
+               --no-create-home \
+               --disabled-password \
+               $SERVER_USER 2>/dev/null || true
+           echo "..done"
+       fi
+       # 4. Ajuste l'entrée du mot de passe
+       usermod -c "$SERVER_NAME" \
+               -d $SERVER_HOME \
+               -g $SERVER_GROUP \
+               $SERVER_USER
+       # 5. Ajuste les permissions de fichiers et répertoires
+       if ! dpkg-statoverride --list $SERVER_HOME >/dev/null
+       then
+               chown -R $SERVER_USER:adm $SERVER_HOME
+               chmod u=rwx,g=rxs,o= $SERVER_HOME
+       fi
+       # 6. Ajoute l'utilisateurs au groupe ADDGROUP
+       if test -n $ADDGROUP
+       then
+               if ! groups $SERVER_USER | grep -q $ADDGROUP; then
+                       adduser $SERVER_USER $ADDGROUP
+               fi
+       fi
+    ;;
+    configure)
+
+[...]
+</example>
+
+<p>Vous devez vous assurer que le fichier script d'init.d&nbsp;:
+
+<list>
+<item>lance le démon en abandonnant les privilèges, si le logiciel ne
+fait pas les appels <manref name="setuid" section="2"> ou <manref
+name="seteuid" section="2"> lui-même, vous pouvez utiliser l'option
+<tt>--chuid</tt> de <prgn>start-stop-daemon</prgn>.
+
+<item>arrête le démon seulement si l'identifiant utilisateur correspond,
+vous pouvez utiliser l'option <tt>--user</tt> de
+<prgn>start-stop-daemon</prgn> pour cela.
+
+<item>ne s'exécute pas si l'utilisateur ou le groupe n'existe pas&nbsp;:
+<example>
+  if getent passwd | grep -q "^<var>server_user</var>:"; then
+     echo "Server user does not exist. Aborting" >&2
+     exit 1
+  fi
+  if getent group | grep -q "^<var>server_group</var>:" ; then
+     echo "Server group does not exist. Aborting" >&2
+     exit 1
+  fi
+</example>
+
+</list>
+
+<p>Si le paquet crée l'utilisateur système, il peut l'enlever quand il
+est purgé dans son script <em>postrm</em>, cela a certains inconvénients
+<footnote>Par exemple, les fichiers créés par celui-ci seront sans
+propriétaire et peuvent être récupérés par un nouvel utilisateur système
+dans le futur si celui-ci reçoit le même identifiant utilisateur.
+Voir les fils de discussion suivants qui traitant de ces
+inconvénients&nbsp;: <url
+id="http://lists.debian.org/debian-mentors/2004/10/msg00338.html">
+et 
+<url id="http://lists.debian.org/debian-devel/2004/05/msg01156.html">
+</footnote>, 
+ce n'est donc pas obligatoire et cela dépend des besoins du paquet. En
+cas de doute, cela peut être géré en demandant à l'administrateur son
+choix lors de l'installation du paquet (voir <ref
+id="debconf">). Le code exemple suivant supprime l'utilisateur et le
+groupe créés auparavant si et seulement si l'identifiant utilisateur est
+dans l'intervalle des identifiants d'utilisateur système assignés
+dynamiquement et si l'identifiant de groupe appartient à un groupe
+système&nbsp;:
+
+<example>
+case "$1" in
+    purge)
+[...]
+        # Trouve les premier et dernier numéros SYSTEM_UID
+         for LINE in `grep SYSTEM_UID /etc/adduser.conf | grep -v "^#"`; do
+            case $LINE in
+               FIRST_SYSTEM_UID*)
+                  FIST_SYSTEM_UID=`echo $LINE | cut -f2 -d '='`
+               ;;
+               LAST_SYSTEM_UID*)
+                  LAST_SYSTEM_UID=`echo $LINE | cut -f2 -d '='`
+               ;;
+               *)
+               ;;
+            esac
+         done
+         # Supprime le compte système si nécessaire
+         CREATEDUSER="<var>server_user</var>"
+         if [ -n "$FIST_SYSTEM_UID" ] && [ -n "$LAST_SYSTEM_UID" ]; then
+            if USERID=`getent passwd $CREATEDUSER | cut -f 3 -d ':'`; then
+               if [ -n "$USERID" ]; then
+                  if [ "$FIST_SYSTEM_UID" -le "$USERID" ] && \
+                     [ "$USERID" -le "$LAST_SYSTEM_UID" ]; then
+                        echo -n "Removing $CREATEDUSER system user.."
+                        deluser --quiet $CREATEDUSER || true
+                        echo "..done"
+                  fi
+               fi
+            fi
+         fi
+         # Supprime le groupe système si nécessaire
+         CREATEDGROUP=<var>server_group</var>
+         FIRST_USER_GID=`grep ^USERS_GID /etc/adduser.conf | cut -f2 -d '='`
+         if [ -n "$FIST_USER_GID" ] then
+            if GROUPGID=`getent group $CREATEDGROUP | cut -f 3 -d ':'`; then
+               if [ -n "$GROUPGID" ]; then
+                  if [ "$FIST_USER_GID" -gt "$GROUPGID" ]; then
+                        echo -n "Removing $CREATEDGROUP group.."
+                        delgroup --only-if-empty $CREATEDGROUP || true
+                        echo "..done"
+                  fi
+               fi
+            fi
+         fi
+[...]
+</example>
+
+<p>Exécuter des programmes avec un utilisateur ayant des privilèges
+limités garantit que tout problème de sécurité du programme n'entraînera
+que des dommages limités au système et cela suit le principe du <em>moindre
+privilège</em>, vous pouvez limiter les privilèges dans les programmes
+par d'autres mécanismes en plus de le faire s'exécuter en tant que
+non-superutilisateur. Pour plus d'informations, lisez le chapitre <url
+id="http://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/minimize-privileges.html"
+name="Minimize Privileges"> du livre <em>Secure Programming for Linux
+and Unix HOWTO</em>.
+
+</sect1>
+
+</sect>
+  -->
+
       <sect id="bpp-config-mgmt">
        <heading>Gestion de la configuration avec <package>debconf</package></heading>
        
@@ -4422,12 +4808,12 @@ maternelle. 
 pour eux.
        <p>
 Veuillez utiliser (et abuser de) la liste de discussions
-debian-l10n-english@lists.debian.org. Faites relire vos questionnaires.
+&email-debian-l10n-english;. Faites relire vos questionnaires.
        <p>
-Des questionnaires écrits incorrectement donne une pauvre image de votre paquet,
+Des questionnaires écrits incorrectement donnent une pauvre image de votre paquet,
 de votre travail... ou même de Debian elle-même.
        <p>
-Évitez le jargon technique autant que possible. Si certains termes vous semble
+Évitez le jargon technique autant que possible. Si certains termes vous semblent
 courants, ils peuvent être impossibles à expliquer à d'autres personnes. Si vous
 ne pouvez pas les éviter, essayez de les expliquer (en utilisant la description
 étendue). Quand vous faites cela, essayez d'équilibrer la verbosité et la
@@ -4436,10 +4822,10 @@ simplicit
        <sect2>Être courtois avec les traducteurs
        <p>
 Les questionnaires debconf peuvent être traduits. Debconf, avec son paquet-frêre
-po-debconf, offre un cadre de travail simple pour obtenir des questionnaires
+<package>po-debconf</package>, offre un cadre de travail simple pour obtenir des questionnaires
 traduits par les équipes de traduction ou même par des individus isolés.
        <p>
-Veuillez utiliser les questionnaires basés sur gettext. Installez po-debconf sur
+Veuillez utiliser les questionnaires basés sur gettext. Installez <package>po-debconf</package> sur
 votre système de développement et lisez sa documentation («&nbsp;man
 po-debconf&nbsp;» est un bon début).
        <p>
@@ -4453,9 +4839,64 @@ suppl
 l'adresse électronique du traducteur sont mentionnés dans les en-têtes des
 fichiers PO.
        <p>
+L'utilisation de <prgn>podebconf-report-po</prgn> du paquet
+<package>po-debconf</package> est hautement recommandée pour avertir les
+traducteurs qui ont des traductions incomplètes et pour leur demander
+des mises à jour.
+       <p>
 En cas de doutes, vous pouvez également contacter l'équipe de traduction pour
 une langue donnée (debian-l10n-xxxxx@lists.debian.org) ou la liste de discussions
-debian-i18n@lists.debian.org.
+&email-debian-i18n;.
+       <p>
+Les appels à traductions postés sur &email-debian-i18n; avec le fichier
+<file>debian/po/templates.pot</file> attaché ou référencé dans une URL
+sont encouragés. Assurez-vous de mentionner dans ces appels pour de
+nouvelles traductions quelles sont les langues pour lesquelles vous avez
+déjà des traductions existantes, pour éviter toute duplication de
+travail.
+
+<sect2>«&nbsp;Dé-fuzzy-fiez&nbsp;» les traductions complètes lors des
+corrections de typos et d'orthographe
+       <p>
+Quand le texte d'un questionnaire debconf est corrigé et que vous êtes 
+<strong>certain</strong> que les changements <strong>n'ont aucun</strong>
+effet sur les traductions, soyez courtois avec les traducteurs et
+dé-fuzzy-fiez leurs traductions.
+       <p>
+Si vous ne le faites pas, le questionnaire entier ne sera pas traduit
+jusqu'à ce qu'un traducteur vous envoie une mise à jour.
+       <p>
+Pour <strong>dé-fuzzy-fier</strong> les traductions, vous pouvez
+procéder ainsi&nbsp;:
+<enumlist>
+<item>
+enlevez tous les fichiers PO incomplets. Vous pouvez vérifier si les
+fichiers sont complets en utilisant (il faut que le paquet
+<package>gettext</package> soit installé)&nbsp;:
+<example>for i in debian/po/*po; do echo -n $i: ; msgfmt -o /dev/null --statistics $i; done</example>
+<item>
+déplacez tous les fichiers ayant des chaînes floues
+(«&nbsp;fuzzy&nbsp;») dans un emplacement temporaire. Les fichiers
+n'ayant aucune chaîne floue (seulement des chaînes traduites et non
+traduites) seront conservées où ils sont placés,
+<item>
+maintenant <strong>et seulement maintenant</strong>, corrigez les typos
+dans le questionnaire et vérifiez que les traductions ne sont pas
+impactées (les typos, les fautes d'orthographe et parfois les
+corrections de typographie sont généralement acceptables),
+<item>
+exécutez <prgn>debconf-updatepo</prgn>. Cela va fuzzifier toutes les
+chaînes que vous avez modifiées dans les traductions. Vous pouvez
+constater cela en exécutant à nouveau la commande ci-dessus,
+<item>
+utilisez la commande suivante&nbsp;:
+<example>for i in debian/po/*po; do msgattrib --output-file=$i --clear-fuzzy $i; done</example>
+<item>
+déplacez dans debian/po les fichiers qui avaient des chaînes floues dans
+la première étape,
+<item>
+exécutez à nouveau <prgn>debconf-updatepo</prgn>.
+</enumlist>
 
        <sect2>Ne faites pas de suppositions à propos des interfaces
        <p>
@@ -4464,6 +4905,13 @@ l'une des interfaces debconf. Des phrases comme 
 Yes...&nbsp;» n'a aucun sens pour les utilisateurs d'interfaces graphiques qui
 utilisent des cases à cocher pour les questions booléennes.
        <p>
+Les modèles de chaînes de caractères devraient éviter de mentionner les
+valeurs par défaut dans leur description. Tout d'abord, parce que cela
+est redondant avec les valeurs lues par les utilisateurs. Ensuite, parce
+ces valeurs par défaut peuvent être différentes selon les choix du
+responsable (par exemple, quand la base de données debconf a été
+préremplie).
+       <p>
 Plus généralement, essayez d'éviter de vous référer à toute action de
 l'utilisation. Donnez simplement des faits.
 
@@ -4471,7 +4919,7 @@ l'utilisation. Donnez simplement des faits.
        <p>
 Vous devriez éviter d'utiliser la première personne («&nbsp;I will do
 this...&nbsp;» ou «&nbsp;We recommend...&nbsp;»). L'ordinateur n'est pas une
-personne et les qustionnaires debconf ne parlent pas pour les développeurs
+personne et les questionnaires debconf ne parlent pas pour les développeurs
 Debian. Vous devriez utiliser une construction neutre et souvent une forme
 passive. Pour ceux d'entre vous qui écrivent déjà des publications
 scientifiques, écrivez simplement vos questionnaires comme vous écriveriez un
@@ -5244,7 +5692,7 @@ Quand vous envoyez un grand nombre de rapports sur le m
        
        <sect1 id="qa-daily-work">Travail journalier
 <p>
-Bien qu'il y ait un groupe de personnes dédiées à l'assurance qualité, les
+Bien qu'il y ait un groupe de personnes dédié à l'assurance qualité, les
  devoirs de QA ne leur sont pas exclusivement réservés. Vous pouvez participer à
  cet effort en conservant vos paquets aussi exempts de bogues que possible et
  aussi corrects que possible selon <prgn>lintian</prgn> (reportez-vous à <ref
@@ -5369,7 +5817,7 @@ informations utiles sur ce responsable. Ceci inclut&nbsp;:
       <p>
 Un gros problème est représenté par les paquets parrainés &mdash;&nbsp;le responsable
 n'est pas un développeur Debian officiel. Les informations «&nbsp;echelon&nbsp;»
-ne sont pas disponibles pour les personnes parrainés, par exemple, vous devez
+ne sont pas disponibles pour les personnes parrainées, par exemple, vous devez
 donc trouver et contacter le responsable Debian qui a réellement envoyé le
 paquet. Étant donné qu'il a signé le paquet, il est responsable de l'envoi de
 toute façon et il devrait savoir ce qui s'est passé avec la personne qu'il
@@ -5391,7 +5839,7 @@ Vous n'
 Elle est peut-être sérieusement malade ou pourrait même nous avoir quitté
 &mdash;&nbsp;vous ne savez pas qui recevra vos courriers. Imaginez comme un
 proche se sentira s'il lit un courrier pour la personne décédée et trouve un
-message très impoli, en colère et accusateur&nbsp;!)
+message très impoli, en colère et accusateur&nbsp;!
 <p>
 D'un autre côté, bien que nous soyons tous volontaires, nous avons une
 responsabilité. Vous pouvez donc insister sur l'importance du plus grand intérêt
@@ -5799,7 +6247,7 @@ en Python plut
 <prgn>debdiff</prgn> (du paquet <package>devscripts</package>, <ref
 id="devscripts">) compare des listes de fichiers et des fichiers de contrôle de
 deux paquets. C'est un simple test de régression qui peut vous aider à remarquer
-si le nombre de paquets binaires à changer depuis le dernier envoi ou si autre
+si le nombre de paquets binaires a changé depuis le dernier envoi ou si autre
 chose a changé dans le fichier de contrôle. Bien sûr, certains des changements
 qu'il indique sont normaux, mais il peut aider à empêcher différents accidents.
          <p>