Gentoo Archives: gentoo-commits

From: Andreas Sturmlechner <asturm@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: kde-apps/kdenlive/files/, kde-apps/kdenlive/
Date: Mon, 26 Oct 2020 17:12:15
Message-Id: 1603732320.70d1deeebe8d3d262693f60203068845a0083728.asturm@gentoo
1 commit: 70d1deeebe8d3d262693f60203068845a0083728
2 Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
3 AuthorDate: Mon Oct 26 16:59:47 2020 +0000
4 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
5 CommitDate: Mon Oct 26 17:12:00 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=70d1deee
7
8 kde-apps/kdenlive: Port to dev-qt/qtwebengine
9
10 Package-Manager: Portage-3.0.8, Repoman-3.0.2
11 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
12
13 .../files/kdenlive-20.08.3-webengine.patch | 213 +++++++++++++++++++++
14 kde-apps/kdenlive/kdenlive-20.08.2-r1.ebuild | 92 +++++++++
15 kde-apps/kdenlive/metadata.xml | 1 +
16 3 files changed, 306 insertions(+)
17
18 diff --git a/kde-apps/kdenlive/files/kdenlive-20.08.3-webengine.patch b/kde-apps/kdenlive/files/kdenlive-20.08.3-webengine.patch
19 new file mode 100644
20 index 00000000000..0ffff1b4a38
21 --- /dev/null
22 +++ b/kde-apps/kdenlive/files/kdenlive-20.08.3-webengine.patch
23 @@ -0,0 +1,213 @@
24 +From 51feccf3cc0939d42c3ff237eb17f9a6091f1dd8 Mon Sep 17 00:00:00 2001
25 +From: Andreas Sturmlechner <asturm@g.o>
26 +Date: Fri, 23 Oct 2020 15:32:39 +0200
27 +Subject: [PATCH] Port to QtWebEngineWidgets
28 +
29 +Fixes https://invent.kde.org/multimedia/kdenlive/-/issues/775
30 +
31 +Signed-off-by: Andreas Sturmlechner <asturm@g.o>
32 +---
33 + CMakeLists.txt | 2 +-
34 + src/CMakeLists.txt | 12 ++++++------
35 + src/qt-oauth-lib/logindialog.cpp | 4 ++--
36 + src/qt-oauth-lib/logindialog.h | 3 +--
37 + src/qt-oauth-lib/oauth2.h | 4 ++--
38 + src/ui/logindialog_ui.ui | 6 +++---
39 + src/utils/resourcewidget.cpp | 14 +++++++-------
40 + 7 files changed, 22 insertions(+), 23 deletions(-)
41 +
42 +diff --git a/CMakeLists.txt b/CMakeLists.txt
43 +index d434f1e31..a3f838433 100644
44 +--- a/CMakeLists.txt
45 ++++ b/CMakeLists.txt
46 +@@ -71,7 +71,7 @@ if(WIN32)
47 + set(MLT_PREFIX "..")
48 + else()
49 + set(MLT_PREFIX ${MLT_ROOT_DIR})
50 +- find_package(Qt5 OPTIONAL_COMPONENTS WebKitWidgets QUIET)
51 ++ find_package(Qt5 OPTIONAL_COMPONENTS WebEngineWidgets QUIET)
52 + endif()
53 +
54 + if(KF5FileMetaData_FOUND)
55 +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
56 +index 551178133..8356d4e47 100644
57 +--- a/src/CMakeLists.txt
58 ++++ b/src/CMakeLists.txt
59 +@@ -65,7 +65,7 @@ add_subdirectory(transitions)
60 + add_subdirectory(utils)
61 + add_subdirectory(widgets)
62 + add_subdirectory(xml)
63 +-if(Qt5WebKitWidgets_FOUND)
64 ++if(Qt5WebEngineWidgets_FOUND)
65 + add_subdirectory(qt-oauth-lib)
66 + endif()
67 + ## top_SRCS
68 +@@ -178,12 +178,12 @@ if(KF5_PURPOSE)
69 + target_link_libraries(kdenliveLib KF5::Purpose KF5::PurposeWidgets)
70 + endif()
71 +
72 +-if(Qt5WebKitWidgets_FOUND)
73 +- message(STATUS "Found Qt5 WebKitWidgets. You can use your Freesound.org credentials to download files")
74 +- target_compile_definitions(kdenliveLib PRIVATE -DQT5_USE_WEBKIT)
75 +- target_link_libraries(kdenliveLib Qt5::WebKitWidgets)
76 ++if(Qt5WebEngineWidgets_FOUND)
77 ++ message(STATUS "Found Qt5 WebEngineWidgets. You can use your Freesound.org credentials to download files")
78 ++ target_compile_definitions(kdenliveLib PRIVATE -DQT5_USE_WEBENGINE)
79 ++ target_link_libraries(kdenliveLib Qt5::WebEngineWidgets)
80 + else()
81 +- message(STATUS "Qt5 WebKitWidgets not found. You cannot use your Freesound.org credentials, only preview files can be downloaded from the Online Resources Widget")
82 ++ message(STATUS "Qt5 WebEngineWidgets not found. You cannot use your Freesound.org credentials, only preview files can be downloaded from the Online Resources Widget")
83 + endif()
84 +
85 + if(Q_WS_X11)
86 +diff --git a/src/qt-oauth-lib/logindialog.cpp b/src/qt-oauth-lib/logindialog.cpp
87 +index a41aa420b..111978831 100644
88 +--- a/src/qt-oauth-lib/logindialog.cpp
89 ++++ b/src/qt-oauth-lib/logindialog.cpp
90 +@@ -38,7 +38,7 @@
91 + #include "ui_logindialog_ui.h"
92 +
93 + #include "kdenlive_debug.h"
94 +-#include <QWebView>
95 ++#include <QWebEngineView>
96 +
97 + LoginDialog::LoginDialog(QWidget *parent)
98 + : QDialog(parent)
99 +@@ -54,7 +54,7 @@ LoginDialog::LoginDialog(QWidget *parent)
100 + i18n("Enter your freesound account details to download the highest quality version of this file. Or use the High Quality "
101 + "preview file instead (no freesound account required)."));
102 + // m_ui->textBrowser
103 +- connect(m_ui->webView, &QWebView::urlChanged, this, &LoginDialog::urlChanged);
104 ++ connect(m_ui->webView, &QWebEngineView::urlChanged, this, &LoginDialog::urlChanged);
105 + }
106 +
107 + LoginDialog::~LoginDialog()
108 +diff --git a/src/qt-oauth-lib/logindialog.h b/src/qt-oauth-lib/logindialog.h
109 +index 963b38ec5..c34383bf2 100644
110 +--- a/src/qt-oauth-lib/logindialog.h
111 ++++ b/src/qt-oauth-lib/logindialog.h
112 +@@ -47,11 +47,10 @@ class LoginDialog;
113 +
114 + /**
115 + \brief This is the dialog that is used to login to freesound
116 +- \details It contains a QWebView object to display the freesound web page. I did try using a QTextBrowser
117 ++ \details It contains a QWebEngineView object to display the freesound web page. I did try using a QTextBrowser
118 + for this purpose but it responds to the URL that is used to connect with
119 + "No document for
120 + https://www.freesound.org/apiv2/oauth2/authorize/?client_id=3duhagdr874c&redirect_uri=https://www.freesound.org/home/app_permissions/permission_granted/&response_type=code"
121 +- The use of QWebView adds a dependency on the KF5WebKit to kdenlive. Need install libkf5webkit5-dev package on ubuntu
122 + */
123 + class LoginDialog : public QDialog
124 + {
125 +diff --git a/src/qt-oauth-lib/oauth2.h b/src/qt-oauth-lib/oauth2.h
126 +index f28724455..03993a214 100644
127 +--- a/src/qt-oauth-lib/oauth2.h
128 ++++ b/src/qt-oauth-lib/oauth2.h
129 +@@ -45,7 +45,7 @@
130 + const QLatin1String OAuth2_strClientSecret("441d88374716e7a3503997151e4780566f007313"); // obtained when ttguy registered the kdenlive application with freesound
131 + #endif
132 +
133 +-#ifdef QT5_USE_WEBKIT
134 ++#ifdef QT5_USE_WEBENGINE
135 +
136 + class LoginDialog;
137 +
138 +@@ -135,6 +135,6 @@ private:
139 + void buildLoginDialog();
140 + };
141 +
142 +-#endif // QT5_USE_WEBKIT
143 ++#endif // QT5_USE_WEBENGINE
144 +
145 + #endif // OAUTH2_H
146 +diff --git a/src/ui/logindialog_ui.ui b/src/ui/logindialog_ui.ui
147 +index 20827d686..e98a68ed2 100644
148 +--- a/src/ui/logindialog_ui.ui
149 ++++ b/src/ui/logindialog_ui.ui
150 +@@ -15,7 +15,7 @@
151 + </property>
152 + <layout class="QGridLayout" name="gridLayout">
153 + <item row="1" column="0">
154 +- <widget class="QWebView" name="webView">
155 ++ <widget class="QWebEngineView" name="webView">
156 + <property name="url">
157 + <url>
158 + <string>about:blank</string>
159 +@@ -51,9 +51,9 @@
160 + </widget>
161 + <customwidgets>
162 + <customwidget>
163 +- <class>QWebView</class>
164 ++ <class>QWebEngineView</class>
165 + <extends>QWidget</extends>
166 +- <header>QtWebKitWidgets/QWebView</header>
167 ++ <header>QtWebEngineWidgets/QWebEngineView</header>
168 + </customwidget>
169 + </customwidgets>
170 + <resources/>
171 +diff --git a/src/utils/resourcewidget.cpp b/src/utils/resourcewidget.cpp
172 +index 79bb48898..d0eaa225b 100644
173 +--- a/src/utils/resourcewidget.cpp
174 ++++ b/src/utils/resourcewidget.cpp
175 +@@ -49,7 +49,7 @@
176 + #include <QPixmap>
177 + #include <klocalizedstring.h>
178 +
179 +-#ifdef QT5_USE_WEBKIT
180 ++#ifdef QT5_USE_WEBENGINE
181 + #include "qt-oauth-lib/oauth2.h"
182 + #endif
183 +
184 +@@ -103,7 +103,7 @@ ResourceWidget::ResourceWidget(QString folder, QWidget *parent)
185 + search_text->setFocus();
186 + connect(search_text, SIGNAL(returnPressed()), this, SLOT(slotStartSearch()));
187 +
188 +-#ifdef QT5_USE_WEBKIT
189 ++#ifdef QT5_USE_WEBENGINE
190 + m_pOAuth2 = new OAuth2(this);
191 + connect(m_pOAuth2, &OAuth2::accessTokenReceived, this, &ResourceWidget::slotAccessTokenReceived);
192 + connect(m_pOAuth2, &OAuth2::accessDenied, this, &ResourceWidget::slotFreesoundAccessDenied);
193 +@@ -375,7 +375,7 @@ void ResourceWidget::slotSaveItem(const QString &originalUrl)
194 + path.append(m_currentService->getDefaultDownloadName(item));
195 +
196 + if (m_currentService->serviceType == AbstractService::FREESOUND) {
197 +-#ifdef QT5_USE_WEBKIT
198 ++#ifdef QT5_USE_WEBENGINE
199 + sFileExt = m_currentService->getExtension(search_results->currentItem());
200 + #else
201 + sFileExt = QStringLiteral("*.") + m_currentInfo.HQpreview.section(QLatin1Char('.'), -1);
202 +@@ -402,7 +402,7 @@ void ResourceWidget::slotSaveItem(const QString &originalUrl)
203 + }
204 + slotSetDescription(QString());
205 + button_import->setEnabled(false); // disable buttons while download runs. enabled in slotGotFile
206 +-#ifdef QT5_USE_WEBKIT
207 ++#ifdef QT5_USE_WEBENGINE
208 + if (m_currentService->serviceType == AbstractService::FREESOUND) { // open a dialog to authenticate with free sound and download the file
209 + m_pOAuth2->obtainAccessToken(); // when job finished ResourceWidget::slotAccessTokenReceived will be called
210 + } else { // not freesound - do file download via a KIO file copy job
211 +@@ -841,7 +841,7 @@ void ResourceWidget::DownloadRequestFinished(QNetworkReply *reply)
212 + m_desc.append(m_saveLocation);
213 + updateLayout();
214 + } else {
215 +-#ifdef QT5_USE_WEBKIT
216 ++#ifdef QT5_USE_WEBENGINE
217 + m_pOAuth2->ForgetAccessToken();
218 + #endif
219 + m_desc.append(QStringLiteral("<br>") + i18n("Error Saving File"));
220 +@@ -850,11 +850,11 @@ void ResourceWidget::DownloadRequestFinished(QNetworkReply *reply)
221 + } else {
222 +
223 + if (reply->error() == QNetworkReply::AuthenticationRequiredError) {
224 +-#ifdef QT5_USE_WEBKIT
225 ++#ifdef QT5_USE_WEBENGINE
226 + m_pOAuth2->obtainNewAccessToken();
227 + #endif
228 + } else {
229 +-#ifdef QT5_USE_WEBKIT
230 ++#ifdef QT5_USE_WEBENGINE
231 + m_pOAuth2->ForgetAccessToken();
232 + #endif
233 + m_desc.append(QStringLiteral("<br>") + i18n("Error Downloading File. Error code: %1", reply->error()) + QStringLiteral("<br>"));
234 +--
235 +2.29.1
236 +
237
238 diff --git a/kde-apps/kdenlive/kdenlive-20.08.2-r1.ebuild b/kde-apps/kdenlive/kdenlive-20.08.2-r1.ebuild
239 new file mode 100644
240 index 00000000000..02a490772ed
241 --- /dev/null
242 +++ b/kde-apps/kdenlive/kdenlive-20.08.2-r1.ebuild
243 @@ -0,0 +1,92 @@
244 +# Copyright 1999-2020 Gentoo Authors
245 +# Distributed under the terms of the GNU General Public License v2
246 +
247 +EAPI=7
248 +
249 +ECM_HANDBOOK="optional"
250 +ECM_TEST="true"
251 +KFMIN=5.74.0
252 +QTMIN=5.15.1
253 +VIRTUALX_REQUIRED="test"
254 +inherit ecm kde.org
255 +
256 +DESCRIPTION="Non-linear video editing suite by KDE"
257 +HOMEPAGE="https://kdenlive.org/en/"
258 +
259 +LICENSE="GPL-2"
260 +SLOT="5"
261 +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
262 +IUSE="gles2-only semantic-desktop share v4l webengine"
263 +
264 +BDEPEND="
265 + sys-devel/gettext
266 +"
267 +DEPEND="
268 + dev-cpp/rttr
269 + >=dev-qt/qtconcurrent-${QTMIN}:5
270 + >=dev-qt/qtdbus-${QTMIN}:5
271 + >=dev-qt/qtdeclarative-${QTMIN}:5
272 + >=dev-qt/qtgui-${QTMIN}:5[gles2-only=]
273 + >=dev-qt/qtmultimedia-${QTMIN}:5
274 + >=dev-qt/qtnetwork-${QTMIN}:5
275 + >=dev-qt/qtquickcontrols2-${QTMIN}:5
276 + >=dev-qt/qtsvg-${QTMIN}:5
277 + >=dev-qt/qtwidgets-${QTMIN}:5
278 + >=dev-qt/qtxml-${QTMIN}:5
279 + >=kde-frameworks/karchive-${KFMIN}:5
280 + >=kde-frameworks/kbookmarks-${KFMIN}:5
281 + >=kde-frameworks/kcompletion-${KFMIN}:5
282 + >=kde-frameworks/kconfig-${KFMIN}:5
283 + >=kde-frameworks/kconfigwidgets-${KFMIN}:5
284 + >=kde-frameworks/kcoreaddons-${KFMIN}:5
285 + >=kde-frameworks/kcrash-${KFMIN}:5
286 + >=kde-frameworks/kdbusaddons-${KFMIN}:5
287 + >=kde-frameworks/kdeclarative-${KFMIN}:5
288 + >=kde-frameworks/kguiaddons-${KFMIN}:5
289 + >=kde-frameworks/ki18n-${KFMIN}:5
290 + >=kde-frameworks/kiconthemes-${KFMIN}:5
291 + >=kde-frameworks/kio-${KFMIN}:5
292 + >=kde-frameworks/kitemviews-${KFMIN}:5
293 + >=kde-frameworks/kjobwidgets-${KFMIN}:5
294 + >=kde-frameworks/knewstuff-${KFMIN}:5
295 + >=kde-frameworks/knotifications-${KFMIN}:5
296 + >=kde-frameworks/knotifyconfig-${KFMIN}:5
297 + >=kde-frameworks/kservice-${KFMIN}:5
298 + >=kde-frameworks/ktextwidgets-${KFMIN}:5
299 + >=kde-frameworks/kwidgetsaddons-${KFMIN}:5
300 + >=kde-frameworks/kxmlgui-${KFMIN}:5
301 + >=kde-frameworks/solid-${KFMIN}:5
302 + >=media-libs/mlt-6.20.0[ffmpeg,frei0r,kdenlive,melt,qt5,sdl,xml]
303 + semantic-desktop? ( >=kde-frameworks/kfilemetadata-${KFMIN}:5 )
304 + share? ( >=kde-frameworks/purpose-${KFMIN}:5 )
305 + v4l? ( media-libs/libv4l )
306 + webengine? ( >=dev-qt/qtwebengine-${QTMIN}:5 )
307 +"
308 +RDEPEND="${DEPEND}
309 + >=dev-qt/qtquickcontrols-${QTMIN}:5
310 + media-video/ffmpeg[encode,sdl,X]
311 +"
312 +
313 +RESTRICT+=" test" # segfaults, bug 684132
314 +
315 +PATCHES=( "${FILESDIR}/${PN}-20.08.3-webengine.patch" ) # pending upstream
316 +
317 +src_configure() {
318 + local mycmakeargs=(
319 + $(cmake_use_find_package semantic-desktop KF5FileMetaData)
320 + $(cmake_use_find_package share KF5Purpose)
321 + $(cmake_use_find_package v4l LibV4L2)
322 + $(cmake_use_find_package webengine Qt5WebEngineWidgets)
323 + )
324 +
325 + ecm_src_configure
326 +}
327 +
328 +pkg_postinst() {
329 + ecm_pkg_postinst
330 +
331 + # Gentoo bug 603168
332 + if ! has_version "media-libs/mlt[fftw]" ; then
333 + elog "For 'Crop and Transform/Rotate and Shear' effect, please build media-libs/mlt with USE=fftw enabled."
334 + fi
335 +}
336
337 diff --git a/kde-apps/kdenlive/metadata.xml b/kde-apps/kdenlive/metadata.xml
338 index 350073ec742..c8d8c36fc39 100644
339 --- a/kde-apps/kdenlive/metadata.xml
340 +++ b/kde-apps/kdenlive/metadata.xml
341 @@ -8,5 +8,6 @@
342 <use>
343 <flag name="freesound">Enable freesound.org credentials support via <pkg>dev-qt/qtwebkit</pkg> to download files</flag>
344 <flag name="share">Enable support for a share menu using <pkg>kde-frameworks/purpose</pkg></flag>
345 + <flag name="webengine">Enable freesound.org credentials support via <pkg>dev-qt/qtwebengine</pkg> to download files</flag>
346 </use>
347 </pkgmetadata>