1.. SPDX-License-Identifier: GPL-2.0 2 3Informações sobre clientes de email para Linux 4============================================== 5 6Git 7--- 8 9Hoje em dia a maioria dos desenvolvedores usa ``git send-email`` em vez de 10clientes de email comuns. A página de manual desse comando é bem útil. No lado 11de quem recebe, os mantenedores usam ``git am`` para aplicar os patches. 12 13Se você é novo no ``git``, envie seu primeiro patch para si mesmo. Salve-o 14como texto bruto, incluindo todos os cabeçalhos. Execute ``git am raw_email.txt`` 15e então revise o changelog com ``git log``. Quando isso funcionar, envie o 16patch para a(s) lista(s) de discussão apropriada(s). 17 18Preferências Gerais 19------------------- 20 21Os patches para o kernel Linux são enviados por email, preferencialmente como 22texto inline no corpo da mensagem. Alguns mantenedores aceitam anexos, mas, 23nesse caso, os anexos devem ter o content-type ``text/plain``. Contudo, anexos 24são, em geral, desaconselhados porque dificultam citar trechos do patch durante 25o processo de revisão. 26 27Também é altamente recomendável que você use plain text no corpo do email, tanto 28para patches quanto para outras mensagens. https://useplaintext.email pode ser 29útil para obter informações sobre como configurar seu cliente de email preferido, 30além de listar clientes de email recomendados caso você ainda não tenha preferência. 31 32Clientes de email usados para patches do kernel Linux devem enviar o texto do 33patch sem alterações. Por exemplo, eles não devem modificar ou apagar tabs ou 34espaços, mesmo no início ou no fim das linhas. 35 36Não envie patches com ``format=flowed``. Isso pode causar quebras de linha 37inesperadas e indesejadas. 38 39Não deixe seu cliente de email fazer quebra automática de linha para você. 40Isso também pode corromper seu patch. 41 42Clientes de email não devem modificar a codificação do conjunto de caracteres do 43texto. Patches enviados por email devem usar apenas codificação ASCII ou UTF-8. 44Se você configurar seu cliente de email para enviar mensagens com codificação 45UTF-8, você evita alguns possíveis problemas de charset. 46 47Clientes de email devem gerar e manter "References:" ou "In-Reply-To:" 48cabeçalhos para que o encadeamento de mensagens não seja quebrado. 49 50Copiar e colar (ou recortar e colar) geralmente não funciona para patches 51porque tabs são convertidos em espaços. Usar xclipboard, xclip e/ou xcutsel 52pode funcionar, mas é melhor testar isso você mesmo ou simplesmente evitar 53copiar e colar. 54 55Não use assinaturas PGP/GPG em emails que contenham patches. Isso quebra muitos 56scripts que leem e aplicam os patches. 57(Isso deve ser corrigível.) 58 59É uma boa ideia enviar um patch para si mesmo, salvar a mensagem recebida e 60aplicá-la com sucesso com o comando 'patch' antes de enviar patches para as 61listas de discussão do Linux. 62 63Algumas dicas de clientes de email (MUA) 64---------------------------------------- 65 66Aqui estão algumas dicas específicas de configuração de MUA para editar e enviar 67patches para o kernel Linux. Estas dicas não pretendem ser resumos completos da 68configuração dos pacotes de software. 69 70Legenda: 71 72- TUI = Interface de Usuário Baseada em Texto 73- GUI = Interface Gráfica de Usuário 74 75Alpine (TUI) 76************ 77 78Opções de configuração: 79 80Na seção :menuselection:`Preferências de Envio`: 81 82- :menuselection:`Não Envie Texto com Quebra de Linha Automática` deve estar ``habilitado`` 83- :menuselection:`Remover Espaços em Branco Antes de Enviar` deve estar ``desabilitado`` 84 85Ao compor a mensagem, o cursor deve ser posicionado onde o patch deverá aparecer, 86e então pressionar `CTRL-R` permite especificar o arquivo de patch a ser 87inserido na mensagem. 88 89Claws Mail (GUI) 90**************** 91 92Funciona. Algumas pessoas usam isso com sucesso para patches. 93 94Para inserir um patch, use :menuselection:`Mensagem-->Inserir Arquivo`(`CTRL-I`) 95ou um editor externo. 96 97Se o patch inserido precisar ser editado na janela de composição do 98Claws, a opção "Quebra automática" em 99:menuselection:`Configuração-->Preferências-->Escrever-->Quebra de linha` 100deve estar desabilitada. 101 102Evolution (GUI) 103*************** 104 105Algumas pessoas usam isso com sucesso para patches. 106 107Ao compor o e-mail, selecione: Preformatado 108 em :menuselection:`Formatar-->Estilo de Parágrafo-->Preformatado` (`CTRL-7`) 109 ou na barra de ferramentas 110 111Depois use: 112:menuselection:`Inserir-->Arquivo de Texto...` (`ALT-N x`) 113para inserir o patch. 114 115Você também pode usar ``diff -Nru old.c new.c | xclip``, selecionar 116:menuselection:`Preformatado`, depois colar com o botão do meio. 117 118Kmail (GUI) 119*********** 120 121Algumas pessoas usam o KMail com sucesso para patches. 122 123A configuração padrão de não compor em HTML é apropriada; não a habilite. 124 125Ao compor um email, em opções, desmarque “quebra de linha automática”. A única 126desvantagem é que qualquer texto que você digitar no email não será quebrado 127automaticamente, então você terá que quebrar manualmente o texto antes do patch. 128A maneira mais fácil é compor o email com quebra de linha automática habilitado, 129depois salvá-lo como rascunho. Depois de abri-lo novamente dos rascunhos, ele 130estará com quebras de linha rígidas e você poderá desmarcar “quebra de linha 131automática” sem perder a quebra existente. 132 133No final do seu email, coloque o delimitador de patch comumente usado antes de 134inserir o patch: três hífens (``---``). 135 136Então, no menu :menuselection:`Mensagem`, selecione :menuselection:`inserir arquivo` 137e escolha o seu patch. Como benefício adicional, você pode personalizar a barra 138de ferramentas de criação de mensagens e colocar o ícone :menuselection:`inserir arquivo` lá. 139 140Deixe a janela do compositor larga o suficiente para que nenhuma linha seja 141quebrada. A partir do KMail 1.13.5 (KDE 4.5.4), o KMail aplica quebra de linha 142ao enviar o email se as linhas quebrarem na janela do compositor. Ter a quebra de 143linha desativada no menu Opções não é suficiente. Por isso se o seu patch tiver 144linhas muito longas, você deve deixar a janela do seu compositor bem larga antes 145de enviar o email. Veja: https://bugs.kde.org/show_bug.cgi?id=174034 146 147Você pode assinar anexos com GPG com segurança, mas texto em linha é preferido 148para patches, então não os assine com GPG. Assinar patches que foram inseridos 149como texto em linha torna mais difícil extraí-los de sua codificação 7 bits. 150 151Se você absolutamente precisar enviar patches como anexos em vez de inseri-los 152como texto, clique com o botão direito no anexo e selecione 153:menuselection:`propriedades`, e destaque :menuselection:`Sugerir exibição automática` 154para fazer o anexo ser exibido como texto inserido e ficar mais fácil de 155visualizar. 156 157Ao salvar patches enviados como texto inserido, selecione o email que contém o 158patch no painel da lista de mensagens, clique com o botão direito e selecione 159:menuselection:`salvar como`. Você pode usar o email inteiro sem alterações como 160patch se ele tiver sido composto corretamente. Emails são salvos como leitura e 161escrita apenas para o usuário, então você terá que alterar as permissões para 162torná-los legíveis por grupo e por todos se copiá-los para outro lugar. 163 164Lotus Notes (GUI) 165***************** 166 167Fuja dele. 168 169IBM Verse (Web GUI) 170******************* 171 172Veja Lotus Notes. 173 174Mutt (TUI) 175********** 176 177Muitos desenvolvedores Linux usam ``mutt``, então deve funcionar muito bem. 178 179O mutt não vem com editor, então qualquer editor que você use deve ser usado de 180forma que não haja quebras de linha automáticas. A maioria dos editores tem uma 181opção :menuselection:`Inserir Arquivo` que insere o conteúdo de um arquivo sem 182alterações. 183 184Para usar ``vim`` com o mutt:: 185 186 set editor="vi" 187 188Se estiver usando xclip, digite o comando:: 189 190 :set paste 191 192antes do botão do meio ou shift-insert ou use:: 193 194 :r filename 195 196se você quiser incluir o patch inline. 197(a)ttach funciona bem sem ``set paste``. 198 199Você também pode gerar patches com ``git format-patch`` e depois usar o Mutt 200para enviá-los:: 201 202 $ mutt -H 0001-some-bug-fix.patch 203 204Opções de configuração: 205 206Deve funcionar com as configurações padrão. No entanto, é uma boa ideia definir 207o ``send_charset`` como:: 208 209 set send_charset="us-ascii:utf-8" 210 211O Mutt é altamente personalizável. Aqui está uma configuração mínima para 212começar a usar o Mutt para enviar patches pelo Gmail:: 213 214 # .muttrc 215 # ================ IMAP ==================== 216 set imap_user = 'seuusuario@gmail.com' 217 set imap_pass = 'suasenha' 218 set spoolfile = imaps://imap.gmail.com/INBOX 219 set folder = imaps://imap.gmail.com/ 220 set record="imaps://imap.gmail.com/[Gmail]/Sent Mail" 221 set postponed="imaps://imap.gmail.com/[Gmail]/Drafts" 222 set mbox="imaps://imap.gmail.com/[Gmail]/All Mail" 223 224 # ================ SMTP ==================== 225 set smtp_url = "smtp://usuario@smtp.gmail.com:587/" 226 set smtp_pass = $imap_pass 227 set ssl_force_tls = yes # Exige conexão criptografada 228 229 # ================ Composição ==================== 230 set editor = `echo \$EDITOR` 231 set edit_headers = yes # Exibe os cabeçalhos ao editar 232 set charset = UTF-8 # valor de $LANG; também usado como 233 # fallback para send_charset 234 # Remetente, endereço de e-mail e linha de assinatura devem 235 # corresponder 236 unset use_domain # porque joe@localhost é constrangedor 237 set realname = "SEU NOME" 238 set from = "usuario@gmail.com" 239 set use_from = yes 240 241A documentação do Mutt tem muito mais informações: 242 243 https://gitlab.com/muttmua/mutt/-/wikis/UseCases/Gmail 244 245 http://www.mutt.org/doc/manual/ 246 247Pine (TUI) 248********** 249 250O Pine já teve alguns problemas de truncamento de espaços em branco no passado, 251mas isso deve estar todo corrigido agora. 252 253Use o alpine (sucessor do pine) se possível. 254 255Opções de configuração: 256 257- ``quell-flowed-text`` é necessário para versões recentes 258- a opção ``no-strip-whitespace-before-send`` é necessária 259 260 261Sylpheed (GUI) 262************** 263 264- Funciona bem para inserir texto inline (ou usando anexos). 265- Permite o uso de um editor externo. 266- É lento em pastas grandes. 267- Não fará autenticação TLS SMTP sobre uma conexão não-SSL. 268- Tem uma barra de régua útil na janela de composição. 269- Adicionar endereços ao catálogo de endereços não reconhece corretamente o nome 270 de exibição. 271 272Thunderbird (GUI) 273***************** 274 275O Thunderbird é um clone do Outlook que gosta de bagunçar o texto, mas há formas 276de convencê-lo a se comportar. 277 278Depois de fazer as modificações, incluindo a instalação das extensões, você 279precisa reiniciar o Thunderbird. 280 281- Permitir o uso de um editor externo: 282 283 A forma mais fácil de trabalhar com patches no Thunderbird é usar extensões 284 que abrem seu editor externo favorito. 285 286 Aqui estão alguns exemplos de extensões capazes de fazer isso. 287 288 - "Editor Externo Reativado" 289 290 https://github.com/Frederick888/external-editor-revived 291 292 https://addons.thunderbird.net/en-GB/thunderbird/addon/external-editor-revived/ 293 294 É necessário instalar um "host de mensagens nativas". 295 Leia a wiki, que pode ser encontrada aqui: 296 https://github.com/Frederick888/external-editor-revived/wiki 297 298 - "Editor Externo" 299 300 https://github.com/exteditor/exteditor 301 302 Para isso, baixe e instale a extensão, depois abra a janela de 303 :menuselection:`compor`, adicione um botão para ela usando 304 :menuselection:`Visualizar-->Barras de Ferramentas-->Personalizar...` 305 e então basta clicar no novo botão quando quiser usar o editor externo. 306 307 Observe que o "Editor Externo" exige que seu editor não faça fork, ou seja, 308 o editor não deve retornar antes de fechar. Pode ser necessário passar flags 309 adicionais ou alterar as configurações do seu editor. Principalmente se você 310 estiver usando o gvim, deve passar a opção -f para o gvim colocando 311 ``/usr/bin/gvim --nofork"`` (se o binário estiver em ``/usr/bin``) no campo 312 de editor de texto nas configurações de :menuselection:`editor externo`. Se 313 estiver usando outro editor, consulte seu manual para descobrir como fazer isso. 314 315Para colocar juízo no editor interno, faça o seguinte: 316 317- Edite as configurações do Thunderbird para que ele não use ``format=flowed``! 318 Vá até a janela principal e encontre o botão do menu suspenso principal. 319 :menuselection:`Menu Principal-->Preferências-->Geral-->Editor de Configurações...` 320 para abrir o editor de registro do Thunderbird. 321 322 - Defina ``mailnews.send_plaintext_flowed`` como ``false`` 323 324 - Altere ``mailnews.wraplength`` de ``72`` para ``0`` **ou** instale a 325 extensão "Toggle Line Wrap" 326 327 https://github.com/jan-kiszka/togglelinewrap 328 329 https://addons.thunderbird.net/thunderbird/addon/toggle-line-wrap 330 331 para controlar esse registro dinamicamente. 332 333- Não escreva mensagens em HTML! Vá até a janela principal 334 :menuselection:`Menu Principal-->Configurações da Conta-->suaconta@servidor.algo-->Composição e Endereçamento`! 335 Lá você pode desabilitar a opção "Compor mensagens em formato HTML". 336 337- Abra mensagens apenas como texto simples! Vá até a janela principal 338 :menuselection:`Menu Principal-->Visualizar-->Corpo da Mensagem Como-->Texto Simples`! 339 340TkRat (GUI) 341*********** 342 343Funciona. Use "Inserir arquivo..." ou um editor externo. 344 345Gmail (Web GUI) 346*************** 347 348Não funciona para enviar patches. 349 350O cliente web do Gmail converte tabulações em espaços automaticamente. 351 352Ao mesmo tempo, ele quebra linhas a cada 78 caracteres com quebras de linha no 353estilo CRLF, embora o problema de tab para espaço possa ser resolvido com um 354editor externo. 355 356Outro problema é que o Gmail codifica em base64 qualquer mensagem que tenha um 357caractere não-ASCII. Isso inclui coisas como nomes europeus. 358 359HacKerMaiL (TUI) 360**************** 361 362HacKerMaiL (hkml) é uma ferramenta simples de gerenciamento de e-mails baseada 363em public-inbox que não exige inscrição em listas de discussão. É desenvolvida 364e mantida pelo mantenedor do DAMON e visa oferecer suporte a fluxos de trabalho 365de desenvolvimento simples para o DAMON e para subsistemas gerais do kernel. 366Consulte o README (https://github.com/sjp38/hackermail/blob/master/README.md) 367para mais detalhes. 368 369