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) [email protected] wrote:

> From: Jianchuan Wang <[email protected]>
> 
> * add ipvs administration tool
> 
> Signed-off-by: Jianchuan Wang <[email protected]>
> ---
>  ...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 <[email protected]>
> +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 <[email protected]>
> +---
> + 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 <[email protected]>
> +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 <[email protected]>
> +---
> + 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: signature.asc
Description: Digital signature

-- 
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Reply via email to