summaryrefslogtreecommitdiff
path: root/net-misc/nextcloud-client
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc/nextcloud-client')
-rw-r--r--net-misc/nextcloud-client/Manifest7
-rw-r--r--net-misc/nextcloud-client/files/nextcloud-client-3.2.3-inkscape.patch79
-rw-r--r--net-misc/nextcloud-client/files/nextcloud-client-3.2.3-webengine.patch419
-rw-r--r--net-misc/nextcloud-client/metadata.xml1
-rw-r--r--net-misc/nextcloud-client/nextcloud-client-3.2.3-r1.ebuild94
-rw-r--r--net-misc/nextcloud-client/nextcloud-client-3.2.3.ebuild94
6 files changed, 693 insertions, 1 deletions
diff --git a/net-misc/nextcloud-client/Manifest b/net-misc/nextcloud-client/Manifest
index 9870609e0dfd..0c9dbf5131bd 100644
--- a/net-misc/nextcloud-client/Manifest
+++ b/net-misc/nextcloud-client/Manifest
@@ -1,7 +1,12 @@
+AUX nextcloud-client-3.2.3-inkscape.patch 3190 BLAKE2B 432a1d418e61c982ff6f4d7a43151c5bd8ffb7d231542abc3ee42f450fad2eeed4e1d3e641ee4ac246d43174d69de4de7384516dd9a22c26a1c878ab0aa06f7e SHA512 0a92815371923bce701edd362583e11977556f17866fedf13ea48ed26e409610b80eb7a6b6181702b59250fa3868319624bdad34911746490f5a8330ad94b4a2
+AUX nextcloud-client-3.2.3-webengine.patch 15574 BLAKE2B 8cd752db888f87f075f3b69cf34e3e84fde99f3f2dec4891092d47c020b60efc49968bfee7ef8136b6e0454cc331b778fcbc2a94903b11c1cc3e587d153e3aa9 SHA512 b3ea743ab50ef8eda12a0bef8513d1563d3682c54e6af586ccf60cf7b4377e93913c4d6eb0ba1b65075203608bfa81f934dfc408b89c5bf3b84352524bc08091
DIST nextcloud-client-3.1.3.tar.gz 19552683 BLAKE2B 321ddc6bd5f9428abe1eafe25d426c26c99307c5e7d204bc60fd1bafe773fbed9cb54264f7b1ec7766078b8c06a2399c916a8bd9291e0e28e5b6b3ed8725a7a4 SHA512 ca0a70e65be67e10a7cb45f2b30f6b82230f30c2e3afcd16a222a8ed6fb8df4eff5e78fe0b6e3f4c6a18ff963896ccd6d8282c9829bd75a943324d4ab0068a99
DIST nextcloud-client-3.2.1.tar.gz 15234115 BLAKE2B 2fcbaab4e73db3cfbf7dea750a0e0782c6cb8bb03c867653a47d2f21cfe369da8e4eff8bf1f0ff548c62909e770132799a927e18f9c732a4d551b97ff6362572 SHA512 bf2b4e1c85e07ad32ed00efa4a56d6b4195b42f4d95c7cb32d8c43d2c5564ac1512155a9f51508d522366c5ce44104f1b076f1addef1147a77ace5a11bd500e6
DIST nextcloud-client-3.2.2.tar.gz 15398900 BLAKE2B b91c814977486db57b1864f71d3763c64f676449a5547f21bb379154f66a38bc4db355bb16cc6a70781cb45d4a4704f55238dd570f123b450c512bc3e0ce5b3c SHA512 ce6adbb09ee8495448b7da0c5e9637b3c775d28b8ee1656864843264bdacffbc402c9f507ced3e3943896ae25ee73975054b8ffa1577bdd3d32dc453c3f94d74
+DIST nextcloud-client-3.2.3.tar.gz 15381488 BLAKE2B 14ee239321d7c530dada9d4727fa7cc9801637827fc8dd065ea9b68c54f3559cdb56b0d0e0e37fc7aa5c668be51e3839bc33b20ea9ab73e4a1df4ba260b0ab9e SHA512 bbb247ce4945503a5b1af55ee200edaef000bb21220a9408657e057c98bd3f7bd646dedbedc57048e9f593f3a1d408ac37b4b01c390ecf85dca82868792e922d
EBUILD nextcloud-client-3.1.3.ebuild 1973 BLAKE2B f175a9555be40de2623e5392e99d587a6e5ae2e058964924165c01495be57d42f209c15db261571cc8120587e9be0c04aa5b83293f2d0e7f714fe521a8b6bac9 SHA512 65ec99fb719ec4ebdf0466aa59ac5e9a4ffecaac9a8b94cb2f59a2efadab5ce9e44ec54e574fc818cbb71554828c14b7b1a575ddd97fc881345854045b8931e3
EBUILD nextcloud-client-3.2.1.ebuild 1987 BLAKE2B 99a990f7413277e794c4c59050bf33bc4ea786955c6c2b65ca1b30f63a7cce3170f85577fd69449c971405a6a96c0a72afde08d12c3a3fa9af9b8615f0fbcaca SHA512 4c5db01203e7c93f2878f549b589d7b2e618b814a403423dfd88de4cc0f6eed0d8328ce64f854d04a4b565665c4df3083b10ce044f4b0e0356f7d69878c087c9
EBUILD nextcloud-client-3.2.2.ebuild 1987 BLAKE2B 99a990f7413277e794c4c59050bf33bc4ea786955c6c2b65ca1b30f63a7cce3170f85577fd69449c971405a6a96c0a72afde08d12c3a3fa9af9b8615f0fbcaca SHA512 4c5db01203e7c93f2878f549b589d7b2e618b814a403423dfd88de4cc0f6eed0d8328ce64f854d04a4b565665c4df3083b10ce044f4b0e0356f7d69878c087c9
-MISC metadata.xml 513 BLAKE2B b63b5116dcf22fc8b7608cf7a13b5749668a139f8e670419733cbcbd44284bb45227d16b9a3d5d50d505440e2d50fff77b98cfe4321afc78b20fd22ab3a495c9 SHA512 491340b64cb8bbeb0efc5cba4de9878aca75231bbfc19b8fdd2de895ed0cacaf154add48cec8964412a68e496f348dc539262afa74b08e38d2d7a27ed220ff5f
+EBUILD nextcloud-client-3.2.3-r1.ebuild 2175 BLAKE2B 9f3c68d6afd38a786b1808860b77b2f05c53361b7dbfae0a52bb0f46114c56f2f6c510b3d339179549af132b34478ae84e361313e47362ca53677dc0025b62ff SHA512 93364128839e839fb76752cb753301652dec39a6ff936dac43e90ca636180703889b1e48c79a0f9e814a9c094534e96d474583d2aee3222eabd3b3b4410a8797
+EBUILD nextcloud-client-3.2.3.ebuild 2034 BLAKE2B 6b5c122bd2c5d519ee1945a175298b723d5198043b00780d1cf937110a0c016014d34f8f66bb23bdeb4e5cb2aa8b82abe6a4a4397b2ccded916e34ab1217377f SHA512 6498817e25c0b7155afdf7a53fcfa0ca52cb7a3096645efdf72f8f35df7d5247db55677abd7524f78ea795813db23af7ae6d932c5adb5c6bc6c352eeb7fd25b2
+MISC metadata.xml 604 BLAKE2B 046885e743e6e4d73f3a829c4095fe1e9abba18f52001694ab7a2c5c27050c90c25bdbb15478741dabd63b7b670dd6a275049143b84c60c9e7477632b478ed43 SHA512 9ff591bd55d8fda95d54e20410506612a99920a23d5f40555aa17a53d9ad093cf36a330e65811f71a46751fb674d7ad6c24d5a5f16708d06b49f2e602a0e6eab
diff --git a/net-misc/nextcloud-client/files/nextcloud-client-3.2.3-inkscape.patch b/net-misc/nextcloud-client/files/nextcloud-client-3.2.3-inkscape.patch
new file mode 100644
index 000000000000..8b02ab2a8086
--- /dev/null
+++ b/net-misc/nextcloud-client/files/nextcloud-client-3.2.3-inkscape.patch
@@ -0,0 +1,79 @@
+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-06 19:20:34.225000546 +0200
+@@ -241,75 +241,6 @@
+ set(APPLICATION_ICON_NAME ${APPLICATION_SHORTNAME})
+ endif()
+
+-# Generate png icons from svg
+-find_program(INKSCAPE
+- NAMES inkscape inkscape.exe
+- REQUIRED
+- HINTS "C:\\Program Files\\Inkscape\\bin" "/usr/bin" ENV INKSCAPE_DIR)
+-# REQUIRED keyword is only supported on CMake 3.18 and above
+-if (NOT INKSCAPE)
+- message(FATAL_ERROR "Could not find inkscape. Set INKSCAPE_DIR to the path of executable.")
+-endif()
+-
+-function(generate_sized_png_from_svg icon_path size)
+- get_filename_component(icon_name_dir ${icon_path} DIRECTORY)
+- get_filename_component(icon_name_wle ${icon_path} NAME_WLE)
+-
+- if (EXISTS "${icon_name_dir}/${size}-${icon_name_wle}.png")
+- return()
+- endif()
+-
+- set(icon_output_name "${size}-${icon_name_wle}.png")
+- message(STATUS "Generate ${icon_output_name}")
+- execute_process(COMMAND
+- "${INKSCAPE}" -w ${size} -h ${size} "${icon_path}" -o "${icon_output_name}"
+- WORKING_DIRECTORY "${icon_name_dir}"
+- RESULT_VARIABLE
+- INKSCAPE_SIDEBAR_ERROR
+- OUTPUT_QUIET
+- ERROR_QUIET)
+-
+- if (INKSCAPE_SIDEBAR_ERROR)
+- message(FATAL_ERROR
+- "inkscape could not generate icon: ${INKSCAPE_SIDEBAR_ERROR}")
+- else()
+- endif()
+-endfunction()
+-
+-if ((APPLICATION_ICON_SET MATCHES "PNG")
+- AND
+- (NOT EXISTS "${theme_dir}/colored/${APPLICATION_ICON_NAME}-icon.svg"))
+- # We may have no svg application icon in when customers use PNG
+- # icons in brander, but theme.qrc expects a svg icon.
+- file(TOUCH "${theme_dir}/colored/${APPLICATION_ICON_NAME}-icon.svg")
+-endif()
+-
+-if(APPLE)
+- set(MACOS_SIDEBAR_ICON_SVG "${theme_dir}/colored/${APPLICATION_ICON_NAME}-sidebar.svg")
+- generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 16)
+- generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 32)
+- generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 64)
+- generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 128)
+- generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 256)
+-endif()
+-
+-if(WIN32)
+- set(STARTMENU_ICON_SVG "${theme_dir}/colored/${APPLICATION_ICON_NAME}-w10startmenu.svg")
+- generate_sized_png_from_svg(${STARTMENU_ICON_SVG} 70)
+- generate_sized_png_from_svg(${STARTMENU_ICON_SVG} 150)
+-endif()
+-
+-set(APP_ICON_SVG "${theme_dir}/colored/${APPLICATION_ICON_NAME}-icon.svg")
+-generate_sized_png_from_svg(${APP_ICON_SVG} 16)
+-generate_sized_png_from_svg(${APP_ICON_SVG} 24)
+-generate_sized_png_from_svg(${APP_ICON_SVG} 32)
+-generate_sized_png_from_svg(${APP_ICON_SVG} 48)
+-generate_sized_png_from_svg(${APP_ICON_SVG} 64)
+-generate_sized_png_from_svg(${APP_ICON_SVG} 128)
+-generate_sized_png_from_svg(${APP_ICON_SVG} 256)
+-generate_sized_png_from_svg(${APP_ICON_SVG} 512)
+-generate_sized_png_from_svg(${APP_ICON_SVG} 1024)
+-
+ file(GLOB_RECURSE OWNCLOUD_ICONS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-icon*")
+ if(APPLE)
+ file(GLOB_RECURSE OWNCLOUD_SIDEBAR_ICONS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-sidebar*")
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)
diff --git a/net-misc/nextcloud-client/metadata.xml b/net-misc/nextcloud-client/metadata.xml
index ea54627aff84..588dc46f7e60 100644
--- a/net-misc/nextcloud-client/metadata.xml
+++ b/net-misc/nextcloud-client/metadata.xml
@@ -8,6 +8,7 @@
<use>
<flag name="dolphin">Install the <pkg>kde-apps/dolphin</pkg> extension</flag>
<flag name="nautilus">Install the <pkg>gnome-base/nautilus</pkg> extension</flag>
+ <flag name="webengine">Enable old Flow1 login using <pkg>dev-qt/qtwebengine</pkg></flag>
</use>
<upstream>
<remote-id type="github">nextcloud/desktop</remote-id>
diff --git a/net-misc/nextcloud-client/nextcloud-client-3.2.3-r1.ebuild b/net-misc/nextcloud-client/nextcloud-client-3.2.3-r1.ebuild
new file mode 100644
index 000000000000..f5a364e114c6
--- /dev/null
+++ b/net-misc/nextcloud-client/nextcloud-client-3.2.3-r1.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake xdg
+
+DESCRIPTION="Desktop Syncing Client for Nextcloud"
+HOMEPAGE="https://github.com/nextcloud/desktop"
+SRC_URI="https://github.com/nextcloud/desktop/archive/v${PV/_/-}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="CC-BY-3.0 GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="doc dolphin nautilus test webengine"
+RESTRICT="!test? ( test )"
+
+COMMON_DEPEND=">=dev-db/sqlite-3.34:3
+ >=dev-libs/openssl-1.1.0:0=
+ dev-libs/qtkeychain[qt5(+)]
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtdeclarative:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5[ssl]
+ dev-qt/qtquickcontrols2:5
+ dev-qt/qtsvg:5
+ dev-qt/qtwebsockets:5
+ dev-qt/qtwidgets:5
+ sys-libs/zlib
+ dolphin? (
+ kde-frameworks/kcoreaddons:5
+ kde-frameworks/kio:5
+ )
+ nautilus? ( dev-python/nautilus-python )
+ webengine? ( dev-qt/qtwebengine:5[widgets] )"
+
+DEPEND="${COMMON_DEPEND}
+ dev-qt/linguist-tools:5
+ dev-qt/qtconcurrent:5
+ dev-qt/qtxml:5
+ doc? (
+ dev-python/sphinx
+ dev-tex/latexmk
+ dev-texlive/texlive-latexextra
+ virtual/latex-base
+ )
+ dolphin? ( kde-frameworks/extra-cmake-modules )
+ test? (
+ dev-util/cmocka
+ dev-qt/qttest:5
+ )"
+
+RDEPEND="${COMMON_DEPEND}"
+
+PATCHES=( "${FILESDIR}"/${P}-inkscape.patch
+ "${FILESDIR}"/${P}-webengine.patch
+ )
+
+S="${WORKDIR}/desktop-${PV/_/-}"
+
+src_prepare() {
+ # Keep tests in ${T}
+ sed -i -e "s#\"/tmp#\"${T}#g" test/test*.cpp || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc
+ -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/${PF}
+ -DBUILD_UPDATER=OFF
+ -DCMAKE_DISABLE_FIND_PACKAGE_Libcloudproviders=ON
+ $(cmake_use_find_package doc Sphinx)
+ $(cmake_use_find_package doc PdfLatex)
+ $(cmake_use_find_package webengine Qt5WebEngine)
+ $(cmake_use_find_package webengine Qt5WebEngineWidgets)
+ -DBUILD_SHELL_INTEGRATION_DOLPHIN=$(usex dolphin)
+ -DBUILD_SHELL_INTEGRATION_NAUTILUS=$(usex nautilus)
+ -DUNIT_TESTING=$(usex test)
+ )
+
+ cmake_src_configure
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if ! use doc ; then
+ elog "Documentation and man pages not installed"
+ elog "Enable doc USE-flag to generate them"
+ fi
+}
diff --git a/net-misc/nextcloud-client/nextcloud-client-3.2.3.ebuild b/net-misc/nextcloud-client/nextcloud-client-3.2.3.ebuild
new file mode 100644
index 000000000000..4bf713797b35
--- /dev/null
+++ b/net-misc/nextcloud-client/nextcloud-client-3.2.3.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake xdg
+
+DESCRIPTION="Desktop Syncing Client for Nextcloud"
+HOMEPAGE="https://github.com/nextcloud/desktop"
+SRC_URI="https://github.com/nextcloud/desktop/archive/v${PV/_/-}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="CC-BY-3.0 GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="doc dolphin nautilus test"
+RESTRICT="!test? ( test )"
+
+COMMON_DEPEND=">=dev-db/sqlite-3.34:3
+ dev-libs/qtkeychain[qt5(+)]
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtdeclarative:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5[ssl]
+ dev-qt/qtquickcontrols2:5
+ dev-qt/qtsvg:5
+ dev-qt/qtwebengine:5[widgets]
+ dev-qt/qtwebsockets:5
+ dev-qt/qtwidgets:5
+ sys-libs/zlib
+ dolphin? (
+ kde-frameworks/kcoreaddons:5
+ kde-frameworks/kio:5
+ )
+ >=dev-libs/openssl-1.1.0:0=
+ nautilus? ( dev-python/nautilus-python )"
+
+DEPEND="${COMMON_DEPEND}
+ dev-qt/linguist-tools:5
+ dev-qt/qtconcurrent:5
+ dev-qt/qtxml:5
+ doc? (
+ dev-python/sphinx
+ dev-tex/latexmk
+ dev-texlive/texlive-latexextra
+ virtual/latex-base
+ )
+ dolphin? ( kde-frameworks/extra-cmake-modules )
+ test? (
+ dev-util/cmocka
+ dev-qt/qttest:5
+ )"
+
+RDEPEND="${COMMON_DEPEND}"
+
+PATCHES=( "${FILESDIR}"/${P}-inkscape.patch )
+
+S="${WORKDIR}/desktop-${PV/_/-}"
+
+src_prepare() {
+ # Keep tests in ${T}
+ sed -i -e "s#\"/tmp#\"${T}#g" test/test*.cpp || die
+
+ if ! use nautilus; then
+ pushd shell_integration > /dev/null || die
+ cmake_comment_add_subdirectory nautilus
+ popd > /dev/null || die
+ fi
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc
+ -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/${PF}
+ -DCMAKE_DISABLE_FIND_PACKAGE_Sphinx=$(usex !doc)
+ -DCMAKE_DISABLE_FIND_PACKAGE_KF5=$(usex !dolphin)
+ -DNO_SHIBBOLETH=yes
+ -DBUILD_UPDATER=OFF
+ -DUNIT_TESTING=$(usex test)
+ )
+
+ cmake_src_configure
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if ! use doc ; then
+ elog "Documentation and man pages not installed"
+ elog "Enable doc USE-flag to generate them"
+ fi
+}