notmuch.git
13 years agoRevert "debian: Generate version from debian/changelog" 0.7_rc1 debian/0.7_rc1-1
David Bremner [Fri, 29 Jul 2011 16:48:19 +0000 (18:48 +0200)]
Revert "debian: Generate version from debian/changelog"

This reverts commit 2b76283b52a2389a591ca055b086381c44e2a61f.

Conflicts:

debian/rules

13 years agobuild-system: Add pre-release target
David Bremner [Fri, 29 Jul 2011 15:45:12 +0000 (17:45 +0200)]
build-system: Add pre-release target

This is a lighter weight version of the release target, intended to
support uploading release candidates to Debian.

As a side effect, filter ~ out of VERSION to make tag names.

13 years agobump upstream version to 0.7~rc1
David Bremner [Fri, 29 Jul 2011 15:22:42 +0000 (17:22 +0200)]
bump upstream version to 0.7~rc1

13 years agodebian: changelog stanza for release candiate
David Bremner [Fri, 29 Jul 2011 10:02:40 +0000 (12:02 +0200)]
debian: changelog stanza for release candiate

13 years agolibnotmuch: only build symbols list after the modules are built
Thomas Jost [Wed, 20 Jul 2011 23:31:37 +0000 (01:31 +0200)]
libnotmuch: only build symbols list after the modules are built

If the notmuch.sym target does not explicitly depend on $(libnotmuch_modules),
gen-version-script.sh may be run before all the .o files are created, for
example when doing a parallel build on a machine with many cores.

13 years agoMerge commit '0.6.1'
David Bremner [Mon, 18 Jul 2011 01:18:58 +0000 (22:18 -0300)]
Merge commit '0.6.1'

Conflicts:
lib/Makefile.local

The conflicts are from three kinds of commits not merged into release:
    - typo fixes
    - removal of debug output
    - fix for CLEAN rule

That were never merged into the release branch.

13 years agobuild-system: tag debian-version as part of the release target 0.6.1
David Bremner [Sun, 17 Jul 2011 14:18:10 +0000 (11:18 -0300)]
build-system: tag debian-version as part of the release target

This allows, e.g. gitpkg debian/0.x-1 to do the right thing.  It also
helps enforce the convention that Debian upload -1 is identical to the
release tarball.

13 years agodebian: use 3.0 (quilt) source format.
David Bremner [Sun, 17 Jul 2011 14:11:57 +0000 (11:11 -0300)]
debian: use 3.0 (quilt) source format.

This generates a seperate notmuch-0.x.debian.tar.gz containing
./debian.

In the initial release this is redundant, but for Debian only updates
between releases, this allows updating the contents of ./debian, and
using the rest of the release tarball.

13 years agobuild-system: update version check to support non-native packages.
David Bremner [Sun, 17 Jul 2011 14:04:08 +0000 (11:04 -0300)]
build-system: update version check to support non-native packages.

We could be a bit more flexible about this and support optional Debian
versions, but for the moment, we pick a policy and stick to it.

13 years agobuild-system: guard parts irrevokable parts of release target with REALLY_UPLOAD
David Bremner [Mon, 4 Jul 2011 11:39:04 +0000 (08:39 -0300)]
build-system: guard parts irrevokable parts of release target with REALLY_UPLOAD

This supports both testing and use by non-upload privileged
users. Along with previous commits in the series, this lets one do a
dry run of the release process and created a tarball, signature file,
and release announcement to inspect before uploading.

13 years agobuild-system: use signed tag to make tar file, if available.
David Bremner [Sun, 3 Jul 2011 20:28:47 +0000 (17:28 -0300)]
build-system: use signed tag to make tar file, if available.

This as the advantage that "make VERSION=n.m dist" will work correctly
even if the wrong branch happens to be checked out.

13 years agobuild-system: tag earlier in the release process.
David Bremner [Sun, 3 Jul 2011 20:06:05 +0000 (17:06 -0300)]
build-system: tag earlier in the release process.

If tagging fails, we really don't want to upload tarballs.

13 years agobuild-system: remove use of git-buildpackage, dput. Add pristine-tar.
David Bremner [Sun, 17 Jul 2011 12:55:50 +0000 (09:55 -0300)]
build-system: remove use of git-buildpackage, dput. Add pristine-tar.

The previous setup was dependent on the git-buildpackage configuration
to find the resulting tar file, and consequently a bit fragile.

We use pristine-tar instead to save a checksum-identical copy of the
tar file. This will also faciliate "non-native" debian packages, if
desired.

dput again depends on the local configuration, and mainly is a bit too
brave for me to do automatically.

13 years agobuild-system: run make clean before testing.
David Bremner [Sun, 17 Jul 2011 12:52:05 +0000 (09:52 -0300)]
build-system: run make clean before testing.

The reasoning is that we might have some error in the build system
that causes something not to be rebuilt; this would potentially have
the tests run on the wrong version of the code.

13 years agobuild-system: replace use of ssh with wget for checking the website
David Bremner [Sun, 3 Jul 2011 18:18:30 +0000 (15:18 -0300)]
build-system: replace use of ssh with wget for checking the website

The idea is to see if the version we are already releasing exists on
the notmuch website. Using wget allows more people to run this target,
and also allows people with ssh access to run it without access to
their keys.

13 years agoversion: bump to 0.6.1
David Bremner [Sun, 17 Jul 2011 13:59:08 +0000 (10:59 -0300)]
version: bump to 0.6.1

13 years agoupdate NEWS and debian/changelog for 0.6.1
David Bremner [Sun, 17 Jul 2011 13:58:15 +0000 (10:58 -0300)]
update NEWS and debian/changelog for 0.6.1

13 years agodebian: use a non-native version number.
David Bremner [Sun, 17 Jul 2011 13:42:53 +0000 (10:42 -0300)]
debian: use a non-native version number.

