Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package mutt for openSUSE:Factory checked in at 2026-09-14 16:25:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mutt (Old) and /work/SRC/openSUSE:Factory/.mutt.new.1265 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mutt" Mon Sep 14 16:25:58 2026 rev:126 rq:1377855 version:2.4.2 Changes: -------- --- /work/SRC/openSUSE:Factory/mutt/mutt.changes 2026-05-05 16:22:40.814101738 +0200 +++ /work/SRC/openSUSE:Factory/.mutt.new.1265/mutt.changes 2026-09-14 16:26:06.011921163 +0200 @@ -1,0 +2,33 @@ +Mon Sep 14 09:09:25 UTC 2026 - Dominique Leuenberger <[email protected]> + +- Use https://ftp.osuosl.org to download assets: ftp.mutt.org is an + alias, but without valid ssl certs. +- Use http://www.mutt.org as URL: there is no valid cert to + advertise https:// to the users. + +------------------------------------------------------------------- +Tue Sep 8 13:50:05 UTC 2026 - Dr. Werner Fink <[email protected]> + +- Use ftp instead of https for ftp.mutt.org + +------------------------------------------------------------------- +Mon Sep 7 11:14:35 UTC 2026 - Dr. Werner Fink <[email protected]> + +- Update to mutt 2.4.2 (Bug fix release) + * This is a bug-fix release, fixing several small issues, including + a sporadic compose-menu prompt to update attachment encoding + occurring with recent Linux kernels + * 2.4.1 was a bug-fix release, fixing compilation with OpenSSL 4, + Alt keybindings in the foot terminal, a minor crash bug, and a + theoretical IMAP overflow bug. See the UPDATING file for more details. + * 2.4.0 was release that has new features and bug fixes. + See the UPDATING file, or for more details see the release notes page. + * 2.3.3 was a bug-fix release, fixing a crash bug for deeply nested + message types and a configure bug for the bundled-regex option. + +------------------------------------------------------------------- +Mon Sep 7 10:52:05 UTC 2026 - Dr. Werner Fink <[email protected]> + +- Fix python macro usage + +------------------------------------------------------------------- Old: ---- mutt-2.3.2.tar.gz mutt-2.3.2.tar.gz.asc New: ---- mutt-2.4.2.tar.gz mutt-2.4.2.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mutt.spec ++++++ --- /var/tmp/diff_new_pack.vxTA8G/_old 2026-09-14 16:26:08.956044524 +0200 +++ /var/tmp/diff_new_pack.vxTA8G/_new 2026-09-14 16:26:08.959044650 +0200 @@ -20,15 +20,15 @@ %bcond_with mutt_openssl %bcond_without mutt_gnutls Name: mutt -Version: 2.3.2 +Version: 2.4.2 Release: 0 Summary: Mail Program # ftp://ftp.mutt.org/mutt/devel/ # https:///bitbucket.org/mutt/mutt/downloads/%%name-%%version.tar.gz License: GPL-2.0-or-later Group: Productivity/Networking/Email/Clients -URL: https://www.mutt.org -Source0: https://bitbucket.org/mutt/mutt/downloads/mutt-%{version}.tar.gz +URL: http://www.mutt.org +Source0: https://ftp.osuosl.org/pub/mutt/mutt-%{version}.tar.gz Source1: Signature_conversion Source2: README.alternates Source3: mutt.png @@ -38,7 +38,7 @@ Source7: mutt_oauth2.py.README Source8: backports-datetime-fromisoformat-1.0.0.tar.gz Source9: mutt.mailcap -Source10: https://bitbucket.org/mutt/mutt/downloads/mutt-%{version}.tar.gz.asc +Source10: https://ftp.osuosl.org/pub/mutt/mutt-%{version}.tar.gz.asc Source11: mutt.keyring Patch0: %{name}-1.13.3.dif # http://www.spinnaker.de/mutt/compressed/ @@ -83,6 +83,7 @@ BuildRequires: pkgconfig(zlib) BuildRequires: tex(8r.enc) %if 0%{suse_version} >= 1500 +BuildRequires: python-rpm-macros BuildRequires: python3-base BuildRequires: python3-devel BuildRequires: python3-setuptools @@ -349,9 +350,9 @@ %if 0%{suse_version} >= 1500 %{_docdir}/%{name}/mutt_oauth2.py %{_docdir}/%{name}/mutt_oauth2.py.README -%if %{?pkg_vcmp:%{pkg_vcmp python3-base < 3.7.0}}%{!?pkg_vcmp:0} -%{python3_sitearch}/backports -%{python3_sitearch}/backports_datetime_fromisoformat-1.0.0-py3.6.egg-info +%if 0%{?python_version_nodots} < 37 +%{python_sitearch}/backports +%{python_sitearch}/backports_datetime_fromisoformat-1.0.0-py%{python_version}.egg-info %endif %endif ++++++ bsc907453-CVE-2014-9116-jessie.patch ++++++ --- /var/tmp/diff_new_pack.vxTA8G/_old 2026-09-14 16:26:09.021047248 +0200 +++ /var/tmp/diff_new_pack.vxTA8G/_new 2026-09-14 16:26:09.025047416 +0200 @@ -18,7 +18,7 @@ --- lib.c +++ lib.c 2019-01-02 13:25:44.767193676 +0000 -@@ -675,6 +675,9 @@ char *mutt_substrdup (const char *begin, +@@ -676,6 +676,9 @@ char *mutt_substrdup (const char *begin, size_t len; char *p; ++++++ mutt-1.13.3.dif ++++++ --- /var/tmp/diff_new_pack.vxTA8G/_old 2026-09-14 16:26:09.043048170 +0200 +++ /var/tmp/diff_new_pack.vxTA8G/_new 2026-09-14 16:26:09.051048505 +0200 @@ -6,7 +6,7 @@ 4 files changed, 39 insertions(+), 7 deletions(-) --- configure.ac -+++ configure.ac 2020-01-14 13:04:28.102878757 +0000 ++++ configure.ac 2026-09-07 11:28:13.667631479 +0000 @@ -298,7 +298,7 @@ main () mutt_cv_slang=$withval if test -d $withval/include/slang; then @@ -16,22 +16,22 @@ CPPFLAGS="$CPPFLAGS -I${withval}/include" fi LDFLAGS="$LDFLAGS -L${withval}/lib" -@@ -747,8 +747,12 @@ AC_ARG_WITH(ssl, AS_HELP_STRING([--with- - else +@@ -751,8 +751,12 @@ AC_ARG_WITH(ssl, AS_HELP_STRING([--with- + else if test "$with_ssl" != "yes" then - LDFLAGS="$LDFLAGS -L$withval/lib" - CPPFLAGS="$CPPFLAGS -I$withval/include" -+ case $withval in /usr|/usr/local) ;; ++ case $with_ssl in /usr|/usr/local) ;; + *) -+ LDFLAGS="$LDFLAGS -L$withval/lib" -+ CPPFLAGS="$CPPFLAGS -I$withval/include" ++ LDFLAGS="$LDFLAGS -L$with_ssl/lib" ++ CPPFLAGS="$CPPFLAGS -I$with_ssl/include" + ;; + esac fi saved_LIBS="$LIBS" -@@ -835,8 +839,12 @@ AC_ARG_WITH(sasl, AS_HELP_STRING([--with +@@ -839,8 +843,12 @@ AC_ARG_WITH(sasl, AS_HELP_STRING([--with if test "$with_sasl" != "yes" then @@ -47,7 +47,7 @@ saved_LIBS="$LIBS" --- doc/Muttrc.head -+++ doc/Muttrc.head 2020-01-14 13:05:31.265704120 +0000 ++++ doc/Muttrc.head 2026-09-07 11:21:35.050729687 +0000 @@ -23,7 +23,7 @@ macro index,pager,attach,compose \cb "\ "call urlview to extract URLs out of a message" @@ -58,47 +58,47 @@ # show the incoming mailboxes list (just like "mutt -y") and back when pressing "y" # note: these macros have been subsumed by the <browse-mailboxes> function. --- imap/auth.c -+++ imap/auth.c 2020-01-14 13:04:28.102878757 +0000 -@@ -79,6 +79,25 @@ int imap_authenticate (IMAP_DATA* idata) - dprint (2, (debugfile, "imap_authenticate: Trying method %s\n", method)); ++++ imap/auth.c 2026-09-07 11:32:06.795479596 +0000 +@@ -79,6 +79,25 @@ int imap_authenticate(IMAP_DATA *idata) + muttdbg(2, "imap_authenticate: Trying method %s", method); authenticator = imap_authenticators; +#ifdef USE_SASL + /* "login" not supported by SASL */ + if (!ascii_strcasecmp ("login", method)) + { -+ while (authenticator->authenticate) -+ { -+ const char *identify = authenticator->method; -+ if (identify && !ascii_strcasecmp(identify, method)) -+ if ((r = authenticator->authenticate(idata, method)) != -+ IMAP_AUTH_UNAVAIL) -+ { -+ FREE(&methods); -+ return r; -+ } ++ while (authenticator->authenticate) ++ { ++ const char *identify = authenticator->method; ++ if (identify && !ascii_strcasecmp(identify, method)) ++ if ((r = authenticator->authenticate(idata, method)) != ++ IMAP_AUTH_UNAVAIL) ++ { ++ FREE(&methods); ++ return r; ++ } + -+ authenticator++; -+ } ++ authenticator++; ++ } + } else { +#endif while (authenticator->authenticate) { - if (!authenticator->method || -@@ -93,7 +112,9 @@ int imap_authenticate (IMAP_DATA* idata) - authenticator++; + if (!authenticator->method || +@@ -93,7 +112,9 @@ int imap_authenticate(IMAP_DATA *idata) + authenticator++; } } - +#ifdef USE_SASL + } +#endif - FREE (&methods); + FREE(&methods); } else --- mx.c -+++ mx.c 2020-01-14 13:04:28.102878757 +0000 -@@ -1501,6 +1501,9 @@ void mx_update_context (CONTEXT *ctx, in ++++ mx.c 2026-09-07 11:21:35.050729687 +0000 +@@ -1499,6 +1499,9 @@ void mx_update_context(CONTEXT *ctx, int { h = ctx->hdrs[msgno]; ++++++ mutt-1.5.15-wrapcolumn.diff ++++++ --- /var/tmp/diff_new_pack.vxTA8G/_old 2026-09-14 16:26:09.068049217 +0200 +++ /var/tmp/diff_new_pack.vxTA8G/_new 2026-09-14 16:26:09.071049343 +0200 @@ -6,7 +6,7 @@ --- init.h +++ init.h 2020-01-14 13:28:27.408149074 +0000 -@@ -4889,6 +4889,7 @@ struct option_t MuttVars[] = { +@@ -4931,6 +4931,7 @@ struct option_t MuttVars[] = { ** Also see $$copy_decode_weed, $$pipe_decode_weed, $$print_decode_weed. */ { "wrap", DT_NUM, R_PAGER_FLOW, {.p=&Wrap}, {.l=0} }, ++++++ mutt-1.5.20-sendgroupreplyto.diff ++++++ --- /var/tmp/diff_new_pack.vxTA8G/_old 2026-09-14 16:26:09.083049846 +0200 +++ /var/tmp/diff_new_pack.vxTA8G/_new 2026-09-14 16:26:09.092050223 +0200 @@ -5,24 +5,24 @@ 3 files changed, 14 insertions(+), 3 deletions(-) --- init.h -+++ init.h 2020-01-14 13:12:26.725982952 +0000 -@@ -3492,6 +3492,13 @@ struct option_t MuttVars[] = { ++++ init.h 2026-09-07 11:51:23.794925171 +0000 +@@ -3494,6 +3494,13 @@ struct option_t MuttVars[] = { ** .pp ** Also see the $$force_name variable. */ -+ { "send_group_reply_to", DT_BOOL, R_NONE, {.l=OPTSENDGROUPREPLYTO}, {.l=0} }, ++ { "send_group_reply_to", DT_BOOL, R_NONE, {.l=OPTSENDGROUPREPLYTO}, {.l=0} }, + /* + ** .pp + ** This variable controls how group replies are done. + ** When set, all recepients listet in "To:" are set in the + ** "To:" header again, else in the "CC", which is the default. + */ - { "score", DT_BOOL, R_NONE, {.l=OPTSCORE}, {.l=1} }, + { "score", DT_BOOL, R_NONE, {.l=OPTSCORE}, {.l=1} }, /* ** .pp --- mutt.h -+++ mutt.h 2020-01-14 13:07:33.727426389 +0000 -@@ -540,6 +540,7 @@ enum ++++ mutt.h 2026-09-07 11:33:55.253547888 +0000 +@@ -538,6 +538,7 @@ enum OPTSAVEADDRESS, OPTSAVEEMPTY, OPTSAVENAME, @@ -31,21 +31,21 @@ #ifdef USE_SIDEBAR OPTSIDEBAR, --- send.c -+++ send.c 2020-01-14 13:07:33.727426389 +0000 -@@ -700,9 +700,12 @@ int mutt_fetch_recips (ENVELOPE *out, EN ++++ send.c 2026-09-07 11:53:16.068931144 +0000 +@@ -699,9 +699,12 @@ int mutt_fetch_recips(ENVELOPE *out, ENV (!in->mail_followup_to || hmfupto != MUTT_YES)) { /* if (!mutt_addr_is_user(in->to)) */ - if (flags & SENDGROUPREPLY) -- rfc822_append (&out->cc, in->to, 1); +- rfc822_append(&out->cc, in->to, 1); - else + if (flags & SENDGROUPREPLY) { -+ if (option (OPTSENDGROUPREPLYTO)) ++ if (option (OPTSENDGROUPREPLYTO)) + rfc822_append (&out->to, in->to, 1); -+ else ++ else + rfc822_append (&out->cc, in->to, 1); + } else - rfc822_append (&out->to, in->to, 1); - rfc822_append (&out->cc, in->cc, 1); + rfc822_append(&out->to, in->to, 1); + rfc822_append(&out->cc, in->cc, 1); } ++++++ mutt-1.5.21-mailcap.diff ++++++ --- /var/tmp/diff_new_pack.vxTA8G/_old 2026-09-14 16:26:09.104050726 +0200 +++ /var/tmp/diff_new_pack.vxTA8G/_new 2026-09-14 16:26:09.112051061 +0200 @@ -8,14 +8,14 @@ 1 file changed, 1 insertion(+), 1 deletion(-) --- init.c -+++ init.c 2019-01-02 13:25:20.795634552 +0000 -@@ -3854,7 +3854,7 @@ void mutt_init (int skip_sys_rc, LIST *c ++++ init.c 2026-09-07 12:30:47.628932167 +0000 +@@ -3848,7 +3848,7 @@ void mutt_init(int skip_sys_rc, LIST *co else { /* Default search path from RFC1524 */ -- MailcapPath = safe_strdup ("~/.mailcap:" PKGDATADIR "/mailcap:" SYSCONFDIR "/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap"); -+ MailcapPath = safe_strdup ("~/.mailcap:" PKGDATADIR "/mailcap:" SYSCONFDIR "/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap:" SYSCONFDIR "/mutt/mailcap"); +- MailcapPath = safe_strdup("~/.mailcap:" PKGDATADIR "/mailcap:" SYSCONFDIR "/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap"); ++ MailcapPath = safe_strdup("~/.mailcap:" PKGDATADIR "/mailcap:" SYSCONFDIR "/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap:" SYSCONFDIR "/mutt/mailcap"); } - Tempdir = safe_strdup ((p = getenv ("TMPDIR")) ? p : "/tmp"); + Tempdir = safe_strdup((p = getenv("TMPDIR")) ? p : "/tmp"); ++++++ mutt-1.5.23-carriage-return.path ++++++ --- /var/tmp/diff_new_pack.vxTA8G/_old 2026-09-14 16:26:09.129051773 +0200 +++ /var/tmp/diff_new_pack.vxTA8G/_new 2026-09-14 16:26:09.132051899 +0200 @@ -7,19 +7,19 @@ 5 files changed, 26 insertions(+), 14 deletions(-) --- crypt-gpgme.c -+++ crypt-gpgme.c 2019-11-13 13:46:16.512388398 +0000 -@@ -2733,7 +2733,7 @@ static void copy_clearsigned (gpgme_data ++++ crypt-gpgme.c 2026-09-07 12:23:13.828994085 +0000 +@@ -2731,7 +2731,7 @@ static void copy_clearsigned(gpgme_data_ if (armor_header) { - if (buf[0] == '\n') + if (buf[0] == '\n' || (buf[0] == '\r' && buf[1] == '\n')) - armor_header = 0; + armor_header = 0; continue; } --- lib.c -+++ lib.c 2019-11-13 13:42:00.245189313 +0000 -@@ -693,6 +693,17 @@ int mutt_strcmp(const char *a, const cha ++++ lib.c 2026-09-07 12:17:15.575357607 +0000 +@@ -694,6 +694,17 @@ int mutt_strcmp(const char *a, const cha return strcmp(NONULL(a), NONULL(b)); } @@ -38,91 +38,91 @@ { return strcasecmp(NONULL(a), NONULL(b)); --- lib.h -+++ lib.h 2019-11-13 13:47:17.399247662 +0000 -@@ -225,6 +225,7 @@ int mutt_copy_stream (FILE *, FILE *); - int mutt_copy_bytes (FILE *, FILE *, size_t); - int mutt_strcasecmp (const char *, const char *); - int mutt_strcmp (const char *, const char *); -+int mutt_strxcmp (const char *, const char *); - int mutt_strncasecmp (const char *, const char *, size_t); - int mutt_strncmp (const char *, const char *, size_t); - int mutt_strcoll (const char *, const char *); ++++ lib.h 2026-09-07 12:23:47.140402342 +0000 +@@ -241,6 +241,7 @@ int mutt_copy_stream(FILE *, FILE *); + int mutt_copy_bytes(FILE *, FILE *, size_t); + int mutt_strcasecmp(const char *, const char *); + int mutt_strcmp(const char *, const char *); ++int mutt_strxcmp(const char *, const char *); + int mutt_strncasecmp(const char *, const char *, size_t); + int mutt_strncmp(const char *, const char *, size_t); + int mutt_strcoll(const char *, const char *); --- pager.c -+++ pager.c 2019-11-13 13:48:32.257845120 +0000 -@@ -975,7 +975,7 @@ resolve_types (char *buf, char *raw, str ++++ pager.c 2026-09-07 12:27:34.016371928 +0000 +@@ -974,7 +974,7 @@ resolve_types(char *buf, char *raw, stru lineInfo[n].type = MT_COLOR_NORMAL; - else if (check_attachment_marker ((char *) raw) == 0) + else if (check_attachment_marker((char *) raw) == 0) lineInfo[n].type = MT_COLOR_ATTACHMENT; -- else if (mutt_strcmp ("-- \n", buf) == 0 || mutt_strcmp ("-- \r\n", buf) == 0) -+ else if (mutt_strxcmp ("-- \n", buf) == 0) +- else if (mutt_strcmp("-- \n", buf) == 0 || mutt_strcmp("-- \r\n", buf) == 0) ++ else if (mutt_strxcmp("-- \n", buf) == 0) { i = n + 1; --- pgp.c -+++ pgp.c 2019-11-13 13:51:06.746954963 +0000 -@@ -371,7 +371,7 @@ static void pgp_copy_clearsigned (FILE * ++++ pgp.c 2026-09-07 12:25:45.898292670 +0000 +@@ -363,7 +363,7 @@ static void pgp_copy_clearsigned(FILE *f continue; } -- if (mutt_strcmp (buf, "-----BEGIN PGP SIGNATURE-----\n") == 0) -+ if (mutt_strxcmp (buf, "-----BEGIN PGP SIGNATURE-----\n") == 0) +- if (mutt_strcmp(buf, "-----BEGIN PGP SIGNATURE-----\n") == 0) ++ if (mutt_strxcmp(buf, "-----BEGIN PGP SIGNATURE-----\n") == 0) break; if (armor_header) -@@ -446,11 +446,11 @@ int pgp_application_pgp_handler (BODY *m +@@ -438,11 +438,11 @@ int pgp_application_pgp_handler(BODY *m, could_not_decrypt = 0; decrypt_okay_rc = 0; -- if (mutt_strcmp ("MESSAGE-----\n", buf + 15) == 0) -+ if (mutt_strxcmp ("MESSAGE-----\n", buf + 15) == 0) +- if (mutt_strcmp("MESSAGE-----\n", buf + 15) == 0) ++ if (mutt_strxcmp("MESSAGE-----\n", buf + 15) == 0) needpass = 1; -- else if (mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0) -+ else if (mutt_strxcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0) - clearsign = 1; -- else if (!mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15)) -+ else if (!mutt_strxcmp ("PUBLIC KEY BLOCK-----\n", buf + 15)) +- else if (mutt_strcmp("SIGNED MESSAGE-----\n", buf + 15) == 0) ++ else if (mutt_strxcmp("SIGNED MESSAGE-----\n", buf + 15) == 0) + clearsign = 1; +- else if (!mutt_strcmp("PUBLIC KEY BLOCK-----\n", buf + 15)) ++ else if (!mutt_strxcmp("PUBLIC KEY BLOCK-----\n", buf + 15)) pgp_keyblock = 1; else { -@@ -480,10 +480,10 @@ int pgp_application_pgp_handler (BODY *m +@@ -472,10 +472,10 @@ int pgp_application_pgp_handler(BODY *m, - fputs (buf, tmpfp); + fputs(buf, tmpfp); -- if ((needpass && mutt_strcmp ("-----END PGP MESSAGE-----\n", buf) == 0) || -+ if ((needpass && mutt_strxcmp ("-----END PGP MESSAGE-----\n", buf) == 0) || - (!needpass -- && (mutt_strcmp ("-----END PGP SIGNATURE-----\n", buf) == 0 -- || mutt_strcmp ("-----END PGP PUBLIC KEY BLOCK-----\n",buf) == 0))) -+ && (mutt_strxcmp ("-----END PGP SIGNATURE-----\n", buf) == 0 -+ || mutt_strxcmp ("-----END PGP PUBLIC KEY BLOCK-----\n",buf) == 0))) - break; - /* remember optional Charset: armor header as defined by RfC4880 */ - if (mutt_strncmp ("Charset: ", buf, 9) == 0) -@@ -746,11 +746,11 @@ static int pgp_check_traditional_one_bod +- if ((needpass && mutt_strcmp("-----END PGP MESSAGE-----\n", buf) == 0) || ++ if ((needpass && mutt_strxcmp("-----END PGP MESSAGE-----\n", buf) == 0) || + (!needpass +- && (mutt_strcmp("-----END PGP SIGNATURE-----\n", buf) == 0 +- || mutt_strcmp("-----END PGP PUBLIC KEY BLOCK-----\n",buf) == 0))) ++ && (mutt_strxcmp("-----END PGP SIGNATURE-----\n", buf) == 0 ++ || mutt_strxcmp("-----END PGP PUBLIC KEY BLOCK-----\n",buf) == 0))) + break; + /* remember optional Charset: armor header as defined by RfC4880 */ + if (mutt_strncmp("Charset: ", buf, 9) == 0) +@@ -752,11 +752,11 @@ static int pgp_check_traditional_one_bod { - if (mutt_strncmp ("-----BEGIN PGP ", buf, 15) == 0) + if (mutt_strncmp("-----BEGIN PGP ", buf, 15) == 0) { -- if (mutt_strcmp ("MESSAGE-----\n", buf + 15) == 0) -+ if (mutt_strxcmp ("MESSAGE-----\n", buf + 15) == 0) - enc = 1; -- else if (mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0) -+ else if (mutt_strxcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0) - sgn = 1; -- else if (mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15) == 0) -+ else if (mutt_strxcmp ("PUBLIC KEY BLOCK-----\n", buf + 15) == 0) - key = 1; +- if (mutt_strcmp("MESSAGE-----\n", buf + 15) == 0) ++ if (mutt_strxcmp("MESSAGE-----\n", buf + 15) == 0) + enc = 1; +- else if (mutt_strcmp("SIGNED MESSAGE-----\n", buf + 15) == 0) ++ else if (mutt_strxcmp("SIGNED MESSAGE-----\n", buf + 15) == 0) + sgn = 1; +- else if (mutt_strcmp("PUBLIC KEY BLOCK-----\n", buf + 15) == 0) ++ else if (mutt_strxcmp("PUBLIC KEY BLOCK-----\n", buf + 15) == 0) + key = 1; } } -@@ -1296,9 +1296,9 @@ BODY *pgp_sign_message (BODY *a) +@@ -1312,9 +1312,9 @@ BODY *pgp_sign_message(BODY *a) */ - while (fgets (buffer, sizeof (buffer) - 1, pgpout) != NULL) + while (fgets(buffer, sizeof(buffer) - 1, pgpout) != NULL) { -- if (mutt_strcmp ("-----BEGIN PGP MESSAGE-----\n", buffer) == 0) -+ if (mutt_strxcmp ("-----BEGIN PGP MESSAGE-----\n", buffer) == 0) - fputs ("-----BEGIN PGP SIGNATURE-----\n", fp); +- if (mutt_strcmp("-----BEGIN PGP MESSAGE-----\n", buffer) == 0) ++ if (mutt_strxcmp("-----BEGIN PGP MESSAGE-----\n", buffer) == 0) + fputs("-----BEGIN PGP SIGNATURE-----\n", fp); - else if (mutt_strcmp("-----END PGP MESSAGE-----\n", buffer) == 0) + else if (mutt_strxcmp("-----END PGP MESSAGE-----\n", buffer) == 0) - fputs ("-----END PGP SIGNATURE-----\n", fp); + fputs("-----END PGP SIGNATURE-----\n", fp); else - fputs (buffer, fp); + fputs(buffer, fp); ++++++ mutt-1.6.1-opennfs.dif ++++++ --- /var/tmp/diff_new_pack.vxTA8G/_old 2026-09-14 16:26:09.149052612 +0200 +++ /var/tmp/diff_new_pack.vxTA8G/_new 2026-09-14 16:26:09.152052737 +0200 @@ -1,15 +1,15 @@ --- Makefile.am | 4 - mbox.c | 5 ++ - mh.c | 9 +++- + mh.c | 8 +++ mutt.h | 3 + muttlib.c | 6 ++ opennfs.c | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sendlib.c | 4 + - 7 files changed, 149 insertions(+), 4 deletions(-) + 7 files changed, 149 insertions(+), 3 deletions(-) --- Makefile.am -+++ Makefile.am 2020-01-14 13:28:45.787807571 +0000 ++++ Makefile.am 2026-09-07 12:01:20.256330180 +0000 @@ -34,7 +34,7 @@ mutt_SOURCES = \ edit.c enter.c flags.c init.c filter.c from.c \ getdomain.c group.c \ @@ -29,51 +29,50 @@ mutt_pgpring_DEPENDENCIES = $(LIBOBJS) $(INTLDEPS) --- mbox.c -+++ mbox.c 2020-01-14 13:30:35.969760118 +0000 -@@ -893,8 +893,13 @@ static int mbox_sync_mailbox (CONTEXT *c ++++ mbox.c 2026-09-07 12:01:50.683789592 +0000 +@@ -933,8 +933,13 @@ static int mbox_sync_mailbox(CONTEXT *ct /* Create a temporary file to write the new version of the mailbox in. */ - tempfile = mutt_buffer_pool_get (); - mutt_buffer_mktemp (tempfile); + tempfile = mutt_buffer_pool_get(); + mutt_buffer_mktemp(tempfile); +#if defined(__linux__) -+ if ((i = opennfs (mutt_b2s (tempfile), O_WRONLY | O_EXCL | O_CREAT, 0600)) == -1 || -+ (fp = fdopen (i, "w")) == NULL) ++ if ((i = opennfs(mutt_b2s (tempfile), O_WRONLY | O_EXCL | O_CREAT, 0600)) == -1 || ++ (fp = fdopen(i, "w")) == NULL) +#else - if ((i = open (mutt_b2s (tempfile), O_WRONLY | O_EXCL | O_CREAT, 0600)) == -1 || - (fp = fdopen (i, "w")) == NULL) + if ((i = open(mutt_b2s(tempfile), O_WRONLY | O_EXCL | O_CREAT, 0600)) == -1 || + (fp = fdopen(i, "w")) == NULL) +#endif { if (-1 != i) { --- mh.c -+++ mh.c 2020-01-14 13:28:45.787807571 +0000 -@@ -369,7 +369,11 @@ static int mh_mkstemp (CONTEXT * dest, F ++++ mh.c 2026-09-07 12:03:57.157542505 +0000 +@@ -366,7 +366,11 @@ static int mh_mkstemp(CONTEXT * dest, FI { - mutt_buffer_printf (path, "%s/.mutt-%s-%d-%d", - dest->path, NONULL (Hostname), (int) getpid (), Counter++); + mutt_buffer_printf(path, "%s/.mutt-%s-%d-%d", + dest->path, NONULL(Hostname), (int) getpid(), Counter++); +#if defined(__linux__) -+ if ((fd = opennfs (mutt_b2s (path), O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1) ++ if ((fd = opennfs(mutt_b2s(path), O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1) +#else - if ((fd = open (mutt_b2s (path), O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1) + if ((fd = open(mutt_b2s(path), O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1) +#endif { if (errno != EEXIST) { -@@ -1559,8 +1563,11 @@ static int maildir_open_new_message (MES +@@ -1552,7 +1556,11 @@ static int maildir_open_new_message(MESS + muttdbg(2, "maildir_open_new_message (): Trying %s.", + mutt_b2s(path)); - dprint (2, (debugfile, "maildir_open_new_message (): Trying %s.\n", - mutt_b2s (path))); -- +#if defined(__linux__) -+ if ((fd = opennfs(mutt_b2s (path), O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1) ++ if ((fd = opennfs(mutt_b2s(path), O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1) +#else - if ((fd = open (mutt_b2s (path), O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1) + if ((fd = open(mutt_b2s(path), O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1) +#endif { if (errno != EEXIST) { --- mutt.h -+++ mutt.h 2020-01-14 13:28:45.787807571 +0000 -@@ -1223,4 +1223,7 @@ typedef struct ++++ mutt.h 2026-09-07 12:01:20.260330110 +0000 +@@ -1221,4 +1221,7 @@ typedef struct #include "lib.h" #include "globals.h" @@ -82,29 +81,29 @@ +#endif #endif /*MUTT_H*/ --- muttlib.c -+++ muttlib.c 2020-01-14 13:28:45.787807571 +0000 -@@ -2562,6 +2562,10 @@ int safe_open (const char *path, int fla ++++ muttlib.c 2026-09-07 12:05:57.587402650 +0000 +@@ -2637,6 +2637,10 @@ int safe_open(const char *path, int flag BUFFER *safe_file = NULL; BUFFER *safe_dir = NULL; +#if defined(__linux__) -+ if ((fd = opennfs (path, flags, 0600)) < 0) ++ if ((fd = opennfs(path, flags, 0600)) < 0) + return fd; +#else if (flags & O_EXCL) { - safe_file = mutt_buffer_pool_get (); -@@ -2590,7 +2594,7 @@ int safe_open (const char *path, int fla + safe_file = mutt_buffer_pool_get(); +@@ -2665,7 +2669,7 @@ int safe_open(const char *path, int flag - if ((fd = open (path, flags & ~O_EXCL, 0600)) < 0) + if ((fd = open(path, flags & ~O_EXCL, 0600)) < 0) goto cleanup; - +#endif /* make sure the file is not symlink */ - if (lstat (path, &osb) < 0 || fstat (fd, &nsb) < 0 || + if (lstat(path, &osb) < 0 || fstat(fd, &nsb) < 0 || compare_stat(&osb, &nsb) == -1) --- opennfs.c -+++ opennfs.c 2020-01-14 13:28:45.787807571 +0000 ++++ opennfs.c 2026-09-07 12:01:20.260330110 +0000 @@ -0,0 +1,122 @@ +#include <errno.h> +#include <fcntl.h> @@ -229,17 +228,17 @@ + return open(path, flags, mode); +} --- sendlib.c -+++ sendlib.c 2020-01-14 13:28:45.787807571 +0000 -@@ -2591,7 +2591,11 @@ send_msg (const char *path, char **args, ++++ sendlib.c 2026-09-07 12:06:54.982382778 +0000 +@@ -2634,7 +2634,11 @@ send_msg(const char *path, char **args, if (SendmailWait >= 0 && tempfile && *tempfile) { - /* *tempfile will be opened as stdout */ + /* *tempfile will be opened as stdout */ +#if defined(__linux__) -+ if (opennfs(*tempfile, O_WRONLY | O_APPEND | O_CREAT | O_EXCL, 0600) < 0) ++ if (opennfs(*tempfile, O_WRONLY | O_APPEND | O_CREAT | O_EXCL, 0600) < 0) +#else - if (open (*tempfile, O_WRONLY | O_APPEND | O_CREAT | O_EXCL, 0600) < 0) + if (open(*tempfile, O_WRONLY | O_APPEND | O_CREAT | O_EXCL, 0600) < 0) +#endif - _exit (S_ERR); - /* redirect stderr to *tempfile too */ - if (dup (1) < 0) + _exit(S_ERR); + /* redirect stderr to *tempfile too */ + if (dup(1) < 0) ++++++ mutt-2.3.2.tar.gz -> mutt-2.4.2.tar.gz ++++++ ++++ 312236 lines of diff (skipped) ++++++ mutt-Fix-SIGQUIT-handling.patch ++++++ --- /var/tmp/diff_new_pack.vxTA8G/_old 2026-09-14 16:26:09.877083117 +0200 +++ /var/tmp/diff_new_pack.vxTA8G/_new 2026-09-14 16:26:09.880083242 +0200 @@ -15,8 +15,8 @@ 1 file changed, 4 insertions(+), 1 deletion(-) --- signal.c -+++ signal.c 2019-11-14 08:40:31.823464569 +0000 -@@ -170,6 +170,7 @@ static void sighandler (int sig) ++++ signal.c 2026-09-07 12:34:35.768878697 +0000 +@@ -170,6 +170,7 @@ static void sighandler(int sig) break; #endif @@ -24,35 +24,35 @@ case SIGINT: SigInt = 1; break; -@@ -199,7 +200,6 @@ void mutt_signal_init (void) +@@ -199,7 +200,6 @@ void mutt_signal_init(void) act.sa_handler = exit_handler; - sigaction (SIGTERM, &act, NULL); - sigaction (SIGHUP, &act, NULL); -- sigaction (SIGQUIT, &act, NULL); + sigaction(SIGTERM, &act, NULL); + sigaction(SIGHUP, &act, NULL); +- sigaction(SIGQUIT, &act, NULL); /* we want to avoid race conditions */ - sigaddset (&act.sa_mask, SIGTSTP); -@@ -219,6 +219,7 @@ void mutt_signal_init (void) + sigaddset(&act.sa_mask, SIGTSTP); +@@ -219,6 +219,7 @@ void mutt_signal_init(void) - sigaction (SIGCONT, &act, NULL); - sigaction (SIGTSTP, &act, NULL); -+ sigaction (SIGQUIT, &act, NULL); - sigaction (SIGINT, &act, NULL); - #if defined (USE_SLANG_CURSES) || defined (HAVE_RESIZETERM) - sigaction (SIGWINCH, &act, NULL); -@@ -258,6 +259,7 @@ void mutt_block_signals (void) - sigaddset (&Sigset, SIGTERM); - sigaddset (&Sigset, SIGHUP); - sigaddset (&Sigset, SIGTSTP); -+ sigaddset (&Sigset, SIGQUIT); - sigaddset (&Sigset, SIGINT); - #if defined (USE_SLANG_CURSES) || defined (HAVE_RESIZETERM) - sigaddset (&Sigset, SIGWINCH); -@@ -358,5 +360,6 @@ void mutt_allow_interrupt (int dispositi + sigaction(SIGCONT, &act, NULL); + sigaction(SIGTSTP, &act, NULL); ++ sigaction(SIGQUIT, &act, NULL); + sigaction(SIGINT, &act, NULL); + #if defined(USE_SLANG_CURSES) || defined(HAVE_RESIZETERM) + sigaction(SIGWINCH, &act, NULL); +@@ -258,6 +259,7 @@ void mutt_block_signals(void) + sigaddset(&Sigset, SIGTERM); + sigaddset(&Sigset, SIGHUP); + sigaddset(&Sigset, SIGTSTP); ++ sigaddset(&Sigset, SIGQUIT); + sigaddset(&Sigset, SIGINT); + #if defined(USE_SLANG_CURSES) || defined(HAVE_RESIZETERM) + sigaddset(&Sigset, SIGWINCH); +@@ -358,5 +360,6 @@ void mutt_allow_interrupt(int dispositio if (disposition == 0) sa.sa_flags |= SA_RESTART; #endif -+ sigaction (SIGQUIT, &sa, NULL); - sigaction (SIGINT, &sa, NULL); ++ sigaction(SIGQUIT, &sa, NULL); + sigaction(SIGINT, &sa, NULL); } ++++++ patch-1.5.24.vk.pgp_verbose_mime ++++++ --- /var/tmp/diff_new_pack.vxTA8G/_old 2026-09-14 16:26:10.014088857 +0200 +++ /var/tmp/diff_new_pack.vxTA8G/_new 2026-09-14 16:26:10.023089234 +0200 @@ -5,8 +5,8 @@ 3 files changed, 16 insertions(+), 4 deletions(-) --- globals.h -+++ globals.h 2020-01-14 13:37:00.770606718 +0000 -@@ -284,6 +284,8 @@ WHERE char *PgpDefaultKey; ++++ globals.h 2026-09-07 12:08:12.145011607 +0000 +@@ -285,6 +285,8 @@ WHERE char *PgpDefaultKey; WHERE char *PgpSignAs; WHERE long PgpTimeout; WHERE char *PgpEntryFormat; @@ -16,8 +16,8 @@ WHERE char *PgpDecodeCommand; WHERE char *PgpVerifyCommand; --- init.h -+++ init.h 2020-01-14 13:41:15.145875625 +0000 -@@ -3875,9 +3875,18 @@ struct option_t MuttVars[] = { ++++ init.h 2026-09-07 12:09:05.068071138 +0000 +@@ -3877,9 +3877,18 @@ struct option_t MuttVars[] = { ** a line quoted text if it also matches $$smileys. This mostly ** happens at the beginning of a line. */ @@ -36,19 +36,19 @@ + ** This option sets the Content-Description used for signature parts in + ** PGP/MIME signed messages. + */ - { "smime_ask_cert_label", DT_BOOL, R_NONE, {.l=OPTASKCERTLABEL}, {.l=1} }, + { "smime_ask_cert_label", DT_BOOL, R_NONE, {.l=OPTASKCERTLABEL}, {.l=1} }, /* ** .pp --- pgp.c -+++ pgp.c 2020-01-14 13:42:29.880485319 +0000 -@@ -1359,7 +1359,8 @@ BODY *pgp_sign_message (BODY *a) ++++ pgp.c 2026-09-07 12:11:08.673874498 +0000 +@@ -1375,7 +1375,8 @@ BODY *pgp_sign_message(BODY *a) t->disposition = DISPNONE; t->encoding = ENC7BIT; t->unlink = 1; /* ok to remove this file after sending. */ -- mutt_set_parameter ("name", "signature.asc", &t->parameter); -+ mutt_set_parameter ("name", PgpMimeSignatureFilename, &t->parameter); -+ t->description = safe_strdup (PgpMimeSignatureDescription); +- mutt_set_parameter("name", "signature.asc", &t->parameter); ++ mutt_set_parameter("name", PgpMimeSignatureFilename, &t->parameter); ++ t->description = safe_strdup(PgpMimeSignatureDescription); cleanup: - mutt_buffer_pool_release (&sigfile); + mutt_buffer_pool_release(&sigfile); ++++++ widechar.sidebar.dif ++++++ --- /var/tmp/diff_new_pack.vxTA8G/_old 2026-09-14 16:26:10.070091204 +0200 +++ /var/tmp/diff_new_pack.vxTA8G/_new 2026-09-14 16:26:10.080091623 +0200 @@ -3,9 +3,9 @@ 1 file changed, 6 insertions(+), 5 deletions(-) --- handler.c -+++ handler.c 2022-01-11 10:41:03.491446992 +0000 -@@ -782,7 +782,7 @@ static void enriched_set_flags (const wc - static int text_enriched_handler (BODY *a, STATE *s) ++++ handler.c 2026-09-07 12:16:24.792259574 +0000 +@@ -781,7 +781,7 @@ static void enriched_set_flags(const wch + static int text_enriched_handler(BODY *a, STATE *s) { enum { - TEXT, LANGLE, TAG, BOGUS_TAG, NEWLINE, ST_EOF, DONE @@ -13,41 +13,41 @@ } state = TEXT; LOFF_T bytes = a->length; -@@ -812,7 +812,7 @@ static int text_enriched_handler (BODY * +@@ -811,7 +811,7 @@ static int text_enriched_handler(BODY *a { if (state != ST_EOF) { -- if (!bytes || (wc = fgetwc (s->fpin)) == WEOF) -+ if (state != TEXT_GOTWC && (!bytes || (wc = fgetwc (s->fpin)) == WEOF)) - state = ST_EOF; +- if (!bytes || (wc = fgetwc(s->fpin)) == WEOF) ++ if (state != TEXT_GOTWC && !bytes || (wc = fgetwc(s->fpin)) == WEOF) + state = ST_EOF; else - bytes--; -@@ -820,6 +820,8 @@ static int text_enriched_handler (BODY * + bytes--; +@@ -819,6 +819,8 @@ static int text_enriched_handler(BODY *a switch (state) { + case TEXT_GOTWC: -+ state = TEXT; ++ state = TEXT; case TEXT : - switch (wc) - { -@@ -881,9 +883,8 @@ static int text_enriched_handler (BODY * - enriched_flush (&stte, 1); - else - { -- ungetwc (wc, s->fpin); - bytes++; -- state = TEXT; -+ state = TEXT_GOTWC; - } - break; + switch (wc) + { +@@ -880,9 +882,8 @@ static int text_enriched_handler(BODY *a + enriched_flush(&stte, 1); + else + { +- ungetwc(wc, s->fpin); + bytes++; +- state = TEXT; ++ state = TEXT_GOTWC; + } + break; -@@ -1588,7 +1589,7 @@ void mutt_decode_attachment (BODY *b, ST +@@ -1589,7 +1590,7 @@ void mutt_decode_attachment(const BODY * * strip all trailing spaces to improve interoperability; * if $text_flowed is unset, simply verbatim copy input */ --static int text_plain_handler (BODY *b, STATE *s) -+static int text_plain_handler (BODY *b __attribute__((unused)), STATE *s) +-static int text_plain_handler(BODY *b, STATE *s) ++static int text_plain_handler(BODY *b __attribute__((unused)), STATE *s) { char *buf = NULL; size_t l = 0, sz = 0;
