diff options
Diffstat (limited to 'community/ipvsadm')
-rw-r--r-- | community/ipvsadm/01-fix-not-showing-all-server.patch | 24 | ||||
-rw-r--r-- | community/ipvsadm/PKGBUILD | 54 | ||||
-rw-r--r-- | community/ipvsadm/ipvsadm.install | 10 | ||||
-rw-r--r-- | community/ipvsadm/ipvsadm.service | 11 | ||||
-rw-r--r-- | community/ipvsadm/ipvsadm.systemd | 21 |
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: |