[oe] [meta-oe][PATCH v2] tcpreplay:add recipe

Martin Jansa martin.jansa at gmail.com
Fri Nov 1 11:08:33 UTC 2013


On Thu, Oct 31, 2013 at 09:10:12AM +0100, Martin Jansa wrote:
> On Thu, Oct 31, 2013 at 02:40:47AM -0500, b40527 at freescale.com wrote:
> > From: Zongchun Yu <Zongchun.Yu at freescale.com>
> > 
> > *tcpreplay - a suite of GPLv3 licensed tools for UNIX operating
> > systems which gives you the ability to use previously captured traffic
> > in libpcap format to test a variety of network devices.
> > 
> > Signed-off-by: Zongchun Yu <Zongchun.Yu at freescale.com>
> > ---
> >  .../files/tcpreplay-3.4.4-cross-compile.patch      |   90 ++++++++++++++++++++
> >  .../files/tcpreplay-3.4.4-no-bfp-support.patch     |   13 +++
> >  .../recipes-support/tcpreplay/tcpreplay_3.4.4.bb   |   23 +++++
> >  3 files changed, 126 insertions(+)
> >  create mode 100755 meta-oe/recipes-support/tcpreplay/files/tcpreplay-3.4.4-cross-compile.patch
> >  create mode 100644 meta-oe/recipes-support/tcpreplay/files/tcpreplay-3.4.4-no-bfp-support.patch
> >  create mode 100644 meta-oe/recipes-support/tcpreplay/tcpreplay_3.4.4.bb
> 
> Looks like something for meta-networking?

it fails to detect libpcap in my world builds:

| checking for libpcap... /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/sysroots/qemuarm/usr
| checking for library containing pcap_close... no
| configure: error: Unable to link libpcap in /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/sysroots/qemuarm/usr
| Configure failed. The contents of all config.log files follows to aid debugging
| /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/tcpreplay/3.4.4-r0/tcpreplay-3.4.4/config.log
| This file contains any messages produced by compilers while
| running configure, to aid debugging if configure makes a mistake.

| configure:18128: checking for libpcap
| configure:18170: result: /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/sysroots/qemuarm/usr
| configure:18180: checking for library containing pcap_close
| configure:18211: arm-oe-linux-gnueabi-gcc  -march=armv5te -marm -mthumb-interwork --sysroot=/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/sysroots/qemuarm -o conftest -D_U_="__attribute__((unused))" -O2 -pipe -g -feliminate-unused-debug-types -Wall -O3 -std=gnu99 -Wextra -Wno-variadic-macros -Wfatal-errors -I/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/sysroots/qemuarm/usr/include  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed conftest.c /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/sysroots/qemuarm/usr/lib/libpcap.a >&5
| ./pcap-linux.c:525: error: undefined reference to 'nl_socket_alloc'
| ./pcap-linux.c:532: error: undefined reference to 'genl_connect'
| ./pcap-linux.c:538: error: undefined reference to 'genl_ctrl_alloc_cache'
| ./pcap-linux.c:546: error: undefined reference to 'genl_ctrl_search_by_name'
| ./pcap-linux.c:558: error: undefined reference to 'nl_socket_free'
| ./pcap-linux.c:540: error: undefined reference to 'nl_geterror'
| ./pcap-linux.c:556: error: undefined reference to 'nl_cache_free'
| ./pcap-linux.c:565: error: undefined reference to 'genl_family_put'
| ./pcap-linux.c:566: error: undefined reference to 'nl_cache_free'
| ./pcap-linux.c:567: error: undefined reference to 'nl_socket_free'
| ./pcap-linux.c:678: error: undefined reference to 'nlmsg_alloc'
| ./pcap-linux.c:685: error: undefined reference to 'genl_family_get_id'
| ./pcap-linux.c:685: error: undefined reference to 'genlmsg_put'
| ./pcap-linux.c:687: error: undefined reference to 'nla_put'
| ./pcap-linux.c:689: error: undefined reference to 'nl_send_auto_complete'
| ./pcap-linux.c:697: error: undefined reference to 'nl_wait_for_ack'
| ./pcap-linux.c:709: error: undefined reference to 'nlmsg_free'
| ./pcap-linux.c:716: error: undefined reference to 'nlmsg_free'
| ./pcap-linux.c:691: error: undefined reference to 'nl_geterror'
| ./pcap-linux.c:702: error: undefined reference to 'nlmsg_free'
| ./pcap-linux.c:699: error: undefined reference to 'nl_geterror'
| ./pcap-linux.c:582: error: undefined reference to 'nlmsg_alloc'
| ./pcap-linux.c:589: error: undefined reference to 'genl_family_get_id'
| ./pcap-linux.c:589: error: undefined reference to 'genlmsg_put'
| ./pcap-linux.c:591: error: undefined reference to 'nla_put'
| ./pcap-linux.c:592: error: undefined reference to 'nla_put'
| ./pcap-linux.c:593: error: undefined reference to 'nla_put'
| ./pcap-linux.c:595: error: undefined reference to 'nl_send_auto_complete'
| ./pcap-linux.c:623: error: undefined reference to 'nl_wait_for_ack'
| ./pcap-linux.c:637: error: undefined reference to 'nlmsg_free'
| ./pcap-linux.c:616: error: undefined reference to 'nl_geterror'
| collect2: error: ld returned 1 exit status
| configure:18211: $? = 1



