Índice das dicas
Criando Patches
Criado 13/abr/2006 às 16h35 por Carlos E. Morimoto
0Vamos a um exemplo rápido de como criar um patch para um shell script simples, que instala o Acrobat Reader no Debian:
apt-get install acroread
apt-get install mozilla-acroread
ln -sf /usr/lib/Adobe/Acrobat7.0/browser/intellinux/nppdf.so /usr/lib/firefox/plugins/nppdf.so
Imagine que o script faz parte de um programam maior, que está localizado na pasta programa/, dentro do seu diretório home, junto com outros arquivos. O arquivo do script por coincidência se chama "script".
O script original não funciona corretamente e você descobriu que o programa são dois erros simples nas localizações das pastas. Depois das modificações, o script ficou:
apt-get install acroread
apt-get install mozilla-acroread
ln -sf /usr/lib/Adobe/Acrobat7.0/Browser/intellinux/nppdf.so /usr/lib/mozilla-firefox/plugins/nppdf.so
Você precisa agora gerar um patch e enviá-lo para o mantenedor do programa, para que ele possa aplicar sua correção. Para isso, você vai precisar de duas pastas, uma contendo o código fonte do programa original e outra contendo o código fonte depois de suas alterações. Não importa se você alterou apenas um arquivo ou se fez alterações em vários. O patch conterá todas as diferenças entre as duas pastas.
Imagine que a pasta original se chama "programa" e a pasta com as modificações se chama "programa-mod". O comando para gerar o patch seria:
$ diff -uNr programa programa-mod/
diff -uNr programa/script programa-mod/script
--- programa/script 2005-08-09 11:38:55.000000000 -0300
+++ programa-mod/script 2005-08-09 11:38:47.000000000 -0300
@@ -1,4 +1,4 @@
apt-get install acroread
apt-get install mozilla-acroread
-ln -sf /usr/lib/Adobe/Acrobat7.0/browser/intellinux/nppdf.so
-/usr/lib/firefox/plugins/nppdf.so
+ln -sf /usr/lib/Adobe/Acrobat7.0/Browser/intellinux/nppdf.so
+/usr/lib/mozilla-firefox/plugins/nppdf
Veja que ele devolve as diferenças diretamente na tela. Para que ele gere o patch, direcione a saída do comando para um arquivo:
$ diff -uNr programa programa-mod/ > patch
É isso aí :) Seu primeiro patch está pronto, espero que seja o primeiro de muitos outros. Basta envia-lo por e-mail para o mantenedor do programa, explicando o que foi feito.
Para aplicar seu patch, o mantenedor acessaria a pasta com o fonte do programa (a pasta programa/ no exemplo) e, dentro dela, usaria o comando:
$ patch -p1 < /algum_lugar/patch
Neste caso usei como exemplo um shell script, mas os patches podem ser criados a partir de código fonte em qualquer linguagem, ou até mesmo a partir de arquivos binários.
Sem comentáriosPor Carlos E. Morimoto. Revisado 13/abr/2006 às 16h35

Comentários