notmuch.git
7 years agocli/show: list all filenames of a message in the formatted output
Jani Nikula [Sat, 25 Feb 2017 13:31:31 +0000 (15:31 +0200)]
cli/show: list all filenames of a message in the formatted output

Instead of just having the first filename for the message, list all
duplicate filenames of the message as a list in the formatted
outputs. This bumps the format version to 3.

7 years agoemacs: use (system-name) instead of system-name
Jani Nikula [Sun, 26 Feb 2017 09:28:30 +0000 (11:28 +0200)]
emacs: use (system-name) instead of system-name

Fix the deprecation warning:

In notmuch-maildir-fcc-make-uniq-maildir-id:
emacs/notmuch-maildir-fcc.el:279:53:Warning: ‘system-name’ is an obsolete
    variable (as of 25.1); use (system-name) instead

I've used (system-name) since at least 2011, so it must have been
around quite a while.

7 years agolib/message.cc: use view number to invalidate cached metadata
David Bremner [Fri, 24 Feb 2017 18:33:07 +0000 (14:33 -0400)]
lib/message.cc: use view number to invalidate cached metadata

Currently the view number is incremented by notmuch_database_reopen

7 years agolib: handle DatabaseModifiedError in _n_message_ensure_metadata
David Bremner [Sat, 18 Feb 2017 01:28:05 +0000 (21:28 -0400)]
lib: handle DatabaseModifiedError in _n_message_ensure_metadata

The retries are hardcoded to a small number, and error handling aborts
than propagating errors from notmuch_database_reopen. These are both
somewhat justified by the assumption that most things that can go
wrong in Xapian::Database::reopen are rare and fatal. Here's the brief
discussion with Xapian upstream:

   24-02-2017 08:12:57 < bremner> any intuition about how likely
      Xapian::Database::reopen is to fail? I'm catching a
      DatabaseModifiedError somewhere where handling any further errors is
      tricky, and wondering about treating a failed reopen as as "the
      impossible happened, stopping"

   24-02-2017 16:22:34 < olly> bremner: there should not be much scope for
    failure - stuff like out of memory or disk errors, which are probably a
    good enough excuse to stop

7 years agolib: add _notmuch_database_reopen
David Bremner [Fri, 24 Feb 2017 01:38:24 +0000 (21:38 -0400)]
lib: add _notmuch_database_reopen

The main expected use is to recover from a Xapian::DatabaseChanged
exception.

7 years agotest: add known broken test for uncaught DatabaseModifiedError
David Bremner [Sat, 25 Feb 2017 02:57:40 +0000 (22:57 -0400)]
test: add known broken test for uncaught DatabaseModifiedError

There are several of these to track down, but one that is in quite a
few code paths is _notmuch_message_ensure_metadata.

7 years agoMerge branch 'release'
David Bremner [Thu, 23 Feb 2017 13:08:15 +0000 (09:08 -0400)]
Merge branch 'release'

Merge in g_hash_table read-after-free fix

7 years agoversion: bump to 0.23.6
David Bremner [Thu, 23 Feb 2017 13:03:10 +0000 (09:03 -0400)]
version: bump to 0.23.6

python and debian bumped at the same time

7 years agotest: replaced use of python with $NOTMUCH_PYTHON (twice)
Tomi Ollila [Wed, 4 Jan 2017 21:33:15 +0000 (23:33 +0200)]
test: replaced use of python with $NOTMUCH_PYTHON (twice)

$NOTMUCH_PYTHON is sourced from sh.config, configured by
./configure and stated to be used as:

"Name of python command to use in configure and the test suite."

7 years agoemacs: company: remove two build warnings
Mark Walters [Sat, 28 Jan 2017 10:19:58 +0000 (10:19 +0000)]
emacs: company: remove two build warnings

This adds two defvars to avoid two build warnings in the notmuch emacs
code. These were both introduced (by me) in commit 827c28a0.

7 years agoemacs: fully add the notmuch-address customize group
Mark Walters [Sat, 28 Jan 2017 10:38:27 +0000 (10:38 +0000)]
emacs: fully add the notmuch-address customize group

