keepalived: remove file sync handling for ucitrack
[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.8
12 PKG_RELEASE:=6
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=https://www.keepalived.org/software
16 PKG_HASH:=85882eb62974f395d4c631be990a41a839594a7e62fbfebcb5649a937a7a1bb6
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 CONFIG_KEEPALIVED_NFTABLES \
26 CONFIG_KEEPALIVED_VRRP \
27 CONFIG_KEEPALIVED_LVS \
28 CONFIG_KEEPALIVED_IPTABLES \
29 CONFIG_KEEPALIVED_BFD \
30 CONFIG_KEEPALIVED_SNMP_VRRP \
31 CONFIG_KEEPALIVED_SNMP_CHECKER \
32 CONFIG_KEEPALIVED_SNMP_RFC2 \
33 CONFIG_KEEPALIVED_SNMP_RFC3 \
34 CONFIG_KEEPALIVED_SNMP_REPLY_V3_FOR_V2 \
35 CONFIG_KEEPALIVED_DBUS \
36 CONFIG_KEEPALIVED_ROUTES \
37 CONFIG_IPV6
38
39 PKG_INSTALL:=1
40
41 include $(INCLUDE_DIR)/package.mk
42 include $(INCLUDE_DIR)/kernel.mk
43
44 define Package/keepalived/config
45 source "$(SOURCE)/Config.in"
46 endef
47
48 # The +kmod-nf-ipvs line should be +KEEPALIVED_LVS:kmod-nf-ipvs,
49 # but make menuconfig then reports :error: recursive dependency detected!
50 # !!FIXME DEPENDS:= +KEEPALIVED_LVS:kmod-nf-ipvs
51 define Package/keepalived
52 SECTION:=net
53 CATEGORY:=Network
54 TITLE:=VRRP with failover and monitoring daemon for LVS clusters
55 URL:=http://www.keepalived.org/
56 DEPENDS:= \
57 +libnl-genl \
58 +libmagic \
59 +libkmod \
60 +kmod-nf-ipvs \
61 +libjson-c \
62 +KEEPALIVED_NFTABLES:libnftnl \
63 +KEEPALIVED_VRRP:kmod-macvlan \
64 +KEEPALIVED_VRRP:libnl-route \
65 +KEEPALIVED_VRRP:libnfnetlink \
66 +KEEPALIVED_SHA1:libopenssl \
67 +KEEPALIVED_IPTABLES:libip4tc \
68 +KEEPALIVED_IP6TABLES:libip6tc \
69 +KEEPALIVED_IPTABLES:libxtables \
70 +KEEPALIVED_IPTABLES:libipset \
71 +(KEEPALIVED_SNMP_VRRP||KEEPALIVED_SNMP_CHECKER||KEEPALIVED_SNMP_RFC2||KEEPALIVED_SNMP_RFC3):libnetsnmp \
72 +KEEPALIVED_DBUS:glib2
73 endef
74
75 define Package/keepalived/description
76 VRRP with failover and monitoring daemon for Linux Virtual Server (LVS) clusters.
77 endef
78
79 define Package/keepalived/conffiles
80 /etc/keepalived/keepalived.conf
81 /etc/config/keepalived
82 /etc/keepalived.user
83 endef
84
85 CONFIGURE_ARGS+= \
86 --enable-json \
87 --with-init=SYSV \
88 --disable-track-process \
89 --runstatedir="/var/run"
90
91 ifeq ($(CONFIG_KEEPALIVED_VRRP),)
92 CONFIGURE_ARGS += \
93 --disable-vrrp
94 endif
95
96 ifeq ($(CONFIG_KEEPALIVED_LVS),)
97 CONFIGURE_ARGS += \
98 --disable-lvs
99 endif
100
101 ifeq ($(CONFIG_KEEPALIVED_BFD),y)
102 CONFIGURE_ARGS += \
103 --enable-bfd
104 endif
105
106 ifeq ($(CONFIG_KEEPALIVED_SHA1),y)
107 CONFIGURE_ARGS += \
108 --enable-sha1
109 endif
110
111
112 ifeq ($(CONFIG_KEEPALIVED_VRRP),y)
113
114 ifeq ($(CONFIG_KEEPALIVED_NFTABLES),)
115 CONFIGURE_ARGS += \
116 --disable-nftables
117 endif
118
119 ifeq ($(CONFIG_KEEPALIVED_IPTABLES),)
120 CONFIGURE_ARGS += \
121 --disable-iptables
122 endif
123
124 ifeq ($(CONFIG_KEEPALIVED_IPSETS),)
125 CONFIGURE_ARGS += \
126 --disable-libipset-dynamic
127 endif
128
129 ifeq ($(CONFIG_KEEPALIVED_SNMP_VRRP),y)
130 CONFIGURE_ARGS += \
131 --enable-snmp-vrrp
132 endif
133
134 ifeq ($(CONFIG_KEEPALIVED_SNMP_RFC2),y)
135 CONFIGURE_ARGS += \
136 --enable-snmp-rfcv2
137 endif
138
139 ifeq ($(CONFIG_KEEPALIVED_SNMP_RFC3),y)
140 CONFIGURE_ARGS += \
141 --enable-snmp-rfcv3
142 endif
143
144 ifeq ($(CONFIG_KEEPALIVED_SNMP_RFC3),y)
145 ifeq ($(CONFIG_KEEPALIVED_SNMP_REPLY_V3_FOR_V2),)
146 CONFIGURE_ARGS += \
147 --disable-snmp-reply-v3-for-v2
148 endif
149 endif # CONFIG_KEEPALIVED_SNMP_RFC3
150
151 ifeq ($(CONFIG_KEEPALIVED_VRRP_AUTH),)
152 CONFIGURE_ARGS += \
153 --disable-vrrp-auth
154 endif
155
156 ifeq ($(CONFIG_KEEPALIVED_CHECKSUM_COMPAT),)
157 CONFIGURE_ARGS += \
158 --disable-checksum-compat
159 endif
160
161 ifeq ($(CONFIG_KEEPALIVED_DBUS),y)
162 CONFIGURE_ARGS += \
163 --enable-dbus
164 endif
165
166 ifeq ($(CONFIG_KEEPALIVED_LINKBEAT),)
167 CONFIGURE_ARGS += \
168 --disable-linkbeat
169 endif
170
171 ifeq ($(CONFIG_KEEPALIVED_ROUTES),)
172 CONFIGURE_ARGS += \
173 --disable-routes
174 endif
175 endif # CONFIG_KEEPALIVED_VRRP
176
177
178 ifeq ($(CONFIG_KEEPALIVED_LVS),y)
179 ifeq ($(CONFIG_KEEPALIVED_LVS_SYNCD),)
180 CONFIGURE_ARGS += \
181 --disable-lvs-syncd
182 endif
183
184 ifeq ($(CONFIG_KEEPALIVED_LVS_64BIT_STATS),)
185 CONFIGURE_ARGS += \
186 --disable-lvs-64bit-stats
187 endif
188
189 ifeq ($(CONFIG_KEEPALIVED_FWMARK),)
190 CONFIGURE_ARGS += \
191 --disable-fwmark
192 endif
193
194 ifeq ($(CONFIG_KEEPALIVED_SNMP_CHECKER),y)
195 CONFIGURE_ARGS += \
196 --enable-snmp-checker
197 endif
198
199 endif # CONFIG_KEEPALIVED_LVS
200
201
202 MAKE_FLAGS += STRIP="/bin/true"
203 TARGET_CFLAGS += -I$(LINUX_DIR)
204
205 define Package/keepalived/install
206 $(INSTALL_DIR) $(1)/usr/sbin
207 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/keepalived \
208 $(1)/usr/sbin/
209
210 ifeq ($(CONFIG_KEEPALIVED_LVS),y)
211 $(INSTALL_DIR) $(1)/usr/bin
212 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/genhash \
213 $(1)/usr/bin/
214 endif
215
216 $(INSTALL_DIR) $(1)/etc/keepalived
217 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/keepalived/keepalived.conf.sample \
218 $(1)/etc/keepalived/keepalived.conf
219
220 $(INSTALL_DIR) $(1)/etc/uci-defaults
221 $(INSTALL_BIN) ./files/etc/uci-defaults/keepalived \
222 $(1)/etc/uci-defaults/keepalived
223
224 $(INSTALL_DIR) $(1)/etc/init.d
225 $(INSTALL_BIN) ./files/keepalived.init \
226 $(1)/etc/init.d/keepalived
227
228 $(INSTALL_DIR) $(1)/etc/config
229 $(INSTALL_CONF) ./files/keepalived.config \
230 $(1)/etc/config/keepalived
231
232 $(INSTALL_DIR) $(1)/etc
233 $(INSTALL_CONF) ./files/keepalived.user \
234 $(1)/etc/keepalived.user
235
236 $(INSTALL_DIR) $(1)/etc/hotplug.d/keepalived
237 $(INSTALL_DATA) ./files/hotplug-user \
238 $(1)/etc/hotplug.d/keepalived/01-user
239
240 $(INSTALL_DIR) $(1)/usr/libexec/rpcd
241 $(INSTALL_BIN) ./files/usr/libexec/rpcd/keepalived \
242 $(1)/usr/libexec/rpcd/keepalived
243
244 ifneq ($(CONFIG_KEEPALIVED_SNMP_VRRP)$(CONFIG_KEEPALIVED_SNMP_CHECKER)$(CONFIG_KEEPALIVED_SNMP_RFC2)$(CONFIG_KEEPALIVED_SNMP_RFC3),)
245 $(INSTALL_DIR) $(1)/usr/share/snmp/mibs
246 endif
247
248 ifneq ($(CONFIG_KEEPALIVED_SNMP_VRRP)$(CONFIG_KEEPALIVED_SNMP_CHECKER),)
249 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/snmp/mibs/KEEPALIVED-MIB.txt \
250 $(1)/usr/share/snmp/mibs/KEEPALIVED-MIB.txt
251 endif
252
253 ifeq ($(CONFIG_KEEPALIVED_SNMP_RFC2),y)
254 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/snmp/mibs/VRRP-MIB.txt \
255 $(1)/usr/share/snmp/mibs/VRRP-MIB.txt
256 endif
257
258 ifeq ($(CONFIG_KEEPALIVED_SNMP_RFC3),y)
259 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/snmp/mibs/VRRPv3-MIB.txt \
260 $(1)/usr/share/snmp/mibs/VRRPv3-MIB.txt
261 endif
262
263 ifeq ($(CONFIG_KEEPALIVED_DBUS),y)
264 $(INSTALL_DIR) $(1)/etc/dbus-1/system.d
265 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/dbus-1/system.d/org.keepalived.Vrrp1.conf \
266 $(1)/etc/dbus-1/system.d/org.keepalived.Vrrp1.conf
267
268 $(INSTALL_DIR) $(1)/usr/share/dbus-1/interfaces
269 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/dbus-1/interfaces/org.keepalived.Vrrp1.Instance.xml \
270 $(1)/usr/share/dbus-1/interfaces/org.keepalived.Vrrp1.Instance.xml
271 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/dbus-1/interfaces/org.keepalived.Vrrp1.Vrrp.xml \
272 $(1)/usr/share/dbus-1/interfaces/org.keepalived.Vrrp1.Vrrp.xml
273 endif
274
275 endef
276
277 define Package/keepalived-sync
278 SECTION:=net
279 CATEGORY:=Network
280 TITLE:=Keepalived Master and Backup Synchronization
281 DEPENDS:= +keepalived +rsync +inotifywait +sudo +coreutils-timeout
282 endef
283
284 define Package/keepalived-sync/description
285 Keepalived HA with Master to Backup files and data Synchronization
286 endef
287
288 define Package/keepalived-sync/conffiles
289 /etc/keepalived/scripts
290 /etc/keepalived/keys
291 endef
292
293 define Package/keepalived-sync/install
294 $(INSTALL_DIR) $(1)/etc/init.d
295 $(INSTALL_BIN) ./files/etc/init.d/keepalived-inotify \
296 $(1)/etc/init.d/keepalived-inotify
297
298 $(INSTALL_DIR) $(1)/usr/share/keepalived/scripts
299 $(INSTALL_BIN) ./files/usr/share/keepalived/scripts/rsync.sh \
300 $(1)/usr/share/keepalived/scripts/rsync.sh
301
302 $(INSTALL_DIR) $(1)/etc/keepalived/scripts
303 $(LN) /usr/share/keepalived/scripts/rsync.sh \
304 $(1)/etc/keepalived/scripts/rsync.sh
305
306 $(INSTALL_DIR) $(1)/usr/bin
307 $(INSTALL_BIN) ./files/usr/bin/keepalived-rsync-inotify \
308 $(1)/usr/bin/keepalived-rsync-inotify
309
310 $(INSTALL_DIR) $(1)/lib/functions/keepalived
311 $(INSTALL_DATA) ./files/lib/functions/keepalived/hotplug.sh \
312 $(1)/lib/functions/keepalived/hotplug.sh
313 $(INSTALL_DATA) ./files/lib/functions/keepalived/common.sh \
314 $(1)/lib/functions/keepalived/common.sh
315
316 $(INSTALL_DIR) $(1)/usr/libexec/keepalived/rpc
317 $(INSTALL_DATA) ./files/usr/libexec/keepalived/rpc/sync.sh \
318 $(1)/usr/libexec/keepalived/rpc/sync.sh
319
320 $(INSTALL_DIR) $(1)/etc/hotplug.d/keepalived
321 $(CP) ./files/etc/hotplug.d/keepalived/* \
322 $(1)/etc/hotplug.d/keepalived
323 endef
324
325 USER=keepalived
326 USER_ID=60001
327 USER_HOME=/usr/share/keepalived/rsync
328 SUDO_DIR=/etc/sudoers.d
329 SUDO_FILE=$(SUDO_DIR)/$(USER)
330 KEYS_DIR=/etc/keepalived/keys
331
332 define Package/keepalived-sync/postinst
333 #!/bin/sh
334
335 mkdir -p "$${IPKG_INSTROOT}/etc/uci-defaults"
336 DEFAULT_SCRIPT="$${IPKG_INSTROOT}/etc/uci-defaults/99-keepalived-sync"
337
338 cat << EOF > $${DEFAULT_SCRIPT}
339 #!/bin/sh
340
341 . /lib/functions.sh
342
343 mkdir -p $(KEYS_DIR)
344
345 group_add "$(USER)" "$(USER_ID)"
346 user_add "$(USER)" "$(USER_ID)" "$(USER_ID)" "$(USER)" "$(USER_HOME)" "/bin/ash"
347
348 mkdir -m 700 -p "$(USER_HOME)"
349 mkdir -m 700 -p "$(USER_HOME)/.ssh"
350 chown "$(USER)":"$(USER)" "$(USER_HOME)" -R
351
352 [ ! -d "$(SUDO_DIR)" ] && mkdir "$(SUDO_DIR)"
353 echo "$(USER) ALL= NOPASSWD:/usr/bin/rsync" > "$(SUDO_FILE)"
354 EOF
355
356 [ -z "$${IPKG_INSTROOT}" ] && [ -f "$${DEFAULT_SCRIPT}" ] && sh "$${DEFAULT_SCRIPT}"
357
358 exit 0
359 endef
360
361 define Package/keepalived-sync/postrm
362 #!/bin/sh
363
364 [ -n "$${IPKG_INSTROOT}" ] && exit 0
365
366 [ -d "$(KEYS_DIR)" ] && rm -rf "$(KEYS_DIR)"
367 [ -d "$(USER_HOME)" ] && rm -rf "$(USER_HOME)"
368 [ -f "$(SUDO_FILE)" ] && rm -f "$(SUDO_FILE)"
369
370 sed -i -e "/^$(USER):/d" /etc/passwd /etc/shadow /etc/group
371
372 exit 0
373 endef
374
375 $(eval $(call BuildPackage,keepalived))
376 $(eval $(call BuildPackage,keepalived-sync))