tcpdump: update 4.9.3 -> 4.99.0

Removed patches:
    * avoid-absolute-path-when-searching-for-libdlpi.patch
    reason: this is a solaris specific patch,
            It no longer generates QA error.

    * unnecessary-to-check-libpcap.patch
    reason: upstream changed the logic, a new patch was needed.

New patch:
    * 0001-aclocal.m4-Skip-checking-for-pcap-config.patch
    reason: configure shouldn't look for pcap-config.
    upstream reference: cfc4c750a

Modified patch:
    * add-ptest.patch
    reason: Makefile had slight change.
            new unrelated perl script was introduced,
            removed to make package QA happy.

License:
    upstream removed some whitespace

Ptest:
    binaries are now present in /usr/bin not /usr/sbin
        upstream commit: 95096be4f
    add perl libraries dependencies

    tests passed: 571 (qemux86-64)
    tests failed: 0

Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Yi Fan Yu 2021-02-19 22:17:25 -05:00 committed by Khem Raj
parent 1536d2b431
commit 138e4f59c3
6 changed files with 67 additions and 158 deletions

View File

@ -1,70 +0,0 @@
From 32027e199368dad9508965aae8cd8de5b6ab5231 Mon Sep 17 00:00:00 2001
From: Guy Harris <guy@alum.mit.edu>
Date: Sat, 18 Apr 2020 14:04:59 -0700
Subject: [PATCH] PPP: When un-escaping, don't allocate a too-large buffer.
The buffer should be big enough to hold the captured data, but it
doesn't need to be big enough to hold the entire on-the-network packet,
if we haven't captured all of it.
(backported from commit e4add0b010ed6f2180dcb05a13026242ed935334)
Upstream-Status: Backport
Signed-off-by: Stacy Gaikovaia <stacy.gaikovaia@windriver.com>
---
print-ppp.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/print-ppp.c b/print-ppp.c
index 89176172..33fb0341 100644
--- a/print-ppp.c
+++ b/print-ppp.c
@@ -1367,19 +1367,29 @@ trunc:
return 0;
}
+/*
+ * Un-escape RFC 1662 PPP in HDLC-like framing, with octet escapes.
+ * The length argument is the on-the-wire length, not the captured
+ * length; we can only un-escape the captured part.
+ */
static void
ppp_hdlc(netdissect_options *ndo,
const u_char *p, int length)
{
+ u_int caplen = ndo->ndo_snapend - p;
u_char *b, *t, c;
const u_char *s;
- int i, proto;
+ u_int i;
+ int proto;
const void *se;
+ if (caplen == 0)
+ return;
+
if (length <= 0)
return;
- b = (u_char *)malloc(length);
+ b = (u_char *)malloc(caplen);
if (b == NULL)
return;
@@ -1388,10 +1398,10 @@ ppp_hdlc(netdissect_options *ndo,
* Do this so that we dont overwrite the original packet
* contents.
*/
- for (s = p, t = b, i = length; i > 0 && ND_TTEST(*s); i--) {
+ for (s = p, t = b, i = caplen; i != 0; i--) {
c = *s++;
if (c == 0x7d) {
- if (i <= 1 || !ND_TTEST(*s))
+ if (i <= 1)
break;
i--;
c = *s++ ^ 0x20;
--
2.17.1

View File

@ -0,0 +1,33 @@
From 867bf5c9d0fb64e1b4e64cb13b983674c270a6bf Mon Sep 17 00:00:00 2001
From: Yi Fan Yu <yifan.yu@windriver.com>
Date: Fri, 19 Feb 2021 00:52:35 -0500
Subject: [PATCH] aclocal.m4: Skip checking for pcap-config
Bitbake triggers an configure error
saying we should look for pkg-config instead.
Upstream-Status: Inappropriate [OE-Specific]
Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
---
aclocal.m4 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/aclocal.m4 b/aclocal.m4
index bd4e27a5..136cb8ca 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -584,8 +584,8 @@ AC_DEFUN(AC_LBL_LIBPCAP,
# No pkg-config
# Look for an installed pcap-config.
#
- AC_PATH_TOOL(PCAP_CONFIG, pcap-config)
- if test -n "$PCAP_CONFIG" ; then
+ # AC_PATH_TOOL(PCAP_CONFIG, pcap-config)
+ if false; then
#
# Found - use it to get the include flags for
# libpcap and the flags to link with libpcap.
--
2.29.2

View File

@ -1,6 +1,6 @@
From 8c9c728757f89ebe6c4019114b83a63c63596f69 Mon Sep 17 00:00:00 2001
From: "Hongjun.Yang" <hongjun.yang@windriver.com>
Date: Wed, 2 Oct 2019 16:57:06 -0400
From 5f0f70192b0e20336e642b02ca9662ba2fef66cf Mon Sep 17 00:00:00 2001
From: Yi Fan Yu <yifan.yu@windriver.com>
Date: Fri, 19 Feb 2021 15:21:18 -0500
Subject: [PATCH] Add ptest for tcpdump
Upstream-Status: Pending
@ -8,15 +8,21 @@ Upstream-Status: Pending
Signed-off-by: Hongjun.Yang <hongjun.yang@windriver.com>
Signed-off-by: Peiran Hong <peiran.hong@windriver.com>
remove perl script not required by ptest causing QA problems
reference upstream issue/commit:
https://github.com/the-tcpdump-group/tcpdump/issues/26
Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
---
Makefile.in | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
Makefile.in | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
index 3b589184..7b10e38c 100644
index ea1ef1d0..e7987bd8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -437,9 +437,17 @@ distclean:
@@ -445,9 +445,18 @@ distclean:
tests/failure-outputs.txt
rm -rf autom4te.cache tests/DIFF tests/NEW
@ -24,14 +30,18 @@ index 3b589184..7b10e38c 100644
+buildtest-TESTS: tcpdump
+
+runtest-PTEST:
(mkdir -p tests && SRCDIR=`cd ${srcdir}; pwd` && export SRCDIR && $$SRCDIR/tests/TESTrun.sh )
$(srcdir)/tests/TESTrun
+install-ptest:
+ cp -r tests $(DESTDIR)
+ rm $(DESTDIR)/tests/setkey2esp-secrets.pl
+ cp -r config.h $(DESTDIR)
+ install -m 0755 Makefile $(DESTDIR)
+ ln -sf /usr/sbin/tcpdump $(DESTDIR)/tcpdump
+ ln -s /usr/bin/tcpdump $(DESTDIR)/tcpdump
+
extags: $(TAGFILES)
ctags $(TAGFILES)
--
2.29.2

View File

@ -1,31 +0,0 @@
From 02085028cdaf075943c27ebc02bb6de0289ec1d3 Mon Sep 17 00:00:00 2001
From: Andre McCurdy <armccurdy@gmail.com>
Date: Wed, 2 Oct 2019 16:43:48 -0400
Subject: [PATCH] avoid absolute path when searching for libdlpi
Let the build environment control library search paths.
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Peiran Hong <peiran.hong@windriver.com>
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 3401a7a3..6a52485a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -528,7 +528,7 @@ don't.])
fi
# libdlpi is needed for Solaris 11 and later.
-AC_CHECK_LIB(dlpi, dlpi_walk, LIBS="$LIBS -ldlpi" LDFLAGS="-L/lib $LDFLAGS", ,-L/lib)
+AC_CHECK_LIB(dlpi, dlpi_walk, LIBS="$LIBS -ldlpi")
dnl
dnl Check for "pcap_list_datalinks()", "pcap_set_datalink()",
--
2.17.1

View File

@ -1,40 +0,0 @@
From dd023c133980fcc0cff5896e85377675e0571894 Mon Sep 17 00:00:00 2001
From: Roy Li <rongqing.li@windriver.com>
Date: Tue, 8 Jul 2014 13:20:47 +0800
Subject: [PATCH] unnecessary to check libpcap
since the check of libpcap did not consider the cross-compile, lead to the
below error:
This autoconf log indicates errors, it looked at host include and/or
library paths while determining system capabilities.
In fact, the libpcap has been added into the tcpdump's DEPENDS, not need to
check if libpcap existed.
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Roy Li <rongqing.li@windriver.com>
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Peiran Hong <peiran.hong@windriver.com>
---
configure.ac | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 56e2a624..3401a7a3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -404,7 +404,9 @@ dnl Some platforms may need -lnsl for getrpcbynumber.
AC_SEARCH_LIBS(getrpcbynumber, nsl,
AC_DEFINE(HAVE_GETRPCBYNUMBER, 1, [define if you have getrpcbynumber()]))
-AC_LBL_LIBPCAP(V_PCAPDEP, V_INCLS)
+# Simplified (more cross compile friendly) check for libpcap. All we really
+# need is to sanity check that libpcap is available and add -lpcap to LIBS.
+AC_CHECK_LIB(pcap, pcap_compile, LIBS="$LIBS -lpcap")
#
# Check for these after AC_LBL_LIBPCAP, so we link with the appropriate
--
2.17.1

View File

@ -2,26 +2,33 @@ SUMMARY = "A sophisticated network protocol analyzer"
HOMEPAGE = "http://www.tcpdump.org/"
SECTION = "net"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1d4b0366557951c84a94fabe3529f867"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5eb289217c160e2920d2e35bddc36453"
DEPENDS = "libpcap"
RDEPENDS_${PN}-ptest += " make perl \
perl-module-file-basename \
perl-module-file-spec \
perl-module-file-spec-unix \
perl-module-file-path \
perl-module-file-glob \
perl-module-data-dumper \
perl-module-bytes \
perl-module-posix \
perl-module-carp"
perl-module-carp \
perl-module-cwd \
perl-module-constant \
"
SRC_URI = " \
http://www.tcpdump.org/release/${BP}.tar.gz \
file://unnecessary-to-check-libpcap.patch \
file://avoid-absolute-path-when-searching-for-libdlpi.patch \
file://add-ptest.patch \
file://run-ptest \
file://0001-PPP-When-un-escaping-don-t-allocate-a-too-large-buff.patch \
file://0001-aclocal.m4-Skip-checking-for-pcap-config.patch \
"
SRC_URI[md5sum] = "a4ead41d371f91aa0a2287f589958bae"
SRC_URI[sha256sum] = "2cd47cb3d460b6ff75f4a9940f594317ad456cfbf2bd2c8e5151e16559db6410"
SRC_URI[md5sum] = "b10aa2f497def7283bc060f626879ce5"
SRC_URI[sha256sum] = "8cf2f17a9528774a7b41060323be8b73f76024f7778f59c34efa65d49d80b842"
UPSTREAM_CHECK_REGEX = "tcpdump-(?P<pver>\d+(\.(?!99)\d+)+)\.tar"
@ -46,7 +53,7 @@ do_configure_prepend() {
do_install_append() {
# make install installs an unneeded extra copy of the tcpdump binary
rm -f ${D}${sbindir}/tcpdump.${PV}
rm ${D}${bindir}/tcpdump.${PV}
}
do_compile_ptest() {