diff --git a/aw.listreply.diff b/aw.listreply.diff index 15743a8..c99a2e1 100644 --- a/aw.listreply.diff +++ b/aw.listreply.diff @@ -7,34 +7,34 @@ ask when sending list message replies to author only - Armin Wolfermann (aw) 3 files changed, 26 insertions(+) --- init.h -+++ init.h 2017-06-13 08:07:08.641344928 +0000 -@@ -1631,6 +1631,13 @@ struct Option MuttVars[] = { ++++ init.h 2017-09-11 11:57:46.199273705 +0000 +@@ -1662,6 +1662,13 @@ struct Option MuttVars[] = { ** ``$$keywords_standard'' are \fCfalse\fP, mutt will save keywords ** to legacy headers to ensure that it does not lose your labels. */ -+ { "list_reply", DT_QUAD, R_NONE, OPT_LISTREPLY, MUTT_NO }, ++ { "list_reply", DT_QUAD, R_NONE, OPT_LIST_REPLY, MUTT_NO }, + /* + ** .pp + ** When set, address replies to the mailing list the original message came + ** from (instead to the author only). Setting this option to ``ask-yes'' or + ** ``ask-no'' will ask if you really intended to reply to the author only. + */ - { "mail_check", DT_NUM, R_NONE, UL &BuffyTimeout, 5 }, + { "mail_check", DT_NUMBER, R_NONE, UL &MailCheck, 5 }, /* ** .pp --- mutt.h -+++ mutt.h 2017-06-13 08:07:08.641344928 +0000 -@@ -249,6 +249,7 @@ enum ++++ mutt.h 2017-09-11 11:59:08.957770801 +0000 +@@ -266,6 +266,7 @@ enum QuadOptionVars #endif - OPT_SUBJECT, - OPT_VERIFYSIG, /* verify PGP signatures */ -+ OPT_LISTREPLY, + OPT_ABORT_NOSUBJECT, + OPT_CRYPT_VERIFY_SIG, /* verify PGP signatures */ ++ OPT_LIST_REPLY, #ifdef USE_NNTP - OPT_TOMODERATED, - OPT_CATCHUP, + OPT_POST_MODERATED, + OPT_CATCHUP_NEWSGROUP, --- send.c -+++ send.c 2017-06-13 08:08:46.631548101 +0000 -@@ -512,6 +512,7 @@ static int include_reply(struct Context ++++ send.c 2017-09-11 12:00:28.680322715 +0000 +@@ -532,6 +532,7 @@ static int include_reply(struct Context static int default_to(struct Address **to, struct Envelope *env, int flags, int hmfupto) { char prompt[STRING]; @@ -42,7 +42,7 @@ ask when sending list message replies to author only - Armin Wolfermann (aw) if (flags && env->mail_followup_to && hmfupto == MUTT_YES) { -@@ -525,6 +526,23 @@ static int default_to(struct Address **t +@@ -545,6 +546,23 @@ static int default_to(struct Address **t if (flags & SENDLISTREPLY) return 0; @@ -50,7 +50,7 @@ ask when sending list message replies to author only - Armin Wolfermann (aw) + * intended to reply to the author only. + */ + if (!(flags & SENDGROUPREPLY) && mutt_is_list_cc (0, env->to, env->cc)) { -+ switch (query_quadoption (OPT_LISTREPLY, ++ switch (query_quadoption (OPT_LIST_REPLY, + _("Message came from a mailing list. Reply to author only?"))) + { + case MUTT_NO: @@ -63,6 +63,6 @@ ask when sending list message replies to author only - Armin Wolfermann (aw) + } + } + - if (!option(OPTREPLYSELF) && mutt_addr_is_user(env->from)) + if (!option(OPT_REPLY_SELF) && mutt_addr_is_user(env->from)) { /* mail is from the user, assume replying to recipients */ diff --git a/bsc907453-CVE-2014-9116-jessie.patch b/bsc907453-CVE-2014-9116-jessie.patch index 5435baa..000ce76 100644 --- a/bsc907453-CVE-2014-9116-jessie.patch +++ b/bsc907453-CVE-2014-9116-jessie.patch @@ -13,12 +13,12 @@ has -jessie prefixed in its name. Index: mutt/lib.c =================================================================== --- - lib.c | 3 +++ + lib/string.c | 3 +++ 1 file changed, 3 insertions(+) ---- lib.c -+++ lib.c 2017-06-13 08:18:01.113325096 +0000 -@@ -820,6 +820,9 @@ char *mutt_substrdup(const char *begin, +--- lib/string.c ++++ lib/string.c 2017-09-11 12:20:02.770906853 +0000 +@@ -338,6 +338,9 @@ char *mutt_substrdup(const char *begin, size_t len; char *p = NULL; diff --git a/bug-676388-largefile.patch b/bug-676388-largefile.patch index 5ab664d..a0cd9ab 100644 --- a/bug-676388-largefile.patch +++ b/bug-676388-largefile.patch @@ -5,19 +5,19 @@ 3 files changed, 5 insertions(+), 5 deletions(-) --- body.h -+++ body.h 2017-06-13 08:06:05.550501689 +0000 -@@ -29,7 +29,7 @@ struct Body - struct Parameter *parameter; /* parameters of the content-type */ - char *description; /* content-description */ - char *form_name; /* Content-Disposition form-data name param */ -- long hdr_offset; /* offset in stream where the headers begin. -+ LOFF_T hdr_offset; /* offset in stream where the headers begin. - * this info is used when invoking metamail, - * where we need to send the headers of the - * attachment ++++ body.h 2017-09-11 11:52:02.449585688 +0000 +@@ -37,7 +37,7 @@ struct Body + struct Parameter *parameter; /**< parameters of the content-type */ + char *description; /**< content-description */ + char *form_name; /**< Content-Disposition form-data name param */ +- long hdr_offset; /**< offset in stream where the headers begin. ++ LOFF_T hdr_offset; /**< offset in stream where the headers begin. + * this info is used when invoking metamail, + * where we need to send the headers of the + * attachment */ --- mh.c -+++ mh.c 2017-06-13 08:04:35.572151258 +0000 -@@ -1732,9 +1732,9 @@ static int mh_rewrite_message(struct Con ++++ mh.c 2017-09-11 11:50:58.466761763 +0000 +@@ -1757,9 +1757,9 @@ static int mh_rewrite_message(struct Con char newpath[_POSIX_PATH_MAX]; char partpath[_POSIX_PATH_MAX]; @@ -31,11 +31,11 @@ if ((dest = mx_open_new_message(ctx, h, 0)) == NULL) return -1; --- ncrypt/crypt_gpgme.c -+++ ncrypt/crypt_gpgme.c 2017-06-13 08:04:35.572151258 +0000 -@@ -493,7 +493,7 @@ static gpgme_data_t body_to_data_object( - /* Create a GPGME data object from the stream FP but limit the object - to LENGTH bytes starting at OFFSET bytes from the beginning of the - file. */ ++++ ncrypt/crypt_gpgme.c 2017-09-11 11:52:34.888989382 +0000 +@@ -570,7 +570,7 @@ static gpgme_data_t body_to_data_object( + * Create a GPGME data object from the stream FP but limit the object + * to LENGTH bytes starting at OFFSET bytes from the beginning of the file. + */ -static gpgme_data_t file_to_data_object(FILE *fp, long offset, long length) +static gpgme_data_t file_to_data_object(FILE *fp, LOFF_T offset, long length) { diff --git a/mutt-1.5.15-wrapcolumn.diff b/mutt-1.5.15-wrapcolumn.diff index d430185..64d0c62 100644 --- a/mutt-1.5.15-wrapcolumn.diff +++ b/mutt-1.5.15-wrapcolumn.diff @@ -1,18 +1,16 @@ Index: init.h =================================================================== --- - init.h | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) + init.h | 1 + + 1 file changed, 1 insertion(+) --- init.h -+++ init.h 2017-06-13 07:52:39.605269357 +0000 -@@ -4297,7 +4297,8 @@ struct Option MuttVars[] = { - ** When \fIset\fP, mutt will weed headers when displaying, forwarding, ++++ init.h 2017-09-11 11:39:38.727250536 +0000 +@@ -4354,6 +4354,7 @@ struct Option MuttVars[] = { ** printing, or replying to messages. */ -- { "wrap", DT_NUM, R_PAGER, UL &Wrap, 0 }, -+ { "wrap", DT_NUM, R_PAGER, UL &Wrap, 0 }, -+ { "wrapcolumn", DT_SYN, R_NONE, UL "wrap", 0 }, + { "wrap", DT_NUMBER, R_PAGER, UL &Wrap, 0 }, ++ { "wrapcolumn", DT_SYNONYM, R_NONE, UL "wrap", 0 }, /* ** .pp ** When set to a positive value, mutt will wrap text at $$wrap characters. diff --git a/mutt-1.5.20-sendgroupreplyto.diff b/mutt-1.5.20-sendgroupreplyto.diff index 6e96456..fc1aa49 100644 --- a/mutt-1.5.20-sendgroupreplyto.diff +++ b/mutt-1.5.20-sendgroupreplyto.diff @@ -5,40 +5,40 @@ 3 files changed, 18 insertions(+), 2 deletions(-) --- init.h -+++ init.h 2017-06-13 07:47:41.578725458 +0000 -@@ -3078,6 +3078,13 @@ struct Option MuttVars[] = { ++++ init.h 2017-09-11 11:36:34.666630359 +0000 +@@ -3135,6 +3135,13 @@ struct Option MuttVars[] = { ** .pp ** Also see the $$force_name variable. */ -+ { "send_group_reply_to", DT_BOOL, R_NONE, OPTSENDGROUPREPLYTO, 0 }, ++ { "send_group_reply_to", DT_BOOL, R_NONE, OPT_SENDGROUP_REPLYTO, 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, OPTSCORE, 1 }, + { "score", DT_BOOL, R_NONE, OPT_SCORE, 1 }, /* ** .pp --- options.h -+++ options.h 2017-06-13 07:51:23.062670919 +0000 -@@ -151,6 +151,7 @@ enum - OPTSAVEADDRESS, - OPTSAVEEMPTY, - OPTSAVENAME, -+ OPTSENDGROUPREPLYTO, - OPTSCORE, ++++ options.h 2017-09-11 11:37:05.418065746 +0000 +@@ -160,6 +160,7 @@ enum GlobalBool + OPT_SAVE_ADDRESS, + OPT_SAVE_EMPTY, + OPT_SAVE_NAME, ++ OPT_SENDGROUP_REPLYTO, + OPT_SCORE, #ifdef USE_SIDEBAR - OPTSIDEBAR, + OPT_SIDEBAR_VISIBLE, --- send.c -+++ send.c 2017-06-13 07:47:41.578725458 +0000 -@@ -617,8 +617,16 @@ int mutt_fetch_recips(struct Envelope *o ++++ send.c 2017-09-11 11:37:26.009687657 +0000 +@@ -637,8 +637,16 @@ int mutt_fetch_recips(struct Envelope *o if ((flags & SENDGROUPREPLY) && (!in->mail_followup_to || hmfupto != MUTT_YES)) { /* if(!mutt_addr_is_user(in->to)) */ - rfc822_append(&out->cc, in->to, 1); - rfc822_append(&out->cc, in->cc, 1); -+ if (option (OPTSENDGROUPREPLYTO)) ++ if (option (OPT_SENDGROUP_REPLYTO)) + { + rfc822_append(&out->to, in->to, 0); + rfc822_append(&out->cc, in->cc, 1); diff --git a/mutt-1.5.21-mailcap.diff b/mutt-1.5.21-mailcap.diff index 32f0340..82ddc4e 100644 --- a/mutt-1.5.21-mailcap.diff +++ b/mutt-1.5.21-mailcap.diff @@ -8,8 +8,8 @@ Index: mutt-1.5.21/init.c 1 file changed, 2 insertions(+), 1 deletion(-) --- init.c -+++ init.c 2017-06-13 08:17:31.217879191 +0000 -@@ -4088,7 +4088,8 @@ void mutt_init(int skip_sys_rc, struct L ++++ init.c 2017-09-11 12:17:15.337988648 +0000 +@@ -4248,7 +4248,8 @@ void mutt_init(int skip_sys_rc, struct L /* Default search path from RFC1524 */ MailcapPath = safe_strdup( "~/.mailcap:" PKGDATADIR "/mailcap:" SYSCONFDIR @@ -18,4 +18,4 @@ Index: mutt-1.5.21/init.c + SYSCONFDIR "/mutt/mailcap"); } - Tempdir = safe_strdup((p = getenv("TMPDIR")) ? p : "/tmp"); + Tmpdir = safe_strdup((p = getenv("TMPDIR")) ? p : "/tmp"); diff --git a/mutt-1.5.23-carriage-return.path b/mutt-1.5.23-carriage-return.path index 6341c6a..12aa27e 100644 --- a/mutt-1.5.23-carriage-return.path +++ b/mutt-1.5.23-carriage-return.path @@ -1,14 +1,14 @@ --- - lib.c | 12 ++++++++++++ - lib.h | 1 + + lib/string.c | 12 ++++++++++++ + lib/string2.h | 1 + ncrypt/crypt_gpgme.c | 2 +- ncrypt/pgp.c | 24 ++++++++++++------------ pager.c | 2 +- 5 files changed, 27 insertions(+), 14 deletions(-) ---- lib.c -+++ lib.c 2017-06-13 08:15:45.319842066 +0000 -@@ -875,6 +875,18 @@ int mutt_strcmp(const char *a, const cha +--- lib/string.c ++++ lib/string.c 2017-09-11 12:12:00.503744275 +0000 +@@ -362,6 +362,18 @@ int mutt_strcmp(const char *a, const cha return strcmp(NONULL(a), NONULL(b)); } @@ -24,33 +24,33 @@ + return strncmp(NONULL(a), NONULL(b), xa); +} + - int mutt_strcasecmp(const char *a, const char *b) - { - return strcasecmp(NONULL(a), NONULL(b)); ---- lib.h -+++ lib.h 2017-06-13 08:16:23.791128961 +0000 -@@ -158,6 +158,7 @@ int mutt_copy_bytes(FILE *in, FILE *out, - int mutt_rx_sanitize_string(char *dest, size_t destlen, const char *src); - int mutt_strcasecmp(const char *a, const char *b); - int mutt_strcmp(const char *a, const char *b); -+int mutt_strxcmp(const char *, const char *); - int mutt_strncasecmp(const char *a, const char *b, size_t l); - int mutt_strncmp(const char *a, const char *b, size_t l); - int mutt_strcoll(const char *a, const char *b); + /** + * mutt_strcasecmp - Compare two strings ignoring case, safely + * @param a First string to compare +--- lib/string2.h ++++ lib/string2.h 2017-09-11 12:14:01.681538993 +0000 +@@ -67,6 +67,7 @@ void mutt_str_adjust(char **p); + int mutt_strcasecmp(const char *a, const char *b); + const char *mutt_strchrnul(const char *s, char c); + int mutt_strcmp(const char *a, const char *b); ++int mutt_strxcmp(const char *a, const char *b); + int mutt_strcoll(const char *a, const char *b); + const char *mutt_stristr(const char *haystack, const char *needle); + size_t mutt_strlen(const char *a); --- ncrypt/crypt_gpgme.c -+++ ncrypt/crypt_gpgme.c 2017-06-13 08:15:45.319842066 +0000 -@@ -2294,7 +2294,7 @@ static void copy_clearsigned(gpgme_data_ ++++ ncrypt/crypt_gpgme.c 2017-09-11 12:09:17.086717319 +0000 +@@ -2442,7 +2442,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 = false; continue; } --- ncrypt/pgp.c -+++ ncrypt/pgp.c 2017-06-13 08:15:45.323841992 +0000 -@@ -288,7 +288,7 @@ static void pgp_copy_clearsigned(FILE *f ++++ ncrypt/pgp.c 2017-09-11 12:08:10.179934232 +0000 +@@ -301,7 +301,7 @@ static void pgp_copy_clearsigned(FILE *f continue; } @@ -59,9 +59,9 @@ break; if (armor_header) -@@ -352,14 +352,14 @@ int pgp_application_pgp_handler(struct B +@@ -369,14 +369,14 @@ int pgp_application_pgp_handler(struct B { - clearsign = 0; + clearsign = false; - if (mutt_strcmp("MESSAGE-----\n", buf + 15) == 0) + if (mutt_strxcmp("MESSAGE-----\n", buf + 15) == 0) @@ -69,15 +69,15 @@ - else if (mutt_strcmp("SIGNED MESSAGE-----\n", buf + 15) == 0) + else if (mutt_strxcmp("SIGNED MESSAGE-----\n", buf + 15) == 0) { - clearsign = 1; + clearsign = true; needpass = 0; } - else if (mutt_strcmp("PUBLIC KEY BLOCK-----\n", buf + 15) == 0) + else if (mutt_strxcmp("PUBLIC KEY BLOCK-----\n", buf + 15) == 0) { needpass = 0; - pgp_keyblock = 1; -@@ -393,9 +393,9 @@ int pgp_application_pgp_handler(struct B + pgp_keyblock = true; +@@ -410,9 +410,9 @@ int pgp_application_pgp_handler(struct B fputs(buf, tmpfp); @@ -90,7 +90,7 @@ break; /* remember optional Charset: armor header as defined by RfC4880 */ if (mutt_strncmp("Charset: ", buf, 9) == 0) -@@ -636,11 +636,11 @@ static int pgp_check_traditional_one_bod +@@ -650,11 +650,11 @@ static int pgp_check_traditional_one_bod { if (mutt_strncmp("-----BEGIN PGP ", buf, 15) == 0) { @@ -105,7 +105,7 @@ key = 1; } } -@@ -1122,9 +1122,9 @@ struct Body *pgp_sign_message(struct Bod +@@ -1144,9 +1144,9 @@ struct Body *pgp_sign_message(struct Bod */ while (fgets(buffer, sizeof(buffer) - 1, pgpout) != NULL) { @@ -118,11 +118,11 @@ else fputs(buffer, fp); --- pager.c -+++ pager.c 2017-06-13 08:15:45.323841992 +0000 -@@ -803,7 +803,7 @@ static void resolve_types(char *buf, cha - lineInfo[n].type = MT_COLOR_NORMAL; ++++ pager.c 2017-09-11 12:10:06.737814133 +0000 +@@ -827,7 +827,7 @@ static void resolve_types(char *buf, cha + line_info[n].type = MT_COLOR_NORMAL; else if (check_attachment_marker((char *) raw) == 0) - lineInfo[n].type = MT_COLOR_ATTACHMENT; + line_info[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) { diff --git a/mutt-1.5.9i-pgpewrap.diff b/mutt-1.5.9i-pgpewrap.diff index 0610cf8..011e6ec 100644 --- a/mutt-1.5.9i-pgpewrap.diff +++ b/mutt-1.5.9i-pgpewrap.diff @@ -3,8 +3,8 @@ 1 file changed, 6 insertions(+) --- pgpewrap.c -+++ pgpewrap.c 2017-04-28 12:46:25.911731441 +0000 -@@ -61,6 +61,12 @@ int main(int argc, char **argv) ++++ pgpewrap.c 2017-09-11 11:34:11.241263407 +0000 +@@ -63,6 +63,12 @@ int main(int argc, char **argv) } *opt = NULL; diff --git a/mutt-1.6.1-opennfs.dif b/mutt-1.6.1-opennfs.dif index df94930..49f25eb 100644 --- a/mutt-1.6.1-opennfs.dif +++ b/mutt-1.6.1-opennfs.dif @@ -1,44 +1,44 @@ --- Makefile.am | 4 - - lib.c | 7 ++- + lib/file.c | 7 ++- mbox.c | 5 ++ - mh.c | 9 +++- + mh.c | 8 +++ mutt.h | 3 + opennfs.c | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sendlib.c | 4 + - 7 files changed, 150 insertions(+), 4 deletions(-) + 7 files changed, 150 insertions(+), 3 deletions(-) --- Makefile.am -+++ Makefile.am 2017-06-13 08:34:27.043052733 +0000 -@@ -44,7 +44,7 @@ mutt_SOURCES = account.c addrbook.c addr - handler.c hash.c hdrline.c header.h headers.c help.c history.c hook.c \ - init.c keymap.c lib.c list.h main.c mbox.c mbyte.c mbyte_table.h md5.c \ ++++ Makefile.am 2017-09-11 11:47:43.214350183 +0000 +@@ -52,7 +52,7 @@ mutt_SOURCES = account.c addrbook.c addr + handler.c hdrline.c header.h headers.c help.c history.c hook.c \ + init.c keymap.c list.h main.c mbox.c mbyte.c mbtable.h \ menu.c mh.c muttlib.c mutt_idna.c mutt_sasl_plain.c mutt_socket.c \ -- mutt_tunnel.c mx.c newsrc.c nntp.c options.h pager.c parameter.h \ -+ mutt_tunnel.c mx.c newsrc.c nntp.c opennfs.c options.h pager.c parameter.h \ +- mutt_tunnel.c mx.c newsrc.c nntp.c options.h pager.c parameter.c parameter.h \ ++ mutt_tunnel.c mx.c newsrc.c nntp.c opennfs.c options.h pager.c parameter.c parameter.h \ parse.c pattern.c pattern.h pop.c pop_auth.c pop_lib.c postpone.c \ query.c recvattach.c recvcmd.c rfc1524.c rfc2047.c rfc2231.c rfc3676.c \ rfc822.c safe_asprintf.c score.c send.c sendlib.c sidebar.c signal.c \ -@@ -91,7 +91,7 @@ mutt_dotlock_SOURCES = mutt_dotlock.c - mutt_dotlock_LDADD = $(LIBOBJS) - mutt_dotlock_DEPENDENCIES = $(LIBOBJS) +@@ -96,7 +96,7 @@ EXTRA_DIST = account.h attach.h bcache.h --pgpring_SOURCES = ascii.c extlib.c lib.c md5.c pgppubring.c sha1.c -+pgpring_SOURCES = ascii.c extlib.c lib.c md5.c opennfs.c pgppubring.c sha1.c - pgpring_LDADD = $(LIBOBJS) $(NCRYPT_LIBS) $(INTLLIBS) - pgpring_DEPENDENCIES = $(LIBOBJS) $(NCRYPT_DEPS) $(INTLDEPS) + EXTRA_SCRIPTS = ---- lib.c -+++ lib.c 2017-06-13 08:34:27.043052733 +0000 -@@ -37,6 +37,7 @@ - #include - #include - #include "lib.h" +-pgpring_SOURCES = pgppubring.c ++pgpring_SOURCES = opennfs.c pgppubring.c + pgpring_LDADD = $(LIBOBJS) $(NCRYPT_LIBS) $(INTLLIBS) $(LIBMUTT) + pgpring_DEPENDENCIES = $(LIBOBJS) $(NCRYPT_DEPS) $(INTLDEPS) $(LIBMUTTDEPS) + +--- lib/file.c ++++ lib/file.c 2017-09-11 11:45:32.960743565 +0000 +@@ -71,6 +71,7 @@ + #include "debug.h" + #include "memory.h" + #include "message.h" +#include "mutt.h" + #include "string2.h" - #ifdef HAVE_SYSEXITS_H - #include -@@ -635,6 +636,10 @@ int safe_open(const char *path, int flag + /* these characters must be escaped in regular expressions */ +@@ -502,6 +503,10 @@ int safe_open(const char *path, int flag struct stat osb, nsb; int fd; @@ -49,18 +49,18 @@ if (flags & O_EXCL) { char safe_file[_POSIX_PATH_MAX]; -@@ -657,7 +662,7 @@ int safe_open(const char *path, int flag - - if ((fd = open(path, flags & ~O_EXCL, 0600)) < 0) +@@ -526,7 +531,7 @@ int safe_open(const char *path, int flag + fd = open(path, flags & ~O_EXCL, 0600); + if (fd < 0) return fd; - +#endif /* make sure the file is not symlink */ - if (lstat(path, &osb) < 0 || fstat(fd, &nsb) < 0 || !compare_stat(&osb, &nsb)) + if ((lstat(path, &osb) < 0 || fstat(fd, &nsb) < 0) || !compare_stat(&osb, &nsb)) { --- mbox.c -+++ mbox.c 2017-06-13 08:34:27.043052733 +0000 -@@ -1069,8 +1069,13 @@ static int mbox_sync_mailbox(struct Cont ++++ mbox.c 2017-09-11 11:40:15.902567799 +0000 +@@ -1075,8 +1075,13 @@ static int mbox_sync_mailbox(struct Cont /* Create a temporary file to write the new version of the mailbox in. */ mutt_mktemp(tempfile, sizeof(tempfile)); @@ -75,11 +75,11 @@ if (-1 != i) { --- mh.c -+++ mh.c 2017-06-13 08:34:27.047052659 +0000 -@@ -357,7 +357,11 @@ static int mh_mkstemp(struct Context *de ++++ mh.c 2017-09-11 11:49:25.892463230 +0000 +@@ -383,7 +383,11 @@ static int mh_mkstemp(struct Context *de { snprintf(path, _POSIX_PATH_MAX, "%s/.mutt-%s-%d-%" PRIu64, dest->path, - NONULL(Hostname), (int) getpid(), mutt_rand64()); + NONULL(ShortHostname), (int) getpid(), mutt_rand64()); +#if defined(__linux__) + if ((fd = opennfs(path, O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1) +#else @@ -88,11 +88,10 @@ { if (errno != EEXIST) { -@@ -1488,8 +1492,11 @@ static int maildir_open_new_message(stru - subdir, (long long) time(NULL), mutt_rand64(), NONULL(Hostname), suffix); +@@ -1518,7 +1522,11 @@ static int maildir_open_new_message(stru mutt_debug(2, "maildir_open_new_message (): Trying %s.\n", path); -- + +#if defined(__linux__) + if ((fd = opennfs(path, O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1) +#else @@ -102,17 +101,17 @@ if (errno != EEXIST) { --- mutt.h -+++ mutt.h 2017-06-13 08:34:27.047052659 +0000 -@@ -348,4 +348,7 @@ struct AttachMatch - - #define MUTT_PARTS_TOPLEVEL (1 << 0) /* is the top-level part */ ++++ mutt.h 2017-09-11 11:50:18.979487541 +0000 +@@ -367,4 +367,7 @@ extern char *debugfile_cmdline; + extern int debuglevel_cmdline; + #endif +#if defined(__linux__) +extern int opennfs(const char *, int, int); +#endif #endif /* _MUTT_H */ --- opennfs.c -+++ opennfs.c 2017-06-13 08:36:39.904588552 +0000 ++++ opennfs.c 2017-09-11 11:40:15.906567726 +0000 @@ -0,0 +1,122 @@ +#include +#include @@ -237,8 +236,8 @@ + return open(path, flags, mode); +} --- sendlib.c -+++ sendlib.c 2017-06-13 08:34:27.047052659 +0000 -@@ -2255,7 +2255,11 @@ static int send_msg(const char *path, ch ++++ sendlib.c 2017-09-11 11:40:15.906567726 +0000 +@@ -2354,7 +2354,11 @@ static int send_msg(const char *path, ch if (SendmailWait >= 0 && tempfile && *tempfile) { /* *tempfile will be opened as stdout */ diff --git a/mutt-1.8.3.dif b/mutt-1.9.0.dif similarity index 69% rename from mutt-1.8.3.dif rename to mutt-1.9.0.dif index 962f6d7..c11395e 100644 --- a/mutt-1.8.3.dif +++ b/mutt-1.9.0.dif @@ -7,8 +7,8 @@ 5 files changed, 36 insertions(+), 2 deletions(-) --- configure.ac -+++ configure.ac 2017-06-13 07:46:56.047558768 +0000 -@@ -318,7 +318,7 @@ main () ++++ configure.ac 2017-09-11 11:24:08.296326161 +0000 +@@ -337,7 +337,7 @@ main () mutt_cv_slang=$withval if test -d $withval/include/slang; then CPPFLAGS="$CPPFLAGS -I${withval}/include/slang" @@ -17,7 +17,7 @@ CPPFLAGS="$CPPFLAGS -I${withval}/include" fi LDFLAGS="$LDFLAGS -L${withval}/lib" -@@ -509,8 +509,12 @@ dnl -- end imap dependencies -- +@@ -510,8 +510,12 @@ dnl -- end imap dependencies -- AC_ARG_WITH(ssl, AS_HELP_STRING([--with-ssl@<:@=PFX@:>@],[Enable TLS support using OpenSSL]), [ if test "$with_ssl" != "no"; then if test "$with_ssl" != "yes"; then @@ -30,7 +30,7 @@ fi saved_LIBS="$LIBS" -@@ -579,8 +583,12 @@ AC_ARG_WITH(sasl, AS_HELP_STRING([--with +@@ -574,8 +578,12 @@ AC_ARG_WITH(sasl, AS_HELP_STRING([--with [ if test "$with_sasl" != "no"; then if test "$with_sasl" != "yes"; then @@ -42,32 +42,32 @@ + esac fi - saved_LIBS="$LIBS" + # OpenSolaris provides a SASL2 interface in libsasl --- doc/Muttrc.head -+++ doc/Muttrc.head 2017-06-13 07:42:27.684468937 +0000 ++++ doc/Muttrc.head 2017-09-11 11:24:59.871380290 +0000 @@ -23,7 +23,7 @@ macro index,pager,attach,compose \cb "\ "call urlview to extract URLs out of a message" # Show documentation when pressing F1 -macro generic,pager " less @docdir@/manual.txt" "show Mutt documentation" -+macro generic,index,pager " less -iM @docdir@/manual.txt.gz" "show Mutt documentation" ++macro generic,index,pager " less @docdir@/manual.txt.gz" "show Mutt documentation" # show the incoming mailboxes list (just like "mutt -y") and back when pressing "y" - macro index,pager y "?" "show incoming mailboxes list" + macro index,pager y "?" "show incoming mailboxes list" --- imap/auth.c -+++ imap/auth.c 2017-06-13 07:42:27.684468937 +0000 -@@ -72,6 +72,23 @@ int imap_authenticate(struct ImapData *i ++++ imap/auth.c 2017-09-11 11:26:50.141357697 +0000 +@@ -80,6 +80,23 @@ int imap_authenticate(struct ImapData *i mutt_debug(2, "imap_authenticate: Trying method %s\n", method); authenticator = imap_authenticators; +#ifdef USE_SASL + /* "login" not supported by SASL */ -+ if (!ascii_strcasecmp ("login", method)) ++ if (!mutt_strcasecmp ("login", method)) + { + while (authenticator->authenticate) + { + const char *identify = authenticator->method; -+ if (identify && !ascii_strcasecmp(identify, method)) ++ if (identify && !mutt_strcasecmp(identify, method)) + if ((r = authenticator->authenticate(idata, method)) != IMAP_AUTH_UNAVAIL) + { + FREE(&methods); @@ -79,8 +79,8 @@ +#endif while (authenticator->authenticate) { - if (!authenticator->method || (ascii_strcasecmp(authenticator->method, method) == 0)) -@@ -83,6 +100,9 @@ int imap_authenticate(struct ImapData *i + if (!authenticator->method || (mutt_strcasecmp(authenticator->method, method) == 0)) +@@ -91,6 +108,9 @@ int imap_authenticate(struct ImapData *i authenticator++; } @@ -91,20 +91,20 @@ FREE(&methods); --- init.h -+++ init.h 2017-06-13 07:42:27.684468937 +0000 -@@ -3808,6 +3808,9 @@ struct Option MuttVars[] = { ++++ init.h 2017-09-11 11:27:51.208237439 +0000 +@@ -3864,6 +3864,9 @@ struct Option MuttVars[] = { ** the default from the GNUTLS library. */ - # endif /* USE_SSL_GNUTLS */ + #endif /* USE_SSL_GNUTLS */ +#if defined(USE_IMAP) && defined(SUSE_IMAP_FORCE_SSL) + { "imap_force_ssl", DT_SYN, R_NONE, UL "ssl_force_tls", 0 }, +#endif - { "ssl_starttls", DT_QUAD, R_NONE, OPT_SSLSTARTTLS, MUTT_YES }, + { "ssl_starttls", DT_QUAD, R_NONE, OPT_SSL_STARTTLS, MUTT_YES }, /* ** .pp --- mx.c -+++ mx.c 2017-06-13 07:42:27.684468937 +0000 -@@ -1454,6 +1454,9 @@ void mx_update_context(struct Context *c ++++ mx.c 2017-09-11 11:14:29.263001870 +0000 +@@ -1287,6 +1287,9 @@ void mx_update_context(struct Context *c { h = ctx->hdrs[msgno]; diff --git a/mutt.changes b/mutt.changes index 2f75971..589abfa 100644 --- a/mutt.changes +++ b/mutt.changes @@ -1,3 +1,65 @@ +------------------------------------------------------------------- +Fri Sep 15 09:07:55 UTC 2017 - werner@suse.de + +- Update to neomutt 20170912 which updates to mutt 1.9.0 + NeoMutt + Add guix build support + Only match real mailboxes when looking for new mail + Fix the printing of ncurses version in -v output + Bind editor to delete-char + Fix overflowing colours + Fix empty In-Reply-To generation + Trim trailing slash from completed dirs + Add guix-neomutt.scm + Fix setting custom query_type in notmuch query + Better curses identification + Use the system's wchar_t support + Use the system's md5 tool (or equivalent) + Clean up configure.ac + Teach gen-map-doc about the new opcode header + Rename functions (snake_case) + Rename constants/defines (UPPER_CASE) + Create library of shared functions + Much tidying + Rename globals to match user config + Drop unnecessary functions/macros + Use a standard list implementation + Coverity fixes + Use explicit NUL for string terminators + Drop OPS* in favour of opcodes.h + Upstream + Fix menu color calls to occur before positioning the cursor + When guessing an attachment type, don't allow text/plain if there is a null character + Add $imap_poll_timeout to allow mailbox polling to time out + Handle error if REGCOMP in pager fails when resizing + Change recvattach to allow nested encryption + Fix attachment check_traditional and extract_keys operations + Add edit-content-type helper and warning for decrypted attachments + Add option to run command to query attachment mime type + Add warning about using inline pgp with format=flowed +- Rename patch mutt-1.8.3.dif which becomes now mutt-1.9.0.dif +- Modify the patches + * aw.listreply.diff + * bsc907453-CVE-2014-9116-jessie.patch + * bug-676388-largefile.patch + * mutt-1.5.15-wrapcolumn.diff + * mutt-1.5.20-sendgroupreplyto.diff + * mutt-1.5.21-mailcap.diff + * mutt-1.5.23-carriage-return.path + * mutt-1.5.9i-pgpewrap.diff + * mutt-1.6.1-opennfs.dif + * patch-1.5.24.vk.pgp_verbose_mime + * widechar.sidebar.dif + +------------------------------------------------------------------- +Thu Aug 10 08:03:38 UTC 2017 - tchvatal@suse.com + +- Switch to hunspell as default spell-checking software wrt + fate#323578 +- Write SUSE in the skel.muttrc instead of SuSE +- Use the right folder for unpacking instead of symlink + * fixes quilt setup + ------------------------------------------------------------------- Thu Jul 13 10:38:57 UTC 2017 - olaf@aepfle.de diff --git a/mutt.spec b/mutt.spec index 744324b..a3a8d0c 100644 --- a/mutt.spec +++ b/mutt.spec @@ -30,25 +30,29 @@ BuildRequires: autoconf BuildRequires: automake BuildRequires: cyrus-sasl-devel BuildRequires: cyrus-sasl-gssapi +BuildRequires: docbook-xsl-stylesheets BuildRequires: gdbm-devel +BuildRequires: hunspell BuildRequires: krb5-devel +BuildRequires: libgpgme-devel BuildRequires: libidn-devel BuildRequires: libkyotocabinet-devel +BuildRequires: libxslt-tools BuildRequires: lua-devel BuildRequires: ncurses-devel %if 0%{?is_opensuse} BuildRequires: notmuch-devel %endif -BuildRequires: docbook-xsl-stylesheets -BuildRequires: libxslt-tools BuildRequires: opensp +%if 0%{?suse_version} > 1130 +BuildRequires: shared-mime-info +%endif %if 0%{?suse_version} BuildRequires: update-desktop-files %endif BuildRequires: w3m -#if -BuildRequires: libgpgme-devel -Url: http://www.mutt.org +Url: http://www.neomutt.org +Recommends: hunspell Provides: muttssl Obsoletes: muttssl Recommends: mutt-doc @@ -60,18 +64,17 @@ Recommends: w3m Requires(post): shared-mime-info Requires(postun): shared-mime-info %endif -%global neo 20170609 -Version: 1.8.3 +%global neo 20170912 +Version: 1.9.0 Release: 0 Summary: Mail Program # ftp://ftp.mutt.org/mutt/devel/ -# Source0: https://bitbucket.org/mutt/mutt/downloads/%%name-%%version.tar.gz +# https://bitbucket.org/mutt/mutt/downloads/%%name-%%version.tar.gz # Switch over to neomutt tar ball which is based on original mutt # http://www.neomutt.org/ -### https://github.com/neomutt/neomutt/archive/neomutt-20170421.tar.gz License: GPL-2.0+ Group: Productivity/Networking/Email/Clients -Source0: neomutt-%neo.tar.gz +Source0: https://github.com/neomutt/neomutt/archive/neomutt-%{neo}.tar.gz Source1: Signature_conversion Source2: README.alternates Source3: mutt.png @@ -102,7 +105,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build %description A very powerful mail user agent. It supports (among other nice things) highlighting, threading, and PGP. It takes some time to get used to, -however. +however. This version is based on NeoMutt, that is it includes many +enhancements. %package doc Summary: Additional Documentation about Mutt @@ -188,7 +192,7 @@ cflags -Wl,--hash-size=8599 LDFLAGS cflags -pie LDFLAGS export CC CFLAGS LDFLAGS export SENDMAIL=/usr/sbin/sendmail -export ISPELL=/usr/bin/ispell +export ISPELL=/usr/bin/hunspell export PATH="/usr/lib/mit/bin:$PATH" export KRB5CFGPATH="$(type -p krb5-config)" $KRB5CFGPATH --cflags gssapi @@ -298,19 +302,22 @@ chmod a-x %{buildroot}%{_docdir}/%name/keybase/*.sh %defattr(-,root,root) %doc %{_docdir}/%name/COPYRIGHT %doc %{_docdir}/%name/README* -%doc %{_docdir}/%name/ChangeLog -%doc %{_docdir}/%name/ChangeLog.neomutt +%doc %{_docdir}/%name/ChangeLog.md +%doc %{_docdir}/%name/CODE_OF_CONDUCT.md %doc %{_docdir}/%name/LICENSE.md %doc %{_docdir}/%name/*.html %doc %{_docdir}/%name/*.txt +%dir %doc %{_docdir}/%name/colorschemes/ +%doc %{_docdir}/%name/colorschemes/*.muttrc +%doc %{_docdir}/%name/colorschemes/vombatidae.mutt %dir %doc %{_docdir}/%name/keybase/ %doc %{_docdir}/%name/keybase/* +%dir %doc %{_docdir}/%name/logo/ +%doc %{_docdir}/%name/logo/mutt* %doc %{_docdir}/%name/neomutt-syntax.vim %dir %doc %{_docdir}/%name/samples/ %doc %{_docdir}/%name/samples/*.rc %doc %{_docdir}/%name/samples/colors.* -%dir %doc %{_docdir}/%name/samples/iconv/ -%doc %{_docdir}/%name/samples/iconv/*.rc %doc %{_docdir}/%name/samples/sample.* %doc %{_docdir}/%name/samples/smime_keys_test.pl %dir %doc %{_docdir}/%name/vim-keys/ diff --git a/neomutt-20170609.tar.gz b/neomutt-20170609.tar.gz deleted file mode 100644 index b5d56bf..0000000 --- a/neomutt-20170609.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:feaaf7ac230cbf397f028fac5498e38b5d662078083e0cf3329ba04d1bb4b0cd -size 2637349 diff --git a/neomutt-20170912.tar.gz b/neomutt-20170912.tar.gz new file mode 100644 index 0000000..0e329c5 --- /dev/null +++ b/neomutt-20170912.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f0d128fe8dbbbddb67e2b629f8b5e52a9d892f82c735845c1708c14e3046657 +size 2533245 diff --git a/patch-1.5.24.vk.pgp_verbose_mime b/patch-1.5.24.vk.pgp_verbose_mime index 6bc8d53..02ef09c 100644 --- a/patch-1.5.24.vk.pgp_verbose_mime +++ b/patch-1.5.24.vk.pgp_verbose_mime @@ -5,8 +5,8 @@ 3 files changed, 16 insertions(+), 1 deletion(-) --- globals.h -+++ globals.h 2017-06-13 08:12:32.139412148 +0000 -@@ -291,6 +291,8 @@ WHERE struct Regex PgpDecryptionOkay; ++++ globals.h 2017-09-11 12:01:55.090752808 +0000 +@@ -292,6 +292,8 @@ WHERE struct Regex PgpDecryptionOkay; WHERE char *PgpSignAs; WHERE short PgpTimeout; WHERE char *PgpEntryFormat; @@ -16,29 +16,29 @@ WHERE char *PgpDecodeCommand; WHERE char *PgpVerifyCommand; --- init.h -+++ init.h 2017-06-13 08:12:32.139412148 +0000 -@@ -3409,6 +3409,18 @@ struct Option MuttVars[] = { ++++ init.h 2017-09-11 12:03:41.660816163 +0000 +@@ -3466,6 +3466,18 @@ struct Option MuttVars[] = { ** a line quoted text if it also matches $$smileys. This mostly ** happens at the beginning of a line. */ -+ { "pgp_mime_signature_filename", DT_STR, R_NONE, UL &PgpMimeSignatureFilename, UL "signature.asc"}, ++ { "pgp_mime_signature_filename", DT_STRING, R_NONE, UL &PgpMimeSignatureFilename, UL "signature.asc"}, + /* + ** .pp + ** This option sets the filename used for signature parts in PGP/MIME + ** signed messages. + */ -+ { "pgp_mime_signature_description", DT_STR, R_NONE, UL &PgpMimeSignatureDescription, UL "Digital signature"}, ++ { "pgp_mime_signature_description", DT_STRING, R_NONE, UL &PgpMimeSignatureDescription, UL "Digital signature"}, + /* + ** .pp + ** This option sets the Content-Description used for signature parts in + ** PGP/MIME signed messages. + */ - { "smime_ask_cert_label", DT_BOOL, R_NONE, OPTASKCERTLABEL, 1 }, + { "smime_ask_cert_label", DT_BOOL, R_NONE, OPT_SMIME_ASK_CERT_LABEL, 1 }, /* ** .pp --- ncrypt/pgp.c -+++ ncrypt/pgp.c 2017-06-13 08:12:32.139412148 +0000 -@@ -1186,7 +1186,8 @@ struct Body *pgp_sign_message(struct Bod ++++ ncrypt/pgp.c 2017-09-11 12:01:55.090752808 +0000 +@@ -1208,7 +1208,8 @@ struct Body *pgp_sign_message(struct Bod t->disposition = DISPNONE; t->encoding = ENC7BIT; t->unlink = true; /* ok to remove this file after sending. */ diff --git a/skel.muttrc b/skel.muttrc index 5181c9d..60d2806 100644 --- a/skel.muttrc +++ b/skel.muttrc @@ -1,4 +1,4 @@ -# Sample ~/.muttrc for SuSE Linux +# Sample ~/.muttrc for SUSE Linux # Setting set pager_context=4 diff --git a/widechar.sidebar.dif b/widechar.sidebar.dif index d2d18d3..9686df8 100644 --- a/widechar.sidebar.dif +++ b/widechar.sidebar.dif @@ -3,8 +3,8 @@ 1 file changed, 6 insertions(+), 4 deletions(-) --- handler.c -+++ handler.c 2017-06-13 08:14:25.529321141 +0000 -@@ -831,6 +831,7 @@ static int text_enriched_handler(struct ++++ handler.c 2017-09-11 12:06:12.982065389 +0000 +@@ -821,6 +821,7 @@ static int text_enriched_handler(struct enum { TEXT, @@ -12,7 +12,7 @@ LANGLE, TAG, BOGUS_TAG, -@@ -868,7 +869,7 @@ static int text_enriched_handler(struct +@@ -858,7 +859,7 @@ static int text_enriched_handler(struct { if (state != ST_EOF) { @@ -21,7 +21,7 @@ state = ST_EOF; else bytes--; -@@ -876,6 +877,8 @@ static int text_enriched_handler(struct +@@ -866,6 +867,8 @@ static int text_enriched_handler(struct switch (state) { @@ -30,7 +30,7 @@ case TEXT: switch (wc) { -@@ -936,9 +939,8 @@ static int text_enriched_handler(struct +@@ -926,9 +929,8 @@ static int text_enriched_handler(struct enriched_flush(&stte, 1); else { @@ -41,9 +41,9 @@ } break; -@@ -1653,7 +1655,7 @@ void mutt_decode_attachment(struct Body - * strip all trailing spaces to improve interoperability; - * if $text_flowed is unset, simply verbatim copy input +@@ -1657,7 +1659,7 @@ void mutt_decode_attachment(struct Body + * all trailing spaces to improve interoperability; if $text_flowed is unset, + * simply verbatim copy input */ -static int text_plain_handler(struct Body *b, struct State *s) +static int text_plain_handler(struct Body *b __attribute__((unused)), struct State *s)