Chapitre 1. Partir du bon pied

Table des matières

1.1. Dynamique sociale de Debian
1.2. Programmes nécessaires au développement
1.3. Documentation nécessaire au développement
1.4. Où demander de l'aide

Ce document essaie de décrire aux utilisateurs Debian moyens, et aux développeurs en devenir, la construction d'un paquet Debian. Il utilise un langage pas trop technique et est complété par des exemples, selon le vieux proverbe latin : « Longum iter est per praecepta, breve et efficax per exempla » (c'est long par la règle, court et efficace par l'exemple).

The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers. Please use this new tutorial as the primary tutorial document.

This document is made available for the Debian Buster release since it is offered in many translations but this will be dropped in the following releases since contents are getting outdated. [1]

Une des choses qui font de Debian une distribution de si haut niveau est son système de paquets. Bien qu'il existe une grande quantité de logiciels au format Debian, vous devrez parfois installer un logiciel qui ne l'est pas. Vous pouvez vous demander comment faire vos propres paquets et peut-être pensez-vous que c'est une tâche très difficile. Eh bien, si vous êtes vraiment un débutant sous Linux, c'est dur, mais si vous étiez un débutant, vous ne seriez pas en train de lire ce document. :-) Vous devez en savoir un peu sur la programmation UNIX, mais vous n'avez certainement pas besoin d'être un magicien. [2]

Une chose est sûre, cependant : créer et maintenir correctement des paquets Debian prend beaucoup de temps. Ne vous faites pas d'illusion, pour que votre système fonctionne, les responsables doivent à la fois être techniquement compétents et consciencieux.

If you need some help with packaging, please read Section 1.4, « Où demander de l'aide ».

Les nouvelles versions de ce document devraient toujours être disponibles en ligne sur http://www.debian.org/doc/maint-guide/. La version de référence en anglais est disponible sur http://www.debian.org/doc/maint-guide/index.en.html et dans le paquet maint-guide. La traduction en français est également disponible dans le paquet maint-guide-fr.

Puisqu'il s'agit d'un tutoriel, il a été choisi d'expliquer de façon détaillée chaque étape pour certains sujets importants. Certains d'entre eux pourrait vous sembler hors-sujet. Veuillez être patient. Certains cas particuliers ont été sautés, et seuls des liens ont été fournis pour conserver la simplicité de ce document.

Voici quelques observations sur la dynamique sociale de Debian, en espérant qu'elles puissent vous préparer à interagir avec Debian :

  • Nous sommes tous bénévoles.

    • Vous ne pouvez pas forcer les autres à faire quoi que ce soit.

    • Vous devriez être motivé à faire des choses vous-même.

  • La coopération amicale est la force motrice.

    • Vos contributions ne devraient pas surmener les autres.

    • Vos contributions n'ont de sens que si les autres les apprécient.

  • Debian n'est pas une école où vous attirez automatiquement l'attention des professeurs.

    • Vous devriez être capable d'apprendre la plupart des choses par vous-même.

    • L'attention des autres bénévoles est une ressource très rare.

  • Debian s'améliore sans cesse.

    • On s'attend à ce que vous fassiez des paquets de haute qualité.

    • Vous devrez vous adapter vous-même aux modifications.

Plusieurs sortes de personnes ont rapport à Debian avec différent rôles :

  • auteur amont : la personne qui a créé le programme à l'origine ;

  • responsable amont : la personne qui maintient actuellement le programme ;

  • responsable : la personne qui maintient le paquet Debian du programme ;

  • parrain : une personne qui aide les responsables à envoyer des paquets dans l'archive officielle de paquets Debian (après en avoir vérifié le contenu) ;

  • mentor : une personne qui aide les responsables débutants pour l'empaquetage, etc. ;

  • développeur Debian (DD) : un membre du projet Debian avec tous les droits d'envoi vers l'archive officielle de paquets Debian ;

  • responsable Debian (DM) : une personne avec des droits d'envoi limités vers l'archive officielle de paquets Debian.

Veuillez remarquer qu'il n'est pas possible de devenir développeur Debian (DD) en une nuit car il ne suffit pas de compétences techniques. Veuillez ne pas vous décourager. Si c'est utile à d'autres, vous pouvez toujours envoyer vos paquets, soit en tant que responsable à l’aide d’un parrain, soit comme un responsable Debian.

Remarquez qu'il n'est pas nécessaire de créer de nouveau paquet pour devenir un développeur Debian officiel. Contribuer aux paquets existants peut aussi fournir une voie pour devenir un développeur Debian. Beaucoup de paquets sont en attente de bons responsables (consultez Section 2.2, « Choix du programme »).

Puisque nous nous concentrons dans ce document exclusivement sur les aspects techniques de l'empaquetage, veuillez consulter les documents suivants pour apprendre comment Debian fonctionne et comment vous investir :

