kde-apps/kmail: Fix crash on exit
authorAndreas Sturmlechner <asturm@gentoo.org>
Thu, 6 Jun 2019 19:08:40 +0000 (21:08 +0200)
committerAndreas Sturmlechner <asturm@gentoo.org>
Thu, 6 Jun 2019 20:33:15 +0000 (22:33 +0200)
See also: https://mail.kde.org/pipermail/release-team/2019-June/011386.html
KDE-Bug: https://bugs.kde.org/show_bug.cgi?id=404881
Package-Manager: Portage-2.3.67, Repoman-2.3.14
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
kde-apps/kmail/files/kmail-19.04.2-crash-on-exit.patch [new file with mode: 0644]
kde-apps/kmail/kmail-19.04.2-r1.ebuild [new file with mode: 0644]

diff --git a/kde-apps/kmail/files/kmail-19.04.2-crash-on-exit.patch b/kde-apps/kmail/files/kmail-19.04.2-crash-on-exit.patch
new file mode 100644 (file)
index 0000000..5817694
--- /dev/null
@@ -0,0 +1,74 @@
+From 97e165dcf5a851ee10526631d24f9af7736da2e6 Mon Sep 17 00:00:00 2001
+From: David Faure <faure@kde.org>
+Date: Thu, 6 Jun 2019 18:10:42 +0200
+Subject: Fix kontact crash on logout.
+
+Summary:
+KMail was creating new Akonadi jobs during mainwindow destruction,
+due to not testing the bool in GuiActivateEvent.
+
+Same bt in bug 404881, apparently quitting from the akregator tray icon
+[which quits all of kontact... separate issue...] gave the same crash.
+
+BUG: 404881
+FIXED-IN: 19.04.2
+
+Test Plan: Run kontact, logout. Hello Drkonqi.
+
+Reviewers: mlaurent, winterz
+
+Reviewed By: mlaurent, winterz
+
+Subscribers: kde-pim
+
+Tags: #kde_pim
+
+Differential Revision: https://phabricator.kde.org/D21626
+---
+ src/kmail_part.cpp | 23 ++++++++++++-----------
+ 1 file changed, 12 insertions(+), 11 deletions(-)
+
+diff --git a/src/kmail_part.cpp b/src/kmail_part.cpp
+index 703a1ee..96c4c07 100644
+--- a/src/kmail_part.cpp
++++ b/src/kmail_part.cpp
+@@ -33,6 +33,7 @@
+ #include <QVBoxLayout>
++#include <KParts/GUIActivateEvent>
+ #include <kparts/statusbarextension.h>
+ #include <kparts/mainwindow.h>
+ #include <kpluginfactory.h>
+@@ -129,18 +130,18 @@ bool KMailPart::openFile()
+ void KMailPart::guiActivateEvent(KParts::GUIActivateEvent *e)
+ {
+     KParts::ReadOnlyPart::guiActivateEvent(e);
+-    mainWidget->initializeFilterActions();
+-    mainWidget->tagActionManager()->createActions();
+-    mainWidget->folderShortcutActionManager()->createActions();
+-    mainWidget->populateMessageListStatusFilterCombo();
+-    mainWidget->initializePluginActions();
+-    /*
+-    FIXME it doesn't work when we switch component.
+-    const QString title = mainWidget->fullCollectionPath();
+-    if (!title.isEmpty()) {
+-        Q_EMIT setWindowCaption(title);
++    if (e->activated()) {
++        mainWidget->initializeFilterActions();
++        mainWidget->tagActionManager()->createActions();
++        mainWidget->folderShortcutActionManager()->createActions();
++        mainWidget->populateMessageListStatusFilterCombo();
++        mainWidget->initializePluginActions();
++
++        const QString title = mainWidget->fullCollectionPath();
++        if (!title.isEmpty()) {
++            Q_EMIT setWindowCaption(title);
++        }
+     }
+-    */
+ }
+ void KMailPart::exit()
+-- 
+cgit v1.1
diff --git a/kde-apps/kmail/kmail-19.04.2-r1.ebuild b/kde-apps/kmail/kmail-19.04.2-r1.ebuild
new file mode 100644 (file)
index 0000000..dd0a95a
--- /dev/null
@@ -0,0 +1,117 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+KDE_HANDBOOK="forceoptional"
+KDE_TEST="forceoptional"
+VIRTUALX_REQUIRED="test"
+inherit kde5
+
+DESCRIPTION="Email client, supporting POP3 and IMAP mailboxes."
+HOMEPAGE="https://kde.org/applications/internet/kmail/"
+LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE=""
+
+BDEPEND="
+       dev-libs/libxslt
+       test? ( $(add_kdeapps_dep akonadi 'tools') )
+"
+COMMON_DEPEND="
+       $(add_frameworks_dep kbookmarks)
+       $(add_frameworks_dep kcmutils)
+       $(add_frameworks_dep kcodecs)
+       $(add_frameworks_dep kcompletion)
+       $(add_frameworks_dep kconfig)
+       $(add_frameworks_dep kconfigwidgets)
+       $(add_frameworks_dep kcoreaddons)
+       $(add_frameworks_dep kcrash)
+       $(add_frameworks_dep kdbusaddons)
+       $(add_frameworks_dep kguiaddons)
+       $(add_frameworks_dep ki18n)
+       $(add_frameworks_dep kiconthemes)
+       $(add_frameworks_dep kitemviews)
+       $(add_frameworks_dep kio)
+       $(add_frameworks_dep kjobwidgets)
+       $(add_frameworks_dep knotifications)
+       $(add_frameworks_dep knotifyconfig)
+       $(add_frameworks_dep kparts)
+       $(add_frameworks_dep kservice)
+       $(add_frameworks_dep ktextwidgets)
+       $(add_frameworks_dep kwidgetsaddons)
+       $(add_frameworks_dep kwindowsystem)
+       $(add_frameworks_dep kxmlgui)
+       $(add_frameworks_dep sonnet)
+       $(add_kdeapps_dep akonadi)
+       $(add_kdeapps_dep akonadi-contacts)
+       $(add_kdeapps_dep akonadi-mime)
+       $(add_kdeapps_dep akonadi-search)
+       $(add_kdeapps_dep kcalcore)
+       $(add_kdeapps_dep kcontacts)
+       $(add_kdeapps_dep kdepim-apps-libs)
+       $(add_kdeapps_dep kidentitymanagement)
+       $(add_kdeapps_dep kmailtransport)
+       $(add_kdeapps_dep kmime)
+       $(add_kdeapps_dep kontactinterface)
+       $(add_kdeapps_dep kpimtextedit)
+       $(add_kdeapps_dep libgravatar)
+       $(add_kdeapps_dep libkdepim)
+       $(add_kdeapps_dep libkleo)
+       $(add_kdeapps_dep libksieve)
+       $(add_kdeapps_dep libktnef)
+       $(add_kdeapps_dep mailcommon)
+       $(add_kdeapps_dep messagelib)
+       $(add_kdeapps_dep pimcommon)
+       $(add_qt_dep qtdbus)
+       $(add_qt_dep qtgui)
+       $(add_qt_dep qtnetwork)
+       $(add_qt_dep qtwebengine 'widgets')
+       $(add_qt_dep qtwidgets)
+       >=app-crypt/gpgme-1.7.1[cxx,qt5]
+"
+DEPEND="${COMMON_DEPEND}
+       $(add_kdeapps_dep kcalutils)
+       $(add_kdeapps_dep kldap)
+       test? ( $(add_kdeapps_dep akonadi 'sqlite') )
+"
+RDEPEND="${COMMON_DEPEND}
+       !kde-apps/kdepim-common-libs:4
+       !kde-apps/kdepim-l10n
+       !kde-apps/ktnef
+       $(add_kdeapps_dep kdepim-runtime)
+       $(add_kdeapps_dep kmail-account-wizard)
+"
+
+PATCHES=( "${FILESDIR}/${P}-crash-on-exit.patch" )
+
+RESTRICT+=" test" # bug 616878
+
+src_prepare() {
+       kde5_src_prepare
+
+       if ! use handbook; then
+               sed -i ktnef/CMakeLists.txt -e "/add_subdirectory(doc)/ s/^/#DONT/" || die
+       fi
+}
+
+pkg_postinst() {
+       kde5_pkg_postinst
+
+       pkg_is_installed() {
+               echo "${1} ($(has_version ${1} || echo "not ")installed)"
+       }
+
+       if [[ -z "${REPLACING_VERSIONS}" ]]; then
+               elog "KMail supports the following runtime dependencies:"
+               elog "  Virus detection:"
+               elog "    $(pkg_is_installed app-antivirus/clamav)"
+               elog "  Spam filtering:"
+               elog "    $(pkg_is_installed mail-filter/bogofilter)"
+               elog "    $(pkg_is_installed mail-filter/spamassassin)"
+               elog "  Fancy e-mail headers and various useful plugins:"
+               elog "    $(pkg_is_installed kde-apps/kdepim-addons:${SLOT})"
+               elog "  Crypto config and certificate details GUI:"
+               elog "    $(pkg_is_installed kde-apps/kleopatra:${SLOT})"
+       fi
+}