doc/sexp-queries: replace definition lists with block quotes.
[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 3.0,
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 https://xapian.org
34
35         GMime
36         -----
37         GMime provides decoding of MIME email messages for Notmuch.
38
39         Without GMime, Notmuch would not be able to extract and index
40         the actual text from email message encoded as BASE64, etc.
41
42         GMime is available from https://github.com/jstedfast/gmime
43
44         Sfsexp
45         ------
46
47         sfsexp is the "small fast s-expression" library. Notmuch
48         optionally use it to provide a second query parser.
49
50         sfsexp is available from https://github.com/mjsottile/sfsexp.
51         In Debian Bookworm and later, install libsexp-dev.
52
53         Talloc
54         ------
55         Talloc is a memory-pool allocator used by Notmuch.
56
57         Talloc is an extremely lightweight and easy-to-use tool for
58         allocating memory in a hierarchical fashion and then freeing
59         it with a single call of the top-level handle. Using it has
60         made development of Notmuch much easier and much less prone to
61         memory leaks.
62
63         Talloc is available from https://talloc.samba.org/
64
65         zlib
66         ----
67
68         zlib is an extremely popular compression library. It is used
69         by Xapian, so if you installed that you will already have
70         zlib. You may need to install the zlib headers separately.
71
72         Notmuch needs the transparent write feature of zlib introduced
73         in version 1.2.5.2 (Dec. 2011).
74
75         zlib is available from https://zlib.net
76
77 Building Documentation
78 ----------------------
79
80 To build the documentation for notmuch you need at least version 1.0
81 of sphinx (Jul. 2010).
82
83 Sphinx is available from www.sphinx-doc.org.
84
85 To install the documentation as "info" pages, you will need the
86 additional tools makeinfo and install-info.
87
88 Installing Dependencies from Packages
89 -------------------------------------
90
91 On a modern, package-based operating system you can install all of the
92 dependencies with a single simple command line. For example:
93
94   For Debian and similar:
95
96         sudo apt-get install libxapian-dev libgmime-3.0-dev libtalloc-dev zlib1g-dev python3-sphinx texinfo install-info
97
98   For Fedora and similar:
99
100         sudo dnf install xapian-core-devel gmime30-devel libtalloc-devel zlib-devel python3-sphinx texinfo info
101
102 On other systems, a similar command can be used, but the details of
103 the package names may be different.
104
105         
106