nebula: update to 1.8.2-2
[feed/packages.git] / net / nebula / Makefile
1 # Copyright 2021-2023 Stan Grishin (stangri@melmac.ca)
2 # This is free software, licensed under the Apache 2.0 License.
3
4 include $(TOPDIR)/rules.mk
5
6 PKG_NAME:=nebula
7 PKG_VERSION:=1.8.2
8 PKG_RELEASE:=2
9
10 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
11 PKG_SOURCE_URL:=https://codeload.github.com/slackhq/nebula/tar.gz/v$(PKG_VERSION)?
12 PKG_HASH:=203713c58d0ec8a10df2f605af791a77a33f825454911ac3a5313ced591547fd
13
14 PKG_MAINTAINER:=Stan Grishin <stangri@melmac.ca>
15 PKG_LICENSE:=Apache-2.0
16 PKG_LICENSE_FILES:=LICENSE
17 PKG_CPE_ID:=cpe:/a:slack:nebula
18
19 PKG_BUILD_DEPENDS:=golang/host
20 PKG_BUILD_PARALLEL:=1
21 PKG_BUILD_FLAGS:=no-mips16
22
23 GO_PKG:=github.com/slackhq/nebula
24 GO_PKG_BUILD_PKG:= \
25 github.com/slackhq/nebula/cmd/nebula \
26 github.com/slackhq/nebula/cmd/nebula-cert
27 GO_PKG_LDFLAGS_X:=\
28 main.Build=$(PKG_VERSION)
29
30 include $(INCLUDE_DIR)/package.mk
31 include ../../lang/golang/golang-package.mk
32
33 define Package/nebula/Default
34 SECTION:=net
35 CATEGORY:=Network
36 URL:=https://docs.openwrt.melmac.net/nebula/
37 endef
38
39 define Package/nebula
40 $(call Package/nebula/Default)
41 TITLE:=nebula
42 DEPENDS:=$(GO_ARCH_DEPENDS) +kmod-tun
43 endef
44
45 define Package/nebula-cert
46 $(call Package/nebula/Default)
47 TITLE:=nebula-cert
48 DEPENDS:=$(GO_ARCH_DEPENDS)
49 endef
50
51 define Package/nebula-proto
52 $(call Package/nebula/Default)
53 TITLE:=nebula-proto
54 DEPENDS:=nebula
55 DEPENDS+=+!BUSYBOX_DEFAULT_AWK:gawk
56 DEPENDS+=+!BUSYBOX_DEFAULT_GREP:grep
57 DEPENDS+=+!BUSYBOX_DEFAULT_SED:sed
58 PKGARCH:=all
59 endef
60
61 define Package/nebula-service
62 $(call Package/nebula/Default)
63 TITLE:=nebula-service
64 DEPENDS:=nebula
65 DEPENDS+=+!BUSYBOX_DEFAULT_AWK:gawk
66 DEPENDS+=+!BUSYBOX_DEFAULT_SED:sed
67 CONFLICTS:=nebula-proto
68 PKGARCH:=all
69 endef
70
71 define Package/nebula/description/Default
72 Nebula is a scalable overlay networking tool with a focus on performance, simplicity
73 and security. It lets you seamlessly connect computers anywhere in the world.
74 endef
75
76 define Package/nebula/description
77 $(call Package/nebula/description/Default)
78 This package contains only nebula binary. Unless you want to start nebula manually,
79 you may want to also install *either* 'nebula-service' *or* 'nebula-proto' package.
80 endef
81
82 define Package/nebula-cert/description
83 $(call Package/nebula/description/Default)
84 This package contains only nebula-cert binary.
85 endef
86
87 define Package/nebula-proto/description
88 $(call Package/nebula/description/Default)
89 This package contains only OpenWrt protocol/interface support for nebula.
90 endef
91
92 define Package/nebula-service/description
93 $(call Package/nebula/description/Default)
94 This package contains only OpenWrt-specific init.d script for nebula.
95 endef
96
97 define Package/nebula/conffiles
98 /etc/nebula/
99 endef
100
101 Package/nebula-cert/conffiles = $(Package/nebula/conffiles)
102
103 define Package/nebula/install
104 $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR))
105 $(INSTALL_DIR) $(1)/usr/sbin
106 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/nebula $(1)/usr/sbin/
107 endef
108
109 define Package/nebula-cert/install
110 $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR))
111 $(INSTALL_DIR) $(1)/usr/sbin
112 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/nebula-cert $(1)/usr/sbin/
113 endef
114
115 define Package/nebula-proto/install
116 $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR))
117 $(INSTALL_DIR) $(1)/lib/netifd/proto
118 $(INSTALL_BIN) ./files/nebula.proto $(1)/lib/netifd/proto/nebula.sh
119 $(SED) "s|^\(readonly PKG_VERSION\).*|\1='$(PKG_VERSION)-$(PKG_RELEASE)'|" $(1)/lib/netifd/proto/nebula.sh
120 endef
121
122 define Package/nebula-service/install
123 $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR))
124 $(INSTALL_DIR) $(1)/etc/init.d
125 $(INSTALL_BIN) ./files/nebula.init $(1)/etc/init.d/nebula
126 $(SED) "s|^\(readonly PKG_VERSION\).*|\1='$(PKG_VERSION)-$(PKG_RELEASE)'|" $(1)/etc/init.d/nebula
127 endef
128
129 $(eval $(call GoBinPackage,nebula))
130 $(eval $(call BuildPackage,nebula))
131
132 $(eval $(call GoBinPackage,nebula-cert))
133 $(eval $(call BuildPackage,nebula-cert))
134
135 $(eval $(call BuildPackage,nebula-proto))
136
137 $(eval $(call BuildPackage,nebula-service))