summaryrefslogtreecommitdiff
path: root/community/ipvsadm
diff options
context:
space:
mode:
Diffstat (limited to 'community/ipvsadm')
-rw-r--r--community/ipvsadm/01-fix-not-showing-all-server.patch24
-rw-r--r--community/ipvsadm/PKGBUILD54
-rw-r--r--community/ipvsadm/ipvsadm.install10
-rw-r--r--community/ipvsadm/ipvsadm.service11
-rw-r--r--community/ipvsadm/ipvsadm.systemd21
5 files changed, 120 insertions, 0 deletions
diff --git a/community/ipvsadm/01-fix-not-showing-all-server.patch b/community/ipvsadm/01-fix-not-showing-all-server.patch
new file mode 100644
index 000000000..dea23bf76
--- /dev/null
+++ b/community/ipvsadm/01-fix-not-showing-all-server.patch
@@ -0,0 +1,24 @@
+diff -urN ipvsadm-1.26.vanilla/libipvs/ip_vs.h ipvsadm-1.26/libipvs/ip_vs.h
+--- ipvsadm-1.26.vanilla/libipvs/ip_vs.h 2011-02-06 18:38:57.000000000 -0800
++++ ipvsadm-1.26/libipvs/ip_vs.h 2011-08-23 15:03:59.000000000 -0700
+@@ -413,7 +413,7 @@
+ __IPVS_CMD_ATTR_MAX,
+ };
+
+-#define IPVS_CMD_ATTR_MAX (__IPVS_SVC_ATTR_MAX - 1)
++#define IPVS_CMD_ATTR_MAX (__IPVS_CMD_ATTR_MAX - 1)
+
+ /*
+ * Attributes used to describe a service
+diff -urN ipvsadm-1.26.vanilla/libipvs/ip_vs_nl_policy.c
+ipvsadm-1.26/libipvs/ip_vs_nl_policy.c
+--- ipvsadm-1.26.vanilla/libipvs/ip_vs_nl_policy.c 2008-09-18
+08:57:37.000000000 -0700
++++ ipvsadm-1.26/libipvs/ip_vs_nl_policy.c 2011-08-23 14:45:34.000000000 -0700
+@@ -26,6 +26,8 @@
+ [IPVS_SVC_ATTR_TIMEOUT] = { .type = NLA_U32 },
+ [IPVS_SVC_ATTR_NETMASK] = { .type = NLA_U32 },
+ [IPVS_SVC_ATTR_STATS] = { .type = NLA_NESTED },
++ [IPVS_SVC_ATTR_PE_NAME] = { .type = NLA_STRING,
++ .maxlen = IP_VS_PENAME_MAXLEN},
+ };
diff --git a/community/ipvsadm/PKGBUILD b/community/ipvsadm/PKGBUILD
new file mode 100644
index 000000000..e34683321
--- /dev/null
+++ b/community/ipvsadm/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 90518 2013-05-12 23:51:34Z seblu $
+# Maintainer: Sébastien Luttringer
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=ipvsadm
+pkgver=1.26
+pkgrel=8
+pkgdesc='The IP Virtual Server administration utility'
+arch=('i686' 'x86_64')
+url='http://www.linuxvirtualserver.org/software/ipvs.html'
+license=('GPL2')
+depends=('libnl1' 'popt' 'bash')
+backup=("etc/$pkgname.conf")
+options=('!makeflags')
+install=$pkgname.install
+source=("http://www.linuxvirtualserver.org/software/kernel-2.6/$pkgname-$pkgver.tar.gz"
+ "$pkgname.systemd"
+ "$pkgname.service"
+ '01-fix-not-showing-all-server.patch')
+md5sums=('eac3ba3f62cd4dea2da353aeddd353a8'
+ 'b45ef25d384a7a68b51ff80d0fe81dd2'
+ 'dc87684064f85b64c1e79c1eac336303'
+ 'e9fb77d2fbe2d3f41d60257316338543')
+
+prepare() {
+ patch -p1 -d $pkgname-$pkgver < 01-fix-not-showing-all-server.patch
+}
+
+build() {
+ cd $pkgname-$pkgver
+ make
+}
+
+package() {
+ pushd $pkgname-$pkgver
+ make \
+ BUILD_ROOT="$pkgdir" \
+ MANDIR=usr/share/man \
+ SBIN="$pkgdir/usr/bin" \
+ INIT="$pkgdir/etc/rc.d" \
+ install
+ popd
+ # systemd
+ install -Dm 755 $pkgname.systemd \
+ "$pkgdir/usr/lib/systemd/scripts/$pkgname"
+ install -Dm 644 $pkgname.service \
+ "$pkgdir/usr/lib/systemd/system/$pkgname.service"
+ # remove legacy init system
+ rm -rf "$pkgdir/etc/rc.d"
+ # default config file
+ install -Dm 644 /dev/null "$pkgdir/etc/$pkgname.conf"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/ipvsadm/ipvsadm.install b/community/ipvsadm/ipvsadm.install
new file mode 100644
index 000000000..d235b560a
--- /dev/null
+++ b/community/ipvsadm/ipvsadm.install
@@ -0,0 +1,10 @@
+## arg 1: the new package version
+## arg 2: the old package version
+post_upgrade() {
+ [ $(vercmp "$2" '1.26-4') -gt 0 ] || cat <<EOF
+Config file have been moved from /etc/ipvsadm.rules to /etc/ipvsadm.conf.
+You can revert to the previous location by editing /etc/conf.d/ipvsadm.
+EOF
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/ipvsadm/ipvsadm.service b/community/ipvsadm/ipvsadm.service
new file mode 100644
index 000000000..bb6b01c3f
--- /dev/null
+++ b/community/ipvsadm/ipvsadm.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=IP Virtual Server
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/lib/systemd/scripts/ipvsadm start
+ExecStop=/usr/lib/systemd/scripts/ipvsadm stop
+
+[Install]
+WantedBy=multi-user.target
diff --git a/community/ipvsadm/ipvsadm.systemd b/community/ipvsadm/ipvsadm.systemd
new file mode 100644
index 000000000..c12e3a8ee
--- /dev/null
+++ b/community/ipvsadm/ipvsadm.systemd
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+CONFIG_FILE='/etc/ipvsadm.conf'
+
+case $1 in
+ start)
+ ipvsadm-restore < "$CONFIG_FILE"
+ ;;
+ stop)
+ ipvsadm -C
+ ;;
+ save)
+ ipvsadm-save -n > "$CONFIG_FILE"
+ ;;
+ *)
+ echo "usage: ${0##*/} {start|stop|save}" >&2
+ exit 1
+ ;;
+esac
+
+# vim:set ts=2 sw=2 ft=sh et: