1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-03-09 15:40:03 +00:00

Add shadowsocks v2ray plugin from source

This commit is contained in:
Ycarus 2019-01-30 18:38:40 +01:00
parent 0fdab6005b
commit 4b31a55a95
16 changed files with 1288 additions and 66 deletions

43
golang-protobuf/Makefile Normal file
View file

@ -0,0 +1,43 @@
#
# Copyright (C) 2019 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=golang-protobuf
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/golang/protobuf.git
PKG_SOURCE_VERSION:=347cf4a86c1cb8d262994d8ef5924d4576c5b331
PKG_SOURCE_DATE:=20190109
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
GO_PKG:=github.com/golang/protobuf
GO_PKG_SOURCE_ONLY:=1
include $(INCLUDE_DIR)/package.mk
include ../golang/golang-package.mk
define Package/golang-protobuf-dev
$(call GoPackage/GoSubMenu)
TITLE:=Go support for Google protocol buffers
URL:=https://github.com/golang/protobuf
DEPENDS:=$(GO_ARCH_DEPENDS) +protobuf
PKGARCH:=all
endef
define Package/golang-protobuf-dev/description
Go support for Google protocol buffers
endef
$(eval $(call GoSrcPackage,golang-protobuf-dev))
$(eval $(call BuildPackage,golang-protobuf-dev))

186
golang/golang-compiler.mk Normal file
View file

