mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-19 14:13:30 +00:00
v2ray: bump to v4.18 custom build
This commit is contained in:
parent
1d96b095d8
commit
49c7c8000a
@ -1,122 +1,166 @@
|
||||
#
|
||||
# Copyright (C) 2015-2016 OpenWrt.org
|
||||
# Copyright (C) 2019 Xingwang Liao
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v3.
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=v2ray
|
||||
PKG_VERSION:=v4.18.0
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_NAME:=v2ray-core
|
||||
PKG_VERSION:=4.18.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/v2ray/v2ray-core/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=0d18418d97d36f986666cf6a979e8e8d0c261bda182d244bb5897f724ae48ce8
|
||||
|
||||
PKG_LICENSE:=MIT
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Xingwang Liao <kuoruan@gmail.com>
|
||||
|
||||
PKG_BUILD_DEPENDS:=golang/host
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_USE_MIPS16:=0
|
||||
|
||||
GO_PKG:=v2ray.com/core
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
|
||||
define Package/$(PKG_NAME)
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=V2Ray is a cross-platform proxy software
|
||||
DEPENDS:=+ca-certificates
|
||||
URL:=https://github.com/v2ray/v2ray-core
|
||||
define Package/v2ray-core/Default
|
||||
TITLE:=A platform for building proxies
|
||||
URL:=https://www.v2ray.com
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/config
|
||||
menu "V2Ray Configuration"
|
||||
depends on PACKAGE_v2ray
|
||||
|
||||
config PACKAGE_V2RAY_INCLUDE_V2RAY
|
||||
bool "Include v2ray"
|
||||
default y
|
||||
|
||||
config PACKAGE_V2RAY_SOFTFLOAT
|
||||
bool "Use soft-float binaries (mips/mipsle only)"
|
||||
depends on mipsel || mips || mips64el || mips64
|
||||
default n
|
||||
|
||||
config PACKAGE_V2RAY_INCLUDE_V2CTL
|
||||
bool "Include v2ctl"
|
||||
depends on PACKAGE_V2RAY_INCLUDE_V2RAY
|
||||
default y
|
||||
|
||||
config PACKAGE_V2RAY_INCLUDE_GEOIP
|
||||
bool "Include geoip.dat"
|
||||
depends on PACKAGE_V2RAY_INCLUDE_V2CTL
|
||||
default n
|
||||
|
||||
config PACKAGE_V2RAY_INCLUDE_GEOSITE
|
||||
bool "Include geosite.dat"
|
||||
depends on PACKAGE_V2RAY_INCLUDE_V2CTL
|
||||
default n
|
||||
|
||||
endmenu
|
||||
define Package/v2ray-core/Default/description
|
||||
Project V is a set of network tools that help you to build your own computer network.
|
||||
It secures your network connections and thus protects your privacy.
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/description
|
||||
V2Ray is a cross-platform proxy software
|
||||
define project-v/SubMenu
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=Project V
|
||||
endef
|
||||
|
||||
ifeq ($(ARCH),x86_64)
|
||||
PKG_ARCH_V2RAY:=linux-64
|
||||
endif
|
||||
ifeq ($(ARCH),mipsel)
|
||||
PKG_ARCH_V2RAY:=linux-mipsle
|
||||
endif
|
||||
ifeq ($(ARCH),mips)
|
||||
PKG_ARCH_V2RAY:=linux-mips
|
||||
endif
|
||||
ifeq ($(ARCH),i386)
|
||||
PKG_ARCH_V2RAY:=linux-32
|
||||
endif
|
||||
ifeq ($(ARCH),arm)
|
||||
PKG_ARCH_V2RAY:=linux-arm
|
||||
endif
|
||||
ifeq ($(ARCH),aarch64)
|
||||
PKG_ARCH_V2RAY:=linux-arm64
|
||||
endif
|
||||
define v2ray-core/GoBinDefault
|
||||
$(call Package/v2ray-core/Default)
|
||||
$(call project-v/SubMenu)
|
||||
USERID:=v2ray=10800:v2ray=10800
|
||||
DEPENDS:=$(GO_ARCH_DEPENDS)
|
||||
endef
|
||||
|
||||
V2RAY_BIN:=v2ray
|
||||
V2CTL_BIN:=v2ctl
|
||||
define v2ray-core/templates
|
||||
define Package/$(1)
|
||||
$$(call v2ray-core/GoBinDefault)
|
||||
TITLE+= ($(1))
|
||||
endef
|
||||
|
||||
ifeq ($(ARCH),arm)
|
||||
ifneq ($(BOARD),bcm53xx)
|
||||
V2RAY_BIN:=v2ray_armv7
|
||||
V2CTL_BIN:=v2ctl_armv7
|
||||
endif
|
||||
endif
|
||||
define Package/$(1)/description
|
||||
$$(call Package/v2ray-core/Default/description)
|
||||
|
||||
ifdef CONFIG_PACKAGE_V2RAY_SOFTFLOAT
|
||||
V2RAY_BIN:=v2ray_softfloat
|
||||
V2CTL_BIN:=v2ctl_softfloat
|
||||
endif
|
||||
This package contains the $(1).
|
||||
endef
|
||||
|
||||
define Package/$(1)/install
|
||||
$$(INSTALL_DIR) $$(1)/usr/bin/v2ray
|
||||
$$(INSTALL_BIN) $$(GO_PKG_BUILD_BIN_DIR)/$(1) $$(1)/usr/bin/v2ray
|
||||
endef
|
||||
endef
|
||||
|
||||
V2RAY_COMPONENTS:=v2ray v2ctl
|
||||
|
||||
$(foreach component,$(V2RAY_COMPONENTS), \
|
||||
$(eval $(call v2ray-core/templates,$(component))) \
|
||||
)
|
||||
|
||||
define Package/v2ray-assets
|
||||
$(call Package/v2ray-core/Default)
|
||||
$(call project-v/SubMenu)
|
||||
TITLE+= (geoip & geosite)
|
||||
endef
|
||||
|
||||
define Package/v2ray-assets/description
|
||||
$(call Package/v2ray-core/Default/description)
|
||||
|
||||
This package contains geoip.dat & geosite.dat.
|
||||
endef
|
||||
|
||||
define Package/v2ray-assets/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin/v2ray
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/release/config/{geoip,geosite}.dat \
|
||||
$(1)/usr/bin/v2ray
|
||||
endef
|
||||
|
||||
define Package/v2ray-core
|
||||
$(call v2ray-core/GoBinDefault)
|
||||
TITLE+= (full)
|
||||
PROVIDES:=$(V2RAY_COMPONENTS) v2ray-assets
|
||||
endef
|
||||
|
||||
define Package/v2ray-core/description
|
||||
$(call Package/v2ray-core/Default/description)
|
||||
|
||||
This package contains v2ray, v2ctl and v2ray-assets.
|
||||
endef
|
||||
|
||||
define Package/v2ray-core/install
|
||||
$(call Package/v2ray-assets/install,$(1))
|
||||
$(INSTALL_DIR) $(1)/usr/bin/v2ray
|
||||
( \
|
||||
for component in $(V2RAY_COMPONENTS); do \
|
||||
$(INSTALL_BIN) $(GO_PKG_BUILD_BIN_DIR)/$$$$component $(1)/usr/bin/v2ray ; \
|
||||
done ; \
|
||||
)
|
||||
endef
|
||||
|
||||
define Package/golang-v2ray-core-dev
|
||||
$(call Package/v2ray-core/Default)
|
||||
$(call GoPackage/GoSubMenu)
|
||||
TITLE+= (source files)
|
||||
PKGARCH:=all
|
||||
endef
|
||||
|
||||
define Package/golang-v2ray-core-dev/description
|
||||
$(call Package/v2ray-core/Default/description)
|
||||
|
||||
This package provides the source files for v2ray-core.
|
||||
endef
|
||||
|
||||
define Build/Prepare
|
||||
[ ! -f $(PKG_BUILD_DIR)/v2ray-$(PKG_VERSION)-$(PKG_ARCH_V2RAY).zip ] && wget https://github.com/v2ray/v2ray-core/releases/download/$(PKG_VERSION)/v2ray-$(PKG_ARCH_V2RAY).zip -O $(PKG_BUILD_DIR)/v2ray-$(PKG_VERSION)-$(PKG_ARCH_V2RAY).zip
|
||||
unzip -o $(PKG_BUILD_DIR)/v2ray-$(PKG_VERSION)-$(PKG_ARCH_V2RAY).zip -d $(PKG_BUILD_DIR)
|
||||
endef
|
||||
|
||||
define Build/Configure
|
||||
$(Build/Prepare/Default)
|
||||
( \
|
||||
sed -i \
|
||||
's/\(version[[:space:]]*=[[:space:]]*"\).*\("\)/\1$(PKG_VERSION)\2/' \
|
||||
$(PKG_BUILD_DIR)/core.go ; \
|
||||
build="Lean's custom build - Release $(PKG_RELEASE)" ; \
|
||||
sed -i \
|
||||
"s/\(build[[:space:]]*=[[:space:]]*\"\).*\(\"\)/\1$$$$build\2/" \
|
||||
$(PKG_BUILD_DIR)/core.go ; \
|
||||
$(CP) ./all.go $(PKG_BUILD_DIR)/main/distro/all/all.go ; \
|
||||
)
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
#chmod +x $(PKG_BUILD_DIR)/$(V2RAY_BIN) && upx --ultra-brute $(PKG_BUILD_DIR)/$(V2RAY_BIN)
|
||||
#chmod +x $(PKG_BUILD_DIR)/$(V2CTL_BIN) && upx --ultra-brute $(PKG_BUILD_DIR)/$(V2CTL_BIN)
|
||||
$(eval GO_PKG_BUILD_PKG:=v2ray.com/core/main)
|
||||
$(call GoPackage/Build/Compile,-ldflags "-s -w")
|
||||
mv -f $(GO_PKG_BUILD_BIN_DIR)/main $(GO_PKG_BUILD_BIN_DIR)/v2ray
|
||||
|
||||
$(eval GO_PKG_BUILD_PKG:=v2ray.com/core/infra/control/main)
|
||||
$(call GoPackage/Build/Compile,-ldflags "-s -w")
|
||||
mv -f $(GO_PKG_BUILD_BIN_DIR)/main $(GO_PKG_BUILD_BIN_DIR)/v2ctl
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin/v2ray
|
||||
ifdef CONFIG_PACKAGE_V2RAY_INCLUDE_V2RAY
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(V2RAY_BIN) $(1)/usr/bin/v2ray/v2ray
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_V2RAY_INCLUDE_V2CTL
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(V2CTL_BIN) $(1)/usr/bin/v2ray/v2ctl
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_V2RAY_INCLUDE_GEOIP
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/geoip.dat $(1)/usr/bin/v2ray/
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_V2RAY_INCLUDE_GEOSITE
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/geosite.dat $(1)/usr/bin/v2ray/
|
||||
endif
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,$(PKG_NAME)))
|
||||
$(foreach component,$(V2RAY_COMPONENTS), \
|
||||
$(eval $(call GoBinPackage,$(component))) \
|
||||
$(eval $(call BuildPackage,$(component))) \
|
||||
)
|
||||
$(eval $(call BuildPackage,v2ray-assets))
|
||||
|
||||
$(eval $(call GoBinPackage,v2ray-core))
|
||||
$(eval $(call BuildPackage,v2ray-core))
|
||||
$(eval $(call GoSrcPackage,golang-v2ray-core-dev))
|
||||
$(eval $(call BuildPackage,golang-v2ray-core-dev))
|
||||
|
64
package/lean/v2ray/all.go
Normal file
64
package/lean/v2ray/all.go
Normal file
@ -0,0 +1,64 @@
|
||||
package all
|
||||
|
||||
import (
|
||||
// The following are necessary as they register handlers in their init functions.
|
||||
|
||||
// Required features. Can't remove unless there is replacements.
|
||||
_ "v2ray.com/core/app/dispatcher"
|
||||
_ "v2ray.com/core/app/proxyman/inbound"
|
||||
_ "v2ray.com/core/app/proxyman/outbound"
|
||||
|
||||
// Default commander and all its services. This is an optional feature.
|
||||
_ "v2ray.com/core/app/commander"
|
||||
_ "v2ray.com/core/app/log/command"
|
||||
_ "v2ray.com/core/app/proxyman/command"
|
||||
_ "v2ray.com/core/app/stats/command"
|
||||
|
||||
// Other optional features.
|
||||
_ "v2ray.com/core/app/dns"
|
||||
_ "v2ray.com/core/app/log"
|
||||
_ "v2ray.com/core/app/policy"
|
||||
_ "v2ray.com/core/app/reverse"
|
||||
_ "v2ray.com/core/app/router"
|
||||
_ "v2ray.com/core/app/stats"
|
||||
|
||||
// Inbound and outbound proxies.
|
||||
_ "v2ray.com/core/proxy/blackhole"
|
||||
_ "v2ray.com/core/proxy/dns"
|
||||
_ "v2ray.com/core/proxy/dokodemo"
|
||||
_ "v2ray.com/core/proxy/freedom"
|
||||
_ "v2ray.com/core/proxy/http"
|
||||
_ "v2ray.com/core/proxy/mtproto"
|
||||
_ "v2ray.com/core/proxy/shadowsocks"
|
||||
_ "v2ray.com/core/proxy/socks"
|
||||
_ "v2ray.com/core/proxy/vmess/inbound"
|
||||
_ "v2ray.com/core/proxy/vmess/outbound"
|
||||
|
||||
// Transports
|
||||
_ "v2ray.com/core/transport/internet/domainsocket"
|
||||
_ "v2ray.com/core/transport/internet/http"
|
||||
_ "v2ray.com/core/transport/internet/kcp"
|
||||
_ "v2ray.com/core/transport/internet/quic"
|
||||
_ "v2ray.com/core/transport/internet/tcp"
|
||||
_ "v2ray.com/core/transport/internet/tls"
|
||||
_ "v2ray.com/core/transport/internet/udp"
|
||||
_ "v2ray.com/core/transport/internet/websocket"
|
||||
|
||||
// Transport headers
|
||||
_ "v2ray.com/core/transport/internet/headers/http"
|
||||
_ "v2ray.com/core/transport/internet/headers/noop"
|
||||
_ "v2ray.com/core/transport/internet/headers/srtp"
|
||||
_ "v2ray.com/core/transport/internet/headers/tls"
|
||||
_ "v2ray.com/core/transport/internet/headers/utp"
|
||||
_ "v2ray.com/core/transport/internet/headers/wechat"
|
||||
_ "v2ray.com/core/transport/internet/headers/wireguard"
|
||||
|
||||
// JSON config support. Choose only one from the two below.
|
||||
// The following line loads JSON from v2ctl
|
||||
// _ "v2ray.com/core/main/json"
|
||||
// The following line loads JSON internally
|
||||
_ "v2ray.com/core/main/jsonem"
|
||||
|
||||
// Load config from file or http(s)
|
||||
_ "v2ray.com/core/main/confloader/external"
|
||||
)
|
Loading…
Reference in New Issue
Block a user