From: Joe MacDonald <Joe_MacDonald@mentor.com>
To: <jianchuan.wang@windriver.com>
Cc: openembedded-devel@lists.openembedded.org
Subject: Re: [meta-networking][PATCH v3] ipvsadm: Add version 1.26 (initial recipe)
Date: Mon, 26 Jan 2015 09:43:13 -0500 [thread overview]
Message-ID: <20150126144313.GG4791@mentor.com> (raw)
In-Reply-To: <1421919356-3982-1-git-send-email-jianchuan.wang@windriver.com>
[-- Attachment #1: Type: text/plain, Size: 9173 bytes --]
Hi Jianchuan,
Two things on this one. First, v3 produces this:
WARNING: QA Issue: ipvsadm requires /bin/bash, but no providers in its RDEPENDS [file-rdeps]
Second, I don't think that it's necessarily the case that your first
patch is inappropriate for up-stream. Cross-compilation fixes aren't
generally unwelcome by maintainers. That's not a barrier to acceptance
to meta-networking, of course, but you may want to consider sending it
upstream anyway to see what the maintainers think.
The second patch looks very much like it's required for up-stream so if
they don't already have such a change, you should definitely submit it.
-J.
[[oe] [meta-networking][PATCH v3] ipvsadm: Add version 1.26 (initial recipe)] On 15.01.22 (Thu 17:35) jianchuan.wang@windriver.com wrote:
> From: Jianchuan Wang <jianchuan.wang@windriver.com>
>
> * add ipvs administration tool
>
> Signed-off-by: Jianchuan Wang <jianchuan.wang@windriver.com>
> ---
> ...001-Modify-the-Makefile-for-cross-compile.patch | 97 ++++++++++++++++++++++
> .../0002-Replace-nl_handle-to-nl_sock.patch | 63 ++++++++++++++
> .../recipes-support/ipvsadm/ipvsadm_1.26.bb | 34 ++++++++
> 3 files changed, 194 insertions(+)
> create mode 100644 meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch
> create mode 100644 meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch
> create mode 100644 meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb
>
> 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 0000000..7c3dfe4
> --- /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 0000000..7896d6d
> --- /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_1.26.bb b/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb
> new file mode 100644
> index 0000000..ac97d47
> --- /dev/null
> +++ b/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb
> @@ -0,0 +1,34 @@
> +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 \
> +"
> +
> +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
> +}
> --
> 1.9.1
>
--
-Joe MacDonald.
:wq
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 501 bytes --]
prev parent reply other threads:[~2015-01-26 14:43 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-22 9:35 [meta-networking][PATCH v3] ipvsadm: Add version 1.26 (initial recipe) jianchuan.wang
2015-01-26 14:43 ` Joe MacDonald [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150126144313.GG4791@mentor.com \
--to=joe_macdonald@mentor.com \
--cc=jianchuan.wang@windriver.com \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.