Date: Tue, 17 Dec 2013 02:50:23 +0900 From: KATO Tsuguru <tkato432@yahoo.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/184839: net/wmnet2: Fix build on -current Message-ID: <20131217025023.5ce6ac426de871d50126b63e@yahoo.com> Resent-Message-ID: <201312161810.rBGIAAbe016090@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 184839 >Category: ports >Synopsis: net/wmnet2: Fix build on -current >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Dec 16 18:10:10 UTC 2013 >Closed-Date: >Last-Modified: >Originator: KATO Tsuguru >Release: FreeBSD 8.4-RELEASE-p4 i386 >Organization: >Environment: >Description: - Fix build on -current - Update MASTER_SITES New file: files/patch-Imakefile files/patch-config.h Remove file: files/patch-aa files/patch-ab files/patch-getopt.c >How-To-Repeat: >Fix: diff -urN /usr/ports/net/wmnet2/Makefile net/wmnet2/Makefile --- /usr/ports/net/wmnet2/Makefile 2013-11-06 21:53:51.000000000 +0900 +++ net/wmnet2/Makefile 2013-12-17 00:00:00.000000000 +0900 @@ -5,8 +5,8 @@ PORTVERSION= 1.06 PORTREVISION= 5 CATEGORIES= net -MASTER_SITES= http://www.dockapps.org/files/77/115/ \ - http://www.katharineosborne.com/wmnet/ +MASTER_SITES= http://fossies.org/linux/misc/old/ \ + http://linux-bsd-unix.strefa.pl/ DISTNAME= wmnet-${PORTVERSION} MAINTAINER= ports@FreeBSD.org @@ -15,8 +15,9 @@ USES= imake USE_XORG= x11 xext -MAN1= wmnet2.1 -PLIST_FILES= bin/wmnet2 +PLIST_FILES= bin/wmnet2 man/man1/wmnet2.1.gz + +post-extract: + @${LN} -sf wmnet.man ${WRKSRC}/wmnet2.man -NO_STAGE= yes .include <bsd.port.mk> diff -urN /usr/ports/net/wmnet2/files/patch-Imakefile net/wmnet2/files/patch-Imakefile --- /usr/ports/net/wmnet2/files/patch-Imakefile 1970-01-01 09:00:00.000000000 +0900 +++ net/wmnet2/files/patch-Imakefile 2013-12-17 00:00:00.000000000 +0900 @@ -0,0 +1,34 @@ +--- Imakefile.orig ++++ Imakefile +@@ -1,5 +1,4 @@ + DEPLIBS = $(DEPXLIB) +-CC = gcc -Wall + + #ifdef LinuxArchitecture + STD_DEFINES = -Dlinux +@@ -10,14 +9,17 @@ + LOCAL_LIBRARIES = $(XLIB) -lm + #endif + +-#if defined (FreeBSDArchitecture) || defined (OpenBSDArchitecture) ++#if defined (OpenBSDArchitecture) + LOCAL_LIBRARIES = $(XLIB) -lm -lkvm + INSTPGMFLAGS = -s -g kmem -m 2755 ++#elif defined (FreeBSDArchitecture) ++LOCAL_LIBRARIES = $(XLIB) -lm ++INSTPGMFLAGS = -m 0755 + #endif + + LINTLIBS = $(LINTXLIB) + +-#if defined (FreeBSDArchitecture) || defined (OpenBSDArchitecture) ++#if defined (OpenBSDArchitecture) + SRCS = wmnet.c drivers.c getopt.c getopt1.c + OBJS = wmnet.o drivers.o getopt.o getopt1.o + #else +@@ -26,4 +28,4 @@ + #endif + + +-ComplexProgramTarget(wmnet) ++ComplexProgramTarget(wmnet2) diff -urN /usr/ports/net/wmnet2/files/patch-aa net/wmnet2/files/patch-aa --- /usr/ports/net/wmnet2/files/patch-aa 2013-11-06 21:53:51.000000000 +0900 +++ net/wmnet2/files/patch-aa 1970-01-01 09:00:00.000000000 +0900 @@ -1,198 +0,0 @@ ---- Imakefile Fri May 5 02:34:29 2000 -+++ Imakefile Tue Nov 11 10:54:42 2003 -@@ -10,9 +10,12 @@ - LOCAL_LIBRARIES = $(XLIB) -lm - #endif - --#if defined (FreeBSDArchitecture) || defined (OpenBSDArchitecture) -+#if defined (OpenBSDArchitecture) - LOCAL_LIBRARIES = $(XLIB) -lm -lkvm - INSTPGMFLAGS = -s -g kmem -m 2755 -+#elif defined (FreeBSDArchitecture) -+LOCAL_LIBRARIES = $(XLIB) -lm -+INSTPGMFLAGS = -s -m 0755 - #endif - - LINTLIBS = $(LINTXLIB) ---- config.h Fri May 5 02:34:29 2000 -+++ config.h Tue Nov 11 10:59:05 2003 -@@ -1,6 +1,6 @@ --#if defined (__FreeBSD__) || defined (__OpenBSD__) -+#if defined (__OpenBSD__) - --/* Our only FreeBSD driver, this goes straight into kernel memory -+/* Our only OpenBSD driver(old FreeBSD-4.x driver), this goes straight into kernel memory - * and reads the raw structures from right underneath the kernel using the - * kvm library. This made the code a require a little more thought, but - * the end result is a statistics driver thats faster than the linux ones -@@ -12,7 +12,11 @@ - - #endif - -+#if defined (__FreeBSD__) - -+#define USE_SYSCTL -+ -+#endif - - #ifdef linux - ---- drivers.c Fri May 5 02:34:29 2000 -+++ drivers.c Wed Nov 12 11:42:40 2003 -@@ -21,7 +21,7 @@ - #include"config.h" - - --/* For FreeBSD */ -+/* For OpenBSD */ - #ifdef USE_KVM - #include<net/if.h> - #include<kvm.h> -@@ -37,6 +37,22 @@ - int kvm_updateStats(void); - #endif /* USE_KVM */ - -+#ifdef USE_SYSCTL -+/* system headers */ -+#include <sys/types.h> -+#include <sys/sysctl.h> -+#include <sys/socket.h> -+#include <net/if.h> -+#include <net/if_mib.h> -+#include <sys/errno.h> -+ -+int id = 0; /* interface id */ -+int len = 0; /* sizeof libmibdata */ -+struct ifmibdata *data = NULL; -+ -+int sysctl_test(void); -+int sysctl_updateStats(void); -+#endif - - #ifdef USE_LINUX_PPP - #include<net/ppp_defs.h> -@@ -104,6 +120,9 @@ - #ifdef USE_KVM - {"kmem",kvm_updateStats, kvm_test}, - #endif -+#ifdef USE_SYSCTL -+ {"sysctl",sysctl_updateStats, sysctl_test}, -+#endif - {NULL, NULL} - }; - -@@ -439,6 +458,114 @@ - - - #endif /* linux */ -+ -+/* new FreeBSD driver */ -+#ifdef USE_SYSCTL -+ -+int sysctl_test(void) { -+ struct ifmibdata tempndata; -+ int numifaces, len2; -+ int mib[5], datamib[6]; -+ int i; -+ -+ if(device == NULL) device = "lo0"; -+ -+ mib[0] = CTL_NET; -+ mib[1] = PF_LINK; -+ mib[2] = NETLINK_GENERIC; -+ mib[3] = IFMIB_SYSTEM; -+ mib[4] = IFMIB_IFCOUNT; -+ -+ datamib[0] = CTL_NET; -+ datamib[1] = PF_LINK; -+ datamib[2] = NETLINK_GENERIC; -+ datamib[3] = IFMIB_IFDATA; -+ datamib[4] = 1; -+ datamib[5] = IFDATA_GENERAL; -+ -+ len = sizeof(struct ifmibdata); -+ len2 = sizeof(numifaces); -+ -+ if(sysctl(mib, 5, &numifaces, &len2, NULL, 0) < 0) -+ { -+ fprintf( stderr, "wmnet: failed to perform sysctl" ); -+ return 0; -+ } -+ -+ for(i = 1; i <= numifaces; i++) -+ { -+ datamib[4] = i; -+ if(sysctl(datamib, 6, &tempndata, &len, NULL, 0) < 0) -+ { -+ fprintf( stderr, "wmnet: failed to get device(%d) data", i ); -+ break; -+ } -+ -+ if( strcmp( device, tempndata.ifmd_name ) == 0 ) -+ { -+ id = i; -+ break; -+ } -+ } -+ -+ if ( id == 0 ) { -+ fprintf( stderr, "%s doesn't seem to exist!\n", device ); -+ exit( -1 ); -+ } -+ -+ /* calculate and allocate mem for ifmibdata containing the if stats */ -+ data = malloc(len); -+ -+ fprintf(stderr, "wmnet: using sysctl driver to monitor %s\n", device); -+ return True; -+} -+ -+int sysctl_updateStats(void) { -+ int datamib[6]; -+ -+ datamib[0] = CTL_NET; -+ datamib[1] = PF_LINK; -+ datamib[2] = NETLINK_GENERIC; -+ datamib[3] = IFMIB_IFDATA; -+ datamib[4] = id; -+ datamib[5] = IFDATA_GENERAL; -+ -+ if(sysctl( datamib, 6, data, &len, NULL, 0) < 0 ) { -+ fprintf( stderr, "wmnet: can't monitor %s device\n", device ); -+ exit( -1 ); -+ } -+ -+ // printf( "if name: %s\n", data->ifmd_name ); -+ -+ /* get the stats from the if */ -+ totalpackets_in = data->ifmd_data.ifi_ipackets; -+ totalpackets_out = data->ifmd_data.ifi_opackets; -+ -+ if (totalpackets_in != lastpackets_in) { -+ totalbytes_in = data->ifmd_data.ifi_ibytes; -+ diffpackets_in += totalpackets_in - lastpackets_in; -+ diffbytes_in += totalbytes_in - lastbytes_in; -+ lastpackets_in = totalpackets_in; -+ lastbytes_in = totalbytes_in; -+ rx = True; -+ } else rx = False; -+ -+ if (totalpackets_out != lastpackets_out) { -+ totalbytes_out = data->ifmd_data.ifi_obytes; -+ diffpackets_out += totalpackets_out - lastpackets_out; -+ diffbytes_out += totalbytes_out - lastbytes_out; -+ lastpackets_out = totalpackets_out; -+ lastbytes_out = totalbytes_out; -+ tx = True; -+ } else tx = False; -+ -+ /* return True if no change to tx/rx -+ * return False if display will need to be updated -+ */ -+ return((rx == current_rx) && (tx == current_tx)); -+} -+ -+#endif - - #ifdef USE_KVM - int kvm_test(void) { diff -urN /usr/ports/net/wmnet2/files/patch-ab net/wmnet2/files/patch-ab --- /usr/ports/net/wmnet2/files/patch-ab 2013-11-06 21:53:51.000000000 +0900 +++ net/wmnet2/files/patch-ab 1970-01-01 09:00:00.000000000 +0900 @@ -1,11 +0,0 @@ ---- Imakefile 2001/09/08 12:01:26 1.1 -+++ Imakefile 2001/09/08 12:02:34 -@@ -26,4 +26,7 @@ - #endif - - --ComplexProgramTarget(wmnet) -+ComplexProgramTarget(wmnet2) -+ -+wmnet2.man: wmnet.man -+ ln -sf wmnet.man wmnet2.man diff -urN /usr/ports/net/wmnet2/files/patch-config.h net/wmnet2/files/patch-config.h --- /usr/ports/net/wmnet2/files/patch-config.h 1970-01-01 09:00:00.000000000 +0900 +++ net/wmnet2/files/patch-config.h 2013-12-17 00:00:00.000000000 +0900 @@ -0,0 +1,23 @@ +--- config.h.orig ++++ config.h +@@ -1,6 +1,6 @@ +-#if defined (__FreeBSD__) || defined (__OpenBSD__) ++#if defined (__OpenBSD__) + +-/* Our only FreeBSD driver, this goes straight into kernel memory ++/* Our only OpenBSD driver(old FreeBSD-4.x driver), this goes straight into kernel memory + * and reads the raw structures from right underneath the kernel using the + * kvm library. This made the code a require a little more thought, but + * the end result is a statistics driver thats faster than the linux ones +@@ -12,7 +12,11 @@ + + #endif + ++#if defined (__FreeBSD__) + ++#define USE_SYSCTL ++ ++#endif + + #ifdef linux + diff -urN /usr/ports/net/wmnet2/files/patch-drivers.c net/wmnet2/files/patch-drivers.c --- /usr/ports/net/wmnet2/files/patch-drivers.c 2013-11-06 21:53:51.000000000 +0900 +++ net/wmnet2/files/patch-drivers.c 2013-12-17 00:00:00.000000000 +0900 @@ -1,15 +1,46 @@ --- drivers.c.orig Tue Apr 27 09:22:02 2004 +++ drivers.c Tue Apr 27 09:32:19 2004 -@@ -47,7 +47,7 @@ - #include <sys/errno.h> +@@ -21,7 +21,7 @@ + #include"config.h" - int id = 0; /* interface id */ --int len = 0; /* sizeof libmibdata */ + +-/* For FreeBSD */ ++/* For OpenBSD */ + #ifdef USE_KVM + #include<net/if.h> + #include<kvm.h> +@@ -37,6 +37,22 @@ + int kvm_updateStats(void); + #endif /* USE_KVM */ + ++#ifdef USE_SYSCTL ++/* system headers */ ++#include <sys/types.h> ++#include <sys/sysctl.h> ++#include <sys/socket.h> ++#include <net/if.h> ++#include <net/if_mib.h> ++#include <sys/errno.h> ++ ++int id = 0; /* interface id */ +size_t len = 0; /* sizeof libmibdata */ - struct ifmibdata *data = NULL; ++struct ifmibdata *data = NULL; ++ ++int sysctl_test(void); ++int sysctl_updateStats(void); ++#endif - int sysctl_test(void); -@@ -128,7 +128,7 @@ + #ifdef USE_LINUX_PPP + #include<net/ppp_defs.h> +@@ -104,12 +120,15 @@ + #ifdef USE_KVM + {"kmem",kvm_updateStats, kvm_test}, + #endif ++#ifdef USE_SYSCTL ++ {"sysctl",sysctl_updateStats, sysctl_test}, ++#endif + {NULL, NULL} + }; char* available_drivers(void) { int ind = 0; @@ -18,13 +49,119 @@ char *string, *ptr; while(drivers[ind].name != NULL) { len += strlen(drivers[ind].name) + 1; -@@ -464,7 +464,8 @@ +@@ -440,6 +459,115 @@ - int sysctl_test(void) { - struct ifmibdata tempndata; -- int numifaces, len2; + #endif /* linux */ + ++/* new FreeBSD driver */ ++#ifdef USE_SYSCTL ++ ++int sysctl_test(void) { ++ struct ifmibdata tempndata; + int numifaces; + size_t len2; - int mib[5], datamib[6]; - int i; - ++ int mib[5], datamib[6]; ++ int i; ++ ++ if(device == NULL) device = "lo0"; ++ ++ mib[0] = CTL_NET; ++ mib[1] = PF_LINK; ++ mib[2] = NETLINK_GENERIC; ++ mib[3] = IFMIB_SYSTEM; ++ mib[4] = IFMIB_IFCOUNT; ++ ++ datamib[0] = CTL_NET; ++ datamib[1] = PF_LINK; ++ datamib[2] = NETLINK_GENERIC; ++ datamib[3] = IFMIB_IFDATA; ++ datamib[4] = 1; ++ datamib[5] = IFDATA_GENERAL; ++ ++ len = sizeof(struct ifmibdata); ++ len2 = sizeof(numifaces); ++ ++ if(sysctl(mib, 5, &numifaces, &len2, NULL, 0) < 0) ++ { ++ fprintf( stderr, "wmnet: failed to perform sysctl" ); ++ return 0; ++ } ++ ++ for(i = 1; i <= numifaces; i++) ++ { ++ datamib[4] = i; ++ if(sysctl(datamib, 6, &tempndata, &len, NULL, 0) < 0) ++ { ++ fprintf( stderr, "wmnet: failed to get device(%d) data", i ); ++ break; ++ } ++ ++ if( strcmp( device, tempndata.ifmd_name ) == 0 ) ++ { ++ id = i; ++ break; ++ } ++ } ++ ++ if ( id == 0 ) { ++ fprintf( stderr, "%s doesn't seem to exist!\n", device ); ++ exit( -1 ); ++ } ++ ++ /* calculate and allocate mem for ifmibdata containing the if stats */ ++ data = malloc(len); ++ ++ fprintf(stderr, "wmnet: using sysctl driver to monitor %s\n", device); ++ return True; ++} ++ ++int sysctl_updateStats(void) { ++ int datamib[6]; ++ ++ datamib[0] = CTL_NET; ++ datamib[1] = PF_LINK; ++ datamib[2] = NETLINK_GENERIC; ++ datamib[3] = IFMIB_IFDATA; ++ datamib[4] = id; ++ datamib[5] = IFDATA_GENERAL; ++ ++ if(sysctl( datamib, 6, data, &len, NULL, 0) < 0 ) { ++ fprintf( stderr, "wmnet: can't monitor %s device\n", device ); ++ exit( -1 ); ++ } ++ ++ // printf( "if name: %s\n", data->ifmd_name ); ++ ++ /* get the stats from the if */ ++ totalpackets_in = data->ifmd_data.ifi_ipackets; ++ totalpackets_out = data->ifmd_data.ifi_opackets; ++ ++ if (totalpackets_in != lastpackets_in) { ++ totalbytes_in = data->ifmd_data.ifi_ibytes; ++ diffpackets_in += totalpackets_in - lastpackets_in; ++ diffbytes_in += totalbytes_in - lastbytes_in; ++ lastpackets_in = totalpackets_in; ++ lastbytes_in = totalbytes_in; ++ rx = True; ++ } else rx = False; ++ ++ if (totalpackets_out != lastpackets_out) { ++ totalbytes_out = data->ifmd_data.ifi_obytes; ++ diffpackets_out += totalpackets_out - lastpackets_out; ++ diffbytes_out += totalbytes_out - lastbytes_out; ++ lastpackets_out = totalpackets_out; ++ lastbytes_out = totalbytes_out; ++ tx = True; ++ } else tx = False; ++ ++ /* return True if no change to tx/rx ++ * return False if display will need to be updated ++ */ ++ return((rx == current_rx) && (tx == current_tx)); ++} ++ ++#endif ++ + #ifdef USE_KVM + int kvm_test(void) { + if (((kvmfd = kvm_open(NULL, NULL, NULL, O_RDONLY, buffer)) == NULL) || diff -urN /usr/ports/net/wmnet2/files/patch-getopt.c net/wmnet2/files/patch-getopt.c --- /usr/ports/net/wmnet2/files/patch-getopt.c 2013-11-06 21:53:51.000000000 +0900 +++ net/wmnet2/files/patch-getopt.c 1970-01-01 09:00:00.000000000 +0900 @@ -1,11 +0,0 @@ ---- getopt.c.orig Fri Oct 9 10:59:00 1998 -+++ getopt.c Tue Apr 27 09:57:46 2004 -@@ -209,6 +209,8 @@ - - char *getenv (); - extern int strncmp(const char *s1, const char *s2, size_t len); -+extern int strcmp(const char *, const char *); -+extern size_t strlen(const char *); - - static char * - my_index (str, chr) diff -urN /usr/ports/net/wmnet2/pkg-descr net/wmnet2/pkg-descr --- /usr/ports/net/wmnet2/pkg-descr 2013-11-06 21:53:51.000000000 +0900 +++ net/wmnet2/pkg-descr 2013-12-17 00:00:00.000000000 +0900 @@ -1,11 +1,11 @@ -This little program polls network statistics and does a few things with the -data it gets. It has small blinking lights for the rx and tx of IP packets, -a digital speedometer of your polled stat's currentspeed and a bar graph like -xload et. al which has a tx speed graph from bottom-up and rx speed graph -from the top-down. The speedometer keeps track of the current speed per -second and shows it in a color corresponding to which of rx or tx that has -the highest speed at the moment. Also, the graph is drawn in a way that the -highest speed is drawn on top of the other while the other is in the -background. +This little program polls network statistics and does a few things with +the data it gets. It has small blinking lights for the rx and tx of IP +packets, a digital speedometer of your polled stat's currentspeed and a +bar graph like xload et. al which has a tx speed graph from bottom-up +and rx speed graph from the top-down. The speedometer keeps track of the +current speed per second and shows it in a color corresponding to which +of rx or tx that has the highest speed at the moment. Also, the graph is +drawn in a way that the highest speed is drawn on top of the other while +the other is in the background. -WWW: http://www.dockapps.org/file.php/id/77 +WWW: http://linux-bsd-unix.strefa.pl/ >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20131217025023.5ce6ac426de871d50126b63e>