Quando vamos explicar um pouco sobre FreeBSD a primeira coisa que mencionamos é a coleção de PORTS e a facilidade que a mesma proporciona para a instalação de SOFTWARES suportados pelo sistema. Hoje o sistema possui 16435 aplicações portadas e 25.6% destas aplicações não tem mantenedores, ou dependem da atenção de algumas pessoas para serem atualizadas e mantidas funcionais. Neste 25.6%(4208) de PORTS sem mantenedores, pode ser que algum deles você use diariamente e desta forma você poderia mantê-lo em suas horas de folga. Hoje existem várias ferramentas e formas de você contribuir com o projeto FreeBSD, documentação é a via mais fácil de ajudar o projeto, mas manter um PORT é algo extremamente gratificante, doando um pouco do seu tempo você pode atualizar e testar aquele PORT que está quebrado ou precisando de um pequeno remendo.
Neste artigo, vou mostrar como ajudar a vida dos novos PORTERS a manter está estrutura atualizada e funcional.
As principais ferramentas que você pode ter em sua máquina para manter e testar um PORT são misc/tinderbox, devel/porttools, devel/portlint e o próprio CVS. Onde podemos iniciar a busca dos PORTS órfãos? Você pode encontrar informacões sobre esses PORTS em diversos lugares, alguns deles podem ser visto em: PortsCout Portsmon Antes de doar seu precioso tempo para o projeto FreeBSD, verifique se já não existe alguém cuidando de determinado PORT, pode ser que está pessoa esteja precisando de ajuda para finalizá-lo, desta forma você pode focar suas energias e adotar outro SOFTWARE.
Verifique antes se já não existe um PR aberto para este PORT: PR-SUMMARY
Uma ferramenta essencial para manipularmos os PORTS é o software CVS. Inicialmente crie um diretório onde você irá trabalhar com o PORT que você quer adotar. reloaded# mkdir /home/ports ; cd /home/ports
Agora vamos buscar a última versão que está no repositório do sistema reloaded# cvs -d
Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo
:/home/ncvs co mailrep reloaded# cd mailrep Inicie investigando a última versão do PORT, verifique as dependências que este software pode causar em outros PORTS, verifique a estabilidade desta nova versão, não queremos um software com problemas na coleção de PORTS. Inicie seu trabalho dentro do Makefile, para entender o funcionamento de cada variável experimente olhar como as pessoas fizeram os outros PORTS. Verifique também dentro de ports/Mk os arquivos com as opções que você pode usar dentro do seu Makefile, afinal, ninguém falou que manter um PORT funcional e atualizado é uma tarefa fácil. Após as modificacões necessárias para o UPDATE de versão do SOFTWARE, vamos atualizar o arquivo distfile, onde contém algumas informacões como chave md5 do software e o tamanho do mesmo. reloaded# make makesum Iremos iniciar os primeiros testes com o devel/portlint. O portlint é mantido por marcus@FreeBSD e está na versão 2.9.2. O portlint verifica através de expressões-regulares alguns índices significativos dentro dos arquivos Makefiles e pkg-plist complexos, através desta checagem, você pode construir um PORT que dará menos trabalho aos committers.
Usando o portlint. Dentro do diretório do PORT modificado, use: reloaded# portlint -A
A opção “-A” vai executar todas as checagens possíveis dentro das opções do portlint. Geralmente o portlint faz algumas sugestões de syntax para os arquivos Makefile, pkg-desc e pkg-plist, é importante alguma atenção para ter um PORT funcional. O portlint emite dois tipos de alertas WARN e FATAL. FATAL: Este erro sugere que existe algum problema grave dentro do diretório do PORT, este tipo de erro deve ser evitado antes de submeter o PORT aos committers.
WARN: Sugere algum reparo dentro do PORT, geralmente em PORTS complexos o portlint pode ligeiramente se confundir com as suas verificações, é interessante que você analise cada opção e assuma/ignore a correção. Uma outra ferramente de extrema importância que deve ser usada é o devel/porttools. O porttools hoje se encontra na versão 0.77 e é mantido por sergei@FreeBSD. Uma opção importante do porttools é o “port test” ao qual é feito uma série de testes automatizados para verificar a construção, instalação e desinstalação do PORT. Uma ótima vantagem do porttools é que você consegue construir com grande consistência o arquivo pkg-plist, afinal não queremos nenhum resquício de software que estamos desinstalando em nosso sistema ou imagine você instalar uma biblioteca e os principais arquivos não são instalados. Algumas opções do porttools:
- port create: create a new port from a template - port diff: generate a diff against a previous version of the port - port fetch: fetch distfile(s) of a new version of the port - port help: display usage summary for port(1) commands - port submit: submit a PR with new port, or port change/update - port test: automate testing a new port or a port update Depois de testarmos e re-testarmos o PORT, vamos fazer um diff dos arquivos originais com a nossa atualização. Geralmente as pessoas fazem o diff de dois diretórios, mas porque não facilitar as coisas e fazer o diff do próprio CVS?
Vamos ver alguns comandos básicos do CVS. Para adicionar um arquivo reloaded# cvs add NOVO_ARQUIVO Para remover um arquivo reloaded# cvs rm VELHO_ARQUIVO Fazer um UPDATE, quem sabe alguem adicionou algo neste meio tempo. reloaded# cvs update Vamos fazer o diff reloaded# cvs diff -uN >../`basename ${PWD}`.diff Você pode submeter a sua atualização de várias formas: - porttools
- SEND-PR Web
- sysutils/gtk-send-pr
Antes de enviar um PR(Problem Report) leia os seguintes handbooks: Agora vamos imaginar que você tem um bom tempo, ou seu conhecimento em criar, atualizar e manter PORTS cresceu muito e você já está fazendo vários PORTS semanalmente. Como podemos automatizar estas tarefas, já que as mesmas consomem tempo e recursos computacionais. O committer marcus@FreeBSD criou um conjunto de scripts chamado de TINDERBOX para automatizar a tarefa de testar PORTS, todos os committers de PORTS sem excessões utilizam-se desta ferramenta para testar o grande número de atualizações e novos PORTS enviados diariamente. O TINDERBOX nada mais é do que um JAIL ou vários conectados a uma base de dados MYSQL ou PGSQL ao qual você instala e remove os PORTS como se estivesse com um FreeBSD sem nada instalado. Quais as vantagens de testar o PORT no TINDERBOX? Bem, você pode ter vários problemas de dependências ao qual não teria percebido sua existência em uma máquina de produção. Com o TINDERBOX você pode criar vários JAILS com series diferentes do FreeBSD e garantir que o seu PORT funcione no 4.X, 5.X, 6.X e 7-CURRENT. Ná própria página do marcus@FreeBSD ele mostra como fazer a instalação e como criar os JAILS para automatizar os testes com os PORTS. TINDERBOX README Contribua você também com o projeto FreeBSD, documentacão, ports, source ou um simples artigo pode ajudar na divulgacão e trazer novos adeptos ao sistema.
Porquê contribuir com os PORTS? Manter um PORT é uma tarefa gratificante, as pessoas reconhecem você, reconhecem a utilidade de instalar um SOFTWARE e o mesmo funcionar, a vantagem do FreeBSD para com outros sistemas está ai, vários testes e a garantia de que alguém ou várias pessoas atestaram o funcionamento de determinado PACOTE. Até o próximo artigo. Marcelo Araujo hoje mantêm 75 ports e contribui com tantos outros ao qual não pode manter. |