Capítulo 8. Sanitização da fonte

Índice

8.1. Corrige com Files-Excluded
8.2. Corrigir com debian/rules clean
8.3. Corrigir com extend-diff-ignore
8.4. Corrigir com tar-ignore
8.5. Corrigir com git clean -dfx

Existem alguns casos que requerem o sanitizar da fonte para prevenir a contaminação do pacote fonte Debian gerado.

Existem vários métodos de evitar a inclusão de conteúdos indesejáveis.

Este método é apropriado para evitar conteúdos não compatíveis com https://www.debian.org/social_contract.html#guidelines[DFSG] no tarball fonte do autor.

  • Lista os ficheiros a serem removidos na estrofe Files-Excluded do ficheiro debian/copyright.
  • Lista o URL para descarregar o tarball do autor no ficheiro debian/watch.
  • Corre o comando uscan para descarregar o novo tarball de autor.

    • Em alternativa, use o comando gbp import-orig --uscan --pristine-tar.
  • mk-origtargz invocado de uscan remove ficheiros excluídos do tarball do autor e re-empacota-o como um tarball limpo.
  • O tarball resultante tem o número de versão com um sufixo adicional +dfsg.

Veja EXEMPLOS DE FICHEIROS COPYRIGHT em mk-origtargz(1).

Este método é apropriado para evitar ficheiros auto-gerados ao remove-los no alvo "debian/rules clean".

[Nota]Nota

O alvo "debian/rules clean" é chamado antes do comando "dpkg-source --build" pelo comando dpkg-buildpackage. O comando "dpkg-source --build" ignora os ficheiros removidos.

Isto é para o pacote não-nativo Debian.

O problema dos diffs estranhos pode ser resolvido ao ignorar as alterações feitas a partes específicas da árvore fonte. Isto é feito ao adicionar a linha "extend-diff-ignore=…" no ficheiro debian/source/options.

debian/source/options para excluir os ficheiros config.sub, config.guess e Makefile

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

[Nota]Nota

Esta abordagem funciona sempre, mesmo quando você não consegue remover o ficheiro. Isto poupa-o de ter de fazer uma salvaguarda do ficheiro não-modificado apenas para o restaurar antes da próxima compilação.

[Dica]Dica

Se você usar o ficheiro debian/source/ local-options, você pode esconder esta definição do pacote fonte gerado. Isto pode ser útil quando ficheiros VCS locais não-standard interferem com o seu empacotamento.

Isto é para o pacote nativo Debian.

Você pode excluir certos ficheiros na árvore fonte do tarball gerado ao ajustar o globo de ficheiros. Adicione as linhas "tar-ignore=…" nos ficheiros debian/source/options ou debian/source/local-options.

[Nota]Nota

Por exemplo, se o pacote fonte de um pacote nativo precisar de ficheiros com a extensão .o como uma parte dos dados de teste, a definição em Secção 4.6, “Configuração do devscripts pode ser demasiado agressiva. Você pode contornar isto ao largar a opção -I para DEBUILD_DPKG_BUILDPACKAGE_OPTS em Secção 4.6, “Configuração do devscripts e adicionar as linhas "tar-ignore=…" no ficheiro debian/source/local-options para cada pacote.

O problema do conteúdo estranho na segunda compilação pode ser evitado ao restaurar a árvore fonte. Isto é feito ao cometer a árvore fonte para o repositório Git antes da primeira compilação.

Você pode restaurar a árvore fonte antes da segunda compilação de pacote. Por exemplo:

[debhello] $ git reset --hard
[debhello] $ git clean -dfx

Isto funciona porque o comando dpkg-source ignora os conteúdos dos ficheiros VCS típicos na árvore fonte, como especificado pela definição DEBUILD_DPKG_BUILDPACKAGE_OPTS em Secção 4.6, “Configuração do devscripts”.

[Dica]Dica

Se a árvore fonte não for gerida por um VCS, corra "git init; git add -A .; git commit" antes da primeira compilação.