Commit graph

5821 commits

Author SHA1 Message Date
David Bremner
e88297c072 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.
2019-03-05 21:46:41 -04:00
David Bremner
09595cf577 lib: Add known broken test for string_map binary search.
Because the string_map functions are not exported, we test via message
properties.
2019-03-05 21:46:41 -04:00
David Bremner
af0ff260cc bump version 2019-02-17 07:32:59 -04:00
David Bremner
d057824889 debian: changelog for 0.28.2-1 2019-02-17 07:32:00 -04:00
David Bremner
9e3f64d151 NEWS for 0.28.2 2019-02-17 07:32:00 -04:00
Jani Nikula
0888639489 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)
2019-02-16 09:03:56 -04:00
Jani Nikula
528e5ba2c8 python: fix documentation title underline
Fix documentation build sphinx warning:

filesystem.rst:18: WARNING: Title underline too short.
2019-02-16 09:02:55 -04:00
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