                           Contribuindo com o FreeBSD

  Jordan Hubbard

  Sam Lawrance

  Mark Linimon

   Revisao: ba16499958

   FreeBSD is a registered trademark of the FreeBSD Foundation.

   IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical
   and Electronics Engineers, Inc. in the United States.

   Many of the designations used by manufacturers and sellers to distinguish
   their products are claimed as trademarks. Where those designations appear
   in this document, and the FreeBSD Project was aware of the trademark
   claim, the designations have been followed by the "(TM)" or the "(R)"
   symbol.

   2020-08-05 21:51:05 +0000 por Danilo G. Baio.
   Resumo

   Este artigo descreve maneiras diferentes sobre como um individuo ou
   organizac,ao pode contribuir com o Projeto FreeBSD.

   [ Documento HTML em partes / Documento HTML completo ]

     ----------------------------------------------------------------------

   Indice

   1. O que e necessario

   2. Como Contribuir

   3. Contribuindo com a colec,ao de ports

   4. Comec,ando em outras areas

   Indice Remissivo

   Entao voce quer contribuir com o FreeBSD? Isso e otimo! O FreeBSD depende
   das contribuic,oes da sua base de usuarios para sobreviver. Suas
   contribuic,oes nao sao apenas apreciadas, elas sao vitais para que o
   FreeBSD continue crescendo.

   Um grande e crescente numero de contribuidores internacionais, de uma
   grande variedade de idade e areas de conhecimento tecnico, desenvolvem o
   FreeBSD. Sempre existe mais trabalho a ser feito do que pessoas
   disponiveis para realiza-lo, e mais ajuda e sempre bem vinda.

   Como um voluntario, o que voce pode fazer so e limitado pelo que voce quer
   fazer. Entretanto, o que lhe pedimos e que esteja ciente a respeito do que
   outros membros da comunidade FreeBSD esperara de voce. Voce pode querer
   levar isso em considerac,ao antes de decidir se voluntariar.

   O Projeto FreeBSD e responsavel por um ambiente completo de sistema
   operacional, em vez de apenas um kernel ou alguns utilitarios dispersos.
   Assim sendo, nossa lista TODO passa por uma grande variedade de tarefas:
   da documentac,ao do sistema, testes de versao beta e apresentac,ao, ao
   instalador do sistema e outros tipos altamente especializados de
   desenvolvimento do kernel. Pessoas de qualquer nivel de conhecimento, em
   quase qualquer area, quase que certamente podera ajudar no projeto.

   Entidades comerciais engajadas em iniciativas relacionadas ao FreeBSD
   tambem sao encorajadas a entrar em contato conosco. Voce precisa de uma
   extensao especial para fazer seu produto funcionar? Voce vai nos encontrar
   receptivos `as suas solicitac,oes, considerando que nao sejam muito
   estranhas. Esta trabalhando em um produto de valor adicionado? Por favor
   nos informe! Podemos ser capazes de trabalhar cooperativamente em algum
   aspecto dele. O mundo do software livre esta desafiando muitas premissas
   sobre como um software e desenvolvido, vendido e mantido, e nos pedimos
   que voce pelo de uma segunda olhada.

1. O que e necessario

   A lista de tarefas e sub-projetos a seguir representa algo como uma
   amalgama de varias listas de TODO e outras solicitac,oes.

  1.1. Tarefas em execuc,ao por nao-programadores

   Muitas pessoas que estao envolvidas com o FreeBSD nao sao programadores. O
   Projeto inclui escritores de documentac,ao, Web designers, e pessoas de
   suporte. Todas estas pessoas contribuem investindo tempo e sua vontade de
   aprender.

    1. Leia o FAQ e Handbook periodicamente. Se algo estiver explicado de
       forma pobre, ambigua, desatualizada ou incorreta, nos comunique.
       Melhor ainda, envie-nos uma versao ajustada (O formato Docbook nao e
       dificil de aprender, mas nao existem objec,oes em relac,ao ao envio de
       material no formato ASCII).

    2. Ajude a traduzir a documentac,ao do FreeBSD para a sua linguagem
       nativa. Se a documentac,ao ja existe na sua lingua, voce pode ajudar a
       traduzir documentos adicionais ou verificar se as traduc,oes estao
       atualizadas e corretas. Primeiro de uma olhada no FAQ de Traduc,oes
       contido no Manual de Documentac,ao do Projeto FreeBSD. Voce nao estara
       se comprometendo a traduzir toda a documentac,ao do FreeBSD fazendo
       isto - como um voluntario, voce pode fazer tantas quantas traduc,oes
       desejar. Uma vez que alguem comec,a a traduzir, outros se unem ao
       esforc,o. Se voce tem tempo ou energia para traduzir apenas uma parte
       da documentac,ao, por favor traduza as instruc,oes de instalac,ao.

    3. Leia a lista de discussao para perguntas gerais sobre o FreeBSD
       ocasionalmente (ou regularmente se possivel). Pode ser muito
       recompensador compartilhar a sua experiencia e ajudar outras pessoas a
       resolverem seus problemas; As vezes voce podera ate aprender algo
       novo! Estes foruns tambem podem ser uma fonte de ideias de coisas a
       serem melhoradas.

  1.2. Tarefas em execuc,ao por programadores

   A maioria das tarefas listadas aqui requerem um investimento consideravel
   de tempo ou conhecimento profundo do kernel do FreeBSD; ou, ambos.
   Entretanto, tambem existem muitas tarefas uteis que sao apropriadas para
   os "hackers de final de semana".

    1. Se voce executa o FreeBSD-CURRENT e possui uma boa conexao com a
       Internet, existe uma maquina current.FreeBSD.org a qual compila uma
       release completa uma vez por dia - de vez em quando, tente instalar
       uma destas versoes e informe quaisquer problemas no processo.

    2. Leia a Lista de discussao de relatorios de problemas do FreeBSD.
       Talvez exista um problema que voce possa comentar construtivamente ou
       existam correc,oes que voce possa testar. Ou voce pode ate consertar
       um dos problemas por conta propria.

    3. Se voce souber de qualquer problema que tenha sido corrigido com
       sucesso no -CURRENT e cuja correc,ao nao tenha sido aplicada ao
       -STABLE apos um intervalo razoavel de tempo (normalmente algumas
       semanas), envie ao committer um lembrete educado.

    4. Mova as contribuic,oes de software para src/contrib na arvore do
       codigo fonte.

    5. Tenha certeza que o codigo disponivel em src/contrib esta atualizado.

    6. Compile a arvore de codigo fonte (ou apenas parte dela) com avisos
       extras ativados e limpe-os depois. Uma lista de avisos de compilac,ao
       tambem pode ser encontrada em nosso CI selecionando uma compilac,ao e
       verificando "LLVM/Clang Warnings".

    7. Corrija os alertas existentes para os ports que ainda fazem coisas
       ultrapassadas tais como utilizar gets() ou incluir malloc.h.

    8. Se voce contribuiu com algum dos ports, e teve que fazer alguma
       mudanc,a especifica para o FreeBSD, envie suas correc,oes de volta aos
       autores originais (isto tornara sua vida mais facil quando eles
       lanc,arem a proxima versao).

    9. Consiga copias de padroes formais tais como o POSIX(R). Compare o
       comportamento do FreeBSD `aquele requerido pelo padrao. Se o
       comportamento diferir, particularmente em pontos sutis ou obscuros da
       especificac,ao, envie-nos um PR sobre ele. Se voce for capaz, descubra
       como corrigi-lo e inclua um patch em seu PR. Se voce acredita que o
       padrao esta errado, pec,a ao comite de padroes que considere a
       pergunta.

   10. Sugira novas tarefas para esta lista!

  1.3. Trabalhe no banco de dados de PR (relatorio de problemas)

   A Lista de PRs do FreeBSD mostra todos os relatorios de problemas ativos
   no momento e os pedidos de melhoria que foram submetidos pelos usuarios do
   FreeBSD. O banco de dados inclui tarefas para programadores e para
   nao-programadores. Consulte os PRs abertos, e veja se algum deles e de seu
   interesse. Alguns deles podem ser tarefas muito simples que necessitam
   apenas que um par extra de olhos olhe para eles e confirme que a correc,ao
   proposta funciona. Outros podem ser muito mais complexos, ou podem nem ter
   vindo com uma correc,ao.

   Comece com os PRs que ainda nao foram atribuidos a ninguem. Se um PR
   estiver atribuido a outra pessoa, mas se parecer com algo que voce possa
   cuidar, envie um e-mail para a pessoa encarregada do mesmo e pergunte se
   voce pode trabalhar nele - ele pode ja ter um patch pronto para ser
   testado, ou voce pode discutir novas ideias com ele.

  1.4. Tarefas em andamento relacionadas a colec,ao de Ports

   A colec,ao de Ports e um trabalho permanente em andamento. Queremos
   fornecer aos nossos usuarios um repositorio de software de terceiros facil
   de usar, atualizado e de alta qualidade. Precisamos que as pessoas doem
   parte de seu tempo e esforc,o para nos ajudar a alcanc,ar esse objetivo.

   Qualquer um pode se envolver e existem muitas maneiras diferentes de fazer
   isso. Contribuir para a colec,ao de ports e uma excelente maneira de
   ajudar "a devolver algo" ao projeto. Se voce esta procurando um papel
   continuo ou um desafio divertido para um dia chuvoso, nos adorariamos ter
   a sua ajuda!

   Existem varias maneiras faceis de contribuir para manter a arvore de ports
   atualizada e em boas condic,oes de funcionamento:

     * Encontre algum software legal ou util e crie um port para ele.

     * Existe um grande numero de ports que nao possuem nenhum mantenedor.
       Torne-se um mantenedor e adote um port.

     * Se voce criou ou adotou um port, esteja ciente do que voce precisa
       fazer como mantenedor.

     * Quando estiver procurando um desafio voce podera consertar um bug ou
       um port quebrado.

  1.5. Escolha um dos itens da "pagina de ideias"

   A lista de projetos do FreeBSD e de ideias para voluntarios tambem esta
   disponivel para as pessoas dispostas a contribuir com o projeto FreeBSD.
   Esta lista e atualizada regularmente e contem itens tanto para
   programadores e como para nao programadores e traz ainda informac,oes
   sobre cada projeto .

