Piste: » Utiliser Apache comme proxy » Utilisation de live-package pour booter Debian en réseau » Créer un paquet Debian

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 <programme>-<version>

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 <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