This is the patch distribution for MH 6.8.3 for Linux.  You will need the UCI
source distribution of MH 6.8.3.

If you wish to build shared libraries, you must also have tools-2.10 or later.
(I used tools-2.15.)



WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING

This distribution WILL NOT WORK with libc-4.4.  Use the old distribution if
you need libc-4.4; or, better yet, upgrade to libc-4.5.  You'll eventually
need to anyway...

Do NOT attempt to use a particular version of libmh with binaries compiled
for a different version.  libmh is not a "normal" shared library; there are
many interdependencies with respect to both function parameters and to side
effects.  Using a mismatched libmh *will* fail; if you're lucky, all you'll
get is a core dump.  (If you're not, I hope you backed up your Mail
directory recently...)

If you have been using the original MH 6.8.3 release for Linux, be aware that
some configuration details have changed:

  * BBoards are no longer compiled in
  * The APOP and MPOP options are no longer supported
  * The MHRC option has been added
  * Manpages now have the "mh" extension added, as per the MH standard

If you want to re-enable BBoards, I strongly suggest that you get a recent
version of sendmail (NOT smail; sendmail support is provided, but you're on
your own if you want to configure smail for BBoards.  Yes, it turns my
stomach, too...) and read conf/mh-gen.8 and doc/ADMIN.me.  The same goes for
configuring the POP server, which is enabled but not tested and probably not
functional.  I don't support either of the above.

If you change configuration options, you may need to regenerate the shared
library tables.  See the file doc/README.tr in the tools-2.10 (or later)
distribution for details.  In particular, I have made no provision for the
length of the mhbinpath and mhetcpath to be increased.

WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING



Instructions:

(1) Unpack the UCI MH distribution into a directory somewhere.  Keep in mind
that MH is *huge*.

(2) Unpack this distriburtion into the same directory.  It will create several
files in the current directory, as well as a "jump" directory containing the
control files for the shared libmh.

(3) Type "patch -p0 -N < DIFFS.linux".  This will apply the basic
compatibility patches to MH.

(4) Examine the file "zotnet/tws/dtimep.c-lexed".  Some early copies of the
UCI MH distribution have an empty file here; others have the correct file.  If
yours is empty, copy linux-dtimep.c-lexed to zotnet/tws/dtimep.c-lexed.  If
you plan to build the shared library, you may want to copy this file anyway;
if you use the distribution one, you may need to regenerate the shared
library tables because my copy of the MH distribution came with an empty
dtimep.c-lexed and I had to create this one to build MH.

(5) Examine the file "linux-conf.MH".  This is an MH configuration file
consistent with the Linux FSSTND and with my best understanding of Debian
Linux.  (It is *not* the one I use, by the way.)  You may wish to read
conf/mh-gen.8 and change some of the options; if you do so, PLEASE change the
version numbers in jump/jump.params and jump/Makefile to avoid disaster.  See
the WARNING above.  Copy linux-conf.MH to conf/MH and edit it to match your
choice of options.

(6) Likewise, "linux-conf.config.mtstailor" is a Linux-specific copy of
conf/config/mtstailor.  You may want to modify it as per conf/mh-gen.8.  (This
is much less likely, IMHO.)  Copy it to conf/config/mtstailor and edit as
above.

(7) Configure MH:  "cd conf; make mhconfig; mhconfig MH; cd ..; make clean".

(8) If you want to build the static MH, skip to step 10.

(9) If you want to build the MH shared library, type the command "patch -p0 -N
< DIFFS.shlib".  I don't know whether to try to fix this or to wait for
libc-5.0 with ELF shared libraries; those are already supported by MH.  But
making the MH configuration facility support Linux DLL shared libraries is
going to be a real b*tch of a job.

(10) Type "make".  Watch for errors; they won't stop the build (not my
idea...).  On my 486DX2/66 24MB it takes 10-15 minutes to build MH from
scratch.  (Don't knock it; it used to take an hour and a half back when I was
building MH 6.5 under System III on a 68000 box...)

(11) If something went wrong, make sure you didn't change the wrong options.
(Well-meaning fools who try to substitute BSD options for the SVR4 options in
my conf/MH will probably never get thjings working reliably.  You have been
warned.)  Make sure you're using libc-4.5.x.  If all else fails, capture the
output of the "make" above in a file and send it to me.

(12) Type "make install" to install the binaries and manpages.  WARNING!  If
you had the old Linux MH distribution installed, you may want to remove the
old manpages by hand; they will *not* be overwritten, because the extensions
have been returned to the MH standard.  (I decline to argue this with the
FSSTND or Debian folks; if they want to impose maintenance problems on
developers, they should be prepared to take over said development themselves.)

(13) That's it!  Make sure /usr/bin/mh is on your path before trying to use
MH.



Instructions on how to *use* MH are beyond the scope of this document.  See
doc/MH.me, papers/beginners/beginners.tex, and the MH Nutshell Handbook from
O'Reilly and Associates.

++Brandon
bsa@kf8nh.wariat.org
August 1, 1994
