Merge remote-tracking branch 'origin/2.6'

This commit is contained in:
Hannah von Reth 2020-04-02 09:24:58 +02:00
commit 080a569fff
15 changed files with 177 additions and 73 deletions

View File

@ -6,13 +6,13 @@
# includes CMAKE_SOURCE_DIR or so.
if (DEFINED MAC_INSTALLER_BACKGROUND_FILE )
set(MAC_INSTALLER_DO_CUSTOM_BACKGROUND "1")
set(MAC_INSTALLER_DO_CUSTOM_BACKGROUND "true")
else()
set(MAC_INSTALLER_DO_CUSTOM_BACKGROUND "0")
set(MAC_INSTALLER_DO_CUSTOM_BACKGROUND "false")
endif()
find_package(Qt5 5.6 COMPONENTS Core REQUIRED)
configure_file(create_mac.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/create_mac.sh)
configure_file(macosx.pkgproj.cmake ${CMAKE_CURRENT_BINARY_DIR}/macosx.pkgproj)
configure_file(pre_install.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/pre_install.sh)
configure_file(post_install.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/post_install.sh)
configure_file(create_mac.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/create_mac.sh @ONLY)
configure_file(macosx.pkgproj.cmake ${CMAKE_CURRENT_BINARY_DIR}/macosx.pkgproj @ONLY)
configure_file(pre_install.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/pre_install.sh @ONLY)
configure_file(post_install.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/post_install.sh @ONLY)

View File

@ -5,6 +5,10 @@
<key>PACKAGES</key>
<array>
<dict>
<key>MUST-CLOSE-APPLICATION-ITEMS</key>
<array/>
<key>MUST-CLOSE-APPLICATIONS</key>
<false/>
<key>PACKAGE_FILES</key>
<dict>
<key>DEFAULT_INSTALL_LOCATION</key>
@ -251,7 +255,7 @@
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<integer>1005</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
@ -353,6 +357,38 @@
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Automator</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Extensions</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>0</integer>
@ -466,43 +502,65 @@
</dict>
<key>PAYLOAD_TYPE</key>
<integer>0</integer>
<key>PRESERVE_EXTENDED_ATTRIBUTES</key>
<false/>
<key>SHOW_INVISIBLE</key>
<false/>
<key>SPLIT_FORKS</key>
<true/>
<key>TREAT_MISSING_FILES_AS_WARNING</key>
<false/>
<key>VERSION</key>
<integer>2</integer>
<integer>5</integer>
</dict>
<key>PACKAGE_SCRIPTS</key>
<dict>
<key>POSTINSTALL_PATH</key>
<dict>
<key>PATH</key>
<string>@CMAKE_CURRENT_BINARY_DIR@/post_install.sh</string>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>PREINSTALL_PATH</key>
<dict>
<key>PATH</key>
<string>@CMAKE_CURRENT_BINARY_DIR@/pre_install.sh</string>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>RESOURCES</key>
<array/>
</dict>
<key>POSTINSTALL_PATH</key>
<dict>
<key>PATH</key>
<string>@CMAKE_CURRENT_BINARY_DIR@/post_install.sh</string>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>PREINSTALL_PATH</key>
<dict>
<key>PATH</key>
<string>@CMAKE_CURRENT_BINARY_DIR@/pre_install.sh</string>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>RESOURCES</key>
<array/>
</dict>
<key>PACKAGE_SETTINGS</key>
<dict>
<key>AUTHENTICATION</key>
<integer>1</integer>
<key>CONCLUSION_ACTION</key>
<integer>0</integer>
<key>FOLLOW_SYMBOLIC_LINKS</key>
<false/>
<key>IDENTIFIER</key>
<string>@APPLICATION_REV_DOMAIN_INSTALLER@</string>
<key>LOCATION</key>
<integer>0</integer>
<key>NAME</key>
<string>@APPLICATION_NAME_XML_ESCAPED@</string>
<key>OVERWRITE_PERMISSIONS</key>
<false/>
<key>PAYLOAD_SIZE</key>
<integer>-1</integer>
<key>REFERENCE_PATH</key>
<string></string>
<key>RELOCATABLE</key>
<false/>
<key>USE_HFS+_COMPRESSION</key>
<false/>
<key>VERSION</key>
<string>@MIRALL_VERSION_FULL@</string>
</dict>
<key>TYPE</key>
<integer>0</integer>
<key>UUID</key>
<string>7D7219B7-1897-48C3-8533-842BDEC46F71</string>
</dict>
@ -532,6 +590,45 @@
<dict>
<key>ALIGNMENT</key>
<integer>6</integer>
<key>APPAREANCES</key>
<dict>
<key>DARK_AQUA</key>
<dict>
<key>ALIGNMENT</key>
<integer>6</integer>
<key>BACKGROUND_PATH</key>
<dict>
<key>PATH</key>
<string>@MAC_INSTALLER_BACKGROUND_FILE@</string>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>CUSTOM</key>
<true/>
<key>LAYOUT_DIRECTION</key>
<integer>0</integer>
<key>SCALING</key>
<integer>0</integer>
</dict>
<key>LIGHT_AQUA</key>
<dict>
<key>ALIGNMENT</key>
<integer>6</integer>
<key>BACKGROUND_PATH</key>
<dict>
<key>PATH</key>
<string>@MAC_INSTALLER_BACKGROUND_FILE@</string>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>CUSTOM</key>
<true/>
<key>LAYOUT_DIRECTION</key>
<integer>0</integer>
<key>SCALING</key>
<integer>0</integer>
</dict>
</dict>
<key>BACKGROUND_PATH</key>
<dict>
<key>PATH</key>
@ -540,9 +637,13 @@
<integer>0</integer>
</dict>
<key>CUSTOM</key>
<integer>@MAC_INSTALLER_DO_CUSTOM_BACKGROUND@</integer>
<@MAC_INSTALLER_DO_CUSTOM_BACKGROUND@/>
<key>LAYOUT_DIRECTION</key>
<integer>0</integer>
<key>SCALING</key>
<integer>0</integer>
<key>SHARED_SETTINGS_FOR_ALL_APPAREANCES</key>
<true/>
</dict>
<key>INSTALLATION TYPE</key>
<dict>
@ -578,10 +679,8 @@
<dict/>
</dict>
</dict>
<key>INSTALLATION TYPE</key>
<integer>1</integer>
<key>MODE</key>
<integer>1</integer>
<key>MODE</key>
<integer>1</integer>
</dict>
<key>INSTALLATION_STEPS</key>
<array>
@ -649,8 +748,6 @@
</dict>
<key>LICENSE</key>
<dict>
<key>KEYWORDS</key>
<dict/>
<key>LOCALIZATIONS</key>
<array/>
<key>MODE</key>
@ -683,10 +780,6 @@
<dict>
<key>LIST</key>
<array/>
<key>POSTINSTALL_PATH</key>
<dict/>
<key>PREINSTALL_PATH</key>
<dict/>
<key>RESOURCES</key>
<array/>
<key>ROOT_VOLUME_ONLY</key>
@ -694,14 +787,17 @@
</dict>
<key>PROJECT_SETTINGS</key>
<dict>
<key>ADVANCED_OPTIONS</key>
<dict/>
<key>ADVANCED_OPTIONS</key>
<dict>
<key>installer-script.domains:enable_localSystem</key>
<integer>1</integer>
</dict>
<key>BUILD_FORMAT</key>
<integer>0</integer>
<key>BUILD_PATH</key>
<dict>
<key>PATH</key>
<string>@CMAKE_INSTALL_PREFIX@/.</string>
<string>@CMAKE_INSTALL_PREFIX@/.</string>
<key>PATH_TYPE</key>
<integer>3</integer>
</dict>
@ -875,8 +971,12 @@
</array>
<key>NAME</key>
<string>@APPLICATION_NAME_XML_ESCAPED@ Installer</string>
<key>PAYLOAD_ONLY</key>
<false/>
<key>REFERENCE_FOLDER_PATH</key>
<string>@CMAKE_INSTALL_DIR@</string>
<string></string>
<key>TREAT_MISSING_PRESENTATION_DOCUMENTS_AS_WARNING</key>
<false/>
</dict>
</dict>
<key>TYPE</key>

