Skip site navigation (1)Skip section navigation (2)
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>