Comment mettre les mains dans le cambouilli de la Debian

Baptiste SIMON (aka BeTa)

e-glop.net

version 1.0

20040415

Abstract

Ce document, ce "HOWTO", me sert de mémo personnel pour retrouver la marche à suivre pour personnaliser mes paquets Debian GNU/Linux, entre autre pour le projet Debian-IPv6. Il explique les étapes à suivre pour personnaliser un paquet.

Après ca, on n'aura plus rien à envier aux Gentooistes (ca me manquait ce côté là depuis que j'ai lâché les distributions sources !! :c)


Table of Contents

Pré-requis
Voyage au centre des sources
Premières étapes
Personnalisation
Compilation et empaquetage
"Exports"
Conclusion
Annexes
L'auteur
Aperçu des divers formats de ce document
Licence de publication

Pré-requis

Il vous faut installer les paquets gnupg, fakeroot, dput et dpkg-dev, en plus des paquets classiques de type tar, gzip, etc...

De plus, il vous faut pouvoir installer les paquets Debian sources. Pour cela vérifiez bien que vous avez une ou plusieurs lignes commençant par deb-src dans votre /etc/apt/source.list. Si non, ajoutez une ligne du genre :

deb-src http://ftp2.fr.debian.org/debian/ unstable main

Et lancez un apt-get update.

Voyage au centre des sources

Premières étapes

Placez vous dans le répertoire de votre choix, par exemple ~/devel/[paquet], où [paquet] est le nom de votre paquetage. Ensuite, récupérez les sources du paquet qui vous intéresse avec la commande apt-get source [paquet]. Pour finir, Installez les paquets nécessaires à sa compilation via la commande apt-get build-dep [paquet].

Personnalisation

Aller dans le répertoire portant le nom de votre paquet suivi de son numéro de version. Vous y trouverez un répertoire nommé debian. A l'intérieur, plusieurs fichiers nous intéressent :

  • debian/rules qui décrit la façon dont les sources vont être compilées (entre autre, ce qui intéresse dans la plupart des cas : les options à passer au ./configure).

  • debian/control pour redéfinir le mainteneur de ce paquet.

  • debian/changelog qui donne l'évolution d'un paquet dans le temps. Il faut faire attention à bien conserver la syntaxe du fichier : c'est lui qui est utilisé pour définir la version du paquet par exemple.

Compilation et empaquetage

Une fois que votre paquet est prêt à être mis en boîte, placez vous bien à la racine des sources et lancez un dpkg-buildpackage -rfakeroot -sa -k[gpg-mail][gpg-mail] est l'adresse mail associée à votre clé GnuPG (si vous n'avez pas de clé GnuPG et que c'est juste pour un usage privé, oubliez l'option -k). Cela lancera la compilation et créera l'ensemble de vos paquets binaires et sources dans le répertoire ~/devel/[paquet] pour notre exemple.

"Exports"

Personnels

Créez deux répertoires distincts, par exemple ~/devel/debian/source pour y mettre vos paquets sources, et ~/devel/debian/binary-i386 pour les paquets binaires (*.deb). Ces répertoires seront nommés [sources] et [binaires] par la suite.

Ensuite, les commandes dpkg-scanpackages [sources] /dev/null | gzip -9c > [sources]/Packages.gz et dpkg-scanpackages [binaires] /dev/null | gzip -9c > [binaires]/Packages.gz vous permettront de faire vos répertoires à la mode debian.

Il vous faudra ensuite créer des fichiers Release dans chacun de ces répertoires ([sources] et [binaires]) de la manière suivante :

Archive: archive
Component: component 
Origin: YourCompany
Label: YourCompany Debian repository
Architecture: architecture

Archive correspond à la distribution debian pour laquelle ces paquets sont faits (stable, testing, unstable) ; Component, à la branche Debian à laquelles ils peuvent être attachés (main, non-free, contrib) ; Origin, le nom de l'organisation dont est originaire vos paquets (donc ici, c'est vous) ; Label, le nom de votre dépôt APT ; Architecture, le nom de l'architecture pour laquelle sont fais vos paquets (i386, sparc, arm...).

L'ajout dans votre fichier /etc/apt/sources.list des lignes suivantes vous permettra d'utiliser, après avoir lancé un apt-get update, vos paquets personnalisés avec APT

deb file:///home/[user]/devel/debian binary-i386/
deb-src file:///home/[user]/devel/debian source/

Communautaires

Pour en faire profiter plus facilement la communauté, il est possible d'uploader, si vous en avez reçu l'habilitation, vos paquets dans des dépôts officiels. Pourt cela, nous allons utiliser la commande dput. Mais avant tout, nous allons configurer cet utilitaire :

Editez le fichier ~/.dput.cf (ou /etc/dput.cf pour que ça impacte le système entier), et ajoutez les paramètres qu'on vous a donné (ou que vous avez fixé, c'est selon...) de la manière suivante

[<nom>]
fqdn = <domainname>
incoming = <repertoire>
login = <username>
method = <rsh>

Avec [nom], le nom du dépôt ; <domainname> le nom de domaine de la machine distante ; <repertoire> le nom du répertoire où uploader les paquets, <username>, le nom de login à utiliser pour se connecter à l'hôte distant ; Et enfin, <rsh>, la méthode d'accès à cet hôte (ssh, ftp, etc...).

Enfin, uploadez votre paquet en vous plaçant dans le répertoire choisi au départ (~/devel/[paquet]) et en exécutant la commande dput <nom> [fichier].changes, où fichier est le préfixe de votre paquet.

Conclusion

En espérant que ce document vous ai aidé à faire un pas de plus vers la contribution, la participation active à la vie des logiciels Libres. Si vous constatez une quelconque erreur, si vous souhaitez améliorer certains passages, certains points, n'hésitez pas à me contacter par mail pour me soumettre vos "patches" ou vos remarques, ce document est sous Open Publication License, et je vous garantis un respect total de votre droit d'auteur ;c).

Annexes

L'auteur

Baptiste SIMON <baptiste.simon@e-glop.net>

Administrateur système GNU/Linux

À la recherche d'emploi...

Aperçu des divers formats de ce document

Ce document a été rédigé au format RST avec KWrite puis converti aux formats DN-XML et Docbook avec dn2dbk.xsl.

Les versions XHTML, HTML et XSL-FO a été réalisée avec les feuilles XSLT officielles de docbook [1]. Les version PDF, postscript, RTF et texte ont été créées grâce à Jade.

Retrouvez toutes ces version ici :

Licence de publication

Ce document issu de www.e-glop.net est soumis à la Open Publication License. Permission vous est donnée de distribuer, modifier des copies de ce document (traduction, modifications, adaptation, etc...) tant que vous respectez la licence sus-citée, dans sa version 1.0.



[1] paquet app-text/docbook-xsl-stylesheets sur Gentoo Linux