We now have several customizable options for address completion. There
is a customize group notmuch-address but it only contains one of these
options. Add all the others, and make it part of the notmuch customize
group.

7 years agolib: make _notmuch_message_ensure_property_map static
David Bremner [Sat, 18 Feb 2017 14:45:48 +0000 (10:45 -0400)]
lib: make _notmuch_message_ensure_property_map static

It's not called outside message.cc

7 years agolib: make _notmuch_message_ensure_metadata static
David Bremner [Sat, 18 Feb 2017 14:45:44 +0000 (10:45 -0400)]
lib: make _notmuch_message_ensure_metadata static

It's not called anywhere outside message.cc.

7 years agolib: fix g_hash_table related read-after-free bug
David Bremner [Wed, 22 Feb 2017 10:17:47 +0000 (06:17 -0400)]
lib: fix g_hash_table related read-after-free bug

The two g_hash_table functions (insert, add) have different behaviour
with respect to existing keys. g_hash_table_insert frees the new key,
while g_hash_table_add (which is really g_hash_table_replace in
disguise) frees the existing key. With this change 'ref' is live until
the end of the function (assuming single-threaded access to
'hash'). We can't guarantee it will continue to be live in the
future (i.e. there may be a future key duplication) so we copy it with
the allocation context passed to parse_references (in practice this is
the notmuch_message_t object whose parents we are finding).

Thanks to Tomi for the simpler approach to the problem based on
reading the fine glib manual.

7 years agoMerge branch 'release'
David Bremner [Tue, 21 Feb 2017 12:16:07 +0000 (08:16 -0400)]
Merge branch 'release'

Merge changes to use gpgconf --create-socketdir

7 years agodebian: start changelog for 0.23.6
David Bremner [Tue, 21 Feb 2017 11:51:44 +0000 (07:51 -0400)]
debian: start changelog for 0.23.6

7 years agoNEWS: news for gpgconf use in test suite
David Bremner [Tue, 21 Feb 2017 11:50:05 +0000 (07:50 -0400)]
NEWS: news for gpgconf use in test suite

7 years agotest: use gpgconf --create-socketdir if available
David Bremner [Tue, 14 Feb 2017 21:42:39 +0000 (16:42 -0500)]
test: use gpgconf --create-socketdir if available

This enables the shortened socket pathes in /run or equivalent. The
explicit call to gpgconf is needed for nonstandard GNUPGHOME settings.

(amended according to id:m2fujatr4k.fsf@guru.guru-group.fi)

7 years agoconfigure: add test for gpgconf --create-socketdir
David Bremner [Tue, 14 Feb 2017 21:42:38 +0000 (16:42 -0500)]
configure: add test for gpgconf --create-socketdir

This is primarily intended for use in the test suite (since notmuch
builds fine without gnupg installed). Thus we only write the variable
to sh.config.

7 years agolib: Let Xapian manage the memory for FieldProcessors
David Bremner [Fri, 17 Feb 2017 03:07:50 +0000 (23:07 -0400)]
lib: Let Xapian manage the memory for FieldProcessors

It turns out this is exactly what release() is for; Xapian will
deallocate the objects when it's done with them.

7 years agolib: merge internal prefix tables
David Bremner [Fri, 17 Feb 2017 03:07:49 +0000 (23:07 -0400)]
lib: merge internal prefix tables

Replace multiple tables with some flags in a single table. This makes
the code in notmuch_database_open_verbose a bit shorter, and it should
also make it easier to add other options to fields, e.g. regexp
searching.

7 years agoemacs: address: save hash
Mark Walters [Sun, 20 Nov 2016 16:50:34 +0000 (16:50 +0000)]
emacs: address: save hash

This allows the user to save the address hash so that it is much
faster for the first completion after a restart. This defaults to off
as there are privacy implications to saving this information.

The code tries hard to avoid overwriting the wrong file. It also notes
if changes have been made to any of the relevant user settings, so
that the user does not get surprising results (i.e., outdated options
being used). Finally it stores some version information so that is
easy for us to update the format of the save file.

