add package SoftetherVPN 5

This commit is contained in:
coolsnowwolf 2018-10-06 12:29:49 +08:00
parent ec8a5b47d7
commit b6f83df270
8 changed files with 292 additions and 0 deletions

View File

@ -0,0 +1,166 @@
# Based partially on the versions of el1n and Federico Di Marco
include $(TOPDIR)/rules.mk
PKG_NAME:=softethervpn
PKG_VERSION_NAME:=5.01
PKG_RELEASE:=1
PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=COPYING
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/SoftEtherVPN/SoftEtherVPN.git
PKG_SOURCE_DATE:=2018-10-03
PKG_SOURCE_VERSION:=2271bf5fba410f815bf6834aae65d4b513cee1b2
PKG_MIRROR_HASH:=bc921fa4646a54d523d0388e50c202943f020ebb1679d1fd858954aa585a11e3
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:=softethervpn $(PKG_VERSION_NAME)
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 (daemon).
endef
export USE_MUSL=YES
# BUG: outdated host/include/elf.h
HOST_CFLAGS += $(FPIC) -DAT_HWCAP2=26
TARGET_CFLAGS += $(FPIC)
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/Prepare
$(Build/Prepare/Default)
# build as shared libs
$(SED) 's,STATIC,SHARED,g' $(PKG_BUILD_DIR)/src/Mayaqua/CMakeLists.txt
$(SED) 's,STATIC,SHARED,g' $(PKG_BUILD_DIR)/src/Cedar/CMakeLists.txt
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)/tmp/Cedar/libcedar.so $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/tmp/Mayaqua/libmayaqua.so $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/libexec/softethervpn
$(CP) $(PKG_BUILD_DIR)/tmp/hamcore.se2 $(1)/usr/libexec/softethervpn/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/build/vpncmd/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/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/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/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))

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,2 @@
#!/bin/sh
exec "/usr/libexec/softethervpn/${0##*/}" "$@"

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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)

View File

@ -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);
{