Randy Dunlap | a6cd6bf | 2007-10-16 23:29:49 -0700 | [diff] [blame] | 1 | Email clients info for Linux |
| 2 | ====================================================================== |
| 3 | |
Dan Carpenter | 7d19e91 | 2014-06-27 18:28:46 -0700 | [diff] [blame] | 4 | Git |
| 5 | ---------------------------------------------------------------------- |
| 6 | These days most developers use `git send-email` instead of regular |
| 7 | email clients. The man page for this is quite good. On the receiving |
| 8 | end, maintainers use `git am` to apply the patches. |
| 9 | |
| 10 | If you are new to git then send your first patch to yourself. Save it |
| 11 | as raw text including all the headers. Run `git am raw_email.txt` and |
| 12 | then review the changelog with `git log`. When that works then send |
| 13 | the patch to the appropriate mailing list(s). |
| 14 | |
Randy Dunlap | a6cd6bf | 2007-10-16 23:29:49 -0700 | [diff] [blame] | 15 | General Preferences |
| 16 | ---------------------------------------------------------------------- |
| 17 | Patches for the Linux kernel are submitted via email, preferably as |
| 18 | inline text in the body of the email. Some maintainers accept |
| 19 | attachments, but then the attachments should have content-type |
| 20 | "text/plain". However, attachments are generally frowned upon because |
| 21 | it makes quoting portions of the patch more difficult in the patch |
| 22 | review process. |
| 23 | |
| 24 | Email clients that are used for Linux kernel patches should send the |
| 25 | patch text untouched. For example, they should not modify or delete tabs |
| 26 | or spaces, even at the beginning or end of lines. |
| 27 | |
| 28 | Don't send patches with "format=flowed". This can cause unexpected |
| 29 | and unwanted line breaks. |
| 30 | |
| 31 | Don't let your email client do automatic word wrapping for you. |
| 32 | This can also corrupt your patch. |
| 33 | |
| 34 | Email clients should not modify the character set encoding of the text. |
| 35 | Emailed patches should be in ASCII or UTF-8 encoding only. |
| 36 | If you configure your email client to send emails with UTF-8 encoding, |
| 37 | you avoid some possible charset problems. |
| 38 | |
| 39 | Email clients should generate and maintain References: or In-Reply-To: |
| 40 | headers so that mail threading is not broken. |
| 41 | |
| 42 | Copy-and-paste (or cut-and-paste) usually does not work for patches |
| 43 | because tabs are converted to spaces. Using xclipboard, xclip, and/or |
| 44 | xcutsel may work, but it's best to test this for yourself or just avoid |
| 45 | copy-and-paste. |
| 46 | |
| 47 | Don't use PGP/GPG signatures in mail that contains patches. |
| 48 | This breaks many scripts that read and apply the patches. |
| 49 | (This should be fixable.) |
| 50 | |
| 51 | It's a good idea to send a patch to yourself, save the received message, |
| 52 | and successfully apply it with 'patch' before sending patches to Linux |
| 53 | mailing lists. |
| 54 | |
| 55 | |
| 56 | Some email client (MUA) hints |
| 57 | ---------------------------------------------------------------------- |
| 58 | Here are some specific MUA configuration hints for editing and sending |
| 59 | patches for the Linux kernel. These are not meant to be complete |
| 60 | software package configuration summaries. |
| 61 | |
| 62 | Legend: |
| 63 | TUI = text-based user interface |
| 64 | GUI = graphical user interface |
| 65 | |
| 66 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 67 | Alpine (TUI) |
| 68 | |
| 69 | Config options: |
| 70 | In the "Sending Preferences" section: |
| 71 | |
| 72 | - "Do Not Send Flowed Text" must be enabled |
| 73 | - "Strip Whitespace Before Sending" must be disabled |
| 74 | |
| 75 | When composing the message, the cursor should be placed where the patch |
| 76 | should appear, and then pressing CTRL-R let you specify the patch file |
| 77 | to insert into the message. |
| 78 | |
| 79 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
Richard Leitner | 04a3302 | 2014-12-02 17:44:36 +0100 | [diff] [blame] | 80 | Claws Mail (GUI) |
| 81 | |
| 82 | Works. Some people use this successfully for patches. |
| 83 | |
| 84 | To insert a patch use Message->Insert File (CTRL+i) or an external editor. |
| 85 | |
| 86 | If the inserted patch has to be edited in the Claws composition window |
| 87 | "Auto wrapping" in Configuration->Preferences->Compose->Wrapping should be |
| 88 | disabled. |
| 89 | |
| 90 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
Randy Dunlap | a6cd6bf | 2007-10-16 23:29:49 -0700 | [diff] [blame] | 91 | Evolution (GUI) |
| 92 | |
| 93 | Some people use this successfully for patches. |
| 94 | |
| 95 | When composing mail select: Preformat |
Ahmed Mohamed Abd EL Mawgood | 3d5583c | 2015-07-16 23:17:36 +0200 | [diff] [blame] | 96 | from Format->Paragraph Style->Preformatted (Ctrl-7) |
Randy Dunlap | a6cd6bf | 2007-10-16 23:29:49 -0700 | [diff] [blame] | 97 | or the toolbar |
| 98 | |
| 99 | Then use: |
| 100 | Insert->Text File... (Alt-n x) |
| 101 | to insert the patch. |
| 102 | |
| 103 | You can also "diff -Nru old.c new.c | xclip", select Preformat, then |
| 104 | paste with the middle button. |
| 105 | |
| 106 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 107 | Kmail (GUI) |
| 108 | |
| 109 | Some people use Kmail successfully for patches. |
| 110 | |
| 111 | The default setting of not composing in HTML is appropriate; do not |
| 112 | enable it. |
| 113 | |
| 114 | When composing an email, under options, uncheck "word wrap". The only |
| 115 | disadvantage is any text you type in the email will not be word-wrapped |
| 116 | so you will have to manually word wrap text before the patch. The easiest |
| 117 | way around this is to compose your email with word wrap enabled, then save |
| 118 | it as a draft. Once you pull it up again from your drafts it is now hard |
| 119 | word-wrapped and you can uncheck "word wrap" without losing the existing |
| 120 | wrapping. |
| 121 | |
| 122 | At the bottom of your email, put the commonly-used patch delimiter before |
| 123 | inserting your patch: three hyphens (---). |
| 124 | |
| 125 | Then from the "Message" menu item, select insert file and choose your patch. |
| 126 | As an added bonus you can customise the message creation toolbar menu |
| 127 | and put the "insert file" icon there. |
| 128 | |
Xishi Qiu | d9a6ed1 | 2013-11-06 13:18:19 -0800 | [diff] [blame] | 129 | Make the composer window wide enough so that no lines wrap. As of |
Lasse Collin | 5d3687d | 2011-01-12 17:00:28 -0800 | [diff] [blame] | 130 | KMail 1.13.5 (KDE 4.5.4), KMail will apply word wrapping when sending |
| 131 | the email if the lines wrap in the composer window. Having word wrapping |
| 132 | disabled in the Options menu isn't enough. Thus, if your patch has very |
| 133 | long lines, you must make the composer window very wide before sending |
| 134 | the email. See: https://bugs.kde.org/show_bug.cgi?id=174034 |
| 135 | |
Randy Dunlap | a6cd6bf | 2007-10-16 23:29:49 -0700 | [diff] [blame] | 136 | You can safely GPG sign attachments, but inlined text is preferred for |
| 137 | patches so do not GPG sign them. Signing patches that have been inserted |
| 138 | as inlined text will make them tricky to extract from their 7-bit encoding. |
| 139 | |
| 140 | If you absolutely must send patches as attachments instead of inlining |
| 141 | them as text, right click on the attachment and select properties, and |
| 142 | highlight "Suggest automatic display" to make the attachment inlined to |
| 143 | make it more viewable. |
| 144 | |
| 145 | When saving patches that are sent as inlined text, select the email that |
| 146 | contains the patch from the message list pane, right click and select |
| 147 | "save as". You can use the whole email unmodified as a patch if it was |
| 148 | properly composed. There is no option currently to save the email when you |
| 149 | are actually viewing it in its own window -- there has been a request filed |
| 150 | at kmail's bugzilla and hopefully this will be addressed. Emails are saved |
| 151 | as read-write for user only so you will have to chmod them to make them |
| 152 | group and world readable if you copy them elsewhere. |
| 153 | |
| 154 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 155 | Lotus Notes (GUI) |
| 156 | |
| 157 | Run away from it. |
| 158 | |
| 159 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 160 | Mutt (TUI) |
| 161 | |
| 162 | Plenty of Linux developers use mutt, so it must work pretty well. |
| 163 | |
| 164 | Mutt doesn't come with an editor, so whatever editor you use should be |
| 165 | used in a way that there are no automatic linebreaks. Most editors have |
| 166 | an "insert file" option that inserts the contents of a file unaltered. |
| 167 | |
| 168 | To use 'vim' with mutt: |
| 169 | set editor="vi" |
| 170 | |
| 171 | If using xclip, type the command |
| 172 | :set paste |
| 173 | before middle button or shift-insert or use |
| 174 | :r filename |
| 175 | |
| 176 | if you want to include the patch inline. |
| 177 | (a)ttach works fine without "set paste". |
| 178 | |
| 179 | Config options: |
| 180 | It should work with default settings. |
| 181 | However, it's a good idea to set the "send_charset" to: |
| 182 | set send_charset="us-ascii:utf-8" |
| 183 | |
| 184 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 185 | Pine (TUI) |
| 186 | |
| 187 | Pine has had some whitespace truncation issues in the past, but these |
| 188 | should all be fixed now. |
| 189 | |
| 190 | Use alpine (pine's successor) if you can. |
| 191 | |
| 192 | Config options: |
| 193 | - quell-flowed-text is needed for recent versions |
| 194 | - the "no-strip-whitespace-before-send" option is needed |
| 195 | |
| 196 | |
| 197 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 198 | Sylpheed (GUI) |
| 199 | |
| 200 | - Works well for inlining text (or using attachments). |
| 201 | - Allows use of an external editor. |
Randy Dunlap | a6cd6bf | 2007-10-16 23:29:49 -0700 | [diff] [blame] | 202 | - Is slow on large folders. |
| 203 | - Won't do TLS SMTP auth over a non-SSL connection. |
| 204 | - Has a helpful ruler bar in the compose window. |
| 205 | - Adding addresses to address book doesn't understand the display name |
| 206 | properly. |
| 207 | |
| 208 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 209 | Thunderbird (GUI) |
| 210 | |
Rob Landley | e0e34e9 | 2011-01-12 17:00:29 -0800 | [diff] [blame] | 211 | Thunderbird is an Outlook clone that likes to mangle text, but there are ways |
| 212 | to coerce it into behaving. |
Randy Dunlap | a6cd6bf | 2007-10-16 23:29:49 -0700 | [diff] [blame] | 213 | |
Giedrius Statkevičius | d50ca07 | 2015-03-09 03:53:45 +0200 | [diff] [blame] | 214 | - Allow use of an external editor: |
Randy Dunlap | a6cd6bf | 2007-10-16 23:29:49 -0700 | [diff] [blame] | 215 | The easiest thing to do with Thunderbird and patches is to use an |
| 216 | "external editor" extension and then just use your favorite $EDITOR |
| 217 | for reading/merging patches into the body text. To do this, download |
| 218 | and install the extension, then add a button for it using |
| 219 | View->Toolbars->Customize... and finally just click on it when in the |
| 220 | Compose dialog. |
| 221 | |
Giedrius Statkevičius | d50ca07 | 2015-03-09 03:53:45 +0200 | [diff] [blame] | 222 | Please note that "external editor" requires that your editor must not |
| 223 | fork, or in other words, the editor must not return before closing. |
| 224 | You may have to pass additional flags or change the settings of your |
| 225 | editor. Most notably if you are using gvim then you must pass the -f |
| 226 | option to gvim by putting "/usr/bin/gvim -f" (if the binary is in |
| 227 | /usr/bin) to the text editor field in "external editor" settings. If you |
| 228 | are using some other editor then please read its manual to find out how |
| 229 | to do this. |
| 230 | |
Rob Landley | e0e34e9 | 2011-01-12 17:00:29 -0800 | [diff] [blame] | 231 | To beat some sense out of the internal editor, do this: |
| 232 | |
Rob Landley | e0e34e9 | 2011-01-12 17:00:29 -0800 | [diff] [blame] | 233 | - Edit your Thunderbird config settings so that it won't use format=flowed. |
| 234 | Go to "edit->preferences->advanced->config editor" to bring up the |
Paul McQuade | f9a0974 | 2014-05-15 13:54:25 -0700 | [diff] [blame] | 235 | thunderbird's registry editor. |
Rob Landley | e0e34e9 | 2011-01-12 17:00:29 -0800 | [diff] [blame] | 236 | |
Paul McQuade | f9a0974 | 2014-05-15 13:54:25 -0700 | [diff] [blame] | 237 | - Set "mailnews.send_plaintext_flowed" to "false" |
Paul Mcquade | 6989b5b | 2011-08-13 12:34:54 -0700 | [diff] [blame] | 238 | |
Paul McQuade | f9a0974 | 2014-05-15 13:54:25 -0700 | [diff] [blame] | 239 | - Set "mailnews.wraplength" from "72" to "0" |
Paul Mcquade | 6989b5b | 2011-08-13 12:34:54 -0700 | [diff] [blame] | 240 | |
Paul McQuade | f9a0974 | 2014-05-15 13:54:25 -0700 | [diff] [blame] | 241 | - "View" > "Message Body As" > "Plain Text" |
Rob Landley | e0e34e9 | 2011-01-12 17:00:29 -0800 | [diff] [blame] | 242 | |
Paul McQuade | f9a0974 | 2014-05-15 13:54:25 -0700 | [diff] [blame] | 243 | - "View" > "Character Encoding" > "Unicode (UTF-8)" |
Rob Landley | e0e34e9 | 2011-01-12 17:00:29 -0800 | [diff] [blame] | 244 | |
Randy Dunlap | a6cd6bf | 2007-10-16 23:29:49 -0700 | [diff] [blame] | 245 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 246 | TkRat (GUI) |
| 247 | |
| 248 | Works. Use "Insert file..." or external editor. |
| 249 | |
Tim Hockin | 1b6bcdb | 2008-11-06 12:53:33 -0800 | [diff] [blame] | 250 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 251 | Gmail (Web GUI) |
| 252 | |
Dave Young | 5ce9f07 | 2010-03-10 15:22:02 -0800 | [diff] [blame] | 253 | Does not work for sending patches. |
Tim Hockin | 1b6bcdb | 2008-11-06 12:53:33 -0800 | [diff] [blame] | 254 | |
Dave Young | 5ce9f07 | 2010-03-10 15:22:02 -0800 | [diff] [blame] | 255 | Gmail web client converts tabs to spaces automatically. |
Tim Hockin | 1b6bcdb | 2008-11-06 12:53:33 -0800 | [diff] [blame] | 256 | |
Dave Young | 5ce9f07 | 2010-03-10 15:22:02 -0800 | [diff] [blame] | 257 | At the same time it wraps lines every 78 chars with CRLF style line breaks |
| 258 | although tab2space problem can be solved with external editor. |
Tim Hockin | 1b6bcdb | 2008-11-06 12:53:33 -0800 | [diff] [blame] | 259 | |
Dave Young | 5ce9f07 | 2010-03-10 15:22:02 -0800 | [diff] [blame] | 260 | Another problem is that Gmail will base64-encode any message that has a |
| 261 | non-ASCII character. That includes things like European names. |
Tim Hockin | 1b6bcdb | 2008-11-06 12:53:33 -0800 | [diff] [blame] | 262 | |
Randy Dunlap | a6cd6bf | 2007-10-16 23:29:49 -0700 | [diff] [blame] | 263 | ### |