Added all of the MH sources, including RCS files, in
[mmh] / docs / historical / mh-6.8.5 / local / linux / README.linux
1 This is the patch distribution for MH 6.8.3 for Linux.  You will need the UCI
2 source distribution of MH 6.8.3.
3
4 If you wish to build shared libraries, you must also have tools-2.10 or later.
5 (I used tools-2.15.)
6
7
8
9 WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
10
11 This distribution WILL NOT WORK with libc-4.4.  Use the old distribution if
12 you need libc-4.4; or, better yet, upgrade to libc-4.5.  You'll eventually
13 need to anyway...
14
15 Do NOT attempt to use a particular version of libmh with binaries compiled
16 for a different version.  libmh is not a "normal" shared library; there are
17 many interdependencies with respect to both function parameters and to side
18 effects.  Using a mismatched libmh *will* fail; if you're lucky, all you'll
19 get is a core dump.  (If you're not, I hope you backed up your Mail
20 directory recently...)
21
22 If you have been using the original MH 6.8.3 release for Linux, be aware that
23 some configuration details have changed:
24
25   * BBoards are no longer compiled in
26   * The APOP and MPOP options are no longer supported
27   * The MHRC option has been added
28   * Manpages now have the "mh" extension added, as per the MH standard
29
30 If you want to re-enable BBoards, I strongly suggest that you get a recent
31 version of sendmail (NOT smail; sendmail support is provided, but you're on
32 your own if you want to configure smail for BBoards.  Yes, it turns my
33 stomach, too...) and read conf/mh-gen.8 and doc/ADMIN.me.  The same goes for
34 configuring the POP server, which is enabled but not tested and probably not
35 functional.  I don't support either of the above.
36
37 If you change configuration options, you may need to regenerate the shared
38 library tables.  See the file doc/README.tr in the tools-2.10 (or later)
39 distribution for details.  In particular, I have made no provision for the
40 length of the mhbinpath and mhetcpath to be increased.
41
42 WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
43
44
45
46 Instructions:
47
48 (1) Unpack the UCI MH distribution into a directory somewhere.  Keep in mind
49 that MH is *huge*.
50
51 (2) Unpack this distriburtion into the same directory.  It will create several
52 files in the current directory, as well as a "jump" directory containing the
53 control files for the shared libmh.
54
55 (3) Type "patch -p0 -N < DIFFS.linux".  This will apply the basic
56 compatibility patches to MH.
57
58 (4) Examine the file "zotnet/tws/dtimep.c-lexed".  Some early copies of the
59 UCI MH distribution have an empty file here; others have the correct file.  If
60 yours is empty, copy linux-dtimep.c-lexed to zotnet/tws/dtimep.c-lexed.  If
61 you plan to build the shared library, you may want to copy this file anyway;
62 if you use the distribution one, you may need to regenerate the shared
63 library tables because my copy of the MH distribution came with an empty
64 dtimep.c-lexed and I had to create this one to build MH.
65
66 (5) Examine the file "linux-conf.MH".  This is an MH configuration file
67 consistent with the Linux FSSTND and with my best understanding of Debian
68 Linux.  (It is *not* the one I use, by the way.)  You may wish to read
69 conf/mh-gen.8 and change some of the options; if you do so, PLEASE change the
70 version numbers in jump/jump.params and jump/Makefile to avoid disaster.  See
71 the WARNING above.  Copy linux-conf.MH to conf/MH and edit it to match your
72 choice of options.
73
74 (6) Likewise, "linux-conf.config.mtstailor" is a Linux-specific copy of
75 conf/config/mtstailor.  You may want to modify it as per conf/mh-gen.8.  (This
76 is much less likely, IMHO.)  Copy it to conf/config/mtstailor and edit as
77 above.
78
79 (7) Configure MH:  "cd conf; make mhconfig; mhconfig MH; cd ..; make clean".
80
81 (8) If you want to build the static MH, skip to step 10.
82
83 (9) If you want to build the MH shared library, type the command "patch -p0 -N
84 < DIFFS.shlib".  I don't know whether to try to fix this or to wait for
85 libc-5.0 with ELF shared libraries; those are already supported by MH.  But
86 making the MH configuration facility support Linux DLL shared libraries is
87 going to be a real b*tch of a job.
88
89 (10) Type "make".  Watch for errors; they won't stop the build (not my
90 idea...).  On my 486DX2/66 24MB it takes 10-15 minutes to build MH from
91 scratch.  (Don't knock it; it used to take an hour and a half back when I was
92 building MH 6.5 under System III on a 68000 box...)
93
94 (11) If something went wrong, make sure you didn't change the wrong options.
95 (Well-meaning fools who try to substitute BSD options for the SVR4 options in
96 my conf/MH will probably never get thjings working reliably.  You have been
97 warned.)  Make sure you're using libc-4.5.x.  If all else fails, capture the
98 output of the "make" above in a file and send it to me.
99
100 (12) Type "make install" to install the binaries and manpages.  WARNING!  If
101 you had the old Linux MH distribution installed, you may want to remove the
102 old manpages by hand; they will *not* be overwritten, because the extensions
103 have been returned to the MH standard.  (I decline to argue this with the
104 FSSTND or Debian folks; if they want to impose maintenance problems on
105 developers, they should be prepared to take over said development themselves.)
106
107 (13) That's it!  Make sure /usr/bin/mh is on your path before trying to use
108 MH.
109
110
111
112 Instructions on how to *use* MH are beyond the scope of this document.  See
113 doc/MH.me, papers/beginners/beginners.tex, and the MH Nutshell Handbook from
114 O'Reilly and Associates.
115
116 ++Brandon
117 bsa@kf8nh.wariat.org
118 August 1, 1994