kde-apps/kdenlive: Backport upstream fix for startup crash
authorAndreas Sturmlechner <asturm@gentoo.org>
Wed, 15 Jan 2020 19:03:02 +0000 (20:03 +0100)
committerAndreas Sturmlechner <asturm@gentoo.org>
Wed, 15 Jan 2020 19:09:34 +0000 (20:09 +0100)
Closes: https://bugs.gentoo.org/703524
Package-Manager: Portage-2.3.84, Repoman-2.3.20
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
kde-apps/kdenlive/files/kdenlive-19.12.1-qt-5.14-new-project-crash.patch [new file with mode: 0644]
kde-apps/kdenlive/kdenlive-19.12.1-r1.ebuild [new file with mode: 0644]

diff --git a/kde-apps/kdenlive/files/kdenlive-19.12.1-qt-5.14-new-project-crash.patch b/kde-apps/kdenlive/files/kdenlive-19.12.1-qt-5.14-new-project-crash.patch
new file mode 100644 (file)
index 0000000..aa4d491
--- /dev/null
@@ -0,0 +1,44 @@
+From b20a7307368932b35ec0d7cdebb68a710cbbf8ba Mon Sep 17 00:00:00 2001
+From: Jean-Baptiste Mardelle <jb@kdenlive.org>
+Date: Wed, 15 Jan 2020 11:30:20 +0100
+Subject: Fix crash on new project with Qt 5.14 Related to #494
+
+---
+ src/timeline2/view/timelinewidget.cpp | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/timeline2/view/timelinewidget.cpp b/src/timeline2/view/timelinewidget.cpp
+index 452e4d7..f8bf6ed 100644
+--- a/src/timeline2/view/timelinewidget.cpp
++++ b/src/timeline2/view/timelinewidget.cpp
+@@ -65,6 +65,7 @@ TimelineWidget::TimelineWidget(QWidget *parent)
+     // Build transition model for context menu
+     m_transitionModel = TransitionTreeModel::construct(true, this);
+     m_transitionProxyModel = std::make_unique<TransitionFilter>(this);
++    m_sortModel = std::make_unique<QSortFilterProxyModel>(this);
+     static_cast<TransitionFilter *>(m_transitionProxyModel.get())->setFilterType(true, TransitionType::Favorites);
+     m_transitionProxyModel->setSourceModel(m_transitionModel.get());
+     m_transitionProxyModel->setSortRole(AssetTreeModel::NameRole);
+@@ -89,6 +90,8 @@ TimelineWidget::TimelineWidget(QWidget *parent)
+ TimelineWidget::~TimelineWidget()
+ {
++    rootContext()->setContextProperty("multitrack", 0);
++    rootContext()->setContextProperty("timeline", 0);
+     delete m_proxy;
+ }
+@@ -113,11 +116,9 @@ const QStringList TimelineWidget::sortedItems(const QStringList &items, bool isT
+ void TimelineWidget::setModel(const std::shared_ptr<TimelineItemModel> &model, MonitorProxy *proxy)
+ {
+-    m_sortModel = std::make_unique<QSortFilterProxyModel>(this);
+     m_sortModel->setSourceModel(model.get());
+     m_sortModel->setSortRole(TimelineItemModel::SortRole);
+     m_sortModel->sort(0, Qt::DescendingOrder);
+-
+     m_proxy->setModel(model);
+     rootContext()->setContextProperty("multitrack", m_sortModel.get());
+     rootContext()->setContextProperty("controller", model.get());
+-- 
+cgit v1.1
diff --git a/kde-apps/kdenlive/kdenlive-19.12.1-r1.ebuild b/kde-apps/kdenlive/kdenlive-19.12.1-r1.ebuild
new file mode 100644 (file)
index 0000000..831ba8d
--- /dev/null
@@ -0,0 +1,89 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+ECM_HANDBOOK="optional"
+ECM_TEST="true"
+KFMIN=5.63.0
+QTMIN=5.12.3
+VIRTUALX_REQUIRED="test"
+inherit ecm kde.org
+
+DESCRIPTION="Non-linear video editing suite by KDE"
+HOMEPAGE="https://kdenlive.org/en/"
+
+LICENSE="GPL-2"
+SLOT="5"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="freesound gles2 semantic-desktop share v4l"
+
+BDEPEND="
+       sys-devel/gettext
+"
+DEPEND="
+       dev-cpp/rttr
+       >=dev-qt/qtconcurrent-${QTMIN}:5
+       >=dev-qt/qtdbus-${QTMIN}:5
+       >=dev-qt/qtdeclarative-${QTMIN}:5
+       >=dev-qt/qtgui-${QTMIN}:5[gles2=]
+       >=dev-qt/qtmultimedia-${QTMIN}:5
+       >=dev-qt/qtnetwork-${QTMIN}:5
+       >=dev-qt/qtsvg-${QTMIN}:5
+       >=dev-qt/qtwidgets-${QTMIN}:5
+       >=dev-qt/qtxml-${QTMIN}:5
+       >=kde-frameworks/karchive-${KFMIN}:5
+       >=kde-frameworks/kbookmarks-${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/kdeclarative-${KFMIN}:5
+       >=kde-frameworks/kguiaddons-${KFMIN}:5
+       >=kde-frameworks/ki18n-${KFMIN}:5
+       >=kde-frameworks/kiconthemes-${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/knotifyconfig-${KFMIN}:5
+       >=kde-frameworks/kservice-${KFMIN}:5
+       >=kde-frameworks/ktextwidgets-${KFMIN}:5
+       >=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+       >=kde-frameworks/kxmlgui-${KFMIN}:5
+       >=kde-frameworks/solid-${KFMIN}:5
+       >=media-libs/mlt-6.18.0[ffmpeg,frei0r,kdenlive,melt,qt5,sdl,xml]
+       freesound? ( >=dev-qt/qtwebkit-5.212.0_pre20180120:5 )
+       semantic-desktop? ( >=kde-frameworks/kfilemetadata-${KFMIN}:5 )
+       share? ( >=kde-frameworks/purpose-${KFMIN}:5 )
+       v4l? ( media-libs/libv4l )
+"
+RDEPEND="${DEPEND}
+       >=dev-qt/qtquickcontrols-${QTMIN}:5
+       virtual/ffmpeg[encode,sdl,X]
+"
+
+PATCHES=( "${FILESDIR}"/${P}-qt-5.14-new-project-crash.patch ) # bug #703524
+
+src_configure() {
+       local mycmakeargs=(
+               $(cmake_use_find_package freesound Qt5WebKitWidgets)
+               $(cmake_use_find_package semantic-desktop KF5FileMetaData)
+               $(cmake_use_find_package share KF5Purpose)
+               $(cmake_use_find_package v4l LibV4L2)
+       )
+
+       ecm_src_configure
+}
+
+pkg_postinst() {
+       ecm_pkg_postinst
+
+       # Gentoo bug 603168
+       if ! has_version "media-libs/mlt[fftw]" ; then
+               elog "For 'Crop and Transform/Rotate and Shear' effect, please build media-libs/mlt with USE=fftw enabled."
+       fi
+}