[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ suivant ]


Guide du nouveau responsable Debian
Chapitre 2 - Premiers pas


Comment réaliser son premier paquet (ou, encore mieux, en adopter un).


2.1 Choix du programme

Vous avez probablement choisi le paquet que vous voulez créer. La première chose à faire est de vérifier si le paquet ne se trouve pas déjà dans l'archive de la distribution en utilisant aptitude.

Vous pouvez aussi vérifier les informations de paquets avec la page de recherche de paquets et le système de suivi des paquets Debian.

Si le paquet existe déjà, et bien, installez-le :-). S'il se trouve qu'il est orphelin — si son responsable est « Debian QA Group », vous devriez pouvoir le reprendre s'il est toujours disponible (vérifier qui est le propriétaire sur les jounaux de rapport de bogue Debian : bogues du paquet wnpp dans unstable). Vous pouvez aussi adopter un paquet pour lequel le responsable a rempli une demande d'adoption (« Request for Adoption » ou RFA).

Différentes vues des paquets orphelins ou en attente d'adoption sont disponibles :

En remarque, il est important de souligner que Debian possède déjà des paquets pour quasiment tous les types de programme, et que le nombre de paquets déjà dans l'archive Debian est bien plus important que le nombre de personnes ayant les droits suffisants pour envoyer les mises à jour. Par conséquent, contribuer aux paquets existants déjà dans l'archive est bien plus apprécié (avec plus de chances d'être parrainé) des autres développeurs [3]. Il est possible de le faire de plusieurs façons comme suit :

Si vous pouvez adopter le paquet, récupérez les sources (avec quelque chose comme « apt-get source nomdepaquet ») et examinez-les. Malheureusement ce document n'inclut pas d'informations exhaustives sur l'adoption de paquets. Heureusement, vous ne devriez pas avoir de problèmes à comprendre comment le paquet fonctionne, puisque quelqu'un a déjà fait la configuration pour vous. Continuez quand même à lire ce document, une bonne partie des conseils qui suivent seront applicables dans votre cas.

Si le paquet est nouveau, et que vous aimeriez le voir dans Debian, procédez comme suit :

Bien sûr, toutes ces remarques ne sont que des mesures de sécurité, et ont pour but de vous préserver d'utilisateurs fous de rage si vous faites une erreur dans un démon setuid... Quand vous aurez plus d'expérience dans la création de paquets, vous pourrez faire de tels paquets, mais même les développeurs les plus expérimentés consultent la liste de discussion debian-mentors@lists.debian.org en cas de doute. Les personnes présentes seront heureuses de vous aider.

Pour plus d'informations à ce sujet, consultez la référence du Développeur Debian.


2.2 Obtenir le programme, et l'essayer

La première chose à faire est de trouver et télécharger le code source d'origine. Supposons que vous ayez déjà le fichier source pris sur la page web de l'auteur. Les sources pour les logiciels Unix libres sont d'habitude distribués au format tar+gzip avec l'extension .tar.gz, ou au format tar+bzip2 avec l'extension .tar.bz2. Elles contiennent normalement un sous-répertoire nommé nom_du_programme-version avec toutes les sources dedans.

Si la dernière version des sources est disponible dans un dépôt de gestion de version tel que Git, Subversion ou CVS, vous devez la prendre avec « git clone », « cvs co », ou « svn co » et la compresser vous-même au format tar+gzip avec l'option « --exclude-vcs ».

Si les sources du programme sont disponibles dans un autre format d'archive (par exemple, le programme se termine par .Z ou .zip [4]), décompressez-le avec les outils adéquats et compressez-le de nouveau.

Comme exemple, le programme nommé gentoo (un gestionnaire de fichiers pour X utilisant GTK+) sera utilisé. [5]

Créez un sous-répertoire dans votre répertoire personnel nommé debian ou deb ou quoi que ce soit d'adéquat (par exemple le nom du programme, ~/gentoo, ferait l'affaire dans ce cas). Placez l'archive téléchargée dedans, et décompressez-la avec « tar xzf gentoo-0.9.12.tar.gz ». Assurez-vous qu'aucune erreur ne se produit, même sans importance, sinon des problèmes surviendront sans doute lors de la décompression sur les systèmes d'autres personnes, dont les outils pourraient ne pas gérer ces erreurs. Sur la console, vous devriez voir ce qui suit :

     $ mkdir ~/gentoo ; cd ~/gentoo
     $ wget http://www.example.org/gentoo-0.9.12.tar.gz
     $ tar xvzf gentoo-0.9.12.tar.gz
     $ ls -F
     gentoo-0.9.12/
     gentoo-0.9.12.tar.gz

