From fc48aebdc1d97c73ec8a8428d981bdaa850568d2 Mon Sep 17 00:00:00 2001 From: Philip Prindeville Date: Tue, 1 Aug 2017 14:04:55 -0600 Subject: [PATCH] iperf3: add SSL variant for iperf_auth feature Signed-off-by: Philip Prindeville --- package/network/utils/iperf3/Makefile | 36 ++++++++++++++-- .../patches/010-fix-openssl-ac-macro.patch | 41 +++++++++++++++++++ 2 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 package/network/utils/iperf3/patches/010-fix-openssl-ac-macro.patch diff --git a/package/network/utils/iperf3/Makefile b/package/network/utils/iperf3/Makefile index 853636488c..1b94ce70fa 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 0000000000..d49e421ae2 --- /dev/null +++ b/package/network/utils/iperf3/patches/010-fix-openssl-ac-macro.patch @@ -0,0 +1,41 @@ +commit 3fd1a2ae907bff2d7593c0bb9944aa05eca7b58d +Author: ralcini +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],