Commit graph

6488 commits

Author SHA1 Message Date
David Bremner
a56aa472d1 performance-tests: tests for renamed/copied files in notmuch new
Several people have observed that this is surprisingly slow, and we
have a proposal to add tagging into this code path, so we want to make
sure it doesn't imply too much of a performance hit.
2019-04-05 12:14:58 -03:00
Léo Gaspard
8e584392dc emacs: make editing a message as new include FCC
This changes the meaning of `e` for non-drafts to make it behave
similarly to new messages, which here means add the `FCC` header.
2019-03-31 13:20:32 -03:00
Yang Sheng
0ae8cab4d3 Fix notmuch-describe-key
Fix notmuch-describe-key crashing for the following two cases
1. format-kbd-macro cannot deal with keys like [(32 . 126)], switch to
use key-description instead.
2. if a function in the current keymap is not bounded, it will crash
the whole process. We check if it is bounded and silently skip it to
avoid crashing.
2019-03-31 12:00:50 -03:00
David Bremner
b22386f353 lib: update commentary about path/folder terms
We missed this when we changed to binary fields.
2019-03-31 12:00:30 -03:00
David Bremner
6b0cf9b21a lib: add clarification about the use of "prefix" in the docs. 2019-03-31 11:59:59 -03:00
David Bremner
2717ff96a7 lib: drop comment about only indexing one file.
Although the situation is complicated by the value fields (which are
taken from a single file), this comment is now more false than true.
2019-03-31 11:59:46 -03:00
Michal Sojka
1e69bb6f46 doc: document notmuch new --verbose 2019-03-31 11:59:46 -03:00
David Bremner
c9aa29291b performance-test: fix copy-paste error in test description 2019-03-31 11:59:46 -03:00
hydrargyrum
7fe3062cf2 python: fix set_sort/add_tag_exclude restype/argtypes typos 2019-03-31 11:59:46 -03:00
David Edmondson
639d21d5b9 test: Add emacs attachment check tests. 2019-03-28 14:37:21 -03:00
David Edmondson
1aae6daef7 emacs: Optionally check for missing attachments in outgoing messages
Query the user if the message text indicates that an attachment is
expected but no MML referencing an attachment is found.

