summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-09-08NEWS: add news for 0.22.2debian/0.22.2-10.22.2David Bremner
2016-09-08debian: add changelog stanza for 0.22.2-1David Bremner
2016-09-08version: bump to 0.22.2David Bremner
2016-09-08test/crypto: hard code fingerprintDavid Bremner
Originally the intent was to make the test more robust against changing test keys. It turns out that (unscientifically) gpg --with-colons output changes more often than our test key. Rather than making the script more complex, just hard code the fingerprint. This fixes Debian bug #847013; I expect similar test failures as other distros adopt gnupg 2.1.15
2016-08-14debian: changelog stanza for 0.22.1-3debian/0.22.1-3David Bremner
2016-08-14test: make gdb even quieterDavid Bremner
gdb sometimes writes warnings to stdout, which we don't need/want, and for some reason --batch-silent isn't enough to hide. So in this commit we write them to a log file, which is probably better for debugging anyway. To see an illustrative test failure before this change, run % make % touch notmuch-count.c % cd test && ./T060-count.sh (cherry picked from commit f45fa5bdd397d52473f7092f7ae3e2ffb9b7aee5)
2016-07-19debian: changelog stanza for 0.22.1-2debian/0.22.1-2David Bremner
2016-07-19debian: add explicit build-depends on gnupgDavid Bremner
apt dropped it's depends on gnupg, so we can't rely on it being present in the build env anymore
2016-07-19debian: changelog stanza for 0.22.1-10.22.1David Bremner
Basically copy upstream NEWS
2016-07-19NEWS: set date of point releaseDavid Bremner
2016-07-19version: bump to 0.22David Bremner
2016-07-13NEWS: initial NEWS for 0.22.1David Bremner
2016-06-30debian: add changelog stanza for 0.22.1~rc0-1debian/0.22.1_rc0-10.22.1_rc0David Bremner
No actual changes discussed, because the NEWS file is yet to be created.
2016-06-30version: bump to 0.21.1~rc0David Bremner
Getting ready for the point release
2016-06-30notmuch-mutt: use env to locate perl for increased portabilityStefano Zacchiroli
Note: this patch drops -w from the shebang line, but we still have "use warnings" in the script, which is superior anyhow. Thanks Andreas Tolfsen for the suggestion.
2016-06-30lib: fix definition of LIBNOTMUCH_CHECK_VERSIONDavid Bremner
Fix bug reported in id:20160606124522.g2y2eazhhrwjsa4h@flatcap.org Although the C99 standard 6.10 is a little non-obvious on this point, the docs for e.g. gcc are unambiguous. And indeed in practice with the extra space, this code fails #include <stdio.h> #define foo (x) (x+1) int main(int argc, char **argv){ printf("%d\n",foo(1)); }
2016-06-30doc: forbid further operations on a closed databaseDavid Bremner
We could add many null pointer checks, but currently I don't see a use case that justifies it.
2016-06-30test: don't use dump and restore in a pipelineDavid Bremner
This has been wrong since bbbdf0478ea, but the race condition was not previously been (often?) triggered in the tests. With the DB_RETRY_LOCK patches, it manifests itself as a deadlock.
2016-05-01emacs: Tell `message-mode' that outgoing messages are email.David Edmondson
When composing messages (including replies, etc.), indicate to `message-mode' definitively that the message is email (as opposed to Usenet news) rather than having it attempt to determine this for itself. This causes `message-mode' to observe such variables as `message-default-mail-headers', which previously happened haphazardly.
2016-05-01emacs: Observe the charset of MIME parts when reading them.David Edmondson
`notmuch--get-bodypart-raw' previously assumed that all non-binary MIME parts could be successfully read by assuming that they were UTF-8 encoded. This was demonstrated to be wrong, specifically when a part was marked as ISO8859-1 and included accented characters (which were incorrectly rendered as a result). Rather than assuming UTF-8, attempt to use the part's declared charset when reading it, falling back to US-ASCII if the declared charset is unknown, unsupported or invalid.
2016-04-26debian: add versioned depends on dpkg-devdebian/0.22-10.22David Bremner
This is needed to support build profiles (e.g. nocheck)
2016-04-26debian: add changelog stanza for 0.22David Bremner
2016-04-26bump version and NEWS date for 0.22 releaseDavid Bremner
2016-04-25NEWS: mention try-emacs-muaTomi Ollila
A non-technical introduction for users who read NEWS to have better chance to find ./devel/notmuch-emacs-mua when they test or experiment with notmuch emacs MUA next time.
2016-04-24debian: changelog stanza for 0.22~rc1-1debian/0.22_rc1-10.22_rc1David Bremner
2016-04-24version: bump to 0.22~rc1David Bremner
2016-04-24NEWS: entry for emacs mua address completionDavid Bremner
2016-04-24NEWS: document some bug fixesDavid Bremner
2016-04-24NEWS: document S/MIME supportDavid Bremner
2016-04-24NEWS: note no-op-ness of notmuch-message-address-insinuateDavid Bremner
2016-04-24NEWS: note dropping "pkg-config emacs"David Bremner
2016-04-24NEWS: add note about xapian 1.3 supportDavid Bremner
2016-04-24doc: change copyright dateDavid Bremner
Yes, it is 2016
2016-04-18Emacs related NEWS for 0.22.David Edmondson
2016-04-16emacs: Don't indent multipart sub-parts during reply.David Edmondson
When generating cited messages for replay, override any existing setting for `notmuch-show-indent-multipart' to ensure that no indentation occurs.
2016-04-16debian: minimal changelog for 0.22~rc0-1debian/0.22_rc0-10.22_rc0David Bremner
2016-04-16version: bump to 0.22~rc0David Bremner
2016-04-16bindings: drop build time message on missing ruby dependencyJani Nikula
The usual make message on everything being up to date is: make: Nothing to be done for 'all'. However, since commit d038b9320949c79503fe4b76870aaabf279405ab Author: David Bremner <david@tethera.net> Date: Mon Jun 1 09:08:59 2015 +0200 build: integrate building ruby bindings into notmuch build process if one doesn't have the ruby dependencies installed, the message has been: Missing dependency, skipping ruby bindings Restore the usual behaviour by dropping the message. It's redundant during build anyway, since the configure script already outputs: Checking for ruby development files... No (skipping ruby bindings)
2016-04-16emacs: Add notmuch homepage to package headerChunyang Xu
So user can find out notmuch's homepage with: C-h P ('describe-package') notmuch
2016-04-16emacs: Fix packagingChunyang Xu
Refer to (info "(elisp) Library Headers") for package conventions.
2016-04-15complete ghost-on-removal-when-shared-thread-existsDaniel Kahn Gillmor
To fully complete the ghost-on-removal-when-shared-thread-exists proposal, we need to clear all ghost messages when the last active message is removed from a thread. Amended by db: Remove the last test of T530, as it no longer makes sense if we are garbage collecting ghost messages.
2016-04-15On deletion, replace with ghost when other active messages in threadDaniel Kahn Gillmor
There is no need to add a ghost message upon deletion if there are no other active messages in the thread. Also, if the message being deleted was a ghost already, we can just go ahead and delete it.
2016-04-15Introduce _notmuch_message_has_term()Daniel Kahn Gillmor
It can be useful to easily tell if a given message has a given term associated with it.
2016-04-15Add internal functions to search for alternate doc typesDaniel Kahn Gillmor
Publicly we are only exposing the non-ghost documents (of "type" "mail"). But internally we might want to inspect the ghost messages as well. This changeset adds two new private interfaces to queries to recover information about alternate document types.
2016-04-15fix thread breakage via ghost-on-removalDaniel Kahn Gillmor
implement ghost-on-removal, the solution to T590-thread-breakage.sh that just adds a ghost message after removing each message. It leaks information about whether we've ever seen a given message id, but it's a fairly simple implementation. Note that _resolve_message_id_to_thread_id already introduces new message_ids to the database, so i think just searching for a given message ID may introduce the same metadata leakage.
2016-04-15test thread breakage when messages are removed and re-addedDaniel Kahn Gillmor
This test (T590-thread-breakage.sh) has known-broken subtests. If you have a two-message thread where message "B" is in-reply-to "A", notmuch rightly sees this as a single thread. But if you: * remove "A" from the message store * run "notmuch new" * add "A" back into the message store * re-run "notmuch new" Then notmuch sees the messages as distinct threads. This happens because if you insert "B" initially (before anything is known about "A"), then a "ghost message" gets added to the database in reference to "A" that is in the same thread, which "A" takes over when it appears. But if "A" is subsequently removed, no ghost message is retained, so when "A" appears, it is treated as a new thread. I see a few options to fix this: ghost-on-removal ---------------- We could unilaterally add a ghost upon message removal. This has a few disadvantages: the message index would leak information about what messages the user has ever been exposed to, and we also create a perpetually-growing dataset -- the ghosts can never be removed. ghost-on-removal-when-shared-thread-exists ------------------------------------------ We could add a ghost upon message removal iff there are other non-ghost messages with the same thread ID. We'd also need to remove all ghost messages that share a thread when the last non-ghost message in that thread is removed. This still has a bit of information leakage, though: the message index would reveal that i've seen a newer message in a thread, even if i had deleted it from my message store track-dependencies ------------------ rather than a simple "ghost-message" we could store all the (A,B) message-reference pairs internally, showing which messages A reference which other messages B. Then removal of message X would require deleting all message-reference pairs (X,B), and only deleting a ghost message if no (A,X) reference pair exists. This requires modifying the database by adding a new and fairly weird table that would need to be indexed by both columns. I don't know whether xapian has nice ways to do that. scan-dependencies ----------------- Without modifying the database, we could do something less efficient. Upon removal of message X, we could scan the headers of all non-ghost messages that share a thread with X. If any of those messages refers to X, we would add a ghost message. If none of them do, then we would just drop X entirely from the table. --------------------- One risk of attempted fixes to this problem is that we could fail to remove the search term indexes entirely. This test contains additional subtests to guard against that. This test also ensures that the right number of ghost messages exist in each situation; this will help us ensure we don't accumulate ghosts indefinitely or leak too much information about what messages we've seen or not seen, while still making it easy to reassemble threads when messages come in out-of-order.
2016-04-15test: add test-binary to print the number of ghost messagesDavid Bremner
This one-liner seems preferable to the complications of depending on delve, getting the binary name right and parsing the output.
2016-04-12lib: clean up _notmuch_database_split_pathJani Nikula
Make the logic it a bit easier to read. No functional changes.
2016-04-12lib: fix handling of one character long directory names at top levelJani Nikula
The code to skip multiple slashes in _notmuch_database_split_path() skips back one character too much. This is compensated by a +1 in the length parameter to the strndup() call. Mostly this works fine, but if the path is to a file under a top level directory with one character long name, the directory part is mistaken to be part of the file name (slash == path in code). The returned directory name will be the empty string and the basename will be the full path, breaking the indexing logic in notmuch new. Fix the multiple slash skipping to keep the slash variable pointing at the last slash, and adjust strndup() accordingly. The bug was introduced in commit e890b0cf4011fd9fd77ebd87343379e4a778888b Author: Carl Worth <cworth@cworth.org> Date: Sat Dec 19 13:20:26 2009 -0800 database: Store the parent ID for each directory document. just a little over two months after the initial commit in the Notmuch code history, making this the longest living bug in Notmuch to date.
2016-04-12test: test one character long directory names at top levelJani Nikula
Yes, it's broken. Reported by h01ger on IRC.