7 years agoemacs: address: move address-full-harvest-finished to a function
Mark Walters [Sun, 20 Nov 2016 16:50:33 +0000 (16:50 +0000)]
emacs: address: move address-full-harvest-finished to a function

This makes the code access notmuch-address-full-harvest-finished via a
helper function, notmuch-address--harvest-ready. Later we will use
this to check whether we can load the harvest instead of regenerating
it.

7 years agocli: don't call _entry_in_ignore_list twice in count files debug
Jani Nikula [Sat, 17 Dec 2016 16:28:43 +0000 (18:28 +0200)]
cli: don't call _entry_in_ignore_list twice in count files debug

Split file ignores in count_files to fixed and user configured in
order to not have to call _entry_in_ignore_list twice when debugging
is enabled. Minor detail.

7 years agotest: wrap 'wc -l' results in arithmetic evaluation to strip whitespace
Tomi Ollila [Wed, 4 Jan 2017 22:35:23 +0000 (00:35 +0200)]
test: wrap 'wc -l' results in arithmetic evaluation to strip whitespace

Some new unwrapped 'wc -l's have been added since Jani's 60e79e3a9f1c8

7 years agolib: optimize counting documents
David Bremner [Thu, 12 Jan 2017 02:01:15 +0000 (22:01 -0400)]
lib: optimize counting documents

From #xapian

olly> bremner: btw, i noticed notmuch count see ms to request all the documents and then ignores them

bremner> hmm. There's something funny about the way that notmuch uses matches in general iirc

olly> it should be able to do: mset = enquire.get_mset (0, 0, notmuch->xapian_db->get_doccount ());
...
olly> get_matches_estimated() will be exact because check_at_least is the size of the database

7 years agodocs: fix notmuch_message_properties_value documentation
Steven Allen [Fri, 13 Jan 2017 17:51:02 +0000 (09:51 -0800)]
docs: fix notmuch_message_properties_value documentation

It returns the value, not the key.

7 years agoMerge tag '0.23.5'
David Bremner [Mon, 9 Jan 2017 10:47:30 +0000 (06:47 -0400)]
Merge tag '0.23.5'

notmuch 0.23.5 release

7 years agoconfigure: remove leftover byte order test cleanup
Jani Nikula [Sun, 8 Jan 2017 17:09:45 +0000 (19:09 +0200)]
configure: remove leftover byte order test cleanup

