summaryrefslogtreecommitdiff
path: root/sys-cluster/ipvsadm
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /sys-cluster/ipvsadm
reinit the tree, so we can have metadata
Diffstat (limited to 'sys-cluster/ipvsadm')
-rw-r--r--sys-cluster/ipvsadm/Manifest18
-rw-r--r--sys-cluster/ipvsadm/files/ipvsadm-1.26-buildsystem.patch113
-rw-r--r--sys-cluster/ipvsadm/files/ipvsadm-1.26-stack_smashing.patch32
-rw-r--r--sys-cluster/ipvsadm/files/ipvsadm-1.27-buildsystem.patch117
-rw-r--r--sys-cluster/ipvsadm/files/ipvsadm-1.27-fix-daemon-state.patch56
-rw-r--r--sys-cluster/ipvsadm/files/ipvsadm-init36
-rw-r--r--sys-cluster/ipvsadm/ipvsadm-1.21-r1.ebuild49
-rw-r--r--sys-cluster/ipvsadm/ipvsadm-1.24.ebuild52
-rw-r--r--sys-cluster/ipvsadm/ipvsadm-1.26-r2.ebuild64
-rw-r--r--sys-cluster/ipvsadm/ipvsadm-1.27-r1.ebuild73
-rw-r--r--sys-cluster/ipvsadm/ipvsadm-1.28.ebuild71
-rw-r--r--sys-cluster/ipvsadm/metadata.xml12
12 files changed, 693 insertions, 0 deletions
diff --git a/sys-cluster/ipvsadm/Manifest b/sys-cluster/ipvsadm/Manifest
new file mode 100644
index 000000000000..f2f8ace36023
--- /dev/null
+++ b/sys-cluster/ipvsadm/Manifest
@@ -0,0 +1,18 @@
+AUX ipvsadm-1.26-buildsystem.patch 2989 SHA256 88391e5122dbb7d8c92385647b2e8856bf7ad7231cfb2e73eda4e422addce198 SHA512 0802a919c947fed04774ec4034fba22036011e51802369d7c3c6a44ec7d118011aeac0ce3f7e2cb607efff133242c782ac8708b4ec3bb890c0013ad5d14863f8 WHIRLPOOL a5a723095f5dd158490f9d6e68a9288da65e5c16a789494863dadb1d2c786e0e1816e1b39a826a475c54f0413d3c508a5d5303cb129bed9d6e0e1640a8ac4881
+AUX ipvsadm-1.26-stack_smashing.patch 912 SHA256 78cf4f4d79fb2a39afdb532e46793c4e700fa08ecacd9fa2577d53b5ced389bd SHA512 b1b50914003e0bf8688bb7e2fe011242f2ec11df70e890f4af578780367c0d38718a47a942a0cef48088a85b36276896508a8b5d580d7a15a29ae20d5ae46b4c WHIRLPOOL 267d1580c793b6f9d90b39147cccc4c4dcdfdb67999884070e1fde279c72e77c9bbfa35f2adeb104c9ae0046e2d6f75598fd7de9205b56259c4caa2268427b12
+AUX ipvsadm-1.27-buildsystem.patch 3624 SHA256 d1ff236278b7da7b313817370246ada89cd54144a09cfec48871f7df8dc6f080 SHA512 e6e94a84f3a59a2ddb73c924f28e7e6799530aa5187d499c1b002ea1caa379c728dc96493e481d9e351e14209d5424de73c7deeb4f1e1d9846eb088fb160535d WHIRLPOOL 3b91ee9b38567572ac543290199fb033c54a3b7e8b1f0639fabbb9808c3bdda96fdadf8d898ed8f76a2193da6de0312293b2aabdaf5e6e07acc0e327ec034076
+AUX ipvsadm-1.27-fix-daemon-state.patch 2001 SHA256 427c13abdffd138fcc2982895866ca967738f9fee395a9e55171fac9a0e6bcf5 SHA512 4898672423f2b53776bedde1b5d7a7dce27d8d66aeec6b749149209c6acabcfa8cc53b4f3342107f9a783c5a4afe88f4e8b10d25771c49d86b0def8777834c22 WHIRLPOOL edbd01012de5516ab8c5be85680e0acca8833f79cdb415ac328a4c5e447f35695d2ac52a766ec78b6524666d65536ba5a84f9e07d2a51562d8e2cbfbe67f86c9
+AUX ipvsadm-init 649 SHA256 78ffbe8da0840bac4902b2a3814feafbf9022c790c8000f835addd04f7670038 SHA512 3fb2467fc157599fbf308e27f39f0cb4164e3d36423500d89c7fbedec3ba6f5c7b3cbe52b077811011fc0faef73072a0bf3b204d728841773ef2a520c03130f7 WHIRLPOOL d98c943a1f1d7d3d95791def4302b33c04a191f085e723e41a5a8e485e620b3e1697cd5bda158b0258d1e8f74d96077dd95f9685cfc018a50e7466ce528d3b9b
+DIST ipvsadm-1.21-11.tar.gz 34030 SHA256 7b85020f84d4648166bce480d747d82ac5c9113f9a222e3de7eb92b7af0598fa SHA512 55a50b4a06798b035481b4d8080ff8b64772802a564f91e7ff9fc7179ff8ed687681615a22b4c51b99065b574108b6a2c616e9acf54877dfd46c221e67f99048 WHIRLPOOL 4fb619061a5d08c7f6ae9cb9a9b7e2bdd6fa1a4a0745622fe4bbd79bee79228b58191af021119e0dc8694bb0a0e74fe1468c6ffaeeb5262e85fe63c65453db23
+DIST ipvsadm-1.24.tar.gz 32007 SHA256 773cbada48061e3afafaeaa2800d5382b8ff638b2c929293c14a793112a0642a SHA512 f472e55d78901de3b8f07dec0ff6e32b5aa301dc0dc62f34fe168511c8e2af26704fb66936540eb1173d7a0280428a2e6e48f9efadd3e33050dd881e666e1041 WHIRLPOOL 846d06b4977d93562618a9215b470272915458e8712346f37dc02c6afb2e0365ec15f589caedc7654a2a33542610a8f90fc3acc6c52a12a9fdf8098789fe682b
+DIST ipvsadm-1.26.tar.gz 41700 SHA256 6d6c46fecb1c532a892616b4445c73b71730e8790d5630f60269fd9cbee0eb2d SHA512 873e23a6bdaabc153b00f1ede3853c947e8c8cfb4e18364d55197c74f26cc883ca469e074a90f377fbfd5e73e0cd6c1fe414c9f7a5c28b0d4431af58056eced4 WHIRLPOOL 5f62ad434c7da3359adbfae1cdde230769f19f0c82a190d7ef6fc8ba340d5e761875a778ad9a1dd7162d385b8ebda89c589b7179d53d495c79e82056e46bce9a
+DIST ipvsadm-1.27.tar.xz 38196 SHA256 d360fb4dcf591e0a8a918831e2c02b1dc03e3c17ee1e60d0d70de9455238b3f8 SHA512 cf982b7981674c91d1b7516de7b55cf378b306ce4a53e13976b8eeb8610015c4fa4aa9d251bc4d329db8e05c1862863160af2d3c63b76263f290087cffdf1b80 WHIRLPOOL fbb69043813ccba929bb044c9d7854b67e8d656ae08209f17e21d3d237ea4690cd8ea7a1e2806ce6b07f847eb9796e93649c7f5231d2356e8519696b5a504b73
+DIST ipvsadm-1.28.tar.xz 38600 SHA256 90e0e49cad5acb9db1c04ed4cdadf7933152a472c2f694039b9d7a291c37f3ab SHA512 a1e10ce30751d9439f832e221e5c41b338f87dcc94a0b21329d908a9164f8882049af9d9d918b764b36c30e353d5b8db49d7088e60c24e4748713c06cccf7035 WHIRLPOOL 76e972792b779526b666469e92a4e181f9b63765bea2a3908b68ea0cac9bd45533c5eeb04f618993d45dae12b8268271c18df3fae82a3eb62d14fa3db4a4f74b
+EBUILD ipvsadm-1.21-r1.ebuild 1086 SHA256 e5bc1b725be7a0a9009f2083f19869adb046884984f6aae1b3092677b53bef25 SHA512 ad0224310eb5bba50507d7fea9720fe265b3a015c90222118cebb9b40dddf56ce3489bfb0f37f996d4575b41846f8ab755dca9b684f535e48bc62132221a8575 WHIRLPOOL 74c9712939103563aaf16b19402ef5ac44df690bda4e58b16be7b20fef9d608a9ce7e387c907fbcfcb5d2cec4e1ac8c23d1cd4e55c69b11757016c343181f0ef
+EBUILD ipvsadm-1.24.ebuild 1255 SHA256 3100f52d473727e60ad4e3bbedf2e25d5b7042da5d58ec91dc519e856fce3bf3 SHA512 b02d38b0c2b59bb7a3550b91261284229dd19a3c5b7bccffd8d99bec17178242b1cee4e24a11ce3dc50972961f3c7598cd36f910e4f4319937d1ed75e0c13d3e WHIRLPOOL 149bc972d79cac285149ddb9a53020b6a0aac6d676bc7c67241f4a01ad1addd38353d9e5e0f569e17007a4a3aba924eed711177fd1459b9daedde1045483ebbb
+EBUILD ipvsadm-1.26-r2.ebuild 1468 SHA256 58ddbbc69a00e50faafa0ad1ae65347b0376bc98691d6788c8af687a9f94605e SHA512 73eba25de1121b24b2dfee8ea509f3c0c483cc22caf76bffe3742f1691346a2a13554a547ecb06cc1087373ab1866b2cd453ac99a334f62bf7618d9c423925be WHIRLPOOL fc42862cc91444e79ae22afff20d6c0cc977f902a981435511de8e6a5f8dcbf035eed5f5432119775f9752942421a4ca8b089e5ddb7413dbd4fa081c95d80083
+EBUILD ipvsadm-1.27-r1.ebuild 1736 SHA256 dc0d3672f1b37ba474dc6a7b5f1a0e6d5c5c0ed7a4daa76e61845f62fc4a3a71 SHA512 60860e46259f52965dbe1eb056f43b8878e9559f4eb0c40ed3ef74531ef8ff7c738aa6081720ecab06d2e9364c91da96de033c97591699d8af62580cd76a27a1 WHIRLPOOL 88f7e31b4d08cec225cf63b8061d332e0119b0b20ddd2e35eec191f2894b5de07acc68f945361e91d912fe9a33938c287ea25eadb236af1ae4f9af74cdc19184
+EBUILD ipvsadm-1.28.ebuild 1647 SHA256 209f80463dd03f37cbe84d012c7b88dd1ef7cffd3614a98e19a0fe65dc07b6a9 SHA512 0132f04eb777f8289ab98edff96a90e3d07309993bbbc892c9c5f2f0f1e1b238253a86dd8383aeff5c8446c8e0cb4f108f8159692ba0d659852568d49155b906 WHIRLPOOL c5ebe64b850ec42ba299ca24df73235615ffb0abf0bc714cf0df2b1c3dfe3d55c3b2e21b797dff2eb974e3eb1d8bbd05854b0619ae250deae43acd7d6c7550ed
+MISC ChangeLog 3574 SHA256 8dc025ce5e072f9474a81d53cd3a7fae301888976f7860cbec191bfd86b969a3 SHA512 d5058fc2c118a55f0b70a17853d1618c61bb3c7d4745f8093e51d808fbe01e78a3f282c9447005761eb6c9a4f8f0e10be02f8813e0520b4082ca9a308e4e16f4 WHIRLPOOL 1301bcb2edc243e562715d17630c5e2db6764d22158a0861ef3c8b7804e51f4ef29b416ca6a8b35eb96aa185020d07a41089b0a2738e1e9a132b0e0b98aa5366
+MISC ChangeLog-2015 9083 SHA256 f22d33cce3328dfa02e7c546301b3fdacf312d818fbc59b65da41801a2467809 SHA512 6a2776ef2d81b0c7c19a51951fb72662cc17e53bb3355c5a06ac5e461e9ba28fba1631f271b6628e54d6f109644cc34a7b047a7b3a8986a281492e4fd976017f WHIRLPOOL 1dccffebc7303bb9c0e39e216f120d855b9fdcb82cc29713d25d9d95510206368cbd96ffd669ff5ddb1d356679fa88abec166157e6de0c4839e5ba9367547404
+MISC metadata.xml 366 SHA256 99c1935c6018be78647e899c1e8a8b222934ca30b861d6b5918088ec2199ddd2 SHA512 6cdf615e2158872ea3081ba02996989acd1fa9a02286946acc1b972c717943eba27b2733dc7c33ff782624017adc140fd125cf04f1d989e006c2541eb159f256 WHIRLPOOL b1c9f17339b00a1da42fc7d9044b9432711bfe44d9d50984309590852361985e34aa4836101b5ad44671493340c446febc90babad82cd4263d67abe0e7ed0601
diff --git a/sys-cluster/ipvsadm/files/ipvsadm-1.26-buildsystem.patch b/sys-cluster/ipvsadm/files/ipvsadm-1.26-buildsystem.patch
new file mode 100644
index 000000000000..ba8e9450eb35
--- /dev/null
+++ b/sys-cluster/ipvsadm/files/ipvsadm-1.26-buildsystem.patch
@@ -0,0 +1,113 @@
+--- a/Makefile
++++ b/Makefile
+@@ -43,14 +43,13 @@
+ INIT = $(BUILD_ROOT)/etc/rc.d/init.d
+ MKDIR = mkdir
+ INSTALL = install
+-STATIC_LIBS = libipvs/libipvs.a
+
+ ifeq "${ARCH}" "sparc64"
+- CFLAGS = -Wall -Wunused -Wstrict-prototypes -g -m64 -pipe -mcpu=ultrasparc -mcmodel=medlow
++ CFLAGS := -g -m64 -pipe -mcpu=ultrasparc -mcmodel=medlow
+ else
+- CFLAGS = -Wall -Wunused -Wstrict-prototypes -g
++ CFLAGS := -g
+ endif
+-
++OPTFLAGS += -Wall -Wunused -Wstrict-prototypes
+
+ #####################################
+ # No servicable parts below this line
+@@ -94,10 +93,12 @@
+ all: libs ipvsadm
+
+ libs:
+- make -C libipvs
++ $(MAKE) -C libipvs
++
++$(OBJS): libs
+
+-ipvsadm: $(OBJS) $(STATIC_LIBS)
+- $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
++ipvsadm: $(OBJS)
++ $(CC) $(LDFLAGS) $(OPTFLAGS) $(CFLAGS) -o $@ $^ -Llibipvs -lipvs $(LIBS)
+
+-install: all
++install:
+ if [ ! -d $(SBIN) ]; then $(MKDIR) -p $(SBIN); fi
+@@ -108,15 +109,13 @@
+ $(INSTALL) -m 0644 ipvsadm.8 $(MAN)
+ $(INSTALL) -m 0644 ipvsadm-save.8 $(MAN)
+ $(INSTALL) -m 0644 ipvsadm-restore.8 $(MAN)
+- [ -d $(INIT) ] || $(MKDIR) -p $(INIT)
+- $(INSTALL) -m 0755 ipvsadm.sh $(INIT)/ipvsadm
+
+ clean:
+ rm -f ipvsadm $(NAME).spec $(NAME)-$(VERSION).tar.gz
+ rm -rf debian/tmp
+ find . -name '*.[ao]' -o -name "*~" -o -name "*.orig" \
+ -o -name "*.rej" -o -name core | xargs rm -f
+- make -C libipvs clean
++ $(MAKE) -C libipvs clean
+
+ distclean: clean
+
+@@ -149,4 +148,4 @@
+ dpkg-buildpackage
+
+ %.o: %.c
+- $(CC) $(CFLAGS) $(INCLUDE) $(DEFINES) -c -o $@ $<
++ $(CC) $(OPTFLAGS) $(CFLAGS) $(INCLUDE) $(DEFINES) -c -o $@ $<
+--- a/libipvs/Makefile
++++ b/libipvs/Makefile
+@@ -1,32 +1,39 @@
+ # Makefile for libipvs
+
+ CC = gcc
+-CFLAGS = -Wall -Wunused -Wstrict-prototypes -g -fPIC
++OPTFLAGS = -Wall -Wunused -Wstrict-prototypes
+ ifneq (0,$(HAVE_NL))
+-CFLAGS += -DLIBIPVS_USE_NL
++DEFINES += -DLIBIPVS_USE_NL
+ endif
+
+ INCLUDE += $(shell if [ -f ../../ip_vs.h ]; then \
+ echo "-I../../."; fi;)
+-DEFINES = $(shell if [ ! -f ../../ip_vs.h ]; then \
++DEFINES += $(shell if [ ! -f ../../ip_vs.h ]; then \
+ echo "-DHAVE_NET_IP_VS_H"; fi;)
+
+ .PHONY = all clean install dist distclean rpm rpms
+-STATIC_LIB = libipvs.a
+-SHARED_LIB = libipvs.so
+
+-all: $(STATIC_LIB) $(SHARED_LIB)
++TARGETS = libipvs.so
+
+-$(STATIC_LIB): libipvs.o ip_vs_nl_policy.o
++ifeq (1,$(STATIC_LIB))
++TARGETS += libipvs.a
++endif
++
++all: $(TARGETS)
++
++libipvs.a: libipvs.o ip_vs_nl_policy.o
+ ar rv $@ $^
+
+-$(SHARED_LIB): libipvs.o ip_vs_nl_policy.o
+- $(CC) -shared -Wl,-soname,$@ -o $@ $^
++libipvs.so: libipvs.lo ip_vs_nl_policy.lo
++ $(CC) $(LDFLAGS) -shared -Wl,-soname,$@ -o $@ $^
++
++%.lo: %.c
++ $(CC) -fPIC $(OPTFLAGS) $(CFLAGS) $(INCLUDE) $(DEFINES) -c -o $@ $<
+
+ %.o: %.c
+- $(CC) $(CFLAGS) $(INCLUDE) $(DEFINES) -c -o $@ $<
++ $(CC) $(OPTFLAGS) $(CFLAGS) $(INCLUDE) $(DEFINES) -c -o $@ $<
+
+ clean:
+- rm -f *.[ao] *~ *.orig *.rej core *.so
++ rm -f *.[ao] *~ *.orig *.rej core *.so *.lo
+
+ distclean: clean
diff --git a/sys-cluster/ipvsadm/files/ipvsadm-1.26-stack_smashing.patch b/sys-cluster/ipvsadm/files/ipvsadm-1.26-stack_smashing.patch
new file mode 100644
index 000000000000..d36b0bf8abe4
--- /dev/null
+++ b/sys-cluster/ipvsadm/files/ipvsadm-1.26-stack_smashing.patch
@@ -0,0 +1,32 @@
+From 81529af388c0f0f4e4b169b7bcb285ef5e798f41 Mon Sep 17 00:00:00 2001
+From: Christian Ruppert <idl0r@gentoo.org>
+Date: Sat, 8 Oct 2011 02:05:37 +0200
+Subject: [PATCH] Fix stack smashing because of a typo
+
+IPVS_CMD_ATTR_MAX was the size of __IPVS_SVC_ATTR_MAX before, which has a
+different size and thus it caused trouble. The right enum to use is
+__IPVS_CMD_ATTR_MAX.
+
+Reported-by: Deniss Gaplevsky <slim@inbox.lv>
+X-Gentoo-Bug: 371903
+X-Gentoo-Bug-URL: https://bugs.gentoo.org/371903
+---
+ libipvs/ip_vs.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libipvs/ip_vs.h b/libipvs/ip_vs.h
+index 9726a17..5e1d544 100644
+--- a/libipvs/ip_vs.h
++++ b/libipvs/ip_vs.h
+@@ -413,7 +413,7 @@ enum {
+ __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
+--
+1.7.3.4
+
diff --git a/sys-cluster/ipvsadm/files/ipvsadm-1.27-buildsystem.patch b/sys-cluster/ipvsadm/files/ipvsadm-1.27-buildsystem.patch
new file mode 100644
index 000000000000..54d2e55c1519
--- /dev/null
+++ b/sys-cluster/ipvsadm/files/ipvsadm-1.27-buildsystem.patch
@@ -0,0 +1,117 @@
+diff -Nuar -Nuar --exclude '*.orig' --exclude '*.rej' ipvsadm-1.27.orig/libipvs/Makefile ipvsadm-1.27/libipvs/Makefile
+--- ipvsadm-1.27.orig/libipvs/Makefile 2013-09-06 01:37:27.000000000 -0700
++++ ipvsadm-1.27/libipvs/Makefile 2013-11-01 23:45:21.633636401 -0700
+@@ -1,9 +1,9 @@
+ # Makefile for libipvs
+
+ CC = gcc
+-CFLAGS = -Wall -Wunused -Wstrict-prototypes -g -fPIC
++#OPTFLAGS = -Wall -Wunused -Wstrict-prototypes
+ ifneq (0,$(HAVE_NL))
+-CFLAGS += -DLIBIPVS_USE_NL
++DEFINES += -DLIBIPVS_USE_NL
+ CFLAGS += $(shell \
+ if which pkg-config > /dev/null 2>&1; then \
+ if pkg-config --cflags libnl-3.0 2> /dev/null; then :; \
+@@ -15,7 +15,7 @@
+
+ INCLUDE += $(shell if [ -f ../../ip_vs.h ]; then \
+ echo "-I../../."; fi;)
+-DEFINES = $(shell if [ ! -f ../../ip_vs.h ]; then \
++DEFINES += $(shell if [ ! -f ../../ip_vs.h ]; then \
+ echo "-DHAVE_NET_IP_VS_H"; fi;)
+ DEFINES += $(shell if which pkg-config > /dev/null 2>&1; then \
+ if pkg-config --exists libnl-3.0; then :; \
+@@ -24,21 +24,31 @@
+ then echo "-DFALLBACK_LIBNL1"; fi; fi)
+
+ .PHONY = all clean install dist distclean rpm rpms
++
+ STATIC_LIB = libipvs.a
+ SHARED_LIB = libipvs.so
+
+-all: $(STATIC_LIB) $(SHARED_LIB)
++TARGETS = $(SHARED_LIB)
++ifeq (1,$(STATIC))
++TARGETS += $(STATIC_LIB)
++endif
++all: $(TARGETS)
++
++SOURCES = libipvs.c ip_vs_nl_policy.c
+
+-$(STATIC_LIB): libipvs.o ip_vs_nl_policy.o
++$(STATIC_LIB): $(SOURCES:%.c=%.o)
+ ar rv $@ $^
+
+-$(SHARED_LIB): libipvs.o ip_vs_nl_policy.o
+- $(CC) -shared -Wl,-soname,$@ -o $@ $^
++$(SHARED_LIB): $(SOURCES:%.c=%.lo)
++ $(CC) $(LDFLAGS) -shared -Wl,-soname,$@ -o $@ $^
++
++%.lo: %.c
++ $(CC) -fPIC $(OPTFLAGS) $(CFLAGS) $(INCLUDE) $(DEFINES) -c -o $@ $<
+
+ %.o: %.c
+- $(CC) $(CFLAGS) $(INCLUDE) $(DEFINES) -c -o $@ $<
++ $(CC) $(OPTFLAGS) $(CFLAGS) $(INCLUDE) $(DEFINES) -c -o $@ $<
+
+ clean:
+- rm -f *.[ao] *~ *.orig *.rej core *.so
++ rm -f *.[ao] *~ *.orig *.rej core *.so *.lo
+
+ distclean: clean
+diff -Nuar -Nuar --exclude '*.orig' --exclude '*.rej' ipvsadm-1.27.orig/Makefile ipvsadm-1.27/Makefile
+--- ipvsadm-1.27.orig/Makefile 2013-11-01 23:49:36.523225124 -0700
++++ ipvsadm-1.27/Makefile 2013-11-01 23:49:09.478738760 -0700
+@@ -43,14 +43,13 @@
+ INIT = $(BUILD_ROOT)/etc/rc.d/init.d
+ MKDIR = mkdir
+ INSTALL = install
+-STATIC_LIBS = libipvs/libipvs.a
+
+ ifeq "${ARCH}" "sparc64"
+- CFLAGS = -Wall -Wunused -Wstrict-prototypes -g -m64 -pipe -mcpu=ultrasparc -mcmodel=medlow
++ CFLAGS := -g -m64 -pipe -mcpu=ultrasparc -mcmodel=medlow
+ else
+- CFLAGS = -Wall -Wunused -Wstrict-prototypes -g
++ CFLAGS := -g
+ endif
+-
++OPTFLAGS += -Wall -Wunused -Wstrict-prototypes
+
+ #####################################
+ # No servicable parts below this line
+@@ -84,12 +83,14 @@
+ all: libs ipvsadm
+
+ libs:
+- make -C libipvs
++ $(MAKE) -C libipvs CFLAGS="$(CFLAGS)" STATIC="$(STATIC)" OPTFLAGS="$(OPTFLAGS)"
++
++$(OBJS): libs
+
+-ipvsadm: $(OBJS) $(STATIC_LIBS)
+- $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
++ipvsadm: $(OBJS)
++ $(CC) $(LDFLAGS) $(OPTFLAGS) $(CFLAGS) -o $@ $^ -Llibipvs -lipvs $(LIBS)
+
+-install: all
++install: all
+ if [ ! -d $(SBIN) ]; then $(MKDIR) -p $(SBIN); fi
+ $(INSTALL) -m 0755 ipvsadm $(SBIN)
+ $(INSTALL) -m 0755 ipvsadm-save $(SBIN)
+@@ -106,7 +107,7 @@
+ rm -rf debian/tmp
+ find . -name '*.[ao]' -o -name "*~" -o -name "*.orig" \
+ -o -name "*.rej" -o -name core | xargs rm -f
+- make -C libipvs clean
++ $(MAKE) -C libipvs clean
+
+ distclean: clean
+
+@@ -139,4 +140,4 @@
+ dpkg-buildpackage
+
+ %.o: %.c
+- $(CC) $(CFLAGS) $(INCLUDE) $(DEFINES) -c -o $@ $<
++ $(CC) $(OPTFLAGS) $(CFLAGS) $(INCLUDE) $(DEFINES) -c -o $@ $<
diff --git a/sys-cluster/ipvsadm/files/ipvsadm-1.27-fix-daemon-state.patch b/sys-cluster/ipvsadm/files/ipvsadm-1.27-fix-daemon-state.patch
new file mode 100644
index 000000000000..e3e5ebec72c6
--- /dev/null
+++ b/sys-cluster/ipvsadm/files/ipvsadm-1.27-fix-daemon-state.patch
@@ -0,0 +1,56 @@
+From 8c34d5a0d4c763db9b8f1e54be0c6c3ded6c54e0 Mon Sep 17 00:00:00 2001
+From: Alexander Holler <alexander.holler@1und1.de>
+Date: Mon, 9 Jan 2012 13:16:55 +0100
+Subject: [PATCH] libipvs: Fix reporting of the state of the backup-daemon.
+
+ipvsadm -l --daemon didn't report a running ipvs-backup-daemon
+(if no master-daemon was run).
+
+It seems there was some misunderstanding of
+how the daemons got reported (without using netlink). The state of
+the backup-daemon is always reported (by the kernel) in the second
+element of type ip_vs_daemon_user which is returned by the kernel
+through IP_VS_SO_GET_DAEMON or IPVS_CMD_GET_DAEMON.
+
+Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+
+---
+ libipvs/libipvs.c | 11 ++++++-----
+ 1 files changed, 6 insertions(+), 5 deletions(-)
+
+Note: patch adjusted slightly to apply against ipvsadm (was spun for keepalived) - robbat2
+
+diff --git a/libipvs/libipvs.c b/libipvs/libipvs.c
+index ea5e851..6bee837 100644
+--- a/libipvs/libipvs.c
++++ b/libipvs/libipvs.c
+@@ -1003,12 +1003,9 @@ static int ipvs_daemon_parse_cb(struct nl_msg *msg, void *arg)
+ struct nlattr *attrs[IPVS_CMD_ATTR_MAX + 1];
+ struct nlattr *daemon_attrs[IPVS_DAEMON_ATTR_MAX + 1];
+ ipvs_daemon_t *u = (ipvs_daemon_t *)arg;
++ __u32 state;
+ int i = 0;
+
+- /* We may get two daemons. If we've already got one, this is the second */
+- if (u[0].state)
+- i = 1;
+-
+ if (genlmsg_parse(nlh, 0, attrs, IPVS_CMD_ATTR_MAX, ipvs_cmd_policy) != 0)
+ return -1;
+
+@@ -1021,7 +1018,11 @@ static int ipvs_daemon_parse_cb(struct nl_msg *msg, void *arg)
+ daemon_attrs[IPVS_DAEMON_ATTR_SYNC_ID]))
+ return -1;
+
+- u[i].state = nla_get_u32(daemon_attrs[IPVS_DAEMON_ATTR_STATE]);
++ state = nla_get_u32(daemon_attrs[IPVS_DAEMON_ATTR_STATE]);
++ /* The second element is used for the state of the backup daemon. */
++ if (state == IP_VS_STATE_BACKUP)
++ i = 1;
++ u[i].state = state;
+ strncpy(u[i].mcast_ifn,
+ nla_get_string(daemon_attrs[IPVS_DAEMON_ATTR_MCAST_IFN]),
+ IP_VS_IFNAME_MAXLEN);
+--
+1.7.6.5
+
diff --git a/sys-cluster/ipvsadm/files/ipvsadm-init b/sys-cluster/ipvsadm/files/ipvsadm-init
new file mode 100644
index 000000000000..c4f58ee567fc
--- /dev/null
+++ b/sys-cluster/ipvsadm/files/ipvsadm-init
@@ -0,0 +1,36 @@
+#!/sbin/openrc-run
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+extra_commands="save"
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ if [ ! -f /var/lib/ipvsadm/rules-save ] ; then
+ eerror "Not starting ipvsadm. First create some rules then run"
+ eerror "/etc/init.d/ipvsadm save"
+ return 1
+ fi
+}
+
+start() {
+ ebegin "Starting ipvsadm"
+ einfo "Clearing previous rules"
+ ipvsadm -C
+ ipvsadm-restore < /var/lib/ipvsadm/rules-save
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ipvsadm"
+ eend $?
+}
+
+save() {
+ ebegin "Saving ipvsadm state"
+ ipvsadm-save > /var/lib/ipvsadm/rules-save
+ eend $?
+}
diff --git a/sys-cluster/ipvsadm/ipvsadm-1.21-r1.ebuild b/sys-cluster/ipvsadm/ipvsadm-1.21-r1.ebuild
new file mode 100644
index 000000000000..52156e121819
--- /dev/null
+++ b/sys-cluster/ipvsadm/ipvsadm-1.21-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+inherit linux-info
+
+PATCHLEVEL="11"
+MY_PV="${PV}-${PATCHLEVEL}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="utility to administer the IP virtual server services"
+HOMEPAGE="http://linuxvirtualserver.org"
+LICENSE="GPL-2"
+DEPEND=">=sys-libs/ncurses-5.2"
+
+SRC_URI="http://www.linuxvirtualserver.org/software/kernel-2.4/${MY_P}.tar.gz"
+
+SLOT="0"
+KEYWORDS="~ppc ~ppc64 x86"
+IUSE=""
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ if kernel_is -ge 2 6; then
+ eerror "${P} does not support 2.6 kernels, please try newer versions"
+ die "wrong kernel version"
+ fi
+}
+
+src_compile() {
+ emake || die "error compiling source"
+}
+
+src_install() {
+ into /
+ dosbin ipvsadm ipvsadm-save ipvsadm-restore || die
+
+ doman ipvsadm.8 ipvsadm-save.8 ipvsadm-restore.8
+
+ newinitd "${FILESDIR}"/ipvsadm-init ipvsadm || die
+ keepdir /var/lib/ipvsadm
+
+ dolib.a libipvs/libipvs.a || die
+
+ insinto /usr/include/ipvs
+ newins libipvs/libipvs.h ipvs.h || die
+
+ einfo "You will need a kernel that has ipvs patches to use LVS"
+}
diff --git a/sys-cluster/ipvsadm/ipvsadm-1.24.ebuild b/sys-cluster/ipvsadm/ipvsadm-1.24.ebuild
new file mode 100644
index 000000000000..da5e18b99cf8
--- /dev/null
+++ b/sys-cluster/ipvsadm/ipvsadm-1.24.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+inherit linux-info toolchain-funcs
+
+DESCRIPTION="utility to administer the IP virtual server services offered by the Linux kernel"
+HOMEPAGE="http://linuxvirtualserver.org/"
+SRC_URI="http://www.linuxvirtualserver.org/software/kernel-2.5/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ia64 ~ppc64 s390 sparc x86"
+IUSE=""
+
+RDEPEND=">=sys-libs/ncurses-5.2"
+DEPEND="${RDEPEND}"
+
+pkg_setup() {
+ if kernel_is 2 4; then
+ eerror "${P} supports only 2.6 kernels, please try ${PN}-1.21 for 2.4 kernels"
+ die "wrong kernel version"
+ fi
+}
+
+src_compile() {
+ emake \
+ -j1 \
+ INCLUDE="-I${KV_DIR}/include -I.. -I." \
+ CFLAGS="${CFLAGS}" \
+ CC="$(tc-getCC)" \
+ || die "error compiling source"
+}
+
+src_install() {
+ into /
+ dosbin ipvsadm ipvsadm-save ipvsadm-restore || die
+
+ doman ipvsadm.8 ipvsadm-save.8 ipvsadm-restore.8 || die
+
+ newinitd "${FILESDIR}"/ipvsadm-init ipvsadm
+ keepdir /var/lib/ipvsadm
+
+ dolib.a libipvs/libipvs.a || die
+
+ insinto /usr/include/ipvs
+ newins libipvs/libipvs.h ipvs.h || die
+}
+
+pkg_postinst() {
+ einfo "You will need a kernel that has ipvs patches to use LVS."
+ einfo "This version is specifically for 2.6 kernels."
+}
diff --git a/sys-cluster/ipvsadm/ipvsadm-1.26-r2.ebuild b/sys-cluster/ipvsadm/ipvsadm-1.26-r2.ebuild
new file mode 100644
index 000000000000..a022f55e3d23
--- /dev/null
+++ b/sys-cluster/ipvsadm/ipvsadm-1.26-r2.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+
+inherit eutils linux-info toolchain-funcs
+
+DESCRIPTION="utility to administer the IP virtual server services"
+HOMEPAGE="http://linuxvirtualserver.org/"
+SRC_URI="http://www.linuxvirtualserver.org/software/kernel-2.6/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ia64 ppc ppc64 s390 sparc x86"
+IUSE="static-libs"
+
+RDEPEND=">=sys-libs/ncurses-5.2
+ dev-libs/libnl:1.1
+ >=dev-libs/popt-1.16"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+pkg_pretend() {
+ if kernel_is 2 4; then
+ eerror "${P} supports only 2.6 series and later kernels, please try ${PN}-1.21 for 2.4 kernels"
+ die "wrong kernel version"
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-buildsystem.patch
+ epatch "${FILESDIR}/${P}-stack_smashing.patch" # bug 371903
+ use static-libs && export STATIC=1
+}
+
+src_compile() {
+ emake -e \
+ INCLUDE="-I.. -I." \
+ CC="$(tc-getCC)" \
+ HAVE_NL=1 \
+ STATIC_LIB=${STATIC} \
+ POPT_LIB="$(pkg-config --libs popt)"
+}
+
+src_install() {
+ into /
+ dosbin ipvsadm ipvsadm-save ipvsadm-restore
+
+ into /usr
+ doman ipvsadm.8 ipvsadm-save.8 ipvsadm-restore.8
+
+ newinitd "${FILESDIR}"/ipvsadm-init ipvsadm
+ keepdir /var/lib/ipvsadm
+
+ use static-libs && dolib.a libipvs/libipvs.a
+ dolib.so libipvs/libipvs.so
+
+ insinto /usr/include/ipvs
+ newins libipvs/libipvs.h ipvs.h
+}
+
+pkg_postinst() {
+ einfo "You will need a kernel that has ipvs patches to use LVS."
+}
diff --git a/sys-cluster/ipvsadm/ipvsadm-1.27-r1.ebuild b/sys-cluster/ipvsadm/ipvsadm-1.27-r1.ebuild
new file mode 100644
index 000000000000..ad82d37548d0
--- /dev/null
+++ b/sys-cluster/ipvsadm/ipvsadm-1.27-r1.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils linux-info toolchain-funcs
+
+DESCRIPTION="utility to administer the IP virtual server services"
+HOMEPAGE="http://linuxvirtualserver.org/"
+SRC_URI="https://kernel.org/pub/linux/utils/kernel/ipvsadm/ipvsadm-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ia64 ppc ppc64 ~s390 sparc x86"
+IUSE="static-libs"
+
+RDEPEND=">=sys-libs/ncurses-5.2:*
+ dev-libs/libnl:=
+ >=dev-libs/popt-1.16"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+pkg_pretend() {
+ if kernel_is 2 4; then
+ eerror "${P} supports only 2.6 series and later kernels, please try ${PN}-1.21 for 2.4 kernels"
+ die "wrong kernel version"
+ fi
+}
+
+src_prepare() {
+ default
+ epatch "${FILESDIR}"/${PN}-1.27-buildsystem.patch
+ # Merged upstream in 1.27
+ #epatch "${FILESDIR}"/${PN}-1.26-stack_smashing.patch # bug 371903
+ epatch "${FILESDIR}"/${PN}-1.27-fix-daemon-state.patch
+ use static-libs && export STATIC=1
+}
+
+src_compile() {
+ local libnl_include
+ if has_version ">=dev-libs/libnl-3.0"; then
+ libnl_include=$(pkg-config --cflags libnl-3.0)
+ else
+ libnl_include=""
+ fi
+ emake -e \
+ INCLUDE="-I.. -I. ${libnl_include}" \
+ CC="$(tc-getCC)" \
+ HAVE_NL=1 \
+ STATIC=${STATIC} \
+ POPT_LIB="$(pkg-config --libs popt)"
+}
+
+src_install() {
+ into /
+ dosbin ipvsadm ipvsadm-save ipvsadm-restore
+
+ into /usr
+ doman ipvsadm.8 ipvsadm-save.8 ipvsadm-restore.8
+
+ newinitd "${FILESDIR}"/ipvsadm-init ipvsadm
+ keepdir /var/lib/ipvsadm
+
+ use static-libs && dolib.a libipvs/libipvs.a
+ dolib.so libipvs/libipvs.so
+
+ insinto /usr/include/ipvs
+ newins libipvs/libipvs.h ipvs.h
+}
+
+pkg_postinst() {
+ einfo "You will need a kernel that has ipvs patches to use LVS."
+}
diff --git a/sys-cluster/ipvsadm/ipvsadm-1.28.ebuild b/sys-cluster/ipvsadm/ipvsadm-1.28.ebuild
new file mode 100644
index 000000000000..39f351f5ae90
--- /dev/null
+++ b/sys-cluster/ipvsadm/ipvsadm-1.28.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils linux-info toolchain-funcs
+
+DESCRIPTION="utility to administer the IP virtual server services"
+HOMEPAGE="http://linuxvirtualserver.org/"
+SRC_URI="https://kernel.org/pub/linux/utils/kernel/ipvsadm/ipvsadm-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86"
+IUSE="static-libs"
+
+RDEPEND=">=sys-libs/ncurses-5.2:*
+ dev-libs/libnl:=
+ >=dev-libs/popt-1.16"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+pkg_pretend() {
+ if kernel_is 2 4; then
+ eerror "${P} supports only 2.6 series and later kernels, please try ${PN}-1.21 for 2.4 kernels"
+ die "wrong kernel version"
+ fi
+}
+
+src_prepare() {
+ default
+ epatch "${FILESDIR}"/${PN}-1.27-buildsystem.patch
+ epatch "${FILESDIR}"/${PN}-1.27-fix-daemon-state.patch
+ use static-libs && export STATIC=1
+}
+
+src_compile() {
+ local libnl_include
+ if has_version ">=dev-libs/libnl-3.0"; then
+ libnl_include=$(pkg-config --cflags libnl-3.0)
+ else
+ libnl_include=""
+ fi
+ emake -e \
+ INCLUDE="-I.. -I. ${libnl_include}" \
+ CC="$(tc-getCC)" \
+ HAVE_NL=1 \
+ STATIC=${STATIC} \
+ POPT_LIB="$(pkg-config --libs popt)"
+}
+
+src_install() {
+ into /
+ dosbin ipvsadm ipvsadm-save ipvsadm-restore
+
+ into /usr
+ doman ipvsadm.8 ipvsadm-save.8 ipvsadm-restore.8
+
+ newinitd "${FILESDIR}"/ipvsadm-init ipvsadm
+ keepdir /var/lib/ipvsadm
+
+ use static-libs && dolib.a libipvs/libipvs.a
+ dolib.so libipvs/libipvs.so
+
+ insinto /usr/include/ipvs
+ newins libipvs/libipvs.h ipvs.h
+}
+
+pkg_postinst() {
+ einfo "You will need a kernel that has ipvs patches to use LVS."
+}
diff --git a/sys-cluster/ipvsadm/metadata.xml b/sys-cluster/ipvsadm/metadata.xml
new file mode 100644
index 000000000000..7ca6574ca7b4
--- /dev/null
+++ b/sys-cluster/ipvsadm/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>cluster@gentoo.org</email>
+ <name>Gentoo Cluster Project</name>
+ </maintainer>
+
+ <longdescription>
+ Administration tools for linux virtual server clusters
+ </longdescription>
+</pkgmetadata>