Commit graph

4878 commits

Author SHA1 Message Date
Austin Clements
dc64ab6720 lib: Separate all phrases indexed by _notmuch_message_gen_terms
This adds a 100 termpos gap between all phrases indexed by
_notmuch_message_gen_terms.  This fixes a bug where terms from the end
of one header and the beginning of another header could match together
in a single phrase and a separate bug where term positions of
un-prefixed terms overlapped.

This fix only affects newly indexed messages.  Messages that are
already indexed won't benefit from this fix without re-indexing, but
the fix won't make things any worse for existing messages.
2014-06-18 18:03:18 -03:00
Austin Clements
c1805576a0 test: Known-broken test for overlapping/adjacent termpos
This adds two known-broken tests and one working test related to the
term positions assigned to terms from different headers or MIME parts.
The first test fails because we don't create a termpos gap between
different headers.  The second test fails because we don't adjust
termpos at all when indexing multiple parts.
2014-06-18 17:56:52 -03:00
Austin Clements
44327ca86d lib: Index name and address of from/to headers as a phrase
Previously, we indexed the name and address parts of from/to headers
with two calls to _notmuch_message_gen_terms.  In general, this
indicates that these parts are separate phrases.  However, because of
an implementation quirk, the two calls to _notmuch_message_gen_terms
generated adjacent term positions for the prefixed terms, which
happens to be the right thing to do in this case, but the wrong thing
to do for all other calls.  Furthermore, _notmuch_message_gen_terms
produced potentially overlapping term positions for the un-prefixed
copies of the terms, which is simply wrong.

This change indexes both the name and address in a single call to
_notmuch_message_gen_terms, indicating that they should be part of a
single phrase.  This masks the problem with the un-prefixed terms
(fixing the two known-broken tests) and puts us in a position to fix
the unintentionally phrases generated by other calls to
_notmuch_message_gen_terms.
2014-06-18 17:55:14 -03:00
Austin Clements
b547830783 test: Add search tests for combined name/address queries
Two of these are currently known-broken.  We index the name and
address parts in two separate calls to _notmuch_message_gen_terms.
Currently this has the effect of placing the term positions of the
prefixed terms from the second call right after those of the first
call, but screws up the term positions of the non-prefixed terms.
2014-06-18 17:54:05 -03:00
Austin Clements
8a443121c6 test: Fix from/to search test queries
Two of the search tests for "from" and "to" queries were clearly
trying to search for prefixed phrases, but forgot to shell quote the
phrases.  Fix this by quoting them correctly.
2014-06-18 17:53:29 -03:00
David Bremner
9e7bc02530 Merge branch 'release'
still painfully slowly assembling 0.18.1
2014-06-15 15:52:18 -03:00
Tomi Ollila
f0ad36cb7f emacs install: make sure all components to be installed are there
`make install-emacs` will copy $(emacs_sources), $(emacs_images) and
$(emacs_bytecode) to their target directories. $(emacs_bytecode) was
already a prerequisite of make install-emacs as these obviously needed
to be build. Until a while ago all of $(emacs_sources) was available
in the repository, but now it includes `notmuch-version.el` which
is generated. In the future we may have generated emacs images too.
2014-06-15 15:40:51 -03:00
David Bremner
435cd249a0 debian: update notmuch-emacs for emacsen-common 2.0.8
- redo install/remove scripts from new samples
- symlink .el files properly
- add depends instead of conflicts
2014-06-14 08:53:56 -03:00
David Bremner
17e3ef18ae debian: tighten dependency of python packages on libnotmuch.
Using (>= ${source:Version}) allows newer versions of the library with
the same SONAME.
2014-06-14 07:20:56 -03:00
David Bremner
44e6c52c76 Merge branch 'release'
Merge in a few more commits towards 0.18.1
2014-06-13 23:03:49 -03:00
Jani Nikula
0cc0144875 lib: resurrect support for single-message mbox files
This is effectively a revert of

commit 6812136bf5
Author: Jani Nikula <jani@nikula.org>
Date:   Mon Mar 31 00:21:48 2014 +0300

    lib: drop support for single-message mbox files

