From: mh@buckaroo.ICS.UCI.EDU (John Romine)
Subject: Changes for MH 6.8
Newsgroups: comp.mail.mh
Reply-To: mh@paris.ICS.UCI.EDU
Date: 15 Dec 92 22:44:57 GMT










                                   Changes to
                      The RAND MH Message Handling System:
                               UCI version MH 6.8


                                 John L. Romine

                            Computing Support Group
                 Department of Information and Computer Science
                        University of California, Irvine
                             Irvine, CA  92717-3425


                                    ABSTRACT


                    This document describes the changes to the
               UCI version of the RAND MH system from MH 6.6 to
               this release of MH 6.8.  This document is meant to
               supplement, not supersede, the standard MH User's
               manual and MH Administrator's manual.

                    Comments concerning this documentation should
               be addressed to the mailbox Bug-MH@ICS.UCI.EDU, or
               ucbvax!ucivax!bug-mh.



          ACKNOWLEDGEMENTS

          The MH system described herein is based on the original RAND
          MH system.  It has been extensively developed (perhaps too
          much so) by Marshall T. Rose and John L. Romine at the
          University of California, Irvine.  Einar A. Stefferud, Jerry
          N. Sweet, and Terry P. Domae provided numerous suggestions
          to improve the UCI version of MH.

               Of course, a large number of people have helped MH
          along.  The list of "MH immortals" is too long to list here.
          For this release, numerous MH-Workers sent in fixes and
          other changes.  A handful of courageous MH-Workers volun-
          teered to beta-test these changes; their help is particu-
          larly appreciated.











                              December 14, 1992





          Changes to MH 6.8                                          2



          DISCLAIMER

          The Regents of the University of California wish to make  it
          known that:

               Although each program has been tested by its  con-
               tributor, no warranty, express or implied, is made
               by the contributor or the University  of  Califor-
               nia,  as  to  the  accuracy and functioning of the
               program and related program  material,  nor  shall
               the  fact of distribution constitute any such war-
               ranty, and no responsibility  is  assumed  by  the
               contributor  or  the  University  of California in
               connection herewith.

          CONVENTIONS

          In this document, certain formatting conventions are adhered
          to:

               The names of UNIX commands, such as comp are  presented
               in italics.

               Arguments to programs, such as `msgs' and `-nobell' are
               delimited by single-quotes.

               Text that should be typed exactly as-is, such  as  com-
               mand  lines  (e.g.,  "folder  -pack"), are delimited by
               double-quotes.

               UNIX pathnames and envariables, such  as  /usr/uci  and
               $SIGNATURE, are presented in bold font.
























                              December 14, 1992





          Changes for MH 6.8                                         3


          CHANGES FOR MH 6.8

          This is the current released version of MH as of December
          14, 1992.  This release includes a number of bug fixes and
          internal changes to make the code more portable.  Two new
          authentication methods are provided for the POP, and support
          for SVR4 shared libraries is complete.

               The major user-visible change in this release is the
          incorporation of support for multi-media mail as specified
          by the Multi-purpose Internet Mail Extensions (MIME)
          RFC 1341.  This allows you to include things like audio,
          graphics, and the like, in your mail messages.  A new com-
          mand, mhn, has been provided to support MIME and a detailed
          man page is provided in mhn(1).

          Documentation

          The documentation has some general improvements, and the
          READ-ME document has been re-organized to help MH adminis-
          trators find the appropriate configuration options for their
          system.  The Makefiles in the papers/ hierarchy have been
          changed to invoke TeX as "tex" (instead of "tex82").

          The following new man pages are also available:

          mhn(1)      mhn helps the user process multi-media mail.

          mhparam(1)  mhparam lets the user extract information from
                      the MH profile.

          popauth(8)  the APOP database administration program (see
                      below).

          popi(1)     the POP initiator (see below).

          slocal(1)   fully documents slocal.  The mhook(1) man page
                      now documents only the MH receive-mail hooks.

          Internal Changes

          The MH source code is in the process of being cleaned up to
          make pedantic ANSI C compilers happy.  Occurrences of "NULL"
          have been replaced by "0" where appropriate.  Extra tokens
          after "#else" and "#endif" have been put inside comments
          (this is still in progress).  The code should now compile
          cleanly on many more systems, specifically, more variants of
          SVR4.

               The version of tws/dtimep.c which was included in MH
          6.7.2 was incompatible with the lex library on some systems,
          and has been removed.

               A bug in the handling of blind lists inside alias files



                              December 14, 1992





          Changes for MH 6.8                                         4


          has been fixed.

          Post Office Protocol

          There were three new options added to the POP.

          APOP  This option indicates that the POP daemon will support
                the   non-standard   APOP  command  which  provides  a
                challenge-based authentication system  using  the  MD5
                message digest algorithm.

                This option also causes the popauth program to be  in-
                stalled,  which allows the administrator to manipulate
                the APOP authorization database.

          KPOP  Support for KERBEROS with POP.  This code builds popd,
                inc and msgchk to support only the "kpop" protocol.
                This code is still expiremental, but is available for
                those sites wishing to test it.

          MPOP  This option indicates that the POP daemon will support
                the non-standard XTND SCAN command which provides per-
                formance enhancements when using the POP over low-
                speed connections.

                This option also causes an interactive POP client pro-
                gram, popi, to be compiled and installed.  A man page
                for the popi program is also provided.  This option
                requires the configuration to have "bboards: pop".

          The APOP and MPOP non-standard POP facilities are documented
          in The Internet Message (ISBN 0-13-092941-7), a book by
          Marshall T. Rose.  For more details, see support/pop/pop-
          more.txt and the Administrator's Guide.  The APOP option
          peacefully co-exists with the standard POP, KPOP completely
          replaces the standard POP, and MPOP requires "bboards: pop".

          File Locking

          The file locking code has been cleaned up to support three
          kinds of kernel-level file locking.  As appropriate for your
          system, include the LOCKF, FCNTL or FLOCK option.  For more
          details, see mh-tailor(5).














                              December 14, 1992





          Changes for MH 6.8                                         5


          Configuration Directives

          A number of new configuration directives have been added  or
          changed.  The full details are given in the READ-ME.

          cp:        The command used to  install  new  files  if  not
                     "cp".

          ln:        The command used to link files  together  in  the
                     source tree if not "ln".

          mts:       Full support for ZMAILER has been added.

          popdir:    The directory where popd will be installed if not
                     /usr/etc.

          regtest:   Set to "on" to prevent the hostname  and  compile
                     date from being included in MH binaries.

          sharedlib: You may now specify "sun4" or "sys5"  (for  SVR4)
                     shared libraries.

          signal:    Specifies the base type of the function  returned
                     by  signal().   This  was previously defined with
                     "options TYPESIG".

          Several `-D' options to cc have been added or changed:

          APOP       Authenticated POP (see above).

          AUX        Support for A/UX systems.

          DBMPWD     The DBM option has been renamed DBMPWD.

          HESIOD     Support for the HESIOD name server.

          KPOP       KERBEROS POP (see above).

          LOCALE     Support for local characters sets; uses the set-
                     local() function.

          MAILGROUP  Makes inc set-group-id.  You may need this option
                     if your /usr/spool/mail is not world-writeable.

          MIME       Multi-media mail.

          MPOP       Mobile POP (see above).

          MSGID      Enables slocal to detect and surpress duplicate
                     messages.

          OSF1       Support for DEC OSF1 systems.  May be incomplete.

          RENAME     Include this option if your system has a rename()



                              December 14, 1992





          Changes for MH 6.8                                         6


                     system call.

          SVR4       Support for System 5 Release 4 or newer systems.

          TYPESIG    This option has been dropped.  See `signal'
                     above.

          UNISTD     Include this option if your system has the
                     include file <unistd.h>.

          VSPRINTF   Include this option if your system has the
                     vsprintf() library routine; otherwise, _doprnt()
                     will be used.

          YEARMOD    Forces the mh-format `year' function to return
                     2-digit values.  Use this option during a brief
                     transition period if you have local mh-format
                     files which need to be converted to support 4-
                     digit years.

          FUNCTIONAL CHANGES

          In addition to the configuration changes mentioned above, a
          number of functional changes have been made to the system.
          Many programs have new features added and a few new programs
          have are provided. Each command's manual page gives complete
          information about the its operation.  Here is a short sum-
          mary of the changes.

          MH Sequences

          A larger number of user-defined sequences are available.
          Previously, this number had been 10.  On 32-bit systems, 26
          user-defined sequences are available.

          Profile Components

          MH programs will now complain if the .mh_profile does not
          end in a newline.  Also, one enhancement and one new profile
          component are provided:

          Aliasfile:  Multiple filenames may now be given.

          Inbox:      New; the default folder (for inc, etc.) if not
                      "inbox".












                              December 14, 1992





          Changes for MH 6.8                                         7



          Format Strings

          A few minor bugs were fixed in format string handling, and a
          few  new features were added.  See mh-format(5) for complete
          details.

          Addresses      An  attempt  is  made   to   decipher   X.400
                         RFC 987-style addresses.

          Comments       Comments may be added to mh-format  files;  a
                         comment  begins with the 2-character sequence
                         "%;", and ends with an un-escaped newline.

          %(modulo n)    The `modulo' function escape has been added.

          %(year{date})  The date parser has been enhanced  to  under-
                         stand  more  illegal date formats; `year' now
                         returns a 4-digit number.

          User Interface Programs

          A number of MH commands have minor changes:

          ali       The output with `-user -list' was changed to match
                    the output with `-nouser -list'.

          burst     Will no longer drop the last message of a digest.

          inc       Accepts the `-apop' switch for authenticated POP
                    (see above); will attempt to detect write errors
                    (e.g., no space left on device) when incorporating
                    mail; no longer replaces newline characters with
                    NULLs.

          folder    The `-noprint' option was broken and has been
                    dropped.

          forw      Supports `-mime' to use MIME-style multi-part mes-
                    sages.

          mhl       Will no longer put an extra space at the end of
                    the `%{text}' in a formatfield.

          mhn       New; manipulates multi-media (MIME) messages; a
                    detailed man page is provided.

          mhparam   New; reads the MH profile (and context) and writes
                    the values of the specified components on the
                    standard output; useful in programmatic con-
                    structs.

          msgchk    Supports `-apop' (see above).




                              December 14, 1992





          Changes for MH 6.8                                         8


          packmbox  New; packs an MH folder into a UUCP-style mailbox.

          popi      New; a client-side POP initiator; available only
                    if you built MH with the MPOP option (see above).

          refile    A bug where the `rmmproc' did not remove all
                    specified message files has been fixed.

          scan      The `-file' option is fully supported and will no
                    longer complain about empty folders.

          send      Supports `-mime' and `-split' to split large mes-
                    sages into multiple partial messages using MIME.

          Support Programs

          fmtdump   Can now read a format file, or a format string
                    given on the command line.

          popauth   New; manages the APOP authorization database (see
                    above).

          sendmail  The sendmail replacement will be installed only if
                    your `mts' setting uses the `/smtp' option.

          slocal    A new man page for slocal is available; the new
                    `mbox' action is available to write a file in
                    packf format; a bug where extra `>' characters
                    were written to MMDF-style maildrops has been
                    fixed; if compiled with the MSGID option, can
                    detect and suppress reception of duplicate mes-
                    sages.

          viamail   New; bundles a directory (like shar) and sends it
                    through multi-media mail.






















                              December 14, 1992





          Changes for MH 6.7.2                                       9


          CHANGES FOR MH 6.7.2

          The MH.6.7.2 patch release is a maintenance release.  This
          is the current released version of MH as of February 1,
          1992.

               This release now supports the NCR Tower running SYS5R4.
          The WP changes installed in MH.6.7.0 have been removed.

          Shared Libraries

          Support for SYS 5 shared libraries is in progress.

               Support for Sun OS 4.0 shared libraries had been
          improved.  The MH library has been modified to move initial-
          ized data into a data definition file.  The shared library
          will now consist of a libmh.so and libmh.sa file.  The
          shared library version number will no longer track the MH
          patch release number, and its numbering begins with version
          `1.1' with this release.

          Replacement SendMail

          Since many standard system programs expect to post mail by
          invoking /usr/lib/sendmail, a minimal replacement SendMail
          is provided in this release.  This replacement is meant to
          be installed on (e.g., diskless) client workstations which
          post mail using SMTP, and do not run a message transport
          system.  It will call post to post mail; be sure you have
          configured MH with the `/smtp' mts option.  This sendmail
          replacement is installed in your MH etc directory, and you
          should link /usr/lib/sendmail to it.

          Format Strings

          A manual page for the fmtdump format string disassembler  is
          supplied, and some new format functions were added:

          folder   In scan, this component escape contains the name of
                   the current folder.  It is not defined for other MH
                   commands.

          getenv   This function escape returns the value  of  an  en-
                   vironment variable.

               There will be some additional changes in these routines
          in the next patch release.










                                  Feb 1, 1992





          Changes for MH 6.7.2                                      10



          Other Bug Fixes and Enhancements

          In addition to some other minor enhancements, some bugs were
          fixed which in general were not user-visible:

          Blind lists   Users may now specify RFC822 address groups in
                        their  alias  files.   These groups are imple-
                        mented by MH as blind lists.

          date parsing  A number of sites have brain-damaged  versions
                        of lex.  MH will now come with the date parser
                        already run through lex.

          mark          A bug dealing with mark and the sequence named
                        `cur' is fixed.  This was previously a problem
                        for mh-e users.

          MH.doc        The MH nroff version of the manual  no  longer
                        contains teletype escape sequences.

          scan          Can now handle headers as long as 512 bytes.

          Signals       MH programs will no longer catch the  HUP  and
                        TERM  signals while waiting for a sub-process.
                        This was causing hung processes when your ter-
                        minal line was was dropped unexpectedly.

          Signature     If your signature is not defined, MH will  use
                        the   value   of   the  gecos  field  of  your
                        /etc/passwd entry as your signature.

          version.sh    A bug in the awk script  in  config/version.sh
                        was fixed.























                                  Feb 1, 1992





          Changes for MH 6.7.1a                                     11


          CHANGES FOR MH 6.7.1a

          The MH.6.7.1a patch was made available on January 25, 1991
          for limited distribution only.  (This release had some known
          bugs, and so was not widely distributed.) This release
          incorporates several new features of particular note to
          users of sequences and format strings, as well as some gen-
          eral documentation improvements.  There are a few minor
          enhancements and internal bug fixes also.  Complete documen-
          tation of these changes is given in the individual manual
          pages, and the READ-ME file.

          Message Sequences

          A new manual page, mh-sequence (5), has been added.  This
          manual page attempts to completely document the syntax and
          semantics of MH message sequence specifications.

               A powerful new feature is the ability to specify mes-
          sage ranges with user-defined sequences.  The  specification
          "name:n" may be used, and it designates up to the first `n'
          messages (or  last  `n' messages  for  `-n') which  are
          elements  of the user-defined sequence `name'.

               The message specifications "name:next" and "name:prev"
          may also be used, and they designate the next or previous
          message (relative to the current message) which is an ele-
          ment of the user-defined sequence `name'.  The specifica-
          tions "name:first" and "name:last" are equivalent to
          "name:1" and "name:-1", respectively.  The specification
          "name:cur" is not allowed (use just "cur" instead).

               These specifications allow the user to step through a
          sequence with a command like "show name:next".

          Format Strings

          MH format strings now support an if-then-elseif-else clause
          (the `elseif' is new).  This will make format strings with
          multi-case conditions somewhat less complex.

               A new format function `addr' had been added.  This
          function takes an address header name as its argument, and
          returns a rendering of the address contained in that header
          as "user@host" or "host!user".

               Format widths now may be specified as a negative
          number.  This causes the output to be right-justified within
          the format width.








                                January 25, 1991





          Changes for MH 6.7.1a                                     12



          Other Changes

          Along with a few minor enhancements, some  bugs  were  fixed
          which in general were not user-visible:

          fmtdump  This  new  program  produces   an   pseudo-language
                   representation of an MH format file, vaguely remin-
                   iscent of assembly  language.   While  this  output
                   format  is  not explicitly documented, it can still
                   be useful when debugging MH format files.

          refile   Now takes a `-[no]rmmproc' switch.  This  makes  it
                   easier to avoid loops when your "rmmproc" calls re-
                   file.

          slocal   A  problem  with  the  UUCP-style  mailboxes,   the
                   `RPATHS'  configuration  option,  and  the "Return-