Removing the removal of byteorder configure test files was overlooked
in commit 5a957c3f33e6 ("build & util: drop byte order configure check
and endian util header"). Finish the job.

7 years agoNEWS,debian: set date for release
David Bremner [Mon, 9 Jan 2017 10:25:01 +0000 (06:25 -0400)]
NEWS,debian: set date for release

7 years agobuild & util: drop byte order configure check and endian util header
Jani Nikula [Fri, 6 Jan 2017 21:29:28 +0000 (23:29 +0200)]
build & util: drop byte order configure check and endian util header

With the removal of the embedded libsha1, we lost the first and last
user of the platform byte order checks. Remove them from configure,
and remove the endian util header.

7 years agolib: use glib for sha1 digests instead of embedding libsha1
Jani Nikula [Fri, 6 Jan 2017 21:29:27 +0000 (23:29 +0200)]
lib: use glib for sha1 digests instead of embedding libsha1

We already depend on glib both directly and indirectly (via gmime). We
might as well make use of its facilities. Drop the embedded libsha1
and use glib for sha1 digests.

7 years agotest: allow user to choose which gdb to run tests with
Tomi Ollila [Sat, 7 Jan 2017 09:47:27 +0000 (11:47 +0200)]
test: allow user to choose which gdb to run tests with

The variable used for selecting gdb is TEST_GDB, consistent with
TEST_CC and TEST_EMACS{,CLIENT}.

7 years agoMerge branch 'release'
David Bremner [Sun, 8 Jan 2017 12:42:26 +0000 (08:42 -0400)]
Merge branch 'release'

These are the (tentative) changes for 0.23.5

7 years agodocs: add 2017 to copyright years
David Bremner [Sun, 8 Jan 2017 12:35:17 +0000 (08:35 -0400)]
docs: add 2017 to copyright years

7 years agobump version to 0.23.5
David Bremner [Sun, 8 Jan 2017 12:32:56 +0000 (08:32 -0400)]
bump version to 0.23.5

7 years agodebian: changelog for 0.23.5-1
David Bremner [Sun, 8 Jan 2017 12:31:28 +0000 (08:31 -0400)]
debian: changelog for 0.23.5-1

7 years agoNEWS for 0.23.5
David Bremner [Sun, 8 Jan 2017 12:30:08 +0000 (08:30 -0400)]
NEWS for 0.23.5

7 years agolib: fix the todo comment placement on NOTMUCH_STATUS_XAPIAN_EXCEPTION
Jani Nikula [Sat, 17 Dec 2016 11:05:40 +0000 (13:05 +0200)]
lib: fix the todo comment placement on NOTMUCH_STATUS_XAPIAN_EXCEPTION

The todo comment got separated from the status it's related to at
commit 3f32fd8a1c06 ("Add missing comment for
NOTMUCH_STATUS_READONLY_DATABASE."). Later, commit b65ca8e0ba5e ("lib:
modify notmuch.h for automatic document generation") moved it, but to
the wrong place. Fix the location.

7 years agocli/config: rename name to key in _config_set_list
Jani Nikula [Sat, 17 Dec 2016 16:20:27 +0000 (18:20 +0200)]
cli/config: rename name to key in _config_set_list

The other getters and setters speak of key, follow suit. No functional
changes.

7 years agocli/config: allocate config using talloc_zero
Jani Nikula [Sat, 17 Dec 2016 16:20:26 +0000 (18:20 +0200)]
cli/config: allocate config using talloc_zero

Do not initialize each field separately. It's more robust to allocate
the config with zero initialization, and only set the non-zero
defaults individually.

7 years agoconfigure: fix $prefix expansion for libdir_expanded
Tomi Ollila [Sun, 1 Jan 2017 17:20:30 +0000 (19:20 +0200)]
configure: fix $prefix expansion for libdir_expanded

Since the sed expansion line which did $prefix expansion for
libdir_expanded was changed from the legacy `...` format to the
new $(...) expression, the subtle backslash expansion change went
unnoticed -- \\$ which used to escape '$' now escapes '\' and the
following '$prefix' was attempted to expand as a variable. So
changing \\$ to \$ fixes this.

Also, replaced echo with printf %s -- echo does expansions of its own.

While at it, the following 2 inconsistencies were fixed:
 1) the /g flag was removed from first expression; second didn't have it
 2) first expression did not end with /, so "dropped" it from second

 configure | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

7 years agoMerge branch 'release'
David Bremner [Wed, 28 Dec 2016 23:41:20 +0000 (08:41 +0900)]
Merge branch 'release'

merge 0.23.4 release

8 years agoversion: update to 0.23.4
David Bremner [Sat, 24 Dec 2016 08:52:11 +0000 (17:52 +0900)]
version: update to 0.23.4

8 years agoset date in NEWS and debian/changelog
David Bremner [Sat, 24 Dec 2016 08:48:16 +0000 (17:48 +0900)]
set date in NEWS and debian/changelog

pentultimate prepartions for release

8 years agodebian: remove setting of emacslispdir
David Bremner [Thu, 22 Dec 2016 23:34:30 +0000 (08:34 +0900)]
debian: remove setting of emacslispdir

With dh-elpa, this setting is no longer used

8 years agodebian: changelog stanza for 0.23.4-1
David Bremner [Sun, 18 Dec 2016 11:48:48 +0000 (20:48 +0900)]
debian: changelog stanza for 0.23.4-1

8 years agonotmuch-config: replace config reading function
Ioan-Adrian Ratiu [Sat, 10 Dec 2016 19:54:07 +0000 (21:54 +0200)]
notmuch-config: replace config reading function

Config files are currently read using glib's g_key_file_load_from_file
function which is very inconvenient because it's limited by design to read
only from "regular data files" in a filesystem. Because of this limitation
notmuch can't read configs from pipes, fifos, sockets, stdin, etc. Not even
"notmuch --config=/dev/stdin" works:

