owncloudclient: update to 2.11.1.
This commit is contained in:
parent
2118b866b3
commit
a9149121fc
|
@ -0,0 +1,185 @@
|
||||||
|
From 63ae3af11673122be4178a9e4a15051b21dd2158 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hannah von Reth <hannah.vonreth@owncloud.com>
|
||||||
|
Date: Wed, 22 Jun 2022 17:14:38 +0200
|
||||||
|
Subject: [PATCH] CMake: Implement WITH_AUTO_UPDATER
|
||||||
|
|
||||||
|
Fixes: #9082
|
||||||
|
---
|
||||||
|
CMakeLists.txt | 3 +++
|
||||||
|
changelog/unreleased/9082 | 5 +++++
|
||||||
|
src/gui/CMakeLists.txt | 5 ++++-
|
||||||
|
src/gui/application.cpp | 5 +++++
|
||||||
|
src/gui/generalsettings.cpp | 11 +++++++++++
|
||||||
|
src/gui/main.cpp | 5 +++++
|
||||||
|
6 files changed, 33 insertions(+), 1 deletion(-)
|
||||||
|
create mode 100644 changelog/unreleased/9082
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 546a5cf42e5..e95689fda78 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -104,6 +104,9 @@ option(BUILD_LIBRARIES_ONLY "BUILD_LIBRARIES_ONLY" OFF)
|
||||||
|
# build the GUI component, when disabled only owncloudcmd is built
|
||||||
|
option(BUILD_GUI "BUILD_GUI" ON)
|
||||||
|
|
||||||
|
+# build the auto updater component
|
||||||
|
+option(WITH_AUTO_UPDATER "WITH_AUTO_UPDATER" ON)
|
||||||
|
+
|
||||||
|
# specify additional vfs plugins
|
||||||
|
set(VIRTUAL_FILE_SYSTEM_PLUGINS off suffix win CACHE STRING "Name of internal plugin in src/libsync/vfs or the locations of virtual file plugins")
|
||||||
|
|
||||||
|
diff --git a/changelog/unreleased/9082 b/changelog/unreleased/9082
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..97cf81b1527
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/changelog/unreleased/9082
|
||||||
|
@@ -0,0 +1,5 @@
|
||||||
|
+Enhancement: Add CMakeOption WITH_AUTO_UPDATER
|
||||||
|
+
|
||||||
|
+WITH_AUTO_UPDATER allows to build the client without the auto updater.
|
||||||
|
+
|
||||||
|
+https://github.com/owncloud/client/issues/9082
|
||||||
|
diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt
|
||||||
|
index b87a444044b..733e0401fea 100644
|
||||||
|
--- a/src/gui/CMakeLists.txt
|
||||||
|
+++ b/src/gui/CMakeLists.txt
|
||||||
|
@@ -168,7 +168,10 @@ elseif(UNIX AND NOT APPLE )
|
||||||
|
guiutility_unix.cpp)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-add_subdirectory(updater)
|
||||||
|
+if(WITH_AUTO_UPDATER)
|
||||||
|
+ add_subdirectory(updater)
|
||||||
|
+ target_compile_definitions(owncloudCore PRIVATE WITH_AUTO_UPDATER)
|
||||||
|
+endif()
|
||||||
|
|
||||||
|
|
||||||
|
if(WITH_CRASHREPORTER)
|
||||||
|
diff --git a/src/gui/application.cpp b/src/gui/application.cpp
|
||||||
|
index f9cd5c07f79..f2f3eac8f83 100644
|
||||||
|
--- a/src/gui/application.cpp
|
||||||
|
+++ b/src/gui/application.cpp
|
||||||
|
@@ -36,7 +36,9 @@
|
||||||
|
#include "sharedialog.h"
|
||||||
|
#include "accountmanager.h"
|
||||||
|
#include "creds/abstractcredentials.h"
|
||||||
|
+#ifdef WITH_AUTO_UPDATER
|
||||||
|
#include "updater/ocupdater.h"
|
||||||
|
+#endif
|
||||||
|
#include "owncloudsetupwizard.h"
|
||||||
|
#include "version.h"
|
||||||
|
#include "csync_exclude.h"
|
||||||
|
@@ -370,6 +373,7 @@ Application::Application(int &argc, char **argv)
|
||||||
|
connect(&_networkConfigurationManager, &QNetworkConfigurationManager::configurationChanged,
|
||||||
|
this, &Application::slotSystemOnlineConfigurationChanged);
|
||||||
|
|
||||||
|
+#ifdef WITH_AUTO_UPDATER
|
||||||
|
// Update checks
|
||||||
|
UpdaterScheduler *updaterScheduler = new UpdaterScheduler(this);
|
||||||
|
connect(updaterScheduler, &UpdaterScheduler::updaterAnnouncement,
|
||||||
|
@@ -378,6 +382,7 @@ Application::Application(int &argc, char **argv)
|
||||||
|
});
|
||||||
|
connect(updaterScheduler, &UpdaterScheduler::requestRestart,
|
||||||
|
_folderManager.data(), &FolderMan::slotScheduleAppRestart);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
// Cleanup at Quit.
|
||||||
|
connect(this, &QCoreApplication::aboutToQuit, this, &Application::slotCleanup);
|
||||||
|
diff --git a/src/gui/generalsettings.cpp b/src/gui/generalsettings.cpp
|
||||||
|
index 88fca875eac..b9f74984522 100644
|
||||||
|
--- a/src/gui/generalsettings.cpp
|
||||||
|
+++ b/src/gui/generalsettings.cpp
|
||||||
|
@@ -21,12 +21,15 @@
|
||||||
|
#include "configfile.h"
|
||||||
|
#include "theme.h"
|
||||||
|
|
||||||
|
+#ifdef WITH_AUTO_UPDATER
|
||||||
|
#include "updater/updater.h"
|
||||||
|
#include "updater/ocupdater.h"
|
||||||
|
#ifdef Q_OS_MAC
|
||||||
|
// FIXME We should unify those, but Sparkle does everything behind the scene transparently
|
||||||
|
#include "updater/sparkleupdater.h"
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#include "ignorelisteditor.h"
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
@@ -110,6 +113,7 @@ GeneralSettings::GeneralSettings(QWidget *parent)
|
||||||
|
connect(AccountManager::instance(), &AccountManager::accountAdded, this, &GeneralSettings::loadMiscSettings);
|
||||||
|
|
||||||
|
// Only our standard brandings currently support beta channel
|
||||||
|
+#ifdef WITH_AUTO_UPDATER
|
||||||
|
if (Theme::instance()->appName() != QLatin1String("testpilotcloud")) {
|
||||||
|
#ifdef Q_OS_MAC
|
||||||
|
// Because we don't have any statusString from the SparkleUpdater anyway we can hide the whole thing
|
||||||
|
@@ -122,6 +126,9 @@ GeneralSettings::GeneralSettings(QWidget *parent)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
+#else
|
||||||
|
+ _ui->updaterWidget->hide();
|
||||||
|
+#endif
|
||||||
|
connect(_ui->about_pushButton, &QPushButton::clicked, this, &GeneralSettings::showAbout);
|
||||||
|
|
||||||
|
if (!Theme::instance()->aboutShowCopyright()) {
|
||||||
|
@@ -166,6 +173,7 @@ void GeneralSettings::showEvent(QShowEvent *)
|
||||||
|
|
||||||
|
void GeneralSettings::slotUpdateInfo()
|
||||||
|
{
|
||||||
|
+#ifdef WITH_AUTO_UPDATER
|
||||||
|
if (ConfigFile().skipUpdateCheck() || !Updater::instance()) {
|
||||||
|
// updater disabled on compile
|
||||||
|
_ui->updaterWidget->setVisible(false);
|
||||||
|
@@ -194,10 +202,12 @@ void GeneralSettings::slotUpdateInfo()
|
||||||
|
_ui->updateChannel->setCurrentIndex(ConfigFile().updateChannel() == "beta" ? 1 : 0);
|
||||||
|
connect(_ui->updateChannel, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
|
||||||
|
this, &GeneralSettings::slotUpdateChannelChanged, Qt::UniqueConnection);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void GeneralSettings::slotUpdateChannelChanged(int index)
|
||||||
|
{
|
||||||
|
+#ifdef WITH_AUTO_UPDATER
|
||||||
|
QString channel = index == 0 ? QStringLiteral("stable") : QStringLiteral("beta");
|
||||||
|
if (channel == ConfigFile().updateChannel())
|
||||||
|
return;
|
||||||
|
@@ -239,6 +249,7 @@ void GeneralSettings::slotUpdateChannelChanged(int index)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
msgBox->open();
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void GeneralSettings::saveMiscSettings()
|
||||||
|
diff --git a/src/gui/main.cpp b/src/gui/main.cpp
|
||||||
|
index dec162d04a3..903dc5ff36b 100644
|
||||||
|
--- a/src/gui/main.cpp
|
||||||
|
+++ b/src/gui/main.cpp
|
||||||
|
@@ -21,7 +21,9 @@
|
||||||
|
#include "resources/loadresources.h"
|
||||||
|
#include "theme.h"
|
||||||
|
|
||||||
|
+#ifdef WITH_AUTO_UPDATER
|
||||||
|
#include "updater/updater.h"
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#include <QTimer>
|
||||||
|
#include <QMessageBox>
|
||||||
|
@@ -59,6 +61,8 @@ int main(int argc, char **argv)
|
||||||
|
// TODO: 2.11 move to platform class
|
||||||
|
Utility::startShutdownWatcher();
|
||||||
|
#endif
|
||||||
|
+
|
||||||
|
+#ifdef WITH_AUTO_UPDATER
|
||||||
|
// if handleStartup returns true, main()
|
||||||
|
// needs to terminate here, e.g. because
|
||||||
|
// the updater is triggered
|
||||||
|
@@ -66,6 +70,7 @@ int main(int argc, char **argv)
|
||||||
|
if (updater && updater->handleStartup()) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
// if the application is already running, notify it.
|
||||||
|
if (app.isRunning()) {
|
|
@ -1,44 +0,0 @@
|
||||||
From d987a7e7cb19367d708e21f9ef881afecffe35a3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Hannah von Reth <hannah.vonreth@owncloud.com>
|
|
||||||
Date: Wed, 29 Sep 2021 13:36:26 +0200
|
|
||||||
Subject: [PATCH] Fix unit test for the root user
|
|
||||||
|
|
||||||
---
|
|
||||||
test/testdownload.cpp | 4 ++++
|
|
||||||
test/testfolderman.cpp | 8 +++++---
|
|
||||||
2 files changed, 9 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/test/testdownload.cpp b/test/testdownload.cpp
|
|
||||||
index b37cb807da..4af30ae72e 100644
|
|
||||||
--- a/test/testdownload.cpp
|
|
||||||
+++ b/test/testdownload.cpp
|
|
||||||
@@ -150,6 +150,10 @@ private slots:
|
|
||||||
void testMoveFailsInAConflict() {
|
|
||||||
#ifdef Q_OS_WIN
|
|
||||||
QSKIP("Not run on windows because permission on directory does not do what is expected");
|
|
||||||
+#else
|
|
||||||
+ if (getuid() == 0) {
|
|
||||||
+ QSKIP("The permissions have no effect on the root user");
|
|
||||||
+ }
|
|
||||||
#endif
|
|
||||||
// Test for https://github.com/owncloud/client/issues/7015
|
|
||||||
// We want to test the case in which the renaming of the original to the conflict file succeeds,
|
|
||||||
diff --git a/test/testfolderman.cpp b/test/testfolderman.cpp
|
|
||||||
index 8fc2cc2627..47213ed6b9 100644
|
|
||||||
--- a/test/testfolderman.cpp
|
|
||||||
+++ b/test/testfolderman.cpp
|
|
||||||
@@ -102,9 +102,11 @@ private slots:
|
|
||||||
QVERIFY(folderman->checkPathValidityForNewFolder(dirPath + "/link1/subfolder").isNull());
|
|
||||||
QVERIFY(folderman->checkPathValidityForNewFolder(dirPath + "/link2/free/subfolder").isNull());
|
|
||||||
|
|
||||||
- // Should not have the rights
|
|
||||||
- QVERIFY(!folderman->checkPathValidityForNewFolder("/").isNull());
|
|
||||||
- QVERIFY(!folderman->checkPathValidityForNewFolder("/usr/bin/somefolder").isNull());
|
|
||||||
+ if (getuid() != 0) {
|
|
||||||
+ // Should not have the rights
|
|
||||||
+ QVERIFY(!folderman->checkPathValidityForNewFolder("/").isNull());
|
|
||||||
+ QVERIFY(!folderman->checkPathValidityForNewFolder("/usr/bin/somefolder").isNull());
|
|
||||||
+ }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef Q_OS_WIN // drive-letter tests
|
|
|
@ -1,83 +0,0 @@
|
||||||
Index: client-2.10.1/src/common/asserts.h
|
|
||||||
===================================================================
|
|
||||||
--- client-2.10.1.orig/src/common/asserts.h
|
|
||||||
+++ client-2.10.1/src/common/asserts.h
|
|
||||||
@@ -44,7 +44,7 @@
|
|
||||||
} else { \
|
|
||||||
}
|
|
||||||
|
|
||||||
-inline OC_REQUIRED_RESULT bool __OC_ENSURE(bool condition, const char *cond, const char *file, int line, const char *info)
|
|
||||||
+OC_REQUIRED_RESULT inline bool __OC_ENSURE(bool condition, const char *cond, const char *file, int line, const char *info)
|
|
||||||
{
|
|
||||||
if (Q_UNLIKELY(!condition)) {
|
|
||||||
OC_ASSERT_MSG("ENSURE: \"%s\" in file %s, line %d %s", cond, file, line, info);
|
|
||||||
Index: client-2.10.1/src/common/vfs.h
|
|
||||||
===================================================================
|
|
||||||
--- client-2.10.1.orig/src/common/vfs.h
|
|
||||||
+++ client-2.10.1/src/common/vfs.h
|
|
||||||
@@ -162,17 +162,17 @@ public:
|
|
||||||
virtual bool isHydrating() const = 0;
|
|
||||||
|
|
||||||
/// Create a new dehydrated placeholder. Called from PropagateDownload.
|
|
||||||
- virtual OC_REQUIRED_RESULT Result<void, QString> createPlaceholder(const SyncFileItem &item) = 0;
|
|
||||||
+ OC_REQUIRED_RESULT virtual Result<void, QString> createPlaceholder(const SyncFileItem &item) = 0;
|
|
||||||
|
|
||||||
/** Discovery hook: even unchanged files may need UPDATE_METADATA.
|
|
||||||
*
|
|
||||||
* For instance cfapi vfs wants local hydrated non-placeholder files to
|
|
||||||
* become hydrated placeholder files.
|
|
||||||
*/
|
|
||||||
- virtual OC_REQUIRED_RESULT bool needsMetadataUpdate(const SyncFileItem &item) = 0;
|
|
||||||
+ OC_REQUIRED_RESULT virtual bool needsMetadataUpdate(const SyncFileItem &item) = 0;
|
|
||||||
|
|
||||||
/// Determine whether the file at the given absolute path is a dehydrated placeholder.
|
|
||||||
- virtual OC_REQUIRED_RESULT bool isDehydratedPlaceholder(const QString &filePath) = 0;
|
|
||||||
+ OC_REQUIRED_RESULT virtual bool isDehydratedPlaceholder(const QString &filePath) = 0;
|
|
||||||
|
|
||||||
/** Similar to isDehydratedPlaceholder() but used from sync discovery.
|
|
||||||
*
|
|
||||||
@@ -181,7 +181,7 @@ public:
|
|
||||||
*
|
|
||||||
* Returning true means that type was fully determined.
|
|
||||||
*/
|
|
||||||
- virtual OC_REQUIRED_RESULT bool statTypeVirtualFile(csync_file_stat_t *stat, void *stat_data) = 0;
|
|
||||||
+ OC_REQUIRED_RESULT virtual bool statTypeVirtualFile(csync_file_stat_t *stat, void *stat_data) = 0;
|
|
||||||
|
|
||||||
/** Sets the pin state for the item at a path.
|
|
||||||
*
|
|
||||||
@@ -192,7 +192,7 @@ public:
|
|
||||||
*
|
|
||||||
* relFilePath is relative to the sync folder. Can be "" for root folder.
|
|
||||||
*/
|
|
||||||
- virtual OC_REQUIRED_RESULT bool setPinState(const QString &relFilePath, PinState state) = 0;
|
|
||||||
+ OC_REQUIRED_RESULT virtual bool setPinState(const QString &relFilePath, PinState state) = 0;
|
|
||||||
|
|
||||||
/** Returns the pin state of an item at a path.
|
|
||||||
*
|
|
||||||
@@ -203,7 +203,7 @@ public:
|
|
||||||
*
|
|
||||||
* Returns none on retrieval error.
|
|
||||||
*/
|
|
||||||
- virtual OC_REQUIRED_RESULT Optional<PinState> pinState(const QString &relFilePath) = 0;
|
|
||||||
+ OC_REQUIRED_RESULT virtual Optional<PinState> pinState(const QString &relFilePath) = 0;
|
|
||||||
|
|
||||||
/** Returns availability status of an item at a path.
|
|
||||||
*
|
|
||||||
@@ -212,7 +212,7 @@ public:
|
|
||||||
*
|
|
||||||
* folderPath is relative to the sync folder. Can be "" for root folder.
|
|
||||||
*/
|
|
||||||
- virtual OC_REQUIRED_RESULT AvailabilityResult availability(const QString &folderPath) = 0;
|
|
||||||
+ OC_REQUIRED_RESULT virtual AvailabilityResult availability(const QString &folderPath) = 0;
|
|
||||||
|
|
||||||
public slots:
|
|
||||||
/** Update in-sync state based on SyncFileStatusTracker signal.
|
|
||||||
@@ -240,7 +240,7 @@ protected:
|
|
||||||
* If the remote metadata changes, the local placeholder's metadata should possibly
|
|
||||||
* change as well.
|
|
||||||
*/
|
|
||||||
- virtual OC_REQUIRED_RESULT Result<ConvertToPlaceholderResult, QString> updateMetadata(const SyncFileItem &item, const QString &filePath, const QString &replacesFile) = 0;
|
|
||||||
+ OC_REQUIRED_RESULT virtual Result<ConvertToPlaceholderResult, QString> updateMetadata(const SyncFileItem &item, const QString &filePath, const QString &replacesFile) = 0;
|
|
||||||
|
|
||||||
/** Setup the plugin for the folder.
|
|
||||||
*
|
|
|
@ -1,10 +1,10 @@
|
||||||
# Template file for 'owncloudclient'
|
# Template file for 'owncloudclient'
|
||||||
pkgname=owncloudclient
|
pkgname=owncloudclient
|
||||||
version=2.10.1
|
version=2.11.1
|
||||||
revision=1
|
revision=1
|
||||||
wrksrc=client-${version}
|
wrksrc=client-${version}
|
||||||
build_style=cmake
|
build_style=cmake
|
||||||
configure_args="-Wno-dev -DNO_SHIBBOLETH=TRUE"
|
configure_args="-Wno-dev -DNO_SHIBBOLETH=TRUE -DWITH_AUTO_UPDATER=OFF"
|
||||||
hostmakedepends="pkg-config extra-cmake-modules"
|
hostmakedepends="pkg-config extra-cmake-modules"
|
||||||
makedepends="qtkeychain-qt5-devel sqlite-devel qt5-declarative-devel
|
makedepends="qtkeychain-qt5-devel sqlite-devel qt5-declarative-devel
|
||||||
qt5-tools-devel qt5-plugin-odbc qt5-plugin-tds qt5-plugin-pgsql qt5-plugin-mysql
|
qt5-tools-devel qt5-plugin-odbc qt5-plugin-tds qt5-plugin-pgsql qt5-plugin-mysql
|
||||||
|
@ -17,7 +17,7 @@ license="GPL-2.0-or-later"
|
||||||
homepage="https://www.owncloud.org"
|
homepage="https://www.owncloud.org"
|
||||||
changelog="https://raw.githubusercontent.com/owncloud/client/master/CHANGELOG.md"
|
changelog="https://raw.githubusercontent.com/owncloud/client/master/CHANGELOG.md"
|
||||||
distfiles="https://github.com/owncloud/client/archive/v${version}.tar.gz"
|
distfiles="https://github.com/owncloud/client/archive/v${version}.tar.gz"
|
||||||
checksum=cd79c46e0c13b606ec08527f9f5f35fe295d4655c12510aa6805ccb797119c49
|
checksum=72e13d90e4d1c71bdf863a2387f36bcccbc5b410aac2d93144fe3567056ba599
|
||||||
|
|
||||||
if [ "$CROSS_BUILD" ]; then
|
if [ "$CROSS_BUILD" ]; then
|
||||||
hostmakedepends+=" qt5-host-tools qt5-tools-devel"
|
hostmakedepends+=" qt5-host-tools qt5-tools-devel"
|
||||||
|
|
Loading…
Reference in New Issue