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.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 10 s’appelle buster ; Debian 11, bullseye ; Debian 12, bookworm. La prochaine publication Debian 13, s’appellera trixie et 14 s’appellera forky. 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 (« bookworm » 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.