# 4. Ressources pour les membres de Debian

Ce chapitre décrit brièvement les listes de diffusion, les serveurs Debian à disposition des développeurs et les autres ressources utiles au travail de responsable.

## 4.1. Listes de diffusion

Une grande partie des discussions entre les développeurs Debian (et les utilisateurs) a lieu dans un large éventail de listes de diffusion hébergées sur `lists.debian.org`. Pour en savoir plus sur la façon de s'abonner ou se désabonner, d'utiliser les listes, de consulter les archives, de contacter leurs responsables, ainsi que diverses autres informations sur les listes de diffusion, veuillez lire https://www.debian.org/MailingLists/. Cette section ne détaille que les informations utiles aux développeurs.

### 4.1.1. Règles d'utilisation fondamentales

Une réponse sur une liste de diffusion ne doit pas être envoyée en copie (`CC`) à l'expéditeur initial, sauf s'il l'a explicitement demandé. Toute personne écrivant sur une liste de diffusion devrait la suivre pour voir les réponses.

L'envoi d'un même message à plusieurs listes (« `cross-post` ») est déconseillé. Conformément aux usages, veuillez réduire la citation des articles auxquels vous répondez. En règle générale, veuillez respecter les conventions habituelles d'envoi de messages.

Veuillez lire le code de conduite pour plus de renseignements. Les recommandations de la communauté Debian (« Debian Community Guidelines ») valent également la peine d'être lues.

### 4.1.2. Principales listes de diffusion pour les responsables

Les principales listes de diffusion que les développeurs devraient suivre sont :

- `debian-devel-announce@lists.debian.org`, pour les annonces importantes aux développeurs. Tous les responsables Debian sont censés être inscrits à cette liste ;

- `debian-devel@lists.debian.org`, pour les diverses questions techniques relatives au développement ;

- `debian-policy@lists.debian.org`, où la Charte Debian (« `Debian Policy` ») est discutée et votée ;

- `debian-project@lists.debian.org`, pour les questions diverses et non techniques relatives au projet.

D'autres listes de diffusion sont spécialisées dans différents thèmes ; voir une liste sur https://lists.debian.org/.

### 4.1.3. Listes particulières

`debian-private@lists.debian.org` est une liste de diffusion destinée aux échanges privés entre développeurs Debian. Elle sert aux messages qui, pour une raison ou une autre, ne devraient pas être rendus publics. De ce fait, c'est une liste à faible trafic. Il est déconseillé d'utiliser `debian-private@lists.debian.org` sauf en cas de réelle nécessité. En outre, il ne faut jamais faire suivre un message provenant de cette liste à qui que ce soit. Les archives de cette liste ne sont pas disponibles sur la toile pour des raisons évidentes, mais il est possible de les consulter dans le répertoire `~debian/archive/debian-private/` sur `master.debian.org`.

`debian-email@lists.debian.org` est une liste de diffusion fourre-tout. Elle est utilisée pour les correspondances relatives à Debian qu'il serait utile d'archiver, telles que des échanges avec les auteurs amont à propos de licences, de bogues ou encore des discussions sur le projet avec d'autres personnes.

### 4.1.4. Demander une nouvelle liste pour le développement

Avant de demander une liste de diffusion pour le développement d'un paquet (ou d'un petit groupe de paquets apparentés), veuillez envisager l'utilisation plus appropriée d'un alias (à l'aide d'un fichier .forward-nom-alias sur master.debian.org, qui se traduit en une adresse plutôt agréable vous-nom-alias@debian.org).

Si une liste de diffusion standard sur lists.debian.org est vraiment ce que vous voulez, lancez-vous et faites une demande en suivant le guide.

## 4.2. Canaux IRC

Plusieurs canaux IRC sont dédiés au développement de Debian. Ils sont principalement hébergés sur le réseau `Open and Free Technology Community (OFTC)`<https://www.oftc.net/>`__. L'entrée DNS `irc.debian.org` est un alias vers `irc.oftc.net`.

Le principal canal pour Debian est `#debian`. Il s'agit d'un canal important, généraliste, où les utilisateurs peuvent trouver des nouvelles récentes dans le sujet et qui est administré par des robots. `#debian` est destiné aux anglophones ; il existe également `#debian.de`, `#debian-fr`, `#debian-br` et d'autres canaux avec des noms analogues pour les personnes parlant d'autres langues.

Le canal principal pour le développement de Debian est `#debian-devel`. C'est un canal très actif puisque plus de 150 personnes sont connectées en permanence. C'est un canal pour les personnes qui travaillent sur Debian, ce n'est pas un canal d'aide (il existe `#debian` pour cela). Il est cependant ouvert à tous ceux qui veulent écouter (et apprendre). Le sujet est généralement rempli d'informations intéressantes pour les développeurs.

Comme `#debian-devel` est un canal ouvert, vous ne devriez pas y parler de problèmes discutés sur `debian-private@lists.debian.org`. Il existe un autre canal dans ce but, appelé `#debian-private` et protégé par clé. La clé est disponible dans le fichier `master.debian.org:~debian/misc/irc-password`.

