Commit graph

7471 commits

Author SHA1 Message Date
David Bremner
3eb25c94bd Merge branch 'release' 2021-12-29 14:20:49 -04:00
David Bremner
14c4f9441d configure: calculate NOTMUCH_BUILDDIR, write to Makefile.config
This will correct the current use of an undefined variable when
setting LD_LIBRARY_PATH in doc/Makefile.local

It is tempting to try to replace the use of test/export-dirs.sh, but
this is not as simple as it looks, as NOTMUCH_BUILDDIR is used to
locate sh.config, so probably cannot also sensibly be used to define
it.
2021-12-29 14:12:03 -04:00
David Bremner
25e0f5e592 lib/open: do not consider .notmuch alone as an existing database.
It makes perfect sense for users to want to pre-create .notmuch,
e.g. to install hooks, so we should handle the case of a .notmuch
directory without an actual xapian database more gracefully.
2021-12-29 14:11:21 -04:00
David Bremner
e43bad4883 test/new: add known broken test for missing xapian directory.
`notmuch new' should go ahead and create the xapian database if it is
missing, even in the case where the parent .notmuch (or equivalent)
directory exists.
2021-12-29 14:11:10 -04:00
David Bremner
063f5e9862 test: test folder renames
In [1] Mark Walters reported a problem with messages being removed
from the database when the parent directory was renamed. Jani Nikula
proposed [2] these tests but observed

   This test is not suitable for merging since it's not deterministic.

After applying Jani's patch [3], the tests now pass deterministically,
and could usefully act as regression tests.

[1]: id:87siray6th.fsf@qmul.ac.uk
[2]: id:1393191650-28333-1-git-send-email-jani@nikula.org
[3]: id:1441445731-4362-2-git-send-email-jani@nikula.org
2021-12-26 12:30:25 -04:00
David Bremner
02d8ff376d doc: add dep. on stamp file for rebuilding gzipped man pages.
In [1] Daniel observed that the gzipped man pages were only being
rebuild every second time when building with `make -j4'. This may be
caused by a race condition between sphinx-build rebuilding the roff
files and the recipe to gzip them. This commit sequentializes these
two steps by making the stamp file a prerequisite for (all of) the
gzip files.

[1]: id:87tveotn1g.fsf@fifthhorseman.net
2021-12-25 07:32:27 -04:00
David Bremner
cea1604a08 test: remove directory names from paths in exceptions
These cause failures when building out of tree.
2021-12-23 08:47:40 -04:00
Tomi Ollila
031f4b4da5 emacs: add notmuch-logo.svg and use it in emacs mua on graphic displays
emacs/notmuch-logo.svg is handcrafted scalable vector graphics version
of the notmuch logo.

Emacs on graphic displays render this image four times in size compared
to the emacs/notmuch-logo.png, and the image is much sharper.

The rendered image size, 100x100 pixels, fits reasonably well with
text shown in various font sizes.

Scaling the image -- if desired -- may come in the future. For now
this is improvement on how the logo looked in notmuch-hello window.
2021-12-23 08:16:49 -04:00
David Bremner
b7e08901e8 doc: introduce stamp file for info build
This partially fixes (i.e. just for sphinx) the problem reported by
Daniel in id:87r29wwgq2.fsf@fifthhorseman.net.
2021-12-23 08:01:28 -04:00
David Bremner
d825847b52 doc: replace phony target with variable
Depending on a phony target seems like a good way to always trigger a
recipe.
2021-12-23 08:01:11 -04:00
Kyle Meyer
ed03babd05 emacs/tree: fix docstrings for author faces
The docstrings for notmuch-tree-match-author-face and
notmuch-tree-no-match-author-face incorrectly match the docstring of
notmuch-tree-match-date-face.
2021-12-12 10:14:07 -04:00
Tomi Ollila
ab8d0e5725 configure: have bash_absolute and perl_absolute always defined
Since set -u is used, without bash or perl, configure would fail.

This has gone unnoticed as (almost) everyone always had both
bash and perl installed (and in $PATH).

