Email clients info for Linux
General Preferences
Patches for the Linux kernel are submitted via email, preferably as
inline text in the body of the email. Some maintainers accept
attachments, but then the attachments should have content-type
“text/plain”. However, attachments are generally frowned upon because
it makes quoting portions of the patch more difficult in the patch
review process.
Email clients that are used for Linux kernel patches should send the
patch text untouched. For example, they should not modify or delete tabs
or spaces, even at the beginning or end of lines.
Don’t send patches with “format=flowed”. This can cause unexpected
and unwanted line breaks.
Don’t let your email client do automatic word wrapping for you.
This can also corrupt your patch.
Email clients should not modify the character set encoding of the text.
Emailed patches should be in ASCII or UTF-8 encoding only.
If you configure your email client to send emails with UTF-8 encoding,
you avoid some possible charset problems.
Email clients should generate and maintain References: or In-Reply-To:
headers so that mail threading is not broken.
Copy-and-paste (or cut-and-paste) usually does not work for patches
because tabs are converted to spaces. Using xclipboard, xclip, and/or
xcutsel may work, but it’s best to test this for yourself or just avoid
copy-and-paste.
Don’t use PGP/GPG signatures in mail that contains patches.
This breaks many scripts that read and apply the patches.
(This should be fixable.)
It’s a good idea to send a patch to yourself, save the received message,
and successfully apply it with ‘patch’ before sending patches to Linux
mailing lists.
Some email client (MUA) hints
Here are some specific MUA configuration hints for editing and sending
patches for the Linux kernel. These are not meant to be complete
software package configuration summaries.
Legend:
TUI = text-based user interface
GUI = graphical user interface
1 | Alpine (TUI) |
Evolution (GUI)
Some people use this successfully for patches.
When composing mail select: Preformat
from Format->Heading->Preformatted (Ctrl-7)
or the toolbar
Then use:
Insert->Text File… (Alt-n x)
to insert the patch.
You can also “diff -Nru old.c new.c | xclip”, select Preformat, then
paste with the middle button.
1 | Kmail (GUI) |
Lotus Notes (GUI)
Run away from it.
1 | Mutt (TUI) |
Pine (TUI)
Pine has had some whitespace truncation issues in the past, but these
should all be fixed now.
Use alpine (pine’s successor) if you can.
Config options:
- quell-flowed-text is needed for recent versions
- the “no-strip-whitespace-before-send” option is needed
1 | Sylpheed (GUI) |
Thunderbird (GUI)
By default, thunderbird likes to mangle text, but there are ways to
coerce it into being nice.
Under account settings, composition and addressing, uncheck “Compose
messages in HTML format”.Edit your Thunderbird config settings to tell it not to wrap lines:
user_pref("mailnews.wraplength", 0);
Edit your Thunderbird config settings so that it won’t use format=flowed:
user_pref("mailnews.send_plaintext_flowed", false);
You need to get Thunderbird into preformat mode:
. If you compose HTML messages by default, it’s not too hard. Just select
“Preformat” from the drop-down box just under the subject line.
. If you compose in text by default, you have to tell it to compose a new
message in HTML (just as a one-off), and then force it from there back to
text, else it will wrap lines. To do this, use shift-click on the Write
icon to compose to get HTML compose mode, then select “Preformat” from
the drop-down box just under the subject line.Allows use of an external editor:
The easiest thing to do with Thunderbird and patches is to use an
“external editor” extension and then just use your favorite $EDITOR
for reading/merging patches into the body text. To do this, download
and install the extension, then add a button for it using
View->Toolbars->Customize… and finally just click on it when in the
Compose dialog.
1 | TkRat (GUI) |
Gmail (Web GUI)
If you just have to use Gmail to send patches, it CAN be made to work. It
requires a bit of external help, though.
The first problem is that Gmail converts tabs to spaces. This will
totally break your patches. To prevent this, you have to use a different
editor. There is a firefox extension called “ViewSourceWith”
(https://addons.mozilla.org/en-US/firefox/addon/394) which allows you to
edit any text box in the editor of your choice. Configure it to launch
your favorite editor. When you want to send a patch, use this technique.
Once you have crafted your messsage + patch, save and exit the editor,
which should reload the Gmail edit box. GMAIL WILL PRESERVE THE TABS.
Hoorah. Apparently you can cut-n-paste literal tabs, but Gmail will
convert those to spaces upon sending!
The second problem is that Gmail converts tabs to spaces on replies. If
you reply to a patch, don’t expect to be able to apply it as a patch.
The last problem is that Gmail will base64-encode any message that has a
non-ASCII character. That includes things like European names. Be aware.
Gmail is not convenient for lkml patches, but CAN be made to work.
###