keepalived: enable nftables filtering
[feed/packages.git] / net / keepalived / Makefile
1 #
2 # Copyright (C) 2006-2015 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=keepalived
11 PKG_VERSION:=2.2.7
12 PKG_RELEASE:=$(AUTORELEASE)
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=https://www.keepalived.org/software
16 PKG_HASH:=c61940d874154a560a54627ecf7ef47adebdf832164368d10bf242a4d9b7d49d
17
18 PKG_CPE_ID:=cpe:/a:keepalived:keepalived
19 PKG_LICENSE:=GPL-2.0-or-later
20 PKG_LICENSE_FILES:=COPYING
21 PKG_MAINTAINER:=Ben Kelly <ben@benjii.net> \
22 Florian Eckert <fe@dev.tdt.de>
23
24 PKG_CONFIG_DEPENDS += \
25 KEEPALIVED_NFTABLES \
26 KEEPALIVED_VRRP \
27 KEEPALIVED_LVS \
28 KEEPALIVED_IPTABLES \
29 KEEPALIVED_BFD \
30 KEEPALIVED_SNMP_VRRP \
31 KEEPALIVED_SNMP_CHECKER \
32 KEEPALIVED_SNMP_RFC2 \
33 KEEPALIVED_SNMP_RFC3 \
34 KEEPALIVED_SNMP_REPLY_V3_FOR_V2 \
35 KEEPALIVED_DBUS \
36 KEEPALIVED_JSON \
37 KEEPALIVED_ROUTES \
38 IPV6
39
40 PKG_INSTALL:=1
41
42 include $(INCLUDE_DIR)/package.mk
43 include $(INCLUDE_DIR)/kernel.mk
44
45 define Package/keepalived/config
46 source "$(SOURCE)/Config.in"
47 endef
48
49 # specifying +(IPV6&&KEEPALIVED_IPTABLES) in the DEPENDS definition doesn't work
50 ifeq ($(CONFIG_KEEPALIVED_IPTABLES)$(CONFIG_IPV6),yy)
51 KEEPALIVED_DEPENDS_LIBIP6TC=+libip6tc
52 endif
53
54 # The +kmod-nf-ipvs line should be +KEEPALIVED_LVS:kmod-nf-ipvs,
55 # but make menuconfig then reports :error: recursive dependency detected!
56 # !!FIXME DEPENDS:= +KEEPALIVED_LVS:kmod-nf-ipvs
57 define Package/keepalived
58 SECTION:=net
59 CATEGORY:=Network
60 TITLE:=VRRP with failover and monitoring daemon for LVS clusters
61 URL:=http://www.keepalived.org/
62 DEPENDS:= \
63 +libnl-genl \
64 +libmagic \
65 +libkmod \
66 +KEEPALIVED_NFTABLES:libnftnl \
67 +KEEPALIVED_VRRP:kmod-macvlan \
68 +KEEPALIVED_VRRP:libnl-route \
69 +KEEPALIVED_VRRP:libnfnetlink \
70 +KEEPALIVED_SHA1:libopenssl \
71 +KEEPALIVED_IPTABLES:libip4tc \
72 $(KEEPALIVED_DEPENDS_LIBIP6TC) \
73 +KEEPALIVED_IPTABLES:libxtables \
74 +KEEPALIVED_IPTABLES:libipset \
75 +(KEEPALIVED_SNMP_VRRP||KEEPALIVED_SNMP_CHECKER||KEEPALIVED_SNMP_RFC2||KEEPALIVED_SNMP_RFC3):libnetsnmp \
76 +KEEPALIVED_JSON:libjson-c \
77 +KEEPALIVED_DBUS:glib2
78 endef
79
80 define Package/keepalived/description
81 VRRP with failover and monitoring daemon for Linux Virtual Server (LVS) clusters.
82 endef
83
84 define Package/keepalived/conffiles
85 /etc/keepalived/keepalived.conf
86 /etc/config/keepalived
87 /etc/keepalived.user
88 endef
89
90 CONFIGURE_ARGS+= \
91 --with-init=SYSV \
92 --disable-track-process \
93 --runstatedir="/var/run"
94
95 ifeq ($(CONFIG_KEEPALIVED_VRRP),)
96 CONFIGURE_ARGS += \
97 --disable-vrrp
98 endif
99
100 ifeq ($(CONFIG_KEEPALIVED_LVS),)
101 CONFIGURE_ARGS += \
102 --disable-lvs
103 endif
104
105 ifeq ($(CONFIG_KEEPALIVED_BFD),y)
106 CONFIGURE_ARGS += \
107 --enable-bfd
108 endif
109
110 ifeq ($(CONFIG_KEEPALIVED_SHA1),y)
111 CONFIGURE_ARGS += \
112 --enable-sha1
113 endif
114
115
116 ifeq ($(CONFIG_KEEPALIVED_VRRP),y)
117
118 ifeq ($(CONFIG_KEEPALIVED_NFTABLES),)
119 CONFIGURE_ARGS += \
120 --disable-nftables
121 endif
122
123 ifeq ($(CONFIG_KEEPALIVED_IPTABLES),)
124 CONFIGURE_ARGS += \
125 --disable-iptables
126 endif
127
128 ifeq ($(CONFIG_KEEPALIVED_IPSETS),)
129 CONFIGURE_ARGS += \
130 --disable-libipset-dynamic
131 endif
132
133 ifeq ($(CONFIG_KEEPALIVED_SNMP_VRRP),y)
134 CONFIGURE_ARGS += \
135 --enable-snmp-vrrp
136 endif
137
138 ifeq ($(CONFIG_KEEPALIVED_SNMP_RFC2),y)
139 CONFIGURE_ARGS += \
140 --enable-snmp-rfcv2
141 endif
142
143 ifeq ($(CONFIG_KEEPALIVED_SNMP_RFC3),y)
144 CONFIGURE_ARGS += \
145 --enable-snmp-rfcv3
146 endif
147
148 ifeq ($(CONFIG_KEEPALIVED_SNMP_RFC3),y)
149 ifeq ($(CONFIG_KEEPALIVED_SNMP_REPLY_V3_FOR_V2),)
150 CONFIGURE_ARGS += \
151 --disable-snmp-reply-v3-for-v2
152 endif
153 endif # CONFIG_KEEPALIVED_SNMP_RFC3
154
155 ifeq ($(CONFIG_KEEPALIVED_JSON),y)
156 CONFIGURE_ARGS += \
157 --enable-json
158 endif
159
160 ifeq ($(CONFIG_KEEPALIVED_VRRP_AUTH),)
161 CONFIGURE_ARGS += \
162 --disable-vrrp-auth
163 endif
164
165 ifeq ($(CONFIG_KEEPALIVED_CHECKSUM_COMPAT),)
166 CONFIGURE_ARGS += \
167 --disable-checksum-compat
168 endif
169
170 ifeq ($(CONFIG_KEEPALIVED_DBUS),y)
171 CONFIGURE_ARGS += \
172 --enable-dbus
173 endif
174
175 ifeq ($(CONFIG_KEEPALIVED_LINKBEAT),)
176 CONFIGURE_ARGS += \
177 --disable-linkbeat
178 endif
179
180 ifeq ($(CONFIG_KEEPALIVED_ROUTES),)
181 CONFIGURE_ARGS += \
182 --disable-routes
183 endif
184 endif # CONFIG_KEEPALIVED_VRRP
185
186
187 ifeq ($(CONFIG_KEEPALIVED_LVS),y)
188 ifeq ($(CONFIG_KEEPALIVED_LVS_SYNCD),)
189 CONFIGURE_ARGS += \
190 --disable-lvs-syncd
191 endif
192
193 ifeq ($(CONFIG_KEEPALIVED_LVS_64BIT_STATS),)
194 CONFIGURE_ARGS += \
195 --disable-lvs-64bit-stats
196 endif
197
198 ifeq ($(CONFIG_KEEPALIVED_FWMARK),)
199 CONFIGURE_ARGS += \
200 --disable-fwmark
201 endif
202
203 ifeq ($(CONFIG_KEEPALIVED_SNMP_CHECKER),y)
204 CONFIGURE_ARGS += \
205 --enable-snmp-checker
206 endif
207
208 endif # CONFIG_KEEPALIVED_LVS
209
210
211 MAKE_FLAGS += STRIP="/bin/true"
212 TARGET_CFLAGS += -I$(LINUX_DIR)
213
214 define Package/keepalived/install
215 $(INSTALL_DIR) $(1)/usr/sbin
216 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/keepalived \
217 $(1)/usr/sbin/
218
219 ifeq ($(CONFIG_KEEPALIVED_LVS),y)
220 $(INSTALL_DIR) $(1)/usr/bin
221 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/genhash \
222 $(1)/usr/bin/
223 endif
224
225 $(INSTALL_DIR) $(1)/etc/keepalived
226 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/keepalived/keepalived.conf.sample \
227 $(1)/etc/keepalived/keepalived.conf
228
229 $(INSTALL_DIR) $(1)/etc/uci-defaults
230 $(INSTALL_BIN) ./files/etc/uci-defaults/keepalived \
231 $(1)/etc/uci-defaults/keepalived
232
233 $(INSTALL_DIR) $(1)/etc/init.d
234 $(INSTALL_BIN) ./files/keepalived.init \
235 $(1)/etc/init.d/keepalived
236
237 $(INSTALL_DIR) $(1)/etc/config
238 $(INSTALL_CONF) ./files/keepalived.config \
239 $(1)/etc/config/keepalived
240
241 $(INSTALL_DIR) $(1)/etc
242 $(INSTALL_CONF) ./files/keepalived.user \
243 $(1)/etc/keepalived.user
244
245 $(INSTALL_DIR) $(1)/etc/hotplug.d/keepalived
246 $(INSTALL_DATA) ./files/hotplug-user \
247 $(1)/etc/hotplug.d/keepalived/01-user
248
249 ifneq ($(CONFIG_KEEPALIVED_SNMP_VRRP)$(CONFIG_KEEPALIVED_SNMP_CHECKER)$(CONFIG_KEEPALIVED_SNMP_RFC2)$(CONFIG_KEEPALIVED_SNMP_RFC3),)
250 $(INSTALL_DIR) $(1)/usr/share/snmp/mibs
251 endif
252
253 ifneq ($(CONFIG_KEEPALIVED_SNMP_VRRP)$(CONFIG_KEEPALIVED_SNMP_CHECKER),)
254 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/snmp/mibs/KEEPALIVED-MIB.txt \
255 $(1)/usr/share/snmp/mibs/KEEPALIVED-MIB.txt
256 endif
257
258 ifeq ($(CONFIG_KEEPALIVED_SNMP_RFC2),y)
259 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/snmp/mibs/VRRP-MIB.txt \
260 $(1)/usr/share/snmp/mibs/VRRP-MIB.txt
261 endif
262
263 ifeq ($(CONFIG_KEEPALIVED_SNMP_RFC3),y)
264 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/snmp/mibs/VRRPv3-MIB.txt \
265 $(1)/usr/share/snmp/mibs/VRRPv3-MIB.txt
266 endif
267
268 ifeq ($(CONFIG_KEEPALIVED_DBUS),y)
269 $(INSTALL_DIR) $(1)/etc/dbus-1/system.d
270 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/dbus-1/system.d/org.keepalived.Vrrp1.conf \
271 $(1)/etc/dbus-1/system.d/org.keepalived.Vrrp1.conf
272
273 $(INSTALL_DIR) $(1)/usr/share/dbus-1/interfaces
274 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/dbus-1/interfaces/org.keepalived.Vrrp1.Instance.xml \
275 $(1)/usr/share/dbus-1/interfaces/org.keepalived.Vrrp1.Instance.xml
276 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/dbus-1/interfaces/org.keepalived.Vrrp1.Vrrp.xml \
277 $(1)/usr/share/dbus-1/interfaces/org.keepalived.Vrrp1.Vrrp.xml
278 endif
279
280 endef
281
282 $(eval $(call BuildPackage,keepalived))