Ces derniers jours, j'ai essayé, sans succès, de créer un paquet deb pour un programme avec une interface Qt. Les étapes précédentes que j'ai faites jusqu'à présent:
DEBEMAIL
et DEBFULLNAME
dans ~/.bashrc
;qmake
pour générer un Makefile
), en identifiant toutes ses dépendances;Makefile
, un fichier .desktop
et une icône .xpm
.Avec ce travail préparatoire, j'ai essayé de suivre deux guides différents:
Le guide de packaging officiel Ubunt - il se termine bien, mais le fichier final .deb
inclut uniquement le dossier doc
.
n guide plus détaillé de xpressrazor - qui échoue lors de l'exécution de debuild
, avec les messages cryptés suivants:
make: *** [build] Error 2 dpkg-buildpackage: error: debian/rules build gave error exit status 2 debuild: fatal error at line 1364: dpkg-buildpackage -rfakeroot -D -us -uc failed
Ces guides, parmi d'autres, présentent invariablement des exemples simples dans lesquels le programme à compiler est composé d'un seul fichier source (parfois, il ne s'agit que d'un script bash). Je soupçonne qu'ils sont trop simplistes pour un programme approprié avec une interface graphique élaborée. Dans ce cas, quelles sont les étapes précises à partir de dh_make
?
Mise à jour I : J'ai envoyé à Pastebin une version anonyme de la sortie full debuild
output .
Update II : Le sortie de construction , maintenant avec DH_VERBOSE=1
.
En l'occurrence , dh
ne peut éventuellement pas être utilisé pour empaqueter un programme Qt de la manière traditionnelle présentée dans la plupart des guides et des didacticiels. Plus spécifiquement, le fichier rules
doit être informé des fragments qu’il doit utiliser pour inclure dans la version finale Makefile
.
Pour cela, utilisez le package cdbs
:
Sudo apt-get install cdbs
Ensuite, le fichier rules
doit être modifié pour inclure les extraits de ce paquet:
#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/qmake.mk
Ceux-ci doivent constituer le seul contenu du fichier rules
. Toute référence directe à dh
doit être supprimée ou mise en commentaire.
À ce stade, debuild
devrait être opérationnel, il peut être exécuté comme suit:
debuild -S