2 # Copyright (C) 2006-2015 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
14 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
).
tar.gz
15 PKG_SOURCE_URL
:=https
://www.keepalived.org
/software
16 PKG_HASH
:=85882eb62974f395d4c631be990a41a839594a7e62fbfebcb5649a937a7a1bb6
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
>
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 \
41 include $(INCLUDE_DIR
)/package.mk
42 include $(INCLUDE_DIR
)/kernel.mk
44 define Package
/keepalived
/config
45 source
"$(SOURCE)/Config.in"
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
54 TITLE
:=VRRP with failover and monitoring daemon for LVS clusters
55 URL
:=http
://www.keepalived.org
/
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
75 define Package
/keepalived
/description
76 VRRP with failover and monitoring daemon for Linux Virtual Server
(LVS
) clusters.
79 define Package
/keepalived
/conffiles
80 /etc
/keepalived
/keepalived.conf
81 /etc
/config
/keepalived
88 --disable-track-process \
89 --runstatedir
="/var/run"
91 ifeq ($(CONFIG_KEEPALIVED_VRRP
),)
96 ifeq ($(CONFIG_KEEPALIVED_LVS
),)
101 ifeq ($(CONFIG_KEEPALIVED_BFD
),y
)
106 ifeq ($(CONFIG_KEEPALIVED_SHA1
),y
)
112 ifeq ($(CONFIG_KEEPALIVED_VRRP
),y
)
114 ifeq ($(CONFIG_KEEPALIVED_NFTABLES
),)
119 ifeq ($(CONFIG_KEEPALIVED_IPTABLES
),)
124 ifeq ($(CONFIG_KEEPALIVED_IPSETS
),)
126 --disable-libipset-dynamic
129 ifeq ($(CONFIG_KEEPALIVED_SNMP_VRRP
),y
)
134 ifeq ($(CONFIG_KEEPALIVED_SNMP_RFC2
),y
)
139 ifeq ($(CONFIG_KEEPALIVED_SNMP_RFC3
),y
)
144 ifeq ($(CONFIG_KEEPALIVED_SNMP_RFC3
),y
)
145 ifeq ($(CONFIG_KEEPALIVED_SNMP_REPLY_V3_FOR_V2
),)
147 --disable-snmp-reply-v3-for-v2
149 endif # CONFIG_KEEPALIVED_SNMP_RFC3
151 ifeq ($(CONFIG_KEEPALIVED_VRRP_AUTH
),)
156 ifeq ($(CONFIG_KEEPALIVED_CHECKSUM_COMPAT
),)
158 --disable-checksum-compat
161 ifeq ($(CONFIG_KEEPALIVED_DBUS
),y
)
166 ifeq ($(CONFIG_KEEPALIVED_LINKBEAT
),)
171 ifeq ($(CONFIG_KEEPALIVED_ROUTES
),)
175 endif # CONFIG_KEEPALIVED_VRRP
178 ifeq ($(CONFIG_KEEPALIVED_LVS
),y
)
179 ifeq ($(CONFIG_KEEPALIVED_LVS_SYNCD
),)
184 ifeq ($(CONFIG_KEEPALIVED_LVS_64BIT_STATS
),)
186 --disable-lvs-64bit-stats
189 ifeq ($(CONFIG_KEEPALIVED_FWMARK
),)
194 ifeq ($(CONFIG_KEEPALIVED_SNMP_CHECKER
),y
)
196 --enable-snmp-checker
199 endif # CONFIG_KEEPALIVED_LVS
202 MAKE_FLAGS
+= STRIP
="/bin/true"
203 TARGET_CFLAGS
+= -I
$(LINUX_DIR
)
205 define Package
/keepalived
/install
206 $(INSTALL_DIR
) $(1)/usr
/sbin
207 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/sbin
/keepalived \
210 ifeq ($(CONFIG_KEEPALIVED_LVS
),y
)
211 $(INSTALL_DIR
) $(1)/usr
/bin
212 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/bin
/genhash \
216 $(INSTALL_DIR
) $(1)/etc
/keepalived
217 $(INSTALL_CONF
) $(PKG_INSTALL_DIR
)/etc
/keepalived
/keepalived.conf.sample \
218 $(1)/etc
/keepalived
/keepalived.conf
220 $(INSTALL_DIR
) $(1)/etc
/uci-defaults
221 $(INSTALL_BIN
) .
/files
/etc
/uci-defaults
/keepalived \
222 $(1)/etc
/uci-defaults
/keepalived
224 $(INSTALL_DIR
) $(1)/etc
/init.d
225 $(INSTALL_BIN
) .
/files
/keepalived.init \
226 $(1)/etc
/init.d
/keepalived
228 $(INSTALL_DIR
) $(1)/etc
/config
229 $(INSTALL_CONF
) .
/files
/keepalived.config \
230 $(1)/etc
/config
/keepalived
232 $(INSTALL_DIR
) $(1)/etc
233 $(INSTALL_CONF
) .
/files
/keepalived.user \
234 $(1)/etc
/keepalived.user
236 $(INSTALL_DIR
) $(1)/etc
/hotplug.d
/keepalived
237 $(INSTALL_DATA
) .
/files
/hotplug-user \
238 $(1)/etc
/hotplug.d
/keepalived
/01-user
240 $(INSTALL_DIR
) $(1)/usr
/libexec
/rpcd
241 $(INSTALL_BIN
) .
/files
/usr
/libexec
/rpcd
/keepalived \
242 $(1)/usr
/libexec
/rpcd
/keepalived
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
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
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
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
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
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
277 define Package
/keepalived-sync
280 TITLE
:=Keepalived Master and Backup Synchronization
281 DEPENDS
:= +keepalived
+rsync
+inotifywait
+sudo
+coreutils-timeout
284 define Package
/keepalived-sync
/description
285 Keepalived HA with Master to Backup files and data Synchronization
288 define Package
/keepalived-sync
/conffiles
289 /etc
/keepalived
/scripts
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
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
302 $(INSTALL_DIR
) $(1)/etc
/keepalived
/scripts
303 $(LN
) /usr
/share
/keepalived
/scripts
/rsync.sh \
304 $(1)/etc
/keepalived
/scripts
/rsync.sh
306 $(INSTALL_DIR
) $(1)/usr
/bin
307 $(INSTALL_BIN
) .
/files
/usr
/bin
/keepalived-rsync-inotify \
308 $(1)/usr
/bin
/keepalived-rsync-inotify
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
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
320 $(INSTALL_DIR
) $(1)/etc
/hotplug.d
/keepalived
321 $(CP
) .
/files
/etc
/hotplug.d
/keepalived
/* \
322 $(1)/etc
/hotplug.d
/keepalived
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
332 define Package
/keepalived-sync
/postinst
335 mkdir
-p
"$${IPKG_INSTROOT}/etc/uci-defaults"
336 DEFAULT_SCRIPT
="$${IPKG_INSTROOT}/etc/uci-defaults/99-keepalived-sync"
338 cat
<< EOF
> $${DEFAULT_SCRIPT}
345 group_add
"$(USER)" "$(USER_ID)"
346 user_add
"$(USER)" "$(USER_ID)" "$(USER_ID)" "$(USER)" "$(USER_HOME)" "/bin/ash"
348 mkdir
-m
700 -p
"$(USER_HOME)"
349 mkdir
-m
700 -p
"$(USER_HOME)/.ssh"
350 chown
"$(USER)":"$(USER)" "$(USER_HOME)" -R
352 [ ! -d
"$(SUDO_DIR)" ] && mkdir
"$(SUDO_DIR)"
353 echo
"$(USER) ALL= NOPASSWD:/usr/bin/rsync" > "$(SUDO_FILE)"
356 [ -z
"$${IPKG_INSTROOT}" ] && [ -f
"$${DEFAULT_SCRIPT}" ] && sh
"$${DEFAULT_SCRIPT}"
361 define Package
/keepalived-sync
/postrm
364 [ -n
"$${IPKG_INSTROOT}" ] && exit
0
366 [ -d
"$(KEYS_DIR)" ] && rm -rf
"$(KEYS_DIR)"
367 [ -d
"$(USER_HOME)" ] && rm -rf
"$(USER_HOME)"
368 [ -f
"$(SUDO_FILE)" ] && rm -f
"$(SUDO_FILE)"
370 sed
-i
-e
"/^$(USER):/d" /etc
/passwd
/etc
/shadow
/etc
/group
375 $(eval
$(call BuildPackage
,keepalived
))
376 $(eval
$(call BuildPackage
,keepalived-sync
))