aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2020-12-13 10:38:31 -0400
committerDavid Bremner <david@tethera.net>2020-12-13 10:38:31 -0400
commit7a9c97e8a57f2662b9069dae01b6e5cb2f650563 (patch)
tree2b7bfbf5b3848866444e61f7069ccc755301f844 /doc
parentb7ca3c23d17d247bda37645c7f861b3c0d04bf25 (diff)
parent900ee94b0f4f48ee536bd2e9bd6bb2dfc661d615 (diff)
Merge tag 'debian/0.31.2-3' into debian/buster-backports
notmuch release 0.31.2-3 for unstable (sid) [dgit] [dgit distro=debian no-split --quilt=linear]
Diffstat (limited to 'doc')
-rw-r--r--doc/Makefile.local10
-rw-r--r--doc/conf.py35
-rw-r--r--doc/doxygen.cfg2
-rw-r--r--doc/index.rst1
-rw-r--r--doc/man1/notmuch-config.rst15
-rw-r--r--doc/man1/notmuch.rst6
-rw-r--r--doc/man7/notmuch-properties.rst24
-rw-r--r--doc/man7/notmuch-search-terms.rst54
-rw-r--r--doc/notmuch-emacs.rst10
-rw-r--r--doc/python-bindings.rst5
10 files changed, 86 insertions, 76 deletions
diff --git a/doc/Makefile.local b/doc/Makefile.local
index d733b51e..60bd7184 100644
--- a/doc/Makefile.local
+++ b/doc/Makefile.local
@@ -1,10 +1,10 @@
-# -*- makefile -*-
+# -*- makefile-gmake -*-
dir := doc
# You can set these variables from the command line.
SPHINXOPTS := -q
-SPHINXBUILD = HAVE_EMACS=${HAVE_EMACS} WITH_EMACS=${WITH_EMACS} sphinx-build
+SPHINXBUILD = sphinx-build
DOCBUILDDIR := $(dir)/_build
# Internal variables.
@@ -29,8 +29,8 @@ MAN1_TEXI := $(patsubst $(srcdir)/doc/man1/%.rst,$(DOCBUILDDIR)/texinfo/%.texi,$
MAN5_TEXI := $(patsubst $(srcdir)/doc/man5/%.rst,$(DOCBUILDDIR)/texinfo/%.texi,$(MAN5_RST))
MAN7_TEXI := $(patsubst $(srcdir)/doc/man7/%.rst,$(DOCBUILDDIR)/texinfo/%.texi,$(MAN7_RST))
INFO_TEXI_FILES := $(MAN1_TEXI) $(MAN5_TEXI) $(MAN7_TEXI)
-ifeq ($(HAVE_EMACS)$(WITH_EMACS),11)
- INFO_TEXI_FILES := $(INFO_TEXI_FILES) $(DOCBUILDDIR)/texinfo/notmuch-emacs.texi
+ifeq ($(WITH_EMACS),1)
+ INFO_TEXI_FILES += $(DOCBUILDDIR)/texinfo/notmuch-emacs.texi
endif
INFO_INFO_FILES := $(INFO_TEXI_FILES:.texi=.info)
@@ -40,7 +40,7 @@ INFO_INFO_FILES := $(INFO_TEXI_FILES:.texi=.info)
.PHONY: install-man build-man apidocs install-apidocs
%.gz: %
- rm -f $@ && gzip --stdout $^ > $@
+ rm -f $@ && gzip --no-name --stdout $^ > $@
ifeq ($(WITH_EMACS),1)
$(DOCBUILDDIR)/.roff.stamp sphinx-html sphinx-texinfo: docstring.stamp
diff --git a/doc/conf.py b/doc/conf.py
index 8afff929..11bed51d 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -4,6 +4,8 @@
import sys
import os
+extensions = [ 'sphinx.ext.autodoc' ]
+
# The suffix of source filenames.
source_suffix = '.rst'
@@ -12,16 +14,26 @@ master_doc = 'index'
# General information about the project.
project = u'notmuch'
-copyright = u'2009-2019, Carl Worth and many others'
+copyright = u'2009-2020, Carl Worth and many others'
location = os.path.dirname(__file__)
for pathdir in ['.', '..']:
- version_file = os.path.join(location,pathdir,'version')
+ version_file = os.path.join(location,pathdir,'version.txt')
if os.path.exists(version_file):
with open(version_file,'r') as infile:
version=infile.read().replace('\n','')
+# for autodoc
+sys.path.insert(0, os.path.join(location, '..', 'bindings', 'python-cffi', 'notmuch2'))
+
+# read generated config
+for pathdir in ['.', '..']:
+ conf_file = os.path.join(location,pathdir,'sphinx.config')
+ if os.path.exists(conf_file):
+ with open(conf_file,'r') as infile:
+ exec(''.join(infile.readlines()))
+
# The full version, including alpha/beta/rc tags.
release = version
@@ -29,12 +41,23 @@ release = version
# directories to ignore when looking for source files.
exclude_patterns = ['_build']
-# If we don't have emacs (or the user configured --without-emacs),
-# don't build the notmuch-emacs docs, as they need emacs to generate
-# the docstring include files
-if os.environ.get('HAVE_EMACS') != '1' or os.environ.get('WITH_EMACS') != '1':
+if tags.has('WITH_EMACS'):
+ # Hacky reimplementation of include to workaround limitations of
+ # sphinx-doc
+ lines = ['.. include:: /../emacs/rstdoc.rsti\n\n'] # in the source tree
+ for file in ('notmuch.rsti', 'notmuch-lib.rsti', 'notmuch-show.rsti', 'notmuch-tag.rsti'):
+ lines.extend(open(rsti_dir+'/'+file))
+ rst_epilog = ''.join(lines)
+ del lines
+else:
+ # If we don't have emacs (or the user configured --without-emacs),
+ # don't build the notmuch-emacs docs, as they need emacs to generate
+ # the docstring include files
exclude_patterns.append('notmuch-emacs.rst')
+if not tags.has('WITH_PYTHON'):
+ exclude_patterns.append('python-bindings.rst')
+
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
diff --git a/doc/doxygen.cfg b/doc/doxygen.cfg
index 2ca15d41..a2c4fd07 100644
--- a/doc/doxygen.cfg
+++ b/doc/doxygen.cfg
@@ -264,12 +264,10 @@ GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = NO
EXTERNAL_PAGES = NO
-PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = NO
-MSCGEN_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO
DOT_NUM_THREADS = 0
diff --git a/doc/index.rst b/doc/index.rst
index 4440d93a..a3bf3480 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -26,6 +26,7 @@ Contents:
man7/notmuch-search-terms
man1/notmuch-show
man1/notmuch-tag
+ python-bindings
Indices and tables
==================
diff --git a/doc/man1/notmuch-config.rst b/doc/man1/notmuch-config.rst
index 28487079..769f336a 100644
--- a/doc/man1/notmuch-config.rst
+++ b/doc/man1/notmuch-config.rst
@@ -38,7 +38,7 @@ programmatically as described in the SYNOPSIS above.
Every configuration item is printed to stdout, each on a separate
line of the form::
- *section*.\ *item*\ =\ *value*
+ section.item=value
No additional whitespace surrounds the dot or equals sign
characters. In a multiple-value item (a list), the values are
@@ -134,14 +134,6 @@ The available configuration items are described below.
Default: ``true``.
-**crypto.gpg_path**
- Name (or full path) of gpg binary to use in verification and
- decryption of PGP/MIME messages. NOTE: This configuration item is
- deprecated, and will be ignored if notmuch is built against GMime
- 3.0 or later.
-
- Default: ``gpg``.
-
**index.decrypt** **[STORED IN DATABASE]**
Policy for decrypting encrypted messages during indexing. Must be
one of: ``false``, ``auto``, ``nostash``, or ``true``.
@@ -206,8 +198,9 @@ The available configuration items are described below.
**built_with.<name>**
Compile time feature <name>. Current possibilities include
- "compact" (see **notmuch-compact(1)**) and "field_processor" (see
- **notmuch-search-terms(7)**).
+ "retry_lock" (configure option, included by default).
+ (since notmuch 0.30, "compact" and "field_processor" are
+ always included.)
**query.<name>** **[STORED IN DATABASE]**
Expansion for named query called <name>. See
diff --git a/doc/man1/notmuch.rst b/doc/man1/notmuch.rst
index d2cd8da5..fecfd08a 100644
--- a/doc/man1/notmuch.rst
+++ b/doc/man1/notmuch.rst
@@ -128,9 +128,9 @@ OPTION SYNTAX
-------------
All options accepting an argument can be used with '=' or ':' as a
-separator. For the cases where it's not ambiguous (in particular
-excluding boolean options), a space can also be used. The following
-are all equivalent:
+separator. Except for boolean options (which would be ambiguous), a
+space can also be used as a separator. The following are all
+equivalent:
::
diff --git a/doc/man7/notmuch-properties.rst b/doc/man7/notmuch-properties.rst
index 802e6763..a7d91d67 100644
--- a/doc/man7/notmuch-properties.rst
+++ b/doc/man7/notmuch-properties.rst
@@ -109,6 +109,30 @@ of its normal activity.
example, an AES-128 key might be stashed in a notmuch property as:
``session-key=7:14B16AF65536C28AF209828DFE34C9E0``.
+**index.repaired**
+
+ Some messages arrive in forms that are confusing to view; they can
+ be mangled by mail transport agents, or the sending mail user
+ agent may structure them in a way that is confusing. If notmuch
+ knows how to both detect and repair such a problematic message, it
+ will do so during indexing.
+
+ If it applies a message repair during indexing, it will use the
+ ``index.repaired`` property to note the type of repair(s) it
+ performed.
+
+ ``index.repaired=skip-protected-headers-legacy-display`` indicates
+ that when indexing the cleartext of an encrypted message, notmuch
+ skipped over a "legacy-display" text/rfc822-headers part that it
+ found in that message, since it was able to index the built-in
+ protected headers directly.
+
+ ``index.repaired=mixedup`` indicates the repair of a "Mixed Up"
+ encrypted PGP/MIME message, a mangling typically produced by
+ Microsoft's Exchange MTA. See
+ https://tools.ietf.org/html/draft-dkg-openpgp-pgpmime-message-mangling
+ for more information.
+
SEE ALSO
========
diff --git a/doc/man7/notmuch-search-terms.rst b/doc/man7/notmuch-search-terms.rst
index 1dd2dc58..28fca737 100644
--- a/doc/man7/notmuch-search-terms.rst
+++ b/doc/man7/notmuch-search-terms.rst
@@ -37,9 +37,8 @@ In addition to free text, the following prefixes can be used to force
terms to match against specific portions of an email, (where <brackets>
indicate user-supplied values).
-If notmuch is built with **Xapian Field Processors** (see below) some
-of the prefixes with <regex> forms can be also used to restrict the
-results to those whose value matches a regular expression (see
+Some of the prefixes with <regex> forms can be also used to restrict
+the results to those whose value matches a regular expression (see
**regex(7)**) delimited with //, for example::
notmuch search 'from:"/bob@.*[.]example[.]com/"'
@@ -87,8 +86,7 @@ thread:<thread-id>
of output from **notmuch search**
thread:{<notmuch query>}
- If notmuch is built with **Xapian Field Processors** (see below),
- threads may be searched for indirectly by providing an arbitrary
+ Threads may be searched for indirectly by providing an arbitrary
notmuch query in **{}**. For example, the following returns
threads containing a message from mallory and one (not necessarily
the same message) with Subject containing the word "crypto".
@@ -158,9 +156,7 @@ lastmod:<initial-revision>..<final-revision>
query:<name>
The **query:** prefix allows queries to refer to previously saved
- queries added with **notmuch-config(1)**. Named queries are only
- available if notmuch is built with **Xapian Field Processors**
- (see below).
+ queries added with **notmuch-config(1)**.
property:<key>=<value>
The **property:** prefix searches for messages with a particular
@@ -353,23 +349,21 @@ since 1970-01-01 00:00:00 UTC. For example:
date:@<initial-timestamp>..@<final-timestamp>
-date:<expr>..! can be used as a shorthand for date:<expr>..<expr>. The
-expansion takes place before interpretation, and thus, for example,
-date:monday..! matches from the beginning of Monday until the end of
-Monday.
-With **Xapian Field Processor** support (see below), non-range
-date queries such as date:yesterday will work, but otherwise
-will give unexpected results; if in doubt use date:yesterday..!
-
-Currently, we do not support spaces in range expressions. You can
+Currently, spaces in range expressions are not supported. You can
replace the spaces with '\_', or (in most cases) '-', or (in some cases)
leave the spaces out altogether. Examples in this man page use spaces
for clarity.
-Open-ended ranges are supported (since Xapian 1.2.1), i.e. it's possible
-to specify date:..<until> or date:<since>.. to not limit the start or
-end time, respectively. Pre-1.2.1 Xapian does not report an error on
-open ended ranges, but it does not work as expected either.
+Open-ended ranges are supported. I.e. it's possible to specify
+date:..<until> or date:<since>.. to not limit the start or
+end time, respectively.
+
+Single expression
+-----------------
+
+date:<expr> works as a shorthand for date:<expr>..<expr>.
+For example, date:monday matches from the beginning of Monday until
+the end of Monday.
Relative date and time
----------------------
@@ -446,24 +440,6 @@ Time zones
Some time zone codes, e.g. UTC, EET.
-XAPIAN FIELD PROCESSORS
-=======================
-
-Certain optional features of the notmuch query processor rely on the
-presence of the Xapian field processor API. You can determine if your
-notmuch was built against a sufficiently recent version of Xapian by running
-
-::
-
- % notmuch config get built_with.field_processor
-
-Currently the following features require field processor support:
-
-- non-range date queries, e.g. "date:today"
-- named queries e.g. "query:my_special_query"
-- regular expression searches, e.g. "subject:/^\\[SPAM\\]/"
-- thread subqueries, e.g. "thread:{from:bob}"
-
SEE ALSO
========
diff --git a/doc/notmuch-emacs.rst b/doc/notmuch-emacs.rst
index 1655e2f0..de47b726 100644
--- a/doc/notmuch-emacs.rst
+++ b/doc/notmuch-emacs.rst
@@ -377,13 +377,3 @@ suffix exist it will be read instead (just one of these, chosen in this
order). Most often users create ``~/.emacs.d/notmuch-config.el`` and just
work with it. If Emacs was invoked with the ``-q`` or ``--no-init-file``
options, ``notmuch-init-file`` is not read.
-
-.. include:: ../emacs/rstdoc.rsti
-
-.. include:: ../emacs/notmuch.rsti
-
-.. include:: ../emacs/notmuch-lib.rsti
-
-.. include:: ../emacs/notmuch-show.rsti
-
-.. include:: ../emacs/notmuch-tag.rsti
diff --git a/doc/python-bindings.rst b/doc/python-bindings.rst
new file mode 100644
index 00000000..e1ad26ad
--- /dev/null
+++ b/doc/python-bindings.rst
@@ -0,0 +1,5 @@
+Python Bindings
+===============
+
+.. automodule:: notmuch2
+ :members: