tcpdump-4.1.1

From: Nicolas Boichat <nicolas@boichat.ch>

Ported most patches from 4.0.0, except no-ipv6-tcpdump4.patch (fixed upstream).
---
 .../0001-minimal-IEEE802.15.4-allowed.patch        |   22 ++++++++++
 recipes/tcpdump/tcpdump-4.1.1/configure.patch      |   29 ++++++++++++++
 recipes/tcpdump/tcpdump-4.1.1/ipv6-cross.patch     |   41 ++++++++++++++++++++
 .../tcpdump-4.1.1/tcpdump_configure_no_-O2.patch   |   42 ++++++++++++++++++++
 recipes/tcpdump/tcpdump_4.1.1.bb                   |   38 ++++++++++++++++++
 5 files changed, 172 insertions(+), 0 deletions(-)
 create mode 100644 recipes/tcpdump/tcpdump-4.1.1/0001-minimal-IEEE802.15.4-allowed.patch
 create mode 100644 recipes/tcpdump/tcpdump-4.1.1/configure.patch
 create mode 100644 recipes/tcpdump/tcpdump-4.1.1/ipv6-cross.patch
 create mode 100644 recipes/tcpdump/tcpdump-4.1.1/tcpdump_configure_no_-O2.patch
 create mode 100644 recipes/tcpdump/tcpdump_4.1.1.bb

