diff options
author | Christian Faulhammer <fauli@gentoo.org> | 2013-02-11 21:38:59 +0000 |
---|---|---|
committer | Christian Faulhammer <fauli@gentoo.org> | 2013-02-11 21:38:59 +0000 |
commit | fecf13d5f1ecdb11459eaf302fa39bd342f9fe89 (patch) | |
tree | b240b9a46b07db9846f192b2675562fba305bdc3 /mail-client | |
parent | Stable for x86, wrt bug #456558 (diff) | |
download | gentoo-2-fecf13d5f1ecdb11459eaf302fa39bd342f9fe89.tar.gz gentoo-2-fecf13d5f1ecdb11459eaf302fa39bd342f9fe89.tar.bz2 gentoo-2-fecf13d5f1ecdb11459eaf302fa39bd342f9fe89.zip |
Fix bug 455590 by Hanno which makes the combo search field work again, also correct some plugin names
(Portage version: 2.1.11.50/cvs/Linux i686, signed Manifest commit with key 2B859DE3)
Diffstat (limited to 'mail-client')
4 files changed, 314 insertions, 1 deletions
diff --git a/mail-client/claws-mail/ChangeLog b/mail-client/claws-mail/ChangeLog index ce4854d6304a..9e35d9fa5767 100644 --- a/mail-client/claws-mail/ChangeLog +++ b/mail-client/claws-mail/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for mail-client/claws-mail # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/mail-client/claws-mail/ChangeLog,v 1.226 2013/01/03 07:47:47 fauli Exp $ +# $Header: /var/cvsroot/gentoo-x86/mail-client/claws-mail/ChangeLog,v 1.227 2013/02/11 21:38:59 fauli Exp $ + +*claws-mail-3.9.0-r1 (11 Feb 2013) + + 11 Feb 2013; Christian Faulhammer <fauli@gentoo.org> + +claws-mail-3.9.0-r1.ebuild, +files/claws-3.9.0_fix-search-field_part1.patch, + +files/claws-3.9.0_fix-search-field_part2.patch: + Fix bug 455590 by Hanno which makes the combo search field work again, also + correct some plugin names 03 Jan 2013; Christian Faulhammer <fauli@gentoo.org> -claws-mail-3.8.1-r2.ebuild, -claws-mail-3.8.1-r3.ebuild, diff --git a/mail-client/claws-mail/claws-mail-3.9.0-r1.ebuild b/mail-client/claws-mail/claws-mail-3.9.0-r1.ebuild new file mode 100644 index 000000000000..a6ce3a2608b3 --- /dev/null +++ b/mail-client/claws-mail/claws-mail-3.9.0-r1.ebuild @@ -0,0 +1,140 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/mail-client/claws-mail/claws-mail-3.9.0-r1.ebuild,v 1.1 2013/02/11 21:38:59 fauli Exp $ + +EAPI="4" + +inherit autotools-utils multilib gnome2-utils eutils + +DESCRIPTION="An email client (and news reader) based on GTK+" +HOMEPAGE="http://www.claws-mail.org/" + +SRC_URI="mirror://sourceforge/sylpheed-claws/${P}.tar.bz2" + +SLOT="0" +LICENSE="GPL-3" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" +IUSE="bogofilter crypt dbus dillo doc +imap ipv6 ldap nntp pda session smime spamassassin spell +ssl startup-notification xface" + +COMMONDEPEND=">=x11-libs/gtk+-2.20:2 + pda? ( >=app-pda/jpilot-0.99 ) + ssl? ( >=net-libs/gnutls-2.2.0 ) + ldap? ( >=net-nds/openldap-2.0.7 ) + crypt? ( >=app-crypt/gpgme-0.4.5 ) + dbus? ( >=dev-libs/dbus-glib-0.60 ) + dillo? ( www-client/dillo ) + spell? ( >=app-text/enchant-1.0.0 ) + imap? ( >=net-libs/libetpan-0.57 ) + nntp? ( >=net-libs/libetpan-0.57 ) + startup-notification? ( x11-libs/startup-notification ) + bogofilter? ( mail-filter/bogofilter ) + session? ( x11-libs/libSM + x11-libs/libICE ) + smime? ( >=app-crypt/gpgme-0.4.5 )" + +DEPEND="${COMMONDEPEND} + xface? ( >=media-libs/compface-1.4 ) + virtual/pkgconfig" + +RDEPEND="${COMMONDEPEND} + app-misc/mime-types + x11-misc/shared-mime-info" + +PLUGIN_NAMES="acpi-notifier address_keeper archive att-remover attachwarner clamd fancy fetchinfo geolocation gdata gtkhtml mailmbox newmail notification perl python rssyl spam-report tnef-parse vcalendar" + +PATCHES=( + "${FILESDIR}"/claws-3.9.0_fix-search-field_part1.patch + "${FILESDIR}"/claws-3.9.0_fix-search-field_part2.patch + ) + +src_configure() { + local myeconfargs=( + $(use_enable ipv6) + $(use_enable ldap) + $(use_enable dbus) + $(use_enable pda jpilot) + $(use_enable spell enchant) + $(use_enable xface compface) + $(use_enable doc manual) + $(use_enable startup-notification) + $(use_enable session libsm) + $(use_enable crypt pgpmime-plugin) + $(use_enable crypt pgpinline-plugin) + $(use_enable crypt pgpcore-plugin) + $(use_enable dillo dillo-viewer-plugin) + $(use_enable spamassassin spamassassin-plugin) + $(use_enable bogofilter bogofilter-plugin) + $(use_enable smime smime-plugin) + --enable-trayicon-plugin + --disable-maemo + ) + + # libetpan is needed if user wants nntp or imap functionality + if use imap || use nntp; then + myeconfargs+=( --enable-libetpan ) + else + myeconfargs+=( --disable-libetpan ) + fi + + if use ssl; then + myeconfargs+=( --enable-gnutls ) + else + myeconfargs+=( --disable-gnutls ) + fi + + autotools-utils_src_configure +} + +src_install() { + local DOCS=( AUTHORS ChangeLog* INSTALL* NEWS README* TODO* ) + autotools-utils_src_install + + # Makefile install claws-mail.png in /usr/share/icons/hicolor/48x48/apps + # => also install it in /usr/share/pixmaps for other desktop envs + # => also install higher resolution icons in /usr/share/icons/hicolor/... + insinto /usr/share/pixmaps + doins ${PN}.png || die + local res resdir + for res in 64x64 128x128 ; do + resdir="/usr/share/icons/hicolor/${res}/apps" + insinto ${resdir} + newins ${PN}-${res}.png ${PN}.png || die + done + + docinto tools + dodoc tools/README* + + domenu ${PN}.desktop + + einfo "Installing extra tools" + cd "${S}"/tools + exeinto /usr/$(get_libdir)/${PN}/tools + doexe *.pl *.py *.conf *.sh || die + doexe tb2claws-mail update-po uudec uuooffice || die +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postinst() { + gnome2_icon_cache_update + + UPDATE_PLUGINS="" + for x in ${PLUGIN_NAMES}; do + has_version mail-client/${PN}-$x && UPDATE_PLUGINS="${UPDATE_PLUGINS} $x" + done + if [ -n "${UPDATE_PLUGINS}" ]; then + elog + elog "You have to re-emerge or update the following plugins:" + elog + for x in ${UPDATE_PLUGINS}; do + elog " mail-client/${PN}-$x" + done + elog + fi +} + +pkg_postrm() { + gnome2_icon_cache_update +} diff --git a/mail-client/claws-mail/files/claws-3.9.0_fix-search-field_part1.patch b/mail-client/claws-mail/files/claws-3.9.0_fix-search-field_part1.patch new file mode 100644 index 000000000000..0bdadd68da22 --- /dev/null +++ b/mail-client/claws-mail/files/claws-3.9.0_fix-search-field_part1.patch @@ -0,0 +1,149 @@ +Make combo search field work again. + +Gentoo bug: https://bugs.gentoo.org/show_bug.cgi?id=455590 +Upstream commit: http://www.claws-mail.org/tracker/getpatchset.php?ver=3.9.0cvs8 +--- src/advsearch.c 24 Oct 2012 07:48:24 -0000 1.1.2.7 ++++ src/advsearch.c 16 Nov 2012 13:10:05 -0000 1.1.2.8 +@@ -314,32 +314,6 @@ + return returnstr; + } + +-// -------------------------- +- +-static gchar *expand_tag_search_string(const gchar *search_string) +-{ +- gchar *newstr = NULL; +- gchar **words = search_string ? g_strsplit(search_string, " ", -1):NULL; +- gint i = 0; +- while (words && words[i] && *words[i]) { +- g_strstrip(words[i]); +- if (!newstr) { +- newstr = g_strdup_printf("tag matchcase \"%s\"", words[i]); +- } else { +- gint o_len = strlen(newstr); +- gint s_len = 17; /* strlen("|tag matchcase \"\"") */ +- gint n_len = s_len + strlen(words[i]); +- newstr = g_realloc(newstr, o_len + n_len + 1); +- strcpy(newstr + o_len, "|tag matchcase \""); +- strcpy(newstr + o_len + (s_len - 1), words[i]); +- strcpy(newstr + o_len + (n_len - 1), "\""); +- } +- i++; +- } +- g_strfreev(words); +- return newstr; +-} +- + static void prepare_matcher_extended(AdvancedSearch *search) + { + gchar *newstr = advsearch_expand_search_string(search->request.matchstring); +@@ -350,19 +324,51 @@ + } + } + ++#define debug_matcher_list(prefix, list) \ ++do { \ ++ gchar *str = list ? matcherlist_to_string(list) : g_strdup("(NULL)"); \ ++ \ ++ debug_print("%s: %s\n", prefix, str); \ ++ \ ++ g_free(str); \ ++} while(0) ++ + static void prepare_matcher_tag(AdvancedSearch *search) + { +- char *newstr = expand_tag_search_string(search->request.matchstring); +- search->predicate = matcher_parser_get_cond(newstr, &search->is_fast); +- g_free(newstr); ++ gchar **words = search->request.matchstring ++ ? g_strsplit(search->request.matchstring, " ", -1) ++ : NULL; ++ gint i = 0; ++ ++ if (search->predicate == NULL) { ++ search->predicate = g_new0(MatcherList, 1); ++ search->predicate->bool_and = FALSE; ++ search->is_fast = TRUE; ++ } ++ ++ while (words && words[i] && *words[i]) { ++ MatcherProp *matcher; ++ ++ g_strstrip(words[i]); ++ ++ matcher = matcherprop_new(MATCHCRITERIA_TAG, NULL, ++ MATCHTYPE_MATCHCASE, words[i], 0); ++ ++ search->predicate->matchers = g_slist_prepend(search->predicate->matchers, matcher); ++ ++ i++; ++ } ++ g_strfreev(words); + } + + static void prepare_matcher_header(AdvancedSearch *search, gint match_header) + { + MatcherProp *matcher; + +- if (search->predicate == NULL) ++ if (search->predicate == NULL) { + search->predicate = g_new0(MatcherList, 1); ++ search->predicate->bool_and = FALSE; ++ } + + matcher = matcherprop_new(match_header, NULL, MATCHTYPE_MATCHCASE, + search->request.matchstring, 0); +@@ -373,10 +379,18 @@ + static void prepare_matcher_mixed(AdvancedSearch *search) + { + prepare_matcher_tag(search); ++ debug_matcher_list("tag matcher list", search->predicate); ++ ++ /* we want an OR search */ ++ if (search->predicate) ++ search->predicate->bool_and = FALSE; + + prepare_matcher_header(search, MATCHCRITERIA_SUBJECT); ++ debug_matcher_list("tag + subject matcher list", search->predicate); + prepare_matcher_header(search, MATCHCRITERIA_FROM); ++ debug_matcher_list("tag + subject + from matcher list", search->predicate); + prepare_matcher_header(search, MATCHCRITERIA_TO); ++ debug_matcher_list("tag + subject + from + to matcher list", search->predicate); + } + + static void prepare_matcher(AdvancedSearch *search) +@@ -398,26 +412,32 @@ + switch (search->request.type) { + case ADVANCED_SEARCH_SUBJECT: + prepare_matcher_header(search, MATCHCRITERIA_SUBJECT); ++ debug_matcher_list("subject search", search->predicate); + break; + + case ADVANCED_SEARCH_FROM: + prepare_matcher_header(search, MATCHCRITERIA_FROM); ++ debug_matcher_list("from search", search->predicate); + break; + + case ADVANCED_SEARCH_TO: + prepare_matcher_header(search, MATCHCRITERIA_TO); ++ debug_matcher_list("to search", search->predicate); + break; + + case ADVANCED_SEARCH_TAG: +- prepare_matcher_header(search, MATCHCRITERIA_TAG); ++ prepare_matcher_tag(search); ++ debug_matcher_list("tag search", search->predicate); + break; + + case ADVANCED_SEARCH_MIXED: + prepare_matcher_mixed(search); ++ debug_matcher_list("mixed search", search->predicate); + break; + + case ADVANCED_SEARCH_EXTENDED: + prepare_matcher_extended(search); ++ debug_matcher_list("extended search", search->predicate); + break; + + default: + diff --git a/mail-client/claws-mail/files/claws-3.9.0_fix-search-field_part2.patch b/mail-client/claws-mail/files/claws-3.9.0_fix-search-field_part2.patch new file mode 100644 index 000000000000..bb8a78aac832 --- /dev/null +++ b/mail-client/claws-mail/files/claws-3.9.0_fix-search-field_part2.patch @@ -0,0 +1,16 @@ +Make combo search field work again. + +Gentoo bug: https://bugs.gentoo.org/show_bug.cgi?id=455590 +Upstream commit: http://www.claws-mail.org/tracker/getpatchset.php?ver=3.9.0cvs9 + +--- src/advsearch.c 16 Nov 2012 13:10:05 -0000 1.1.2.8 ++++ src/advsearch.c 16 Nov 2012 13:11:55 -0000 1.1.2.9 +@@ -368,6 +368,7 @@ + if (search->predicate == NULL) { + search->predicate = g_new0(MatcherList, 1); + search->predicate->bool_and = FALSE; ++ search->is_fast = TRUE; + } + + matcher = matcherprop_new(match_header, NULL, MATCHTYPE_MATCHCASE, + |