[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ suivant ]
Comment réaliser son premier paquet (ou, encore mieux, en adopter un).
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 :
se charger de paquets orphelins, encore largement utilisés ;
rejoindre des équipes
d'empaquetage
;
trier des bogues de paquets populaires ;
préparer des envois
de QA ou des NMU
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 :
d'abord, assurez-vous qu'il fonctionne, et essayez-le pendant quelques temps pour confirmer son utilité ;
vérifiez que personne d'autre ne travaille déjà sur ce paquet en consultant
la liste des
paquets en cours de création
. Si personne ne travaille dessus,
déclarez votre intention de l'empaqueter (« Intent To Package » ou
ITP) avec un bogue ITP sur le pseudo-paquet wnpp
en utilisant
reportbug
. Si quelqu'un travaille déjà dessus, contactez-le si
vous voulez. Sinon, trouvez un autre programme intéressant dont personne
n'est responsable.
le programme doit avoir une licence :
pour la section main (principale), elle doit être
conforme à tous les principes du logiciel libre selon Debian (« Debian
Free Software Guidelines » ou DFSG) (voir http://www.debian.org/social_contract#guidelines
)
et ce programme ne doit pas dépendre de paquets hors de
main pour la compilation ou l'exécution, conformément
à la Charte Debian. C'est le cas idéal ;
pour la section contrib (contributions), il doit être conforme à tous les DFSG mais peut dépendre de paquets hors de main pour la compilation ou l'exécution ;
pour la section non-free (non libre), il peut être non conforme à certaines DFSG mais doit être distribuable.
En cas de doute sur la section à laquelle il devrait appartenir, envoyez la
licence sur debian-legal@lists.debian.org
et demandez conseil ;
le programme ne devrait certainement pas être exécuté setuid root, ou encore mieux, il ne devrait pas être setuid ou setgid quoi que ce soit ;
le programme ne devrait ni être un démon, ni s'installer dans les
répertoires */sbin
, ni ouvrir un port en tant que
superutilisateur ;
le programme résultant devrait être sous forme de binaire exécutable, les bibliothèques sont plus difficiles à gérer ;
il devrait être bien documenté, et le code doit être compréhensible (c'est-à-dire, pas volontairement obscur) ;
vous devriez contacter les auteurs du programme pour vérifier qu'ils soient d'accord pour la création du paquet et bienveillants envers Debian. Il est important de pouvoir consulter les auteurs à propos du programme en cas de problèmes spécifiques à celui-ci, donc n'essayez pas de créer un paquet à partir de programmes non maintenus.
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
.
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.
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
.
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.
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
:
le nom de paquet et la version sont séparés par « _ » (tiret bas) ;
« orig. » est avant le « 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 :
des paquets à binaires multiples ;
des paquets de bibliothèque ;
des paquets de modules du noyau ;
des paquets de correctifs du noyau ;
un format de fichier source n'étant ni tar.gz, ni tar.bz2 ;
une archive source avec des contenus non distribuables ;
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-22 12:44:34 UTCjoy-mg@debian.org
frederic.dumont@easynet.be
adn+deb@diwi.org
david@tilapin.org
debian-l10n-french@lists.debian.org