packages/net/softethervpn5/Makefile

170 lines
5.6 KiB
Makefile
Raw Normal View History

# Based partially on the versions of el1n and Federico Di Marco
include $(TOPDIR)/rules.mk
PKG_NAME:=softethervpn5
softethervpn5: update to 5.01.9672 * 5.01.9672 release * Cedar: handle UDP acceleration and R-UDP versions * Mayaqua: implement R-UDP version 2, powered by ChaCha20-Poly1305 * Cedar: implement UDP acceleration version 2, powered by ChaCha20-Poly1305 * Cedar: serve new web management interface * Cedar: implement detailed protocol info * Mayaqua: add Windows Server 2019 to the supported operating systems list * Cedar: various fixes * Cedar: add "DisableIPsecAggressiveMode" option * Make install dir for unit files configurable * Protocol.c: adapt ClientConnectGetSocket() for new proxy functions * Wpc.c: adapt WpcSockConnectEx() for new proxy functions * Protocol: add ProxyCodeToCedar() * Move generic proxy stuff from Cedar to Mayaqua * Proto_OpenVPN.c: improve OvsProcessData(), fix out-of-bounds access found by Coverity * Proto_OpenVPN.c: fix segmentation fault in OvsProceccRecvPacket() * Addressing the UDP reflection amplification attack: https://github.com/SoftEtherVPN/SoftEtherVPN/issues/1001 * Mayaqua.h: include <stdarg.h> for "va_list" on Illumos * Protocol.c: fix bug in ClientConnectGetSocket() causing custom HTTP header not to work * Mayaqua: move HTTP functions from "Network" to "HTTP" * Move GetMimeTypeFromFileName() and related structure to Mayaqua * Mayaqua.h: include <stdio.h> for "FILE" * Mayaqua.h: include <stddef.h>, for "wchar_t" * Bump mixin-deep in /src/bin/hamcore/wwwroot/admin/default * - Fixed the problem occurs when RPC messages between Cluster Members exceed 64Kbytes. - Fixed the RADIUS PEAP client to use the standard TLS versioning. - Implementation of a function to fix the MAC address of L3 VPN protocol by entering e.g. "MAC: 112233445566" in the "Notes" field of the user information. - Implementation of a function to fix the virtual MAC address to be assigned to the L3 VPN client as a string attribute from RADIUS server when authentication. * Updating built-in Win32 libraries - OpenSSL 1.1.1 -> 1.1.1d - zlib 1.2.3 -> 1.2.11 * Update strtable_cn.stb * Avoid using hardcoded paths in log file enumeration * Fix buffer overflow during NETBIOS name resolution * Update SEVPN.sln * Create strtable_pt_br.stb * ci: display error if vpntest failed * Fix several compile warnings on MS VC++ 2008. * Enables crash minidump for Win32 vpntest. Minidump files will be saved to the 'C:\Users\<username>\AppData\Local\Temp\vpn_debug' (for normal user) or 'src\bin\vpn_debug\' (for administrator user). * OpenVPN: use new protocol interface * Add interface for easy protocol implementation * add "no-deprecated" to openssl builds "no-deprecated" is widely used in openwrt devices * Fix LibreSSL support * Switch to OpenSSL THREADID API * travis-ci: update openssl, libressl * enable sonar-scan in travis-ci builds * Virtual: fix race condition in DHCP server which resulted in multiple clients receiving the same IP * Mayaqua: Fix compilation without deprecated OpenSSL APIs * Mayaqua: Replace GNU specific sys/poll.h header with POSIX poll.h * systemd: replace deprecated CAP_SYS_ADMIN with CAP_SYSLOG Signed-off-by: Andy Walsh <andy.walsh44+github@gmail.com>
2019-11-26 14:50:20 +00:00
PKG_VERSION:=5.01.9672
PKG_RELEASE:=1
PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=COPYING
PKG_SOURCE_URL:=https://github.com/SoftEtherVPN/SoftEtherVPN/releases/download/$(PKG_VERSION)/
PKG_SOURCE:=softether-vpn-src-$(PKG_VERSION).tar.gz
softethervpn5: update to 5.01.9672 * 5.01.9672 release * Cedar: handle UDP acceleration and R-UDP versions * Mayaqua: implement R-UDP version 2, powered by ChaCha20-Poly1305 * Cedar: implement UDP acceleration version 2, powered by ChaCha20-Poly1305 * Cedar: serve new web management interface * Cedar: implement detailed protocol info * Mayaqua: add Windows Server 2019 to the supported operating systems list * Cedar: various fixes * Cedar: add "DisableIPsecAggressiveMode" option * Make install dir for unit files configurable * Protocol.c: adapt ClientConnectGetSocket() for new proxy functions * Wpc.c: adapt WpcSockConnectEx() for new proxy functions * Protocol: add ProxyCodeToCedar() * Move generic proxy stuff from Cedar to Mayaqua * Proto_OpenVPN.c: improve OvsProcessData(), fix out-of-bounds access found by Coverity * Proto_OpenVPN.c: fix segmentation fault in OvsProceccRecvPacket() * Addressing the UDP reflection amplification attack: https://github.com/SoftEtherVPN/SoftEtherVPN/issues/1001 * Mayaqua.h: include <stdarg.h> for "va_list" on Illumos * Protocol.c: fix bug in ClientConnectGetSocket() causing custom HTTP header not to work * Mayaqua: move HTTP functions from "Network" to "HTTP" * Move GetMimeTypeFromFileName() and related structure to Mayaqua * Mayaqua.h: include <stdio.h> for "FILE" * Mayaqua.h: include <stddef.h>, for "wchar_t" * Bump mixin-deep in /src/bin/hamcore/wwwroot/admin/default * - Fixed the problem occurs when RPC messages between Cluster Members exceed 64Kbytes. - Fixed the RADIUS PEAP client to use the standard TLS versioning. - Implementation of a function to fix the MAC address of L3 VPN protocol by entering e.g. "MAC: 112233445566" in the "Notes" field of the user information. - Implementation of a function to fix the virtual MAC address to be assigned to the L3 VPN client as a string attribute from RADIUS server when authentication. * Updating built-in Win32 libraries - OpenSSL 1.1.1 -> 1.1.1d - zlib 1.2.3 -> 1.2.11 * Update strtable_cn.stb * Avoid using hardcoded paths in log file enumeration * Fix buffer overflow during NETBIOS name resolution * Update SEVPN.sln * Create strtable_pt_br.stb * ci: display error if vpntest failed * Fix several compile warnings on MS VC++ 2008. * Enables crash minidump for Win32 vpntest. Minidump files will be saved to the 'C:\Users\<username>\AppData\Local\Temp\vpn_debug' (for normal user) or 'src\bin\vpn_debug\' (for administrator user). * OpenVPN: use new protocol interface * Add interface for easy protocol implementation * add "no-deprecated" to openssl builds "no-deprecated" is widely used in openwrt devices * Fix LibreSSL support * Switch to OpenSSL THREADID API * travis-ci: update openssl, libressl * enable sonar-scan in travis-ci builds * Virtual: fix race condition in DHCP server which resulted in multiple clients receiving the same IP * Mayaqua: Fix compilation without deprecated OpenSSL APIs * Mayaqua: Replace GNU specific sys/poll.h header with POSIX poll.h * systemd: replace deprecated CAP_SYS_ADMIN with CAP_SYSLOG Signed-off-by: Andy Walsh <andy.walsh44+github@gmail.com>
2019-11-26 14:50:20 +00:00
PKG_HASH:=7c437d4d02d7e2a936b4c1ff7bc8f5abbf16786746deffa92d5f5f2fd7ba04fb
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/SoftEtherVPN-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/SoftEtherVPN-$(PKG_VERSION)
HOST_BUILD_DEPENDS:=ncurses/host readline/host
PKG_BUILD_DEPENDS:=softethervpn5/host
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/nls.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/softethervpn5/Default
SECTION:=net
CATEGORY:=Network
SUBMENU:=VPN
TITLE:=softethervpn5 v$(PKG_VERSION)
URL:=http://www.softether.org/
endef
define Package/softethervpn5/Default/description
SoftEther VPN supports SSL-VPN, OpenVPN, L2TP, EtherIP, L2TPv3 and IPsec as a single VPN software.
SoftEther VPN is not only an alternative VPN server to existing VPN products (OpenVPN, IPsec and MS-SSTP),
but has also original strong SSL-VPN protocol to penetrate any kinds of firewalls.
Guide: https://wordpress.tirlins.com/2015/03/setting-up-softether-vpn-on-openwrt/
endef
define Package/softethervpn5-libs
$(call Package/softethervpn5/Default)
DEPENDS:=+libpthread +librt +libreadline +libopenssl +libncurses +kmod-tun +zlib $(ICONV_DEPENDS)
TITLE+= libs
HIDDEN:=1
endef
define Package/softethervpn5-server
$(call Package/softethervpn5/Default)
TITLE+= server
DEPENDS:= +softethervpn5-libs
endef
define Package/softethervpn5-server/description
$(call Package/softethervpn5/Default/description)
Provides the vpnserver (daemon).
endef
define Package/softethervpn5-bridge
$(call Package/softethervpn5/Default)
TITLE+= bridge
DEPENDS:= +softethervpn5-libs
endef
define Package/softethervpn5-bridge/description
$(call Package/softethervpn5/Default/description)
Provides the vpnbridge (daemon).
endef
define Package/softethervpn5-client
$(call Package/softethervpn5/Default)
TITLE+= client
DEPENDS:= +softethervpn5-libs
endef
define Package/softethervpn5-client/description
$(call Package/softethervpn5/Default/description)
Provides the vpnclient.
endef
export USE_MUSL=YES
# BUG: outdated host/include/elf.h
HOST_CFLAGS += $(FPIC) -DAT_HWCAP2=26
TARGET_CFLAGS += $(FPIC)
CMAKE_OPTIONS = -DICONV_LIB_PATH="$(ICONV_PREFIX)/lib"
# static build for host (hamcorebuilder), avoid -fpic on ncurses/host and shared libs can't be found on host
define Host/Prepare
$(Host/Prepare/Default)
$(SED) 's,SHARED,STATIC,g' $(HOST_BUILD_DIR)/src/Mayaqua/CMakeLists.txt
$(SED) 's,SHARED,STATIC,g' $(HOST_BUILD_DIR)/src/Cedar/CMakeLists.txt
$(SED) 's,readline,libreadline.a,g' $(HOST_BUILD_DIR)/src/Cedar/CMakeLists.txt
endef
define Host/Compile
$(call Host/Compile/Default,hamcorebuilder)
endef
define Host/Install
$(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin/
$(INSTALL_BIN) $(HOST_BUILD_DIR)/tmp/hamcorebuilder $(STAGING_DIR_HOSTPKG)/bin/
endef
define Build/Compile
$(call Build/Compile/Default,vpnserver vpnbridge vpnclient vpncmd hamcore-archive-build)
endef
define Build/Install
endef
define Package/softethervpn5-libs/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/build/libcedar.so $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/build/libmayaqua.so $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/libexec/softethervpn
$(CP) $(PKG_BUILD_DIR)/build/hamcore.se2 $(1)/usr/libexec/softethervpn/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/build/vpncmd $(1)/usr/libexec/softethervpn/
$(INSTALL_BIN) files/launcher.sh $(1)/usr/libexec/softethervpn/
$(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/lang.config
$(INSTALL_DIR) $(1)/usr/bin
$(LN) ../../usr/libexec/softethervpn/launcher.sh $(1)/usr/bin/vpncmd
endef
define Package/softethervpn5-server/install
$(INSTALL_DIR) $(1)/usr/libexec/softethervpn
$(INSTALL_BIN) $(PKG_BUILD_DIR)/build/vpnserver $(1)/usr/libexec/softethervpn/
$(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_server.config
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) files/vpnserver.init $(1)/etc/init.d/softethervpnserver
endef
define Package/softethervpn5-bridge/install
$(INSTALL_DIR) $(1)/usr/libexec/softethervpn
$(INSTALL_BIN) $(PKG_BUILD_DIR)/build/vpnbridge $(1)/usr/libexec/softethervpn/
$(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_bridge.config
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) files/vpnbridge.init $(1)/etc/init.d/softethervpnbridge
endef
define Package/softethervpn5-client/install
$(INSTALL_DIR) $(1)/usr/libexec/softethervpn
$(INSTALL_BIN) $(PKG_BUILD_DIR)/build/vpnclient $(1)/usr/libexec/softethervpn/
$(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_client.config
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) files/vpnclient.init $(1)/etc/init.d/softethervpnclient
endef
define Package/softethervpn5-server/conffiles
/usr/libexec/softethervpn/vpn_server.config
/usr/libexec/softethervpn/lang.config
endef
define Package/softethervpn5-bridge/conffiles
/usr/libexec/softethervpn/vpn_bridge.config
/usr/libexec/softethervpn/lang.config
endef
define Package/softethervpn5-client/conffiles
/usr/libexec/softethervpn/vpn_client.config
/usr/libexec/softethervpn/lang.config
endef
$(eval $(call HostBuild))
$(eval $(call BuildPackage,softethervpn5-libs))
$(eval $(call BuildPackage,softethervpn5-server))
$(eval $(call BuildPackage,softethervpn5-bridge))
$(eval $(call BuildPackage,softethervpn5-client))