Added sources to historical documents downloaded from
[mmh] / docs / historical / changes / mh-changes.ms
1 .\" @(#)mh-changes.ms,v 1.1.1.1 1993/01/30 04:41:04 jtc Exp
2 .\" Standard -ms macros
3 .\" with the following changes
4 .ds lq \\*Q
5 .ds rq \\*U
6 .\" remember to update date in text below
7 .DA "December 14, 1992"
8 .if n \{\
9 .na
10 .\}
11 .nr PO 1i
12 .po 1i
13 .\" .EH ''Changes to MH 6.7'%'
14 .\" .OH ''Changes to MH 6.7'%'
15 .ds LH Changes to MH 6.8
16 .ds CH
17 .ds RH %
18 .TL
19 Changes to
20 .br
21 The RAND MH Message Handling System:
22 .br
23 UCI version MH 6.8
24 .AU
25 John L. Romine
26 .AI
27 Computing Support Group
28 Department of Information and Computer Science
29 University of California, Irvine
30 Irvine, CA  92717\-3425
31 .AB
32 .PP
33 This document describes the changes to the
34 UCI version of the RAND MH system from MH 6.6
35 to this release of MH 6.8.
36 This document is meant to supplement,
37 not supersede,
38 the standard MH User's manual and MH Administrator's manual.
39 .PP
40 Comments concerning this documentation should be addressed to the
41 mailbox \fBBug\-MH@ICS.UCI.EDU\fP, or \fBucbvax!ucivax!bug-mh\fP.
42 .AE
43 .SH
44 ACKNOWLEDGEMENTS
45 .LP
46 The \fIMH\fP system described herein is
47 based on the original RAND \fIMH\fP system.
48 It has been extensively developed (perhaps too much so) by Marshall T. Rose
49 and John L. Romine at the University of California, Irvine.
50 Einar A. Stefferud, Jerry N. Sweet,
51 and Terry P. Domae provided numerous suggestions
52 to improve the UCI version of \fIMH\fP.
53 .PP
54 Of course,
55 a large number of people have helped \fIMH\fP along.
56 The list of \*(lq\fIMH\fP immortals\*(rq is too long to list here.
57 For this release, numerous \fIMH\-Workers\fP sent in fixes and other
58 changes.  A handful of courageous \fIMH\-Workers\fP volunteered
59 to beta-test these changes; their help is particularly appreciated.
60 .KS
61 .SH
62 DISCLAIMER
63 .LP
64 The Regents of the University of California wish to make it known that:
65 .QP
66 Although each program has been tested by its contributor,
67 no warranty, express or implied,
68 is made by the contributor or the University of California,
69 as to the accuracy and functioning of the program
70 and related program material,
71 nor shall the fact of distribution constitute any such warranty,
72 and no responsibility is assumed by the contributor
73 or the University of California in connection herewith.
74 .KE
75 .KS
76 .SH
77 CONVENTIONS
78 .LP
79 In this document,
80 certain formatting conventions are adhered to:
81 .IP
82 The names of
83 \s-2UNIX\s+2
84 commands, such as \fIcomp\fP
85 are presented in \fIitalics\fP.
86 .IP
87 Arguments to programs, such as `msgs' and `\-nobell' are
88 delimited by single-quotes.
89 .IP
90 Text that should be typed exactly as-is, such as 
91 command lines (e.g., \*(lqfolder \-pack\*(rq),
92 are delimited by double-quotes.
93 .IP
94 \s-2UNIX\s+2
95 pathnames and envariables,
96 such as \fB/usr/uci\fP and \fB$SIGNATURE\fP,
97 are presented in \fBbold font\fP.
98 .KE
99 .ds LH Changes for MH 6.8
100 .bp
101 .SH
102 CHANGES FOR MH 6.8
103 .LP
104 This is the current released version of \fIMH\fP
105 as of December 14, 1992.  This release includes a number
106 of bug fixes and internal changes to make the code more
107 portable.
108 Two new authentication methods are provided for the POP,
109 and support for SVR4 shared libraries is complete.
110 .PP
111 The major user-visible change in this release is the incorporation
112 of support for multi-media mail as specified by the
113 Multi-purpose Internet Mail Extensions (\fBMIME\fP)
114 RFC\ 1341.
115 This allows you to include things like audio,
116 graphics, and the like, in your mail messages.
117 A new command, \fImhn\fP, 
118 has been provided to support \fBMIME\fP and
119 a detailed man page is provided in \fImhn\fP\|(1).
120 .SH
121 Documentation
122 .LP
123 The documentation has some general improvements, and
124 the \fBREAD-ME\fP document has been re-organized
125 to help \fIMH\fP administrators find the appropriate
126 configuration options for their system.
127 The \fBMakefile\fPs in the \fBpapers/\fP hierarchy have
128 been changed to invoke \fITeX\fP as
129 \*(lqtex\*(rq (instead of \*(lqtex82\*(rq).
130 .LP
131 The following new man pages are also available:
132 .IP \fImhn\fP\|(1) \w'\fIpopauth\fP\|(8)'u+2n
133 \fImhn\fP helps the user process multi-media mail.
134 .IP \fImhparam\fP\|(1)
135 \fImhparam\fP lets the user extract information from 
136 the \fIMH\fP profile.
137 .IP \fIpopauth\fP\|(8)
138 the APOP database administration program (see below).
139 .IP \fIpopi\fP\|(1)
140 the POP initiator (see below).
141 .IP \fIslocal\fP\|(1)
142 fully documents \fIslocal\fP.  The \fImhook\fP(1) man page now
143 documents only the \fIMH\fP receive-mail hooks.
144 .SH
145 Internal Changes
146 .LP
147 The \fIMH\fP source code is in the process of being
148 cleaned up to make pedantic ANSI C compilers happy.
149 Occurrences of \*(lqNULL\*(rq have been replaced by
150 \*(lq0\*(rq where appropriate.
151 Extra tokens after \*(lq#else\*(rq and \*(lq#endif\*(rq
152 have been put inside comments (this is still in progress).
153 The code should now compile cleanly on many more systems,
154 specifically, more variants of SVR4.
155 .PP
156 The version of \fBtws/dtimep.c\fP which was included in 
157 MH 6.7.2 was incompatible with the \fIlex\fP library
158 on some systems, and has been removed.
159 .PP
160 A bug in the handling of blind lists inside alias
161 files has been fixed.
162 .KS
163 .SH
164 Post Office Protocol
165 .LP
166 There were three new options added to the POP.
167 .IP APOP \w'APOP'u+2n
168 This option indicates that the POP daemon will
169 support the non-standard \fBAPOP\fP command which
170 provides a challenge-based authentication system using
171 the \fBMD5\fP message digest algorithm.
172 .IP
173 This option also causes the
174 \fIpopauth\fP program to be installed, which
175 allows the administrator to manipulate the \fBAPOP\fP
176 authorization database.
177 .KE
178 .IP KPOP
179 Support for KERBEROS with POP.
180 This code builds
181 \fIpopd\fP, \fIinc\fP and \fImsgchk\fP to support only the 
182 \*(lqkpop\*(rq protocol.
183 This code is still expiremental, but is available for 
184 those sites wishing to test it.
185 .IP MPOP
186 This option indicates that the POP daemon will
187 support the non-standard
188 \fBXTND SCAN\fP command which provides performance
189 enhancements when using the POP over low-speed connections.
190 .IP
191 This option also causes an interactive POP
192 client program, \fIpopi\fP, to be compiled and installed.
193 A man page for the \fIpopi\fP program is also provided.
194 This option requires the configuration to
195 have \*(lqbboards: pop\*(rq.
196 .LP
197 The APOP and MPOP non-standard POP
198 facilities are documented in
199 \fIThe Internet Message\fR (ISBN 0\-13\-092941\-7),
200 a book by Marshall T. Rose.
201 For more details, see \fBsupport/pop/pop-more.txt\fR
202 and the \fIAdministrator's Guide\fP.
203 The APOP option peacefully co-exists with the standard POP,
204 KPOP completely replaces the standard POP, and
205 MPOP requires \*(lqbboards: pop\*(rq.
206 .SH
207 File Locking
208 .LP
209 The file locking code has been cleaned up to support
210 three kinds of kernel-level file locking.  As appropriate
211 for your system, include the
212 LOCKF, FCNTL or FLOCK option.  For more
213 details, see \fImh-tailor\fP\|(5).
214 .SH
215 .KS
216 Configuration Directives
217 .LP
218 A number of new configuration directives have been added
219 or changed.  The full details are given in the \fBREAD-ME\fP.
220 .IP cp: \w'MAILGROUP'u+2n
221 The command used to install new files if not \*(lqcp\*(rq.
222 .IP ln:
223 The command used to link files together in the source tree
224 if not \*(lqln\*(rq.
225 .IP mts:
226 Full support for ZMAILER has been added.
227 .IP popdir:
228 The directory where \fIpopd\fP will be installed if not \fB/usr/etc\fP.
229 .IP regtest:
230 Set to \*(lqon\*(rq to prevent the hostname and compile
231 date from being included in \fIMH\fP binaries.
232 .IP sharedlib:
233 You may now specify \*(lqsun4\*(rq or \*(lqsys5\*(rq 
234 (for SVR4) shared libraries.
235 .IP signal:
236 Specifies the base type of the function returned by \fIsignal\fP\|().
237 This was previously defined with \*(lqoptions TYPESIG\*(rq.
238 .KE
239 .LP
240 Several `-D' options to \fIcc\fP have been added or changed:
241 .IP APOP \w'MAILGROUP'u+2n
242 Authenticated POP (see above).
243 .IP AUX 
244 Support for A/UX systems.
245 .IP DBMPWD
246 The DBM option has been renamed DBMPWD.
247 .IP HESIOD
248 Support for the HESIOD name server.
249 .IP KPOP
250 KERBEROS POP (see above).
251 .IP LOCALE
252 Support for local characters sets; uses the \fIsetlocal\fP\|() function.
253 .IP MAILGROUP
254 Makes \fIinc\fP set-group-id.
255 You may need this option if your \fB/usr/spool/mail\fP
256 is not world-writeable.
257 .IP MIME
258 Multi-media mail.
259 .IP MPOP
260 Mobile POP (see above).
261 .IP MSGID
262 Enables \fIslocal\fP to detect and surpress duplicate messages.
263 .IP OSF1
264 Support for DEC OSF1 systems.  May be incomplete.
265 .IP RENAME
266 Include this option if your system has a \fIrename\fP\|()
267 system call.
268 .IP SVR4
269 Support for System 5 Release 4 or newer systems.
270 .IP TYPESIG
271 This option has been dropped.  See `signal' above.
272 .IP UNISTD
273 Include this option if your system has the include
274 file \fB<unistd.h>\fP.
275 .IP VSPRINTF
276 Include this option if your system has the \fIvsprintf\fP\|()
277 library routine; otherwise, \fI\(rudoprnt\fP\|() will be used.
278 .IP YEARMOD
279 Forces the \fImh-format\fP `year' function to
280 return 2-digit values.
281 Use this option during a brief transition period if 
282 you have local \fImh-format\fP files which need to
283 be converted to support 4-digit years.
284 .SH 
285 FUNCTIONAL CHANGES
286 .LP
287 In addition to the configuration changes mentioned above,
288 a number of functional changes have been made to the system.
289 Many programs have new features added and a few new 
290 programs have are provided.  
291 Each command's manual page gives
292 complete information about the its operation.
293 Here is a short summary of the changes.
294 .SH
295 MH Sequences
296 .LP
297 A larger number of user-defined sequences are available.
298 Previously, this number had been 10.
299 On 32-bit systems, 26 user-defined sequences are available.
300 .SH
301 Profile Components
302 .LP
303 \fIMH\fP programs will now complain if the 
304 \fB\&.mh\(ruprofile\fR does not end in a newline.
305 Also, one enhancement and one new profile component are provided:
306 .IP Aliasfile: \w'AliasfileX'u+2n
307 Multiple filenames may now be given.
308 .IP Inbox:
309 New; the default folder (for \fIinc\fP, etc.) if not \*(lqinbox\*(rq.
310 .KS
311 .SH
312 Format Strings
313 .LP
314 A few minor bugs were fixed in format string handling,
315 and a few new features were added.  See \fImh-format\fP\|(5)
316 for complete details.
317 .IP Addresses \w'Xxyearxdatexx'u+2n
318 An attempt is made to decipher X\&.400 RFC\ 987-style addresses.
319 .IP Comments
320 Comments may be added to \fImh-format\fP files; a comment
321 begins with the 2-character sequence \*(lq%;\*(rq,
322 and ends with an un-escaped newline.
323 .IP "%(modulo n)"
324 The `modulo' function escape has been added.
325 .IP %(year{date})
326 The date parser has been enhanced to understand more
327 illegal date formats; `year' now returns a 4-digit number.
328 .KE
329 .SH
330 User Interface Programs
331 .LP
332 A number of \fIMH\fP commands have minor changes:
333 .IP ali \w'packmbox'u+2n
334 The output with `\-user\0\-list' was
335 changed to match the output with `\-nouser\0\-list'.
336 .IP burst
337 Will no longer drop the last message of a digest.
338 .IP inc
339 Accepts the `\-apop' switch for authenticated POP (see above);
340 will attempt to detect write
341 errors (e.g., no space left on device) when incorporating mail;
342 no longer replaces newline characters with NULLs.
343 .IP folder
344 The `\-noprint' option was broken and has been dropped.
345 .IP forw
346 Supports `\-mime' to use MIME-style multi-part messages.
347 .IP mhl
348 Will no longer put an extra space at the end of the
349 `%{text}' in a formatfield.
350 .IP mhn
351 New; manipulates multi-media (MIME) messages; a detailed
352 man page is provided.
353 .IP mhparam
354 New; reads the \fIMH\fP profile (and context) 
355 and writes the values of the specified components on the
356 standard output; useful in programmatic constructs.
357 .IP msgchk
358 Supports `\-apop' (see above).
359 .IP packmbox
360 New; packs an \fIMH\fP folder into a UUCP-style mailbox.
361 .IP popi
362 New; a client-side POP initiator; available only if you
363 built \fIMH\fP with the MPOP option (see above).
364 .IP refile
365 A bug where the `rmmproc' did not remove all specified
366 message files has been fixed.
367 .IP scan
368 The `\-file' option is fully supported and will no longer
369 complain about empty folders.
370 .IP send
371 Supports `\-mime' and `\-split' to split large messages
372 into multiple partial messages using MIME.
373 .SH
374 Support Programs
375 .IP fmtdump \w'packmbox'u+2n
376 Can now read a format file, or a format string given
377 on the command line.
378 .IP popauth
379 New; manages the APOP authorization database (see above).
380 .IP sendmail
381 The \fIsendmail\fP replacement will be installed
382 only if your `mts' setting uses the `/smtp' option.
383 .IP slocal
384 A new man page for \fIslocal\fP is available;
385 the new `mbox' action is available to write a file
386 in \fIpackf\fP format;
387 a bug where extra `>' characters were written to MMDF-style
388 maildrops has been fixed; 
389 if compiled with the MSGID option, can detect and suppress
390 reception of duplicate messages.
391 .IP viamail
392 New; bundles a directory (like \fIshar\fP\|) and
393 sends it through multi-media mail.
394
395 .ds LH Changes for MH 6.7.2
396 .bp
397 .ds CF Feb 1, 1992
398 .SH
399 CHANGES FOR MH 6.7.2
400 .LP
401 The MH.6.7.2 patch release is a maintenance
402 release.
403 This is the
404 current released version of \fIMH\fP as of February 1, 1992.
405 .PP
406 This release now supports the NCR Tower running SYS5R4.
407 The WP changes installed in MH.6.7.0 have been removed.
408 .SH 
409 Shared Libraries
410 .LP
411 Support for SYS 5 shared libraries is in progress.
412 .PP
413 Support for Sun OS 4.0 shared libraries had been improved.
414 The \fIMH\fP library has been modified to move initialized
415 data into a data definition file.  The shared library will
416 now consist of a \fBlibmh.so\fP and \fBlibmh.sa\fP file.
417 The shared library version number will no longer track the
418 \fIMH\fP patch release number, and its numbering begins with
419 version `1.1' with this release.
420 .SH
421 Replacement SendMail
422 .LP
423 Since many standard system programs expect to post mail by 
424 invoking \fB/usr/lib/sendmail\fP,
425 a minimal replacement \fISendMail\fP is provided in 
426 this release.  This replacement is meant to be installed
427 on (e.g., diskless) client workstations which post mail
428 using SMTP, and do not run a message transport system.
429 It will call \fIpost\fP to post mail; be sure you have
430 configured \fIMH\fP with the `/smtp' mts option.
431 This sendmail replacement is installed in your 
432 \fIMH\fP etc directory, and you should link 
433 \fB/usr/lib/sendmail\fP
434 to it.
435 .KS
436 .SH
437 Format Strings
438 .LP
439 A manual page for the \fIfmtdump\fP format string disassembler
440 is supplied, and some new format functions were added:
441 .IP folder \w'%getenv'u+2n
442 In \fIscan\fP, this component escape
443 contains the name of the current folder.
444 It is not defined for other \fIMH\fP commands.
445 .IP getenv
446 This function escape returns the value of an environment variable.
447 .KE
448 .PP
449 There will be some additional changes in these routines in the
450 next patch release.
451 .KS
452 .SH
453 Other Bug Fixes and Enhancements
454 .LP
455 In addition to some other minor enhancements,
456 some bugs were fixed which in general were not user\-visible:
457 .IP "Blind lists" \w'datexparsing'u+2n
458 Users may now specify RFC822 address groups in their
459 alias files.  These groups are implemented by \fIMH\fP 
460 as blind lists.
461 .IP "date parsing"
462 A number of sites have brain-damaged versions of \fBlex\fP.
463 \fIMH\fP will now come with the date parser already run
464 through lex.
465 .IP mark
466 A bug dealing with \fImark\fP and the sequence named `cur'
467 is fixed.  This was previously a problem for mh-e users.
468 .IP MH.doc
469 The \fIMH\fP nroff version of the manual no longer contains
470 teletype escape sequences.
471 .IP scan
472 Can now handle headers as long as 512 bytes.
473 .IP Signals
474 \fIMH\fP programs will no longer catch the \fBHUP\fP
475 and \fBTERM\fP signals while waiting for a sub-process.
476 This was causing hung processes when your terminal line was
477 was dropped unexpectedly.
478 .IP Signature
479 If your signature is not defined, \fIMH\fP will 
480 use the value of the gecos field of your \fB/etc/passwd\fP
481 entry as your signature.
482 .IP "version.sh"
483 A bug in the \fBawk\fP script in \fBconfig/version.sh\fP 
484 was fixed.
485 .KE
486 .ds LH Changes for MH 6.7.1a
487 .bp
488 .ds CF January 25, 1991
489 .SH 
490 CHANGES FOR MH 6.7.1a
491 .LP
492 The MH.6.7.1a patch was made available 
493 on January 25, 1991 for limited distribution only.
494 (This release had some known bugs, and so was
495 not widely distributed.)
496 This release incorporates several new features
497 of particular note to users of sequences and format strings,
498 as well as some general documentation improvements.
499 There are a few minor enhancements and internal bug fixes also.
500 Complete documentation of these changes is given in
501 the individual manual pages, and the \fBREAD-ME\fP file.
502 .SH
503 Message Sequences
504 .LP
505 A new manual page, \fImh\-sequence\0\fP(5), has been added.
506 This manual page attempts to completely document the
507 syntax and semantics of \fIMH\fP message sequence specifications.
508 .PP
509 A powerful new feature is the ability to specify message
510 ranges with user-defined sequences.  The  specification
511 \*(lqname:n\*(rq may be used, and it designates up to the
512 first `n' messages (or  last  `n' messages  for  `-n')
513 which  are  elements  of the user-defined sequence `name'.
514 .PP
515 The message
516 specifications \*(lqname:next\*(rq and \*(lqname:prev\*(rq
517 may also be used, and they
518 designate the
519 next or previous message (relative to the current message)
520 which is an element of the user-defined sequence `name'.
521 The specifications
522 \*(lqname:first\*(rq and \*(lqname:last\*(rq are equivalent
523 to \*(lqname:1\*(rq and \*(lqname:\-1\*(rq, respectively.
524 The specification \*(lqname:cur\*(rq is not allowed
525 (use just \*(lqcur\*(rq instead).
526 .PP
527 These specifications allow the user to step through
528 a sequence with a command like \*(lqshow name:next\*(rq.
529 .SH
530 Format Strings
531 .LP
532 \fIMH\fP format strings now support an if-then-elseif-else
533 clause (the `elseif' is new).  This will make
534 format strings with multi-case conditions somewhat less complex.
535 .PP
536 A new format function `addr' had been added.  This function
537 takes an address header name as its argument, and returns
538 a rendering of the address contained in that header
539 as \*(lquser@host\*(rq or \*(lqhost!user\*(rq.
540 .PP
541 Format widths now may be specified as a negative number.
542 This causes the output to be right-justified
543 within the format width.
544 .KS
545 .SH
546 Other Changes
547 .LP
548 Along with a few minor enhancements,
549 some bugs were fixed which in general were not user-visible:
550 .IP "fmtdump" \w'whatnow'u+2n
551 This new program 
552 produces an pseudo-language
553 representation of an \fIMH\fP format file, vaguely
554 reminiscent of assembly language.  While this output format
555 is not explicitly documented,
556 it can still be useful when debugging \fIMH\fP format files.
557 .IP "refile"
558 Now takes a `\-\[no\]rmmproc' switch.  This makes it
559 easier to avoid loops when your \*(lqrmmproc\*(rq calls \fIrefile\fP.
560 .IP "slocal"
561 A problem with the UUCP-style mailboxes,
562 the `RPATHS' configuration option,
563 and the \*(lqReturn-Path:\*(rq header was fixed.
564 .IP "sortm"
565 Will ensure that no messages are lost if it is interrupted.
566 .IP "whatnow"
567 Will now tell you where it is leaving the draft, when
568 interrupted in the initial edit.  Previously the draft 
569 was simply unlinked.
570 .KE
571 .KS
572 .SH
573 Compilation Options
574 .IP "LOCKF" \w'whatnow'u+2n
575 This option causes \fIMH\fP to use the \fBlockf()\fP
576 system call for locking (if available),
577 instead of \fBflock()\fP.
578 .KE
579 .ds LH Changes for MH 6.7.1
580 .bp
581 .ds CF December 14, 1990
582 .SH 
583 CHANGES FOR MH 6.7.1
584 .LP
585 The MH.6.7.1 patch release is a maintenance
586 release, and as such, provides few changes from 
587 the previous release.  This is the
588 current released version of \fIMH\fP as of December 14, 1990.
589 .SH
590 User-Visible Changes
591 .LP
592 The major change in this release is to the
593 POP daemon (popd).  In \fIMH\fP 6.7,
594 it was changed to be able to read both UUCP and
595 MMDF-style mailboxes.  This did not work as reported.  The
596 code has now been changed to parse MMDF-style mailboxes if
597 you are configuring MH to run with MMDF as your message
598 transport system.  Otherwise, UUCP-style mailboxes are
599 expected.
600 .PP
601 Since there are number of client programs available for
602 only the POP2 protocol instead of POP3, popd has been
603 updated to support both protocols.  This is a major
604 win.  If you are compiling
605 with POP turned on, add the `POP2' option to
606 your \fIMH\fP config file, and the POP daemon
607 will respond to POP2 or POP3 commands.  If you're using
608 POP, there's no reason not to include this option; it does
609 not affect the existing support for POP3.
610 .KS
611 .SH
612 Internal Changes
613 .LP
614 Some bugs were fixed which in general were not user-visible:
615 .IP "context" \w'replnnetcn'u+2n
616 Errors when writing out sequences are detected correctly.
617 .IP "inc"
618 No longer inserts extra blank lines into messages.
619 .IP "mh-format"
620 A nil pointer bug in the address parser was fixed.
621 .IP "repl, etc."
622 The malloc/free problem has been fixed.
623 .IP "rmf"
624 A spelling error in the `\-nointeractive' switch has been corrected.
625 .IP "rcvtty"
626 Will not print the message size if not available (i.e., zero).
627 .IP "send/post"
628 Illegal signatures (those containing unquoted "."s) will be quoted.
629 .KE
630 .ds LH Changes for MH 6.7.0
631 .bp
632 .ds CF April 12, 1990
633 .SH
634 GENERAL CHANGES FOR MH 6.7.0
635 .LP
636 The author is pleased to announce that there are very few
637 user\-visible
638 changes to \fIMH\fP 6.7 from the previous \fIMH\fP 6.6 distribution.
639 The majority of development was in the form of bug fixes and
640 slight enhancements.
641 In addition, this release is slightly faster than the
642 previous release.
643 With a few minor exceptions,
644 it is backward\-compatible with the previous release.
645 \fIMH\fP 6.7.0 is the current released version of \fIMH\fP
646 as of April 12, 1990.
647 .PP
648 The changes were made mainly to generalize the source code to
649 be compatible with a larger range of systems and compilers.
650 There were many small changes to add declarations for ANSI C compliance.
651 The System 5 support has been brought up to SYS5 R3, and there is
652 support for Sun OS 4.0.
653 .SH
654 User\-Visible Changes
655 .LP
656 Here a quick summary of the
657 changes that were made which are not backward\-compatible with the
658 previous release of \fIMH\fP:
659 .IP repl \w'sortm'u+2n
660 The `\-format' and `\-noformat' switches
661 have not been functional since \fIMH\fP 5, and have been removed.
662 Any users who have these switches in their \fB\&.mh\(ruprofile\fP,
663 will have to remove them.
664 .IP sortm
665 Previously, in most cases \fIsortm\fP would fill\-in any
666 gaps in the numbering of a folder, 
667 by renumbering the messages starting with `1'.
668 This will no longer occur; for this behavior,
669 use \*(lqfolder \-pack\*(rq.
670 .PP
671 .SH
672 Using Aliases
673 .LP
674 A new profile entry `Aliasfile:' has been added.  The
675 \fIali\fP\^, \fIsend\fP\^, and \fIwhom\fP programs will look for
676 this profile entry and treat it as they would an argument to
677 `\-alias'.
678 This should make it easier for novice \fIMH\fP users to begin
679 using aliases.
680 .PP
681 .SH
682 Reading Network News & BBoards
683 .LP
684 The UCI BBoards facility can read local BBoards, and if compiled
685 with the `bboards: pop' and `pop: on' options, can also read remote
686 BBoards using the Post Office Protocol (POP ver. 3).
687 With this release,
688 \fIMH\fP can instead be compiled to read the Network News
689 (i.e., USENET) using the Network News Transfer Protocol (NNTP).
690 .PP
691 This capability is enabled by compiling \fIMH\fP with
692 the `bboards: nntp' and `pop: on' options.
693 Unfortunately, reading remote BBoards via the POP and reading the Network
694 News via the NNTP are mutually exclusive options.
695 .PP
696 To support the NNTP,
697 a new module, \fBuip/pshsbr.c\fP, is compiled and loaded into
698 \fIbbc\fP and \fImsh\fP instead of \fBuip/popsbr.c\fP.
699 The default BBoard is changed from \*(lqsystem\*(rq to \*(lqgeneral\*(rq
700 for the NNTP.
701 .PP
702 When reading BBoards,
703 \fIbbc\fP will first look for local BBoards, and then contact the
704 NNTP server to read the Network News.  The location of the
705 NNTP server should be specified with the `nntphost:'
706 entry in the \fBmtstailor\fP file
707 (see the \fIMH\fP Administrator's Guide for details),
708 or may be specified on
709 the command line with the `\-host' switch.
710 .PP
711 .SH
712 Format Strings
713 .LP
714 The manual page \fImh\-format\fP\0(5) has
715 been rewritten to give a better explanation of how to write format strings,
716 and how they are interpreted by \fIMH\fP.
717 A line\-by\-line
718 description of the 
719 default \fIrepl\fP form file (\fBreplcomps\fP)
720 is now included in that manual page.
721 .PP
722 .KS
723 Some new format functions were added, and others were augmented:
724 .IP trim \w'date2local'u+2n
725 Strips any leading and trailing white\-space from the current string value.
726 .IP date2local
727 Will coerce the date to the local timezone.
728 .IP date2gmt
729 Will coerce the date to GMT.
730 .IP divide
731 Divides the current numeric value by its argument.
732 This could be useful for
733 building \fIscan\fP format strings which print large
734 message sizes in \*(lqKb\*(rq or \*(lqMb\*(rq.
735 .IP friendly
736 If the address field cannot be parsed,
737 this function will return the text of the address header,
738 instead of a null string.
739 .IP szone
740 A flag indicating whether the timezone was explicit
741 in the date string.
742 .KE
743 .SH
744 PROGRAM CHANGES
745 .LP
746 In addition to the general changes mentioned above,
747 many programs have specific new features added,
748 either by new switches or by expanded functionality.
749 Each command's manual page gives complete information about
750 its new options.  Here is a short summary.
751 .SH
752 User Interface Programs
753 .IP anno \w'prompter'u+2n
754 Accepts a `\-nodate' switch which inhibits the date annotation,
755 leaving only the body annotation.
756 .IP folder
757 When invoked with the `\-pack' switch
758 and the new `\-verbose' switch, \fIfolder\fP will
759 give information about the actions taken to renumber the folder.
760 .IP
761 On most systems, \fIfolder\fP can now create any non\-existing
762 parent folders of a new sub\-folder.
763 .IP forw
764 When making digests, \fIforw\fP\^
765 will put the issue and volume numbers
766 in addition to the digest list name, in the digest trailer.
767 .IP inc
768 Detects NFS write failures, and will
769 not zero your maildrop in that event.
770 .IP msh
771 Supports a variant of the new \fIsortm\fP\^.
772 .IP prompter
773 Considers a period on a line by itself to signify end\-of\-file
774 when the `\-doteof' switch is specified.
775 .IP repl
776 The `\-[no]format' switches
777 have not been used since \fIMH\fP 5 and have been deleted. \fIrepl\fP
778 will now find filter files in the \fIMH\fP library area.
779 .IP scan
780 With the `\-file msgbox' switch, \fIscan\fP\^
781 can list a \fIpackf\fP\|'d\-format file directly
782 (without using \fImsh\fP\^).
783 .IP
784 Lists messages in reverse order with the `\-reverse' switch.
785 This should be considered a bug.
786 .IP sortm
787 Now has the options:
788 `\-textfield field', `\-notextfield',
789 `\-limit days', and `\-nolimit'.
790 .IP
791 With these options, \fIsortm\fP can be instructed to sort a
792 folder based on the contents of an arbitrary header such
793 as \*(lqsubject\*(rq.
794 .IP
795 \fIsortm\fP minimizes renaming messages, and
796 will no longer arbitrarily pack folders; for this behavior,
797 use \*(lqfolder \-pack\*(rq.
798 .IP whatnow
799 Deletes the draft by renaming it with leading comma, instead
800 of unlinking it.
801 .SH
802 \fIMH\fP Support Programs
803 .LP
804 .KS
805 The following support programs also have changes or enhancements:
806 .IP mhl \w'rcvtty'u+2n
807 Will now accept a format string on any component, not just on
808 addresses and dates.
809 .KE
810 .IP popd
811 Will use \fIshadow\fP passwords if compiled with the
812 \fBSHADOW\fP option.  It can now also
813 read UUCP\-style maildrops directly.
814 .IP rcvtty
815 If given no arguments, \fIrcvtty\fP will produce a \fBscan\fP
816 listing as specified by a format string or file; a default
817 format string is used if one is not specified.
818 .IP
819 Before the listing is written to the users terminal, the
820 terminal's bell is rung and a newline is output.
821 The `\-nobell' and the `\-nonewline' options
822 inhibit these functions.
823 .IP
824 \fIrcvtty\fP will obey terminal write
825 notification set by \fImesg\fP.
826 With the `\-biff' switch, \fIrcvtty\fP will
827 also obey the mail notification status set by
828 \fIbiff\fP.  
829 .IP
830 On \fBBSD43\fP systems, as with \fIwrite\fP,
831 \fIrcvtty\fP will be installed set\-group\-id to the group \*(lqtty\*(rq.
832 .IP slocal
833 Understands UUCP\-style \*(lqFrom \*(rq lines and will write
834 output files using this format if appropriate.
835 Before invoking a delivery program, \fIslocal\fP will strip
836 such lines unless compiled with the \fBRPATHS\fP option,
837 in which case it will will convert such lines into
838 \*(lqReturn\-Path:\*(rq headers.
839 .IP
840 \fIslocal\fP has a new result code \*(lqN\*(rq,
841 for use in \fB.maildelivery\fP files.
842 With this result code,
843 \fIslocal\fP will
844 perform the action only if the message has not been delivered
845 and the previous action succeeded.  This allows for performing
846 an action only if multiple conditions are true.
847 .SH
848 DOCUMENTATION
849 .LP
850 Several of the older \fIMH\fP papers have been difficult to format
851 because they depended on an older version of
852 PhDTeX which was
853 not supplied.  These papers have been updated, and some TeX
854 library files are supplied in \fBpapers/doclib/\fP, so that
855 these papers may be generated on any system with TeX.
856 .PP
857 Many of the manual pages have been revised to include documentation
858 of new command options, and some have been expanded to give more detail.
859 All are now slightly reformatted at installation time
860 to make them more compatible with programs like \fImakewhatis\fP\^.
861 .PP
862 .SH
863 \fIMH\fP ADMINISTRATION
864 .LP
865 This section describes changes in configuring, compiling and
866 installing \fIMH\fP 6.7 and should not
867 be of interest to casual \fIMH\fP users.
868 The \fBREAD\-ME\fP file has been 
869 considerably revised and expanded to give more detail 
870 about the configuration and compilation options which
871 have been included in this release.  Some compilation options
872 have been removed, and many new options have been added.
873 .PP
874 All \fIMH\fP \fBMakefile\fPs have been updated to work around some
875 incompatibilities introduced in newer versions of \fImake\fP\^.
876 \fIMH\fP programs will no longer be installed with the sticky\-bit
877 turned on.
878 .PP
879 Reading this section not a substitute for carefully
880 reading the \fBREAD\-ME\fP file before attempting to compile \fIMH\fP
881 .PP
882 .KS
883 .SH
884 Bug Fixes
885 .LP
886 Some bugs were fixed which in general were not user\-visible:
887 .IP "address parser" \w'dynamicnmemory'u+2n
888 Fixed to allow use of the \*(lqAT\*(rq domain, and some
889 minor bugs were fixed pertaining to address groups.
890 .IP "date parser"
891 Improved to accept more forms of illegal dates.  Military
892 timezones were removed.
893 .IP "dynamic memory"
894 Many problems with corruption of the dynamic memory pool
895 have been fixed.
896 .IP locking
897 Will open files for write, if necessary to enable locking.
898 .IP "nil pointers"
899 All reported nil pointer problems have been fixed.
900 .IP replcomps
901 The \*(lqIn\-Reply\-To:\*(rq header had quotes added
902 around the date field to comply with RFC822.
903 .KE
904 .SH
905 White Pages
906 .LP
907 If \fIMH\fP is compiled with the \fBWP\fP option,
908 \fIsend\fP recognizes an address between \*(lq<<\*(rq and \*(lq>>\*(rq characters
909 such as:
910 .DS
911 To: << rose \-org psi >>
912 .DE
913 to be a name meaningful to a whitepages service.  In order to expand the
914 name, \fIsend\fP must be invoked interactively
915 (i.e., not from \fIpush\fP\^).  For each
916 name, \fIsend\fP will invoke a command called \fIfred\fP\^
917 in a special mode asking to expand the name.
918 .PP
919 To get a copy of the white pages service, contact wpp\-manager@psi.com.
920 .SH
921 Configuration Options
922 .LP
923 Some configuration options have been added or changed:
924 .IP cc \w'bbdelivery'u+2n
925 To specify an alternate C compiler.
926 .IP ccoptions
927 Defaults to `\-O'.
928 .IP bboards
929 May now be defined as \*(lqon\*(rq,
930 \*(lqoff\*(rq, \*(lqpop\*(rq, or \*(lqnntp\*(rq.
931 .IP bbdelivery
932 Determines whether the bboard delivery agent
933 and library files should be installed.
934 .IP lex
935 To specify an alternate version of \fIlex\fP\^.
936 .IP mailgroup
937 If defined, \fIinc\fP will be made set\-group\-id to this group.
938 .IP sharedlib
939 For \fBSUN40\fP systems; if \*(lqon\*(rq, makes \fBlibmh.a\fP
940 into a shared library.
941 .IP slibdir
942 The directory where the above shared library should be installed.
943 .IP sprintf
944 Set this to \*(lqint\*(rq if that's what your \fIsprintf\fP\0(3) library
945 routine returns.
946 .SH
947 Compilation Options
948 .LP
949 For different configurations,
950 several `\-D' options to \fIcc\fP have been added or changed:
951 .IP BERK \w'SENDMAILBUG'u+1n
952 This disables the address and date parsing routines.  If you
953 want to do much with \fImh\-format\fP\0(5), don't enable this.
954 .IP BSD43
955 Will make \fIrcvtty\fP set\-group\-id to the group \*(lqtty\*(rq.
956 .IP DBM
957 For sites with a dbm\-style password file (such as with Yellow
958 Pages), \fIMH\fP will not read the entire passwd file into a cache.
959 At one site that runs YP on a large passwd file, using this
960 showed a 6:1 performance improvement.
961 .IP NETWORK
962 This option has been deleted.  See \fBSOCKETS\fP.
963 .IP NOIOCTLH
964 Tells \fIMH\fP not to include the file \fBsys/ioctl.h\fP.  Use this
965 if this file is not present on your system.
966 .IP NTOHLSWAP
967 On systems with TCP/IP networking,
968 \fImsh\fP will try to use the \fBntohl()\fP macro from the
969 file \fBnetinet/in.h\fP to byte\-swap the binary map files
970 it writes.
971 .IP SENDMAILBUG
972 Some versions of \fIsendmail\fP return a \fB451\fP (failure) reply code
973 when they don't mean to indicate failure.  This option considers
974 that code to be equivalent to \fB250\fP (OK).
975 .IP SHADOW
976 Causes \fIpopd\fP to read the file \fB/etc/shadow\fP for
977 encrypted passwords instead of \fB/etc/passwd\fP.  Use this if you
978 have a shadow password file (such as on newer versions of SYSTEM 5).
979 .IP SOCKETS
980 Enable this if you are on a non\-BSD system with a
981 socket interface for TCP/IP networking compatible with 4.2BSD
982 .SM
983 UNIX.
984 .NL
985 .IP SUN40
986 Use on Suns running Sun OS 4.0 and later.
987 .IP SYS5
988 This option has been updated to refer to SYS5 R3 and later systems.
989 .IP SYS5DIR
990 Use this if your system uses \*(lqstruct dirent\*(rq instead of
991 \*(lqstruct direct\*(rq.  This should be true for systems based
992 on SYS5 R3 and later.
993 .IP TYPESIG
994 Defines the base type for the \fIsignal\fP system call.  This
995 defaults to \*(lqint\*(rq, but should be defined as \*(lqvoid\*(rq
996 if appropriate for your system.
997 .IP WP
998 Enables support for the White Pages service.
999 .SH
1000 Installation
1001 .LP
1002 \fIMH\fP will now
1003 explicitly set the protection mode on every file it installs.
1004 .PP
1005 Previously any existing file installed by \fIMH\fP
1006 would be backed up into
1007 the source tree, and then overwritten.
1008 Now, a few system\-dependent files will not be overwritten, and your
1009 changes will have to be merged in by hand.
1010 See the \fBREAD\-ME\fP file for more details.