Como resolver o problema de fonte do dpkg-source ao criar um pacote?


16

Alguém aqui teve alguma experiência na criação de um pacote Debian / Ubuntu? Estou tentando fazer o backport do pacote lammps ( http://packages.ubuntu.com/quantal/lammps ) do Ubuntu 12.10 (Quantal) para o Ubuntu 12.04

Eu só preciso dele oficialmente - só preciso de um pacote .deb por conveniência, ao criar imagens personalizadas de máquina virtual para implantação na plataforma IaaS.

Seguindo o Guia de Empacotamento do Ubuntu em https://wiki.ubuntu.com/PackagingGuide , posso construir com êxito, exceto quando tento reconstruir usando o comando debuild , geralmente recebo este erro:

 dpkg-source: error: aborting due to unexpected upstream changes, see
 /tmp/lammps_0~20120615.gite442279-1.diff.aie32n dpkg-source: info: you
 can integrate the local changes with dpkg-source --commit
 dpkg-buildpackage: error: dpkg-source --include-binaries -i -b
 lammps-0~20120615.gite442279 gave error exit status 2

A execução de 'make clean-all' no diretório src ainda não resolve o problema. Existe alguma maneira de limpar completamente todos os arquivos que foram gerados durante o processo de compilação ou solicitar ao debuild que ignore as diferenças nos arquivos de origem?

Respostas:


6

Isso significa que você aplicou alterações na fonte upstream descompactada que não faz parte de um patch no debian/patches/diretório ou listada no seriesarquivo, se houver; e / ou há alguma inconsistência no estado de aplicação dos retalhos pelo quilt.

Observar o arquivo mencionado em / tmp mostrará as alterações em questão.


Muito obrigado pela resposta rápida! Existe uma maneira rápida de restaurar as alterações feitas por 'make' em vez de desfazer todas as alterações registradas no arquivo / tmp / * diff *?
hanxue

29

Evite a burocracia do Debian apenas construindo o binário: dpkg-buildpackage -b


11
Isso não é tão útil se você pretende fazer o upload para o debian.
Jeremias

4
@jeremiah, mas muito útil se você estiver ajustando um pacote debian para uso pessoal.
precisa saber é o seguinte

10

mude o formato no debian / source / format de 3.0 (quilt) para 3.0 (nativo) se você não quiser usar o quilt. Isso resolveu o problema para mim de qualquer maneira.


ESTA! Colcha é impossível.
Jay _silly_evarlast_ Wren

11
Eu segui ingenuamente esse comentário como está. O efeito líquido será que sua compilação não utilizará mais os patches no debian / patches. Você poderia por favor expandir a resposta explicando como você adiciona a mágica necessária ao debian / rules para aplicar os patches?
Thomas Vander Stichele


1

Eu vi esse problema quando o edredom pensou incorretamente que havia aplicado patches na minha cópia de trabalho (você pode encontrar o status atual na pasta .pc). A correção nesse caso era forçar a colcha a estourar todos os patches quilt pop -a -f.


0

Isso pode acontecer se você fez toda a "documentação" do Debian, mas teve artefatos remanescentes de tentativas anteriores. Em particular, as alterações geradas automaticamente em "config.sub", "config.guess" e "Makefile".

Você pode colocar isso em debian / source / options:

# Don't store changes on autogenerated files
extend-diff-ignore = "(^|/)(config\.sub|config\.guess|Makefile)$"

Ref: https://raphaelhertzog.com/2011/01/28/3-ways-to-not-clutter-your-debian-source-package-with-autogenerated-files/

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.