From 859659f122b5e0cc448e58e3cd3c9f644aefb8e6 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Thu, 2 Jul 2026 01:03:24 +0300 Subject: [PATCH] swgp-go: add at 1.10.0 Compiled on x86_64-linux, successfully tested on mediatek/filogic, 25.12.5. Signed-off-by: Florian Klink --- net/swgp-go/Makefile | 55 ++++++++++++++++++++++++++++++++++ net/swgp-go/README.md | 20 +++++++++++++ net/swgp-go/files/swgp-go.init | 19 ++++++++++++ net/swgp-go/files/swgp-go.json | 4 +++ net/swgp-go/test.sh | 8 +++++ 5 files changed, 106 insertions(+) create mode 100644 net/swgp-go/Makefile create mode 100644 net/swgp-go/README.md create mode 100644 net/swgp-go/files/swgp-go.init create mode 100644 net/swgp-go/files/swgp-go.json create mode 100644 net/swgp-go/test.sh diff --git a/net/swgp-go/Makefile b/net/swgp-go/Makefile new file mode 100644 index 00000000000000..a726e6e4093d23 --- /dev/null +++ b/net/swgp-go/Makefile @@ -0,0 +1,55 @@ +# +# Copyright (C) 2026 Florian Klink +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=swgp-go +PKG_VERSION:=1.10.0 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/database64128/swgp-go/tar.gz/v$(PKG_VERSION)? +PKG_HASH:=0d7e5ebce9c07237e71028eac31b27c51d155c5a72eefc7bceac4cc816725d23 + +PKG_MAINTAINER:=Florian Klink +PKG_LICENSE:=AGPL-3.0-or-later +PKG_LICENSE_FILES:=LICENSE + +PKG_BUILD_DEPENDS:=golang/host +PKG_BUILD_PARALLEL:=1 +PKG_BUILD_FLAGS:=no-mips16 + +GO_PKG:=github.com/database64128/swgp-go +GO_PKG_TAGS:=swgpgo_nopprof + +include $(INCLUDE_DIR)/package.mk +include ../../lang/golang/golang-package.mk + +define Package/swgp-go + SECTION:=net + CATEGORY:=Network + TITLE:=Simple WireGuard proxy + URL:=https://github.com/database64128/swgp-go + DEPENDS:=$(GO_ARCH_DEPENDS) +endef + +define Package/swgp-go/description + Simple WireGuard proxy with minimal overhead for WireGuard traffic. +endef + +define Package/swgp-go/conffiles +/etc/swgp-go.json +endef + +define Package/swgp-go/install + $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d + $(INSTALL_BIN) $(GO_PKG_BUILD_BIN_DIR)/swgp-go $(1)/usr/sbin + $(INSTALL_BIN) ./files/swgp-go.init $(1)/etc/init.d/swgp-go + $(INSTALL_DATA) ./files/swgp-go.json $(1)/etc/swgp-go.json +endef + +$(eval $(call BuildPackage,swgp-go)) diff --git a/net/swgp-go/README.md b/net/swgp-go/README.md new file mode 100644 index 00000000000000..01bbb4fc484243 --- /dev/null +++ b/net/swgp-go/README.md @@ -0,0 +1,20 @@ +# swgp-go +This readme should help you configure swgp-go. + +## Configuration +Edit `/etc/swgp-go.json` with your desired configuration (Client, Server or both). + +If you're configuring a server, also properly allow that port in your firewall. + +Note the pprof feature is disabled in this package. If you try to enable it +regardless, `swgp-go` will show an error on startup. + +## Start daemon +Once you have created your config, enable and run swgp-go using its init script: + +``` +/etc/init.d/swgp-go enable +/etc/init.d/swgp-go start +``` + +Please refer to the [Project README](https://github.com/database64128/swgp-go) for more configuration info and examples. diff --git a/net/swgp-go/files/swgp-go.init b/net/swgp-go/files/swgp-go.init new file mode 100644 index 00000000000000..7f04a37b2e5818 --- /dev/null +++ b/net/swgp-go/files/swgp-go.init @@ -0,0 +1,19 @@ +#!/bin/sh /etc/rc.common +# +# SPDX-License-Identifier: GPL-2.0-only + +USE_PROCD=1 +START=90 + +SWGP_GO_BIN="/usr/sbin/swgp-go" +SWGP_GO_CONF="/etc/swgp-go.json" + +start_service() { + procd_open_instance + procd_set_param command $SWGP_GO_BIN -confPath $SWGP_GO_CONF -logLevel DEBUG + procd_set_param file "$SWGP_GO_CONF" + procd_set_param stdout 1 + procd_set_param stderr 1 + procd_set_param respawn + procd_close_instance +} diff --git a/net/swgp-go/files/swgp-go.json b/net/swgp-go/files/swgp-go.json new file mode 100644 index 00000000000000..87d80625aa77a3 --- /dev/null +++ b/net/swgp-go/files/swgp-go.json @@ -0,0 +1,4 @@ +{ + "servers": [], + "clients": [] +} diff --git a/net/swgp-go/test.sh b/net/swgp-go/test.sh new file mode 100644 index 00000000000000..29bed809b2df37 --- /dev/null +++ b/net/swgp-go/test.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +swgp-go -version 2>&1 +swgp-go -version 2>&1 | grep "$2" +[ $? == 0 ] || { + echo "Problem or incorrect version for '$1'" + exit 1 +}