Explorar o código

iperf3: add SSL variant for iperf_auth feature

Signed-off-by: Philip Prindeville <[email protected]>
Philip Prindeville %!s(int64=8) %!d(string=hai) anos
pai
achega
fc48aebdc1

+ 33 - 3
package/network/utils/iperf3/Makefile

@@ -21,21 +21,39 @@ PKG_LICENSE:=BSD-3-Clause
 PKG_BUILD_PARALLEL:=1
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
 PKG_INSTALL:=1
 
 
+PKG_FIXUP:=autoreconf
+
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/package.mk
 
 
 DISABLE_NLS:=
 DISABLE_NLS:=
 
 
-define Package/iperf3
+define Package/iperf3/default
   SECTION:=net
   SECTION:=net
   CATEGORY:=Network
   CATEGORY:=Network
   TITLE:=Internet Protocol bandwidth measuring tool
   TITLE:=Internet Protocol bandwidth measuring tool
   URL:=https://github.com/esnet/iperf
   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
   DEPENDS:= +libopenssl
 endef
 endef
 
 
 TARGET_CFLAGS += -D_GNU_SOURCE
 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=
 MAKE_FLAGS += noinst_PROGRAMS=
 
 
@@ -45,9 +63,21 @@ define Package/iperf3/description
  characteristics.
  characteristics.
 endef
 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
 define Package/iperf3/install
 	$(INSTALL_DIR) $(1)/usr/bin
 	$(INSTALL_DIR) $(1)/usr/bin
 	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/iperf3 $(1)/usr/bin/
 	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/iperf3 $(1)/usr/bin/
 endef
 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))
+$(eval $(call BuildPackage,iperf3-ssl))

+ 41 - 0
package/network/utils/iperf3/patches/010-fix-openssl-ac-macro.patch

@@ -0,0 +1,41 @@
+commit 3fd1a2ae907bff2d7593c0bb9944aa05eca7b58d
+Author: ralcini <[email protected]>
+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],