From f7e13246b4fbfe948c93c3c67f32812fb0f23c0f Mon Sep 17 00:00:00 2001 From: Tomi Ollila Date: Sat, 26 Apr 2014 12:59:23 +0300 Subject: [PATCH 01/18] NEWS: Ido initialization for Emacs 23.[123] --- NEWS | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/NEWS b/NEWS index bcd311d4..ab263bbb 100644 --- a/NEWS +++ b/NEWS @@ -82,6 +82,12 @@ Version variable these differ from each other. This is especially useful when using notmuch remotely. +Ido-completing-read initialization in Emacs 23 + + `ido-completing-read` in Emacs 23 versions 1 through 3 freezes unless + it is initialized. Defadvice-based *Ido* initialization is defined + for these Emacs versions. + Bug fix for saved searches with newlines in them Split lines confuse `notmuch count --batch`, so we remove embedded From 3ff5f2f430d63e0b2cffe8cc842d88fcf4137571 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Sun, 27 Apr 2014 19:30:47 +0300 Subject: [PATCH 02/18] NEWS: replies to encrypted messages encrypted by default --- NEWS | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/NEWS b/NEWS index ab263bbb..446befb8 100644 --- a/NEWS +++ b/NEWS @@ -99,6 +99,13 @@ Bug fixes for sender identities and undesirable ways. Now it will use identities exactly as configured in `notmuch-identities`. +Replies to encrypted messages will be encrypted by default + + In the interest of maintaining confidentiality of communications, + the Notmuch Emacs interface now automatically adds the mml tag to + encrypt replies to encrypted messages. This should make it less + likely to accidentally reply to encrypted messages in plain text. + nmbug ----- From 8ea4eef298bf45ddce629ff6e221bd84daa0fa24 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Sun, 27 Apr 2014 17:46:17 +0300 Subject: [PATCH 03/18] NEWS: folder:, path:, and database upgrade Related news together. --- NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/NEWS b/NEWS index 446befb8..d21921f4 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,49 @@ Notmuch 0.18~rc0 (2014-04-22) ============================= +General +------- + +The `folder:` search prefix now requires an exact match + + The `folder:` prefix has been changed to search for email messages + by the exact, case sensitive maildir or MH folder name. The new + behaviour allows for more accurate mail folder based searches, and + should lead to less surprising results than the old behaviour. Users + are advised to see the `notmuch-search-terms` manual page for + details, and review how the change affects their existing `folder:` + searches. + +There is a new `path:` search prefix. + + The new `path:` search prefix complements the `folder:` prefix. The + `path:` prefix searches for email messages that are in particular + directories within the mail store, optionally recursively using a + special syntax. See the `notmuch-search-terms` manual page for + details. + +Notmuch database upgrade due to `folder:` and `path:` changes + + The above mentioned changes to the `folder:` prefix and the addition + of `path:` prefix require a Notmuch database upgrade. This will be + done automatically, without prompting on the next time `notmuch new` + is run after the upgrade. The upgrade is not reversible, and the + upgraded database will not be readable by older versions of + Notmuch. As a safeguard, a database dump will be created in the + `.notmuch` directory before upgrading. + +Library changes +--------------- + +Notmuch database upgrade + + The libnotmuch consumers are reminded to handle database upgrades + properly, either by relying on running `notmuch new`, or checking + `notmuch_database_needs_upgrade()` and calling + `notmuch_database_upgrade()` as necessary. This has always been the + case, but in practise there have been no database upgrades in any + released version of Notmuch before now. + Command-Line Interface ---------------------- From 1156aa9bd9a7322c9014b01272923838236a533b Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Sun, 27 Apr 2014 23:54:24 +0300 Subject: [PATCH 04/18] NEWS: mbox files are no longer supported --- NEWS | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/NEWS b/NEWS index d21921f4..e4bd2e2f 100644 --- a/NEWS +++ b/NEWS @@ -44,6 +44,13 @@ Notmuch database upgrade case, but in practise there have been no database upgrades in any released version of Notmuch before now. +Support for indexing mbox files has been dropped + + There has never been proper support for mbox files containing + multiple messages, and the support for single-message mbox files has + been deprecated since Notmuch 0.15. The support has now been + dropped, and all mbox files will be rejected during indexing. + Command-Line Interface ---------------------- From e925d88b1b5aaa7c19332420acdc66dfb9bc40fc Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Mon, 28 Apr 2014 00:09:21 +0300 Subject: [PATCH 05/18] NEWS: message header parser changes --- NEWS | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/NEWS b/NEWS index e4bd2e2f..06876e0a 100644 --- a/NEWS +++ b/NEWS @@ -51,6 +51,15 @@ Support for indexing mbox files has been dropped been deprecated since Notmuch 0.15. The support has now been dropped, and all mbox files will be rejected during indexing. +Message header parsing changes + + Notmuch previously had an internal parser for message headers. The + parser has now been dropped in favour of letting GMime parse both + the headers and the message MIME structure at the same pass. This is + mostly an internal change, but the GMime parser is stricter in its + interpretation of the headers. This may result in messages with + slightly malformed message headers being now rejected. + Command-Line Interface ---------------------- From 708299ac53ec3e7c3ada54dcadf2d634bd29ec0e Mon Sep 17 00:00:00 2001 From: David Bremner Date: Thu, 1 May 2014 08:13:44 +0900 Subject: [PATCH 06/18] NEWS: add overview section for 0.18 This mentions the things I (subjectively) thought were most likely to either annoy people or make it worth upgrading. --- NEWS | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/NEWS b/NEWS index 06876e0a..a161514e 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,20 @@ Notmuch 0.18~rc0 (2014-04-22) ============================= +Overview +-------- + +This new release includes some enhancements to searching for messages +by filesystem location (`folder:` and `path:` prefixes under *General* +below). Saved searches in *Emacs* have also been enhanced to allow +distinct search orders for each one. Another enhancement to the +*Emacs* interface is that replies to encrypted messages are now +encrypted, reducing the risk of unintentional information disclosure. +The default dump output format has changed to the more robust +`batch-tag` format. The previously deprecated parsing of single +message mboxes has been removed. For detailed release notes, see +below. + General ------- From e0c7e493078e73058cc87d68d70c6ce87b6ec8a5 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 1 May 2014 17:41:58 +0300 Subject: [PATCH 07/18] NEWS: notmuch insert respects maildir.synchronize_flags --- NEWS | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/NEWS b/NEWS index a161514e..b5ca760d 100644 --- a/NEWS +++ b/NEWS @@ -85,6 +85,11 @@ Command-Line Interface This option suppresses the progress and summary reports. +`notmuch insert` respects maildir.synchronize_flags config option + + Do not synchronize tags to maildir flags in `notmuch insert` if the + user does not want it. + Emacs Interface --------------- From d8bf03710ec8ffead424683a949a2e68d706812b Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 1 May 2014 17:42:00 +0300 Subject: [PATCH 08/18] NEWS: cli exit status codes --- NEWS | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/NEWS b/NEWS index b5ca760d..07bb1259 100644 --- a/NEWS +++ b/NEWS @@ -90,6 +90,13 @@ Command-Line Interface Do not synchronize tags to maildir flags in `notmuch insert` if the user does not want it. +The commands set consistent exit status codes on failures + + The cli commands now consistently set exit status of 1 on failures, + except where explicitly otherwise noted. The notable expections are + the status codes for format version mismatches for commands that + support formatted output. + Emacs Interface --------------- From 292a052cab153ef7744c8de9a89aa1077ab99053 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 1 May 2014 17:41:59 +0300 Subject: [PATCH 09/18] NEWS: emacs: push mark before signature on reply --- NEWS | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/NEWS b/NEWS index 07bb1259..e7809787 100644 --- a/NEWS +++ b/NEWS @@ -191,6 +191,12 @@ Replies to encrypted messages will be encrypted by default encrypt replies to encrypted messages. This should make it less likely to accidentally reply to encrypted messages in plain text. +Reply pushes mark before signature + + We push mark and set point on reply so that the user can easily cut + the quoted text. The mark is now pushed before the signature, if + any, instead of end of buffer so the signature is preserved. + nmbug ----- From c070bee7ead07d18f67830a24ab3a822cc6e95bb Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 1 May 2014 17:42:01 +0300 Subject: [PATCH 10/18] NEWS: message piping working directory --- NEWS | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/NEWS b/NEWS index e7809787..3430e1d4 100644 --- a/NEWS +++ b/NEWS @@ -197,6 +197,12 @@ Reply pushes mark before signature the quoted text. The mark is now pushed before the signature, if any, instead of end of buffer so the signature is preserved. +Message piping uses the originating buffer's working directory + + `notmuch-show-pipe-message` now uses the originating buffer's + current default directory instead of that of the `*notmuch-pipe*` + buffer's. + nmbug ----- From 02fabf31df655f492f4f001977cae203445ff73e Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 1 May 2014 17:42:02 +0300 Subject: [PATCH 11/18] NEWS: insert and new refuse invalid tags --- NEWS | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/NEWS b/NEWS index 3430e1d4..75dba6f9 100644 --- a/NEWS +++ b/NEWS @@ -97,6 +97,13 @@ The commands set consistent exit status codes on failures the status codes for format version mismatches for commands that support formatted output. +Bug fix for checking configured new.tags for invalid tags + + `notmuch new` and `notmuch insert` now check the user configured + new.tags for invalid tags, and refuse to apply them, similar to + `notmuch tag`. Invalid tags are currently the empty string and tags + starting with `-`. + Emacs Interface --------------- From 697d6b5a47dfefa80a93eb6aad54cd9e78b33430 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Fri, 2 May 2014 19:28:38 +0300 Subject: [PATCH 12/18] NEWS: make it explicit that wildcard matching is no longer supported Wildcard matching was a feature of the probabilistic prefix, and we no longer have it for the boolean prefix. Also note that top-level folder can now be searched. --- NEWS | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/NEWS b/NEWS index 75dba6f9..f10c280b 100644 --- a/NEWS +++ b/NEWS @@ -21,12 +21,13 @@ General The `folder:` search prefix now requires an exact match The `folder:` prefix has been changed to search for email messages - by the exact, case sensitive maildir or MH folder name. The new - behaviour allows for more accurate mail folder based searches, and - should lead to less surprising results than the old behaviour. Users - are advised to see the `notmuch-search-terms` manual page for - details, and review how the change affects their existing `folder:` - searches. + by the exact, case sensitive maildir or MH folder name. Wildcard + matching (`folder:foo*`) is no longer supported. The new behaviour + allows for more accurate mail folder based searches, makes it + possible to search for messages in the top-level folder, and should + lead to less surprising results than the old behaviour. Users are + advised to see the `notmuch-search-terms` manual page for details, + and review how the change affects their existing `folder:` searches. There is a new `path:` search prefix. From 2fee62fd1fcaed5c9ec46daa4f24b33a2f310e83 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Thu, 1 May 2014 17:57:52 -0500 Subject: [PATCH 13/18] vim: fix count_threads variable check It never really worked; in Ruby only 'nil' and 'false' evaluate to false, therefore the statement '0 : true ? false' returns true, so it doesn't matter if notmuch_folders_count_threads = 0, count_threads would be true. We need to check specifically if the value is 1 or 0. Signed-off-by: Felipe Contreras --- vim/notmuch.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim/notmuch.vim b/vim/notmuch.vim index d7b310c8..25a16e9a 100644 --- a/vim/notmuch.vim +++ b/vim/notmuch.vim @@ -633,7 +633,7 @@ ruby << EOF def folders_render() $curbuf.render do |b| folders = VIM::evaluate('g:notmuch_folders') - count_threads = VIM::evaluate('g:notmuch_folders_count_threads') + count_threads = VIM::evaluate('g:notmuch_folders_count_threads') == 1 $searches.clear folders.each do |name, search| q = $curbuf.query(search) From 468deca60c062b6b3085ff1de41647f41cd6abd1 Mon Sep 17 00:00:00 2001 From: Paul Roberts Date: Thu, 1 May 2014 17:57:53 -0500 Subject: [PATCH 14/18] vim: make the html handler configurable Signed-off-by: Felipe Contreras --- vim/notmuch.vim | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vim/notmuch.vim b/vim/notmuch.vim index 25a16e9a..0cb94f6c 100644 --- a/vim/notmuch.vim +++ b/vim/notmuch.vim @@ -919,7 +919,8 @@ ruby << EOF if mime_type != "text/html" text = decoded else - IO.popen("elinks --dump", "w+") do |pipe| + IO.popen(VIM::evaluate('exists("g:notmuch_html_converter") ? ' + + 'g:notmuch_html_converter : "elinks --dump"'), "w+") do |pipe| pipe.write(decode_body) pipe.close_write text = pipe.read From cc8c213bbc9572fa96c1b384225b69136a3fd0e4 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Thu, 1 May 2014 17:57:54 -0500 Subject: [PATCH 15/18] vim: improve the way messages are sent We want the proper encoding and content-type to be set when sending the mail, but human-readable plain-text for composing. So split the code in two parts: the presentation and the transport conversion. This fixes an issue while sending non-ascii mails to strict servers; the mail needs to be encoded. Signed-off-by: Felipe Contreras --- vim/notmuch.vim | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/vim/notmuch.vim b/vim/notmuch.vim index 0cb94f6c..331e9300 100644 --- a/vim/notmuch.vim +++ b/vim/notmuch.vim @@ -86,17 +86,22 @@ endfunction function! s:compose_send() let b:compose_done = 1 let fname = expand('%') + let lines = getline(5, '$') - " remove headers - 0,4d - write +ruby << EOF + # Generate proper mail to send + text = VIM::evaluate('lines').join("\n") + fname = VIM::evaluate('fname') + transport = Mail.new(text) + transport.message_id = generate_message_id + transport.charset = 'utf-8' + File.write(fname, transport.to_s) +EOF let cmdtxt = g:notmuch_sendmail . ' -t -f ' . s:reply_from . ' < ' . fname let out = system(cmdtxt) let err = v:shell_error if err - undo - write echohl Error echo 'Eeek! unable to send mail' echo out @@ -572,9 +577,7 @@ ruby << EOF end m.cc = orig[:cc] m.from = $email - m.message_id = generate_message_id m.charset = 'utf-8' - m.content_transfer_encoding = '7bit' end lines = [] @@ -600,7 +603,7 @@ ruby << EOF reply.body = body_lines.join("\n") - lines += reply.to_s.lines.map { |e| e.chomp } + lines += reply.present.lines.map { |e| e.chomp } lines << "" cur = lines.count - 1 @@ -611,18 +614,13 @@ ruby << EOF def open_compose() lines = [] - lines << "Date: #{Time.now().strftime('%a, %-d %b %Y %T %z')}" lines << "From: #{$email}" lines << "To: " cur = lines.count lines << "Cc: " lines << "Bcc: " - lines << "Message-Id: #{generate_message_id}" lines << "Subject: " - lines << "Mime-Version: 1.0" - lines << "Content-Type: text/plain; charset=utf-8" - lines << "Content-Transfer-Encoding: 7bit" lines << "" lines << "" lines << "" @@ -928,6 +926,16 @@ ruby << EOF end text end + + def present + buffer = '' + header.fields.each do |f| + buffer << "%s: %s\r\n" % [f.name, f.to_s] + end + buffer << "\r\n" + buffer << body.to_s + buffer + end end end From 1f2bb88e92e13375ba79cefb2d28c982255ef7f3 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 4 May 2014 07:32:43 +0900 Subject: [PATCH 16/18] version: bump for 0.18~rc1 Doing all of the needed version bumps in one commit, and do a complete, if minimal debian changelog entry --- NEWS | 2 +- bindings/python/notmuch/version.py | 2 +- debian/changelog | 7 +++++++ version | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index f10c280b..983db2b5 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -Notmuch 0.18~rc0 (2014-04-22) +Notmuch 0.18~rc1 (2014-05-04) ============================= Overview diff --git a/bindings/python/notmuch/version.py b/bindings/python/notmuch/version.py index f15440d1..a10ecd93 100644 --- a/bindings/python/notmuch/version.py +++ b/bindings/python/notmuch/version.py @@ -1,2 +1,2 @@ # this file should be kept in sync with ../../../version -__VERSION__ = '0.18~rc0' +__VERSION__ = '0.18~rc1' diff --git a/debian/changelog b/debian/changelog index 72dbd45c..15fc994e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +notmuch (0.18~rc1-1) experimental; urgency=low + + * Upstream release candidate + - include encoding fix for vim client. + + -- David Bremner Sun, 04 May 2014 07:29:51 +0900 + notmuch (0.18~rc0-1) experimental; urgency=low * Upstream release candidate. diff --git a/version b/version index 065d0c86..9f565a42 100644 --- a/version +++ b/version @@ -1 +1 @@ -0.18~rc0 +0.18~rc1 From 2983a85eed24242b1c5f5d12fa6f0ed8c3d5253d Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 4 May 2014 07:38:21 +0900 Subject: [PATCH 17/18] doc/doxygen.cfg: bump version to 0.18 --- doc/doxygen.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/doxygen.cfg b/doc/doxygen.cfg index 65d5fb50..bfbfcab3 100644 --- a/doc/doxygen.cfg +++ b/doc/doxygen.cfg @@ -4,7 +4,7 @@ # Project related configuration options #--------------------------------------------------------------------------- DOXYFILE_ENCODING = UTF-8 -PROJECT_NAME = "Notmuch 0.17" +PROJECT_NAME = "Notmuch 0.18" PROJECT_NUMBER = PROJECT_BRIEF = PROJECT_LOGO = From 55354534953fd631ae1f51cf0f46732f00fde9c2 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 4 May 2014 08:11:35 +0900 Subject: [PATCH 18/18] build: use UPSTREAM_TAG and not VERSION to generate tarball The latter can have "~" in it, which is not legal for a git tag. --- Makefile.local | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.local b/Makefile.local index 877a9790..086b5a11 100644 --- a/Makefile.local +++ b/Makefile.local @@ -80,8 +80,8 @@ version.stamp: $(srcdir)/version echo $(VERSION) > $@ $(TAR_FILE): - if git tag -v $(VERSION) >/dev/null 2>&1; then \ - ref=$(VERSION); \ + if git tag -v $(UPSTREAM_TAG) >/dev/null 2>&1; then \ + ref=$(UPSTREAM_TAG); \ else \ ref="HEAD" ; \ echo "Warning: No signed tag for $(VERSION)"; \