iperf3: add SSL variant for iperf_auth feature
authorPhilip Prindeville <philipp@redfish-solutions.com>
Tue, 1 Aug 2017 20:04:55 +0000 (14:04 -0600)
committerJohn Crispin <john@phrozen.org>
Wed, 23 Aug 2017 18:35:16 +0000 (20:35 +0200)
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
package/network/utils/iperf3/Makefile
package/network/utils/iperf3/patches/010-fix-openssl-ac-macro.patch [new file with mode: 0644]

index 8536364..1b94ce7 100644 (file)
@@ -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 (file)
index 0000000..d49e421
--- /dev/null
@@ -0,0 +1,41 @@
+commit 3fd1a2ae907bff2d7593c0bb9944aa05eca7b58d
+Author: ralcini <roberto.alcini@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],