From dbd1e3e95fcff251b6232544a313873a24a3de9b Mon Sep 17 00:00:00 2001
From: Lars Wendler <polynomial-c@gentoo.org>
Date: Fri, 11 Aug 2017 21:57:22 +0200
Subject: mail-client/claws-mail: Revbump to fix segfault (bug #618376).

Package-Manager: Portage-2.3.6, Repoman-2.3.3
---
 mail-client/claws-mail/claws-mail-3.15.0-r1.ebuild | 207 +++++++++++++++++++++
 mail-client/claws-mail/claws-mail-3.15.0.ebuild    | 203 --------------------
 .../claws-mail-3.15.0-old_profile_segfault.patch   |  80 ++++++++
 3 files changed, 287 insertions(+), 203 deletions(-)
 create mode 100644 mail-client/claws-mail/claws-mail-3.15.0-r1.ebuild
 delete mode 100644 mail-client/claws-mail/claws-mail-3.15.0.ebuild
 create mode 100644 mail-client/claws-mail/files/claws-mail-3.15.0-old_profile_segfault.patch

(limited to 'mail-client')

diff --git a/mail-client/claws-mail/claws-mail-3.15.0-r1.ebuild b/mail-client/claws-mail/claws-mail-3.15.0-r1.ebuild
new file mode 100644
index 000000000000..c92913afd868
--- /dev/null
+++ b/mail-client/claws-mail/claws-mail-3.15.0-r1.ebuild
@@ -0,0 +1,207 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+inherit autotools gnome2-utils eutils python-single-r1
+
+DESCRIPTION="An email client (and news reader) based on GTK+"
+HOMEPAGE="http://www.claws-mail.org/"
+
+SRC_URI="http://www.claws-mail.org/download.php?file=releases/${P}.tar.xz"
+
+SLOT="0"
+LICENSE="GPL-3"
+KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc64 ~x86"
+
+IUSE="archive bogofilter calendar clamav dbus debug doc gdata +gnutls gtk3 +imap ipv6 ldap +libcanberra +libindicate +libnotify networkmanager nls nntp +notification pda pdf perl +pgp python rss session sieve smime spamassassin spam-report spell startup-notification svg valgrind xface"
+REQUIRED_USE="libcanberra? ( notification )
+	libindicate? ( notification )
+	libnotify? ( notification )
+	networkmanager? ( dbus )
+	python? ( ${PYTHON_REQUIRED_USE} )
+	smime? ( pgp )"
+
+COMMONDEPEND="
+	net-mail/ytnef
+	archive? (
+		app-arch/libarchive
+		>=net-misc/curl-7.9.7
+	)
+	bogofilter? ( mail-filter/bogofilter )
+	calendar? (
+		>=dev-libs/libical-2.0.0
+		>=net-misc/curl-7.9.7
+	)
+	dbus? ( >=dev-libs/dbus-glib-0.60 )
+	gdata? ( >=dev-libs/libgdata-0.17.2 )
+	gnutls? ( >=net-libs/gnutls-3.0 )
+	gtk3? ( x11-libs/gtk+:3 )
+	!gtk3? ( >=x11-libs/gtk+-2.20:2 )
+	imap? ( >=net-libs/libetpan-0.57 )
+	ldap? ( >=net-nds/openldap-2.0.7 )
+	nls? ( >=sys-devel/gettext-0.18 )
+	nntp? ( >=net-libs/libetpan-0.57 )
+	notification? (
+		dev-libs/glib:2
+		libcanberra? (  media-libs/libcanberra[gtk] )
+		libindicate? ( dev-libs/libindicate:3[gtk] )
+		libnotify? ( x11-libs/libnotify )
+	)
+	pda? ( >=app-pda/jpilot-0.99 )
+	pdf? ( app-text/poppler[cairo] )
+	pgp? ( >=app-crypt/gpgme-1.0.0 )
+	session? (
+		x11-libs/libICE
+		x11-libs/libSM
+	)
+	smime? ( >=app-crypt/gpgme-1.0.0 )
+	spam-report? ( >=net-misc/curl-7.9.7 )
+	spell? ( >=app-text/enchant-1.0.0 )
+	startup-notification? ( x11-libs/startup-notification )
+	svg? ( >=gnome-base/librsvg-2.40.5 )
+	valgrind? ( dev-util/valgrind )
+"
+
+DEPEND="${COMMONDEPEND}
+	app-arch/xz-utils
+	virtual/pkgconfig
+	xface? ( >=media-libs/compface-1.4 )"
+
+RDEPEND="${COMMONDEPEND}
+	app-misc/mime-types
+	x11-misc/shared-mime-info
+	clamav? ( app-antivirus/clamav )
+	networkmanager? ( net-misc/networkmanager )
+	pdf? ( app-text/ghostscript-gpl )
+	perl? ( dev-lang/perl:= )
+	python? (
+		${PYTHON_DEPS}
+		>=dev-python/pygtk-2.10.3
+	)
+	rss? (
+		dev-libs/libxml2
+		net-misc/curl
+	)"
+
+PATCHES=(
+	"${FILESDIR}/${P}-old_profile_segfault.patch"
+)
+
+pkg_setup() {
+	use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	default
+	eautoreconf
+}
+
+src_configure() {
+	# Don't use libsoup-gnome (bug #565924)
+	export HAVE_LIBSOUP_GNOME=no
+
+	local myeconfargs=(
+		--disable-bsfilter-plugin
+		--disable-fancy-plugin
+		--disable-generic-umpc
+		--enable-acpi_notifier-plugin
+		--enable-address_keeper-plugin
+		--enable-alternate-addressbook
+		--enable-att_remover-plugin
+		--enable-attachwarner-plugin
+		--enable-fetchinfo-plugin
+		--enable-mailmbox-plugin
+		--enable-newmail-plugin
+		--enable-tnef_parse-plugin
+		--with-password-encryption=$(usex gnutls gnutls old)
+		$(use_enable archive archive-plugin)
+		$(use_enable bogofilter bogofilter-plugin)
+		$(use_enable calendar vcalendar-plugin)
+		$(use_enable clamav clamd-plugin)
+		$(use_enable dbus)
+		$(use_enable debug crash-dialog)
+		$(use_enable doc manual)
+		$(use_enable gdata gdata-plugin)
+		$(use_enable gnutls)
+		$(use_enable gtk3)
+		$(use_enable ipv6)
+		$(use_enable ldap)
+		$(use_enable networkmanager)
+		$(use_enable nls)
+		$(use_enable notification notification-plugin)
+		$(use_enable pda jpilot)
+		$(use_enable pdf pdf_viewer-plugin)
+		$(use_enable perl perl-plugin)
+		$(use_enable pgp pgpcore-plugin)
+		$(use_enable pgp pgpinline-plugin)
+		$(use_enable pgp pgpmime-plugin)
+		$(use_enable python python-plugin)
+		$(use_enable rss rssyl-plugin)
+		$(use_enable session libsm)
+		$(use_enable sieve managesieve-plugin)
+		$(use_enable smime smime-plugin)
+		$(use_enable spam-report spam_report-plugin)
+		$(use_enable spamassassin spamassassin-plugin)
+		$(use_enable spell enchant)
+		$(use_enable startup-notification)
+		$(use_enable svg)
+		$(use_enable valgrind valgrind)
+		$(use_enable xface compface)
+	)
+
+	# libetpan is needed if user wants nntp or imap functionality
+	if use imap || use nntp ; then
+		myeconfargs+=( --enable-libetpan )
+	else
+		myeconfargs+=( --disable-libetpan )
+	fi
+
+	ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+src_install() {
+	local DOCS=( AUTHORS ChangeLog* INSTALL* NEWS README* TODO* )
+	default
+
+	# 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
+	local size
+	for size in 64 128 ; do
+		newicon -s ${size} ${PN}-${size}x${size}.png ${PN}.png
+	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
+	doexe tb2claws-mail update-po uudec uuooffice
+
+	# kill useless files
+	rm -f "${ED%/}"/usr/lib*/claws-mail/plugins/*.{a,la}
+}
+
+pkg_preinst() {
+	gnome2_icon_savelist
+}
+
+pkg_postinst() {
+	ewarn "When upgrading from version 3.9.0 or below some changes have happened:"
+	ewarn "- There are no individual plugins in mail-client/claws-mail-* anymore, but they are integrated mostly controlled through USE flags"
+	ewarn "- Plugins with no special dependencies are just built and can be loaded through the interface"
+	ewarn "- The gtkhtml2, dillo and trayicon plugins have been dropped entirely"
+	gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+	gnome2_icon_cache_update
+}
diff --git a/mail-client/claws-mail/claws-mail-3.15.0.ebuild b/mail-client/claws-mail/claws-mail-3.15.0.ebuild
deleted file mode 100644
index 190562439d12..000000000000
--- a/mail-client/claws-mail/claws-mail-3.15.0.ebuild
+++ /dev/null
@@ -1,203 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-inherit autotools gnome2-utils eutils python-single-r1
-
-DESCRIPTION="An email client (and news reader) based on GTK+"
-HOMEPAGE="http://www.claws-mail.org/"
-
-SRC_URI="http://www.claws-mail.org/download.php?file=releases/${P}.tar.xz"
-
-SLOT="0"
-LICENSE="GPL-3"
-KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc64 ~x86"
-
-IUSE="archive bogofilter calendar clamav dbus debug doc gdata +gnutls gtk3 +imap ipv6 ldap +libcanberra +libindicate +libnotify networkmanager nls nntp +notification pda pdf perl +pgp python rss session sieve smime spamassassin spam-report spell startup-notification svg valgrind xface"
-REQUIRED_USE="libcanberra? ( notification )
-	libindicate? ( notification )
-	libnotify? ( notification )
-	networkmanager? ( dbus )
-	python? ( ${PYTHON_REQUIRED_USE} )
-	smime? ( pgp )"
-
-COMMONDEPEND="
-	net-mail/ytnef
-	archive? (
-		app-arch/libarchive
-		>=net-misc/curl-7.9.7
-	)
-	bogofilter? ( mail-filter/bogofilter )
-	calendar? (
-		>=dev-libs/libical-2.0.0
-		>=net-misc/curl-7.9.7
-	)
-	dbus? ( >=dev-libs/dbus-glib-0.60 )
-	gdata? ( >=dev-libs/libgdata-0.17.2 )
-	gnutls? ( >=net-libs/gnutls-3.0 )
-	gtk3? ( x11-libs/gtk+:3 )
-	!gtk3? ( >=x11-libs/gtk+-2.20:2 )
-	imap? ( >=net-libs/libetpan-0.57 )
-	ldap? ( >=net-nds/openldap-2.0.7 )
-	nls? ( >=sys-devel/gettext-0.18 )
-	nntp? ( >=net-libs/libetpan-0.57 )
-	notification? (
-		dev-libs/glib:2
-		libcanberra? (  media-libs/libcanberra[gtk] )
-		libindicate? ( dev-libs/libindicate:3[gtk] )
-		libnotify? ( x11-libs/libnotify )
-	)
-	pda? ( >=app-pda/jpilot-0.99 )
-	pdf? ( app-text/poppler[cairo] )
-	pgp? ( >=app-crypt/gpgme-1.0.0 )
-	session? (
-		x11-libs/libICE
-		x11-libs/libSM
-	)
-	smime? ( >=app-crypt/gpgme-1.0.0 )
-	spam-report? ( >=net-misc/curl-7.9.7 )
-	spell? ( >=app-text/enchant-1.0.0 )
-	startup-notification? ( x11-libs/startup-notification )
-	svg? ( >=gnome-base/librsvg-2.40.5 )
-	valgrind? ( dev-util/valgrind )
-"
-
-DEPEND="${COMMONDEPEND}
-	app-arch/xz-utils
-	virtual/pkgconfig
-	xface? ( >=media-libs/compface-1.4 )"
-
-RDEPEND="${COMMONDEPEND}
-	app-misc/mime-types
-	x11-misc/shared-mime-info
-	clamav? ( app-antivirus/clamav )
-	networkmanager? ( net-misc/networkmanager )
-	pdf? ( app-text/ghostscript-gpl )
-	perl? ( dev-lang/perl:= )
-	python? (
-		${PYTHON_DEPS}
-		>=dev-python/pygtk-2.10.3
-	)
-	rss? (
-		dev-libs/libxml2
-		net-misc/curl
-	)"
-
-pkg_setup() {
-	use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
-	default
-	eautoreconf
-}
-
-src_configure() {
-	# Don't use libsoup-gnome (bug #565924)
-	export HAVE_LIBSOUP_GNOME=no
-
-	local myeconfargs=(
-		--disable-bsfilter-plugin
-		--disable-fancy-plugin
-		--disable-generic-umpc
-		--enable-acpi_notifier-plugin
-		--enable-address_keeper-plugin
-		--enable-alternate-addressbook
-		--enable-att_remover-plugin
-		--enable-attachwarner-plugin
-		--enable-fetchinfo-plugin
-		--enable-mailmbox-plugin
-		--enable-newmail-plugin
-		--enable-tnef_parse-plugin
-		--with-password-encryption=$(usex gnutls gnutls old)
-		$(use_enable archive archive-plugin)
-		$(use_enable bogofilter bogofilter-plugin)
-		$(use_enable calendar vcalendar-plugin)
-		$(use_enable clamav clamd-plugin)
-		$(use_enable dbus)
-		$(use_enable debug crash-dialog)
-		$(use_enable doc manual)
-		$(use_enable gdata gdata-plugin)
-		$(use_enable gnutls)
-		$(use_enable gtk3)
-		$(use_enable ipv6)
-		$(use_enable ldap)
-		$(use_enable networkmanager)
-		$(use_enable nls)
-		$(use_enable notification notification-plugin)
-		$(use_enable pda jpilot)
-		$(use_enable pdf pdf_viewer-plugin)
-		$(use_enable perl perl-plugin)
-		$(use_enable pgp pgpcore-plugin)
-		$(use_enable pgp pgpinline-plugin)
-		$(use_enable pgp pgpmime-plugin)
-		$(use_enable python python-plugin)
-		$(use_enable rss rssyl-plugin)
-		$(use_enable session libsm)
-		$(use_enable sieve managesieve-plugin)
-		$(use_enable smime smime-plugin)
-		$(use_enable spam-report spam_report-plugin)
-		$(use_enable spamassassin spamassassin-plugin)
-		$(use_enable spell enchant)
-		$(use_enable startup-notification)
-		$(use_enable svg)
-		$(use_enable valgrind valgrind)
-		$(use_enable xface compface)
-	)
-
-	# libetpan is needed if user wants nntp or imap functionality
-	if use imap || use nntp; then
-		myeconfargs+=( --enable-libetpan )
-	else
-		myeconfargs+=( --disable-libetpan )
-	fi
-
-	ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
-}
-
-src_install() {
-	local DOCS=( AUTHORS ChangeLog* INSTALL* NEWS README* TODO* )
-	default
-
-	# 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
-	local size
-	for size in 64 128 ; do
-		newicon -s ${size} ${PN}-${size}x${size}.png ${PN}.png
-	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
-	doexe tb2claws-mail update-po uudec uuooffice
-
-	# kill useless files
-	rm -f "${D}"/usr/lib*/claws-mail/plugins/*.{a,la}
-}
-
-pkg_preinst() {
-	gnome2_icon_savelist
-}
-
-pkg_postinst() {
-	ewarn "When upgrading from version 3.9.0 or below some changes have happened:"
-	ewarn "- There are no individual plugins in mail-client/claws-mail-* anymore, but they are integrated mostly controlled through USE flags"
-	ewarn "- Plugins with no special dependencies are just built and can be loaded through the interface"
-	ewarn "- The gtkhtml2, dillo and trayicon plugins have been dropped entirely"
-	gnome2_icon_cache_update
-}
-
-pkg_postrm() {
-	gnome2_icon_cache_update
-}
diff --git a/mail-client/claws-mail/files/claws-mail-3.15.0-old_profile_segfault.patch b/mail-client/claws-mail/files/claws-mail-3.15.0-old_profile_segfault.patch
new file mode 100644
index 000000000000..b19bf8f39d67
--- /dev/null
+++ b/mail-client/claws-mail/files/claws-mail-3.15.0-old_profile_segfault.patch
@@ -0,0 +1,80 @@
+From: Ricardo Mones <ricardo@mones.org>
+Date: Wed, 9 Aug 2017 14:48:38 +0000 (+0200)
+Subject: Fix bug #3855: segfault at startup with old profile and IMAP account
+X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=commitdiff_plain;h=667c9d3eaf0487193cc7873e6d3a63959a03d7f9;hp=63677adb68c57479f6bc7534cfbf2f234b1f4fb1
+
+Fix bug #3855: segfault at startup with old profile and IMAP account
+
+Revert "Remove duplicated code and include".
+
+This reverts commit 300f811f3bbf10455ca55d9b01da6705dd1e07bb.
+---
+
+diff --git a/src/imap.c b/src/imap.c
+index 0e1e777..25bb283 100644
+--- a/src/imap.c
++++ b/src/imap.c
+@@ -77,6 +77,8 @@ typedef struct _IMAPSession	IMAPSession;
+ typedef struct _IMAPNameSpace	IMAPNameSpace;
+ typedef struct _IMAPFolderItem	IMAPFolderItem;
+ 
++#include "prefs_account.h"
++
+ #define IMAP_FOLDER(obj)	((IMAPFolder *)obj)
+ #define IMAP_FOLDER_ITEM(obj)	((IMAPFolderItem *)obj)
+ #define IMAP_SESSION(obj)	((IMAPSession *)obj)
+@@ -425,6 +427,7 @@ static gint imap_get_flags			(Folder 	*folder,
+ 						 FolderItem 	*item,
+                     				 MsgInfoList 	*msglist,
+ 						 GHashTable 	*msgflags);
++static gchar *imap_folder_get_path		(Folder		*folder);
+ static gchar *imap_item_get_path		(Folder		*folder,
+ 						 FolderItem	*item);
+ static MsgInfo *imap_parse_msg(const gchar *file, FolderItem *item);
+@@ -3042,6 +3045,35 @@ static FolderItem *imap_create_special_folder(Folder *folder,
+ 	return new_item;
+ }
+ 
++static gchar *imap_folder_get_path(Folder *folder)
++{
++	gchar *folder_path;
++
++	g_return_val_if_fail(folder != NULL, NULL);
++        g_return_val_if_fail(folder->account != NULL, NULL);
++
++#ifdef G_OS_WIN32
++	gchar *sanitized_dirname = g_strdup(folder->account->recv_server);
++	g_strdelimit(sanitized_dirname, ":", ',');
++#endif
++
++        folder_path = g_strconcat(get_imap_cache_dir(),
++                                  G_DIR_SEPARATOR_S,
++#ifdef G_OS_WIN32
++																	sanitized_dirname,
++#else
++                                  folder->account->recv_server,
++#endif
++                                  G_DIR_SEPARATOR_S,
++                                  folder->account->userid,
++                                  NULL);
++
++#ifdef G_OS_WIN32
++	g_free(sanitized_dirname);
++#endif
++	return folder_path;
++}
++
+ #ifdef G_OS_WIN32
+ static gchar *imap_encode_unsafe_chars(const gchar *str)
+ {
+@@ -3078,9 +3110,8 @@ static gchar *imap_item_get_path(Folder *folder, FolderItem *item)
+ 	gchar *item_path = NULL;
+ 	
+ 	g_return_val_if_fail(folder != NULL, NULL);
+-	g_return_val_if_fail(folder->account != NULL, NULL);
+ 	g_return_val_if_fail(item != NULL, NULL);
+-	folder_path = prefs_account_cache_dir(folder->account, FALSE);
++	folder_path = imap_folder_get_path(folder);
+ 
+ 	g_return_val_if_fail(folder_path != NULL, NULL);
+ 
-- 
cgit v1.2.3-65-gdbad