[oe] [meta-oe][PATCH v2] iperf3: Add recipe for version 3.0.10

Martin Jansa martin.jansa at gmail.com
Mon Jan 5 16:50:14 UTC 2015


On Mon, Jan 05, 2015 at 10:23:48AM -0600, Ben Shelton wrote:
> iperf3 is the new successor of iperf. The project is now mature enough
> as it started in 2009 and has stable releases. It supports reporting
> results in the portable JSON format, provides more information than
> iperf does and also adds some features from other tools such as nuttcp
> and netperf that were missing from the original iperf.
> 
> This recipe is based on the iperf v3.0.8 recipe posted to the list by
> Guy Morand
> 
> (http://lists.openembedded.org/pipermail/openembedded-devel/2014-October/098403.html)
> 
> with the following changes:
> 
> - Per feedback on the mailing list, remove the AUTOINC git version of
>   the recipe, and merge the .bb and .inc files.

This "review" comments belong bellow --- line (so not included in final
commit message).

> - Pass the 'foreign' option to automake.
> 
> - The Makefiles for the examples only work properly when the build is
>   done in the same directory as the source.  Fix this in Makefile.am and
>   run bootstrap.sh to regenerate Makefile.in.
> 
> - Bump the version to the latest stable release.
> 
> Upstream-Status: Pending [iperf-dev at googlegroups.com]

This belongs into individual .patch files (which should also have some
explanation and Signed-off-by lines.

> Signed-off-by: Ben Shelton <ben.shelton at ni.com>
> ---
>  .../iperf3/files/automake-foreign.patch            | 12 +++
>  .../iperf3/files/fix-examples.patch                | 98 ++++++++++++++++++++++

Please files -> iperf3 for slightly faster lookup.

>  meta-oe/recipes-benchmark/iperf3/iperf3_3.0.10.bb  | 26 ++++++
>  3 files changed, 136 insertions(+)
>  create mode 100644 meta-oe/recipes-benchmark/iperf3/files/automake-foreign.patch
>  create mode 100644 meta-oe/recipes-benchmark/iperf3/files/fix-examples.patch
>  create mode 100644 meta-oe/recipes-benchmark/iperf3/iperf3_3.0.10.bb
> 
> diff --git a/meta-oe/recipes-benchmark/iperf3/files/automake-foreign.patch b/meta-oe/recipes-benchmark/iperf3/files/automake-foreign.patch
> new file mode 100644
> index 0000000..07d8b49
> --- /dev/null
> +++ b/meta-oe/recipes-benchmark/iperf3/files/automake-foreign.patch
> @@ -0,0 +1,12 @@
> +diff -rupN iperf-3.0.10.old/configure.ac iperf-3.0.10/configure.ac
> +--- iperf-3.0.10.old/configure.ac	2014-12-16 13:39:58.000000000 -0600
> ++++ iperf-3.0.10/configure.ac	2014-12-29 15:09:27.534992643 -0600
> +@@ -32,7 +32,7 @@ AC_CONFIG_AUX_DIR(config)
> + 
> + 
> + # Initialize the automake system
> +-AM_INIT_AUTOMAKE
> ++AM_INIT_AUTOMAKE([foreign])
> + 
> + AM_MAINTAINER_MODE
> + AM_CONFIG_HEADER(src/config.h)
> diff --git a/meta-oe/recipes-benchmark/iperf3/files/fix-examples.patch b/meta-oe/recipes-benchmark/iperf3/files/fix-examples.patch
> new file mode 100644
> index 0000000..db5a37e
> --- /dev/null
> +++ b/meta-oe/recipes-benchmark/iperf3/files/fix-examples.patch
> @@ -0,0 +1,98 @@
> +diff -rupN iperf-3.0.10.old/examples/Makefile.am iperf-3.0.10/examples/Makefile.am
> +--- iperf-3.0.10.old/examples/Makefile.am	2014-12-16 13:39:58.000000000 -0600
> ++++ iperf-3.0.10/examples/Makefile.am	2014-12-29 17:12:02.238979626 -0600
> +@@ -2,11 +2,13 @@ noinst_PROGRAMS		= mic mis		# Build, but
> + 
> + mic_SOURCES		= mic.c
> + mic_CFLAGS		= -g
> +-mic_LDADD		= ../src/libiperf.la
> ++mic_LDADD		= $(top_builddir)/src/libiperf.la
> + mic_LDFLAGS		= -g
> ++mic_CPPFLAGS		= -I$(top_srcdir)/src
> + 
> + mis_SOURCES		= mis.c
> + mis_CFLAGS		= -g
> +-mis_LDADD		= ../src/libiperf.la
> ++mis_LDADD		= $(top_builddir)/src/libiperf.la
> + mis_LDFLAGS		= -g
> ++mis_CPPFLAGS		= -I$(top_srcdir)/src
> + 
> +diff -rupN iperf-3.0.10.old/examples/Makefile.in iperf-3.0.10/examples/Makefile.in
> +--- iperf-3.0.10.old/examples/Makefile.in	2014-12-16 13:39:58.000000000 -0600
> ++++ iperf-3.0.10/examples/Makefile.in	2014-12-29 17:12:07.518979616 -0600
> +@@ -94,7 +94,7 @@ CONFIG_CLEAN_VPATH_FILES =
> + PROGRAMS = $(noinst_PROGRAMS)
> + am_mic_OBJECTS = mic-mic.$(OBJEXT)
> + mic_OBJECTS = $(am_mic_OBJECTS)
> +-mic_DEPENDENCIES = ../src/libiperf.la
> ++mic_DEPENDENCIES = $(top_builddir)/src/libiperf.la
> + AM_V_lt = $(am__v_lt_ at AM_V@)
> + am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
> + am__v_lt_0 = --silent
> +@@ -104,7 +104,7 @@ mic_LINK = $(LIBTOOL) $(AM_V_lt) --tag=C
> + 	$(mic_LDFLAGS) $(LDFLAGS) -o $@
> + am_mis_OBJECTS = mis-mis.$(OBJEXT)
> + mis_OBJECTS = $(am_mis_OBJECTS)
> +-mis_DEPENDENCIES = ../src/libiperf.la
> ++mis_DEPENDENCIES = $(top_builddir)/src/libiperf.la
> + mis_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
> + 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(mis_CFLAGS) $(CFLAGS) \
> + 	$(mis_LDFLAGS) $(LDFLAGS) -o $@
> +@@ -286,12 +286,14 @@ top_builddir = @top_builddir@
> + top_srcdir = @top_srcdir@
> + mic_SOURCES = mic.c
> + mic_CFLAGS = -g
> +-mic_LDADD = ../src/libiperf.la
> ++mic_LDADD = $(top_builddir)/src/libiperf.la
> + mic_LDFLAGS = -g
> ++mic_CPPFLAGS = -I$(top_srcdir)/src
> + mis_SOURCES = mis.c
> + mis_CFLAGS = -g
> +-mis_LDADD = ../src/libiperf.la
> ++mis_LDADD = $(top_builddir)/src/libiperf.la
> + mis_LDFLAGS = -g
> ++mis_CPPFLAGS = -I$(top_srcdir)/src
> + all: all-am
> + 
> + .SUFFIXES:
> +@@ -375,32 +377,32 @@ distclean-compile:
> + @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
> + 
> + mic-mic.o: mic.c
> +- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mic_CFLAGS) $(CFLAGS) -MT mic-mic.o -MD -MP -MF $(DEPDIR)/mic-mic.Tpo -c -o mic-mic.o `test -f 'mic.c' || echo '$(srcdir)/'`mic.c
> ++ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mic_CPPFLAGS) $(CPPFLAGS) $(mic_CFLAGS) $(CFLAGS) -MT mic-mic.o -MD -MP -MF $(DEPDIR)/mic-mic.Tpo -c -o mic-mic.o `test -f 'mic.c' || echo '$(srcdir)/'`mic.c
> + @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mic-mic.Tpo $(DEPDIR)/mic-mic.Po
> + @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mic.c' object='mic-mic.o' libtool=no @AMDEPBACKSLASH@
> + @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
> +- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mic_CFLAGS) $(CFLAGS) -c -o mic-mic.o `test -f 'mic.c' || echo '$(srcdir)/'`mic.c
> ++ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mic_CPPFLAGS) $(CPPFLAGS) $(mic_CFLAGS) $(CFLAGS) -c -o mic-mic.o `test -f 'mic.c' || echo '$(srcdir)/'`mic.c
> + 
> + mic-mic.obj: mic.c
> +- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mic_CFLAGS) $(CFLAGS) -MT mic-mic.obj -MD -MP -MF $(DEPDIR)/mic-mic.Tpo -c -o mic-mic.obj `if test -f 'mic.c'; then $(CYGPATH_W) 'mic.c'; else $(CYGPATH_W) '$(srcdir)/mic.c'; fi`
> ++ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mic_CPPFLAGS) $(CPPFLAGS) $(mic_CFLAGS) $(CFLAGS) -MT mic-mic.obj -MD -MP -MF $(DEPDIR)/mic-mic.Tpo -c -o mic-mic.obj `if test -f 'mic.c'; then $(CYGPATH_W) 'mic.c'; else $(CYGPATH_W) '$(srcdir)/mic.c'; fi`
> + @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mic-mic.Tpo $(DEPDIR)/mic-mic.Po
> + @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mic.c' object='mic-mic.obj' libtool=no @AMDEPBACKSLASH@
> + @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
> +- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mic_CFLAGS) $(CFLAGS) -c -o mic-mic.obj `if test -f 'mic.c'; then $(CYGPATH_W) 'mic.c'; else $(CYGPATH_W) '$(srcdir)/mic.c'; fi`
> ++ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mic_CPPFLAGS) $(CPPFLAGS) $(mic_CFLAGS) $(CFLAGS) -c -o mic-mic.obj `if test -f 'mic.c'; then $(CYGPATH_W) 'mic.c'; else $(CYGPATH_W) '$(srcdir)/mic.c'; fi`
> + 
> + mis-mis.o: mis.c
> +- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mis_CFLAGS) $(CFLAGS) -MT mis-mis.o -MD -MP -MF $(DEPDIR)/mis-mis.Tpo -c -o mis-mis.o `test -f 'mis.c' || echo '$(srcdir)/'`mis.c
> ++ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mis_CPPFLAGS) $(CPPFLAGS) $(mis_CFLAGS) $(CFLAGS) -MT mis-mis.o -MD -MP -MF $(DEPDIR)/mis-mis.Tpo -c -o mis-mis.o `test -f 'mis.c' || echo '$(srcdir)/'`mis.c
> + @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mis-mis.Tpo $(DEPDIR)/mis-mis.Po
> + @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mis.c' object='mis-mis.o' libtool=no @AMDEPBACKSLASH@
> + @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
> +- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mis_CFLAGS) $(CFLAGS) -c -o mis-mis.o `test -f 'mis.c' || echo '$(srcdir)/'`mis.c
> ++ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mis_CPPFLAGS) $(CPPFLAGS) $(mis_CFLAGS) $(CFLAGS) -c -o mis-mis.o `test -f 'mis.c' || echo '$(srcdir)/'`mis.c
> + 
> + mis-mis.obj: mis.c
> +- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mis_CFLAGS) $(CFLAGS) -MT mis-mis.obj -MD -MP -MF $(DEPDIR)/mis-mis.Tpo -c -o mis-mis.obj `if test -f 'mis.c'; then $(CYGPATH_W) 'mis.c'; else $(CYGPATH_W) '$(srcdir)/mis.c'; fi`
> ++ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mis_CPPFLAGS) $(CPPFLAGS) $(mis_CFLAGS) $(CFLAGS) -MT mis-mis.obj -MD -MP -MF $(DEPDIR)/mis-mis.Tpo -c -o mis-mis.obj `if test -f 'mis.c'; then $(CYGPATH_W) 'mis.c'; else $(CYGPATH_W) '$(srcdir)/mis.c'; fi`
> + @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mis-mis.Tpo $(DEPDIR)/mis-mis.Po
> + @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mis.c' object='mis-mis.obj' libtool=no @AMDEPBACKSLASH@
> + @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
> +- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mis_CFLAGS) $(CFLAGS) -c -o mis-mis.obj `if test -f 'mis.c'; then $(CYGPATH_W) 'mis.c'; else $(CYGPATH_W) '$(srcdir)/mis.c'; fi`
> ++ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mis_CPPFLAGS) $(CPPFLAGS) $(mis_CFLAGS) $(CFLAGS) -c -o mis-mis.obj `if test -f 'mis.c'; then $(CYGPATH_W) 'mis.c'; else $(CYGPATH_W) '$(srcdir)/mis.c'; fi`
> + 
> + mostlyclean-libtool:
> + 	-rm -f *.lo
> diff --git a/meta-oe/recipes-benchmark/iperf3/iperf3_3.0.10.bb b/meta-oe/recipes-benchmark/iperf3/iperf3_3.0.10.bb
> new file mode 100644
> index 0000000..c37f464
> --- /dev/null
> +++ b/meta-oe/recipes-benchmark/iperf3/iperf3_3.0.10.bb
> @@ -0,0 +1,26 @@
> +SUMMARY = "Network benchmark tool"
> +DESCRIPTION = "\
> +iperf is a tool for active measurements of the maximum achievable bandwidth \
> +on IP networks. It supports tuning of various parameters related to timing, \
> +protocols, and buffers. For each test it reports the bandwidth, loss, and \
> +other parameters."
> +HOMEPAGE = "http://software.es.net/iperf/"
> +SECTION = "console/network"
> +BUGTRACKER = "https://github.com/esnet/iperf/issues"
> +AUTHOR = "ESNET <info at es.net>, Lawrence Berkeley National Laboratory <websupport at lbl.gov>"
> +LICENSE = "BSD"
> +LIC_FILES_CHKSUM = "file://LICENSE;md5=ab59a0c3a4bc3954d1ece68ea19d77a4"
> +
> +BRANCH = "master"
This variable doesn't seem to be used anywhere.

> +SRC_URI = "\
> +           git://github.com/esnet/iperf.git;branch=3.0-STABLE \
> +           file://automake-foreign.patch \
> +           file://fix-examples.patch \
> +           "

Please use 4 spaces for indentation and closing quote as first character
on separate line.

> +
> +SRCREV = "de420cc741dd8967ebc57f80b7712556442de81b"

Does this SRCREV point to 3.0.10 tag? I would still prefer the recipe to
be named iperf3_git.bb and set
PV = "3.0.10+gitr${SRCPV}"
inside to prevent people accidentally bumping SRCREV without updating PV
to reflect that.

> +S = "${WORKDIR}/git"
> +
> +inherit autotools
> +
> -- 
> 2.2.1
> 
> -- 
> _______________________________________________
> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20150105/22d1e48c/attachment-0002.sig>


More information about the Openembedded-devel mailing list