This is not enabled by default - see the documentation for
`notmuch-mua-attachment-check'.
2019-03-28 14:37:07 -03:00
David Bremner
d25dcc589c lib: use phrase search for anything not ending in '*'
Anything that does not look like a wildcard should be safe to
quote. This should fix the problem searching for xapian keywords.
2019-03-28 14:34:37 -03:00
David Bremner
168211c563 test: add two known broken tests searching for xapian keywords
Thanks to plujon for pointing out this problem on IRC. The underlying
issue is that the quotes are stripped before the field processors get
the query string, and the heuristic for putting them back is not quite
right.
2019-03-28 14:32:11 -03:00
David Edmondson
235fdc52f4 emacs: Easy access to URLs mentioned in the current message
Add a new binding when looking at messages, B, that prompts with a
list of URLs found in the current message, if any. Open the one that
is selected in a browser.

amended by db: s/--browse-urls/-browse-urls/
2019-03-28 14:29:02 -03:00
David Bremner
4bfbd5baa1 release: use xz compression
This produces tarballs that are roughly 30% smaller.
2019-03-27 17:59:40 -03:00
Daniel Kahn Gillmor
1f82039e0d build: Rename GPG_FILE to DETACHED_SIG_FILE
This is just a semantic cleanup -- we have multiple files that are
OpenPGP signatures.  And while we're probably making signatures with
GnuPG, they can be verified with any OpenPGP implementation, so "GPG_"
is arguably both not specific enough, and overly-specific.

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-03-27 17:54:12 -03:00
Daniel Kahn Gillmor
01f9c71312 build: distribute signed sha256sums
Distribute clearsigned sha256sum file in addition to the detached
signature.

Verifies that use the sha256sum ensure that the thing signed includes
the name of the tarball. This defends the verifier by default against
a freeze, rollback, or project substitution attack.

A verifier can use something like the following (as expressed in
bash):

      set -o pipefail
      wget https://notmuchmail.org/releases/notmuch-$VERSION.tar.gz{,.sha256.asc}
      gpgv --keyring ./notmuch-signers.pgp --output - notmuch-$VERSION.tar.gz.sha256.asc | sha256sum -c -

See id:87r2b8w956.fsf@fifthhorseman.net and other messages in that
thread for discussion.

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-03-27 17:53:41 -03:00
Daniel Kahn Gillmor
cc8d837d5a build: ensure that SHA256_FILE is built
The SHA256_FILE used to be built automatically because of the makefile
dependencies.

Since b8a8dbed91, it isn't getting made
properly, so the release target would fail.

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-03-27 17:53:18 -03:00
Daniel Kahn Gillmor
cbeb0da595 doc: Clean up warnings when building notmuch-emacs docs
Without this change, we see this during the build:

    sphinx-build -b html -d doc/_build/doctrees -q ./doc doc/_build/html
    …/doc/notmuch-emacs.rst:67: WARNING: Unexpected indentation.
    …/doc/notmuch-emacs.rst:165: WARNING: Unexpected indentation.
    …/doc/notmuch-emacs.rst:306: WARNING: Unexpected indentation.

This source change doesn't seem to have any effect on the generated
HTML, at least.

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-03-27 17:45:27 -03:00
David Bremner
0557c5a033 doc/build: use $(MAKE) instead of make
This should silence some warnings about the jobserver, but also make
it easier to build the docs where GNU make is called something other
than make.

Based on a patch from aidecoe.
2019-03-19 20:54:15 -03:00
Luis Ressel
5569e04231 Add a configure flag to disable rpaths
Better support build environments where our /sbin/ldconfig based
heuristic does not work (e.g. some musl libc based systems).
2019-03-12 20:12:49 -03:00
David Bremner
b8a8dbed91 build: sign tarball instead of sha256sum
Adam Majer pointed out in [1] the way were signing releases was
unusual. Neither Carl nor I could think of a good reason for
explicitely signing the checksum (internally of course that's what GPG
is going anyway).

[1] mid:b3fd556d-c346-7af9-a7a2-13b0f3235071@suse.de
2019-03-11 22:28:11 -03:00
David Bremner
152b6cac5d util: make remaining headers includable from C++
libnotmuch_util.a is supposed to be usable from the library and the
CLI, but much the library is compiled as C++. Add in appropriate
wrapping to prevent symbol mangling. These wrappers already existed in
string-util.h; it seems better to be consistent.
2019-03-11 22:26:50 -03:00
Luis Ressel
9f7e851263 Prepend regerror() messages with "regexp error: "
The exact error messages returned by regerror() aren't standardized;
relying on them isn't portable. Thus, add a a prefix to make clear that
the subsequent message is a regexp parsing error, and only look for this
prefix in the test suite, ignoring the rest of the message.
2019-03-11 22:24:55 -03:00
Luis Ressel
a1e649276e test/T030-config: Separate stdout and stderr output
POSIX doesn't specify the flushing behaviour of the STDOUT stream, so
it's invalid to assume a particular order between the stdout and stderr
output. The current test breaks on musl due to this.
2019-03-11 22:13:54 -03:00
David Bremner
9f68919ee7 Merge branch 'release' 2019-03-06 09:30:07 -04:00
David Bremner
35addc95ae travis: switch to xenial build env
In principle we'd like everything to work with ancient versions. In
practice someone needs drive that effort.
2019-03-06 09:29:30 -04:00
David Bremner
71eaa19350 Merge branch 'release'
Changes from 0.28.3
2019-03-06 08:53:26 -04:00
David Bremner
d124c0e416 Declare fast forward from 0.28.2-1
[dgit --overwrite]
2019-03-05 15:39:09 -04:00
David Bremner
69e047aeeb debian: changelog stanza for 0.28.3-1 2019-03-05 21:46:41 -04:00
David Bremner
e3dd209a33 NEWS for 0.28.3 2019-03-05 21:46:41 -04:00
David Bremner
1a4a1fe9c5 bump version to 0.28.3 2019-03-05 21:46:41 -04:00
David Bremner
dcf7fca2d9 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
2019-03-05 21:46:41 -04:00
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
Vincent A
872bd134e3 python: fix get_property error when property doesn't exist
In Python bindings, Message.get_property fails with an AttributeError when trying to fetch a property that doesn't exist.

From d712832ba982085975c27b23bb502af82e638b39 Mon Sep 17 00:00:00 2001
From: hydrargyrum <dev@indigo.re>
Date: Sun, 6 Jan 2019 16:08:55 +0100
Subject: [PATCH] python: fix get_property error when property doesn't exist
2019-02-21 07:17:18 -04:00
Matt Armstrong
adde6dfaef Emacs: bind "g" to 'notuch-refresh-this-buffer
Using "g" for refresh operations is a pretty common Emacs convention,
codified by `special-mode' in simple.el.
2019-02-21 07:16:53 -04:00
David Bremner
c09aad4794 notmuch 0.28.2 release
-----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCAAdFiEE3VS2dnyDRXKVCQCp8gKXHaSnniwFAlxpUdkACgkQ8gKXHaSn
 nixjlAv+NZY5KFuC0jdI29AQrQKfWf45y/IJn3LKvOqWbTthSFxg/4ILRMVnWP62
 +MspiPL+BIFuEvNQNiYUQOJjCMQX+4/CkbBowCC8KXKOEKrgYOVAR3RS8JDxD1WH
 j5pjB1JQso9ZQkqeGr33LrRq18vVjv0VjixYHKOdSgrRUyP0FByi2UdMPJgnC9iK
 1yOK08jSSeMqU5zI092K1vHJNCUypw7YAXn96BReSqgFyHe7ri1N2HOhhtxS+L/5
 26ju3uKAiYntS+DxVyypFhz5aOCmto0A07KF8boyCB8QPf01WblXGnetHZaZx6SS
 bdE7YoJ/wHiw48L0JPLACDzZM6vYCWMBzUcEFm2/CDJsDf/u+SyRqVWo/kPQT1QG
 4hvWWXv2Jwc5YOid9zXhdEyQFdwYzFLuccKLdSPBq1ZriWITIkyFGF/2VZT1nysP
 AYOKGBLDr7bT3l6E/LVZbqvPwuelcgdtR9WJKaixS6GmlPIRkcB5wepbnVN0vIvq
 brUyul6Z
 =+mAW
 -----END PGP SIGNATURE-----

Merge tag '0.28.2'

notmuch 0.28.2 release
2019-02-17 17:08:12 -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
David Bremner
44862764d2 Record notmuch (0.28.2-1) in archive suite sid 2019-02-17 07:30:33 -04:00
David Bremner
c3a683299d 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]
2019-02-17 07:30:33 -04:00
David Bremner
f7130468d2 Import notmuch_0.28.2.orig.tar.gz
[dgit import orig notmuch_0.28.2.orig.tar.gz]
2019-02-17 07:30:33 -04:00
David Bremner
b1831332a6 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]
2019-02-17 07:30:33 -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
David Bremner
3d0fd40eb0 Merge branch 'release' 2019-02-10 09:47:47 -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