diff --git a/package/ctcgfw/nps/Makefile b/package/ctcgfw/nps/Makefile new file mode 100644 index 0000000000..e4a3cc7967 --- /dev/null +++ b/package/ctcgfw/nps/Makefile @@ -0,0 +1,98 @@ +# +# Copyright (C) 2021 CTCGFW Project-OpenWrt +# +# +# This is free software, licensed under the GNU General Public License v3. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=nps +PKG_VERSION:=0.26.9 +PKG_RELEASE:=2 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/ehang-io/nps/tar.gz/v$(PKG_VERSION)? +PKG_HASH:=7df414180ed4f0049dc08f0e3c625a6de4ebed34da591515f9514b3763dd578d + +PKG_LICENSE:=Apache-2.0 +PKG_LICENSE_FILE:=LICENSE + +PKG_CONFIG_DEPENDS := \ + CONFIG_NPC_COMPRESS_UPX \ + CONFIG_NPS_COMPRESS_UPX + +PKG_BUILD_DEPENDS:=golang/host +PKG_BUILD_PARALLEL:=1 +PKG_USE_MIPS16:=0 + +GO_PKG:=ehang.io/nps +GO_PKG_BUILD_PKG:=ehang.io/nps/cmd/... +GO_PKG_LDFLAGS:=-s -w + +include $(INCLUDE_DIR)/package.mk +include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk + +define Package/nps/template + SECTION:=net + CATEGORY:=Network + TITLE:=A intranet penetration proxy server + DEPENDS:=$(GO_ARCH_DEPENDS) + URL:=https://ehang-io.github.io/nps +endef + +define Package/npc + $(call Package/nps/template) + TITLE+= (client) +endef + +define Package/nps + $(call Package/nps/template) + TITLE+= (server) +endef + +define Package/nps/description/template + NPS is a lightweight, high-performance, powerful intranet penetration proxy server, + with a powerful web management terminal. +endef + +Package/npc/description = $(Package/nps/description/template) +Package/nps/description = $(Package/nps/description/template) + +define Package/npc/config + config NPC_COMPRESS_UPX + bool "Compress executable files with UPX" + default y +endef + +define Package/nps/config + config NPS_COMPRESS_UPX + bool "Compress executable files with UPX" + default y +endef + +define Package/nps/install/template + $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR)) + + $(INSTALL_DIR) $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(2) $(1)/usr/bin/ +endef + +define Package/npc/install + $(call Package/nps/install/template,$(1),npc) +ifeq ($(CONFIG_NPC_COMPRESS_UPX),y) + $(STAGING_DIR_HOST)/bin/upx --lzma --best $(1)/usr/bin/* +endif +endef + +define Package/nps/install + $(call Package/nps/install/template,$(1),nps) +ifeq ($(CONFIG_NPS_COMPRESS_UPX),y) + $(STAGING_DIR_HOST)/bin/upx --lzma --best $(1)/usr/bin/* +endif +endef + +$(eval $(call GoBinPackage,npc)) +$(eval $(call GoBinPackage,nps)) +$(eval $(call BuildPackage,npc)) +$(eval $(call BuildPackage,nps)) diff --git a/package/ctcgfw/nps/patches/100-remove-useless-sdk-in-npc.patch b/package/ctcgfw/nps/patches/100-remove-useless-sdk-in-npc.patch new file mode 100644 index 0000000000..b96542fc41 --- /dev/null +++ b/package/ctcgfw/nps/patches/100-remove-useless-sdk-in-npc.patch @@ -0,0 +1,4 @@ +diff --git a/cmd/npc/sdk.go b/cmd/npc/sdk.go.bak +similarity index 100% +rename from cmd/npc/sdk.go +rename to cmd/npc/sdk.go.bak diff --git a/package/lean/npc/Makefile b/package/lean/npc/Makefile deleted file mode 100644 index af5d5ef5d4..0000000000 --- a/package/lean/npc/Makefile +++ /dev/null @@ -1,80 +0,0 @@ -# -# Copyright (C) 2015-2016 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v3. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=npc -PKG_VERSION:=0.26.9 -PKG_RELEASE:=1 - -ifeq ($(ARCH),mipsel) - NPC_ARCH:=mipsle -endif -ifeq ($(ARCH),mips) - NPC_ARCH:=mips -endif -ifeq ($(ARCH),i386) - NPC_ARCH:=386 -endif -ifeq ($(ARCH),x86_64) - NPC_ARCH:=amd64 -endif -ifeq ($(ARCH),arm) - NPC_ARCH:=arm_v7 - ifeq ($(BOARD),bcm53xx) - NPC_ARCH:=arm_v5 - endif - ifeq ($(BOARD),kirkwood) - NPC_ARCH:=arm_v5 - endif -endif -ifeq ($(ARCH),aarch64) - NPC_ARCH:=arm64 -endif - -PKG_LICENSE:=Apache-2.0 - -PKG_BUILD_DIR:=$(BUILD_DIR)/npc-$(PKG_VERSION) -PKG_URL:=https://github.com/ehang-io/nps/releases/download/v$(PKG_VERSION)/linux_$(NPC_ARCH)_client.tar.gz -PKG_FILE:=nps_linux_$(NPC_ARCH)_client-$(PKG_VERSION).tar.gz - -include $(INCLUDE_DIR)/package.mk - -define Package/$(PKG_NAME) - SECTION:=net - CATEGORY:=Network - TITLE:=NPC Client - DEPENDS:=@(aarch64||arm||i386||mips||mipsel||x86_64) - URL:=https://github.com/ehang-io/nps/releases -endef - -define Package/$(PKG_NAME)/description -npc is a fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet -endef - -define Build/Download - if [ ! -f $(DL_DIR)/$(PKG_FILE) ] ; then \ - wget -c -t 5 -O $(DL_DIR)/$(PKG_FILE) $(PKG_URL); \ - fi -endef - -define Build/Prepare - $(Build/Download) - tar -zxvf $(DL_DIR)/$(PKG_FILE) -C $(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)/npc $(1)/usr/bin/ -endef - -$(eval $(call BuildPackage,$(PKG_NAME)))