De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
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á.