                          Contribuindo para o FreeBSD

  Jordan Hubbard

   Colaborac,ao de  
   Revisao: 43126

   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.

   2013-11-07 por gabor.
   Resumo

   Este artigo descreve as diferentes maneiras pelas quais um individuo ou
   uma organizac,ao podem contribuir com o projeto FreeBSD.

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

   Indice

   1. O que e necessario?

   2. Como contribuir

   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.

   Ao contrario do que algumas pessoas podem tentar faze-lo acreditar, voce
   nao precisa ser um programador super experiente ou amigo pessoal de um
   membro do Core Team do FreeBSD para ter suas contribuic,oes aceitas. Um
   grande e crescente numero de colaboradores internacionais, de idades e de
   areas tecnicas extremamente variadas desenvolvem o FreeBSD. Ha sempre mais
   trabalho a ser realizado do que pessoas disponiveis para faze-lo. Toda e
   qualquer ajuda e sempre bem vinda.

   O projeto FreeBSD e responsavel por todo um sistema operacional, ou seja,
   e responsavel por muito mais que apenas um kernel ou alguns utilitarios
   dispersos. Da forma como esta, o nosso TODO, possui tarefas em uma escala
   muito ampla: da documentac,ao, da realizac,ao de beta testes e de
   apresentac,ao, ao instalador do sistema e desenvolvimento altamente
   especializado de componentes para o kernel. Pessoas de todos os niveis de
   habilidade, de qualquer area tecnica, certamente podem ajudar o projeto de
   alguma forma.

   As instituic,oes comerciais envolvidas em projetos relacionados ao
   FreeBSD; tambem, sao encorajadas a nos contatar. Voce necessita de uma
   extensao especial para fazer seu produto funcionar? Voce ira nos encontrar
   receptivos aos seus pedidos, desde que eles nao sejam demasiadamente
   descabidos. Voce esta trabalhando em um produto que agrega valor ao
   sistema? Por favor, deixe-nos saber! Nos talvez possamos trabalhar em
   conjunto em algum aspecto dele. O mundo do software livre desafia muitos
   dos conceitos existentes sobre como um software e desenvolvido, vendido e
   mantido; e, nos o incitamos a dar ao menos uma segunda olhada.