@ -0,0 +1,186 @@
#
# Copyright (C) 2018 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
ifeq ($(origin GO_INCLUDE_DIR),undefined)
GO_INCLUDE_DIR:=$(dir $(lastword $(MAKEFILE_LIST)))
endif
include $(GO_INCLUDE_DIR)/golang-values.mk
# $(1) valid GOOS_GOARCH combinations
# $(2) go version id
define GoCompiler/Default/CheckHost
$(if $(filter $(GO_HOST_OS_ARCH),$(1)),,$(error go-$(2) cannot be installed on $(GO_HOST_OS)/$(GO_HOST_ARCH)))
endef
# $(1) source go root
# $(2) destination prefix
# $(3) go version id
# $(4) additional environment variables (optional)
define GoCompiler/Default/Make
( \
cd $(1)/src ; \
$(if $(2),GOROOT_FINAL=$(2)/lib/go-$(3)) \
$(4) \
$(BASH) make.bash --no-banner ; \
)
endef
# $(1) destination prefix
# $(2) go version id
define GoCompiler/Default/Install/make-dirs
$(INSTALL_DIR) $(1)/lib/go-$(2)
$(INSTALL_DIR) $(1)/share/go-$(2)
endef
# $(1) source go root
# $(2) destination prefix
# $(3) go version id
# $(4) file/directory name
define GoCompiler/Default/Install/install-share-data
$(CP) $(1)/$(4) $(2)/share/go-$(3)/
$(LN) ../../share/go-$(3)/$(4) $(2)/lib/go-$(3)/
endef
# $(1) source go root
# $(2) destination prefix
# $(3) go version id
# $(4) GOOS_GOARCH
define GoCompiler/Default/Install/Bin
$(call GoCompiler/Default/Install/make-dirs,$(2),$(3))
$(call GoCompiler/Default/Install/install-share-data,$(1),$(2),$(3),api)
$(INSTALL_DATA) -p $(1)/VERSION $(2)/lib/go-$(3)/
for file in AUTHORS CONTRIBUTING.md CONTRIBUTORS LICENSE PATENTS README README.md; do \
if [ -f $(1)/$$$$file ]; then \
$(INSTALL_DATA) -p $(1)/$$$$file $(2)/share/go-$(3)/ ; \
fi ; \
done
$(INSTALL_DIR) $(2)/lib/go-$(3)/bin
ifeq ($(4),$(GO_HOST_OS_ARCH))
$(INSTALL_BIN) -p $(1)/bin/* $(2)/lib/go-$(3)/bin/
else
$(INSTALL_BIN) -p $(1)/bin/$(4)/* $(2)/lib/go-$(3)/bin/
endif
$(INSTALL_DIR) $(2)/lib/go-$(3)/pkg
$(CP) $(1)/pkg/$(4) $(2)/lib/go-$(3)/pkg/
$(INSTALL_DIR) $(2)/lib/go-$(3)/pkg/tool/$(4)
$(INSTALL_BIN) -p $(1)/pkg/tool/$(4)/* $(2)/lib/go-$(3)/pkg/tool/$(4)/
endef
# $(1) destination prefix
# $(2) go version id
define GoCompiler/Default/Install/BinLinks
$(INSTALL_DIR) $(1)/bin
$(LN) ../lib/go-$(2)/bin/go $(1)/bin/go
$(LN) ../lib/go-$(2)/bin/gofmt $(1)/bin/gofmt
endef
# $(1) source go root
# $(2) destination prefix
# $(3) go version id
define GoCompiler/Default/Install/Doc
$(call GoCompiler/Default/Install/make-dirs,$(2),$(3))
$(call GoCompiler/Default/Install/install-share-data,$(1),$(2),$(3),doc)
$(call GoCompiler/Default/Install/install-share-data,$(1),$(2),$(3),favicon.ico)
$(call GoCompiler/Default/Install/install-share-data,$(1),$(2),$(3),robots.txt)
endef
# $(1) source go root
# $(2) destination prefix
# $(3) go version id
define GoCompiler/Default/Install/Src
$(call GoCompiler/Default/Install/make-dirs,$(2),$(3))
$(call GoCompiler/Default/Install/install-share-data,$(1),$(2),$(3),lib)
$(call GoCompiler/Default/Install/install-share-data,$(1),$(2),$(3),misc)
$(call GoCompiler/Default/Install/install-share-data,$(1),$(2),$(3),src)
$(call GoCompiler/Default/Install/install-share-data,$(1),$(2),$(3),test)
$(FIND) \
$(2)/share/go-$(3)/src/ \
\! -type d -a \( -name '*.bat' -o -name '*.rc' \) \
-delete
if [ -d $(1)/pkg/include ]; then \
$(INSTALL_DIR) $(2)/lib/go-$(3)/pkg ; \
$(INSTALL_DIR) $(2)/share/go-$(3)/pkg ; \
$(CP) $(1)/pkg/include $(2)/share/go-$(3)/pkg/ ; \
$(LN) ../../../share/go-$(3)/pkg/include $(2)/lib/go-$(3)/pkg/ ; \
fi
endef
# $(1) destination prefix
# $(2) go version id
define GoCompiler/Default/Uninstall
rm -rf $(1)/lib/go-$(2)
rm -rf $(1)/share/go-$(2)
endef
# $(1) destination prefix
define GoCompiler/Default/Uninstall/BinLinks
rm -f $(1)/bin/go
rm -f $(1)/bin/gofmt
endef
# $(1) profile name
# $(2) source go root
# $(3) destination prefix
# $(4) go version id
# $(5) GOOS_GOARCH
define GoCompiler/AddProfile
# $$(1) valid GOOS_GOARCH combinations
define GoCompiler/$(1)/CheckHost
$$(call GoCompiler/Default/CheckHost,$$(1),$(4))
endef
# $$(1) additional environment variables (optional)
define GoCompiler/$(1)/Make
$$(call GoCompiler/Default/Make,$(2),$(3),$(4),$$(1))
endef
# $$(1) override install prefix (optional)
define GoCompiler/$(1)/Install/Bin
$$(call GoCompiler/Default/Install/Bin,$(2),$$(or $$(1),$(3)),$(4),$(5))
endef
# $$(1) override install prefix (optional)
define GoCompiler/$(1)/Install/BinLinks
$$(call GoCompiler/Default/Install/BinLinks,$$(or $$(1),$(3)),$(4))
endef
# $$(1) override install prefix (optional)
define GoCompiler/$(1)/Install/Doc
$$(call GoCompiler/Default/Install/Doc,$(2),$$(or $$(1),$(3)),$(4))
endef
# $$(1) override install prefix (optional)
define GoCompiler/$(1)/Install/Src
$$(call GoCompiler/Default/Install/Src,$(2),$$(or $$(1),$(3)),$(4))
endef
# $$(1) override install prefix (optional)
define GoCompiler/$(1)/Uninstall
$$(call GoCompiler/Default/Uninstall,$$(or $$(1),$(3)),$(4))
endef
# $$(1) override install prefix (optional)
define GoCompiler/$(1)/Uninstall/BinLinks
$$(call GoCompiler/Default/Uninstall/BinLinks,$$(or $$(1),$(3)))
endef
endef

View file

@ -0,0 +1,47 @@
#
# Copyright (C) 2018 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=golang-golang-x-crypto
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/golang/crypto.git
PKG_SOURCE_VERSION:=a49355c7e3f8fe157a85be2f77e6e269a0f89602
PKG_SOURCE_DATE:=20180620
PKG_MIRROR_HASH:=80b16b203736ac56883d0610edbc5981eb78f15b7b35d11b5ca639f7c3814214
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
GO_PKG:=golang.org/x/crypto
GO_PKG_SOURCE_ONLY:=1
include $(INCLUDE_DIR)/package.mk
include ../golang-package.mk
define Package/golang-golang-x-crypto-dev
$(call GoPackage/GoSubMenu)
TITLE:=Go supplementary cryptography libraries
URL:=https://godoc.org/golang.org/x/crypto
DEPENDS:=$(GO_ARCH_DEPENDS) \
+golang-golang-x-net-dev \
+golang-golang-x-sys-dev
PKGARCH:=all
endef
define Package/golang-golang-x-crypto-dev/description
Supplementary Go cryptography libraries.
endef
$(eval $(call GoSrcPackage,golang-golang-x-crypto-dev))
$(eval $(call BuildPackage,golang-golang-x-crypto-dev))

View file

@ -0,0 +1,58 @@
#
# Copyright (C) 2018 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=golang-golang-x-net
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/golang/net.git
PKG_SOURCE_VERSION:=afe8f62b1d6bbd81f31868121a50b06d8188e1f9
PKG_SOURCE_DATE:=20180620
PKG_MIRROR_HASH:=9a8bb3bf21ea60121d7e87f1bd1af9effbdcd908f758be99457653172d13eb1e
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
GO_PKG:=golang.org/x/net
# exclude http2/h2i to break circular dependency with golang-golang-x-crypto-dev
# since there are no other binaries, can skip compilation
GO_PKG_SOURCE_ONLY:=1
include $(INCLUDE_DIR)/package.mk
include ../golang-package.mk
define Package/golang-golang-x-net-dev
$(call GoPackage/GoSubMenu)
TITLE:=Go supplementary network libraries
URL:=https://godoc.org/golang.org/x/net
DEPENDS:=$(GO_ARCH_DEPENDS) +golang-golang-x-text-dev
PKGARCH:=all
endef
define Package/golang-golang-x-net-dev/description
Supplementary Go networking libraries.
endef
# http2/testdata/draft-ietf-httpbis-http2.xml is a non-free document
# http2/z_spec_test.go uses http2/testdata/draft-ietf-httpbis-http2.xml
define Package/golang-golang-x-net-dev/install
$(call GoPackage/Package/Install/Src,$(1))
rm -f $(1)$(GO_PKG_PATH)/src/$(GO_PKG)/http2/testdata/draft-ietf-httpbis-http2.xml
rmdir $(1)$(GO_PKG_PATH)/src/$(GO_PKG)/http2/testdata/
rm -f $(1)$(GO_PKG_PATH)/src/$(GO_PKG)/http2/z_spec_test.go
endef
$(eval $(call GoSrcPackage,golang-golang-x-net-dev))
$(eval $(call BuildPackage,golang-golang-x-net-dev))

View file

@ -0,0 +1,46 @@
#
# Copyright (C) 2018 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=golang-golang-x-sys
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/golang/sys.git
PKG_SOURCE_VERSION:=63fc586f45fe72d95d5240a5d5eb95e6503907d3
PKG_SOURCE_DATE:=20180621
PKG_MIRROR_HASH:=3afe7936fb9fb291ef9b9cfa88f51576cdc19abbd34240232ce284958ac7dbaf
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
GO_PKG:=golang.org/x/sys
GO_PKG_SOURCE_ONLY:=1
include $(INCLUDE_DIR)/package.mk
include ../golang-package.mk
define Package/golang-golang-x-sys-dev
$(call GoPackage/GoSubMenu)
TITLE:=Go packages for interaction with the OS
URL:=https://godoc.org/golang.org/x/sys
DEPENDS:=$(GO_ARCH_DEPENDS)
PKGARCH:=all
endef
define Package/golang-golang-x-sys-dev/description
Supplementary Go packages for low-level interactions with the operating
system.
endef
$(eval $(call GoSrcPackage,golang-golang-x-sys-dev))
$(eval $(call BuildPackage,golang-golang-x-sys-dev))

View file

@ -0,0 +1,47 @@
#
# Copyright (C) 2018 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=golang-golang-x-text
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/golang/text.git
PKG_SOURCE_VERSION:=5cec4b58c438bd98288aeb248bab2c1840713d21
PKG_SOURCE_DATE:=20180520
PKG_MIRROR_HASH:=6c541a59f32f57afa54a2216045ddf16a077f8fe2e823fbbe77723eca04ddddb
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
GO_PKG:=golang.org/x/text
# exclude gotext (and message/pipeline) to avoid dependency on golang.org/x/tools
# since there are no other binaries, can skip compilation
GO_PKG_SOURCE_ONLY:=1
include $(INCLUDE_DIR)/package.mk
include ../golang-package.mk
define Package/golang-golang-x-text-dev
$(call GoPackage/GoSubMenu)
TITLE:=Go text processing support
URL:=https://godoc.org/golang.org/x/text
DEPENDS:=$(GO_ARCH_DEPENDS)
PKGARCH:=all
endef
define Package/golang-golang-x-text-dev/description
Supplementary Go libraries for text processing, many involving Unicode.
endef
$(eval $(call GoSrcPackage,golang-golang-x-text-dev))
$(eval $(call BuildPackage,golang-golang-x-text-dev))

320
golang/golang-package.mk Normal file
View file

@ -0,0 +1,320 @@
#
# Copyright (C) 2018 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
ifeq ($(origin GO_INCLUDE_DIR),undefined)
GO_INCLUDE_DIR:=$(dir $(lastword $(MAKEFILE_LIST)))
endif
include $(GO_INCLUDE_DIR)/golang-values.mk
# Variables (all optional, except GO_PKG) to be set in package
# Makefiles:
#
# GO_PKG (required) - name of Go package
#
# Go name of the package.
#
# e.g. GO_PKG:=golang.org/x/text
#
#
# GO_PKG_INSTALL_EXTRA - list of regular expressions, default empty
#
# Additional files/directories to install. By default, only these
# files are installed:
#
# * Files with one of these extensions:
# .go, .c, .cc, .h, .hh, .proto, .s
#
# * Files in any 'testdata' directory
#
# e.g. GO_PKG_INSTALL_EXTRA:=example.toml marshal_test.toml
#
#
# GO_PKG_INSTALL_ALL - boolean (0 or 1), default false
#
# If true, install all files regardless of extension or directory.
#
# e.g. GO_PKG_INSTALL_ALL:=1
#
#
# GO_PKG_SOURCE_ONLY - boolean (0 or 1), default false
#
# If true, 'go install' will not be called. If the package does not
# (or should not) build any binaries, then specifying this option will
# save build time.
#
# e.g. GO_PKG_SOURCE_ONLY:=1
#
#
# GO_PKG_BUILD_PKG - list of build targets, default GO_PKG/...
#
# Build targets for compiling this Go package, i.e. arguments passed
# to 'go install'
#
# e.g. GO_PKG_BUILD_PKG:=github.com/debian/ratt/cmd/...
#
#
# GO_PKG_EXCLUDES - list of regular expressions, default empty
#
# Patterns to exclude from the build targets expanded from
# GO_PKG_BUILD_PKG.
#
# e.g. GO_PKG_EXCLUDES:=examples/
#
#
# GO_PKG_GO_GENERATE - boolean (0 or 1), default false
#
# If true, 'go generate' will be called on all build targets (as
# determined by GO_PKG_BUILD_PKG and GO_PKG_EXCLUDES). This is usually
# not necessary.
#
# e.g. GO_PKG_GO_GENERATE:=1
# Credit for this package build process (GoPackage/Build/Configure and
# GoPackage/Build/Compile) belong to Debian's dh-golang completely.
# https://anonscm.debian.org/cgit/pkg-go/packages/dh-golang.git
# for building packages, not user code
GO_PKG_PATH:=/usr/share/gocode
GO_PKG_BUILD_PKG?=$(GO_PKG)/...
GO_PKG_WORK_DIR_NAME:=.go_work
GO_PKG_WORK_DIR:=$(PKG_BUILD_DIR)/$(GO_PKG_WORK_DIR_NAME)
GO_PKG_BUILD_DIR:=$(GO_PKG_WORK_DIR)/build
GO_PKG_CACHE_DIR:=$(GO_PKG_WORK_DIR)/cache
GO_PKG_TMP_DIR:=$(GO_PKG_WORK_DIR)/tmp
GO_PKG_BUILD_BIN_DIR:=$(GO_PKG_BUILD_DIR)/bin$(if \
$(GO_HOST_TARGET_DIFFERENT),/$(GO_OS)_$(GO_ARCH))
GO_PKG_BUILD_DEPENDS_SRC:=$(STAGING_DIR)$(GO_PKG_PATH)/src
# sstrip causes corrupted section header size
ifneq ($(CONFIG_USE_SSTRIP),)
ifneq ($(CONFIG_DEBUG),)
GO_PKG_STRIP_ARGS:=--strip-unneeded --remove-section=.comment --remove-section=.note
else
GO_PKG_STRIP_ARGS:=--strip-all
endif
STRIP:=$(TARGET_CROSS)strip $(GO_PKG_STRIP_ARGS)
RSTRIP= \
export CROSS="$(TARGET_CROSS)" \
$(if $(PKG_BUILD_ID),KEEP_BUILD_ID=1) \
$(if $(CONFIG_KERNEL_KALLSYMS),NO_RENAME=1) \
$(if $(CONFIG_KERNEL_PROFILING),KEEP_SYMBOLS=1); \
NM="$(TARGET_CROSS)nm" \
STRIP="$(STRIP)" \
STRIP_KMOD="$(SCRIPT_DIR)/strip-kmod.sh" \
PATCHELF="$(STAGING_DIR_HOST)/bin/patchelf" \
$(SCRIPT_DIR)/rstrip.sh
endif
define GoPackage/GoSubMenu
SUBMENU:=Go
SECTION:=lang
CATEGORY:=Languages
endef
define GoPackage/Environment
GOOS=$(GO_OS) \
GOARCH=$(GO_ARCH) \
GO386=$(GO_386) \
GOARM=$(GO_ARM) \
GOMIPS=$(GO_MIPS) \
GOMIPS64=$(GO_MIPS64) \
CGO_ENABLED=1 \
CGO_CFLAGS="$(filter-out $(GO_CFLAGS_TO_REMOVE),$(TARGET_CFLAGS))" \
CGO_CPPFLAGS="$(TARGET_CPPFLAGS)" \
CGO_CXXFLAGS="$(filter-out $(GO_CFLAGS_TO_REMOVE),$(TARGET_CXXFLAGS))"
endef
# false if directory does not exist
GoPackage/is_dir_not_empty=$$$$($(FIND) $(1) -maxdepth 0 -type d \! -empty 2>/dev/null)
GoPackage/has_binaries=$(call GoPackage/is_dir_not_empty,$(GO_PKG_BUILD_BIN_DIR))
define GoPackage/Build/Configure
( \
cd $(PKG_BUILD_DIR) ; \
mkdir -p $(GO_PKG_BUILD_DIR)/bin $(GO_PKG_BUILD_DIR)/src \
$(GO_PKG_CACHE_DIR) $(GO_PKG_TMP_DIR) ; \
\
files=$$$$($(FIND) ./ \
-type d -a \( -path './.git' -o -path './$(GO_PKG_WORK_DIR_NAME)' \) -prune -o \
\! -type d -print | \
sed 's|^\./||') ; \
\
if [ "$(GO_PKG_INSTALL_ALL)" != 1 ]; then \
code=$$$$(echo "$$$$files" | grep '\.\(c\|cc\|go\|h\|hh\|proto\|s\)$$$$') ; \
testdata=$$$$(echo "$$$$files" | grep '\(^\|/\)testdata/') ; \
\
for pattern in $(GO_PKG_INSTALL_EXTRA); do \
extra=$$$$(echo "$$$$extra"; echo "$$$$files" | grep "$$$$pattern") ; \
done ; \
\
files=$$$$(echo "$$$$code"; echo "$$$$testdata"; echo "$$$$extra") ; \
files=$$$$(echo "$$$$files" | grep -v '^[[:space:]]*$$$$' | sort -u) ; \
fi ; \
\
echo "Copying files from $(PKG_BUILD_DIR) into $(GO_PKG_BUILD_DIR)/src/$(GO_PKG)" ; \
for file in $$$$files; do \
echo $$$$file ; \
dest=$(GO_PKG_BUILD_DIR)/src/$(GO_PKG)/$$$$file ; \
mkdir -p $$$$(dirname $$$$dest) ; \
$(CP) $$$$file $$$$dest ; \
done ; \
echo ; \
\
link_contents() { \
local src=$$$$1 ; \
local dest=$$$$2 ; \
local dirs dir base ; \
\
if [ -n "$$$$($(FIND) $$$$src -mindepth 1 -maxdepth 1 -name '*.go' \! -type d)" ]; then \
echo "$$$$src is already a Go library" ; \
return 1 ; \
fi ; \
\
dirs=$$$$($(FIND) $$$$src -mindepth 1 -maxdepth 1 -type d) ; \
for dir in $$$$dirs; do \
base=$$$$(basename $$$$dir) ; \
if [ -d $$$$dest/$$$$base ]; then \
case $$$$dir in \
*$(GO_PKG_PATH)/src/$(GO_PKG)) \
echo "$(GO_PKG) is already installed. Please check for circular dependencies." ;; \
*) \
link_contents $$$$src/$$$$base $$$$dest/$$$$base ;; \
esac ; \
else \
echo "...$$$${src#$(GO_PKG_BUILD_DEPENDS_SRC)}/$$$$base" ; \
$(LN) $$$$src/$$$$base $$$$dest/$$$$base ; \
fi ; \
done ; \
} ; \
\
if [ "$(GO_PKG_SOURCE_ONLY)" != 1 ]; then \
if [ -d $(GO_PKG_BUILD_DEPENDS_SRC) ]; then \
echo "Symlinking directories from $(GO_PKG_BUILD_DEPENDS_SRC) into $(GO_PKG_BUILD_DIR)/src" ; \
link_contents $(GO_PKG_BUILD_DEPENDS_SRC) $(GO_PKG_BUILD_DIR)/src ; \
else \
echo "$(GO_PKG_BUILD_DEPENDS_SRC) does not exist, skipping symlinks" ; \
fi ; \
else \
echo "Not building binaries, skipping symlinks" ; \
fi ; \
echo ; \
)
endef
# $(1) additional arguments for go command line (optional)
define GoPackage/Build/Compile
( \
cd $(GO_PKG_BUILD_DIR) ; \
export GOPATH=$(GO_PKG_BUILD_DIR) \
GOCACHE=$(GO_PKG_CACHE_DIR) \
GOTMPDIR=$(GO_PKG_TMP_DIR) \
GOROOT_FINAL=$(GO_TARGET_ROOT) \
CC=$(TARGET_CC) \
CXX=$(TARGET_CXX) \
$(call GoPackage/Environment) ; \
\
echo "Finding targets" ; \
targets=$$$$(go list $(GO_PKG_BUILD_PKG)) ; \
for pattern in $(GO_PKG_EXCLUDES); do \
targets=$$$$(echo "$$$$targets" | grep -v "$$$$pattern") ; \
done ; \
echo ; \
\
if [ "$(GO_PKG_GO_GENERATE)" = 1 ]; then \
echo "Calling go generate" ; \
go generate -v $(1) $$$$targets ; \
echo ; \
fi ; \
\
if [ "$(GO_PKG_SOURCE_ONLY)" != 1 ]; then \
echo "Building targets" ; \
case $(GO_ARCH) in \
arm) installsuffix="-installsuffix v$(GO_ARM)" ;; \
mips|mipsle) installsuffix="-installsuffix $(GO_MIPS)" ;; \
mips64|mips64le) installsuffix="-installsuffix $(GO_MIPS64)" ;; \
esac ; \
trimpath="all=-trimpath=$(GO_PKG_BUILD_DIR)" ; \
ldflags="all=-linkmode external -extldflags '$(TARGET_LDFLAGS)'" ; \
go install \
$$$$installsuffix \
-gcflags "$$$$trimpath" \
-asmflags "$$$$trimpath" \
-ldflags "$$$$ldflags" \
-v \
$(1) \
$$$$targets ; \
retval=$$$$? ; \
echo ; \
\
if [ "$$$$retval" -eq 0 ] && [ -z "$(call GoPackage/has_binaries)" ]; then \
echo "No binaries were generated, consider adding GO_PKG_SOURCE_ONLY:=1 to Makefile" ; \
echo ; \
fi ; \
\
echo "Cleaning module download cache (golang/go#27455)" ; \
go clean -modcache ; \
echo ; \
fi ; \
exit $$$$retval ; \
)
endef
define GoPackage/Build/InstallDev
$(call GoPackage/Package/Install/Src,$(1))
endef
define GoPackage/Package/Install/Bin
if [ -n "$(call GoPackage/has_binaries)" ]; then \
$(INSTALL_DIR) $(1)/usr/bin ; \
$(INSTALL_BIN) $(GO_PKG_BUILD_BIN_DIR)/* $(1)/usr/bin/ ; \
fi
endef
define GoPackage/Package/Install/Src
dir=$$$$(dirname $(GO_PKG)) ; \
$(INSTALL_DIR) $(1)$(GO_PKG_PATH)/src/$$$$dir ; \
$(CP) $(GO_PKG_BUILD_DIR)/src/$(GO_PKG) $(1)$(GO_PKG_PATH)/src/$$$$dir/
endef
define GoPackage/Package/Install
$(call GoPackage/Package/Install/Bin,$(1))
$(call GoPackage/Package/Install/Src,$(1))
endef
ifneq ($(GO_PKG),)
Build/Configure=$(call GoPackage/Build/Configure)
Build/Compile=$(call GoPackage/Build/Compile)
Build/InstallDev=$(call GoPackage/Build/InstallDev,$(1))
endif
define GoPackage
ifndef Package/$(1)/install
Package/$(1)/install=$$(call GoPackage/Package/Install,$$(1))
endif
endef
define GoBinPackage
ifndef Package/$(1)/install
Package/$(1)/install=$$(call GoPackage/Package/Install/Bin,$$(1))
endif
endef
define GoSrcPackage
ifndef Package/$(1)/install
Package/$(1)/install=$$(call GoPackage/Package/Install/Src,$$(1))
endif
endef

72
golang/golang-values.mk Normal file
View file

@ -0,0 +1,72 @@
#
# Copyright (C) 2018 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
ifeq ($(origin GO_INCLUDE_DIR),undefined)
GO_INCLUDE_DIR:=$(dir $(lastword $(MAKEFILE_LIST)))
endif
include $(GO_INCLUDE_DIR)/golang-version.mk
unexport \
GOARCH GOBIN GOCACHE GODEBUG GOHOSTARCH GOOS GOPATH GORACE GOROOT GOTMPDIR GCCGO \
CGO_ENABLED \
CGO_CFLAGS CGO_CFLAGS_ALLOW CGO_CFLAGS_DISALLOW \
CGO_CPPFLAGS CGO_CPPFLAGS_ALLOW CGO_CPPFLAGS_DISALLOW \
CGO_CXXFLAGS CGO_CXXFLAGS_ALLOW CGO_CXXFLAGS_DISALLOW \
CGO_FFLAGS CGO_FFLAGS_ALLOW CGO_FFLAGS_DISALLOW \
CGO_LDFLAGS CGO_LDFLAGS_ALLOW CGO_LDFLAGS_DISALLOW \
GOARM GO386 GOMIPS GOMIPS64 \
GOROOT_FINAL GO_EXTLINK_ENABLED GIT_ALLOW_PROTOCOL \
CC_FOR_TARGET CXX_FOR_TARGET GO_DISTFLAGS GO_GCFLAGS GO_LDFLAGS GOBUILDTIMELOGFILE GOROOT_BOOTSTRAP \
BOOT_GO_GCFLAGS GOEXPERIMENT GOBOOTSTRAP_TOOLEXEC
# there are more magic environment variables to track down, but ain't nobody got time for that
go_arch=$(subst \
aarch64,arm64,$(subst \
i386,386,$(subst \
mipsel,mipsle,$(subst \
mips64el,mips64le,$(subst \
powerpc64,ppc64,$(subst \
x86_64,amd64,$(1)))))))
GO_OS:=linux
GO_ARCH:=$(call go_arch,$(ARCH))
GO_OS_ARCH:=$(GO_OS)_$(GO_ARCH)
GO_HOST_OS:=$(call tolower,$(HOST_OS))
GO_HOST_ARCH:=$(call go_arch,$(subst \
armv6l,arm,$(subst \
armv7l,arm,$(subst \
i486,i386,$(subst \
i586,i386,$(subst \
i686,i386,$(HOST_ARCH)))))))
GO_HOST_OS_ARCH:=$(GO_HOST_OS)_$(GO_HOST_ARCH)
GO_HOST_TARGET_SAME:=$(if $(and $(findstring $(GO_OS_ARCH),$(GO_HOST_OS_ARCH)),$(findstring $(GO_HOST_OS_ARCH),$(GO_OS_ARCH))),1)
GO_HOST_TARGET_DIFFERENT:=$(if $(GO_HOST_TARGET_SAME),,1)
# ensure binaries can run on older CPUs
GO_386:=387
GO_ARM:=$(if $(CONFIG_arm_v7),7,$(if $(CONFIG_arm_v6),6,$(if $(findstring $(GO_ARCH),arm),5,)))
GO_MIPS:=$(if $(filter $(GO_ARCH),mips mipsle),$(if $(CONFIG_HAS_FPU),hardfloat,softfloat),)
GO_MIPS64:=$(if $(filter $(GO_ARCH),mips64 mips64le),$(if $(CONFIG_HAS_FPU),hardfloat,softfloat),)
# -fno-plt: causes "unexpected GOT reloc for non-dynamic symbol" errors
# -mips32r2: conflicts with -march=mips32 set by go
GO_CFLAGS_TO_REMOVE:=$(if \
$(filter $(GO_ARCH),386),-fno-plt,$(if \
$(filter $(GO_ARCH),mips mipsle),-mips32r2,))
GO_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||mips||mips64||mips64el||mipsel||powerpc64||x86_64)
GO_TARGET_PREFIX:=/usr
GO_TARGET_VERSION_ID:=$(GO_VERSION_MAJOR_MINOR)
GO_TARGET_ROOT:=$(GO_TARGET_PREFIX)/lib/go-$(GO_TARGET_VERSION_ID)

14
golang/golang-version.mk Normal file
View file

@ -0,0 +1,14 @@
#
# Copyright (C) 2018 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
ifeq ($(origin GO_INCLUDE_DIR),undefined)
GO_INCLUDE_DIR:=$(dir $(lastword $(MAKEFILE_LIST)))
endif
GO_VERSION_MAJOR_MINOR:=1.11
GO_VERSION_PATCH:=5

274
golang/golang/Makefile Normal file
View file

@ -0,0 +1,274 @@
#
# Copyright (C) 2018 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include ../golang-version.mk
PKG_NAME:=golang
PKG_VERSION:=$(GO_VERSION_MAJOR_MINOR)$(if $(GO_VERSION_PATCH),.$(GO_VERSION_PATCH))
PKG_RELEASE:=1
GO_SOURCE_URLS:=https://dl.google.com/go/ \
https://mirrors.ustc.edu.cn/golang/ \
https://mirrors.nju.edu.cn/golang/
PKG_SOURCE:=go$(PKG_VERSION).src.tar.gz
PKG_SOURCE_URL:=$(GO_SOURCE_URLS)
PKG_HASH:=bc1ef02bb1668835db1390a2e478dcbccb5dd16911691af9d75184bbe5aa943e
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_DIR:=$(BUILD_DIR)/go-$(PKG_VERSION)
PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0
PKG_GO_WORK_DIR:=$(PKG_BUILD_DIR)/.go_work
PKG_GO_HOST_CACHE_DIR:=$(PKG_GO_WORK_DIR)/host_cache
PKG_GO_TARGET_CACHE_DIR:=$(PKG_GO_WORK_DIR)/target_cache
PKG_GO_TMP_DIR:=$(PKG_GO_WORK_DIR)/tmp
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/go-$(PKG_VERSION)
HOST_BUILD_PARALLEL:=1
HOST_GO_PREFIX:=$(STAGING_DIR_HOSTPKG)
HOST_GO_VERSION_ID:=cross
HOST_GO_ROOT:=$(HOST_GO_PREFIX)/lib/go-$(HOST_GO_VERSION_ID)
HOST_GO_VALID_OS_ARCH:= \
android_arm \
darwin_386 darwin_amd64 darwin_arm darwin_arm64 \
dragonfly_amd64 \
freebsd_386 freebsd_amd64 freebsd_arm \
linux_386 linux_amd64 linux_arm linux_arm64 \
netbsd_386 netbsd_amd64 netbsd_arm \
openbsd_386 openbsd_amd64 openbsd_arm \
plan9_386 plan9_amd64 \
solaris_amd64 \
windows_386 windows_amd64 \
\
linux_ppc64 linux_ppc64le linux_mips linux_mipsle linux_mips64 linux_mips64le
BOOTSTRAP_SOURCE:=go1.4-bootstrap-20171003.tar.gz
BOOTSTRAP_SOURCE_URL:=$(GO_SOURCE_URLS)
BOOTSTRAP_HASH:=f4ff5b5eb3a3cae1c993723f3eab519c5bae18866b5e5f96fe1102f0cb5c3e52
BOOTSTRAP_BUILD_DIR:=$(HOST_BUILD_DIR)/.go_bootstrap
BOOTSTRAP_GO_VALID_OS_ARCH:= \
darwin_386 darwin_amd64 \
dragonfly_386 dragonfly_amd64 \
freebsd_386 freebsd_amd64 freebsd_arm \
linux_386 linux_amd64 linux_arm \
netbsd_386 netbsd_amd64 netbsd_arm \
openbsd_386 openbsd_amd64 \
plan9_386 plan9_amd64 \
solaris_amd64 \
windows_386 windows_amd64
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
include ../golang-compiler.mk
include ../golang-package.mk
PKG_UNPACK:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
HOST_UNPACK:=$(HOST_TAR) -C $(HOST_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
BOOTSTRAP_UNPACK:=$(HOST_TAR) -C $(BOOTSTRAP_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(BOOTSTRAP_SOURCE)
# don't strip ELF executables in test data (and go itself)
RSTRIP:=:
STRIP:=:
define Package/golang/Default
$(call GoPackage/GoSubMenu)
TITLE:=Go programming language
URL:=https://golang.org/
DEPENDS:=$(GO_ARCH_DEPENDS)
endef
define Package/golang/Default/description
The Go programming language is an open source project to make
programmers more productive.
Go is expressive, concise, clean, and efficient. Its concurrency
mechanisms make it easy to write programs that get the most out of
multicore and networked machines, while its novel type system enables
flexible and modular program construction. Go compiles quickly to
machine code yet has the convenience of garbage collection and the power
of run-time reflection. It's a fast, statically typed, compiled language
that feels like a dynamically typed, interpreted language.
endef
# go tool requires source present:
# https://github.com/golang/go/issues/4635
define Package/golang
$(call Package/golang/Default)
TITLE+= (compiler)
DEPENDS+= +golang-src
endef
define Package/golang/description
$(call Package/golang/Default/description)
This package provides an assembler, compiler, linker, and compiled
libraries for the Go programming language.
endef
define Package/golang-doc
$(call Package/golang/Default)
TITLE+= (documentation)
endef
define Package/golang-doc/description
$(call Package/golang/Default/description)
This package provides the documentation for the Go programming language.
endef
define Package/golang-src
$(call Package/golang/Default)
TITLE+= (source files)
endef
define Package/golang-src/description
$(call Package/golang/Default/description)
This package provides the Go programming language source files needed
for cross-compilation.
endef
define Download/golang-bootstrap
FILE:=$(BOOTSTRAP_SOURCE)
URL:=$(BOOTSTRAP_SOURCE_URL)
HASH:=$(BOOTSTRAP_HASH)
endef
$(eval $(call Download,golang-bootstrap))
$(eval $(call GoCompiler/AddProfile,Bootstrap,$(BOOTSTRAP_BUILD_DIR),,bootstrap,$(GO_HOST_OS_ARCH)))
$(eval $(call GoCompiler/AddProfile,Host,$(HOST_BUILD_DIR),$(HOST_GO_PREFIX),$(HOST_GO_VERSION_ID),$(GO_HOST_OS_ARCH)))
$(eval $(call GoCompiler/AddProfile,Package,$(PKG_BUILD_DIR),$(GO_TARGET_PREFIX),$(GO_TARGET_VERSION_ID),$(GO_OS_ARCH)))
define Host/Prepare
$(call Host/Prepare/Default)
mkdir -p $(BOOTSTRAP_BUILD_DIR)
$(BOOTSTRAP_UNPACK)
endef
define Host/Compile
$(call GoCompiler/Bootstrap/CheckHost,$(BOOTSTRAP_GO_VALID_OS_ARCH))
$(call GoCompiler/Host/CheckHost,$(HOST_GO_VALID_OS_ARCH))
$(call GoCompiler/Bootstrap/Make, \
CC=$(HOSTCC_NOCACHE) \
CXX=$(HOSTCXX_NOCACHE) \
)
$(call GoCompiler/Host/Make, \
GOROOT_BOOTSTRAP=$(BOOTSTRAP_BUILD_DIR) \
CC=$(HOSTCC_NOCACHE) \
CXX=$(HOSTCXX_NOCACHE) \
)
endef
# if host and target os/arch are the same,
# when go compiles a program, it will use the host std lib
# so remove it now and force go to rebuild std for target later
define Host/Install
$(call Host/Uninstall)
$(call GoCompiler/Host/Install/Bin,)
$(call GoCompiler/Host/Install/Src,)
$(call GoCompiler/Host/Install/BinLinks,)
rm -rf $(HOST_GO_ROOT)/pkg/$(GO_HOST_OS_ARCH)
$(INSTALL_DIR) $(HOST_GO_ROOT)/openwrt
$(INSTALL_BIN) ./files/go-gcc-helper $(HOST_GO_ROOT)/openwrt/
$(LN) go-gcc-helper $(HOST_GO_ROOT)/openwrt/gcc
$(LN) go-gcc-helper $(HOST_GO_ROOT)/openwrt/g++
endef
define Host/Uninstall
rm -rf $(HOST_GO_ROOT)/openwrt
$(call GoCompiler/Host/Uninstall/BinLinks,)
$(call GoCompiler/Host/Uninstall,)
endef
define Build/Compile
mkdir -p \
$(PKG_GO_HOST_CACHE_DIR) \
$(PKG_GO_TARGET_CACHE_DIR) \
$(PKG_GO_TMP_DIR)
@echo "Building target Go first stage"
$(call GoCompiler/Package/Make, \
GOROOT_BOOTSTRAP=$(HOST_GO_ROOT) \
GOCACHE=$(PKG_GO_HOST_CACHE_DIR) \
GOTMPDIR=$(PKG_GO_TMP_DIR) \
GO_GCC_HELPER_CC="$(HOSTCC)" \
GO_GCC_HELPER_CXX="$(HOSTCXX)" \
GO_GCC_HELPER_PATH=$$$$PATH \
CC=gcc \
CXX=g++ \
PKG_CONFIG=pkg-config \
PATH=$(HOST_GO_ROOT)/openwrt:$$$$PATH \
)
@echo "Building target Go second stage"
( \
cd $(PKG_BUILD_DIR)/bin ; \
$(CP) go go-host ; \
GOROOT_FINAL=$(GO_TARGET_ROOT) \
GOCACHE=$(PKG_GO_TARGET_CACHE_DIR) \
GOTMPDIR=$(PKG_GO_TMP_DIR) \
GO_GCC_HELPER_CC="$(TARGET_CC)" \
GO_GCC_HELPER_CXX="$(TARGET_CXX)" \
GO_GCC_HELPER_PATH=$$$$PATH \
CC=gcc \
CXX=g++ \
PKG_CONFIG=pkg-config \
PATH=$(HOST_GO_ROOT)/openwrt:$$$$PATH \
$(call GoPackage/Environment) \
./go-host install -a -v std cmd ; \
retval=$$$$? ; \
rm -f go-host ; \
exit $$$$retval ; \
)
endef
define Package/golang/install
$(call GoCompiler/Package/Install/Bin,$(1)$(GO_TARGET_PREFIX))
$(call GoCompiler/Package/Install/BinLinks,$(1)$(GO_TARGET_PREFIX))
endef
define Package/golang-doc/install
$(call GoCompiler/Package/Install/Doc,$(1)$(GO_TARGET_PREFIX))
endef
define Package/golang-src/install
$(call GoCompiler/Package/Install/Src,$(1)$(GO_TARGET_PREFIX))
endef
# src/debug contains ELF executables as test data
# and they reference these libraries
# we need to call this in Package/$(1)/extra_provides
# to pass CheckDependencies in include/package-ipkg.mk
define Package/golang-src/extra_provides
echo 'libc.so.6'
endef
$(eval $(call HostBuild))
$(eval $(call BuildPackage,golang))
$(eval $(call BuildPackage,golang-doc))
$(eval $(call BuildPackage,golang-src))

View file

@ -0,0 +1,23 @@
#!/bin/sh
me=go-gcc-helper
name=$(basename $0)
case $name in
gcc)
cmd=$GO_GCC_HELPER_CC
;;
g++)
cmd=$GO_GCC_HELPER_CXX
;;
*)
echo "$me: unknown command \"$name\""
exit 1
;;
esac
export PATH="$GO_GCC_HELPER_PATH"
echo "$me: running $cmd $@"
$cmd "$@"

View file

@ -57,6 +57,11 @@
<%
end)
%>
<%
local obfs_installed = nixio.fs.access("/usr/bin/obfs-local")
local v2ray_installed = nixio.fs.access("/usr/bin/obfs-local")
if obfs_installed or v2ray_installed then
%>
<div class="cbi-value">
<label class="cbi-value-title"><%:Enable ShadowSocks Obfuscating%></label>
<div class="cbi-value-field">
@ -71,11 +76,24 @@
<label class="cbi-value-title"><%:Obfuscating plugin%></label>
<div class="cbi-value-field">
<select class="cbi-input-select" name="obfs_plugin">
<%
if v2ray_installed then
%>
<option value="v2ray" <% if luci.model.uci.cursor():get("shadowsocks-libev","tracker","obfs_plugin") == "v2ray" then %>selected="selected"<% end %>>v2ray</option>
<%
end
if obfs_installed then
%>
<option value="obfs" <% if luci.model.uci.cursor():get("shadowsocks-libev","tracker","obfs_plugin") == "obfs" then %>selected="selected"<% end %>>simple-obfs</option>
<%
end
%>
</select>
</div>
</div>
<%
end
%>
</div>
</fieldset>
<fieldset class="cbi-section" id="networks">

View file

@ -1,66 +0,0 @@
#
# Copyright (C) 2018-2019 chenhw2 <https://github.com/chenhw2>
#
# This is free software, licensed under the GNU General Public License v3.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=v2ray-plugin
PKG_VERSION:=1.0
PKG_RELEASE:=8cea1a3
PKG_MAINTAINER:=chenhw2 <https://github.com/chenhw2>
# OpenWrt ARCH: arm, i386, x86_64, mips, mipsel
# Golang ARCH: arm[5-7], 386, amd64, mips, mipsle
PKG_ARCH:=$(ARCH)
BIN_ARCH:=$(ARCH)
ifeq ($(ARCH),mipsel)
PKG_ARCH:=mips
BIN_ARCH:=mipsle
endif
ifeq ($(ARCH),i386)
PKG_ARCH:=386
BIN_ARCH:=386
endif
ifeq ($(ARCH),x86_64)
PKG_ARCH:=amd64
BIN_ARCH:=amd64
endif
ifeq ($(ARCH),arm)
BIN_ARCH:=arm7
endif
PKG_SOURCE:=v2ray-plugin-linux-$(PKG_ARCH)-$(PKG_RELEASE).tar.gz
PKG_SOURCE_URL:=https://github.com/shadowsocks/v2ray-plugin/releases/download/v$(PKG_VERSION)/
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_HASH:=skip
include $(INCLUDE_DIR)/package.mk
define Package/v2ray-plugin
SECTION:=net
CATEGORY:=Network
TITLE:=SIP003 plugin for shadowsocks, based on v2ray
URL:=https://github.com/shadowsocks/v2ray-plugin
endef
define Package/v2ray-plugin/description
Yet another SIP003 plugin for shadowsocks, based on v2ray
endef
define Build/Prepare
gzip -dc "$(DL_DIR)/$(PKG_SOURCE)" | tar -C $(PKG_BUILD_DIR)/ -xf -
endef
define Build/Compile
echo "$(PKG_NAME)Compile Skiped!"
endef
define Package/v2ray-plugin/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/v2ray-plugin_linux_$(BIN_ARCH) $(1)/usr/bin/v2ray-plugin
endef
$(eval $(call BuildPackage,v2ray-plugin))

View file

@ -0,0 +1,54 @@
#
# Copyright (C) 2018-2019 chenhw2 <https://github.com/chenhw2>
#
# This is free software, licensed under the GNU General Public License v3.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=v2ray-plugin
PKG_MAINTAINER:=chenhw2 <https://github.com/chenhw2>
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/shadowsocks/v2ray-plugin.git
PKG_SOURCE_VERSION:=8cea1a3
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
PKG_BUILD_DEPENDS:=golang/host
GO_PKG:=github.com/shadowsocks/v2ray-plugin
#GO_PKG_BUILD_PKG:=github.com/shadowsocks/v2ray-plugin
include $(INCLUDE_DIR)/package.mk
include ../golang/golang-package.mk
define Package/v2ray-plugin
SECTION:=net
CATEGORY:=Network
TITLE:=SIP003 plugin for shadowsocks, based on v2ray
URL:=https://github.com/shadowsocks/v2ray-plugin
DEPENDS:=$(GO_ARCH_DEPENDS) \
+golang-protobuf-dev +v2ray-core-dev +v2ray-ext-dev +golang-golang-x-crypto-dev
PKGARCH:=all
endef
define Package/v2ray-plugin/description
Yet another SIP003 plugin for shadowsocks, based on v2ray
endef
#define Build/Prepare
# gzip -dc "$(DL_DIR)/$(PKG_SOURCE)" | tar -C $(PKG_BUILD_DIR)/ -xf -
#endef
#define Build/Compile
# echo "$(PKG_NAME)Compile Skiped!"
#endef
#define Package/v2ray-plugin/install
# $(INSTALL_DIR) $(1)/usr/bin
# $(INSTALL_BIN) $(PKG_BUILD_DIR)/v2ray-plugin $(1)/usr/bin/v2ray-plugin
#endef
$(eval $(call GoBinPackage,v2ray-plugin))
$(eval $(call BuildPackage,v2ray-plugin))

43
v2ray-core/Makefile Normal file
View file

@ -0,0 +1,43 @@
#
# Copyright (C) 2019 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=v2ray-core
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/v2ray/v2ray-core.git
PKG_SOURCE_VERSION:=7bb5db712d8db179dc4b18d74331d3adaa9a8303
PKG_SOURCE_DATE:=20190127
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
GO_PKG:=v2ray.com/core
GO_PKG_SOURCE_ONLY:=1
include $(INCLUDE_DIR)/package.mk
include ../golang/golang-package.mk
define Package/v2ray-core-dev
$(call GoPackage/GoSubMenu)
TITLE:=Go support for Google protocol buffers
URL:=https://github.com/golang/protobuf
DEPENDS:=$(GO_ARCH_DEPENDS) +protobuf
PKGARCH:=all
endef
define Package/v2ray-core-dev/description
Go support for Google protocol buffers
endef
$(eval $(call GoSrcPackage,v2ray-core-dev))
$(eval $(call BuildPackage,v2ray-core-dev))

43
v2ray-ext/Makefile Normal file
View file

@ -0,0 +1,43 @@
#
# Copyright (C) 2019 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=v2ray-ext
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/v2ray/ext.git
PKG_SOURCE_VERSION:=a9580865a30708e7b8214d95b3338bf132d94ad9
PKG_SOURCE_DATE:=20190118
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
GO_PKG:=v2ray.com/ext
GO_PKG_SOURCE_ONLY:=1
include $(INCLUDE_DIR)/package.mk
include ../golang/golang-package.mk
define Package/v2ray-ext-dev
$(call GoPackage/GoSubMenu)
TITLE:=Go support for Google protocol buffers
URL:=https://github.com/golang/protobuf
DEPENDS:=$(GO_ARCH_DEPENDS) +protobuf
PKGARCH:=all
endef
define Package/v2ray-ext-dev/description
Go support for Google protocol buffers
endef
$(eval $(call GoSrcPackage,v2ray-ext-dev))
$(eval $(call BuildPackage,v2ray-ext-dev))