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
David Bremner [Tue, 29 May 2018 23:57:37 +0000 (20:57 -0300)]
NEWS: deprecate pre-1.4.0 Xapian
We want to give people some heads up before dropping support, since
removing a bunch of ifdefs will be a pain to revert.
David Bremner [Sun, 27 May 2018 20:15:48 +0000 (13:15 -0700)]
debian: update symbols for 0.27
add two new API symbols
David Bremner [Sun, 27 May 2018 19:16:02 +0000 (12:16 -0700)]
NEWS: start entry for 0.27
No content yet.
David Bremner [Sat, 26 May 2018 23:46:44 +0000 (16:46 -0700)]
test: fix hardcoded paths in T050-new.sh
The previous paths will fail almost everywhere.
David Bremner [Sat, 26 May 2018 16:13:09 +0000 (09:13 -0700)]
debian: changelog for 0.27~rc0-1
David Bremner [Sat, 26 May 2018 16:11:42 +0000 (09:11 -0700)]
bump version to 0.27~rc0
Start the busywork for a new release
David Bremner [Mon, 21 May 2018 20:08:56 +0000 (13:08 -0700)]
docs: add initial documentation for notmuch-tag-jump
This is mainly to improve discoverability. It seems that doing
variable cross-references is not easy without using some sphinx
extension/customization.
David Bremner [Mon, 21 May 2018 20:08:55 +0000 (13:08 -0700)]
doc: initial documentation for notmuch-tree mode
David Bremner [Mon, 21 May 2018 20:08:54 +0000 (13:08 -0700)]
doc: initial documentation for notmuch-show-mode
This is pretty minimal, but will hopefully inspire others to
contribute more complete documentation. If nothing else, it points out
'?'.
David Bremner [Mon, 21 May 2018 20:08:53 +0000 (13:08 -0700)]
debian: install info pages as part of elpa (emacs) package
This is a simple way to make the info pages available, since the emacs
package system deals with the annoying bits. If there is many people
who want the info pages outside of emacs, we could consider a separate
binary package, but currently it doesn't seem worthwhile.
David Bremner [Mon, 21 May 2018 20:08:52 +0000 (13:08 -0700)]
doc: install info files in elpa package
The duplication of effort in installing into different places seems
unavoidable; or more precisely not worth avoiding by more extensive
gnu-make-isms.
David Bremner [Mon, 21 May 2018 20:08:51 +0000 (13:08 -0700)]
doc: install build and install info pages
All of the man pages are installed as info pages, plus
the (unfinished) notmuch-emacs manual
David Bremner [Mon, 21 May 2018 20:08:50 +0000 (13:08 -0700)]
configure: set 'infodir'
This turns --infodir from an ignored option into a real one
David Bremner [Mon, 21 May 2018 20:08:49 +0000 (13:08 -0700)]
configure: check for makeinfo and install-info
These are needed to build and install (respectively) the info format
documentation.
Daniel Kahn Gillmor [Fri, 11 May 2018 06:57:59 +0000 (02:57 -0400)]
cli/show: enable --decrypt=stash
Add fancy new feature, which makes "notmuch show" capable of actually
indexing messages that it just decrypted.
This enables a workflow where messages can come in in the background
and be indexed using "--decrypt=auto". But when showing an encrypted
message for the first time, it gets automatically indexed.
This is something of a departure for "notmuch show" -- in particular,
because it requires read/write access to the database. However, this
might be a common use case -- people get mail delivered and indexed in
the background, but only want access to their secret key to happen
when they're directly interacting with notmuch itself.
In such a scenario, they couldn't search newly-delivered, encrypted
messages, but they could search for them once they've read them.
Documentation of this new feature also uses a table form, similar to
that found in the description of index.decrypt in notmuch-config(1).
A notmuch UI that wants to facilitate this workflow while also
offering an interactive search interface might instead make use of
these additional commands while the user is at the console:
Count received encrypted messages (if > 0, there are some things we
haven't yet tried to index, and therefore can't yet search):
notmuch count tag:encrypted and \
not property:index.decryption=success and \
not property:index.decryption=failure
Reindex those messages:
notmuch reindex --try-decrypt=true tag:encrypted and \
not property:index.decryption=success and \
not property:index.decryption=failure
Daniel Kahn Gillmor [Fri, 11 May 2018 06:57:58 +0000 (02:57 -0400)]
test-lib: add notmuch_show_part for "notmuch show --format=text"
Thanks to David Bremner for this improved readability!
Daniel Kahn Gillmor [Fri, 11 May 2018 06:57:57 +0000 (02:57 -0400)]
cli/show: reindex when we learned new session keys about a message
If the number of session keys for a given message increased after
running "notmuch show" then we just learned something new that might
let us do automatic decryption. We should reindex this message using
our newfound knowledge.
Amended by db: add previously discussed #if block
Daniel Kahn Gillmor [Fri, 11 May 2018 06:57:56 +0000 (02:57 -0400)]
cli: write session keys to database, if asked to do so
If the decryption policy is NOTMUCH_DECRYPT_TRUE, that means we want
to stash session keys in the database. Note that there is currently
no way from the command line to set it this way, though, so it is not
yet included in the test suite.
Daniel Kahn Gillmor [Fri, 11 May 2018 06:57:55 +0000 (02:57 -0400)]
cli: add print_status_message()
This function is a parallel to print_status_query() or
print_status_database(). Thanks to David Bremner for the suggestion!
Daniel Kahn Gillmor [Fri, 11 May 2018 06:57:54 +0000 (02:57 -0400)]
lib: make notmuch_message_get_database() take a const notmuch_message_t*
This is technically an API change, but it is not an ABI change, and
it's merely a statement that limits what the library can do.
This is in parallel to notmuch_query_get_database(), which also takes
a const pointer.
Daniel Kahn Gillmor [Fri, 11 May 2018 06:57:53 +0000 (02:57 -0400)]
properties: add notmuch_message_count_properties
The user can already do this manually, of course, but (a) it's nice to
have a convenience function, and (b) exposing this interface means
that someone more clever with a _notmuch_string_map_t than i am can
write a more efficient version if they like, and it will just
accelerate the users of the convenience function.
David Bremner [Wed, 23 May 2018 01:47:49 +0000 (18:47 -0700)]
lib: bump minor version
This recognizes the addition of (at least)
notmuch_message_get_database to the API.
Daniel Kahn Gillmor [Fri, 11 May 2018 06:57:52 +0000 (02:57 -0400)]
lib: expose notmuch_message_get_database()
We've had _notmuch_message_database() internally for a while, and it's
useful. It turns out to be useful on the other side of the library
interface as well (i'll use it later in this series for "notmuch
show"), so we expose it publicly now.
David Bremner [Sun, 29 Apr 2018 23:19:43 +0000 (20:19 -0300)]
doc: document notmuch new --full-scan
David Bremner [Sun, 29 Apr 2018 23:19:42 +0000 (20:19 -0300)]
test: use --full-scan in T050-new.sh
Wherever the test relies on directories being scanned, this option
should be used to avoid skipping them due to mtimes on directories
matching the database.
David Bremner [Sun, 29 Apr 2018 23:19:41 +0000 (20:19 -0300)]
test: add tests for notmuch new --full-scan
Most of these just check that adding the flag does not break existing
functionality. The one test that does check the full-scan
functionality had to be rewritten to output debugging info.
David Bremner [Sun, 29 Apr 2018 23:19:40 +0000 (20:19 -0300)]
CLI/new: add full-scan option
By default notmuch-new uses directory mtimes to optimize the scanning of
directories for new mail. This option allows turning that optimization
off e.g. for testing or debugging.
David Bremner [Sun, 13 May 2018 16:17:18 +0000 (13:17 -0300)]
bindings: clean extra file created by ruby extension build system
Noticed by dkg; this file seems to be created by building the debian
package, and perhaps by other distro package builds.
David Bremner [Sun, 13 May 2018 16:17:17 +0000 (13:17 -0300)]
drop use of register keyword
The performance benefits are dubious, and it's deprecated in C++11.
Thomas Schneider [Wed, 9 May 2018 12:38:48 +0000 (14:38 +0200)]
build: Allow user to specify ruby executable
This way, one can build for a different Ruby than $PATH/ruby
(e. g. different versions, or Ruby in other paths).
Signed-off-by: Thomas Schneider <qsx@chaotikum.eu>
David Bremner [Tue, 8 May 2018 15:12:55 +0000 (11:12 -0400)]
doc: fix notmuch-search example
For some reason the searched tag did not match the displayed results.
David Bremner [Sat, 5 May 2018 15:59:28 +0000 (12:59 -0300)]
doc: document thread subqueries
Mention both performance and quoting issues.
David Bremner [Sun, 28 Jan 2018 02:50:42 +0000 (22:50 -0400)]
lib: define specialized get_thread_id for use in thread subquery
The observation is that we are only using the messages to get there
thread_id, which is kindof a pessimal access pattern for the current
notmuch_message_get_thread_id
David Bremner [Sat, 13 Jan 2018 12:46:21 +0000 (08:46 -0400)]
perf-test: add simple test for thread subqueries
This is not a particularly sensible query, but thread:{date:2010} is a
good way to generate fairly large intermediate queries.
David Bremner [Tue, 26 Dec 2017 01:03:05 +0000 (21:03 -0400)]
lib: add thread subqueries.
This change allows queries of the form
thread:{from:me} and thread:{from:jian} and not thread:{from:dave}
This is still somewhat brute-force, but it's a big improvement over
both the shell script solution and the previous proposal [1], because it
does not build the whole thread structure just generate a
query. A further potential optimization is to replace the calls to
notmuch with more specialized Xapian code; in particular it's not
likely that reading all of the message metadata is a win here.
[1]: id:
20170820213240.20526-1-david@tethera.net
David Bremner [Sun, 6 May 2018 12:00:02 +0000 (09:00 -0300)]
Merge tag 'debian/0.26.2-2'
uploaded to unstable
David Bremner [Sun, 6 May 2018 11:38:26 +0000 (08:38 -0300)]
debian: re-enable gdb in tests on s390x, ppc64el, armel, mipsel
I was able to verify these 4 arches on Debian porterboxes
David Bremner [Sun, 6 May 2018 10:11:21 +0000 (07:11 -0300)]
debian: mark dtach and gdb as <!nocheck>
These are only needed for the test suite. In addition to the
functional change, this also helps document their role as
build-dependencies.
Florian Klink [Thu, 19 Apr 2018 08:41:01 +0000 (10:41 +0200)]
T460-emacs-tree: sync $EXPECTED with test name
This syncs the $EXPECTED directory name with the tests filename.
Signed-off-by: Florian Klink <flokli@flokli.de>
Daniel Kahn Gillmor [Sun, 29 Apr 2018 08:35:30 +0000 (04:35 -0400)]
move more http -> https
Correct URLs that have crept into the notmuch codebase with http://
when https:// is possible.
As part of this conversion, this changeset also indicates the current
preferred upstream URLs for both gmime and sup. the new URLs are
https-enabled, the old ones are not.
This also fixes T310-emacs.sh, thanks to Bremner for catching it.
David Bremner [Thu, 14 Dec 2017 14:32:34 +0000 (10:32 -0400)]
test: add known broken test for regexp search of second subject
We expect this to give the same answer as the non-regexp subject
search. It does not because the regexp search relies on the value
slot, which currently contains only one subject.
David Bremner [Wed, 2 May 2018 23:30:51 +0000 (20:30 -0300)]
test: tests for python bindings get_property / get_properties
These roughly replicate the equivalent C tests, although they rely on
the database state created by the former tests, since the python
bindings currently provide read-only access to properties.
Ruben Pollan [Wed, 2 May 2018 17:01:01 +0000 (19:01 +0200)]
python: add bindings for notmuch_message_get_propert(y/ies)
Message.get_property (prop) returns a string with the value of the property and
Message.get_properties (prop, exact=False) yields key, value pairs
David Bremner [Sat, 28 Apr 2018 11:45:59 +0000 (08:45 -0300)]
Merge branch 'release'
David Bremner [Sat, 28 Apr 2018 11:34:48 +0000 (08:34 -0300)]
build: push additional refs during release
These currently have to be pushed by hand during a release, which
isn't a big deal, but is one more thing to remember.
David Bremner [Sat, 28 Apr 2018 11:11:27 +0000 (08:11 -0300)]
debian: finalize changelog
David Bremner [Sat, 28 Apr 2018 11:06:56 +0000 (08:06 -0300)]
NEWS: set release date
David Bremner [Fri, 27 Apr 2018 01:47:40 +0000 (22:47 -0300)]
Merge branch 'release'
minimal mset fix, for 0.26.2
David Bremner [Fri, 27 Apr 2018 01:42:39 +0000 (22:42 -0300)]
debian: changelog for 0.26.2-1
David Bremner [Sat, 13 Jan 2018 00:50:05 +0000 (20:50 -0400)]
travis: disable gdb based tests
Apparently something broke with gdb on travis.
(cherry picked from commit
12541fea7fe333f7c154a4a12a1d40394c2d6364)
David Bremner [Fri, 27 Apr 2018 01:28:45 +0000 (22:28 -0300)]
version: bump to 0.26.2
David Bremner [Wed, 18 Apr 2018 00:00:12 +0000 (21:00 -0300)]
NEWS: news item for mset fix
David Bremner [Fri, 6 Apr 2018 11:43:07 +0000 (08:43 -0300)]
lib: work around xapian bug with get_mset(0,0, x)
At least Fedora28 triggers this Xapian bug due to some toolchain change .
https://bugzilla.redhat.com/show_bug.cgi?id=
1546162
The underlying bug is fixed in xapian commit
f92e2a936c1592, and
should be fixed in Xapian 1.4.6
David Bremner [Wed, 25 Apr 2018 20:36:32 +0000 (17:36 -0300)]
Merge branch 'release'
reference loop fixes to be included in 0.26.2
David Bremner [Sat, 14 Apr 2018 01:37:45 +0000 (22:37 -0300)]
NEWS: add item for reference loop fix.
David Bremner [Sat, 7 Apr 2018 22:10:51 +0000 (19:10 -0300)]
doc: add a section on quoting to notmuch-search-terms(7)
I think we've diverged enough from the Xapian query parser
that we can't rely on that syntax description [1]. As far as I can
tell, [1] also only discusses quotes in the context of phrases.
[1]: https://xapian.org/docs/queryparser.html
David Bremner [Sun, 8 Apr 2018 11:12:20 +0000 (08:12 -0300)]
test: re-enable disabled test in T700-reindex.sh
The extra test_done looks like a typo
Martin Michlmayr [Sat, 14 Apr 2018 08:01:13 +0000 (10:01 +0200)]
NEWS: Fix typos
David Bremner [Fri, 20 Apr 2018 14:59:48 +0000 (11:59 -0300)]
lib: choose oldest message when breaking reference loops
This preserves a sensible thread order
David Bremner [Sat, 14 Apr 2018 01:46:09 +0000 (22:46 -0300)]
test: add known broken test for thread ordering from a loop
The previous loop handling code chooses the last message in the
message list, which turns out to be the last in date order.
See the comment in _notmuch_thread_create.
David Bremner [Sat, 14 Apr 2018 01:08:05 +0000 (22:08 -0300)]
lib: break reference loop by choosing arbitrary top level msg
Other parts of notmuch (e.g. notmuch show) expect each thread to
contain at least one top level message, and crash if this expectation
is not met.
David Bremner [Tue, 20 Mar 2018 21:22:35 +0000 (18:22 -0300)]
test: add known broken test for indexing an In-Reply-To loop.
This documents the bug discussed in
id:87d10042pu.fsf@curie.anarc.at
David Bremner [Tue, 20 Mar 2018 21:22:34 +0000 (18:22 -0300)]
test: two new messages for the 'broken' corpus
These have an 'In-Reply-To' loop, which currently confuses "notmuch
new".
David Bremner [Sat, 7 Apr 2018 20:43:01 +0000 (17:43 -0300)]
Merge branch 'release'
David Bremner [Mon, 2 Apr 2018 11:09:45 +0000 (08:09 -0300)]
version: bump to 0.26.1
David Bremner [Mon, 2 Apr 2018 11:08:53 +0000 (08:08 -0300)]
debian: changelog for 0.26.1-1
David Bremner [Tue, 27 Mar 2018 21:30:28 +0000 (18:30 -0300)]
lib: bump LIBRARY_MINOR_VERSION
We added several new functions, at least
notmuch_database_get_default_indexopts
notmuch_database_index_file
notmuch_indexopts_destroy
notmuch_indexopts_get_decrypt_policy
notmuch_indexopts_set_decrypt_policy
notmuch_message_count_files
notmuch_message_has_maildir_flag
notmuch_message_reindex
notmuch_message_remove_all_properties_with_prefix
notmuch_thread_get_total_files
Georg Faerber [Sun, 18 Mar 2018 02:30:25 +0000 (03:30 +0100)]
Fix typos as found by codespell
Signed-off-by: Georg Faerber <georg@riseup.net>
Daniel Kahn Gillmor [Wed, 21 Feb 2018 17:50:27 +0000 (09:50 -0800)]
doc: Examples of notmuch-reindex use and crypto policy
Currently, notmuch has the levers needed to set coherent crypto policy
around how cleartext is indexed, which also has an impact on how
messages are rendered. But we don't have a lot of documentation about
how to do sensible things. This is an initial attempt to address
that.
The first example shows a way to selectively index specific messages.
The next two examples are about aligning the existing database with
crypto indexing policy
The default crypto policy is to not index cleartext, and to only
decrypt messages on display when explicitly requested.
The other sensible crypto policy is to index cleartext while stashing
session keys. messages indexed in this way will be searchable, and
will be decrypted on display automatically unless the user explicitly
asks for it to *not* be decrypted.
The policy for indexing *new* messages is stored in the database as
the config variable index.decrypt.
But setting policy for new messages doesn't retroactively affect
already indexed messages.
This patch attempts to document ways that someone can efficiently
align their pre-existing database with their new policy.
I'm not sure this is the right place to document these examples, but i
do want them to be user-facing and relatively easy to find. I'm happy
to entertain suggestions for where else we should put them.
Daniel Kahn Gillmor [Fri, 9 Feb 2018 04:10:58 +0000 (23:10 -0500)]
cli/insert: add --world-readable flag
In some cases (e.g. when building a publicly-visible e-mail archive)
it doesn't make any sense to restrict visibility of the message to the
current user account.
This adds a --world-readable boolean option for "notmuch insert", so
that those who want to archive their mail publicly can feed their
archiver with:
notmuch insert --world-readable
Other local delivery agents (postfix's local, and dovecot's lda) all
default to delivery in mode 0600 rather than relying on the user's
umask, so this fix doesn't change the default.
Also, this does not override the user's umask. if the umask is
already set tight, it will not become looser as the result of passing
--world-readable.
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Matthew Lear [Tue, 6 Feb 2018 21:52:01 +0000 (21:52 +0000)]
Clarify the syntax required when searching using timestamps.
Need to be clearer about specifying time ranges using timestamps.
Legacy syntax which predates the date prefix is still supported, but
timestamps used in conjunction with the date prefix require additional
syntax.
Daniel Kahn Gillmor [Tue, 6 Feb 2018 19:38:21 +0000 (14:38 -0500)]
debian: drop export-dir from gbp.conf
No one knows why this invocation is here. it does weird things during
the build. If a developer really wants this behavior, they can
specify it in their own ~/.gbp.conf
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Antoine Amarilli [Wed, 31 Jan 2018 20:50:45 +0000 (21:50 +0100)]
doc: create manpage folders with right permissions
Avoids the issue where umask can make man pages unreadable after
installation. Relevant email on the mailing-list:
<87h8rt30sy.fsf@fifthhorseman.net>
David Bremner [Sat, 13 Jan 2018 00:50:05 +0000 (20:50 -0400)]
travis: disable gdb based tests
Apparently something broke with gdb on travis.
Daniel Kahn Gillmor [Wed, 10 Jan 2018 16:14:52 +0000 (11:14 -0500)]
travis: build against python3-sphinx instead of python-sphinx
Ubuntu trusty has python3-sphinx 1.2.2+dfsg-1ubuntu1, so this should
be OK.
David Bremner [Sat, 13 Jan 2018 00:48:22 +0000 (20:48 -0400)]
INSTALL: fix typo
Daniel Kahn Gillmor [Wed, 10 Jan 2018 16:14:51 +0000 (11:14 -0500)]
INSTALL: refer to python3-sphinx
We're now preferring to build with python3 instead of python2. Update
the INSTALL to match.
Thanks to Antoine Amarilli <a3nm@a3nm.net> for pointing this out!
David Bremner [Tue, 9 Jan 2018 11:46:57 +0000 (07:46 -0400)]
Merge tag '0.26'
notmuch 0.26 release
David Bremner [Tue, 9 Jan 2018 11:26:44 +0000 (07:26 -0400)]
NEWS: Fix markup of headline
David Bremner [Tue, 9 Jan 2018 11:15:45 +0000 (07:15 -0400)]
NEWS: set release date
David Bremner [Tue, 9 Jan 2018 11:15:16 +0000 (07:15 -0400)]
version: bump to 0.26
David Bremner [Tue, 9 Jan 2018 11:14:28 +0000 (07:14 -0400)]
debian: add some hints about upstream changes.
Daniel Kahn Gillmor [Sun, 7 Jan 2018 14:37:45 +0000 (09:37 -0500)]
notes about debian packaging changes
David Bremner [Sat, 6 Jan 2018 13:41:39 +0000 (09:41 -0400)]
version: bump to 0.26~rc2
Update debian version to follow.
David Bremner [Sat, 6 Jan 2018 13:30:28 +0000 (09:30 -0400)]
NEWS: don't start headlines with --
This confuses our simple tooling, and it's questionable style anyway.
David Bremner [Fri, 5 Jan 2018 01:07:31 +0000 (21:07 -0400)]
NEWS: minimalist notes for Vladimir's changes
David Bremner [Fri, 5 Jan 2018 01:01:56 +0000 (21:01 -0400)]
NEWS: minimalist notes for Yuri's changes
David Bremner [Fri, 5 Jan 2018 00:56:32 +0000 (20:56 -0400)]
NEWS: minimalist notes for Jani's changes
David Bremner [Fri, 5 Jan 2018 00:46:43 +0000 (20:46 -0400)]
NEWS: move test suite news down
Daniel Kahn Gillmor [Tue, 2 Jan 2018 15:32:38 +0000 (10:32 -0500)]
fix typos
David Bremner [Fri, 5 Jan 2018 00:26:06 +0000 (20:26 -0400)]
Merge branch 'release'
debian updates
Daniel Kahn Gillmor [Tue, 2 Jan 2018 15:47:50 +0000 (10:47 -0500)]
Standards-Version: bump to 4.1.3 (no changes needed)
Daniel Kahn Gillmor [Tue, 2 Jan 2018 15:47:49 +0000 (10:47 -0500)]
move to debhelper 10
David Bremner [Tue, 2 Jan 2018 01:50:24 +0000 (21:50 -0400)]
Merge tag '0.26_rc1'
notmuch 0.26~rc1 release
David Bremner [Tue, 2 Jan 2018 01:18:22 +0000 (21:18 -0400)]
debian: bump date of upload
David Bremner [Tue, 2 Jan 2018 01:17:05 +0000 (21:17 -0400)]
doc: add 2018 to copyright year
Daniel Kahn Gillmor [Sun, 31 Dec 2017 23:09:30 +0000 (18:09 -0500)]
NEWS: document notmuch-properties(7)
Daniel Kahn Gillmor [Sun, 31 Dec 2017 23:09:29 +0000 (18:09 -0500)]
NEWS: document notmuch_message_remove_all_properties_with_prefix