[source] iperf3: add SSL variant for iperf_auth feature

LEDE Commits lede-commits at lists.infradead.org
Wed Aug 23 11:35:41 PDT 2017


blogic pushed a commit to source.git, branch master:
https://git.lede-project.org/fc48aebdc1d97c73ec8a8428d981bdaa850568d2

commit fc48aebdc1d97c73ec8a8428d981bdaa850568d2
Author: Philip Prindeville <philipp at redfish-solutions.com>
AuthorDate: Tue Aug 1 14:04:55 2017 -0600

    iperf3: add SSL variant for iperf_auth feature
    
    Signed-off-by: Philip Prindeville <philipp at redfish-solutions.com>
---
 package/network/utils/iperf3/Makefile              | 36 +++++++++++++++++--
 .../iperf3/patches/010-fix-openssl-ac-macro.patch  | 41 ++++++++++++++++++++++
 2 files changed, 74 insertions(+), 3 deletions(-)

diff --git a/package/network/utils/iperf3/Makefile b/package/network/utils/iperf3/Makefile
index 8536364..1b94ce7 100644
--- a/package/network/utils/iperf3/Makefile
+++ b/package/network/utils/iperf3/Makefile
@@ -21,21 +21,39 @@ PKG_LICENSE:=BSD-3-Clause
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
 
+PKG_FIXUP:=autoreconf
+
 include $(INCLUDE_DIR)/package.mk
 
 DISABLE_NLS:=
 
-define Package/iperf3
+define Package/iperf3/default
   SECTION:=net
   CATEGORY:=Network
   TITLE:=Internet Protocol bandwidth measuring tool
   URL:=https://github.com/esnet/iperf
+endef
+
+define Package/iperf3
+$(call Package/iperf3/default)
+  VARIANT:=nossl
+endef
+
+define Package/iperf3-ssl
+$(call Package/iperf3/default)
+  TITLE+= with iperf_auth support
+  VARIANT:=ssl
   DEPENDS:= +libopenssl
 endef
 
 TARGET_CFLAGS += -D_GNU_SOURCE
-CONFIGURE_ARGS += --disable-shared \
-                  --with-openssl="$(STAGING_DIR)/usr"
+CONFIGURE_ARGS += --disable-shared
+
+ifeq ($(BUILD_VARIANT),ssl)
+	CONFIGURE_ARGS += --with-openssl="$(STAGING_DIR)/usr"
+else
+	CONFIGURE_ARGS += --without-openssl
+endif
 
 MAKE_FLAGS += noinst_PROGRAMS=
 
@@ -45,9 +63,21 @@ define Package/iperf3/description
  characteristics.
 endef
 
+# autoreconf fails if the README file isn't present
+define Build/Prepare
+	$(call Build/Prepare/Default)
+	touch $(PKG_BUILD_DIR)/README
+endef
+
 define Package/iperf3/install
 	$(INSTALL_DIR) $(1)/usr/bin
 	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/iperf3 $(1)/usr/bin/
 endef
 
+define Package/iperf3-ssl/install
+	$(INSTALL_DIR) $(1)/usr/bin
+	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/iperf3 $(1)/usr/bin/
+endef
+
 $(eval $(call BuildPackage,iperf3))
+$(eval $(call BuildPackage,iperf3-ssl))
diff --git a/package/network/utils/iperf3/patches/010-fix-openssl-ac-macro.patch b/package/network/utils/iperf3/patches/010-fix-openssl-ac-macro.patch
new file mode 100644
index 0000000..d49e421
--- /dev/null
+++ b/package/network/utils/iperf3/patches/010-fix-openssl-ac-macro.patch
@@ -0,0 +1,41 @@
+commit 3fd1a2ae907bff2d7593c0bb9944aa05eca7b58d
+Author: ralcini <roberto.alcini at gmail.com>
+Date:   Mon Aug 14 22:43:38 2017 +0200
+
+    fix for issue #624 - force build without openssl (#631)
+    
+    * fix: now --without-openssl configure flags works
+    enh: if openssl support is required and no valid installation is found, now it raise an error
+    
+    * enh: added warning if building without openssl (iperf_auth disabled)
+
+diff --git a/configure.ac b/configure.ac
+index 3c56cb3..79f3869 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -101,13 +101,18 @@ AC_CHECK_HEADERS([netinet/sctp.h],
+ #endif
+ ])
+ 
+-# Check for OPENSSL support
+-AX_CHECK_OPENSSL(
+-	AC_DEFINE([HAVE_SSL], [1], [OpenSSL Is Available])
+-)
+-LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS"
+-LIBS="$OPENSSL_LIBS $LIBS"
+-CPPFLAGS="$OPENSSL_INCLUDES $CPPFLAGS"
++if test "x$with_openssl" = "xno"; then
++    AC_MSG_WARN( [Building without OpenSSL; disabling iperf_auth functionality.] )
++else
++    # Check for OPENSSL support
++    AX_CHECK_OPENSSL(
++        [ AC_DEFINE([HAVE_SSL], [1], [OpenSSL Is Available]) ],
++	[ AC_MSG_FAILURE([--with-openssl was given, but test for openssl failed]) ]
++    )
++    LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS"
++    LIBS="$OPENSSL_LIBS $LIBS"
++    CPPFLAGS="$OPENSSL_INCLUDES $CPPFLAGS"
++fi
+ 
+ # Check for TCP_CONGESTION sockopt (believed to be Linux and FreeBSD only)
+ AC_CACHE_CHECK([TCP_CONGESTION socket option],



More information about the lede-commits mailing list