View File

@ -1,7 +1,9 @@
#!/bin/sh
#!/bin/bash
LOGGED_IN_USER_ID=$(id -u "${USER}")
# Always enable the new 10.10 finder plugin if available
if [ -x "$(command -v pluginkit)" ]; then
if [[ -x "$(command -v pluginkit)" ]]; then
# add it to DB. This happens automatically too but we try to push it a bit harder for issue #3463
pluginkit -a "/Applications/@APPLICATION_EXECUTABLE@.app/Contents/PlugIns/FinderSyncExt.appex/"
# Since El Capitan we need to sleep #4650
@ -10,4 +12,10 @@ if [ -x "$(command -v pluginkit)" ]; then
pluginkit -e use -i @APPLICATION_REV_DOMAIN@.FinderSyncExt
fi
if [[ -f "${INSTALLER_TEMP}/OC_RESTART_NEEDED" ]]; then
if [[ "${COMMAND_LINE_INSTALL}" = "" ]]; then
/bin/launchctl asuser "${LOGGED_IN_USER_ID}" /usr/bin/open -g "/Applications/@APPLICATION_EXECUTABLE@.app"
fi
fi
exit 0

View File

@ -1,6 +1,10 @@
#!/bin/sh
#!/bin/bash
# kill the old version. see issue #2044
killall @APPLICATION_EXECUTABLE@
OC_INSTANCE=$(ps aux | grep "/Applications/@APPLICATION_EXECUTABLE@.app/Contents/MacOS/@APPLICATION_EXECUTABLE@")
if [[ "${OC_INSTANCE}" != "" ]]; then
kill $(echo ${OC_INSTANCE} | awk '{print $2}')
touch $INSTALLER_TEMP/OC_RESTART_NEEDED
fi
exit 0