There is concensus to use non-native version number for updates that
contain only Debian changes. Unfortunately changing back and forth
between native and non-native packages has the potential for
confusion, since the archive will end up with notmuch-0.x.tar.gz and
notmuch-0.x.orig.tar.gz. So we use non-native numbering from the
beginning.

13 years agodebian: add (demangled) Xapian exception typeinfo symbols to libnotmuch1.symbols
David Bremner [Sat, 16 Jul 2011 19:49:45 +0000 (16:49 -0300)]
debian: add (demangled) Xapian exception typeinfo symbols to libnotmuch1.symbols

These are exported (again) by the library to prevent problems with
catching exceptions.

13 years agolibnotmuch: export Xapian typeinfo symbols
David Bremner [Sat, 16 Jul 2011 18:59:44 +0000 (15:59 -0300)]
libnotmuch: export Xapian typeinfo symbols

The lack of such exporting seems to cause problems catching
exceptions, as suggested by

    http://gcc.gnu.org/wiki/Visibility

This manifested in the symbol-hiding test failing when notmuch was
compile with gcc 4.4.5. On i386, this further manifested as notmuch
new failing to run (crashing with an uncaught exception on first run).

13 years agovim: fix citation/signature fold lengths
Jason Woofenden [Mon, 11 Jul 2011 05:40:10 +0000 (01:40 -0400)]
vim: fix citation/signature fold lengths

