summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Groffen <grobian@gentoo.org>2009-07-29 19:55:42 +0000
committerFabian Groffen <grobian@gentoo.org>2009-07-29 19:55:42 +0000
commit9ca940a7925a94bc9862cd83920d09da7a2b299a (patch)
tree38f68c5231ca35a0acb59fdf765f70435c033d09 /mail-client/mutt
parentVersion bump to 9.6.1_p1 due to CVE-2009-0696, bug 279508. (diff)
downloadhistorical-9ca940a7925a94bc9862cd83920d09da7a2b299a.tar.gz
historical-9ca940a7925a94bc9862cd83920d09da7a2b299a.tar.bz2
historical-9ca940a7925a94bc9862cd83920d09da7a2b299a.zip
Bump to -r4 having the latest patches plus sparc64 hcache fix. Possible fix for bug #278332, introduction of USE=doc, so we don't have to build documentation all the time (it's on the web anyway)
Package-Manager: portage-2.2.00.13849-prefix/cvs/Darwin powerpc
Diffstat (limited to 'mail-client/mutt')
-rw-r--r--mail-client/mutt/ChangeLog13
-rw-r--r--mail-client/mutt/Manifest8
-rw-r--r--mail-client/mutt/files/mutt-1.5.20-hcache-uidvalidity-size-fix.patch78
-rw-r--r--mail-client/mutt/files/mutt-1.5.20-propagate-mh_read_sequences-2fc9348684fe.patch31
-rw-r--r--mail-client/mutt/files/mutt-1.5.20-ungroup-command-77ac8b5c2be6.patch538
-rw-r--r--mail-client/mutt/mutt-1.5.20-r4.ebuild (renamed from mail-client/mutt/mutt-1.5.20-r3.ebuild)36
6 files changed, 687 insertions, 17 deletions
diff --git a/mail-client/mutt/ChangeLog b/mail-client/mutt/ChangeLog
index 811a620285e8..cfb11e5ca759 100644
--- a/mail-client/mutt/ChangeLog
+++ b/mail-client/mutt/ChangeLog
@@ -1,6 +1,17 @@
# ChangeLog for mail-client/mutt
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/mail-client/mutt/ChangeLog,v 1.142 2009/07/23 13:50:19 grobian Exp $
+# $Header: /var/cvsroot/gentoo-x86/mail-client/mutt/ChangeLog,v 1.143 2009/07/29 19:55:42 grobian Exp $
+
+*mutt-1.5.20-r4 (29 Jul 2009)
+
+ 29 Jul 2009; Fabian Groffen <grobian@gentoo.org> -mutt-1.5.20-r3.ebuild,
+ +mutt-1.5.20-r4.ebuild,
+ +files/mutt-1.5.20-hcache-uidvalidity-size-fix.patch,
+ +files/mutt-1.5.20-propagate-mh_read_sequences-2fc9348684fe.patch,
+ +files/mutt-1.5.20-ungroup-command-77ac8b5c2be6.patch:
+ Bump to -r4 having the latest patches plus sparc64 hcache fix. Possible
+ fix for bug #278332, introduction of USE=doc, so we don't have to build
+ documentation all the time (it's on the web anyway)
*mutt-1.5.20-r3 (23 Jul 2009)
diff --git a/mail-client/mutt/Manifest b/mail-client/mutt/Manifest
index faaf9aa8a12f..cba53779bb90 100644
--- a/mail-client/mutt/Manifest
+++ b/mail-client/mutt/Manifest
@@ -13,6 +13,7 @@ AUX mutt-1.5.20-display-unsigned-pgp-7f37d0a57d83.patch 1197 RMD160 59f3df7d7f29
AUX mutt-1.5.20-gpgme-1.2.0.patch 623 RMD160 0387025c571723f9ebde284789c65464cf0c2da4 SHA1 230af7e00e06a41f0024b8c6e19bd9d5b208511c SHA256 9e69e53cb3013a379f85e6dcea0550c4ec8582ea1f36a83c6a0ad95828164551
AUX mutt-1.5.20-gpgme-keys-d41e043fa775.patch 589 RMD160 99b4b44459952afa55db43c5e30f204b3cae797e SHA1 432938b1876fdb95c1bfbd0ab79f6ae8430fe5e9 SHA256 9ea0850343eb54be14f58532bf4bf2a6e5ad970c43ece56e185d693eb50966e8
AUX mutt-1.5.20-hcache-restore-address-848f08512bf3.patch 1150 RMD160 2df8927ac9b470fa6be814a66ef1dcfcb8cbdf9c SHA1 1423af5422eda09c7c7d5590f19318f7721d9e1d SHA256 86d983f4b61a4449ae148a24dc7ba1749a4b0b5848556dee5de87589a6e39cc3
+AUX mutt-1.5.20-hcache-uidvalidity-size-fix.patch 2451 RMD160 1c011ba20182d38401896ad0cd2f42fc1f46a84b SHA1 38354dffb8bbec53e22b52adf5ccaa0ea02597ab SHA256 7299d0df681300644a897b23a902c9ceadd34e9467477a9508087fc835fcd6c6
AUX mutt-1.5.20-header-weeding-f40de578e8ed.patch 619 RMD160 3f6e4b734f6857d0ccef60df0a1b3d21e86584ae SHA1 76487cf18f0d7ff43441e70a6902298990c2cd3a SHA256 f06b539879b4bf7cf511f7ca03d02bb4ff8dd28a864ad7dc7cf498416c20d17c
AUX mutt-1.5.20-imap-port-invalid-d6f88fbf8387.patch 567 RMD160 1c32139a95717e1675dca18f1f5a7baeb2c9dbaa SHA1 422621d233b5414987b2153ea81037622ed3158c SHA256 d2042d4b7ba37bfcf3173af243368a2b05f5db51a09cdbe11c3f225491d84fd0
AUX mutt-1.5.20-imap-start-fatal-fe30f394cbe6.patch 451 RMD160 ce68b1841fa9b05cf2e30a7cb53d3475c674081a SHA1 92e8f2bbcfeb9812f727364759f58a0e3656b4fc SHA256 ed7e9295959fad0c0702550e36d83e786bec5a041a74680c3289d1698d0c8435
@@ -20,9 +21,11 @@ AUX mutt-1.5.20-leave-mailbox-no-new-mail-118b8fef8aae.patch 2209 RMD160 e5cd50a
AUX mutt-1.5.20-mbox-new-mail-bd59be56c6b0.patch 2324 RMD160 a71d7fdebcb409947f664b96f1e7d808974f5101 SHA1 035cfaa9290121b3c6c7e57fbda94495239162d3 SHA256 adc78114cc72efb181f20050b24358d2b3959bd78b8795c8245d6049e00ab5fa
AUX mutt-1.5.20-mbox-unchanged-new-mail-9ae13dedb5ed.patch 1502 RMD160 bf7503b9c10fc903b31f85ee3f38efe57fa5489a SHA1 de44ba3e404bb44ea57a663938b91a0c9c51fb5b SHA256 701fd49be77c97ca53b1cfcf9e6a2c0afb37793a3827d453d45c4587cdd4ba41
AUX mutt-1.5.20-mhs-flags-leak-9f3053f75f27.patch 436 RMD160 26a2be74db7ec3ac72ab579fe42709ecae9b28e1 SHA1 1a87cb97e744911bb862a7e12f0c00295a0a1666 SHA256 d27054521019fb938fadd0d292bc6c4be094823683ea4735bf4c43c238e919f4
+AUX mutt-1.5.20-propagate-mh_read_sequences-2fc9348684fe.patch 725 RMD160 9125bf147ba4be50821d38301af361844e176b2e SHA1 6f11d93ac397b15d01fe6ede010a29998743356f SHA256 633cbff8666d49e1a02c348e27f7cec1046460581d3af1f5c73905ba6ff4a564
AUX mutt-1.5.20-smtp-batch-mode-0a3de4d9a009-f6c6066a5925.patch 2211 RMD160 730cd88c1cfaf83d9eeeb1f2ed7d58b2eb43b85f SHA1 e6ce5e3b0ea1a9885a53ba93fc43ce8a17654287 SHA256 838f9734ba360936f99e06b25eb14425870ea788d97769ee2a0c57bd98e42468
AUX mutt-1.5.20-tab-subject-questionmark-298194c414f0-cff8e8ce4327.patch 1131 RMD160 5286dc8809747291e31e1c1a3801ad5efbdc285b SHA1 fe3cc48c0592b5f7775db8f46a5fccfff4a68895 SHA256 8cec9af4bc073faacfec09331fc928ddb9c0b98be11da5c5022fc1af2bdece5f
AUX mutt-1.5.20-tab-subject-questionmark-298194c414f0.patch 920 RMD160 7d34f480255b232c06cb3487cda2c9d0379107c1 SHA1 f4ab33bc6737ff39a8cdd3d1ee1fd597ec0f9c2a SHA256 89a176154634ee5c8278d553e62da6c244078454da04772c90149ef2e57868ea
+AUX mutt-1.5.20-ungroup-command-77ac8b5c2be6.patch 14089 RMD160 e26623f79a4ecf5d7a84cd94159e01ad8bfb8b42 SHA1 2f3811d9f85ac2764c33cd1aa4f852dc1b56d017 SHA256 830bb141fbfe42226f12af508d6f4d7fa2904213386695967c488a8a89f8b8ab
AUX mutt-1.5.20-unmailbox-segfault-25e46aad362b.patch 455 RMD160 63b73ed21d42d0849f38ef1098029c64933c47a5 SHA1 9da6a6914d3ae276887efd1a30ed3ea55bc57bcb SHA256 7d44b98e8f7538ce85ddb80877a0caabd1edcfd5e558258896d50691c51a3d0e
AUX slang.patch 493 RMD160 16dcedee86fe91ecac48ec5be8a6f67798ef7ac0 SHA1 f913e8c717f76186b0edc8856bf02a167d540c70 SHA256 040c8b63b2d805dae800fa9b1826d158b7104641339cee9a404985616b3502c7
DIST mutt-1.5.15-gentoo-patches-r2.tar.bz2 65582 RMD160 c370adb2aaa1ddbfb6fba0b7bb3318e9abeed625 SHA1 2ef0e193d963d52395df6d89281df7c3ec36c8bc SHA256 7b16fb3db479d4d112db3f383e28b4680fd3c435e074b11dee640676039d8987
@@ -32,6 +35,7 @@ DIST mutt-1.5.16.tar.gz 3534894 RMD160 3b345599aa62a956b9c881994ffd74156a5bf808
DIST mutt-1.5.19-gentoo-patches.tar.bz2 62837 RMD160 6f0eb14f7e06440608ffdb73b23884aa14bbb5cd SHA1 5d1a6a5af621453dca768b1070e049ba54a1545a SHA256 dc247df06be57dae2095d4a1494e5cd175b91523a467106e9b99acab4c0423a8
DIST mutt-1.5.19.tar.gz 3558746 RMD160 dcb8d027593bfccd62eb7aba338007bce3c7e22e SHA1 96e4cc1e1419ba816fcc19d77255978e62c20793 SHA256 b160baedf2676a4c2c1a5c74049e2c63f00fccff43ee2594367087a08bfd63c8
DIST mutt-1.5.20-gentoo-patches-r2.tar.bz2 59753 RMD160 c07c5c58648346bff391d6f3d14613f9429780bb SHA1 e63db8a73222dee474d24445413af89cdfb428de SHA256 2a72a49ce54087fad612233d18b3db2847a7287a96f2dc0538457a04d9bbe81a
+DIST mutt-1.5.20-gentoo-patches-r3.tar.bz2 59753 RMD160 9660c73602e97364ae5a732e60506544f9d6909f SHA1 64cc200fdb79999ee92b61a1364ee289a2a8ea5d SHA256 35f5fbf22d8df9f67ba73440a36cc4f71f91d72cdf8931c90325b7b9aa4648f4
DIST mutt-1.5.20.tar.gz 3635047 RMD160 df582f79364b9fd70a0001e76a119d8f78275ebb SHA1 d2bec7a33771f128ca49b1723b06b6d248a35d31 SHA256 9579fc079d74ff5c89223ff09df402ef4e508ba8ca925c49e74aa09c02a9a796
DIST patch-1.5.16.sidebar.20070704.txt 51103 RMD160 a91a1eefe48c15a048231a632fe285cb2360f365 SHA1 0284a09dfa000d279a0f87c9a0a296f473d4509b SHA256 49123e14bebd33d0e8c7733cab319f3e5bfa591d5f5d74a3dd8964b44bf34ae7
DIST patch-1.5.19.sidebar.20090522.txt 52307 RMD160 116451d59aa746644f269f8c028484360c84e342 SHA1 056c394657c78e054909dcfde0692007cea33fe3 SHA256 64b2282aac88a3374bb48a9a07b6374443fe3c8f5905def9ac3cdc26d9f8355a
@@ -40,6 +44,6 @@ EBUILD mutt-1.5.15-r2.ebuild 4528 RMD160 2359d39b6d5758d977b1cbfce4c320dc0abb0ed
EBUILD mutt-1.5.16.ebuild 4989 RMD160 2a9ae3ece8f56692e0077b7b3940e607c79f2a14 SHA1 a79646fbfce1e85ecc2f8aaa4728e3c7303185f0 SHA256 55a70c2bb8f144549e6a12a4ba6bcb8796202d4f7be25fb809fefa2848615368
EBUILD mutt-1.5.19-r1.ebuild 5933 RMD160 3317bb5ee6c7d076c141fc1dc4998116872a32f8 SHA1 c9786de58bfa87b6ed392fb6190cc0bf69df8464 SHA256 d5c91dc2f7c620a36f690b56560ba8f5122b21c65259310366e245d3a660a692
EBUILD mutt-1.5.20-r1.ebuild 7031 RMD160 fc5bbe19395e6bc0036960ec2ce806b72d02d539 SHA1 646babb8c9b3e293b3e1262543bdf35a4a83b145 SHA256 e537a4334aa9b2f722df8ce3527337ed74cce55121a35aab8d1921061cf90a5b
-EBUILD mutt-1.5.20-r3.ebuild 7887 RMD160 4ed6e308f477e85fb8ecb43755f2a22f47baa978 SHA1 4528d73b0bc47157654d585100f5e644f8e44315 SHA256 46cbd711230df4e0ad66c2b0c18c2206b1a0f4fdd2d02d700f9f8619fccbf6ac
-MISC ChangeLog 32686 RMD160 595620b8c62c1b2fd2b203bb2e4b0838106c24a2 SHA1 7342ddf5e9dd83e0c901c564961b250b41469acb SHA256 0ab2f638d13337e875e6c16e7f432f1412908d0aff3927be48658ce259ae2d14
+EBUILD mutt-1.5.20-r4.ebuild 8322 RMD160 85e9b2b8dd2cf522378f6747549919c013adebdc SHA1 4ab38abdeeb498b6b1562864d05dbf362fcadf94 SHA256 0aabeecebe1fbbd583ff7f398a8622705592d00a9bc2ce51fe0a7938e0eadad2
+MISC ChangeLog 33203 RMD160 47f30cb97f10bf4a45b8fd6f17872c1987155351 SHA1 bc7872a677e48d509f7342e911d543bd04871751 SHA256 603137ac5d84ee06891ded1b514c96dd15dba140fe939c03e3ef9d66bfb53a49
MISC metadata.xml 627 RMD160 e3a3709dcc01a6b9db15ac7836c75f8dbe3456ea SHA1 92be48491c090c3e6968812b58dde85961af3b8f SHA256 c30f8f2126be6b11b3e0d0e2f6413ce7ab2ca2613856f558bec7689e5a9ada0b
diff --git a/mail-client/mutt/files/mutt-1.5.20-hcache-uidvalidity-size-fix.patch b/mail-client/mutt/files/mutt-1.5.20-hcache-uidvalidity-size-fix.patch
new file mode 100644
index 000000000000..0d9f437d773f
--- /dev/null
+++ b/mail-client/mutt/files/mutt-1.5.20-hcache-uidvalidity-size-fix.patch
@@ -0,0 +1,78 @@
+http://dev.mutt.org/trac/attachment/ticket/3296/hcache-uidvalidity-size-fix.patch
+
+diff --git a/hcache.c b/hcache.c
+--- a/hcache.c
++++ b/hcache.c
+@@ -86,7 +86,7 @@
+ typedef union
+ {
+ struct timeval timeval;
+- unsigned long uid_validity;
++ unsigned int uidvalidity;
+ } validate;
+
+ static void *
+@@ -589,7 +589,7 @@
+ * db_store */
+ static void *
+ mutt_hcache_dump(header_cache_t *h, HEADER * header, int *off,
+- unsigned long uid_validity)
++ unsigned int uidvalidity)
+ {
+ unsigned char *d = NULL;
+ HEADER nh;
+@@ -598,8 +598,8 @@
+ *off = 0;
+ d = lazy_malloc(sizeof (validate));
+
+- if (uid_validity)
+- memcpy(d, &uid_validity, sizeof (unsigned long));
++ if (uidvalidity)
++ memcpy(d, &uidvalidity, sizeof (uidvalidity));
+ else
+ {
+ struct timeval now;
+@@ -758,7 +758,7 @@
+
+ int
+ mutt_hcache_store(header_cache_t *h, const char *filename, HEADER * header,
+- unsigned long uid_validity,
++ unsigned int uidvalidity,
+ size_t(*keylen) (const char *fn))
+ {
+ char* data;
+@@ -768,7 +768,7 @@
+ if (!h)
+ return -1;
+
+- data = mutt_hcache_dump(h, header, &dlen, uid_validity);
++ data = mutt_hcache_dump(h, header, &dlen, uidvalidity);
+ ret = mutt_hcache_store_raw (h, filename, data, dlen, keylen);
+
+ FREE(&data);
+diff --git a/hcache.h b/hcache.h
+--- a/hcache.h
++++ b/hcache.h
+@@ -33,8 +33,9 @@
+ void *mutt_hcache_fetch(header_cache_t *h, const char *filename, size_t (*keylen)(const char *fn));
+ void *mutt_hcache_fetch_raw (header_cache_t *h, const char *filename,
+ size_t (*keylen)(const char *fn));
++/* uidvalidity is an IMAP-specific unsigned 32 bit number */
+ int mutt_hcache_store(header_cache_t *h, const char *filename, HEADER *header,
+- unsigned long uid_validity, size_t (*keylen)(const char *fn));
++ unsigned int uidvalidity, size_t (*keylen)(const char *fn));
+ int mutt_hcache_store_raw (header_cache_t *h, const char* filename, void* data,
+ size_t dlen, size_t(*keylen) (const char* fn));
+ int mutt_hcache_delete(header_cache_t *h, const char *filename, size_t (*keylen)(const char *fn));
+diff --git a/imap/util.c b/imap/util.c
+--- a/imap/util.c
++++ b/imap/util.c
+@@ -129,6 +129,8 @@
+ {
+ if (*uv == idata->uid_validity)
+ h = mutt_hcache_restore ((unsigned char*)uv, NULL);
++ else
++ dprint (3, (debugfile, "hcache uidvalidity mismatch: %u", *uv));
+ FREE (&uv);
+ }
+
diff --git a/mail-client/mutt/files/mutt-1.5.20-propagate-mh_read_sequences-2fc9348684fe.patch b/mail-client/mutt/files/mutt-1.5.20-propagate-mh_read_sequences-2fc9348684fe.patch
new file mode 100644
index 000000000000..d86628c05182
--- /dev/null
+++ b/mail-client/mutt/files/mutt-1.5.20-propagate-mh_read_sequences-2fc9348684fe.patch
@@ -0,0 +1,31 @@
+http://dev.mutt.org/trac/changeset/2fc9348684fe
+http://dev.mutt.org/trac/ticket/3308
+
+Properly propagate mh_read_sequences result. Closes #3308.
+
+
+Index: mh.c
+===================================================================
+--- mh.c (revision 5985:9f3053f75f27)
++++ mh.c (revision 5999:2fc9348684fe)
+@@ -168,5 +168,5 @@
+
+ short f;
+- int first, last, rc;
++ int first, last, rc = 0;
+
+ char pathname[_POSIX_PATH_MAX];
+@@ -208,5 +208,5 @@
+ FREE (&buff);
+ safe_fclose (&fp);
+- return 0;
++ return rc;
+ }
+
+@@ -1157,5 +1157,5 @@
+ if (ctx->magic == M_MH)
+ {
+- if (mh_read_sequences (&mhs, ctx->path) >= 0)
++ if (mh_read_sequences (&mhs, ctx->path) < 0)
+ return -1;
+ mh_update_maildir (md, &mhs);
diff --git a/mail-client/mutt/files/mutt-1.5.20-ungroup-command-77ac8b5c2be6.patch b/mail-client/mutt/files/mutt-1.5.20-ungroup-command-77ac8b5c2be6.patch
new file mode 100644
index 000000000000..90e48041f5e5
--- /dev/null
+++ b/mail-client/mutt/files/mutt-1.5.20-ungroup-command-77ac8b5c2be6.patch
@@ -0,0 +1,538 @@
+http://dev.mutt.org/trac/changeset/77ac8b5c2be6
+http://dev.mutt.org/trac/ticket/3304
+
+Implement ungroup command. Closes #3304.
+
+requires 7c4484ba9e4b (patch added)
+Move remove_from_rx_list() to muttlib.c, name it mutt_remove_from_rx_list()
+
+
+Index: group.c
+===================================================================
+--- group.c (revision 5801:19e62bd1549b)
++++ group.c (revision 5989:77ac8b5c2be6)
+@@ -49,6 +50,42 @@
+ hash_insert (Groups, p->name, p, 0);
+ }
+-
++
+ return p;
++}
++
++static void group_free (void *p)
++{
++ group_t *g = (group_t *)p;
++
++ if (!g)
++ return;
++ FREE(&g->name);
++ rfc822_free_address (&g->as);
++ mutt_free_rx_list (&g->rs);
++ FREE(&g);
++}
++
++int mutt_group_remove (group_t * g, BUFFER * err)
++{
++ int h;
++
++ if (!g)
++ return -1;
++ h = Groups->hash_string ((const unsigned char *)g->name, Groups->nelem);
++ if (!hash_find_hash (Groups, h, g->name))
++ {
++ if (err)
++ snprintf (err->data, err->dsize, _("No such group: %s"), g->name);
++ return -1;
++ }
++ hash_delete_hash (Groups, h, g->name, g, group_free);
++ return 0;
++}
++
++static int empty_group (group_t *g)
++{
++ if (!g)
++ return -1;
++ return !g->as && !g->rs;
+ }
+
+@@ -92,7 +129,27 @@
+ }
+
++static int mutt_group_remove_adrlist (group_t *g, ADDRESS *a)
++{
++ ADDRESS *p;
++
++ if (!g)
++ return -1;
++ if (!a)
++ return -1;
++
++ for (p = a; p; p = p->next)
++ rfc822_remove_from_adrlist (&g->as, p->mailbox);
++
++ return 0;
++}
++
+ static int mutt_group_add_rx (group_t *g, const char *s, int flags, BUFFER *err)
+ {
+ return mutt_add_to_rx_list (&g->rs, s, flags, err);
++}
++
++static int mutt_group_remove_rx (group_t *g, const char *s)
++{
++ return mutt_remove_from_rx_list (&g->rs, s);
+ }
+
+@@ -103,8 +160,22 @@
+ }
+
++int mutt_group_context_remove_adrlist (group_context_t *ctx, ADDRESS * a)
++{
++ int rv = 0;
++
++ for (; (!rv) && ctx; ctx = ctx->next)
++ {
++ rv = mutt_group_remove_adrlist (ctx->g, a);
++ if (empty_group (ctx->g))
++ mutt_group_remove (ctx->g, NULL);
++ }
++
++ return rv;
++}
++
+ int mutt_group_context_add_rx (group_context_t *ctx, const char *s, int flags, BUFFER *err)
+ {
+ int rv = 0;
+-
++
+ for (; (!rv) && ctx; ctx = ctx->next)
+ rv = mutt_group_add_rx (ctx->g, s, flags, err);
+@@ -113,8 +184,22 @@
+ }
+
++int mutt_group_context_remove_rx (group_context_t *ctx, const char *s)
++{
++ int rv = 0;
++
++ for (; (!rv) && ctx; ctx = ctx->next)
++ {
++ rv = mutt_group_remove_rx (ctx->g, s);
++ if (empty_group (ctx->g))
++ mutt_group_remove (ctx->g, NULL);
++ }
++
++ return rv;
++}
++
+ int mutt_group_match (group_t *g, const char *s)
+ {
+ ADDRESS *ap;
+-
++
+ if (s && g)
+ {
+Index: group.h
+===================================================================
+--- group.h (revision 5989:77ac8b5c2be6)
++++ group.h (revision 5989:77ac8b5c2be6)
+@@ -0,0 +1,39 @@
++/*
++ * Copyright (C) 2006 Thomas Roessler <roessler@does-not-exist.org>
++ * Copyright (C) 2009 Rocco Rutte <pdmef@gmx.net>
++ *
++ * 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.
++ */
++
++#ifndef _MUTT_GROUP_H_
++#define _MUTT_GROUP_H_ 1
++
++#define M_GROUP 0
++#define M_UNGROUP 1
++
++void mutt_group_add_adrlist (group_t *g, ADDRESS *a);
++
++void mutt_group_context_add (group_context_t **ctx, group_t *group);
++void mutt_group_context_destroy (group_context_t **ctx);
++void mutt_group_context_add_adrlist (group_context_t *ctx, ADDRESS *a);
++int mutt_group_context_add_rx (group_context_t *ctx, const char *s, int flags, BUFFER *err);
++
++int mutt_group_match (group_t *g, const char *s);
++
++int mutt_group_remove (group_t *, BUFFER *);
++int mutt_group_context_remove_rx (group_context_t *ctx, const char *s);
++int mutt_group_context_remove_adrlist (group_context_t *ctx, ADDRESS *);
++
++#endif /* _MUTT_GROUP_H_ */
+Index: init.c
+===================================================================
+--- init.c (revision 5988:7c4484ba9e4b)
++++ init.c (revision 5989:77ac8b5c2be6)
+@@ -32,4 +32,5 @@
+ #include "mutt_crypt.h"
+ #include "mutt_idna.h"
++#include "group.h"
+
+ #if defined(USE_SSL)
+@@ -834,38 +835,53 @@
+ ADDRESS *addr = NULL;
+ char *estr = NULL;
+-
+- do
++
++ do
+ {
+ mutt_extract_token (buf, s, 0);
+ if (parse_group_context (&gc, buf, s, data, err) == -1)
+ goto bail;
+-
++
++ if (data == M_UNGROUP && !mutt_strcasecmp (buf->data, "*"))
++ {
++ if (mutt_group_remove (gc->g, err) < 0)
++ goto bail;
++ goto out;
++ }
++
+ if (!mutt_strcasecmp (buf->data, "-rx"))
+ state = RX;
+ else if (!mutt_strcasecmp (buf->data, "-addr"))
+ state = ADDR;
+- else
+- {
+- switch (state)
++ else
++ {
++ switch (state)
+ {
+ case NONE:
+- strfcpy (err->data, _("Missing -rx or -addr."), err->dsize);
++ snprintf (err->data, err->dsize, _("%sgroup: missing -rx or -addr."),
++ data == M_UNGROUP ? "un" : "");
+ goto bail;
+-
++
+ case RX:
+- if (mutt_group_context_add_rx (gc, buf->data, REG_ICASE, err) != 0)
++ if (data == M_GROUP &&
++ mutt_group_context_add_rx (gc, buf->data, REG_ICASE, err) != 0)
++ goto bail;
++ else if (data == M_UNGROUP &&
++ mutt_group_context_remove_rx (gc, buf->data) < 0)
+ goto bail;
+ break;
+-
++
+ case ADDR:
+ if ((addr = mutt_parse_adrlist (NULL, buf->data)) == NULL)
+ goto bail;
+- if (mutt_addrlist_to_idna (addr, &estr))
+- {
+- snprintf (err->data, err->dsize, _("Warning: Bad IDN '%s'.\n"),
+- estr);
++ if (mutt_addrlist_to_idna (addr, &estr))
++ {
++ snprintf (err->data, err->dsize, _("%sgroup: warning: bad IDN '%s'.\n"),
++ data == 1 ? "un" : "", estr);
+ goto bail;
+ }
+- mutt_group_context_add_adrlist (gc, addr);
++ if (data == M_GROUP)
++ mutt_group_context_add_adrlist (gc, addr);
++ else if (data == M_UNGROUP)
++ mutt_group_context_remove_adrlist (gc, addr);
+ rfc822_free_address (&addr);
+ break;
+@@ -874,15 +890,10 @@
+ } while (MoreArgs (s));
+
++out:
+ mutt_group_context_destroy (&gc);
+ return 0;
+
+- bail:
++bail:
+ mutt_group_context_destroy (&gc);
+- return -1;
+-}
+-
+-static int parse_ungroup (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err)
+-{
+- strfcpy (err->data, "not implemented", err->dsize);
+ return -1;
+ }
+Index: init.h
+===================================================================
+--- init.h (revision 5976:376545d6909c)
++++ init.h (revision 5989:77ac8b5c2be6)
+@@ -3420,5 +3420,4 @@
+
+ static int parse_group (BUFFER *, BUFFER *, unsigned long, BUFFER *);
+-static int parse_ungroup (BUFFER *, BUFFER *, unsigned long, BUFFER *);
+
+ static int parse_lists (BUFFER *, BUFFER *, unsigned long, BUFFER *);
+@@ -3473,6 +3472,6 @@
+ { "fcc-save-hook", mutt_parse_hook, M_FCCHOOK | M_SAVEHOOK },
+ { "folder-hook", mutt_parse_hook, M_FOLDERHOOK },
+- { "group", parse_group, 0 },
+- { "ungroup", parse_ungroup, 0 },
++ { "group", parse_group, M_GROUP },
++ { "ungroup", parse_group, M_UNGROUP },
+ { "hdr_order", parse_list, UL &HeaderOrderList },
+ #ifdef HAVE_ICONV
+Index: pattern.c
+===================================================================
+--- pattern.c (revision 5930:ed7eb5de7536)
++++ pattern.c (revision 5989:77ac8b5c2be6)
+@@ -36,4 +36,5 @@
+ #include "mutt_crypt.h"
+ #include "mutt_curses.h"
++#include "group.h"
+
+ #ifdef USE_IMAP
+Index: protos.h
+===================================================================
+--- protos.h (revision 5977:f161c2f00d84)
++++ protos.h (revision 5989:77ac8b5c2be6)
+@@ -76,9 +76,4 @@
+ void mutt_parse_content_type (char *, BODY *);
+ void mutt_generate_boundary (PARAMETER **);
+-void mutt_group_add_adrlist (group_t *, ADDRESS *);
+-void mutt_group_context_add (group_context_t **ctx, group_t *group);
+-void mutt_group_context_destroy (group_context_t **ctx);
+-void mutt_group_add_adrlist (group_t *g, ADDRESS *a);
+-void mutt_group_context_add_adrlist (group_context_t *ctx, ADDRESS *a);
+ void mutt_delete_parameter (const char *attribute, PARAMETER **p);
+ void mutt_set_parameter (const char *, const char *, PARAMETER **);
+@@ -312,6 +307,4 @@
+ int mutt_get_postponed (CONTEXT *, HEADER *, HEADER **, char *, size_t);
+ int mutt_get_tmp_attachment (BODY *);
+-int mutt_group_match (group_t *g, const char *s);
+-int mutt_group_context_add_rx (group_context_t *ctx, const char *s, int flags, BUFFER *err);
+ int mutt_index_menu (void);
+ int mutt_invoke_sendmail (ADDRESS *, ADDRESS *, ADDRESS *, ADDRESS *, const char *, int);
+Index: rfc822.c
+===================================================================
+--- rfc822.c (revision 5923:ee3d174297bb)
++++ rfc822.c (revision 5989:77ac8b5c2be6)
+@@ -81,4 +81,43 @@
+ }
+ *w = 0;
++}
++
++static void free_address (ADDRESS *a)
++{
++ FREE(&a->personal);
++ FREE(&a->mailbox);
++#ifdef EXACT_ADDRESS
++ FREE(&a->val);
++#endif
++}
++
++int rfc822_remove_from_adrlist (ADDRESS **a, const char *mailbox)
++{
++ ADDRESS *p, *last = NULL, *t;
++ int rv = -1;
++
++ p = *a;
++ last = NULL;
++ while (p)
++ {
++ if (ascii_strcasecmp (mailbox, p->mailbox) == 0)
++ {
++ if (last)
++ last->next = p->next;
++ else
++ (*a) = p->next;
++ t = p;
++ p = p->next;
++ free_address (t);
++ rv = 0;
++ }
++ else
++ {
++ last = p;
++ p = p->next;
++ }
++ }
++
++ return (rv);
+ }
+
+Index: rfc822.h
+===================================================================
+--- rfc822.h (revision 5986:848f08512bf3)
++++ rfc822.h (revision 5989:77ac8b5c2be6)
+@@ -58,4 +58,5 @@
+ void rfc822_cat (char *, size_t, const char *, const char *);
+ int rfc822_valid_msgid (const char *msgid);
++int rfc822_remove_from_adrlist (ADDRESS **a, const char *mailbox);
+
+ extern int RFC822Error;
+
+
+
+Index: init.c
+===================================================================
+--- init.c (revision 5903:b5ed5d96c775)
++++ init.c (revision 5988:7c4484ba9e4b)
+@@ -600,40 +600,4 @@
+ }
+
+-static int remove_from_rx_list (RX_LIST **l, const char *str)
+-{
+- RX_LIST *p, *last = NULL;
+- int rv = -1;
+-
+- if (mutt_strcmp ("*", str) == 0)
+- {
+- mutt_free_rx_list (l); /* ``unCMD *'' means delete all current entries */
+- rv = 0;
+- }
+- else
+- {
+- p = *l;
+- last = NULL;
+- while (p)
+- {
+- if (ascii_strcasecmp (str, p->rx->pattern) == 0)
+- {
+- mutt_free_regexp (&p->rx);
+- if (last)
+- last->next = p->next;
+- else
+- (*l) = p->next;
+- FREE (&p);
+- rv = 0;
+- }
+- else
+- {
+- last = p;
+- p = p->next;
+- }
+- }
+- }
+- return (rv);
+-}
+-
+ static int parse_unignore (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err)
+ {
+@@ -701,5 +665,5 @@
+ goto bail;
+
+- remove_from_rx_list (&UnAlternates, buf->data);
++ mutt_remove_from_rx_list (&UnAlternates, buf->data);
+
+ if (mutt_add_to_rx_list (&Alternates, buf->data, REG_ICASE, err) != 0)
+@@ -725,5 +689,5 @@
+ {
+ mutt_extract_token (buf, s, 0);
+- remove_from_rx_list (&Alternates, buf->data);
++ mutt_remove_from_rx_list (&Alternates, buf->data);
+
+ if (mutt_strcmp (buf->data, "*") &&
+@@ -775,5 +739,5 @@
+ else
+ {
+- remove_from_rx_list(&NoSpamList, buf->data);
++ mutt_remove_from_rx_list(&NoSpamList, buf->data);
+ }
+
+@@ -842,5 +806,5 @@
+ goto bail;
+
+- remove_from_rx_list (&UnMailLists, buf->data);
++ mutt_remove_from_rx_list (&UnMailLists, buf->data);
+
+ if (mutt_add_to_rx_list (&MailLists, buf->data, REG_ICASE, err) != 0)
+@@ -1194,6 +1158,6 @@
+ {
+ mutt_extract_token (buf, s, 0);
+- remove_from_rx_list (&SubscribedLists, buf->data);
+- remove_from_rx_list (&MailLists, buf->data);
++ mutt_remove_from_rx_list (&SubscribedLists, buf->data);
++ mutt_remove_from_rx_list (&MailLists, buf->data);
+
+ if (mutt_strcmp (buf->data, "*") &&
+@@ -1217,6 +1181,6 @@
+ goto bail;
+
+- remove_from_rx_list (&UnMailLists, buf->data);
+- remove_from_rx_list (&UnSubscribedLists, buf->data);
++ mutt_remove_from_rx_list (&UnMailLists, buf->data);
++ mutt_remove_from_rx_list (&UnSubscribedLists, buf->data);
+
+ if (mutt_add_to_rx_list (&MailLists, buf->data, REG_ICASE, err) != 0)
+@@ -1242,5 +1206,5 @@
+ {
+ mutt_extract_token (buf, s, 0);
+- remove_from_rx_list (&SubscribedLists, buf->data);
++ mutt_remove_from_rx_list (&SubscribedLists, buf->data);
+
+ if (mutt_strcmp (buf->data, "*") &&
+Index: mutt.h
+===================================================================
+--- mutt.h (revision 5956:ef6523d11f24)
++++ mutt.h (revision 5988:7c4484ba9e4b)
+@@ -555,4 +555,5 @@
+ LIST *mutt_add_list_n (LIST*, const void *, size_t);
+ LIST *mutt_find_list (LIST *, const char *);
++int mutt_remove_from_rx_list (RX_LIST **l, const char *str);
+
+ void mutt_init (int, LIST *);
+Index: muttlib.c
+===================================================================
+--- muttlib.c (revision 5977:f161c2f00d84)
++++ muttlib.c (revision 5988:7c4484ba9e4b)
+@@ -266,4 +266,40 @@
+ }
+ return NULL;
++}
++
++int mutt_remove_from_rx_list (RX_LIST **l, const char *str)
++{
++ RX_LIST *p, *last = NULL;
++ int rv = -1;
++
++ if (mutt_strcmp ("*", str) == 0)
++ {
++ mutt_free_rx_list (l); /* ``unCMD *'' means delete all current entries */
++ rv = 0;
++ }
++ else
++ {
++ p = *l;
++ last = NULL;
++ while (p)
++ {
++ if (ascii_strcasecmp (str, p->rx->pattern) == 0)
++ {
++ mutt_free_regexp (&p->rx);
++ if (last)
++ last->next = p->next;
++ else
++ (*l) = p->next;
++ FREE (&p);
++ rv = 0;
++ }
++ else
++ {
++ last = p;
++ p = p->next;
++ }
++ }
++ }
++ return (rv);
+ }
+
diff --git a/mail-client/mutt/mutt-1.5.20-r3.ebuild b/mail-client/mutt/mutt-1.5.20-r4.ebuild
index 9d780fc1f04b..9e2b52a9a65f 100644
--- a/mail-client/mutt/mutt-1.5.20-r3.ebuild
+++ b/mail-client/mutt/mutt-1.5.20-r4.ebuild
@@ -1,10 +1,10 @@
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/mail-client/mutt/mutt-1.5.20-r3.ebuild,v 1.1 2009/07/23 13:50:19 grobian Exp $
+# $Header: /var/cvsroot/gentoo-x86/mail-client/mutt/mutt-1.5.20-r4.ebuild,v 1.1 2009/07/29 19:55:42 grobian Exp $
inherit eutils flag-o-matic autotools
-PATCHSET_REV="-r2"
+PATCHSET_REV="-r3"
# note: latest sidebar patches can be found here:
# http://www.lunar-linux.org/index.php?option=com_content&task=view&id=44
@@ -22,8 +22,7 @@ SRC_URI="ftp://ftp.mutt.org/mutt/devel/${P}.tar.gz
sidebar? (
http://www.lunar-linux.org/~tchan/mutt/${SIDEBAR_PATCH_N}
)"
-IUSE="berkdb crypt debug gdbm gnutls gpg idn imap mbox nls nntp pop qdbm sasl
-sidebar smime smtp ssl vanilla"
+IUSE="berkdb crypt debug doc gdbm gnutls gpg idn imap mbox nls nntp pop qdbm sasl sidebar smime smtp ssl vanilla"
SLOT="0"
LICENSE="GPL-2"
KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x64-freebsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
@@ -54,7 +53,7 @@ RDEPEND=">=sys-libs/ncurses-5.2
app-misc/mime-types"
DEPEND="${RDEPEND}
net-mail/mailbase
- !vanilla? (
+ doc? (
dev-libs/libxml2
dev-libs/libxslt
app-text/docbook-xsl-stylesheets
@@ -75,6 +74,7 @@ src_unpack() {
epatch "${FILESDIR}"/mutt-1.5.18-interix.patch
epatch "${FILESDIR}"/mutt-1.5.18-solaris-ncurses-chars.patch
epatch "${FILESDIR}"/mutt-1.5.20-gpgme-1.2.0.patch
+ epatch "${FILESDIR}"/mutt-1.5.20-hcache-uidvalidity-size-fix.patch
# post-release hot-fixes
epatch "${FILESDIR}"/mutt-1.5.20-imap-port-invalid-d6f88fbf8387.patch
epatch "${FILESDIR}"/mutt-1.5.20-header-weeding-f40de578e8ed.patch
@@ -89,6 +89,8 @@ src_unpack() {
epatch "${FILESDIR}"/mutt-1.5.20-gpgme-keys-d41e043fa775.patch
epatch "${FILESDIR}"/mutt-1.5.20-mhs-flags-leak-9f3053f75f27.patch
epatch "${FILESDIR}"/mutt-1.5.20-hcache-restore-address-848f08512bf3.patch
+ epatch "${FILESDIR}"/mutt-1.5.20-ungroup-command-77ac8b5c2be6.patch
+ epatch "${FILESDIR}"/mutt-1.5.20-propagate-mh_read_sequences-2fc9348684fe.patch
# patch version string for bug reports
sed -i -e 's/"Mutt %s (%s)"/"Mutt %s (%s, Gentoo '"${PVR}"')"/' \
@@ -109,12 +111,14 @@ src_unpack() {
AT_M4DIR="m4" eautoreconf
- # this should be done only when we're not root
- if [[ ${UID} != 0 ]] ; then
- sed -i \
- -e 's/@DOTLOCK_GROUP@/'"`id -gn`"'/g' \
- Makefile.in \
- || die "sed failed"
+ # the configure script contains some "cleverness" whether or not to setgid
+ # the dotlock program, resulting in bugs like #278332
+ sed -i -e 's/@DOTLOCK_GROUP@//' \
+ Makefile.in || die "sed failed"
+
+ # don't just build documentation (lengthy process, with big dependencies)
+ if use !doc ; then
+ sed -i -e '/SUBDIRS =/s/doc//' Makefile.in || die
fi
}
@@ -219,9 +223,13 @@ src_install() {
rm "${ED}"/etc/${PN}/mime.types
dosym /etc/mime.types /etc/${PN}/mime.types
- # charset.alias is installed by libiconv
- rm -f "${ED}"/usr/lib/charset.alias
- rm -f "${ED}"/usr/share/locale/locale.alias
+ # A man-page is always handy
+ use doc || doman doc/mutt.1
+
+ if use !prefix ; then
+ fowners root:mail /usr/bin/mutt_dotlock
+ fperms g+s /usr/bin/mutt_dotlock
+ fi
dodoc BEWARE COPYRIGHT ChangeLog NEWS OPS* PATCHES README* TODO VERSION
}