Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
Criando Patches
Colaboração: Carlos E. Morimoto
Data de Publicação: 21 de Agosto de 2005
Os patches são largamente usados não apenas no desenvolvimento do Kernel, mas em praticamente todos os projetos open-source. Um patch nada mais é do que um arquivo de texto contendo as diferenças entre dois arquivos, uma forma forma prática de enviar correções e modificações para os mantenedores dos projetos.
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.so
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.
Cursos intensivos do Guia do Hardware.NET em Porto Alegre
A escola Guia do Hardware.NET, em Porto Alegre-RS está realizando este mês, pela primeira vez, seus cursos intensivos em semanas consecutivas. É uma ótima oportunidade para quem quer fazer os cursos, mas mora em outra cidade, ou estado.
O curso "Linux Primeiros Passos", ministrado por Jonathan Meller cobre instalação, configuração e uso do sistema, servindo como um bom ponto de partida para quem tem apenas conhecimentos básicos e quer se aprofundar.
Em seguida vem o curso 'Redes e Servidores Linux', ministrado por Carlos E. Morimoto, é focado na instalação de redes entre máquinas Linux e Windows e configuração de servidores Linux, abordando a configuração de servidores LAMP, Squid, Samba, NFS, FTP e DNS, acesso remoto com o SSH, VNC, FreeNX e XDMCP, terminais leves com o LTSP, servidores de e-mail e firewall.
Os cursos começam dia 22 de agosto. Mais informações a respeito dos cursos e tópicos abordados no http://guiadohardware.net/cursos. Até lá.
Veja a relação completa dos artigos de Carlos E. Morimoto
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.
Avalie esta dica
Opinião dos Leitores
08 Out 2006, 11:23
06 Set 2006, 21:40
.....
3 - Make sure a symbolic link to the realplay script is in your PATH












