Commit 71cf5771 authored by Jianchuan Wang's avatar Jianchuan Wang Committed by Joe MacDonald

ipvsadm: Add version 1.26 (initial recipe)

* add ipvs administration tool
Signed-off-by: default avatarJianchuan Wang <jianchuan.wang@windriver.com>
Signed-off-by: default avatarMartin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: default avatarJoe MacDonald <joe_macdonald@mentor.com>
parent f640eca1
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
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
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
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
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment