diff options
-rw-r--r-- | libre/nextcloud-client/PKGBUILD | 99 | ||||
-rw-r--r-- | libre/nextcloud-client/nextcloud-client-fix-build.diff | 13 | ||||
-rw-r--r-- | libre/nextcloud-client/remove-qtwebengine.patch | 312 |
3 files changed, 424 insertions, 0 deletions
diff --git a/libre/nextcloud-client/PKGBUILD b/libre/nextcloud-client/PKGBUILD new file mode 100644 index 000000000..2658a4c61 --- /dev/null +++ b/libre/nextcloud-client/PKGBUILD @@ -0,0 +1,99 @@ +# Maintainer (Arch): Chih-Hsuan Yen <yan12125@archlinux.org> +# Contributor (Arch): Tyler Dence <tyzoid@archlinux32.org> +# Contributor (Arch): Konstantin Shalygin <k0ste@k0ste.ru> + +# parabola changes and rationale: +# - removed qt5-webengine dependency + + +pkgname=nextcloud-client +pkgver=2.6.1 +_commit=5adbc01ef138efd252c5c8c340f57dae0b34d8b9 +pkgrel=2 +pkgrel+=.parabola1 +pkgdesc='Nextcloud desktop client' +pkgdesc+=', without nonfree qt5-webengine dependency' +arch=(x86_64) +arch+=(i686 armv7h) +url='https://nextcloud.com/' +license=(GPL) + +depends=('openssl' 'sqlite' 'qtkeychain' 'qt5-svg' 'xdg-utils') +optdepends=( + 'kio: integration with Dolphin' + 'nemo-python: integration with Nemo' + 'python-nautilus: integration with Nautilus' + 'python2-caja: integration with Caja' +) +makedepends=('doxygen' 'extra-cmake-modules' 'kio' 'python-sphinx' 'qt5-tools' 'git cmocka') +backup=(etc/Nextcloud/sync-exclude.lst) + +source=($pkgname::git+https://github.com/nextcloud/desktop.git?signed#commit=$_commit + issue1458-workaround.patch::https://github.com/yan12125/desktop/commit/7da680ef7843a52c3136916744f50d4a003bb8b5.patch + issue1458-2.patch::https://github.com/yan12125/desktop/commit/2b313368325dac5b8d0e69394cfcc4faaa745f75.patch + remove-qtwebengine.patch + $pkgname-fix-build.diff) +validpgpkeys=('A26B951528EA1BA1678C7AE5D406C75CEE1A36D6') # one of keys controlled by github.com/camilasan +sha256sums=('SKIP' + '07cd68f54c004175b4a09cce25830a357d0ebaafaf4e4cabfb8b0d4deeded2f3' + '157c87a789219a3442ca5947c48dcd1ef3898612ff32070bf8842a42bfbe857a' + '0e036c1f9f200aff057092f5a5848a5f496903bac51105349b87b2cf11b04958' + '8b257a0554ceb54a7ed320dbfa3becb97d6845338e28a8aa0a4f6239f3141645') + + +prepare() +{ + cd $pkgname + + # tmpdir for check() + mkdir tmpdir $pkgname/build + + # Use system GNUInstallDirs.cmake so that we can benefit from + # https://gitlab.kitware.com/cmake/cmake/merge_requests/3735 + rm -v cmake/modules/GNUInstallDirs.cmake + + patch -Np1 -i ../issue1458-workaround.patch + patch -Np1 -i ../issue1458-2.patch + + # https://github.com/nextcloud/desktop/pull/719 + # "Rename owncloud tests to nextcloud" - actually breaks building of tests + patch -Np1 -i ../$pkgname-fix-build.diff + + # Remove qt5-webengine dependency + patch -Np1 -i ../remove-qtwebengine.patch +} + +build() +{ + cd $pkgname/build + + # bundled breakpad in libcrashreporter-qt submodule is too old and does not build with glibc >= 2.26 + # Upstream fix: https://github.com/google/breakpad/commit/bddcc58860f522a0d4cbaa7e9d04058caee0db9d + cmake \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DNO_SHIBBOLETH=1 \ + -DWITH_CRASHREPORTER=OFF \ + -DUNIT_TESTING=ON \ + .. + + make + # TODO: fix installation of PDF and HTML documents + # WIP at https://github.com/yan12125/desktop/tree/doc-install-path + make doc-man +} + +check() +{ + cd $pkgname/build + + # Tests fail if $TMPDIR is too small; specify an alternative for machines + # with a small /tmp partition. + TMPDIR="$srcdir/tmpdir" make test ARGS="-V" +} + +package() +{ + cd $pkgname/build + + make DESTDIR="$pkgdir" install +} diff --git a/libre/nextcloud-client/nextcloud-client-fix-build.diff b/libre/nextcloud-client/nextcloud-client-fix-build.diff new file mode 100644 index 000000000..40e6f361f --- /dev/null +++ b/libre/nextcloud-client/nextcloud-client-fix-build.diff @@ -0,0 +1,13 @@ +diff --git a/test/testnextcloudpropagator.cpp b/test/testnextcloudpropagator.cpp +index 6ad1a6b37..dc2e476ad 100644 +--- a/test/testnextcloudpropagator.cpp ++++ b/test/testnextcloudpropagator.cpp +@@ -8,7 +8,7 @@ + #include <QDebug> + + #include "propagatedownload.h" +-#include "nextcloudpropagator_p.h" ++#include "owncloudpropagator_p.h" + + using namespace OCC; + namespace OCC { diff --git a/libre/nextcloud-client/remove-qtwebengine.patch b/libre/nextcloud-client/remove-qtwebengine.patch new file mode 100644 index 000000000..b35267825 --- /dev/null +++ b/libre/nextcloud-client/remove-qtwebengine.patch @@ -0,0 +1,312 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index e14c97e..f6c4180 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -4,7 +4,7 @@ endif() + + set(synclib_NAME ${APPLICATION_EXECUTABLE}sync) + +-find_package(Qt5 5.6 COMPONENTS Core Network Xml Concurrent WebEngineWidgets WebEngine REQUIRED) ++find_package(Qt5 5.6 COMPONENTS Core Network Xml Concurrent REQUIRED) + if (Qt5Core_VERSION VERSION_LESS 5.9.0) + message(STATUS "For HTTP/2 support, compile with Qt 5.9 or higher.") + endif() +diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt +index e806beb..e56a811 100644 +--- a/src/gui/CMakeLists.txt ++++ b/src/gui/CMakeLists.txt +@@ -39,11 +39,8 @@ set(client_UI_SRCS + wizard/owncloudconnectionmethoddialog.ui + wizard/owncloudhttpcredspage.ui + wizard/owncloudoauthcredspage.ui +- wizard/flow2authcredspage.ui +- wizard/flow2authwidget.ui + wizard/owncloudsetupnocredspage.ui + wizard/owncloudwizardresultpage.ui +- wizard/webview.ui + ) + + set(client_SRCS +@@ -107,23 +104,16 @@ set(client_SRCS + creds/credentialsfactory.cpp + creds/httpcredentialsgui.cpp + creds/oauth.cpp +- creds/flow2auth.cpp +- creds/webflowcredentials.cpp +- creds/webflowcredentialsdialog.cpp + wizard/postfixlineedit.cpp + wizard/abstractcredswizardpage.cpp + wizard/owncloudadvancedsetuppage.cpp + wizard/owncloudconnectionmethoddialog.cpp + wizard/owncloudhttpcredspage.cpp + wizard/owncloudoauthcredspage.cpp +- wizard/flow2authcredspage.cpp +- wizard/flow2authwidget.cpp + wizard/owncloudsetuppage.cpp + wizard/owncloudwizardcommon.cpp + wizard/owncloudwizard.cpp + wizard/owncloudwizardresultpage.cpp +- wizard/webviewpage.cpp +- wizard/webview.cpp + wizard/slideshow.cpp + ) + +@@ -306,7 +296,7 @@ else() + endif() + + add_library(updater STATIC ${updater_SRCS}) +-target_link_libraries(updater ${synclib_NAME} Qt5::Widgets Qt5::Network Qt5::Xml Qt5::WebEngineWidgets) ++target_link_libraries(updater ${synclib_NAME} Qt5::Widgets Qt5::Network Qt5::Xml) + target_include_directories(updater PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) + + set_target_properties( ${APPLICATION_EXECUTABLE} PROPERTIES +diff --git a/src/gui/accountmanager.cpp b/src/gui/accountmanager.cpp +index ca00a4e..25e6a8b 100644 +--- a/src/gui/accountmanager.cpp ++++ b/src/gui/accountmanager.cpp +@@ -253,20 +253,6 @@ AccountPtr AccountManager::loadAccountHelper(QSettings &settings) + acc->setUrl(urlConfig.toUrl()); + } + +- // Migrate to webflow +- if (authType == QLatin1String("http")) { +- authType = "webflow"; +- settings.setValue(QLatin1String(authTypeC), authType); +- +- foreach(QString key, settings.childKeys()) { +- if (!key.startsWith("http_")) +- continue; +- auto newkey = QString::fromLatin1("webflow_").append(key.mid(5)); +- settings.setValue(newkey, settings.value((key))); +- settings.remove(key); +- } +- } +- + qCInfo(lcAccountManager) << "Account for" << acc->url() << "using auth type" << authType; + + acc->_serverVersion = settings.value(QLatin1String(serverVersionC)).toString(); +diff --git a/src/gui/creds/credentialsfactory.cpp b/src/gui/creds/credentialsfactory.cpp +index 6062f70..52e003b 100644 +--- a/src/gui/creds/credentialsfactory.cpp ++++ b/src/gui/creds/credentialsfactory.cpp +@@ -21,7 +21,6 @@ + #ifndef NO_SHIBBOLETH + #include "creds/shibbolethcredentials.h" + #endif +-#include "creds/webflowcredentials.h" + + namespace OCC { + +@@ -40,8 +39,6 @@ namespace CredentialsFactory { + } else if (type == "shibboleth") { + return new ShibbolethCredentials; + #endif +- } else if (type == "webflow") { +- return new WebFlowCredentials; + } else { + qCWarning(lcGuiCredentials, "Unknown credentials type: %s", qPrintable(type)); + return new DummyCredentials; +diff --git a/src/gui/owncloudsetupwizard.cpp b/src/gui/owncloudsetupwizard.cpp +index 3d20344..5785cad 100644 +--- a/src/gui/owncloudsetupwizard.cpp ++++ b/src/gui/owncloudsetupwizard.cpp +@@ -408,7 +408,7 @@ void OwncloudSetupWizard::slotAuthError() + } + + _ocWizard->show(); +- if (_ocWizard->currentId() == WizardCommon::Page_ShibbolethCreds || _ocWizard->currentId() == WizardCommon::Page_OAuthCreds || _ocWizard->currentId() == WizardCommon::Page_Flow2AuthCreds) { ++ if (_ocWizard->currentId() == WizardCommon::Page_ShibbolethCreds || _ocWizard->currentId() == WizardCommon::Page_OAuthCreds) { + _ocWizard->back(); + } + _ocWizard->displayError(errorMsg, _ocWizard->currentId() == WizardCommon::Page_ServerSetup && checkDowngradeAdvised(reply)); +diff --git a/src/gui/wizard/owncloudsetuppage.cpp b/src/gui/wizard/owncloudsetuppage.cpp +index 3a956b0..8b32b5b 100644 +--- a/src/gui/wizard/owncloudsetuppage.cpp ++++ b/src/gui/wizard/owncloudsetuppage.cpp +@@ -143,7 +143,7 @@ void OwncloudSetupPage::slotLogin() + void OwncloudSetupPage::slotGotoProviderList() + { + _ocWizard->setRegistration(true); +- _ocWizard->setAuthType(DetermineAuthTypeJob::AuthType::WebViewFlow); ++ _ocWizard->setAuthType(DetermineAuthTypeJob::AuthType::OAuth); + _authTypeKnown = true; + _checking = false; + emit completeChanged(); +@@ -258,12 +258,8 @@ int OwncloudSetupPage::nextId() const + return WizardCommon::Page_HttpCreds; + case DetermineAuthTypeJob::OAuth: + return WizardCommon::Page_OAuthCreds; +- case DetermineAuthTypeJob::LoginFlowV2: +- return WizardCommon::Page_Flow2AuthCreds; + case DetermineAuthTypeJob::Shibboleth: + return WizardCommon::Page_ShibbolethCreds; +- case DetermineAuthTypeJob::WebViewFlow: +- return WizardCommon::Page_WebView; + } + return WizardCommon::Page_HttpCreds; + } +diff --git a/src/gui/wizard/owncloudwizard.cpp b/src/gui/wizard/owncloudwizard.cpp +index e4dda0f..370302c 100644 +--- a/src/gui/wizard/owncloudwizard.cpp ++++ b/src/gui/wizard/owncloudwizard.cpp +@@ -26,8 +26,6 @@ + #endif + #include "wizard/owncloudadvancedsetuppage.h" + #include "wizard/owncloudwizardresultpage.h" +-#include "wizard/webviewpage.h" +-#include "wizard/flow2authcredspage.h" + + #include "QProgressIndicator.h" + +@@ -46,14 +44,12 @@ OwncloudWizard::OwncloudWizard(QWidget *parent) + , _setupPage(new OwncloudSetupPage(this)) + , _httpCredsPage(new OwncloudHttpCredsPage(this)) + , _browserCredsPage(new OwncloudOAuthCredsPage) +- , _flow2CredsPage(new Flow2AuthCredsPage) + #ifndef NO_SHIBBOLETH + , _shibbolethCredsPage(new OwncloudShibbolethCredsPage) + #endif + , _advancedSetupPage(new OwncloudAdvancedSetupPage) + , _resultPage(new OwncloudWizardResultPage) + , _credentialsPage(nullptr) +- , _webViewPage(new WebViewPage(this)) + , _setupLog() + , _registration(false) + { +@@ -61,13 +57,11 @@ OwncloudWizard::OwncloudWizard(QWidget *parent) + setPage(WizardCommon::Page_ServerSetup, _setupPage); + setPage(WizardCommon::Page_HttpCreds, _httpCredsPage); + setPage(WizardCommon::Page_OAuthCreds, _browserCredsPage); +- setPage(WizardCommon::Page_Flow2AuthCreds, _flow2CredsPage); + #ifndef NO_SHIBBOLETH + setPage(WizardCommon::Page_ShibbolethCreds, _shibbolethCredsPage); + #endif + setPage(WizardCommon::Page_AdvancedSetup, _advancedSetupPage); + setPage(WizardCommon::Page_Result, _resultPage); +- setPage(WizardCommon::Page_WebView, _webViewPage); + + connect(this, &QDialog::finished, this, &OwncloudWizard::basicSetupFinished); + +@@ -79,11 +73,9 @@ OwncloudWizard::OwncloudWizard(QWidget *parent) + connect(_setupPage, &OwncloudSetupPage::determineAuthType, this, &OwncloudWizard::determineAuthType); + connect(_httpCredsPage, &OwncloudHttpCredsPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl); + connect(_browserCredsPage, &OwncloudOAuthCredsPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl); +- connect(_flow2CredsPage, &Flow2AuthCredsPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl); + #ifndef NO_SHIBBOLETH + connect(_shibbolethCredsPage, &OwncloudShibbolethCredsPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl); + #endif +- connect(_webViewPage, &WebViewPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl); + connect(_advancedSetupPage, &OwncloudAdvancedSetupPage::createLocalAndRemoteFolders, + this, &OwncloudWizard::createLocalAndRemoteFolders); + connect(this, &QWizard::customButtonClicked, this, &OwncloudWizard::skipFolderConfiguration); +@@ -168,20 +160,12 @@ void OwncloudWizard::successfulStep() + _browserCredsPage->setConnected(); + break; + +- case WizardCommon::Page_Flow2AuthCreds: +- _flow2CredsPage->setConnected(); +- break; +- + #ifndef NO_SHIBBOLETH + case WizardCommon::Page_ShibbolethCreds: + _shibbolethCredsPage->setConnected(); + break; + #endif + +- case WizardCommon::Page_WebView: +- _webViewPage->setConnected(); +- break; +- + case WizardCommon::Page_AdvancedSetup: + _advancedSetupPage->directoriesCreated(); + break; +@@ -205,10 +189,6 @@ void OwncloudWizard::setAuthType(DetermineAuthTypeJob::AuthType type) + #endif + if (type == DetermineAuthTypeJob::OAuth) { + _credentialsPage = _browserCredsPage; +- } else if (type == DetermineAuthTypeJob::LoginFlowV2) { +- _credentialsPage = _flow2CredsPage; +- } else if (type == DetermineAuthTypeJob::WebViewFlow) { +- _credentialsPage = _webViewPage; + } else { // try Basic auth even for "Unknown" + _credentialsPage = _httpCredsPage; + } +@@ -233,7 +213,7 @@ void OwncloudWizard::slotCurrentPageChanged(int id) + } + + setOption(QWizard::HaveCustomButton1, id == WizardCommon::Page_AdvancedSetup); +- if (id == WizardCommon::Page_AdvancedSetup && (_credentialsPage == _browserCredsPage || _credentialsPage == _flow2CredsPage)) { ++ if (id == WizardCommon::Page_AdvancedSetup) { + // For OAuth, disable the back button in the Page_AdvancedSetup because we don't want + // to re-open the browser. + button(QWizard::BackButton)->setEnabled(false); +diff --git a/src/gui/wizard/owncloudwizard.h b/src/gui/wizard/owncloudwizard.h +index c1d290d..1e32077 100644 +--- a/src/gui/wizard/owncloudwizard.h ++++ b/src/gui/wizard/owncloudwizard.h +@@ -39,8 +39,6 @@ class OwncloudAdvancedSetupPage; + class OwncloudWizardResultPage; + class AbstractCredentials; + class AbstractCredentialsWizardPage; +-class WebViewPage; +-class Flow2AuthCredsPage; + + /** + * @brief The OwncloudWizard class +@@ -105,11 +103,9 @@ private: + #ifndef NO_SHIBBOLETH + OwncloudShibbolethCredsPage *_shibbolethCredsPage; + #endif +- Flow2AuthCredsPage *_flow2CredsPage; + OwncloudAdvancedSetupPage *_advancedSetupPage; + OwncloudWizardResultPage *_resultPage; + AbstractCredentialsWizardPage *_credentialsPage; +- WebViewPage *_webViewPage; + + QStringList _setupLog; + +diff --git a/src/gui/wizard/owncloudwizardcommon.h b/src/gui/wizard/owncloudwizardcommon.h +index d1f7c08..c55ed04 100644 +--- a/src/gui/wizard/owncloudwizardcommon.h ++++ b/src/gui/wizard/owncloudwizardcommon.h +@@ -38,8 +38,6 @@ namespace WizardCommon { + Page_HttpCreds, + Page_ShibbolethCreds, + Page_OAuthCreds, +- Page_Flow2AuthCreds, +- Page_WebView, + Page_AdvancedSetup, + Page_Result + }; +diff --git a/src/libsync/networkjobs.cpp b/src/libsync/networkjobs.cpp +index c178895..eab4723 100644 +--- a/src/libsync/networkjobs.cpp ++++ b/src/libsync/networkjobs.cpp +@@ -922,12 +922,12 @@ void DetermineAuthTypeJob::checkBothDone() + + // WebViewFlow > OAuth > Shib > Basic + if (_account->serverVersionInt() >= Account::makeServerVersion(12, 0, 0)) { +- result = WebViewFlow; ++ result = Basic; + } + + // LoginFlowV2 > WebViewFlow > OAuth > Shib > Basic + if (_account->serverVersionInt() >= Account::makeServerVersion(16, 0, 0)) { +- result = LoginFlowV2; ++ result = Basic; + } + + qCInfo(lcDetermineAuthTypeJob) << "Auth type for" << _account->davUrl() << "is" << result; +diff --git a/src/libsync/networkjobs.h b/src/libsync/networkjobs.h +index d0829b4..925ace0 100644 +--- a/src/libsync/networkjobs.h ++++ b/src/libsync/networkjobs.h +@@ -412,8 +412,6 @@ public: + Basic, // also the catch-all fallback for backwards compatibility reasons + OAuth, + Shibboleth, +- WebViewFlow, +- LoginFlowV2 + }; + + explicit DetermineAuthTypeJob(AccountPtr account, QObject *parent = nullptr); |