Central de Notícias
O seu gateway brasileiro definitivo para notícias 100% sobre o Kernel Linux. Alimentado pela comunidade global.
Patches Recentes (pt_BR)
Acompanhe em tempo real os patches e contribuições recentes enviadas pela comunidade brasileira para a lista de documentação do Kernel.
Documentação Oficial (BR)
Aqui você aprende o passo a passo para contribuir com a tradução e manutenção da documentação oficial do Kernel Linux.
Máquina Virtual Oficial (Isolada)
Não perca tempo configurando compiladores, baixando Gigabytes do Kernel ou configurando o git send-email.
Nós criamos uma máquina virtual 100% pronta e isolada. Ela já vem com a árvore oficial do Linus Torvalds embutida e pede suas credenciais automaticamente.
curl -sL https://kernelbase.com.br/setup-dev.sh | bash
Como acessar depois? Basta abrir seu terminal e digitar kernelbase para entrar na sua máquina isolada a qualquer momento!
Dica: Lá dentro, digite atualizar-vm para puxar as novidades.
☁️ Save na Nuvem: Use kernelbase backup para salvar seu trabalho com criptografia AES-256 e kernelbase restore TOKEN em outro PC para recuperar.
tags: - linux - linuxKernel - contribution - cli - git - b4 - kernel - documentation
Pré-requisitos
É preciso instalar algumas dependências para conseguir contribuir:
Debian: ```bash sudo apt update
sudo apt install \ git \ git-email \ perl \ make \ python3
sudo apt install \ python3-pip \ python3-venv ```
Fedora: ```bash sudo dnf install \ git \ git-email \ perl \ make \ python3
sudo dnf install \ python3-pip ```
Verifique:
bash
git --version
git send-email --help
perl --version
python3 --version
Primeiro passo: preparar o ambiente
Verificar instalação:
bash
git send-email --help
Configure a sua identidade:
bash
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
Configurando SMTP:
bash
git config --global sendemail.smtpserver smtp.gmail.com
git config --global sendemail.smtpserverport 587
git config --global sendemail.smtpencryption tls
git config --global sendemail.smtpuser seuemail@gmail.com
Pode-se adicionar:
bash
git config --global sendemail.assume8bitEncoding UTF-8
Isso evitará que todas as vezes seja perguntado sobre o encoding em patches com acento, etc.
Verifique:
bash
cat ~/.gitconfig
Você deve ter algo assim:
bash
[user]
email = seuemail@gmail.com
name = seu nome
[sendemail]
smtpServer = smtp.gmail.com
smtpServerPort = 587
smtpEncryption = tls
smtpUser = seuemail@gmail.com
Essa parte é muito importante, pois é por meio do email que iremos enviar os nossos patches
Gerando senha de app (gmail):
Para autenticar no Gmail, uma opção simples é utilizar uma senha de app. Para gerá-la, a conta Google deve estar com a verificação em duas etapas ativada. OAuth2 também pode ser utilizado.
https://support.google.com/mail/answer/185833?hl=pt-br
Para gerar uma senha de app, a conta Google precisa estar com a verificação em duas etapas ativada. A senha de app será utilizada pelo git send-email na autenticação SMTP quando solicitada.
Clonando
Com a configuração acima realizada, podemos realizar o clone do kernel para começar a tradução:
bash
git clone \
--branch docs-next \
--single-branch \
git://git.lwn.net/linux.git \
linux-docs
O --single-branch limita o clone à branch docs-next, evitando buscar as demais branches do repositório.
bash
cd linux-docs/
bash
git switch -c nomeDaSuaBranch
Após criar sua branch de trabalho, edite apenas os arquivos necessários para a contribuição que será realizada exemplo:
bash
Documentation/translations/pt_BR/process/index.rst
Documentation/translations/pt_BR/process/volatile-considered-harmful.rst
Pós clone
Crie um ambiente virtual na raiz do kernel:
bash
python3 -m venv .venv-sphinx
source .venv-sphinx/bin/activate
python -m pip install --upgrade pip
Instalar dependências faltantes:
bash
pip install -r Documentation/sphinx/requirements.txt
pip install ply
Pós tradução
Revise as alterações realizadas:
bash
git diff
Revise se há problemas como espaço em branco:
bash
git diff --check
O comando git diff --check não deve retornar nenhuma mensagem.
Adicione somente os arquivos modificados que fazem parte do patch:
bash
git add \
Documentation/translations/pt_BR/process/index.rst \
Documentation/translations/pt_BR/process/volatile-considered-harmful.rst
Evite usar git add .
Revisar conteúdo em staging:
bash
git diff --cached
git diff --cached --check
Criar commit:
bash
git commit -s
Revisar:
bash
git show HEAD
git show --check HEAD
O summary deve ser curto e descritivo, com aproximadamente 70–75 caracteres no máximo. O corpo da mensagem deve ser quebrado em aproximadamente 75 colunas.
```bash docs: translations: pt_BR: translate volatile-considered-harmful.rst
Translate volatile-considered-harmful.rst into Brazilian Portuguese and add it to the pt_BR process documentation index.
Assisted-by: LLM Signed-off-by: Seu Nome seu-email@example.com ``` Essa primeira linha será o subject do email
Para validar ou corrigir a mensagem:
bash
git commit --amend
Verificando:
bash
git log -1 --format=full
Testando a documentação:
bash
make htmldocs
Opcionalmente:
bash
make pdfdocs
Criando patch
bash
rm -rf /tmp/volatile-patch
mkdir -p /tmp/volatile-patch
bash
git format-patch -1 HEAD -o /tmp/volatile-patch
Isso criaria algo assim:
bash
/tmp/volatile-patch/0001-docs-translations-pt_BR-translate-volatile-considere.patch
Lendo seu patch (antes de enviar): ```bash cat /tmp/volatile-patch/0001-*.patch
ou
git format-patch -1 HEAD --stdout | less ```
Rode o script sobre o patch que será enviado:
bash
./scripts/checkpatch.pl --strict \
/tmp/volatile-patch/0001-*.patch
Se preparando para envio do patch
Descobrindo os destinatários:
bash
./scripts/get_maintainer.pl \
/tmp/volatile-patch/0001-*.patch
Exemplo:
Daniel Pereira (maintainer:PORTUGUESE (BRAZILIAN) TRANSLATION)
Jonathan Corbet (maintainer:DOCUMENTATION)
Shuah Khan (reviewer:DOCUMENTATION)
Randy Dunlap (reviewer:DOCUMENTATION)
linux-doc@vger.kernel.org (open list)
linux-kernel@vger.kernel.org (open list)
O script pode retornar mais pessoas do que as que é preciso, para isso priorize o envio para: 1. mantenedor específico; 2. mantenedores do subsistema; 3. reviewers indicados; 4. mailing lists relevantes.
Normalmente: - mantenedores diretamente responsáveis vão em To; - reviewers e demais interessados vão em Cc; - as mailing lists relevantes também devem ser incluídas.
Não envie para pessoas ou listas sem relação com o patch.
Testando o envio:
bash
git send-email \
--dry-run \
--confirm=always \
--to="Daniel Pereira <danielmaraboo@gmail.com>" \
--to="Jonathan Corbet <corbet@lwn.net>" \
--cc="Shuah Khan <skhan@linuxfoundation.org>" \
--cc="Randy Dunlap <rdunlap@infradead.org>" \
--cc="linux-doc@vger.kernel.org" \
--cc="linux-kernel@vger.kernel.org" \
--cc="Seu Nome <seu-email@example.com>" \
/tmp/volatile-patch/0001-*.patch
No dry-run nenhum email é enviado, o que esperamos com esse teste é um retorno: Result: OK, também confira:
bash
From:
To:
Cc:
Subject:
Pode aparecer: ```bash The following files are 8bit, but do not declare a Content-Transfer-Encoding.
Declare which 8bit encoding to use [default: UTF-8]?
``
Casosendemail.assume8bitEncodingnão esteja configurado, o Git pode solicitar o encoding ao encontrar caracteres não ASCII. Nesse caso, pressioneENTER` para aceitar o padrão UTF-8.
Envio real!!
bash
git send-email \
--confirm=always \
--to="Daniel Pereira <danielmaraboo@gmail.com>" \
--to="Jonathan Corbet <corbet@lwn.net>" \
--cc="Shuah Khan <skhan@linuxfoundation.org>" \
--cc="Randy Dunlap <rdunlap@infradead.org>" \
--cc="linux-doc@vger.kernel.org" \
--cc="linux-kernel@vger.kernel.org" \
--cc="Seu Nome <seu-email@example.com>" \
/tmp/volatile-patch/0001-*.patch
Quando aparecer:
bash
Send this email? ([y]es|[n]o|[e]dit|[q]uit|[a]ll):
Confira:
bash
To
Cc
Subject
Estando correto: y
Um envio bem-sucedido retorna: Result: 250
Detalhes:
- Salve o message-ID:
<20260830205912.478358-1-lucasadramalho@gmail.com>
Isso será importante para você conseguir acompanhar pela lore.kernel.org e referenciar patches antigos em V2, V3, etc, exemplo de como o link ficaria:
bash
https://lore.kernel.org/all/20260830205912.478358-1-lucasadramalho@gmail.com/
Importante notar que: o corpo deve ser quebrado em aproximadamente 75 colunas.
Enviando V!=1
Não é preciso criar um novo commit, para revisões simples do mesmo patch:
bash
git add arquivo
bash
git commit --amend
Caso alguém responda com Reviewed-by, preserve os trailers
bash
Assisted-by: ...
Reviewed-by: Reviewer <reviewer@example.com>
Signed-off-by: Seu Nome <seu-email@example.com>
OBS.: Se uma nova versão alterar substancialmente o patch, trailers como Reviewed-by:, Tested-by: e Acked-by: podem deixar de ser aplicáveis. Remova os trailers cuja revisão, teste ou aprovação tenha sido invalidada e mencione a remoção no changelog da nova versão.
Gerando V2
bash
rm -rf /tmp/volatile-v2
mkdir -p /tmp/volatile-v2
bash
git format-patch \
-v2 \
-1 HEAD \
-o /tmp/volatile-v2
Adicionando changelog
bash
vim /tmp/volatile-v2/v2-0001-*.patch
Procure por: ```bash Signed-off-by: ...
diffstat... ```
Adicione depois dos ---:
```bash
Changes in v2: - Address review comments from Reviewer Name. - Fix terminology in the translated text. - Fix indentation in the process index.
v1: https://lore.kernel.org/r/MESSAGE-ID-DA-V1 ```
O conteúdo após --- não faz parte do commit final aplicado. Isso garante que não entre no histórico de commits, poluindo sem necessidade esse.
Changelog não pertence ao commit.
Extras
Verificando atualização da tradução
Para verificar se a tradução está sincronizada com sua versão original:
bash
tools/docs/checktransupdate.py \
Documentation/translations/pt_BR/process/volatile-considered-harmful.rst
Checklist V1
bash
[ ] branch criada a partir da árvore correta
[ ] alterações revisadas
[ ] git diff --check
[ ] make htmldocs
[ ] checktransupdate.py, quando aplicável
[ ] git add somente dos arquivos corretos
[ ] git diff --cached
[ ] git diff --cached --check
[ ] git commit -s
[ ] Signed-off-by presente
[ ] git show --check HEAD
[ ] git format-patch
[ ] patch revisado com less/cat
[ ] checkpatch.pl --strict
[ ] get_maintainer.pl
[ ] To e Cc revisados
[ ] git send-email --dry-run
[ ] Subject revisado
[ ] encoding UTF-8 correto
[ ] Result: OK no dry-run
[ ] envio real
[ ] Result: 250
[ ] Message-ID salvo
[ ] link do lore salvo
Checklist V!=1
[ ] review lido
[ ] alterações feitas
[ ] trailers recebidos adicionados
[ ] git commit --amend
[ ] testes repetidos
[ ] git format-patch -vN
[ ] Changes in vN adicionado após ---
[ ] Link to vN-1 adicionado
[ ] checkpatch.pl
[ ] dry-run
[ ] envio real
[ ] novo Message-ID salvo
Lançamentos do Kernel
| Tipo | Versão | Lançamento | Links |
|---|