Esta sessão do site br.kernelnewbies.org é um guia de como ter uma alteração ou código aceito no kernel upstream, o kernel gerenciado por Linus Torvalds e disponível em http://www.kernel.org.
Colaborar com kernel upstream exige esforço, dedicação e tempo. O processo não é fácil, porque no momento que o Linus aceita o código em sua árvore, ele corre o risco manter o código pelo resto da vida dele. Se uma alteração errada for aceita, a tarefa de manter o kernel será mais difícil. Por essas e outras razões ter uma alteração aceita no kernel é uma tarefa relativamente difícil.
No entanto, há também uma série de benefícios em ter seu código-fonte dentro do kernel.
Manter códigos que não estão na árvore oficial do kernel é um enorme desafio, pode ser perda de dias ou semanas para um desenvolvedor, em todo momento o kernel é alterado. Os códigos que fazem parte do kernel oficial não tem esse problema, porque os desenvolvedores do kernel tendem a procurar drivers desatualizados e corrigi-los. Assim, você terá seus desenvolvedores livres para fazer outros trabalhos.
Seu código fonte irá estar presente em todas distribuições Linux. Isso importa se você deseja vender seu hardware para qualquer usuário Linux. Sem necessídade de dependência em determinada distribuição para incluir suas alterações (horrível escolha), ou simplesmente pedir para seu cliente alterar uma configuração porque seu código esta disponível no kernel (ótima escolha).
Alguns dos melhores desenvolvedores do mundo estarão revisando seu código, não tenha medo. Pode parecer estranho ou embaraçador por alguns dias ou semanas, é normal receber sugestões de melhoria dos desenvolvedores upstream. Geralmente tais sugestões tendem a ser adequadas e ajudam na manutenção do código. Por exemplo, existem casos onde desenvolvedores upstream conseguiram deixar os drivers de rede e storage 30% mais rápidos, fazendo o hardware ficar mais atrativo aos clientes.
Ter alterações aceitas em upstream pode parecer um processo intimidante. No entanto, com a estratégia certa em mente, você não irá encontrar problemas em ter suas alterações aceitas.
Links interessantes:
Estratégias para Junção de Código: Estratégias para colaborar com códigos em upstream.
WhatNotToDo: O que não deve ser feito se você deseja ter seu código aceito em upstream
GettingFlamed: Os desenvolvedores do kernel falaram coisas horríveis ao meu respeito, do meu código e do meu gato! O que eu devo fazer?
Documentos úteis disponíveis no diretório Documentation do kernel:
SubmittingDrivers: Como submeter drivers para kernel
SubmittingPatches: Como submeter alterações no kernel do linux.
SubmitChecklist: Checklist para submeter alterações em upstream.
Outros documentos de como obter suas alterações aceitas em upstream:
O patch perfeito
Patch format
O Projeto Linux Driver
Este material foi traduzido, a página original você encontra no endereço: http://kernelnewbies.org/UpstreamMerge