David Bremner [Sun, 5 May 2019 11:06:07 +0000 (08:06 -0300)]
version: bump to 0.28.4
David Bremner [Sun, 5 May 2019 11:04:53 +0000 (08:04 -0300)]
NEWS: NEWS for 0.28.4
David Bremner [Sat, 4 May 2019 22:29:08 +0000 (19:29 -0300)]
cli/show: avoid empty write to stdout in format_part_raw
Previously if the input was exactly a multiple of the internal buffer
size, notmuch would attempt to fwrite nothing to stdout, but still
expected fwrite to return 1, causing a failure that looked like this:
$ notmuch show --format=raw id:87o96f1cya.fsf@codeaurora.org
...entire message shown as expected..
Error: Write failed
$ echo $?
1
To fix the problem don't call fwrite at all when there's nothing to
write.
Amended by db: add some tests of message sizes likely to cause this
problem.
David Bremner [Wed, 6 Mar 2019 13:18:32 +0000 (09:18 -0400)]
travis: switch to xenial build env
In principle we'd like everything to work with ancient versions. In
practice someone needs drive that effort.
David Bremner [Tue, 5 Mar 2019 19:39:09 +0000 (15:39 -0400)]
Declare fast forward from 0.28.2-1
[dgit --overwrite]
David Bremner [Tue, 5 Mar 2019 19:40:15 +0000 (15:40 -0400)]
debian: changelog stanza for 0.28.3-1
David Bremner [Tue, 5 Mar 2019 19:36:43 +0000 (15:36 -0400)]
NEWS for 0.28.3
David Bremner [Tue, 5 Mar 2019 19:30:52 +0000 (15:30 -0400)]
bump version to 0.28.3
David Bremner [Sun, 3 Mar 2019 03:30:59 +0000 (23:30 -0400)]
doc: sequentialize calls to sphinx-build
In certain conditions the parallel calls to sphinx-build could
collide, yielding a crash like
Exception occurred:
File "/usr/lib/python3/dist-packages/sphinx/environment.py", line 1261, in get_doctree
doctree = pickle.load(f)
EOFError: Ran out of input
David Bremner [Sat, 2 Mar 2019 18:10:51 +0000 (14:10 -0400)]
lib/string_map: fix return type of string_cmp
I can't figure out how checking the sign of a bool ever worked. The
following program demonstrates the problem (i.e. for me it prints 1).
#include <stdio.h>
#include <stdbool.h>
int main(int argc, char **argv) {
bool x;
x = -1;
printf("x = %d\n", x);
}
This seems to be mandated by the C99 standard 6.3.1.2.
David Bremner [Tue, 5 Mar 2019 18:56:29 +0000 (14:56 -0400)]
lib: Add known broken test for string_map binary search.
Because the string_map functions are not exported, we test via message
properties.
David Bremner [Sun, 17 Feb 2019 11:32:59 +0000 (07:32 -0400)]
bump version
David Bremner [Sun, 17 Feb 2019 11:31:16 +0000 (07:31 -0400)]
debian: changelog for 0.28.2-1
David Bremner [Sun, 17 Feb 2019 11:28:15 +0000 (07:28 -0400)]
NEWS for 0.28.2
David Bremner [Sun, 17 Feb 2019 11:30:33 +0000 (07:30 -0400)]
Record notmuch (0.28.2-1) in archive suite sid
David Bremner [Sun, 17 Feb 2019 11:30:33 +0000 (07:30 -0400)]
notmuch (0.28.2-1) unstable; urgency=medium
* [notmuch-emacs] Invoke gpg from with --batch and --no-tty
[dgit import unpatched notmuch 0.28.2-1]
David Bremner [Sun, 17 Feb 2019 11:30:33 +0000 (07:30 -0400)]
Import notmuch_0.28.2.orig.tar.gz
[dgit import orig notmuch_0.28.2.orig.tar.gz]
David Bremner [Sun, 17 Feb 2019 11:30:33 +0000 (07:30 -0400)]
Import notmuch_0.28.2-1.debian.tar.xz
[dgit import tarball notmuch 0.28.2-1 notmuch_0.28.2-1.debian.tar.xz]
Jani Nikula [Mon, 11 Feb 2019 18:22:37 +0000 (20:22 +0200)]
python: fix threads.__str__ automethod documentation
Indent the directive properly to attach it to Threads autoclass
documentation.
Fixes:
WARNING: don't know which module to import for autodocumenting
'__str__' (try placing a "module" or "currentmodule" directive in the
document, or giving an explicit module name)
Jani Nikula [Mon, 11 Feb 2019 18:22:36 +0000 (20:22 +0200)]
python: fix documentation title underline
Fix documentation build sphinx warning:
filesystem.rst:18: WARNING: Title underline too short.
Jani Nikula [Mon, 11 Feb 2019 18:22:35 +0000 (20:22 +0200)]
python: fix documentation build with python 3.7
The simplistic mocking in conf.py falls short on python 3.7. Just use
unittest.mock instead.
Fixes:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sphinx/config.py", line 368, in eval_config_file
execfile_(filename, namespace)
File "/usr/lib/python3/dist-packages/sphinx/util/pycompat.py", line 150, in execfile_
exec_(code, _globals)
File "/path/to/notmuch/bindings/python/docs/source/conf.py", line 39, in <module>
from notmuch import __VERSION__,__AUTHOR__
File "/path/to/notmuch/bindings/python/notmuch/__init__.py", line 54, in <module>
from .database import Database
File "/path/to/notmuch/bindings/python/notmuch/database.py", line 25, in <module>
from .globals import (
File "/path/to/notmuch/bindings/python/notmuch/globals.py", line 48, in <module>
class NotmuchDatabaseS(Structure):
TypeError: __mro_entries__ must return a tuple
Daniel Kahn Gillmor [Sat, 9 Feb 2019 17:34:37 +0000 (12:34 -0500)]
emacs: Invoke gpg with --batch and --no-tty
When invoking gpg as a backgrounded tool, it's important to let gpg
know that it is backgrounded, to avoid spurious prompts or other
breakage.
In particular, https://bugs.debian.org/913614 was a regression in
GnuPG which causes problems when importing keys without a terminal,
but gpg expects one.
Ensuring that notmuch-emacs always invokes gpg as a background process
should avoid some of these unnecessary failure.
Thanks to Justus Winter for finding this problem.
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
David Bremner [Fri, 1 Feb 2019 12:08:13 +0000 (08:08 -0400)]
bump copyright year
David Bremner [Fri, 1 Feb 2019 12:06:38 +0000 (08:06 -0400)]
update version to 0.28.1
David Bremner [Fri, 1 Feb 2019 12:05:42 +0000 (08:05 -0400)]
changelog for 0.28.1-1
David Bremner [Fri, 1 Feb 2019 12:03:14 +0000 (08:03 -0400)]
NEWS for bash related configuration change
David Bremner [Thu, 17 Jan 2019 02:11:32 +0000 (22:11 -0400)]
Debian: use new variable to force bash location
This should no longer be needed on the official debian autobuilders,
but it might help others with merged /usr build environments.
David Bremner [Thu, 17 Jan 2019 02:11:31 +0000 (22:11 -0400)]
configure: don't use special variable BASH
bash, in it's wisdom, sets that variable when invoked as /bin/sh, but
then doesn't act as bash, at least not to the degree we need to run
scripts.
David Bremner [Wed, 30 Jan 2019 11:15:59 +0000 (07:15 -0400)]
emacs: use ".ps" suffix for PostScript temporary files.
Joerg Jaspert [1] reported problems with evince reading unsuffixed
temporary files in Debian.
[1]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=920856
David Bremner [Fri, 12 Oct 2018 23:51:45 +0000 (20:51 -0300)]
debian: override location of bash
Yes, a build chroot can have /usr/bin/bash, thanks to usrmerge, but we
can't depend on it existing in the user's system.
David Bremner [Fri, 12 Oct 2018 23:18:14 +0000 (20:18 -0300)]
version: bump to 0.28
David Bremner [Fri, 12 Oct 2018 23:17:06 +0000 (20:17 -0300)]
debian: changelog stanza for 0.28-1
David Bremner [Sat, 6 Oct 2018 02:02:30 +0000 (23:02 -0300)]
NEWS: NEWS for 0.28
This is based on my subjective assessment of what is user/packager
facing and important from the output of 'git shortlog'
David Bremner [Wed, 3 Oct 2018 23:24:57 +0000 (20:24 -0300)]
debian: changelog for 0.28~rc0-1
David Bremner [Wed, 3 Oct 2018 23:19:08 +0000 (20:19 -0300)]
NEWS: start NEWS for 0.28
Just a stub for now.
David Bremner [Wed, 3 Oct 2018 23:17:46 +0000 (20:17 -0300)]
version: bump to 0.28~rc0
David Bremner [Tue, 18 Sep 2018 11:19:24 +0000 (13:19 +0200)]
debian: update zsh completion installation
This ${prefix}/share/vendor-completion convention seems to be debian
specific, so leave the global default alone for now.
Vincent Breitmoser [Tue, 18 Sep 2018 11:19:23 +0000 (13:19 +0200)]
completion: more complete completion for zsh.
This adds completion files for zsh that cover most of notmuch's cli.
The files in completion/zsh are formatted so that they can be found by
zsh's completion system if put $fpath. They are also registered to the
notmuch-* pattern, so they can be called externally using _dispatch.
Update installation recipe and drop debian/notmuch.examples to avoid
breakage. This means zsh completion is not installed for debian, to be
fixed in a future commit.
Amended by db: use regexp searching for address completion. This seems
to be fast enough to work without a cache.
David Edmondson [Tue, 25 Sep 2018 15:09:10 +0000 (16:09 +0100)]
emacs: Call `notmuch-mua-send-hook' hooks when sending a message
Previously any hook functions attached to `notmuch-mua-send-hook' were
ignored.
David Edmondson [Tue, 25 Sep 2018 15:09:09 +0000 (16:09 +0100)]
test: Check that `notmuch-mua-send-hook' is called on sending a message
Vincent Breitmoser [Mon, 17 Sep 2018 12:49:32 +0000 (14:49 +0200)]
python: fix unchecked None access in get_property
David Bremner [Sun, 16 Sep 2018 17:08:09 +0000 (14:08 -0300)]
debian: update notmuch-mutt packaging to use install target
David Bremner [Sun, 16 Sep 2018 17:08:08 +0000 (14:08 -0300)]
debian: bump compat level to 11
The immediate motivation is to have dh_installman look in debian/tmp
David Bremner [Sun, 16 Sep 2018 17:08:07 +0000 (14:08 -0300)]
contrib/notmuch-mutt: add install target
The main goal here is to be able to install the notmuch-mutt script
with an absolute shebang. I have tried to make the notmuch-mutt
Makefile use configure information from notmuch if available, but make
suitable guesses if not.
David Bremner [Sun, 16 Sep 2018 17:08:06 +0000 (14:08 -0300)]
configure: absolute path of perl
This can be used to set shebang lines during install.
David Bremner [Sun, 16 Sep 2018 17:08:05 +0000 (14:08 -0300)]
build: install notmuch-emacs-mua with absolute shebang
Follow distro-centric rules to reduce the chance of surprising
behaviour due to PATH changes
David Bremner [Sun, 16 Sep 2018 17:08:04 +0000 (14:08 -0300)]
configure: absolute path of bash
This can be used to set shebang lines during install.
David Bremner [Mon, 10 Sep 2018 01:36:17 +0000 (22:36 -0300)]
test: make regexp test conditional on field processors
Normally we'd mark it broken, but perversely missing regexp support
actually makes the test pass.
David Bremner [Mon, 10 Sep 2018 01:36:16 +0000 (22:36 -0300)]
test: mark thread subqueries broken without field processors
Currently these tests just fail when notmuch is built against Xapian
1.2.x
David Bremner [Fri, 14 Sep 2018 11:03:30 +0000 (08:03 -0300)]
debian: add tar-ignore=.git
Unfortunately
514fb397c9 somewhat messed up the "debian-snapshot"
target, by including .git in the generated tarball.
David Bremner [Sun, 9 Sep 2018 16:46:04 +0000 (13:46 -0300)]
Merge tag 'debian/0.27-3'
notmuch release 0.27-3 for unstable (sid) [dgit]
[dgit distro=debian]
David Bremner [Sun, 9 Sep 2018 16:06:00 +0000 (13:06 -0300)]
debian: drop argument-less tar-ignore
This hangs up dgit. It's probably not useful for users of the source
package to have debian/.gitignore, but it should not hurt.
David Edmondson [Sat, 8 Sep 2018 11:49:41 +0000 (12:49 +0100)]
test: Absolute and relative directory paths.
David Edmondson [Sat, 8 Sep 2018 11:49:40 +0000 (12:49 +0100)]
notmuch: Database paths without a leading / are relative to $HOME
If the database path specified in the configuration file does *not*
start with a /, presume that it is relative to $HOME and modify the
path used to open the database accordingly.
David Bremner [Sat, 8 Sep 2018 21:20:10 +0000 (18:20 -0300)]
Declare fast forward from 0.27-2
[dgit --overwrite]
David Bremner [Sat, 8 Sep 2018 19:15:10 +0000 (16:15 -0300)]
debian: add unversioned emacs, drop emacs23
In current Debian sid / testing, emacs25 is a transitional package,
and emacs-gtk, emacs-lucid, and emacs-nox are the real packages.
Emacs 23 is not available in emacs after oldoldstable.
David Bremner [Sat, 8 Sep 2018 19:07:05 +0000 (16:07 -0300)]
debian: update Vcs-Git URL
We should probably not git://, and it needs a branch to not confuse
e.g. vcswatch.
David Bremner [Thu, 30 Aug 2018 11:29:15 +0000 (08:29 -0300)]
lib: change parent strategy to use In-Reply-To if it looks sane
As reported by Sean Whitton, there are mailers (in particular the
Debian Bug Tracking System) that have sensible In-Reply-To headers,
but un-useful-for-notmuch References (in particular with the BTS, the
oldest reference is last). I looked at a sample of about 200K
messages, and only about 0.5% these had something other than a single
message-id in In-Reply-To. On this basis, if we see a single
message-id in In-Reply-To, consider that as authoritative.
David Bremner [Thu, 30 Aug 2018 11:29:14 +0000 (08:29 -0300)]
lib: add _notmuch_message_id_parse_strict
The idea is that if a message-id parses with this function, the MUA
generating it was probably sane, and in particular it's probably safe
to use the result as a parent from In-Reply-to.
David Bremner [Thu, 30 Aug 2018 11:29:13 +0000 (08:29 -0300)]
util/string-util: export skip_space
It's only few lines, but we already define the function, so make it
usable elsewhere
David Bremner [Thu, 30 Aug 2018 11:29:12 +0000 (08:29 -0300)]
test/thread-replies: mangle In-Reply-To's
In a future commit, we will start trusting In-Reply-To's when they
look sane (i.e. a single message-id). Modify these tests so they will
keep passing (i.e. keep choosing References) when that happens.
David Bremner [Thu, 30 Aug 2018 11:29:11 +0000 (08:29 -0300)]
test: add known broken test for good In-Reply-To / bad References
The current scheme of choosing the replyto (i.e. the default parent
for threading purposes) does not work well for mailers that put
the oldest Reference last.
David Bremner [Thu, 30 Aug 2018 11:29:10 +0000 (08:29 -0300)]
lib/thread: change _resolve_thread_relationships to use depths
We (finally) implement the XXX comment. It requires a bit of care not
to reparent all of the possible toplevel messages.
_notmuch_messages_has_next is not ready to be a public function yet,
since it punts on the mset case. We know in the one case it is called,
the notmuch_messages_t is just a regular list / iterator.
David Bremner [Thu, 30 Aug 2018 11:29:09 +0000 (08:29 -0300)]
lib/thread: rewrite _parent_or_toplevel to use depths
This is part 1/2 of changing the reparenting of alleged toplevel
messages to use a "deep" reference rather than just the first one
found.
David Bremner [Thu, 30 Aug 2018 11:29:08 +0000 (08:29 -0300)]
lib: calculate message depth in thread
This will be used in reparenting messages without useful in-reply-to,
but with useful references
David Bremner [Thu, 30 Aug 2018 11:29:07 +0000 (08:29 -0300)]
lib/thread: initial use of references as for fallback parenting
This is mainly to lay out the structure of the final code. The problem
isn't really solved yet, although some very simple cases are
better (hence the fixed test). We need two passes through the messages
because we need to be careful not to re-parent too many messages and
end up without any toplevel messages.
David Bremner [Mon, 3 Sep 2018 15:26:10 +0000 (12:26 -0300)]
use EMPTY_STRING in _parent_via_in_reply_to
This is a review suggestion [1] of Tomi. I decided not to squash it
so that the code movement remains clear.
[1]: id:m2pnxxgf5q.fsf@guru.guru-group.fi
David Bremner [Thu, 30 Aug 2018 11:29:06 +0000 (08:29 -0300)]
lib/thread: refactor in_reply_to test
This is not a complete win in code-size, but it makes the code (which
is about to get more complicated) easier to follow.
David Bremner [Mon, 3 Sep 2018 21:02:25 +0000 (18:02 -0300)]
lib: add _notmuch_message_list_empty
There is no public notmuch_message_list_t public interface, so to this
is added to the private API. We use it immediately in thread.cc;
future commits will use it further.
David Bremner [Mon, 3 Sep 2018 14:00:26 +0000 (11:00 -0300)]
lib/thread: add macro for debug printing of threading
This is analogous to DEBUG_DATABASE_SANITY, and is intended to help
debugging and to help users submit bug reports.
David Bremner [Thu, 30 Aug 2018 11:29:05 +0000 (08:29 -0300)]
lib: read reference terms into message struct.
The plan is to use these in resolving threads.
David Bremner [Thu, 30 Aug 2018 11:29:04 +0000 (08:29 -0300)]
lib/thread: sort sibling messages by date
For non-root messages, this should not should anything currently, as
the messages are already added in date order. In the future we will
add some non-root messages in a second pass out of order and the
sorting will be useful. It does fix the order of multiple
root-messages (although it is overkill for that).
David Bremner [Thu, 30 Aug 2018 11:29:03 +0000 (08:29 -0300)]
test: add known broken tests for "ghost roots"
This documents the bug discussed at
id:87efgmmysi.fsf@len.workgroup
The underlying issue is that the reply to a ghost (missing) message is
falsely classified as a root message in _resolve_thread_relationships.
There are two pairs of tests; in each case the the first test is
simpler / more robust, but also easier to fool.
David Bremner [Thu, 30 Aug 2018 11:29:02 +0000 (08:29 -0300)]
test: start threading test corpus
There are 3 threads here, two synthetic, and one anonymized one using
data from Gregor. They test various aspects of thread
ordering/construction in the presence of replies to ghost messages.
David Bremner [Mon, 9 Jul 2018 10:30:31 +0000 (07:30 -0300)]
test/tag: add test for updating during batch tag operations
This clarifies that the breakage seen with Xapian 1.4.6 does not have
to do with "funny" tags.
This test is "known broken", but only with xapian 1.4.6, and there's
curently no convenient way to mark that.
Sebastian Poeplau [Tue, 7 Aug 2018 12:48:22 +0000 (14:48 +0200)]
lib: detect mislabeled Windows-1252 parts
Use GMime functionality to detect mislabeled messages and apply the
correct (Windows) encoding instead.
Sebastian Poeplau [Tue, 7 Aug 2018 12:48:21 +0000 (14:48 +0200)]
test: add known broken test for mislabeled Windows-1252 encoding
Messages that contain Windows-1252 are frequently mislabeled as ISO
8859-1, which may result in non-printable characters when displaying
the message. The test asserts that such characters (in this case
curved quotes) are displayed correctly.
David Edmondson [Sun, 26 Aug 2018 21:16:12 +0000 (22:16 +0100)]
emacs: Kill the stderr buffer when an async process completes
On some platforms (e.g. macOS), it is necessary to add a real sentinel
process for the error buffer used by `notmuch-start-notmuch' rather
than a no-op sentinel.
David Bremner [Fri, 29 Jun 2018 00:07:31 +0000 (21:07 -0300)]
debian: changelog for 0.27-2
David Bremner [Fri, 29 Jun 2018 00:01:29 +0000 (21:01 -0300)]
notmuch (0.27-2) unstable; urgency=medium
* Add texinfo as a build-dep, build info version of documentation.
[dgit import unpatched notmuch 0.27-2]
David Bremner [Fri, 29 Jun 2018 00:01:29 +0000 (21:01 -0300)]
Import notmuch_0.27-2.debian.tar.xz
[dgit import tarball notmuch 0.27-2 notmuch_0.27-2.debian.tar.xz]
David Bremner [Thu, 28 Jun 2018 23:58:04 +0000 (20:58 -0300)]
debian: add build depency on texinfo
This is needed to provide a makeinfo binary, to build the info version
of the documentation.
Daniel Kahn Gillmor [Tue, 19 Jun 2018 22:36:16 +0000 (18:36 -0400)]
doc: clean up manpages
Many of the manpages didn't treat literal text as literal text. I've
tried to normalize some of the restructured text to make it a bit more
regular.
several of the synopsis lines are still untouched by this cleanup, but
i'm not sure what the right way to represent those is in .rst,
actually.
In particular find that if i rebuild the manpages, sometimes i end up
with some of the synopsis lines showing – (U+2013 EN DASH) where they
should have -- (2 × U+002D HYPHEN-MINUS) in the generated nroff
output, though i have not tracked down the source of this error yet.
Daniel Kahn Gillmor [Tue, 12 Jun 2018 21:21:10 +0000 (17:21 -0400)]
use #!/usr/bin/env python consistently
Jameson Graef Rollins [Tue, 12 Jun 2018 21:21:09 +0000 (17:21 -0400)]
minor cleanup to printmimestructure
make the source slightly easier to read. no functional change.
Daniel Kahn Gillmor [Tue, 12 Jun 2018 21:21:08 +0000 (17:21 -0400)]
devel: make printmimestructure py3 compatible
Make printmimestructure work in python3 as well as python2.
Tomi Ollila [Wed, 13 Jun 2018 21:08:39 +0000 (00:08 +0300)]
minor post-0.26 NEWS layout fixes
As usual, one notices these *after* release(s).
David Bremner [Wed, 13 Jun 2018 09:37:27 +0000 (06:37 -0300)]
Merge tag '0.27'
notmuch 0.27 release
David Bremner [Wed, 13 Jun 2018 01:42:34 +0000 (22:42 -0300)]
NEWS: set date
David Bremner [Wed, 13 Jun 2018 01:40:28 +0000 (22:40 -0300)]
debian: changelog for 0.27-1
David Bremner [Wed, 13 Jun 2018 01:39:33 +0000 (22:39 -0300)]
Import notmuch_0.27.orig.tar.gz
[dgit import orig notmuch_0.27.orig.tar.gz]
David Bremner [Wed, 13 Jun 2018 01:36:39 +0000 (22:36 -0300)]
version: bump to 0.27
Daniel Kahn Gillmor [Tue, 12 Jun 2018 21:36:45 +0000 (17:36 -0400)]
doc: document notmuch show --decrypt=stash
Help users find this new indexed-cleartext workflow.
David Bremner [Sat, 2 Jun 2018 18:54:28 +0000 (15:54 -0300)]
Merge tag '0.27_rc1'
notmuch 0.27~rc1 release
David Bremner [Thu, 31 May 2018 11:19:25 +0000 (08:19 -0300)]
debian: changelog stanza for 0.27~rc1-1
David Bremner [Thu, 31 May 2018 11:17:12 +0000 (08:17 -0300)]
version: bump to 0.27~rc1
David Bremner [Wed, 30 May 2018 02:03:17 +0000 (19:03 -0700)]
configure: check for links to/from libdir in ldconfig output
If e.g. /lib is a link to /usr/lib, then the latter may not show up in
the way we expect in the output of ldconfig. 'test foo -ef bar' checks
if foo and bar have the same device and inode numbers. Since (at least
in bash, dash, ksh, and zsh) the shell dereferences symlinks before
applying the test, this includes both the case where file1 is equal to
file2 and the case where one is a symlink to the other.
David Bremner [Wed, 30 May 2018 01:31:07 +0000 (22:31 -0300)]
NEWS: document installation of notmuch-emacs manual
David Bremner [Wed, 30 May 2018 01:07:42 +0000 (22:07 -0300)]
NEWS: mention notmuch --full-scan
David Bremner [Wed, 30 May 2018 00:48:55 +0000 (21:48 -0300)]
NEWS: mention thread:{} queries