2. Como Contribuir

   Contribuic,oes para o sistema geralmente se enquadram em uma das 5
   categorias seguintes:

  2.1. Relatorios de Bugs e Comentarios Gerais

   Uma ideia ou sugestao tecnica de interesse geral devera ser enviada para a
   Lista de discussao de assuntos tecnicos do FreeBSD. Da mesma forma,
   pessoas com este tipo de interesse (e tolerancia para um alto volume de
   mensagens!) poderao assinar a Lista de discussao de assuntos tecnicos do
   FreeBSD. Veja o Handbook do FreeBSD para mais informac,oes sobre esta e
   outras listas.

   Se voce encontrar um bug ou estiver enviando uma mudanc,a especifica, por
   favor relate-o usando o relatorio de envio de bug. Tente preencher cada
   campo com do relato de bug. A nao ser que exceda 65KB, inclua qualquer
   correc,ao diretamente no relatorio. Se o patch e apropriado para ser
   aplicado na arvore do codigo fonte coloque [PATCH] no resumo do relatorio.
   Ao incluir patches, nao use copiar-e-colar, pois o copiar-e-colar
   transforma tabs em espac,os e os torna inuteis. Quando os patches sao
   muito maiores que 20KB, considere comprimi-los (por exemplo, com gzip(1)
   ou bzip2(1)) antes de fazer o envio.

   Apos preencher o relatorio, voce recebera a confirmac,ao com o numero de
   rastreamento. Guarde este numero para que voce possa nos atualizar com
   detalhes sobre do problema.

   Veja tambem este artigo sobre como escrever bons relatorios de problemas.

  2.2. Mudanc,as na Documentac,ao

   Mudanc,as na documentac,ao sao supervisionadas pela lista de documentac,ao
   do projeto FreeBSD. Por favor veja o Manual do Projeto de Documentac,ao do
   FreeBSD para instruc,oes completas. Envie contribuic,oes e mudanc,as
   (mesmo as pequenas sao bem vindas!) utilizando o mesmo metodo de qualquer
   outro relatorio de bug.

  2.3. Mudanc,as no Codigo Fonte Existente

   Um acrescimo ou mudanc,a em um codigo fonte existe e um tema um pouco
   complicado e depende muito de como voce esta desatualizado com o estado
   atual do desenvolvimento do FreeBSD. Existe uma release especial do
   FreeBSD em andamento conhecida como "FreeBSD-CURRENT" que e
   disponibilizada de varias maneiras para conveniencia dos desenvolvedores
   que trabalham ativamente no sistema. Veja o Handbook do FreeBSD para mais
   informac,ao sobre como obter e usar o FreeBSD-CURRENT.

   Trabalhar com versoes antigas do codigo, infelizmente, muitas vezes
   significa que as suas alterac,oes serao demasiadamente obsoletas ou muito
   divergentes para possibilitar uma facil re-integrac,ao ao FreeBSD. As
   possibilidades de que isso ocorra podem ser minimizadas um pouco atraves
   da sua inscric,ao na lista de distribuic,ao de comunicados oficiais do
   projeto FreeBSD e na lista de discussao do FreeBSD-CURRENT, nas quais as
   discussoes sobre o estado atual do sistema ocorrem.

   Supondo que voce consiga obter acesso `a uma versao razoavelmente
   atualizada do codigo fonte do sistema para basear as suas alterac,oes, o
   proximo passo e produzir um conjunto de diffs para enviar aos mantenedores
   do FreeBSD. Isto e feito com o comando diff(1).

   O formato preferido do diff(1) para o envio de um patch, e o formato de
   saida unificada gerado pelo comando diff -u.

 % diff -u oldfile newfile

   ou

 % diff -u -r -N olddir newdir

   devera gerar um conjunto de diffs unificados para o arquivo de origem
   informado ou para a hierarquia de diretorios.

   Consulte o manual do diff(1) para maiores informac,oes.

   Uma vez que voce tenha o conjunto de diffs (os quais voce pode testar com
   o comando patch(1)), voce deve submete-lo para inclusao no FreeBSD por
   meio de um relatorio de bug. Voce nao deve enviar os diffs para a lista de
   discussao de assuntos tecnicos do FreeBSD ou eles irao se perder!
   Agradecemos imensamente a sua submissao (este e um projeto voluntario!);
   Devido ao alto volume de trabalho, nos podemos nao ser capazes de
   resolve-lo imediatamente, mas ele permanecera em nosso banco de dados ate
   que o fac,amos. Marque a sua submissao incluindo a palavra [PATCH] na
   sinopse do relatorio.

   Se voce achar adequado (por ex. voce adicionou, deletou ou renomeou
   arquivos), agrupe as suas mudanc,as em um arquivo tar. Arquivos criados
   com o shar(1) tambem sao bem vindos.

   Se as suas mudanc,as sao de uma natureza potencialmente sensivel, por
   exemplo, se voce nao tiver certeza sobre os problemas de direitos autorais
   que regerao sua distribuic,ao no futuro, envie-as para o Core Team
   <core@FreeBSD.org> ao inves de submete-las por meio de um relatorio de
   bug. O FreeBSD Core Team <core@FreeBSD.org> e formado por um grupo muito
   pequeno de pessoas as quais cuidam de muitas das tarefas diarias de
   administrac,ao do projeto FreeBSD. Observe que este grupo tambem e muito
   ocupado e portanto voce so deve enviar um e-mail para eles se for
   realmente necessario.

   Por favor, consulte os manuais intro(9) e style(9) para algumas
   informac,oes sobre estilo de codificac,ao. Nos apreciariamos se voce
   estivesse ao menos ciente destas informac,oes antes de submeter o seu
   codigo.

  2.4. Codigo novo ou pacotes de maior valor agregado

   No caso de uma contribuic,ao significativa de um trabalho de grande porte,
   ou a adic,ao de uma nova caracteristica importante ao FreeBSD, torna-se
   quase sempre necessario que se envie as alterac,oes em um arquivo tar ou
   entao que se fac,a o upload das mesmas para um servidor WWW ou FTP para
   que as outras pessoas possam acessa-las. Se voce nao possui acesso a um
   servidor WWW ou FTP, pergunte em uma lista de discussao apropriada do
   FreeBSD se alguem pode hospedar essas alterac,oes para voce.

   Quando se trabalha com grandes quantidades de codigo, o sensivel assunto
   de direitos autorais invariavelmente vem a tona. O Projeto FreeBSD prefere
   licenc,as de software livre tais como BSD ou ISC. Licenc,as copyleft, como
   a GPLv2, `as vezes sao permitidas. A lista completa pode ser encontrada na
   pagina sobre a politica de licenciamento do core team.

  2.5. Dinheiro ou Hardware

   Nos ficamos sempre muito felizes em aceitar doac,oes para agregar a causa
   do Projeto FreeBSD, em um esforc,o voluntario como o nosso, um pouco pode
   significar muito! Doac,oes de hardware tambem sao muito importantes para
   expandir a nossa lista de perifericos suportados, uma vez que normalmente
   nao temos recursos para comprar estes itens nos mesmos.

    2.5.1. Doando Dinheiro

   A Fundac,ao FreeBSD e uma entidade sem fins lucrativos e isenta de
   impostos, estabelecida com o objetivo de promover os objetivos do Projeto
   FreeBSD. Como uma entidade 501(c)3, a fundac,ao e isenta de recolher as
   taxas do governo federal, bem como as do Estado do Colorado. As doac,oes
   para uma entidade isenta de impostos sao frequentemente dedutiveis dos
   impostos federais.

   As doac,oes podem ser enviadas atraves de cheques para:

       The FreeBSD Foundation
       P.O. Box 20247,
       Boulder,
       CO 80308
       USA
     

   A Fundac,ao FreeBSD tambem pode aceitar doac,oes online atraves de varias
   opc,oes de pagamento.

   Maiores informac,oes sobre a Fundac,ao FreeBSD podem ser obtidas no
   documento A Fundac,ao FreeBSD - Uma introduc,ao. Para contatar a Fundac,ao
   por e-mail, escreva para <info@FreeBSDFoundation.org>.

    2.5.2. Doando Hardware

   O projeto FreeBSD aceita alegremente doac,oes de hardware para os quais
   pode encontrar bom uso. Se voce estiver interessado em doar componentes de
   hardware, por favor contate o Escritorio de Relacionamento com Doadores.

