Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Sep 2016 17:29:08 +0000 (UTC)
From:      John Marino <marino@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r423004 - in head/net/hostapd: . files
Message-ID:  <201609301729.u8UHT8md051573@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marino
Date: Fri Sep 30 17:29:08 2016
New Revision: 423004
URL: https://svnweb.freebsd.org/changeset/ports/423004

Log:
  net/hostapd: Fix build on DragonFly and with LibreSSL
  
  1. Return the driver_bsd.c patch, it's still required for DF
  2. Modify the os_unix.c patch to include exception for DF
  3. Add patch to fix build with LibreSSL (originates from OpenBSD)
  4. There's no configure set, so replace ineffective configure arg
     with CFLAGS and LDFLAGS for non-base SSL library
  
  Approved by:	SSL blanket and DF blanket

Added:
  head/net/hostapd/files/patch-src_crypto_tls__openssl.c   (contents, props changed)
  head/net/hostapd/files/patch-src_drivers_driver__bsd.c   (contents, props changed)
Modified:
  head/net/hostapd/Makefile
  head/net/hostapd/files/patch-src_utils_os__unix.c

Modified: head/net/hostapd/Makefile
==============================================================================
--- head/net/hostapd/Makefile	Fri Sep 30 17:19:50 2016	(r423003)
+++ head/net/hostapd/Makefile	Fri Sep 30 17:29:08 2016	(r423004)
@@ -14,7 +14,8 @@ LICENSE=	BSD3CLAUSE
 USES=		cpe gmake ssl
 CPE_VENDOR=	w1.f1
 BUILD_WRKSRC=	${WRKSRC}/hostapd
-CONFIGURE_ARGS=	--with-ssl-dir=${OPENSSLBASE}
+CFLAGS+=	-I${OPENSSLINC}
+LDFLAGS+=	-L${OPENSSLLIB}
 
 PLIST_FILES=	sbin/hostapd sbin/hostapd_cli man/man1/hostapd_cli.1.gz \
 		man/man8/hostapd.8.gz

Added: head/net/hostapd/files/patch-src_crypto_tls__openssl.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/hostapd/files/patch-src_crypto_tls__openssl.c	Fri Sep 30 17:29:08 2016	(r423004)
@@ -0,0 +1,65 @@
+--- src/crypto/tls_openssl.c.orig	2015-09-27 19:02:05 UTC
++++ src/crypto/tls_openssl.c
+@@ -2229,7 +2229,7 @@ static int tls_parse_pkcs12(struct tls_d
+ 	}
+ 
+ 	if (certs) {
+-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
++#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(LIBRESSL_VERSION_NUMBER)
+ 		SSL_clear_chain_certs(ssl);
+ 		while ((cert = sk_X509_pop(certs)) != NULL) {
+ 			X509_NAME_oneline(X509_get_subject_name(cert), buf,
+@@ -2247,7 +2247,7 @@ static int tls_parse_pkcs12(struct tls_d
+ 			/* Try to continue anyway */
+ 		}
+ 		sk_X509_free(certs);
+-#ifndef OPENSSL_IS_BORINGSSL
++#if !defined(OPENSSL_IS_BORINGSSL) && !defined(LIBRESSL_VERSION_NUMBER)
+ 		res = SSL_build_cert_chain(ssl,
+ 					   SSL_BUILD_CHAIN_FLAG_CHECK |
+ 					   SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR);
+@@ -2812,7 +2812,7 @@ int tls_connection_get_random(void *ssl_
+ 	if (conn == NULL || keys == NULL)
+ 		return -1;
+ 	ssl = conn->ssl;
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+ 	if (ssl == NULL || ssl->s3 == NULL || ssl->session == NULL)
+ 		return -1;
+ 
+@@ -2841,7 +2841,7 @@ int tls_connection_get_random(void *ssl_
+ #ifndef CONFIG_FIPS
+ static int openssl_get_keyblock_size(SSL *ssl)
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+ 	const EVP_CIPHER *c;
+ 	const EVP_MD *h;
+ 	int md_size;
+@@ -2911,7 +2911,7 @@ static int openssl_tls_prf(struct tls_co
+ 		   "mode");
+ 	return -1;
+ #else /* CONFIG_FIPS */
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+ 	SSL *ssl;
+ 	u8 *rnd;
+ 	int ret = -1;
+@@ -3394,7 +3394,7 @@ int tls_connection_set_cipher_list(void
+ 
+ 	wpa_printf(MSG_DEBUG, "OpenSSL: cipher suites: %s", buf + 1);
+ 
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+ #if defined(EAP_FAST) || defined(EAP_FAST_DYNAMIC) || defined(EAP_SERVER_FAST)
+ 	if (os_strstr(buf, ":ADH-")) {
+ 		/*
+@@ -3977,7 +3977,7 @@ static int tls_sess_sec_cb(SSL *s, void
+ 	struct tls_connection *conn = arg;
+ 	int ret;
+ 
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+ 	if (conn == NULL || conn->session_ticket_cb == NULL)
+ 		return 0;
+ 

Added: head/net/hostapd/files/patch-src_drivers_driver__bsd.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/hostapd/files/patch-src_drivers_driver__bsd.c	Fri Sep 30 17:29:08 2016	(r423004)
@@ -0,0 +1,14 @@
+--- src/drivers/driver_bsd.c.orig	2015-09-27 19:02:05 UTC
++++ src/drivers/driver_bsd.c
+@@ -623,7 +623,11 @@ rtbuf_len(void)
+ static int bsd_sta_deauth(void *priv, const u8 *own_addr, const u8 *addr,
+ 			  int reason_code);
+ 
++#ifdef __DragonFly__
++const char *
++#else
+ static const char *
++#endif
+ ether_sprintf(const u8 *addr)
+ {
+ 	static char buf[sizeof(MACSTR)];

Modified: head/net/hostapd/files/patch-src_utils_os__unix.c
==============================================================================
--- head/net/hostapd/files/patch-src_utils_os__unix.c	Fri Sep 30 17:19:50 2016	(r423003)
+++ head/net/hostapd/files/patch-src_utils_os__unix.c	Fri Sep 30 17:29:08 2016	(r423004)
@@ -4,7 +4,7 @@
  }
  
  
-+#ifndef __FreeBSD__
++#if !defined __FreeBSD__ && !defined __DragonFly__
  int os_fdatasync(FILE *stream)
  {
  	if (!fflush(stream)) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201609301729.u8UHT8md051573>