D'autres canaux sont dédiés à des sujets spécifiques. `#debian-bugs` est utilisé pour la coordination des chasses aux bogues (« `bug squashing parties` »). `#debian-boot` est utilisé pour la coordination du travail sur l'installateur Debian (« `debian-installer` »). `#debian-doc` est utilisé occasionnellement pour travailler sur la documentation comme celle que vous lisez actuellement. D'autres canaux sont dédiés à une architecture ou un ensemble de paquets : `#debian-kde`, `#debian-dpkg`, `#debian-perl`, `#debian-python`, etc.

Des canaux existent pour développeurs non anglophones, par exemple, `#debian-devel-fr` pour les francophones intéressés au développement de Debian.

Channels dedicated to Debian also exist on other IRC networks.

## 4.3. Documentation

Ce document contient beaucoup d'informations très utiles aux développeurs Debian, mais il ne peut pas tout contenir. La plupart des autres documents intéressants sont référencés dans le coin du développeur Debian. Prenez le temps de parcourir tous les liens, vous apprendrez encore plus de choses.

## 4.4. Serveurs Debian

Debian possède plusieurs ordinateurs employés comme serveurs, dont la plupart hébergent les fonctions critiques du projet Debian. La plupart des machines sont utilisées pour des activités de portage et elles ont toutes un accès permanent à Internet.

La plupart des machines peuvent être utilisées par les développeurs tant qu'ils respectent les règles définies dans la charte d'utilisation des machines Debian.

Ces machines peuvent être utilisées à votre discrétion pour des buts liés à Debian. Veuillez cependant, par égard aux administrateurs système, ne pas utiliser de grandes quantités d'espace disque, de ressource réseau ou processeur sans obtenir auparavant l'accord des administrateurs. Ces machines sont d'habitude administrées par des bénévoles.

Veuillez prendre soin de vos mots de passe Debian ainsi que des clés SSH installées sur les machines Debian. Évitez les méthodes de connexion ou d'envoi de données qui envoient les mots de passe en clair par Internet comme Telnet, FTP, POP, etc.

Veuillez ne pas déposer de données non relatives à Debian sur les serveurs Debian à moins d'avoir préalablement obtenu la permission de le faire.

La liste à jour des machines Debian est disponible sur la page : https://db.debian.org/machines.cgi. Cette page web contient les noms des machines et permet d'accéder aux informations suivantes : contact, qui peut s'y connecter, clés SSH, etc.

Si vous rencontrez un problème en utilisant un serveur Debian et si vous estimez que les administrateurs système devraient en être avertis, vous pouvez vérifier la liste des tickets ouverts dans la file d'attente relative aux `DSA` (administrateurs du système Debian « `Debian System Administrators` ») du gestionnaire de demandes (« `request tracker` ») sur https://rt.debian.org/ (avec comme identifiant « debian » dont le mot de passe est disponible en `master.debian.org:~debian/misc/rt-password`). Pour signaler un nouveau problème, il suffit d'envoyer un message à `admin@rt.debian.org` en s'assurant d'indiquer « Debian RT » dans le sujet. Pour contacter l’équipe DSA par courriel, utilisez `dsa@debian.org` pour toute chose privée ou confidentielle ne devant pas être publique et `debian-admin@lists.debian.org` pour tout autre chose. L’équipe DSA est aussi présente sur le canal IRC d’OFTC `#debian-admin`.

Si le problème est lié à un service particulier, non relatif à l'administration système (paquet à supprimer de l'archive ou suggestion pour le site web par exemple), il faudra en général ouvrir un rapport de bogue sur un « pseudopaquet ». Consultez Signalement de bogues pour connaître la procédure à suivre.

Certains serveurs de base sont à accès restreint, mais les informations de ceux-ci sont fournies par d'autres serveurs miroirs.

### 4.4.1. Serveur de suivi des bogues (`BTS`)

`bugs.debian.org` est le serveur maître du système de suivi des bogues (« `Bug Tracking System` » ou `BTS`).

Si vous envisagez de manipuler les bogues ou d'en faire une analyse statistique, ce sera le bon endroit pour le faire. Informez la liste `debian-devel@lists.debian.org` de votre intention avant d'implémenter quoi que ce soit afin d'éviter un travail en double ou un gaspillage de temps machine.

### 4.4.2. Serveur FTP principal `ftp-master`

Le serveur `ftp-master.debian.org` est le serveur maître de l'archive Debian. En général, les paquets envoyés à ftp.upload.debian.org aboutissent sur ce serveur, voir Envois de paquets.

Ce serveur est à accès restreint ; un miroir est disponible sur `mirror.ftp-master.debian.org`.

Les problèmes avec l'archive Debian FTP doivent généralement être rapportés comme bogues sur le pseudopaquet `ftp.debian.org` ou par courrier électronique à `ftpmaster@debian.org` ; voir Manipulation de paquet dans l'archive pour connaître la procédure à suivre.

### 4.4.3. Serveur web principal `www-master`

Le serveur web principal est `www-master.debian.org`. Il héberge les pages web officielles, la façade de Debian pour la plupart des débutants.

Si vous rencontrez un problème avec un serveur web Debian, vous devriez envoyer un rapport de bogue sur le pseudopaquet `www.debian.org`. Vérifiez d'abord sur le système de suivi des bogues que le problème n'a pas déjà été signalé.

### 4.4.4. Serveur web pour pages personnelles `people`

`people.debian.org` est le serveur utilisé par les développeurs pour leurs pages concernant Debian.

Si vous avez des informations spécifiques à Debian que vous voulez rendre disponibles sur le web, vous pouvez le faire en les plaçant dans le répertoire `public_html` de votre répertoire personnel sur `people.debian.org`. Elles seront accessibles à l'adresse `https://people.debian.org/~`votre-identifiant`/`.

Vous ne devriez utiliser que cet emplacement particulier, car il sera sauvegardé alors que sur les autres serveurs, ce ne sera pas le cas.

Normalement, la seule raison d'utiliser un serveur différent est pour publier des informations soumises aux restrictions d'exportation américaines. Dans ce cas, vous pouvez utiliser un autre serveur situé en dehors des États-Unis.

Veuillez envoyer toute question à `debian-devel@lists.debian.org`.

### 4.4.5. salsa.debian.org : dépôts Git et plateforme de développement collaborative

Si vous souhaitez utiliser un dépôt git pour un de vos projets pour Debian, vous pouvez utiliser à cet effet l'instance de GitLab de Debian nommée Salsa. Gitlab offre aussi la possibilité de faire des requêtes d'intégration, de créer des pages wiki, de bénéficier d'un suivi de bogues entre autres services, aussi bien qu'un réglage fin des droits d'accès, pour faciliter le travail collaboratif sur des projets.

Pour plus d'informations, veuillez consulter la documentation sur la page https://wiki.debian.org/Salsa/Doc.

Any Debian package hosted on Salsa has also access to the Salsa CI . The Salsa CI pipeline mimics the tests that are run after each upload to Debian, but instead of having to wait for results or risk the health of the Debian repositories, Salsa CI provides you with instant feedback about any problems the changes you made may have created or solved.

### 4.4.6. GitHub.com: Submitting pull requests to upstream repositories

If some upstream repository is hosted on GitHub.com, you can use the Debian organization to create repository forks and submit changed branches with pull requests to upstream maintainers.

The organization is open to all Debian Members. To request membership, open an issue in the Debian/.github meta repository.

### 4.4.7. Chroots de différentes distributions

Sur certaines machines, des chroots de différentes distributions sont disponibles. Vous pouvez les utiliser comme ceci :

    vore$ dchroot unstable
    Executing shell in chroot: /org/vore.debian.org/chroots/user/unstable

Dans chaque chroot, les répertoires normaux des utilisateurs sont disponibles. Vous pouvez trouver quels chroots sont disponibles sur https://db.debian.org/machines.cgi.

## 4.5. Base de données des développeurs

La base de données des développeurs, sur https://db.debian.org/, est un annuaire LDAP regroupant des informations sur les développeurs Debian. Vous pouvez utiliser cette ressource pour rechercher la liste des développeurs Debian. Une partie de ces informations est également disponible avec `finger` sur les serveurs Debian, essayez `finger votreidentifiant@db.debian.org` pour voir ce qu'il indique.

Les développeurs peuvent se connecter à la base de données pour modifier différentes informations les concernant, comme :

- l'adresse de réacheminement pour leur adresse debian.org ainsi que la façon de gérer les pourriels. Consultez https://db.debian.org/forward.html pour une description de toutes les options ;

- l'abonnement à debian-private ;

- l'état en vacances ou non ;

- des informations personnelles comme les adresse, pays, latitude et longitude de l'endroit où ils vivent pour utilisation dans la carte mondiale des développeurs Debian, numéros de téléphone et de fax, surnom IRC et page web ;

- le mot de passe et l’interpréteur de commande préféré sur les machines du projet Debian.

La plupart des informations ne sont naturellement pas publiques. Pour plus d'informations, veuillez lire la documentation en ligne sur https://db.debian.org/doc-general.html.

Les développeurs peuvent également envoyer leurs clés SSH afin de les utiliser pour authentification sur les machines Debian officielles et même ajouter de nouvelles entrées DNS du type *.debian.net. Ces fonctionnalités sont documentées sur https://db.debian.org/doc-mail.html.

## 4.6. Archive Debian

La distribution Debian est composée d'un grand nombre de paquets (environ `30000`) et de quelques autres fichiers (comme la documentation et les images de disque d'installation).

