From 903f6e1c6bb1cd799ac46becac61e25ca7b7d569 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Aug 20 2018 16:12:38 +0000 Subject: import mutt-1.5.21-28.el7_5 --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b058133 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/mutt-1.5.21.tar.gz diff --git a/.mutt.metadata b/.mutt.metadata new file mode 100644 index 0000000..4408e81 --- /dev/null +++ b/.mutt.metadata @@ -0,0 +1 @@ +a8475f2618ce5d5d33bff85c0affdf21ab1d76b9 SOURCES/mutt-1.5.21.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 0e7897f..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 - -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/mutt-1.5.13-nodotlock.patch b/SOURCES/mutt-1.5.13-nodotlock.patch new file mode 100644 index 0000000..c4888f6 --- /dev/null +++ b/SOURCES/mutt-1.5.13-nodotlock.patch @@ -0,0 +1,10 @@ +--- mutt-1.5.13/configure.nodotlock 2007-02-06 15:14:03.000000000 +0100 ++++ mutt-1.5.13/configure 2007-02-06 15:14:04.000000000 +0100 +@@ -12300,6 +12300,7 @@ + { + struct stat s; + ++ return 1; + stat ("$mutt_cv_mailpath", &s); + if (s.st_mode & S_IWGRP) exit (0); + exit (1); diff --git a/SOURCES/mutt-1.5.18-manual.patch b/SOURCES/mutt-1.5.18-manual.patch new file mode 100644 index 0000000..0230c18 --- /dev/null +++ b/SOURCES/mutt-1.5.18-manual.patch @@ -0,0 +1,12 @@ +diff -up mutt-1.5.18/doc/Makefile.in.manual mutt-1.5.18/doc/Makefile.in +diff -up mutt-1.5.18/init.h.manual mutt-1.5.18/init.h +--- mutt-1.5.18/init.h.manual 2008-01-30 05:26:50.000000000 +0100 ++++ mutt-1.5.18/init.h 2008-05-19 11:05:02.000000000 +0200 +@@ -19,7 +19,6 @@ + + #ifdef _MAKEDOC + # include "config.h" +-# include "doc/makedoc-defs.h" + #else + # include "sort.h" + #endif diff --git a/SOURCES/mutt-1.5.18-muttrc.patch b/SOURCES/mutt-1.5.18-muttrc.patch new file mode 100644 index 0000000..22d72b2 --- /dev/null +++ b/SOURCES/mutt-1.5.18-muttrc.patch @@ -0,0 +1,20 @@ +diff -up mutt-1.5.18/doc/Muttrc.head.muttrc mutt-1.5.18/doc/Muttrc.head +--- mutt-1.5.18/doc/Muttrc.head.muttrc 2008-01-30 05:26:50.000000000 +0100 ++++ mutt-1.5.18/doc/Muttrc.head 2008-05-19 10:58:21.000000000 +0200 +@@ -19,11 +19,15 @@ macro index,pager,attach,compose \cb "\ + + # Show documentation when pressing F1 + macro generic,pager " less @docdir@/manual.txt" "show Mutt documentation" ++# and also F2, as some terminals use F1 ++macro generic,pager " less @docdir@/manual.txt" "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" + bind browser y exit + ++bind editor delete-char ++ + # If Mutt is unable to determine your site's domain name correctly, you can + # set the default here. + # +diff -up mutt-1.5.18/contrib/sample.muttrc mutt-1.5.18/contrib/sample diff --git a/SOURCES/mutt-1.5.20-cve-2014-0467.patch b/SOURCES/mutt-1.5.20-cve-2014-0467.patch new file mode 100644 index 0000000..1ea2906 --- /dev/null +++ b/SOURCES/mutt-1.5.20-cve-2014-0467.patch @@ -0,0 +1,11 @@ +diff -up mutt/copy.c.cve-2014-0467 mutt/copy.c +--- mutt/copy.c.cve-2014-0467 2009-12-14 19:24:59.000000000 +0100 ++++ mutt/copy.c 2014-03-13 10:29:13.844051152 +0100 +@@ -254,6 +254,7 @@ mutt_copy_hdr (FILE *in, FILE *out, LOFF + { + if (!address_header_decode (&this_one)) + rfc2047_decode (&this_one); ++ this_one_len = mutt_strlen (this_one); + } + + if (!headers[x]) diff --git a/SOURCES/mutt-1.5.20-domainname.patch b/SOURCES/mutt-1.5.20-domainname.patch new file mode 100644 index 0000000..1511b80 --- /dev/null +++ b/SOURCES/mutt-1.5.20-domainname.patch @@ -0,0 +1,13 @@ +--- mutt/init.c 2009-12-14 19:24:59.000000000 +0100 ++++ mutt/init.c.new 2016-10-19 16:00:26.065999981 +0200 +@@ -2928,9 +2928,8 @@ void mutt_init (int skip_sys_rc, LIST *c + #define DOMAIN buffer + if (!p && getdnsdomainname (buffer, sizeof (buffer)) == -1) + Fqdn = safe_strdup ("@"); +- else + #endif /* DOMAIN */ +- if (*DOMAIN != '@') ++ if (strlen(DOMAIN) > 0 && *DOMAIN != '@') + { + Fqdn = safe_malloc (mutt_strlen (DOMAIN) + mutt_strlen (Hostname) + 2); + sprintf (Fqdn, "%s.%s", NONULL(Hostname), DOMAIN); /* __SPRINTF_CHECKED__ */ diff --git a/SOURCES/mutt-1.5.20-system_certs.patch b/SOURCES/mutt-1.5.20-system_certs.patch new file mode 100644 index 0000000..45f0bd2 --- /dev/null +++ b/SOURCES/mutt-1.5.20-system_certs.patch @@ -0,0 +1,12 @@ +diff -rup mutt-17a4f92e4a95-orig/init.h mutt-17a4f92e4a95-new/init.h +--- mutt-17a4f92e4a95-orig/init.h 2015-06-07 22:59:32.000000000 +0200 ++++ mutt-17a4f92e4a95-new/init.h 2015-06-25 15:28:56.095570332 +0200 +@@ -2989,7 +2989,7 @@ struct option_t MuttVars[] = { + */ + #if defined(USE_SSL) + #ifdef USE_SSL_GNUTLS +- { "ssl_ca_certificates_file", DT_PATH, R_NONE, UL &SslCACertFile, 0 }, ++ { "ssl_ca_certificates_file", DT_PATH, R_NONE, UL &SslCACertFile, "/etc/pki/tls/certs/ca-bundle.crt" }, + /* + ** .pp + ** This variable specifies a file containing trusted CA certificates. diff --git a/SOURCES/mutt-1.5.21-cabundle.patch b/SOURCES/mutt-1.5.21-cabundle.patch new file mode 100644 index 0000000..df8c225 --- /dev/null +++ b/SOURCES/mutt-1.5.21-cabundle.patch @@ -0,0 +1,28 @@ +diff -up mutt-1.5.21/contrib/Makefile.am.cabundle mutt-1.5.21/contrib/Makefile.am +--- mutt-1.5.21/contrib/Makefile.am.cabundle 2008-03-19 21:07:06.000000000 +0100 ++++ mutt-1.5.21/contrib/Makefile.am 2011-11-02 12:47:34.143534053 +0100 +@@ -5,7 +5,7 @@ subdir = contrib + SAMPLES = Mush.rc Pine.rc gpg.rc pgp2.rc pgp5.rc pgp6.rc Tin.rc \ + sample.muttrc sample.mailcap sample.muttrc-tlr \ + colors.default colors.linux smime.rc \ +- ca-bundle.crt smime_keys_test.pl mutt_xtitle ++ smime_keys_test.pl mutt_xtitle + + EXTRA_DIST = language.txt language50.txt \ + patch.slang-1.2.2.keypad.1 \ +diff -up mutt-1.5.21/doc/smime-notes.txt.cabundle mutt-1.5.21/doc/smime-notes.txt +--- mutt-1.5.21/doc/smime-notes.txt.cabundle 2011-11-02 12:53:56.808750080 +0100 ++++ mutt-1.5.21/doc/smime-notes.txt 2011-11-02 12:57:46.225881970 +0100 +@@ -40,8 +40,10 @@ How to add use mutt's S/MIME capabilitie + - Edit the smime_sign_as line in your muttrc, replacing the keyid with your + own. + +-- You probably want to import the trusted roots in +- contrib/ca-bundle.crt. This makes you trust anything that was ultimately ++- There is no more ca-bundle.crt file with the trusted roots to import shipped ++ in mutt. The upstream file is out-dated and user is encouraged to use ++ ca-bundle.crt from ca-certificate pacakge. ++ This makes you trust anything that was ultimately + signed by one of them. You can use "smime_keys add_root" to do so, or + just copy ca-bundle.crt into the place you point mutt's smime_ca_location + variable to. diff --git a/SOURCES/mutt-1.5.21-certscomp.patch b/SOURCES/mutt-1.5.21-certscomp.patch new file mode 100644 index 0000000..feb7024 --- /dev/null +++ b/SOURCES/mutt-1.5.21-certscomp.patch @@ -0,0 +1,22 @@ +diff -up mutt-1.5.21/mutt_ssl_gnutls.c.testcert mutt-1.5.21/mutt_ssl_gnutls.c +--- mutt-1.5.21/mutt_ssl_gnutls.c.testcert 2010-08-25 18:31:40.000000000 +0200 ++++ mutt-1.5.21/mutt_ssl_gnutls.c 2013-11-04 14:15:33.956762683 +0100 +@@ -434,8 +434,16 @@ static int tls_compare_certificates (con + return 0; + } + +- ptr = (unsigned char *)strstr((char*)b64_data.data, CERT_SEP) + 1; +- ptr = (unsigned char *)strstr((char*)ptr, CERT_SEP); ++ /* find start of cert, skipping junk */ ++ ptr = (unsigned char *)strstr((char*)b64_data.data, CERT_SEP); ++ if (!ptr) ++ { ++ gnutls_free(cert.data); ++ FREE (&b64_data_data); ++ return 0; ++ } ++ /* find start of next cert */ ++ ptr = (unsigned char *)strstr((char*)ptr + 1, CERT_SEP); + + b64_data.size = b64_data.size - (ptr - b64_data.data); + b64_data.data = ptr; diff --git a/SOURCES/mutt-1.5.21-cve-2018-14354_cve-2018-14357.patch b/SOURCES/mutt-1.5.21-cve-2018-14354_cve-2018-14357.patch new file mode 100644 index 0000000..48036ac --- /dev/null +++ b/SOURCES/mutt-1.5.21-cve-2018-14354_cve-2018-14357.patch @@ -0,0 +1,128 @@ +From 185152818541f5cdc059cbff3f3e8b654fc27c1d Mon Sep 17 00:00:00 2001 +From: Kevin McCarthy +Date: Sat, 7 Jul 2018 19:03:44 -0700 +Subject: [PATCH] Properly quote IMAP mailbox names when (un)subscribing. + +When handling automatic subscription (via $imap_check_subscribed), or +manual subscribe/unsubscribe commands, mutt generating a "mailboxes" +command but failed to properly escape backquotes. + +Thanks to Jeriko One for the detailed bug report and patch, which this +commit is based upon. +--- + imap/command.c | 5 +++-- + imap/imap.c | 7 +++++-- + imap/imap_private.h | 3 ++- + imap/util.c | 25 ++++++++++++++++++++----- + 4 files changed, 30 insertions(+), 10 deletions(-) + +diff --git a/imap/command.c b/imap/command.c +index c8825981..c79d4f28 100644 +--- a/imap/command.c ++++ b/imap/command.c +@@ -842,8 +842,9 @@ static void cmd_parse_lsub (IMAP_DATA* idata, char* s) + + strfcpy (buf, "mailboxes \"", sizeof (buf)); + mutt_account_tourl (&idata->conn->account, &url); +- /* escape \ and " */ +- imap_quote_string(errstr, sizeof (errstr), list.name); ++ /* escape \ and ". Also escape ` because the resulting ++ * string will be passed to mutt_parse_rc_line. */ ++ imap_quote_string_and_backquotes (errstr, sizeof (errstr), list.name); + url.path = errstr + 1; + url.path[strlen(url.path) - 1] = '\0'; + if (!mutt_strcmp (url.user, ImapUser)) +diff --git a/imap/imap.c b/imap/imap.c +index 668203b8..c3a8ffd0 100644 +--- a/imap/imap.c ++++ b/imap/imap.c +@@ -1930,6 +1930,7 @@ int imap_subscribe (char *path, int subscribe) + char buf[LONG_STRING]; + char mbox[LONG_STRING]; + char errstr[STRING]; ++ int mblen; + BUFFER err, token; + IMAP_MBOX mx; + +@@ -1951,8 +1952,10 @@ int imap_subscribe (char *path, int subscribe) + memset (&token, 0, sizeof (token)); + err.data = errstr; + err.dsize = sizeof (errstr); +- snprintf (mbox, sizeof (mbox), "%smailboxes \"%s\"", +- subscribe ? "" : "un", path); ++ mblen = snprintf (mbox, sizeof (mbox), "%smailboxes ", ++ subscribe ? "" : "un"); ++ imap_quote_string_and_backquotes (mbox + mblen, sizeof(mbox) - mblen, ++ path); + if (mutt_parse_rc_line (mbox, &token, &err)) + dprint (1, (debugfile, "Error adding subscribed mailbox: %s\n", errstr)); + FREE (&token.data); +diff --git a/imap/imap_private.h b/imap/imap_private.h +index 312fbfe4..349c5a49 100644 +--- a/imap/imap_private.h ++++ b/imap/imap_private.h +@@ -301,7 +301,8 @@ char* imap_next_word (char* s); + time_t imap_parse_date (char* s); + void imap_make_date (char* buf, time_t timestamp); + void imap_qualify_path (char *dest, size_t len, IMAP_MBOX *mx, char* path); +-void imap_quote_string (char* dest, size_t slen, const char* src); ++void imap_quote_string (char* dest, size_t dlen, const char* src); ++void imap_quote_string_and_backquotes (char *dest, size_t dlen, const char *src); + void imap_unquote_string (char* s); + void imap_munge_mbox_name (char *dest, size_t dlen, const char *src); + void imap_unmunge_mbox_name (char *s); +diff --git a/imap/util.c b/imap/util.c +index 914c93c3..3274a70c 100644 +--- a/imap/util.c ++++ b/imap/util.c +@@ -608,11 +608,10 @@ void imap_qualify_path (char *dest, size_t len, IMAP_MBOX *mx, char* path) + } + + +-/* imap_quote_string: quote string according to IMAP rules: +- * surround string with quotes, escape " and \ with \ */ +-void imap_quote_string (char *dest, size_t dlen, const char *src) ++static void _imap_quote_string (char *dest, size_t dlen, const char *src, ++ const char *to_quote) + { +- char quote[] = "\"\\", *pt; ++ char *pt; + const char *s; + + pt = dest; +@@ -625,7 +623,7 @@ void imap_quote_string (char *dest, size_t dlen, const char *src) + + for (; *s && dlen; s++) + { +- if (strchr (quote, *s)) ++ if (strchr (to_quote, *s)) + { + dlen -= 2; + if (!dlen) +@@ -643,6 +641,23 @@ void imap_quote_string (char *dest, size_t dlen, const char *src) + *pt = 0; + } + ++/* imap_quote_string: quote string according to IMAP rules: ++ * surround string with quotes, escape " and \ with \ */ ++void imap_quote_string (char *dest, size_t dlen, const char *src) ++{ ++ _imap_quote_string (dest, dlen, src, "\"\\"); ++} ++ ++/* imap_quote_string_and_backquotes: quote string according to IMAP rules: ++ * surround string with quotes, escape " and \ with \. ++ * Additionally, escape backquotes with \ to protect against code injection ++ * when using the resulting string in mutt_parse_rc_line(). ++ */ ++void imap_quote_string_and_backquotes (char *dest, size_t dlen, const char *src) ++{ ++ _imap_quote_string (dest, dlen, src, "\"\\`"); ++} ++ + /* imap_unquote_string: equally stupid unquoting routine */ + void imap_unquote_string (char *s) + { +-- +2.18.0 + diff --git a/SOURCES/mutt-1.5.21-cve-2018-14362.patch b/SOURCES/mutt-1.5.21-cve-2018-14362.patch new file mode 100644 index 0000000..48ca2e0 --- /dev/null +++ b/SOURCES/mutt-1.5.21-cve-2018-14362.patch @@ -0,0 +1,100 @@ +From 6aed28b40a0410ec47d40c8c7296d8d10bae7576 Mon Sep 17 00:00:00 2001 +From: Kevin McCarthy +Date: Fri, 13 Jul 2018 11:16:33 -0700 +Subject: [PATCH] Sanitize POP bcache paths. + +Protect against bcache directory path traversal for UID values. + +Thanks for Jeriko One for the bug report and patch, which this commit +is based upon. +--- + pop.c | 31 +++++++++++++++++++++++++------ + 1 file changed, 25 insertions(+), 6 deletions(-) + +diff --git a/pop.c b/pop.c +index d9d95fbe..288166de 100644 +--- a/pop.c ++++ b/pop.c +@@ -40,6 +40,25 @@ + #define HC_FEXT "hcache" /* extension for hcache as POP lacks paths */ + #endif + ++/** ++ * cache_id - Make a message-cache-compatible id ++ * @param id POP message id ++ * @retval ptr Sanitised string ++ * ++ * The POP message id may contain '/' and other awkward characters. ++ * ++ * @note This function returns a pointer to a static buffer. ++ */ ++static const char *cache_id(const char *id) ++{ ++ static char clean[SHORT_STRING]; ++ ++ strfcpy (clean, id, sizeof(clean)); ++ mutt_sanitize_filename (clean, 1); ++ ++ return clean; ++} ++ + /* write line to file */ + static int fetch_message (char *line, void *file) + { +@@ -205,7 +224,7 @@ static int msg_cache_check (const char *id, body_cache_t *bcache, void *data) + /* message not found in context -> remove it from cache + * return the result of bcache, so we stop upon its first error + */ +- return mutt_bcache_del (bcache, id); ++ return mutt_bcache_del (bcache, cache_id (id)); + } + + #ifdef USE_HCACHE +@@ -355,7 +374,7 @@ static int pop_fetch_headers (CONTEXT *ctx) + * - if we also have a body: read + * - if we don't have a body: new + */ +- bcached = mutt_bcache_exists (pop_data->bcache, ctx->hdrs[i]->data) == 0; ++ bcached = mutt_bcache_exists (pop_data->bcache, cache_id (ctx->hdrs[i]->data)) == 0; + ctx->hdrs[i]->old = 0; + ctx->hdrs[i]->read = 0; + if (hcached) +@@ -531,7 +550,7 @@ static int pop_fetch_message (CONTEXT* ctx, MESSAGE* msg, int msgno) + unsigned short bcache = 1; + + /* see if we already have the message in body cache */ +- if ((msg->fp = mutt_bcache_get (pop_data->bcache, h->data))) ++ if ((msg->fp = mutt_bcache_get (pop_data->bcache, cache_id (h->data)))) + return 0; + + /* +@@ -578,7 +597,7 @@ static int pop_fetch_message (CONTEXT* ctx, MESSAGE* msg, int msgno) + M_PROGRESS_SIZE, NetInc, h->content->length + h->content->offset - 1); + + /* see if we can put in body cache; use our cache as fallback */ +- if (!(msg->fp = mutt_bcache_put (pop_data->bcache, h->data, 1))) ++ if (!(msg->fp = mutt_bcache_put (pop_data->bcache, cache_id (h->data), 1))) + { + /* no */ + bcache = 0; +@@ -624,7 +643,7 @@ static int pop_fetch_message (CONTEXT* ctx, MESSAGE* msg, int msgno) + * portion of the headers, those required for the main display. + */ + if (bcache) +- mutt_bcache_commit (pop_data->bcache, h->data); ++ mutt_bcache_commit (pop_data->bcache, cache_id (h->data)); + else + { + cache->index = h->index; +@@ -704,7 +723,7 @@ static int pop_sync_mailbox (CONTEXT *ctx, int *index_hint) + snprintf (buf, sizeof (buf), "DELE %d\r\n", ctx->hdrs[i]->refno); + if ((ret = pop_query (pop_data, buf, sizeof (buf))) == 0) + { +- mutt_bcache_del (pop_data->bcache, ctx->hdrs[i]->data); ++ mutt_bcache_del (pop_data->bcache, cache_id (ctx->hdrs[i]->data)); + #if USE_HCACHE + mutt_hcache_delete (hc, ctx->hdrs[i]->data, strlen); + #endif +-- +2.18.0 + diff --git a/SOURCES/mutt-1.5.21-gpgme-1.2.0.patch b/SOURCES/mutt-1.5.21-gpgme-1.2.0.patch new file mode 100644 index 0000000..90af39d --- /dev/null +++ b/SOURCES/mutt-1.5.21-gpgme-1.2.0.patch @@ -0,0 +1,26 @@ +diff -up mutt-1.5.21/init.c.gpgme-1.2.0 mutt-1.5.21/init.c +--- mutt-1.5.21/init.c.gpgme-1.2.0 2010-08-25 18:31:40.000000000 +0200 ++++ mutt-1.5.21/init.c 2011-10-26 10:29:12.166967476 +0200 +@@ -52,6 +52,10 @@ + #include + #include + ++#if defined(CRYPT_BACKEND_GPGME) ++#include ++#endif ++ + #define CHECK_PAGER \ + if ((CurrentMenu == MENU_PAGER) && (idx >= 0) && \ + (MuttVars[idx].flags & R_RESORT)) \ +@@ -3143,6 +3147,11 @@ void mutt_init (int skip_sys_rc, LIST *c + + mutt_read_histfile (); + ++#ifdef CRYPT_BACKEND_GPGME ++ /* needed since version 1.2.0, ticket #3300 */ ++ gpgme_check_version (NULL); ++#endif ++ + #if 0 + set_option (OPTWEED); /* turn weeding on by default */ + #endif diff --git a/SOURCES/mutt-1.5.21-hdrcnt.patch b/SOURCES/mutt-1.5.21-hdrcnt.patch new file mode 100644 index 0000000..26bec5e --- /dev/null +++ b/SOURCES/mutt-1.5.21-hdrcnt.patch @@ -0,0 +1,59 @@ +diff -up mutt-1.5.21/imap/message.c.hdrcnt mutt-1.5.21/imap/message.c +--- mutt-1.5.21/imap/message.c.hdrcnt 2010-08-24 18:34:21.000000000 +0200 ++++ mutt-1.5.21/imap/message.c 2011-06-13 15:44:08.268380854 +0200 +@@ -65,7 +65,7 @@ int imap_read_headers (IMAP_DATA* idata, + char *hdrreq = NULL; + FILE *fp; + char tempfile[_POSIX_PATH_MAX]; +- int msgno, idx; ++ int msgno, idx = msgbegin - 1; + IMAP_HEADER h; + IMAP_STATUS* status; + int rc, mfhrc, oldmsgcount; +@@ -185,7 +185,7 @@ int imap_read_headers (IMAP_DATA* idata, + continue; + } + +- idx = h.sid - 1; ++ idx++; + ctx->hdrs[idx] = imap_hcache_get (idata, h.data->uid); + if (ctx->hdrs[idx]) + { +@@ -211,6 +211,7 @@ int imap_read_headers (IMAP_DATA* idata, + dprint (3, (debugfile, "bad cache entry at %d, giving up\n", h.sid - 1)); + imap_free_header_data((void**) (void*) &h.data); + evalhc = 0; ++ idx--; + } + } + while (rc != IMAP_CMD_OK && mfhrc == -1); +@@ -273,18 +274,20 @@ int imap_read_headers (IMAP_DATA* idata, + { + dprint (2, (debugfile, "msg_fetch_header: ignoring fetch response with no body\n")); + mfhrc = -1; ++ msgend--; + continue; + } + + /* make sure we don't get remnants from older larger message headers */ + fputs ("\n\n", fp); + +- idx = h.sid - 1; ++ idx++; + if (idx > msgend) + { + dprint (1, (debugfile, "imap_read_headers: skipping FETCH response for " + "unknown message number %d\n", h.sid)); + mfhrc = -1; ++ idx--; + continue; + } + /* May receive FLAGS updates in a separate untagged response (#2935) */ +@@ -292,6 +295,7 @@ int imap_read_headers (IMAP_DATA* idata, + { + dprint (2, (debugfile, "imap_read_headers: message %d is not new\n", + h.sid)); ++ idx--; + continue; + } + diff --git a/SOURCES/mutt-1.5.21-manhelp.patch b/SOURCES/mutt-1.5.21-manhelp.patch new file mode 100644 index 0000000..e6a0280 --- /dev/null +++ b/SOURCES/mutt-1.5.21-manhelp.patch @@ -0,0 +1,284 @@ +diff -up mutt-1.5.21/doc/Makefile.in.manhelp mutt-1.5.21/doc/Makefile.in +--- mutt-1.5.21/doc/Makefile.in.manhelp 2010-08-25 18:31:48.000000000 +0200 ++++ mutt-1.5.21/doc/Makefile.in 2013-05-20 17:03:19.557439907 +0200 +@@ -218,6 +218,8 @@ EXTRA_DIST = dotlock.man \ + smime_keys.man \ + muttbug.man \ + mutt.man \ ++ pgpewrap.man \ ++ pgpring.man \ + PGP-Notes.txt \ + applying-patches.txt \ + devel-notes.txt \ +@@ -519,7 +521,7 @@ uninstall-am: uninstall-local + + all: makedoc-all + +-makedoc-all: mutt.1 smime_keys.1 muttrc.man manual.html stamp-doc-rc stamp-doc-chunked manual.txt ++makedoc-all: mutt.1 smime_keys.1 muttrc.man manual.html stamp-doc-rc stamp-doc-chunked manual.txt pgpewrap.1 pgpring.1 + + install-data-local: makedoc-all instdoc + $(top_srcdir)/mkinstalldirs $(DESTDIR)$(mandir)/man1 +@@ -527,6 +529,8 @@ install-data-local: makedoc-all instdoc + $(top_srcdir)/mkinstalldirs $(DESTDIR)$(sysconfdir) + ./instdoc mutt.1 $(DESTDIR)$(mandir)/man1/mutt.1 + ./instdoc smime_keys.1 $(DESTDIR)$(mandir)/man1/smime_keys.1 ++ ./instdoc pgpewrap.1 $(DESTDIR)$(mandir)/man1/pgpewrap.1 ++ ./instdoc pgpring.1 $(DESTDIR)$(mandir)/man1/pgpring.1 + ./instdoc $(srcdir)/muttbug.man $(DESTDIR)$(mandir)/man1/flea.1 + ./instdoc $(srcdir)/muttbug.man $(DESTDIR)$(mandir)/man1/muttbug.1 + test x@DOTLOCK_TARGET@ = x || ./instdoc $(srcdir)/dotlock.man \ +@@ -555,7 +559,7 @@ install-data-local: makedoc-all instdoc + fi + + uninstall-local: +- for f in mutt.1 mutt_dotlock.1 flea.1 muttbug.1 smime_keys.1; do \ ++ for f in mutt.1 mutt_dotlock.1 flea.1 muttbug.1 smime_keys.1 pgpewrap.1 pgpring.1; do \ + rm -f $(DESTDIR)$(mandir)/man1/$$f ; \ + done + for f in muttrc.5 mbox.5 mmdf.5 ; do \ +@@ -620,7 +624,7 @@ sortcheck: manual.xml + rm -rf vars.tmp.1 vars.tmp.2 + + clean-local: +- rm -f *~ *.html *.orig *.rej stamp-doc-* *.ps mutt.1 smime_keys.1 muttrc.man ++ rm -f *~ *.html *.orig *.rej stamp-doc-* *.ps mutt.1 smime_keys.1 muttrc.man pgpewrap.1 pgpring.1 + rm -f *.aux *.log *.tex *.out + + instdoc: instdoc.sh +@@ -640,6 +644,12 @@ mutt.1: $(srcdir)/mutt.man + smime_keys.1: $(srcdir)/smime_keys.man + $(EDIT) $(srcdir)/smime_keys.man > $@ + ++pgpewrap.1: $(srcdir)/pgpewrap.man ++ $(EDIT) $(srcdir)/pgpewrap.man > $@ ++ ++pgpring.1: $(srcdir)/pgpring.man ++ $(EDIT) $(srcdir)/pgpring.man > $@ ++ + stamp-doc-xml: makedoc$(EXEEXT) $(top_srcdir)/init.h \ + manual.xml.head $(top_srcdir)/functions.h $(top_srcdir)/OPS* manual.xml.tail \ + $(srcdir)/gen-map-doc $(top_srcdir)/VERSION $(top_srcdir)/ChangeLog +diff -up mutt-1.5.21/doc/manual.html.manhelp mutt-1.5.21/doc/manual.html +--- mutt-1.5.21/doc/manual.html.manhelp 2013-05-20 17:01:07.570442214 +0200 ++++ mutt-1.5.21/doc/manual.html 2013-05-20 17:01:13.082442117 +0200 +@@ -4171,7 +4171,7 @@ case-insensitivity). + Running mutt with no arguments will make Mutt attempt + to read your spool mailbox. However, it is possible to read other + mailboxes and to send messages from the command line as well. +-

Table 9.1. Command line options

OptionDescription
-Aexpand an alias
-aattach a file to a message
-bspecify a blind carbon-copy (BCC) address
-cspecify a carbon-copy (Cc) address
-Dprint the value of all Mutt variables to stdout
-especify a config command to be run after initialization files are read
-fspecify a mailbox to load
-Fspecify an alternate file to read initialization commands
-hprint help on command line options
-Hspecify a draft file from which to read a header and body
-ispecify a file to include in a message composition
-mspecify a default mailbox type
-ndo not read the system Muttrc
-precall a postponed message
-Qquery a configuration variable
-Ropen mailbox in read-only mode
-sspecify a subject (enclose in quotes if it contains spaces)
-vshow version number and compile-time definitions
-xsimulate the mailx(1) compose mode
-yshow a menu containing the files specified by the mailboxes command
-zexit immediately if there are no messages in the mailbox
-Zopen the first folder with new message, exit immediately if none

++

Table 9.1. Command line options

OptionDescription
-Aexpand an alias
-aattach a file to a message
-bspecify a blind carbon-copy (BCC) address
-cspecify a carbon-copy (Cc) address
-Dprint the value of all Mutt variables to stdout
-dlog debugging output to ~/.muttdebug0 if complied with +DEBUG (level can be 1-5)
-especify a config command to be run after initialization files are read
-fspecify a mailbox to load
-Fspecify an alternate file to read initialization commands
-hprint help on command line options
-Hspecify a draft file from which to read a header and body
-ispecify a file to include in a message composition
-mspecify a default mailbox type
-ndo not read the system Muttrc
-precall a postponed message
-Qquery a configuration variable
-Ropen mailbox in read-only mode
-sspecify a subject (enclose in quotes if it contains spaces)
-vshow version number and compile-time definitions
-xsimulate the mailx(1) compose mode
-yshow a menu containing the files specified by the mailboxes command
-zexit immediately if there are no messages in the mailbox
-Zopen the first folder with new message, exit immediately if none

+ To read messages in a mailbox +

mutt [-nz] [-F + muttrc +diff -up mutt-1.5.21/doc/manual.txt.manhelp mutt-1.5.21/doc/manual.txt +--- mutt-1.5.21/doc/manual.txt.manhelp 2013-05-20 17:01:07.935442207 +0200 ++++ mutt-1.5.21/doc/manual.txt 2013-05-20 17:01:13.622442108 +0200 +@@ -6021,6 +6021,8 @@ Table 9.1. Command line options + |------+----------------------------------------------------------------------| + |-D |print the value of all Mutt variables to stdout | + |------+----------------------------------------------------------------------| ++|-d |log debugging output to ~/.muttdebug0 if complied with +DEBUG (1-5) | ++|------+----------------------------------------------------------------------| + |-e |specify a config command to be run after initialization files are read| + |------+----------------------------------------------------------------------| + |-f |specify a mailbox to load | +diff -up mutt-1.5.21/doc/pgpewrap.man.manhelp mutt-1.5.21/doc/pgpewrap.man +--- mutt-1.5.21/doc/pgpewrap.man.manhelp 2013-05-20 17:01:13.953442102 +0200 ++++ mutt-1.5.21/doc/pgpewrap.man 2013-05-20 17:01:13.953442102 +0200 +@@ -0,0 +1,46 @@ ++.\" -*-nroff-*- ++.\" ++.\" pgpewrap, a command line munging tool ++.\" Manpage Copyright (c) 2013 Honza Horak ++.\" ++.\" 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 ++.\" the Free Software Foundation; either version 2 of the License, or ++.\" (at your option) any later version. ++.\" ++.\" This program is distributed in the hope that it will be useful, ++.\" but WITHOUT ANY WARRANTY; without even the implied warranty of ++.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++.\" GNU General Public License for more details. ++.\" ++.\" You should have received a copy of the GNU General Public License ++.\" along with this program; if not, write to the Free Software ++.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++.\" ++.TH pgpewrap 1 "May 2013" Unix "User Manuals" ++.SH NAME ++pgpewrap \- Mutt command line munging tool ++ ++.SH SYNTAX ++.PP ++\fBpgpewrap\fP [ \fBflags\fP ] \-\- \fBprefix\fP [ \fBrecipients\fP ] ++ ++.SH DESCRIPTION ++.PP ++This is a little C program which does some command line munging: The ++first argument is a command to be executed. When \fBpgpewrap\fP ++encounters a "\-\-" (dash\-dash) argument, it will interpret the next ++argument as a prefix which is put in front of all following ++arguments. ++ ++.SH EXAMPLE ++ ++ pgpewrap pgpe file \-\- \-r a b c ++ ++will execute: ++ ++ pgpe file -r a -r b -r c ++ ++This script is needed with PGP 5 and with GPG, since their command ++line interfaces can't be properly served by mutt's format mechanism. ++ +diff -up mutt-1.5.21/doc/PGP-Notes.txt.manhelp mutt-1.5.21/doc/PGP-Notes.txt +--- mutt-1.5.21/doc/PGP-Notes.txt.manhelp 2008-03-19 21:07:06.000000000 +0100 ++++ mutt-1.5.21/doc/PGP-Notes.txt 2013-05-20 17:01:14.335442095 +0200 +@@ -182,6 +182,10 @@ Command line options: + + -s Dump the secret key ring. + ++ -S Dump signatures. ++ ++ -f Dump fingerprints. ++ + + + 2. pgpewrap +diff -up mutt-1.5.21/doc/pgpring.man.manhelp mutt-1.5.21/doc/pgpring.man +--- mutt-1.5.21/doc/pgpring.man.manhelp 2013-05-20 17:01:14.685442089 +0200 ++++ mutt-1.5.21/doc/pgpring.man 2013-05-20 17:01:14.685442089 +0200 +@@ -0,0 +1,58 @@ ++.\" -*-nroff-*- ++.\" ++.\" pgpring, a key ring dumper ++.\" Manpage Copyright (c) 2004-2013 Matthew Wilcox, Honza Horak ++.\" ++.\" 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 ++.\" the Free Software Foundation; either version 2 of the License, or ++.\" (at your option) any later version. ++.\" ++.\" This program is distributed in the hope that it will be useful, ++.\" but WITHOUT ANY WARRANTY; without even the implied warranty of ++.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++.\" GNU General Public License for more details. ++.\" ++.\" You should have received a copy of the GNU General Public License ++.\" along with this program; if not, write to the Free Software ++.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++.\" ++.TH pgpring 1 "May 2013" Unix "User Manuals" ++.SH NAME ++pgpring \- Mutt key ring dumper ++ ++.SH SYNTAX ++.PP ++\fBpgpring\fP [ \fB\-k\fP \fIkeyring\fP ] [ \fB\-2\fP | \fB\-5\fP ] ++[ \fB\-s\fP ] [ \fB\-S\fP ] [ \fB\-f\fP ] ++ ++.SH DESCRIPTION ++.PP ++pgpring is a key ring dumper. It extracts information from PGP's ++binary key ring and emits it in an (almost) readable output format ++understood by mutt's key selection routines. This output format ++mimics the one used by the GNU Privacy Guard (GPG). ++ ++.SH OPTIONS ++.TP ++.BI \-k " keyring" ++Dump the contents of the specified keyring. ++.TP ++.B \-2 ++Use the default keyring for PGP 2.x. ++.TP ++.B \-5 ++Use the default keyring for PGP 5. ++.TP ++.B \-s ++Dump the secret keyring. ++.TP ++.B \-S ++Dump signatures. ++.TP ++.B \-f ++Dump fingerprints. ++ ++.SH AUTHORS ++Thomas Roessler ++ +diff -up mutt-1.5.21/doc/reference.html.manhelp mutt-1.5.21/doc/reference.html +--- mutt-1.5.21/doc/reference.html.manhelp 2013-05-20 17:01:10.220442167 +0200 ++++ mutt-1.5.21/doc/reference.html 2013-05-20 17:01:15.013442084 +0200 +@@ -31,7 +31,7 @@ tr { vertical-align: top; } + Running mutt with no arguments will make Mutt attempt + to read your spool mailbox. However, it is possible to read other + mailboxes and to send messages from the command line as well. +-

Table 9.1. Command line options

OptionDescription
-Aexpand an alias
-aattach a file to a message
-bspecify a blind carbon-copy (BCC) address
-cspecify a carbon-copy (Cc) address
-Dprint the value of all Mutt variables to stdout
-especify a config command to be run after initialization files are read
-fspecify a mailbox to load
-Fspecify an alternate file to read initialization commands
-hprint help on command line options
-Hspecify a draft file from which to read a header and body
-ispecify a file to include in a message composition
-mspecify a default mailbox type
-ndo not read the system Muttrc
-precall a postponed message
-Qquery a configuration variable
-Ropen mailbox in read-only mode
-sspecify a subject (enclose in quotes if it contains spaces)
-vshow version number and compile-time definitions
-xsimulate the mailx(1) compose mode
-yshow a menu containing the files specified by the mailboxes command
-zexit immediately if there are no messages in the mailbox
-Zopen the first folder with new message, exit immediately if none

++

Table 9.1. Command line options

OptionDescription
-Aexpand an alias
-aattach a file to a message
-bspecify a blind carbon-copy (BCC) address
-cspecify a carbon-copy (Cc) address
-Dprint the value of all Mutt variables to stdout
-dlog debugging output to ~/.muttdebug0 if complied with +DEBUG (level can be 1-5)
-especify a config command to be run after initialization files are read
-fspecify a mailbox to load
-Fspecify an alternate file to read initialization commands
-hprint help on command line options
-Hspecify a draft file from which to read a header and body
-ispecify a file to include in a message composition
-mspecify a default mailbox type
-ndo not read the system Muttrc
-precall a postponed message
-Qquery a configuration variable
-Ropen mailbox in read-only mode
-sspecify a subject (enclose in quotes if it contains spaces)
-vshow version number and compile-time definitions
-xsimulate the mailx(1) compose mode
-yshow a menu containing the files specified by the mailboxes command
-zexit immediately if there are no messages in the mailbox
-Zopen the first folder with new message, exit immediately if none

+ To read messages in a mailbox +

mutt [-nz] [-F + muttrc +diff -up mutt-1.5.21/doc/Makefile.am.manhelp2 mutt-1.5.21/doc/Makefile.am +--- mutt-1.5.21/doc/Makefile.am.manhelp2 2013-05-20 17:07:01.080436035 +0200 ++++ mutt-1.5.21/doc/Makefile.am 2013-05-20 17:10:03.670432844 +0200 +@@ -13,6 +13,8 @@ EXTRA_DIST = dotlock.man \ + smime_keys.man \ + muttbug.man \ + mutt.man \ ++ pgpewrap.man \ ++ pgpring.man \ + PGP-Notes.txt \ + applying-patches.txt \ + devel-notes.txt \ +@@ -46,7 +48,7 @@ topsrcdir_DOCFILES = COPYRIGHT GPL INSTA + + all: makedoc-all + +-makedoc-all: mutt.1 smime_keys.1 muttrc.man manual.html stamp-doc-rc stamp-doc-chunked manual.txt ++makedoc-all: mutt.1 smime_keys.1 muttrc.man manual.html stamp-doc-rc stamp-doc-chunked manual.txt pgpewrap.1 pgpring.1 + + install-data-local: makedoc-all instdoc + $(top_srcdir)/mkinstalldirs $(DESTDIR)$(mandir)/man1 +@@ -54,6 +56,8 @@ install-data-local: makedoc-all instdoc + $(top_srcdir)/mkinstalldirs $(DESTDIR)$(sysconfdir) + ./instdoc mutt.1 $(DESTDIR)$(mandir)/man1/mutt.1 + ./instdoc smime_keys.1 $(DESTDIR)$(mandir)/man1/smime_keys.1 ++ ./instdoc pgpewrap.1 $(DESTDIR)$(mandir)/man1/pgpewrap.1 ++ ./instdoc pgpring.1 $(DESTDIR)$(mandir)/man1/pgpring.1 + ./instdoc $(srcdir)/muttbug.man $(DESTDIR)$(mandir)/man1/flea.1 + ./instdoc $(srcdir)/muttbug.man $(DESTDIR)$(mandir)/man1/muttbug.1 + test x@DOTLOCK_TARGET@ = x || ./instdoc $(srcdir)/dotlock.man \ +@@ -82,7 +86,7 @@ install-data-local: makedoc-all instdoc + fi + + uninstall-local: +- for f in mutt.1 mutt_dotlock.1 flea.1 muttbug.1 smime_keys.1; do \ ++ for f in mutt.1 mutt_dotlock.1 flea.1 muttbug.1 smime_keys.1 pgpewrap.1 pgpring.1; do \ + rm -f $(DESTDIR)$(mandir)/man1/$$f ; \ + done + for f in muttrc.5 mbox.5 mmdf.5 ; do \ +@@ -147,7 +151,7 @@ sortcheck: manual.xml + rm -rf vars.tmp.1 vars.tmp.2 + + clean-local: +- rm -f *~ *.html *.orig *.rej stamp-doc-* *.ps mutt.1 smime_keys.1 muttrc.man ++ rm -f *~ *.html *.orig *.rej stamp-doc-* *.ps mutt.1 smime_keys.1 muttrc.man pgpewrap.1 pgpring.1 + rm -f *.aux *.log *.tex *.out + + DISTCLEANFILES=manual.txt manual.html manual.xml manual.pdf html \ +@@ -171,6 +175,12 @@ EDIT = sed -e 's,@sysconfdir\@,$(sysconf + mutt.1: $(srcdir)/mutt.man + $(EDIT) $(srcdir)/mutt.man > $@ + ++pgpewrap.1: $(srcdir)/pgpewrap.man ++ $(EDIT) $(srcdir)/pgpewrap.man > $@ ++ ++pgpring.1: $(srcdir)/pgpring.man ++ $(EDIT) $(srcdir)/pgpring.man > $@ ++ + smime_keys.1: $(srcdir)/smime_keys.man + $(EDIT) $(srcdir)/smime_keys.man > $@ + diff --git a/SOURCES/mutt-1.5.21-notation.patch b/SOURCES/mutt-1.5.21-notation.patch new file mode 100644 index 0000000..ebdbdca --- /dev/null +++ b/SOURCES/mutt-1.5.21-notation.patch @@ -0,0 +1,13 @@ +diff -up mutt-1.5.21/crypt-gpgme.c.notation mutt-1.5.21/crypt-gpgme.c +--- mutt-1.5.21/crypt-gpgme.c.notation 2012-04-25 10:26:20.589226791 +0200 ++++ mutt-1.5.21/crypt-gpgme.c 2012-04-25 10:28:02.075915855 +0200 +@@ -72,7 +72,8 @@ + #define xtoi_2(p) ((xtoi_1(p) * 16) + xtoi_1((p)+1)) + + #define PKA_NOTATION_NAME "pka-address@gnupg.org" +-#define is_pka_notation(notation) (! strcmp ((notation)->name, \ ++#define is_pka_notation(notation) ((notation)->name && \ ++ ! strcmp ((notation)->name, \ + PKA_NOTATION_NAME)) + + /* Values used for comparing addresses. */ diff --git a/SOURCES/mutt-1.5.21-pophash.patch b/SOURCES/mutt-1.5.21-pophash.patch new file mode 100644 index 0000000..5540e97 --- /dev/null +++ b/SOURCES/mutt-1.5.21-pophash.patch @@ -0,0 +1,19 @@ +diff -up mutt/pop.c.pophash mutt/pop.c +--- mutt/pop.c.pophash 2009-12-14 19:24:59.000000000 +0100 ++++ mutt/pop.c 2011-10-04 16:51:23.307236908 +0200 +@@ -618,8 +618,15 @@ int pop_fetch_message (MESSAGE* msg, CON + } + rewind (msg->fp); + uidl = h->data; ++ ++ /* we replace envelop, key in subj_hash has to be updated as well */ ++ if (ctx->subj_hash && h->env->real_subj) ++ hash_delete (ctx->subj_hash, h->env->real_subj, h, NULL); + mutt_free_envelope (&h->env); + h->env = mutt_read_rfc822_header (msg->fp, h, 0, 0); ++ if (ctx->subj_hash && h->env->real_subj) ++ hash_insert (ctx->subj_hash, h->env->real_subj, h, 1); ++ + h->data = uidl; + h->lines = 0; + fgets (buf, sizeof (buf), msg->fp); diff --git a/SOURCES/mutt-1.5.21-syncdebug.patch b/SOURCES/mutt-1.5.21-syncdebug.patch new file mode 100644 index 0000000..016e500 --- /dev/null +++ b/SOURCES/mutt-1.5.21-syncdebug.patch @@ -0,0 +1,12 @@ +diff -up mutt-1.5.21/imap/imap.c.syncdebug mutt-1.5.21/imap/imap.c +--- mutt-1.5.21/imap/imap.c.syncdebug 2012-03-27 10:05:44.978962551 +0200 ++++ mutt-1.5.21/imap/imap.c 2012-03-27 10:05:54.223252267 +0200 +@@ -1128,7 +1128,7 @@ static int sync_helper (IMAP_DATA* idata + + char buf[LONG_STRING]; + +- if (!mutt_bit_isset (idata->ctx->rights, right)) ++ if (!idata->ctx || !mutt_bit_isset (idata->ctx->rights, right)) + return 0; + + if (right == M_ACL_WRITE && !imap_has_flag (idata->flags, name)) diff --git a/SOURCES/mutt-1.5.21-testcert.patch b/SOURCES/mutt-1.5.21-testcert.patch new file mode 100644 index 0000000..0d0c86d --- /dev/null +++ b/SOURCES/mutt-1.5.21-testcert.patch @@ -0,0 +1,30 @@ +diff -up mutt-1.5.21/mutt_ssl_gnutls.c.old mutt-1.5.21/mutt_ssl_gnutls.c +--- mutt-1.5.21/mutt_ssl_gnutls.c.old 2011-03-23 11:46:28.760386765 +0100 ++++ mutt-1.5.21/mutt_ssl_gnutls.c 2011-03-23 14:34:45.839456449 +0100 +@@ -978,6 +978,7 @@ static int tls_check_certificate (CONNEC + unsigned int cert_list_size = 0; + gnutls_certificate_status certstat; + int certerr, i, preauthrc, savedcert, rc = 0; ++ int rcpeer; + + if (gnutls_auth_get_type (state) != GNUTLS_CRD_CERTIFICATE) + { +@@ -1003,6 +1004,9 @@ static int tls_check_certificate (CONNEC + for (i = 0; i < cert_list_size; i++) { + rc = tls_check_preauth(&cert_list[i], certstat, conn->account.host, i, + &certerr, &savedcert); ++ if (i == 0) ++ rcpeer = rc; ++ + preauthrc += rc; + + if (savedcert) +@@ -1028,7 +1032,7 @@ static int tls_check_certificate (CONNEC + dprint (1, (debugfile, "error trusting certificate %d: %d\n", i, rc)); + + certstat = tls_verify_peers (state); +- if (!certstat) ++ if (!certstat && !rcpeer) + return 1; + } + } diff --git a/SOURCES/mutt-1.5.21-tlsv1v2.patch b/SOURCES/mutt-1.5.21-tlsv1v2.patch new file mode 100644 index 0000000..6e96f4c --- /dev/null +++ b/SOURCES/mutt-1.5.21-tlsv1v2.patch @@ -0,0 +1,146 @@ +Some servers have problem when connection uses TLS 1.0 or SSL 3.0. +Since openssl offers TLS 1.1 and 1.2, we would like to use these +when connecting to server, while having ability to disable these +protocols if needed. + +https://bugzilla.redhat.com/show_bug.cgi?id=957840 + +Upstream related bug report: +http://dev.mutt.org/trac/ticket/3571 + +diff -up mutt-1.5.21/init.h.tlsv1v2 mutt-1.5.21/init.h +--- mutt-1.5.21/init.h.tlsv1v2 2013-06-27 12:46:14.120389035 +0200 ++++ mutt-1.5.21/init.h 2013-06-27 12:47:28.020387743 +0200 +@@ -2970,6 +2970,18 @@ struct option_t MuttVars[] = { + ** This variable specifies whether to attempt to use TLSv1 in the + ** SSL authentication process. + */ ++ { "ssl_use_tlsv1_1", DT_BOOL, R_NONE, OPTTLSV1_1, 1 }, ++ /* ++ ** .pp ++ ** This variable specifies whether to attempt to use TLSv1.1 in the ++ ** SSL authentication process. ++ */ ++ { "ssl_use_tlsv1_2", DT_BOOL, R_NONE, OPTTLSV1_2, 1 }, ++ /* ++ ** .pp ++ ** This variable specifies whether to attempt to use TLSv1.2 in the ++ ** SSL authentication process. ++ */ + #ifdef USE_SSL_OPENSSL + { "ssl_usesystemcerts", DT_BOOL, R_NONE, OPTSSLSYSTEMCERTS, 1 }, + /* +diff -up mutt-1.5.21/mutt.h.tlsv1v2 mutt-1.5.21/mutt.h +--- mutt-1.5.21/mutt.h.tlsv1v2 2010-09-13 19:19:55.000000000 +0200 ++++ mutt-1.5.21/mutt.h 2013-06-27 12:47:28.020387743 +0200 +@@ -376,6 +376,8 @@ enum + # endif /* USE_SSL_GNUTLS */ + OPTSSLV3, + OPTTLSV1, ++ OPTTLSV1_1, ++ OPTTLSV1_2, + OPTSSLFORCETLS, + OPTSSLVERIFYDATES, + OPTSSLVERIFYHOST, +diff -up mutt-1.5.21/mutt_ssl.c.tlsv1v2 mutt-1.5.21/mutt_ssl.c +--- mutt-1.5.21/mutt_ssl.c.tlsv1v2 2010-08-25 18:31:40.000000000 +0200 ++++ mutt-1.5.21/mutt_ssl.c 2013-06-27 12:47:28.021387743 +0200 +@@ -106,6 +106,18 @@ int mutt_ssl_starttls (CONNECTION* conn) + dprint (1, (debugfile, "mutt_ssl_starttls: Error allocating SSL_CTX\n")); + goto bail_ssldata; + } ++#ifdef SSL_OP_NO_TLSv1_1 ++ if (!option(OPTTLSV1_1)) ++ { ++ SSL_CTX_set_options(ssldata->ctx, SSL_OP_NO_TLSv1_1); ++ } ++#endif ++#ifdef SSL_OP_NO_TLSv1_2 ++ if (!option(OPTTLSV1_2)) ++ { ++ SSL_CTX_set_options(ssldata->ctx, SSL_OP_NO_TLSv1_2); ++ } ++#endif + + ssl_get_client_cert(ssldata, conn); + +@@ -303,6 +315,21 @@ static int ssl_socket_open (CONNECTION * + { + SSL_CTX_set_options(data->ctx, SSL_OP_NO_TLSv1); + } ++ /* TLSv1.1/1.2 support was added in OpenSSL 1.0.1, but some OS distros such ++ * as Fedora 17 are on OpenSSL 1.0.0. ++ */ ++#ifdef SSL_OP_NO_TLSv1_1 ++ if (!option(OPTTLSV1_1)) ++ { ++ SSL_CTX_set_options(data->ctx, SSL_OP_NO_TLSv1_1); ++ } ++#endif ++#ifdef SSL_OP_NO_TLSv1_2 ++ if (!option(OPTTLSV1_2)) ++ { ++ SSL_CTX_set_options(data->ctx, SSL_OP_NO_TLSv1_2); ++ } ++#endif + if (!option(OPTSSLV2)) + { + SSL_CTX_set_options(data->ctx, SSL_OP_NO_SSLv2); +diff -up mutt-1.5.21/mutt_ssl_gnutls.c.tlsv1v2 mutt-1.5.21/mutt_ssl_gnutls.c +--- mutt-1.5.21/mutt_ssl_gnutls.c.tlsv1v2 2013-06-27 12:46:14.123389035 +0200 ++++ mutt-1.5.21/mutt_ssl_gnutls.c 2013-06-27 12:47:28.018387743 +0200 +@@ -238,7 +238,11 @@ err_crt: + gnutls_x509_crt_deinit (clientcrt); + } + +-static int protocol_priority[] = {GNUTLS_TLS1, GNUTLS_SSL3, 0}; ++/* This array needs to be large enough to hold all the possible values support ++ * by Mutt. The initialized values are just placeholders--the array gets ++ * overwrriten in tls_negotiate() depending on the $ssl_use_* options. ++ */ ++static int protocol_priority[] = {GNUTLS_TLS1_2, GNUTLS_TLS1_1, GNUTLS_TLS1, GNUTLS_SSL3, 0}; + + /* tls_negotiate: After TLS state has been initialised, attempt to negotiate + * TLS over the wire, including certificate checks. */ +@@ -246,6 +250,7 @@ static int tls_negotiate (CONNECTION * c + { + tlssockdata *data; + int err; ++ size_t nproto = 0; /* number of tls/ssl protocols */ + + data = (tlssockdata *) safe_calloc (1, sizeof (tlssockdata)); + conn->sockdata = data; +@@ -286,22 +291,22 @@ static int tls_negotiate (CONNECTION * c + /* set socket */ + gnutls_transport_set_ptr (data->state, (gnutls_transport_ptr)conn->fd); + ++ if (option(OPTTLSV1_2)) ++ protocol_priority[nproto++] = GNUTLS_TLS1_2; ++ if (option(OPTTLSV1_1)) ++ protocol_priority[nproto++] = GNUTLS_TLS1_1; ++ if (option(OPTTLSV1)) ++ protocol_priority[nproto++] = GNUTLS_TLS1; ++ if (option(OPTSSLV3)) ++ protocol_priority[nproto++] = GNUTLS_SSL3; ++ protocol_priority[nproto] = 0; ++ + /* disable TLS/SSL protocols as needed */ +- if (!option(OPTTLSV1) && !option(OPTSSLV3)) ++ if (nproto == 0) + { + mutt_error (_("All available protocols for TLS/SSL connection disabled")); + goto fail; + } +- else if (!option(OPTTLSV1)) +- { +- protocol_priority[0] = GNUTLS_SSL3; +- protocol_priority[1] = 0; +- } +- else if (!option(OPTSSLV3)) +- { +- protocol_priority[0] = GNUTLS_TLS1; +- protocol_priority[1] = 0; +- } + /* + else + use the list set above diff --git a/SOURCES/mutt-1.5.21-tmpdir.patch b/SOURCES/mutt-1.5.21-tmpdir.patch new file mode 100644 index 0000000..9256735 --- /dev/null +++ b/SOURCES/mutt-1.5.21-tmpdir.patch @@ -0,0 +1,146 @@ +Subject: Changed tmpdir default to /var/tmp + +By default, mutt stores drafts in +/tmp/mutt-$HOSTNAME-$UID-$PID-$REV. /tmp is designed to hold data +that isn't guaranteed to be preserved between different invocations +of programmes. For practical purposes, and on Debian at least, this +translates to files being deleted on every boot, unless TMPTIME is +amended in /etc/default/rcS and /tmp is not a tmpfs. + +This behaviour can cause loss of data, e.g. when the laptop dies or +turns itself off due to low power; the user might not have a chance +to commit the temporary mail draft s/he was working on to +non-volatile storage. + +I suggest that mutt should use /var/tmp by default for its mail +drafts, as that directory is also temporary in nature, but cleaned +less frequently than /tmp. More specifically, the FHS dictates that +"files and directories located in /var/tmp must not be deleted when +the system is booted." + +This patch modifies all occurrences of $tmpdir, $TMPDIR and Tempdir, but +not the documentation, which looks like it's generated from init.h. + +Patch created by: martin f. krafft , submitted to +http://dev.mutt.org/trac/ticket/3236 +and repaired to be able to apply. + +Fedora related: Upstream is not willing to change defualt tmpdir, +because they don't believe /var/tmp is on all supported platforms. +However, they agree with changing it in distrubution packages. +More info at http://dev.mutt.org/trac/ticket/3236 + +diff -up mutt-1.5.21/doc/manual.html.tmpdir mutt-1.5.21/doc/manual.html +--- mutt-1.5.21/doc/manual.html.tmpdir 2012-09-27 15:02:53.455915783 +0200 ++++ mutt-1.5.21/doc/manual.html 2012-09-27 15:04:07.439427603 +0200 +@@ -3090,7 +3090,7 @@ information, notably the type, encoding +

+ Attachments appear as follows by default: +

+-- 1 [text/plain, 7bit, 1K]           /tmp/mutt-euler-8082-0 <no description>
++- 1 [text/plain, 7bit, 1K]           /var/tmp/mutt-euler-8082-0 <no description>
+   2 [applica/x-gunzip, base64, 422K] ~/src/mutt-0.85.tar.gz <no description>
+ 

+ The - denotes that Mutt will delete the file after +@@ -6944,7 +6944,7 @@ Default: (empty)

+ This variable allows you to specify where Mutt will place its + temporary files needed for displaying and composing messages. If + this variable is not set, the environment variable $TMPDIR is +-used. If $TMPDIR is not set then /tmp is used. ++used. If $TMPDIR is not set then /var/tmp is used. +

3.294. to_chars

Type: string
+ Default:  +TCFL

+ Controls the character used to indicate mail addressed to you. The +diff -up mutt-1.5.21/doc/manual.txt.tmpdir mutt-1.5.21/doc/manual.txt +--- mutt-1.5.21/doc/manual.txt.tmpdir 2012-09-27 15:04:20.601518838 +0200 ++++ mutt-1.5.21/doc/manual.txt 2012-09-27 15:04:50.154724683 +0200 +@@ -4524,7 +4524,7 @@ description. + + Attachments appear as follows by default: + +-- 1 [text/plain, 7bit, 1K] /tmp/mutt-euler-8082-0 ++- 1 [text/plain, 7bit, 1K] /var/tmp/mutt-euler-8082-0 + 2 [applica/x-gunzip, base64, 422K] ~/src/mutt-0.85.tar.gz + + The ?-? denotes that Mutt will delete the file after sending (or postponing, or +@@ -9746,7 +9746,7 @@ Default: (empty) + + This variable allows you to specify where Mutt will place its temporary files + needed for displaying and composing messages. If this variable is not set, the +-environment variable $TMPDIR is used. If $TMPDIR is not set then ?/tmp? is ++environment variable $TMPDIR is used. If $TMPDIR is not set then ?/var/tmp? is + used. + + 3.294. to_chars +diff -up mutt-1.5.21/doc/Muttrc.tmpdir mutt-1.5.21/doc/Muttrc +--- mutt-1.5.21/doc/Muttrc.tmpdir 2012-09-27 15:02:16.391661482 +0200 ++++ mutt-1.5.21/doc/Muttrc 2012-09-27 15:02:33.822780695 +0200 +@@ -4515,7 +4515,7 @@ attachments -I message/external-body + # This variable allows you to specify where Mutt will place its + # temporary files needed for displaying and composing messages. If + # this variable is not set, the environment variable $TMPDIR is +-# used. If $TMPDIR is not set then ``/tmp'' is used. ++# used. If $TMPDIR is not set then ``/var/tmp'' is used. + # + # + # set to_chars=" +TCFL" +diff -up mutt-1.5.21/doc/reference.html.tmpdir mutt-1.5.21/doc/reference.html +--- mutt-1.5.21/doc/reference.html.tmpdir 2012-09-27 15:05:12.288879110 +0200 ++++ mutt-1.5.21/doc/reference.html 2012-09-27 15:05:51.130151344 +0200 +@@ -2804,7 +2804,7 @@ Default: (empty)

+ This variable allows you to specify where Mutt will place its + temporary files needed for displaying and composing messages. If + this variable is not set, the environment variable $TMPDIR is +-used. If $TMPDIR is not set then /tmp is used. ++used. If $TMPDIR is not set then /var/tmp is used. +

3.294. to_chars

Type: string
+ Default:  +TCFL

+ Controls the character used to indicate mail addressed to you. The +diff -up mutt-1.5.21/init.c.tmpdir mutt-1.5.21/init.c +--- mutt-1.5.21/init.c.tmpdir 2012-09-27 14:59:10.099395476 +0200 ++++ mutt-1.5.21/init.c 2012-09-27 14:59:23.292484023 +0200 +@@ -2992,7 +2992,7 @@ void mutt_init (int skip_sys_rc, LIST *c + MailcapPath = safe_strdup ("~/.mailcap:" PKGDATADIR "/mailcap:" SYSCONFDIR "/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap"); + } + +- Tempdir = safe_strdup ((p = getenv ("TMPDIR")) ? p : "/tmp"); ++ Tempdir = safe_strdup ((p = getenv ("TMPDIR")) ? p : "/var/tmp"); + + p = getenv ("VISUAL"); + if (!p) +diff -up mutt-1.5.21/init.h.tmpdir mutt-1.5.21/init.h +--- mutt-1.5.21/init.h.tmpdir 2012-09-27 14:59:46.214638908 +0200 ++++ mutt-1.5.21/init.h 2012-09-27 15:00:21.541877784 +0200 +@@ -3178,7 +3178,7 @@ struct option_t MuttVars[] = { + ** This variable allows you to specify where Mutt will place its + ** temporary files needed for displaying and composing messages. If + ** this variable is not set, the environment variable \fC$$$TMPDIR\fP is +- ** used. If \fC$$$TMPDIR\fP is not set then ``\fC/tmp\fP'' is used. ++ ** used. If \fC$$$TMPDIR\fP is not set then ``\fC/var/tmp\fP'' is used. + */ + { "to_chars", DT_STR, R_BOTH, UL &Tochars, UL " +TCFL" }, + /* +diff -up mutt-1.5.21/install-sh.tmpdir mutt-1.5.21/install-sh +--- mutt-1.5.21/install-sh.tmpdir 2012-09-27 15:00:32.246950740 +0200 ++++ mutt-1.5.21/install-sh 2012-09-27 15:01:15.957247967 +0200 +@@ -332,7 +332,7 @@ do + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) +- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ ++ tmpdir=${TMPDIR-/var/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && +diff -up mutt-1.5.21/muttbug.sh.in.tmpdir mutt-1.5.21/muttbug.sh.in +--- mutt-1.5.21/muttbug.sh.in.tmpdir 2012-09-27 15:01:37.097392500 +0200 ++++ mutt-1.5.21/muttbug.sh.in 2012-09-27 15:01:52.061494226 +0200 +@@ -85,7 +85,7 @@ esac + exec > /dev/tty + exec < /dev/tty + +-SCRATCH=${TMPDIR-/tmp}/`basename $0`.`hostname`.$$ ++SCRATCH=${TMPDIR-/var/tmp}/`basename $0`.`hostname`.$$ + + mkdir ${SCRATCH} || \ + { diff --git a/SOURCES/mutt-1.5.21-updating.patch b/SOURCES/mutt-1.5.21-updating.patch new file mode 100644 index 0000000..2d2b161 --- /dev/null +++ b/SOURCES/mutt-1.5.21-updating.patch @@ -0,0 +1,24 @@ +# HG changeset patch +# User Brendan Cully +# Date 1284573211 25200 +# Branch HEAD +# Node ID bd0afbb35c65a9e80c55636e214ca85890554ce1 +# Parent b42be44bb41a2bca21289aa10a490f58e6bbf044 +Belatedly update UPDATING + +diff -r b42be44bb41a -r bd0afbb35c65 UPDATING +--- a/UPDATING Wed Sep 15 10:21:04 2010 -0700 ++++ b/UPDATING Wed Sep 15 10:53:31 2010 -0700 +@@ -4,8 +4,11 @@ + The keys used are: + !: modified feature, -: deleted feature, +: new feature + +-hg tip: ++1.5.21 (2010-09-15): + ++ + $mail_check_recent controls whether all unread mail or only new mail ++ since the last mailbox visit will be reported as new ++ + %D format expando for $folder_format + ! $thorough_search defaults to yes + + imap-logout-all closes all open IMAP connections + ! header/body cache paths are always UTF-8 diff --git a/SOURCES/mutt-1.5.21-verpeers.patch b/SOURCES/mutt-1.5.21-verpeers.patch new file mode 100644 index 0000000..6e2adb9 --- /dev/null +++ b/SOURCES/mutt-1.5.21-verpeers.patch @@ -0,0 +1,48 @@ +Function gnutls_certificate_verify_peers is deprecated so we should +rather use gnutls_certificate_verify_peers2. This is a fix applied +by upstream. +Upstream bug report: http://dev.mutt.org/trac/ticket/3516 + +diff -up mutt-1.5.21/mutt_ssl_gnutls.c.verpeers mutt-1.5.21/mutt_ssl_gnutls.c +--- mutt-1.5.21/mutt_ssl_gnutls.c.verpeers 2013-03-04 15:19:56.144838094 +0100 ++++ mutt-1.5.21/mutt_ssl_gnutls.c 2013-03-04 15:19:56.378838087 +0100 +@@ -946,22 +946,23 @@ static int tls_check_one_certificate (co + /* sanity-checking wrapper for gnutls_certificate_verify_peers */ + static gnutls_certificate_status tls_verify_peers (gnutls_session tlsstate) + { +- gnutls_certificate_status certstat; ++ int verify_ret; ++ unsigned int status; + +- certstat = gnutls_certificate_verify_peers (tlsstate); +- if (!certstat) +- return certstat; ++ verify_ret = gnutls_certificate_verify_peers2 (tlsstate, &status); ++ if (!verify_ret) ++ return status; + +- if (certstat == GNUTLS_E_NO_CERTIFICATE_FOUND) ++ if (status == GNUTLS_E_NO_CERTIFICATE_FOUND) + { + mutt_error (_("Unable to get certificate from peer")); + mutt_sleep (2); + return 0; + } +- if (certstat < 0) ++ if (verify_ret < 0) + { + mutt_error (_("Certificate verification error (%s)"), +- gnutls_strerror (certstat)); ++ gnutls_strerror (status)); + mutt_sleep (2); + return 0; + } +@@ -974,7 +975,7 @@ static gnutls_certificate_status tls_ver + return 0; + } + +- return certstat; ++ return status; + } + + static int tls_check_certificate (CONNECTION* conn) diff --git a/SOURCES/mutt-1.5.21-writehead.patch b/SOURCES/mutt-1.5.21-writehead.patch new file mode 100644 index 0000000..4c10170 --- /dev/null +++ b/SOURCES/mutt-1.5.21-writehead.patch @@ -0,0 +1,12 @@ +diff -up mutt-1.5.21/sendlib.c.writehead mutt-1.5.21/sendlib.c +--- mutt-1.5.21/sendlib.c.writehead 2012-06-25 14:41:34.681483226 +0200 ++++ mutt-1.5.21/sendlib.c 2012-06-25 14:41:44.485408610 +0200 +@@ -1799,7 +1799,7 @@ static int write_one_header (FILE *fp, i + else + { + t = strchr (start, ':'); +- if (t > end) ++ if (t == NULL || t > end) + { + dprint (1, (debugfile, "mwoh: warning: header not in " + "'key: value' format!\n")); diff --git a/SOURCES/mutt_ldap_query b/SOURCES/mutt_ldap_query new file mode 100644 index 0000000..6679d27 --- /dev/null +++ b/SOURCES/mutt_ldap_query @@ -0,0 +1,42 @@ +#!/bin/sh +# +# Last modified: 30 October 2000 +# + +FLAGS= + +# Create two temporary files. +umask 077 +TMPFILE=`mktemp /tmp/mutt.ldap.XXXXXX` +RESULTS=`mktemp /tmp/mutt.ldap.XXXXXX` + +if [ -n "$LDAPSERVER" ]; then + FLAGS="$FLAGS -h $LDAPSERVER" +fi +if [ -n "$LDAPBASEDN" ]; then + FLAGS="$FLAGS -b $LDAPBASEDN" +fi + +# Search. +ldapsearch $FLAGS '(&(objectclass=inetorgperson)(|(cn='"$1"'*)(givenname='"$1"'*)(surname='"$1"'*)(mail='"$1"'*)))' mail cn roomNumber 2> /dev/null >> $TMPFILE +ldapsearch -x $FLAGS '(&(objectclass=inetorgperson)(|(cn='"$1"'*)(givenname='"$1"'*)(surname='"$1"'*)(mail='"$1"'*)))' mail cn roomNumber 2> /dev/null >> $TMPFILE + +# Parse. +cat $TMPFILE | awk ' + /^mail:/ {MAIL=substr($0,6)} + /^cn:/ {NAME=substr($0,4)} + /^roomNumber:/ {ROOM=substr($0,12)} + /^$/ { MAIL=gensub("^ *| *$","","g",MAIL) } + /^$/ { NAME=gensub("^ *| *$","","g",NAME) } + /^$/ { ROOM=gensub("^ *| *$","","g",ROOM) } + /^$/ { if(length(NAME) > 0) print MAIL "\t" NAME "\t" ROOM} + /^$/ { NAME = "" } +' > $RESULTS + +# Sort and present results. +sort -u $RESULTS > $TMPFILE +echo Querying ${LDAPSERVER}.... `cat $TMPFILE | wc -l` entries found. +cat $TMPFILE + +# Clean up. +rm -f $TMPFILE $RESULTS diff --git a/SPECS/mutt.spec b/SPECS/mutt.spec new file mode 100644 index 0000000..955486e --- /dev/null +++ b/SPECS/mutt.spec @@ -0,0 +1,739 @@ +%bcond_with debug +%bcond_without imap +%bcond_without pop +%bcond_without smtp +%bcond_without gnutls +%bcond_without gss +%bcond_without sasl +%bcond_without idn +%bcond_without hcache +%bcond_without tokyocabinet +%bcond_with bdb +%bcond_with qdbm +%bcond_with gdbm +%bcond_without gpgme + +Summary: A text mode mail user agent +Name: mutt +Version: 1.5.21 +Release: 28%{?dist} +Epoch: 5 +# The entire source code is GPLv2+ except +# pgpewrap.c setenv.c sha1.c wcwidth.c which are Public Domain +License: GPLv2+ and Public Domain +Group: Applications/Internet +Source: ftp://ftp.mutt.org/pub/mutt/devel/mutt-%{version}.tar.gz +Source1: mutt_ldap_query +Patch2: mutt-1.5.13-nodotlock.patch +Patch3: mutt-1.5.18-muttrc.patch +Patch4: mutt-1.5.18-manual.patch +Patch5: mutt-1.5.21-updating.patch +Patch6: mutt-1.5.21-hdrcnt.patch +Patch7: mutt-1.5.21-testcert.patch +Patch8: mutt-1.5.21-cabundle.patch +Patch9: mutt-1.5.21-gpgme-1.2.0.patch +Patch10: mutt-1.5.21-pophash.patch +Patch11: mutt-1.5.21-certscomp.patch +Patch12: mutt-1.5.21-notation.patch +Patch13: mutt-1.5.21-syncdebug.patch +Patch14: mutt-1.5.21-writehead.patch +Patch15: mutt-1.5.21-tmpdir.patch +Patch16: mutt-1.5.21-verpeers.patch +Patch17: mutt-1.5.21-manhelp.patch +Patch18: mutt-1.5.21-tlsv1v2.patch +Patch19: mutt-1.5.20-cve-2014-0467.patch +Patch20: mutt-1.5.20-domainname.patch +Patch21: mutt-1.5.20-system_certs.patch +Patch22: mutt-1.5.21-cve-2018-14354_cve-2018-14357.patch +Patch23: mutt-1.5.21-cve-2018-14362.patch + + +Url: http://www.mutt.org/ +Requires: mailcap urlview +BuildRequires: ncurses-devel +BuildRequires: gettext +BuildRequires: automake +# required to build documentation +BuildRequires: docbook-style-xsl libxslt lynx + +%if %{with hcache} +%{?with_tokyocabinet:BuildRequires: tokyocabinet-devel} +%{?with_bdb:BuildRequires: db4-devel} +%{?with_qdbm:BuildRequires: qdbm-devel} +%{?with_gdbm:BuildRequires: gdbm-devel} +%endif +%if %{with imap} || %{with pop} || %{with smtp} +%{?with_gnutls:BuildRequires: gnutls-devel} +%{?with_sasl:BuildRequires: cyrus-sasl-devel} +%endif +%if %{with imap} +%{?with_gss:BuildRequires: krb5-devel} +%endif +%{?with_idn:BuildRequires: libidn-devel} +%{?with_gpgme:BuildRequires: gpgme-devel} + +%description +Mutt is a small but very powerful text-based MIME mail client. Mutt +is highly configurable, and is well suited to the mail power user with +advanced features like key bindings, keyboard macros, mail threading, +regular expression searches and a powerful pattern matching language +for selecting groups of messages. + +%prep +%setup -q +#./prepare -V +# Thou shalt use fcntl, and only fcntl +%patch2 -p1 -b .nodl +%patch3 -p1 -b .muttrc +%patch4 -p1 -b .manual +%patch5 -p1 -b .updating +%patch6 -p1 -b .hdrcnt +%patch7 -p1 -b .testcert +%patch8 -p1 -b .cabundle +%patch9 -p1 -b .gpgme-1.2.0 +%patch10 -p1 -b .pophash +%patch11 -p1 -b .certscomp +%patch12 -p1 -b .notation +%patch13 -p1 -b .syncdebug +%patch14 -p1 -b .writehead +%patch15 -p1 -b .tmpdir +%patch16 -p1 -b .verpeers +%patch17 -p1 -b .manhelp +%patch18 -p1 -b .tlsv1v2 +%patch19 -p1 -b .cve-2014-0467 +%patch20 -p1 -b .domainname +%patch21 -p1 -b .system_certs +%patch22 -p1 -b .cve-2018-14354_cve-2018-14357 +%patch23 -p1 -b .cve-2018-14362 + +sed -i.gpgerror 's/`$GPGME_CONFIG --libs`/"\0 -lgpg-error"/' configure + +install -p -m644 %{SOURCE1} mutt_ldap_query + +%global hgreldate \\.(201[0-9])([0-1][0-9])([0-3][0-9])hg +if echo %{release} | grep -E -q '%{hgreldate}'; then + echo -n 'const char *ReleaseDate = ' > reldate.h + echo %{release} | sed -r 's/.*%{hgreldate}.*/"\1-\2-\3";/' >> reldate.h +fi + +%build +%configure \ + SENDMAIL=%{_sbindir}/sendmail \ + ISPELL=%{_bindir}/hunspell \ +%{?with_debug: --enable-debug}\ +%{?with_pop: --enable-pop}\ +%{?with_imap: --enable-imap} \ +%{?with_smtp: --enable-smtp} \ +%if %{with hcache} + --enable-hcache \ +%{!?with_tokyocabinet: --without-tokyocabinet} \ +%{!?with_gdbm: --without-gdbm} \ +%{!?with_qdbm: --without-qdbm} \ +%endif +%if %{with imap} || %{with pop} || %{with smtp} +%{?with_gnutls: --with-gnutls} \ +%{?with_sasl: --with-sasl} \ +%endif +%if %{with imap} +%{?with_gss: --with-gss} \ +%endif +%{!?with_idn: --without-idn} \ +%{?with_gpgme: --enable-gpgme} \ + --with-docdir=%{_docdir}/%{name}-%{version} + +make %{?_smp_mflags} + +# remove unique id in manual.html because multilib conflicts +sed -i -e 's///g' doc/manual.html + +%install +make install DESTDIR=$RPM_BUILD_ROOT + +# we like GPG here +cat contrib/gpg.rc >> \ + $RPM_BUILD_ROOT%{_sysconfdir}/Muttrc + +grep -5 "^color" contrib/sample.muttrc >> \ + $RPM_BUILD_ROOT%{_sysconfdir}/Muttrc + +cat >> $RPM_BUILD_ROOT%{_sysconfdir}/Muttrc < $RPM_BUILD_ROOT%{_sysconfdir}/Muttrc.local + +# remove unpackaged files from the buildroot +rm -f $RPM_BUILD_ROOT%{_sysconfdir}/{*.dist,mime.types} +rm -f $RPM_BUILD_ROOT%{_bindir}/{flea,muttbug} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/{flea,muttbug,mutt_dotlock}.1* +rm -f $RPM_BUILD_ROOT%{_mandir}/man5/{mbox,mmdf}.5* +rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/INSTALL + +# provide muttrc.local(5): the same as muttrc(5) +ln -sf ./muttrc.5 $RPM_BUILD_ROOT%{_mandir}/man5/muttrc.local.5 + +%find_lang %{name} + +%files -f %{name}.lang +%config(noreplace) %{_sysconfdir}/Muttrc +%config(noreplace) %{_sysconfdir}/Muttrc.local +%doc COPYRIGHT ChangeLog GPL NEWS README* UPDATING mutt_ldap_query +%doc contrib/*.rc contrib/sample.* contrib/colors.* +%doc doc/manual.txt doc/smime-notes.txt +%{_bindir}/mutt +%{_bindir}/pgpring +%{_bindir}/pgpewrap +%{_bindir}/smime_keys +%{_mandir}/man1/mutt.* +%{_mandir}/man1/smime_keys.* +%{_mandir}/man1/pgpring.* +%{_mandir}/man1/pgpewrap.* +%{_mandir}/man5/muttrc.* + +%changelog +* Thu Jul 26 2018 Matej Mužila - 5:1.5.21-28 +- Resolves: CVE-2018-14354 CVE-2018-14357 CVE-2018-14362 + +* Mon Feb 27 2017 Matej Muzila - 5:1.5.21-27 +- Resolves #1388511 (System default CA bundle not set as default in compiled-in + default or config) +- Resolves #1388512 (mutt sends e-mail with broken "From" header, which has no + host part) + +* Fri Mar 14 2014 Jan Pacner - 5:1.5.21-26 +- Resolves: #1075866 (CVE-2014-0467 heap-based buffer overflow when parsing + certain headers) + +* Fri Jan 24 2014 Daniel Mach - 5:1.5.21-25 +- Mass rebuild 2014-01-24 + +* Fri Dec 27 2013 Daniel Mach - 5:1.5.21-24 +- Mass rebuild 2013-12-27 + +* Mon Nov 04 2013 Jan Pacner - 5:1.5.21-23 +- fix #1021464 (Improper fix for SIGSEGV Crash while parsing certificates file) + +* Thu Jul 18 2013 Petr Pisar - 5:1.5.21-22 +- Perl 5.18 rebuild + +* Thu Jun 27 2013 Honza Horak - 5:1.5.21-21 +- Backported support for TLS 1.2 and TLS 1.2 protocols + Resolves: #957840 + +* Wed May 29 2013 Honza Horak - 5:1.5.21-20 +- Fix patch for #750929 + Resolves: #957542 + +* Mon May 20 2013 Honza Horak - 5:1.5.21-19 +- Fix missing options in doc and pgpring, pgpewrap man page + +* Mon Mar 4 2013 Honza Horak - 5:1.5.21-18 +- gnutls_certificate_verify_peers became deprecated, using + a recent alternative + +* Thu Feb 14 2013 Fedora Release Engineering - 5:1.5.21-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Dec 03 2012 Honza Horak - 5:1.5.21-16 +- remove unique id in manual.html because multilib conflict +- provide muttrc.local(5) + +* Thu Sep 27 2012 Honza Horak - 5:1.5.21-15 +- Change default tmpdir from /tmp to /var/tmp + Resolves: #858264 + +* Mon Sep 10 2012 Honza Horak - 5:1.5.21-14 +- Minor spec file changes + +* Fri Jul 27 2012 Fedora Release Engineering - 5:1.5.21-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu May 10 2012 Honza Horak - 5:1.5.21-12 +- Fix segmentation fault while syncing mailbox + (rhbz#691719) +- Fix unhandled strchr output + (rhbz#833044) + +* Wed Apr 25 2012 Honza Horak - 5:1.5.21-11 +- Patch from Petr Pisar fixing verification of PGP signatures + with NULL notation + (rhbz#816044) + +* Fri Jan 13 2012 Fedora Release Engineering - 5:1.5.21-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Dec 07 2011 Honza Horak - 5:1.5.21-9 +- Fixed a segmentation fault while parsing the certificates file + (rhbz#750929) + +* Wed Nov 02 2011 Honza Horak - 5:1.5.21-8 +- Removed ca-bundle.crt since it is outdated (rhbz#734379) +- Build with gpgme support by default (rhbz#748337) +- Fixed segmentation fault during messages removal in thread mode + (rhbz#674271) + +* Wed Oct 26 2011 Fedora Release Engineering - 5:1.5.21-7 +- Rebuilt for glibc bug#747377 + +* Wed Jun 29 2011 Honza Horak - 5:1.5.21-6 +- Fixed message indexes when skipping fetch response (mutt bug #3288) + +* Fri Apr 15 2011 Honza Horak - 5:1.5.21-5 +- Fixed hostname verification of x.509 certificates. + (rhbz#688756, CVE-2011-1429) + +* Tue Mar 29 2011 Honza Horak - 5:1.5.21-4 +- Fixed segmentation faults during reading message headers (rhbz#676074) + +* Tue Feb 08 2011 Fedora Release Engineering - 5:1.5.21-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Sep 29 2010 jkeating - 5:1.5.21-2 +- Rebuilt for gcc bug 634757 + +* Tue Sep 21 2010 Miroslav Lichvar 5:1.5.21-1 +- update to 1.5.21 +- link with gpg-error when building with gpgme support (#621626) + +* Fri Jul 30 2010 Miroslav Lichvar 5:1.5.20-3.20100718hg1a35f0 +- update to hg snapshot 20100718hg1a35f0 + +* Thu Dec 17 2009 Deji Akingunola - 5:1.5.20-2.20091214hg736b6a.1 +- Rebuild for tokyocabinet new release soname bump + +* Wed Dec 16 2009 Miroslav Lichvar 5:1.5.20-2.20091214hg736b6a +- update to hg snapshot 20091214hg736b6a + +* Fri Sep 18 2009 Miroslav Lichvar 5:1.5.20-1.20090827hg605559 +- update to post 1.5.20 hg snapshot (#515148) +- use hunspell by default (#510358) + +* Sat Jul 25 2009 Fedora Release Engineering - 5:1.5.19-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Jun 09 2009 Miroslav Lichvar 5:1.5.19-5 +- fix certificate verification (CVE-2009-1390) +- add support for gnutls INSECURE_ALGORITHM error code (#499390) + +* Wed Apr 01 2009 Miroslav Lichvar 5:1.5.19-4 +- use PATH_MAX for buffers passed to realpath (#492861) +- unconditionally inode-sort Maildir and MH folders +- restore connection polling callback when closing SASL connection + +* Wed Feb 25 2009 Fedora Release Engineering - 5:1.5.19-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Jan 14 2009 Alex Lancaster - 5:1.5.19-2 +- Rebuild for deps + +* Wed Jan 07 2009 Miroslav Lichvar 5:1.5.19-1 +- update to 1.5.19 +- switch hcache backend to tokyocabinet +- drop intr patch + +* Mon Jul 28 2008 Miroslav Lichvar 5:1.5.18-4 +- rebuild with db4.7 (Robert Scheck) (#455144) + +* Wed Jun 25 2008 Miroslav Lichvar 5:1.5.18-3 +- buildrequire aspell (#452133) +- rebuild with new gnutls + +* Mon Jun 02 2008 Miroslav Lichvar 5:1.5.18-2 +- allow interrupts when reading, writing or closing sockets (#447887) +- fix possible crash when opening IMAP mailbox + +* Mon May 19 2008 Miroslav Lichvar 5:1.5.18-1 +- update to 1.5.18 + +* Fri Apr 04 2008 Miroslav Lichvar 5:1.5.17-4 +- fix sending long commands when using gnutls (#438275) +- glob tilde in smime_keys (#424311) +- fix awk script in mutt_ldap_query +- force building with libdb +- make enabling/disabling features in spec easier + +* Tue Feb 19 2008 Fedora Release Engineering - 5:1.5.17-3 +- Autorebuild for GCC 4.3 + +* Fri Nov 23 2007 Miroslav Lichvar 5:1.5.17-2 +- don't ignore $from in batch send mode (#392861) +- check Maildir for not being NULL when expanding '='-paths +- prevent mailto parsing buffer overflow by ignoring too long header +- use strtok_r() to parse mailto: links, not strtok() +- update UPDATING + +* Fri Nov 02 2007 Miroslav Lichvar 5:1.5.17-1 +- update to 1.5.17 + +* Mon Sep 17 2007 Miroslav Lichvar 5:1.5.16-4 +- fix md5 on big-endian systems + +* Tue Aug 28 2007 Miroslav Lichvar 5:1.5.16-3 +- replace md5 implementation +- update license tag + +* Wed Jul 11 2007 Miroslav Lichvar 5:1.5.16-2 +- split urlview off, fix requires and description (#226167) + +* Mon Jun 11 2007 Miroslav Lichvar 5:1.5.16-1 +- update to 1.5.16 + +* Mon May 28 2007 Miroslav Lichvar 5:1.5.14-4 +- validate msgid in APOP authentication (CVE-2007-1558) +- fix overflow in gecos field handling (CVE-2007-2683) + +* Mon Mar 19 2007 Miroslav Lichvar 5:1.5.14-3 +- fix building + +* Mon Mar 19 2007 Miroslav Lichvar 5:1.5.14-2 +- add check_mbox_size configuration variable; if enabled, file size is used + instead of access time when checking for new mail +- bind delete key to delete-char (#232601) + +* Fri Feb 23 2007 Miroslav Lichvar 5:1.5.14-1 +- update to 1.5.14 + +* Thu Feb 15 2007 Miroslav Lichvar 5:1.5.13-2.20070212cvs +- update to latest CVS +- enable libidn support (#228158) + +* Wed Feb 07 2007 Miroslav Lichvar 5:1.5.13-1.20070126cvs +- update to 1.5.13, and latest CVS (#168183, #220816) +- spec cleanup + +* Wed Dec 06 2006 Miroslav Lichvar 5:1.4.2.2-5 +- use correct fcc folder with IMAP (#217469) +- don't require smtpdaemon, gettext + +* Tue Oct 31 2006 Miroslav Lichvar 5:1.4.2.2-4 +- fix POP authentication with latest cyrus-sasl (#212816) + +* Tue Oct 24 2006 Miroslav Lichvar 5:1.4.2.2-3 +- fix insecure temp file creation on NFS (#211085, CVE-2006-5297) + +* Thu Aug 03 2006 Miroslav Lichvar 5:1.4.2.2-2 +- fix a SASL authentication bug (#199591) + +* Mon Jul 17 2006 Miroslav Lichvar 5:1.4.2.2-1 +- update to 1.4.2.2 +- fix directories in manual.txt (#162207) +- drop bcc patch (#197408) +- don't package flea + +* Wed Jul 12 2006 Jesse Keating - 5:1.4.2.1-7.1 +- rebuild + +* Thu Jun 29 2006 Miroslav Lichvar 5:1.4.2.1-7 +- fix a buffer overflow when processing IMAP namespace (#197152, CVE-2006-3242) + +* Fri Feb 10 2006 Jesse Keating - 5:1.4.2.1-6.2.1 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 5:1.4.2.1-6.2 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Wed Nov 9 2005 Bill Nottingham 5:1.4.2.1-6 +- rebuild against new ssl libs + +* Thu Oct 27 2005 Bill Nottingham 5:1.4.2.1-5 +- add patch from 1.5 branch to fix SASL logging (#157251, #171528) + +* Fri Aug 26 2005 Bill Nottingham 5:1.4.2.1-3 +- add patch from 1.5 branch to fix base64 decoding (#166718) + +* Mon Mar 7 2005 Bill Nottingham 5:1.4.2.1-2 +- rebuild against new openssl +- fix build with gcc4 + +* Thu Jan 27 2005 Bill Nottingham 5:1.4.2.1-1 +- update to 1.4.2.1 (#141007, ) +- include a /etc/Muttrc.local for site config (#123109) +- add as a additional help key for terminals that use internally + (#139277) + +* Wed Sep 15 2004 Nalin Dahyabhai 5:1.4.1-10 +- expect the server to prompt for additional auth data if we have some to + send (#129961, upstream #1845) +- use "pop" as the service name instead of "pop-3" when using SASL for POP, + per rfc1734 + +* Fri Aug 13 2004 Bill Nottingham 5:1.4.1-9 +- set write_bcc to no by default (since we ship exim) +- build against sasl2 (#126724) + +* Mon Jun 28 2004 Bill Nottingham +- remove autosplat patch (#116769) + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Tue Jun 8 2004 Bill Nottingham 5:1.4.1-7 +- link urlview against ncursesw (fixes #125530, indirectly) + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Tue Jan 27 2004 Bill Nottingham 5:1.4.1-5 +- add patch to fix menu padding (CAN-2004-0078, #109317) + +* Mon Aug 18 2003 Bill Nottingham 5:1.4.1-4 +- rebuild against ncursesw + +* Tue Jul 22 2003 Nalin Dahyabhai 5:1.4.1-3.2 +- rebuild + +* Mon Jul 7 2003 Bill Nottingham 5:1.4.1-3 +- fix auth to windows KDCs (#98662) + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Wed Mar 19 2003 Bill Nottingham 5:1.4.1-1 +- update to 1.4.1, fixes buffer overflow in IMAP code + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Mon Jan 20 2003 Bill Nottingham 5:1.4-9 +- add mailcap requires +- change urlview to htmlview as default browser + +* Fri Jan 17 2003 Florian La Roche +- change urlview to mozilla as default browser + +* Tue Jan 7 2003 Nalin Dahyabhai 5:1.4-7 +- rebuild + +* Mon Dec 2 2002 Bill Nottingham 5:1.4-6 +- ship flea + +* Fri Nov 29 2002 Tim Powers 5:1.4-5 +- remove unpackaged files from the buildroot + +* Fri Jun 21 2002 Tim Powers +- automated rebuild + +* Fri Jun 14 2002 Bill Nottingham 1.4-3 +- rebuild against new slang + +* Wed May 29 2002 Nalin Dahyabhai 1.4-2 +- forcibly enable SSL and GSSAPI support + +* Wed May 29 2002 Bill Nottingham 1.4-1 +- whoa, 1.4. + +* Sun May 26 2002 Tim Powers +- automated rebuild + +* Thu May 16 2002 Bill Nottingham +- autoconf fun + +* Wed Jan 09 2002 Tim Powers +- automated rebuild + +* Tue Jan 1 2002 Bill Nottingham +- update to 1.2.5.1 + +* Mon Jul 23 2001 Bill Nottingham +- don't explictly require krb5-libs, etc.; that's what find-requires is for + (#49780, sort of) + +* Sat Jul 21 2001 Tim Powers +- no more applnk entries, it's cluttering our menus + +* Fri Jul 20 2001 Bill Nottingham +- add slang-devel to buildprereqs (#49531) + +* Mon Jun 11 2001 Bill Nottingham +- add some sample color definitions (#19471) + +* Thu May 24 2001 Bill Nottingham +- fix typo in muttrc.man (#41610) + +* Mon May 14 2001 Bill Nottingham +- use mktemp in muttbug + +* Wed May 2 2001 Nalin Dahyabhai +- require webclient, not weclient + +* Wed May 2 2001 Bill Nottingham +- build urlview here + +* Fri Mar 2 2001 Nalin Dahyabhai +- rebuild in new environment + +* Tue Feb 13 2001 Bill Nottingham +- change buildprereq to /usr/sbin/sendmail (it's what it should have been + originally) +- %%langify + +* Tue Feb 13 2001 Michael Stefaniuc +- changed buildprereq to smtpdaemon + +* Tue Dec 19 2000 Bill Nottingham +- rebuild; it's just broken +- fix #13196 +- buildprereq sendmail + +* Fri Dec 01 2000 Bill Nottingham +- rebuild because of broken fileutils + +* Fri Nov 10 2000 Nalin Dahyabhai +- include a sample LDAP query script as a doc file + +* Mon Nov 6 2000 Nalin Dahyabhai +- patch for imap servers that like to volunteer information after AUTHENTICATE + +* Thu Aug 24 2000 Nalin Dahyabhai +- rebuild in new environment +- force flock() off and fcntl() on in case defaults change + +* Tue Aug 8 2000 Nalin Dahyabhai +- enable SSL support + +* Fri Aug 4 2000 Bill Nottingham +- add translation to desktop entry + +* Fri Jul 28 2000 Bill Nottingham +- update to 1.2.5i - fixes IMAP bugs + +* Wed Jul 12 2000 Prospector +- automatic rebuild + +* Fri Jul 7 2000 Bill Nottingham +- 1.2.4i + +* Tue Jun 27 2000 Nalin Dahyabhai +- rebuild in new environment (release 3) +- adjust GSSAPI build logic + +* Thu Jun 22 2000 Bill Nottingham +- fix MD5 code + +* Wed Jun 21 2000 Bill Nottingham +- update to 1.2.2i + +* Mon Jun 19 2000 Trond Eivind Glomsrød +- use aspell + +* Sat Jun 10 2000 Bill Nottingham +- FHS fixes + +* Wed May 10 2000 Bill Nottingham +- add some files + +* Tue May 9 2000 Bill Nottingham +- update to 1.2i + +* Tue Apr 4 2000 Bill Nottingham +- eliminate explicit krb5-configs dependency + +* Wed Mar 22 2000 Bill Nottingham +- auto is so much fun. + +* Wed Mar 01 2000 Nalin Dahyabhai +- make kerberos support conditional at compile-time + +* Mon Feb 07 2000 Preston Brown +- wmconfig -> desktop + +* Fri Feb 4 2000 Bill Nottingham +- keep the makefiles from re-running autoheader, automake, etc. + +* Thu Feb 3 2000 Nalin Dahyabhai +- add forward-ported sasl patch + +* Thu Feb 3 2000 Bill Nottingham +- handle compressed man pages, other cleanups + +* Wed Jan 19 2000 Bill Nottingham +- 1.0.1 + +* Mon Jan 3 2000 Bill Nottingham +- add the sample mime.types to /usr/doc + +* Sat Jan 1 2000 Bill Nottingham +- fix an odd y2k issue on receiving mail from ancient clients + +* Thu Oct 21 1999 Bill Nottingham +- one-point-oh. + +* Sat Sep 25 1999 Bill Nottingham +- add a buffer overflow patch + +* Tue Aug 31 1999 Bill Nottingham +- update to 1.0pre2 + +* Tue Aug 17 1999 Bill Nottingham +- update to 0.95.7 +- require urlview since the default muttrc uses it + +* Mon Jun 21 1999 Bill Nottingham +- get correct manual path the Right Way(tm) +- make it so it uses default colors even if COLORFGBG isn't set + +* Mon Jun 14 1999 Bill Nottingham +- update to 0.95.6 + +* Mon Apr 26 1999 Bill Nottingham +- try and make sure $RPM_OPT_FLAGS gets passed through + +* Fri Apr 23 1999 Bill Nottingham +- update to 0.95.5 + +* Mon Mar 29 1999 Bill Nottingham +- sed correct doc path into /etc/Muttrc for viewing manual + +* Sun Mar 21 1999 Cristian Gafton +- auto rebuild in the new build environment (release 3) + +* Thu Mar 18 1999 Bill Nottingham +- strip binary + +* Mon Mar 8 1999 Bill Nottingham +- update to 0.95.4 - fixes a /tmp race + +* Wed Feb 24 1999 Bill Nottingham +- the RETURN OF WMCONFIG! Aiyeee! + +* Fri Feb 12 1999 Bill Nottingham +- 0.95.3 - fixes mailcap handling + +* Mon Jan 4 1999 Bill Nottingham +- 0.95.1 + +* Sat Dec 12 1998 Bill Nottingham +- 0.95 + +* Fri Jul 31 1998 Bill Nottingham +- backport some 0.94.2 security fixes +- fix un-setgid +- update to 0.93.2 + +* Tue Jul 28 1998 Jeff Johnson +- security fix +- update to 0.93.1. +- turn off setgid mail. + +* Thu May 07 1998 Prospector System +- translations modified for de, fr, tr + +* Tue Apr 21 1998 Cristian Gafton +- updated to 0.91.1 + +* Fri Apr 10 1998 Cristian Gafton +- updated to mutt-0.89.1 + +* Thu Oct 16 1997 Otto Hammersmith +- Updated to mutt 0.85. +- added wmconfig entries. +- removed mime.types + +* Mon Sep 1 1997 Donnie Barnes +- Rebuilt to insure all sources were fresh and patches were clean. + +* Wed Aug 6 1997 Manoj Kasichainula +- Initial version for 0.81(e)