Error reading configuration file /dev/stdin: Not a regular file

So replace g_key_file_load_from_file with g_key_file_load_from_data which
gives us much more freedom to read configs from multiple sources.

This also helps the more security sensitive users: If someone has private
information in the config file, it can be encrypted on disk, then decrypted
in RAM and passed through a pipe directly to notmuch without the use of
intermediate plain text files.

Signed-off-by: Ioan-Adrian Ratiu <adi@adirat.com>
8 years agocli: abstract config file reading to a separate function
Jani Nikula [Sat, 10 Dec 2016 19:54:06 +0000 (21:54 +0200)]
cli: abstract config file reading to a separate function

Simplify and fix the coding style while at it.

8 years agoMerge branch 'release'
David Bremner [Thu, 15 Dec 2016 12:57:10 +0000 (21:57 +0900)]
Merge branch 'release'

Add back in no-display parameter by hand.

8 years agoNEWS: announce autoload fix
David Bremner [Thu, 8 Dec 2016 00:45:52 +0000 (20:45 -0400)]
NEWS: announce autoload fix

8 years agoemacs: restore autoload cookie for notmuch-search
David Bremner [Thu, 8 Dec 2016 00:45:51 +0000 (20:45 -0400)]
emacs: restore autoload cookie for notmuch-search

The cookie only applies to next form, so in the previous location it
applied to the put, rather than the function.

8 years agoNEWS: news for notmuch-insert error handling
David Bremner [Wed, 7 Dec 2016 11:27:13 +0000 (07:27 -0400)]
NEWS: news for notmuch-insert error handling

8 years agocli/insert: document the use of EX_TEMPFAIL
David Bremner [Wed, 7 Dec 2016 11:27:12 +0000 (07:27 -0400)]
cli/insert: document the use of EX_TEMPFAIL

8 years agoMerge branch 'release'
David Bremner [Wed, 7 Dec 2016 11:28:46 +0000 (07:28 -0400)]
Merge branch 'release'

Merge changes for notmuch-insert error handling, debian bugfix release

8 years agocli/insert: return EX_TEMPFAIL for some errors
David Bremner [Mon, 28 Nov 2016 03:01:42 +0000 (23:01 -0400)]
cli/insert: return EX_TEMPFAIL for some errors

Attempt to distinguish between errors indicating misconfiguration or
programmer error, which we consider "permanent", in the sense that
automatic retries are unlikely to be useful, and those indicating
transient error conditions. We consider XAPIAN_EXCEPTION transient
because it covers the important special case of locking failure.

8 years agocli/insert: delay database open until after writing mail file
David Bremner [Sun, 27 Nov 2016 15:24:58 +0000 (11:24 -0400)]
cli/insert: delay database open until after writing mail file

The idea is to get the mail written to disk, even if we can't open the
database (e.g. because some other process has a write lock, and notmuch
is compiled for non-blocking opens).

8 years agotest: gdb insert: redirect input inside gdb script
Tomi Ollila [Mon, 28 Nov 2016 21:07:08 +0000 (23:07 +0200)]
test: gdb insert: redirect input inside gdb script

Running `gdb command < input` is not as reliable way to give input
to the command (some installations of gdb consume it). Use "set args"
gdb command to have input redirected at gdb 'run' time.

8 years agodebian: changelog stanza for 0.23.3-3
David Bremner [Mon, 5 Dec 2016 12:26:28 +0000 (08:26 -0400)]
debian: changelog stanza for 0.23.3-3

8 years agodebian: disable gdb using tests on kfreebsd-*
David Bremner [Mon, 5 Dec 2016 12:22:57 +0000 (08:22 -0400)]
debian: disable gdb using tests on kfreebsd-*

gdb seems broken there.

8 years agotest: check the handling of files vanishing between scandir and indexing
Jani Nikula [Sun, 27 Nov 2016 09:59:34 +0000 (11:59 +0200)]
test: check the handling of files vanishing between scandir and indexing

Add a file for scandir to find, but use gdb to remove it before it
gets indexed.

