Commit graph

7144 commits

Author SHA1 Message Date
Jani Nikula
ab24e883b0 lib: add return status to database close and destroy
notmuch_database_close may fail in Xapian ->flush() or ->close(), so
report the status. Similarly for notmuch_database_destroy which calls
close.

This is required for notmuch insert to report error status if message
indexing failed.
2014-07-09 20:29:36 -03:00
Tomi Ollila
6721222ea8 build: check .git directory existence in srcdir (for out-of-tree builds)
So that $(VERSION) and version.stamp uses the git-describe -based
version data instead of the content of `version' file.

For consistency also the git commands in Makefile[.local] target
`verify-no-dirty-code' uses the git --git-dir=$srcdir/.git ...
commands (inside ifeq($(IS_GIT),yes)). Attempting to make this
target outside of the tree will fail in any case.
2014-07-09 20:24:28 -03:00
David Bremner
934e333a08 doc: postprocess notmuch.3
Remove excess italics from doxygen output. It seems to make no
sense (and is certainly ugly) to italicize the first argument to the
.RI macro.
2014-07-09 19:32:44 -03:00
David Bremner
c6cdac8ece doc: quiet doxygen warnings
remove some obsolete tags for XML output (which we don't currently
generate in any case)
2014-07-09 19:32:44 -03:00
David Bremner
1022433551 doc: build and install doxygen api docs
In order to support out of tree builds and avoid hardcoding version
number, generate `doc/config.dox` from configure.
2014-07-09 19:32:15 -03:00
Fraser Tweedale
0e50854a7f configure: use cc/c++ instead of gcc/g++
Some systems (e.g. FreeBSD 10) do not ship with the GNU Compiler
Collection.  Use generic cc/c++ instead of gcc/g++ (unless the
CC/CXX environment variables are used).
2014-07-04 08:56:32 -03:00
David Bremner
6ef676aac3 notmuch 0.18.1 release
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQGcBAABCAAGBQJTqqd6AAoJEPIClx2kp54sQDEL/i9V9jsKyXWSx6wCVxynIzhI
 cI5IO2IqtS5sX/DsU3R581TJNs5zEDv1AVjGtzx0MXD3mP5SY6A04aLkhFH3FZyb
 nAOFWtETQ/ghlULLoWYOz+b63Xj7nleH5ji4QyU28nk0eaXS0wGGJNgotK1Fhvvc
 99vsPo1Ci8OeQeKGjXNE2vDdlefXT5zIYde+QP5ofIdyzOVZMCK1KTb5QBGwQGQ0
 i8DaMyCRQvzXU4WHC/XHJZhcZ62CvrDWfG3wnxREmz5q9G98p86A29MRJkHZdQOv
 3aFguu/zGDSxi/6Y+e8sJb5f4yQBqyX5v83kkkRju3OUSTPLgzHfb+KLuVNhA3/m
 2U/vWdHpUMGgPLBcEd4s4AbjgeVMEY6DGKZ0bexZ68nq0QrxTVCDYtpipPF8ECk2
 zM4rDBqAfTMnXLptzzGwFPtk1G70vRml8uqaHp6YSnltQj1hiGo7U/4RGo6gpL2I
 EKfgOtuO+e8mRFhc+TAN6MNbAI+cCSkZ31e3kWbAog==
 =6Kk+
 -----END PGP SIGNATURE-----

Merge tag '0.18.1'

notmuch 0.18.1 release
2014-06-25 08:01:17 -03:00
David Bremner
4276eba3ca version: bump to 0.18.1
Also add precis of NEWS to debian changelog
2014-06-25 07:30:10 -03:00
Austin Clements
76037ea85f NEWS: Improve and correct "Fix for phrase indexing" entry
This improves the description of the fix, fixes some typos, and
changes "(re)-indexed" to "indexed" because we have no particular
notion of "re-indexing" a message.
2014-06-24 21:36:16 -03:00
David Bremner
efd16bc73b NEWS: quibbles from Tomi
See id:m2vbrsgi7n.fsf@guru.guru-group.fi for details
2014-06-23 06:37:03 -03:00
David Bremner
fea7a41181 notmuch 0.18.1~rc0 release
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQGcBAABCAAGBQJTp3iwAAoJEPIClx2kp54sbR8MAIXabp2QmfGVaQ5dOvSv7peD
 2GDUpx4+LFEybPL5tJJIc/WQ8Y8AqCytb3UY6wBdrq0j5AhhdVXxc7DPINuG523W
 6PNW3Hd9U1Ot2wiDNvebUjsRnEUYo0vagBptwRizhizQ4SONjYXEP9F9p51XyiTY
 33+TN9AlAcOngfoNhNAHTKWa7lGxIo8EZOqwoivk63xgv/MSD2RZT3kEaiK6HcBU
 GXRK4Lh0rWlbSZfAA30UwBXUHqVc8TjRcqecqAeV68tUlckuOdlfImTAtnGeRNbJ
 U7nfh7UtOyFswK8/L/uwXtLPTjXQhIpUhIuAR6Kvs9nEKhkEFBxUkJi41NA4yhlN
 eqhLMJ+BSZWpbOsTCaW5ZYHO36u1N6vD7A2Eqz839zRaSrOmcnQD974qpdZ67lDN
 A2qORV6WfmZhROvy75h+l8Da2IJmOMU0rzggszM3KQD9Ry8LrwBMktt1dHl5njvQ
 xqqRrHFNjUziqqR4RISjJ0LduTrIKty2Gw+yjgLvlA==
 =EJdx
 -----END PGP SIGNATURE-----

Merge tag '0.18.1_rc0'

notmuch 0.18.1~rc0 release
2014-06-22 22:25:10 -03:00
David Bremner
294f956d86 version: bump to 0.18.1~rc0
Also bump the python bindings version, the NEWS version and the Debian
version.

Since the changelog is (slightly dubiously) metadata, we have to
change it to upload a release candidate.
2014-06-22 21:30:35 -03:00
David Bremner
658e83e3ca NEWS: add news for 0.18.1
This is my summary of the commits from 0.18.
2014-06-22 21:15:53 -03:00
David Edmondson
b732a58a00 emacs: Forwarded messages should not have modified buffers
When the user begins forwarding a message, the resulting composition
buffer should not be marked as modified, in order that it can
immediately be killed without prompting.
2014-06-22 07:41:49 -03:00
David Bremner
cc2722ba9e Merge branch 'release'
Austin's termpos patches and Felipe's zlib.pc workaround
2014-06-22 06:53:21 -03:00
Felipe Contreras
0c698ef037 configure: add workaround for systems without zlib.pc
Some systems (e.g. FreeBSD) might not have installed the appropriate
pkg-config file as they should. We can workaround the issue by creating
the .pc file they should have distributed.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2014-06-21 16:40:39 -03:00
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