Contribuindo para o FreeBSDEste artigo descreve as diferentes maneiras pelas quais um
indivíduo ou uma organização podem
contribuir com o projeto FreeBSD.JordanHubbardColaboração de
&tm-attrib.freebsd;
&tm-attrib.ieee;
&tm-attrib.general;
$FreeBSD$$FreeBSD$ContribuindoEntão você quer contribuir com o FreeBSD? Isso
é ótimo! O FreeBSD depende das
contribuições da sua base de usuários para
sobreviver. Suas contribuições não
são apenas apreciadas, elas são vitais para que o
FreeBSD continue crescendo.Ao contrário do que algumas pessoas podem tentar
fazê-lo acreditar, você não precisa ser um
programador super experiente ou amigo pessoal de um membro do
Core Team do FreeBSD para ter suas
contribuições aceitas. Um grande e crescente
número de colaboradores internacionais, de idades e de
áreas técnicas extremamente variadas desenvolvem o
FreeBSD. Há sempre mais trabalho a ser realizado do que
pessoas disponíveis para fazê-lo. Toda e qualquer
ajuda é sempre bem vinda.O projeto FreeBSD é responsável por todo um
sistema operacional, ou seja, é responsável por
muito mais que apenas um kernel ou alguns
utilitários dispersos. Da forma como está, o nosso
TODO, possui tarefas em uma escala muito
ampla: da documentação, da realização
de beta testes e de apresentação, ao instalador do
sistema e desenvolvimento altamente especializado de componentes
para o kernel. Pessoas de todos os
níveis de habilidade, de qualquer área
técnica, certamente podem ajudar o projeto de alguma
forma.As instituições comerciais envolvidas em
projetos relacionados ao FreeBSD; também, são
encorajadas a nos contatar. Você necessita de uma
extensão especial para fazer seu produto funcionar?
Você irá nos encontrar receptivos aos seus pedidos,
desde que eles não sejam demasiadamente descabidos.
Você está trabalhando em um produto que agrega valor
ao sistema? Por favor, deixe-nos saber! Nós talvez
possamos trabalhar em conjunto em algum aspecto dele. O mundo do
software livre desafia muitos dos
conceitos existentes sobre como um
software é desenvolvido,
vendido e mantido; e, nós o incitamos a dar ao menos uma
segunda olhada.O que é necessário?A seguinte lista de tarefas e sub-projetos representa uma
amálgama de várias listas de
TODO e solicitações enviadas
por usuários.Tarefas em execução por
não-programadores.Muitas das pessoas que estão envolvidas com o
FreeBSD não são programadores. O projeto inclui
autores de documentação, Web
designers, e pessoal de suporte. Tudo o que estas
pessoas precisam para contribuir é algum tempo livre
para investir e vontade de aprender.Leia o FAQ e &a.ptbr.p.handbook;
periodicamente. Se algo estiver mal explicado,
desatualizado ou mesmo completamente errado; por favor,
deixe-nos saber. Ou melhor, envie-nos uma
correção. (Docbook não é
difícil de aprender, mas não há
nenhuma objeção à submissões
em formato ASCII).Ajude a traduzir a documentação do
FreeBSD para a sua língua nativa. Se a
documentação já existir no seu
idioma, você pode ajudar a traduzir novos documentos
ou verificar se as traduções existentes
estão atualizadas. Primeiro, verifique o FAQ sobre
traduções no &a.ptbr.p.fdpp;.
Você não estará se comprometendo a
traduzir todos os documentos do FreeBSD fazendo isto
— como um voluntário, você pode
traduzir muitos ou poucos documentos, quantos desejar.
Uma vez que alguém começa a traduzir, outros
quase sempre se juntam ao esforço. Se você
somente tiver tempo livre ou energia para traduzir uma
pequena parte da documentação; por favor,
traduza as instruções de
instalação.Leia a &a.questions; e o &ng.misc; ocasionalmente (ou
regularmente se possível). Pode ser muito
recompensador compartilhar a sua experiência e
ajudar outras pessoas a resolverem seus problemas; Muitas
vezes apenas este processo o levará à
aprender coisas! Estes fóruns também podem
ser uma fonte de idéias para assuntos aos quais se
dedicar.Tarefas em execução por
programadoresA maioria das tarefas listadas aqui requerem um
investimento considerável de tempo ou conhecimento
profundo do kernel do FreeBSD; ou, ambos. Entretanto,
também existem muitas tarefas úteis que
são apropriadas para os hackers de final de
semana.Se você executar o FreeBSD-CURRENT e tiver uma
boa conexão Internet, existe uma máquina
current.FreeBSD.org que
produz um lançamento
(release) completo uma vez
por dia — tente instalar diariamente o
lançamento mais recente gerado e relate todas as
falhas encontradas no processo.Leia a &a.bugs;. Pode existir um problema o qual
você possa comentar construtivamente ou mesmo uma
correção que possa testar. Ou, você
pode ainda tentar reparar um dos problemas sozinho.Se você souber de qualquer problema que tenha
sido corrigido com sucesso no -CURRENT
e cuja correção não tenha sido
aplicada ao -STABLE após um
intervalo razoável de tempo (normalmente algumas
semanas), envie ao
committer um lembrete
educado.Mova as contribuições de
software para
src/contrib
na árvore do código fonte.Tenha certeza que o código disponível em
src/contrib
está atualizado.Compile o sistema (ou apenas uma parte dele) com
warnings extras habilitados e remova os
warnings.Corrija warnings de
ports que ainda fazem coisas
ultrapassadas tais como utilizar
gets() ou incluir
malloc.h.Se você contribuiu com algum dos
ports, e teve que fazer alguma
mudança específica para o &os;, envie suas
correções de volta aos autores originais
(isto tornará sua vida mais fácil quando
eles lançarem a próxima
versão).Consiga cópias de padrões formais tais
como &posix;. Você pode obter alguns
links sobre estes
padrões no sítio www FreeBSD
C99 & Projeto de Conformidade com Padrões
Posix. Compare o comportamento do FreeBSD
àquele requerido pelo padrão. Se o
comportamento diferir, particularmente em pontos sutis ou
obscuros da especificação, envie-nos um
PR sobre ele. Se você for capaz,
descubra como corrigi-lo e inclua um
patch em seu PR. Se
você acredita que o padrão está
errado, peça ao comitê de padrões que
considere a pergunta.Sugira novas tarefas para esta lista!Trabalhe no banco de dados de PR
(relatório de problemas)base de dados de relatórios de
problemasA Lista
de PRs do FreeBSD mostra todos os
relatórios de problemas ativos no momento e os pedidos
de melhoria que foram submetidos pelos usuários do
FreeBSD. O banco de dados inclui tarefas para programadores e
para não-programadores. Consulte os
PRs abertos, e veja se algum deles é
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 correção proposta
funciona. Outros podem ser muito mais complexos, ou podem nem
ter vindo com uma correção.Comece com os PRs que ainda não
foram atribuídos a ninguém. Se um
PR estiver atribuído a outra pessoa,
mas se parecer com algo que você possa cuidar, envie um
e-mail para a pessoa encarregada do mesmo e pergunte se
você pode trabalhar nele — ele pode já ter
um patch pronto para ser testado, ou
você pode discutir novas idéias com ele.Escolha um dos itens da página de
idéiasA lista de
projetos do &os; e de idéias para voluntários
também está disponível para as pessoas
dispostas a contribuir com o projeto &os;. A lista é
atualizada regularmente e contém itens sobre cada projeto
para programadores e para não programadores.Como contribuirContribuições para o sistema geralmente caem
em uma ou mais das seguintes 5 categorias:Relatórios de Erro e Comentários em
GeralUma idéia ou sugestão técnica de
interesse geral deve ser enviada para a
&a.hackers;. Da mesma forma, pessoas com interesse neste tipo
de assunto (e uma tolerância para um
alto volume de mensagens!), devem se
inscrever na &a.hackers;. Consulte o &a.ptbr.p.handbook;
para maiores informações sobre esta e outras
listas de discussão.Se você encontrar um erro ou estiver enviando uma
alteração específica; por favor,
faça o relatório utilizando o programa
&man.send-pr.1; ou a sua interface WWW
equivalente. A não ser que ele exceda 65KB,
inclua qualquer patch diretamente no
relatório. Se o patch é
destinado a ser aplicado na árvore de código,
coloque a palavra [PATCH] na sinópse
do relatório. Quando incluir um
patch, não o
faça utilizando copiar-e-colar porque ao copiar-e-colar
os tabs serão convertidos para
espaços, e tornará o patch
inutilizável. Quando os patches
forem muito maiores que 20KB, considere a possibilidade de
comprimi-los (por ex. usando &man.gzip.1; or &man.bzip2.1;) e
utilize o &man.uuencode.1; para incluir a versão
compactada no seu relatório de problema.Depois de enviar o relatório, voce deve receber uma
confirmação junto com um número de
registro. Guarde este número de registro, de forma que
você possa nos manter atualizados sobre o seu problema
enviando um e-mail para &a.bugfollowup;. Coloque o
número no assunto da mensagem, por ex. "Re:
kern/3377". Informações adicionais
sobre qualquer relatório de problema
(Problem Report) devem ser
submetidas desta forma.Se você não receber a
confirmação em prazo razoável (3 dias a 1
semana, dependendo da sua conexão de e-mail), ou
está por alguma razão impossibilitado de
utilizar o comando &man.send-pr.1; ; então, você
pode pedir que alguém o envie para você enviando
e-mail para &a.bugs;.Consulte também este
artigo sobre como escrever um bom relatório
de problema.Alterações na
DocumentaçãoEnvio de documentaçãoAlterações na documentação
são administradas pela &a.doc;. Por favor, verifique o
&a.ptbr.p.fdpp;
para obter instruções detalhadas. Envie suas
colaborações e alterações
(inclusive as pequenas são bem vindas!) usando o
&man.send-pr.1; como descrito no Relatórios de Erro e
Comentários em Geral.Alterações no Código Fonte
ExistenteFreeBSD-CURRENTUma adição ou alteração ao
código fonte existente é um caso um pouco mais
complicado e depende muito de quão desatualizado
você está em relação ao estado
atual de desenvolvimento do FreeBSD. Existe um
lançamento (release)
especial em andamento do FreeBSD conhecido como
FreeBSD-CURRENT o qual é disponibilizado
em uma grande variedade de formas para a comodidade dos
desenvolvedores que trabalham ativamente no sistema. Consulte
o &a.ptbr.p.handbook;
para maiores informações sobre como obter e
utilizar o FreeBSD-CURRENT.Trabalhar com versões antigas do código,
infelizmente, muitas vezes significa que as suas
alterações serão demasiadamente obsoletas
ou muito divergentes para possibilitar uma fácil
re-integração ao FreeBSD. As possibilidades de
que isso ocorra podem ser minimizadas um pouco através
da sua inscrição nas listas &a.announce; e
&a.current;, nas quais as discussões sobre o estado
atual do sistema ocorrem.Supondo que você consiga obter acesso à
código fonte do sistema razoavelmente atualizado para
basear as suas alterações nele, o próximo
passo é produzir um conjunto de
diffs para enviar aos mantenedores do
FreeBSD. Isto é feito com o comando
&man.diff.1;.O formato preferido do &man.diff.1; para enviar um
patch, é o formato de saída
unificada gerado por diff -u.diff&prompt.user; diff -u oldfile newfileou&prompt.user; diff -u -r -N olddir newdirdeverá gerar um conjunto de diffs
unificados para o arquivo de origem informado ou hierarquia de
diretórios.Consulte o manual do &man.diff.1; para maiores
informações.Uma vez que você tenha o conjunto de
diffs (os quais você pode testar com
o comando &man.patch.1;), você deve submetê-los
para inclusão no FreeBSD. Utilize o comando
&man.send-pr.1; como descrito no Relatórios de Erro e
Comentários em Geral.
Não envie os
diffs apenas para a &a.hackers; ou eles
serão perdidos! Nós apreciamos extremamente a
sua submissão (este é um projeto
voluntário!); porque nós somos ocupados,
nós podemos não ter como tratá-la
imediatamente, mas ela permanecerá em nosso bando de
dados de PRs até que nós o
façamos. Marque a sua submissão incluindo a
palavra [PATCH] na sinópse do
relatório.uuencodeSe você sentir que é apropriado (por ex.
você adicionou, deletou ou renomeou arquivos), empacote
as suas mudanças em um arquivo tar e
execute o programa &man.uuencode.1; nele. Arquivos criados
com o &man.shar.1; também são bem vindos.Se suas mudanças são de uma natureza
potencialmente sensível, tais como você
estar inseguro sob quais políticas de direito
autoral as novas versões serão
distribuídas, então você deve enviá-las
diretamente para o &a.core; ao invés de
submetê-las com o &man.send-pr.1;. O &a.core; é formado
por um grupo muito pequeno de pessoas as quais
cuidam de muitas das tarefas diárias de administração do
projeto &os;. Observe que este grupo também é muito
ocupado e portanto você só deve enviar
um e-mail a eles se for realmente necessário.Por favor, consulte a &man.intro.9; e a &man.style.9; para
obter alguma informação sobre o estilo de
codificação. Nós apreciaríamos se
você estivesse ao menos ciente destas
informações antes de submeter o seu
código.Código Novo ou Pacotes Principais de Valor
Adicional (Major Value-Added
Packages)No caso de uma contribuição significativa de
um trabalho de grande porte, ou a adição de uma
nova característica importante ao FreeBSD, torna-se
quase sempre necessário que se envie as
alterações em um arquivo tar
uuencoded ou então que se faça o
upload das mesmas para um
servidor WWW ou FTP para que as outras pessoas possam
acessá-las. Se você não possui acesso a
um servidor WWW ou FTP, pergunte em uma lista de
discussão apropriada do FreeBSD se alguém pode
hospedar essas alterações para
você.Quando se trabalha com grandes quantidades de
código, o sensível assunto de direitos autorais
invariavelmente vem a tona. Os direitos autorais aceitos para
os códigos incluídos no FreeBSD
são:Licensa BSDOs direitos autorais BSD. Este tipo de licensa
é a mais preferível devido a sua natureza
não restritiva e pela sua afinidade
com iniciativas comerciais. Longe de desencorajar o uso
comercial, o Projeto FreeBSD encoraja ativamente tais
participações, uma vez que estes interesses
comerciais podem eventualmente se converter em
investimentos no próprio FreeBSD.GPLGNU General Public LicenseLicença Pública Geral GNU
(GNU General Public
License)A licensa pública geral GNU, ou
GPL. Esta licensa não é
tão popular conosco, devido aos esforços
extras que exigem de qualquer pessoa que venha a utilizar
o código com finalidades comerciais, mas dada a
grande quantidade de código GPL que nós
necessitamos atualmente (compilador, montador assembler,
formatador de texto, etc) seria tolice recusar
contribuições adicionais sob esta licensa.
O código sob a GPL também vai para uma parte
diferente da árvore, mais especificamente para
/sys/gnu ou
/usr/src/gnu, de
forma que é muito fácil
identificá-lo para qualquer um que a GPL
representa um problema.As contribuições que vêm sob qualquer
outro tipo de licensa devem ser cuidadosamente revisadas antes
de sua inclusão no FreeBSD ser considerada.
Contribuições com algum tipo de
restrição particular ao seu uso comercial
são geralmente rejeitadas, embora os autores sejam
sempre incentivados a tornarem tais alteração
disponíveis por meio de canais próprios.Para colocar o seu trabalho sob licensa
estilo-BSD, inclua o texto abaixo no
início de cada um dos arquivos que você deseja
proteger, substituindo o texto entre %% com
as informações 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.
$&os;$Para a sua comodidade, uma cópia deste texto pode
ser encontrada em
/usr/share/examples/etc/bsd-style-copyright
.Dinheiro, Hardware ou Acesso InternetNós ficamos sempre muito felizes em aceitar
doações para agregar a causa do Projeto FreeBSD,
em um esforço voluntário como o nosso, um pouco
pode significar muito! Doações de
hardware também
são muito importantes para expandir a nossa lista de
periféricos suportados, uma vez que normalmente
não temos recursos para comprar estes ítens
nós mesmos.Doando DinheiroA Fundação FreeBSD é 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 fundação é
isenta de recolher as taxas do governo federal, bem como as
do Estado do Colorado. As doações para uma
entidade isenta de impostos são freqüentemente
dedutíveis dos impostos federais.As doações podem ser enviadas
através de cheques para:
The FreeBSD Foundation
7321 Brockway Dr.Boulder,
CO, 80303USAA Fundação FreeBSD é agora capaz de
receber doações através da web com o
PayPal. Para fazer uma doação; por favor,
visite o sítio
www da Fundação.Maiores informações sobre a
Fundação FreeBSD podem ser obtidas no
documento A
Fundação FreeBSD - Uma
introdução. Para contatar a
Fundação por e-mail, escreva para
bod@FreeBSDFoundation.org.Doando HardwaredoacõesO projeto de FreeBSD aceita alegremente
doações de
hardware para as quais pode
encontrar bom uso. Se voce estiver interessado em doar
componentes de hardware; por
favor, contate o
Escritório de
Relacionamento com Doadores.