sys-cluster/ipvsadm: Sync with Gentoo

It's from Gentoo commit 46701711da6713dfc1aaa34d9582b1af811f20de.
This commit is contained in:
Krzesimir Nowak 2023-11-23 14:48:38 +01:00
parent 92c14d10f8
commit aa1086a523
5 changed files with 16 additions and 212 deletions

View File

@ -1,3 +1 @@
DIST ipvsadm-1.27.tar.xz 38196 BLAKE2B 1b8a72b11c14a909b8b7459c459195d32bb7944ed4a01d963e2b85e8279c5d7d2fd095d9c23473c64dc15881a2b22b439b39c10b2019b3183f54e22535a258a9 SHA512 cf982b7981674c91d1b7516de7b55cf378b306ce4a53e13976b8eeb8610015c4fa4aa9d251bc4d329db8e05c1862863160af2d3c63b76263f290087cffdf1b80
DIST ipvsadm-1.28.tar.xz 38600 BLAKE2B 2a892f858324788b425f7c5aa6ce6a1548c6cd166977d1d36a5236061d1a6ce7e31f6bc1e24a7d53a57406e468271ccebc01330de6be9784c1a955b60eb89d16 SHA512 a1e10ce30751d9439f832e221e5c41b338f87dcc94a0b21329d908a9164f8882049af9d9d918b764b36c30e353d5b8db49d7088e60c24e4748713c06cccf7035
DIST ipvsadm-1.31.tar.xz 42396 BLAKE2B a42ceea834fb16e25ea34417227f6b632fe3b94c8a7ce5d3daff4375884fd47f14999551eab3bf7226d5eb02f25aef4c77a8287592b642946683bc5ddc6783da SHA512 1c7187405771e702eff0009d688fa697375b833a486ff88b41a4a0dcfaa3e9884c7e3bc34375efea5f6a2d025847c9fac9fd6ba694ec3bf2fc9d357eef2cb631

View File

@ -1,56 +0,0 @@
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

View File

@ -1,73 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit epatch 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=$($(tc-getPKG_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="$($(tc-getPKG_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."
}

View File

@ -1,71 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit epatch 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=$($(tc-getPKG_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="$($(tc-getPKG_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."
}

View File

@ -1,9 +1,9 @@
# Copyright 1999-2021 Gentoo Authors
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
EAPI=8
inherit epatch linux-info toolchain-funcs
inherit linux-info toolchain-funcs
DESCRIPTION="utility to administer the IP virtual server services"
HOMEPAGE="http://linuxvirtualserver.org/"
@ -11,14 +11,21 @@ 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"
KEYWORDS="amd64 ~ia64 ~ppc ppc64 ~s390 sparc x86"
IUSE="static-libs"
RDEPEND=">=sys-libs/ncurses-5.2:*
RDEPEND="
>=sys-libs/ncurses-5.2:=
dev-libs/libnl:=
>=dev-libs/popt-1.16"
DEPEND="${RDEPEND}
virtual/pkgconfig"
>=dev-libs/popt-1.16
"
BDEPEND="
${RDEPEND}
virtual/pkgconfig
"
PATCHES=( "${FILESDIR}/${PN}"-1.27-buildsystem.patch )
pkg_pretend() {
if kernel_is 2 4; then
@ -29,7 +36,6 @@ pkg_pretend() {
src_prepare() {
default
epatch "${FILESDIR}"/${PN}-1.27-buildsystem.patch
use static-libs && export STATIC=1
}
@ -44,7 +50,7 @@ src_compile() {
INCLUDE="-I.. -I. ${libnl_include}" \
CC="$(tc-getCC)" \
HAVE_NL=1 \
STATIC=${STATIC} \
STATIC="${STATIC}" \
POPT_LIB="$($(tc-getPKG_CONFIG) --libs popt)"
}