1. O que e necessario?

   A seguinte lista de tarefas e sub-projetos representa uma amalgama de
   varias listas de TODO e solicitac,oes enviadas por usuarios.

  1.1. Tarefas em execuc,ao por nao-programadores.

   Muitas das pessoas que estao envolvidas com o FreeBSD nao sao
   programadores. O projeto inclui autores de documentac,ao, Web designers, e
   pessoal de suporte. Tudo o que estas pessoas precisam para contribuir e
   algum tempo livre para investir e vontade de aprender.

    1. Leia o FAQ e Manual do FreeBSD periodicamente. Se algo estiver mal
       explicado, desatualizado ou mesmo completamente errado; por favor,
       deixe-nos saber. Ou melhor, envie-nos uma correc,ao. (Docbook nao e
       dificil de aprender, mas nao ha nenhuma objec,ao `a submissoes em
       formato ASCII).

    2. Ajude a traduzir a documentac,ao do FreeBSD para a sua lingua nativa.
       Se a documentac,ao ja existir no seu idioma, voce pode ajudar a
       traduzir novos documentos ou verificar se as traduc,oes existentes
       estao atualizadas. Primeiro, verifique o FAQ sobre traduc,oes no
       Primer do Projeto de Documentac,ao do FreeBSD. Voce nao estara se
       comprometendo a traduzir todos os documentos do FreeBSD fazendo isto -
       como um voluntario, voce pode traduzir muitos ou poucos documentos,
       quantos desejar. Uma vez que alguem comec,a a traduzir, outros quase
       sempre se juntam ao esforc,o. Se voce somente tiver tempo livre ou
       energia para traduzir uma pequena 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 e o o
       grupo de noticias (newsgroup) comp.unix.bsd.freebsd.misc
       ocasionalmente (ou regularmente se possivel). Pode ser muito
       recompensador compartilhar a sua experiencia e ajudar outras pessoas a
       resolverem seus problemas; Muitas vezes apenas este processo o levara
       `a aprender coisas! Estes foruns tambem podem ser uma fonte de ideias
       para assuntos aos quais se dedicar.

  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 executar o FreeBSD-CURRENT e tiver uma boa conexao Internet,
       existe uma maquina current.FreeBSD.org que produz um lanc,amento
       (release) completo uma vez por dia - tente instalar diariamente o
       lanc,amento mais recente gerado e relate todas as falhas encontradas
       no processo.

    2. Leia a lista de discussao para reportar erros no FreeBSD. Pode existir
       um problema o qual voce possa comentar construtivamente ou mesmo uma
       correc,ao que possa testar. Ou, voce pode ainda tentar reparar um dos
       problemas sozinho.

    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 o sistema (ou apenas uma parte dele) com warnings extras
       habilitados e remova os warnings.

    7. Corrija warnings de 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 POSIX(R). Voce pode obter
       alguns links sobre estes padroes no sitio www FreeBSD C99 & Projeto de
       Conformidade com Padroes Posix. 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. 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. A
   lista e atualizada regularmente e contem itens sobre cada projeto para
   programadores e para nao programadores.

2. Como contribuir

   Contribuic,oes para o sistema geralmente caem em uma ou mais das seguintes
   5 categorias:

  2.1. Relatorios de Erro e Comentarios em Geral

   Uma ideia ou sugestao tecnica de interesse geral deve ser enviada para a
   lista de discussao de assuntos tecnicos relacionados ao FreeBSD. Da mesma
   forma, pessoas com interesse neste tipo de assunto (e uma tolerancia para
   um alto volume de mensagens!), devem se inscrever na lista de discussao de
   assuntos tecnicos relacionados ao FreeBSD. Consulte o Manual do FreeBSD
   para maiores informac,oes sobre esta e outras listas de discussao.

   Se voce encontrar um erro ou estiver enviando uma alterac,ao especifica;
   por favor, fac,a o relatorio utilizando o programa send-pr(1) ou a sua
   interface WWW equivalente. A nao ser que ele exceda 65KB, inclua qualquer
   patch diretamente no relatorio. Se o patch e destinado a ser aplicado na
   arvore de codigo, coloque a palavra [PATCH] na sinopse do relatorio.
   Quando incluir um patch, nao o fac,a utilizando copiar-e-colar porque ao
   copiar-e-colar os tabs serao convertidos para espac,os, e tornara o patch
   inutilizavel. Quando os patches forem muito maiores que 20KB, considere a
   possibilidade de comprimi-los (por ex. usando gzip(1) or bzip2(1)) e
   utilize o uuencode(1) para incluir a versao compactada no seu relatorio de
   problema.

   Depois de enviar o relatorio, voce deve receber uma confirmac,ao junto com
   um numero de registro. Guarde este numero de registro, de forma que voce
   possa nos manter atualizados sobre o seu problema enviando um e-mail para
   <bug-followup@FreeBSD.org>. Coloque o numero no assunto da mensagem, por
   ex. "Re: kern/3377". Informac,oes adicionais sobre qualquer relatorio de
   problema (Problem Report) devem ser submetidas desta forma.

   Se voce nao receber a confirmac,ao em prazo razoavel (3 dias a 1 semana,
   dependendo da sua conexao de e-mail), ou esta por alguma razao
   impossibilitado de utilizar o comando send-pr(1) ; entao, voce pode pedir
   que alguem o envie para voce enviando e-mail para lista de discussao para
   reportar erros no FreeBSD.

   Consulte tambem este artigo sobre como escrever um bom relatorio de
   problema.

  2.2. Alterac,oes na Documentac,ao

   Alterac,oes na documentac,ao sao administradas pela lista de discussao do
   projeto de documentac,ao do FreeBSD. Por favor, verifique o Primer do
   Projeto de Documentac,ao do FreeBSD para obter instruc,oes detalhadas.
   Envie suas colaborac,oes e alterac,oes (inclusive as pequenas sao bem
   vindas!) usando o send-pr(1) como descrito no Relatorios de Erro e
   Comentarios em Geral.

  2.3. Alterac,oes no Codigo Fonte Existente

   Uma adic,ao ou alterac,ao ao codigo fonte existente e um caso um pouco
   mais complicado e depende muito de quao desatualizado voce esta em
   relac,ao ao estado atual de desenvolvimento do FreeBSD. Existe um
   lanc,amento (release) especial em andamento do FreeBSD conhecido como
   "FreeBSD-CURRENT" o qual e disponibilizado em uma grande variedade de
   formas para a comodidade dos desenvolvedores que trabalham ativamente no
   sistema. Consulte o Manual do FreeBSD para maiores informac,oes sobre como
   obter e utilizar 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 nas listas lista de distribuic,ao de comunicados
   oficiais do projeto FreeBSD e lista de discussao do FreeBSD-CURRENT, nas
   quais as discussoes sobre o estado atual do sistema ocorrem.

   Supondo que voce consiga obter acesso `a codigo fonte do sistema
   razoavelmente atualizado para basear as suas alterac,oes nele, 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 enviar um patch, e o formato de saida
   unificada gerado por 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 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-los para inclusao no FreeBSD.
   Utilize o comando send-pr(1) como descrito no Relatorios de Erro e
   Comentarios em Geral. Nao envie os diffs apenas para a lista de discussao
   de assuntos tecnicos relacionados ao FreeBSD ou eles serao perdidos! Nos
   apreciamos extremamente a sua submissao (este e um projeto voluntario!);
   porque nos somos ocupados, nos podemos nao ter como trata-la
   imediatamente, mas ela permanecera em nosso bando de dados de PRs ate que
   nos o fac,amos. Marque a sua submissao incluindo a palavra [PATCH] na
   sinopse do relatorio.

   Se voce sentir que e apropriado (por ex. voce adicionou, deletou ou
   renomeou arquivos), empacote as suas mudanc,as em um arquivo tar e execute
   o programa uuencode(1) nele. Arquivos criados com o shar(1) tambem sao bem
   vindos.

   Se suas mudanc,as sao de uma natureza potencialmente sensivel, tais como
   voce estar inseguro sob quais politicas de direito autoral as novas
   versoes serao distribuidas, entao voce deve envia-las diretamente para o
   FreeBSD core team ao inves de submete-las com o send-pr(1). O FreeBSD core
   team 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 a eles se for realmente necessario.

   Por favor, consulte a intro(9) e a style(9) para obter alguma informac,ao
   sobre o 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 Principais de Valor Adicional (Major Value-Added
  Packages)

   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
   uuencoded 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. Os direitos autorais
   aceitos para os codigos incluidos no FreeBSD sao:

    1. Os direitos autorais BSD. Este tipo de licensa e a mais preferivel
       devido a sua natureza "nao restritiva" e pela sua afinidade com
       iniciativas comerciais. Longe de desencorajar o uso comercial, o
       Projeto FreeBSD encoraja ativamente tais participac,oes, uma vez que
       estes interesses comerciais podem eventualmente se converter em
       investimentos no proprio FreeBSD.

    2. A licensa publica geral GNU, ou "GPL". Esta licensa nao e tao popular
       conosco, devido aos esforc,os extras que exigem de qualquer pessoa que
       venha a utilizar o codigo com finalidades comerciais, mas dada a
       grande quantidade de codigo GPL que nos necessitamos atualmente
       (compilador, montador assembler, formatador de texto, etc) seria
       tolice recusar contribuic,oes adicionais sob esta licensa. O codigo
       sob a GPL tambem vai para uma parte diferente da arvore, mais
       especificamente para /sys/gnu ou /usr/src/gnu, de forma que e muito
       facil identifica-lo para qualquer um que a GPL representa um problema.

   As contribuic,oes que vem sob qualquer outro tipo de licensa devem ser
   cuidadosamente revisadas antes de sua inclusao no FreeBSD ser considerada.
   Contribuic,oes com algum tipo de restric,ao particular ao seu uso
   comercial sao geralmente rejeitadas, embora os autores sejam sempre
   incentivados a tornarem tais alterac,ao disponiveis por meio de canais
   proprios.

   Para colocar o seu trabalho sob licensa "estilo-BSD", inclua o texto
   abaixo no inicio de cada um dos arquivos que voce deseja proteger,
   substituindo o texto entre %% com as informac,oes apropriadas:

 Copyright (c) %%proper_years_here%%
         %%your_name_here%%, %%your_state%%  %%your_zip%%.
         All rights reserved.

 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions
 are met:
 1. Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer as
    the first lines of this file unmodified.
 2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.

 THIS SOFTWARE IS PROVIDED BY %%your_name_here%% ``AS IS'' AND ANY EXPRESS OR
 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 IN NO EVENT SHALL %%your_name_here%% BE LIABLE FOR ANY DIRECT, INDIRECT,
 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

         $FreeBSD$

   Para a sua comodidade, uma copia deste texto pode ser encontrada em
   /usr/share/examples/etc/bsd-style-copyright .

  2.5. Dinheiro, Hardware ou Acesso Internet

   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 frequ:entemente dedutiveis dos
   impostos federais.

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

    
       The FreeBSD Foundation 
       7321 Brockway Dr.
       Boulder, 
       CO, 80303 
       USA
     

   A Fundac,ao FreeBSD e agora capaz de receber doac,oes atraves da web com o
   PayPal. Para fazer uma doac,ao; por favor, visite o sitio www da
   Fundac,ao.

   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 <bod@FreeBSDFoundation.org>.

    2.5.2. Doando Hardware

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

Indice Remissivo

  B

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

  C

   Contribuindo, Contribuindo para o FreeBSD

  D

   diff, Alterac,oes no Codigo Fonte Existente

   doacoes, Doando Hardware

  E

   Envio de documentac,ao, Alterac,oes na Documentac,ao

  F

   FreeBSD-CURRENT, Alterac,oes no Codigo Fonte Existente

  G

   GPL (ver GNU General Public License)

  L

   Licenc,a Publica Geral GNU (GNU General Public License), Codigo Novo ou
   Pacotes Principais de Valor Adicional (Major Value-Added Packages)

   Licensa BSD, Codigo Novo ou Pacotes Principais de Valor Adicional (Major
   Value-Added Packages)

  U

   uuencode, Alterac,oes no Codigo Fonte Existente
