mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-04 14:39:54 +00:00
ipvsadm: Add version 1.26 (initial recipe)
* add ipvs administration tool Signed-off-by: Jianchuan Wang <jianchuan.wang@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
This commit is contained in:
committed by
Joe MacDonald
parent
f640eca1cc
commit
71cf57715f
+97
@@ -0,0 +1,97 @@
|
|||||||
|
From 58292175115bae7a4c3600d3022e59ea57213025 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jianchuan Wang <jianchuan.wang@windriver.com>
|
||||||
|
Date: Mon, 12 Jan 2015 15:53:23 +0800
|
||||||
|
Subject: [PATCH] Modify the Makefile for cross compile.
|
||||||
|
|
||||||
|
Upstream-Status: Inappropriate [embedded specific]
|
||||||
|
|
||||||
|
Signed-off-by: Jianchuan Wang <jianchuan.wang@windriver.com>
|
||||||
|
---
|
||||||
|
Makefile | 23 ++++++-----------------
|
||||||
|
libipvs/Makefile | 3 +--
|
||||||
|
2 files changed, 7 insertions(+), 19 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index e4e03cc..461c021 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -35,10 +35,9 @@ ARCH = $(shell uname -m)
|
||||||
|
RPMSOURCEDIR = $(shell rpm --eval '%_sourcedir')
|
||||||
|
RPMSPECDIR = $(shell rpm --eval '%_specdir')
|
||||||
|
|
||||||
|
-CC = gcc
|
||||||
|
INCLUDE =
|
||||||
|
SBIN = $(BUILD_ROOT)/sbin
|
||||||
|
-MANDIR = usr/man
|
||||||
|
+MANDIR = usr/share/man
|
||||||
|
MAN = $(BUILD_ROOT)/$(MANDIR)/man8
|
||||||
|
INIT = $(BUILD_ROOT)/etc/rc.d/init.d
|
||||||
|
MKDIR = mkdir
|
||||||
|
@@ -62,17 +61,7 @@ RPMBUILD = $(shell \
|
||||||
|
echo "/bin/rpm"; \
|
||||||
|
fi )
|
||||||
|
|
||||||
|
-ifeq (,$(FORCE_GETOPT))
|
||||||
|
-LIB_SEARCH = /lib64 /usr/lib64 /usr/local/lib64 /lib /usr/lib /usr/local/lib
|
||||||
|
-POPT_LIB = $(shell for i in $(LIB_SEARCH); do \
|
||||||
|
- if [ -f $$i/libpopt.a ]; then \
|
||||||
|
- if nm $$i/libpopt.a | fgrep -q poptGetContext; then \
|
||||||
|
- echo "-lpopt"; \
|
||||||
|
- break; \
|
||||||
|
- fi; \
|
||||||
|
- fi; \
|
||||||
|
-done)
|
||||||
|
-endif
|
||||||
|
+POPT_LIB = -lpopt
|
||||||
|
|
||||||
|
ifneq (,$(POPT_LIB))
|
||||||
|
POPT_DEFINE = -DHAVE_POPT
|
||||||
|
@@ -81,7 +70,7 @@ endif
|
||||||
|
OBJS = ipvsadm.o config_stream.o dynamic_array.o
|
||||||
|
LIBS = $(POPT_LIB)
|
||||||
|
ifneq (0,$(HAVE_NL))
|
||||||
|
-LIBS += -lnl
|
||||||
|
+LIBS += -lnl-3 -lnl-genl-3
|
||||||
|
endif
|
||||||
|
DEFINES = -DVERSION=\"$(VERSION)\" -DSCHEDULERS=\"$(SCHEDULERS)\" \
|
||||||
|
-DPE_LIST=\"$(PE_LIST)\" $(POPT_DEFINE)
|
||||||
|
@@ -91,13 +80,13 @@ DEFINES += $(shell if [ ! -f ../ip_vs.h ]; then \
|
||||||
|
|
||||||
|
.PHONY = all clean install dist distclean rpm rpms
|
||||||
|
|
||||||
|
-all: libs ipvsadm
|
||||||
|
+all: ipvsadm
|
||||||
|
|
||||||
|
libs:
|
||||||
|
make -C libipvs
|
||||||
|
|
||||||
|
-ipvsadm: $(OBJS) $(STATIC_LIBS)
|
||||||
|
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
|
||||||
|
+ipvsadm: $(OBJS) libs
|
||||||
|
+ $(CC) $(CFLAGS) -o $@ $(OBJS) $(STATIC_LIBS) $(LIBS)
|
||||||
|
|
||||||
|
install: all
|
||||||
|
if [ ! -d $(SBIN) ]; then $(MKDIR) -p $(SBIN); fi
|
||||||
|
diff --git a/libipvs/Makefile b/libipvs/Makefile
|
||||||
|
index a527a7f..b7300ec 100644
|
||||||
|
--- a/libipvs/Makefile
|
||||||
|
+++ b/libipvs/Makefile
|
||||||
|
@@ -1,6 +1,5 @@
|
||||||
|
# Makefile for libipvs
|
||||||
|
|
||||||
|
-CC = gcc
|
||||||
|
CFLAGS = -Wall -Wunused -Wstrict-prototypes -g -fPIC
|
||||||
|
ifneq (0,$(HAVE_NL))
|
||||||
|
CFLAGS += -DLIBIPVS_USE_NL
|
||||||
|
@@ -18,7 +17,7 @@ SHARED_LIB = libipvs.so
|
||||||
|
all: $(STATIC_LIB) $(SHARED_LIB)
|
||||||
|
|
||||||
|
$(STATIC_LIB): libipvs.o ip_vs_nl_policy.o
|
||||||
|
- ar rv $@ $^
|
||||||
|
+ $(AR) rv $@ $^
|
||||||
|
|
||||||
|
$(SHARED_LIB): libipvs.o ip_vs_nl_policy.o
|
||||||
|
$(CC) -shared -Wl,-soname,$@ -o $@ $^
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
+63
@@ -0,0 +1,63 @@
|
|||||||
|
From 2686213259b15df9cf1d969c5a14d62f14cfbaae Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jianchuan Wang <jianchuan.wang@windriver.com>
|
||||||
|
Date: Thu, 8 Jan 2015 17:37:11 +0800
|
||||||
|
Subject: [PATCH 2/2] Replace nl_handle to nl_sock.
|
||||||
|
|
||||||
|
The nl_handle was replace with nl_sock in the libnl-3.
|
||||||
|
|
||||||
|
Upstream-Status: Inappropriate [embedded specific]
|
||||||
|
|
||||||
|
Signed-off-by: Jianchuan Wang <jianchuan.wang@windriver.com>
|
||||||
|
---
|
||||||
|
libipvs/libipvs.c | 10 +++++-----
|
||||||
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/libipvs/libipvs.c b/libipvs/libipvs.c
|
||||||
|
index a157e18..21a9bfa 100644
|
||||||
|
--- a/libipvs/libipvs.c
|
||||||
|
+++ b/libipvs/libipvs.c
|
||||||
|
@@ -32,7 +32,7 @@ static void* ipvs_func = NULL;
|
||||||
|
struct ip_vs_getinfo ipvs_info;
|
||||||
|
|
||||||
|
#ifdef LIBIPVS_USE_NL
|
||||||
|
-static struct nl_handle *sock = NULL;
|
||||||
|
+static struct nl_sock *sock = NULL;
|
||||||
|
static int family, try_nl = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@@ -73,7 +73,7 @@ int ipvs_nl_send_message(struct nl_msg *msg, nl_recvmsg_msg_cb_t func, void *arg
|
||||||
|
{
|
||||||
|
int err = EINVAL;
|
||||||
|
|
||||||
|
- sock = nl_handle_alloc();
|
||||||
|
+ sock = nl_socket_alloc();
|
||||||
|
if (!sock) {
|
||||||
|
nlmsg_free(msg);
|
||||||
|
return -1;
|
||||||
|
@@ -88,7 +88,7 @@ int ipvs_nl_send_message(struct nl_msg *msg, nl_recvmsg_msg_cb_t func, void *arg
|
||||||
|
|
||||||
|
/* To test connections and set the family */
|
||||||
|
if (msg == NULL) {
|
||||||
|
- nl_handle_destroy(sock);
|
||||||
|
+ nl_socket_free(sock);
|
||||||
|
sock = NULL;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
@@ -104,12 +104,12 @@ int ipvs_nl_send_message(struct nl_msg *msg, nl_recvmsg_msg_cb_t func, void *arg
|
||||||
|
|
||||||
|
nlmsg_free(msg);
|
||||||
|
|
||||||
|
- nl_handle_destroy(sock);
|
||||||
|
+ nl_socket_free(sock);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
fail_genl:
|
||||||
|
- nl_handle_destroy(sock);
|
||||||
|
+ nl_socket_free(sock);
|
||||||
|
sock = NULL;
|
||||||
|
nlmsg_free(msg);
|
||||||
|
errno = err;
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
||||||
+39
@@ -0,0 +1,39 @@
|
|||||||
|
From 2f4cdf70cf92d3a9503d8ff045ba277db40bb4e7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Joe MacDonald <joe_macdonald@mentor.com>
|
||||||
|
Date: Monday, 13 Apr 2015 14:12:37 -0400
|
||||||
|
Subject: [PATCH] ipvsadm: remove dependency on bash
|
||||||
|
|
||||||
|
The save/restore scripts are very simple and don't depend on any BASH
|
||||||
|
features at all, so switch the interpreter to /bin/sh.
|
||||||
|
|
||||||
|
Upstream-Status: Pending
|
||||||
|
|
||||||
|
Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
|
||||||
|
---
|
||||||
|
ipvsadm-restore | 2 +-
|
||||||
|
ipvsadm-save | 2 +-
|
||||||
|
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/ipvsadm-restore b/ipvsadm-restore
|
||||||
|
index f24e1b3..a9fa8bc 100644
|
||||||
|
--- a/ipvsadm-restore
|
||||||
|
+++ b/ipvsadm-restore
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-#!/bin/bash
|
||||||
|
+#!/bin/sh
|
||||||
|
# ipvsadm-restore - Restore IPVS rules
|
||||||
|
#
|
||||||
|
# A very simple wrapper to restore IPVS rules
|
||||||
|
diff --git a/ipvsadm-save b/ipvsadm-save
|
||||||
|
index f4d399e..af51638 100644
|
||||||
|
--- a/ipvsadm-save
|
||||||
|
+++ b/ipvsadm-save
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-#!/bin/bash
|
||||||
|
+#!/bin/sh
|
||||||
|
# ipvsadm-save - Save IPVS rules
|
||||||
|
#
|
||||||
|
# A very simple wrapper to save IPVS rules
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
SUMMARY = "Linux Virtual Server administration Utility"
|
||||||
|
DESCRIPTION = "Ipvsadm is used to set up, maintain or inspect the virtual server \
|
||||||
|
table in the Linux kernel. The Linux Virtual Server can be used to \
|
||||||
|
build scalable network services based on a cluster of two or more nodes. \
|
||||||
|
The active node of the cluster redirects service requests to a \
|
||||||
|
collection of server hosts that will actually perform the services. \
|
||||||
|
Supported features include two protocols (TCP and UDP), three packet-forwarding \
|
||||||
|
methods (NAT, tunneling, and direct routing), and eight load balancing algorithms \
|
||||||
|
(round robin, weighted round robin, least-connec-tion, weighted least-connection, \
|
||||||
|
locality-based least-connection, locality-based least-connection with replication, \
|
||||||
|
destination-hashing, and source-hashing)."
|
||||||
|
SECTION = "console/network"
|
||||||
|
LICENSE = "GPL-2.0"
|
||||||
|
LIC_FILES_CHKSUM = "file://README;beginline=40;endline=56;md5=a54cba37b64924aa5008881607942892"
|
||||||
|
|
||||||
|
DEPENDS += "libnl popt"
|
||||||
|
|
||||||
|
SRC_URI = "http://www.linuxvirtualserver.org/software/kernel-2.6/${BP}.tar.gz \
|
||||||
|
file://0001-Modify-the-Makefile-for-cross-compile.patch \
|
||||||
|
file://0002-Replace-nl_handle-to-nl_sock.patch \
|
||||||
|
file://0003-ipvsadm-remove-dependency-on-bash.patch \
|
||||||
|
"
|
||||||
|
|
||||||
|
SRC_URI[md5sum] = "eac3ba3f62cd4dea2da353aeddd353a8"
|
||||||
|
SRC_URI[sha256sum] = "6d6c46fecb1c532a892616b4445c73b71730e8790d5630f60269fd9cbee0eb2d"
|
||||||
|
|
||||||
|
do_compile() {
|
||||||
|
oe_runmake \
|
||||||
|
CC="${CC} -I${STAGING_INCDIR} -I${STAGING_INCDIR}/libnl3 -L${STAGING_LIBDIR}" \
|
||||||
|
all
|
||||||
|
}
|
||||||
|
|
||||||
|
do_install() {
|
||||||
|
oe_runmake 'BUILD_ROOT=${D}' install
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user