summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Faulhammer <fauli@gentoo.org>2013-02-11 21:38:59 +0000
committerChristian Faulhammer <fauli@gentoo.org>2013-02-11 21:38:59 +0000
commitfecf13d5f1ecdb11459eaf302fa39bd342f9fe89 (patch)
treeb240b9a46b07db9846f192b2675562fba305bdc3 /mail-client
parentStable for x86, wrt bug #456558 (diff)
downloadgentoo-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')
-rw-r--r--mail-client/claws-mail/ChangeLog10
-rw-r--r--mail-client/claws-mail/claws-mail-3.9.0-r1.ebuild140
-rw-r--r--mail-client/claws-mail/files/claws-3.9.0_fix-search-field_part1.patch149
-rw-r--r--mail-client/claws-mail/files/claws-3.9.0_fix-search-field_part2.patch16
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,
+