Voici un exemple d'arborescence pour une archive Debian complète :

    dists/stable/main/
    dists/stable/main/binary-amd64/
    dists/stable/main/binary-armel/
    dists/stable/main/binary-i386/
         ...
    dists/stable/main/source/
         ...
    dists/stable/main/disks-amd64/
    dists/stable/main/disks-armel/
    dists/stable/main/disks-i386/
         ...

    dists/stable/contrib/
    dists/stable/contrib/binary-amd64/
    dists/stable/contrib/binary-armel/
    dists/stable/contrib/binary-i386/
         ...
    dists/stable/contrib/source/

    dists/stable/non-free/
    dists/stable/non-free/binary-amd64/
    dists/stable/non-free/binary-armel/
    dists/stable/non-free/binary-i386/
         ...
    dists/stable/non-free/source/

    dists/stable/non-free-firmware/
    dists/stable/non-free-firmware/binary-amd64/
    dists/stable/non-free-firmware/binary-armel/
    dists/stable/non-free-firmware/binary-i386/
         ...
    dists/stable/non-free-firmware/source/

    dists/testing/
    dists/testing/main/
         ...
    dists/testing/contrib/
         ...
    dists/testing/non-free/
         ...
    dists/testing/non-free-firmware/
         ...

    dists/unstable
    dists/unstable/main/
         ...
    dists/unstable/contrib/
         ...
    dists/unstable/non-free/
         ...
    dists/unstable/non-free-firmware/
         ...

    pool/
    pool/main/a/
    pool/main/a/apt/
         ...
    pool/main/b/
    pool/main/b/bash/
         ...
    pool/main/liba/
    pool/main/liba/libalias-perl/
         ...
    pool/main/m/
    pool/main/m/mailx/
         ...
    pool/non-free/d/
    pool/non-free/d/doc-rfc/
         ...
    pool/non-free-firmware/f/
    pool/non-free-firmware/f/firmware-nonfree/
         ...

Le répertoire racine contient deux répertoires : `dists/` et `pool/`. Le second contient un ensemble de répertoires où sont stockés les paquets, gérés dans la base de données de l'archive, et les programmes d’accompagnement. Le premier répertoire contient les distributions `stable`, `testing` et `unstable`. Les fichiers `Packages` et `Sources` des sous-répertoires de distribution font référence aux fichiers du répertoire `pool/`. Le découpage en sous-répertoires est identique d'une distribution à l'autre. Ce qui est exposé ci-dessous pour la distribution `stable` est également valable pour les distributions `unstable` et `testing`.

`dists/stable` contains four directories, namely `main`, `contrib`, `non-free` and `non-free-firmware`.

Dans chacune de ces sections, se trouve un répertoire contenant les paquets source (`source/`) et un répertoire pour chaque architecture gérée (`binary-i386`, `binary-amd64`, etc.).

La section `main` contient d'autres répertoires destinés aux images de disque et à plusieurs documents essentiels pour installer la distribution Debian sur chaque architecture (`disks-i386`, `disks-amd64`, etc.).

### 4.6.1. Sections

La section `main` de l'archive constitue la distribution Debian officielle. La section `main` est officielle parce qu'elle est entièrement conforme à toutes nos recommandations. Les deux autres sections divergent de ces recommandations à différents degrés, elles ne font donc pas officiellement partie de Debian.

Chaque paquet de la section `main` doit être conforme aux directives Debian pour le logiciel libre (« `Debian Free Software Guidelines` » ou `DFSG`) et à toutes les autres recommandations décrites dans la Charte Debian (« `Debian Policy Manual` »). Les DFSG constituent la définition du « logiciel libre » selon Debian. Reportez-vous à la Charte Debian pour en savoir plus.

Les paquets de la section `contrib` doivent être conformes aux DFSG, mais ne respectent pas d'autres contraintes. Ils peuvent, par exemple, dépendre de paquets de la section `non-free`.

Packages which do not conform to the DFSG are placed in the `non-free` or `non-free-firmware` sections. These packages are not considered as part of the Debian distribution, though we enable their use, and we provide infrastructure (such as our bug-tracking system and mailing lists) for these non-free software packages.

The Debian Policy Manual contains a more exact definition of the four sections. The above discussion is just an introduction.

The separation of the four sections at the top-level of the archive is important for all people who want to distribute Debian, either via FTP servers on the Internet or on CD-ROMs: by distributing only the `main` and `contrib` sections, one can avoid any legal risks. Some packages in the `non-free` section do not allow commercial distribution, for example.

D'un autre côté, un distributeur de CD-ROM pourra facilement vérifier la licence de chacun des paquets de la section `non-free` et les intégrer si cela lui est autorisé (dans la mesure où cela varie énormément d'un distributeur à l'autre, ce travail ne peut être fait par les développeurs Debian).

Le terme « section » est également utilisé pour faire référence aux catégories (par exemple `admin`, `net`, `utils`, etc.), ce qui simplifie l'organisation des paquets disponibles et leur recherche. Il fut un temps où ces sections (ou plutôt sous-sections) existaient sous forme de sous-répertoires dans l'archive Debian. Maintenant, elles n'existent plus que dans le champ d’en-tête `Section` des paquets.

### 4.6.2. Architectures