8 years agotest: clean up corpora.email
David Bremner [Sun, 27 Nov 2016 12:04:38 +0000 (08:04 -0400)]
test: clean up corpora.email

When we renamed corpus to corpora, we missed a spot.

8 years agoMerge branch 'release'
David Bremner [Thu, 1 Dec 2016 12:57:48 +0000 (08:57 -0400)]
Merge branch 'release'

8 years agodebian: fix transition package for notmuch-emacs
David Bremner [Thu, 1 Dec 2016 12:08:14 +0000 (08:08 -0400)]
debian: fix transition package for notmuch-emacs

The current version is more a transition to nowhere.

8 years agobuild: update the desktop database after installing the desktop file
Jani Nikula [Sat, 26 Nov 2016 09:43:49 +0000 (11:43 +0200)]
build: update the desktop database after installing the desktop file

This makes the option to choose Notmuch as mailto: handler show up in
the desktop environment settings. Ignore errors.

8 years agobuild: install notmuch-emacs-mua.desktop file with emacs
Jani Nikula [Sat, 26 Nov 2016 09:37:17 +0000 (11:37 +0200)]
build: install notmuch-emacs-mua.desktop file with emacs

There is really no need to have a separate install target for the
desktop file. Just install the desktop file with emacs, with a
configure option to opt out.

8 years agodoc: whitespace cleanup
Tomi Ollila [Sat, 26 Nov 2016 22:25:57 +0000 (00:25 +0200)]
doc: whitespace cleanup

In most part, our .rst documents are indented with 8 spaces instead
of tabs. Bring the rest of the lines to the same format.
Also, on one (supposedly empty) line, trailing spaces were removed.

8 years agoMerge tag '0.23.3'
David Bremner [Sun, 27 Nov 2016 12:09:17 +0000 (08:09 -0400)]
Merge tag '0.23.3'

notmuch 0.23.3 release

8 years agoNEWS: fix date and title
David Bremner [Sun, 27 Nov 2016 01:54:10 +0000 (21:54 -0400)]
NEWS: fix date and title

8 years agoMerge branch 'release'
David Bremner [Sat, 26 Nov 2016 12:43:31 +0000 (08:43 -0400)]
Merge branch 'release'

Add Jani's fix for notmuch-new

8 years agoNEWS: note disappearing files fix for notmuch new
David Bremner [Sat, 26 Nov 2016 12:41:47 +0000 (08:41 -0400)]
NEWS: note disappearing files fix for notmuch new

8 years agoNEWS: set date
David Bremner [Sat, 26 Nov 2016 12:39:32 +0000 (08:39 -0400)]
NEWS: set date

8 years agodebian: finalize? changelog for 0.23.3-1
David Bremner [Sat, 26 Nov 2016 12:38:13 +0000 (08:38 -0400)]
debian: finalize? changelog for 0.23.3-1

8 years agonotmuch.desktop: move under emacs as notmuch-emacs-mua.desktop
Jani Nikula [Mon, 21 Nov 2016 21:13:38 +0000 (23:13 +0200)]
notmuch.desktop: move under emacs as notmuch-emacs-mua.desktop

The notmuch.desktop file is part of notmuch-emacs. Move it under
emacs, and rename as notmuch-emacs-mua.desktop to reflect this.

8 years agobuild: install notmuch-emacs-mua with notmuch-emacs
Jani Nikula [Mon, 21 Nov 2016 21:13:37 +0000 (23:13 +0200)]
build: install notmuch-emacs-mua with notmuch-emacs

notmuch-emacs-mua is good enough to be installed with notmuch-emacs.

8 years agonotmuch-emacs-mua: add --hello parameter
Jani Nikula [Mon, 21 Nov 2016 21:13:36 +0000 (23:13 +0200)]
notmuch-emacs-mua: add --hello parameter

If the --hello parameter is given, display the notmuch hello buffer
instead of the message composition buffer if no message composition
parameters are given.

