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?

hanxue
fonte

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.

dobey
fonte
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

Hendry
fonte
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.

xtrade
fonte
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.

Stefan van der Walt
fonte
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/

Stéphane Gourichon
fonte