# INSTALL -- installation instructions
#
---------------
-Installing nmh
---------------
+--------------------------------
+Installing nmh, guided by script
+--------------------------------
+For routine installation on popular platforms, the build_nmh shell
+script can be used to guide you through configuration. It will then
+build and optionally (with -i) install in the configured location.
+
+
+------------------------
+Installing nmh, manually
+------------------------
Please read all of the following instructions before you begin
building nmh.
./configure --help
-2) Look through the user configuration section at the beginning
- of the generated include file `config.h'. You may
- want to customize some #defines for your environment, though
- that is usually unnecessary. Note the configure options below
- control some of the #defines.
+2) make
-3) make
+3) (Optional) make check
-4) make test
+ This takes a bit of time, around one minute on a modern machine,
+ but is highly recommended.
- This takes a bit of time (under 2 minutes on a modern machine) but
- is highly recommended. "make test" copies your configuration and
- rebuilds nmh completely in a sandbox, so you can test without
- disturbing an existing nmh installation or any of your nmh folders.
+ test/inc/test-deb359167 uses valgrind, which detects use of an
+ uninitialized variable on older Linux distributions such as
+ Mandriva 2007.0 and CentOS 5.4. That particular failure is
+ beyond the scope of nmh and can be ignored.
-5) make install
+4) make install
Note that if you have [n]mh files in your install directories with
the same names as the files being installed, the old ones will get
- overwritten without any warning. The only directory that isn't
- true for is the `etc' directory -- in that directory, the previous
- copy of each <file> will be backed up as <file>.prev if it differs
- from the newly-installed copy. Watch for any diff output while
- make is processing that directory to see if you need to merge
- changes from *.prev files into the new versions.
-
-6) Edit the file `mts.conf' (installed in the nmh `etc' directory)
+ overwritten without any warning.
+
+5) Edit the file `mts.conf' (installed in the nmh `etc' directory)
and make any necessary changes for the mail transport interface
you are using.
traffic. See the discussion of the --with-smtpserver configure
option below.
- If you compile with POP support, but don't want to use it exclusively,
- you can use the `-host' and `-user' options to `inc' and `msgchk'
- rather than hardcoding pophost in `mts.conf'.
+ If you don't want to hardcode pophost in `mts.conf', you can use
+ the `-host' and `-user' options to `inc' and `msgchk'.
Check the `mh-tailor' man page for a list of all the available options
- for this file ("masquerade" may be of particular interest, though its
- default value allows the most flexibility. See the discussion of the
- --enable-masquerade configure option below).
+ for this file.
-7) Edit the file `mhn.defaults' (installed in the nmh `etc' directory).
+6) Edit the file `mhn.defaults' (installed in the nmh `etc' directory).
This file contains the default profile entries for the nmh command
`mhn' and is created by the script `mhn.defaults.sh'. This script
will search a generic path (essentially your $PATH) for programs to
"MH & xmh: Email for Users and Programmers", 3rd edition, by Jerry Peek,
on the Internet at <http://rand-mh.sourceforge.net/book/mh/confmhn.html>.
-8) Add an optional global mh.profile, if desired. This profile should be
+7) Add an optional global mh.profile, if desired. This profile should be
placed in the nmh `etc' directory with the name `mh.profile'. This
file will be used to construct the initial .mh_profile of a new nmh
user, but will not be consulted after that.
"configure" initial values for these on its command line or in its
environment. For example,
- ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+ ./configure CC=c99 CFLAGS=-O2 LIBS=-lposix
If you wish to add options that are only used at compile time instead of
link time, you can use the CPPFLAGS variable:
+
./configure CPPFLAGS='-Wextra -Wno-sign-compare'
If you want to add to both compile and link flags at build time
-without putting them in the configuration, you can use an otherwise
-unused Makefile macro, like this:
- make AM_CFLAGS=--coverage
-
-That does not include that setting in the configuration, so you will
-have to repeat it if you re-run "make". One example would be if you
-build the test suite as a separate step:
- make test AM_CFLAGS=--coverage
+without putting them in the configuration, you can use the AM_CFLAGS
+Makefile macro:
-Note that the Makefile test target depends on the default target, so
-both be can built in one step with "make test".
+ make AM_CFLAGS=--coverage
----------------------------------------
Building nmh on additional architectures
--bindir=DIR (DEFAULT is ${prefix}/bin)
nmh's binaries (show, inc, comp, ...) are installed here.
---libdir=DIR (DEFAULT is ${prefix}/lib)
- nmh's support binaries (post, slocal, mhl, ...) are installed here.
+--libexecdir=DIR (DEFAULT is ${prefix}/libexec)
+ nmh's support binaries (post, slocal, mhl, ...) are installed
+ in ${libexecdir}/nmh.
--sysconfdir=DIR (DEFAULT is ${prefix}/etc)
- nmh's config files (mts.conf, mhn.defaults, ...) are installed here.
+ nmh's config files (mts.conf, mhn.defaults, ...) are installed
+ in ${sysconfdir}/nmh.
--mandir=DIR (DEFAULT is ${prefix}/man)
nmh's man pages are installed here.
---enable-debug
- Enable debugging support.
-
---enable-masquerade[='draft_from mmailid username_extension']
- By default, all three masquerade options are enabled.
-
- If this option is disabled, the mts.conf file will contain the
- line "masquerade: " (with no value), which may be manually edited
- later. You may find it convenient to specify a value at
- configure-time, however, so that each time nmh is reinstalled,
- the right value will be there.
-
- See the mh-tailor(5) man page for full documentation of "masquerade:".
-
- This option will likely be removed in a future version of nmh.
-
---enable-pop
- Enable client-side support for pop.
-
---enable-apop
- Enable client-side support for apop (Authenticated POP).
-
--with-editor=EDITOR (DEFAULT is vi)
specify the full path of the default editor to use. If this
option is not given, then the configuration process will search
nmh command `prompter'. If you specify `prompter', then you don't
need to give the full pathname.
---with-hesiod=PREFIX
- Specify the location of Hesiod.
-
---with-krb4=PREFIX
- Specify the location of Kerberos V4 for KPOP support. After
- running configure, you will need to change the POPSERVICE #define in
- config.h if you want to use KPOP exclusively (rather than being able
- to switch between KPOP and normal POP3). See the comments inside
- config.h for details.
-
---with-locking=LOCKTYPE (DEFAULT is dot)
+--with-locking=LOCKTYPE (DEFAULT is based on operating system)
Specify the locking mechanism when attempting to "inc" or
"msgchk" a local mail spool. Valid options are "dot",
"fcntl", "flock", and "lockf". Of the four, dot-locking
is not world- or user-writeable, and thus a lock file cannot
be created.
+--enable-lockdir=DIR (DEFAULT is disabled)
+ If dot locking is being used, store all dot-lock files in "DIR".
+ The default is to store them in the directory of the file being
+ locked.
+
--with-mts=MTS (DEFAULT is smtp)
- Specify the default mail transport system you want to use. The two
- acceptable options are "smtp" (which is the default), and
- "sendmail". This value will be put into the mts.conf file. You
- may find it convenient to specify a value at configure-time,
- however, so that each time nmh is reinstalled, the right value will
- be there.
+ Specify the default mail transport system you want to use. The three
+ acceptable options are "smtp" (which is the default),
+ "sendmail/smtp", and "sendmail/pipe". This value will be put into
+ the mts.conf file. You may find it convenient to specify a value
+ at configure-time, however, so that each time nmh is reinstalled,
+ the right value will be there.
If you use "smtp", this will enable a direct SMTP (simple mail
transport protocol) interface in nmh. When sending mail, instead
in the `mts.conf' file (default is localhost), and speak SMTP
directly.
- If you use "sendmail", then `post' will send messages by forking a
+ If you use "sendmail/smtp", then `post' will send messages by forking a
local copy of sendmail. Currently it will still speak SMTP with
this local copy of sendmail.
- If you wish to use a transport agent other than sendmail, you will
- need to use a `sendmail wrapper'.
+ If you use "sendmail/pipe", then `post' will open a pipe to the
+ sendmail program and invoke it with the '-t' and '-i' options
+ and write the message to sendmail's standard input. Note that
+ some nmh functionality is not available in this mode.
--with-ndbm=LIB (DEFAULT is to autodetect)
--with-ndbmheader=HEADER (DEFAULT is to autodetect)
If either of these options is given then the other must also be
specified.
---with-pager=PAGER (DEFAULT is more)
- Specify the default pager (file lister) to use. If this option
- is not given, then the configuration process will search for the
- command `more' and use it as the default.
-
---with-smtpservers='SMTPSERVER1[ SMTPSERVER2...]' (DEFAULT is localhost)
+--with-smtpserver='SMTPSERVER' (DEFAULT is localhost)
If this option is not specified, the mts.conf file will contain
the line "servers: localhost", which may be manually edited later.
You may find it convenient to specify a value at configure-time,
See the mh-tailor(5) man page for full documentation of "servers:".
+--with-cyrus-sasl (DEFAULT is to autodetect))
+ Enable SASL support for SMTP and POP via the Cyrus SASL library.
+ This is used for the POP AUTH and SMTP AUTH protocols. This supports
+ a wide variety of security mechanisms, including Kerberos/GSSAPI.
+ Session encryption via SASL is supported for both POP and SMTP
+ (depending on server-side support and the security mechanism in use).
+
+--with-tls (DEFAULT is to autodetect)
+ Enable TLS session encryption support for SMTP via the STARTTLS command
+ and TLS at connection start for both SMTP and POP.
+
+--with-oauth (DEFAULT is to enable if curl is installed)
+ Enable OAuth2 authentication for SMTP and POP.
+
+--with-readline (DEFAULT is to autodetect)
+ Enable support for readline functionality (command history/editing) at
+ the WhatNow? prompt.
+
--
The nmh team
nmh-workers@nongnu.org