crowdsec-firewall-bouncer: update to 0.0.25
[feed/packages.git] / net / crowdsec-firewall-bouncer / Makefile
1 # SPDX-License-Identifier: MIT
2 #
3 # Copyright (C) 2021-2022 Gerald Kerma <gandalf@gk2.net>
4 #
5
6 include $(TOPDIR)/rules.mk
7
8 PKG_NAME:=crowdsec-firewall-bouncer
9 PKG_VERSION:=0.0.25
10 PKG_RELEASE:=1
11
12 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
13 PKG_SOURCE_URL:=https://codeload.github.com/crowdsecurity/cs-firewall-bouncer/tar.gz/v$(PKG_VERSION)?
14 PKG_HASH:=15ffaa38644215a4cf5e5d5d3a6fc6f0800057bc55d4bd25778d8e952679506e
15
16 PKG_LICENSE:=MIT
17 PKG_LICENSE_FILES:=LICENSE
18 PKG_MAINTAINER:=Gerald Kerma <gandalf@gk2.net>
19
20 PKG_BUILD_DEPENDS:=golang/host
21 PKG_BUILD_PARALLEL:=1
22 PKG_USE_MIPS16:=0
23 PKG_BUILD_DIR:=$(BUILD_DIR)/cs-firewall-bouncer-$(PKG_VERSION)
24
25 CSFB_BUILD_VERSION?=v$(PKG_VERSION)
26 CSFB_BUILD_GOVERSION:=$(shell go version | cut -d " " -f3 | sed -E 's/[go]+//g')
27 CSFB_BUILD_TIMESTAMP:=$(shell date +%F"_"%T)
28 CSFB_BUILD_TAG:=openwrt-$(PKG_VERSION)-$(PKG_RELEASE)
29 CSFB_VERSION_PKG:=github.com/crowdsecurity/cs-firewall-bouncer/pkg/version
30
31 GO_PKG:=github.com/crowdsecurity/cs-firewall-bouncer
32 GO_PKG_INSTALL_ALL:=1
33 GO_PKG_LDFLAGS_X:=$(CSFB_VERSION_PKG).Version=$(CSFB_BUILD_VERSION) \
34 $(CSFB_VERSION_PKG).BuildDate=$(CSFB_BUILD_TIMESTAMP) \
35 $(CSFB_VERSION_PKG).Tag=$(CSFB_BUILD_TAG) \
36 $(CSFB_VERSION_PKG).GoVersion=$(CSFB_BUILD_GOVERSION)
37
38 include $(INCLUDE_DIR)/package.mk
39 include ../../lang/golang/golang-package.mk
40
41 define Package/crowdsec-firewall-bouncer/Default
42 SECTION:=net
43 CATEGORY:=Network
44 TITLE:=Firewall bouncer for Crowdsec
45 URL:=https://github.com/crowdsecurity/cs-firewall-bouncer/
46 endef
47
48 define Package/crowdsec-firewall-bouncer
49 $(call Package/crowdsec-firewall-bouncer/Default)
50 DEPENDS:=$(GO_ARCH_DEPENDS)
51 endef
52
53 define Package/golang-crowdsec-firewall-bouncer-dev
54 $(call Package/crowdsec-firewall-bouncer/Default)
55 $(call GoPackage/GoSubMenu)
56 TITLE+= (source files)
57 DEPENDS:=$(GO_ARCH_DEPENDS)
58 PKGARCH:=all
59 endef
60
61 define Package/crowdsec-firewall-bouncer/Default/description
62 Crowdsec bouncer written in golang for firewalls.
63
64 crowdsec-firewall-bouncer will fetch new and old decisions
65 from a CrowdSec API to add them in a blocklist used by supported firewalls.
66
67 You must install nftables.
68 endef
69
70 define Package/crowdsec-firewall-bouncer/description
71 $(call Package/crowdsec-firewall-bouncer/Default/description)
72
73 This package contains the main program.
74 endef
75
76 define Package/golang-crowdsec-firewall-bouncer-dev/description
77 $(call Package/crowdsec-firewall-bouncer/Default/description)
78
79 This package provides the source files for the program.
80 endef
81
82 define Package/crowdsec-firewall-bouncer/install
83 $(call GoPackage/Package/Install/Bin,$(1))
84
85 $(INSTALL_DIR) $(1)/etc/config
86 $(INSTALL_CONF) ./files/crowdsec.config $(1)/etc/config/crowdsec
87
88 $(INSTALL_DIR) $(1)/etc/init.d
89 $(INSTALL_BIN) ./files/crowdsec-firewall-bouncer.initd $(1)/etc/init.d/crowdsec-firewall-bouncer
90 endef
91
92 define Package/crowdsec-firewall-bouncer/conffiles
93 /etc/config/crowdsec
94 endef
95
96 $(eval $(call GoBinPackage,crowdsec-firewall-bouncer))
97 $(eval $(call BuildPackage,crowdsec-firewall-bouncer))