[Dev] [PATCH] Upgrade nextcloud-client to v3.0.0

theova theova at bluewin.ch
Tue Aug 25 12:01:24 GMT 2020


Hi

here is a patch to upgrade nextcloud-client to current version 3.0.0.

Successfully tested on x86_64, built for i686. The build for arm
failed...


Parabola Website Notification <nobody at parabola.nu> schrieb am Fri, 21. Aug 20 10:05:
>eomc20a2q99n at opayq.com wants to notify you that the following packages may be out-of-date:
>
>
>* nextcloud-client 2.6.4-1.parabola1 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/nextcloud-client/
>* nextcloud-client 2.6.4-1.parabola1 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/nextcloud-client/
>
>
>The user provided the following additional text:
>
>3.0.0 is out:
>
>https://github.com/nextcloud/desktop/releases/tag/v3.0.0
>
>_______________________________________________
>Dev mailing list
>Dev at lists.parabola.nu
>https://lists.parabola.nu/mailman/listinfo/dev
-------------- next part --------------
From 5872e6eddbc491be2343f4444974a3a687df7030 Mon Sep 17 00:00:00 2001
From: Theo von Arx <theova at member.fsf.org>
Date: Thu, 16 Jul 2020 21:55:28 +0200
Subject: [PATCH] [nextcloud-client] Upgrade to 3.0.0

---
 libre/nextcloud-client/Nextcloud.conf         |   2 -
 libre/nextcloud-client/PKGBUILD               |  57 +--
 .../nextcloud-client-fix-build.diff           |  13 -
 .../nextcloud-client/remove-qtwebengine.patch | 446 +++++++++---------
 4 files changed, 250 insertions(+), 268 deletions(-)
 delete mode 100644 libre/nextcloud-client/Nextcloud.conf
 delete mode 100644 libre/nextcloud-client/nextcloud-client-fix-build.diff

diff --git a/libre/nextcloud-client/Nextcloud.conf b/libre/nextcloud-client/Nextcloud.conf
deleted file mode 100644
index 232a67665..000000000
--- a/libre/nextcloud-client/Nextcloud.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-[General]
-skipUpdateCheck=true
diff --git a/libre/nextcloud-client/PKGBUILD b/libre/nextcloud-client/PKGBUILD
index 9afa9b0fb..3028c35f0 100644
--- a/libre/nextcloud-client/PKGBUILD
+++ b/libre/nextcloud-client/PKGBUILD
@@ -8,8 +8,10 @@
 
 
 pkgname=nextcloud-client
-pkgver=2.6.4
-_commit=b45f5fd1a947dc21eb11c69049a99616a2ec950e
+# Upstream does not provide signed tarballs (yet)
+# https://github.com/nextcloud/desktop/issues/236#issuecomment-540538247
+pkgver=3.0.0
+_commit=ff175088a391007b66bfca89ef35cf29e37cf001
 pkgrel=1
 pkgrel+=.parabola1
 pkgdesc='Nextcloud desktop client'
@@ -18,69 +20,59 @@ arch=(x86_64)
 arch+=(i686 armv7h)
 url='https://nextcloud.com/'
 license=(GPL)
-depends=(openssl sqlite qtkeychain qt5-svg xdg-utils libcloudproviders)
+depends=(openssl sqlite qtkeychain qt5-svg xdg-utils libcloudproviders
+         qt5-graphicaleffects qt5-quickcontrols2)
 makedepends=(doxygen extra-cmake-modules kio python-sphinx qt5-tools git cmocka)
 optdepends=(
   'kio: integration with Dolphin'
   'nemo-python: integration with Nemo'
   'python-nautilus: integration with Nautilus'
-  'python2-caja: integration with Caja'
+  'python-caja: integration with Caja'
 )
-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
-        $pkgname-fix-build.diff
-        Nextcloud.conf)
+# Not using ?signed here as only the tag is properly signed, not the commit.
+# See https://github.com/nextcloud/desktop/issues/2185
+source=("$pkgname::git+https://github.com/nextcloud/desktop.git#commit=$_commit")
 source+=(remove-qtwebengine.patch)
 validpgpkeys=(
   A26B951528EA1BA1678C7AE5D406C75CEE1A36D6  # one of keys controlled by github.com/camilasan
   42E775EAA3E47F9E0D5CDB0E00819E3BF4177B28  # controlled by github.com/misch7
+  17166A5275C5FA6F1A48FD78074BBBCB8DECC9E2  # https://github.com/er-vin.gpg
 )
