net-analyzer/tcpstat: Version 1.5_p8
authorJeroen Roovers <jer@gentoo.org>
Wed, 1 Jan 2020 15:36:45 +0000 (16:36 +0100)
committerJeroen Roovers <jer@gentoo.org>
Wed, 1 Jan 2020 15:39:39 +0000 (16:39 +0100)
* Split up -db patch
* Apply Debian patches
* Fix -L-lpcap
* Depend on sys-libs/db:* for tcpprof(1)

Package-Manager: Portage-2.3.84, Repoman-2.3.20
Signed-off-by: Jeroen Roovers <jer@gentoo.org>
net-analyzer/tcpstat/Manifest
net-analyzer/tcpstat/files/tcpstat-1.5_p8-_DEFAULT_SOURCE.patch [new file with mode: 0644]
net-analyzer/tcpstat/files/tcpstat-1.5_p8-ipv6.patch [new file with mode: 0644]
net-analyzer/tcpstat/files/tcpstat-1.5_p8-libpcap.patch [new file with mode: 0644]
net-analyzer/tcpstat/files/tcpstat-1.5_p8-off-by-one.patch [new file with mode: 0644]
net-analyzer/tcpstat/files/tcpstat-1.5_p8-unused.patch [new file with mode: 0644]
net-analyzer/tcpstat/tcpstat-1.5_p8.ebuild [new file with mode: 0644]

index 19241909fb7f27176729dd06e5321bdc1d46fd6e..1f36deb4700824a6d2897badd6a2ab9681fe05a5 100644 (file)
@@ -1 +1,2 @@
 DIST tcpstat-1.5.tar.gz 93102 BLAKE2B 39a570fe6176fda0e8a6539417ece268183a1ebed6fa956b8ec5556b8bbd2508829e7d0861ef39b551bd6070df70cfdaf3dbf694a42ad00be4ea0f3e5c757ce5 SHA512 f1399365e754e4d9e19657c455a580294a7b4002a0d02ff05791a45574dcb1d0e75dc492157ef595066502b1553702481c67b20ad24267a50d7293766c39a5ab
