kde-apps/akregator: Fix crash with Qt-5.11+
authorAndreas Sturmlechner <asturm@gentoo.org>
Sat, 15 Dec 2018 22:03:38 +0000 (23:03 +0100)
committerAndreas Sturmlechner <asturm@gentoo.org>
Sun, 16 Dec 2018 09:46:59 +0000 (10:46 +0100)
KDE-Bug: https://bugs.kde.org/show_bug.cgi?id=371511
Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
kde-apps/akregator/akregator-18.12.0-r1.ebuild [new file with mode: 0644]
kde-apps/akregator/files/akregator-18.12.0-qt-5.11-crashfix.patch [new file with mode: 0644]

diff --git a/kde-apps/akregator/akregator-18.12.0-r1.ebuild b/kde-apps/akregator/akregator-18.12.0-r1.ebuild
new file mode 100644 (file)
index 0000000..d113243
--- /dev/null
@@ -0,0 +1,57 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+KDE_HANDBOOK="forceoptional"
+KDE_TEST="forceoptional"
+inherit kde5
+
+DESCRIPTION="News feed aggregator"
+HOMEPAGE="https://www.kde.org/applications/internet/akregator"
+LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+KEYWORDS="~amd64 ~x86"
+
+IUSE=""
+
+COMMON_DEPEND="
+       $(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 ki18n)
+       $(add_frameworks_dep kiconthemes)
+       $(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 kxmlgui)
+       $(add_frameworks_dep syndication)
+       $(add_kdeapps_dep grantleetheme)
+       $(add_kdeapps_dep kontactinterface)
+       $(add_kdeapps_dep kpimtextedit)
+       $(add_kdeapps_dep libkdepim)
+       $(add_kdeapps_dep messagelib)
+       $(add_kdeapps_dep pimcommon)
+       $(add_qt_dep qtdbus)
+       $(add_qt_dep qtgui)
+       $(add_qt_dep qtnetwork)
+       $(add_qt_dep qtwebengine)
+       $(add_qt_dep qtwidgets)
+       $(add_qt_dep qtxml)
+"
+DEPEND="${COMMON_DEPEND}
+       dev-libs/grantlee:5
+"
+RDEPEND="${COMMON_DEPEND}
+       !kde-apps/kdepim-l10n
+"
+
+PATCHES=( "${FILESDIR}/${P}-qt-5.11-crashfix.patch" )
diff --git a/kde-apps/akregator/files/akregator-18.12.0-qt-5.11-crashfix.patch b/kde-apps/akregator/files/akregator-18.12.0-qt-5.11-crashfix.patch
new file mode 100644 (file)
index 0000000..f135121
--- /dev/null
@@ -0,0 +1,81 @@
+From 91a4ab57a82970bd75eee4a7aee61a7e1c1321ef Mon Sep 17 00:00:00 2001
+From: Andras Mantia <andras@kdab.com>
+Date: Thu, 13 Dec 2018 17:32:52 +0200
+Subject: Don't crash with Qt 5.11+
+
+Summary:
+Based on the patch from https://bugs.kde.org/show_bug.cgi?id=371511
+See also https://bugreports.qt.io/browse/QTBUG-72260
+
+BUG: 371511
+
+Reviewers: PHID-PROJ-odxxyyfgujhgbu6ergrt, mlaurent
+
+Reviewed By: PHID-PROJ-odxxyyfgujhgbu6ergrt, mlaurent
+
+Subscribers: marten, asturmlechner, kfunk, kde-pim
+
+Tags: #kde_pim
+
+Differential Revision: https://phabricator.kde.org/D17563
+---
+ .../webengine/articleviewerwebengine.cpp           | 22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+diff --git a/src/articleviewer-ng/webengine/articleviewerwebengine.cpp b/src/articleviewer-ng/webengine/articleviewerwebengine.cpp
+index 2463fdf..174c09a 100644
+--- a/src/articleviewer-ng/webengine/articleviewerwebengine.cpp
++++ b/src/articleviewer-ng/webengine/articleviewerwebengine.cpp
+@@ -46,6 +46,7 @@
+ #include <QMenu>
+ #include <viewerplugintoolmanager.h>
+ #include <QWebEngineProfile>
++#include <QWebEngineUrlRequestInterceptor>
+ 
+ #include <WebEngineViewer/WebHitTestResult>
+ #include <WebEngineViewer/WebHitTest>
+@@ -57,6 +58,19 @@
+ 
+ using namespace Akregator;
+ 
++class AkregatorRequestInterceptor : public QWebEngineUrlRequestInterceptor
++{
++    Q_OBJECT
++
++public:
++    explicit AkregatorRequestInterceptor(QObject *parent = nullptr) : QWebEngineUrlRequestInterceptor(parent) {
++    }
++
++    void interceptRequest(QWebEngineUrlRequestInfo &info) override {
++        Q_UNUSED(info);
++    }
++};
++
+ ArticleViewerWebEngine::ArticleViewerWebEngine(KActionCollection *ac, QWidget *parent)
+     : WebEngineViewer::WebEngineView(parent)
+     , mActionCollection(ac)
+@@ -64,10 +78,16 @@ ArticleViewerWebEngine::ArticleViewerWebEngine(KActionCollection *ac, QWidget *p
+     , mViewerPluginToolManager(nullptr)
+ {
+     mNetworkAccessManager = new WebEngineViewer::InterceptorManager(this, ac, this);
++
+     QWebEngineProfile *profile = QWebEngineProfile::defaultProfile();
+     mPageEngine = new ArticleViewerWebEnginePage(profile, this);
+     profile->setPersistentCookiesPolicy(QWebEngineProfile::ForcePersistentCookies);
+ 
++    // Needed to workaround crash in webengine, see https://bugreports.qt.io/browse/QTBUG-72260
++    auto webEngineUrlInterceptor = new AkregatorRequestInterceptor();
++    profile->setRequestInterceptor(webEngineUrlInterceptor);
++    connect(profile, &QObject::destroyed, webEngineUrlInterceptor, &AkregatorRequestInterceptor::deleteLater);
++
+     setPage(mPageEngine);
+ 
+     connect(this, &ArticleViewerWebEngine::showContextMenu, this, &ArticleViewerWebEngine::slotShowContextMenu);
+@@ -494,3 +514,5 @@ void ArticleViewerWebEngine::slotActivatePlugin(MessageViewer::ViewerPluginInter
+     interface->setUrl(mCurrentUrl);
+     interface->execute();
+ }
++
++#include "articleviewerwebengine.moc"
+-- 
+cgit v1.1