Adicionar arquivos de texto novos ou modificados ao meu pacote PPA é simples:
Passo 1:
apt-get source [foo-package]
cd [foo-package]
Etapa 2: adicionar ou modificar novos arquivos de texto que contêm as alterações
Etapa 3 - atualize o changelog:
dch -i
Etapa 4 - crie um patch
dpkg-source --commit
Etapa 5 - criar um pacote de origem
debuild -S
Etapa 6 - fazer upload para a barra de ativação
cd ..
dput [myppa]/[foo_source.changes]
No entanto, agora preciso adicionar um novo arquivo de ícone (um arquivo .png) ao pacote existente.
Então, na etapa 2 - apenas copiei para o [foo-package]
Na etapa 4 - eu recebo os seguintes erros:
dpkg-source: error: cannot represent change to foo-package/foo-icon.png: binary file contents changed
dpkg-source: error: unrepresentable changes to source
Se eu tentar avançar para a etapa 5, obtenho os seguintes erros adicionais para o acima:
dpkg-source: error: add foo-package/foo-icon.png in debian/source/include-binaries if you want to store the modified binary in the Debian tar-ball
...
dpkg-buildpackage -rfakeroot -d -us -uc -S failed
Alguma idéia de como adiciono um arquivo de ícone binário ao meu pacote PPA existente?
Mais Informações
Correndo:
debuild -S --source-option=--include-binaries
Isso permite que o pacote de origem seja criado e a etapa 6 é possível.
No entanto, essa não é realmente a resposta - porque, posteriormente, não posso fazer mais alterações no código ( etapa 2 ) porque ainda estou recebendo os mesmos erros.
Não parece que eu posso fazer, dpkg-source --commit --source-option=--include-binaries
porque isso apenas dá erros:
dpkg-source --commit --source-option=--include-binaries
dpkg-source: warning: --source-option=--include-binaries is not a valid option for Dpkg::Source::Package::V3::quilt
dpkg-source: error: cannot represent change to foo-package/foo-icon.png: binary file contents changed
dpkg-source: error: unrepresentable changes to source
fonte
Basta obter o dpkg-source --commit para ignorar arquivos binários com o
extend-diff-ignore
switchAqui está outra maneira mais simples de fazer isso: você basicamente diz ao dpkg-source para ignorar o que ele não pode compreender (por exemplo, arquivos binários) e para cuidar de seus próprios negócios;)
Depois de adicionar um (s) arquivo (s) binário (s) pela primeira vez, a chave é usar
dpkg-source --commit
com a--extend-diff-ignore
opção, juntamente com os caminhos / nomes de arquivos apropriados a serem ignorados (formato Perl regex).Por exemplo, suponha que você cole um monte de PNGs no
llyrics
diretório e modifique alguns arquivos de texto. A chamada de confirmação correta é:Siga isso com:
para fazer o upload do seu PPA.
Vamos testar isso com o
rhythmbox-plugin-llyrics
pacote do PPA "playground" do fossfreedom:Obter fonte:
apt-get source rhythmbox-plugin-llyrics
Modifique um arquivo de texto e adicione um PNG:
Adicione ao changelog e incremente a versão com
dch -v 0.1-3ubuntu6~izx1
Confirme as alterações de texto enquanto ignora o PNG com:
Origem / alterações da compilação:
E ... voila! ( Deb criada pelo Launchpad - observe a diferença de tamanho de ~ 200k ... )
fonte
Isso é um pouco mais difícil do que apenas adicionar um arquivo.
Primeiro, você precisaria recriar o arquivo .orig.tar.gz com os binários incluídos no novo pacote de código-fonte e provavelmente precisaria incrementar a versão do software (
package_1.0.0.orig.tar.gz
->package_1.0.1.orig.tar.gz
ou algo), tanto no tar quanto nodebian/changelog
.Depois de modificar o orig.tar.gz com os novos arquivos (NÃO inclua debian / files no orig.tar.gz), você adicionaria uma
debian/changelog
entrada, alterando a versão para incrementá-la, como você fez no orig.tar. gz.Em seguida, recrie o pacote de origem (
debuild -S
) e faça o upload do novo pacote de origem no PPA. Esse novo pacote de origem substituirá o "mais antigo" no PPA.Do bate-papo:
fonte