Skip to content

Latest commit

 

History

History
155 lines (117 loc) · 6.58 KB

INSTALL.md

File metadata and controls

155 lines (117 loc) · 6.58 KB

Installing NeoMutt

NeoMutt is a command line email client (Mail User Agent). It's fast, powerful and flexible.

The simplest way to obtain NeoMutt is to use your OS's package. See the distro page to see if there's one for you.

Obtaining the Source

The source can be downloaded from our project site on GitHub. It's available as a git repository or a 'tar.gz' archive.

Git

Clone the NeoMutt repository:

git clone https://github.com/neomutt/neomutt

It's recommended to use the latest tagged version. The 'main' branch is used for development and may not be as stable.

Source Archive

The latest release of NeoMutt can be found, here:

All source releases are signed for security. See Signing Releases for details.

Building NeoMutt

To build NeoMutt, you will need, at the very minimum:

  • A C99 compiler such as gcc or clang
  • SysV-compatible curses library: ncurses
  • Some common libraries, such as iconv and regex
  • DocBook XSL stylesheets and DTDs (for building the docs)

NeoMutt's build system uses Autosetup. It depends on Tcl and Jim to run its test scripts. If they aren't available, Autosetup will use a version bundled with NeoMutt.

Configure

Autosetup's configure.autosetup performs two tasks. It allows the user to enable/disable certain features of NeoMutt and it checks that all the build dependencies are present.

For a list of the currently supported options and a brief help text, run: ./configure.autosetup --help

Configure option Path Notes
--with-ncurses=path Location of ncurses
--gpgme Path GPG Made Easy
--gnutls Path Gnu TLS (SSL)
--gss Path Generic Security Services
--sasl Path Simple Authentication and Security Layer
--ssl Path OpenSSL
--fmemopen Optional Feature (Dangerous)
--lua Path Optional Feature
--notmuch Path Optional Feature
--mixmaster Optional Feature
--bdb Path Header cache backend
--gdbm Path Header cache backend
--kyotocabinet Path Header cache backend
--lmdb Path Header cache backend
--qdbm Path Header cache backend
--tokyocabinet Path Header cache backend
--with-lock=CHOICE Select 'fcntl' or 'flock'
--locales-fix Workaround for broken locales
--disable-nls Path National Language Support (translations)
--disable-pgp Path Pretty Good Privacy
--disable-smime Path Secure/Multipurpose Internet Mail Extensions
--disable-idn Path Internationalised domain names
--with-domain=DOMAIN Default email domain
--with-mailpath Path Location of spooled mail
--homespool Path Spooled mail is in user's home dir
--prefix Path Target directory for build (default: /usr)
--disable-doc Don't build the docs
--full-doc Document disabled features
--quiet Only show the summary

The options marked "Path" have either take a path, or have an extra option for specifying the library path. e.g. ./configure --notmuch --with-notmuch=/usr/local/lib/notmuch

The parameter --prefix is used to specify both the default search path for headers and libraries and the final directory structure of the installed files. These are often the same: if you have your dependencies installed in /usr/include and /usr/lib, you also probably want the NeoMutt executable to end up in /usr/bin and its documentation in /usr/share/doc. This behavior can be tweaked by specifying where 3rd party dependencies are to be found. This is done on a per-dependency basis using the --with-<dep>=path family of options. As an example, a GPGME installation in /opt can be looked up using the arguments --gpgme --with-gpgme=/opt.

The build can be adjusted by setting any of six environment variables:

  • CC - set the compiler
  • CFLAGS - replace all the compiler flags
  • EXTRA_CFLAGS - append flags to the default compiler flags
  • LD - set the linker
  • LDFLAGS - replace all the linker flags
  • EXTRA_LDFLAGS - append flags to the default linker flags

e.g. make EXTRA_CFLAGS=-g

Here are the sample commands to configure and build NeoMutt:

./configure --gnutls --gpgme --gss --sasl --tokyocabinet
make

Install / Uninstall

NeoMutt will be installed into the directory configured with --prefix. This can be modified using the DESTDIR make variable, for example when doing staged builds. DESTDIR is prepended to the install path.

To install NeoMutt to the configured location, run:

make install

To override the root directory, use the DESTDIR make variable, e.g.

make DESTDIR=$HOME/install install'

To uninstall NeoMutt from the configured location, run:

make uninstall

To override the root directory, use the DESTDIR make variable, e.g.

make DESTDIR=$HOME/install uninstall'