Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package maildir-utils for openSUSE:Factory checked in at 2022-12-06 14:24:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/maildir-utils (Old) and /work/SRC/openSUSE:Factory/.maildir-utils.new.1835 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "maildir-utils" Tue Dec 6 14:24:15 2022 rev:38 rq:1040532 version:1.8.13 Changes: -------- --- /work/SRC/openSUSE:Factory/maildir-utils/maildir-utils.changes 2022-10-25 11:20:44.718234775 +0200 +++ /work/SRC/openSUSE:Factory/.maildir-utils.new.1835/maildir-utils.changes 2022-12-06 14:24:30.426205745 +0100 @@ -1,0 +2,14 @@ +Tue Dec 6 08:34:08 UTC 2022 - Michael Vetter <mvet...@suse.com> + +- Update to 1.8.13: + * Make server buffer invisible + +------------------------------------------------------------------- +Tue Dec 6 08:33:49 UTC 2022 - Michael Vetter <mvet...@suse.com> + +- Update to 1.8.12: + * Fix mu-headers-toggle-setting user feedback + * Improve browse-url-handlers + * Update some tests, avoid compiler warnings + +------------------------------------------------------------------- Old: ---- mu-1.8.11.tar.xz New: ---- mu-1.8.13.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ maildir-utils.spec ++++++ --- /var/tmp/diff_new_pack.WftjQV/_old 2022-12-06 14:24:31.034210929 +0100 +++ /var/tmp/diff_new_pack.WftjQV/_new 2022-12-06 14:24:31.042210997 +0100 @@ -17,7 +17,7 @@ Name: maildir-utils -Version: 1.8.11 +Version: 1.8.13 Release: 0 Summary: Maildir indexer and searcher License: GPL-3.0-or-later ++++++ mu-1.8.11.tar.xz -> mu-1.8.13.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.8.11/configure.ac new/mu-1.8.13/configure.ac --- old/mu-1.8.11/configure.ac 2022-10-24 22:19:15.000000000 +0200 +++ new/mu-1.8.13/configure.ac 2022-12-06 09:23:41.000000000 +0100 @@ -15,7 +15,7 @@ ## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. AC_PREREQ([2.68]) -AC_INIT([mu],[1.8.11],[https://github.com/djcb/mu/issues],[mu]) +AC_INIT([mu],[1.8.13],[https://github.com/djcb/mu/issues],[mu]) AC_COPYRIGHT([Copyright (C) 2008-2022 Dirk-Jan C. Binnema]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_SRCDIR([mu/mu.cc]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.8.11/lib/mu-maildir.cc new/mu-1.8.13/lib/mu-maildir.cc --- old/mu-1.8.11/lib/mu-maildir.cc 2022-10-24 22:19:15.000000000 +0200 +++ new/mu-1.8.13/lib/mu-maildir.cc 2022-12-06 09:23:41.000000000 +0100 @@ -296,7 +296,7 @@ if (res) return Ok(); else - return Err(Error{Error::Code::File, &err, + return Err(Error{Error::Code::File, &err/*consumed*/, "error moving %s -> %s", src.c_str(), dst.c_str()}); } @@ -313,15 +313,15 @@ return msg_move_verify(src, dst); if (errno != EXDEV) /* some unrecoverable error occurred */ - return Err(Error{Error::Code::File, "error moving %s -> %s", - src.c_str(), dst.c_str()}); + return Err(Error{Error::Code::File, "error moving %s -> %s: %s", + src.c_str(), dst.c_str(), strerror(errno)}); } /* the EXDEV / force-gio case -- source and target live on different * filesystems */ - if (!msg_move_g_file(src, dst)) - return Err(Error{Error::Code::File, "error moving %s -> %s", - src.c_str(), dst.c_str()}); + auto res = msg_move_g_file(src, dst); + if (!res) + return res; else return msg_move_verify(src, dst); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.8.11/lib/mu-store.cc new/mu-1.8.13/lib/mu-store.cc --- old/mu-1.8.11/lib/mu-store.cc 2022-10-24 22:19:15.000000000 +0200 +++ new/mu-1.8.13/lib/mu-store.cc 2022-12-06 09:23:41.000000000 +0100 @@ -351,7 +351,11 @@ { } -Store::Store(Store&&) = default; +Store::Store(Store&& other) +{ + priv_ = std::move(other.priv_); + priv_->indexer_.reset(); +} Store::~Store() = default; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.8.11/lib/tests/test-mu-store-query.cc new/mu-1.8.13/lib/tests/test-mu-store-query.cc --- old/mu-1.8.11/lib/tests/test-mu-store-query.cc 2022-10-24 22:19:15.000000000 +0200 +++ new/mu-1.8.13/lib/tests/test-mu-store-query.cc 2022-12-06 09:23:41.000000000 +0100 @@ -18,6 +18,7 @@ */ +#include "utils/mu-result.hh" #include <array> #include <thread> #include <string> @@ -26,6 +27,7 @@ #include <unordered_map> #include <mu-store.hh> +#include <mu-maildir.hh> #include <utils/mu-utils.hh> #include <utils/mu-test-utils.hh> #include <message/mu-message.hh> @@ -72,7 +74,10 @@ using namespace std::chrono_literals; std::this_thread::sleep_for(100ms); } - g_assert_true(!store->empty()); + + if (test_map.size() > 0) + g_assert_false(store->empty()); + g_assert_cmpuint(store->size(),==,test_map.size()); /* and we have a fully-ready store */ @@ -517,6 +522,107 @@ } } + + +static void +test_duplicate_refresh_real(bool rename) +{ + g_test_bug("2327"); + + const TestMap test_msgs = {{ + "inbox/new/msg", + { R"(Message-Id: <ab...@foo.bar> +From: "Foo Example" <b...@example.com> +Date: Wed, 26 Oct 2022 11:01:54 -0700 +To: exam...@example.com +Subject: Rainy night in Helsinki + +Boo! +)"}, + }}; + + /* create maildir with message */ + TempDir tdir; + auto store{make_test_store(tdir.path(), test_msgs, {})}; + g_debug("%s", store.properties().root_maildir.c_str()); + /* ensure we have a proper maildir, with new/, cur/ */ + auto mres = maildir_mkdir(store.properties().root_maildir + "/inbox"); + assert_valid_result(mres); + g_assert_cmpuint(store.size(), ==, 1U); + + /* + * find the one msg with a query + */ + auto qr = store.run_query("Helsinki", Field::Id::Date, QueryFlags::None); + g_assert_true(!!qr); + g_assert_cmpuint(qr->size(), ==, 1); + const auto old_path = qr->begin().path().value(); + const auto old_docid = qr->begin().doc_id(); + assert_equal(qr->begin().message()->path(), old_path); + g_assert_true(::access(old_path.c_str(), F_OK) == 0); + + /* + * mark as read, i.e. move to cur/; ensure it really moved. + */ + auto moved_msg = store.move_message(old_docid, Nothing, Flags::Seen, rename); + assert_valid_result(moved_msg); + const auto new_path = moved_msg->path(); + if (!rename) + assert_equal(new_path, store.properties().root_maildir + "/inbox/cur/msg:2,S"); + g_assert_cmpuint(store.size(), ==, 1); + g_assert_false(::access(old_path.c_str(), F_OK) == 0); + g_assert_true(::access(new_path.c_str(), F_OK) == 0); + + /* also ensure thath the cached sexp for the message has been updated; + * that's what mu4e uses */ + const auto moved_sexp{moved_msg->to_sexp().to_sexp_string()}; + /* clumsy */ + g_assert_true(moved_sexp.find(new_path) != std::string::npos); + + /* + * find new message with query, ensure it's really that new one. + */ + auto qr2 = store.run_query("Helsinki", Field::Id::Date, QueryFlags::None); + g_assert_true(!!qr2); + g_assert_cmpuint(qr2->size(), ==, 1); + assert_equal(qr2->begin().path().value(), new_path); + + /* index the messages */ + auto res = store.indexer().start({}); + g_assert_true(res); + while(store.indexer().is_running()) { + using namespace std::chrono_literals; + std::this_thread::sleep_for(100ms); + } + g_assert_cmpuint(store.size(), ==, 1); + + /* + * ensure query still has the right results + */ + auto qr3 = store.run_query("Helsinki", Field::Id::Date, QueryFlags::None); + g_assert_true(!!qr3); + g_assert_cmpuint(qr3->size(), ==, 1); + const auto path3{qr3->begin().path().value()}; + assert_equal(path3, new_path); + assert_equal(qr3->begin().message()->path(), new_path); + g_assert_true(::access(path3.c_str(), F_OK) == 0); +} + + +static void +test_duplicate_refresh() +{ + test_duplicate_refresh_real(false/*no rename*/); +} + + +static void +test_duplicate_refresh_rename() +{ + test_duplicate_refresh_real(true/*rename*/); +} + + int main(int argc, char* argv[]) { @@ -533,6 +639,10 @@ test_related_missing_root); g_test_add_func("/store/query/body-matricula", test_body_matricula); + g_test_add_func("/store/query/duplicate-refresh", + test_duplicate_refresh); + g_test_add_func("/store/query/duplicate-refresh-rename", + test_duplicate_refresh_rename); return g_test_run(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.8.11/lib/utils/mu-utils-format.hh new/mu-1.8.13/lib/utils/mu-utils-format.hh --- old/mu-1.8.11/lib/utils/mu-utils-format.hh 2022-10-24 22:19:15.000000000 +0200 +++ new/mu-1.8.13/lib/utils/mu-utils-format.hh 2022-12-06 09:23:41.000000000 +0100 @@ -20,6 +20,9 @@ #ifndef MU_UTILS_FORMAT_HH__ #define MU_UTILS_FORMAT_HH__ +#include <string> +#include <cstdarg> + namespace Mu { /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.8.11/meson.build new/mu-1.8.13/meson.build --- old/mu-1.8.11/meson.build 2022-10-24 22:19:15.000000000 +0200 +++ new/mu-1.8.13/meson.build 2022-12-06 09:23:41.000000000 +0100 @@ -18,7 +18,7 @@ # project setup # project('mu', ['c', 'cpp'], - version: '1.8.11', + version: '1.8.13', meson_version: '>= 0.52.0', # debian 10 license: 'GPL-3.0-or-later', default_options : [ @@ -54,6 +54,7 @@ '-Wformat=2', '-Wstack-protector', '-Wno-switch-enum', + '-Wno-keyword-macro', '-Wno-#warnings'] if get_option('buildtype') == 'debug' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.8.11/mu4e/mu4e-headers.el new/mu-1.8.13/mu4e/mu4e-headers.el --- old/mu-1.8.11/mu4e/mu4e-headers.el 2022-10-24 22:19:15.000000000 +0200 +++ new/mu-1.8.13/mu4e/mu4e-headers.el 2022-12-06 09:23:41.000000000 +0100 @@ -1577,7 +1577,8 @@ (toggles (seq-map (lambda (cell) (cons - (concat (car cell) (format" (%s)" (if (cdr cell) "on" "off"))) + (concat (car cell) (format" (%s)" + (if (symbol-value (cdr cell)) "on" "off"))) (cdr cell))) toggles)) (choice (mu4e-read-option "Toggle setting " toggles))) (when choice diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.8.11/mu4e/mu4e-server.el new/mu-1.8.13/mu4e/mu4e-server.el --- old/mu-1.8.11/mu4e/mu4e-server.el 2022-10-24 22:19:15.000000000 +0200 +++ new/mu-1.8.13/mu4e/mu4e-server.el 2022-12-06 09:23:41.000000000 +0100 @@ -148,7 +148,7 @@ (defvar mu4e--server-buf nil "Buffer (string) for data received from the backend.") -(defconst mu4e--server-name "*mu4e-server*" +(defconst mu4e--server-name " *mu4e-server*" "Name of the server process, buffer.") (defvar mu4e--server-process nil "The mu-server process.") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.8.11/mu4e/mu4e-view.el new/mu-1.8.13/mu4e/mu4e-view.el --- old/mu-1.8.11/mu4e/mu4e-view.el 2022-10-24 22:19:15.000000000 +0200 +++ new/mu-1.8.13/mu4e/mu4e-view.el 2022-12-06 09:23:41.000000000 +0100 @@ -697,9 +697,10 @@ "Show current MSG in an embedded xwidget, if available." (unless (fboundp 'xwidget-webkit-browse-url) (mu4e-error "No xwidget support available")) - (let ((browse-url-browser-function - (lambda (url &optional _rest) - (xwidget-webkit-browse-url url)))) + (let ((browse-url-handlers nil) + (browse-url-browser-function + (lambda (url &optional _rest) + (xwidget-webkit-browse-url url)))) (mu4e-action-view-in-browser msg))) (defun mu4e~view-render-buffer (msg)