kde-apps/dolphin: Fix crashes with Qt 5.14.2
authorAndreas Sturmlechner <asturm@gentoo.org>
Tue, 7 Apr 2020 22:30:22 +0000 (00:30 +0200)
committerAndreas Sturmlechner <asturm@gentoo.org>
Thu, 9 Apr 2020 21:36:26 +0000 (23:36 +0200)
Package-Manager: Portage-2.3.96, Repoman-2.3.22
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
kde-apps/dolphin/dolphin-19.12.3-r1.ebuild [new file with mode: 0644]
kde-apps/dolphin/files/dolphin-19.12.3-fix-crash-w-qt-5.14.2.patch [new file with mode: 0644]

diff --git a/kde-apps/dolphin/dolphin-19.12.3-r1.ebuild b/kde-apps/dolphin/dolphin-19.12.3-r1.ebuild
new file mode 100644 (file)
index 0000000..4f5ca6b
--- /dev/null
@@ -0,0 +1,102 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+VIRTUALX_REQUIRED="test"
+inherit ecm kde.org
+
+DESCRIPTION="Plasma filemanager focusing on usability"
+HOMEPAGE="https://kde.org/applications/system/org.kde.dolphin
+https://userbase.kde.org/Dolphin"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+IUSE="activities semantic-desktop"
+
+DEPEND="
+       >=kde-frameworks/kbookmarks-${KFMIN}:5
+       >=kde-frameworks/kcmutils-${KFMIN}:5
+       >=kde-frameworks/kcodecs-${KFMIN}:5
+       >=kde-frameworks/kcompletion-${KFMIN}:5
+       >=kde-frameworks/kconfig-${KFMIN}:5
+       >=kde-frameworks/kconfigwidgets-${KFMIN}:5
+       >=kde-frameworks/kcoreaddons-${KFMIN}:5
+       >=kde-frameworks/kcrash-${KFMIN}:5
+       >=kde-frameworks/kdbusaddons-${KFMIN}:5
+       >=kde-frameworks/ki18n-${KFMIN}:5
+       >=kde-frameworks/kiconthemes-${KFMIN}:5
+       >=kde-frameworks/kinit-${KFMIN}:5
+       >=kde-frameworks/kio-${KFMIN}:5
+       >=kde-frameworks/kitemviews-${KFMIN}:5
+       >=kde-frameworks/kjobwidgets-${KFMIN}:5
+       >=kde-frameworks/knewstuff-${KFMIN}:5
+       >=kde-frameworks/knotifications-${KFMIN}:5
+       >=kde-frameworks/kparts-${KFMIN}:5
+       >=kde-frameworks/kservice-${KFMIN}:5
+       >=kde-frameworks/ktextwidgets-${KFMIN}:5
+       >=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+       >=kde-frameworks/kwindowsystem-${KFMIN}:5
+       >=kde-frameworks/kxmlgui-${KFMIN}:5
+       >=kde-frameworks/solid-${KFMIN}:5
+       >=dev-qt/qtconcurrent-${QTMIN}:5
+       >=dev-qt/qtdbus-${QTMIN}:5
+       >=dev-qt/qtgui-${QTMIN}:5
+       >=dev-qt/qtwidgets-${QTMIN}:5
+       >=dev-qt/qtxml-${QTMIN}:5
+       media-libs/phonon[qt5(+)]
+       activities? ( >=kde-frameworks/kactivities-${KFMIN}:5 )
+       semantic-desktop? (
+               >=kde-frameworks/baloo-${KFMIN}:5
+               >=kde-frameworks/kfilemetadata-${KFMIN}:5
+               >=kde-apps/baloo-widgets-${PVCUT}:5
+       )
+"
+RDEPEND="${DEPEND}
+       >=kde-apps/kio-extras-${PVCUT}:5
+"
+
+RESTRICT+=" test"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-19.12.2-create-new-consistency.patch" # from 20.04
+       "${FILESDIR}/${P}-fix-crash-w-qt-5.14.2.patch" # KDE-Bug 419585
+)
+
+src_configure() {
+       local mycmakeargs=(
+               $(cmake_use_find_package activities KF5Activities)
+               $(cmake_use_find_package semantic-desktop KF5Baloo)
+               $(cmake_use_find_package semantic-desktop KF5BalooWidgets)
+               $(cmake_use_find_package semantic-desktop KF5FileMetaData)
+       )
+
+       ecm_src_configure
+}
+
+pkg_postinst() {
+       ecm_pkg_postinst
+
+       if [[ -z "${REPLACING_VERSIONS}" ]]; then
+               has_version "kde-apps/ark:${SLOT}" || \
+                       elog "For compress/extract and other actions install kde-apps/ark:${SLOT}"
+
+               has_version "kde-apps/kleopatra:${SLOT}" || \
+                       elog "For crypto actions install kde-apps/kleopatra:${SLOT}"
+
+               has_version "kde-apps/ffmpegthumbs:${SLOT}" || \
+                       elog "For video file thumbnails install kde-apps/ffmpegthumbs:${SLOT}"
+
+               has_version "kde-apps/thumbnailers:${SLOT}" || \
+                       elog "For graphics file thumbnails install kde-apps/thumbnailers:${SLOT}"
+
+               has_version "kde-frameworks/purpose:${SLOT}" || \
+                       elog "For 'Share' context menu actions install kde-frameworks/purpose:${SLOT}"
+       fi
+}
diff --git a/kde-apps/dolphin/files/dolphin-19.12.3-fix-crash-w-qt-5.14.2.patch b/kde-apps/dolphin/files/dolphin-19.12.3-fix-crash-w-qt-5.14.2.patch
new file mode 100644 (file)
index 0000000..3e52450
--- /dev/null
@@ -0,0 +1,22 @@
+diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp
+--- a/src/kitemviews/kfileitemmodel.cpp
++++ b/src/kitemviews/kfileitemmodel.cpp
+@@ -33,6 +33,9 @@
+ #include <QMimeData>
+ #include <QTimer>
+ #include <QWidget>
++#include <QMutex>
++
++Q_GLOBAL_STATIC_WITH_ARGS(QMutex, s_collatorMutex, (QMutex::Recursive))
+ // #define KFILEITEMMODEL_DEBUG
+@@ -1878,6 +1881,8 @@
+ int KFileItemModel::stringCompare(const QString& a, const QString& b, const QCollator& collator) const
+ {
++    QMutexLocker collatorLock(s_collatorMutex());
++
+     if (m_naturalSorting) {
+         return collator.compare(a, b);
+     }