aboutsummaryrefslogtreecommitdiff
path: root/net/qt5-network
diff options
context:
space:
mode:
authorRaphael Kubo da Costa <rakuco@FreeBSD.org>2016-08-23 14:23:05 +0000
committerRaphael Kubo da Costa <rakuco@FreeBSD.org>2016-08-23 14:23:05 +0000
commit43ac9265df61b2e8874d3fc2a0e68a9ef4eb745e (patch)
tree9782c9fc98ebbc6ce0f3908005b72347606b0894 /net/qt5-network
parent885ef1cdc8433799881b868d5ebafe5ea73e196f (diff)
downloadports-43ac9265df61b2e8874d3fc2a0e68a9ef4eb745e.tar.gz
ports-43ac9265df61b2e8874d3fc2a0e68a9ef4eb745e.zip
Fix the build with LibreSSL.
LibreSSL does not define SSL_CTRL_SET_CURVES, so check for the macro's existence before using it. I'm committing this mostly to get it into the 2016Q3 branch so it lives a bit longer: starting with Qt 5.6, upstream explicitly does not support LibreSSL and fails at configuration time if it is detected (the rationale being that they do not want to make the OpenSSL backend code even more confusing with additional checks and code paths for LibreSSL; patches adding a separate LibreSSL backend are more than welcome, but someone needs to write the code and maintain it). PORTREVISION is not being bumped because the LibreSSL build was simply broken before, and the patch does not change anything for OpenSSL users. PR: 211832 Submitted by: matthew@reztek.cz MFH: 2016Q3
Notes
Notes: svn path=/head/; revision=420681
Diffstat (limited to 'net/qt5-network')
-rw-r--r--net/qt5-network/files/patch-src_network_ssl_qsslcontext__openssl.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/net/qt5-network/files/patch-src_network_ssl_qsslcontext__openssl.cpp b/net/qt5-network/files/patch-src_network_ssl_qsslcontext__openssl.cpp
new file mode 100644
index 000000000000..1d0c35b86d4f
--- /dev/null
+++ b/net/qt5-network/files/patch-src_network_ssl_qsslcontext__openssl.cpp
@@ -0,0 +1,29 @@
+Obtained from: https://github.com/libressl-portable/openbsd/issues/33
+
+From 81494e67eccba04fc3fe554d76a9ca6fe7f2250e Mon Sep 17 00:00:00 2001
+From: hasufell <hasufell@gentoo.org>
+Date: Sat, 10 Oct 2015 01:15:01 +0200
+Subject: [PATCH] Fix compilation with libressl
+
+By additionally checking for defined(SSL_CTRL_SET_CURVES), which
+is defined in openssl, but not in libressl.
+--- src/network/ssl/qsslcontext_openssl.cpp.orig 2015-10-13 04:35:28 UTC
++++ src/network/ssl/qsslcontext_openssl.cpp
+@@ -338,7 +338,7 @@ init_context:
+
+ const QVector<QSslEllipticCurve> qcurves = sslContext->sslConfiguration.ellipticCurves();
+ if (!qcurves.isEmpty()) {
+-#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(OPENSSL_NO_EC)
++#if OPENSSL_VERSION_NUMBER >= 0x10002000L && defined(SSL_CTRL_SET_CURVES) && !defined(OPENSSL_NO_EC)
+ // Set the curves to be used
+ if (q_SSLeay() >= 0x10002000L) {
+ // SSL_CTX_ctrl wants a non-const pointer as last argument,
+@@ -352,7 +352,7 @@ init_context:
+ return sslContext;
+ }
+ } else
+-#endif // OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(OPENSSL_NO_EC)
++#endif // OPENSSL_VERSION_NUMBER >= 0x10002000L && defined(SSL_CTRL_SET_CURVES) && !defined(OPENSSL_NO_EC)
+ {
+ // specific curves requested, but not possible to set -> error
+ sslContext->errorStr = msgErrorSettingEllipticCurves(QSslSocket::tr("OpenSSL version too old, need at least v1.0.2"));