]>
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 | |
3d5583cc | 96 | from Format->Paragraph Style->Preformatted (Ctrl-7) |
a6cd6bf9 RD |
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 | ||
803cfe26 EK |
179 | You can also generate patches with 'git format-patch' and then use Mutt |
180 | to send them: | |
181 | $ mutt -H 0001-some-bug-fix.patch | |
182 | ||
a6cd6bf9 RD |
183 | Config options: |
184 | It should work with default settings. | |
185 | However, it's a good idea to set the "send_charset" to: | |
186 | set send_charset="us-ascii:utf-8" | |
187 | ||
91633a6d EK |
188 | Mutt is highly customizable. Here is a minimum configuration to start |
189 | using Mutt to send patches through Gmail: | |
190 | ||
191 | # .muttrc | |
192 | # ================ IMAP ==================== | |
193 | set imap_user = '[email protected]' | |
194 | set imap_pass = 'yourpassword' | |
195 | set spoolfile = imaps://imap.gmail.com/INBOX | |
196 | set folder = imaps://imap.gmail.com/ | |
197 | set record="imaps://imap.gmail.com/[Gmail]/Sent Mail" | |
198 | set postponed="imaps://imap.gmail.com/[Gmail]/Drafts" | |
199 | set mbox="imaps://imap.gmail.com/[Gmail]/All Mail" | |
200 | ||
201 | # ================ SMTP ==================== | |
202 | set smtp_url = "smtp://[email protected]:587/" | |
203 | set smtp_pass = $imap_pass | |
204 | set ssl_force_tls = yes # Require encrypted connection | |
205 | ||
206 | # ================ Composition ==================== | |
207 | set editor = `echo \$EDITOR` | |
208 | set edit_headers = yes # See the headers when editing | |
209 | set charset = UTF-8 # value of $LANG; also fallback for send_charset | |
210 | # Sender, email address, and sign-off line must match | |
211 | unset use_domain # because joe@localhost is just embarrassing | |
212 | set realname = "YOUR NAME" | |
213 | set from = "[email protected]" | |
214 | set use_from = yes | |
215 | ||
216 | The Mutt docs have lots more information: | |
217 | http://dev.mutt.org/trac/wiki/UseCases/Gmail | |
218 | http://dev.mutt.org/doc/manual.html | |
219 | ||
a6cd6bf9 RD |
220 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
221 | Pine (TUI) | |
222 | ||
223 | Pine has had some whitespace truncation issues in the past, but these | |
224 | should all be fixed now. | |
225 | ||
226 | Use alpine (pine's successor) if you can. | |
227 | ||
228 | Config options: | |
229 | - quell-flowed-text is needed for recent versions | |
230 | - the "no-strip-whitespace-before-send" option is needed | |
231 | ||
232 | ||
233 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
234 | Sylpheed (GUI) | |
235 | ||
236 | - Works well for inlining text (or using attachments). | |
237 | - Allows use of an external editor. | |
a6cd6bf9 RD |
238 | - Is slow on large folders. |
239 | - Won't do TLS SMTP auth over a non-SSL connection. | |
240 | - Has a helpful ruler bar in the compose window. | |
241 | - Adding addresses to address book doesn't understand the display name | |
242 | properly. | |
243 | ||
244 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
245 | Thunderbird (GUI) | |
246 | ||
e0e34e97 RL |
247 | Thunderbird is an Outlook clone that likes to mangle text, but there are ways |
248 | to coerce it into behaving. | |
a6cd6bf9 | 249 | |
d50ca078 | 250 | - Allow use of an external editor: |
a6cd6bf9 RD |
251 | The easiest thing to do with Thunderbird and patches is to use an |
252 | "external editor" extension and then just use your favorite $EDITOR | |
253 | for reading/merging patches into the body text. To do this, download | |
254 | and install the extension, then add a button for it using | |
255 | View->Toolbars->Customize... and finally just click on it when in the | |
256 | Compose dialog. | |
257 | ||
d50ca078 | 258 | Please note that "external editor" requires that your editor must not |
a02b4fc2 | 259 | fork, or in other words, the editor must not return before closing. |
d50ca078 GS |
260 | You may have to pass additional flags or change the settings of your |
261 | editor. Most notably if you are using gvim then you must pass the -f | |
262 | option to gvim by putting "/usr/bin/gvim -f" (if the binary is in | |
263 | /usr/bin) to the text editor field in "external editor" settings. If you | |
264 | are using some other editor then please read its manual to find out how | |
265 | to do this. | |
266 | ||
e0e34e97 RL |
267 | To beat some sense out of the internal editor, do this: |
268 | ||
e0e34e97 RL |
269 | - Edit your Thunderbird config settings so that it won't use format=flowed. |
270 | Go to "edit->preferences->advanced->config editor" to bring up the | |
f9a0974d | 271 | thunderbird's registry editor. |
e0e34e97 | 272 | |
f9a0974d | 273 | - Set "mailnews.send_plaintext_flowed" to "false" |
6989b5bb | 274 | |
f9a0974d | 275 | - Set "mailnews.wraplength" from "72" to "0" |
6989b5bb | 276 | |
f9a0974d | 277 | - "View" > "Message Body As" > "Plain Text" |
e0e34e97 | 278 | |
f9a0974d | 279 | - "View" > "Character Encoding" > "Unicode (UTF-8)" |
e0e34e97 | 280 | |
a6cd6bf9 RD |
281 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
282 | TkRat (GUI) | |
283 | ||
284 | Works. Use "Insert file..." or external editor. | |
285 | ||
1b6bcdbe TH |
286 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
287 | Gmail (Web GUI) | |
288 | ||
5ce9f07b DY |
289 | Does not work for sending patches. |
290 | ||
291 | Gmail web client converts tabs to spaces automatically. | |
292 | ||
293 | At the same time it wraps lines every 78 chars with CRLF style line breaks | |
294 | although tab2space problem can be solved with external editor. | |
295 | ||
296 | Another problem is that Gmail will base64-encode any message that has a | |
297 | non-ASCII character. That includes things like European names. | |
1b6bcdbe | 298 | |
a6cd6bf9 | 299 | ### |