-sha256sums=('SKIP'
-            '07cd68f54c004175b4a09cce25830a357d0ebaafaf4e4cabfb8b0d4deeded2f3'
-            '157c87a789219a3442ca5947c48dcd1ef3898612ff32070bf8842a42bfbe857a'
-            '8b257a0554ceb54a7ed320dbfa3becb97d6845338e28a8aa0a4f6239f3141645'
-            '5f51e41ef01d4e5b88a4735531105b84b4fb5317adc2a2996117c03fe5a44fc7')
-sha256sums+=('77d7afd2dc65a7625e1617dd2c287c1be004deca2f64ecc18a96bb6c3cd733cf')
-backup=('etc/Nextcloud/sync-exclude.lst'
-        'etc/Nextcloud/Nextcloud.conf')
+sha256sums=('SKIP')
+sha256sums+=('92a580a8de3141c2d04a28a4de3264a35f426fa74834379f5cae4ae0934b1d7b')
+backup=('etc/Nextcloud/sync-exclude.lst')
 
 prepare() {
   # tmpdir for check()
-  mkdir tmpdir $pkgname/build
+  mkdir tmpdir
 
   # Use system GNUInstallDirs.cmake so that we can benefit from
   # https://gitlab.kitware.com/cmake/cmake/merge_requests/3735
   rm -v $pkgname/cmake/modules/GNUInstallDirs.cmake
 
   cd $pkgname
-  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
+  # https://github.com/nextcloud/desktop/pull/2204
   patch -Np1 -i ../remove-qtwebengine.patch
 }
 
 build() {
-  cd $pkgname/build
+  cd $pkgname
 
   # 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 \
+  cmake -B build -S . \
+    -DCMAKE_BUILD_TYPE=None \
     -DCMAKE_INSTALL_PREFIX=/usr \
     -DNO_SHIBBOLETH=1 \
+    -DNO_WEBENGINE=1 \
     -DWITH_CRASHREPORTER=OFF \
-    -DUNIT_TESTING=ON \
-    ..
+    -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
+  make -C build all doc-man
 }
 
 check() {
@@ -88,14 +80,11 @@ check() {
 
   # Tests fail if $TMPDIR is too small; specify an alternative for machines
   # with a small /tmp partition.
-  TMPDIR="$srcdir/tmpdir" make test ARGS="-V"
+  TMPDIR="$srcdir/tmpdir" make test
 }
 
 package() {
   cd $pkgname/build
 
   make DESTDIR="$pkgdir" install
-
-  # Disables built-in update checker
-  install -Dm644 "$srcdir/Nextcloud.conf" -t "$pkgdir"/etc/Nextcloud
 }
diff --git a/libre/nextcloud-client/nextcloud-client-fix-build.diff b/libre/nextcloud-client/nextcloud-client-fix-build.diff
deleted file mode 100644
index 40e6f361f..000000000
--- a/libre/nextcloud-client/nextcloud-client-fix-build.diff
+++ /dev/null
@@ -1,13 +0,0 @@
-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
index a480f4ad4..a0911d475 100644
--- a/libre/nextcloud-client/remove-qtwebengine.patch
+++ b/libre/nextcloud-client/remove-qtwebengine.patch
@@ -1,41 +1,67 @@
+From f3b783512dc6d54d80c7ce57bb7c6ce9efd6651b Mon Sep 17 00:00:00 2001
+From: Max Rees <maxcrees at me.com>
+Date: Sun, 23 Feb 2020 23:09:29 -0600
+Subject: [PATCH] Add support for compiling without QtWebEngine (webflow /
+ flow2 support)
+
+Signed-off-by: Max Rees <maxcrees at me.com>
+Signed-off-by: theova <theova at member.fsf.org>
+---
+ CMakeLists.txt                       |  7 +++++++
+ src/CMakeLists.txt                   |  6 +++++-
+ src/gui/CMakeLists.txt               | 24 ++++++++++++++-------
+ src/gui/accountmanager.cpp           |  2 ++
+ src/gui/creds/credentialsfactory.cpp |  4 ++++
+ src/gui/wizard/owncloudsetuppage.cpp |  4 ++++
+ src/gui/wizard/owncloudwizard.cpp    | 31 +++++++++++++++++++++++++++-
+ src/gui/wizard/owncloudwizard.h      |  6 ++++++
+ src/libsync/networkjobs.cpp          |  8 +++++++
+ 9 files changed, 82 insertions(+), 10 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5df238838..4a333dbdd 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -176,6 +176,13 @@ if(NO_SHIBBOLETH)
+    add_definitions(-DNO_SHIBBOLETH=1)
+ endif()
+
++# Disable webengine-based components
++option(NO_WEBENGINE "Build without webflow / flow2 support so QtWebEngine isn't required" OFF)
++if(NO_WEBENGINE)
++   message("Compiling without webengine")
++   add_definitions(-DNO_WEBENGINE=1)
++endif()
++
+ if(APPLE)
+   set( SOCKETAPI_TEAM_IDENTIFIER_PREFIX "" CACHE STRING "SocketApi prefix (including a following dot) that must match the codesign key's TeamIdentifier/Organizational Unit" )
+ endif()
 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 9f854b006..6f3546353 100644
+index a79edfcfb..c8ef114a4 100644
 --- a/src/CMakeLists.txt
 +++ b/src/CMakeLists.txt
-@@ -4,7 +4,7 @@ endif()
- 
+@@ -4,7 +4,11 @@ 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()
+
+-find_package(Qt5 5.12 COMPONENTS Core Network Xml Concurrent WebEngineWidgets WebEngine REQUIRED)
++find_package(Qt5 5.12 COMPONENTS Core Network Xml Concurrent REQUIRED)
++
++if(NOT NO_WEBENGINE)
++    find_package(Qt5 5.12 COMPONENTS WebEngineWidgets WebEngine REQUIRED)
++endif()
+
+ if(NOT TOKEN_AUTH_ONLY)
+     find_package(Qt5Keychain REQUIRED)
 diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt
-index 285057992..8e61531bd 100644
+index 2f1e99e2b..c5be00c37 100644
 --- a/src/gui/CMakeLists.txt
 +++ b/src/gui/CMakeLists.txt
-@@ -35,14 +35,12 @@ set(client_UI_SRCS
-     addcertificatedialog.ui
-     proxyauthdialog.ui
-     mnemonicdialog.ui
--    wizard/flow2authwidget.ui
-     wizard/owncloudadvancedsetuppage.ui
-     wizard/owncloudconnectionmethoddialog.ui
-     wizard/owncloudhttpcredspage.ui
-     wizard/owncloudoauthcredspage.ui
-     wizard/owncloudsetupnocredspage.ui
-     wizard/owncloudwizardresultpage.ui
--    wizard/webview.ui
- )
- 
- set(client_SRCS
-@@ -108,24 +106,17 @@ set(client_SRCS
+@@ -111,23 +111,16 @@ set(client_SRCS
      creds/credentialsfactory.cpp
      creds/httpcredentialsgui.cpp
      creds/oauth.cpp
 -    creds/flow2auth.cpp
-     creds/keychainchunk.cpp
 -    creds/webflowcredentials.cpp
 -    creds/webflowcredentialsdialog.cpp
      wizard/postfixlineedit.cpp
@@ -54,304 +80,286 @@ index 285057992..8e61531bd 100644
 -    wizard/webview.cpp
      wizard/slideshow.cpp
  )
- 
-@@ -298,7 +289,7 @@ else()
+
+@@ -148,6 +141,18 @@ IF(BUILD_UPDATER)
+     )
  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})