> 
> > 
> > diff --git a/meta-oe/recipes-support/tcpreplay/files/tcpreplay-3.4.4-cross-compile.patch b/meta-oe/recipes-support/tcpreplay/files/tcpreplay-3.4.4-cross-compile.patch
> > new file mode 100755
> > index 0000000..226f97a
> > --- /dev/null
> > +++ b/meta-oe/recipes-support/tcpreplay/files/tcpreplay-3.4.4-cross-compile.patch
> > @@ -0,0 +1,90 @@
> > +Uptream-Status: Inappropriate [embedded specific]
> > +
> > +--- a/configure.ac
> > ++++ b/configure.ac
> > +@@ -402,7 +402,6 @@
> > + 
> > + dnl 0.9.6 (which is still thinks it is 0.9.5 due to a bug) introduces an important
> > + dnl fix for OSX.  See: http://tcpreplay.synfin.net/trac/ticket/167
> > +-libpcap_version_096=no
> > + AC_RUN_IFELSE(AC_LANG_PROGRAM([[
> > + #include <string.h>
> > + #include <stdlib.h>
> > +@@ -419,11 +418,12 @@
> > +             exit(0);
> > + 
> > +     exit(1);
> > +-]]), [
> > +-    libpcap_version_096=yes
> > +-])
> > ++]]),
> > ++ [libpcap_version_096=yes],
> > ++ [libpcap_version_096=no],
> > ++ [libpcap_version_096=yes]
> > ++)
> > + 
> > +-libpcap_ver8=no
> > + AC_RUN_IFELSE(AC_LANG_PROGRAM([[
> > + #include <string.h>
> > + #include <stdlib.h>
> > +@@ -444,13 +444,12 @@
> > +         exit(0);
> > + 
> > +     exit(1);
> > +-]]), [
> > +-    libpcap_ver8=yes
> > +-], [
> > +-    libpcap_ver8=no
> > +-])
> > ++]]),
> > ++ [libpcap_ver8=yes],
> > ++ [libpcap_ver8=no],
> > ++ [libpcap_ver8=yes]
> > ++)
> > + 
> > +-libpcap_ver7=no
> > + AC_RUN_IFELSE(AC_LANG_PROGRAM([[
> > + #include <string.h>
> > + #include <stdlib.h>
> > +@@ -469,11 +468,11 @@
> > +             exit(0);
> > + 
> > +     exit(1);
> > +-]]), [
> > +-    libpcap_ver7=yes
> > +-], [
> > +-    libpcap_ver7=no
> > +-])
> > ++]]),
> > ++ [libpcap_ver7=yes],
> > ++ [libpcap_ver7=no],
> > ++ [libpcap_ver7=yes]
> > ++)
> > + 
> > + if test x$libpcap_ver8 = xyes ; then
> > +     AC_MSG_RESULT(>= 0.8.0)
> > +@@ -761,8 +760,8 @@
> > + 
> > + have_bpf=no
> > + dnl Check for BSD's BPF
> > +-AC_MSG_CHECKING(for BPF device sending support)
> > +-AC_TRY_RUN([
> > ++AC_CACHE_CHECK([for BPF device sending support], ac_cv_have_bpf,
> > ++[AC_TRY_RUN([
> > + #include <stdio.h>
> > + #include <stdlib.h>
> > + #include <sys/types.h>
> > +@@ -796,8 +795,11 @@
> > +             [Do we have BPF device support?])
> > +     AC_MSG_RESULT(yes)
> > +     have_bpf=yes
> > +-],[
> > +-    AC_MSG_RESULT(no)
> > ++],
> > ++[AC_MSG_RESULT(no)],
> > ++[AC_MSG_ERROR([cross-compiling,
> > ++  presetting ac_cv_have_bpf=(yes|no) will help])]
> > ++)
> > + ])
> > + 
> > + 
> > diff --git a/meta-oe/recipes-support/tcpreplay/files/tcpreplay-3.4.4-no-bfp-support.patch b/meta-oe/recipes-support/tcpreplay/files/tcpreplay-3.4.4-no-bfp-support.patch
> > new file mode 100644
> > index 0000000..70fa959
> > --- /dev/null
> > +++ b/meta-oe/recipes-support/tcpreplay/files/tcpreplay-3.4.4-no-bfp-support.patch
> > @@ -0,0 +1,13 @@
> > +Uptream-Status: Inappropriate [embedded specific]
> > +
> > +--- a/configure.ac
> > ++++ b/configure.ac
> > +@@ -758,6 +758,8 @@
> > +     AC_MSG_RESULT(no)
> > + ])
> > + 
> > ++ac_cv_have_bpf=no
> > ++
> > + have_bpf=no
> > + dnl Check for BSD's BPF
> > + AC_CACHE_CHECK([for BPF device sending support], ac_cv_have_bpf,
> > diff --git a/meta-oe/recipes-support/tcpreplay/tcpreplay_3.4.4.bb b/meta-oe/recipes-support/tcpreplay/tcpreplay_3.4.4.bb
> > new file mode 100644
> > index 0000000..98c9c4a
> > --- /dev/null
> > +++ b/meta-oe/recipes-support/tcpreplay/tcpreplay_3.4.4.bb
> > @@ -0,0 +1,23 @@
> > +SUMMARY = "Use previously captured traffic to test network devices"
> > +
> > +HOMEPAGE = "http://tcpreplay.synfin.net/"
> > +SECTION = "console/network"
> > +
> > +LICENSE = "GPLv3"
> > +LIC_FILES_CHKSUM = "file://docs/LICENSE;md5=c33cccf72cc1603e8a72a84811ae3ac8"
> > +
> > +PR = "r0"
> > +
> > +SRC_URI = "http://prdownloads.sourceforge.net/tcpreplay/${PV}/tcpreplay-${PV}.tar.gz \
> > +           file://tcpreplay-3.4.4-cross-compile.patch \
> > +           file://tcpreplay-3.4.4-no-bfp-support.patch \
> > +           "
> > +SRC_URI[md5sum] = "22725feb9b2590809f9350308ec65180"
> > +SRC_URI[sha256sum] = "7a809c58ddec86407fd6e5597ac883d7874a19bea81d716bb2b1c6e3b0e7b58f"
> > +
> > +DEPENDS = "libpcap"
> > +
> > +EXTRA_OECONF += "--with-libpcap=${STAGING_DIR_HOST}/usr"
> > +
> > +inherit siteinfo autotools
> > +
> > -- 
> > 1.7.9.7
> > 
> > 
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel at lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> 
> -- 
> Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com



-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20131101/8a299dc0/attachment-0002.sig>


More information about the Openembedded-devel mailing list