Before they'd often miss the last line

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
13 years agovim: fix (hack) cig/cit parsing within multipart/*
Jason Woofenden [Mon, 11 Jul 2011 05:40:09 +0000 (01:40 -0400)]
vim: fix (hack) cig/cit parsing within multipart/*

The vim front-end isn't written to handle nested parts.

This patch doesn't change that, it just changes the code to pretend that
multipart/* sections end immediately. This makes the parsing code think that
all sections are top-level, and are thus parsed well enough.

The lovely result of this is that citation folds and signature folds now work
in text/plain parts that are within multipart/* sections. Also, all mime
section starts are now shown correctly (before some were not parsed and showed
the ugly ^L and an ID and so on from notmuch.)

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
13 years agovim: fix on-screen instructions for show-signature
Jason Woofenden [Mon, 11 Jul 2011 05:40:08 +0000 (01:40 -0400)]
vim: fix on-screen instructions for show-signature

Also change a passed parameter to be consistent with the current binding. This
parameter appears to be unused.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
13 years agovim: fix from list reformatting in search view
Jason Woofenden [Mon, 11 Jul 2011 05:40:07 +0000 (01:40 -0400)]
vim: fix from list reformatting in search view

This patch rewrites the reformatting of the from list so it shows full
capitalized names when available (without truncating them as the old code did)
and removes the pipe characters that appear between some names.

The old code appears to assume from list (the list of senders in the thread)
coming from notmuch would be e-mail addresses, but in this version it is mostly
full names. Also in this version, the names are sometimes separated by pipe
instead of comma.

For consistency with old versions, names are still truncated at the first
period. Perhaps they shouldn't be though.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
13 years agovim: fix space key: now archives (did opposite)
Jason Woofenden [Mon, 11 Jul 2011 05:40:06 +0000 (01:40 -0400)]
vim: fix space key: now archives (did opposite)

In vim, in the message view, space is supposed to remove the "unread" and
"inbox" tags, but was sometimes adding them instead.

This patch assures that they are always removed by this binding.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
13 years agovim: use the full path for sendmail
Uwe Kleine-König [Sun, 10 Jul 2011 19:55:56 +0000 (21:55 +0200)]
vim: use the full path for sendmail

... as /usr/sbin isn't usually in user's PATH.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
13 years agovim: skip trailing slash for g:notmuch_compose_temp_file_dir
Uwe Kleine-König [Sun, 10 Jul 2011 19:42:41 +0000 (21:42 +0200)]
vim: skip trailing slash for g:notmuch_compose_temp_file_dir

With the trailing slash I get

Error detected while processing function <SNR>10_NM_new_mail..<SNR>10_NM_cmd_compose..<SNR>10_NM_newComposeBuffer..<SNR>10_NM_newFileBuffer:
line    3:
E739: Cannot create directory: /home/ukleinek/.notmuch/compose/

when hitting 'm' to compose a new mail. strace shows:

stat("/home/ukleinek/.notmuch/compose/", 0x7fffee314a10) = -1 ENOENT (No such file or directory)
stat("/home/ukleinek/.notmuch/compose/", 0x7fffee314e30) = -1 ENOENT (No such file or directory)
stat("/home/ukleinek/.notmuch/compose", 0x7fffee315270) = -1 ENOENT (No such file or directory)
stat("/home/ukleinek/.notmuch", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
mkdir("/home/ukleinek/.notmuch/compose", 0755) = 0
mkdir("/home/ukleinek/.notmuch/compose/", 0755) = -1 EEXIST (File exists)

so it seems vim's mkdir() isn't able to handle a trailing slash.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
13 years agovim: fix documentation that mailx isn't used anymore
Uwe Kleine-König [Sun, 10 Jul 2011 18:52:27 +0000 (20:52 +0200)]
vim: fix documentation that mailx isn't used anymore

Since
e7899b0 (vim: use sendmail directly)
notmuch-vim uses sendmail directly.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
13 years agopython: represent message tags as unicode instances
Sebastian Spaeth [Mon, 11 Jul 2011 13:02:12 +0000 (15:02 +0200)]
python: represent message tags as unicode instances

Rather than returning simply strings and having to guess their encoding,
return explicit unicode() strings for the tags. Xapian stores UTF8, so
we know that they come as UTF8 encoded string.

Note: I tried to directly use the c_wchar_p type of the ctypes library
which translates directly into an unicode type, but that did not work
out so well, so we take c_char_p and .decode() them manually.

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
13 years agopython: Encode query string as a utf-8 byte array
Sebastian Spaeth [Mon, 11 Jul 2011 09:39:42 +0000 (11:39 +0200)]
python: Encode query string as a utf-8 byte array

If we pass in an unicode instance as query string, we would probably get
weird behavior (and indeed do so, see mail
id:"20110707113700.GA16347@megatron"). If a unicode instance is passed
in, make sure we encode it properly to an utf-8 encoded byte string.

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
13 years agoMerge commit '0.6'
David Bremner [Sun, 10 Jul 2011 19:50:09 +0000 (16:50 -0300)]
Merge commit '0.6'

13 years agodebian: update changelog for strict libnotmuch dependency
David Bremner [Sun, 10 Jul 2011 12:35:00 +0000 (09:35 -0300)]
debian: update changelog for strict libnotmuch dependency

13 years agodebian: strictly depend on the same version of libnotmuch
Uwe Kleine-König [Sat, 9 Jul 2011 19:17:09 +0000 (21:17 +0200)]
debian: strictly depend on the same version of libnotmuch

It took quite some time to debug why folder: searches didn't work for me
though I had notmuch 0.6~rc1 installed. amdragon in #notmuch found out
that I still had libnotmuch1 0.5+nmu3 installed.

To prevent the same problem in the future let notmuch depend on the same
version of libnotmuch1.

Reviewed-By: David Bremner <david@tethera.net>
  The underlying issue is that the libnotmuch interface is not
  entirely captured by the set of exported symbols. In particular the
  query syntax can change without being visible to the linker at all.

13 years agopython: Fix Database().needs_upgrade()
Sebastian Spaeth [Fri, 8 Jul 2011 20:47:06 +0000 (22:47 +0200)]
python: Fix Database().needs_upgrade()

A stupid typo was preventing this from ever working and it was not
detected until now. Patrick noted the typo and proposed the fix in mail
id:"20110704203926.GA20238@brick.lan".

Patch-by: Patrick Totzke <patricktotzke@googlemail.com>
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
13 years agodebian: start new changelog stanza for post 0.6 bugfix release
David Bremner [Fri, 8 Jul 2011 01:39:33 +0000 (22:39 -0300)]
debian: start new changelog stanza for post 0.6 bugfix release

The version numbering scheme of n.n.n is chosen so as not to confuse
tools that rely on the presence of a dash to detect non-native
packages.

13 years agodebian: install README.Debian files for notmuch-vim and notmuch-emacs.
David Bremner [Fri, 8 Jul 2011 01:36:04 +0000 (22:36 -0300)]
debian: install README.Debian files for notmuch-vim and notmuch-emacs.

The notmuch-vim README.Debian in particular is quite important since
it discussions the need to install the package with vim-addons

13 years agoUse POSIX sed invocation
Robin Green [Sun, 3 Jul 2011 09:18:17 +0000 (10:18 +0100)]
Use POSIX sed invocation

Fixes broken build on DragonFly BSD

Signed-off-by: Robin Green <greenrd@greenrd.org>
13 years agoversion: bump to 0.6
David Bremner [Fri, 1 Jul 2011 18:12:23 +0000 (15:12 -0300)]
version: bump to 0.6

The release machinery in the build system depends on this file
being correct.
(cherry picked from commit 6bd02fb4dbee9e0fc372661af573a2ac380fed8a)

13 years agoNEWS: Update for release 0.6
David Bremner [Fri, 1 Jul 2011 16:59:15 +0000 (13:59 -0300)]
NEWS: Update for release 0.6

Fix some typos, add some notes on python bindings, "improve" the folder searching
description, expand the discussion of crypto changes.

This includes the changes from
id:"1309541202-4938-1-git-send-email-dmitry.kurochkin@gmail.com"

Thanks to Sebastian, Austin, and Uwe, Dmitry for the editing help.
(cherry picked from commit 74d00bb0e847a1aa785b9cae2e8242a7789bf8b3)

13 years agodebian: add changelog stanza for release 0.6, install upstream docs referred to.
David Bremner [Fri, 1 Jul 2011 14:48:01 +0000 (11:48 -0300)]
debian: add changelog stanza for release 0.6, install upstream docs referred to.

This perhaps breaks the "one thing at a time rule", but seems better
than leaving the changelog pointing to nothing.
(cherry picked from commit 8c5129bb510b9f4f7acc9752cc61a457eceb6f01)

13 years agoversion: bump to 0.6 0.6
David Bremner [Fri, 1 Jul 2011 18:12:23 +0000 (15:12 -0300)]
version: bump to 0.6

The release machinery in the build system depends on this file
being correct.

13 years agoNEWS: Update for release 0.6
David Bremner [Fri, 1 Jul 2011 16:59:15 +0000 (13:59 -0300)]
NEWS: Update for release 0.6

Fix some typos, add some notes on python bindings, "improve" the folder searching
description, expand the discussion of crypto changes.

This includes the changes from
id:"1309541202-4938-1-git-send-email-dmitry.kurochkin@gmail.com"

Thanks to Sebastian, Austin, and Uwe, Dmitry for the editing help.

13 years agodebian: add changelog stanza for release 0.6, install upstream docs referred to.
David Bremner [Fri, 1 Jul 2011 14:48:01 +0000 (11:48 -0300)]
debian: add changelog stanza for release 0.6, install upstream docs referred to.

This perhaps breaks the "one thing at a time rule", but seems better
than leaving the changelog pointing to nothing.

13 years agodebian: move vim directory creation to notmuch-vim binary package
David Bremner [Thu, 30 Jun 2011 14:38:28 +0000 (11:38 -0300)]
debian: move vim directory creation to notmuch-vim binary package

This step was missed during the package split of notmuch to notmuch,
notmuch-emacs, and notmuch-vim.

It seems mostly harmless in this case, but it is silly for non-vim
users to have those directories.
(cherry picked from commit 4b5875d81ef80dd7138e178f59ac67f66d5fe0ab)

13 years agoNEWS: Add notes for (imminent) notmuch 0.6 release
Carl Worth [Fri, 1 Jul 2011 10:14:03 +0000 (03:14 -0700)]
NEWS: Add notes for (imminent) notmuch 0.6 release

By skimming through "git log 0.5..origin/release" late at
night. Hopefully everything here is accurate.
(cherry picked from commit d173069ad9cf042458f16af00729867cb13bb3b7)

13 years agoemacs: Fix to unconditionally display subject changes in collapsed thread view
Carl Worth [Fri, 1 Jul 2011 08:44:39 +0000 (01:44 -0700)]
emacs: Fix to unconditionally display subject changes in collapsed thread view

The feature to show subject changes in the collapsed thread view was
originally added (8ab433607) with an option
(notmuch-show-always-show-subject) to display the subject
for all messages, even when there was no change.

The subsequent commit (4f04d273) changed the sense of the test (or to
and) and the name of the controlling variable
(notmuch-show-elide-same-subject).

But this commit is broken in a few ways:

  1. The original definition of notmuch-show-always-show-subject was
     left around

     But the variable isn't actually used in the code at all, so it
     just adds clutter and confusion to the customization interface.

  2. The name and description of the controlling variable doesn't
     match the implementation

     The name suggests that setting the variable to t will cause
     repeated subjects to be elided, (suggesting that when it is nil
     all subjects will be shown).

     However, when the variable is nil, no subjects are shown. So a
     correct name for the variable in this sense would be
     notmuch-show-subject-changes.

Showing subject changes is a useful feature, and should be on by
default. (We don't want to bury generally useful features behind
customizations that users have to find).

Rather than fixing the name of the variable and changing its default
value, here we remove the condition entirely, such that the feature is
enabled unconditionally.

So both the currently-used variable and the stale definition of the
formerly-used are removed.

Also, the one relevant test-suite result is updated, (showing the
intial subject of a collapsed thread, and no subject display for later
messages that do not change the subject).
(cherry picked from commit 580de27177de5cd6c5cbc9cc3759ce320216dd5b)

13 years agodebian: move vim directory creation to notmuch-vim binary package
David Bremner [Thu, 30 Jun 2011 14:38:28 +0000 (11:38 -0300)]
debian: move vim directory creation to notmuch-vim binary package

This step was missed during the package split of notmuch to notmuch,
notmuch-emacs, and notmuch-vim.

It seems mostly harmless in this case, but it is silly for non-vim
users to have those directories.

13 years agoNEWS: Add notes for (imminent) notmuch 0.6 release
Carl Worth [Fri, 1 Jul 2011 10:14:03 +0000 (03:14 -0700)]
NEWS: Add notes for (imminent) notmuch 0.6 release

By skimming through "git log 0.5..origin/release" late at
night. Hopefully everything here is accurate.

13 years agoemacs: Fix to unconditionally display subject changes in collapsed thread view
Carl Worth [Fri, 1 Jul 2011 08:44:39 +0000 (01:44 -0700)]
emacs: Fix to unconditionally display subject changes in collapsed thread view

The feature to show subject changes in the collapsed thread view was
originally added (8ab433607) with an option
(notmuch-show-always-show-subject) to display the subject
for all messages, even when there was no change.

The subsequent commit (4f04d273) changed the sense of the test (or to
and) and the name of the controlling variable
(notmuch-show-elide-same-subject).

But this commit is broken in a few ways:

  1. The original definition of notmuch-show-always-show-subject was
     left around

     But the variable isn't actually used in the code at all, so it
     just adds clutter and confusion to the customization interface.

  2. The name and description of the controlling variable doesn't
     match the implementation

     The name suggests that setting the variable to t will cause
     repeated subjects to be elided, (suggesting that when it is nil
     all subjects will be shown).

     However, when the variable is nil, no subjects are shown. So a
     correct name for the variable in this sense would be
     notmuch-show-subject-changes.

Showing subject changes is a useful feature, and should be on by
default. (We don't want to bury generally useful features behind
customizations that users have to find).

Rather than fixing the name of the variable and changing its default
value, here we remove the condition entirely, such that the feature is
enabled unconditionally.

So both the currently-used variable and the stale definition of the
formerly-used are removed.

Also, the one relevant test-suite result is updated, (showing the
intial subject of a collapsed thread, and no subject display for later
messages that do not change the subject).

13 years agodebian: changelog stanza for first "official" release candidate 0.6rc1
David Bremner [Thu, 30 Jun 2011 13:04:57 +0000 (10:04 -0300)]
debian: changelog stanza for first "official" release candidate

The last upload to experimental was really a release candidate too.
Switch versioning to ~rc1 as counting commits is confusing when
building from the release branch.
(cherry picked from commit 117852a5f1269e77a7f76c53236220a9ec89eba6)

13 years agodebian: changelog stanza for first "official" release candidate
David Bremner [Thu, 30 Jun 2011 13:04:57 +0000 (10:04 -0300)]
debian: changelog stanza for first "official" release candidate

The last upload to experimental was really a release candidate too.
Switch versioning to ~rc1 as counting commits is confusing when
building from the release branch.

13 years agodebian: don't install zsh completion files into /usr/share/zsh
David Bremner [Thu, 30 Jun 2011 11:29:07 +0000 (08:29 -0300)]
debian: don't install zsh completion files into /usr/share/zsh

as of version 4.3.12, perhaps earlier, the Debian zsh package now
ships /usr/share/zsh/functions/Completion/Unix/_notmuch, so we
shouldn't install that ourselves anymore.

My understanding is that letting zsh ship the completion scripts is
the standard thing to do.

The script is still shipped in /usr/share/doc/notmuch/examples
(cherry picked from commit 0a0f5f1bbe4bf256a14dee0ab2af3065a251a72c)

13 years agodebian: don't install zsh completion files into /usr/share/zsh
David Bremner [Thu, 30 Jun 2011 11:29:07 +0000 (08:29 -0300)]
debian: don't install zsh completion files into /usr/share/zsh

as of version 4.3.12, perhaps earlier, the Debian zsh package now
ships /usr/share/zsh/functions/Completion/Unix/_notmuch, so we
shouldn't install that ourselves anymore.

My understanding is that letting zsh ship the completion scripts is
the standard thing to do.

The script is still shipped in /usr/share/doc/notmuch/examples

13 years agopython: Do not implicitely call maildir_flags_to_tags etc
Sebastian Spaeth [Fri, 24 Jun 2011 06:44:06 +0000 (08:44 +0200)]
python: Do not implicitely call maildir_flags_to_tags etc

In order to remain consistent with the underlying C API, we do not
automatically synchronize notmuch tags and maildir flags anymore.

The underlying functions Message.maildir_flags_to_tags and
Message.tags_to_maildir_flags still exist and are available to the user.

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
(cherry picked from commit e59eaa5ddd2c23742c95e2acd34673b58ea34d2d)

13 years agodebian/changelog: Add note that notmuch-vim description is in (bug #631974)
Carl Worth [Wed, 29 Jun 2011 21:08:04 +0000 (14:08 -0700)]
debian/changelog: Add note that notmuch-vim description is in (bug #631974)

This note will automatically cause the bug entry to be closed as fixed when
the next package (including this change) is uploaded.
(cherry picked from commit 04b9ffa56f54976f6a3324a3673915a036646ea6)

13 years agoFix folder: coherence issue
Mark Anderson [Wed, 29 Jun 2011 20:04:45 +0000 (14:04 -0600)]
Fix folder: coherence issue

Add removal of all ZXFOLDER terms to removal of all XFOLDER terms for
each message filename removal.

The existing filename-list reindexing will put all the needed terms
back in.  Test search-folder-coherence now passes.

Signed-off-by:Mark Anderson <ma.skies@gmail.com>
(cherry picked from commit 8a856e5c38b79359e4fbf9e27f58b1fe00c1e18a)

13 years agotest: Use increment_mtime rather than sleep
Carl Worth [Wed, 29 Jun 2011 21:11:38 +0000 (14:11 -0700)]
test: Use increment_mtime rather than sleep

The sleep was to force the directory's mtime to advance between the
previous notmuch new and the subsequent rm;notmuch new.

The current convention is to use the existing increment_mtime function
for this purpose, (which avoids the test suite being slowed down by
calls to sleep).

Thanks to Austin Clements for noticing this undesired sleep.
(cherry picked from commit 55a78d5dbd96b80939458d9d6cc8a536b1befa87)

13 years agotest:Folder tags shouldn't match after removal of file in given folder
Mark Anderson [Mon, 27 Jun 2011 17:12:24 +0000 (11:12 -0600)]
test:Folder tags shouldn't match after removal of file in given folder

Test for bug.  Current stemming support for notmuch adds extra terms
to the DB which aren't removed when the file renames are detected.

When folder tags are added to a message, Xapian terms for both XFOLDER
and ZXFOLDER are generated.  When one of the filenames are
renamed/removed, only the XFOLDER tags are removed, leaving it possible
for a match on a folder: tag that was previously but is no longer a
match in the maildir.
(cherry picked from commit 86e0baeb6df5509393832488c0de3520a1a5bdcb)

13 years agosearch --output=files: Output all filenames for each matching message
Mark Anderson [Fri, 24 Jun 2011 23:26:55 +0000 (17:26 -0600)]
search --output=files: Output all filenames for each matching message

Messages in the database can have multiple files associated with a
single message-id, but until now only one filename for each message
has been reported by "notmuch search --output=files"

Signed-off-by: Mark Anderson <ma.skies@gmail.com>
(cherry picked from commit d752509abfd7697d2f8a1c5be6f96f0df4f0299d)

13 years agonew: Improved workaround for mistaken new directories
Austin Clements [Wed, 29 Jun 2011 23:00:01 +0000 (19:00 -0400)]
new: Improved workaround for mistaken new directories

Currently, notmuch new assumes any directory with a database mtime of
0 is new, but we don't set the mtime until after processing messages
and subdirectories in that directory.  Hence, anything that prevents
the mtime update (such as an interruption or the wall-clock logic
introduced in 8c39e8d6) will cause the next notmuch new to think the
directory is still new.

We work around this by setting the new directory's database mtime to
-1 before scanning anything in the new directory.  This also obviates
the need for the workaround used in 8c39e8d6.

13 years agotest: document test_expect_equal_file
Jameson Graef Rollins [Wed, 29 Jun 2011 17:06:32 +0000 (10:06 -0700)]
test: document test_expect_equal_file

This test was not properly documented when it was originally added (my
bad).

13 years agolib/Makefile.local: remove leftover debugging output.
David Bremner [Wed, 29 Jun 2011 10:42:02 +0000 (07:42 -0300)]
lib/Makefile.local: remove leftover debugging output.

The removed "echo $(libnotmuch_modules)" was strictly for debugging.

Thanks to Austin Clements for the hint.

13 years agotest: Nix increment_mtime.
Austin Clements [Wed, 29 Jun 2011 07:10:55 +0000 (03:10 -0400)]
test: Nix increment_mtime.

With the fix for the mtime race, this workaround is no longer
necessary.

13 years agonew: Don't update DB mtime if FS mtime equals wall-clock time.
Austin Clements [Wed, 29 Jun 2011 07:10:54 +0000 (03:10 -0400)]
new: Don't update DB mtime if FS mtime equals wall-clock time.

This fixes a race where multiple message deliveries in the same second
with an intervening notmuch new could result in messages being ignored
by notmuch (at least, until a later delivery forced a rescan).
Because mtimes only have second granularity, later deliveries in the
same second won't change the directory mtime, and hence won't trigger
notmuch new to rescan the directory.  This situation can only occur
when notmuch new is being run at the same second as the directory's
modification time, so simply don't update the saved mtime in this
case.

This very race happens all over the test suite, and is currently
compensated for with increment_mtime (and, occasionally, luck).  With
this change, increment_mtime becomes unnecessary.

13 years agotest: revert non-intentional changes introduced in eb4cf465
Pieter Praet [Wed, 29 Jun 2011 20:23:47 +0000 (22:23 +0200)]
test: revert non-intentional changes introduced in eb4cf465

eb4cf465 introduces changes which weren't part of the submitted
patch (id:"87liwlip2j.fsf@gmail.com"), presumably made during
resolving merge conflicts.

The first one causes the title of a test to be printed a second time,
in place of the correct title:

  PASS   Message with .. in Message-Id:
  PASS   Message with .. in Message-Id:

instead of:

  PASS   Message with .. in Message-Id:
  PASS   Sending a message via (fake) SMTP

The second one is simply the insertion of a line break, so no harm there.

This commit reverts both changes, as they were clearly accidental.

Signed-off-by: Pieter Praet <pieter@praet.org>
13 years agoFix folder: coherence issue
Mark Anderson [Wed, 29 Jun 2011 20:04:45 +0000 (14:04 -0600)]
Fix folder: coherence issue

Add removal of all ZXFOLDER terms to removal of all XFOLDER terms for
each message filename removal.

The existing filename-list reindexing will put all the needed terms
back in.  Test search-folder-coherence now passes.

Signed-off-by:Mark Anderson <ma.skies@gmail.com>

13 years agotest: Use increment_mtime rather than sleep
Carl Worth [Wed, 29 Jun 2011 21:11:38 +0000 (14:11 -0700)]
test: Use increment_mtime rather than sleep

The sleep was to force the directory's mtime to advance between the
previous notmuch new and the subsequent rm;notmuch new.

The current convention is to use the existing increment_mtime function
for this purpose, (which avoids the test suite being slowed down by
calls to sleep).

Thanks to Austin Clements for noticing this undesired sleep.

13 years agotest:Folder tags shouldn't match after removal of file in given folder
Mark Anderson [Mon, 27 Jun 2011 17:12:24 +0000 (11:12 -0600)]
test:Folder tags shouldn't match after removal of file in given folder

Test for bug.  Current stemming support for notmuch adds extra terms
to the DB which aren't removed when the file renames are detected.

When folder tags are added to a message, Xapian terms for both XFOLDER
and ZXFOLDER are generated.  When one of the filenames are
renamed/removed, only the XFOLDER tags are removed, leaving it possible
for a match on a folder: tag that was previously but is no longer a
match in the maildir.

13 years agodebian/changelog: Add note that notmuch-vim description is in (bug #631974)
Carl Worth [Wed, 29 Jun 2011 21:08:04 +0000 (14:08 -0700)]
debian/changelog: Add note that notmuch-vim description is in (bug #631974)

This note will automatically cause the bug entry to be closed as fixed when
the next package (including this change) is uploaded.

13 years agoTODO: Add note to fix race condition with directory mtime.
Carl Worth [Wed, 29 Jun 2011 21:07:06 +0000 (14:07 -0700)]
TODO: Add note to fix race condition with directory mtime.

I recently discussed fixing this with Austin, but want to record it
here just in case we don't remember to fix it right away.

13 years agotest: fix tests after notmuch show output changes related to filenames
Dmitry Kurochkin [Sat, 28 May 2011 22:03:48 +0000 (02:03 +0400)]
test: fix tests after notmuch show output changes related to filenames

Adding the filename propery alongside ID and Content-type.

This makes the test suite pass again after the recent change.

13 years agoAdd part filename and content-id in notmuch show output if available.
Dmitry Kurochkin [Sat, 28 May 2011 22:03:47 +0000 (02:03 +0400)]
Add part filename and content-id in notmuch show output if available.

Before the change, notmuch show output had filename only for
parts with "Content-Disposition: attachment".  But parts with
inline disposition may have filename as well.

The patch makes notmuch show always output filename if available,
independent of Content-Disposition.  Both JSON and text output
formats are changed.

Also, the patch adds Content-id to text output format of notmuch
show.

The main goal of these changes is to have filenames on Emacs
buttons for inline attachments.  In particular, this is very
helpful for inline patches.

Note: text format changes may require updates in clients that use
it.  The changes are:

* text part header format changed from:

    ^Lpart{ ID: 2, Content-type: text/x-diff

  to:

    ^Lpart{ ID: 2, Filename: cool-feature.patch, Content-type: text/x-diff

* attachment format changed from:

    ^Lattachment{ ID: 4, Content-type: application/octet-stream
    Attachment: data.tar.bz2 (application/octet-stream)
    Non-text part: application/octet-stream
    ^Lattachment}

  to:

    ^Lattachment{ ID: 4, Filename: data.tar.bz2, Content-type: application/octet-stream
    Non-text part: application/octet-stream
    ^Lattachment}

13 years agotest: use emacsclient(1) for Emacs tests
Dmitry Kurochkin [Tue, 28 Jun 2011 04:56:17 +0000 (08:56 +0400)]
test: use emacsclient(1) for Emacs tests

Before the change, every Emacs test ran in a separate Emacs
instance.  Starting Emacs many times wastes considerable time and
it gets worse as the test suite grows.  The patch solves this by
using a single Emacs server and emacsclient(1) to run multiple
tests.  Emacs server is started on the first test_emacs call and
stopped when test_done is called.  We take care not to leave
orphan Emacs processes behind when test is terminated by whatever
reason: Emacs server runs a watchdog that periodically checks
that the test is still running.

Some tests need to provide user input.  Before the change, this
was done using echo(1) to Emacs stdin.  This no longer works and
instead `standard-input' variable is set accordingly to make
`read' return the appropriate string.

13 years agotest: Increment mtime when delivering a message with emacs_deliver_message
Carl Worth [Wed, 29 Jun 2011 00:06:15 +0000 (17:06 -0700)]
test: Increment mtime when delivering a message with emacs_deliver_message

Without this, mail messages delivered by emacs_deliver_message might
not be seen by the next invocation of "notmuch new", (which can lead
to test-suite failures if emacs_deliver_message is fast enough).

13 years agotest:Improve test behaviors when --root is used
Mark Anderson [Tue, 28 Jun 2011 22:11:32 +0000 (16:11 -0600)]
test:Improve test behaviors when --root is used

Change add_email_corpus, emacs_deliver_message and tests to use
$TEST_DIRECTORY instead of '..'.

This improves the behavior of the usage of --root=<dir>, as the
assumption of what '..' means will usually be incorrect.

Document -root option in README and update valgrind to work with
-root.

13 years agotest: generate run_emacs script once on test startup
Dmitry Kurochkin [Tue, 28 Jun 2011 04:45:10 +0000 (08:45 +0400)]
test: generate run_emacs script once on test startup

Instead of generating auxiliary run_emacs script every time
test_emacs is run, do it once in the beginning of the test.

Also, use absolute paths in the script to make it more robust.

13 years agotest: set variables using `let' instead of `setq' in Emacs tests
Dmitry Kurochkin [Tue, 28 Jun 2011 04:45:09 +0000 (08:45 +0400)]
test: set variables using `let' instead of `setq' in Emacs tests

Using `setq' for setting variables in Emacs tests affect other
tests that may run in the same Emacs environment.  Currently it
works because each test is run in a separate Emacs instance.  But
in the future multiple tests will run in a single Emacs instance.
The patch changes all variables to use `let', so the scope of the
change is limited to a single test.

13 years agotest: use emacs_deliver_message in Emacs SMTP send test
Dmitry Kurochkin [Tue, 28 Jun 2011 04:45:08 +0000 (08:45 +0400)]
test: use emacs_deliver_message in Emacs SMTP send test

Minor changes to expected results of other Emacs tests were
needed because the message Date header changed.

13 years agotest: remove some sed(1) calls in Emacs tests
Dmitry Kurochkin [Tue, 28 Jun 2011 04:45:07 +0000 (08:45 +0400)]
test: remove some sed(1) calls in Emacs tests

Few Emacs tests used sed(1) to remove unexpected output in the
beginning to avoid getting confused by messages such as "Parsing
/home/cworth/.mailrc... done".  This is no longer needed since
tests are run in a temporary home directory instead of the user's
one.  So remove these sed(1) calls.

13 years agotest: save buffer content to file instead of printing it in Emacs tests
Dmitry Kurochkin [Tue, 28 Jun 2011 04:45:06 +0000 (08:45 +0400)]
test: save buffer content to file instead of printing it in Emacs tests

Before the change, the common Emacs test scheme was to print
buffer content to stdout and redirect it to a file or capture it
in a shell variable.  This does not work if we switch to using
emacsclient(1) for running the tests, because you can not print
to the stdout in this case. (Actually, you can print to stdout
from Emacs server, but you can not capture the output on
emacsclient(1)).

The patch introduces new Emacs test auxiliary functions:
`test-output' and `test-visible-output'.  These functions are
used to save buffer content to a file directly from Emacs.  For
most tests the changes are trivial, because Emacs stdout output
was redirected to a file anyway.  But some tests captured the
output in a shell variable and compare it with the expected
output using test_expect_equal.  These tests are changed to use
files and test_expect_equal_file instead.

Note: even if we do not switch Emacs tests to emacsclient(1), the
patch makes tests cleaner and is an improvement.

13 years agotest: wrap and indent test_emacs calls
Dmitry Kurochkin [Tue, 28 Jun 2011 04:45:05 +0000 (08:45 +0400)]
test: wrap and indent test_emacs calls

Most test_emacs calls have long arguments that consist of many
expressions.  Putting them on a single line makes it hard to read
and produces poor diff when they are changed.  The patch puts
every expression in test_emacs calls on a separate line.

13 years agotest: cleanup test_emacs
Dmitry Kurochkin [Tue, 28 Jun 2011 04:45:04 +0000 (08:45 +0400)]
test: cleanup test_emacs

Move auxiliary function definition and configuration from command
line to test-lib.el.

13 years agotest: do not set `message-signature' in test_emacs
Dmitry Kurochkin [Tue, 28 Jun 2011 04:45:03 +0000 (08:45 +0400)]
test: do not set `message-signature' in test_emacs

It is no longer needed since tests are run in a temporary home
directory instead of the user's one.

13 years agotest: fix argument order of test_expect_equal_file in few tests
Dmitry Kurochkin [Tue, 28 Jun 2011 04:45:02 +0000 (08:45 +0400)]
test: fix argument order of test_expect_equal_file in few tests

Few Emacs tests had test_expect_equal_file arguments in the wrong
order: the first argument should be the test output and the
second one should be the expected.

13 years agoTODO: Clarify note about changing the way the emacs '*' command works.
Carl Worth [Tue, 28 Jun 2011 19:49:31 +0000 (12:49 -0700)]
TODO: Clarify note about changing the way the emacs '*' command works.

Additional detail is available in this mail message:

id:8739itagad.fsf@yoom.home.cworth.org

13 years agolibnotmuch: build symbols list without relying on gcc -aux-info.
David Bremner [Mon, 27 Jun 2011 01:08:52 +0000 (22:08 -0300)]
libnotmuch: build symbols list without relying on gcc -aux-info.

Carl reports "gcc -aux-info notmuch.aux lib/notmuch.h" does not
generate notmuch.aux for him with Debian gcc 4.6.0-8. A small
modification of the original sed regular expression allows us to work
directly from lib/notmuch.h, rather than preprocessing with gcc.

As with most such simple regex based "parsing", this is quite
sensitive to the input format, and needs that each symbol to be
exported from libnotmuch should

- start with "notmuch_"
- be the first non-whitespace token on the line
- be followed by an open parenthesis.

(Cherry-picked from 51b7ab69687, with conflicts resolved by db)

13 years ago.gitignore: Ignore the notmuch.sym file.
Carl Worth [Tue, 28 Jun 2011 19:21:41 +0000 (12:21 -0700)]
.gitignore: Ignore the notmuch.sym file.

This is a generated file, so will not be under git control.

13 years agosearch --output=files: Output all filenames for each matching message
Mark Anderson [Fri, 24 Jun 2011 23:26:55 +0000 (17:26 -0600)]
search --output=files: Output all filenames for each matching message

Messages in the database can have multiple files associated with a
single message-id, but until now only one filename for each message
has been reported by "notmuch search --output=files"

Signed-off-by: Mark Anderson <ma.skies@gmail.com>
13 years agotest:Expect multiple filenames for message with multiple files
Mark Anderson [Fri, 24 Jun 2011 22:36:40 +0000 (16:36 -0600)]
test:Expect multiple filenames for message with multiple files

Update the test mail corpus to have two files with the same content to
expose the bug where a single message with multiple filenames only
reports a single filename.

Update expected results for search --output=files to match new
behavior for multiple files corresponding to a single message

Signed-off-by: Mark Anderson <ma.skies@gmail.com>
13 years agoMakefile: Make emacs compilation depend on global dependencies.
Carl Worth [Tue, 28 Jun 2011 18:42:29 +0000 (11:42 -0700)]
Makefile: Make emacs compilation depend on global dependencies.

We call these "global_deps" for a reason, after all!

Without this, emacs compilation would proceed even if the configure script
failed, (such as for a missing dependency). That's undesirable as it can
cause the helpful error messages from the configure failure to scroll away.

13 years agolibnotmuch: build symbols list without relying on gcc -aux-info.
David Bremner [Mon, 27 Jun 2011 01:08:52 +0000 (22:08 -0300)]
libnotmuch: build symbols list without relying on gcc -aux-info.

Carl reports "gcc -aux-info notmuch.aux lib/notmuch.h" does not
generate notmuch.aux for him with Debian gcc 4.6.0-8. A small
modification of the original sed regular expression allows us to work
directly from lib/notmuch.h, rather than preprocessing with gcc.

As with most such simple regex based "parsing", this is quite
sensitive to the input format, and needs that each symbol to be
exported from libnotmuch should

- start with "notmuch_"
- be the first non-whitespace token on the line
- be followed by an open parenthesis.

13 years agolibnotmuch: fix typos in CLEAN setting, add file
David Bremner [Sat, 25 Jun 2011 12:45:58 +0000 (09:45 -0300)]
libnotmuch: fix typos in CLEAN setting, add file

c0961e6 introduced a missing slash between $(dir)$(LIBNAME) and missing
  $(dir) in front of libnotmuch.a
cdf1c70a created a file $(dir)/notmuch.h.gch and neglected to
  add it to CLEAN

13 years agopython: Do not implicitely call maildir_flags_to_tags etc
Sebastian Spaeth [Fri, 24 Jun 2011 06:44:06 +0000 (08:44 +0200)]
python: Do not implicitely call maildir_flags_to_tags etc

In order to remain consistent with the underlying C API, we do not
automatically synchronize notmuch tags and maildir flags anymore.

The underlying functions Message.maildir_flags_to_tags and
Message.tags_to_maildir_flags still exist and are available to the user.

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
13 years agotest: remove useless test_emacs call from an emacs FCC test
Dmitry Kurochkin [Thu, 23 Jun 2011 23:59:33 +0000 (03:59 +0400)]
test: remove useless test_emacs call from an emacs FCC test

This was inadvertently left over when debugging an early version of
this commit. -Carl Worth <cworth@cworth.org>
(cherry picked from commit 8bf0c1c3deb49d54e86c04826a05f0217a81cf47)

13 years agoFix wrong-type-argument lisp error in `notmuch-fcc-header-setup'
Dmitry Kurochkin [Sat, 28 May 2011 21:51:49 +0000 (14:51 -0700)]
Fix wrong-type-argument lisp error in `notmuch-fcc-header-setup'

This error occurs when `notmuch-fcc-dirs' is set to a list.  The error
was in the `notmuch-fcc-dirs' format check which was changed in an
incompatible way from 0.4 to 0.5.

The fix was extracted from a bigger patch series by David
Edmondson id:"1290682750-30283-2-git-send-email-dme@dme.org".

Signed-off-by: Jameson Graef Rollins <jrollins@finestructure.net>
(cherry picked from commit ce08571428dc784e279b28527f8073a1a05d7c37)

13 years agotest: Test emacs message composing with various values for notmuch-fcc-dirs
Carl Worth [Thu, 23 Jun 2011 22:10:31 +0000 (15:10 -0700)]
test: Test emacs message composing with various values for notmuch-fcc-dirs

We exercise each of the documented values (nil, a string, and a
list). For the list, we test matching a specific entry, matching a
catch-all regular expression, and no match at all (in which case there
is no FCC set).
(cherry picked from commit 76b54f1898e97f6d07d0eaaf04a1772e60a7c48d)

13 years agoMerge remote-tracking branch 'origin/master'
David Bremner [Fri, 24 Jun 2011 00:54:50 +0000 (21:54 -0300)]
Merge remote-tracking branch 'origin/master'

13 years agotest: remove useless test_emacs call from an emacs FCC test
Dmitry Kurochkin [Thu, 23 Jun 2011 23:59:33 +0000 (03:59 +0400)]
test: remove useless test_emacs call from an emacs FCC test

This was inadvertently left over when debugging an early version of
this commit. -Carl Worth <cworth@cworth.org>

13 years agodebian: fix installation of notmuch-vim README
David Bremner [Thu, 23 Jun 2011 23:39:29 +0000 (20:39 -0300)]
debian: fix installation of notmuch-vim README

There was a leftover override, installing it into the wrong package.

13 years agoAdd dir-locals style variables for C++, Elisp, and shell code.
Austin Clements [Fri, 10 Jun 2011 01:28:51 +0000 (21:28 -0400)]
Add dir-locals style variables for C++, Elisp, and shell code.

Also, slightly reformat dir-locals.el so that the settings align and
to make it friendlier for future additions.