Thanks to FreeBSD ports this bug became visible; this change is
verbatim copy of `patch-configure` in FreeBSD ports tree.
2021-12-11 07:17:42 -04:00
David Bremner
a06b76b9b3 notmuch release 0.34.2-1 for unstable (sid) [dgit]
[dgit distro=debian no-split --quilt=linear]
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEkiyHYXwaY0SiY6fqA0U5G1WqFSEFAmGzWWMACgkQA0U5G1Wq
 FSG8xg/+Jx1z1pqC9CAQpw1Ccb9OuYsniwj7rvhfutbS82zkuFFq2UdjHa3rP31a
 zABqN9b9VDUtsEE5Wyf+Md7SZ202NQK3sZ/vh///CHis12CLaMZkvpi+twi9f5pj
 pMzcwXJ5voaHxErDvvjIp3FV9+RsfpZl5owXpav8j6Hl05TZ4xHfopF0O9rSJQhK
 +KuUjb2zGO7clP78cEZhEn+hk5DmYf0obRDK7hHgL/n8FVB+pmUsa5riauW2u/Jm
 ozhL+sC3DjVspQLZ1SgHHBocfuLCOlMcp2sqLHEN9pqF7XcW3m0aq9GFfYlUNh1m
 kc8HpTxHI7hcQmS0zsURgqV2fNR9okS8ye0zaCMw5oJ7h4J36i5kbRj0TPfRW7h3
 SKPuFGELPVqGj3NjUEhS34vgCcocmYmYqurAGKl1OnDouDT+ZpNMeg0EFrfhU/N3
 jcRTYcw6IarFJ85h8uFPBqIXd0H8KoPvUTa85eS4a/wqcrxPZTgtuqu35mlpe+1U
 77TyoQIT5AYa8c0N51a60jGK1ijY0/SBtMtb+hRxYuWLCU9wnWZEOBPakbqTVIdn
 +iBR4kYwQfhewqv2yLdCp/GsLqhQs2X79yBChWtcUc4WtM5B5QVlgU9TloyJJVHA
 2HB6ZkJW3MlzIhdJ/naemCuoW3D5ApnXJzGIWJk1nsSyR/Gq66k=
 =lO2D
 -----END PGP SIGNATURE-----

Merge tag 'debian/0.34.2-1'

notmuch release 0.34.2-1 for unstable (sid) [dgit]

[dgit distro=debian no-split --quilt=linear]
2021-12-10 18:53:57 -04:00
David Bremner
2394ee6289 debian: build only against default python version
This problem will will be solved in the next release of dh-python, but
the crude solution is needed for backports anyway.
2021-12-10 09:36:10 -04:00
David Bremner
a254a15861 NEWS: mention fix for unprintable python exception 2021-12-09 08:54:15 -04:00
David Bremner
b5eaa8ee83 debian: changelog for 0.34.2-1 2021-12-09 08:49:52 -04:00
David Bremner
05ee23ba42 version: bump to 0.34.2 2021-12-09 08:47:15 -04:00
David Bremner
49f8d051d1 NEWS: add NEWS for 0.34.2 2021-12-09 08:44:22 -04:00
David Bremner
57f29f4cb1 test/emacs: mark one test as fixed in newer emacs.
The remaining problem in this test is fixed upstream in Emacs
28. While most people are using earlier versions of emacs, the test
still provides some documentation of a known bug.
2021-12-06 17:28:51 -04:00
David Bremner
f17d75b83c python-cffi: fix out-of-tree build
The main idea is to replace the hack of copying version.txt into the
bindings source with a generated _notmuch_config.py file.

This will mean that the bindings only build after configuring and
building notmuch itself. Given those constraints, "pip install ."
should work.
2021-12-05 09:08:48 -04:00
David Bremner
95f0c59fe9 Merge branch 'release' 2021-12-05 09:02:50 -04:00
Floris Bruynooghe
ca4e1d885b Fix error message when using notmuch_status_to_string
The python exception class was incorrectly loading the error message
which resulted in unprintable exception objects.
2021-12-05 08:53:39 -04:00
David Bremner
c01152885c python-cffi: introduce stamp file
Although the rebuild does not take long, it is a bit noisy, so assume
if it succeeds once, it doesn't need to re-invoke setup.py until the
shared library is rebuilt. This is a partial fix for [1].

[1]: id:87r29wwgq2.fsf@fifthhorseman.net
2021-12-04 15:22:06 -04:00
David Bremner
904c067f32 ruby: don't use a directory as a target.
The directory is (neccesarily) not updated by the build, so it keeps
trying to build. The proposed fix is to use the name of the dynamic
library containing the extension.  This is a partial fix for the
rebuilding reported at [1].

[1]: id:87r29wwgq2.fsf@fifthhorseman.net
2021-12-04 15:21:54 -04:00
David Bremner
20b2150406 emacs: don't add space to tag completion candidates.
Apparently this messes up various third party completion
frameworks. This change does mean that users will have to hit space
after completing a tag change in order to enter another change.

