View | Details | Raw Unified | Return to bug 228344 | Differences between
and this patch

Collapse All | Expand All

(-)Makefile (+1 lines)
Lines 2-7 Link Here
2
2
3
PORTNAME=	network
3
PORTNAME=	network
4
DISTVERSION=	${QT5_VERSION}
4
DISTVERSION=	${QT5_VERSION}
5
PORTREVISION=	1
5
CATEGORIES=	net ipv6
6
CATEGORIES=	net ipv6
6
PKGNAMEPREFIX=	qt5-
7
PKGNAMEPREFIX=	qt5-
7
8
(-)files/patch-qsslcontext_openssl.cpp (+11 lines)
Line 0 Link Here
1
--- src/network/ssl/qsslcontext_openssl.cpp.orig	2018-10-21 16:58:39 UTC
2
+++ src/network/ssl/qsslcontext_openssl.cpp
3
@@ -248,7 +248,7 @@ void QSslContext::applyBackendConfig(QSs
4
     if (sslContext->sslConfiguration.backendConfiguration().isEmpty())
5
         return;
6
 
7
-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
8
+#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(LIBRESSL_VERSION_NUMBER)
9
     if (QSslSocket::sslLibraryVersionNumber() >= 0x10002000L) {
10
         QSharedPointer<SSL_CONF_CTX> cctx(q_SSL_CONF_CTX_new(), &q_SSL_CONF_CTX_free);
11
         if (cctx) {
(-)files/patch-src_network_ssl_qsslsocket__openssl__symbols.cpp (-10 / +28 lines)
Lines 3-10 Link Here
3
* Boilerplate for SSL_CTX_set1_groups() used in qsslcontext_openssl.cpp
3
* Boilerplate for SSL_CTX_set1_groups() used in qsslcontext_openssl.cpp
4
*
4
*
5
* Prepend the path of the SSL libraries used for building so the same libraries are
5
* Prepend the path of the SSL libraries used for building so the same libraries are
6
* found and loaded at runtime. Normal search finds base SSL libraries before ports.
6
* found and loaded at runtime. Normal search finds base SSL libraries before ports.
7
*
7
*
8
--- src/network/ssl/qsslsocket_openssl_symbols.cpp.orig	2018-02-08 19:24:48.000000000 +0100
8
--- src/network/ssl/qsslsocket_openssl_symbols.cpp.orig	2018-10-21 15:55:52 UTC
9
+++ src/network/ssl/qsslsocket_openssl_symbols.cpp	2018-06-29 12:22:11.265885000 +0200
9
+++ src/network/ssl/qsslsocket_openssl_symbols.cpp
10
@@ -150,6 +150,14 @@ DEFINEFUNC2(int, BN_is_word, BIGNUM *a, 
10
@@ -150,6 +150,14 @@ DEFINEFUNC2(int, BN_is_word, BIGNUM *a, 
11
 DEFINEFUNC(int, EVP_CIPHER_CTX_reset, EVP_CIPHER_CTX *c, c, return 0, return)
11
 DEFINEFUNC(int, EVP_CIPHER_CTX_reset, EVP_CIPHER_CTX *c, c, return 0, return)
12
 DEFINEFUNC(int, EVP_PKEY_base_id, EVP_PKEY *a, a, return NID_undef, return)
12
 DEFINEFUNC(int, EVP_PKEY_base_id, EVP_PKEY *a, a, return NID_undef, return)
Lines 38-44 Link Here
38
 DEFINEFUNC(EVP_PKEY *, X509_get_pubkey, X509 *a, a, return 0, return)
38
 DEFINEFUNC(EVP_PKEY *, X509_get_pubkey, X509 *a, a, return 0, return)
39
 DEFINEFUNC2(void, X509_STORE_set_verify_cb, X509_STORE *a, a, X509_STORE_CTX_verify_cb verify_cb, verify_cb, return, DUMMYARG)
39
 DEFINEFUNC2(void, X509_STORE_set_verify_cb, X509_STORE *a, a, X509_STORE_CTX_verify_cb verify_cb, verify_cb, return, DUMMYARG)
40
 DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get0_chain, X509_STORE_CTX *a, a, return 0, return)
40
 DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get0_chain, X509_STORE_CTX *a, a, return 0, return)
41
@@ -524,6 +535,9 @@ DEFINEFUNC(void, EC_KEY_free, EC_KEY *ec
41
@@ -406,7 +417,7 @@ DEFINEFUNC2(int, SSL_CTX_use_PrivateKey,
42
 DEFINEFUNC2(int, SSL_CTX_use_RSAPrivateKey, SSL_CTX *a, a, RSA *b, b, return -1, return)
43
 DEFINEFUNC3(int, SSL_CTX_use_PrivateKey_file, SSL_CTX *a, a, const char *b, b, int c, c, return -1, return)
44
 DEFINEFUNC(X509_STORE *, SSL_CTX_get_cert_store, const SSL_CTX *a, a, return 0, return)
45
-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
46
+#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(LIBRESSL_VERSION_NUMBER)
47
 DEFINEFUNC(SSL_CONF_CTX *, SSL_CONF_CTX_new, DUMMYARG, DUMMYARG, return 0, return);
48
 DEFINEFUNC(void, SSL_CONF_CTX_free, SSL_CONF_CTX *a, a, return ,return);
49
 DEFINEFUNC2(void, SSL_CONF_CTX_set_ssl_ctx, SSL_CONF_CTX *a, a, SSL_CTX *b, b, return, return);
50
@@ -537,6 +548,9 @@ DEFINEFUNC(void, EC_KEY_free, EC_KEY *ec
42
 DEFINEFUNC2(size_t, EC_get_builtin_curves, EC_builtin_curve * r, r, size_t nitems, nitems, return 0, return)
51
 DEFINEFUNC2(size_t, EC_get_builtin_curves, EC_builtin_curve * r, r, size_t nitems, nitems, return 0, return)
43
 #if OPENSSL_VERSION_NUMBER >= 0x10002000L
52
 #if OPENSSL_VERSION_NUMBER >= 0x10002000L
44
 DEFINEFUNC(int, EC_curve_nist2nid, const char *name, name, return 0, return)
53
 DEFINEFUNC(int, EC_curve_nist2nid, const char *name, name, return 0, return)
Lines 48-54 Link Here
48
 #endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
57
 #endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
49
 #endif // OPENSSL_NO_EC
58
 #endif // OPENSSL_NO_EC
50
 
59
 
51
@@ -769,8 +783,8 @@ static QPair<QLibrary*, QLibrary*> loadO
60
@@ -782,8 +796,8 @@ static QPair<QLibrary*, QLibrary*> loadO
52
 #endif
61
 #endif
53
 #if defined(SHLIB_VERSION_NUMBER) && !defined(Q_OS_QNX) // on QNX, the libs are always libssl.so and libcrypto.so
62
 #if defined(SHLIB_VERSION_NUMBER) && !defined(Q_OS_QNX) // on QNX, the libs are always libssl.so and libcrypto.so
54
     // first attempt: the canonical name is libssl.so.<SHLIB_VERSION_NUMBER>
63
     // first attempt: the canonical name is libssl.so.<SHLIB_VERSION_NUMBER>
Lines 59-65 Link Here
59
     if (libcrypto->load() && libssl->load()) {
68
     if (libcrypto->load() && libssl->load()) {
60
         // libssl.so.<SHLIB_VERSION_NUMBER> and libcrypto.so.<SHLIB_VERSION_NUMBER> found
69
         // libssl.so.<SHLIB_VERSION_NUMBER> and libcrypto.so.<SHLIB_VERSION_NUMBER> found
61
         return pair;
70
         return pair;
62
@@ -787,8 +801,8 @@ static QPair<QLibrary*, QLibrary*> loadO
71
@@ -800,8 +814,8 @@ static QPair<QLibrary*, QLibrary*> loadO
63
     //  macOS's /usr/lib/libssl.dylib, /usr/lib/libcrypto.dylib will be picked up in the third
72
     //  macOS's /usr/lib/libssl.dylib, /usr/lib/libcrypto.dylib will be picked up in the third
64
     //    attempt, _after_ <bundle>/Contents/Frameworks has been searched.
73
     //    attempt, _after_ <bundle>/Contents/Frameworks has been searched.
65
     //  iOS does not ship a system libssl.dylib, libcrypto.dylib in the first place.
74
     //  iOS does not ship a system libssl.dylib, libcrypto.dylib in the first place.
Lines 70-76 Link Here
70
     if (libcrypto->load() && libssl->load()) {
79
     if (libcrypto->load() && libssl->load()) {
71
         // libssl.so.0 and libcrypto.so.0 found
80
         // libssl.so.0 and libcrypto.so.0 found
72
         return pair;
81
         return pair;
73
@@ -872,17 +886,30 @@ bool q_resolveOpenSslSymbols()
82
@@ -885,17 +899,30 @@ bool q_resolveOpenSslSymbols()
74
     RESOLVEFUNC(EVP_CIPHER_CTX_reset)
83
     RESOLVEFUNC(EVP_CIPHER_CTX_reset)
75
     RESOLVEFUNC(EVP_PKEY_base_id)
84
     RESOLVEFUNC(EVP_PKEY_base_id)
76
     RESOLVEFUNC(RSA_bits)
85
     RESOLVEFUNC(RSA_bits)
Lines 102-108 Link Here
102
     RESOLVEFUNC(SSL_get_session)
111
     RESOLVEFUNC(SSL_get_session)
103
     RESOLVEFUNC(CRYPTO_get_ex_new_index)
112
     RESOLVEFUNC(CRYPTO_get_ex_new_index)
104
     RESOLVEFUNC(TLS_method)
113
     RESOLVEFUNC(TLS_method)
105
@@ -891,7 +918,9 @@ bool q_resolveOpenSslSymbols()
114
@@ -904,7 +931,9 @@ bool q_resolveOpenSslSymbols()
106
     RESOLVEFUNC(X509_STORE_CTX_get0_chain)
115
     RESOLVEFUNC(X509_STORE_CTX_get0_chain)
107
     RESOLVEFUNC(X509_getm_notBefore)
116
     RESOLVEFUNC(X509_getm_notBefore)
108
     RESOLVEFUNC(X509_getm_notAfter)
117
     RESOLVEFUNC(X509_getm_notAfter)
Lines 112-118 Link Here
112
     RESOLVEFUNC(X509_get_pubkey)
121
     RESOLVEFUNC(X509_get_pubkey)
113
     RESOLVEFUNC(X509_STORE_set_verify_cb)
122
     RESOLVEFUNC(X509_STORE_set_verify_cb)
114
     RESOLVEFUNC(CRYPTO_free)
123
     RESOLVEFUNC(CRYPTO_free)
115
@@ -908,7 +937,9 @@ bool q_resolveOpenSslSymbols()
124
@@ -921,7 +950,9 @@ bool q_resolveOpenSslSymbols()
116
 
125
 
117
     RESOLVEFUNC(SSL_SESSION_get_ticket_lifetime_hint)
126
     RESOLVEFUNC(SSL_SESSION_get_ticket_lifetime_hint)
118
     RESOLVEFUNC(DH_bits)
127
     RESOLVEFUNC(DH_bits)
Lines 122-128 Link Here
122
 
131
 
123
 #else // !opensslv11
132
 #else // !opensslv11
124
 
133
 
125
@@ -979,10 +1010,9 @@ bool q_resolveOpenSslSymbols()
134
@@ -992,10 +1023,9 @@ bool q_resolveOpenSslSymbols()
126
     RESOLVEFUNC(OPENSSL_add_all_algorithms_conf)
135
     RESOLVEFUNC(OPENSSL_add_all_algorithms_conf)
127
     RESOLVEFUNC(SSLeay)
136
     RESOLVEFUNC(SSLeay)
128
 
137
 
Lines 134-140 Link Here
134
         delete libs.first;
143
         delete libs.first;
135
         delete libs.second;
144
         delete libs.second;
136
         qCWarning(lcSsl, "Incompatible version of OpenSSL");
145
         qCWarning(lcSsl, "Incompatible version of OpenSSL");
137
@@ -994,8 +1024,12 @@ bool q_resolveOpenSslSymbols()
146
@@ -1007,8 +1037,12 @@ bool q_resolveOpenSslSymbols()
138
 
147
 
139
 #ifndef OPENSSL_NO_EC
148
 #ifndef OPENSSL_NO_EC
140
 #if OPENSSL_VERSION_NUMBER >= 0x10002000L
149
 #if OPENSSL_VERSION_NUMBER >= 0x10002000L
Lines 148-150 Link Here
148
 #endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
157
 #endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
149
 #endif // OPENSSL_NO_EC
158
 #endif // OPENSSL_NO_EC
150
 
159
 
160
@@ -1122,7 +1156,7 @@ bool q_resolveOpenSslSymbols()
161
     RESOLVEFUNC(SSL_CTX_use_RSAPrivateKey)
162
     RESOLVEFUNC(SSL_CTX_use_PrivateKey_file)
163
     RESOLVEFUNC(SSL_CTX_get_cert_store);
164
-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
165
+#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(LIBRESSL_VERSION_NUMBER)
166
     RESOLVEFUNC(SSL_CONF_CTX_new);
167
     RESOLVEFUNC(SSL_CONF_CTX_free);
168
     RESOLVEFUNC(SSL_CONF_CTX_set_ssl_ctx);
(-)files/patch-src_network_ssl_qsslsocket__openssl__symbols__p.h (-3 / +26 lines)
Lines 1-7 Link Here
1
Boilerplate for SSL_CTX_set1_groups() used in qsslcontext_openssl.cpp.
1
 * Boilerplate for SSL_CTX_set1_groups() used in qsslcontext_openssl.cpp.
2
--- src/network/ssl/qsslsocket_openssl_symbols_p.h.orig	2018-02-08 18:24:48 UTC
2
--- src/network/ssl/qsslsocket_openssl_symbols_p.h.orig	2018-10-21 17:04:11 UTC
3
+++ src/network/ssl/qsslsocket_openssl_symbols_p.h
3
+++ src/network/ssl/qsslsocket_openssl_symbols_p.h
4
@@ -454,6 +454,9 @@ void q_EC_KEY_free(EC_KEY *ecdh);
4
@@ -74,6 +74,13 @@
5
 
6
 QT_BEGIN_NAMESPACE
7
 
8
+#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x20700000L
9
+# define TLS1_2_VERSION 0x0303
10
+# define TLS_MAX_VERSION TLS1_2_VERSION
11
+# define TLS_ANY_VERSION 0x10000
12
+#endif
13
+
14
+
15
 #define DUMMYARG
16
 
17
 #if !defined QT_LINKED_OPENSSL
18
@@ -356,7 +363,7 @@ int q_SSL_CTX_use_PrivateKey(SSL_CTX *a,
19
 int q_SSL_CTX_use_RSAPrivateKey(SSL_CTX *a, RSA *b);
20
 int q_SSL_CTX_use_PrivateKey_file(SSL_CTX *a, const char *b, int c);
21
 X509_STORE *q_SSL_CTX_get_cert_store(const SSL_CTX *a);
22
-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
23
+#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(LIBRESSL_VERSION_NUMBER)
24
 SSL_CONF_CTX *q_SSL_CONF_CTX_new();
25
 void q_SSL_CONF_CTX_free(SSL_CONF_CTX *a);
26
 void q_SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *a, SSL_CTX *b);
27
@@ -468,6 +475,9 @@ void q_EC_KEY_free(EC_KEY *ecdh);
5
 size_t q_EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems);
28
 size_t q_EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems);
6
 #if OPENSSL_VERSION_NUMBER >= 0x10002000L
29
 #if OPENSSL_VERSION_NUMBER >= 0x10002000L
7
 int q_EC_curve_nist2nid(const char *name);
30
 int q_EC_curve_nist2nid(const char *name);

Return to bug 228344