À ses débuts, le noyau Linux existait seulement pour les architectures Intel i386 (ou postérieures) ; il en était de même pour Debian. Linux devenant de plus en plus populaire, le noyau a été porté vers d'autres architectures et Debian a commencé à les gérer. Comme si la gestion de nombreuses nouvelles architectures ne suffisait pas, Debian a décidé de construire des portages sur d'autres noyaux de type `Unix`, comme `hurd` et `kfreebsd`.

Debian GNU/Linux 1.3 était disponible uniquement pour `i386`. Debian 2.0 gérait les architectures `i386` et `m68k`. Debian 2.1 gérait les architectures `i386`, `m68k`, `alpha` et `sparc`. Depuis, Debian a considérablement évolué. Debian 9 gère un total de dix architectures Linux (`amd64`, `arm64`, `armel`, `armhf`, `i386`, `mips`, `mips64el`, `mipsel`, `ppc64el`, `s390` et deux architectures kFreeBSD (`kfreebsd-i386` et `kfreebsd-amd64`).

Pour chaque portage, des informations destinées aux développeurs et utilisateurs sont disponibles sur les pages de portages Debian.

### 4.6.3. Paquets

Il existe deux types de paquets Debian : les paquets `sources` et les paquets `binaires`.

Suivant son format, le paquet source peut être constitué d'un ou plusieurs fichiers en plus du fichier obligatoire `.dsc` :

- soit un fichier `.tar.gz`, soit un fichier `.orig.tar.gz` et un fichier `.diff.gz` pour le format « 1.0 » ;

- obligatoirement l'archive amont `.orig.tar.{gz,bz2,xz}`, éventuellement plusieurs archives amont supplémentaires `.orig-`composant`.tar.{gz,bz2,xz}` et l'archive debian obligatoire `debian.tar.{gz,bz2,xz}` pour le format « 3.0 (quilt) » ;

- une seule archive `.tar.{gz,bz2,xz}` pour le format « 3.0 (native) ».

Si un paquet est développé spécifiquement pour le projet Debian et n'est pas distribué en dehors, il n'y a qu'un fichier `.tar.{gz,bz2,xz}` qui contient les sources du programme, il est appelé paquet source « natif » (« `native` »). Si un paquet est distribué ailleurs aussi, le fichier `.orig.tar.{gz,bz2,xz}` contient ce que l'on appelle le `code source amont`, c'est-à-dire, le code source distribué par le `responsable amont` (il s'agit souvent de l'auteur du logiciel). Dans ce cas, le fichier `.diff.gz` ou `debian.tar.{gz,bz2,xz}` contient les modifications faites par le responsable Debian.

Le fichier `.dsc` liste tous les fichiers sources avec leurs sommes de contrôle (`md5sums`, `sha1sums`, `sha256sums`) et quelques informations supplémentaires concernant le paquet (responsable, version, etc.).

### 4.6.4. Distributions

L'organisation des répertoires présentée précédemment est elle-même contenue dans les `répertoires de distributions`. Chaque distribution est en fait incluse dans le répertoire `pool` à la racine de l'archive Debian.

Pour résumer, une archive Debian a un répertoire racine sur un serveur FTP. Par exemple, sur le site miroir `ftp.fr.debian.org`, l'archive Debian se trouve dans /debian qui est un emplacement courant (un autre emplacement courant est `/pub/debian`).

Une distribution est composée de paquets source et binaires, et des fichiers `Sources` et `Packages` correspondants, qui contiennent toutes les méta-informations sur les paquets. Les premiers sont dans le répertoire `pool/` tandis que les seconds sont dans le répertoire `dists/` de l'archive (pour rétrocompatibilité).

#### 4.6.4.1. `Stable`, `testing`, et `unstable`

Il existe toujours une distribution appelée `stable` (dans le répertoire `dists/stable`), une distribution appelée `testing` (dans le répertoire `dists/testing`) et une distribution appelée `unstable` (dans le répertoire `dists/unstable`). Cela reflète le processus de développement du projet Debian.

Les développements se font sur la distribution `unstable` (c'est pourquoi elle est aussi appelée `distribution de développement`). Chaque développeur Debian peut modifier ses paquets à tout moment dans cette distribution. Ainsi son contenu change tous les jours. Comme aucun effort particulier n'est fait pour s'assurer que tout fonctionne correctement dans cette distribution, elle est parfois littéralement « instable ».

La distribution testing est générée automatiquement en prenant les paquets d'`unstable` s'ils satisfont à certains critères. Ces critères devraient garantir la bonne qualité des paquets de `testing`. La mise à jour de `testing` est effectuée deux fois par jour après l'installation des nouveaux paquets. Voir La distribution testing.

Après une période de développement, quand l'équipe de publication (« `release team` ») le juge opportun, la distribution `testing` est gelée, ce qui signifie que les conditions à remplir pour qu'un paquet passe d'`unstable` à `testing` 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 `testing` est gelée encore plus. Les détails de la gestion de la distribution `testing` sont publiés par l'équipe de publication sur la liste debian-devel-announce. Une fois les derniers problèmes résolus de façon satisfaisante pour l'équipe de publication, la distribution est publiée. La publication signifie que `testing` est renommée en `stable`, une nouvelle copie est créée pour la nouvelle `testing`, et l'ancienne `stable` est renommée en `oldstable` et y reste jusqu'à ce qu'elle soit finalement archivée. Lors de l'archivage, son contenu est déplacé sur `archive.debian.org`.

Ce cycle de développement est basé sur l'idée que la distribution `unstable` devient `stable` après une période de test dans `testing`. Une distribution contient inévitablement des bogues, même si elle est classée stable. C'est pourquoi la distribution stable est mise à jour de temps en temps. Les corrections introduites sont testées avec une grande attention et sont ajoutées une à une à l'archive pour diminuer les risques d'introduire de nouveaux bogues. Vous pouvez trouver les paquets proposés pour la prochaine mise à jour de `stable` dans le répertoire `proposed-updates`. De temps en temps, ces paquets du répertoire `proposed-updates` qui n'introduisent pas de régression sont installés ensemble dans la distribution `stable` et le numéro de révision de cette distribution est incrémenté (« 6.0 » devient « 6.0.1 », « 5.0.7 » devient « 5.0.8 » et ainsi de suite). Veuillez vous référer aux Cas particulier : distributions stable et oldstable pour plus de détails.

Note that development in `unstable` during the freeze should not be continued as usual, as packages are still build in `unstable`, before they migrate to `testing`, thus `unstable` should only contain packages meant for `testing`. Thus only upload to `unstable` during freezes, if you are planning to request an unblock (or if the package is not in `testing`).

Si vous souhaitez développer de nouvelles choses pour après le gel, envoyez les plutôt dans `experimental`.

#### 4.6.4.2. Informations complémentaires sur la distribution `testing`

Les paquets sont habituellement installés dans la distribution `testing` après avoir subi suffisamment de tests dans `unstable`.

Pour plus de détails, veuillez consulter la section sur La distribution testing.

#### 4.6.4.3. `Experimental`

La distribution `experimental` est particulière. Ce n'est pas une distribution à part entière comme le sont `stable`, `testing` et `unstable`. Elle sert de plate-forme de développement pour les projets expérimentaux qui risquent vraiment de détruire le système ou pour des logiciels vraiment trop instables pour être inclus dans la distribution `unstable` (mais pour lesquels une mise en paquet est justifiée). Les utilisateurs qui téléchargent et installent des paquets d'`experimental` sont prévenus : on ne peut pas faire confiance à la distribution `experimental`.

Voici les lignes de sources.list 5 pour `experimental` :

    deb http://deb.debian.org/debian/ experimental main
    deb-src http://deb.debian.org/debian/ experimental main

Si un logiciel peut causer des dégâts importants, il sera sûrement préférable de le mettre dans la distribution `experimental`. Un système de fichiers compressé expérimental, par exemple, devrait probablement aller dans `experimental`.

Une nouvelle version amont de paquet qui introduit de nouvelles fonctions tout en supprimant de nombreuses autres ne devra pas être ajoutée à l'archive Debian, elle pourra cependant être ajoutée à `experimental`. Une nouvelle version non finalisée d'un logiciel qui utilise une méthode de configuration complètement différente pourrait aller dans `experimental` au gré du responsable. Si vous travaillez sur un cas de mise à niveau complexe ou incompatible, vous pouvez aussi utiliser `experimental` comme plate-forme d'intégration et ainsi fournir un accès aux testeurs.

Quelques logiciels expérimentaux peuvent cependant aller dans `unstable`, avec un avertissement dans la description, mais ce n'est pas recommandé, car les paquets d'`unstable` se propagent dans `testing` et aboutissent dans `stable`. Vous ne devriez pas avoir peur d'utiliser `experimental`, car cela ne cause aucun souci aux responsables de l'archive (« `ftpmasters` »), les paquets expérimentaux sont périodiquement enlevés quand vous envoyez le paquet dans `unstable` avec un numéro de version supérieur.

Un nouveau logiciel qui ne risque pas d'endommager le système ira directement dans `unstable`.

Une solution de rechange à `experimental` consiste à utiliser vos pages personnelles sur le serveur `people.debian.org`.

### 4.6.5. Noms de code des distributions

Chaque distribution Debian diffusée a un `nom de code` : Debian 11 s’appelle `bullseye` ; Debian 12, `bookworm` ; Debian 13, `trixie`. La prochaine publication Debian 14, s’appellera `forky` et 15 s’appellera `duke`. Il existe aussi une « pseudodistribution » nommée `Sid` ; il s'agit de la distribution `unstable`. Comme les paquets sont déplacés d'`unstable` vers `testing` quand ils sont suffisamment stables, la distribution `Sid` n'est jamais publiée. En plus du contenu habituel d'une distribution Debian, `Sid` contient des paquets pour des architectures qui ne sont pas encore officiellement prises en charge ou pour lesquelles la distribution n'a pas encore été publiée. Ces architectures seront intégrées ultérieurement à la distribution principale. Les noms de code et les versions des prochaines publications sont listés sur le site web.

Comme Debian est un projet de développement ouvert (où tout le monde peut participer et suivre les développements), même les distributions `unstable` et `testing` sont disponibles sur les serveurs HTTP et FTP de Debian. Si nous avions nommé le répertoire qui contient la future distribution « `testing` », il aurait fallu changer son nom en « `stable` » au moment de la publication, ce qui aurait forcé les miroirs FTP à télécharger de nouveau la distribution complète (qui est plutôt volumineuse).

D'un autre côté, si une distribution s'appelait `Debian-x.y` dès le départ, des personnes pourraient s'imaginer que la version `x.y` de Debian est disponible. (Cela s'est produit par le passé : un distributeur avait gravé un CD-ROM Debian 1.0 en utilisant une version de développement pré-1.0. C'est pour cette raison que la première version officielle était la version 1.1 et non la 1.0.)

En conséquence, les noms de répertoire de distribution dans l'archive sont déterminés par leur nom de code plutôt que par leur état de publication (« `trixie` » par exemple). Ces noms sont identiques pendant la période de développement et une fois la distribution diffusée. Des liens symboliques, qui peuvent être modifiés facilement, indiquent la distribution stable actuelle. Tout cela explique pourquoi les répertoires des distributions sont nommés à partir des `noms de code` des distributions alors que `stable`, `testing` et `unstable` sont des liens symboliques qui pointent vers les répertoires appropriés.

## 4.7. Miroirs Debian

Les différentes archives de téléchargement et le site web disposent de plusieurs miroirs pour soulager les serveurs principaux d'une charge importante. En fait, certains serveurs principaux ne sont pas publics — la charge est répartie sur une première série de serveurs. De cette façon, les utilisateurs ont toujours accès aux miroirs et s'y habituent, ce qui permet à Debian de mieux répartir les besoins en bande passante sur plusieurs serveurs et réseaux, et évite aux utilisateurs de surcharger l'emplacement primaire. Dans cette première série, les serveurs sont aussi à jour que possible, car la mise à jour est déclenchée par les sites maîtres internes.

Toutes les informations sur les miroirs Debian peuvent être trouvées sur https://www.debian.org/mirror/, y compris une liste des miroirs publics disponibles par FTP et HTTP. Cette page utile inclut également des informations et des outils pour créer son propre miroir, en interne ou pour un accès public.

Les miroirs sont souvent mis en œuvre par des tiers qui veulent aider Debian. C'est pourquoi les développeurs n'ont en général pas de compte sur ces machines.

## 4.8. Système « `Incoming` »

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 sur `ftp-master.debian.org`.

Les paquets sont envoyés par tous les responsables Debian dans un répertoire nommé `UploadQueue`. Ce répertoire est parcouru toutes les quelques minutes par un démon appelé `queued`, les fichiers `*.command` sont exécutés et les fichiers `*.changes` restants et correctement signés sont déplacés avec leurs fichiers correspondants dans le répertoire `unchecked`. Ce répertoire n'est pas visible pour la plupart des développeurs, car ftp-master est à accès restreint ; il est parcouru toutes les 15 minutes par le script `dak process-upload` qui vérifie l'intégrité des paquets envoyés et leurs signatures numériques. Si le paquet est considéré comme prêt à être installé, il est déplacé dans le répertoire `done`. S'il s'agit du premier envoi du paquet (ou s'il a de nouveaux paquets binaires), il est déplacé dans le répertoire `new` où il attend l'approbation des responsables de l'archive. Si le paquet contient des fichiers devant être installés manuellement, il est déplacé dans le répertoire `byhand` où il attend une installation manuelle par les responsables de l'archive. Sinon, quand une erreur a été détectée, le paquet est refusé et déplacé dans le répertoire `reject`.

Une fois le paquet accepté, le système envoie une confirmation par courrier au responsable et ferme les bogues corrigés. Ensuite, les compilateurs automatiques peuvent commencer leur travail. À ce moment, le paquet est accessible sur https://incoming.debian.org/ avant d'être vraiment installé dans l'archive Debian. Cette opération se produit quatre fois par jour (elle est aussi appelée « `dinstall run` » pour des raisons historiques) ; le paquet est alors supprimé de `incoming` et installé dans le `pool` avec les autres paquets. Une fois toutes les autres mises à jour (fabrication des nouveaux fichiers d'index `Packages` et `Sources` par exemple) effectuées, un script spécifique déclenche la mise à jour les miroirs primaires.

The archive maintenance software will also send the OpenPGP signed `.changes` file that you uploaded to the appropriate mailing lists. If a package is released with the `Distribution` set to `stable`, the announcement is sent to `debian-changes@lists.debian.org`. If a package is released with `Distribution` set to `unstable` or `experimental`, the announcement will be posted to `debian-devel-changes@lists.debian.org` or `debian-experimental-changes@lists.debian.org` instead.

Bien que ftp-master soit à accès restreint, une copie de l'installation est disponible à tous les développeurs sur `mirror.ftp-master.debian.org`.

## 4.9. Informations sur un paquet

### 4.9.1. Sur le web

Chaque paquet a plusieurs pages web dédiées. `https://packages.debian.org/`nom-de-paquet affiche chaque version du paquet disponible dans les différentes distributions. Chaque version fait un lien vers une page qui fournit des informations détaillées comme la description du paquet, les dépendances et des liens pour télécharger le paquet.

Le système de suivi des bogues trie les bogues par paquet. Les bogues de chaque paquet sont disponibles sur `https://bugs.debian.org/`nom-de-paquet.

### 4.9.2. Utilitaire `dak ls`

`dak ls` fait partie de la suite `dak` (« `Debian Archive Kit` ») et liste les versions de paquet disponibles pour toutes les distributions et architectures connues. L'outil `dak` est disponible sur `ftp-master.debian.org` et sur le miroir `mirror.ftp-master.debian.org`. Il utilise un seul paramètre qui correspond au nom du paquet. Un exemple vaut mieux qu'un long discours :

    $ dak ls evince
    evince     | 3.22.1-3+deb11u2 | oldstable           | source, amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
    evince     | 3.22.1-3+deb11u2 | oldstable-debug     | source
    evince     | 3.30.2-3+deb12u1 | stable              | source, amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
    evince     | 3.30.2-3+deb12u1 | stable-debug        | source
    evince     | 3.38.2-1         | testing             | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
    evince     | 3.38.2-1         | unstable            | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
    evince     | 3.38.2-1         | unstable-debug      | source
    evince     | 40.4-1           | buildd-experimental | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
    evince     | 40.4-1           | experimental        | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
    evince     | 40.4-1           | experimental-debug  | source

Dans cet exemple, on peut voir que la version dans `unstable` n'est pas la même que dans `testing` où seul le binaire a été mis à jour indépendamment (« `binary-only NMU` ») pour toutes les architectures. Chaque version du paquet a été recompilée sur toutes les architectures.

## 4.10. Suivi de paquets Debian (Debian Package Tracker)

Le système de suivi de paquets Debian est un outil de suivi, par courrier ou web, de l'activité d'un paquet source. Cela signifie qu’il est possible de recevoir les mêmes courriels que le responsable, simplement en s'inscrivant au paquet dans le suivi de paquets.

Le suivi de paquets possède une interface web sur https://tracker.debian.org/ qui réunit beaucoup d'informations pour chaque paquet source. Plusieurs liens utiles sont proposés (BTS, statistiques QA, informations de contact, état de traduction DDTP, journaux de compilation automatique) et beaucoup d'autres informations provenant de différents endroits sont regroupés (les 30 dernières entrées de changelog, l'état dans `testing`, etc.). C'est un outil très pratique pour connaître ce qu'il en est d'un paquet source spécifique. De plus, une fois authentifié, il possible de s’inscrire ou désinscrire de n’importe quel paquet d’un simple clic.

Il est possible d'aller directement à la page web concernant un paquet source avec une URL comme `https://tracker.debian.org/pkg/`paquet-source.

Pour une information plus approfondie, vous devriez regarder dans sa documentation. Entre autres choses, elle explique comment interagir avec lui par courriel, comment filtrer les courriels qu’il transmet, comment configurer vos notifications de commit VCS, comment exploiter ses caractéristiques pour les équipes de responsables, etc.

## 4.11. Vue d'ensemble des paquets d'un développeur

Un portail web pour l'assurance qualité (« `quality assurance` » ou `QA`) sur https://qa.debian.org/developer.php affiche un tableau de tous les paquets d'un développeur (y compris ceux pour lesquels il est co-responsable). Le tableau donne un bon résumé sur les paquets d'un développeur : nombre de bogues par gravité, liste des versions disponibles, état des tests et des liens vers d'autres informations utiles.

C'est une bonne idée de vérifier régulièrement vos données pour ne pas oublier de bogues ouverts et quels paquets sont sous votre responsabilité.

## 4.12. `FusionForge` pour Debian : `Alioth`

Until Alioth was deprecated and eventually turned off in June 2018, it was a Debian service based on a slightly modified version of the FusionForge software (which evolved from SourceForge and GForge). This software offered developers access to easy-to-use tools such as bug trackers, patch managers, project/task managers, file hosting services, mailing lists, VCS repositories, etc.

Il existe des solutions de remplacement pour beaucoup des services offerts précédemment. Il est important de savoir qu'il reste de nombreuses références à alioth à corriger. Si vous rencontrez certaines de ces références, merci de prendre le temps d'essayer de les corriger, par exemple en remplissant des rapports de bogue, ou quand cela est possible, en corrigeant la référence.

## 4.13. Cadeaux pour les membres de Debian

Les avantages pour les membres de Debian sont documentés sur la page https://wiki.debian.org/MemberBenefits.