commit:     650afd4647ec44b71457fa836c555f30ede718e9
Author:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 15 15:06:35 2018 +0000
Commit:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Sun Jul 15 15:19:08 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=650afd46

mail-client/balsa: bump to 2.5.6, includes EFAIL security fixes

*html2text is actually a runtime dependency in the webkit-gtk code paths,
not buildtime for all USE.
* Add glib-compile-resources deps (libxml2).
* New gnutls dep.
* libesmtp usage removed.
* Custom icon cache in /usr/share/balsa, needing gtk-update-icon-cache
  during compile phase.
* src_prepare modifications are all obsolete (upstream bugs fixed).
* Include patches to hopefully keep USE=webkit working with older webkit-gtk.

Closes: https://bugs.gentoo.org/660322
Package-Manager: Portage-2.3.40, Repoman-2.3.9

 mail-client/balsa/Manifest                         |   1 +
 mail-client/balsa/balsa-2.5.6.ebuild               |  71 ++++++++++
 .../files/balsa-2.5.6-fix-older-webkit1.patch      | 156 +++++++++++++++++++++
 .../files/balsa-2.5.6-fix-older-webkit2.patch      |  53 +++++++
 4 files changed, 281 insertions(+)

diff --git a/mail-client/balsa/Manifest b/mail-client/balsa/Manifest
index 69e6da98843..59ff6ac5c97 100644
--- a/mail-client/balsa/Manifest
+++ b/mail-client/balsa/Manifest
@@ -1,2 +1,3 @@
 DIST balsa-2.5.2.tar.bz2 4049163 BLAKE2B 
7435c7831d528b3ab6d2783211023e3686e94b266ed0804ecb2d9605add6c3826b029c679d137bb3e176b112b11bc68a7e9fd828bc18c2e5c5636b8ef8ec85e4
 SHA512 
f7a9127d87869d57acebaf33f9e3e4b82c5a5ba90aa5304ce40ba48a1a7f01eaf602555f8e97bce70b0baeb2ac8b5ac12941eaa8b85be1886bf22f7767dd75ba
 DIST balsa-2.5.3.tar.bz2 4333815 BLAKE2B 
ba8715108cf1122152c069130911275175d5c45ca12e85f1165cb7e86680015d6effd1ea5aaaebd5b154f67fc13002bd26ad0f0d7942253b2483896dd28a50fd
 SHA512 
34e69be050f6c502fa6651029b7d93bf9b7842bbe8489669924563c086def4dbe72109ba5244e0cacf3ef69d3d9d8c5679f870acf564b5551920fa77012e1ff8
+DIST balsa-2.5.6.tar.bz2 4468877 BLAKE2B 
1e7f678c69121fe3472bbba8dc3d2a62680e1969934580a8a85725e84676531f1efb8432380c2d537ca584001c5cecd5c76cd033a1c1e68a292fc765bbc15f8d
 SHA512 
a9c8094ac48b9b1a0971fe45a4658b728f93ad170ad7884c9554420a4696a7b6f5b3661bde8ab070f6a5c14a80f67551745e1d40905881429ae1d8e5874e9a68

