ct

    Criando Patches

    Dicas do Guia do Hardware

    Por serem pequenos, os patches podem ser facilmente enviados via e-mail e são fáceis de auditar, pois verificar as poucas linhas alteradas, ao invés de ter que checar o código fonte completo. Enviar um patch pode ser a única forma de ter sua correção ou melhoria aceita. Nesta dica você vai aprender como criar seus próprios patches, que podem servir para aplicar correções em todo tipo de scripts, arquivos ou programas.Carlos E. Morimoto
    10/08/2005


    Por serem pequenos, os patches podem ser facilmente enviados via e-mail e são fáceis de auditar, pois verificar as poucas linhas alteradas, ao invés de ter que checar o código fonte completo. Enviar um patch pode ser a única forma de ter sua correção ou melhoria aceita.

    Vamos 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.



    » Gostou do texto? Veja nossos livros impressos

    ... ou use a busca para localizar outros artigos relacionados:

cb
Livros de Carlos E. Morimoto HOME