»

jun 24 2011

Imprimir Post

Colaborando com o desenvolvimento – Criando um patch (Correção/Melhoria)

Vamos aprender a criar um patch para o SmartRouter.

Podemos criar em qualquer distro um patch, somente temos que ter instalado a ferramenta de controle de versões GIT.

Vou usar como exemplo o ambiente de desenvolvimento do SmartRouter PROJECT, que ja possui a ferramenta instalada.

Vamos baixar a builroot completa, que contém todos os arquivos para criar uma iso nova.

cd /devel #Se você esta no ambiente de desenvolvimento SmartRouter
git clone git://smartrouter.git.sourceforge.net/gitroot/smartrouter/buildroot buildroot

Agora vamos setar o nosso nome e e-mail para permanecer a autoria em nome próprio do patch

smartrouter:/devel/buildroot# cd buildroot/
smartrouter:/devel/buildroot# git config --global user.name "fabiosammy" #altere para o seu nome de usuário no fórum, ou nome próprio, ou até mesmo ambos
smartrouter:/devel/buildroot# git config --global user.email fabiosammy@smartrouter.com.br #altere para o seu e-mail

Bem, agora temos que usar a ultima versão estável do sistema, para verificar as versões que podemos trabalhar, execute:

smartrouter:/devel/buildroot# git branch -a
* master
remotes/origin/Alpha-1.2
remotes/origin/BETA-1.1.2
remotes/origin/BETA-2.1
remotes/origin/BETA-2.2
remotes/origin/BETA2.0
remotes/origin/HEAD -> origin/master
remotes/origin/master

Bem, atualmente a ultima versão é a BETA-2.2, vamos ativar essa versão e trabalhar com ela:

smartrouter:/devel/buildroot# git branch BETA-2.2 remotes/origin/BETA-2.2
Branch BETA-2.2 set up to track remote branch BETA-2.2 from origin.
smartrouter:/devel/buildroot# git checkout BETA-2.2
Switched to branch 'BETA-2.2'
smartrouter:/devel/buildroot# git checkout -b make_patch
Switched to a new branch 'make_patch'

Eu criei uma nova forma de versão, o “make_patch”, sobre a versão BETA-2.2, agora podemos modificar os arquivos que acharmos necessários, ou criá-los. Eu vou utilizar como exemplo um bug conhecido da versão BETA-2.2 e reportado, que ainda não foi adicionado ao sistema, você pode verificar em: viewtopic.php?f=22&t=183#p572, e segue a correção em: viewtopic.php?f=22&t=183#p577

Verifique se você esta no branch make_patch:

smartrouter:/devel/buildroot2# git branch
 BETA-2.2
 * make_patch
 master

Eu estou, pois esta marcado com um asterisco o branch atual (*), mas caso você não esteja no branch make_patch, execute:

smartrouter:/devel/buildroot# git checkout make_patch

Então vamos editar o arquivo inetconf.cgi, que se encontra na pasta base/pkgsrc/webadmin/var/http/htdocs/cgi-bin/inetconf.cgi, o editor disponível no ambiente de desenvolvimento é o vi:

vi base/pkgsrc/webadmin/var/http/htdocs/cgi-bin/inetconf.cgi
<Realizar as modificações e sair do editor>
smartrouter:/devel/buildroot# git add .
smartrouter:/devel/buildroot# git commit -a -m "Bug fix webadmin"
smartrouter:/devel/buildroot# git show > patch_webadmin.diff

Pronto! Agora você já tem um patch de correção, e pode disponibilizar a nossa equipe, enviando o arquivo para webmaster@smartrouter.com.br, ou abrindo um tópico e postando o conteúdo do patch no fórum. Vamos verificar o conteúdo do nosso patch:

smartrouter:/devel/buildroot# cat patch_webadmin.diff
 commit 5f12b550c1b68946625fadc3ece9e02497531878
 Author: fabiosammy <fabiosammy@smartrouter.com.br>
 Date:   Fri Jun 24 17:41:13 2011 -0300

bugfix webadmin

diff --git a/base/pkgsrc/webadmin/var/http/htdocs/cgi-bin/inetconf.cgi b/base/pkgsrc/webadmin/var/http/htdocs/cgi-bin/inetconf.cgi
 index 39f8e82..4c09bee 100755
 --- a/base/pkgsrc/webadmin/var/http/htdocs/cgi-bin/inetconf.cgi
 +++ b/base/pkgsrc/webadmin/var/http/htdocs/cgi-bin/inetconf.cgi
 @@ -236,8 +236,8 @@
 show_form_D(){
 show_form_head
 add_title "DNS"
 form_info_item "$Afs $Ids" "" "$(input_text "DNS1" "${DNS1}" "20")"
 - form_info_item "$Afs $Ids" "" "$(input_text "DNS2" "${DNS2}" "20")"
 - form_info_item "$Afs $Ids" "" "$(input_text "DNS3" "${DNS3}" "20")"
 + form_info_item "$And $Ids" "" "$(input_text "DNS2" "${DNS2}" "20")"
 + form_info_item "$Ard $Ids" "" "$(input_text "DNS3" "${DNS3}" "20")"
 form_info_item "$Edn" "" "$(input_text "DOMAINNAME" "${DOMAINNAME}" "20")"
 show_form_end "DNS"
 }

Abraços pessoal!

Sobre o autor

fabiosammy

fabiosammy

Graduando pelo curso de Ciência da Computação na Unicentro. Cativado pela área de redes de computadores, música e ambientes UNIX.

Link permanente para este artigo: http://www.smartrouter.com.br/press/2011/06/24/colaborando-com-o-desenvolvimento-%e2%80%93-criando-um-patch-correcaomelhoria/

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *