mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-05-21 13:06:41 +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:
parent
f640eca1cc
commit
71cf57715f
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
35
meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb
Normal file
35
meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb
Normal file
@ -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
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user