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