Maintenant vous avez un autre sous-répertoire, nommé gentoo-0.9.12. Allez dans ce répertoire et lisez attentivement la documentation fournie. Il s'agit généralement de fichiers nommés README*, INSTALL*, *.lsm ou *.html. Vous devez trouver les instructions pour compiler et installer correctement le programme (elles supposent très probablement que vous voulez l'installer dans le répertoire/usr/local/bin ; ce n'est pas le cas, mais ce point sera traité plus tard en Installation des fichiers à leur emplacement, Section 3.3).

Des programmes simples sont fournis avec un fichier Makefile et peuvent être compilés simplement avec « make ». Certains d'entre eux gèrent « make check », qui exécute des vérifications internes. L'installation dans les répertoires de destination se fait normalement avec « make install ».

Maintenant, essayez de compiler et d'exécuter le programme, pour vous assurer qu'il fonctionne correctement et ne casse rien d'autre quand il est installé ou utilisé.

Sachez aussi que vous pouvez généralement utiliser « make clean » (ou mieux, « make distclean ») pour nettoyer le répertoire de compilation. Parfois, « make uninstall » peut être utilisé pour retirer tous les fichiers installés.


2.3 Programmes libres portables

De nombreux programmes libres sont écrits en C et C++. Beaucoup d'entre-eux utilisent les Autotools ou CMake pour les rendre portables sur différentes architectures. Ces outils sont utilisés pour créer Makefile et d'autres fichiers sources nécessaires. Ensuite, de tels programmes sont construits avec l'habituel « make; make install ».

Les Autotools sont les outils de construction GNU, et comprennent Autoconf, Automake, Libtool et gettext. Vous pouvez remarquer de telles sources à l'aide des fichiers configure.ac, Makefile.am et Makefile.in. [6]

La première étape du travail des Autotools est généralement que les auteurs amont exécutent « autoreconf -i -f » dans les sources avant de les distribuer avec les fichiers générés.

     configure.ac-----+-> autoreconf -+-> configure
     Makefile.am -----+        |      +-> Makefile.in
     src/Makefile.am -+        |      +-> src/Makefile.in
                               |      +-> config.h.in
                           automake
                           aclocal
                           aclocal.m4
                           autoheader

Modifier les fichiers configure.ac et Makefile.am nécessite un peu de connaissance de autoconf et automake. Voir « info autoconf » et « info automake ».

La deuxième étape du travail des Autotools est habituellement que les utilisateurs se procurent ces sources et exécutent « ./configure && make » dans les sources pour compiler le programme en un binaire.

     Makefile.in -----+                +-> Makefile -----+-> make -> binaire
     src/Makefile.in -+-> ./configure -+-> src/Makefile -+
     config.h.in -----+                +-> config.h -----+
                               |
                config.status -+
                config.guess --+

Vous pouvez modifier plein de choses dans le fichier Makefile comme le répertoire d'installation par défaut en utilisant une option de commande, par exemple « ./configure --prefix=/usr ».

Bien que ce ne soit pas nécessaire, mettre à jour configure et les autres fichiers avec « autoreconf -i -f » en tant qu'utilisateur peut améliorer la compatibilité des sources.

CMake est un système de construction alternatif. De telles sources peuvent être remarquées avec le fichier CMakeLists.txt.


2.4 Nom et version de paquet

Vous devriez commencer la création du paquet avec un répertoire source complètement propre (originel), ou simplement avec les sources fraîchement décompressées.

