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> |