“dpkg-source: alterações irrepresentáveis na origem” ao tentar depurar um pacote modificado

7

Eu baixei a fonte para um pacote usando:

$ apt-get source gkrellweather

Também verifiquei se eu tinha as dependências de compilação:

$ sudo apt-get build-dep gkrellweather

E eu testei que ele poderia ser bem:

$ cd gkrellweather-2.0.8
$ debuild

Ele criou um pacote .deb na pasta acima, que eu poderia instalar usando:

$ sudo dpkg -i ../gkrellweather*.deb

OK, então tudo está no lugar. Vamos começar!

Eu abri o código fonte no Vim e fiz algumas alterações que queria. Então eu tentei reconstruir:

$ debuild

Mas recebi o seguinte erro:

...
dh_clean: Compatibility levels before 5 are deprecated (level 4 in use)
 dpkg-source -b gkrellweather-2.0.8
dpkg-source: warning: no source format specified in debian/source/format, see dpkg-source(1)
dpkg-source: info: using source format '1.0'
dpkg-source: info: building gkrellweather using existing gkrellweather_2.0.8.orig.tar.gz
dpkg-source: info: building gkrellweather in gkrellweather_2.0.8-2.diff.gz
dpkg-source: error: cannot represent change to gkrellweather-2.0.8/.gkrellweather.c.swp: binary file contents changed
dpkg-source: warning: the diff modifies the following upstream files: 
 GrabWeather
 Makefile
 gkrellweather.c
dpkg-source: info: use the '3.0 (quilt)' format to have separate and documented changes to upstream files, see dpkg-source(1)
dpkg-source: unrepresentable changes to source
dpkg-buildpackage: error: dpkg-source -b gkrellweather-2.0.8 gave error exit status 1
debuild: fatal error at line 1357:
dpkg-buildpackage -rfakeroot -D -us -uc failed

Por quê?

    
por joeytwiddle 15.03.2014 / 19:15

2 respostas

5

Obrigado à resposta de joeytwiddle, que me proporcionou um ótimo lugar para começar minha solução para esse problema.

No meu projeto Python que tentei criar um pacote debian para, estou usando:

  • pybuild para preparar o pacote debian antes de executar o debuild
  • git para controle de versão
  • PyCharm IDE para o desenvolvimento em Python

git cria um diretório .git , pybuild cria um diretório .pybuild e PyCharm cria um diretório .idea na raiz do meu projeto.

Como joeytwiddle mencionou que o debuild não gostava de um determinado arquivo (no caso dele, um arquivo swp), então eu senti que provavelmente tinha um ajuste sobre os diretórios ocultos. Descobri que, para o git, você pode fazer: debuild -i e ignora os diretórios de controle de versão para os diretórios pybuild e idea, ainda não encontrei outra opção. Então, para minha solução, copiei meu projeto para um diretório em branco, excluí os .git , .idea e .pybuild diretórios e sucesso!

    
por levibostian 19.06.2014 / 23:22
2

Isso me atrapalhou mais de uma vez antes. Às vezes, eu pensava que o motivo para a depuração de erros depois de mudar a fonte era que depois que a fonte foi alterada, a assinatura do mantenedor do pacote (signoff) não é mais válida para aquela fonte.

Mas, na verdade, neste caso, a resposta foi simples:

dpkg-source: error: cannot represent change to gkrellweather-2.0.8/.gkrellweather.c.swp: binary file contents changed

O problema é que o Vim criou um swafile e debuild não gostou disso!

A solução era simples: remova o arquivo de troca e, em seguida, o edifício pode funcionar:

$ rm ./.gkrellweather.c.swp
$ debuild
    
por joeytwiddle 15.03.2014 / 19:15

Tags