aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-11-28lib/string_map: simulate stable sortingDavid Bremner
qsort(3) does not promise stability, and recent versions of glibc have been showing more unstable behaviour [2]. Michael Gruber observed [1] test breakage due to changing output order for message properties. We provide a sorting order of (key,value) pairs that _looks_ stable by breaking ties based on value if keys are equal. Internally there may be some instability in the case of duplicate (key,value) pairs, but it should not be observable via the iterator API. [1]: id:CAA19uiSHjVFmwH0pMC7WwDYCOSzu3yqNbuYhu3ZMeNNRh313eA@mail.gmail.com [2]: id:87msv3i44u.fsf@oldenburg.str.redhat.com
2023-10-26Merge tag '0.38.1'David Bremner
notmuch 0.38.1 release
2023-10-26debian: update changelog for 0.38.1-1debian/0.38.1-1archive/debian/0.38.1-10.38.1David Bremner
2023-10-26NEWS: News for 0.38.1David Bremner
Just note the 3 bug fixes.
2023-10-26version: bump to 0.38.1David Bremner
No changes from 0.38.1~rc1
2023-10-12Merge tag '0.38.1_rc1'David Bremner
notmuch 0.38.1~rc1 release
2023-10-12changelog for 0.38.1~rc1-1debian/0.38.1_rc1-1archive/debian/0.38.1_rc1-10.38.1_rc1David Bremner
2023-10-12version: update to 0.38.1~rc1David Bremner
2023-10-12notmuch-mutt: fix Perl syntax of hash index lookupsPaul Wise
Fixes: commit 239fdbbbf0cbd6cd6ebafb87e88cdb3cded75364
2023-10-06emacs/mua: change name of ignored parameterDavid Bremner
Suppress compiler warning.
2023-10-06emacs/address: rewrite docstring for n-a-selection-functionDavid Bremner
The previous version essentially repeated the source code, and generated a compiler warning.
2023-10-06emacs: wrap docstringsDavid Bremner
Suppress byte-compiler warnings about >80 character docstrings.
2023-10-06emacs: update quoting in docstringsDavid Bremner
The complicated looking escapes are needed to avoid compile time warnings. (info "(elisp) Text Quoting Style") for details.
2023-10-01Merge tag 'debian/0.38.1_pre0-1'David Bremner
notmuch release 0.38.1~pre0-1 for experimental (rc-buggy) [dgit] [dgit distro=debian no-split --quilt=linear]
2023-10-01debian: finalize changelog for 0.38.1~pre0-1debian/0.38.1_pre0-1archive/debian/0.38.1_pre0-1David Bremner
Bonus typo fix.
2023-10-01Merge tag '0.38.1_pre0'David Bremner
notmuch 0.38.1~pre0 release
2023-10-01emacs/show: special case toggling display of images0.38.1_pre0David Bremner
According to emacs upstream [1], we can't expect overlay invisibility and images to get along. This commit uses the previously stashed undisplayer functions to actually remove the images from the buffer. When the image is toggled, it is essentially redisplayed from scratch, using the previously stashed redisplay data. [1]: https://lists.gnu.org/archive/html/emacs-devel/2023-08/msg00593.html
2023-10-01emacs: save image redisplay data during non-lazy displayDavid Bremner
This data will eventually be used to redisplay hidden images. A certain amount of refactoring is done here to avoid code duplication.
2023-10-01emacs/show: save redisplay redisplay data when showing lazy part.David Bremner
This data will be used to redisplay an image that is hidden by deleting it from the buffer. We cannot easily delay until the image is hidden, as we won't have the original data at that point.
2023-10-01emacs: save undisplayer function for MIME partsDavid Bremner
For some kinds of MIME parts (at least images), our trickery with overlays will not work, so save the more drastic function created by Gnus that actually deletes the part from the buffer. In an ideal world we would return this function as (part of) a value, but here the call stack is too complicated for anything that simple, so we stash it in the part plist and rely on that being preserved (unlike the mm handle, which is transient).
2023-09-23Merge branch 'release'David Bremner
2023-09-23Pass error message from GLib ini parser to CLIDavid Bremner
The function _notmuch_config_load_from_file is only called in two places in open.cc. Update internal API to match the idiom in open.cc. Adding a newline is needed for consistency with other status strings. Based in part on a patch [1] from Eric Blake. [1]: id:20230906153402.101471-1-eblake@redhat.com
2023-09-23test: add known broken subtest for the bad config error messageDavid Bremner
This is a bit fragile w.r.t. glib changing their error message, but it already helped me find one formatting bug, so for now I think it's worth it, instead of just grepping for "UTF-8".
2023-09-23CLI: exit with error when load_config returns an error.David Bremner
For now print a generic error message and exit with error on any non-success code. Previously the code exited, but with exit code zero, leading users / scripts to think the command had succeeded.
2023-09-23test: add known broken test for bad utf8 in configDavid Bremner
We should ideally print an informative error message, but at the very least we should not exit with success.
2023-09-23debian: start changelog for 0.38.1~pre0-1David Bremner
2023-09-23NEWS: add header for 0.38.1David Bremner
Actual news items to be filled in after they are applied.
2023-09-23version: update to 0.38.1~pre0David Bremner
Start preparations for point release
2023-09-19.gitignore: ignore __pycache__Eric Blake
Python likes to leave behind cache files; noticeable when doing an in-tree build.
2023-09-18devel/nmweb: read mail files in binary mode.David Bremner
"ju" reported on IRC that browsing https://nmbug.notmuchmail.org/nmweb/show/20160719094205.qmf5sjnja6crt5t3%40gotlib crashed. The underlying issue is that python3 defaults to utf8 decoding files unless they are opened in binary mode. The file in question (in the nmbug archive; it depends a bit on the routing the message took) has Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit and some of it is not valid utf8.
2023-09-13Merge branch 'release'David Bremner
2023-09-13debian: upload 0.38-2: disable most autopkgtestsdebian/0.38-2archive/debian/0.38-2David Bremner
2023-09-12Merge branch 'release'David Bremner
2023-09-12bindings/python-cffi: clean up notmuch2.egg-infodebian/0.38-1archive/debian/0.38-10.38David Bremner
This is created (at least) by the Debian build, but there seems no harm in cleaning it for everyone.
2023-09-12debian: note introduction of autopkgtestsDavid Bremner
Having autopkgtests changes Debian package migration (for better and worse), so make a note when they were introduced to unstable.
2023-09-12NEWS: quote function nameDavid Bremner
This avoids spurious underline/italics when exporting to markdown.
2023-09-12NEWS: set release date for 0.38David Bremner
2023-09-12build: clean up __pycache__ directoriesDavid Bremner
These are generated indirectly by certain uses of python in the build.
2023-09-12debian: rely on main notmuch (dist)clean.David Bremner
The python setuputils clean relys on including _notmuch_config.py, which is cleaned up. Rather than relying on careful ordering, just do all the cleaning from the GNU Make based build system.
2023-09-12bindings/python-cffi: clean up _notmuch_config.pyDavid Bremner
_notmuch_config.py is generated by configure, and cannot be cleaned up by the current python build system, since it is imported as a module by that same build system. Use DISTCLEAN rather than CLEAN for consistency with other configure related things.
2023-09-11debian: changelog for 0.38-1David Bremner
2023-09-11version: bump to 0.38David Bremner
2023-09-09NEWS: NEWS for 0.38David Bremner
2023-09-03Merge branch 'release'David Bremner
2023-09-03debian: changelog for 0.38~rc2-1debian/0.38_rc2-1archive/debian/0.38_rc2-10.38_rc2David Bremner
2023-09-03version: bump to 0.31~rc2David Bremner
2023-09-02test: suppress all interceptors in glibKevin Boulain
On ppc64el, races are detected by TSan: WARNING: ThreadSanitizer: data race (pid=4520) Read of size 8 at 0x7ffff20016c0 by thread T1: #0 strlen ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:386 (libtsan.so.2+0x77c0c) #1 strlen ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:378 (libtsan.so.2+0x77c0c) #2 g_strdup ../../../glib/gstrfuncs.c:362 (libglib-2.0.so.0+0xa4ac4) Previous write of size 8 at 0x7ffff20016c0 by thread T2: #0 malloc ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:647 (libtsan.so.2+0x471f0) #1 g_malloc ../../../glib/gmem.c:130 (libglib-2.0.so.0+0x7bb68) Location is heap block of size 20 at 0x7ffff20016c0 allocated by thread T2: #0 malloc ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:647 (libtsan.so.2+0x471f0) #1 g_malloc ../../../glib/gmem.c:130 (libglib-2.0.so.0+0x7bb68) This appears to be a false positive in GLib, as explained at https://gitlab.gnome.org/GNOME/glib/-/issues/1672#note_1831968 In short, a call to fstat fails under TSan and GLib's g_sterror will intern the error message, which will be reused by other threads. Since upstream appears to be aware that GLib doesn't play nicely with TSan, suppress everything coming from the library instead of maintaining a fine grained list. Reported at https://buildd.debian.org/status/fetch.php?pkg=notmuch&arch=ppc64el&ver=0.38%7Erc0-1&stamp=1692959868&raw=0
2023-08-27compat: probe for strcasestr more thoroughlyMichael J Gruber
Depending on compiler (gcc, g++, clang) and standard options (c99, c11), string.h may or may not include strings.h, leading to possibly missing or conflicting declarations of strcasestr. Include both so that both detection and compilation phases use the same (possibly optimised) implementations. Suggested-by: Thomas Schneider <qsx@chaotikum.eu> Suggested-by: Florian Weimer <fweimer@redhat.com> Suggested-by: Tomi Ollila <tomi.ollila@iki.fi>
2023-08-26debian: changelog for 0.38~rc1-1debian/0.38_rc1-1archive/debian/0.38_rc1-10.38_rc1David Bremner
2023-08-26version: bump to 0.38~rc1David Bremner