Signed-off-by: Jani Nikula <jani@nikula.org>
8 years agoemacs: move notmuch-emacs-mua under emacs
Jani Nikula [Mon, 21 Nov 2016 21:13:35 +0000 (23:13 +0200)]
emacs: move notmuch-emacs-mua under emacs

While the notmuch-emacs-mua script is a sort of cli command, it is
really a part of notmuch-emacs. Move it under the emacs directory.

8 years agoman: advertize notmuch-emacs-mua as notmuch emacs-mua subcommand
Jani Nikula [Mon, 21 Nov 2016 21:13:34 +0000 (23:13 +0200)]
man: advertize notmuch-emacs-mua as notmuch emacs-mua subcommand

With subcommand handling for external commands we can now hide the
implementation detail of emacs-mua being a separate notmuch-emacs-mua
script.

8 years agobuild/emacs: add target to create elpa package
David Bremner [Sat, 19 Nov 2016 17:44:29 +0000 (13:44 -0400)]
build/emacs: add target to create elpa package

This package can be created without emacs, but will only be usable in
versions of emacs supporting package.el

8 years agobuild: Move variable definitions to Makefile.global
David Bremner [Sat, 19 Nov 2016 17:44:28 +0000 (13:44 -0400)]
build: Move variable definitions to Makefile.global

I noticed when trying to use VERSION (and derived variables) in a
subdirectory that the top level Makefile.local needed to be included
first. But according to c10085c77b407d9ea704f8b4f9e0a805f63e72cb it
actually needs to be last. To break this conflict, move the variables
definitions into a new Makefile.global.

8 years agocli/new: document new exit code
David Bremner [Sat, 26 Nov 2016 02:40:37 +0000 (22:40 -0400)]
cli/new: document new exit code

It seems important to give the numeric return code for people writing
scripts. Hopefully deviations from this convention are rare.

8 years agocli: consider files vanishing during notmuch new non-fatal
Jani Nikula [Mon, 21 Nov 2016 20:14:33 +0000 (22:14 +0200)]
cli: consider files vanishing during notmuch new non-fatal

If some software other than notmuch new renames or removes files
during the notmuch new scan (specifically after scandir but before
indexing the file), keep going instead of bailing out. Failing to
index the file is just a race condition between notmuch and the other
software; the rename could happen after the notmuch new scan
anyway. It's not fatal, and we'll catch the renamed files on the next
scan.

Add a new exit code for when files vanished, so the caller has a
chance to detect the race and re-run notmuch new to recover.

Reported by Paul Wise <pabs@debian.org> at
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=843127

8 years agoMerge branch 'release'
David Bremner [Fri, 25 Nov 2016 01:21:16 +0000 (21:21 -0400)]
Merge branch 'release'

Initial set of changes for 0.23.3

8 years agodebian: start changelog stanza for 0.23.3-1
David Bremner [Fri, 25 Nov 2016 00:30:58 +0000 (20:30 -0400)]
debian: start changelog stanza for 0.23.3-1

8 years agoversion: bump to 0.23.3
David Bremner [Fri, 25 Nov 2016 00:29:18 +0000 (20:29 -0400)]
version: bump to 0.23.3

8 years agoNEWS: note gnupg related test-suite fix
David Bremner [Fri, 25 Nov 2016 00:28:27 +0000 (20:28 -0400)]
NEWS: note gnupg related test-suite fix

8 years agodebian: disable dh_elpa_test
David Bremner [Fri, 25 Nov 2016 00:16:24 +0000 (20:16 -0400)]
debian: disable dh_elpa_test

Currently it seems to interfere with running the notmuch test suite.
In any case we have no ert / buttercup format tests to run.

8 years agotests: account for varying-size cryptographic signatures
Daniel Kahn Gillmor [Wed, 23 Nov 2016 17:57:22 +0000 (12:57 -0500)]
tests: account for varying-size cryptographic signatures

GnuPG 2.1.16 is now injecting the full issuer fingerprint in its
signatures, which makes them about 32 octets larger when
ascii-armored.

This change in size means that the size of the MIME parts will vary
depending on the version of gpg that the user has installed.  at any
rate, the signature part should be non-zero (this is true for
basically any MIME part), so we just test for that instead of an exact
size.

