Como criar um pacote .deb para um programa Qt?

4

Nos últimos dias, tenho tentado, sem sucesso, criar um pacote deb para um programa com uma interface Qt. Os passos anteriores que fiz até agora:

  1. Criei uma chave gpg e a registrei no Launchpad;
  2. Identifiquei-me com as variáveis DEBEMAIL e DEBFULLNAME em ~/.bashrc ;
  3. Verificamos o código fonte do GitHub;
  4. Construiu com sucesso o programa (usa qmake para gerar um Makefile ), identificando todas as suas dependências;
  5. Criei uma pasta de origem, incluindo o Makefile , mais um arquivo .desktop e um ícone .xpm .
  6. Criamos um tarball dessa pasta chamada nomedopacote-versão.tar.gz .

Com este trabalho preparatório, tentei seguir dois guias diferentes:

  • O guia oficial de pacotes do Ubuntu - conclui com sucesso, mas a% final O arquivo.deb inclui apenas a pasta doc .

  • Um guia mais detalhado do xpressrazor - que falha ao executar debuild , com as seguintes mensagens enigmáticas:

    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

Estes e outros guias lá fora, invariavelmente, apresentam exemplos simples onde o programa para empacotar é composto por um único arquivo fonte (às vezes é apenas um script bash). Eu suspeito que eles são muito simplistas para um programa adequado com uma GUI elaborada. Nesse caso, quais são as etapas precisas de dh_make em diante?

Atualizar I : postei no PasteBin uma versão anônima do total debuild output .

Update II : o debuild a saída , agora com DH_VERBOSE=1 .

    
por Luís de Sousa 15.01.2016 / 11:20

1 resposta

2

Como isso acontece , dh não pode ser usado para empacotar um Programa Qt da maneira tradicional apresentado na maioria dos guias e tutoriais por aí. Mais especificamente, o arquivo rules deve ser informado sobre quais snippets ele deve usar para incluir no% final Makefile .

Uma maneira de conseguir isso é usar o pacote cdbs :

sudo apt-get install cdbs

Em seguida, o arquivo rules deve ser editado para incluir os snippets deste pacote:

#!/usr/bin/make -f

include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/qmake.mk

Estes devem ser o único conteúdo no arquivo rules , quaisquer referências diretas a dh devem ser removidas ou comentadas.

Neste momento, debuild deve estar operacional, pode ser executado como:

debuild -S

    
por Luís de Sousa 21.01.2016 / 09:15