diff --git a/files/fix-build-with-qt5.12.patch b/files/fix-build-with-qt5.12.patch new file mode 100644 --- /dev/null +++ b/files/fix-build-with-qt5.12.patch @@ -0,0 +1,23 @@ +From 129588442041c32b0d98f2361a69e0e350592f70 Mon Sep 17 00:00:00 2001 +From: Oskar Kruschitz +Date: Thu, 13 Dec 2018 16:13:01 +0100 +Subject: [PATCH] Added missing Include + +Fixing an error during Build with Qt5.12: +error: member access into incomplete type 'const QWebEngineCertificateError' +--- + src/gui/wizard/webview.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/gui/wizard/webview.cpp b/src/gui/wizard/webview.cpp +index 15c1f314e..73e671b8f 100644 +--- a/src/gui/wizard/webview.cpp ++++ b/src/gui/wizard/webview.cpp +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + + #include "common/utility.h" + diff --git a/files/fix-login-crash.patch b/files/fix-login-crash.patch new file mode 100644 --- /dev/null +++ b/files/fix-login-crash.patch @@ -0,0 +1,85 @@ +From 09b0055dc3fe8ffae64dae7af9f522ed12ebdea8 Mon Sep 17 00:00:00 2001 +From: Chih-Hsuan Yen +Date: Wed, 19 Dec 2018 21:44:54 +0800 +Subject: [PATCH] Make sure _profile and _page are deleted in the correct order + +Inspired by https://github.com/electron/electron/pull/15028 + +Closes https://github.com/nextcloud/desktop/issues/941 +Closes https://github.com/nextcloud/desktop/issues/950 +--- + src/gui/creds/webflowcredentialsdialog.cpp | 8 ++++++++ + src/gui/creds/webflowcredentialsdialog.h | 3 +++ + src/gui/wizard/webview.cpp | 13 +++++++++++++ + src/gui/wizard/webview.h | 1 + + 4 files changed, 25 insertions(+) + +diff --git a/src/gui/creds/webflowcredentialsdialog.cpp b/src/gui/creds/webflowcredentialsdialog.cpp +index 85dd87451..2d22ba06e 100644 +--- a/src/gui/creds/webflowcredentialsdialog.cpp ++++ b/src/gui/creds/webflowcredentialsdialog.cpp +@@ -29,6 +29,14 @@ WebFlowCredentialsDialog::WebFlowCredentialsDialog(QWidget *parent) + connect(_webView, &WebView::urlCatched, this, &WebFlowCredentialsDialog::urlCatched); + } + ++void WebFlowCredentialsDialog::closeEvent(QCloseEvent* e) { ++ Q_UNUSED(e); ++ ++ // Force calling WebView::~WebView() earlier so that _profile and _page are ++ // deleted in the correct order. ++ delete _webView; ++} ++ + void WebFlowCredentialsDialog::setUrl(const QUrl &url) { + _webView->setUrl(url); + } +diff --git a/src/gui/creds/webflowcredentialsdialog.h b/src/gui/creds/webflowcredentialsdialog.h +index 84ed4ea12..9849ee3a4 100644 +--- a/src/gui/creds/webflowcredentialsdialog.h ++++ b/src/gui/creds/webflowcredentialsdialog.h +@@ -21,6 +21,9 @@ class WebFlowCredentialsDialog : public QDialog + void setInfo(const QString &msg); + void setError(const QString &error); + ++protected: ++ void closeEvent(QCloseEvent * e) override; ++ + signals: + void urlCatched(const QString user, const QString pass, const QString host); + +diff --git a/src/gui/wizard/webview.cpp b/src/gui/wizard/webview.cpp +index 1c6a74363..929b61205 100644 +--- a/src/gui/wizard/webview.cpp ++++ b/src/gui/wizard/webview.cpp +@@ -105,6 +105,19 @@ void WebView::setUrl(const QUrl &url) { + _page->setUrl(url); + } + ++WebView::~WebView() { ++ /* ++ * The Qt implmentation deletes children in the order they are added to the ++ * object tree, so in this case _page is deleted after _profile, which ++ * violates the assumption that _profile should exist longer than ++ * _page [1]. Here I delete _page manually so that _profile can be safely ++ * deleted later. ++ * ++ * [1] https://doc.qt.io/qt-5/qwebenginepage.html#QWebEnginePage-1 ++ */ ++ delete _page; ++} ++ + WebViewPageUrlRequestInterceptor::WebViewPageUrlRequestInterceptor(QObject *parent) + : QWebEngineUrlRequestInterceptor(parent) { + +diff --git a/src/gui/wizard/webview.h b/src/gui/wizard/webview.h +index e0b93ec84..93baf6b59 100644 +--- a/src/gui/wizard/webview.h ++++ b/src/gui/wizard/webview.h +@@ -21,6 +21,7 @@ class WebView : public QWidget + Q_OBJECT + public: + WebView(QWidget *parent = nullptr); ++ virtual ~WebView(); + void setUrl(const QUrl &url); + + signals: diff --git a/package.yml b/package.yml --- a/package.yml +++ b/package.yml @@ -1,6 +1,6 @@ name : nextcloud-client version : 2.5.1 -release : 7 +release : 8 source : - https://github.com/nextcloud/desktop/archive/v2.5.1.tar.gz : 48be2556f4fddb956ad31e954be5f9c73482e936a80ec0efaeb30549dcd81f19 license : GPL-2.0-or-later @@ -35,6 +35,8 @@ setup : | # No, you don't require 1.1 Nextcloud, don't lie to me. sed -i 's:OpenSSL 1.1:OpenSSL 1.0:g' CMakeLists.txt + %patch -p1 < $pkgfiles/fix-build-with-qt5.12.patch + %patch -p1 < $pkgfiles/fix-login-crash.patch %cmake_ninja -DUNIT_TESTING=true -DBUILD_SHELL_INTEGRATION_DOLPHIN=true build : | %ninja_build diff --git a/pspec_x86_64.xml b/pspec_x86_64.xml --- a/pspec_x86_64.xml +++ b/pspec_x86_64.xml @@ -2,8 +2,8 @@ nextcloud-client - Maxime Auvy - maxime.auvy@gmail.com + Justin Berthault + justin.berthault@zaclys.net GPL-2.0-or-later network.download @@ -147,7 +147,7 @@ Nextcloud client enables you to connect to your private Nextcloud Server. With it you can create directories in your home directory, and keep the contents of those directories synced with the server. Simply copy a file into the directory and the desktop synchronisation client does the rest. programming.devel - nextcloud-client + nextcloud-client /usr/include/nextcloudsync/creds/abstractcredentials.h @@ -167,7 +167,7 @@ Dolphin file manager integration for the Nextcloud client. network.download - nextcloud-client + nextcloud-client /usr/lib64/libnextclouddolphinpluginhelper.so @@ -177,12 +177,12 @@ - - 2019-02-11 + + 2019-02-26 2.5.1 Packaging update - Maxime Auvy - maxime.auvy@gmail.com + Justin Berthault + justin.berthault@zaclys.net \ No newline at end of file