Translation(s): English - Italiano - Português (Brasil)


Depois de baixar, modificar e construir um pacote Debian, você geralmente sente que poderia continuar fazendo isso, já que é tão fácil.

E é exatamente assim, mas mesmo que o Building Tutorial seja uma boa introdução à modificação de pacotes Debian, houve algumas coisas que foram deixadas de fora de propósito, para mantê-lo simples. Então, aqui você encontrará algumas dicas extras para aproveitar ao máximo algumas das muitas ferramentas do Debian.

Pacotes Úteis

Embora possam não ser dependências de construção, há vários pacotes úteis que qualquer pessoa interessada em ajudar no desenvolvimento do Debian deveria ter instalado:

E aqui está uma linha de comando útil para copiar e colar:

  apt install build-essential devscripts lintian diffutils patch patchutils quilt git dgit

Usando o changelog

O arquivo debian/changelog é um dos arquivos importantes no diretório debian. Vamos pegar uma entrada do changelog como exemplo:

control-center (1:2.8.1-3) unstable; urgency=low
 * debian/rules:
   - Corrected erroneous line responsible for not including the .desktop
     files (Closes: #274401)
 * debian/patches:
   - Suppressed 'Text Editor' in the "preferred applications" as it's useless
     with the new mime type system.
 -- Arnaud Patard <arnaud.patard@rtp-net.org>  Thu, 25 Nov 2004 21:16:04 +0100

Há muitas coisas a serem observadas nesta entrada: na primeira linha você tem o nome e a versão do pacote fonte, também a distribuição para a qual ele foi inicialmente carregado (instável) e o nível de urgência (isto é usado pelos bots Debian para determinar quando o pacote está pronto para entrar em testes).

Em seguida, temos uma lista com marcadores com os arquivos que foram alterados e um breve resumo dos motivos das alterações. Observe o 274401, ele é usado pelo bot de bugs do Debian para fechar bugs automaticamente.

Por fim, podemos ver o nome e email da última pessoa que alterou o pacote e a data em que foi alterado.

Agora, para editar o changelog, se você instalou devscripts você terá um comando bacana dch que preenche muitas dessas informações e abre seu editor preferido. Embora você possa editar tudo manualmente se quiser, recomendo usar dch.

Important: quando você começar a modificar um pacote, você desejará fazer uma nova versão dele, para poder diferenciá-lo do original. Então, na primeira vez que você estiver prestes a editar uma entrada do changelog, você deve fazer

  dch -i

Isso adicionará uma entrada totalmente nova, incrementando o número da versão e permitindo que você escreva quais arquivos você modificou. Depois disso, você sempre pode adicionar mais informações sobre suas alterações usando apenas dch.

Construindo o pacote fonte

Quando você faz debian/rules binary você apenas constrói o pacote binário, aquele que você deseja instalar em seu sistema. Mas em muitos casos você também deseja construir o pacote fonte (que na verdade é composto de três arquivos: package_version.orig.tar.gz, package_version.diff.gz e package_version.dsc).

Para fazer isso, existem muitas ferramentas. Aqui, usaremos o dpkg-buildpackage que vem com o pacote dpkg-dev (parte do build-essential).

Desde que você já tenha modificado o pacote e o changelog do pacote, você o construirá fazendo:

   dpkg-buildpackage -rfakeroot

(Existem muitas opções para passar para dpkg-buildpackage, -S por exemplo, irá apenas compilar o pacote fonte, -tc irá limpar os arquivos compilados após fazer o pacote, etc. Veja man dpkg-buildpackage para mais informações)

Depois de fazer isso, você encontrará um novo trio de arquivos em seu diretório pai, que terá quase o mesmo nome daqueles que você baixou, mas com uma alteração no número da versão.

Usando interdiff

Se você construiu um pacote, incrementou o número da versão no arquivo changelog e agora tem dois conjuntos de três arquivos (dois pacotes fonte), você pode reunir facilmente quais foram as mudanças entre as versões usando interdiff:

   interdiff -z pacote_oldversion.diff.gz pacote_newversion.diff.gz > seu.patch

Após executar este comando você pode inspecionar o conteúdo de your.patch, ele deve conter tudo o que você alterou no pacote. Se você está resolvendo um bug no Debian BTS, é isso que você deve enviar para o número do bug.

Observe que interdiff só faz sentido quando você não alterou a fonte upstream (isto é, package_version.orig.tar.gz deve ser o mesmo).

Usando lintian

Nem todos os pacotes Debian cumprem perfeitamente a política do Debian. Às vezes isso ocorre porque a política é atualizada rapidamente, às vezes é por falta de tempo do mantenedor, às vezes porque não é fácil para determinado software ser totalmente compatível.

De qualquer forma, essas ferramentas nos fornecem uma maneira fácil de encontrar problemas nos pacotes Debian. Usá-los é fácil: basta executá-los nos arquivos .diff.gz e .dsc do seu pacote fonte.

Dependendo do pacote, você poderá receber nenhuma mensagem, algumas mensagens ou muitas mensagens. Essas mensagens geralmente são breves e nem sempre você saberá o que significam, mas muitas vezes indicarão a parte problemática do pacote.

Claro, estas ferramentas são apenas uma ajuda, não um substituto para realmente ler a política do Debian.

Obtendo Ajuda

Se você ficar preso no que está fazendo, há muitos lugares onde você pode obter ajuda.


CategoryPackaging