Pour que le paquet soit correctement construit, vous devez changer le nom du programme en minuscule (si ce n'est déjà fait), et vous devriez changer le répertoire source en nomdepaquet-version.

Si le nom du programme est constitué de plusieurs mots, réduisez-le à un mot, ou faites une abréviation. Par exemple, le paquet du programme « John's little editor for X » pourrait s'appeler johnledx, ou jle4x, ou ce que vous préférez, tant qu'il reste sous une limite raisonnable, comme vingt caractères.

Vérifiez aussi la version exacte du programme (à inclure dans la version du paquet). Si ce logiciel n'est pas numéroté avec un numéro de version comme X.Y.Z, mais avec une date de distribution, vous pouvez utiliser cette date comme numéro de version, tant que les numéros de version futurs apparaîtront plus grand. Bien qu'il soit préférable d'utiliser le même numéro de version qu'en amont, si la version ressemble à 09Oct23, vous pourriez avoir besoin de la convertir au format AAAAMMJJ, pour la transformer en 20091023, afin de garantir un ordre approprié pour les mises à jour avec le programme dpkg. [7]

Certains programmes ne seront pas numérotés du tout, auquel cas vous devriez contacter le responsable amont pour voir s'il a une autre méthode de suivi des révisions.


2.5 Paquet Debian initial

Configurez les variables d'environnement de l'interpréteur de commandes Bash $DEBEMAIL et $DEBFULLNAME de tel sorte que les nombreux outils de maintenance Debian identifient vos nom et adresse électronique comme suit :[8].

     $ cat >>~/.bashrc <<EOF
     DEBEMAIL=votre.adresse.mail@example.org
     DEBFULLNAME="Prénom Nom"
     export DEBEMAIL DEBFULLNAME
     EOF

Préparez le paquet Debian initial en invoquant la commande dh_make comme suit :

     $ . ~/.bashrc
     $ cd ~/gentoo/gentoo-0.9.12
     $ dh_make -f ../gentoo-0.9.12.tar.gz

Bien sûr, remplacez le nom de fichier par celui de votre archive source d'origine. [9] Voir dh_make(1) pour plus de détails.

Des informations seront affichées. Il vous sera demandé quelle sorte de paquet vous voulez créer. Gentoo est un paquet binaire simple — il ne crée qu'un exécutable, et donc un seul fichier .deb — donc la première option sera sélectionnée, avec la touche « s ». Une fois l'information vérifiée sur l'écran, confirmez en pressant « Entrée ». [10]

Après cette exécution de dh_make, une copie de l'archive amont est créée sous gentoo_0.9.12.orig.tar.gz dans le répertoire parent pour permettre ensuite la création d'un paquet source Debian non natif avec debian.tar.gz.

     $ cd ~/gentoo ; ls -F
     gentoo-0.9.12/
     gentoo-0.9.12.tar.gz
     gentoo_0.9.12.orig.tar.gz

Veuillez remarquer deux caractéristiques dans ce nom de fichier gentoo_0.9.12.orig.tar.gz :

Vous devriez aussi remarquer que de nombreux fichiers modèles sont créés dans les sources sous le répertoire debian. Ce sera expliqué en Fichiers nécessaires dans le répertoire debian, Chapitre 4 et Autres fichiers dans le répertoire debian, Chapitre 5. Vous devriez aussi comprendre que l'empaquetage n'est pas un processus automatique. Vous devez modifier les sources amont pour Debian comme en Modification du code source, Chapitre 3. Après tout cela, vous avez besoin de construire les paquets avec la méthode appropriée comme en Construction du paquet, Chapitre 6, les vérifier comme en Contrôle des erreurs du paquet, Chapitre 7, et les envoyer comme en Envoi de paquet, Chapitre 8. Toutes ces étapes seront expliquées.

Rappelons-le, en tant que nouveau responsable, vous ne devriez pas créer de paquets compliqués, par exemple :

Ce n'est pas si difficile, mais cela requiert un peu plus de connaissances, et nous n'entrerons pas dans les détails ici.

Si vous effacez par mégarde quelques fichiers modèles en travaillant dessus, vous pouvez les retrouver en exécutant de nouveau dh_make avec l'option --addmissing dans une arborescence de paquet Debian.

La mise à jour d'un paquet existant peut devenir compliqué puisqu'il pourrait utiliser d'anciennes techniques. Veuillez vous en tenir aux cas d'empaquetage récent pour l'instant afin d'apprendre les bases. Des explications arriveront plus loin en Mise à jour de paquet, Chapitre 9.


[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ suivant ]


Guide du nouveau responsable Debian

version 1.2.25, 2010-12-21 14:06:56 UTC

Josip Rodin joy-mg@debian.org

Traduction par Frédéric Dumont frederic.dumont@easynet.be
Mohammed Adnène Trojette adn+deb@diwi.org
David Prévot david@tilapin.org
et les membres de la liste debian-l10n-french@lists.debian.org