3. Contribuindo com a colec,ao de ports

  3.1. Adotando um port nao mantido

    3.1.1. Escolhendo um port nao mantido

   Assumir a manutenc,ao de um port sem mantenedor e uma otima maneira de se
   envolver. Os ports sem mantenedor so sao atualizados e corrigidos quando
   alguem se oferece para trabalhar neles. Ha um grande numero de ports nao
   mantidos. E uma boa ideia comec,ar com a adoc,ao de uma port que voce usa
   regularmente.

   Os ports sem um responsavel tem o seu MAINTAINER configurado como
   ports@FreeBSD.org. Uma lista com todos os ports nesta situac,ao, bem como
   os seus erros atuais e os seus relatorios de problemas pode ser
   visualizada no Sistema de Monitorac,ao da colec,ao de ports do FreeBSD.

   Alguns ports afetam um grande numero de outros devido a dependencias e
   relacionamentos de ports escravos. Geralmente, esperamos que as pessoas
   tenham alguma experiencia antes de se voluntariarem para manter tais
   ports.

   Voce pode verificar se um port tem ou nao dependencias ou se outros ports
   dependem dele consultando o indice mestre de ports chamado INDEX. (O nome
   do arquivo varia de acordo com a versao do FreeBSD; por exemplo, INDEX-8.)
   Alguns ports tem dependencias condicionais que nao estao incluidas na
   construc,ao do INDEX padrao. Esperamos que voce seja capaz de reconhecer
   estes ports atraves da analise do arquivo Makefile de outros ports.

    3.1.2. Como adotar o port

   Primeiro, certifique-se de entender quais serao as suas responsabilidades
   de como mantenedor. Leia tambem o Porter's Handbook. Por favor, nao se
   comprometa com mais do que voce acha que pode lidar sem se sobrecarregar.

   Voce pode solicitar para se tornar o responsavel pela manutenc,ao de
   qualquer port que nao esteja sendo mantido por outra pessoa assim que
   desejar. Basta definir o parametro MAINTAINER para o seu proprio enderec,o
   de e-mail e enviar um PR (Relatorio de Problemas) com a alterac,ao. Se o
   port tiver erros de compilac,ao ou precisar de atualizac,ao, voce pode
   aproveitar para incluir quaisquer outras alterac,oes que sejam necessarias
   neste mesmo PR. Isso ira acelerar o processo pois muitos committers nao
   estao dispostos a atribuir a responsabilidade de manutenc,ao de um port
   para alguem que nao tenha um historico conhecido com o FreeBSD. O envio de
   PRs (relatorios de problema) para corrigir erros de compilac,ao ou para
   atualizar um port e a melhor maneira de estabelecer este historico.

   Submeta o seu relatorio de problema na categoria ports e utilize a classe
   change-request. Um committer ira examinar o seu relatorio, confirmara as
   alterac,oes e, por fim, fechara o relatorio. As vezes, esse processo pode
   demorar um pouco (os committers tambem sao voluntarios).

  3.2. O desafio para os mantenedores de um port

   Esta sec,ao lhe dara uma ideia do motivo pelo qual os ports precisam ser
   mantidos e descreve as responsabilidades de um mantenedor de ports.

    3.2.1. Por que os ports requerem manutenc,ao

   Criar um port e uma tarefa eventual. Mas garantir que um port esteja
   sempre atualizado e que continue a ser compilado e executado corretamente
   requer um esforc,o de manutenc,ao continuo. Os mantenedores sao as pessoas
   que dedicam parte do seu tempo para atingir esses objetivos.

   O principal motivo pelo qual a colec,ao de ports precisa de manutenc,ao e
   o de trazer os mais recentes e o melhores softwares de terceiros para a
   comunidade FreeBSD. Um desafio adicional e manter os ports individuais
   funcionando dentro do framework da colec,ao de ports `a medida que ela
   evolui.

   Como mantenedor, voce precisara gerenciar os seguintes desafios:

     * Novas versoes e atualizac,oes de software. Novas versoes e
       atualizac,oes de software sao disponibilizadas o tempo todo para os
       aplicativos ja convertidos, e elas precisam ser incorporadas `a
       Colec,ao de Ports a fim de prover software atualizado.

     * Mudanc,as nas dependencias. Se forem feitas alterac,oes significativas
       nas dependencias do seu port, talvez seja necessario atualiza-las para
       que ele continue funcionando corretamente.

     * Mudanc,as que afetem os ports que dependem do seu. Se outros ports
       dependerem de um port que voce mantem, as mudanc,as no seu port podem
       requerer um alinhamento previo com outros mantenedores.

     * Interac,ao com outros usuarios, mantenedores e desenvolvedores. Parte
       de ser um mantenedor e assumir uma func,ao de suporte. Nao existe a
       expectativa de que voce oferec,a suporte de uma maneira geral (mas
       voce e bem vindo se quiser fazer isso). O que voce deve prover e um
       ponto de coordenac,ao para as questoes especificas do FreeBSD
       relacionadas aos seus ports.

     * Cac,a aos bugs. Um port pode ser afetado por bugs especificos do
       FreeBSD. Voce precisara investigar, encontrar e consertar estes bugs
       quando forem reportados. Testar meticulosamente um port para
       identificar todos os seus possiveis problemas antes que ele seja
       adicionado `a Colec,ao de Ports e ainda melhor.

     * Alterac,oes na infraestrutura e politica de ports. Ocasionalmente os
       sistemas utilizados para construir os ports e pacotes sao atualizados
       ou uma nova recomendac,ao que afeta a infraestrutura e realizada. Voce
       devera estar atento a estas mudanc,as caso seus ports sejam afetados e
       necessitem de atualizac,ao.

     * Mudanc,as no sistema base. O FreeBSD esta em constante
       desenvolvimento. Mudanc,as no software, bibliotecas, kernel ou ate
       mesmo mudanc,as de politicas podem resultar em necessidade de mudanc,a
       nos ports.

    3.2.2. Responsabilidades do mantenedor

      3.2.2.1. Manter seus ports atualizados

   Esta sec,ao descreve o processo a ser seguido para manter seus ports
   atualizados.

   Esta e uma visao geral. Mais informac,oes sobre a atualizac,ao de um port
   esta disponivel no Porter's Handbook.

    1. Preste atenc,ao `as atualizac,oes

       Monitorar os fabricantes upstream em relac,ao a liberac,ao de novas
       versoes, patches e correc,oes de seguranc,a para o software. Listas de
       discussao de anuncios ou paginas web de noticias sobre o software sao
       uteis para este proposito. Algumas vezes os usuarios entrarao em
       contato com voce perguntando quando seu port sera atualizado. Se voce
       estiver ocupado com outras atividades ou devido a qualquer outra razao
       nao puder realizar a atualizac,ao naquele momento, pergunte se o
       usuario pode te ajudar enviando uma atualizac,ao.

       Voce tambem pode receber emails automaticos do Verificador de Versoes
       de Ports do FreeBSD informando a voce que uma nova versao do disftile
       do seu port esta disponivel. Mais informac,oes sobre este sistema
       (incluindo como deixar de receber seus emails no futuro) serao
       enviadas na mensagem.

    2. Incorporar mudanc,as

       Quando estiverem disponives, incorpore as mudanc,as em seu port. Voce
       precisa ser capaz de gerar um patch entre o port original e o port
       atualizado.

    3. Revisao e teste

       Examine cuidadosamente e teste as suas mudanc,as:

          * Compile, instale e teste o seu port em todas plataformas e
            arquiteturas que voce puder. E comum um port funcionar em uma
            branch ou plataforma e falhar em outra.

          * Certifique-se de que as dependencias do seu port estao completas.
            A maneira recomendada de fazer isso e instalando seu proprio
            ports tinderbox. Consulte a sec,ao sobre recursos para mais
            informac,oes.

          * Verifique se a lista de componentes do pacote esta atualizada.
            Isto envolve adicionar novos arquivos e diretorios , bem como
            remover as entradas sem uso.

          * Verifique seu port usando o portlint(1) como um guia. Consulte a
            sec,ao sobre recursos para informac,oes importantes sobre o uso
            do portlint.

          * Considere se as mudanc,as no seu port podem fazer com que outros
            ports tenham problemas. Se este for o caso, coordene as mudanc,as
            com os mantenedores destes ports. Isto e especialmente importante
            se a sua atualizac,ao modifica a versao de uma biblioteca
            compartilhada; neste caso, os ports afetados precisarao obter no
            minimo um incremento no seu PORTREVISION para que eles possam ser
            atualizados automaticamente por ferramentas automatizadas como o
            portmaster ou o portupgrade(1).

    4. Envie as alterac,oes

       Submeta sua atualizac,ao enviando um relatorio de problema (PR) com
       uma explicac,ao das alterac,oes e um patch contendo as diferenc,as
       entre o port original e a versao atualizada. Por favor, consulte o
       artigo Escrevendo um Relatorio de Problema para o FreeBSD para mais
       informac,oes sobre como escrever um PR realmente bom.

  Nota:

       Por favor nao submeta um arquivo shar(1) do port inteiro, ao inves
       disso, utilize o comando diff(1) -ruN. Desta forma, os committers
       podem ver com mais facilidade exatamente quais alterac,oes estao sendo
       feitas. Consulte a sec,ao Upgrading do Porter's Handbook para maiores
       informac,oes.

    5. Aguarde

       Em algum momento, um commiter lidara com o seu PR. Isto pode levar
       alguns minutos ou pode levar semanas - portanto, seja paciente.

    6. De feedback

       Se um committer encontrar um problema nas suas alterac,oes, ele
       provavelmente o encaminhara de volta para voce. Uma resposta rapida a
       este contato ira ajuda-lo a ter o seu PR resolvido mais rapidamente. E
       muito importante manter o canal de comunicac,ao aberto para agilizar a
       resoluc,ao de qualquer eventual problema.

    7. E finalmente

       As suas alterac,oes serao incorporadas na arvore de codigo fonte e o
       seu port sera atualizado. O PR entao sera fechado pelo committer. E
       isso!

      3.2.2.2. Certifique-se de que seus ports continuem a ser compilados
      corretamente

   Esta sec,ao e sobre a descoberta e a soluc,ao de problemas que fazem seus
   ports deixarem de ser compilados corretamente.

   O projeto FreeBSD garante o funcionamento da colec,ao de Ports apenas na
   branch -STABLE. Teoricamente, voce deve sera capaz de garantir o
   funcionamento do port ao executa-lo na ultima release de cada branch(ja
   que nao se espera que as ABIs mudem), mas se voce puder executar a branch,
   sera ainda melhor.

   Como a maioria das instalac,oes do FreeBSD rodam em maquinas compativeis
   com o PC (o que e chamado de arquitetura i386), esperamos que voce
   mantenha o port funcionando nesta arquitetura. Nos preferimos que os ports
   tambem funcionem de forma nativa na arquitetura amd64. E completamente
   justo pedir ajuda caso voce nao tenha uma dessas maquinas para fazer seus
   testes.

  Nota:

   Os padroes usuais nas falhas para maquinas nao-x86 sao que os
   programadores originais assumiram que, por exemplo, os ponteiros sao ints,
   ou que um compilador gcc mais antigo seria utilizado. Cada vez mais, os
   autores de aplicativos estao retrabalhando o codigo das suas aplicac,oes
   para remover essas suposic,oes - mas se o autor nao estiver mantendo
   ativamente o codigo, talvez seja necessario que voce mesmo fac,a isso.

   Estas sao as tarefas que voce precisa executar para garantir que o seu
   port pode ser compilado:

    1. Preste atenc,ao para falhas de compilac,ao

       Confira o seu e-mail e busque por mensagens do pkg-fallout@FreeBSD.org
       e consulte o scanner de arquivos distfiles para verificar se algum dos
       ports que estao falhando na compilac,ao estao desatualizados.

    2. Colete informac,ao

       Quando voce estiver ciente de um problema, colete informac,oes para
       ajuda-lo a soluciona-lo. Os erros de compilac,ao relatados pelo
       pkg-fallout sao acompanhados por logs que mostram onde a compilac,ao
       falhou. Se a falha foi reportada para voce por um usuario, pec,a para
       que ele lhe envie informac,oes que possam ajudar no diagnostico do
       problema, tais como:

          * Logs de compilac,ao

          * Os comandos e opc,oes usados para compilar o port (incluindo
            opc,oes definidas no /etc/make.conf)

          * Uma lista dos pacotes instalados no sistema como mostrado pelo
            comando pkg-info(8)

          * A versao do FreeBSD que ele esta executando como mostrado pelo
            comando uname(1) -a

          * Quando a colec,ao de ports dele foi atualizada pela ultima vez

          * Quando a arvore de ports e o arquivo INDEX dele foram atualizados
            pela ultima vez

    3. Investigue e encontre uma soluc,ao

       Infelizmente nao existe nenhum processo direto a ser seguido para
       fazer isso. Porem, lembre-se: se voce esta emperrado, pec,a ajuda! A
       lista de discussao de ports do FreeBSD e um bom lugar para comec,ar, e
       os desenvolvedores de upstream sao frequentemente muito prestativos.

    4. Envie as alterac,oes

       Assim como na atualizac,ao de um port, agora voce deve incorporar as
       alterac,oes, revisar, testar e enviar suas alterac,oes em um relatorio
       de problemas (PR) e fornecer feedback, se solicitado.

    5. Envie os patches para os autores upstream

       Em alguns casos, voce tera que fazer um patch para que um port execute
       no FreeBSD. Alguns (mas nao todos) autores upstream aceitarao
       incorporar tais patches em seu codigo na proxima versao. Se eles
       aceitarem, isto podera ate ajudar os usuarios de outros sistemas BSD e
       talvez evitar um esforc,o duplicado. Por favor, considere o envio aos
       autores de quaisquer patches aplicaveis como uma cortesia.

      3.2.2.3. Investigue relatorios de bugs e PRs relacionados ao seu port

   Esta sec,ao e sobre como descobrir e corrigir bugs.

   Bugs especificos do FreeBSD sao causados geralmente por suposic,oes sobre
   os ambientes de compilac,ao e execuc,ao que nao se aplicam ao FreeBSD. E
   pouco provavel que voce encontre um problema desse tipo, mas se encontrar
   ele podera ser mais sutil e dificil de diagnosticar.

   Estas sao as tarefas que voce precisa executar para garantir que o seu
   port continuara funcionando como pretendido:

    1. Responda os relatorios de bugs

       Bugs podem ser reportados para voce por e-mail atraves do Sistema de
       Relatorio de Problemas. Os bugs tambem podem ser reportados
       diretamente a voce pelos usuarios.

       Voce deve responder os PRs (Relatorio de Problemas) e outros
       relatorios dentro de 14 dias, mas por favor, tente nao levar tanto
       tempo. Tente responder o mais rapido possivel, mesmo que seja apenas
       para dizer que voce precisa de mais algum tempo antes de poder
       trabalhar no PR.

       Se voce nao tiver respondido apos 14 dias, qualquer committer podera
       efetuar o commit de um PR que voce nao tenha respondido por meio da
       regra de maintainer-timeout.

    2. Colete informac,ao

       Se a pessoa que reportou o bug nao tiver fornecido uma correc,ao, voce
       precisara coletar as informac,oes que permitirao gerar uma.

       Se o bug for reproduzivel, voce podera coletar a maior parte das
       informac,oes necessarias voce mesmo. Caso contrario, pec,a `a pessoa
       que relatou o bug para coletar as informac,oes para voce, tais como:

          * Uma descric,ao detalhada das suas ac,oes, comportamento esperado
            e comportamento real do aplicativo

          * Copias dos dados de entrada usados para acionar o bug

          * Informac,oes sobre seu ambiente de compilac,ao e execuc,ao - por
            exemplo, uma lista de pacotes instalados e a saida de env(1)

          * Core dumps

          * Stack traces

    3. Elimine os relatorios incorretos

       Alguns relatorios de erros podem estar incorretos. Por exemplo, o
       usuario pode ter simplesmente usado de forma errada o programa; ou
       seus pacotes instalados podem estar desatualizados e precisam ser
       atualizados. As vezes, um bug relatado nao e especifico do FreeBSD.
       Neste caso relate o bug para os desenvolvedores upstream. Se voce for
       capaz de corrigir o bug, voce tambem podera criar um patch do port
       para que a correc,ao seja aplicada antes da proxima versao do
       upstream.

    4. Encontre uma soluc,ao

       Tal como acontece com erros de compilac,ao, voce precisara encontrar
       uma correc,ao para o problema. Mais uma vez, lembre-se de perguntar se
       voce estiver emperrado!

    5. Envie ou aprove alterac,oes

       Assim como na atualizac,ao de um port, agora voce deve incorporar
       alterac,oes, revisar, testar e enviar suas alterac,oes em um PR (ou
       enviar um follow-up se ja existir um PR para o problema). Se outro
       usuario tiver enviado alterac,oes no PR, voce tambem podera enviar um
       follow-up dizendo se aprova ou nao as alterac,oes.

      3.2.2.4. Fornec,a Suporte

   Parte de ser um mantenedor e prover suporte - nao para o software em geral
   - mas para o port e quaisquer peculiaridades e problemas especificos dele
   no FreeBSD. Os usuarios podem entrar em contato com duvidas, sugestoes,
   problemas e patches. Na maioria das vezes, sua correspondencia sera
   especifica para o FreeBSD.

   Ocasionalmente, voce pode ter que invocar suas habilidades diplomaticas, e
   gentilmente, direcionar os usuarios que buscam suporte generico para os
   recursos apropriados. Com menos frequencia voce encontrara uma pessoa
   perguntando por que os RPMs nao estao atualizados ou como eles podem fazer
   o software rodar sob o Foo Linux. Aproveite a oportunidade para dizer a
   eles que o seu port esta atualizado (se estiver, e claro!) e sugira que
   eles experimentem o FreeBSD.

   As vezes, os usuarios e os desenvolvedores podem decidir que voce e uma
   pessoa ocupada cujo tempo e valioso e farao parte do trabalho para voce.
   Por exemplo, eles podem:

     * enviar um PR ou lhe enviar patches para atualizar o seu port,

     * investigar e talvez fornecer uma correc,ao para um PR, ou

     * caso contrario, enviar alterac,oes para o seu port.

   Nestes casos, a sua principal obrigac,ao e responder rapidamente. Mais uma
   vez, o tempo limite para mantenedores nao responsivos e de 14 dias. Apos
   esse periodo, as alterac,oes podem ser aceitas mesmo sem terem sido
   aprovadas. Eles se deram ao trabalho de fazer isso por voce; por favor,
   tente pelo menos responder prontamente. Em seguida, revise, aprove,
   modifique ou discuta as alterac,oes com eles o mais rapido possivel.

   Se voce puder faze-los sentir que a contribuic,ao deles e apreciada (e
   deveria ser), voce tera uma chance maior de persuadi-los a fazer mais
   coisas para voce no futuro :-).

  3.3. Encontre e conserte um port quebrado

   Existem dois lugares realmente bons para se encontrar um port que precisa
   de alguma atenc,ao.

   Voce pode usar a interface web do banco de dados dos Relatorio de
   Problemas para pesquisar e visualizar os PRs nao resolvidos. A maioria dos
   PRs relacionados aos ports sao atualizac,oes, mas com um pouco de pesquisa
   e analise das sinopses voce deve encontrar algo interessante para
   trabalhar (a classe bug-bug e um bom lugar para comec,ar).

   O outro lugar e o Sistema de Monitoramento de Ports do FreeBSD. Em
   particular, procure por ports sem mantenedores com erros de compilac,ao e
   por ports marcados com BROKEN. Nao existe nenhum problema em tambem enviar
   alterac,oes para um port com um mantenedor ativo, mas antes lembre-se de
   consultar o mantenedor para o caso dele ja estar trabalhando no problema.

   Depois de encontrar um bug ou problema, colete informac,oes, investigue e
   corrija! Se houver um PR existente, de seguimento a ele. Caso contrario,
   crie um novo PR. Suas alterac,oes serao analisadas e, se tudo estiver OK,
   elas serao aceitas e incorporadas.

  3.4. Quando parar

   A medida que seus interesses e compromissos mudam, voce pode descobrir que
   nao tem mais tempo para continuar com algumas (ou todas) as suas
   contribuic,oes para a colec,ao de ports. Tudo bem! Por favor, nos avise se
   voce nao estiver mais usando um port ou se nao tiver mais tempo ou
   interesse em ser um mantenedor. Desta forma, podemos seguir em frente e
   permitir que outras pessoas tentem trabalhar nos problemas existentes com
   o port sem termos que esperar por sua resposta. Lembre-se, o FreeBSD e um
   projeto voluntario, entao se a manutenc,ao de um port nao for mais
   divertida, provavelmente e hora de deixar alguem fazer isso!

   De qualquer forma, a Equipe de Gerenciamento da Colec,ao de Ports
   (portmgr) reserva-se o direito de redefinir o seu status de mantenedor se
   voce nao tiver mantido ativamente o seu port durante um determinado
   periodo de tempo. (Atualmente, este periodo e definido como 3 meses.) Com
   isso, queremos dizer que existem problemas nao resolvidos ou atualizac,oes
   pendentes que nao foram tratadas por voce durante esse periodo.

  3.5. Recursos para mantenedores de ports e contribuidores

   O Porter's Handbook e o seu Guia de Mochileiro para o sistema de ports.
   Mantenha-o `a mao!

   O artigo Escrevendo um relatorio de problemas para o FreeBSD descreve como
   melhor formular e enviar um PR. Em 2005, foram submetidos mais de onze mil
   relatorios de problemas relacionados aos ports! Ao seguir as boas praticas
   descritas neste artigo voce nos ajudara a reduzir em muito o tempo
   necessario para lidar com seus PRs.

   O Banco de dados de problemas reportados.

   O Sistema de Monitoramento de Ports do FreeBSD pode mostrar informac,oes
   cruzadas sobre os ports, tais como erros de compilac,ao e relatorios de
   problemas. Se voce e um mantenedor, voce pode usa-lo para verificar o
   status de compilac,ao dos seus ports. Como colaborador, voce pode usa-lo
   para encontrar ports quebrados e ports sem um mantenedor ativo que
   precisam ser consertados.

   O scanner de arquivos distfile da colec,ao de ports do FreeBSD pode lhe
   mostrar os ports para os quais os arquivos distfiles nao estao
   disponiveis. Voce pode utiliza-lo para verificar seus proprios ports ou
   para encontrar ports que precisam ter seu MASTER_SITES atualizado.

   O uso do ports-mgmt/poudriere e a maneira mais completa de testar um port
   durante todo o ciclo de instalac,ao, empacotamento e desinstalac,ao. A
   documentac,ao esta localizada no Repositorio do poudriere no github

   O portlint(1) e uma aplicac,ao que pode ser utilizada para verificar se o
   seu port esta em conformidade com muitas diretrizes importantes de estilo
   e func,ao. O portlint e um aplicativo heuristico simples, portanto voce
   deve usa-lo apenas como um guia. Se o portlint sugerir alterac,oes que nao
   sejam razoaveis, consulte o Porter's Handbook ou pec,a conselhos.

   A Lista de discussao de ports do FreeBSD e destinada para discussoes
   gerais relacionadas aos ports. E um bom lugar para pedir ajuda. Voce pode
   se inscrever, ler e pesquisar os arquivos da lista. Ler os arquivos da
   Lista de discussao sobre bugs dos ports do FreeBSD e as mensagens de
   commit no SVN da arvore de ports para head/ tambem pode ser interessante.

4. Comec,ando em outras areas

   Procurando por algo interessante para comec,ar, e que nao foi mencionado
   em outras partes deste artigo? O Projeto FreeBSD tem varias paginas Wiki
   contendo areas nas quais novos colaboradores podem ter ideias sobre como
   comec,ar.

   A pagina Junior Jobs tem uma lista de projetos que podem ser de interesse
   para pessoas que estao apenas comec,ando no FreeBSD, e querem trabalhar em
   coisas interessantes para molhar os pes.

   A Pagina de Ideias contem varias coisas "legais" ou "interessantes" para
   se trabalhar no Projeto.

Indice Remissivo

  B

   banco de dados de relatorios de problemas, Trabalhe no banco de dados de
   PR (relatorio de problemas)

  C

   contribuindo, Contribuindo com o FreeBSD

  D

   diff, Mudanc,as no Codigo Fonte Existente

   doac,oes, Doando Hardware

  E

   envio de documentac,ao, Mudanc,as na Documentac,ao

  F

   FreeBSD-CURRENT, Mudanc,as no Codigo Fonte Existente