View File

@ -0,0 +1,5 @@
Change: Restart the client after an update
We now start the client after an update, if the client was running before the update.
https://github.com/owncloud/enterprise/issues/3922

View File

@ -1,5 +1,5 @@
Bugfix: Client sometimes does not show up when started by a user
We fixed a bug where a client somtimes does not show up when a user request a start.
We fixed a bug where a client sometimes does not show up when a user request a start.
https://github.com/owncloud/client/issues/7018

View File

@ -1,6 +1,6 @@
Bugfix: Fix serveral wrong colored icons in dark mode
Bugfix: Fix several wrong colored icons in dark mode
We fixed multiple issues where monocrome icons where not converted to match the
We fixed multiple issues where monochrome icons where not converted to match the
current theme.
https://github.com/owncloud/client/issues/7043

View File

@ -1,5 +1,5 @@
Bugfix: Fixed bug in public link with password required
In the sharing dialog, "password required" capabilities lead to incorrect behavior
In the sharing dialog, "password required" capabilities lead to incorrect behaviour
https://github.com/owncloud/client/issues/7247

View File

@ -1,4 +1,4 @@
Bugfix: On Windows the share dialog somtimes does not open as the top most window
Bugfix: On Windows the share dialog does not open as the top most window
We now ensure that the our dialogs are correctly raised.

View File

@ -1,5 +1,5 @@
Bugfix: Client sometimes crashes when a placeholder file was moved
We fixed an issue where moving a plcaeholder file would lead to a crash.
We fixed an issue where moving a placeholder file would lead to a crash.
https://github.com/owncloud/client/issues/7799

View File

@ -0,0 +1,6 @@
Bugfix: Don't override cookies with old values
We fixed a bug where a client somteimes overrode the content of the cookie jar
with outdated or corrupted values
https://github.com/owncloud/client/pull/7831

View File

@ -49,18 +49,6 @@ AccessManager::AccessManager(QObject *parent)
setCookieJar(new CookieJar);
}
void AccessManager::setRawCookie(const QByteArray &rawCookie, const QUrl &url)
{
QNetworkCookie cookie(rawCookie.left(rawCookie.indexOf('=')),
rawCookie.mid(rawCookie.indexOf('=') + 1));
qCDebug(lcAccessManager) << cookie.name() << cookie.value();
QList<QNetworkCookie> cookieList;
cookieList.append(cookie);
QNetworkCookieJar *jar = cookieJar();
jar->setCookiesFromUrl(cookieList, url);
}
static QByteArray generateRequestId()
{
// Use a UUID with the starting and ending curly brace removed.
@ -71,12 +59,6 @@ static QByteArray generateRequestId()
QNetworkReply *AccessManager::createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData)
{
QNetworkRequest newRequest(request);
if (newRequest.hasRawHeader("cookie")) {
// This will set the cookie into the QNetworkCookieJar which will then override the cookie header
setRawCookie(request.rawHeader("cookie"), request.url());
}
newRequest.setRawHeader(QByteArray("User-Agent"), Utility::userAgentString());
// Some firewalls reject requests that have a "User-Agent" but no "Accept" header

View File

@ -34,8 +34,6 @@ class OWNCLOUDSYNC_EXPORT AccessManager : public QNetworkAccessManager
public:
AccessManager(QObject *parent = nullptr);
void setRawCookie(const QByteArray &rawCookie, const QUrl &url);
protected:
QNetworkReply *createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData = nullptr) override;
};

View File

@ -878,8 +878,6 @@ void DetermineAuthTypeJob::start()
req.setAttribute(HttpCredentials::DontAddCredentialsAttribute, true);
// Don't reuse previous auth credentials
req.setAttribute(QNetworkRequest::AuthenticationReuseAttribute, QNetworkRequest::Manual);
// Don't send cookies, we can't determine the auth type if we're logged in
req.setAttribute(QNetworkRequest::CookieLoadControlAttribute, QNetworkRequest::Manual);
auto propfind = _account->sendRequest("PROPFIND", _account->davUrl(), req);
propfind->setTimeout(30 * 1000);

View File

@ -889,6 +889,9 @@ private slots:
const QString src = "folder/folderA/file.txt";
const QString dest = "folder/folderB/file.txt";
FakeFolder fakeFolder{ FileInfo{ QString(), { FileInfo{ QStringLiteral("folder"), { FileInfo{ QStringLiteral("folderA"), { { QStringLiteral("file.txt"), 400 } } }, QStringLiteral("folderB") } } } } };
auto syncOpts = fakeFolder.syncEngine().syncOptions();
syncOpts._parallelNetworkJobs = 0;
fakeFolder.syncEngine().setSyncOptions(syncOpts);
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());