Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/admin
diff options
context:
space:
mode:
authorHannah von Reth <hannah.vonreth@owncloud.com>2020-01-21 16:57:11 +0300
committerHannah von Reth <vonreth@kde.org>2020-01-22 15:29:33 +0300
commit8d58f6c28ee3cdbbc7649f25ec9d6766c6fa3fe0 (patch)
tree3788dcb4020bebfd1fe7169e9df51e416f1e6c48 /admin
parent5d34b2db185f2eb160f698687f1a703c8a9142ca (diff)
Remove legacy qt patches
Diffstat (limited to 'admin')
-rw-r--r--admin/qt/patches/README.md20
-rw-r--r--admin/qt/patches/qtbase/0001-NOUPSTREAM-Fix-force-debug-info-with-macx-clang.patch27
-rw-r--r--admin/qt/patches/qtbase/0002-Remove-legacy-platform-code-in-QSslSocket-for-OS-X-1.patch148
-rw-r--r--admin/qt/patches/qtbase/0003-QSslSocket-evaluate-CAs-in-all-keychain-categories.patch276
4 files changed, 0 insertions, 471 deletions
diff --git a/admin/qt/patches/README.md b/admin/qt/patches/README.md
deleted file mode 100644
index 1690397e1..000000000
--- a/admin/qt/patches/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-## Patches used
-
-There are our patches on top of Qt 5.6.2, which we are currently
-using for our binary packages on Windows and macOS. Most of them
-have been sent upstream and are part of newer Qt releases.
-
-All changes are designed to be upstream, and all those that are
-special hacks to Qt will bear a NOUPSTREAM in their name
-
-You can apply those patches on a git clone using:
-
-```
-git am <client>/admin/qt/patches/qtbase/*.patch
-```
-
-You can update them using:
-
-```
-git format-patch -N --no-signature -o <client>/admin/qt/patches/qtbase/ <v5.x.y>
-```
diff --git a/admin/qt/patches/qtbase/0001-NOUPSTREAM-Fix-force-debug-info-with-macx-clang.patch b/admin/qt/patches/qtbase/0001-NOUPSTREAM-Fix-force-debug-info-with-macx-clang.patch
deleted file mode 100644
index 80f40dee5..000000000
--- a/admin/qt/patches/qtbase/0001-NOUPSTREAM-Fix-force-debug-info-with-macx-clang.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 96c34ce85136cbdc16ef83effa8a13137f7ae4c5 Mon Sep 17 00:00:00 2001
-From: Jocelyn Turcotte <jturcotte@woboq.com>
-Date: Fri, 6 Mar 2015 16:12:37 +0100
-Subject: [PATCH] [NOUPSTREAM] Fix -force-debug-info with macx-clang
-
----
- mkspecs/common/clang.conf | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/mkspecs/common/clang.conf b/mkspecs/common/clang.conf
-index e003b94..e9b3291 100644
---- a/mkspecs/common/clang.conf
-+++ b/mkspecs/common/clang.conf
-@@ -21,11 +21,13 @@ QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_
- QMAKE_CFLAGS_USE_PRECOMPILE = -Xclang -include-pch -Xclang ${QMAKE_PCH_OUTPUT}
- QMAKE_CFLAGS_LTCG = -flto
- QMAKE_CFLAGS_DISABLE_LTCG = -fno-lto
-+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO = $$QMAKE_CFLAGS_OPTIMIZE -g
-
- QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
- QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
- QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
- QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG
-+QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
- QMAKE_CXXFLAGS_CXX11 = -std=c++11
- QMAKE_CXXFLAGS_CXX14 = -std=c++1y
- QMAKE_CXXFLAGS_CXX1Z = -std=c++1z
diff --git a/admin/qt/patches/qtbase/0002-Remove-legacy-platform-code-in-QSslSocket-for-OS-X-1.patch b/admin/qt/patches/qtbase/0002-Remove-legacy-platform-code-in-QSslSocket-for-OS-X-1.patch
deleted file mode 100644
index 3f0c1398e..000000000
--- a/admin/qt/patches/qtbase/0002-Remove-legacy-platform-code-in-QSslSocket-for-OS-X-1.patch
+++ /dev/null
@@ -1,148 +0,0 @@
-From e6bccb1f0d8ca59acb1ffdac74a823c06346e7f3 Mon Sep 17 00:00:00 2001
-From: Daniel Molkentin <daniel@molkentin.de>
-Date: Mon, 16 Nov 2015 15:02:37 +0100
-Subject: [PATCH] Remove legacy platform code in QSslSocket for OS X < 10.5
-
-This avoids manual symbol lookups and makes the code more readable.
-Mark identical code.
-
-Also use smart pointers instead of manual memory management.
-
-(Backport of d42d7781f1cd62c3c7c008859507f24a1ff5bb2a to Qt 5.4)
-
-Change-Id: I62820313dce87de6623cdc87b6e1361200ed7822
-Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
-
-Conflicts:
- src/network/ssl/qsslsocket_openssl.cpp
----
- src/network/ssl/qsslsocket_openssl.cpp | 81 +++++++++++-----------------------
- src/network/ssl/qsslsocket_p.h | 6 +--
- 2 files changed, 26 insertions(+), 61 deletions(-)
-
-diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
-index 82644c1..415f147 100644
---- a/src/network/ssl/qsslsocket_openssl.cpp
-+++ b/src/network/ssl/qsslsocket_openssl.cpp
-@@ -76,14 +76,17 @@
-
- #include <string.h>
-
-+#ifdef Q_OS_DARWIN
-+# include <private/qcore_mac_p.h>
-+#endif
-+
-+#ifdef Q_OS_OSX
-+# include <Security/Security.h>
-+#endif
-+
- QT_BEGIN_NAMESPACE
-
--#if defined(Q_OS_MACX)
--#define kSecTrustSettingsDomainSystem 2 // so we do not need to include the header file
-- PtrSecCertificateCopyData QSslSocketPrivate::ptrSecCertificateCopyData = 0;
-- PtrSecTrustSettingsCopyCertificates QSslSocketPrivate::ptrSecTrustSettingsCopyCertificates = 0;
-- PtrSecTrustCopyAnchorCertificates QSslSocketPrivate::ptrSecTrustCopyAnchorCertificates = 0;
--#elif defined(Q_OS_WIN)
-+#if defined(Q_OS_WIN)
- PtrCertOpenSystemStoreW QSslSocketPrivate::ptrCertOpenSystemStoreW = 0;
- PtrCertFindCertificateInStore QSslSocketPrivate::ptrCertFindCertificateInStore = 0;
- PtrCertCloseStore QSslSocketPrivate::ptrCertCloseStore = 0;
-@@ -509,23 +512,7 @@ void QSslSocketPrivate::ensureCiphersAndCertsLoaded()
-
- #ifndef QT_NO_LIBRARY
- //load symbols needed to receive certificates from system store
--#if defined(Q_OS_MACX)
-- QLibrary securityLib("/System/Library/Frameworks/Security.framework/Versions/Current/Security");
-- if (securityLib.load()) {
-- ptrSecCertificateCopyData = (PtrSecCertificateCopyData) securityLib.resolve("SecCertificateCopyData");
-- if (!ptrSecCertificateCopyData)
-- qCWarning(lcSsl, "could not resolve symbols in security library"); // should never happen
--
-- ptrSecTrustSettingsCopyCertificates = (PtrSecTrustSettingsCopyCertificates) securityLib.resolve("SecTrustSettingsCopyCertificates");
-- if (!ptrSecTrustSettingsCopyCertificates) { // method was introduced in Leopard, use legacy method if it's not there
-- ptrSecTrustCopyAnchorCertificates = (PtrSecTrustCopyAnchorCertificates) securityLib.resolve("SecTrustCopyAnchorCertificates");
-- if (!ptrSecTrustCopyAnchorCertificates)
-- qCWarning(lcSsl, "could not resolve symbols in security library"); // should never happen
-- }
-- } else {
-- qCWarning(lcSsl, "could not load security library");
-- }
--#elif defined(Q_OS_WIN)
-+#if defined(Q_OS_WIN)
- HINSTANCE hLib = LoadLibraryW(L"Crypt32");
- if (hLib) {
- #if defined(Q_OS_WINCE)
-@@ -693,40 +680,22 @@ QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
- timer.start();
- #endif
- QList<QSslCertificate> systemCerts;
--#if defined(Q_OS_MACX)
-- CFArrayRef cfCerts;
-- OSStatus status = 1;
--
-- CFDataRef SecCertificateCopyData (
-- SecCertificateRef certificate
-- );
--
-- if (ptrSecCertificateCopyData) {
-- if (ptrSecTrustSettingsCopyCertificates)
-- status = ptrSecTrustSettingsCopyCertificates(kSecTrustSettingsDomainSystem, &cfCerts);
-- else if (ptrSecTrustCopyAnchorCertificates)
-- status = ptrSecTrustCopyAnchorCertificates(&cfCerts);
-- if (!status) {
-- CFIndex size = CFArrayGetCount(cfCerts);
-- for (CFIndex i = 0; i < size; ++i) {
-- SecCertificateRef cfCert = (SecCertificateRef)CFArrayGetValueAtIndex(cfCerts, i);
-- CFDataRef data;
--
-- data = ptrSecCertificateCopyData(cfCert);
--
-- if (data == NULL) {
-- qCWarning(lcSsl, "error retrieving a CA certificate from the system store");
-- } else {
-- QByteArray rawCert = QByteArray::fromRawData((const char *)CFDataGetBytePtr(data), CFDataGetLength(data));
-- systemCerts.append(QSslCertificate::fromData(rawCert, QSsl::Der));
-- CFRelease(data);
-- }
-+ // note: also check implementation in openssl_mac.cpp
-+#if defined(Q_OS_OSX)
-+ // SecTrustSettingsCopyCertificates is not defined on iOS.
-+ QCFType<CFArrayRef> cfCerts;
-+
-+ OSStatus status = SecTrustSettingsCopyCertificates(kSecTrustSettingsDomainSystem, &cfCerts);
-+ if (status == noErr ) {
-+ const CFIndex size = CFArrayGetCount(cfCerts);
-+ for (CFIndex i = 0; i < size; ++i) {
-+ SecCertificateRef cfCert = (SecCertificateRef)CFArrayGetValueAtIndex(cfCerts, i);
-+ QCFType<CFDataRef> derData = SecCertificateCopyData(cfCert);
-+ if (derData == NULL) {
-+ qWarning("error retrieving a CA certificate from the system store");
-+ } else {
-+ systemCerts << QSslCertificate(QByteArray::fromCFData(derData), QSsl::Der);
- }
-- CFRelease(cfCerts);
-- }
-- else {
-- // no detailed error handling here
-- qCWarning(lcSsl, "could not retrieve system CA certificates");
- }
- }
- #elif defined(Q_OS_WIN)
-diff --git a/src/network/ssl/qsslsocket_p.h b/src/network/ssl/qsslsocket_p.h
-index d651971..17cc7b4 100644
---- a/src/network/ssl/qsslsocket_p.h
-+++ b/src/network/ssl/qsslsocket_p.h
-@@ -151,11 +151,7 @@ public:
- static bool isMatchingHostname(const QSslCertificate &cert, const QString &peerName);
- Q_AUTOTEST_EXPORT static bool isMatchingHostname(const QString &cn, const QString &hostname);
-
--#if defined(Q_OS_MACX)
-- static PtrSecCertificateCopyData ptrSecCertificateCopyData;
-- static PtrSecTrustSettingsCopyCertificates ptrSecTrustSettingsCopyCertificates;
-- static PtrSecTrustCopyAnchorCertificates ptrSecTrustCopyAnchorCertificates;
--#elif defined(Q_OS_WIN) && !defined(Q_OS_WINRT)
-+#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT)
- static PtrCertOpenSystemStoreW ptrCertOpenSystemStoreW;
- static PtrCertFindCertificateInStore ptrCertFindCertificateInStore;
- static PtrCertCloseStore ptrCertCloseStore;
diff --git a/admin/qt/patches/qtbase/0003-QSslSocket-evaluate-CAs-in-all-keychain-categories.patch b/admin/qt/patches/qtbase/0003-QSslSocket-evaluate-CAs-in-all-keychain-categories.patch
deleted file mode 100644
index 6b617a1a3..000000000
--- a/admin/qt/patches/qtbase/0003-QSslSocket-evaluate-CAs-in-all-keychain-categories.patch
+++ /dev/null
@@ -1,276 +0,0 @@
-From 9d1120db0973ea7741b13a6555b20ae61f6d037e Mon Sep 17 00:00:00 2001
-From: Daniel Molkentin <danimo@owncloud.com>
-Date: Wed, 25 Nov 2015 12:37:27 +0100
-Subject: [PATCH] QSslSocket: evaluate CAs in all keychain categories
-
-This will make sure that certs in the domainUser (login),
-and domainAdmin (per machine) keychain are being picked up
-in systemCaCertificates() in addition to the (usually immutable)
-DomainSystem keychain.
-
-Also consider the trust settings on OS X: If a certificate
-is either fully trusted or trusted for the purpose of SSL,
-it will be accepted.
-
-[ChangeLog][Platform Specific Changes] OS X now accepts trusted
- certificates from the login and system keychains.
-
-(Backport of fe3a84138e266c425f11353f7d8dc28a588af89e)
-
-Task-number: QTBUG-32898
-Change-Id: Ia23083d5af74388eeee31ba07239735cbbe64368
-Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
----
- src/network/ssl/qsslsocket.cpp | 4 +
- src/network/ssl/qsslsocket_mac_shared.cpp | 148 ++++++++++++++++++++++++++++++
- src/network/ssl/qsslsocket_openssl.cpp | 30 +-----
- src/network/ssl/ssl.pri | 4 +-
- 4 files changed, 158 insertions(+), 28 deletions(-)
- create mode 100644 src/network/ssl/qsslsocket_mac_shared.cpp
-
-diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp
-index 549906a..7b202b0 100644
---- a/src/network/ssl/qsslsocket.cpp
-+++ b/src/network/ssl/qsslsocket.cpp
-@@ -1508,6 +1508,10 @@ QList<QSslCertificate> QSslSocket::defaultCaCertificates()
- returned by defaultCaCertificates(). You can replace that database
- with your own with setDefaultCaCertificates().
-
-+ \note: On OS X, only certificates that are either trusted for all
-+ purposes or trusted for the purpose of SSL in the keychain will be
-+ returned.
-+
- \sa caCertificates(), defaultCaCertificates(), setDefaultCaCertificates()
- */
- QList<QSslCertificate> QSslSocket::systemCaCertificates()
-diff --git a/src/network/ssl/qsslsocket_mac_shared.cpp b/src/network/ssl/qsslsocket_mac_shared.cpp
-new file mode 100644
-index 0000000..60fea4c
---- /dev/null
-+++ b/src/network/ssl/qsslsocket_mac_shared.cpp
-@@ -0,0 +1,148 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2015 The Qt Company Ltd.
-+** Copyright (C) 2015 ownCloud Inc
-+** Contact: http://www.qt.io/licensing/
-+**
-+** This file is part of the QtNetwork module of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL21$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and The Qt Company. For licensing terms
-+** and conditions see http://www.qt.io/terms-conditions. For further
-+** information use the contact form at http://www.qt.io/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 or version 3 as published by the Free
-+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-+** following information to ensure the GNU Lesser General Public License
-+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** As a special exception, The Qt Company gives you certain additional
-+** rights. These rights are described in The Qt Company LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+//#define QSSLSOCKET_DEBUG
-+//#define QT_DECRYPT_SSL_TRAFFIC
-+
-+#include "qsslsocket.h"
-+
-+#ifndef QT_NO_OPENSSL
-+# include "qsslsocket_openssl_p.h"
-+# include "qsslsocket_openssl_symbols_p.h"
-+#endif
-+
-+#include "qsslcertificate_p.h"
-+
-+#ifdef Q_OS_DARWIN
-+# include <private/qcore_mac_p.h>
-+#endif
-+
-+#include <QtCore/qdebug.h>
-+
-+#ifdef Q_OS_OSX
-+# include <Security/Security.h>
-+#endif
-+
-+
-+QT_BEGIN_NAMESPACE
-+
-+#ifdef Q_OS_OSX
-+namespace {
-+
-+bool hasTrustedSslServerPolicy(SecPolicyRef policy, CFDictionaryRef props) {
-+ QCFType<CFDictionaryRef> policyProps = SecPolicyCopyProperties(policy);
-+ // only accept certificates with policies for SSL server validation for now
-+ if (CFEqual(CFDictionaryGetValue(policyProps, kSecPolicyOid), kSecPolicyAppleSSL)) {
-+ CFBooleanRef policyClient;
-+ if (CFDictionaryGetValueIfPresent(policyProps, kSecPolicyClient, reinterpret_cast<const void**>(&policyClient)) &&
-+ CFEqual(policyClient, kCFBooleanTrue)) {
-+ return false; // no client certs
-+ }
-+ if (!CFDictionaryContainsKey(props, kSecTrustSettingsResult)) {
-+ // as per the docs, no trust settings result implies full trust
-+ return true;
-+ }
-+ CFNumberRef number = static_cast<CFNumberRef>(CFDictionaryGetValue(props, kSecTrustSettingsResult));
-+ SecTrustSettingsResult settingsResult;
-+ CFNumberGetValue(number, kCFNumberSInt32Type, &settingsResult);
-+ switch (settingsResult) {
-+ case kSecTrustSettingsResultTrustRoot:
-+ case kSecTrustSettingsResultTrustAsRoot:
-+ return true;
-+ default:
-+ return false;
-+ }
-+ }
-+ return false;
-+}
-+
-+bool isCaCertificateTrusted(SecCertificateRef cfCert, int domain)
-+{
-+ QCFType<CFArrayRef> cfTrustSettings;
-+ OSStatus status = SecTrustSettingsCopyTrustSettings(cfCert, domain, &cfTrustSettings);
-+ if (status == noErr) {
-+ CFIndex size = CFArrayGetCount(cfTrustSettings);
-+ // if empty, trust for everything (as per the Security Framework documentation)
-+ if (size == 0) {
-+ return true;
-+ } else {
-+ for (CFIndex i = 0; i < size; ++i) {
-+ CFDictionaryRef props = static_cast<CFDictionaryRef>(CFArrayGetValueAtIndex(cfTrustSettings, i));
-+ if (CFDictionaryContainsKey(props, kSecTrustSettingsPolicy)) {
-+ if (hasTrustedSslServerPolicy((SecPolicyRef)CFDictionaryGetValue(props, kSecTrustSettingsPolicy), props))
-+ return true;
-+ }
-+ }
-+ }
-+ } else {
-+ qWarning("Error receiving trust for a CA certificate");
-+ }
-+ return false;
-+}
-+
-+} // anon namespace
-+#endif // Q_OS_OSX
-+
-+QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
-+{
-+ ensureInitialized();
-+
-+ QList<QSslCertificate> systemCerts;
-+ // SecTrustSettingsCopyCertificates is not defined on iOS.
-+#ifdef Q_OS_OSX
-+ QCFType<CFArrayRef> cfCerts;
-+ // iterate through all enum members, order:
-+ // kSecTrustSettingsDomainUser, kSecTrustSettingsDomainAdmin, kSecTrustSettingsDomainSystem
-+ for (int dom = kSecTrustSettingsDomainUser; dom <= kSecTrustSettingsDomainSystem; dom++) {
-+ OSStatus status = SecTrustSettingsCopyCertificates(dom, &cfCerts);
-+ if (status == noErr) {
-+ const CFIndex size = CFArrayGetCount(cfCerts);
-+ for (CFIndex i = 0; i < size; ++i) {
-+ SecCertificateRef cfCert = (SecCertificateRef)CFArrayGetValueAtIndex(cfCerts, i);
-+ QCFType<CFDataRef> derData = SecCertificateCopyData(cfCert);
-+ if (::isCaCertificateTrusted(cfCert, dom)) {
-+ if (derData == NULL) {
-+ qWarning("Error retrieving a CA certificate from the system store");
-+ } else {
-+ systemCerts << QSslCertificate(QByteArray::fromCFData(derData), QSsl::Der);
-+ }
-+ }
-+ }
-+ }
-+ }
-+#endif
-+ return systemCerts;
-+}
-+
-+QT_END_NAMESPACE
-diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
-index 415f147..7a3cb42 100644
---- a/src/network/ssl/qsslsocket_openssl.cpp
-+++ b/src/network/ssl/qsslsocket_openssl.cpp
-@@ -76,14 +76,6 @@
-
- #include <string.h>
-
--#ifdef Q_OS_DARWIN
--# include <private/qcore_mac_p.h>
--#endif
--
--#ifdef Q_OS_OSX
--# include <Security/Security.h>
--#endif
--
- QT_BEGIN_NAMESPACE
-
- #if defined(Q_OS_WIN)
-@@ -672,6 +664,7 @@ void QSslSocketPrivate::resetDefaultEllipticCurves()
- setDefaultSupportedEllipticCurves(curves);
- }
-
-+#ifndef Q_OS_DARWIN // Apple implementation in qsslsocket_mac_shared.cpp
- QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
- {
- ensureInitialized();
-@@ -680,25 +673,7 @@ QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
- timer.start();
- #endif
- QList<QSslCertificate> systemCerts;
-- // note: also check implementation in openssl_mac.cpp
--#if defined(Q_OS_OSX)
-- // SecTrustSettingsCopyCertificates is not defined on iOS.
-- QCFType<CFArrayRef> cfCerts;
--
-- OSStatus status = SecTrustSettingsCopyCertificates(kSecTrustSettingsDomainSystem, &cfCerts);
-- if (status == noErr ) {
-- const CFIndex size = CFArrayGetCount(cfCerts);
-- for (CFIndex i = 0; i < size; ++i) {
-- SecCertificateRef cfCert = (SecCertificateRef)CFArrayGetValueAtIndex(cfCerts, i);
-- QCFType<CFDataRef> derData = SecCertificateCopyData(cfCert);
-- if (derData == NULL) {
-- qWarning("error retrieving a CA certificate from the system store");
-- } else {
-- systemCerts << QSslCertificate(QByteArray::fromCFData(derData), QSsl::Der);
-- }
-- }
-- }
--#elif defined(Q_OS_WIN)
-+#if defined(Q_OS_WIN)
- if (ptrCertOpenSystemStoreW && ptrCertFindCertificateInStore && ptrCertCloseStore) {
- HCERTSTORE hSystemStore;
- #if defined(Q_OS_WINCE)
-@@ -775,6 +750,7 @@ QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
-
- return systemCerts;
- }
-+#endif // Q_OS_DARWIN
-
- void QSslSocketBackendPrivate::startClientEncryption()
- {
-diff --git a/src/network/ssl/ssl.pri b/src/network/ssl/ssl.pri
-index 29c47cd..8eb605b 100644
---- a/src/network/ssl/ssl.pri
-+++ b/src/network/ssl/ssl.pri
-@@ -62,7 +62,9 @@ contains(QT_CONFIG, openssl) | contains(QT_CONFIG, openssl-linked) {
- ssl/qsslsocket_openssl.cpp \
- ssl/qsslsocket_openssl_symbols.cpp
-
--android:!android-no-sdk: SOURCES += ssl/qsslsocket_openssl_android.cpp
-+ darwin:SOURCES += ssl/qsslsocket_mac_shared.cpp
-+
-+ android:!android-no-sdk: SOURCES += ssl/qsslsocket_openssl_android.cpp
-
- # Add optional SSL libs
- # Static linking of OpenSSL with msvc: