X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/d63aff26a21021822af6cfa3fbacc572f2b6869f..16b794c5709dc07a81534fd90fed5d1f25f3fbea:/NEWS diff --git a/NEWS b/NEWS index 5c8116c8..1cb36eb3 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,430 @@ +# +# NEWS - Release notes for nmh 1.7 +# + +Welcome to nmh, the new version of the classic MH mail handling system. +It's been over three years since the last release of nmh, and there have +been a number of significant changes since the last release. Long-time +MH and nmh uses should read careful the NOTEABLE CHANGES section, as there +are some significant changes to nmh behavior. Otherwise, please see the +README and INSTALL files for help on getting started with nmh. + +--------------- +NOTABLE CHANGES +--------------- + +The largest notable changes in the 1.7 release are: + +- Complete unification of network security support. All network protocols + (currently, POP and SMTP) have been refactored to use a common set of + security routines. This means all protocols support all SASL mechanisms + (via the Cyrus-SASL library) and TLS. TLS support has been strengthened + to perform certificate name validation and to require TLS 1.1 as a + minimum protocol. Also, all protocols can make use of the OAuth2/XOAUTH + SASL mechanism, which is supported by gmail. +- send(1) now supports adding switches to post(8) based on the address or + domain of the email address in the From: header; this more easily allows + users to support multiple identities. +- A generic facility for passing arguments to filter programs in repl(1) + by use of the -convertargs switch. +- Native support for the manipulation of iCalendar requests; see mhical(1) + for more details. + +------------ +NEW FEATURES +------------ + +The following are new features for the 1.7 release of nmh: + +- When building from source, configure will derive ${prefix} from an existing + nmh installation if it finds one in your $PATH. +- Added welcome message when nmh detects that its version changed. +- The default locations for configuration files and support binaries + have been changed. Configuration files now install into ${sysconfdir}/nmh, + and support binaries are placed in ${libexecdir}/nmh. If you are upgrading + an existing installation you should look for old configuration files in + ${sysconfdir} and merge any local customizations into the new files in + ${sysconfdir}/nmh, then remove the old files. ${libdir} will also contain + obsolete support programs that should be removed. +- All TLS connections now perform certificate validation (including hostname + matching) by default; can be disabled on a per-application basis. +- post now defaults to port 587 on 'smtp' message submission. +- A value of 0 for the width switch of scan(1), inc(1), ap(1), dp(1), + fmttest(1), and mhl(1) now means as many characters as the format + engine can produce [Bug #15274]. That amount is limited by internal + buffers. +- If a component has trailing whitespace, e.g., body:component="> ", + mhl now trims that whitespace off when filtering blank text lines. +- An "rtrim" flag has been added to mhl to remove any trailing + whitespace from filtered text lines. A corresponding "nortrim" flag + has also been added. +- Added getmymbox and getmyaddr mh-format(5) function escapes. +- New -[no]changecur, -fixtype, -decodetypes, and -[no]crlflinebreaks switches + have been added to mhfixmsg(1). +- mhfixmsg now removes an extraneous trailing semicolon from header + parameter lists. +- Added -convertargs switch to repl(1), to pass arguments to programs + specified in the user's profile or mhn.defaults to convert message + content. +- Added mhical(1), to display, reply to, and cancel iCalendar (RFC 5545) + event requests. +- added multiply format function +- "mhparam bindir" prints the path to the directory containing the public + executables (${bindir}). +- new "-prefer" switch for mhshow (and mhlist and mhshow), to allow specifying + the preferred content types to show, if present in a multipart alternative. +- mh-format now has %(kilo) and %(kibi) functions, to allow printing + numbers as, for example, "10K", or "2.3Mi" +- Support for the -sendmail flag to send/post to change the sendmail + binary when using the sendmail/pipe MTS. +- Added support to send(1) to specify switches to post(1) based on address or + domain name in From: header line in message draft. +- post(8) -snoop now attempts to decode base64-encoded SMTP traffic. +- folder(1) -nocreate now prints a warning message for a non-existent folder. +- mhfixmsg(1) now allows -decodetext binary, though 8bit is still the default. +- inc(1) and msgchk(1) now support TLS encryption natively. +- All network protocols support the XOAUTH authentication mechanism. +- Support for SMTPUTF8 (RFC 6531) has been added. mhshow(1) already supported + RFC 6532, assuming all 8-bit message header field bodies are UTF-8 and use + of a UTF-8 locale. +- mhfixmsg now replaces RFC 2047 encoding with RFC 2231 encoding of name and + filename parameters in Content-Type and Content-Disposition headers, + respectively. +- If a message body contains 8-bit bytes, post(8) uses SMTP 8BITMIME if the + server supports it. If not, post fails with a message to the user to + encode the message for 7-bit transport. +- Fewer lseek(2)s will be used when reading headers in the common case. +- Single-character headers can be reliably formatted, etc., instead of + apparently being missing. +- ./configure's --enable-debug has been removed; it did nothing. +- configure now defaults to enabling each of TLS and Cyrus SASL if the + necessary headers and libraries are found. +- Moved build_nmh to top-level directory. +- Better error reporting for connections to network services + +--------- +BUG FIXES +--------- + +- The format scanner no longer subtracts 1 from the width. This has the + effect of no longer counting the trailing newline in the output of + scan(1), inc(1), and the other programs that rely on the format scanner. +- The first character of some very short (less than 4 characters) message + bodies is no longer dropped. +- mhfixmsg now adds a Content-Transfer-Encoding header at the message level, + if needed after decoding text parts. +- mhbuild now checks whether all text parts need a Content-Transfer-Encoding + header, not just those with a character set not specified. +- mhbuild no longer parses lines that start with # as directives with + -nodirectives. +- repl now makes sure that any Fcc header in a replied-to message is not + copied into the outgoing draft by default, and that the -fcc switch + actually works in the absence of a Fcc header in the replied-to message. +- A Content-ID is generated for message/external-body entities as required + by RFC 2045, even if -nocontentid is supplied to mhbuild. +- post will now expand aliases on a "From" line when doing a BCC [Bug #51098]. +- scan can now handle empty files without violating an assert [Bug #51693]. + +------------------- +DEPRECATED FEATURES +------------------- + +- Support for the MHPDEBUG environment variable is deprecated and will be + removed from a future nmh release. Instead, use the -debug switch to pick. +- With the move of support binaries from ${libdir} to ${libexecdir}/nmh, the + mostly undocumented 'libdir' mhparam(1) component has been replaced by a + new 'libexecdir' component. 'libdir' will be removed in a future release. + +----------------- +OBSOLETE FEATURES +----------------- + +- The undocumented -queue switch to post was deprecated in nmh 1.6, and was + removed in this release. +- conflict(8) was deprecated in nmh 1.6, and was removed in this release. +- mhtest(8) was deprecated in nmh 1.6, and was removed in this release. +- msh(1) was deprecated in nmh 1.6, and was removed in this release. +- Support in alias files for the the "*" address-group (everyone) was + deprecated in nmh 1.6, and was removed in this release. +- Support for multiple hostnames in the "servers" entry of mts.conf has + been removed. +- Support in alias files for expanding aliases based on group membership + (=) and primary group (+) has been removed. + +As always, feedback is welcome. + +-- +The nmh team +nmh-workers@nongnu.org + +---------------------------------------------------------------------------- + +# +# NEWS - Release notes for nmh 1.6 +# + +Welcome to nmh, the new version of the classic MH mail handling system. +It's been nearly two years since the last release of nmh, and there have +been a number of significant changes since the last release. Long-time +MH and nmh uses should read careful the NOTEABLE CHANGES section, as there +are some significant changes to nmh behavior. Otherwise, please see the +README and INSTALL files for help on getting started with nmh. + +------------ +NEW FEATURES +------------ + +The following are new features for the 1.6 release of nmh: + +- All nmh programs will now warn about multiple profile entries for + the same non-null, non-comment component. In previous versions, all + but the first were silently ignored. +- mhmail now supports all post(8) options, or optionally can use + send(1) with all of its options. Its formerly undocumented -resent + switch has been documented. And it has new -attach, -headerfield, + and -send/-nosend switches. +- Default to flock() locking on OpenBSD and Darwin. +- Added -directives support to mhbuild(1) to control whether or not + mhbuild will honor MIME directives by default. And added support + for special #on/#off/#pop directives to control the MIME directive + processing state. +- Added -messageid switch to send(1) and post(8). This allows + selection of the style to use for generated Message-ID and + Content-ID header fields. The default localname style is + pid.time@localname, where time is in seconds, and matches previous + behavior. The random style replaces the localname with some + (pseudo)random bytes and uses microsecond-resolution time. +- Added -clobber switch to mhstore(1) to control overwriting of + existing files. +- Added -outfile switch to mhstore(1). +- Added -noall/-all switches to sortm(1). sortm -noall requires + a messages argument. +- $PAGER overrides the compiled-in default pager command. +- Added etc/scan.highlighted format file, as an example of how to + highlight/colorize the output of scan(1). +- inc(1) now supports a -port switch to specify the port used by the + POP server. +- pick(1) now decodes MIME-encoded header fields before searching. +- The VISUAL and EDITOR environment variables are now supported as fallbacks + if the user does not configure an editor entry in their profile. +- The format engine (mh_format(5)) now properly accounts for multibyte + characters when accounting for column widths. +- burst(1) now can burst MIME-formatted digests (messages that contain + message/rfc822 parts instead of messages formatted with RFC 934). +- All proc entries (showproc, moreproc, etc) can now accept entries that + contain spaces and shell metacharacters. If found, such entries will + either be space-split or processed by /bin/sh. +- A new program, fmttest(1) is included to help debug format files. See + NOTABLE CHANGES below. +- mhshow/mhstore now have support for RFC-2017 (access-type=url) for + external message bodies. +- Added -retainsequences switch to refile(1). +- A new program, mhfixmsg(1), is included to rewrite MIME messages with + various transformations. See NOTABLE CHANGES below. +- Added -[no]rmmproc switches to rmm(1). +- Added support for Content-Disposition header (RFC 2183) to mhstore(1) + and mhn(1) when used with -auto. +- All nmh commands now support transactional locking for sequence files. + See NOTABLE CHANGES below. +- There is no longer a per-folder maximum number of sequences. +- For the SMTP MTA TLS can now be negotiated at the beginning of the + connection with the -initialtls switch. +- Messages can now be selected using a relative offset from some other + message, or from the start or end of a sequence. See mh-sequence(5). +- The -changecur and -nochangecur switches have been added to mhlist(1). +- mhbuild(1) can now encode 8-bit message headers using RFC-2047 encoding + rules. See NOTABLE CHANGES below. +- The whatnow(1) attach feature will determine the content type of an + attachment using a program such as file --mime-type, if available at + configuration time. If not, it will use mhshow-suffix- entries as + before. The -v switch to attach causes it to display the mhbuild + directive that send(1) will use. +- mhbuild(1) now supports the -auto/-noauto flags (to be used by send(1) + when invoking mhbuild automatically). +- mhbuild(1) now is automatically run by send, to insure that all outgoing + messages have proper MIME formatting. See NOTABLE CHANGES below. +- A new header, "Attach", is supported by mhbuild; it is used to replace + previous functionality (which by default used a header named + Nmh-Attachment). See NOTABLE CHANGES below. +- The default Content-Transfer-Encoding for text parts is now 8bit. +- mhbuild(1) now supports a selectable Content-Transfer-Encoding +- If nmh was configured with iconv(3) support, mhshow will convert, if + necessary, the charset of text/plain content to match the user's + locale setting. See NOTABLE CHANGES below. +- Added support for %{charset} display string escape to mhshow(1). +- The MIME parsing and generating routines now support RFC 2231 extended + parameter information. +- mh-mime(7) now provides an introduction to nmh's MIME handling. +- mhshow(1) will now by default display all text content under one pager, + and display markers for non-text and non-inline content. The content + markers are changeable via mh-format(5). See NOTABLE CHANGES below. + +----------------- +OBSOLETE FEATURES +----------------- +- Changed exit status of each nmh command's -version and -help + switches from 1 to 0. +- The following environment variables were deprecated in nmh 1.5 + and removed from this release: + MHPOPDEBUG (use -snoop command line switch instead) + MM_NOASK (use -nolist and -nopause command line switches instead) + NOMHNPROC (use -nocheckmime command line switch instead) + FACEPROC (undocumented faceproc feature removed) +- Changed repl and dist default to -noatfile. The default of -atfile + was deprecated in nmh 1.5. If there are no requests to maintain + -atfile, it will be removed in the future. +- The undocumented -queue switch to mhmail has been removed. +- spost(8) has been merged into post(8). Its functionality is enabled + by selecting the sendmail/pipe mail transport method, described in + the mh-tailor(5) man page. The spost -noalias, -backup/-nobackup, + -push/-nopush, and -remove/-noremove switches are not supported by + post. Note that spost did not support -whom or Dcc, and neither + does post when using sendmail/pipe. And spost would expand blind + aliases and send them in the message; post with sendmail/pipe + refuses to do that. For backward compatibility, spost has been + replaced by a simple shell script that exec's post -mts + sendmail/pipe. See NOTABLE CHANGES below. +- Support for the undocumented and deprecated --enable-nmh-debug configure + flag has been removed. +- Support for encoding some characters designated as EBCDIC-unsafe + via the -ebcdicsafe and -noebcdicsafe switches to mhbuild has + been removed. +- The configure flag --with-pager has been removed; the default pager + is now hardcoded as "more". Users are still free to override the + default using the PAGER environment variable or entries in .mh_profile. +- The configure flag --with-editor has been removed; the fallback editor + if none is configured is "vi". +- The support for the undocumented NOPUBLICSEQ preprocessor definition + to disable public sequence support has been removed. +- Support for the -normalize and -nonormalize switches to the ali(1) and + ap(8) commands has been removed. +- "make install" no longer strips executables. Use "make install-strip" + instead. +- The environment variable MM_CHARSET to indicate the native character + set is no longer supported. The native character set will be solely + determined by the locale settings. +- Temporary files are stored in the first non-null location of + {MHTMPDIR environment variable, TMPDIR environment variable, MH Path}. + They are no longer be stored in the location specified by the TMP + environment variable. +- Instead of printing PostScript attachments, by default, from mhshow, + try to find a suitable viewer. +- Support for parallel display of multipart/parallel content has been + removed from mhshow; all multipart content will be displayed in + serial. +- Support for -pause/-nopause switches on mhshow has been removed. + +------------------- +DEPRECATED FEATURES +------------------- +- The undocumented -queue switch to post is deprecated/obsolete + and will be removed in the next release. It supports the + SMTP XQUE verb, which is obsolete according to + http://smtpfilter.sourceforge.net/esmtp.html +- conflict(8) is deprecated and will be removed from the next release. +- mhtest(8) is deprecated and will be removed from the next release. +- msh(1) is deprecated and will be removed from the next release. +- Support in alias files for the the "*" address-group is obsolescent + and will be removed in a future release. + +--------- +BUG FIXES +--------- + +- Replaced utilities that operate on pbm files with those that operate + on pnm files in etc/mhn.defaults [Bug #15152]. +- Removed obsolete BUGS section at end of rcvstore(1) man page [Bug #4361]. +- Fixed -nocc me doesn't account for Alternate-Mailboxes [Bug #36635]. +- Propagate Mail-Followup-To [Bug #5571]. +- "mark -sequence cur -delete all" now works for cur as well as any + other sequence, to allow clearing of the current message indication. +- The first alias contained in a blind list is now expanded. The + mh-alias(5) man page was updated to show that blind lists must not + be terminated with, or contain, a trailing semicolon [Bug #15604]. +- Fixed sendfiles(1) to always provide a From: address. Also, updated + its switches. +- Fixed pick(1) to properly unfold multiple-line header fields by + removing newlines instead of replacing them with spaces [Bug #15215]. +- Removed the artificial limit of 1000 messages at a time for rmmproc. +- Fixed decoding of header fields when they contain a character that + can't be converted. +- post(8) -sasl now honours username in .netrc [Bug #23168]. whom(1), + send(1), inc(1), and msgchk(1) also benefit from this fix. And, nmh + now supports specification of any valid filename in place of + $HOME/.netrc. +- Added quoting of local part of invalid address in message being + replied to [Bug #26780]. +- Fix segmentation faults for %(putlit) and %(zputlit) format escapes when + the "str" register was NULL. +- Encode and decode text MIME types with canonical line breaks properly. +- mhstore(1) now obeys its -noverbose switch. +- Properly report the input filename when mhbuild encounters errors. +- Set the content-transfer-encoding properly when attaching message/rfc822 + content. + +--------------- +NOTABLE CHANGES +--------------- + +The biggest changes in this release are in the arena of MIME handling. +Specifically relating to MIME composition and display. On the +composition front, mhbuild(1) will now automatically be run by send(1) +for all drafts. Specifically, mhbuild is now run with the new -auto +flag, which will suppress the processing of mhbuild directives and cause +mhbuild to silently exit if the draft is already MIME-formatted. When +invoking mhbuild manually via the "mime" command at the WhatNow? prompt, +mhbuild will behave as before and process mhbuild directives. + +In both cases (automatic and manual invocation) mhbuild will encode email +headers according to RFC-2047 rules. Mhbuild also will use RFC 2231 +encoding rules for MIME parameters when appropriate. In addition, the +attach system has been substantially reworked; the new header name is +now "Attach" (to better align with other MUA behavior) and cannot be +changed by the end-user. The existing "attach" command simply adds +the filename(s) to the draft in new Attach: headers, and the actual +file processing is done by mhbuild; this attachment processing will +take place in either automatic or manual mode. + +On the display front, mhshow(1) will now automatically convert text +into the user's native character set using iconv, if nmh was built +with iconv support. Also, mhshow will now by default only display +text content that was not marked as an attachment. By default all +displayed content wll be run under one pager, as opposed to individual +pagers for each part as was in the past. Non-displayed parts will be +indicated using a marker string, which can be customized by a new +mh-format(5) string. + +All nmh utilities now understand RFC 2231-encoded MIME parameters and +will automatically convert the encoded parameters into the native +character set, when appropriate (again, assuming nmh was built with +iconv support). + +In other changes, sequence files are now locked using transactional +locks: locks that are held across sequence file reading, modification, +and writing. The locking algorithm used for spool files and nmh data +files is now runtime configurable. + +For people that struggle with mh-format(5) files, a new utility for testing +them has been developed: fmttest(1). It includes the ability to trace the +execution of format instructions. + +For users that wish to use Unix utilities on their mail, a new utility +to transform MIME messages to more easily-digestable format is now +available: mhfixmsg(1). It supports a number of options to control +the message transformation. + +For users of spost(8), the support for spost has been rolled into post(8) +under a new sendmail/pipe MTS. A shell script emulating the old behavior +of spost has been provided. + +As always, feedback is welcome. + +-- +The nmh team +nmh-workers@nongnu.org + +---------------------------------------------------------------------------- + # # NEWS - Release notes for nmh 1.5 #