Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
Gerenciando patches com quilt
Colaboração: Breno Leitao
Data de Publicação: 05 de fevereiro de 2008
Para quem não conhece, o quilt é um gerenciador de patches muito útil que apareceu dos scripts pessoais do Andrew Morton que ele publicava na LKML. O quilt tem se mostrado muito útil para quem trabalha com vários patches, e frequentemente precisa fazer malabarismo com eles.
O conceito básico por traz do quilt é que ele não é um gerenciador de configuração, mas um gerenciador de patches que tem a função de trabalhar em paralelo com o gerenciador de configuração. Com o quilt você tem uma pilha de patches, e trabalha com eles como se estivesse integrando e revertendo eles, mas localmente, não tendo nenhuma relação com o gerenciador de configuração. Uma vez que algum de seus patches ficam maduros para ser integrado, então você simplesmente retira ele da lista do quilt deixando ele na responsabilidade do gerenciador de configuração.
Uma forma muito útil de usar o quilt, e que eu particularmente utilizo muito, é na depuração de aplicativos complexos, como o kernel do Linux, por exemplo. Nessas aplicações é possível criar vários patches que adicionam um printk(), muda um lock, altera um registrador, etc. E quando o desenvolvedor chegar na alteração final, simplesmente reverte todos os outros patches inúties e manda para o gerenciador de configuração somente o patch efetivo. Note que também é bem útil para você testar combinações de patches, por exemplo, com o quilt fica miuto fácil testar patches combinados, como por exemplo, testar um patch que altera um spinlock, com aquele patch que adiciona printk() em todas as entradas e saidas de funções. Abaixo segue um explicação resumida de como utilizar o quilt.
A utilização do quilt é muito simples, e para instalá-lo no sistema operacional Ubuntu simplesmente digite:
sudo apt-get install quilt
Para utilizar o quilt, você sempre seguirá o seguinte padrão de comando:
# quilt < comando>
Para criar um patch digite, quilt new < nome do patch>, e após isso
já pode trabalhar no seu patch. O comando quilt series, mostra todos os
patches que você tem, por exexemplo:
breno@cafe:~/Devel/linux/linux-2.6$ quilt new patch1 Patch patch1 is now on top breno@cafe:~/Devel/linux/linux-2.6$ quilt series patch1 leitao printks
Uma vez que você cria o patch, você precisa especificar os arquivos que vão
integrar aquele patch, ou seja, os arquivos que você irá modificar e quer
vê-los incluido no patch. Para ver o seu patch no formato do diff universal,
basta digitar quilt diff. Segue um exemplo:
breno@cafe:~/Devel/linux/linux-2.6$ quilt add drivers/net/e1000/e1000_main.c File drivers/net/e1000/e1000_main.c added to patch patch1 breno@cafe:~/Devel/linux/linux-2.6$ vim drivers/net/e1000/e1000_main.c breno@cafe:~/Devel/linux/linux-2.6$ quilt diff Index: linux-2.6/drivers/net/e1000/e1000_main.c =================================================================== --- linux-2.6.orig/drivers/net/e1000/e1000_main.c 2008-02-01 10:15:19.000000000 -0200 +++ linux-2.6/drivers/net/e1000/e1000_main.c 2008-02-01 10:15:50.000000000 -0200
-5305,6 +5305,7
struct net_device *netdev = pci_get_drvdata(pdev); struct e1000_adapter *adapter = netdev->priv; + printk("Resuming...\n"); e1000_init_manageability(adapter); if (netif_running(netdev)) {
Para remover esse patch, basta digitar quilt pop, e para adicionar novamente
quilt push. Por exemplo:
breno@cafe:~/Devel/linux/linux-2.6$ quilt pop Removing patch patch1 Restoring drivers/net/e1000/e1000_main.c
Porém note que ainda o patch está lá, e para readicionar basta digitar,
quilt push patch1:
breno@cafe:~/Devel/linux/linux-2.6$ quilt push patch1 Applying patch patch1 patching file drivers/net/e1000/e1000_main.c Now at patch patch1 breno@cafe:~/Devel/linux/linux-2.6$ quilt applied patch1
Essa é uma pequena introdução a essa excelente ferramenta que ajuda em muito a maioria de nós, desenvolvedores que ficam loucos com tantos patches. :-)
Breno Leitão, formado pela Universidade de São Paulo em Ciência de Computação, atualmente mestrando pela Universidade de Campinas, e funcionário do LTC Brasil, onde trabalha como Kernel Hacker.
Mythbuster recomenda Ubuntu ao Vista
Fonte: Notícias Linux
Jamie Hyneman, famoso pelo programa de TV MythBusters, recomenda o Ubuntu linux como solução para quem não aguenta o Windows Vista.
http://www.popularmechanics.com/technology/upgrade/4243994.html?page=3
Fonte: http://www.digg.com/linux_unix/Mythbuster_Jamie_recommends_Ubuntu_over_Vista_s_bloat
Comente: http://www.noticiaslinux.com.br/nl1201656592.html#comentarios
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.




