Voici la méthode que j'utilise pour créer un paquet Debian en utilisant qmake, dh_make et dpkg-buildpackage.
Installation des paquets nécessaires
Les outils pour la génération de paquets Debian sont :
apt-get install cdbs dh-make fakeroot devscripts
Préparation des sources
- Nettoyer au maximum l'arbre des sources pour n'avoir que le minimum.
- Placer les sources dans un répertoire qui porte le nom
-
Mon programme utilise Qt, donc j'utilise qmake pour générer un Makefile. Le fichier programme.pro ressemble à cela :
Pour générer le Makefile :
cd <programme>-<version>
qmake programme.pro
Préparation du paquet
La commande dh_make produit un squelette qui va servir à générer le paquet.
DEBFULLNAME="toto" dh_make -e mail@du.responsable -n -s -c gpl
Le paramètre : * -e contient l'email du responsable du paquet * -n produit un paquet natif (paquet fait pour Debian) * -s indique que le programme est un simple executable * -c gpl donne la licence du programme * DEBFULLNAME donne le nom du responsable du paquet
Ensuite on efface les fichiers qui ne servent pas :
rm debian/*.ex debian/*.EX debian/docs debian/dirs
Par défaut dh_make construit un fichier debian/rules générique, on va le remplacer par un script qui utilise cdbs :
#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/qmake.mk
QMAKE=qmake-qt4
Génération du paquet
Il faut indiquer les changements apportés par la nouvelles version :
dch -a
# pour ajouter de nouvelles remarques à la version courante
dch -i
# pour incrementer le numéro de version
Pour générer le paquet :
dpkg-buildpackage -rfakeroot
Le paquet .deb sera généré dan le répertoire parent.
Littérature
- Le guide du dev Debian : http://www.debian.org/doc/developers-reference/ particulierement le chapitre 6 sur les paquets.
- Utilisation de cdbs : https://perso.duckcorp.org/duck/cdbs-doc/cdbs-doc.xhtml
- http://www.debian.org/doc/packaging-manuals/menu.html/ch3.html#s3.7
- http://www.mail-archive.com/debian-med@lists.debian.org/msg01376.html
- http://wiki.ubuntu.com/MOTU/Packages/DesktopFiles