net-wireless/wpa-supplicant: Fix broken compile against LibreSSL
authorBjarke Istrup Pedersen <gurligebis@gentoo.org>
Mon, 16 Nov 2015 11:40:08 +0000 (11:40 +0000)
committerBjarke Istrup Pedersen <gurligebis@gentoo.org>
Mon, 16 Nov 2015 11:40:08 +0000 (11:40 +0000)
Package-Manager: portage-2.2.24

net-wireless/wpa_supplicant/files/wpa_supplicant-2.5-libressl.patch [new file with mode: 0644]
net-wireless/wpa_supplicant/wpa_supplicant-2.5-r1.ebuild

diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant-2.5-libressl.patch b/net-wireless/wpa_supplicant/files/wpa_supplicant-2.5-libressl.patch
new file mode 100644 (file)
index 0000000..458628c
--- /dev/null
@@ -0,0 +1,71 @@
+From c987191de92bacbf27df5d345a9d18aea8ea8a98 Mon Sep 17 00:00:00 2001\r
+From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <kabel@blackhole.sk>\r
+Date: Mon, 16 Nov 2015 02:18:22 +0100\r
+Subject: [PATCH] Check for LIBRESSL_VERSION_NUMBER in tls_openssl.c\r
+\r
+LibreSSL does not yet support the new API, so do not use it\r
+when LIBRESSL_VERSION_NUMBER macro is defined.\r
+---\r
+ src/crypto/tls_openssl.c | 12 ++++++------\r
+ 1 file changed, 6 insertions(+), 6 deletions(-)\r
+\r
+diff --git a/src/crypto/tls_openssl.c b/src/crypto/tls_openssl.c\r
+index c2bb8c5..3883465 100644\r
+--- a/src/crypto/tls_openssl.c\r
++++ b/src/crypto/tls_openssl.c\r
+@@ -3163,7 +3163,7 @@ static int tls_parse_pkcs12(struct tls_data *data, SSL *ssl, PKCS12 *p12,\r
+       }\r
+ \r
+       if (certs) {\r
+-#if OPENSSL_VERSION_NUMBER >= 0x10002000L\r
++#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(LIBRESSL_VERSION_NUMBER)\r
+               SSL_clear_chain_certs(ssl);\r
+               while ((cert = sk_X509_pop(certs)) != NULL) {\r
+                       X509_NAME_oneline(X509_get_subject_name(cert), buf,\r
+@@ -3746,7 +3746,7 @@ int tls_connection_get_random(void *ssl_ctx, struct tls_connection *conn,\r
+       if (conn == NULL || keys == NULL)\r
+               return -1;\r
+       ssl = conn->ssl;\r
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L\r
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)\r
+       if (ssl == NULL || ssl->s3 == NULL || ssl->session == NULL)\r
+               return -1;\r
+ \r
+@@ -3775,7 +3775,7 @@ int tls_connection_get_random(void *ssl_ctx, struct tls_connection *conn,\r
+ #ifndef CONFIG_FIPS\r
+ static int openssl_get_keyblock_size(SSL *ssl)\r
+ {\r
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L\r
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)\r
+       const EVP_CIPHER *c;\r
+       const EVP_MD *h;\r
+       int md_size;\r
+@@ -3845,7 +3845,7 @@ static int openssl_tls_prf(struct tls_connection *conn,\r
+                  "mode");\r
+       return -1;\r
+ #else /* CONFIG_FIPS */\r
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L\r
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)\r
+       SSL *ssl;\r
+       u8 *rnd;\r
+       int ret = -1;\r
+@@ -4328,7 +4328,7 @@ int tls_connection_set_cipher_list(void *tls_ctx, struct tls_connection *conn,\r
+ \r
+       wpa_printf(MSG_DEBUG, "OpenSSL: cipher suites: %s", buf + 1);\r
+ \r
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L\r
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)\r
+ #if defined(EAP_FAST) || defined(EAP_FAST_DYNAMIC) || defined(EAP_SERVER_FAST)\r
+       if (os_strstr(buf, ":ADH-")) {\r
+               /*\r
+@@ -4917,7 +4917,7 @@ static int tls_sess_sec_cb(SSL *s, void *secret, int *secret_len,\r
+       struct tls_connection *conn = arg;\r
+       int ret;\r
+ \r
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L\r
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)\r
+       if (conn == NULL || conn->session_ticket_cb == NULL)\r
+               return 0;\r
+ \r
+-- \r
+2.4.10\r
index b183c3643a0a24d12e4c2314875ad1045f13f69f..9f041ed3a0a4b45ff687cb68fcfbb85daac1ff4e 100644 (file)
@@ -127,6 +127,9 @@ src_prepare() {
        # SO WOULD BE NICE TO JUST DROP IT, IF IT IS NOT NEEDED.
        # bug (374089)
        #epatch "${FILESDIR}/${P}-dbus-WPAIE-fix.patch"
+
+       # bug (565270)
+       epatch "${FILESDIR}/${P}-libressl.patch"
 }
 
 src_configure() {