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