8 years agoMerge tag '0.23.2'
David Bremner [Sun, 20 Nov 2016 12:50:10 +0000 (08:50 -0400)]
Merge tag '0.23.2'

notmuch 0.23.2 release

8 years agoNEWS: set date for release
David Bremner [Sun, 20 Nov 2016 12:23:33 +0000 (08:23 -0400)]
NEWS: set date for release

8 years agoNEWS for notmuch-cycle-notmuch-buffers
Mark Walters [Fri, 18 Nov 2016 09:02:27 +0000 (09:02 +0000)]
NEWS for notmuch-cycle-notmuch-buffers

8 years agoNEWS: document fixes for emacs23
David Bremner [Thu, 17 Nov 2016 12:18:20 +0000 (08:18 -0400)]
NEWS: document fixes for emacs23

8 years agobuild: only install known man pages
Jani Nikula [Sat, 5 Nov 2016 20:18:18 +0000 (22:18 +0200)]
build: only install known man pages

Install man pages based on $(MAN_GZIP_FILES), which directly
corresponds to the man page source rst files. This way we can filter
the man pages to be installed as needed.

8 years agobuild: generate man page list from source files, not conf.py
Jani Nikula [Sat, 5 Nov 2016 20:18:17 +0000 (22:18 +0200)]
build: generate man page list from source files, not conf.py

Use $(wildcard ...) to generate the list of man pages based on the rst
source files present in the man page directories, instead of reading
conf.py. This has three main benefits:

1) This makes the man page build slightly less complicated and easier
   to understand. At least there are fewer moving parts.

2) This makes the build fail if we add a man page rst file, but fail
   to add it to conf.py.

3) We can use Sphinx constructs in conf.py that are not available when
   importing the file into a normal python program such as
   mkdocdeps.py.

8 years agobuild: do not touch roff files after sphinx-build
Jani Nikula [Sat, 5 Nov 2016 20:18:16 +0000 (22:18 +0200)]
build: do not touch roff files after sphinx-build

If Sphinx fails to create any of the roff files, having touch create
them hides the errors until someone realizes, possibly much later,
that the resulting files are empty. (Note that gzip doesn't fail on
empty input files.) Sphinx will change the timestamps of any files it
has written anyway.

8 years agodoc: fix references in notmuch-emacs.rst
Jani Nikula [Sat, 5 Nov 2016 20:18:15 +0000 (22:18 +0200)]
doc: fix references in notmuch-emacs.rst

Fix make sphinx-texinfo warnings:

WARNING: undefined label: notmuch-jump (if the link has no caption the
label must precede a section header)

WARNING: undefined label: notmuch-saved-searches (if the link has no
caption the label must precede a section header)

8 years agodoc/conf.py: include command name in texinfo document title
Jani Nikula [Sat, 5 Nov 2016 20:18:14 +0000 (22:18 +0200)]
doc/conf.py: include command name in texinfo document title

Seems to make more sense than to have the same title for everything.

8 years agodoc/conf.py: reindent, whitespace clean man page, texinfo lists
Jani Nikula [Sat, 5 Nov 2016 20:18:13 +0000 (22:18 +0200)]
doc/conf.py: reindent, whitespace clean man page, texinfo lists

No functional changes.

8 years agodoc/conf.py: abstract notmuch authors
Jani Nikula [Sat, 5 Nov 2016 20:18:12 +0000 (22:18 +0200)]
doc/conf.py: abstract notmuch authors

Don't repeat the same stuff so much. We probably don't want to track
individual authors for man/texinfo pages anyway.

No user visible changes.

8 years agodoc/conf.py: generate texinfo_documents list from man_pages list
Jani Nikula [Sat, 5 Nov 2016 20:18:11 +0000 (22:18 +0200)]
doc/conf.py: generate texinfo_documents list from man_pages list

No need to repeat mostly the same information twice in conf.py. We
probably want to have a corresponding texinfo document for all the man
pages. Python list comprehension to the rescue. (The reverse is not
true; we have a texinfo document for notmuch-emacs we don't want as a
man page.)

There should be no user visible changes.