- 
+
++IF(NOT NO_WEBENGINE)
++    list(APPEND client_SRCS
++        creds/flow2auth.cpp
++        creds/webflowcredentials.cpp
++        creds/webflowcredentialsdialog.cpp
++        wizard/flow2authcredspage.cpp
++        wizard/flow2authwidget.cpp
++        wizard/webviewpage.cpp
++        wizard/webview.cpp
++    )
++endif()
++
+ IF( APPLE )
+     list(APPEND client_SRCS cocoainitializer_mac.mm)
+     list(APPEND client_SRCS socketapisocket_mac.mm)
+@@ -314,8 +319,11 @@ set_target_properties( ${APPLICATION_EXECUTABLE} PROPERTIES
  set_target_properties( ${APPLICATION_EXECUTABLE} PROPERTIES
+         INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}/${APPLICATION_EXECUTABLE};${CMAKE_INSTALL_RPATH}" )
+
+-target_link_libraries( ${APPLICATION_EXECUTABLE} Qt5::Widgets Qt5::Svg Qt5::Network Qt5::Xml Qt5::Qml Qt5::Quick Qt5::QuickControls2 Qt5::WebEngineWidgets)
++target_link_libraries( ${APPLICATION_EXECUTABLE} Qt5::Widgets Qt5::Svg Qt5::Network Qt5::Xml Qt5::Qml Qt5::Quick Qt5::QuickControls2)
+ target_link_libraries( ${APPLICATION_EXECUTABLE} ${synclib_NAME} )
++IF(NOT NO_WEBENGINE)
++    target_link_libraries( ${APPLICATION_EXECUTABLE} Qt5::WebEngineWidgets )
++endif()
+ IF(BUILD_UPDATER)
+     target_link_libraries( ${APPLICATION_EXECUTABLE} updater )
+ endif()
 diff --git a/src/gui/accountmanager.cpp b/src/gui/accountmanager.cpp
-index eec375180..c8ae72bda 100644
+index 34c4cbc3e..372c52f44 100644
 --- a/src/gui/accountmanager.cpp
 +++ b/src/gui/accountmanager.cpp
-@@ -253,20 +253,6 @@ AccountPtr AccountManager::loadAccountHelper(QSettings &settings)
+@@ -253,6 +253,7 @@ 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);
--        }
--    }
--
+
++#ifndef NO_WEBENGINE
+     // Migrate to webflow
+     if (authType == QLatin1String("http")) {
+         authType = "webflow";
+@@ -266,6 +267,7 @@ AccountPtr AccountManager::loadAccountHelper(QSettings &settings)
+             settings.remove(key);
+         }
+     }
++#endif
+
      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 6062f70eb..52e003b57 100644
