aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-06-27NEWS: finalize for 0.32.20.32.2David Bremner
2021-06-26changelog for 0.31.4-2David Bremner
2021-06-26lib/n_d_index_file: re-use thread-id of existing messageDavid Bremner
This prevents the message document getting multiple thread-id terms when there are multiple files with the same message-id. This change shifts some thread ids, requiring adjustments to other tests. (cherry picked from commit 3f4de98e7c8c70f9a86a4f899147126f79907bd9)
2021-06-26debian: changelog for 0.32.2-1David Bremner
2021-06-26NEWS: mention fix for memory leak.David Bremner
2021-06-26emacs: Prefer email address over User ID when showing valid signatureDaniel Kahn Gillmor
Most concrete verification steps are likely only taken on the e-mail address in the first place, and e-mail addresses render more intelligibly than arbitrary User IDs in the first place. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> Amended-by: db, apply dme restructuring suggestions.
2021-06-26cli/show: produce "email" element in sigstatusDaniel Kahn Gillmor
When the certificate that signs a message is known to be valid, GMime is capable of reporting on the e-mail address embedded in the certificate. We pass this information along to the caller of "notmuch show", as often only the e-mail address of the certificate has actually been checked/verified. Furthermore, signature verification should probably at some point compare the e-mail address of the caller against the sender address of the message itself. Having to parse what gmime thinks is a "userid" to extract an e-mail address seems clunky and unnecessary if gmime already thinks it knows what the e-mail address is. See id:878s41ax6t.fsf@fifthhorseman.net for more motivation and discussion. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2021-06-25Merge branch 'release'David Bremner
2021-06-25lib: write talloc report in notmuch_database_destroyDavid Bremner
Since most memory allocation is (ultimately) in the talloc context defined by a notmuch_database_t pointer, this gives a more complete view of memory still allocated at program shutdown. We also change the talloc report in notmuch.c to mode "a" to avoid clobbering the newly reported log.
2021-06-25lib/config: fix memory leakDavid Bremner
This commit fixes a small memory leak (per iterator restart) by actually using the talloc context intended to be blown away on restart.
2021-06-25version: bump to 0.32.2David Bremner
2021-06-24emacs: Add compatibility for org-msg.elOri
Enable `notmuch-company` with `org-msg`, which does not derive from `message-mode` in composing. This change was first proposed in the discussion here: https://github.com/jeremy-compostella/org-msg/issues/53
2021-06-23doc: tweak hook configuration documentation.David Bremner
Add a historical note, and hint to look below for more about hooks. Capitalized the heading for consistency, removed blank line.
2021-06-21test/libconfig: make indexing more consistentDavid Bremner
The other tests have converted to two digit decimal, the commit does the same to the remaining test that was printing out indices in hex.
2021-06-20Merge branch 'release'David Bremner
2021-06-20NEWS: fix typoDavid Bremner
Oops. Apparently our release checks do not check the spelling of UNRELEASED (although Tomi's wiki conversion script does).
2021-06-20NEWS: start NEWS for 0.32.2David Bremner
2021-06-08emacs: require seq for seq-someDavid Bremner
Although the function dates from 2015, the autoload is newer. In particular [1] it is not found in Emacs 25.3. [1]: id:874ke85tqx.fsf@cgc-instruments.com
2021-06-08test: check openssl prequisite for add_gpgsm_homeDavid Bremner
This is a fix for the test failures reported by Dan Čermák [1]. It is more robust to check for the prerequisite inside the function that uses it, rather than in every test file that calls the function. [1]: id:87k0n4fqgm.fsf@tethera.net
2021-06-07test: aggregate-results updatesTomi Ollila
notmuch-test will now call aggregate-results.sh with file list that it compiles based on the test ran, and aggregate-results will report failure is any of the test files are missing. With this notmuch-test no longer has to exit in non-parallel run if some test fail to write its report file -- so it works as parallel tests in this sense. Changed test_done() in test-lib.sh write report file in one write(2), so there is (even) less chance it being partially written. Also, now it writes 'total' last and aggregate-results.sh expects this line to exist in all report files for reporting to be successful. Added 'set -eu' to notmuch-test and modified code to work with these settings. That makes it harder to get mistakes slipped into committed code.
2021-06-05lib/message: use passed database for error handlingDavid Bremner
'message' should always be initialized if we reach here, but in case it is not, we still want to be able to log an error message.
2021-06-05lib/{open,message}: make some internal functions staticDavid Bremner
They are not used outside their file, so being extern seems like an oversight
2021-06-05emacs: update default mailing list archives for stashing linksJani Nikula
Gmane web interface is long gone, remove it. Make MARC the new default. Update LKML to Lore, where it already redirects anyway. Also add Notmuch web archive.
2021-06-05test: add known broken test for indexing RFC822 group namesDavid Bremner
Austin Clements diagnosed this indexing problem in [1]. [1]: id:20130711215207.GR2214@mit.edu
2021-06-05emacs: fix declare-function definitions with related line breaksTomi Ollila
- declare-function notmuch-unthreaded lacked file name - declare-function notmuch-search had differently named last arg - note: check-declare-directory did not complain about that - declare-function notmuch-search-show-thread without nil - some functions declared to be in different file than those existed ("notmuch" -> "notmuch-lib") - some related function/declare lines were (/are now) wider than 80-columns; added line breaks (and proper indentation) there
2021-06-04emacs: drop setting mail-user-agent, and document how to set itDavid Bremner
After some discussion [1], I decided it is better to make notmuch users who rely on this behaviour customize mail-user-agent. This is consistent with the behaviour of other emacs mail packages. [1]: id:87k0nuhfrk.fsf@toryanderson.com
2021-06-03test: source $NOTMUCH_SRCDIR/test/test-lib-emacs.shTomi Ollila
Sourcing test-lib.sh will cd to TMP_DIRECTORY, so relative path in $0 will not work in previous version . $(dirname "$0")/test-lib-emacs.sh Now individual test scripts -- e.g. ./test/T310-emacs.sh will work.
2021-05-31Merge remote-tracking branch 'origin/release'David Bremner
2021-05-31NEWS/emacs: document changes in 0.32 that affect keybindings.Daniel Kahn Gillmor
See list discussion in thread starting with id:87h7ip2baq.fsf@fifthhorseman.net for more details. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> Amended-by: David Bremner (s/.emacs/Emacs configuration/)
2021-05-23ruby: use notmuch_exclude_t enumFelipe Contreras
It exists since 2013, let's allow it to be used in Ruby. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2021-05-23test: add regression test for large number of deletionsDavid Bremner
Prior to 9ad19e4454f there was an unhandled Xapian exception when reindexing after a large number of deletes. This test was used for bisection, and will subsequently serve as a regression test.
2021-05-23perf-test: add test for reindexing after removal/renaming msgsDavid Bremner
At this point it is a bit tricky to measure the performance increase from the new message deletion code, since the same commit (9ad19e4) that improved the performance also seems to have fixed a bug with an uncaught Xapian exception triggered by this test.
2021-05-23test: say_color() in one write(2)Tomi Ollila
say_color() used to call (builtin) printf (and tput(1) to stdout) several times, which caused attempts to write messages with color to have partial content (e.g. escape sequences) often intermixed with other tests when parallel tests were run. Now, with all output collected, then written out using one printf, all strings with color print out correctly ((at least short) write(2)'s appear to write out "atomically"). While at it, used only one tput(1) execution to determine whether color output works, and made bold/colors/sgr0 to tput(1) their values once per test.
2021-05-23test: quiet some extra debugging outputDavid Bremner
This output does not cause test failures, but may make it harder to interpret the output.
2021-05-23test: ignore debugging messagesDavid Bremner
Previously building with "-DDEBUG" broke the test suite in several places.
2021-05-23lib/thread: add common prefix to debug messages, join linesDavid Bremner
This will simplify filtering these message, e.g. in the test suite.
2021-05-22doc: example command-line option referenceJani Nikula
Example reference to a command-line option using the option role reference. This creates a hyperlink in html, and the usual boldface style in man page. This could be used throughout the man pages.
2021-05-22doc: use program and option directives to document optionsJani Nikula
Use the program and option directives to document the subcommand options. This unifies a lot of option documentation throughout. This also makes it possible to reference options with :option:`--foo` (within .. program::) or :option:`subcommand --foo` (globally). This is left for later work. See https://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html#directive-program Note: There is a lot of indentation change, but intentionally there is no reflow. Using 'git diff -w' or 'git show -w' to ignore white space changes makes this a very easy change to review.
2021-05-22doc: use envvar directive and role for environment variablesJani Nikula
Make man1/notmuch.rst the single point of truth for describing notmuch environment variables. Use the envvar directive for that, and reference them with the envvar role. Drive-by cleanup configuration file and hook directory search order documentation.
2021-05-22doc: cross-reference notmuch man pages with actual linksJani Nikula
Add internal hyperlink targets for man pages and cross-reference them using the any role reference. There are a number of alternatives to accomplish this, but this seems like the combination that retains the man page section number and the same boldface style in the man pages. As a bonus, we get sanity checking on the links; for example notmuch-search-terms.rst had a reference to notmuch-properties(1) i.e. the wrong section. The obvious semantic follow-up change would be to only have meaningful "see also" references instead of having them all everywhere.
2021-05-22test: replace notmuch_passwd_sanitize() with _libconfig_sanitize()Tomi Ollila
notmuch_passwd_sanitize() in test-lib.sh is too generic, it cannot work in many cases... The more specific version _libconfig_sanitize() replaces it in T590-libconfig.sh and the code that uses it is modified to output the keys (ascending numbers printed in hex) so the sanitizer knows what to sanitize in which lines... "@" + fqdn -> "@FQDN" replacement is used as fqdn could -- in theory -- be substring of 'USERNAME'. 'user -> 'USER_FULL_NAME replacement to work in cases where user is empty -- as only first ' is replaced that works as expected. In addition to ".(none)" now also ".localdomain" is filtered from USERNAME@FQDN. /dev/fd/{n} is not defined in posix, but it is portable enough (if it weren't it is easy to fix -- now code looks clearer).
2021-05-22doc: use manpage role references to external man pagesJani Nikula
Using manpage role references generates helpful links in html documentation, while retaining the same boldface style in the man pages. The external man page site is configurable. The Debian manpage site seems like a good fit for Notmuch.
2021-05-22Merge branch 'release'David Bremner
2021-05-22ruby: improve compilation with CFLAGSFelipe Contreras
The ruby MakeMakefile generates a makefile that is suboptimal, which has CFLAGS like this: CFLAGS = $(CCDLFLAGS) -march=x86-64 -mtune=generic \ -O2 -pipe -fno-plt -fPIC $(ARCH_FLAG) This works as long as the user doesn't modify the Makefile. Certain flags (namely -fPIC) need to be present regardless of what CFLAGS are specified. The Makefile should have done this instead: CFLAGS = -march=x86-64 -mtune=generic -O2 override CFLAGS += $(CCDLFLAGS) -pipe -fno-plt -fPIC $(ARCH_FLAG) Unfortunately they didn't, so we need to workaround their lack of foresight. We can simply add the necessary flags in the parent Makefile so everyone is happy. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2021-05-22lib/n_d_index_file: re-use thread-id of existing messageDavid Bremner
This prevents the message document getting multiple thread-id terms when there are multiple files with the same message-id. This change shifts some thread ids, requiring adjustments to other tests.
2021-05-22test: add known broken test for duplicate thread-id termsDavid Bremner
According to my bijection, this bug has been present since commit 411675a6ce in 2017. It is not completely clear what harm it causes in regulary use, but it (at least) makes notmuch crash when compiled with -DDEBUG_DATABASE_SANITY.
2021-05-19CLI/new: check status of notmuch_message_maildir_flags_to_tagsDavid Bremner
This improves error reporting since it prints the specifics of the exception.
2021-05-19perf-test/T00-new: fix backup creation.David Bremner
"xargs tar cf backup.tar < $manifest" recreates the tar file with each "batch" execed by xargs. In general this results in only a fraction of the desired files being backed up.
2021-05-19doc: fix variable name in documentationLuis Henriques
Variable 'notmuch-saved-searches-sort-function' does not exist; 'notmuch-saved-search-sort-function' is the correct name. Signed-off-by: Luis Henriques <henrix@camandro.org>
2021-05-19doc: fix man page build for Sphinx 4.xJani Nikula
Sphinx 4.0 changed the default value of man_make_section_directory from False to True. We create the section directories and move the files manually, so fix the immediate man build failure by disabling the feature. The Sphinx documentation on this [1] is confusing, and has the change backwards. Git history says the default changed from False to True. [1] https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-man_make_section_directory