1 # Copyright 2021-2023 Stan Grishin (stangri@melmac.ca)
2 # This is free software, licensed under the Apache 2.0 License.
4 include $(TOPDIR
)/rules.mk
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
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
19 PKG_BUILD_DEPENDS
:=golang
/host
21 PKG_BUILD_FLAGS
:=no-mips16
23 GO_PKG
:=github.com
/slackhq
/nebula
25 github.com
/slackhq
/nebula
/cmd
/nebula \
26 github.com
/slackhq
/nebula
/cmd
/nebula-cert
28 main.Build
=$(PKG_VERSION
)
30 include $(INCLUDE_DIR
)/package.mk
31 include ..
/..
/lang
/golang
/golang-package.mk
33 define Package
/nebula
/Default
36 URL
:=https
://docs.openwrt.melmac.net
/nebula
/
40 $(call Package
/nebula
/Default
)
42 DEPENDS
:=$(GO_ARCH_DEPENDS
) +kmod-tun
45 define Package
/nebula-cert
46 $(call Package
/nebula
/Default
)
48 DEPENDS
:=$(GO_ARCH_DEPENDS
)
51 define Package
/nebula-proto
52 $(call Package
/nebula
/Default
)
55 DEPENDS
+=+!BUSYBOX_DEFAULT_AWK
:gawk
56 DEPENDS
+=+!BUSYBOX_DEFAULT_GREP
:grep
57 DEPENDS
+=+!BUSYBOX_DEFAULT_SED
:sed
61 define Package
/nebula-service
62 $(call Package
/nebula
/Default
)
65 DEPENDS
+=+!BUSYBOX_DEFAULT_AWK
:gawk
66 DEPENDS
+=+!BUSYBOX_DEFAULT_SED
:sed
67 CONFLICTS
:=nebula-proto
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.
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.
82 define Package
/nebula-cert
/description
83 $(call Package
/nebula
/description
/Default
)
84 This package contains only nebula-cert binary.
87 define Package
/nebula-proto
/description
88 $(call Package
/nebula
/description
/Default
)
89 This package contains only OpenWrt protocol
/interface support for nebula.
92 define Package
/nebula-service
/description
93 $(call Package
/nebula
/description
/Default
)
94 This package contains only OpenWrt-specific init.d script for nebula.
97 define Package
/nebula
/conffiles
101 Package
/nebula-cert
/conffiles
= $(Package
/nebula
/conffiles
)
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
/
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
/
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
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
129 $(eval
$(call GoBinPackage
,nebula
))
130 $(eval
$(call BuildPackage
,nebula
))
132 $(eval
$(call GoBinPackage
,nebula-cert
))
133 $(eval
$(call BuildPackage
,nebula-cert
))
135 $(eval
$(call BuildPackage
,nebula-proto
))
137 $(eval
$(call BuildPackage
,nebula-service
))