The intention was to drop support for indexing new single-message mbox
files (and whether that was a good idea in the first place is
arguable). However this inadvertently broke support for reading
headers from previously indexed single-message mbox files, which is
far worse.

Distinguishing between the two cases would require more code than
simply bringing back support for single-message mbox files.
2014-06-13 22:59:04 -03:00
David Bremner
2d722bf032 test: use --quick when starting emacs.
At least in emacs24, this removes the "site-lisp" directories from the
load path in addition to enforcing --no-site-lisp --no-init-file.

This works around a slightly mysterious bug on Debian that causes
test-lib.el not to load when there is cl-lib.el(c) in some site-lisp
directory.  It should be harmless in general since we really don't
want to load any files from addon packages to emacs.
2014-06-13 22:55:14 -03:00
David Bremner
fe8cd90f97 build: add dataclean
It turns out to be inconvenient to delete the downloaded datafiles with
distclean, so I propose a new target which does that instead.

The closest conventional target is 'maintainer-clean'; the difference
here is that having the original source tarball is not enough to
reconstruct these files.
2014-05-28 09:52:10 -03:00
David Bremner
1856574394 build: remove .tar.gz.tmp files in clean
Most people won't see these, but they annoy anyone running release
or pre-release targets.
2014-05-28 09:51:51 -03:00
David Bremner
e7a7943862 build: don't overwrite DISTCLEAN in performance-test
This might have worked once for some fixed order of including
makefiles, but it is clearly wrong now.
2014-05-28 09:51:40 -03:00
David Bremner
94064a6ba2 Merge branch 'release'
A point release is slowly being built on branch release. Merge those
changes into master.
2014-05-28 09:50:32 -03:00
Felipe Contreras
90f9a5e65e build: fix order of rpath
In my system `pkg-config --libs talloc` returns
'Wl,-rpath,/usr/lib -ltalloc' (probably wrongly) which causes the final
LDFLAGS to be something like '-Wl,-rpath,/usr/lib
-Wl,-rpath,/opt/notmuch/lib', which causes the RUNPATH to be
'/usr/lib:/opt/notmuch/lib', so basically defeating the whole purpose of
RUNPATH.

I noticed this when my /opt/notmuch/bin/notmuch (0.17) started updating
the database after I updated the system (which updated the system's
notmuch). This shouldn't happen.

Let's move the RUNPATH flags before other external flags have a chance of
screwing the build.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2014-05-28 09:50:04 -03:00
Amadeusz Żołnowski
175144f6ad Unset html_static_path in Python bindings docs
html_static_path is a kind of source directory and it was set to
destination directory (../html) which caused infinite recursion with
Sphinx 1.2 and above.
2014-05-28 09:46:02 -03:00
W. Trevor King
ebf4aaa0f8 doc/conf.py: Remove _static from html_static_path
Avoid:

  $ make HAVE_SPHINX=1 sphinx-html
  python ./doc/mkdocdeps.py ./doc doc/_build doc/docdeps.mk
  sphinx-build -b html -d doc/_build/doctrees -q ./doc doc/_build/html
  Making output directory...
  WARNING: html_static_path entry '/home/wking/src/notmuch/notmuch/doc/_static' does not exist

because we have no static source in doc/_static.
2014-05-28 09:45:45 -03:00
Mark Walters
83f531ad7e emacs: make sure tagging on an empty query is harmless
Currently notmuch-tag throws a "wrong-type-argument stringp nil" if
passed a nil query-string. Catch this and provide a more useful error
message. This fixes a case in notmuch-tree (if you try to tag when at
the end of the buffer).

Secondly, as pointed out by David (dme)
`notmuch-search-find-stable-query-region' can return the query string
() if there are no messages in the region. This gets passed to notmuch
tag, and due to interactions in the optimize_query code in
notmuch-tag.c becomes, in the case tag-change is -inbox, "( () ) and
(tag:inbox)". This query matches some strange collection of messages
which then get archived. This should probably be fixed, but in any
case make `notmuch-search-find-stable-query-region' return a nil
query-string in this case.

This avoids data-loss (random tag removal) in this case.
2014-05-27 20:40:04 -03:00
David Edmondson
ec02089433 emacs: Correct the documentation for `notmuch-search-line-faces'.
The implementation and documentation for `notmuch-search-line-faces'
disagreed in how elements in the list were merged. Correct the
documentation to match the implementation (that is, the earlier
elements in the list have precedence over later elements).
2014-05-18 06:42:23 +09:00
Wael M. Nasreddine
0629afeb26 ruby: Add wrapper for notmuch_query_count_threads 2014-05-18 06:39:58 +09:00
David Bremner
c67587f003 Merge branch 'release'
bugfix release being built up on release.
2014-05-18 06:37:48 +09:00
David Bremner
a33ec9ce40 test: allow pending break points in atomicity script.
This seems to fix problems with the symbol rename not being defined
at startup on at least OS/X and some Debian Linux architectures.
2014-05-18 06:32:14 +09:00
Charles Celerier
ca34ac1440 test/Makefile.local: Added configured TALLOC_LDFLAGS.
The linking to talloc is hard-coded in the testing Makefile. This patch
causes the linking to talloc to be done according to how TALLOC_LDFLAGS
was configured.

Signed-off-by: Charles Celerier <cceleri@cs.stanford.edu>
2014-05-18 06:31:55 +09:00
David Bremner
f3ee655b49 notmuch-dump: use fsync instead of fdatasync
Since the file size will have changed, there is no performance benefit
to calling fdatasync.  Somewhat surprisingly, using fdatasync
apparently causes portability problems on FreeBSD.
2014-05-18 06:31:15 +09:00
David Bremner
7d81d70042 Merge in a few Debian commits. 2014-05-09 06:38:42 +09:00
David Bremner
f6b54fbcf6 debian: disable atomicity tests on armel.
Another temporary fix for build problems.
2014-05-08 14:28:13 +09:00
David Bremner
8e82a41c90 debian: disable atomicity tests on armhf
In fact a fix for these tests is currently being reviewed, but I want
to roll it together with a few other portability fixes for a point
release.
2014-05-08 08:29:15 +09:00
David Bremner
8ecc7db3f8 notmuch 0.18 release
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQGcBAABCAAGBQJTaJJ/AAoJEPIClx2kp54sl/oL/AqNwjwpLNOgGXgvy1kq4YBi
 OT1Bc+Yd6YqHX+scmH0vUikq9H4eIau3U5ZxynjfwnqjUk/pJC6pMdPifl9N+h4q
 UA5rytRr9Kf3WhoWZ7HEdXssmJtbCYtOdDZ5UeTrEiAVc1LvtOE4XU2ufo3HoC4x
 yEHYYihlZO/at98wxZ3YgQZgnx0U8q2eIYvC/NBexf+HJi1wviNiQBu2MNR+X12k
 7L2HNMMKuYRTLzwsWEcw+HjEQfXtX0GiN4H6K5et9s2sXHD5YUyD4GrPQyX8ORaf
 jn3BT+mqiBjs3zTXa+k2iqtoW7n+1dyNbETjcR3WNDs6PHqFEEY0Tr6DkpeDI9ak
 d67He2kmnxgPJ61S7d6gwsg4fRqmLbcq/LmsT7OG3sI+XVUNk3zBTQ5QV1z7VBQq
 hTsd/6a81Sd3B8ZUFm/qgiXgTWucZbUw/mXNw0uDGn6+qE2h0virf3WkRlfKjmry
 UMZhUG/AjEuSD9Th6JwECgYMj07kB7AXG6Pc00bLLg==
 =l2pk
 -----END PGP SIGNATURE-----

Merge tag '0.18'

notmuch 0.18 release
2014-05-06 17:14:26 +09:00
David Bremner
877533ade5 debian: changelog stanza for 0.18
plagiariaze my own summary from upstream NEWS
2014-05-06 16:27:29 +09:00
David Bremner
b661b87801 version: bump to 0.18
debian changelog to be done seperately.
2014-05-06 16:24:17 +09:00
Jani Nikula
ecef282a16 emacs: allow functions in notmuch-show-stash-mlarchive-link-alist
Some archives may use a more complicated scheme for referring to
messages than just concatenated url and message-id. In particular,
patchwork requires a query to translate message-id to a patchwork
patch id. Allow functions in notmuch-show-stash-mlarchive-link-alist
to facilitate this.

