1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
|
Supported platforms
===================
Mutt has been reported to compile and run under the following Unix operating
systems:
AIX
BSDI
Convex
Data General Unix (DG/UX)
Digital Unix (OSF/1)
DYNIX/ptx
FreeBSD
HP-UX
IRIX
Linux
Atari MiNT
MkLinux
NetBSD
OpenBSD
QNX
SCO Unix 3.2v4/5
Solaris
SunOS
Ultrix
UnixWare
- An ANSI C compiler (such as gcc) is required.
- You must also have a SysV compatible curses library, or you must
install either
GNU ncurses, ftp://prep.ai.mit.edu/pub/gnu/
or
S-Lang, ftp://space.mit.edu/pub/davis/slang/
- Mutt needs an implementation of the iconv API for character set
conversions. A free one can be found under the following URL:
http://clisp.cons.org/~haible/packages-libiconv.html
Installation
============
Installing Mutt is rather painless through the use of the GNU
autoconf package. Simply untar the Mutt distribution, and run the
``configure'' script. If you have obtained the distribution from
the CVS repository, run the ``prepare'' script with the same command
line parameters you would pass to configure. It will set up mutt's
build environment and add the files which are present in the tar
balls, but not in the CVS repository.
In most cases, configure will automatically determine everything it
needs to know in order to compile. However, there are a few options
to ``configure'' to help it out, or change the default behavior:
--prefix=DIR
install Mutt in DIR instead of /usr/local
--with-sharedir=DIR
specify where to put architecture independent data files
--with-curses=DIR
use the curses lib in DIR/lib. If you have ncurses, ``configure''
will automatically look in /usr/include/ncurses for the include
files.
--with-slang[=DIR]
use the S-Lang library instead of ncurses. This library seems to
work better for some people because it is less picky about proper
termcap entries than ncurses. It is recommended that you use at
*least* version 0.99-38 with Mutt.
--with-mailpath=DIR
specify where the spool mailboxes are located on your system
--with-homespool[=FILE]
treat file in the user's home directory as the spool mailbox. Note
that this is *not* the full pathname, but relative to the user's
home directory. Defaults to "mailbox" if FILE is not specified.
--enable-pop
enable POP3 support
--enable-imap
enable IMAP support
--with-ssl[=PFX]
enable SSL support with IMAP. SSL support requires you to have
OpenSSL headers and libraries properly installed before
compiling. If the OpenSSL headers and libraries are not in the
default system pats you can use the optional PFX argument to
define the root directory of your installation. The libraries
are then expected to be found in PFX/lib and headers in
PFX/include/openssl.
--disable-nls
This switch disables mutt's native language support.
--with-included-gettext
Mutt will be built using the GNU gettext library included in
the intl/ sub-directory. You may need to use this switch if
your machine has something which looks like gettext to the
configure script, but isn't able to cope with mutt's catalog
files.
--with-regex
use GNU regex instead of local regexp routines. Many systems
don't have the POSIX compliant regcomp/regexec/regfree
routines, so this provides a way to support them.
--enable-flock
use flock() to lock files.
--disable-fcntl
by default, Mutt uses fcntl() to lock files. Over NFS this can
result in poor performance on read/write. Note that using this
option could be dangerous if dotlocking is also disabled.
--enable-nfs-fix
some implementations of NFS do not always write the
atime/mtime of small files. This means that Mutt's ``mailboxes''
feature does not always work properly, as it uses these
attributes to work out whether the file has new mail. This
option enables a workaround to this bug.
--enable-locales-fix
on some systems, the result of isprint() can't be used reliably
to decide which characters are printable, even if you set the
LANG environment variable. If you set this option, Mutt will
assume all characters in the ISO-8859-* range are printable. If
you leave it unset, Mutt will attempt to use isprint() if either
of the environment variables LANG, LC_ALL or LC_CTYPE is set,
and will revert to the ISO-8859-* range if they aren't.
--without-wc-funcs
by default Mutt uses the functions mbrtowc(), wctomb() and
wcwidth() provided by the system, when they are available.
With this option Mutt will use its own version of those
functions, which should work with 8-bit display charsets, UTF-8,
euc-jp or shift_jis, even if the system doesn't normally support
those multibyte charsets.
If you find Mutt is displaying non-ascii characters as octal
escape sequences (e.g. \243), even though you have set LANG and
LC_CTYPE correctly, then you might find you can solve the problem
with either or both of --enable-locales-fix and --without-wc-funcs.
--with-exec-shell=SHELL
on some versions of unix, /bin/sh has a bug that makes using emacs
with mutt very difficult. If you have the problem that whenever
you press control-G in emacs, mutt and emacs become very confused,
you may want to try using a Bourne-derived shell other than
/bin/sh here. Some shells that may work are bash, zsh, and ksh.
C shells such as csh and tcsh will amost certainly not work right.
Note that this option is unrelated to what shell mutt gives you
when you press '!'. Only use this option to solve the above problem,
and only specify one of the above shells as its argument.
(If you encounter this problem with your platform's native
Bourne shell, please send a short report to mutt-dev@cs.hmc.edu,
so a short note on this topic can be added to the Platform notes
section below.)
--enable-exact-address
By default, Mutt will rewrite all addresses in the form
Personal Name <user@host.domain>
regardless of the input. By enabling this option, Mutt will write
addresses in the same form they are parsed. NOTE: this requires
significantly more memory.
WARNING: DO NOT USE THIS OPTION, IT IS BROKEN.
Once ``configure'' has completed, simply type ``make install.''
Mutt should compile cleanly (without errors) and you should end up with a
binary called ``mutt.'' If you get errors about undefined symbols like
A_NORMAL or KEY_MIN, then you probably don't have a SysV compliant curses
library. You should install either ncurses or S-Lang (see above), and then
run the ``configure'' script again.
Please note that "VPATH" builds currently do _not_ work.
Character set support
=====================
Mutt no longer contains functions for doing character set conversion.
Instead, it expects the iconv functions (iconv_open, iconv,
iconv_close) to be provided. Most up-to-date systems provide these
functions, often as part of the C library. If you are installing Mutt
on a system which does not have them, it is recommended that you
install Bruno Haible's portable libiconv library, which you can obtain
from:
ftp://ftp.ilog.fr/pub/Users/haible/gnu/
Even if your system does provide the iconv functions, you might want
to install libiconv, as some systems provide only a very limited
version of iconv.
If you decide to use your system's iconv implementation, you may
need to tell mutt about implementation-defined names for some
character sets. Sample configuration files for various systems can
be found in the directory contrib/iconv/ in this source
distribution, and will be installed in the samples/iconv directory
as part of mutt's documentation.
In order to use these sample configuration files, just put a line
like
source /usr/local/doc/mutt/samples/iconv/iconv.osf1-4.0d.rc
into your system's global Muttrc, which normally resides in /etc or
/usr/local/etc.
If you really want to, you can configure Mutt --without-iconv, but
there will then be no character set conversion.
Platform Notes
==============
All platforms
There is a bug in most (if not all) S-Lang versions which
prevents the Meta key from working with mutt. A patch can
be found in the file contrib/patch.slang-1.2.2.keypad.1 in
this mutt distribution.
Solaris 2.4
The system regcomp() and regexec() routines are very badly
broken. This should be automatically detected by the
configure script. If not, use the --with-regex switch when
configuring mutt.
We are also hearing reports that Solaris 2.4's NLS libraries
dump core with mutt when using a locale different from "C".
Use the --with-included-gettext configuration switch if you
experience this problem.
Color does not work right with Solaris curses. You will
have to compile with either ncurses or slang to get working
color support.
Solaris 2.6
There are reports that mutt behaves strangely when linked with
the system regexp library. Please use the --with-regex switch
when configuring on this platform.
For the real fix, applying Sun patches # 105490-05 (linker
patch) and # 105210-17 (libc and malloc patch) from
sunsolve.sun.com has been reported to stop these problems
from occuring.
Linux
On recent Linux systems, flock() and fcntl() locks don't mix. If
you use the --enable-flock switch on such systems, be sure to
give the --disable-fcntl argument as well.
Sparc Linux
Redhat 4.2 Sparc users reported problems with some system
include files when building mutt. Configuring mutt with the
--disable-warnings switch is said to help against this problem.
Digital Unix (OSF/1)
The system curses library is said to be badly broken. Use GNU
ncurses or SLang instead.
$Id$
|