Gentoo Archives: gentoo-commits

From: Stefan Strogin <steils@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/proj/libressl:master commit in: dev-qt/qtnetwork/files/, dev-qt/qtnetwork/
Date: Wed, 27 May 2020 08:15:38
Message-Id: 1590567280.9e800fa134c8a71ffdbe546ec0dc9477a6f4c185.steils@gentoo
1 commit: 9e800fa134c8a71ffdbe546ec0dc9477a6f4c185
2 Author: Stefan Strogin <steils <AT> gentoo <DOT> org>
3 AuthorDate: Wed May 27 08:14:40 2020 +0000
4 Commit: Stefan Strogin <steils <AT> gentoo <DOT> org>
5 CommitDate: Wed May 27 08:14:40 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=9e800fa1
7
8 dev-qt/qtnetwork: version bump to 5.15.0
9
10 Bug: https://bugs.gentoo.org/562050
11 Package-Manager: Portage-2.3.100, Repoman-2.3.22
12 Signed-off-by: Stefan Strogin <steils <AT> gentoo.org>
13
14 dev-qt/qtnetwork/Manifest | 1 +
15 .../files/qtnetwork-5.15.0-libressl.patch | 340 +++++++++++++++++++++
16 dev-qt/qtnetwork/qtnetwork-5.15.0.ebuild | 67 ++++
17 3 files changed, 408 insertions(+)
18
19 diff --git a/dev-qt/qtnetwork/Manifest b/dev-qt/qtnetwork/Manifest
20 index 62cc41e..4905e98 100644
21 --- a/dev-qt/qtnetwork/Manifest
22 +++ b/dev-qt/qtnetwork/Manifest
23 @@ -1,2 +1,3 @@
24 DIST qtbase-everywhere-src-5.14.1.tar.xz 49828188 BLAKE2B d5641df96a90ec4f3f85e47444c151b2090161330df9684703883865ddc84bed507295b67953c0a8cad9c104a10727ac9fb26d7f3ec4bf2052294c843f108491 SHA512 964777323d0e3f9d355218c3493bb3b61d2750d9cb5ba71fce72cae3cd362acce88e39360f1fac0011f1b74d529a23621a7281191c622cc034ce78a77afa296b
25 DIST qtbase-everywhere-src-5.14.2.tar.xz 49865752 BLAKE2B ed8eb18dfc79e9983248655eb62e8305ef8b79f96c7880c88533250fef8f0d187cf576082d41df08314711b4c007b94686486abd77bf9bc201336caa02ced300 SHA512 8c83e06d58b56e9f288e83d6c3dd4ad6cc9f1eb1a32c7b44fb912fda34ed7255766fd9fa60cd740ee001df7d6172f25df05f1f95e986c3e793fbcd9bf4f18de9
26 +DIST qtbase-everywhere-src-5.15.0.tar.xz 49931940 BLAKE2B f6675ddb8c6fcfe4d12f92b0c93d09ec160e65bb214694550c82c1ba1acea41c86064910cf76267815bd860b071a322bbbad19e994be52f0bf1450a73d09a1bf SHA512 c584d69e49f4959d9b8541f820f5ff1e6d1599697ad16976b47cbaaa902fc83e1ca4ae57d56d13574e42e5f602d4420245ad7fcfc13e224e10d4bbad6a537d1a
27
28 diff --git a/dev-qt/qtnetwork/files/qtnetwork-5.15.0-libressl.patch b/dev-qt/qtnetwork/files/qtnetwork-5.15.0-libressl.patch
29 new file mode 100644
30 index 0000000..d0a4796
31 --- /dev/null
32 +++ b/dev-qt/qtnetwork/files/qtnetwork-5.15.0-libressl.patch
33 @@ -0,0 +1,340 @@
34 +From 4774fcd31a49f6f193bf10990601ad494fab2013 Mon Sep 17 00:00:00 2001
35 +From: Stefan Strogin <steils@g.o>
36 +Date: Wed, 5 Feb 2020 03:49:35 +0200
37 +Subject: [PATCH] QSslSocket - add LibreSSL support
38 +
39 +Upstream-Status: Inappropriate
40 +[Upstream is not willing to accept any patches for LibreSSL support]
41 +Signed-off-by: Stefan Strogin <steils@g.o>
42 +---
43 + src/network/ssl/qsslcertificate_openssl.cpp | 2 +-
44 + src/network/ssl/qsslcontext_openssl.cpp | 17 +++++++-
45 + src/network/ssl/qsslcontext_openssl_p.h | 7 +++
46 + src/network/ssl/qsslsocket_openssl.cpp | 2 +-
47 + .../ssl/qsslsocket_openssl_symbols.cpp | 25 +++++++++++
48 + .../ssl/qsslsocket_openssl_symbols_p.h | 43 +++++++++++++++++++
49 + 6 files changed, 93 insertions(+), 3 deletions(-)
50 +
51 +diff --git a/src/network/ssl/qsslcertificate_openssl.cpp b/src/network/ssl/qsslcertificate_openssl.cpp
52 +index 6f1fb26a..eba5a729 100644
53 +--- a/src/network/ssl/qsslcertificate_openssl.cpp
54 ++++ b/src/network/ssl/qsslcertificate_openssl.cpp
55 +@@ -658,7 +658,7 @@ static QMultiMap<QByteArray, QString> _q_mapFromX509Name(X509_NAME *name)
56 + unsigned char *data = nullptr;
57 + int size = q_ASN1_STRING_to_UTF8(&data, q_X509_NAME_ENTRY_get_data(e));
58 + info.insert(name, QString::fromUtf8((char*)data, size));
59 +-#if QT_CONFIG(opensslv11)
60 ++#if QT_CONFIG(opensslv11) && !defined(LIBRESSL_VERSION_NUMBER)
61 + q_CRYPTO_free(data, nullptr, 0);
62 + #else
63 + q_CRYPTO_free(data);
64 +diff --git a/src/network/ssl/qsslcontext_openssl.cpp b/src/network/ssl/qsslcontext_openssl.cpp
65 +index 0aa8a4f4..f161af8a 100644
66 +--- a/src/network/ssl/qsslcontext_openssl.cpp
67 ++++ b/src/network/ssl/qsslcontext_openssl.cpp
68 +@@ -397,16 +397,28 @@ init_context:
69 + maxVersion = DTLS1_VERSION;
70 + break;
71 + case QSsl::DtlsV1_0OrLater:
72 ++#ifdef DTLS_MAX_VERSION
73 + minVersion = DTLS1_VERSION;
74 + maxVersion = DTLS_MAX_VERSION;
75 ++#else
76 ++ Q_UNREACHABLE();
77 ++#endif // DTLS_MAX_VERSION
78 + break;
79 + case QSsl::DtlsV1_2:
80 ++#ifdef DTLS1_2_VERSION
81 + minVersion = DTLS1_2_VERSION;
82 + maxVersion = DTLS1_2_VERSION;
83 ++#else
84 ++ Q_UNREACHABLE();
85 ++#endif // DTLS1_2_VERSION
86 + break;
87 + case QSsl::DtlsV1_2OrLater:
88 ++#if defined(DTLS1_2_VERSION) && defined(DTLS_MAX_VERSION)
89 + minVersion = DTLS1_2_VERSION;
90 + maxVersion = DTLS_MAX_VERSION;
91 ++#else
92 ++ Q_UNREACHABLE();
93 ++#endif // DTLS1_2_VERSION && DTLS_MAX_VERSION
94 + break;
95 + case QSsl::TlsV1_3OrLater:
96 + #ifdef TLS1_3_VERSION
97 +@@ -696,6 +708,7 @@ void QSslContext::applyBackendConfig(QSslContext *sslContext)
98 + }
99 + #endif // ocsp
100 +
101 ++#ifndef LIBRESSL_VERSION_NUMBER
102 + QSharedPointer<SSL_CONF_CTX> cctx(q_SSL_CONF_CTX_new(), &q_SSL_CONF_CTX_free);
103 + if (cctx) {
104 + q_SSL_CONF_CTX_set_ssl_ctx(cctx.data(), sslContext->ctx);
105 +@@ -742,7 +755,9 @@ void QSslContext::applyBackendConfig(QSslContext *sslContext)
106 + sslContext->errorStr = msgErrorSettingBackendConfig(QSslSocket::tr("SSL_CONF_finish() failed"));
107 + sslContext->errorCode = QSslError::UnspecifiedError;
108 + }
109 +- } else {
110 ++ } else
111 ++#endif // LIBRESSL_VERSION_NUMBER
112 ++ {
113 + sslContext->errorStr = msgErrorSettingBackendConfig(QSslSocket::tr("SSL_CONF_CTX_new() failed"));
114 + sslContext->errorCode = QSslError::UnspecifiedError;
115 + }
116 +diff --git a/src/network/ssl/qsslcontext_openssl_p.h b/src/network/ssl/qsslcontext_openssl_p.h
117 +index 70cb97aa..01a61cf5 100644
118 +--- a/src/network/ssl/qsslcontext_openssl_p.h
119 ++++ b/src/network/ssl/qsslcontext_openssl_p.h
120 +@@ -61,6 +61,13 @@
121 +
122 + QT_BEGIN_NAMESPACE
123 +
124 ++#ifndef DTLS_ANY_VERSION
125 ++#define DTLS_ANY_VERSION 0x1FFFF
126 ++#endif
127 ++#ifndef TLS_ANY_VERSION
128 ++#define TLS_ANY_VERSION 0x10000
129 ++#endif
130 ++
131 + #ifndef QT_NO_SSL
132 +
133 + class QSslContextPrivate;
134 +diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
135 +index 4be27aff..1f33911e 100644
136 +--- a/src/network/ssl/qsslsocket_openssl.cpp
137 ++++ b/src/network/ssl/qsslsocket_openssl.cpp
138 +@@ -598,7 +598,7 @@ bool QSslSocketBackendPrivate::initSslContext()
139 + else if (mode == QSslSocket::SslServerMode)
140 + q_SSL_set_psk_server_callback(ssl, &q_ssl_psk_server_callback);
141 +
142 +-#if OPENSSL_VERSION_NUMBER >= 0x10101006L
143 ++#if OPENSSL_VERSION_NUMBER >= 0x10101006L && !defined(LIBRESSL_VERSION_NUMBER)
144 + // Set the client callback for TLSv1.3 PSK
145 + if (mode == QSslSocket::SslClientMode
146 + && QSslSocket::sslLibraryBuildVersionNumber() >= 0x10101006L) {
147 +diff --git a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp
148 +index 71a268ae..8a43035b 100644
149 +--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp
150 ++++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp
151 +@@ -147,6 +147,7 @@ DEFINEFUNC(int, EVP_CIPHER_CTX_reset, EVP_CIPHER_CTX *c, c, return 0, return)
152 + DEFINEFUNC(int, EVP_PKEY_up_ref, EVP_PKEY *a, a, return 0, return)
153 + DEFINEFUNC(int, EVP_PKEY_base_id, EVP_PKEY *a, a, return NID_undef, return)
154 + DEFINEFUNC(int, RSA_bits, RSA *a, a, return 0, return)
155 ++#ifndef LIBRESSL_VERSION_NUMBER
156 + DEFINEFUNC(int, DSA_bits, DSA *a, a, return 0, return)
157 + DEFINEFUNC(int, OPENSSL_sk_num, OPENSSL_STACK *a, a, return -1, return)
158 + DEFINEFUNC2(void, OPENSSL_sk_pop_free, OPENSSL_STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
159 +@@ -154,6 +155,14 @@ DEFINEFUNC(OPENSSL_STACK *, OPENSSL_sk_new_null, DUMMYARG, DUMMYARG, return null
160 + DEFINEFUNC2(void, OPENSSL_sk_push, OPENSSL_STACK *a, a, void *b, b, return, DUMMYARG)
161 + DEFINEFUNC(void, OPENSSL_sk_free, OPENSSL_STACK *a, a, return, DUMMYARG)
162 + DEFINEFUNC2(void *, OPENSSL_sk_value, OPENSSL_STACK *a, a, int b, b, return nullptr, return)
163 ++#else
164 ++DEFINEFUNC(int, sk_num, STACK *a, a, return -1, return)
165 ++DEFINEFUNC2(void, sk_pop_free, STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
166 ++DEFINEFUNC(_STACK *, sk_new_null, DUMMYARG, DUMMYARG, return nullptr, return)
167 ++DEFINEFUNC2(void, sk_push, _STACK *a, a, void *b, b, return, DUMMYARG)
168 ++DEFINEFUNC(void, sk_free, _STACK *a, a, return, DUMMYARG)
169 ++DEFINEFUNC2(void *, sk_value, STACK *a, a, int b, b, return nullptr, return)
170 ++#endif // LIBRESSL_VERSION_NUMBER
171 + DEFINEFUNC(int, SSL_session_reused, SSL *a, a, return 0, return)
172 + DEFINEFUNC2(unsigned long, SSL_CTX_set_options, SSL_CTX *ctx, ctx, unsigned long op, op, return 0, return)
173 + #ifdef TLS1_3_VERSION
174 +@@ -179,7 +188,11 @@ DEFINEFUNC2(void, X509_STORE_set_verify_cb, X509_STORE *a, a, X509_STORE_CTX_ver
175 + DEFINEFUNC3(int, X509_STORE_set_ex_data, X509_STORE *a, a, int idx, idx, void *data, data, return 0, return)
176 + DEFINEFUNC2(void *, X509_STORE_get_ex_data, X509_STORE *r, r, int idx, idx, return nullptr, return)
177 + DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get0_chain, X509_STORE_CTX *a, a, return nullptr, return)
178 ++#ifndef LIBRESSL_VERSION_NUMBER
179 + DEFINEFUNC3(void, CRYPTO_free, void *str, str, const char *file, file, int line, line, return, DUMMYARG)
180 ++#else
181 ++DEFINEFUNC(void, CRYPTO_free, void *a, a, return, DUMMYARG)
182 ++#endif
183 + DEFINEFUNC(long, OpenSSL_version_num, void, DUMMYARG, return 0, return)
184 + DEFINEFUNC(const char *, OpenSSL_version, int a, a, return nullptr, return)
185 + DEFINEFUNC(unsigned long, SSL_SESSION_get_ticket_lifetime_hint, const SSL_SESSION *session, session, return 0, return)
186 +@@ -219,7 +232,9 @@ DEFINEFUNC5(int, OCSP_id_get0_info, ASN1_OCTET_STRING **piNameHash, piNameHash,
187 + ASN1_OCTET_STRING **piKeyHash, piKeyHash, ASN1_INTEGER **pserial, pserial, OCSP_CERTID *cid, cid,
188 + return 0, return)
189 + DEFINEFUNC2(OCSP_RESPONSE *, OCSP_response_create, int status, status, OCSP_BASICRESP *bs, bs, return nullptr, return)
190 ++#ifndef LIBRESSL_VERSION_NUMBER
191 + DEFINEFUNC(const STACK_OF(X509) *, OCSP_resp_get0_certs, const OCSP_BASICRESP *bs, bs, return nullptr, return)
192 ++#endif
193 + DEFINEFUNC2(int, OCSP_id_cmp, OCSP_CERTID *a, a, OCSP_CERTID *b, b, return -1, return)
194 + DEFINEFUNC7(OCSP_SINGLERESP *, OCSP_basic_add1_status, OCSP_BASICRESP *r, r, OCSP_CERTID *c, c, int s, s,
195 + int re, re, ASN1_TIME *rt, rt, ASN1_TIME *t, t, ASN1_TIME *n, n, return nullptr, return)
196 +@@ -351,12 +366,14 @@ DEFINEFUNC2(int, SSL_CTX_use_PrivateKey, SSL_CTX *a, a, EVP_PKEY *b, b, return -
197 + DEFINEFUNC2(int, SSL_CTX_use_RSAPrivateKey, SSL_CTX *a, a, RSA *b, b, return -1, return)
198 + DEFINEFUNC3(int, SSL_CTX_use_PrivateKey_file, SSL_CTX *a, a, const char *b, b, int c, c, return -1, return)
199 + DEFINEFUNC(X509_STORE *, SSL_CTX_get_cert_store, const SSL_CTX *a, a, return nullptr, return)
200 ++#ifndef LIBRESSL_VERSION_NUMBER
201 + DEFINEFUNC(SSL_CONF_CTX *, SSL_CONF_CTX_new, DUMMYARG, DUMMYARG, return nullptr, return);
202 + DEFINEFUNC(void, SSL_CONF_CTX_free, SSL_CONF_CTX *a, a, return ,return);
203 + DEFINEFUNC2(void, SSL_CONF_CTX_set_ssl_ctx, SSL_CONF_CTX *a, a, SSL_CTX *b, b, return, return);
204 + DEFINEFUNC2(unsigned int, SSL_CONF_CTX_set_flags, SSL_CONF_CTX *a, a, unsigned int b, b, return 0, return);
205 + DEFINEFUNC(int, SSL_CONF_CTX_finish, SSL_CONF_CTX *a, a, return 0, return);
206 + DEFINEFUNC3(int, SSL_CONF_cmd, SSL_CONF_CTX *a, a, const char *b, b, const char *c, c, return 0, return);
207 ++#endif
208 + DEFINEFUNC(void, SSL_free, SSL *a, a, return, DUMMYARG)
209 + DEFINEFUNC(STACK_OF(SSL_CIPHER) *, SSL_get_ciphers, const SSL *a, a, return nullptr, return)
210 + DEFINEFUNC(const SSL_CIPHER *, SSL_get_current_cipher, SSL *a, a, return nullptr, return)
211 +@@ -833,12 +850,14 @@ bool q_resolveOpenSslSymbols()
212 + RESOLVEFUNC(EVP_PKEY_up_ref)
213 + RESOLVEFUNC(EVP_PKEY_base_id)
214 + RESOLVEFUNC(RSA_bits)
215 ++#ifndef LIBRESSL_VERSION_NUMBER
216 + RESOLVEFUNC(OPENSSL_sk_new_null)
217 + RESOLVEFUNC(OPENSSL_sk_push)
218 + RESOLVEFUNC(OPENSSL_sk_free)
219 + RESOLVEFUNC(OPENSSL_sk_num)
220 + RESOLVEFUNC(OPENSSL_sk_pop_free)
221 + RESOLVEFUNC(OPENSSL_sk_value)
222 ++#endif
223 + RESOLVEFUNC(DH_get0_pqg)
224 + RESOLVEFUNC(SSL_CTX_set_options)
225 +
226 +@@ -880,7 +899,9 @@ bool q_resolveOpenSslSymbols()
227 +
228 + RESOLVEFUNC(SSL_SESSION_get_ticket_lifetime_hint)
229 + RESOLVEFUNC(DH_bits)
230 ++#ifndef LIBRESSL_VERSION_NUMBER
231 + RESOLVEFUNC(DSA_bits)
232 ++#endif
233 +
234 + #if QT_CONFIG(dtls)
235 + RESOLVEFUNC(DTLSv1_listen)
236 +@@ -910,7 +931,9 @@ bool q_resolveOpenSslSymbols()
237 + RESOLVEFUNC(OCSP_check_validity)
238 + RESOLVEFUNC(OCSP_cert_to_id)
239 + RESOLVEFUNC(OCSP_id_get0_info)
240 ++#ifndef LIBRESSL_VERSION_NUMBER
241 + RESOLVEFUNC(OCSP_resp_get0_certs)
242 ++#endif
243 + RESOLVEFUNC(OCSP_basic_sign)
244 + RESOLVEFUNC(OCSP_response_create)
245 + RESOLVEFUNC(i2d_OCSP_RESPONSE)
246 +@@ -1040,12 +1063,14 @@ bool q_resolveOpenSslSymbols()
247 + RESOLVEFUNC(SSL_CTX_use_RSAPrivateKey)
248 + RESOLVEFUNC(SSL_CTX_use_PrivateKey_file)
249 + RESOLVEFUNC(SSL_CTX_get_cert_store);
250 ++#ifndef LIBRESSL_VERSION_NUMBER
251 + RESOLVEFUNC(SSL_CONF_CTX_new);
252 + RESOLVEFUNC(SSL_CONF_CTX_free);
253 + RESOLVEFUNC(SSL_CONF_CTX_set_ssl_ctx);
254 + RESOLVEFUNC(SSL_CONF_CTX_set_flags);
255 + RESOLVEFUNC(SSL_CONF_CTX_finish);
256 + RESOLVEFUNC(SSL_CONF_cmd);
257 ++#endif
258 + RESOLVEFUNC(SSL_accept)
259 + RESOLVEFUNC(SSL_clear)
260 + RESOLVEFUNC(SSL_connect)
261 +diff --git a/src/network/ssl/qsslsocket_openssl_symbols_p.h b/src/network/ssl/qsslsocket_openssl_symbols_p.h
262 +index f35e0ba2..30097317 100644
263 +--- a/src/network/ssl/qsslsocket_openssl_symbols_p.h
264 ++++ b/src/network/ssl/qsslsocket_openssl_symbols_p.h
265 +@@ -80,6 +80,13 @@ QT_BEGIN_NAMESPACE
266 +
267 + #define DUMMYARG
268 +
269 ++#ifdef LIBRESSL_VERSION_NUMBER
270 ++typedef _STACK STACK;
271 ++typedef STACK OPENSSL_STACK;
272 ++typedef void OPENSSL_INIT_SETTINGS;
273 ++typedef int (*X509_STORE_CTX_verify_cb)(int ok,X509_STORE_CTX *ctx);
274 ++#endif
275 ++
276 + #if !defined QT_LINKED_OPENSSL
277 + // **************** Shared declarations ******************
278 + // ret func(arg)
279 +@@ -230,17 +237,38 @@ const unsigned char * q_ASN1_STRING_get0_data(const ASN1_STRING *x);
280 + Q_AUTOTEST_EXPORT BIO *q_BIO_new(const BIO_METHOD *a);
281 + Q_AUTOTEST_EXPORT const BIO_METHOD *q_BIO_s_mem();
282 +
283 ++#ifndef LIBRESSL_VERSION_NUMBER
284 + int q_DSA_bits(DSA *a);
285 ++#else
286 ++#define q_DSA_bits(dsa) q_BN_num_bits((dsa)->p)
287 ++#endif
288 + int q_EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c);
289 + Q_AUTOTEST_EXPORT int q_EVP_PKEY_up_ref(EVP_PKEY *a);
290 + int q_EVP_PKEY_base_id(EVP_PKEY *a);
291 + int q_RSA_bits(RSA *a);
292 ++
293 ++#ifndef LIBRESSL_VERSION_NUMBER
294 + Q_AUTOTEST_EXPORT int q_OPENSSL_sk_num(OPENSSL_STACK *a);
295 + Q_AUTOTEST_EXPORT void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *));
296 + Q_AUTOTEST_EXPORT OPENSSL_STACK *q_OPENSSL_sk_new_null();
297 + Q_AUTOTEST_EXPORT void q_OPENSSL_sk_push(OPENSSL_STACK *st, void *data);
298 + Q_AUTOTEST_EXPORT void q_OPENSSL_sk_free(OPENSSL_STACK *a);
299 + Q_AUTOTEST_EXPORT void * q_OPENSSL_sk_value(OPENSSL_STACK *a, int b);
300 ++#else // LIBRESSL_VERSION_NUMBER
301 ++int q_sk_num(STACK *a);
302 ++#define q_OPENSSL_sk_num(a) q_sk_num(a)
303 ++void q_sk_pop_free(STACK *a, void (*b)(void *));
304 ++#define q_OPENSSL_sk_pop_free(a, b) q_sk_pop_free(a, b)
305 ++STACK *q_sk_new_null();
306 ++#define q_OPENSSL_sk_new_null() q_sk_new_null()
307 ++void q_sk_push(STACK *st, void *data);
308 ++#define q_OPENSSL_sk_push(st, data) q_sk_push(st, data)
309 ++void q_sk_free(STACK *a);
310 ++#define q_OPENSSL_sk_free q_sk_free
311 ++void *q_sk_value(STACK *a, int b);
312 ++#define q_OPENSSL_sk_value(a, b) q_sk_value(a, b)
313 ++#endif // LIBRESSL_VERSION_NUMBER
314 ++
315 + int q_SSL_session_reused(SSL *a);
316 + unsigned long q_SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op);
317 + int q_OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
318 +@@ -266,8 +294,13 @@ int q_DH_bits(DH *dh);
319 + # define q_SSL_load_error_strings() q_OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \
320 + | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
321 +
322 ++#ifndef LIBRESSL_VERSION_NUMBER
323 + #define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_OPENSSL_sk_num)(st)
324 + #define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_OPENSSL_sk_value)(st, i)
325 ++#else
326 ++#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st)
327 ++#define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_sk_value)(st, i)
328 ++#endif // LIBRESSL_VERSION_NUMBER
329 +
330 + #define q_OPENSSL_add_all_algorithms_conf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
331 + | OPENSSL_INIT_ADD_ALL_DIGESTS \
332 +@@ -276,7 +309,11 @@ int q_DH_bits(DH *dh);
333 + | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL)
334 +
335 + int q_OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
336 ++#ifndef LIBRESSL_VERSION_NUMBER
337 + void q_CRYPTO_free(void *str, const char *file, int line);
338 ++#else
339 ++void q_CRYPTO_free(void *a);
340 ++#endif
341 +
342 + long q_OpenSSL_version_num();
343 + const char *q_OpenSSL_version(int type);
344 +@@ -494,12 +531,14 @@ int q_SSL_CTX_use_PrivateKey(SSL_CTX *a, EVP_PKEY *b);
345 + int q_SSL_CTX_use_RSAPrivateKey(SSL_CTX *a, RSA *b);
346 + int q_SSL_CTX_use_PrivateKey_file(SSL_CTX *a, const char *b, int c);
347 + X509_STORE *q_SSL_CTX_get_cert_store(const SSL_CTX *a);
348 ++#ifndef LIBRESSL_VERSION_NUMBER
349 + SSL_CONF_CTX *q_SSL_CONF_CTX_new();
350 + void q_SSL_CONF_CTX_free(SSL_CONF_CTX *a);
351 + void q_SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *a, SSL_CTX *b);
352 + unsigned int q_SSL_CONF_CTX_set_flags(SSL_CONF_CTX *a, unsigned int b);
353 + int q_SSL_CONF_CTX_finish(SSL_CONF_CTX *a);
354 + int q_SSL_CONF_cmd(SSL_CONF_CTX *a, const char *b, const char *c);
355 ++#endif
356 + void q_SSL_free(SSL *a);
357 + STACK_OF(SSL_CIPHER) *q_SSL_get_ciphers(const SSL *a);
358 + const SSL_CIPHER *q_SSL_get_current_cipher(SSL *a);
359 +@@ -715,7 +754,11 @@ int q_OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, ASN1_GENERALIZEDTIME *n
360 + int q_OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, ASN1_OCTET_STRING **pikeyHash,
361 + ASN1_INTEGER **pserial, OCSP_CERTID *cid);
362 +
363 ++#ifndef LIBRESSL_VERSION_NUMBER
364 + const STACK_OF(X509) *q_OCSP_resp_get0_certs(const OCSP_BASICRESP *bs);
365 ++#else
366 ++#define q_OCSP_resp_get0_certs(bs) ((bs)->certs)
367 ++#endif
368 + Q_AUTOTEST_EXPORT OCSP_CERTID *q_OCSP_cert_to_id(const EVP_MD *dgst, X509 *subject, X509 *issuer);
369 + Q_AUTOTEST_EXPORT void q_OCSP_CERTID_free(OCSP_CERTID *cid);
370 + int q_OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b);
371 +--
372 +2.25.0
373 +
374
375 diff --git a/dev-qt/qtnetwork/qtnetwork-5.15.0.ebuild b/dev-qt/qtnetwork/qtnetwork-5.15.0.ebuild
376 new file mode 100644
377 index 0000000..c203b98
378 --- /dev/null
379 +++ b/dev-qt/qtnetwork/qtnetwork-5.15.0.ebuild
380 @@ -0,0 +1,67 @@
381 +# Copyright 1999-2020 Gentoo Authors
382 +# Distributed under the terms of the GNU General Public License v2
383 +
384 +EAPI=7
385 +QT5_MODULE="qtbase"
386 +inherit qt5-build
387 +
388 +DESCRIPTION="Network abstraction library for the Qt5 framework"
389 +
390 +if [[ ${QT5_BUILD_TYPE} == release ]]; then
391 + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
392 +fi
393 +
394 +IUSE="bindist connman gssapi libproxy libressl networkmanager sctp +ssl"
395 +
396 +DEPEND="
397 + ~dev-qt/qtcore-${PV}:5=
398 + sys-libs/zlib:=
399 + connman? ( ~dev-qt/qtdbus-${PV} )
400 + gssapi? ( virtual/krb5 )
401 + libproxy? ( net-libs/libproxy )
402 + networkmanager? ( ~dev-qt/qtdbus-${PV} )
403 + sctp? ( kernel_linux? ( net-misc/lksctp-tools ) )
404 + ssl? (
405 + !libressl? ( dev-libs/openssl:0=[bindist=] )
406 + libressl? ( dev-libs/libressl:0= )
407 + )
408 +"
409 +RDEPEND="${DEPEND}
410 + connman? ( net-misc/connman )
411 + networkmanager? ( net-misc/networkmanager )
412 +"
413 +
414 +PATCHES=( "${FILESDIR}"/${PN}-5.15.0-libressl.patch )
415 +
416 +QT5_TARGET_SUBDIRS=(
417 + src/network
418 + src/plugins/bearer/generic
419 +)
420 +
421 +QT5_GENTOO_CONFIG=(
422 + libproxy:libproxy:
423 + ssl::SSL
424 + ssl::OPENSSL
425 + ssl:openssl-linked:LINKED_OPENSSL
426 +)
427 +
428 +QT5_GENTOO_PRIVATE_CONFIG=(
429 + :network
430 +)
431 +
432 +pkg_setup() {
433 + use connman && QT5_TARGET_SUBDIRS+=(src/plugins/bearer/connman)
434 + use networkmanager && QT5_TARGET_SUBDIRS+=(src/plugins/bearer/networkmanager)
435 +}
436 +
437 +src_configure() {
438 + local myconf=(
439 + $(usex connman -dbus-linked '')
440 + $(usex gssapi -feature-gssapi -no-feature-gssapi)
441 + $(qt_use libproxy)
442 + $(usex networkmanager -dbus-linked '')
443 + $(qt_use sctp)
444 + $(usex ssl -openssl-linked '')
445 + )
446 + qt5-build_src_configure
447 +}