summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDDoSolitary2019-10-25 03:11:27 +0800
committerDDoSolitary2019-10-25 03:11:27 +0800
commit0e42bf08d1d073fb195e30aebc64e2d60ab201ac (patch)
tree1df46348dbe0870783bcecb0e6b1cb362e547d9b
downloadaur-0e42bf08d1d073fb195e30aebc64e2d60ab201ac.tar.gz
Initial commit.
-rw-r--r--.SRCINFO21
-rw-r--r--PKGBUILD44
-rw-r--r--build-flags.patch20
-rwxr-xr-xgo-tun2socks-setup9
-rw-r--r--go-tun2socks.conf4
-rw-r--r--go-tun2socks.service11
6 files changed, 109 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..531a0da23ac4
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,21 @@
+pkgbase = go-tun2socks
+ pkgdesc = A tun2socks implementation written in Go.
+ pkgver = 1.16.7
+ pkgrel = 1
+ url = https://github.com/eycorsican/go-tun2socks
+ arch = x86_64
+ license = MIT
+ makedepends = go
+ source = go-tun2socks-1.16.7.tar.gz::https://github.com/eycorsican/go-tun2socks/archive/v1.16.7.tar.gz
+ source = build-flags.patch
+ source = go-tun2socks.service
+ source = go-tun2socks.conf
+ source = go-tun2socks-setup
+ sha512sums = 3bf6f1b76b90d8fa8c75547d8659435054d2798dd97669b4cdccde72f75253baa1fb40442d82d480636a468c5b2234e5eddb4892e2e3c35069d3349f3991af16
+ sha512sums = 72a04943aa4e0cb8241c63a26d30c88cdbedf12b49f5f1c93dc97b1cb4f621c8e59736107d729f7244ab2a2c0fc926874bd19bed20e2afafabd7db8ac767e21b
+ sha512sums = e886723a3fe098e514c22a942cef6f2eae060713b40c4c95fbd26147bf87b11ca75c15e6da44ec19ebabd4f2f39abd1f2aeb1494c235d62ee17dac63ca466adb
+ sha512sums = 3c878b5004f4aed59635d832b22199c2550abb46b4ede49221d904a37f0e1088cb976d4d73966c7d2826b5b86b352937d37824f1e76ce461eed1ca8ce9ca6521
+ sha512sums = b600ba920d72187f63a3202ea50006fdb7058b1063f128664a947d32af5736ca5450d6bd63c87e9518fbe2f99f3fbbe4b5650fb7cf8202a4ceb5e5cbf5c61446
+
+pkgname = go-tun2socks
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..4e26dca1cd9b
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,44 @@
+# Maintainer: DDoSolitary <DDoSolitary@gmail.com>
+pkgname=go-tun2socks
+pkgver=1.16.7
+pkgrel=1
+pkgdesc="A tun2socks implementation written in Go."
+arch=(x86_64)
+url=https://github.com/eycorsican/go-tun2socks
+license=(MIT)
+makedepends=(go)
+source=(
+ $pkgname-$pkgver.tar.gz::https://github.com/eycorsican/go-tun2socks/archive/v1.16.7.tar.gz
+ build-flags.patch
+ go-tun2socks.service
+ go-tun2socks.conf
+ go-tun2socks-setup
+)
+sha512sums=(
+ 3bf6f1b76b90d8fa8c75547d8659435054d2798dd97669b4cdccde72f75253baa1fb40442d82d480636a468c5b2234e5eddb4892e2e3c35069d3349f3991af16
+ 72a04943aa4e0cb8241c63a26d30c88cdbedf12b49f5f1c93dc97b1cb4f621c8e59736107d729f7244ab2a2c0fc926874bd19bed20e2afafabd7db8ac767e21b
+ e886723a3fe098e514c22a942cef6f2eae060713b40c4c95fbd26147bf87b11ca75c15e6da44ec19ebabd4f2f39abd1f2aeb1494c235d62ee17dac63ca466adb
+ 3c878b5004f4aed59635d832b22199c2550abb46b4ede49221d904a37f0e1088cb976d4d73966c7d2826b5b86b352937d37824f1e76ce461eed1ca8ce9ca6521
+ b600ba920d72187f63a3202ea50006fdb7058b1063f128664a947d32af5736ca5450d6bd63c87e9518fbe2f99f3fbbe4b5650fb7cf8202a4ceb5e5cbf5c61446
+)
+gosrcdir=gopath/src/github.com/eycorsican
+prepare() {
+ cd "$srcdir"
+ mkdir -p $gosrcdir
+ ln -rTsf $pkgname-$pkgver $gosrcdir/$pkgname
+ export GOPATH="$PWD/gopath"
+ cd $gosrcdir/$pkgname
+ patch -Np1 -i "$srcdir/build-flags.patch"
+ go get -d -v ./...
+}
+build() {
+ cd "$srcdir/$gosrcdir/$pkgname"
+ make
+}
+package() {
+ cd "$srcdir"
+ install -Dm755 $gosrcdir/$pkgname/build/tun2socks "$pkgdir/usr/bin/go-tun2socks"
+ install -Dm644 go-tun2socks.service "$pkgdir/usr/lib/systemd/system/go-tun2socks.service"
+ install -Dm644 go-tun2socks.conf "$pkgdir/etc/systemd/system/go-tun2socks.service.d/go-tun2socks.conf"
+ install -Dm755 go-tun2socks-setup "$pkgdir/usr/lib/systemd/scripts/go-tun2socks-setup"
+}
diff --git a/build-flags.patch b/build-flags.patch
new file mode 100644
index 000000000000..52ab8680dfb0
--- /dev/null
+++ b/build-flags.patch
@@ -0,0 +1,20 @@
+diff --git a/Makefile b/Makefile
+index bcb8312..38960f9 100644
+--- a/Makefile
++++ b/Makefile
+@@ -4,13 +4,13 @@ GOBUILD=$(GOCMD) build
+ GOCLEAN=$(GOCMD) clean
+ VERSION=$(shell git describe --tags)
+ DEBUG_LDFLAGS=''
+-RELEASE_LDFLAGS='-s -w -X main.version=$(VERSION)'
++RELEASE_LDFLAGS='-s -w -X main.version=$(VERSION) -extldflags ${LDFLAGS}'
+ BUILD_TAGS?=socks
+ BUILDDIR=$(shell pwd)/build
+ CMDDIR=$(shell pwd)/cmd/tun2socks
+ PROGRAM=tun2socks
+
+-BUILD_CMD="cd $(CMDDIR) && $(GOBUILD) -ldflags $(RELEASE_LDFLAGS) -o $(BUILDDIR)/$(PROGRAM) -v -tags '$(BUILD_TAGS)'"
++BUILD_CMD="cd $(CMDDIR) && $(GOBUILD) -trimpath -ldflags $(RELEASE_LDFLAGS) -o $(BUILDDIR)/$(PROGRAM) -v -tags '$(BUILD_TAGS)'"
+ XBUILD_CMD="cd $(BUILDDIR) && $(XGOCMD) -ldflags $(RELEASE_LDFLAGS) -tags '$(BUILD_TAGS)' --targets=*/* $(CMDDIR)"
+
+ all: build
diff --git a/go-tun2socks-setup b/go-tun2socks-setup
new file mode 100755
index 000000000000..e2e9fc603c30
--- /dev/null
+++ b/go-tun2socks-setup
@@ -0,0 +1,9 @@
+#!/bin/bash
+while true; do
+ if [ -d /sys/class/net/$TUN_DEVICE_NAME ]; then
+ ip addr add $TUN_ADDRESS dev $TUN_DEVICE_NAME
+ ip link set $TUN_DEVICE_NAME up
+ break
+ fi
+ sleep 1
+done
diff --git a/go-tun2socks.conf b/go-tun2socks.conf
new file mode 100644
index 000000000000..8732cdd6491f
--- /dev/null
+++ b/go-tun2socks.conf
@@ -0,0 +1,4 @@
+[Service]
+Environment=PROXY_SERVER=127.0.0.1:1080
+Environment=TUN_DEVICE_NAME=tun0
+Environment=TUN_ADDRESS=10.255.0.1/24
diff --git a/go-tun2socks.service b/go-tun2socks.service
new file mode 100644
index 000000000000..61bedcd17e25
--- /dev/null
+++ b/go-tun2socks.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=A tun2socks implementation written in Go.
+After=network.target
+
+[Service]
+ExecStart=/usr/bin/go-tun2socks -proxyServer $PROXY_SERVER -tunName $TUN_DEVICE_NAME
+# It's a bit ugly here. Maybe I have to find a better way to wait for the tun device.
+ExecStartPost=/usr/lib/systemd/scripts/go-tun2socks-setup
+
+[Install]
+WantedBy=multi-user.target