diff --git a/recipes/tcpdump/tcpdump-4.1.1/0001-minimal-IEEE802.15.4-allowed.patch b/recipes/tcpdump/tcpdump-4.1.1/0001-minimal-IEEE802.15.4-allowed.patch
new file mode 100644
index 0000000..9d3d60d
--- /dev/null
+++ b/recipes/tcpdump/tcpdump-4.1.1/0001-minimal-IEEE802.15.4-allowed.patch
@@ -0,0 +1,22 @@
+From: Sergey Lapin <slapin@slind.org>
+Date: Wed, 28 Jan 2009 16:34:15 +0300
+Subject: [PATCH] minimal IEEE802.15.4 allowed
+
+---
+ tcpdump.c |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/tcpdump.c b/tcpdump.c
+index 06683af..fbc944c 100644
+--- a/tcpdump.c
++++ b/tcpdump.c
+@@ -282,6 +282,9 @@ static struct printer printers[] = {
+ #ifdef DLT_MFR
+ 	{ mfr_if_print,		DLT_MFR },
+ #endif
++#ifdef DLT_IEEE802_15_4
++	{ raw_if_print, DLT_IEEE802_15_4 },
++#endif
+ #if defined(DLT_BLUETOOTH_HCI_H4_WITH_PHDR) && defined(HAVE_PCAP_BLUETOOTH_H)
+ 	{ bt_if_print,		DLT_BLUETOOTH_HCI_H4_WITH_PHDR},
+ #endif
diff --git a/recipes/tcpdump/tcpdump-4.1.1/configure.patch b/recipes/tcpdump/tcpdump-4.1.1/configure.patch
new file mode 100644
index 0000000..3697420
--- /dev/null
+++ b/recipes/tcpdump/tcpdump-4.1.1/configure.patch
@@ -0,0 +1,29 @@
+---
+ aclocal.m4   |    1 -
+ configure.in |    1 +
+ 2 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/aclocal.m4 b/aclocal.m4
+index 40b5866..0c662b0 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -40,7 +40,6 @@ dnl
+ AC_DEFUN(AC_LBL_C_INIT_BEFORE_CC,
+     [AC_PREREQ(2.50)
+     AC_BEFORE([$0], [AC_LBL_C_INIT])
+-    AC_BEFORE([$0], [AC_PROG_CC])
+     AC_BEFORE([$0], [AC_LBL_FIXINCLUDES])
+     AC_BEFORE([$0], [AC_LBL_DEVEL])
+     AC_ARG_WITH(gcc, [  --without-gcc           don't use gcc])
+diff --git a/configure.in b/configure.in
+index 11257c9..7f9591c 100644
+--- a/configure.in
++++ b/configure.in
+@@ -19,6 +19,7 @@ AC_REVISION($Revision: 1.204 $)
+ AC_PREREQ(2.50)
+ AC_INIT(tcpdump.c)
+ 
++AC_PROG_CC
+ AC_CANONICAL_HOST
+ 
+ AC_LBL_C_INIT_BEFORE_CC(V_CCOPT, V_INCLS)
diff --git a/recipes/tcpdump/tcpdump-4.1.1/ipv6-cross.patch b/recipes/tcpdump/tcpdump-4.1.1/ipv6-cross.patch
new file mode 100644
index 0000000..7eba2c5
--- /dev/null
+++ b/recipes/tcpdump/tcpdump-4.1.1/ipv6-cross.patch
@@ -0,0 +1,41 @@
+---
+ configure.in |   12 ++++++++----
+ 1 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index eb3e5e8..11257c9 100644
+--- a/configure.in
++++ b/configure.in
+@@ -181,8 +181,9 @@ yes)   AC_MSG_RESULT(yes)
+        ipv6=no
+        ;;
+   esac ],
+-
+-  AC_TRY_RUN([ /* AF_INET6 available check */
++[
++  if test x"$cross_compiling" != "xyes"; then
++    AC_TRY_RUN([ /* AF_INET6 avalable check */
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ main()
+@@ -201,7 +202,10 @@ main()
+   ipv6=no],
+ [ AC_MSG_RESULT(no)
+   ipv6=no]
+-))
++  )
++else
++  AC_MSG_FAILURE([Unable to check for ipv6 when crosscompiling, please specify.])
++fi])
+ 
+ ipv6type=unknown
+ ipv6lib=none
+@@ -316,7 +320,7 @@ if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
+ fi
+ 
+ 
+-if test "$ipv6" = "yes"; then
++if test x"$cross_compiling" != "xyes" -a "$ipv6" = "yes"; then
+ 	#
+ 	# XXX - on Tru64 UNIX 5.1, there is no "getaddrinfo()"
+ 	# function in libc; there are "ngetaddrinfo()" and
diff --git a/recipes/tcpdump/tcpdump-4.1.1/tcpdump_configure_no_-O2.patch b/recipes/tcpdump/tcpdump-4.1.1/tcpdump_configure_no_-O2.patch
new file mode 100644
index 0000000..7929da5
--- /dev/null
+++ b/recipes/tcpdump/tcpdump-4.1.1/tcpdump_configure_no_-O2.patch
@@ -0,0 +1,42 @@
+---
+ configure |    8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/configure b/configure
+index cb51d19..73d51af 100755
+--- a/configure
++++ b/configure
+@@ -2691,13 +2691,13 @@ if test "$ac_test_CFLAGS" = set; then
+   CFLAGS=$ac_save_CFLAGS
+ elif test $ac_cv_prog_cc_g = yes; then
+   if test "$GCC" = yes; then
+-    CFLAGS="-g -O2"
++    CFLAGS="-g"
+   else
+     CFLAGS="-g"
+   fi
+ else
+   if test "$GCC" = yes; then
+-    CFLAGS="-O2"
++    CFLAGS=""
+   else
+     CFLAGS=
+   fi
+@@ -2830,7 +2830,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+     if test "$GCC" = yes ; then
+ 	    if test "$SHLICC2" = yes ; then
+ 		    ac_cv_lbl_gcc_vers=2
+-		    V_CCOPT="-O2"
++		    V_CCOPT=""
+ 	    else
+ 		    { echo "$as_me:$LINENO: checking gcc version" >&5
+ echo $ECHO_N "checking gcc version... $ECHO_C" >&6; }
+@@ -2847,7 +2847,7 @@ fi
+ 		    { echo "$as_me:$LINENO: result: $ac_cv_lbl_gcc_vers" >&5
+ echo "${ECHO_T}$ac_cv_lbl_gcc_vers" >&6; }
+ 		    if test $ac_cv_lbl_gcc_vers -gt 1 ; then
+-			    V_CCOPT="-O2"
++			    V_CCOPT=""
+ 		    fi
+ 	    fi
+     else
diff --git a/recipes/tcpdump/tcpdump_4.1.1.bb b/recipes/tcpdump/tcpdump_4.1.1.bb
new file mode 100644
index 0000000..21fcf85
--- /dev/null
+++ b/recipes/tcpdump/tcpdump_4.1.1.bb
@@ -0,0 +1,38 @@
+DESCRIPTION = "A sophisticated network protocol analyzer"
+HOMEPAGE = "http://www.tcpdump.org/"
+LICENSE = "BSD"
+SECTION = "console/network"
+PRIORITY = "optional"
+DEPENDS = "libpcap"
+PR = "r1"
+
+SRC_URI = " \
+	http://www.tcpdump.org/release/tcpdump-${PV}.tar.gz \
+	file://tcpdump_configure_no_-O2.patch;patch=1 \
+	file://0001-minimal-IEEE802.15.4-allowed.patch;patch=1 \
+	file://ipv6-cross.patch;patch=1 \
+	file://configure.patch;patch=1 \
+"
+
+inherit autotools
+# ac_cv_linux_vers=${ac_cv_linux_vers=2}
+
+EXTRA_OECONF = "--without-crypto \
+		${@base_contains('DISTRO_FEATURES', 'ipv6', '--enable-ipv6', '--disable-ipv6', d)}"
+
+do_configure() {
+	gnu-configize
+	autoconf
+	oe_runconf
+	sed -i 's:/usr/lib:${STAGING_LIBDIR}:' ./Makefile
+	sed -i 's:/usr/include:${STAGING_INCDIR}:' ./Makefile
+}
+
+do_install_append() {
+	# tcpdump 4.0.0 installs a copy to /usr/sbin/tcpdump.4.0.0
+	rm -f ${D}${sbindir}/tcpdump.${PV}
+}
+
+SRC_URI[md5sum] = "d0dd58bbd6cd36795e05c6f1f74420b0"
+SRC_URI[sha256sum] = "e6cd4bbd61ec7adbb61ba8352c4b4734f67b8caaa845d88cb826bc0b9f1e7f0a"
+
