MH 6.8.3 for Linux
==================

This distribution consists of two packages:  mh-6.8.3-bin.tar.gz contains
shared binaries, and mh-6.8.3-patch.tar.gz contains patches to the UCI MH
6.8.3 distribution.  The patches will allow the building of shared or static
binaries, although the implementation is still a bit of a hack.  You may
download either or both packages, depending on whether you want sources,
binaries, or both.

You will need to add a user for POP, and another for BBoards.  I used:

pop:x:13:13:POP administrator:/usr/lib/mh:/bin/sh
bboards:x:14:14:BBoards administrator:/usr/spool/bboards:/bin/sh

Do this before unpacking the binary distribution to avoid problems with buggy
versions of GNU tar, or before installing binaries built from the source
patch distribution.  (Note that the BBoards spool area is not included in the
binary distribution.)

mh-6.8.3-bin.tar.gz should be unpacked from the root directory.  It places
files in /usr/bin/mh, /usr/lib/mh, and /usr/sbin (popd), installs manpages in
/usr.man/man?/*.?mh, and installs the MH shared library libmh.so.2.0 in /lib.
(WARNING!!!  The internals of MH have changed; you can not use the older
shared library with the new binaries, or vice versa.)  Add /usr/bin/mh to your
PATH and you're set.  (Ed. note:  I don't want to hear about the choice of
directories.  Complain to the FSSTND folks if you don't like it, or grab the
source package and recompile it with different paths.)

mh-6.8.3-patch.tar.gz can be unpacked anywhere, although it's convenient to
unpack it into the top directory of the UCI MH distribution.  After unpacking,
issue the commands:

patch -p0 -N < DIFFS-pre
cp -f MH conf/MH
(cd conf/mh; make; mhconfig MH)
make clean

(If you want to change the configuration, edit conf/MH after the cp -f.)

If you want to build shared binaries, you must issue the command:

patch -p0 -N < DIFFS-post

after the "make clean" step.  Depending on what changes you may have made to
conf/MH, you may see several failures; you will need to patch those files
manually.  Eventually, I will get this into the distribution makefiles and the
post-patch won't be necessary.

!!! If you do not patch the binaries, you may want to edit doc/Makefile and
!!! change the definitions of MAN1EXT, MAN5EXT, and MAN8EXT to add the "mh"
!!! suffix to the manpages when they are installed.  This can not easily be
!!! done automatically; fixing it will require some changes to mhconfig.

Everything is now ready:  "make" will build the distribution.  (You will see
various warnings because NULL is defined as "(void *) 0" instead of simply
"0", and for shared binaries the DLL tools will complain about relative
JUMP_DIR settings.  The alternative having been to hardcode the full pathname,
forcing everyone to unpack MH in /varopt, I chose to accept the warnings.)

"make install" will place the binaries and configuration files in the
appropriate locations, and will install libmh.so.2.0 in /lib and run ldconfig.

If you need help building MH beyond this, I suggest reading the file READ-ME
in the top level of the UCI MH distribution.

Brandon S. Allbery
bsa@kf8nh.wariat.org