+index 6062f70eb..723196d08 100644
 --- a/src/gui/creds/credentialsfactory.cpp
 +++ b/src/gui/creds/credentialsfactory.cpp
-@@ -21,7 +21,6 @@
+@@ -21,7 +21,9 @@
  #ifndef NO_SHIBBOLETH
  #include "creds/shibbolethcredentials.h"
  #endif
--#include "creds/webflowcredentials.h"
- 
++#ifndef NO_WEBENGINE
+ #include "creds/webflowcredentials.h"
++#endif
+
  namespace OCC {
- 
-@@ -40,8 +39,6 @@ namespace CredentialsFactory {
+
+@@ -40,8 +42,10 @@ namespace CredentialsFactory {
          } else if (type == "shibboleth") {
              return new ShibbolethCredentials;
  #endif
--        } else if (type == "webflow") {
--            return new WebFlowCredentials;
++#ifndef NO_WEBENGINE
+         } else if (type == "webflow") {
+             return new WebFlowCredentials;
++#endif
          } 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 875dacf55..65dea6619 100644
---- a/src/gui/owncloudsetupwizard.cpp
-+++ b/src/gui/owncloudsetupwizard.cpp
-@@ -409,7 +409,7 @@ void OwncloudSetupWizard::slotAuthError()
- 
-     // bring wizard to top
-     _ocWizard->bringToTop();
--    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 9a6ced74b..101b5dae5 100644
+index 71f1c19c9..d997125a8 100644
 --- a/src/gui/wizard/owncloudsetuppage.cpp
 +++ b/src/gui/wizard/owncloudsetuppage.cpp
-@@ -144,7 +144,7 @@ void OwncloudSetupPage::slotLogin()
+@@ -139,7 +139,11 @@ void OwncloudSetupPage::slotLogin()
  void OwncloudSetupPage::slotGotoProviderList()
  {
      _ocWizard->setRegistration(true);
--    _ocWizard->setAuthType(DetermineAuthTypeJob::AuthType::WebViewFlow);
-+    _ocWizard->setAuthType(DetermineAuthTypeJob::AuthType::OAuth);
++#ifndef NO_WEBENGINE
+     _ocWizard->setAuthType(DetermineAuthTypeJob::AuthType::WebViewFlow);
++#else
++    _ocWizard->setAuthType(DetermineAuthTypeJob::AuthType::Basic);
++#endif
      _authTypeKnown = true;
      _checking = false;
      emit completeChanged();
-@@ -259,12 +259,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 2076136ff..5f3480340 100644
+index aa7f0aaa4..0e7c71bda 100644
 --- a/src/gui/wizard/owncloudwizard.cpp
 +++ b/src/gui/wizard/owncloudwizard.cpp
-@@ -27,8 +27,6 @@
+@@ -27,8 +27,10 @@
  #endif
  #include "wizard/owncloudadvancedsetuppage.h"
  #include "wizard/owncloudwizardresultpage.h"
--#include "wizard/webviewpage.h"
--#include "wizard/flow2authcredspage.h"
- 
++#ifndef NO_WEBENGINE
+ #include "wizard/webviewpage.h"
+ #include "wizard/flow2authcredspage.h"
++#endif
+
  #include "QProgressIndicator.h"
- 
-@@ -47,14 +45,12 @@ OwncloudWizard::OwncloudWizard(QWidget *parent)
-     , _setupPage(new OwncloudSetupPage(this))
-     , _httpCredsPage(new OwncloudHttpCredsPage(this))
-     , _browserCredsPage(new OwncloudOAuthCredsPage)
--    , _flow2CredsPage(new Flow2AuthCredsPage)
+
+@@ -50,22 +52,30 @@ OwncloudWizard::OwncloudWizard(QWidget *parent)
  #ifndef NO_SHIBBOLETH
      , _shibbolethCredsPage(new OwncloudShibbolethCredsPage)
  #endif
++#ifndef NO_WEBENGINE
+     , _flow2CredsPage(new Flow2AuthCredsPage)
++#endif
      , _advancedSetupPage(new OwncloudAdvancedSetupPage)
      , _resultPage(new OwncloudWizardResultPage)
-     , _credentialsPage(nullptr)
--    , _webViewPage(new WebViewPage(this))
-     , _setupLog()
-     , _registration(false)
++#ifndef NO_WEBENGINE
+     , _webViewPage(new WebViewPage(this))
++#endif
  {
-@@ -62,13 +58,11 @@ OwncloudWizard::OwncloudWizard(QWidget *parent)
+     setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
      setPage(WizardCommon::Page_ServerSetup, _setupPage);
      setPage(WizardCommon::Page_HttpCreds, _httpCredsPage);
      setPage(WizardCommon::Page_OAuthCreds, _browserCredsPage);
--    setPage(WizardCommon::Page_Flow2AuthCreds, _flow2CredsPage);
++#ifndef NO_WEBENGINE
+     setPage(WizardCommon::Page_Flow2AuthCreds, _flow2CredsPage);
++#endif
  #ifndef NO_SHIBBOLETH
      setPage(WizardCommon::Page_ShibbolethCreds, _shibbolethCredsPage);
  #endif
      setPage(WizardCommon::Page_AdvancedSetup, _advancedSetupPage);
      setPage(WizardCommon::Page_Result, _resultPage);
--    setPage(WizardCommon::Page_WebView, _webViewPage);
- 
++#ifndef NO_WEBENGINE
+     setPage(WizardCommon::Page_WebView, _webViewPage);
++#endif
+
      connect(this, &QDialog::finished, this, &OwncloudWizard::basicSetupFinished);
- 
-@@ -80,11 +74,9 @@ OwncloudWizard::OwncloudWizard(QWidget *parent)
+
+@@ -77,11 +87,15 @@ 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_WEBENGINE
+     connect(_flow2CredsPage, &Flow2AuthCredsPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl);
++#endif
  #ifndef NO_SHIBBOLETH
      connect(_shibbolethCredsPage, &OwncloudShibbolethCredsPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl);
  #endif
--    connect(_webViewPage, &WebViewPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl);
++#ifndef NO_WEBENGINE
+     connect(_webViewPage, &WebViewPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl);
++#endif
      connect(_advancedSetupPage, &OwncloudAdvancedSetupPage::createLocalAndRemoteFolders,
          this, &OwncloudWizard::createLocalAndRemoteFolders);
      connect(this, &QWizard::customButtonClicked, this, &OwncloudWizard::skipFolderConfiguration);
-@@ -103,15 +95,6 @@ OwncloudWizard::OwncloudWizard(QWidget *parent)
-     setButtonText(QWizard::CustomButton1, tr("Skip folders configuration"));
- 
- 
--    // Connect styleChanged events to our widgets, so they can adapt (Dark-/Light-Mode switching)
--    connect(this, &OwncloudWizard::styleChanged, _setupPage, &OwncloudSetupPage::slotStyleChanged);
--    connect(this, &OwncloudWizard::styleChanged, _advancedSetupPage, &OwncloudAdvancedSetupPage::slotStyleChanged);
--    connect(this, &OwncloudWizard::styleChanged, _flow2CredsPage, &Flow2AuthCredsPage::slotStyleChanged);
--
--    customizeStyle();
--
--    // allow Flow2 page to poll on window activation
--    connect(this, &OwncloudWizard::onActivate, _flow2CredsPage, &Flow2AuthCredsPage::slotPollNow);
+@@ -103,12 +117,16 @@ OwncloudWizard::OwncloudWizard(QWidget *parent)
+     // Connect styleChanged events to our widgets, so they can adapt (Dark-/Light-Mode switching)
+     connect(this, &OwncloudWizard::styleChanged, _setupPage, &OwncloudSetupPage::slotStyleChanged);
+     connect(this, &OwncloudWizard::styleChanged, _advancedSetupPage, &OwncloudAdvancedSetupPage::slotStyleChanged);
++#ifndef NO_WEBENGINE
+     connect(this, &OwncloudWizard::styleChanged, _flow2CredsPage, &Flow2AuthCredsPage::slotStyleChanged);
++#endif
+
+     customizeStyle();
+
++#ifndef NO_WEBENGINE
+     // allow Flow2 page to poll on window activation
+     connect(this, &OwncloudWizard::onActivate, _flow2CredsPage, &Flow2AuthCredsPage::slotPollNow);
++#endif
  }
- 
+
  void OwncloudWizard::setAccount(AccountPtr account)
-@@ -180,20 +163,12 @@ void OwncloudWizard::successfulStep()
+@@ -177,9 +195,11 @@ void OwncloudWizard::successfulStep()
          _browserCredsPage->setConnected();
          break;
- 
--    case WizardCommon::Page_Flow2AuthCreds:
--        _flow2CredsPage->setConnected();
--        break;
--
+
++#ifndef NO_WEBENGINE
+     case WizardCommon::Page_Flow2AuthCreds:
+         _flow2CredsPage->setConnected();
+         break;
++#endif
+
  #ifndef NO_SHIBBOLETH
      case WizardCommon::Page_ShibbolethCreds:
-         _shibbolethCredsPage->setConnected();
+@@ -187,9 +207,11 @@ void OwncloudWizard::successfulStep()
          break;
  #endif
- 
--    case WizardCommon::Page_WebView:
--        _webViewPage->setConnected();
--        break;
--
+
++#ifndef NO_WEBENGINE
+     case WizardCommon::Page_WebView:
+         _webViewPage->setConnected();
+         break;
++#endif
+
      case WizardCommon::Page_AdvancedSetup:
          _advancedSetupPage->directoriesCreated();
-         break;
-@@ -217,10 +192,6 @@ void OwncloudWizard::setAuthType(DetermineAuthTypeJob::AuthType type)
+@@ -214,10 +236,12 @@ 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;
++#ifndef NO_WEBENGINE
+     } else if (type == DetermineAuthTypeJob::LoginFlowV2) {
+         _credentialsPage = _flow2CredsPage;
+     } else if (type == DetermineAuthTypeJob::WebViewFlow) {
+         _credentialsPage = _webViewPage;
++#endif
      } else { // try Basic auth even for "Unknown"
          _credentialsPage = _httpCredsPage;
      }
-@@ -245,7 +216,7 @@ void OwncloudWizard::slotCurrentPageChanged(int id)
+@@ -242,7 +266,12 @@ 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) {
++    if (id == WizardCommon::Page_AdvancedSetup
++           && (_credentialsPage == _browserCredsPage
++#ifndef NO_WEBENGINE
++           || _credentialsPage == _flow2CredsPage
++#endif
++           )) {
          // 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 3cbf89f71..2eecbf95a 100644
+index ee6161ca5..c0ee06403 100644
 --- a/src/gui/wizard/owncloudwizard.h
 +++ b/src/gui/wizard/owncloudwizard.h
-@@ -39,8 +39,6 @@ class OwncloudAdvancedSetupPage;
+@@ -39,8 +39,10 @@ class OwncloudAdvancedSetupPage;
  class OwncloudWizardResultPage;
  class AbstractCredentials;
  class AbstractCredentialsWizardPage;
--class WebViewPage;
--class Flow2AuthCredsPage;
- 
++#ifndef NO_WEBENGINE
+ class WebViewPage;
+ class Flow2AuthCredsPage;
++#endif
+
  /**
   * @brief The OwncloudWizard class
-@@ -114,11 +112,9 @@ private:
+@@ -114,11 +116,15 @@ private:
  #ifndef NO_SHIBBOLETH
      OwncloudShibbolethCredsPage *_shibbolethCredsPage;
  #endif
--    Flow2AuthCredsPage *_flow2CredsPage;
++#ifndef NO_WEBENGINE
+     Flow2AuthCredsPage *_flow2CredsPage;
++#endif
      OwncloudAdvancedSetupPage *_advancedSetupPage;
      OwncloudWizardResultPage *_resultPage;
-     AbstractCredentialsWizardPage *_credentialsPage;
--    WebViewPage *_webViewPage;
- 
+     AbstractCredentialsWizardPage *_credentialsPage = nullptr;
++#ifndef NO_WEBENGINE
+     WebViewPage *_webViewPage;
++#endif
+
      QStringList _setupLog;
- 
-diff --git a/src/gui/wizard/owncloudwizardcommon.h b/src/gui/wizard/owncloudwizardcommon.h
-index d1f7c08be..c55ed04fd 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 76789a8ce..06c94ea5b 100644
+index d40ccede4..0125f778b 100644
 --- a/src/libsync/networkjobs.cpp
 +++ b/src/libsync/networkjobs.cpp
-@@ -921,7 +921,7 @@ void DetermineAuthTypeJob::start()
-     });
-     connect(oldFlowRequired, &JsonApiJob::jsonReceived, this, [this](const QJsonDocument &json, int statusCode) {
-         if (statusCode == 200) {
--            _resultOldFlow = LoginFlowV2;
-+            _resultOldFlow = Basic;
- 
-             auto data = json.object().value("ocs").toObject().value("data").toObject().value("capabilities").toObject();
-             auto gs = data.value("globalscale");
-@@ -929,7 +929,7 @@ void DetermineAuthTypeJob::start()
-                 auto flow = gs.toObject().value("desktoplogin");
-                 if (flow != QJsonValue::Undefined) {
-                     if (flow.toInt() == 1) {
--                        _resultOldFlow = WebViewFlow;
-+                        _resultOldFlow = Basic;
-                     }
-                 }
-             }
-@@ -955,17 +955,17 @@ void DetermineAuthTypeJob::checkAllDone()
- 
+@@ -966,12 +966,20 @@ void DetermineAuthTypeJob::checkAllDone()
+
      // WebViewFlow > OAuth > Shib > Basic
      if (_account->serverVersionInt() >= Account::makeServerVersion(12, 0, 0)) {
--        result = WebViewFlow;
++#ifndef NO_WEBENGINE
+         result = WebViewFlow;
++#else
 +        result = Basic;
++#endif
      }
- 
+
      // LoginFlowV2 > WebViewFlow > OAuth > Shib > Basic
      if (_account->serverVersionInt() >= Account::makeServerVersion(16, 0, 0)) {
--        result = LoginFlowV2;
++#ifndef NO_WEBENGINE
+         result = LoginFlowV2;
++#else
 +        result = Basic;
++#endif
      }
- 
+
      // If we determined that we need the webview flow (GS for example) then we switch to that
--    if (_resultOldFlow == WebViewFlow) {
--        result = WebViewFlow;
-+    if (_resultOldFlow == Basic) {
-+        result = Basic;
-     }
- 
-     qCInfo(lcDetermineAuthTypeJob) << "Auth type for" << _account->davUrl() << "is" << result;
-diff --git a/src/libsync/networkjobs.h b/src/libsync/networkjobs.h
-index 765204c88..088c517d7 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);
+--
+2.28.0
+
-- 
2.28.0

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.parabola.nu/pipermail/dev/attachments/20200825/37b58e30/attachment-0001.sig>


More information about the Dev mailing list