diff --git a/mail-client/balsa/balsa-2.5.6.ebuild 
b/mail-client/balsa/balsa-2.5.6.ebuild
new file mode 100644
index 00000000000..670125794ee
--- /dev/null
+++ b/mail-client/balsa/balsa-2.5.6.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit gnome2
+
+DESCRIPTION="Email client for GNOME"
+HOMEPAGE="http://pawsa.fedorapeople.org/balsa/";
+SRC_URI="http://pawsa.fedorapeople.org/${PN}/${P}.tar.bz2";
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+
+IUSE="crypt gnome gnome-keyring kerberos ldap libnotify libressl rubrica 
sqlite webkit xface"
+
+# TODO: internal spell checking via enchant-2 instead of gtkspell/gspell?
+RDEPEND="
+       >=app-text/gspell-1.2:0=
+       >=dev-libs/glib-2.40.0:2
+       net-libs/gnutls:=
+       >=x11-libs/gtk+-3.10.0:3
+       dev-libs/gmime:2.6
+       net-mail/mailbase
+       media-libs/libcanberra:=[gtk3]
+       x11-themes/hicolor-icon-theme
+       x11-themes/adwaita-icon-theme
+       crypt? ( >=app-crypt/gpgme-1.5.0:= )
+       gnome? ( >=x11-libs/gtksourceview-3.2.0:3.0 )
+       gnome-keyring? ( app-crypt/libsecret )
+       sqlite? ( >=dev-db/sqlite-2.8:= )
+       libnotify? ( >=x11-libs/libnotify-0.7:= )
+       !libressl? ( dev-libs/openssl:0= )
+       libressl? ( dev-libs/libressl:0= )
+       kerberos? ( app-crypt/mit-krb5 )
+       ldap? ( net-nds/openldap )
+       rubrica? ( dev-libs/libxml2:2 )
+       webkit? (
+               net-libs/webkit-gtk:4
+               dev-python/html2text
+       )
+       xface? ( >=media-libs/compface-1.5.1:= )
+"
+DEPEND="${RDEPEND}
+       dev-util/gtk-update-icon-cache
+       app-text/yelp-tools
+       dev-util/intltool
+       virtual/pkgconfig
+       sys-devel/gettext
+       dev-libs/libxml2:2
+"
+
+PATCHES=( "$FILESDIR"/${P}-fix-older-webkit{1,2}.patch )
+DOCS="AUTHORS ChangeLog HACKING NEWS README TODO docs/*"
+
+src_configure() {
+       gnome2_src_configure \
+               --with-canberra \
+               --with-spell-checker=gspell \
+               $(usex crypt --with-gpgme=gpgme-config --without-gpgme) \
+               $(use_with gnome) \
+               $(use_with gnome gtksourceview) \
+               $(use_with gnome-keyring libsecret) \
+               $(use_with kerberos gss) \
+               $(use_with ldap) \
+               $(use_with libnotify) \
+               $(use_with rubrica) \
+               $(use_with sqlite) \
+               $(use_with xface compface) \
+               $(usex webkit --with-html-widget=webkit2 --with-html-widget=no)
+}

