Commit graph

5814 commits

Author SHA1 Message Date
Jani Nikula
510dc8c837 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
2019-02-16 08:42:13 -04:00
Daniel Kahn Gillmor
3c752b855f 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>
2019-02-10 09:47:12 -04:00
David Bremner
32fb3c420a bump copyright year 2019-02-01 08:08:13 -04:00
David Bremner
4e746cf8f6 update version to 0.28.1 2019-02-01 08:06:38 -04:00
David Bremner
630ee5fae4 changelog for 0.28.1-1 2019-02-01 08:05:42 -04:00
David Bremner
679a2313ed NEWS for bash related configuration change 2019-02-01 08:03:14 -04:00
David Bremner
80fc5d9dda 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.
2019-02-01 07:59:23 -04:00
David Bremner
a38853518e 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.
2019-02-01 07:59:12 -04:00
David Bremner
617b36f3d1 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
2019-01-30 07:15:59 -04:00
David Bremner
175f80c4c1 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.
2018-10-12 20:54:30 -03:00
David Bremner
34e0782bf2 version: bump to 0.28 2018-10-12 20:18:14 -03:00
David Bremner
b956db3998 debian: changelog stanza for 0.28-1 2018-10-12 20:17:35 -03:00
David Bremner
92b33e251b 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'
2018-10-12 20:15:22 -03:00
David Bremner
4fe40e1ed2 debian: changelog for 0.28~rc0-1 2018-10-03 20:37:23 -03:00
David Bremner
75c51dd439 NEWS: start NEWS for 0.28
Just a stub for now.
2018-10-03 20:19:08 -03:00
David Bremner
a5da8cd088 version: bump to 0.28~rc0 2018-10-03 20:17:54 -03:00
David Bremner
b0ebb19d79 debian: update zsh completion installation
This ${prefix}/share/vendor-completion convention seems to be debian
specific, so leave the global default alone for now.
2018-10-02 21:05:49 -03:00
Vincent Breitmoser
07eac4af32 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.
2018-10-02 21:04:26 -03:00
David Edmondson
e8cb6b2cd6 emacs: Call `notmuch-mua-send-hook' hooks when sending a message
Previously any hook functions attached to `notmuch-mua-send-hook' were
ignored.
2018-09-28 20:22:42 -03:00
David Edmondson
4e213fe9b4 test: Check that `notmuch-mua-send-hook' is called on sending a message 2018-09-28 20:22:33 -03:00
Vincent Breitmoser
5ae8ae13ba python: fix unchecked None access in get_property 2018-09-19 21:56:08 -03:00
David Bremner
2fd4e76006 debian: update notmuch-mutt packaging to use install target 2018-09-18 07:54:39 -03:00
David Bremner
ae45a0c19c debian: bump compat level to 11
The immediate motivation is to have dh_installman look in debian/tmp
2018-09-18 07:54:39 -03:00
David Bremner
84efbda925 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.
2018-09-18 07:54:33 -03:00
David Bremner
11d0edeac2 configure: absolute path of perl
This can be used to set shebang lines during install.
2018-09-18 07:34:33 -03:00
David Bremner
ef07e3f3bd build: install notmuch-emacs-mua with absolute shebang
Follow distro-centric rules to reduce the chance of surprising
behaviour due to PATH changes
2018-09-18 07:34:33 -03:00
David Bremner
aab395b2d4 configure: absolute path of bash
This can be used to set shebang lines during install.
2018-09-18 07:34:33 -03:00
David Bremner
c846e15ffe test: make regexp test conditional on field processors
Normally we'd mark it broken, but perversely missing regexp support
actually makes the test pass.
2018-09-14 08:54:20 -03:00
David Bremner
c6ba5522a5 test: mark thread subqueries broken without field processors
Currently these tests just fail when notmuch is built against Xapian
1.2.x
2018-09-14 08:54:09 -03:00
David Bremner
052b4d43c0 debian: add tar-ignore=.git
Unfortunately 514fb397c9 somewhat messed up the "debian-snapshot"
target, by including .git in the generated tarball.
2018-09-14 08:08:47 -03:00
David Bremner
8dcc38ce85 notmuch release 0.27-3 for unstable (sid) [dgit]
[dgit distro=debian]
 -----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCAAdFiEE3VS2dnyDRXKVCQCp8gKXHaSnniwFAluVRuMACgkQ8gKXHaSn
 niyEWwv9GP8BvUPXKcZdjJyLtZVzIaSerolf1Fq20Tp4qjOsuydjbez96ZuD0rST
 9w0+zwhyhMIAM0IMgsOChiJYYdJf596M/8hyaIz9aVNefKPy59IVQb/uc7qcdkdI
 M3kP/So5ADxPth4x8zlgNtKY8hc0XW4CwO4auCJJW+DGGFc+EJDY8KgKBz/oBJuu
 YF5zxoOMAbEQN+sQ6TilC+a+0uPgmoKzhys77n9kfZi+lLSP5cjY+Mr6/jgLibQB
 e/B+c0dSRKAL1VNpqSVUSvnIfO3hoaiiDa/XII2UXoZbJmHmxNvs1TBmaLNuR7VW
 U7oylX6jYeBIEHFrnoz2HLdk+r4DpVdBc6H4P4/dDeUE0ts3JaH5iivtbrPFCQ7U
 aKwIkbwkw9FHkzXDVtIohC87iOPuSuzQV0+chlQoJjfYD9SLG6PZdc44zY9qPlUC
 vo198JSLvF7P0FLgUav3U8HGwljqqgAhUMg3lmiopGdmib8m5yhseR9PZwivFy70
 jHNMxE7G
 =J7II
 -----END PGP SIGNATURE-----

Merge tag 'debian/0.27-3'

notmuch release 0.27-3 for unstable (sid) [dgit]
[dgit distro=debian]
2018-09-09 13:46:04 -03:00
David Bremner
514fb397c9 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.
2018-09-09 13:06:00 -03:00
David Edmondson
4cd5a0a3d5 test: Absolute and relative directory paths. 2018-09-08 20:19:42 -03:00
David Edmondson
95a9c73c72 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.
2018-09-08 20:19:24 -03:00
David Bremner
68c3319f2d Declare fast forward from 0.27-2
[dgit --overwrite]
2018-09-08 18:20:10 -03:00
David Bremner
8feec188a0 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.
2018-09-09 12:43:06 -03:00
David Bremner
757f14a610 debian: update Vcs-Git URL
We should probably not git://, and it needs a branch to not confuse
e.g. vcswatch.
2018-09-09 12:42:59 -03:00
David Bremner
87934c432c 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.
2018-09-06 08:07:13 -03:00
David Bremner
b31e44c678 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.
2018-09-06 08:07:13 -03:00
David Bremner
b8e6f042c5 util/string-util: export skip_space
It's only few lines, but we already define the function, so make it
usable elsewhere
2018-09-06 08:07:13 -03:00
David Bremner
35053c2b9a 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.
2018-09-06 08:07:13 -03:00
David Bremner
ea08032ae4 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.
2018-09-06 08:07:13 -03:00
David Bremner
46dce33abc 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.
2018-09-06 08:07:13 -03:00
David Bremner
21803df6ae 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.
2018-09-06 08:07:13 -03:00
David Bremner
0a7181dd16 lib: calculate message depth in thread
This will be used in reparenting messages without useful in-reply-to,
but with useful references
2018-09-06 08:07:13 -03:00
David Bremner
a330858284 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.
2018-09-06 08:07:13 -03:00
David Bremner
ac2146118b 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
2018-09-06 08:07:13 -03:00
David Bremner
b9d4eb0412 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.
2018-09-06 08:07:13 -03:00
David Bremner
dc3cc18bf0 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.
2018-09-06 08:07:13 -03:00
David Bremner
040fd630bf 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.
2018-09-06 08:07:12 -03:00