====== Créer un paquet Debian ======
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 :
INCLUDEPATH += . /usr/include/sigc++-2.0
TEMPLATE = app
TARGET = programme
target.path = /usr/bin
INSTALLS += target
OBJECTS_DIR = tmp
CONFIG += qt warn_on
unix:LIBS += -lpar2
HEADERS += mainwindow.h
FORMS += mainwindow.ui
SOURCES += mainwindow.cpp main.cpp
Pour générer le ''Makefile'' :
cd -
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