                      Contribuindo para o FreeBSD

  Jordan Hubbard

   $FreeBSD: doc/pt_BR.ISO8859-1/articles/contributing/article.sgml,v
   1.1 2003/12/29 04:15:40 lioux Exp $

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

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

   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. (SGML 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 FreeBSD de perguntas genericas
       [English Content/Conteudo em Ingles]
       <freebsd-questions@FreeBSD.org> 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 FreeBSD de relatorio de problemas
       (PR) [English Content/Conteudo em Ingles]
       <freebsd-bugs@FreeBSD.org>. 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, 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 e 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.

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

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 discussoes tecnicas FreeBSD (hackers) [English
   Content/Conteudo em Ingles] <freebsd-hackers@FreeBSD.org>. 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 discussoes tecnicas FreeBSD (hackers) [English
   Content/Conteudo em Ingles] <freebsd-hackers@FreeBSD.org> atraves
   do envio de um e-mail para <majordomo@FreeBSD.org>. 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. Se o patch ultrapassar 20KB considere a
   possibilidade de comprimi-lo e utilizar o uuencode(1) antes de
   envia-lo.

   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 FreeBSD de relatorio de problemas (PR) [English
   Content/Conteudo em Ingles] <freebsd-bugs@FreeBSD.org>.

   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 [English
   Content/Conteudo em Ingles] <freebsd-doc@FreeBSD.org>. 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 discussao FreeBSD anuncios [English
   Content/Conteudo em Ingles] <freebsd-announce@FreeBSD.org> e lista
   de discussao FreeBSD-CURRENT [English Content/Conteudo em Ingles]
   <freebsd-current@FreeBSD.org>, 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. No entando, para patches
   que alterem substancialmente uma regiao do codigo, o formato de
   saida de contexto gerada por diff -c pode ser mais legivel e por
   isso preferido.

   Por exemplo:

 % diff -c oldfile newfile

   ou

 % diff -c -r olddir newdir

   geraria o tal conjunto de diffs de contexto para um dado arquivo
   de codigo ou para uma hierarquia de diretorios.

   Da mesma forma,

 % diff -u oldfile newfile

   ou

 % diff -u -r olddir newdir

   faria o mesmo, exceto que utilizando o formato de diff unificado.

   Consulte o manual do diff(1) para maiores detalhes.

   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 discussoes tecnicas FreeBSD (hackers)
   [English Content/Conteudo em Ingles] <freebsd-hackers@FreeBSD.org>
   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, por
   ex. voce esta inseguro sob quais politicas de direito autoral as
   novas versoes serao distribuidas ou se voce simplesmente nao esta
   pronto para libera-las sem realizar primeiro uma revisao
   cuidadosa; entao, voce deve envia-las diretamente para o lista de
   discussao do grupo central (core team) FreeBSD [English
   Content/Conteudo em Ingles] <freebsd-core@FreeBSD.org> ao inves de
   submete-las com o send-pr(1). A lista de discussao do grupo
   central (core team) FreeBSD [English Content/Conteudo em Ingles]
   <freebsd-core@FreeBSD.org> alcanc,a um grupo muito menor de
   pessoas que cuidam de muitas das tarefas diarias do FreeBSD.
   Observe que este grupo tambem e muito ocupado e assim 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.

         $Id$

   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.

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

    2.5.3. Doando Acesso Internet

   Nos sempre podemos utilizar novos sitios espelho para os servic,os
   de FTP, WWW ou cvsup. Se voce desejar se tornar um sitio espelho;
   por favor, consulte o artigo Espelhando o FreeBSD para maiores
   informac,oes.

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

            Este, e outros documentos, podem ser obtidos em
                ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

  Para perguntas sobre FreeBSD, leia a documentac,ao antes de contatar
                        <questions@FreeBSD.org>.
       Para perguntas sobre esta documentac,ao, envie e-mail para
                           <doc@FreeBSD.org>.