For example, one could use something like this for patchwork.

(lambda (message-id)
  (concat
   "http://patchwork.example.com/patch/"
   (nth 0
	(split-string
	 (car (last (process-lines "pwclient" "search" "-n" "1"
				   "-m" (concat "<" message-id ">"))))))))
2014-05-04 14:16:24 +09:00
David Bremner
21cb851a22 notmuch 0.18~rc1 release
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQGcBAABCAAGBQJTZXg2AAoJEPIClx2kp54shMEL/jimQji1GYwhBMfQKldBkl52
 FVbxOS4YiOc6zOcz7n8wjkjnHPEvTS/Q6mrZQTjJxtGDYkzaY27JKczXWB/ueqCJ
 /G9kEiXRbkVBLp2AQH7zHnKWRvqAQsaw9o+jyjzmW1UbJXX7dmZNmMQkWyN3bzy6
 taCDiKPxNTlwePRJUbC6O51GC6m7fZOQHSvrmrqFZiNdeT1Gs7g/Adj8Mho6x9A+
 q98Jtftk30Cyx0hXQKNXcJyTukdvVi69HZcmP+Rr9rCRZ4/L7WRbkX+iFQhvOm19
 c6ldgiwBV6+3DW4sNDHcpwZm5ZFh4I+0xUZ/r8V9F8f4yaY0SzMYtvA2xeIqXSG6
 FwkmPSGoW8A8cF8YqKkHOEZrM4ybd2XGvkDkibUncaAeAHQp4DCVG6etLG9kEtzr
 I4yqGhYTIjmjTuLXDOLEZ2mbhgayS5oAEnVqghapTNDYzzOK8h9Gr3Jvq6Kb2ckQ
 /VnEAOOvSv4bomil4NdgXaPrLZrTiq8lS6/pe2DZEg==
 =0A2e
 -----END PGP SIGNATURE-----

Merge tag '0.18_rc1'

notmuch 0.18~rc1 release
2014-05-04 08:32:05 +09:00
David Bremner
5535453495 build: use UPSTREAM_TAG and not VERSION to generate tarball
The latter can have "~" in it, which is not legal for a git tag.
2014-05-04 08:11:35 +09:00
David Bremner
2983a85eed doc/doxygen.cfg: bump version to 0.18 2014-05-04 07:38:21 +09:00
David Bremner
1f2bb88e92 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
2014-05-04 07:34:00 +09:00
Felipe Contreras
cc8c213bbc 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 <felipe.contreras@gmail.com>
2014-05-03 06:00:22 +09:00
Paul Roberts
468deca60c vim: make the html handler configurable
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2014-05-03 05:59:58 +09:00
Felipe Contreras
2fee62fd1f 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 <felipe.contreras@gmail.com>
2014-05-03 05:59:38 +09:00
Jani Nikula
26b5836be3 doc: add *.pyc to doc/.gitignore 2014-05-03 05:49:34 +09:00
Jani Nikula
17234aecc3 test: add have-man and have-compact in test/.gitignore
Sort the file while at it.
2014-05-03 05:49:13 +09:00
Jani Nikula
697d6b5a47 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.
2014-05-03 05:33:09 +09:00
Jani Nikula
02fabf31df NEWS: insert and new refuse invalid tags 2014-05-02 07:28:43 +09:00
Jani Nikula
c070bee7ea NEWS: message piping working directory 2014-05-02 07:28:12 +09:00
Jani Nikula
292a052cab NEWS: emacs: push mark before signature on reply 2014-05-02 07:27:00 +09:00
Jani Nikula
d8bf03710e NEWS: cli exit status codes 2014-05-02 07:25:24 +09:00
Jani Nikula
e0c7e49307 NEWS: notmuch insert respects maildir.synchronize_flags 2014-05-02 07:19:50 +09:00
David Bremner
708299ac53 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.
2014-05-01 14:37:54 +09:00
Jani Nikula
e925d88b1b NEWS: message header parser changes 2014-04-28 11:02:28 +09:00