web-dev-qa-db-fra.com

Comment créer un paquet .deb pour un programme Qt?

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:

  1. A créé une clé gpg et l'a enregistrée sur Launchpad;
  2. Identifié moi-même avec les variables DEBEMAIL et DEBFULLNAME dans ~/.bashrc;
  3. Extrait le code source de GitHub;
  4. Construit avec succès le programme (il utilise qmake pour générer un Makefile), en identifiant toutes ses dépendances;
  5. Création d'un dossier source comprenant la variable Makefile, un fichier .desktop et une icône .xpm.
  6. Création d'une archive à partir de ce dossier nommé nom_package-version.tar.gz .

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.

4
Luís de Sousa

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

2
Luís de Sousa