aboutsummaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorAndy Walsh <andy.walsh44+github@gmail.com>2018-07-25 22:40:59 +0200
committerAndy Walsh <andy.walsh44+github@gmail.com>2019-01-08 17:56:50 +0100
commit159ab10ab21588a1b9d278ee6a49f2d1cb3575de (patch)
tree1e4609975bd7595520276487ad380e71feb75b5c /net
parent18085ebccd432a84663d30b0aef19b1f9012514f (diff)
softethervpn5: add new package softethervpn5
Signed-off-by: Andy Walsh <andy.walsh44+github@gmail.com>
Diffstat (limited to 'net')
-rw-r--r--net/softethervpn5/Makefile171
-rw-r--r--net/softethervpn5/files/dummy1
-rw-r--r--net/softethervpn5/files/launcher.sh2
-rw-r--r--net/softethervpn5/files/vpnbridge.init28
-rw-r--r--net/softethervpn5/files/vpnclient.init28
-rw-r--r--net/softethervpn5/files/vpnserver.init28
-rw-r--r--net/softethervpn5/patches/100-increase-cfg-save-intervall.patch17
-rw-r--r--net/softethervpn5/patches/101-add-config-write-syslog.patch22
8 files changed, 297 insertions, 0 deletions
diff --git a/net/softethervpn5/Makefile b/net/softethervpn5/Makefile
new file mode 100644
index 000000000..e6b58925c
--- /dev/null
+++ b/net/softethervpn5/Makefile
@@ -0,0 +1,171 @@
+# Based partially on the versions of el1n and Federico Di Marco
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=softethervpn5
+PKG_VERSION:=5.01.9667
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
+PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILES:=COPYING
+
+PKG_SOURCE:=softether-vpn-src-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/SoftEtherVPN/SoftEtherVPN/releases/download/$(PKG_VERSION)
+PKG_HASH:=c99142c5e55fae055955332964c56d29aba10bec9764ab961aebabf6c3ee1462
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)-$(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
+
+TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
+
+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)
+
+# 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
+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_BIN) files/launcher.sh $(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_BIN) files/launcher.sh $(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))
diff --git a/net/softethervpn5/files/dummy b/net/softethervpn5/files/dummy
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/net/softethervpn5/files/dummy
@@ -0,0 +1 @@
+
diff --git a/net/softethervpn5/files/launcher.sh b/net/softethervpn5/files/launcher.sh
new file mode 100644
index 000000000..79707922a
--- /dev/null
+++ b/net/softethervpn5/files/launcher.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec "/usr/libexec/softethervpn/${0##*/}" "$@"
diff --git a/net/softethervpn5/files/vpnbridge.init b/net/softethervpn5/files/vpnbridge.init
new file mode 100644
index 000000000..1311e652b
--- /dev/null
+++ b/net/softethervpn5/files/vpnbridge.init
@@ -0,0 +1,28 @@
+#!/bin/sh /etc/rc.common
+
+START=90
+USE_PROCD=1
+
+start_service(){
+ logger -t 'softethervpn5' "Starting softether bridge service."
+
+ [ -d /var/softethervpn ] || mkdir -p -m 0775 /var/softethervpn
+
+ [ -f /var/softethervpn/hamcore.se2 ] || ln -sf /usr/libexec/softethervpn/hamcore.se2 /var/softethervpn/
+ [ -f /var/softethervpn/lang.config ] || ln -sf /usr/libexec/softethervpn/lang.config /var/softethervpn/
+
+ [ -f /var/softethervpn/vpnbridge ] || ln -sf /usr/libexec/softethervpn/vpnbridge /var/softethervpn/
+ [ -f /var/softethervpn/vpn_bridge.config ] || ln -sf /usr/libexec/softethervpn/vpn_bridge.config /var/softethervpn/
+
+ procd_open_instance
+ procd_set_param env LANG=en_US.UTF-8
+ procd_set_param command /var/softethervpn/vpnbridge start --foreground
+ procd_set_param respawn
+ procd_close_instance
+}
+
+stop_service(){
+ logger -t 'softethervpn5' "Stopping softether bridge service."
+
+ /var/softethervpn/vpnbridge stop
+}
diff --git a/net/softethervpn5/files/vpnclient.init b/net/softethervpn5/files/vpnclient.init
new file mode 100644
index 000000000..e4766f0fe
--- /dev/null
+++ b/net/softethervpn5/files/vpnclient.init
@@ -0,0 +1,28 @@
+#!/bin/sh /etc/rc.common
+
+START=92
+USE_PROCD=1
+
+start_service(){
+ logger -t 'softethervpn5' "Starting softether client service."
+
+ [ -d /var/softethervpn ] || mkdir -p -m 0775 /var/softethervpn
+
+ [ -f /var/softethervpn/hamcore.se2 ] || ln -sf /usr/libexec/softethervpn/hamcore.se2 /var/softethervpn/
+ [ -f /var/softethervpn/lang.config ] || ln -sf /usr/libexec/softethervpn/lang.config /var/softethervpn/
+
+ [ -f /var/softethervpn/vpnclient ] || ln -sf /usr/libexec/softethervpn/vpnclient /var/softethervpn/
+ [ -f /var/softethervpn/vpn_client.config ] || ln -sf /usr/libexec/softethervpn/vpn_client.config /var/softethervpn/
+
+ procd_open_instance
+ procd_set_param env LANG=en_US.UTF-8
+ procd_set_param command /var/softethervpn/vpnclient start --foreground
+ procd_set_param respawn
+ procd_close_instance
+}
+
+stop_service(){
+ logger -t 'softethervpn5' "Stopping softether client service."
+
+ /var/softethervpn/vpnclient stop
+}
diff --git a/net/softethervpn5/files/vpnserver.init b/net/softethervpn5/files/vpnserver.init
new file mode 100644
index 000000000..e6f73da31
--- /dev/null
+++ b/net/softethervpn5/files/vpnserver.init
@@ -0,0 +1,28 @@
+#!/bin/sh /etc/rc.common
+
+START=91
+USE_PROCD=1
+
+start_service(){
+ logger -t 'softethervpn5' "Starting softether vpnserver service."
+
+ [ -d /var/softethervpn ] || mkdir -p -m 0775 /var/softethervpn
+
+ [ -f /var/softethervpn/hamcore.se2 ] || ln -sf /usr/libexec/softethervpn/hamcore.se2 /var/softethervpn/
+ [ -f /var/softethervpn/lang.config ] || ln -sf /usr/libexec/softethervpn/lang.config /var/softethervpn/
+
+ [ -f /var/softethervpn/vpnserver ] || ln -sf /usr/libexec/softethervpn/vpnserver /var/softethervpn/
+ [ -f /var/softethervpn/vpn_server.config ] || ln -sf /usr/libexec/softethervpn/vpn_server.config /var/softethervpn/
+
+ procd_open_instance
+ procd_set_param env LANG=en_US.UTF-8
+ procd_set_param command /var/softethervpn/vpnserver start --foreground
+ procd_set_param respawn
+ procd_close_instance
+}
+
+stop_service(){
+ logger -t 'softethervpn5' "Stopping softether vpnserver service."
+
+ /var/softethervpn/vpnserver stop
+}
diff --git a/net/softethervpn5/patches/100-increase-cfg-save-intervall.patch b/net/softethervpn5/patches/100-increase-cfg-save-intervall.patch
new file mode 100644
index 000000000..5ce814a7a
--- /dev/null
+++ b/net/softethervpn5/patches/100-increase-cfg-save-intervall.patch
@@ -0,0 +1,17 @@
+--- a/src/Cedar/Server.h 2018-07-21
++++ b/src/Cedar/Server.h 2018-07-23
+@@ -138,10 +138,10 @@ extern char *SERVER_CONFIG_FILE_NAME;
+ #define SERVER_CONTROL_TCP_TIMEOUT (60 * 1000)
+ #define SERVER_FARM_CONTROL_INTERVAL (10 * 1000)
+
+-#define SERVER_FILE_SAVE_INTERVAL_DEFAULT (5 * 60 * 1000)
+-#define SERVER_FILE_SAVE_INTERVAL_MIN (5 * 1000)
+-#define SERVER_FILE_SAVE_INTERVAL_MAX (3600 * 1000)
+-#define SERVER_FILE_SAVE_INTERVAL_USERMODE (1 * 60 * 1000)
++#define SERVER_FILE_SAVE_INTERVAL_DEFAULT (24 * 60 * 60 * 1000)
++#define SERVER_FILE_SAVE_INTERVAL_MIN (5 * 60 * 1000)
++#define SERVER_FILE_SAVE_INTERVAL_MAX (7 * 24 * 60 * 60 * 1000)
++#define SERVER_FILE_SAVE_INTERVAL_USERMODE (5 * 60 * 1000)
+
+ #define SERVER_LICENSE_VIOLATION_SPAN (SERVER_FARM_CONTROL_INTERVAL * 2)
+
diff --git a/net/softethervpn5/patches/101-add-config-write-syslog.patch b/net/softethervpn5/patches/101-add-config-write-syslog.patch
new file mode 100644
index 000000000..8f2ede5f9
--- /dev/null
+++ b/net/softethervpn5/patches/101-add-config-write-syslog.patch
@@ -0,0 +1,22 @@
+--- a/src/Cedar/Server.c 2018-07-25
++++ b/src/Cedar/Server.c 2018-07-26
+@@ -110,7 +110,7 @@
+
+ // Server.c
+ // VPN Server module
+-
++#include <syslog.h>
+ #include "CedarPch.h"
+
+ static SERVER *server = NULL;
+@@ -6601,6 +6601,10 @@ UINT SiWriteConfigurationFile(SERVER *s)
+ {
+ return 0;
+ }
++
++ openlog("softethervpn-server", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_DAEMON);
++ syslog(LOG_NOTICE, "Writing vpn_server.config (AutoSaveConfigSpan set to < %d > seconds)", (s->AutoSaveConfigSpan / 1000));
++ closelog();
+
+ Lock(s->SaveCfgLock);
+ {