Merge pull request #18948 from neheb/18
[feed/packages.git] / net / xray-core / Makefile
1 include $(TOPDIR)/rules.mk
2
3 PKG_NAME:=xray-core
4 PKG_VERSION:=1.5.9
5 PKG_RELEASE:=$(AUTORELEASE)
6
7 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
8 PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)?
9 PKG_HASH:=ef61f80a32229f583c375ec8da79a1533ba5efae0fcb011e68a0ad0c913f6a87
10
11 PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
12 PKG_LICENSE:=MPL-2.0
13 PKG_LICENSE_FILES:=LICENSE
14
15 PKG_BUILD_DIR:=$(BUILD_DIR)/Xray-core-$(PKG_VERSION)
16 PKG_BUILD_DEPENDS:=golang/host
17 PKG_BUILD_PARALLEL:=1
18 PKG_USE_MIPS16:=0
19
20 GO_PKG:=github.com/xtls/xray-core
21 GO_PKG_BUILD_PKG:=github.com/xtls/xray-core/main
22 GO_PKG_LDFLAGS_X:= \
23 $(GO_PKG)/core.build=OpenWrt \
24 $(GO_PKG)/core.version=$(PKG_VERSION)
25
26 include $(INCLUDE_DIR)/package.mk
27 include ../../lang/golang/golang-package.mk
28
29 define Package/xray/template
30 TITLE:=A platform for building proxies to bypass network restrictions
31 SECTION:=net
32 CATEGORY:=Network
33 URL:=https://xtls.github.io
34 endef
35
36 define Package/xray-core
37 $(call Package/xray/template)
38 DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle
39 endef
40
41 define Package/xray-example
42 $(call Package/xray/template)
43 TITLE+= (example configs)
44 DEPENDS:=xray-core
45 PKGARCH:=all
46 endef
47
48 define Package/xray-geodata
49 $(call Package/xray/template)
50 TITLE+= (geodata files)
51 DEPENDS:=xray-core
52 PKGARCH:=all
53 endef
54
55 define Package/xray/description
56 Xray, Penetrates Everything. It helps you to build your own computer network.
57 It secures your network connections and thus protects your privacy.
58 endef
59
60 define Package/xray-core/description
61 $(call Package/xray/description)
62 endef
63
64 define Package/xray-example/description
65 $(call Package/xray/description)
66
67 This includes example configuration files for xray-core.
68 endef
69
70 define Package/xray-geodata/description
71 $(call Package/xray/description)
72
73 This includes GEO datas used for xray-core.
74 endef
75
76 define Package/xray-core/conffiles
77 /etc/xray/
78 /etc/config/xray
79 endef
80
81 GEOIP_VER:=202207140057
82 GEOIP_FILE:=geoip.dat.$(GEOIP_VER)
83 define Download/geoip
84 URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/
85 URL_FILE:=geoip.dat
86 FILE:=$(GEOIP_FILE)
87 HASH:=1c786d10e3a1f84b6088b6d2692cefa7bd34c1b4508de07708f8ecb81ff3cc7c
88 endef
89
90 GEOSITE_VER:=20220717025946
91 GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER)
92 define Download/geosite
93 URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/
94 URL_FILE:=dlc.dat
95 FILE:=$(GEOSITE_FILE)
96 HASH:=f719c27f6fa0f4995702ec03a5642d6ee31a59e3d9a4fe825b6a77479a707f3e
97 endef
98
99 define Build/Prepare
100 $(call Build/Prepare/Default)
101 ifneq ($(CONFIG_PACKAGE_xray-geodata),)
102 $(call Download,geoip)
103 $(call Download,geosite)
104 endif
105 endef
106
107 define Package/xray-core/install
108 $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR))
109 $(INSTALL_DIR) $(1)/usr/bin/
110 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/main $(1)/usr/bin/xray
111
112 $(INSTALL_DIR) $(1)/etc/xray/
113 $(INSTALL_DATA) $(CURDIR)/files/config.json.example $(1)/etc/xray/
114
115 $(INSTALL_DIR) $(1)/etc/config/
116 $(INSTALL_CONF) $(CURDIR)/files/xray.conf $(1)/etc/config/xray
117 $(INSTALL_DIR) $(1)/etc/init.d/
118 $(INSTALL_BIN) $(CURDIR)/files/xray.init $(1)/etc/init.d/xray
119 endef
120
121 define Package/xray-example/install
122 $(INSTALL_DIR) $(1)/etc/xray/
123 $(INSTALL_DATA) $(CURDIR)/files/vpoint_socks_vmess.json $(1)/etc/xray/
124 $(INSTALL_DATA) $(CURDIR)/files/vpoint_vmess_freedom.json $(1)/etc/xray/
125 endef
126
127 define Package/xray-geodata/install
128 $(INSTALL_DIR) $(1)/usr/share/xray/
129 $(INSTALL_DATA) $(DL_DIR)/$(GEOIP_FILE) $(1)/usr/share/xray/geoip.dat
130 $(INSTALL_DATA) $(DL_DIR)/$(GEOSITE_FILE) $(1)/usr/share/xray/geosite.dat
131 endef
132
133 $(eval $(call BuildPackage,xray-core))
134 $(eval $(call BuildPackage,xray-example))
135 $(eval $(call BuildPackage,xray-geodata))