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!