As a bonus, remove the call to #'delete, since
completing-read-multiple already promises to remove empty strings.
2021-12-04 12:56:43 -04:00
David Bremner
efa7f35d4a test/new: replace use of gdb in vanishing file test
Unlike the similar change in T060-new, no symlink creation is needed
here.
2021-12-04 12:36:08 -04:00
David Bremner
9397e7e8eb test/count: replace use of gdb with a LD_PRELOAD shim
There is a certain amount of boilerplate to pass the call on the
original function, so abstract it out as a C preprocessor macro, plus
some extra includes in notmuch-test.h
2021-12-04 12:36:08 -04:00
David Bremner
1643c0459a test: move system includes to notmuch-test.h
This removes some redudant includes, and will also make it easier to
introduce "#define _GNU_SOURCE", which must come before all system
includes.
2021-12-04 12:36:08 -04:00
David Bremner
18cdd21b8b lib/config: use g_key_file_get_string to read config values
Unlike the previous g_key_file_get_value, this version processes
escape codes for whitespace and \. The remaining two broken tests from
the last commit are because "notmuch config get" treats every value as
a list, and thus the previously introduces stripping of leading
whitespace applies.
2021-12-04 12:17:09 -04:00
David Bremner
482bd3a46d test: known broken tests for escape characters in config files.
glib generates the following escape characters with their usual
meanings: \n, \t, \r, and \\, along with \s for _leading_
spaces. Currently notmuch fails to unescape these on reading the
config files. These tests demonstrate this bug; the one new test that
passes is because apparently glib only escapes tabs at the beginning
of a key.
2021-12-04 12:16:47 -04:00
David Bremner
bab633d3ac config: ignore leading/trailing spaces in ';'-delimited lists
In [1] Ciprian observed that it was easy for users to mistakenly
introduce leading and trailing space to new.tags when editing a
notmuch config file. This commit strips spaces on either side of the
';' delimiter when splitting.

In principle it would be possible to support tags (or other config
values) with leading or trailing spaces by processing '\s' escapes in
the input string. Currently such processing is not done.

[1]: id:CA+Tk8fzjPLaEd3vL1f9ebk_bF_RV8PDTLzDupraTkCLCpJAmCg@mail.gmail.com
2021-12-04 12:16:12 -04:00
David Bremner
e22bbb124e test: known broken tests for leading/trailing ws in config
These tests duplicate the bug/misfeature reported in

      id:CA+Tk8fzjPLaEd3vL1f9ebk_bF_RV8PDTLzDupraTkCLCpJAmCg@mail.gmail.com
2021-12-04 12:15:49 -04:00
David Bremner
eafb033d32 emacs: run notmuch-search-hook lazily
In message id:YT3ueuZHKW931NW3@localhost, Fabio Natali isolated a
visual glitch caused by running notmuch-search-hook too early. This
change moves the running of that hook to
notmuch-search-process-filter, which ensures there is some output in
the buffer before running the hook. Since n-s-p-f can be called many
times for a given buffer, add a buffer local flag to make sure it is
only run once per buffer.
2021-12-04 12:11:52 -04:00
David Bremner
1e7d33961e Merge branch 'release' 2021-12-04 09:27:30 -04:00
David Bremner
d7f9572413 python-cffi: switch to notmuch_database_{open,create}_with_config
Since release 0.32, libnotmuch provides searching for database and
configuration paths. This commit changes the python module notmuch2 to
use those facilities.

This fixes the bug reported in [1], along with a couple of the
deprecation warnings in the python bindings.

Database.default_path is deprecated, since it no longer faithfully
reflects what libnotmuch is doing, and it is also no longer used in
the bindings themselves.

This commit choose the default of config=CONFIG.EMPTY (equivalent to
passing "" to notmuch_database_open_with_config).  This makes the
change upward compatible API-wise (at least as far as the test suite
verifies), but changing the default to CONFIG.SEARCH would probably be
more convenient for bindings users.

[1]: id:87h7d4wp6b.fsf@tethera.net
2021-12-04 08:42:31 -04:00
David Bremner
caafab01a4 test: add known broken tests for python bindings in split configs
This reproduces the bug(s) reported in id:87h7d4wp6b.fsf@tethera.net
2021-12-04 08:36:41 -04:00
David Bremner
5f077bef37 test: add python-cffi bindings to path for test_python
This will allow testing the new python bindings using test_python, in
addition to the current invocation of pytest.
2021-12-04 08:36:23 -04:00
David Bremner
4b361f4d35 python-cffi: fix typos in docstring for Database.default_path
These generate warnings from sphinx doc, which makes it harder to
debug documentation changes. They also corrupt the output.
2021-12-04 08:36:07 -04:00
David Bremner
59aac9cef3 lib/config: don't overwrite database.path if the caller passed it
If the user passed a path, and we opened it, then we consider that
definitive definition of "database.path". This makes libnotmuch
respond more gracefully to certain erroneous combinations of
NOTMUCH_CONFIG settings and config file contents.
2021-12-03 20:52:11 -04:00
David Bremner
d467444085 lib/open: track which parameters are passed
This will be used to fine tune the loading of configuration for
certain special configuration items (initially just "database.path").
2021-12-03 20:50:03 -04:00
David Bremner
378415a557 test: add known broken test for conflict with database parameter
This is arguably user error: having configuration file with bad
settings in it (and/or having a bad NOTMUCH_CONFIG environment
variable).  On the other hand returning a different path than was
actually opened is definitely a bug.
2021-12-03 20:49:36 -04:00
David Bremner
59a778ae4b test/libconfig: use 'export' for remaining sets of NOTMUCH_CONFIG
It makes the tests easier to understand if we always use export for
environment variables.
2021-12-03 20:47:05 -04:00
David Bremner
20b2ae1218 emacs: drop C-tab binding in hello mode, document <backtab>.
The <backtab> binding has always been there, but the docs were
apparently mistakenly changed to say <backspace> [1]

Revert to <backtab> in the documentation.

The commit also drops the C-<tab> binding, since it seems redundant
and it interferes with tab-bar-mode.

[1]: 703dec7754.
2021-12-03 20:28:12 -04:00
David Bremner
48b5263646 doc/python-cffi: import from built bindings, not installed module
Previously the python-cffi bindings either failed to build, or built
for the wrong module by using the installed module.

The fix requires correction the module path, building the bindings
before docs, and helping python find the built libnotmuch.

Based on patch / discussion from Micheal Gruber [1]

[1]: id:cover.1634808719.git.git@grubix.eu
2021-12-03 20:25:59 -04:00
David Bremner
b264a49be3 rename built_with.sexpr_query to built_with.sexp_queries
It is confusing to use two different names (sexp vs sexpr) when
compared with the command line option --query=sexp and (furthermore)
singular vs plural when compared with the man page title.
2021-12-03 20:06:06 -04:00
David Bremner
fc3c79dd37 notmuch 0.34.1 release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEkiyHYXwaY0SiY6fqA0U5G1WqFSEFAmGCjv8ACgkQA0U5G1Wq
 FSGt7RAAvH6gVnLnlYcGyI8rBblQvlbmGnRl84KHI5W6jIyTj7pQ2KGK1n3yYzue
 eQsQMSl/bquWJI3GkWebQfHie6c5NzYvsiDLvYg95q6Xq79VFKyZckhpI8t6s+Ez
 U9XxxVMvKpeOs0YrO9gzXyu/oNC1QnHzY7cMzNnGl9VHLLLbmMk8PXR8Ax9X36xi
 xkhP6k/qE7D/SZHKHqr9s16UKyZykTLgF3htG3T+YoitSvIzIZSJAYjAz1BXhKkR
 /Qqyvw63qtFjDR4zey68z8QS0H8G66aM/HKaG57ZB+rd7yUNLAr72Fa8qnHMAS2y
 kcvgUDrKiTR4tXEFRxSgp+HfaybbgzXNJmR1KbL+e1qLD7m2okYMuad4X4c8JgwW
 O3HuU2q2/REJgP1cvXh+0/bGQmCrX7VlFDTsK6EdebGg1kxlcA7/Us1BuNpjv+sU
 9tQjEikDAhIIpsykseUyJcKeyNGYbY3vcMNcNJaAlJTbEH6T/hyJEuFG/g6uunYT
 x21CEXztKtUrmk+1iH6xrz0gmEwR+NIHYjRFLhSvvSwACve/i1enqcztsZqg2EfP
 Z7TFLHUwk4e94ilob4XOCk9URmLfd2l+jJQH1y4mWuGBFuI2q56HM3+NufeTa9oj
 N83uTRZpbdPPcrz59A9mQatttJ3IpGOcsc5nB5YRiLW+kDJh6zs=
 =3Op2
 -----END PGP SIGNATURE-----

Merge tag '0.34.1'

notmuch 0.34.1 release
2021-11-04 16:28:03 -03:00
David Bremner
6858c36595 debian: refinalize changelog 2021-11-03 10:20:49 -03:00
David Bremner
ba7f26e2a5 NEWS: finalize release date 2021-11-03 10:20:08 -03:00
David Bremner
edd5e15360 debian: changelog for 0.34.1-1 2021-10-31 08:25:25 -03:00
David Bremner
b4894de877 NEWS: start news for 0.34.1 2021-10-31 08:18:38 -03:00