dump: support gzipped and atomic output
[notmuch] / INSTALL
1 Build and install instructions for Notmuch.
2
3 Compilation commands
4 --------------------
5 The process for compiling and installing Notmuch is the very standard
6 sequence of:
7
8         ./configure
9         make
10         sudo make install
11
12 In fact, if you don't plan to pass any arguments to the configure
13 script, then you can skip that step and just start with "make", (which
14 will call configure for you). See this command:
15
16         ./configure --help
17
18 for detailed documentation of the things you can control at the
19 configure stage.
20
21 Dependencies
22 ------------
23 Notmuch depends on four libraries: Xapian, GMime 2.4 or 2.6,
24 Talloc, and zlib which are each described below:
25
26         Xapian
27         ------
28         Xapian is the search-engine library underlying Notmuch.
29
30         It provides all the real machinery of indexing and searching,
31         (including the very nice parsing of the query string).
32
33         Xapian is available from http://xapian.org
34
35         Note: Notmuch will work best with Xapian 1.0.18 (or later) or
36         Xapian 1.1.4 (or later). Previous versions of Xapian (whether
37         1.0 or 1.1) had a performance bug that made notmuch very slow
38         when modifying tags. This would cause distracting pauses when
39         reading mail while notmuch would wait for Xapian when removing
40         the "inbox" and "unread" tags from messages in a thread.
41
42         GMime 2.4 or 2.6
43         ----------------
44         GMime provides decoding of MIME email messages for Notmuch.
45
46         Without GMime, Notmuch would not be able to extract and index
47         the actual text from email message encoded as BASE64, etc.
48
49         GMime is available from http://spruce.sourceforge.net/gmime/
50
51         Talloc
52         ------
53         Talloc is a memory-pool allocator used by Notmuch.
54
55         Talloc is an extremely lightweight and easy-to-use tool for
56         allocating memory in a hierarchical fashion and then freeing
57         it with a single call of the top-level handle. Using it has
58         made development of Notmuch much easier and much less prone to
59         memory leaks.
60
61         Talloc is available from http://talloc.samba.org/
62
63         zlib
64         ----
65
66         zlib is an extremely popular compression library. It is used
67         by Xapian, so if you installed that you will already have
68         zlib. You may need to install the zlib headers separately.
69
70         Notmuch needs the transparent write feature of zlib introduced
71         in version 1.2.5.2 (Dec. 2011).
72
73         zlib is available from http://zlib.net
74
75 Building Documentation
76 ----------------------
77
78 By default the documentation for notmuch is built using sphinx.
79
80 Sphinx is available from www.sphinx-doc.org.
81
82 If you prefer, you can build the man pages using rst2man, from the
83 python docutils package. See doc/INSTALL for details.
84
85
86 Installing Dependencies from Packages
87 -------------------------------------
88
89 On a modern, package-based operating system you can install all of the
90 dependencies with a simple simple command line. For example:
91
92   For Debian and similar:
93
94         sudo apt-get install libxapian-dev libgmime-2.6-dev libtalloc-dev zlib1g-dev python-sphinx
95
96   For Fedora and similar:
97
98         sudo yum install xapian-core-devel gmime-devel libtalloc-devel zlib-devel python-sphinx
99
100 On other systems, a similar command can be used, but the details of
101 the package names may be different.
102
103         
104