Browse Source

softethervpn5: add new package softethervpn5

Signed-off-by: Andy Walsh <andy.walsh44+github@gmail.com>
lilik-openwrt-22.03
Andy Walsh 6 years ago
parent
commit
159ab10ab2
8 changed files with 297 additions and 0 deletions
  1. +171
    -0
      net/softethervpn5/Makefile
  2. +1
    -0
      net/softethervpn5/files/dummy
  3. +2
    -0
      net/softethervpn5/files/launcher.sh
  4. +28
    -0
      net/softethervpn5/files/vpnbridge.init
  5. +28
    -0
      net/softethervpn5/files/vpnclient.init
  6. +28
    -0
      net/softethervpn5/files/vpnserver.init
  7. +17
    -0
      net/softethervpn5/patches/100-increase-cfg-save-intervall.patch
  8. +22
    -0
      net/softethervpn5/patches/101-add-config-write-syslog.patch

+ 171
- 0
net/softethervpn5/Makefile View File

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

+ 1
- 0
net/softethervpn5/files/dummy View File

@ -0,0 +1 @@

+ 2
- 0
net/softethervpn5/files/launcher.sh View File

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

+ 28
- 0
net/softethervpn5/files/vpnbridge.init 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
}

+ 28
- 0
net/softethervpn5/files/vpnclient.init 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
}

+ 28
- 0
net/softethervpn5/files/vpnserver.init 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
}

+ 17
- 0
net/softethervpn5/patches/100-increase-cfg-save-intervall.patch 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)

+ 22
- 0
net/softethervpn5/patches/101-add-config-write-syslog.patch 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);
{

Loading…
Cancel
Save