]> diplodocus.org Git - nmh/blob - NEWS
Simplified m_strn() per Ralph's suggestions.
[nmh] / NEWS
1 #
2 # NEWS - Release notes for nmh 1.6
3 #
4
5 Welcome to nmh, the new version of the classic MH mail handling system.
6 It's been nearly two years since the last release of nmh, and there have
7 been a number of significant changes since the last release. Long-time
8 MH and nmh uses should read careful the NOTEABLE CHANGES section, as there
9 are some significant changes to nmh behavior. Otherwise, please see the
10 README and INSTALL files for help on getting started with nmh.
11
12 ------------
13 NEW FEATURES
14 ------------
15
16 The following are new features for the 1.6 release of nmh:
17
18 - All nmh programs will now warn about multiple profile entries for
19 the same non-null, non-comment component. In previous versions, all
20 but the first were silently ignored.
21 - mhmail now supports all post(8) options, or optionally can use
22 send(1) with all of its options. Its formerly undocumented -resent
23 switch has been documented. And it has new -attach, -headerfield,
24 and -send/-nosend switches.
25 - Default to flock() locking on OpenBSD and Darwin.
26 - Added -directives support to mhbuild(1) to control whether or not
27 mhbuild will honor MIME directives by default. And added support
28 for special #on/#off/#pop directives to control the MIME directive
29 processing state.
30 - Added -messageid switch to send(1) and post(8). This allows
31 selection of the style to use for generated Message-ID and
32 Content-ID header fields. The default localname style is
33 pid.time@localname, where time is in seconds, and matches previous
34 behavior. The random style replaces the localname with some
35 (pseudo)random bytes and uses microsecond-resolution time.
36 - Added -clobber switch to mhstore(1) to control overwriting of
37 existing files.
38 - Added -outfile switch to mhstore(1).
39 - Added -noall/-all switches to sortm(1). sortm -noall requires
40 a messages argument.
41 - $PAGER overrides the compiled-in default pager command.
42 - Added etc/scan.highlighted format file, as an example of how to
43 highlight/colorize the output of scan(1).
44 - inc(1) now supports a -port switch to specify the port used by the
45 POP server.
46 - pick(1) now decodes MIME-encoded header fields before searching.
47 - The VISUAL and EDITOR environment variables are now supported as fallbacks
48 if the user does not configure an editor entry in their profile.
49 - The format engine (mh_format(5)) now properly accounts for multibyte
50 characters when accounting for column widths.
51 - burst(1) now can burst MIME-formatted digests (messages that contain
52 message/rfc822 parts instead of messages formatted with RFC 934).
53 - All proc entries (showproc, moreproc, etc) can now accept entries that
54 contain spaces and shell metacharacters. If found, such entries will
55 either be space-split or processed by /bin/sh.
56 - A new program, fmttest(1) is included to help debug format files. See
57 NOTABLE CHANGES below.
58 - mhshow/mhstore now have support for RFC-2017 (access-type=url) for
59 external message bodies.
60 - Added -retainsequences switch to refile(1).
61 - A new program, mhfixmsg(1), is included to rewrite MIME messages with
62 various transformations. See NOTABLE CHANGES below.
63 - Added -[no]rmmproc switches to rmm(1).
64 - Added support for Content-Disposition header (RFC 2183) to mhstore(1)
65 and mhn(1) when used with -auto.
66 - All nmh commands now support transactional locking for sequence files.
67 See NOTABLE CHANGES below.
68 - There is no longer a per-folder maximum number of sequences.
69 - For the SMTP MTA TLS can now be negotiated at the beginning of the
70 connection with the -initialtls switch.
71 - Messages can now be selected using a relative offset from some other
72 message, or from the start or end of a sequence. See mh-sequence(5).
73 - The -changecur and -nochangecur switches have been added to mhlist(1).
74 - mhbuild(1) can now encode 8-bit message headers using RFC-2047 encoding
75 rules. See NOTABLE CHANGES below.
76 - The whatnow(1) attach feature will determine the content type of an
77 attachment using a program such as file --mime-type, if available at
78 configuration time. If not, it will use mhshow-suffix- entries as
79 before. The -v switch to attach causes it to display the mhbuild
80 directive that send(1) will use.
81 - mhbuild(1) now supports the -auto/-noauto flags (to be used by send(1)
82 when invoking mhbuild automatically).
83 - mhbuild(1) now is automatically run by send, to insure that all outgoing
84 messages have proper MIME formatting. See NOTABLE CHANGES below.
85 - A new header, "Attach", is supported by mhbuild; it is used to replace
86 previous functionality (which by default used a header named
87 Nmh-Attachment). See NOTABLE CHANGES below.
88 - The default Content-Transfer-Encoding for text parts is now 8bit.
89 - mhbuild(1) now supports a selectable Content-Transfer-Encoding
90 - If nmh was configured with iconv(3) support, mhshow will convert, if
91 necessary, the charset of text/plain content to match the user's
92 locale setting. See NOTABLE CHANGES below.
93 - Added support for %{charset} display string escape to mhshow(1).
94 - The MIME parsing and generating routines now support RFC 2231 extended
95 parameter information.
96 - mh-mime(7) now provides an introduction to nmh's MIME handling.
97 - mhshow(1) will now by default display all text content under one pager,
98 and display markers for non-text and non-inline content. The content
99 markers are changeable via mh-format(5). See NOTABLE CHANGES below.
100
101 -----------------
102 OBSOLETE FEATURES
103 -----------------
104 - Changed exit status of each nmh command's -version and -help
105 switches from 1 to 0.
106 - The following environment variables were deprecated in nmh 1.5
107 and removed from this release:
108 MHPOPDEBUG (use -snoop command line switch instead)
109 MM_NOASK (use -nolist and -nopause command line switches instead)
110 NOMHNPROC (use -nocheckmime command line switch instead)
111 FACEPROC (undocumented faceproc feature removed)
112 - Changed repl and dist default to -noatfile. The default of -atfile
113 was deprecated in nmh 1.5. If there are no requests to maintain
114 -atfile, it will be removed in the future.
115 - The undocumented -queue switch to mhmail has been removed.
116 - spost(8) has been merged into post(8). Its functionality is enabled
117 by selecting the sendmail/pipe mail transport method, described in
118 the mh-tailor(5) man page. The spost -noalias, -backup/-nobackup,
119 -push/-nopush, and -remove/-noremove switches are not supported by
120 post. Note that spost did not support -whom or Dcc, and neither
121 does post when using sendmail/pipe. And spost would expand blind
122 aliases and send them in the message; post with sendmail/pipe
123 refuses to do that. For backward compatibility, spost has been
124 replaced by a simple shell script that exec's post -mts
125 sendmail/pipe. See NOTABLE CHANGES below.
126 - Support for the undocumented and deprecated --enable-nmh-debug configure
127 flag has been removed.
128 - Support for encoding some characters designated as EBCDIC-unsafe
129 via the -ebcdicsafe and -noebcdicsafe switches to mhbuild has
130 been removed.
131 - The configure flag --with-pager has been removed; the default pager
132 is now hardcoded as "more". Users are still free to override the
133 default using the PAGER environment variable or entries in .mh_profile.
134 - The configure flag --with-editor has been removed; the fallback editor
135 if none is configured is "vi".
136 - The support for the undocumented NOPUBLICSEQ preprocessor definition
137 to disable public sequence support has been removed.
138 - Support for the -normalize and -nonormalize switches to the ali(1) and
139 ap(8) commands has been removed.
140 - "make install" no longer strips executables. Use "make install-strip"
141 instead.
142 - The environment variable MM_CHARSET to indicate the native character
143 set is no longer supported. The native character set will be solely
144 determined by the locale settings.
145 - Temporary files are stored in the first non-null location of
146 {MHTMPDIR environment variable, TMPDIR environment variable, MH Path}.
147 They are no longer be stored in the location specified by the TMP
148 environment variable.
149 - Instead of printing PostScript attachments, by default, from mhshow,
150 try to find a suitable viewer.
151 - Support for parallel display of multipart/parallel content has been
152 removed from mhshow; all multipart content will be displayed in
153 serial.
154 - Support for -pause/-nopause switches on mhshow has been removed.
155
156 -------------------
157 DEPRECATED FEATURES
158 -------------------
159 - The undocumented -queue switch to post is deprecated/obsolete
160 and will be removed in the next release. It supports the
161 SMTP XQUE verb, which is obsolete according to
162 http://smtpfilter.sourceforge.net/esmtp.html
163 - conflict(8) is deprecated and will be removed from the next release.
164 - mhtest(8) is deprecated and will be removed from the next release.
165 - msh(1) is deprecated and will be removed from the next release.
166 - Support in alias files for the the "*" address-group is obsolescent
167 and will be removed in a future release.
168
169 ---------
170 BUG FIXES
171 ---------
172
173 - Replaced utilities that operate on pbm files with those that operate
174 on pnm files in etc/mhn.defaults [Bug #15152].
175 - Removed obsolete BUGS section at end of rcvstore(1) man page [Bug #4361].
176 - Fixed -nocc me doesn't account for Alternate-Mailboxes [Bug #36635].
177 - Propagate Mail-Followup-To [Bug #5571].
178 - "mark -sequence cur -delete all" now works for cur as well as any
179 other sequence, to allow clearing of the current message indication.
180 - The first alias contained in a blind list is now expanded. The
181 mh-alias(5) man page was updated to show that blind lists must not
182 be terminated with, or contain, a trailing semicolon [Bug #15604].
183 - Fixed sendfiles(1) to always provide a From: address. Also, updated
184 its switches.
185 - Fixed pick(1) to properly unfold multiple-line header fields by
186 removing newlines instead of replacing them with spaces [Bug #15215].
187 - Removed the artificial limit of 1000 messages at a time for rmmproc.
188 - Fixed decoding of header fields when they contain a character that
189 can't be converted.
190 - post(8) -sasl now honours username in .netrc [Bug #23168]. whom(1),
191 send(1), inc(1), and msgchk(1) also benefit from this fix. And, nmh
192 now supports specification of any valid filename in place of
193 $HOME/.netrc.
194 - Added quoting of local part of invalid address in message being
195 replied to [Bug #26780].
196 - Fix segmentation faults for %(putlit) and %(zputlit) format escapes when
197 the "str" register was NULL.
198 - Encode and decode text MIME types with canonical line breaks properly.
199 - mhstore(1) now obeys its -noverbose switch.
200 - Properly report the input filename when mhbuild encounters errors.
201 - Set the content-transfer-encoding properly when attaching message/rfc822
202 content.
203
204 ---------------
205 NOTABLE CHANGES
206 ---------------
207
208 The biggest changes in this release are in the arena of MIME handling.
209 Specifically relating to MIME composition and display. On the
210 composition front, mhbuild(1) will now automatically be run by send(1)
211 for all drafts. Specifically, mhbuild is now run with the new -auto
212 flag, which will suppress the processing of mhbuild directives and cause
213 mhbuild to silently exit if the draft is already MIME-formatted. When
214 invoking mhbuild manually via the "mime" command at the WhatNow? prompt,
215 mhbuild will behave as before and process mhbuild directives.
216
217 In both cases (automatic and manual invocation) mhbuild will encode email
218 headers according to RFC-2047 rules. Mhbuild also will use RFC 2231
219 encoding rules for MIME parameters when appropriate. In addition, the
220 attach system has been substantially reworked; the new header name is
221 now "Attach" (to better align with other MUA behavior) and cannot be
222 changed by the end-user. The existing "attach" command simply adds
223 the filename(s) to the draft in new Attach: headers, and the actual
224 file processing is done by mhbuild; this attachment processing will
225 take place in either automatic or manual mode.
226
227 On the display front, mhshow(1) will now automatically convert text
228 into the user's native character set using iconv, if nmh was built
229 with iconv support. Also, mhshow will now by default only display
230 text content that was not marked as an attachment. By default all
231 displayed content wll be run under one pager, as opposed to individual
232 pagers for each part as was in the past. Non-displayed parts will be
233 indicated using a marker string, which can be customized by a new
234 mh-format(5) string.
235
236 All nmh utilities now understand RFC 2231-encoded MIME parameters and
237 will automatically convert the encoded parameters into the native
238 character set, when appropriate (again, assuming nmh was built with
239 iconv support).
240
241 In other changes, sequence files are now locked using transactional
242 locks: locks that are held across sequence file reading, modification,
243 and writing. The locking algorithm used for spool files and nmh data
244 files is now runtime configurable.
245
246 For people that struggle with mh-format(5) files, a new utility for testing
247 them has been developed: fmttest(1). It includes the ability to trace the
248 execution of format instructions.
249
250 For users that wish to use Unix utilities on their mail, a new utility
251 to transform MIME messages to more easily-digestable format is now
252 available: mhfixmsg(1). It supports a number of options to control
253 the message transformation.
254
255 For users of spost(8), the support for spost has been rolled into post(8)
256 under a new sendmail/pipe MTS. A shell script emulating the old behavior
257 of spost has been provided.
258
259 As always, feedback is welcome.
260
261 --
262 The nmh team
263 nmh-workers@nongnu.org
264
265 ----------------------------------------------------------------------------
266
267 #
268 # NEWS - Release notes for nmh 1.5
269 #
270
271 Welcome to nmh, the new version of the classic MH mail handling
272 system. Long-time MH and nmh users should read carefully the NOTABLE
273 CHANGES section, as there are some subtle but significant changes
274 to the way nmh now behaves. Otherwise, please see the README and INSTALL
275 files for help on getting started with nmh.
276
277 ------------
278 NEW FEATURES
279 ------------
280
281 The following are new features for the 1.5 release of nmh.
282
283 - Improved performance for TLS encryption of the SMTP protocol.
284 - MH-E and POP support are now always compiled in.
285 - The selection of a locking directory for dot-locking files is now
286 controllable via configure.
287 - fileproc and mhlproc mh-profile are now obeyed by send, rcvdist,
288 and whatnow.
289 - New mh-format instructions have been implemented: %(putlit),
290 %(concataddr), %(myhost), %(myname), %(localmbox). See mh-format(5)
291 for more details.
292 - Nmh's idea of the local mailbox is now configurable via a new profile
293 entry, Local-Mailbox. See mh-profile(5) for more details.
294 - comp, forw, and dist now process all component templates through
295 mh-format(5), and now all support new command line arguments -from,
296 -to, -cc, -fcc, and -subject.
297 - burst(1) now supports any valid message delimiter according to RFC 934.
298 - post(8) now requires a From: header in all drafts that it processes;
299 see NOTABLE CHANGES below for more details.
300 - post(8) can now explicitly control the SMTP envelope address either via
301 the Sender: header or the new Envelope-From: header.
302 - The -attach option is now the default for send (using the header
303 Nmh-Attachment) and -attachformat 1 is the default attachment type.
304 - repl and dist now support new switches -atfile and -noatfile to control
305 the creation of the ./@ link to the message being replied or
306 redistributed. The current default is -atfile.
307 - Support (if available) for readline editing and filename completion at
308 the WhatNow? prompt.
309 - Support for using an external command to filter the body of a message
310 through in mhl. See mhl(1) for more details, specifically, the
311 "format" keyword, the "formatproc" entry in mh-profile(5), and the
312 -fmtproc switch for mhl and repl.
313 - Preliminary support for improved MIME handling when replying to messages!
314 Yes, a long requested feature has a solution. A perl script
315 called replyfilter is available; it is designed to act as a mhl
316 external filter to process MIME messages in a more logical way.
317 It is available in $(srcdir)/docs/contrib/replyfilter or is
318 typically installed as $(prefix)/share/doc/nmh/contrib/replyfilter.
319 See the comments at the top of replyfilter for usage information;
320 it will likely require some adjustment for your site. replyfilter
321 requires the MIME-Tools and MailTools perl modules.
322
323 ----------------------------
324 OBSOLETE/DEPRECATED FEATURES
325 ----------------------------
326
327 The following features have either been removed completely or marked
328 as officially deprecated for removal in a future release of nmh.
329
330 - The creation of the ./@ link to the message being replied or
331 redistributed is deprecated; -noatfile will be the default in the
332 next release. If there are no requests to maintain -atfile it
333 will be removed in a future release.
334 - Old code enabled by the UCI preprocessor definition has been removed.
335 - All configuration options that were formerly only adjustable by editing
336 config.h have either been moved into configure or removed completely.
337 - Support for the built-in ftp client (used when dealing with external-body
338 message parts in MIME messages) has been removed.
339 - The following environment variables are marked as obsolete/deprecated.
340 Support for them will be removed from the next nmh release:
341 MHPOPDEBUG (use -snoop command line switch instead)
342 MM_NOASK (use -nolist and -nopause command line switches instead)
343 NOMHNPROC (use -nocheckmime command line switch instead)
344 FACEPROC (undocumented faceproc feature to be removed)
345 - The hostable option of mts.conf is no longer needed and has been removed.
346
347 ---------------
348 NOTABLE CHANGES
349 ---------------
350
351 The largest change is that post(8) now requires a From: header in all drafts
352 that it processes.
353
354 The impetus for this change has been the evolution of email and client
355 systems. When MH was first developed the norm was to have tightly managed
356 clients that were part of the same domain as a user's email address. This
357 is no longer a valid assumption, and the algorithm used by nmh to determine
358 the user's local mailbox is no longer a reasonable default.
359
360 Unfortunately, the way that nmh uses the user's local mailbox used to happen
361 very late in the message process; it was handled by post during message
362 submission. If no From: header exists in the current draft post would
363 insert one based on it's idea of the local mailbox, which was frequently
364 wrong.
365
366 After a long discussion within the nmh development community, it was
367 decided that the only reasonable way forward was to move the local mailbox
368 handling up a level and place it under more direct control of the end
369 user. post(8) no longer will try to determine the local mailbox name;
370 it will take that information from the draft message. Thus a From: header
371 is now required in all drafts.
372
373 As part of these changes, all message composition utilities now process
374 their component files using mh-format. All of the default component
375 files have been modified to include a From: header in them; this will
376 give the user a chance to see nmh's idea of the local mailbox and modify
377 it if desired. The new mh-profile(5) entry Local-Mailbox can be used
378 to adjust the local mailbox name if the system default is not appropriate.
379
380 So how should end-users adapt to these changes? Here are some suggestions:
381
382 1) If you use the default component files, everything should basically work
383 the same for you. You should see a From: header in the drafts of your
384 messages. If the address you see in the From: header is incorrect
385 you can change it via the Local-Mailbox profile entry. You can also
386 use the -from switch to change it on a per-command basis.
387
388 2) If you have custom component files that include a From: header or
389 you perform custom processing on drafts that end up placing a From:
390 header in the draft message, everything should work as before.
391
392 3) If you have custom component files that do NOT include a From: header
393 then you will have to adapt then to include a From: header. You
394 can either simply hard-code the correct From: header or use the
395 default component files as a guide (see mh-format(5) for more
396 details, specifically the %(localmbox) function).
397
398 The other significant change is the support for filters in mhl. Included
399 in the distribution is replyfilter, a filter designed for sane processing
400 of MIME messages during replies. Since this isn't as integrated into
401 nmh as we would prefer, it's included in the contrib directory as an
402 optional component. Please try it out and give us feedback.
403
404 --
405 The nmh team
406 nmh-workers@nongnu.org
407
408 ----------------------------------------------------------------------------
409
410 #
411 # NEWS - Release notes for nmh 1.4
412 #
413
414 This releases contains numerous bugfixes and a number of new features.
415 The new features include:
416
417 - SASL security layers (encryption) are now supported for the SMTP MTA.
418 - TLS is now supported for the SMTP MTA.
419 - inc can now incorporate mail from Maildir drops.
420 - You can now select the SMTP server and port from either "send" or a
421 user's mh_profile (you could always select the server; that option is
422 now documented). These are available via the -server and -port
423 switches.
424 - All networking code has been modified to use the new networking APIs
425 (getaddrinfo and friends). All networking code (with the exception of
426 the built-in ftp client) now supports IPv6.
427 - New commands 'new', 'fnext', 'fprev', and 'unseen' for showing folders
428 with unseen mail (or mail in any specified sequence), changing to next
429 such folder, changing to previous such folder, and scanning all such
430 folders, respectively. This is based on Luke Mewburn's 'new':
431 http://www.mewburn.net/luke/src/new
432 - nmh will no longer attempt to install a mhn.defaults file that causes
433 mhshow to open its own xterms.
434
435 A large chunk of old code has been garbage collected. Specifically,
436 support for APOP, RPOP, NNTP (including bboards) and MPOP is now gone.
437 Also gone is support for prefixing a \01 in the "servers" entry in
438 mts.conf to iterate over all servers on a named network.
439
440 ----------------------------------------------------------------------------
441
442 #
443 # NEWS - Release notes for nmh 1.3
444 #
445
446 It's been over two years since the 1.2 release; but the changes here are
447 mostly minor; largely bugfixes.
448
449 You should note that we have changed the default configuration to allow
450 all supported forms of address masquerading. For more details please see
451 the --enable-masquerade option to configure, and the mh-tailor and post
452 man pages.