From f1336eca86f6adae52df51f612e04965b9085eb2 Mon Sep 17 00:00:00 2001 From: CN_SZTL Date: Fri, 29 Jan 2021 14:51:43 +0800 Subject: [PATCH] brook: build with OpenWrt golang toolchain Signed-off-by: CN_SZTL --- package/ctcgfw/brook/Makefile | 74 ++++++++++ .../patches/100-cli-bump-to-v2.3.0.patch | 126 ++++++++++++++++++ package/lienol/brook/Makefile | 79 ----------- 3 files changed, 200 insertions(+), 79 deletions(-) create mode 100644 package/ctcgfw/brook/Makefile create mode 100644 package/ctcgfw/brook/patches/100-cli-bump-to-v2.3.0.patch delete mode 100644 package/lienol/brook/Makefile diff --git a/package/ctcgfw/brook/Makefile b/package/ctcgfw/brook/Makefile new file mode 100644 index 0000000000..24f6503ac1 --- /dev/null +++ b/package/ctcgfw/brook/Makefile @@ -0,0 +1,74 @@ +# +# Copyright (C) 2021 CTCGFW Project-OpenWrt +# +# +# This is free software, licensed under the GNU General Public License v3. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=brook +PKG_VERSION:=20210101 +PKG_RELEASE:=2 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/txthinking/brook/tar.gz/v$(PKG_VERSION)? +PKG_HASH:=2848b6ef06867268ba4a6495cbf700d80145f023ddafb3e92943aed1f88eeb5a + +PKG_MAINTAINER:=CN_SZTL +PKG_LICENSE:=GPL-3.0 +PKG_LICENSE_FILES:=LICENSE + +PKG_BUILD_DEPENDS:=golang/host +PKG_BUILD_PARALLEL:=1 +PKG_USE_MIPS16:=0 + +PKG_CONFIG_DEPENDS:= \ + CONFIG_BROOK_COMPRESS_GOPROXY \ + CONFIG_BROOK_COMPRESS_UPX + +GO_PKG:=github.com/txthinking/brook +GO_PKG_BUILD_PKG:=github.com/txthinking/brook/cli/brook +GO_PKG_LDFLAGS:=-s -w + +include $(INCLUDE_DIR)/package.mk +include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk + +define Package/brook + SECTION:=net + CATEGORY:=Network + SUBMENU:=Web Servers/Proxies + TITLE:=A cross-platform proxy software + DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle + URL:=https://github.com/txthinking/brook +endef + +define Package/brook/description + Brook is a cross-platform strong encryption and not detectable proxy. + Zero-Configuration. +endef + +define Package/brook/config + config BROOK_COMPRESS_GOPROXY + bool "Compiling with GOPROXY proxy" + default n + + config BROOK_COMPRESS_UPX + bool "Compress executable files with UPX" + default y +endef + +ifeq ($(CONFIG_BROOK_COMPRESS_GOPROXY),y) + export GO111MODULE=on + export GOPROXY=https://goproxy.io +endif + +define Build/Compile + $(call GoPackage/Build/Compile) +ifeq ($(CONFIG_BROOK_COMPRESS_UPX),y) + $(STAGING_DIR_HOST)/bin/upx --lzma --best $(GO_PKG_BUILD_BIN_DIR)/brook +endif +endef + +$(eval $(call GoBinPackage,brook)) +$(eval $(call BuildPackage,brook)) diff --git a/package/ctcgfw/brook/patches/100-cli-bump-to-v2.3.0.patch b/package/ctcgfw/brook/patches/100-cli-bump-to-v2.3.0.patch new file mode 100644 index 0000000000..055d6b2278 --- /dev/null +++ b/package/ctcgfw/brook/patches/100-cli-bump-to-v2.3.0.patch @@ -0,0 +1,126 @@ +From 4b60c0151ef9e0b5901ba3825033c78269c1442f Mon Sep 17 00:00:00 2001 +From: CN_SZTL +Date: Fri, 29 Jan 2021 06:43:12 +0000 +Subject: [PATCH] cli: bump to v2.3.0 + +Signed-off-by: CN_SZTL +--- + cli/brook/main.go | 2 +- + go.mod | 21 ++++++++++++++++ + go.sum | 63 +++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 85 insertions(+), 1 deletion(-) + create mode 100644 go.mod + create mode 100644 go.sum + +diff --git a/cli/brook/main.go b/cli/brook/main.go +index 54d3f5f..4360eb2 100644 +--- a/cli/brook/main.go ++++ b/cli/brook/main.go +@@ -28,7 +28,7 @@ import ( + _ "net/http/pprof" + + "github.com/txthinking/brook" +- "github.com/urfave/cli" ++ "github.com/urfave/cli/v2" + ) + + var debug bool +diff --git a/go.mod b/go.mod +new file mode 100644 +index 0000000..2740019 +--- /dev/null ++++ b/go.mod +@@ -0,0 +1,21 @@ ++module github.com/txthinking/brook ++ ++go 1.15 ++ ++require ( ++ github.com/gorilla/mux v1.8.0 ++ github.com/gorilla/websocket v1.4.2 ++ github.com/mdp/qrterminal v1.0.1 ++ github.com/miekg/dns v1.1.35 ++ github.com/patrickmn/go-cache v2.1.0+incompatible ++ github.com/tdewolff/minify v2.3.6+incompatible ++ github.com/tdewolff/parse v2.3.4+incompatible // indirect ++ github.com/txthinking/encrypt v0.0.0-20210121062928-5ab4dd51a0e9 ++ github.com/txthinking/runnergroup v0.0.0-20200327135940-540a793bb997 ++ github.com/txthinking/socks5 v0.0.0-20210106113028-328af325654e ++ github.com/txthinking/x v0.0.0-20201210150116-a8015a742c8c ++ github.com/urfave/cli/v2 v2.3.0 ++ github.com/urfave/negroni v1.0.0 ++ golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad ++ golang.org/x/net v0.0.0-20210119194325-5f4716e94777 ++) +diff --git a/go.sum b/go.sum +new file mode 100644 +index 0000000..69b0435 +--- /dev/null ++++ b/go.sum +@@ -0,0 +1,63 @@ ++github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= ++github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= ++github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= ++github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= ++github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= ++github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= ++github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= ++github.com/mdp/qrterminal v1.0.1 h1:07+fzVDlPuBlXS8tB0ktTAyf+Lp1j2+2zK3fBOL5b7c= ++github.com/mdp/qrterminal v1.0.1/go.mod h1:Z33WhxQe9B6CdW37HaVqcRKzP+kByF3q/qLxOGe12xQ= ++github.com/miekg/dns v1.1.35 h1:oTfOaDH+mZkdcgdIjH6yBajRGtIwcwcaR+rt23ZSrJs= ++github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= ++github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= ++github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= ++github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= ++github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= ++github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= ++github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= ++github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= ++github.com/tdewolff/minify v2.3.6+incompatible h1:2hw5/9ZvxhWLvBUnHE06gElGYz+Jv9R4Eys0XUzItYo= ++github.com/tdewolff/minify v2.3.6+incompatible/go.mod h1:9Ov578KJUmAWpS6NeZwRZyT56Uf6o3Mcz9CEsg8USYs= ++github.com/tdewolff/parse v2.3.4+incompatible h1:x05/cnGwIMf4ceLuDMBOdQ1qGniMoxpP46ghf0Qzh38= ++github.com/tdewolff/parse v2.3.4+incompatible/go.mod h1:8oBwCsVmUkgHO8M5iCzSIDtpzXOT0WXX9cWhz+bIzJQ= ++github.com/txthinking/encrypt v0.0.0-20210121062928-5ab4dd51a0e9 h1:nqqcrK76wxumtdrYsK9dNRpBbXKk0DPGOe2sTPKu25k= ++github.com/txthinking/encrypt v0.0.0-20210121062928-5ab4dd51a0e9/go.mod h1:78N4pHirvbuhX3U2MJ3G0nxjmQtfaqHeYjvkHbw5Ho0= ++github.com/txthinking/runnergroup v0.0.0-20200327135940-540a793bb997 h1:vlDgnShahmE2XLslpr0hnzxfAmSj3JLX2CYi8Xct7G4= ++github.com/txthinking/runnergroup v0.0.0-20200327135940-540a793bb997/go.mod h1:CLUSJbazqETbaR+i0YAhXBICV9TrKH93pziccMhmhpM= ++github.com/txthinking/socks5 v0.0.0-20210106113028-328af325654e h1:SUWQViHyUHr766NlUKB1Wr8QRVTaxez9sLl3pwobiHw= ++github.com/txthinking/socks5 v0.0.0-20210106113028-328af325654e/go.mod h1:d3n8NJ6QMRb6I/WAlp4z5ZPAoaeqDmX5NgVZA0mhe+I= ++github.com/txthinking/x v0.0.0-20201210150116-a8015a742c8c h1:n3om7+DhvxNoBTcYul3jpeOTavBGKRjGW1GaLc8JsWc= ++github.com/txthinking/x v0.0.0-20201210150116-a8015a742c8c/go.mod h1:WgqbSEmUYSjEV3B1qmee/PpP2NYEz4bL9/+mF1ma+s4= ++github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M= ++github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= ++github.com/urfave/negroni v1.0.0 h1:kIimOitoypq34K7TG7DUaJ9kq/N4Ofuwi1sjz0KipXc= ++github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= ++golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= ++golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= ++golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad h1:DN0cp81fZ3njFcrLCytUHRSUkqBjfTo4Tx9RJTWs0EY= ++golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= ++golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= ++golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= ++golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= ++golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= ++golang.org/x/net v0.0.0-20210119194325-5f4716e94777 h1:003p0dJM77cxMSyCPFphvZf/Y5/NXf5fzg6ufd1/Oew= ++golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= ++golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= ++golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= ++golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 h1:nxC68pudNYkKU6jWhgrqdreuFiOQWj1Fs7T3VrH4Pjw= ++golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= ++golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= ++golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= ++golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= ++golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= ++golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= ++golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= ++golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= ++gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= ++gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= ++rsc.io/qr v0.2.0 h1:6vBLea5/NRMVTz8V66gipeLycZMl/+UlFmk8DvqQ6WY= ++rsc.io/qr v0.2.0/go.mod h1:IF+uZjkb9fqyeF/4tlBoynqmQxUoPfWEKh921coOuXs= +-- +2.17.1 + diff --git a/package/lienol/brook/Makefile b/package/lienol/brook/Makefile deleted file mode 100644 index 7cb158c8d3..0000000000 --- a/package/lienol/brook/Makefile +++ /dev/null @@ -1,79 +0,0 @@ -# -# Copyright (C) 2015-2016 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v3. -# - -include $(TOPDIR)/rules.mk -ifeq ($(ARCH),i386) - PKG_ARCH_BROOK:=386 -endif -ifeq ($(ARCH),x86_64) - PKG_ARCH_BROOK:=amd64 -endif -ifeq ($(ARCH),arm) - PKG_ARCH_BROOK:=arm7 -endif -ifeq ($(BOARD),bcm53xx) - PKG_ARCH_BROOK:=arm6 -ifeq ($(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))),) - PKG_ARCH_BROOK:=arm5 -endif -endif -ifeq ($(BOARD),kirkwood) - PKG_ARCH_BROOK:=arm5 -endif -ifeq ($(ARCH),aarch64) - PKG_ARCH_BROOK:=arm64 -endif -ifeq ($(ARCH),mips) - PKG_ARCH_BROOK:=mips_softfloat -endif -ifeq ($(ARCH),mipsel) - PKG_ARCH_BROOK:=mipsle_softfloat -endif -ifeq ($(ARCH),mips64) - PKG_ARCH_BROOK:=mips64 -endif -ifeq ($(ARCH),mips64el) - PKG_ARCH_BROOK:=mips64le -endif - -PKG_NAME:=brook -PKG_VERSION:=20210101 -PKG_RELEASE:=1 -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE:=brook_linux_$(PKG_ARCH_BROOK) -PKG_SOURCE_URL:=https://github.com/txthinking/brook/releases/download/v$(PKG_VERSION) -PKG_HASH:=skip - -include $(INCLUDE_DIR)/package.mk - -define Package/$(PKG_NAME) - SECTION:=net - CATEGORY:=Network - TITLE:=Brook is a cross-platform proxy software - DEPENDS:=@!(arc||powerpc) - URL:=https://github.com/txthinking/brook -endef - -define Package/$(PKG_NAME)/description - Brook is a cross-platform proxy software -endef - -define Build/Prepare - $(CP) $(DL_DIR)/$(PKG_SOURCE) $(PKG_BUILD_DIR)/ -endef - -define Build/Configure -endef - -define Build/Compile -endef - -define Package/$(PKG_NAME)/install - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_SOURCE) $(1)/usr/bin/brook -endef - -$(eval $(call BuildPackage,$(PKG_NAME)))