aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-05-05Merge tag 0.28.4David Bremner
No functionality changes merged, since the bug in question was already fixed on master.
2019-05-05debian: changelog for 0.28.4-1debian/0.28.4-1archive/debian/0.28.4-10.28.4David Bremner
2019-05-05version: bump to 0.28.4David Bremner
2019-05-05NEWS: NEWS for 0.28.4David Bremner
2019-05-05cli/show: avoid empty write to stdout in format_part_rawDavid Bremner
Previously if the input was exactly a multiple of the internal buffer size, notmuch would attempt to fwrite nothing to stdout, but still expected fwrite to return 1, causing a failure that looked like this: $ notmuch show --format=raw id:87o96f1cya.fsf@codeaurora.org ...entire message shown as expected.. Error: Write failed $ echo $? 1 To fix the problem don't call fwrite at all when there's nothing to write. Amended by db: add some tests of message sizes likely to cause this problem.
2019-05-03cli/notmuch-show: support gzipped filesDavid Bremner
This drops "file" from mime_node_context and just uses a local variable. It also uses the new gzip aware utility routines recently added to util/gmime-extra.c. The use of gzopen / gzfile in addition is a bit icky, but the choice is between that, and providing yet another readline implimentation that understands GMime streams.
2019-05-03lib/message_file: open gzipped filesDavid Bremner
Rather than storing the lower level stdio FILE object, we store a GMime stream. This allows both transparent decompression, and passing the stream into GMime for parsing. As a side effect, we can let GMime close the underlying OS stream (indeed, that stream isn't visible here anymore). This change is enough to get notmuch-{new,search} working, but there is still some work required for notmuch-show, to be done in a following commit.
2019-05-03util/gmime-extra: add g_mime_stream_gzfile_{new, open}David Bremner
These are usable as standard GMime streams, and transparently decompress gzipped files.
2019-05-03travis: bump gmime depends to 3.0David Bremner
This is currently unsatisfiable, but at least the build should fail in a comprehensible way.
2019-05-03gmime-cleanup: no longer need to use GMime major version during buildDaniel Kahn Gillmor
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-05-03gmime-cleanup: pass NULL as default GMimeParserOptionsDaniel Kahn Gillmor
This is a functional change, not a straight translation, because we are no longer directly invoking g_mime_parser_options_get_default(), but the GMime source has indicated that the options parameter for g_mime_parser_construct_message() is "nullable" since upstream commit d0ebdd2ea3e6fa635a2a551c846e9bc8b6040353 (which itself precedes GMime 3.0). Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-05-03gmime-cleanup: pass NULL arguments explicitly where GMime 3.0 expects itDaniel Kahn Gillmor
Several GMime 2.6 functions sprouted a change in the argument order in GMime 3.0. We had a compatibility layer here to be able to handle compiling against both GMime 2.6 and 3.0. Now that we're using 3.0 only, rip out the compatibility layer for those functions with changed argument lists, and explicitly use the 3.0 argument lists. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-05-03gmime-cleanup: use GMime 3.0 function namesDaniel Kahn Gillmor
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-05-03gmime-cleanup: use GMime 3.0 data typesDaniel Kahn Gillmor
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-05-03gmime-cleanup: drop unused gmime #defines and simplify g_mime_init ()Daniel Kahn Gillmor
Several of these #defines were not actually used in the notmuch codebase any longer. And as of GMime 3.0, g_mime_init takes no arguments, so we can also drop the bogus RFC2047 argument that we were passing and then #defining away. signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-05-03gmime-cleanup: drop all arguments unused in GMime 3Daniel Kahn Gillmor
This means dropping GMimeCryptoContext and notmuch_config arguments. All the argument changes are to internal functions, so this is not an API or ABI break. We also get to drop the #define for g_mime_3_unused. signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-05-03gmime-cleanup: drop g_mime_2_6_unrefDaniel Kahn Gillmor
signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-05-03gmime-cleanup: simplify T355-smime.shDaniel Kahn Gillmor
GMime 3.0 and later can handle User ID as expected. signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-05-03gmime-cleanup: tests should only care about gmime 3Daniel Kahn Gillmor
note that "notmuch-show for message with invalid From" is still broken in T310-emacs.sh. It would be good to debug what's going on there and try to get it fixed! signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-05-03gmime-cleanup: always support session keysDaniel Kahn Gillmor
Our minimum version of GMime 3.0 always supports good session key handling. signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-05-03gmime-cleanup: remove obsolete gpg_path configuration option and crypto contextsDaniel Kahn Gillmor
Note that we do keep ignoring the gpg_path configuration option, though, to avoid breakage of existing installations. It is ignored like any other unknown configuration option, but we at least document that it is ignored so that people who find it in their legacy configs can know that it's safe to drop. signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-05-03gmime-cleanup: remove GMime 2.6 variant codeblocksDaniel Kahn Gillmor
signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-05-03gmime-cleanup: drop unused gmime 2.6 content_type from _index_encrypted_mime_partDaniel Kahn Gillmor
In _index_mime_part, we don't need to extract the content-type from the part until just before we use it, so we also defer it lazily. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-05-03build: drop support for gmime-2.6David Bremner
GMime 3.0 is over 2 years old now, and 2.6 has been deprecated in notmuch for about 1.5 years. Comments and documentation no longer need to refer to GMime 2.6, so clean them all up. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-04-26emacs: Make first documentation line distinct for "a" and "x" commands.Örjan Ekeberg
Since only the first line of the documentation is shown by the help command, it is confusing when "x" and "a" seem to have the same binding in show-mode. This commit makes the two function documentations first lines different and (hopefully) clearer.
2019-04-26crypto: Avoid pretending to verify signatures on unsigned encrypted mailDaniel Kahn Gillmor
Unsigned encrypted mail shows up with a weird empty signature list. If we successfully decrypted and there was no signature in it, we should just not show a sigstatus at all. The documentation for g_mime_decrypt_result_get_signatures says: a GMimeSignatureList or NULL if the stream was not signed.
2019-04-24cli/show: pass the siglist directly to the sigstatus sprinterDaniel Kahn Gillmor
This makes it easier to reuse format_part_sigstatus_sprinter() when we have other places that we want to display a signature status.
2019-04-24tests: move FINGERPRINT definition to add_gnupg_homeDaniel Kahn Gillmor
If a test has added a GnuPG homedir, it may well want to know the fingerprint. This saves us from having to redefine this magic string in multiple places when more tests eventually use the GnuPG homedir.
2019-04-24python: support relative path in default databaseDoan Tran Cong Danh
From notmuch 0.28, notmuch support relative database path in notmuch-config(1), but python binding haven't taught this yet. afew denied to work with a perfectly fine notmuch-config due to this.
2019-04-24emacs: Add missing type and group to defcustom variableÖrjan Ekeberg
Added the type 'regexp and group 'notmuch-send as properties to the customizable variable notmuch-mua-attachment-regexp.
2019-04-24doc: exclude notmuch-emacs.rst if emacs is not present.David Bremner
This will still generate a warning about an excluded document in the toctree, but it cuts down on the noise quite a lot.
2019-04-24build: only try to build .rsti files if we have emacs and sphinxDavid Bremner
Emacs is needed to build them, and sphinx is needed to use them
2019-04-24build: ignore *.stampDavid Bremner
The current case is docstring.stamp, but it's likely that others will arise.
2019-04-24doc: use stamp file for html docsDavid Bremner
These are less time consuming than the texi docs to rebuild (because the texi rebuild triggers info rebuild), but still take noticable time.
2019-04-24doc: use stamp file to control rebuilding texiDavid Bremner
Apparently the sphinx-doc texinfo builder is not smart enough to only rebuild those files where the source has changed.
2019-04-18CLI/reindex: fix memory leakDavid Bremner
Since message is owned by messages, it was held for the entire run of the program. This in turn means that the Xapian::Document objects are not freed, and thus one ends up with (effectively) a copy of one's entire mailstore in memory when running notmuch reindex '*' Thanks to Olly Betts for the patient help debugging, and the suggestion of a fix.
2019-04-17lib: add 'body:' field, stop indexing headers twice.David Bremner
The new `body:` field (in Xapian terms) or prefix (in slightly sloppier notmuch) terms allows matching terms that occur only in the body. Unprefixed query terms should continue to match anywhere (header or body) in the message. This follows a suggestion of Olly Betts to use the facility (since Xapian 1.0.4) to add the same field with multiple prefixes. The double indexing of previous versions is thus replaced with a query time expension of unprefixed query terms to the various prefixed equivalent. Reindexing will be needed for 'body:' searches to work correctly; otherwise they will also match messages where the term occur in headers (demonstrated by the new tests in T530-upgrade.sh)
2019-04-14NEWS: deprecate Emacs 24David Bremner
2019-04-14test: add test for checking forwarded messagesÖrjan Ekeberg
Add test of forwarding messages from within emacs. The first test checks that a references header is properly added to the new message. The second test checks that the send-hook of the forwarding message adds a forwarded-tag to the original message.
2019-04-14emacs: Tag forwarded messages with +forwarded (customizable)Örjan Ekeberg
Use the buffer-local variable notmuch-message-queued-tag-changes to change tags when the forwarding message is sent.
2019-04-14emacs: Use a buffer-local variable to update tags when sending repliesÖrjan Ekeberg
Instead of relying on the "In-Reply-To" header, use a buffer-local variable, notmuch-message-queued-tag-changes, to add and remove tags to affected messages when the message-send-hook is triggered.
2019-04-14emacs: Add References header to forwarded messagesÖrjan Ekeberg
Include the message-id of forwarded messages in the new message. This ensures that the new (forwarding) message is linked to the same thread as the message being forwarded.
2019-04-13travis: add xapian-backports PPADavid Bremner
We really want to be testing with a more current version of xapian than that available in Ubuntu Xenial
2019-04-05performance-tests: tests for renamed/copied files in notmuch newDavid Bremner
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-03-31emacs: make editing a message as new include FCCLéo Gaspard
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-31Fix notmuch-describe-keyYang Sheng
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-31lib: update commentary about path/folder termsDavid Bremner
We missed this when we changed to binary fields.
2019-03-31lib: add clarification about the use of "prefix" in the docs.David Bremner
2019-03-31lib: drop comment about only indexing one file.David Bremner
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-31doc: document notmuch new --verboseMichal Sojka