+DIST tcpstat_1.5-8.debian.tar.xz 7844 BLAKE2B d74e3fd6a274d5e4e0963741bcfe870cfa300281706f965ac1c61ab7e6eb9aa2ea06566649fb3ae8d6071464cfa4bc037e58f64bf32f71ad8b3006976a515417 SHA512 f54546a9191feddc5410c7abb6764533ce89de4bd93fdc480e1a8f7473b405ca914482e6b950ead39d78d235caf093aaa663c683df346417070b97fc3e4f5c41
diff --git a/net-analyzer/tcpstat/files/tcpstat-1.5_p8-_DEFAULT_SOURCE.patch b/net-analyzer/tcpstat/files/tcpstat-1.5_p8-_DEFAULT_SOURCE.patch
new file mode 100644 (file)
index 0000000..3ea38d7
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/configure.in
++++ b/configure.in
+@@ -68,7 +68,7 @@
+ case $my_build_os in
+       aix*)           AC_DEFINE(AIX_STRANGENESS, 1, [ defined on AIX systems. ]) ;;
+       osf1*)          AC_DEFINE(TRU64_STRANGENESS, 1, [ defined on OSF systems. ]) ;;
+-      linux*)         AC_DEFINE(_BSD_SOURCE, 1, [ defined usually on linux systems ] ) ;;
++      linux*)         AC_DEFINE(_DEFAULT_SOURCE, 1, [ defined usually on linux systems ] ) ;;
+       gnu/kfreebsd*)          AC_DEFINE(_BSD_SOURCE, 1, [ defined usually on debian kfreebsd systems ] ) ;;
+       bsd/os*)        ;;
+       freebsd*)       ;;
diff --git a/net-analyzer/tcpstat/files/tcpstat-1.5_p8-ipv6.patch b/net-analyzer/tcpstat/files/tcpstat-1.5_p8-ipv6.patch
new file mode 100644 (file)
index 0000000..f26268f
--- /dev/null
@@ -0,0 +1,30 @@
+--- a/configure.in
++++ b/configure.in
+@@ -84,15 +84,26 @@
+ dnl #######################
+ dnl Checks for header files
+ dnl #######################
+ AC_HEADER_STDC
+ AC_HEADER_SYS_WAIT
+-AC_CHECK_HEADERS(sys/time.h sys/stat.h unistd.h strings.h fcntl.h netinet/ip6.h)
++AC_CHECK_HEADERS(sys/time.h sys/stat.h unistd.h strings.h fcntl.h)
+ dnl BSD/OS Seems to not have a good ethernet header, so we gotta wing it
+ AC_CHECK_HEADERS(net/if.h net/ethernet.h netinet/if_ether.h net/ppp_defs.h)
++AC_ARG_ENABLE( ipv6, [ AC_HELP_STRING([--enable-ipv6], [s use IPv6?]) ], ip6=$enableval )
++if test "$ip6" = "yes"
++then
++      AC_CHECK_HEADER(netinet/ip6.h, , [AC_MSG_ERROR([I couldn't find netinet/ip6.h though you asked for ipv6 support.])] )
++elif test "$ip6" != "no"
++then
++      AC_CHECK_HEADER(netinet/ip6.h)
++
++fi
++
++
+ dnl #############################################################
+ dnl Checks for typedefs, structures, and compiler characteristics
+ dnl #############################################################
+ AC_C_CONST
+ AC_TYPE_SIZE_T
diff --git a/net-analyzer/tcpstat/files/tcpstat-1.5_p8-libpcap.patch b/net-analyzer/tcpstat/files/tcpstat-1.5_p8-libpcap.patch
new file mode 100644 (file)
index 0000000..5455489
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/configure.in
++++ b/configure.in
+@@ -47,7 +47,7 @@
+     fi
+   done
+ else
+-  LDFLAGS=" -L${with_pcap_lib} "${LDFLAGS}
++  LDFLAGS="${with_pcap_lib} "${LDFLAGS}
+ fi
+ AC_ARG_ENABLE(fdesc,
diff --git a/net-analyzer/tcpstat/files/tcpstat-1.5_p8-off-by-one.patch b/net-analyzer/tcpstat/files/tcpstat-1.5_p8-off-by-one.patch
new file mode 100644 (file)
index 0000000..4029ddb
--- /dev/null
@@ -0,0 +1,50 @@
+--- a/src/catpcap.c
++++ b/src/catpcap.c
+@@ -156,10 +156,10 @@
+                               return Usage(1, argv[0]);
+                               break;
+                       case 'f':
+-                              strncpy(filterexpr, optarg, BUF_SIZ);
++                              strncpy(filterexpr, optarg, BUF_SIZ - 1);
+                               break;
+                       case 'r':
+-                              strncpy(filename, optarg, BUF_SIZ);
++                              strncpy(filename, optarg, BUF_SIZ - 1);
+                               break;
+                       default:
+                               return Usage(1, argv[0]);
+--- a/src/dump.c
++++ b/src/dump.c
+@@ -109,10 +109,10 @@
+                               get_tcp_flags |= GET_TCPD_COUNT_LINKSIZE;
+                               break;
+                       case 'f':
+-                              strncpy(filterexpr, optarg, BUF_SIZ);
++                              strncpy(filterexpr, optarg, BUF_SIZ - 1);
+                               break;
+                       case 'r':
+-                              strncpy(filename, optarg, BUF_SIZ);
++                              strncpy(filename, optarg, BUF_SIZ - 1);
+                               break;
+                       case 's':
+                               what_to_show |= parse_show_types(optarg);
+--- a/src/tcpprof.c
++++ b/src/tcpprof.c
+@@ -126,14 +126,14 @@
+                               src_dest_split = 1;
+                               break;
+                       case 'f':
+-                              strncpy(filterexpr, optarg, BUF_SIZ);
++                              strncpy(filterexpr, optarg, BUF_SIZ - 1);
+                               break;
+                       case 'i':
+-                              strncpy(filename, optarg, BUF_SIZ);
++                              strncpy(filename, optarg, BUF_SIZ - 1);
+                               flags |= GET_TCPD_DO_LIVE;
+                               break;
+                       case 'r':
+-                              strncpy(filename, optarg, BUF_SIZ);
++                              strncpy(filename, optarg, BUF_SIZ - 1);
+                               flags &= ~GET_TCPD_DO_LIVE;
+                               break;
+                       case 'n':
diff --git a/net-analyzer/tcpstat/files/tcpstat-1.5_p8-unused.patch b/net-analyzer/tcpstat/files/tcpstat-1.5_p8-unused.patch
new file mode 100644 (file)
index 0000000..c255f52
--- /dev/null
@@ -0,0 +1,99 @@
+--- a/lib/process.c
++++ b/lib/process.c
+@@ -230,12 +230,12 @@
+  *   calls a user function pointing to the data
+  *
+  * XXX: filter is not used.  capture_seconds also isn't, but snoop is
+  *    always read from a file.
+  */
+-int get_snoop_data(char *fname, char *filter, int flags,
+-      Double capture_seconds, void (*hook)(packet_data *, void **),
++int get_snoop_data(char *fname,  char *filter __attribute__((unused)), int flags,
++      Double capture_seconds __attribute__((unused)), void (*hook)(packet_data *, void **),
+       void **args) {
+       u_char *packet;
+       int fd, len, blen, ret = 0;
+       struct snoop_file_header        fh;
+--- a/lib/tcpseq.c
++++ b/lib/tcpseq.c
+@@ -54,11 +54,10 @@
+       u_char  flags;
+       struct tcpseq_ha test_ha;
+       struct tcphdr *tp = NULL;
+       struct ip *ip;
+ #ifdef INET6
+-      int is_ip6 = 0;
+       struct ip6_hdr *ip6;
+       ip6 = (struct ip6_hdr *) &pd->data.ip6.hdr;
+       if (is_ip6_packet(pd))
+               tp= &(pd->data.ip6.body.tcphdr);
+--- a/src/catpcap.c
++++ b/src/catpcap.c
+@@ -52,13 +52,12 @@
+       return '.';
+ }
+-void proc_pcap(u_char *user, const struct pcap_pkthdr *h, const u_char *p) {
++void proc_pcap(u_char *user __attribute__((unused)), const struct pcap_pkthdr *h, const u_char *p) {
+       u_int length = h->caplen, i, j, k, step;
+-      u_char *r, *s;
++      u_char *r;
+       char c;
+       r = (u_char *)p;
+-      s = (u_char *)p;
+       step = 22;
+       printf("%u: %lu.%.6lu, caplen %u, len %u\n",
+               p_number++,
+@@ -92,7 +91,7 @@
+  * process_file() takes the output of tcpdump, saves packets, and displays
+  * statistics
+  */
+-void process_file(char *fname, u_int unused) {
++void process_file(char *fname, u_int unused __attribute__((unused))) {
+       int run = 1, i;
+       pcap_t  *pd;
+       char    ebuf[PCAP_ERRBUF_SIZE];
+--- a/src/dump.c
++++ b/src/dump.c
+@@ -37,21 +37,21 @@
+ char filterexpr[BUF_SIZ]      = "";
+ int   get_tcp_flags           = 0;
+ int   what_to_show            = 0;
+ int   packet_number           = 0;
+-void my_hook(packet_data *pd, void **args) {
++void my_hook(packet_data *pd) {
+       printf("PACKET NUMBER: %d\n", ++packet_number);
+       print_packet(pd, what_to_show);
+       printf("-------------------\n");
+ }
+ /*
+  * process_file() takes the output of tcpdump, saves packets, and displays
+  * statistics
+  */
+-void process_file(char *fname, u_int unused) {
++void process_file(char *fname, u_int unused __attribute__((unused))) {
+         get_dump_data(fname, filterexpr, get_tcp_flags,
+               -1.0, my_hook, NULL);
+ }
+ int parse_show_types(char *in) {
+--- a/src/tcpstat.c
++++ b/src/tcpstat.c
+@@ -421,11 +421,11 @@
+ }
+ /*
+  * process_file() gets the data, and then displays the statistics
+  */
+-void process_file(char *fname, u_int unused) {
++void process_file(char *fname, u_int unused __attribute__((unused))) {
+       void            *argv[2];
+       statistics      stats;
+       Double          x;
+       signal(SIGUSR1, catch_signal);
diff --git a/net-analyzer/tcpstat/tcpstat-1.5_p8.ebuild b/net-analyzer/tcpstat/tcpstat-1.5_p8.ebuild
new file mode 100644 (file)
index 0000000..fbd6a2b
--- /dev/null
@@ -0,0 +1,59 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools flag-o-matic
+
+DESCRIPTION="Reports network interface statistics"
+HOMEPAGE="https://www.frenchfries.net/paul/tcpstat/"
+SRC_URI="
+       ${HOMEPAGE}${P/_p*}.tar.gz
+       mirror://debian/pool/main/${PN:0:1}/${PN}/${PN}_${PV/_p*}-$(ver_cut 4).debian.tar.xz
+"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="ipv6"
+
+DEPEND="
+       net-libs/libpcap
+       sys-libs/db:*
+"
+RDEPEND="
+       ${DEPEND}
+"
+DOCS=( AUTHORS ChangeLog NEWS README doc/Tips_and_Tricks.txt )
+PATCHES=(
+       "${FILESDIR}"/${P}-_DEFAULT_SOURCE.patch
+       "${FILESDIR}"/${P}-ipv6.patch
+       "${FILESDIR}"/${P}-libpcap.patch
+       "${FILESDIR}"/${P}-off-by-one.patch
+       "${FILESDIR}"/${P}-unused.patch
+)
+S=${WORKDIR}/${P/_p*}
+
+src_prepare() {
+       eapply $(
+               for patch in $(cat "${WORKDIR}"/debian/patches/series)
+                       do echo "${WORKDIR}"/debian/patches/${patch}
+               done
+               ) ${PATCHES[@]}
+       eapply_user
+
+       eautoreconf
+}
+
+src_configure() {
+       append-cflags -Wall -Wextra
+       econf \
+               $(use_enable ipv6) \
+               --with-pcap-include='' \
+               --with-pcap-lib="$( $(tc-getPKG_CONFIG) --libs libpcap)"
+}
+
+src_install() {
+       default
+       dobin src/{catpcap,packetdump}
+       newdoc src/README README.src
+}