diff options
Diffstat (limited to 'community/keepalived')
-rw-r--r-- | community/keepalived/APKBUILD | 112 | ||||
-rw-r--r-- | community/keepalived/fix-configure.patch | 46 | ||||
-rw-r--r-- | community/keepalived/keepalived.confd | 2 | ||||
-rw-r--r-- | community/keepalived/keepalived.initd | 23 | ||||
-rw-r--r-- | community/keepalived/keepalived.post-upgrade | 13 |
5 files changed, 196 insertions, 0 deletions
diff --git a/community/keepalived/APKBUILD b/community/keepalived/APKBUILD new file mode 100644 index 0000000000..daa562e002 --- /dev/null +++ b/community/keepalived/APKBUILD @@ -0,0 +1,112 @@ +# Contributor: Pablo Castorino <pcastorino@mendoza-conicet.gob.ar> +# Contributor: Jakub Jirutka <jakub@jirutka.cz> +# Maintainer: Natanael Copa <ncopa@alpinelinux.org> +pkgname=keepalived +pkgver=1.2.24 +pkgrel=0 +pkgdesc="Health Checking for Linux Virtual Server & High-Availability" +url="http://www.keepalived.org/" +arch="all" +license="GPL" +depends="$pkgname-common !$pkgname-snmp" +makedepends="libressl-dev popt-dev linux-headers net-snmp-dev libnl-dev + libnfnetlink-dev automake autoconf" +install="$pkgname.post-upgrade" +subpackages="$pkgname-doc $pkgname-sample-config:samples:noarch + $pkgname-common $pkgname-snmp" +source="http://www.keepalived.org/software/$pkgname-$pkgver.tar.gz + $pkgname.initd + $pkgname.confd + fix-configure.patch + " +builddir="$srcdir/$pkgname-$pkgver" + +prepare() { + default_prepare || return 1 + + # The build scripts are somehow broken, so we must regenerate them. + autoreconf -fiv || return 1 + + cp -ar "$builddir" "$builddir-snmp" +} + +build() { + cd "$builddir-snmp" + _build --enable-snmp || return 1 + + cd "$builddir" + _build +} + +_build() { + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var \ + --with-kernel-dir=/usr/include/linux \ + --enable-vrrp \ + --enable-sha1 \ + $@ || return 1 + make || return 1 +} + +package() { + cd "$builddir" + + make DESTDIR="$pkgdir" install || return 1 + + local f; for f in AUTHOR CONTRIBUTORS ChangeLog README INSTALL TODO \ + genhash/README genhash/AUTHOR genhash/ChangeLog; do + install -m644 -D $f "$pkgdir"/usr/share/doc/$pkgname/$f || return 1 + done + + install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname + install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname + + # Clean up sysvinit files + rm -rf "$pkgdir"/etc/rc.d "$pkgdir"/etc/sysconfig +} + +common() { + depends="" + + mkdir -p "$subpkgdir"/usr + + mv "$pkgdir"/etc "$subpkgdir"/ || return 1 + mv "$pkgdir"/usr/bin "$subpkgdir"/usr/ +} + +snmp() { + pkgdesc="$pkgdesc (with SNMP support)" + depends="$pkgname-common !$pkgname" + + cd "$builddir-snmp" + + install -m700 -D bin/keepalived "$subpkgdir"/usr/sbin/keepalived || return 1 + + mkdir -p "$subpkgdir"/usr/share/snmp/mibs + install -m644 doc/*-MIB "$subpkgdir"/usr/share/snmp/mibs/ +} + +samples() { + pkgdesc="Sample configuration for keepalived" + + mkdir -p "$subpkgdir"/etc/keepalived/ + mv "$pkgdir"/etc/keepalived/samples "$subpkgdir"/etc/keepalived/ +} + +md5sums="e878312095b7dcab91ad06e257822247 keepalived-1.2.24.tar.gz +ad67cf11d9fc60f55eff562728a16863 keepalived.initd +252a289af5b7c7ec6f0cb3fe48f57486 keepalived.confd +a2283ead67c71ec937a64cfecbb3eb66 fix-configure.patch" +sha256sums="3071804478077e606197a2348b5733d7d53af2843906af5e0d544945565c36ef keepalived-1.2.24.tar.gz +535bcfe41410a86e6640bf8c8c8ddb31546ba83476fceef8e0799121737ee5c2 keepalived.initd +4e655777aa3d6afa6cd746e84aa87fbb356c6d4cac9846c3a2f8805d65763497 keepalived.confd +0ccc131d013959b430f44ad9a7e9fa5ddbe068cfe2af31ed72d30e8ef394a77e fix-configure.patch" +sha512sums="a5e555dd955173887896155a04b1f6bb0c2f2a758008472abd5433b057be3fd85e4f270a7b7eb2f36a1c16e46b235ef930b1844938276528ff61bbdd783bb1f5 keepalived-1.2.24.tar.gz +12361313dd044269150c9ea1a4ffc6987075b0106dfdd4b3804b1852d2a47f608d954ab473419474747b475c98fade3779800be8147134969016817cfa050ee4 keepalived.initd +413cb05aa2d1d8c0f552398bb5d511ee022b4d07f5b18217350c1159d013f2d26d87ae63d2977329ec78d7416760e84c4048a5ad20a1f63ef2bc3a1a84c3a41a keepalived.confd +6d24889d83bc3ec6d4d8636380477576ffb6439dc49ff0b59be50a5afe41d1050bbad6f938fc9b5cb4b9cc64b8de9d6c058d8ef1bb721420140ae467656b5429 fix-configure.patch" diff --git a/community/keepalived/fix-configure.patch b/community/keepalived/fix-configure.patch new file mode 100644 index 0000000000..14c43d8048 --- /dev/null +++ b/community/keepalived/fix-configure.patch @@ -0,0 +1,46 @@ +From 4b6ceb48080044d675bc67ac93a86513b61eea63 Mon Sep 17 00:00:00 2001 +From: Jakub Jirutka <jakub@jirutka.cz> +Date: Sat, 19 Nov 2016 01:43:24 +0100 +Subject: [PATCH] Fix illegal syntax in configure script + +Indirect expansion (`${!foo}`) is a bashism, it's not POSIX-sh +compatible and is not supported by common shells except Bash and ZSH! +Configure script should be portable, hence strictly POSIX compliant. +Moreover it has shebang /bin/sh. + +Sent to upstream: https://github.com/acassen/keepalived/pull/456 +--- + configure | 4 ++-- + configure.ac | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/configure b/configure +index bfd0acb..c6085e2 100755 +--- a/configure ++++ b/configure +@@ -7087,8 +7087,8 @@ cat >>confdefs.h <<_ACEOF + _ACEOF + + for flag in RTA_ENCAP RTA_EXPIRES RTA_NEWDST RTA_PREF RTA_VIA FRA_OIFNAME FRA_SUPPRESS_PREFIXLEN FRA_SUPPRESS_IFGROUP FRA_TUN_ID RTAX_CC_ALGO RTAX_QUICKACK; do +- decl_var=ac_cv_have_decl_$flag +- if test ${!decl_var} = yes; then ++ eval decl_var=\$ac_cv_have_decl_$flag ++ if test ${decl_var} = yes; then + BUILD_OPTIONS="$BUILD_OPTIONS "${flag} + fi + done +diff --git a/configure.ac b/configure.ac +index 2496be1..15ffc40 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -422,8 +422,8 @@ AC_CHECK_DECLS([RTA_VIA, FRA_OIFNAME], [], [], + #include <sys/socket.h> + #include <linux/fib_rules.h>]]) + for flag in RTA_ENCAP RTA_EXPIRES RTA_NEWDST RTA_PREF RTA_VIA FRA_OIFNAME FRA_SUPPRESS_PREFIXLEN FRA_SUPPRESS_IFGROUP FRA_TUN_ID RTAX_CC_ALGO RTAX_QUICKACK; do +- decl_var=ac_cv_have_decl_$flag +- if test ${!decl_var} = yes; then ++ AS_VAR_COPY([decl_var], [ac_cv_have_decl_$flag]) ++ if test ${decl_var} = yes; then + add_build_opt[${flag}] + fi + done diff --git a/community/keepalived/keepalived.confd b/community/keepalived/keepalived.confd new file mode 100644 index 0000000000..7979109c0f --- /dev/null +++ b/community/keepalived/keepalived.confd @@ -0,0 +1,2 @@ +# Keepalived options, see keepalived(8) man page. +#KEEPALIVED_OPTS="-D" diff --git a/community/keepalived/keepalived.initd b/community/keepalived/keepalived.initd new file mode 100644 index 0000000000..760c360c89 --- /dev/null +++ b/community/keepalived/keepalived.initd @@ -0,0 +1,23 @@ +#!/sbin/openrc-run +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +extra_commands="reload" + +command="/usr/sbin/keepalived" +command_args="${KEEPALIVED_OPTS}" +pidfile="/run/keepalived.pid" +required_files="/etc/keepalived/keepalived.conf" + +depend() { + use logger + # The interfaces do not actually need to exist to start, + # it handles them gracefully. + use net +} + +reload() { + ebegin "Reloading keepalived.conf" + start-stop-daemon --pidfile $pidfile --signal HUP + eend $? +} diff --git a/community/keepalived/keepalived.post-upgrade b/community/keepalived/keepalived.post-upgrade new file mode 100644 index 0000000000..b4fe1cfd05 --- /dev/null +++ b/community/keepalived/keepalived.post-upgrade @@ -0,0 +1,13 @@ +#!/bin/sh + +ver_new="$1" +ver_old="$2" + +if [ "$(apk version -t "$ver_old" "1.2.23-r1")" = "<" ]; then + cat 1>&2 <<-EOF + * + * Since 1.2.23-r1 package keepalived doesn't provide SNMP support. + * If you need it, install package keepalived-snmp instead. + * + EOF +fi |