Avant de commencer quoi que ce soit, vous devriez vous assurer d'avoir correctement installé certains paquets nécessaires au développement. Notez que la liste ne contient aucun paquet marqué essential ou required (essentiel ou requis) — nous supposons que ceux-ci sont déjà installés.

The following packages come with the standard Debian installation, so you probably have them already (along with any additional packages they depend on). Still, you should check them with aptitude show package or with dpkg -s package.

Le paquet le plus important à installer sur un système de développement est build-essential. Lors de son installation, il tirera avec lui d'autres paquets nécessaires à un environnement de compilation de base.

Pour certaines catégories de paquets, c'est tout ce dont vous aurez besoin. Cependant d'autres paquets, bien que non essentiels à toutes les constructions de paquet, sont utiles ou peuvent être nécessaires pour votre paquet :

Les courtes descriptions données ci-dessus ne servent qu’à vous présenter ce que fait chaque paquet. Avant de continuer, veuillez lire la documentation de chaque programme pertinent, y compris ceux installés par les dépendances du paquet comme make, au moins celle concernant l'utilisation standard. Cela peut vous sembler fastidieux maintenant, mais plus tard vous serez très content de l'avoir fait. Si vous avez des questions particulières par la suite, vous devriez relire les documents mentionnés ci-dessus.

Les documents suivants sont très importants et doivent être lus en parallèle à ce document :

  • debian-policy — la Charte Debian inclut des explications sur la structure et le contenu de l'archive Debian, plusieurs considérations sur l'architecture du système d'exploitation, la norme de hiérarchie des fichiers (« Filesystem Hierarchy Standard » ou FHS, qui définit où chaque fichier et répertoire doivent se trouver), etc. Le plus important pour vous est qu'elle décrive les critères que chaque paquet doit vérifier pour être inclus dans la distribution (consultez les copies locales de /usr/share/doc/debian-policy/policy.pdf.gz et /usr/share/doc/debian-policy/fhs/fhs-2.3.pdf.gz) ;

  • developers-reference - the Debian Developer's Reference describes all matters not specifically about the technical details of packaging, like the structure of the archive, how to rename, orphan, or adopt packages, how to do NMUs, how to manage bugs, best packaging practices, when and where to upload, etc. (See the local copy of /usr/share/doc/developers-reference-fr/developers-reference.pdf.)

Les documents suivants sont importants et doivent être lus en parallèle à ce document :

Si ce document contredit n'importe quelle documentation précédente, celle-ci est prioritaire. Veuillez signaler un bogue sur le paquet maint-guide avec reportbug.

The following is an alternative tutorial document that you may read along with this document:

Before you decide to ask your question in some public place, please read this fine documentation:

Vous pouvez utiliser le moteur de recherche plus efficacement en indiquant des chaînes de recherche comme site:lists.debian.org pour limiter le domaine.

Faire un petit paquet de test est une bonne façon d'apprendre les particularités de l'empaquetage. Examiner les paquets bien maintenus est le meilleur moyen d'apprendre comment les autres font leurs paquets.

Si vous avez encore des questions sur la création de paquets pour lesquelles vous n'avez pas pu trouver de réponse dans la documentation disponible ou sur la toile, vous pouvez les poser de façon interactive :

Les responsables Debian les plus expérimentés seront heureux de vous aider, si vous demandez correctement après avoir fait les efforts nécessaires.

Quand vous recevrez un rapport de bogue (oui, un vrai rapport de bogue !), vous saurez qu'il est temps de vous plonger dans le système de suivi de bogues Debian et de lire la documentation, pour être à même de gérer les rapports efficacement. La lecture de la référence du développeur Debian, chapitre 5.8. « Manipulation des bogues » est fortement recommandée.

Even if it all worked well, it's time to start praying. Why? Because in just a few hours (or days) users from all around the world will start to use your package, and if you made some critical error you'll get mailbombed by numerous angry Debian users… Just kidding. :-)

Relaxez-vous et soyez prêt pour les rapports de bogues, parce qu'il y aura beaucoup plus de travail à faire avant que votre paquet ne soit parfaitement conforme aux règles Debian (une fois encore, lisez la vraie documentation pour les détails). Bonne chance !



[1] Ce document suppose que vous utilisez un système Jessie ou plus récent. Si vous avez l'intention de suivre ce texte avec un système plus ancien (y compris un ancien système Ubuntu par exemple), vous devez au moins installer les paquets dpkg et debhelper rétroportés.

[2] Vous pouvez apprendre les bases du système Debian à partir de la Référence Debian. Elle contient aussi quelques liens pour apprendre la programmation UNIX.

[3] D'autres paquets plus spécialisés mais similaires existent aussi comme dh-make-perl, dh-make-php, etc.