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 2023-01-30 17:10:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/maildir-utils (Old) and /work/SRC/openSUSE:Factory/.maildir-utils.new.32243 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "maildir-utils" Mon Jan 30 17:10:03 2023 rev:39 rq:1061865 version:1.8.14 Changes: -------- --- /work/SRC/openSUSE:Factory/maildir-utils/maildir-utils.changes 2022-12-06 14:24:30.426205745 +0100 +++ /work/SRC/openSUSE:Factory/.maildir-utils.new.32243/maildir-utils.changes 2023-01-30 17:25:53.985351737 +0100 @@ -1,0 +2,11 @@ +Sun Jan 29 11:27:41 UTC 2023 - Michael Vetter <mvet...@suse.com> + +- Update to 1.8.14: + * create mu cache path if needed + * fix empty 'To:' header on reply to icalendar invitation + * use const char* from for time_to_string (avoids crash in some configs) + * mu4e-headers: appease byte-compiler + * mu4e-headers: fallback to :subject for :thread-subject + * mu-query-match-decider: add 'Related' to flags (rather than replace) + +------------------------------------------------------------------- Old: ---- mu-1.8.13.tar.xz New: ---- mu-1.8.14.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ maildir-utils.spec ++++++ --- /var/tmp/diff_new_pack.u3iUlr/_old 2023-01-30 17:25:54.465354318 +0100 +++ /var/tmp/diff_new_pack.u3iUlr/_new 2023-01-30 17:25:54.469354339 +0100 @@ -1,7 +1,7 @@ # # spec file for package maildir-utils # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: maildir-utils -Version: 1.8.13 +Version: 1.8.14 Release: 0 Summary: Maildir indexer and searcher License: GPL-3.0-or-later ++++++ mu-1.8.13.tar.xz -> mu-1.8.14.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.8.13/configure.ac new/mu-1.8.14/configure.ac --- old/mu-1.8.13/configure.ac 2022-12-06 09:23:41.000000000 +0100 +++ new/mu-1.8.14/configure.ac 2023-01-29 11:18:51.000000000 +0100 @@ -1,4 +1,4 @@ -## Copyright (C) 2008-2022 Dirk-Jan C. Binnema <d...@djcbsoftware.nl> +## Copyright (C) 2008-2023 Dirk-Jan C. Binnema <d...@djcbsoftware.nl> ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -43,10 +43,10 @@ extra_flags="-Wformat-security \ - -Wstack-protector \ - -Wstack-protector-all \ - -Wno-cast-function-type \ - -Wno-bad-function-cast \ + -Wstack-protector \ + -Wstack-protector-all \ + -Wno-cast-function-type \ + -Wno-bad-function-cast \ -Wno-switch-enum" AX_CXX_COMPILE_STDCXX_17 @@ -69,7 +69,7 @@ # asan is somewhat similar to valgrind, but has low enough overhead so it # can be used during normal operation. AC_ARG_ENABLE([asan],[AS_HELP_STRING([--enable-asan], - [Enable Address Sanitizer])], [use_asan=$enableval], [use_asan=no]) + [Enable Address Sanitizer])], [use_asan=$enableval], [use_asan=no]) AS_IF([test "x$use_asan" = "xyes"],[ AC_SUBST(ASAN_CFLAGS, "-fsanitize=address -static-libasan -fno-omit-frame-pointer") AC_SUBST(ASAN_CXXFLAGS,"-fsanitize=address -static-libasan -fno-omit-frame-pointer") @@ -219,7 +219,7 @@ ]) AM_CONDITIONAL(BUILD_GUILE,[test "x$have_guile" = "xyes" -a \ - "x$ac_cv_prog_GUILE_SNARF" != "xno"]) + "x$ac_cv_prog_GUILE_SNARF" != "xno"]) AM_COND_IF([BUILD_GUILE],[AC_DEFINE(BUILD_GUILE,[1], [Do we support Guile?])]) ############################################################################### diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.8.13/lib/mu-query-match-deciders.cc new/mu-1.8.14/lib/mu-query-match-deciders.cc --- old/mu-1.8.13/lib/mu-query-match-deciders.cc 2022-12-06 09:23:41.000000000 +0100 +++ new/mu-1.8.14/lib/mu-query-match-deciders.cc 2023-01-29 11:18:51.000000000 +0100 @@ -180,7 +180,7 @@ auto qm{make_query_match(doc)}; if (should_include(qm)) { - qm.flags = QueryMatch::Flags::Related; + qm.flags |= QueryMatch::Flags::Related; decider_info_.matches.emplace(doc.get_docid(), std::move(qm)); return true; } else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.8.13/lib/mu-store.cc new/mu-1.8.14/lib/mu-store.cc --- old/mu-1.8.13/lib/mu-store.cc 2022-12-06 09:23:41.000000000 +0100 +++ new/mu-1.8.14/lib/mu-store.cc 2023-01-29 11:18:51.000000000 +0100 @@ -116,6 +116,11 @@ * backstop*/ g_setenv("XAPIAN_FLUSH_THRESHOLD", "500000", 1); + if (g_mkdir_with_parents(db_path.c_str(), 0700) != 0) + throw Mu::Error(Error::Code::Internal, + "failed to create database dir %s: %s", + db_path.c_str(), ::strerror(errno)); + switch (opts) { case XapianOpts::ReadOnly: return std::make_unique<Xapian::Database>(db_path); @@ -135,6 +140,8 @@ } catch (const Xapian::DatabaseError& xde) { throw Mu::Error(Error::Code::Store, "%s", xde.get_msg().c_str()); + } catch (const Mu::Error& me) { + throw; } catch (...) { throw Mu::Error(Error::Code::Internal, "something went wrong when opening store @ %s", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.8.13/lib/utils/mu-utils.cc new/mu-1.8.14/lib/utils/mu-utils.cc --- old/mu-1.8.13/lib/utils/mu-utils.cc 2022-12-06 09:23:41.000000000 +0100 +++ new/mu-1.8.14/lib/utils/mu-utils.cc 2023-01-29 11:18:51.000000000 +0100 @@ -346,12 +346,9 @@ } std::string -Mu::time_to_string(const std::string& frm_, time_t t, bool utc) +Mu::time_to_string(const char *frm, time_t t, bool utc) { - /* Temporary hack... https://github.com/djcb/mu/issues/2230 */ - const auto frm = - g_utf8_validate(frm_.c_str(), frm_.length(), {}) ? - frm_ : "%c"; + g_return_val_if_fail(frm, ""); GDateTime* dt = std::invoke([&] { if (utc) @@ -366,10 +363,11 @@ return {}; } - auto datestr{to_string_opt_gchar(g_date_time_format(dt, frm.c_str()))}; + frm = frm ? frm : "%c"; + auto datestr{to_string_opt_gchar(g_date_time_format(dt, frm))}; g_date_time_unref(dt); if (!datestr) - g_warning("failed to format time with format '%s'", frm.c_str()); + g_warning("failed to format time with format '%s'", frm); return datestr.value_or(""); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.8.13/lib/utils/mu-utils.hh new/mu-1.8.14/lib/utils/mu-utils.hh --- old/mu-1.8.13/lib/utils/mu-utils.hh 2022-12-06 09:23:41.000000000 +0100 +++ new/mu-1.8.14/lib/utils/mu-utils.hh 2023-01-29 11:18:51.000000000 +0100 @@ -153,7 +153,7 @@ * @return a string representation of the time in UTF8-format, or empty in case * of error. */ -std::string time_to_string(const std::string& frm, time_t t, bool utc = false) G_GNUC_CONST; +std::string time_to_string(const char *frm, time_t t, bool utc = false) G_GNUC_CONST; /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.8.13/meson.build new/mu-1.8.14/meson.build --- old/mu-1.8.13/meson.build 2022-12-06 09:23:41.000000000 +0100 +++ new/mu-1.8.14/meson.build 2023-01-29 11:18:51.000000000 +0100 @@ -1,4 +1,4 @@ -## Copyright (C) 2022 Dirk-Jan C. Binnema <d...@djcbsoftware.nl> +## Copyright (C) 2022-2023 Dirk-Jan C. Binnema <d...@djcbsoftware.nl> ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -18,15 +18,15 @@ # project setup # project('mu', ['c', 'cpp'], - version: '1.8.13', - meson_version: '>= 0.52.0', # debian 10 - license: 'GPL-3.0-or-later', - default_options : [ - 'buildtype=debugoptimized', - 'warning_level=3', - 'c_std=c11', - 'cpp_std=c++17' - ] + version: '1.8.14', + meson_version: '>= 0.52.0', # debian 10 + license: 'GPL-3.0-or-later', + default_options : [ + 'buildtype=debugoptimized', + 'warning_level=3', + 'c_std=c11', + 'cpp_std=c++17' + ] ) # installation paths @@ -178,8 +178,8 @@ run_command('date', '+%B %Y', check:true).stdout().strip()) configure_file(input: 'version.texi.in', - output: 'version.texi', - configuration: version_texi_data) + output: 'version.texi', + configuration: version_texi_data) ################################################################################ # install some data files diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.8.13/mu4e/mu4e-headers.el new/mu-1.8.14/mu4e/mu4e-headers.el --- old/mu-1.8.13/mu4e/mu4e-headers.el 2022-12-06 09:23:41.000000000 +0100 +++ new/mu-1.8.14/mu4e/mu4e-headers.el 2023-01-29 11:18:51.000000000 +0100 @@ -567,7 +567,7 @@ Otherwise, return the thread-prefix without the subject-text. In other words, show the subject of a thread only once, similar to e.g. \"mutt\"." - (let* ((tinfo (mu4e-message-field msg :meta)) + (let* ((tinfo (mu4e-message-field msg :meta)) (subj (mu4e-msg-field msg :subject))) (concat ;; prefix subject with a thread indicator (mu4e~headers-thread-prefix tinfo) @@ -590,7 +590,7 @@ field (cdr item))))) (funcall func msg))) -(defsubst mu4e~headers-field-value (msg field) +(defun mu4e~headers-field-value (msg field) (let ((val (mu4e-message-field msg field))) (cl-case field (:subject @@ -600,7 +600,10 @@ ;; work-around: emacs' display gets really slow when lines are too long; ;; so limit subject length to 600 (truncate-string-to-width val 600))) - (:thread-subject (mu4e~headers-thread-subject msg)) + (:thread-subject ;; if not searching threads, fall back to :subject + (if mu4e-search-threads + (mu4e~headers-thread-subject msg) + (mu4e~headers-field-value msg :subject))) ((:maildir :path :message-id) val) ((:to :from :cc :bcc) (mu4e~headers-contact-str val)) ;; if we (ie. `user-mail-address' is the 'From', show @@ -619,7 +622,7 @@ (:size (mu4e-display-size val)) (t (mu4e~headers-custom-field-value msg field))))) -(defun mu4e~headers-truncate-field-fast (val width) +(defsubst mu4e~headers-truncate-field-fast (val width) "Truncate VAL to WIDTH. Fast and somewhat inaccurate." (if width (truncate-string-to-width val width 0 ?\s truncate-string-ellipsis) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.8.13/mu4e/mu4e-icalendar.el new/mu-1.8.14/mu4e/mu4e-icalendar.el --- old/mu-1.8.13/mu4e/mu4e-icalendar.el 2022-12-06 09:23:41.000000000 +0100 +++ new/mu-1.8.14/mu4e/mu4e-icalendar.el 2023-01-29 11:18:51.000000000 +0100 @@ -136,18 +136,19 @@ (mu4e-sent-messages-behavior 'delete) (mu4e-compose-reply-recipients 'sender) (ical-msg (cl-copy-list msg))) - ;; Make sure the reply is sent to the organiser. + ;; Make sure the reply is sent to email of the organiser with proper name. (let* ((organizer (gnus-icalendar-event:organizer event)) - (reply-to (plist-get msg :reply-to)) - (name (or (caar reply-to) - (caar (plist-get msg :from)))) - (email (cons name organizer))) + (reply-to (car (plist-get msg :reply-to))) + (from (car (plist-get msg :from))) + (name (or (plist-get reply-to :name) + (plist-get from :name)))) + ;; Add :reply-to field when incomplete or absent (unless (or (string= organizer "") (mu4e~icalendar-has-email organizer reply-to)) - (plist-put ical-msg :reply-to (cons email reply-to)))) - (plist-put ical-msg :subject - (concat (capitalize (symbol-name status)) - ": " (gnus-icalendar-event:summary event))) + (plist-put ical-msg :reply-to `((:name ,name :email ,organizer)))) + (plist-put ical-msg :subject + (concat (capitalize (symbol-name status)) + ": " (gnus-icalendar-event:summary event)))) (mu4e~compose-handler 'reply ical-msg `((:buffer-name ,ical-name