diff options
author | Fabian Groffen <grobian@gentoo.org> | 2009-07-29 19:55:42 +0000 |
---|---|---|
committer | Fabian Groffen <grobian@gentoo.org> | 2009-07-29 19:55:42 +0000 |
commit | 9ca940a7925a94bc9862cd83920d09da7a2b299a (patch) | |
tree | 38f68c5231ca35a0acb59fdf765f70435c033d09 /mail-client/mutt | |
parent | Version bump to 9.6.1_p1 due to CVE-2009-0696, bug 279508. (diff) | |
download | historical-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/ChangeLog | 13 | ||||
-rw-r--r-- | mail-client/mutt/Manifest | 8 | ||||
-rw-r--r-- | mail-client/mutt/files/mutt-1.5.20-hcache-uidvalidity-size-fix.patch | 78 | ||||
-rw-r--r-- | mail-client/mutt/files/mutt-1.5.20-propagate-mh_read_sequences-2fc9348684fe.patch | 31 | ||||
-rw-r--r-- | mail-client/mutt/files/mutt-1.5.20-ungroup-command-77ac8b5c2be6.patch | 538 | ||||
-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 } |