diff options
author | Bernard Cafarelli <voyageur@gentoo.org> | 2021-07-07 21:16:04 +0200 |
---|---|---|
committer | Bernard Cafarelli <voyageur@gentoo.org> | 2021-07-07 21:16:17 +0200 |
commit | 9e05aaacaa41045d2f7b08efe61899a0087e699b (patch) | |
tree | 44f6fb53abc1254bba1c6e002fae927d7991f2f3 /net-misc/nextcloud-client/files | |
parent | dev-lang/ruby: add 2.6.8, 2.7.4, 3.0.2 (diff) | |
download | gentoo-9e05aaacaa41045d2f7b08efe61899a0087e699b.tar.gz gentoo-9e05aaacaa41045d2f7b08efe61899a0087e699b.tar.bz2 gentoo-9e05aaacaa41045d2f7b08efe61899a0087e699b.zip |
net-misc/nextcloud-client: make qtwebengine optional
This large dependency is not needed for most current authentications
Also updated many build options (doc, dolphin and nautilus integration)
Closes: https://bugs.gentoo.org/800863
Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Bernard Cafarelli <voyageur@gentoo.org>
Diffstat (limited to 'net-misc/nextcloud-client/files')
-rw-r--r-- | net-misc/nextcloud-client/files/nextcloud-client-3.2.3-webengine.patch | 419 |
1 files changed, 419 insertions, 0 deletions
diff --git a/net-misc/nextcloud-client/files/nextcloud-client-3.2.3-webengine.patch b/net-misc/nextcloud-client/files/nextcloud-client-3.2.3-webengine.patch new file mode 100644 index 000000000000..8152528f30cb --- /dev/null +++ b/net-misc/nextcloud-client/files/nextcloud-client-3.2.3-webengine.patch @@ -0,0 +1,419 @@ +diff -Naur desktop-3.2.3.orig/src/CMakeLists.txt desktop-3.2.3/src/CMakeLists.txt +--- desktop-3.2.3.orig/src/CMakeLists.txt 2021-06-24 12:04:33.000000000 +0200 ++++ desktop-3.2.3/src/CMakeLists.txt 2021-07-07 20:26:40.620839467 +0200 +@@ -4,7 +4,13 @@ + + set(synclib_NAME ${APPLICATION_EXECUTABLE}sync) + +-find_package(Qt5 5.12 COMPONENTS Core Network Xml Concurrent WebEngineWidgets WebEngine REQUIRED) ++find_package(Qt5 5.12 COMPONENTS Core Network Xml Concurrent REQUIRED) ++find_package(Qt5 5.12 COMPONENTS WebEngineWidgets WebEngine) ++ ++if(Qt5WebEngine_FOUND AND Qt5WebEngineWidgets_FOUND) ++ add_compile_definitions(WITH_WEBENGINE=1) ++endif() ++ + get_target_property (QT_QMAKE_EXECUTABLE Qt5::qmake IMPORTED_LOCATION) + message(STATUS "Using Qt ${Qt5Core_VERSION} (${QT_QMAKE_EXECUTABLE})") + +diff -Naur desktop-3.2.3.orig/src/gui/CMakeLists.txt desktop-3.2.3/src/gui/CMakeLists.txt +--- desktop-3.2.3.orig/src/gui/CMakeLists.txt 2021-06-24 12:04:33.000000000 +0200 ++++ desktop-3.2.3/src/gui/CMakeLists.txt 2021-07-07 20:26:40.620839467 +0200 +@@ -128,12 +128,17 @@ + wizard/owncloudwizardcommon.cpp + wizard/owncloudwizard.cpp + wizard/owncloudwizardresultpage.cpp +- wizard/webviewpage.cpp +- wizard/webview.cpp + wizard/slideshow.cpp + wizard/welcomepage.cpp + wizard/linklabel.cpp +-) ++ ) ++ ++if (Qt5WebEngine_FOUND AND Qt5WebEngineWidgets_FOUND) ++ list(APPEND client_SRCS ++ wizard/webviewpage.cpp ++ wizard/webview.cpp ++ ) ++endif() + + IF(BUILD_UPDATER) + set(updater_SRCS +@@ -339,9 +344,12 @@ + Qt5::Qml + Qt5::Quick + Qt5::QuickControls2 +- Qt5::WebEngineWidgets + ${synclib_NAME} +-) ++ ) ++ ++if(Qt5WebEngine_FOUND AND Qt5WebEngineWidgets_FOUND) ++ target_link_libraries(nextcloudCore PUBLIC Qt5::WebEngineWidgets) ++endif() + + set_target_properties(nextcloudCore + PROPERTIES +diff -Naur desktop-3.2.3.orig/src/gui/creds/webflowcredentials.cpp desktop-3.2.3/src/gui/creds/webflowcredentials.cpp +--- desktop-3.2.3.orig/src/gui/creds/webflowcredentials.cpp 2021-06-24 12:04:33.000000000 +0200 ++++ desktop-3.2.3/src/gui/creds/webflowcredentials.cpp 2021-07-07 20:26:40.618839464 +0200 +@@ -16,7 +16,9 @@ + #include "account.h" + #include "configfile.h" + #include "theme.h" ++#ifdef WITH_WEBENGINE + #include "wizard/webview.h" ++#endif // WITH_WEBENGINE + #include "webflowcredentialsdialog.h" + + using namespace QKeychain; +@@ -144,8 +146,12 @@ + // Do a DetermineAuthTypeJob to make sure that the server is still using Flow2 + auto job = new DetermineAuthTypeJob(_account->sharedFromThis(), this); + connect(job, &DetermineAuthTypeJob::authType, [this](DetermineAuthTypeJob::AuthType type) { +- // LoginFlowV2 > WebViewFlow > OAuth > Shib > Basic ++ // LoginFlowV2 > WebViewFlow > OAuth > Shib > Basic ++#ifdef WITH_WEBENGINE + bool useFlow2 = (type != DetermineAuthTypeJob::WebViewFlow); ++#else // WITH_WEBENGINE ++ bool useFlow2 = true; ++#endif // WITH_WEBENGINE + + _askDialog = new WebFlowCredentialsDialog(_account, useFlow2); + +diff -Naur desktop-3.2.3.orig/src/gui/creds/webflowcredentialsdialog.cpp desktop-3.2.3/src/gui/creds/webflowcredentialsdialog.cpp +--- desktop-3.2.3.orig/src/gui/creds/webflowcredentialsdialog.cpp 2021-06-24 12:04:33.000000000 +0200 ++++ desktop-3.2.3/src/gui/creds/webflowcredentialsdialog.cpp 2021-07-07 20:26:40.618839464 +0200 +@@ -8,16 +8,20 @@ + #include "owncloudgui.h" + #include "headerbanner.h" + #include "wizard/owncloudwizardcommon.h" ++#ifdef WITH_WEBENGINE + #include "wizard/webview.h" ++#endif // WITH_WEBENGINE + #include "wizard/flow2authwidget.h" + + namespace OCC { + + WebFlowCredentialsDialog::WebFlowCredentialsDialog(Account *account, bool useFlow2, QWidget *parent) +- : QDialog(parent), +- _useFlow2(useFlow2), +- _flow2AuthWidget(nullptr), +- _webView(nullptr) ++ : QDialog(parent) ++ , _useFlow2(useFlow2) ++ , _flow2AuthWidget(nullptr) ++#ifdef WITH_WEBENGINE ++ , _webView(nullptr) ++#endif // WITH_WEBENGINE + { + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); + +@@ -49,10 +53,12 @@ + + _flow2AuthWidget->startAuth(account); + } else { ++#ifdef WITH_WEBENGINE + _webView = new WebView(); + _containerLayout->addWidget(_webView); + + connect(_webView, &WebView::urlCatched, this, &WebFlowCredentialsDialog::urlCatched); ++#endif // WITH_WEBENGINE + } + + auto app = static_cast<Application *>(qApp); +@@ -73,12 +79,14 @@ + void WebFlowCredentialsDialog::closeEvent(QCloseEvent* e) { + Q_UNUSED(e) + ++#ifdef WITH_WEBENGINE + if (_webView) { + // Force calling WebView::~WebView() earlier so that _profile and _page are + // deleted in the correct order. + _webView->deleteLater(); + _webView = nullptr; + } ++#endif // WITH_WEBENGINE + + if (_flow2AuthWidget) { + _flow2AuthWidget->resetAuth(); +@@ -89,9 +97,14 @@ + emit onClose(); + } + +-void WebFlowCredentialsDialog::setUrl(const QUrl &url) { ++void WebFlowCredentialsDialog::setUrl(const QUrl &url) ++{ ++#ifdef WITH_WEBENGINE + if (_webView) + _webView->setUrl(url); ++#else // WITH_WEBENGINE ++ Q_UNUSED(url); ++#endif // WITH_WEBENGINE + } + + void WebFlowCredentialsDialog::setInfo(const QString &msg) { +diff -Naur desktop-3.2.3.orig/src/gui/creds/webflowcredentialsdialog.h desktop-3.2.3/src/gui/creds/webflowcredentialsdialog.h +--- desktop-3.2.3.orig/src/gui/creds/webflowcredentialsdialog.h 2021-06-24 12:04:33.000000000 +0200 ++++ desktop-3.2.3/src/gui/creds/webflowcredentialsdialog.h 2021-07-07 20:26:40.618839464 +0200 +@@ -13,7 +13,9 @@ + namespace OCC { + + class HeaderBanner; ++#ifdef WITH_WEBENGINE + class WebView; ++#endif // WITH_WEBENGINE + class Flow2AuthWidget; + + class WebFlowCredentialsDialog : public QDialog +@@ -50,7 +52,9 @@ + bool _useFlow2; + + Flow2AuthWidget *_flow2AuthWidget; ++#ifdef WITH_WEBENGINE + WebView *_webView; ++#endif // WITH_WEBENGINE + + QLabel *_errorLabel; + QLabel *_infoLabel; +diff -Naur desktop-3.2.3.orig/src/gui/wizard/owncloudsetuppage.cpp desktop-3.2.3/src/gui/wizard/owncloudsetuppage.cpp +--- desktop-3.2.3.orig/src/gui/wizard/owncloudsetuppage.cpp 2021-06-24 12:04:33.000000000 +0200 ++++ desktop-3.2.3/src/gui/wizard/owncloudsetuppage.cpp 2021-07-07 20:26:40.619839465 +0200 +@@ -119,21 +119,6 @@ + _ui.leUrl->setPalette(leUrlPalette); + } + +-#ifdef WITH_PROVIDERS +-void OwncloudSetupPage::slotLogin() +-{ +- _ocWizard->setRegistration(false); +-} +-void OwncloudSetupPage::slotGotoProviderList() +-{ +- _ocWizard->setRegistration(true); +- _ocWizard->setAuthType(DetermineAuthTypeJob::AuthType::WebViewFlow); +- _authTypeKnown = true; +- _checking = false; +- emit completeChanged(); +-} +-#endif +- + // slot hit from textChanged of the url entry field. + void OwncloudSetupPage::slotUrlChanged(const QString &url) + { +@@ -228,8 +213,10 @@ + return WizardCommon::Page_OAuthCreds; + case DetermineAuthTypeJob::LoginFlowV2: + return WizardCommon::Page_Flow2AuthCreds; ++#ifdef WITH_WEBENGINE + case DetermineAuthTypeJob::WebViewFlow: + return WizardCommon::Page_WebView; ++#endif // WITH_WEBENGINE + } + return WizardCommon::Page_HttpCreds; + } +diff -Naur desktop-3.2.3.orig/src/gui/wizard/owncloudsetuppage.h desktop-3.2.3/src/gui/wizard/owncloudsetuppage.h +--- desktop-3.2.3.orig/src/gui/wizard/owncloudsetuppage.h 2021-06-24 12:04:33.000000000 +0200 ++++ desktop-3.2.3/src/gui/wizard/owncloudsetuppage.h 2021-07-07 20:26:40.617839462 +0200 +@@ -67,10 +67,6 @@ + protected slots: + void slotUrlChanged(const QString &); + void slotUrlEditFinished(); +-#ifdef WITH_PROVIDERS +- void slotLogin(); +- void slotGotoProviderList(); +-#endif + + void setupCustomization(); + +diff -Naur desktop-3.2.3.orig/src/gui/wizard/owncloudwizardcommon.h desktop-3.2.3/src/gui/wizard/owncloudwizardcommon.h +--- desktop-3.2.3.orig/src/gui/wizard/owncloudwizardcommon.h 2021-06-24 12:04:33.000000000 +0200 ++++ desktop-3.2.3/src/gui/wizard/owncloudwizardcommon.h 2021-07-07 20:26:40.619839465 +0200 +@@ -46,7 +46,9 @@ + Page_HttpCreds, + Page_OAuthCreds, + Page_Flow2AuthCreds, ++#ifdef WITH_WEBENGINE + Page_WebView, ++#endif // WITH_WEBENGINE + Page_AdvancedSetup, + Page_Result + }; +diff -Naur desktop-3.2.3.orig/src/gui/wizard/owncloudwizard.cpp desktop-3.2.3/src/gui/wizard/owncloudwizard.cpp +--- desktop-3.2.3.orig/src/gui/wizard/owncloudwizard.cpp 2021-06-24 12:04:33.000000000 +0200 ++++ desktop-3.2.3/src/gui/wizard/owncloudwizard.cpp 2021-07-07 20:26:40.619839465 +0200 +@@ -54,7 +54,11 @@ + , _flow2CredsPage(new Flow2AuthCredsPage) + , _advancedSetupPage(new OwncloudAdvancedSetupPage(this)) + , _resultPage(new OwncloudWizardResultPage) ++#ifdef WITH_WEBENGINE + , _webViewPage(new WebViewPage(this)) ++#else // WITH_WEBENGINE ++ , _webViewPage(nullptr) ++#endif // WITH_WEBENGINE + { + setObjectName("owncloudWizard"); + +@@ -66,7 +70,9 @@ + setPage(WizardCommon::Page_Flow2AuthCreds, _flow2CredsPage); + setPage(WizardCommon::Page_AdvancedSetup, _advancedSetupPage); + setPage(WizardCommon::Page_Result, _resultPage); ++#ifdef WITH_WEBENGINE + setPage(WizardCommon::Page_WebView, _webViewPage); ++#endif // WITH_WEBENGINE + + connect(this, &QDialog::finished, this, &OwncloudWizard::basicSetupFinished); + +@@ -78,7 +84,9 @@ + connect(_httpCredsPage, &OwncloudHttpCredsPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl); + connect(_browserCredsPage, &OwncloudOAuthCredsPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl); + connect(_flow2CredsPage, &Flow2AuthCredsPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl); ++#ifdef WITH_WEBENGINE + connect(_webViewPage, &WebViewPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl); ++#endif // WITH_WEBENGINE + connect(_advancedSetupPage, &OwncloudAdvancedSetupPage::createLocalAndRemoteFolders, + this, &OwncloudWizard::createLocalAndRemoteFolders); + connect(this, &QWizard::customButtonClicked, this, &OwncloudWizard::skipFolderConfiguration); +@@ -230,9 +238,11 @@ + _flow2CredsPage->setConnected(); + break; + ++#ifdef WITH_WEBENGINE + case WizardCommon::Page_WebView: + _webViewPage->setConnected(); + break; ++#endif // WITH_WEBENGINE + + case WizardCommon::Page_AdvancedSetup: + _advancedSetupPage->directoriesCreated(); +@@ -256,8 +266,10 @@ + _credentialsPage = _browserCredsPage; + } else if (type == DetermineAuthTypeJob::LoginFlowV2) { + _credentialsPage = _flow2CredsPage; ++#ifdef WITH_WEBENGINE + } else if (type == DetermineAuthTypeJob::WebViewFlow) { + _credentialsPage = _webViewPage; ++#endif // WITH_WEBENGINE + } else { // try Basic auth even for "Unknown" + _credentialsPage = _httpCredsPage; + } +@@ -281,7 +293,11 @@ + button(QWizard::NextButton)->setHidden(true); + // Need to set it from here, otherwise it has no effect + _welcomePage->setLoginButtonDefault(); +- } else if (id == WizardCommon::Page_WebView || id == WizardCommon::Page_Flow2AuthCreds) { ++ } else if ( ++#ifdef WITH_WEBENGINE ++ id == WizardCommon::Page_WebView || ++#endif // WITH_WEBENGINE ++ id == WizardCommon::Page_Flow2AuthCreds) { + setButtonLayout({ QWizard::Stretch, QWizard::BackButton }); + } else if (id == WizardCommon::Page_AdvancedSetup) { + setButtonLayout({ QWizard::Stretch, QWizard::CustomButton1, QWizard::BackButton, QWizard::NextButton }); +diff -Naur desktop-3.2.3.orig/src/gui/wizard/owncloudwizard.h desktop-3.2.3/src/gui/wizard/owncloudwizard.h +--- desktop-3.2.3.orig/src/gui/wizard/owncloudwizard.h 2021-06-24 12:04:33.000000000 +0200 ++++ desktop-3.2.3/src/gui/wizard/owncloudwizard.h 2021-07-07 20:26:40.619839465 +0200 +@@ -128,7 +128,7 @@ + OwncloudAdvancedSetupPage *_advancedSetupPage; + OwncloudWizardResultPage *_resultPage; + AbstractCredentialsWizardPage *_credentialsPage = nullptr; +- WebViewPage *_webViewPage; ++ WebViewPage *_webViewPage = nullptr; + + QStringList _setupLog; + +diff -Naur desktop-3.2.3.orig/src/gui/wizard/welcomepage.cpp desktop-3.2.3/src/gui/wizard/welcomepage.cpp +--- desktop-3.2.3.orig/src/gui/wizard/welcomepage.cpp 2021-06-24 12:04:33.000000000 +0200 ++++ desktop-3.2.3/src/gui/wizard/welcomepage.cpp 2021-07-07 20:26:40.620839467 +0200 +@@ -13,6 +13,7 @@ + */ + + #include "welcomepage.h" ++#include "guiutility.h" + #include "theme.h" + #include "wizard/owncloudwizard.h" + #include "wizard/slideshow.h" +@@ -94,11 +95,18 @@ + + void WelcomePage::setupCreateAccountButton() + { ++#ifdef WITH_WEBENGINE + connect(_ui->createAccountButton, &QPushButton::clicked, this, [this](bool /*checked*/) { + _ocWizard->setRegistration(true); + _nextPage = WizardCommon::Page_WebView; + _ocWizard->next(); + }); ++#else // WITH_WEBENGINE ++ connect(_ui->createAccountButton, &QPushButton::clicked, this, [this](bool /*checked*/) { ++ _ocWizard->setRegistration(true); ++ Utility::openBrowser(QStringLiteral("https://nextcloud.com/register")); ++ }); ++#endif // WITH_WEBENGINE + } + + void WelcomePage::setupHostYourOwnServerLabel() +diff -Naur desktop-3.2.3.orig/src/libsync/networkjobs.cpp desktop-3.2.3/src/libsync/networkjobs.cpp +--- desktop-3.2.3.orig/src/libsync/networkjobs.cpp 2021-06-24 12:04:33.000000000 +0200 ++++ desktop-3.2.3/src/libsync/networkjobs.cpp 2021-07-07 20:26:40.619839465 +0200 +@@ -30,6 +30,7 @@ + #include <QCoreApplication> + #include <QJsonDocument> + #include <QJsonObject> ++#include <qloggingcategory.h> + #ifndef TOKEN_AUTH_ONLY + #include <QPainter> + #include <QPainterPath> +@@ -958,7 +959,11 @@ + auto flow = gs.toObject().value("desktoplogin"); + if (flow != QJsonValue::Undefined) { + if (flow.toInt() == 1) { ++#ifdef WITH_WEBENGINE + _resultOldFlow = WebViewFlow; ++#else // WITH_WEBENGINE ++ qCWarning(lcDetermineAuthTypeJob) << "Server does only support flow1, but this client was compiled without support for flow1"; ++#endif // WITH_WEBENGINE + } + } + } +@@ -985,20 +990,24 @@ + + auto result = _resultPropfind; + ++#ifdef WITH_WEBENGINE + // WebViewFlow > OAuth > Basic + if (_account->serverVersionInt() >= Account::makeServerVersion(12, 0, 0)) { + result = WebViewFlow; + } ++#endif // WITH_WEBENGINE + + // LoginFlowV2 > WebViewFlow > OAuth > Basic + if (_account->serverVersionInt() >= Account::makeServerVersion(16, 0, 0)) { + result = LoginFlowV2; + } + ++#ifdef WITH_WEBENGINE + // If we determined that we need the webview flow (GS for example) then we switch to that + if (_resultOldFlow == WebViewFlow) { + result = WebViewFlow; + } ++#endif // WITH_WEBENGINE + + // If we determined that a simple get gave us an authentication required error + // then the server enforces basic auth and we got no choice but to use this +diff -Naur desktop-3.2.3.orig/src/libsync/networkjobs.h desktop-3.2.3/src/libsync/networkjobs.h +--- desktop-3.2.3.orig/src/libsync/networkjobs.h 2021-06-24 12:04:33.000000000 +0200 ++++ desktop-3.2.3/src/libsync/networkjobs.h 2021-07-07 20:26:40.619839465 +0200 +@@ -444,9 +444,11 @@ + public: + enum AuthType { + NoAuthType, // used only before we got a chance to probe the server ++#ifdef WITH_WEBENGINE ++ WebViewFlow, ++#endif // WITH_WEBENGINE + Basic, // also the catch-all fallback for backwards compatibility reasons + OAuth, +- WebViewFlow, + LoginFlowV2 + }; + Q_ENUM(AuthType) |