Commit | Line | Data |
---|---|---|
a6cd6bf9 RD |
1 | Email clients info for Linux |
2 | ====================================================================== | |
3 | ||
7d19e91b DC |
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 | ||
a6cd6bf9 RD |
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 | ||
04a3302b RL |
79 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
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 | ||
a6cd6bf9 RD |
90 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
91 | Evolution (GUI) | |
92 | ||
93 | Some people use this successfully for patches. | |
94 | ||
95 | When composing mail select: Preformat | |
96 | from Format->Heading->Preformatted (Ctrl-7) | |
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 | ||
d9a6ed1f | 129 | Make the composer window wide enough so that no lines wrap. As of |
5d3687d7 LC |
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 | ||
a6cd6bf9 RD |
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. | |
a6cd6bf9 RD |
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 | ||
e0e34e97 RL |
211 | Thunderbird is an Outlook clone that likes to mangle text, but there are ways |
212 | to coerce it into behaving. | |
a6cd6bf9 | 213 | |
d50ca078 | 214 | - Allow use of an external editor: |
a6cd6bf9 RD |
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 | ||
d50ca078 GS |
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 | ||
e0e34e97 RL |
231 | To beat some sense out of the internal editor, do this: |
232 | ||
e0e34e97 RL |
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 | |
f9a0974d | 235 | thunderbird's registry editor. |
e0e34e97 | 236 | |
f9a0974d | 237 | - Set "mailnews.send_plaintext_flowed" to "false" |
6989b5bb | 238 | |
f9a0974d | 239 | - Set "mailnews.wraplength" from "72" to "0" |
6989b5bb | 240 | |
f9a0974d | 241 | - "View" > "Message Body As" > "Plain Text" |
e0e34e97 | 242 | |
f9a0974d | 243 | - "View" > "Character Encoding" > "Unicode (UTF-8)" |
e0e34e97 | 244 | |
a6cd6bf9 RD |
245 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
246 | TkRat (GUI) | |
247 | ||
248 | Works. Use "Insert file..." or external editor. | |
249 | ||
1b6bcdbe TH |
250 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
251 | Gmail (Web GUI) | |
252 | ||
5ce9f07b DY |
253 | Does not work for sending patches. |
254 | ||
255 | Gmail web client converts tabs to spaces automatically. | |
256 | ||
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. | |
259 | ||
260 | Another problem is that Gmail will base64-encode any message that has a | |
261 | non-ASCII character. That includes things like European names. | |
1b6bcdbe | 262 | |
a6cd6bf9 | 263 | ### |