diff --git a/mail-client/balsa/files/balsa-2.5.6-fix-older-webkit1.patch 
b/mail-client/balsa/files/balsa-2.5.6-fix-older-webkit1.patch
new file mode 100644
index 00000000000..227e2ac04b4
--- /dev/null
+++ b/mail-client/balsa/files/balsa-2.5.6-fix-older-webkit1.patch
@@ -0,0 +1,156 @@
+From ea37ea940dfbcc4e6bcf8327194857a7b306a278 Mon Sep 17 00:00:00 2001
+From: Peter Bloomfield
+Date: Sat, 7 Jul 2018 14:44:26 -0400
+Subject: [PATCH] Use g_debug() instead of conditional compilation
+
+* libbalsa/html.c (lbh_navigation_policy_decision),
+  (lbh_new_window_policy_decision), (lbh_response_policy_decision),
+  (lbh_resource_notify_response_cb), (lbh_web_process_crashed_cb),
+  (lbh_cid_cb), (libbalsa_html_new): Use g_debug() instead of
+  conditionally compiled printing.
+---
+ libbalsa/html.c | 52 ++++++++++++++++++++++++-------------------------
+ 2 files changed, 25 insertions(+), 27 deletions(-)
+
+diff --git a/libbalsa/html.c b/libbalsa/html.c
+index 17f62789e..1e5e2f500 100644
+--- a/libbalsa/html.c
++++ b/libbalsa/html.c
+@@ -44,6 +44,11 @@
+ #include <string.h>
+ #include <glib/gi18n.h>
+ 
++#ifdef G_LOG_DOMAIN
++#  undef G_LOG_DOMAIN
++#endif
++#define G_LOG_DOMAIN "html"
++
+ #ifdef HAVE_HTML_WIDGET
+ 
+ /*
+@@ -141,13 +146,6 @@ html2text(gchar ** text, gsize len)
+  * Experimental support for WebKit2.
+  */
+ 
+-#define DEBUG_WEBKIT2 FALSE
+-#if DEBUG_WEBKIT2
+-#define d(x) x
+-#else
+-#define d(x)
+-#endif
+-
+ /* WebKitContextMenuItem uses GtkAction, which is deprecated.
+  * We don't use it, but it breaks the git-tree build, so we just mangle
+  * it: */
+@@ -280,10 +278,10 @@ lbh_navigation_policy_decision(WebKitPolicyDecision * 
decision,
+ 
+     switch (navigation_type) {
+     case WEBKIT_NAVIGATION_TYPE_LINK_CLICKED:
+-        d(g_print("%s clicked %s\n", __func__, uri));
++        g_debug("%s clicked %s", __func__, uri);
+         (*info->clicked_cb) (uri);
+     default:
+-        d(g_print("%s uri %s, type %d, ignored\n", __func__, uri, 
navigation_type));
++        g_debug("%s uri %s, type %d, ignored", __func__, uri, 
navigation_type);
+         webkit_policy_decision_ignore(decision);
+     }
+ }
+@@ -305,13 +303,13 @@ lbh_new_window_policy_decision(WebKitPolicyDecision * 
decision,
+             (navigation_action)) {
+     case WEBKIT_NAVIGATION_TYPE_LINK_CLICKED:
+         request = webkit_navigation_action_get_request(navigation_action);
+-        d(g_print("%s clicked %s\n", __func__,
+-                  webkit_uri_request_get_uri(request)));
++        g_debug("%s clicked %s", __func__,
++                webkit_uri_request_get_uri(request));
+         (*info->clicked_cb) (webkit_uri_request_get_uri(request));
+     default:
+-        d(g_print("%s type %d, ignored\n", __func__,
+-                  webkit_navigation_action_get_navigation_type
+-                  (navigation_action)));
++        g_debug("%s type %d, ignored", __func__,
++                webkit_navigation_action_get_navigation_type
++                (navigation_action));
+ 
+         webkit_policy_decision_ignore(decision);
+     }
+@@ -321,10 +319,10 @@ static void
+ lbh_response_policy_decision(WebKitPolicyDecision * decision,
+                              gpointer               data)
+ {
+-    d(g_print("%s uri %s, ignored\n", __func__,
+-              webkit_uri_request_get_uri
+-              (webkit_response_policy_decision_get_request
+-               (WEBKIT_RESPONSE_POLICY_DECISION(decision)))));
++    g_debug("%s uri %s, ignored", __func__,
++            webkit_uri_request_get_uri
++            (webkit_response_policy_decision_get_request
++             (WEBKIT_RESPONSE_POLICY_DECISION(decision))));
+     webkit_policy_decision_ignore(decision);
+ }
+ 
+@@ -453,20 +451,20 @@ lbh_resource_notify_response_cb(WebKitWebResource * 
resource,
+ 
+     response = webkit_web_resource_get_response(resource);
+     mime_type = webkit_uri_response_get_mime_type(response);
+-    d(g_print("%s mime-type %s\n", __func__, mime_type));
++    g_debug("%s mime-type %s", __func__, mime_type);
+     if (g_ascii_strncasecmp(mime_type, "image/", 6) != 0)
+         return;
+ 
+     if (info->info_bar) {
+-        d(g_print("%s %s destroy info_bar\n", __func__,
+-                  webkit_web_resource_get_uri(resource)));
++        g_debug("%s %s destroy info_bar", __func__,
++                webkit_web_resource_get_uri(resource));
+         /* web_view is loading an image from its cache, so we do not
+          * need to ask the user for permission to download */
+         gtk_widget_destroy(info->info_bar);
+         info->info_bar = NULL;
+     } else {
+-        d(g_print("%s %s null info_bar\n", __func__,
+-                  webkit_web_resource_get_uri(resource)));
++        g_debug("%s %s null info_bar", __func__,
++                webkit_web_resource_get_uri(resource));
+     }
+ }
+ 
+@@ -493,7 +491,7 @@ static gboolean
+ lbh_web_process_crashed_cb(WebKitWebView * web_view,
+                            gpointer        data)
+ {
+-    d(g_print("%s\n", __func__));
++    g_debug("%s", __func__);
+     return FALSE;
+ }
+ 
+@@ -509,7 +507,7 @@ lbh_cid_cb(WebKitURISchemeRequest * request,
+     LibBalsaMessageBody *body;
+ 
+     path = webkit_uri_scheme_request_get_path(request);
+-    d(g_print("%s path %s\n", __func__, path));
++    g_debug("%s path %s", __func__, path);
+ 
+     if ((body =
+          libbalsa_message_get_part_by_id(info->body->message, path))) {
+@@ -616,7 +614,7 @@ libbalsa_html_new(LibBalsaMessageBody * body,
+         webkit_web_context_register_uri_scheme(context, "cid", lbh_cid_cb,
+                                                &info, NULL);
+         have_registered_cid = TRUE;
+-        d(g_print("%s registered cid: scheme\n", __func__));
++        g_debug("%s registered cid: scheme", __func__);
+     }
+ 
+     settings = webkit_web_view_get_settings(web_view);
+@@ -647,7 +645,7 @@ libbalsa_html_new(LibBalsaMessageBody * body,
+     if (g_regex_match_simple(src_regex, text, G_REGEX_CASELESS, 0)) {
+         info->info_bar = lbh_info_bar(info);
+         gtk_box_pack_start(GTK_BOX(vbox), info->info_bar, FALSE, FALSE, 0);
+-        d(g_print("%s shows info_bar\n", __func__));
++        g_debug("%s shows info_bar", __func__);
+     }
+ 
+     webkit_web_view_load_html(web_view, text, NULL);
+-- 
+2.17.1
+

diff --git a/mail-client/balsa/files/balsa-2.5.6-fix-older-webkit2.patch 
b/mail-client/balsa/files/balsa-2.5.6-fix-older-webkit2.patch
new file mode 100644
index 00000000000..d7b5eb74ba1
--- /dev/null
+++ b/mail-client/balsa/files/balsa-2.5.6-fix-older-webkit2.patch
@@ -0,0 +1,53 @@
+From 3423ca9bf48e675007b7fb1bd61b50aa97d14890 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Albrecht=20Dre=C3=9F?=
+Date: Sat, 7 Jul 2018 16:36:49 -0400
+Subject: [PATCH] html: Fix HTML rendering with webkit2gtk-4.0 < 2.20
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* README: document use of G_MESSAGES_DEBUG=…
+* libbalsa/html.c (lbh_navigation_policy_decision):
+  allow the rendering of “about:blank”.
+---
+ libbalsa/html.c | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+leio: trimmed out the G_MESSAGES_DEBUG doc changes
+diff --git a/libbalsa/html.c b/libbalsa/html.c
+index 1e5e2f500..307194e0a 100644
+--- a/libbalsa/html.c
++++ b/libbalsa/html.c
+@@ -44,13 +44,13 @@
+ #include <string.h>
+ #include <glib/gi18n.h>
+ 
++#ifdef HAVE_HTML_WIDGET
++
+ #ifdef G_LOG_DOMAIN
+ #  undef G_LOG_DOMAIN
+ #endif
+ #define G_LOG_DOMAIN "html"
+ 
+-#ifdef HAVE_HTML_WIDGET
+-
+ /*
+  * Used by all HTML widgets
+  *
+@@ -281,8 +281,12 @@ lbh_navigation_policy_decision(WebKitPolicyDecision * 
decision,
+         g_debug("%s clicked %s", __func__, uri);
+         (*info->clicked_cb) (uri);
+     default:
+-        g_debug("%s uri %s, type %d, ignored", __func__, uri, 
navigation_type);
+-        webkit_policy_decision_ignore(decision);
++        if (g_ascii_strcasecmp(uri, "about:blank") != 0) {
++            g_debug("%s uri %s, type %d, ignored", __func__, uri, 
navigation_type);
++              webkit_policy_decision_ignore(decision);
++        } else {
++              g_debug("%s uri %s, type %d loaded", __func__, uri, 
navigation_type);
++        }
+     }
+ }
+ 
+-- 
+2.17.1

Reply via email to