From adaa1713877887b3d27fc11103103f5929e32451 Mon Sep 17 00:00:00 2001 From: yopito Date: Thu, 11 Feb 2021 21:21:49 +0100 Subject: [PATCH] nextcloud-client: update to 3.1.2, no shibboleth and webkit support, kwallet subpackage * shibboleth is "highly deprecated" by upstream, will be removed in 3.2. * webkit support is currently ineffective and difficult to fix. * fix ~dolphin build options * nextcloud-client-kwallet: dedicated package for kwallet as credential storage Closes: #26774 --- srcpkgs/nextcloud-client-kwallet | 1 + .../files/kwallet/README.voidlinux | 6 + .../files/kwallet/nextcloud.kwallet | 4 + .../patches/no-webengine-support.patch | 371 ------------------ .../patches/no-webengine-support.patch.args | 1 - srcpkgs/nextcloud-client/patches/qt5.15.patch | 10 - srcpkgs/nextcloud-client/template | 44 ++- 7 files changed, 37 insertions(+), 400 deletions(-) create mode 120000 srcpkgs/nextcloud-client-kwallet create mode 100644 srcpkgs/nextcloud-client/files/kwallet/README.voidlinux create mode 100644 srcpkgs/nextcloud-client/files/kwallet/nextcloud.kwallet delete mode 100644 srcpkgs/nextcloud-client/patches/no-webengine-support.patch delete mode 100644 srcpkgs/nextcloud-client/patches/no-webengine-support.patch.args delete mode 100644 srcpkgs/nextcloud-client/patches/qt5.15.patch diff --git a/srcpkgs/nextcloud-client-kwallet b/srcpkgs/nextcloud-client-kwallet new file mode 120000 index 00000000000..50c67ada861 --- /dev/null +++ b/srcpkgs/nextcloud-client-kwallet @@ -0,0 +1 @@ +nextcloud-client \ No newline at end of file diff --git a/srcpkgs/nextcloud-client/files/kwallet/README.voidlinux b/srcpkgs/nextcloud-client/files/kwallet/README.voidlinux new file mode 100644 index 00000000000..d0a5e1dabed --- /dev/null +++ b/srcpkgs/nextcloud-client/files/kwallet/README.voidlinux @@ -0,0 +1,6 @@ +nextcloud-client-kwallet package provides a wrapper of nextcloud-client. +It enforces nextcloud-client to use kwallet as its credential storage. +This is usefull when user's desktop environment is not KDE/plasma. + +Nextcloud-client relies on qtkeychain to choose an appropriate storage backend. +But qtkeychain chooses kwallet over gnome-keyring only if the DE is KDE/Plasma. diff --git a/srcpkgs/nextcloud-client/files/kwallet/nextcloud.kwallet b/srcpkgs/nextcloud-client/files/kwallet/nextcloud.kwallet new file mode 100644 index 00000000000..7236b7df5a3 --- /dev/null +++ b/srcpkgs/nextcloud-client/files/kwallet/nextcloud.kwallet @@ -0,0 +1,4 @@ +#!/bin/sh +# Force usage of KDE kwallet as credential storage via qtkeychain as much as possible. +# related to https://github.com/void-linux/void-packages/issues/26774 +exec env DESKTOP_SESSION=kde KDE_SESSION_VERSION=5 /usr/bin/nextcloud "$@" diff --git a/srcpkgs/nextcloud-client/patches/no-webengine-support.patch b/srcpkgs/nextcloud-client/patches/no-webengine-support.patch deleted file mode 100644 index 0d2642870c6..00000000000 --- a/srcpkgs/nextcloud-client/patches/no-webengine-support.patch +++ /dev/null @@ -1,371 +0,0 @@ -source: https://github.com/nextcloud/desktop/pull/2204/ -*partial* pick since 2nd commit 1f577e5 is broken ("Try to preserve flow2") - -src/gui/CMakeLists.txt diff modified to support nextcloud client 3.1.0 -(git commit is then partially modified) - -From 5b6bde1c206c9b1edb0472a823776bdc91488db3 Mon Sep 17 00:00:00 2001 -From: Max Rees -Date: Sun, 23 Feb 2020 23:09:29 -0600 -Subject: [PATCH 1/2] Add support for compiling without QtWebEngine (webflow / - flow2 support) - -Signed-off-by: Max Rees -Signed-off-by: theova ---- - 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 a79edfcfb..c8ef114a4 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -4,7 +4,11 @@ endif() - - 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) -+ -+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 2f1e99e2b..c5be00c37 100644 ---- a/src/gui/CMakeLists.txt -+++ b/src/gui/CMakeLists.txt -@@ -119,23 +119,16 @@ - 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 - ) - -@@ -156,6 +149,18 @@ - ) - endif() - -+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) -@@ -328,8 +333,11 @@ - 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::GuiPrivate Qt5::Svg Qt5::Network Qt5::Xml Qt5::Qml Qt5::Quick Qt5::QuickControls2 Qt5::WebEngineWidgets) -+target_link_libraries( ${APPLICATION_EXECUTABLE} Qt5::Widgets Qt5::GuiPrivate 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 34c4cbc3e..372c52f44 100644 ---- a/src/gui/accountmanager.cpp -+++ b/src/gui/accountmanager.cpp -@@ -253,6 +253,7 @@ AccountPtr AccountManager::loadAccountHelper(QSettings &settings) - acc->setUrl(urlConfig.toUrl()); - } - -+#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; - -diff --git a/src/gui/creds/credentialsfactory.cpp b/src/gui/creds/credentialsfactory.cpp -index 6062f70eb..723196d08 100644 ---- a/src/gui/creds/credentialsfactory.cpp -+++ b/src/gui/creds/credentialsfactory.cpp -@@ -21,7 +21,9 @@ - #ifndef NO_SHIBBOLETH - #include "creds/shibbolethcredentials.h" - #endif -+#ifndef NO_WEBENGINE - #include "creds/webflowcredentials.h" -+#endif - - namespace OCC { - -@@ -40,8 +42,10 @@ namespace CredentialsFactory { - } else if (type == "shibboleth") { - return new ShibbolethCredentials; - #endif -+#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/wizard/owncloudsetuppage.cpp b/src/gui/wizard/owncloudsetuppage.cpp -index 71f1c19c9..d997125a8 100644 ---- a/src/gui/wizard/owncloudsetuppage.cpp -+++ b/src/gui/wizard/owncloudsetuppage.cpp -@@ -139,7 +139,11 @@ void OwncloudSetupPage::slotLogin() - void OwncloudSetupPage::slotGotoProviderList() - { - _ocWizard->setRegistration(true); -+#ifndef NO_WEBENGINE - _ocWizard->setAuthType(DetermineAuthTypeJob::AuthType::WebViewFlow); -+#else -+ _ocWizard->setAuthType(DetermineAuthTypeJob::AuthType::Basic); -+#endif - _authTypeKnown = true; - _checking = false; - emit completeChanged(); -diff --git a/src/gui/wizard/owncloudwizard.cpp b/src/gui/wizard/owncloudwizard.cpp -index 912222dca..463c19d48 100644 ---- a/src/gui/wizard/owncloudwizard.cpp -+++ b/src/gui/wizard/owncloudwizard.cpp -@@ -27,8 +27,10 @@ - #endif - #include "wizard/owncloudadvancedsetuppage.h" - #include "wizard/owncloudwizardresultpage.h" -+#ifndef NO_WEBENGINE - #include "wizard/webviewpage.h" - #include "wizard/flow2authcredspage.h" -+#endif - - #include "QProgressIndicator.h" - -@@ -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) -+#ifndef NO_WEBENGINE - , _webViewPage(new WebViewPage(this)) -+#endif - { - setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); - setPage(WizardCommon::Page_ServerSetup, _setupPage); - setPage(WizardCommon::Page_HttpCreds, _httpCredsPage); - setPage(WizardCommon::Page_OAuthCreds, _browserCredsPage); -+#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); -+#ifndef NO_WEBENGINE - setPage(WizardCommon::Page_WebView, _webViewPage); -+#endif - - connect(this, &QDialog::finished, this, &OwncloudWizard::basicSetupFinished); - -@@ -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); -+#ifndef NO_WEBENGINE - connect(_flow2CredsPage, &Flow2AuthCredsPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl); -+#endif - #ifndef NO_SHIBBOLETH - connect(_shibbolethCredsPage, &OwncloudShibbolethCredsPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl); - #endif -+#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,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) -@@ -177,9 +195,11 @@ void OwncloudWizard::successfulStep() - _browserCredsPage->setConnected(); - break; - -+#ifndef NO_WEBENGINE - case WizardCommon::Page_Flow2AuthCreds: - _flow2CredsPage->setConnected(); - break; -+#endif - - #ifndef NO_SHIBBOLETH - case WizardCommon::Page_ShibbolethCreds: -@@ -187,9 +207,11 @@ void OwncloudWizard::successfulStep() - break; - #endif - -+#ifndef NO_WEBENGINE - case WizardCommon::Page_WebView: - _webViewPage->setConnected(); - break; -+#endif - - case WizardCommon::Page_AdvancedSetup: - _advancedSetupPage->directoriesCreated(); -@@ -214,10 +236,12 @@ void OwncloudWizard::setAuthType(DetermineAuthTypeJob::AuthType type) - #endif - if (type == DetermineAuthTypeJob::OAuth) { - _credentialsPage = _browserCredsPage; -+#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; - } -@@ -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 -+ && (_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 ee6161ca5..c0ee06403 100644 ---- a/src/gui/wizard/owncloudwizard.h -+++ b/src/gui/wizard/owncloudwizard.h -@@ -39,8 +39,10 @@ class OwncloudAdvancedSetupPage; - class OwncloudWizardResultPage; - class AbstractCredentials; - class AbstractCredentialsWizardPage; -+#ifndef NO_WEBENGINE - class WebViewPage; - class Flow2AuthCredsPage; -+#endif - - /** - * @brief The OwncloudWizard class -@@ -114,11 +116,15 @@ private: - #ifndef NO_SHIBBOLETH - OwncloudShibbolethCredsPage *_shibbolethCredsPage; - #endif -+#ifndef NO_WEBENGINE - Flow2AuthCredsPage *_flow2CredsPage; -+#endif - OwncloudAdvancedSetupPage *_advancedSetupPage; - OwncloudWizardResultPage *_resultPage; - AbstractCredentialsWizardPage *_credentialsPage = nullptr; -+#ifndef NO_WEBENGINE - WebViewPage *_webViewPage; -+#endif - - QStringList _setupLog; - -diff --git a/src/libsync/networkjobs.cpp b/src/libsync/networkjobs.cpp -index d40ccede4..0125f778b 100644 ---- a/src/libsync/networkjobs.cpp -+++ b/src/libsync/networkjobs.cpp -@@ -966,12 +966,20 @@ void DetermineAuthTypeJob::checkAllDone() - - // WebViewFlow > OAuth > Shib > Basic - if (_account->serverVersionInt() >= Account::makeServerVersion(12, 0, 0)) { -+#ifndef NO_WEBENGINE - result = WebViewFlow; -+#else -+ result = Basic; -+#endif - } - - // LoginFlowV2 > WebViewFlow > OAuth > Shib > Basic - if (_account->serverVersionInt() >= Account::makeServerVersion(16, 0, 0)) { -+#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 --- -2.28.0 - diff --git a/srcpkgs/nextcloud-client/patches/no-webengine-support.patch.args b/srcpkgs/nextcloud-client/patches/no-webengine-support.patch.args deleted file mode 100644 index 2eba1cb3c5c..00000000000 --- a/srcpkgs/nextcloud-client/patches/no-webengine-support.patch.args +++ /dev/null @@ -1 +0,0 @@ --Np1 diff --git a/srcpkgs/nextcloud-client/patches/qt5.15.patch b/srcpkgs/nextcloud-client/patches/qt5.15.patch deleted file mode 100644 index 60d459c5fd4..00000000000 --- a/srcpkgs/nextcloud-client/patches/qt5.15.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- src/libsync/networkjobs.cpp 2020-03-03 20:32:31.000000000 +0100 -+++ - 2020-07-05 00:46:17.255659367 +0200 -@@ -30,6 +30,7 @@ - #include - #include - #include -+#include - #include - - #include "networkjobs.h" diff --git a/srcpkgs/nextcloud-client/template b/srcpkgs/nextcloud-client/template index dc4398a6319..cb674c0999d 100644 --- a/srcpkgs/nextcloud-client/template +++ b/srcpkgs/nextcloud-client/template @@ -1,18 +1,16 @@ # Template file for 'nextcloud-client' pkgname=nextcloud-client -version=3.1.1 +version=3.1.2 revision=1 wrksrc="desktop-${version}" build_style=cmake -configure_args="-Wno-dev $(vopt_if shibboleth '' '-DNO_SHIBBOLETH=True') - $(vopt_if webengine '' '-DNO_WEBENGINE=True')" +configure_args="-Wno-dev -DNO_SHIBBOLETH=True" hostmakedepends="pkg-config" makedepends="qt5-tools-devel qt5-declarative-devel qt5-webchannel-devel qt5-location-devel qtkeychain-qt5-devel sqlite-devel libcloudproviders-devel - qt5-quickcontrols2-devel + qt5-quickcontrols2-devel qt5-websockets-devel qt5-svg-devel $(vopt_if dolphin 'extra-cmake-modules kio-devel') - $(vopt_if shibboleth 'qt5-webkit-devel') - $(vopt_if webengine 'qt5-webengine-devel')" + qt5-webengine-devel" depends="qt5-graphicaleffects" checkdepends="cmocka-devel" conf_files="/etc/Nextcloud/sync-exclude.lst" @@ -21,19 +19,11 @@ maintainer="yopito " license="GPL-2.0-or-later" homepage="https://nextcloud.com/clients/" distfiles="https://github.com/nextcloud/desktop/archive/v${version}.tar.gz" -checksum=e296156a4de033a59f9b3210fe17fdfb8bb7aebefb715ae4e3b85e627e40a87f +checksum=2fb2c18f479be2a04cf999f037def705c4be0087816af727038f0c71cb2c6189 -build_options="dolphin shibboleth webengine" +build_options="dolphin" desc_option_dolphin="Build KDE dolphin support" -desc_option_shibboleth="Build Shibboleth support (needs Qt5 WebKit)" -desc_option_webengine="Build Qt5 WebEngine support" -build_options_default="dolphin shibboleth" - -if [ "$XBPS_TARGET_ENDIAN" = "le" ]; then - if [ "$XBPS_WORDSIZE" = "$XBPS_TARGET_WORDSIZE" ]; then - build_options_default+=" webengine" - fi -fi +build_options_default="dolphin" if [ "$CROSS_BUILD" ]; then hostmakedepends+=" qt5-qmake qt5-host-tools qt5-tools" @@ -41,7 +31,8 @@ if [ "$CROSS_BUILD" ]; then hostmakedepends+=" $(vopt_if dolphin 'kcoreaddons')" fi -subpackages="$(vopt_if dolphin 'nextcloud-client-dolphin') nextcloud-client-devel" +subpackages="nextcloud-client-kwallet nextcloud-client-devel" +subpackages+=" $(vopt_if dolphin 'nextcloud-client-dolphin')" if [ "$XBPS_CHECK_PKGS" ]; then configure_args+=" -DUNIT_TESTING=1" @@ -53,6 +44,23 @@ if [ "$XBPS_CHECK_PKGS" ]; then esac fi +nextcloud-client-kwallet_package() { + short_desc+=" - kwallet credential backend" + depends="nextcloud-client>=${version}_${revision} kwallet" + pkg_install() { + vbin ${FILESDIR}/kwallet/nextcloud.kwallet + vmkdir usr/share/applications + cp build/src/gui/com.nextcloud.desktopclient.nextcloud.desktop \ + ${DESTDIR}/usr/share/applications/nextcloud-kwallet.desktop + vsed -i -e 's,^Exec=.*,Exec=/usr/bin/nextcloud.kwallet,' \ + -e 's,\(^Name=.*\),\1 - use kwallet,' \ + -e 's,\(^Comment=.*\),\1 - use kwallet credential storage,' \ + -e '/^# Translations/,$d' \ + ${DESTDIR}/usr/share/applications/nextcloud-kwallet.desktop + vdoc ${FILESDIR}/kwallet/README.voidlinux + } +} + nextcloud-client-dolphin_package() { short_desc+=" - KDE dolphin integration" depends="nextcloud-client>=${version}_${revision}"