você está aqui: Home  → Arquivo de Mensagens

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



 

 

Veja a relação completa dos artigos de Breno Leitao

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script