Como construir um pacote fonte com 'pbuilder' para upload de PPA?

3

Estou tentando usar pbuilder para fazer o upload para o PPA. O pacote é compilado com o comando:

sudo pbuilder build <package>_<version>.dsc

Mas o upload falha com erro:

Source/binary (i.e. mixed) uploads are not allowed.

Dizem que preciso usar pdebuild para criar source package , mas pdebuild não resolve dependências de compilação. Como posso construir esse pacote para que ele possa ser finalmente carregado? Eu não quero instalar dependências manualmente.

    
por anatoly techtonik 27.12.2013 / 10:16

2 respostas

4

A resposta é que você não sabe. pbuilder pega o pacote de origem e constrói binários. Ele também pode pegar o código-fonte sem um pacote fonte construído e criar os binários que você mesmo hospedaria ou adicionaria aos seus próprios sistemas de repositório debian para hospedar por conta própria.

Isso não é o que você precisa para um PPA.

O que você deseja fazer e o que eu recomendo strongmente é seguir os procedimentos de empacotamento tradicionais e executar debuild -S no código, com o diretório do pacote lá, contendo o código-fonte, a pasta debian/ e tudo mais.

Em seguida, depois de criar o pacote de origem em debuild -S , você poderá carregar o arquivo .changes criado em um diretório acima do diretório de origem para o PPA por meio de dput . (esta etapa é chamada de no PPA do Launchpad para fazer upload de documentos de ajuda ).

Você pode, em teoria, usar pdebuilder para manter seu sistema limpo e construir dentro de um chroot, mas continue lendo minhas declarações sobre isso, porque ele falhou anteriormente para você.

Pelos comentários, você identificou corretamente que o debhelper não consegue encontrar o autoreconf plugin.

Além disso, como eu disse em meus comentários sobre essa resposta, pbuilder e pdebuilder não são espertos o suficiente para determinar as dependências do debhelper.

Para resolver seu problema para que suas coisas possam ser compiladas, você terá que usar manualmente pbuilder ou pdebuilder para acessar o chroot. Então, você terá que instalar manualmente dh-autoreconf no chroot, geralmente com apt-get install dh-autoreconf depois de ter logado no chroot.

Depois de ter feito isso e salvo o estado do chroot, você deve ser capaz de pbuilder ou pdebuilder do seu pacote.

(No entanto, eu prefiro trabalhar tradicionalmente com pacotes, e eu não me importo se meu sistema de compilação está totalmente limpo ou não, tudo que eu realmente compo são pacotes de fontes, e os plugins debhelper não vão desordenar) meu sistema que mal)

    
por Thomas Ward 27.12.2013 / 23:24
2

pbuilder é usado para criar pacotes binários a partir de um pacote fonte. Os PPAs também constroem pacotes binários a partir de pacotes de código-fonte. Simplesmente dput o arquivo source.changes que você criou quando criou o arquivo <package>_<version>.dsc .

Um dos principais pontos em usar pbuilder é imitar localmente o ambiente chroot limpo que é usado para construir os pacotes binários nos arquivos oficiais e nos PPAs.

    
por andrewsomething 27.12.2013 / 23:13