aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJianchuan Wang <jianchuan.wang@windriver.com>2015-01-22 17:35:56 +0800
committerJoe MacDonald <joe_macdonald@mentor.com>2015-04-15 08:47:26 -0400
commit71cf57715f3e847fad339adcfdaeab511d42d2f7 (patch)
tree1e3310fe82cbffe1b4627a5b59f5a42aeaf95a0d
parentf640eca1cc7919e3f42c9c5790de1d11e982b5f7 (diff)
downloadmeta-openembedded-contrib-71cf57715f3e847fad339adcfdaeab511d42d2f7.tar.gz
meta-openembedded-contrib-71cf57715f3e847fad339adcfdaeab511d42d2f7.tar.bz2
meta-openembedded-contrib-71cf57715f3e847fad339adcfdaeab511d42d2f7.zip
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>
-rw-r--r--meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch97
-rw-r--r--meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch63
-rw-r--r--meta-networking/recipes-support/ipvsadm/ipvsadm/0003-ipvsadm-remove-dependency-on-bash.patch39
-rw-r--r--meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb35
4 files changed, 234 insertions, 0 deletions
diff --git a/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch b/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch
new file mode 100644
index 0000000000..7c3dfe4a84
--- /dev/null
+++ b/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch
@@ -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
+
diff --git a/meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch b/meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch
new file mode 100644
index 0000000000..7896d6d1ea
--- /dev/null
+++ b/meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch
@@ -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
+
diff --git a/meta-networking/recipes-support/ipvsadm/ipvsadm/0003-ipvsadm-remove-dependency-on-bash.patch b/meta-networking/recipes-support/ipvsadm/ipvsadm/0003-ipvsadm-remove-dependency-on-bash.patch
new file mode 100644
index 0000000000..800114f2ce
--- /dev/null
+++ b/meta-networking/recipes-support/ipvsadm/ipvsadm/0003-ipvsadm-remove-dependency-on-bash.patch
@@ -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
+
diff --git a/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb b/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb
new file mode 100644
index 0000000000..b640a5081d
--- /dev/null
+++ b/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb
@@ -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
+}