Date: Tue, 17 Jul 2012 21:29:39 +0200 (CEST) From: Rodrigo OSORIO <rodrigo@bebik.net> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/169949: net/fping update and maintenership request Message-ID: <20120717192939.DFAEC2614F@oldfaithful.bebik.local> Resent-Message-ID: <201207171940.q6HJeCt5078669@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 169949 >Category: ports >Synopsis: net/fping update and maintenership request >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Tue Jul 17 19:40:12 UTC 2012 >Closed-Date: >Last-Modified: >Originator: Rodrigo OSORIO >Release: FreeBSD 9.0-STABLE amd64 >Organization: >Environment: System: FreeBSD oldfaithful.bebik.local 9.0-STABLE FreeBSD 9.0-STABLE #2: Thu Jul 5 22:22:11 CEST 2012 root@hodja.bebik.local:/usr/src/obj/usr/src/sys/GENERIC amd64 >Description: fping wasn't update for a long time. During this time the poject moves to a new website and the maintainer changes. Most of the patches was integrated upstream. I was notices by a smokeping user that the port maintainer was unreacheable . >How-To-Repeat: >Fix: This patch upgrades the port version from 2.4b2 to 3.2. The license infos will come as soon as I obtain a response from the maintainer but it look like a BSD compliant one. --- fping.patch begins here --- diff -ruN net/fping/Makefile net/fping/Makefile --- net/fping/Makefile 2012-07-17 21:12:39.000000000 +0200 +++ net/fping/Makefile 2012-07-17 21:11:22.000000000 +0200 @@ -7,14 +7,11 @@ # PORTNAME= fping -PORTVERSION= 2.4b2 -PORTREVISION= 1 +PORTVERSION= 3.2 CATEGORIES= net ipv6 -MASTER_SITES= http://keyserver.kjsl.com/~jharris/distfiles/ -#MASTER_SITES= http://www.fping.com/download/ -DISTNAME= ${PORTNAME}-${PORTVERSION}_to-ipv6 +MASTER_SITES= http://fping.org/dist/ -MAINTAINER= jharris@widomaker.com +MAINTAINER= rodrigo@bebik.net COMMENT= Quickly ping N hosts w/o flooding the network PLIST_FILES= sbin/fping @@ -23,15 +20,6 @@ CONFIGURE_ARGS= --bindir="${PREFIX}/sbin" MAN8= fping.8 -.if defined(WITH_IPV6) -# IPv6 not enabled by default, as it does not work together with IPv4. -CFLAGS+= -DIPV6 -.endif - -post-patch: - @${REINPLACE_CMD} -e 's/fping@/${MAINTAINER:S/@/\\@/g} or fping@/g' \ - ${WRKSRC}/fping.c - post-install: @${STRIP_CMD} ${PREFIX}/sbin/fping @${CHMOD} 4555 ${PREFIX}/sbin/fping diff -ruN net/fping/distinfo net/fping/distinfo --- net/fping/distinfo 2012-07-17 21:12:39.000000000 +0200 +++ net/fping/distinfo 2012-07-17 21:11:22.000000000 +0200 @@ -1,2 +1,2 @@ -SHA256 (fping-2.4b2_to-ipv6.tar.gz) = 77e1a90af4fff4a5ffc4b70542c6ff44130558357e7d549f99a9eff23108d172 -SIZE (fping-2.4b2_to-ipv6.tar.gz) = 63333 +SHA256 (fping-3.2.tar.gz) = b26739a1fa3471775ff1958a1e3d7597f12c9eb56429c29cf956e52f5046e2c1 +SIZE (fping-3.2.tar.gz) = 137967 diff -ruN net/fping/files/patch-02 net/fping/files/patch-02 --- net/fping/files/patch-02 2012-07-17 21:12:39.000000000 +0200 +++ net/fping/files/patch-02 1970-01-01 01:00:00.000000000 +0100 @@ -1,146 +0,0 @@ ---- fping.c.orig Mon Jan 21 02:06:30 2002 -+++ fping.c Tue Jul 12 18:11:30 2005 -@@ -42,7 +42,6 @@ - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ --#define IPV6 1 /* This should be a compiler option, or even better be done from the Makefile... ;) */ - - #ifndef _NO_PROTO - #if !__STDC__ && !defined( __cplusplus ) && !defined( FUNCPROTO ) \ -@@ -67,7 +66,7 @@ - - /*** autoconf includes ***/ - -- -+#include <sys/types.h> - #include <stdio.h> - #include <errno.h> - #include <time.h> -@@ -88,7 +87,6 @@ - #include <string.h> - #include <stddef.h> - --#include <sys/types.h> - #include <sys/time.h> - #include <sys/socket.h> - -@@ -112,6 +110,10 @@ - #include <arpa/inet.h> - #include <netdb.h> - -+#if (defined(__unix__) || defined(unix)) && !defined(USG) -+#include <sys/param.h> -+#endif -+ - /* RS6000 has sys/select.h */ - #ifdef HAVE_SYS_SELECT_H - #include <sys/select.h> -@@ -246,13 +248,13 @@ - struct timeval last_send_time; /* time of last packet sent */ - int num_sent; /* number of ping packets sent */ - int num_recv; /* number of pings received */ -- int max_reply; /* longest response time */ -- int min_reply; /* shortest response time */ -+ long max_reply; /* longest response time */ -+ long min_reply; /* shortest response time */ - int total_time; /* sum of response times */ - int num_sent_i; /* number of ping packets sent */ - int num_recv_i; /* number of pings received */ -- int max_reply_i; /* longest response time */ -- int min_reply_i; /* shortest response time */ -+ long max_reply_i; /* longest response time */ -+ long min_reply_i; /* shortest response time */ - int total_time_i; /* sum of response times */ - int *resp_times; /* individual response times */ - #if defined( DEBUG ) || defined( _DEBUG ) -@@ -482,7 +484,7 @@ - - }/* IF */ - -- prog = argv[0]; -+ prog = (prog = strrchr(argv[0], '/')) ? prog + 1 : argv[0]; - ident = getpid() & 0xFFFF; - - verbose_flag = 1; -@@ -502,8 +504,8 @@ - break; - - case 'r': -- if( !( retry = ( u_int )atoi( optarg ) ) ) -- usage(); -+ retry = ( u_int )atoi( optarg ); -+ - - break; - -@@ -823,6 +825,7 @@ - - while( fgets( line, 132, ping_file ) ) - { -+ line[132-1] = '\0'; - if( sscanf( line, "%s", host ) != 1 ) - continue; - -@@ -1503,7 +1506,6 @@ - memset( buffer, 0, ping_pkt_size * sizeof( char ) ); - icp = ( FPING_ICMPHDR* )buffer; - -- gettimeofday( &h->last_send_time, &tz ); - #ifndef IPV6 - icp->icmp_type = ICMP_ECHO; - icp->icmp_code = 0; -@@ -1512,6 +1514,8 @@ - icp->icmp_id = ident; - - pdp = ( PING_DATA* )( buffer + SIZE_ICMP_HDR ); -+ /* set the time at the very last possible point */ -+ gettimeofday(&h->last_send_time,&tz); - pdp->ping_ts = h->last_send_time; - pdp->ping_count = h->num_sent; - -@@ -1523,6 +1527,8 @@ - icp->icmp6_id = ident; - - pdp = ( PING_DATA* )( buffer + SIZE_ICMP_HDR ); -+ /* set the time at the very last possible point */ -+ gettimeofday(&h->last_send_time,&tz); - pdp->ping_ts = h->last_send_time; - pdp->ping_count = h->num_sent; - -@@ -1611,6 +1617,9 @@ - - result = recvfrom_wto( s, buffer, sizeof(buffer), &response_addr, select_time ); - -+ /* get time of receipt as close to the real time as possible */ -+ gettimeofday(¤t_time,&tz); -+ - if( result < 0 ) - return 0; /* timeout */ - -@@ -1625,7 +1634,7 @@ - - ip = ( struct ip* )buffer; - #ifndef IPV6 --#if defined( __alpha__ ) && __STDC__ && !defined( __GLIBC__ ) -+#if defined( __alpha__ ) && defined(__osf1__) && __STDC__ && !defined( __GLIBC__ ) - /* The alpha headers are decidedly broken. - * Using an ANSI compiler, it provides ip_vhl instead of ip_hl and - * ip_v. So, to get ip_hl, we mask off the bottom four bits. -@@ -1633,7 +1642,7 @@ - hlen = ( ip->ip_vhl & 0x0F ) << 2; - #else - hlen = ip->ip_hl << 2; --#endif /* defined(__alpha__) && __STDC__ */ -+#endif /* defined(__alpha__) && defined(__osf1__) && __STDC__ */ - if( result < hlen + ICMP_MINLEN ) - #else - if( result < sizeof(FPING_ICMPHDR) ) -@@ -1690,7 +1699,6 @@ - h = table[n]; - - /* received ping is cool, so process it */ -- gettimeofday( ¤t_time, &tz ); - h->waiting = 0; - h->timeout = timeout; - h->num_recv++; diff -ruN net/fping/files/patch-03 net/fping/files/patch-03 --- net/fping/files/patch-03 2012-07-17 21:12:39.000000000 +0200 +++ net/fping/files/patch-03 1970-01-01 01:00:00.000000000 +0100 @@ -1,32 +0,0 @@ ---- fping.8.orig Mon Jan 21 01:05:48 2002 -+++ fping.8 Sun Jul 7 22:03:43 2002 -@@ -1,4 +1,4 @@ --.TH fping l -+.TH fping 8 - .SH NAME - fping \- send ICMP ECHO_REQUEST packets to network hosts - .SH SYNOPSIS -@@ -152,12 +152,12 @@ - example none the less. - .nf - --#!/usr/local/bin/perl -+#!/usr/bin/perl - require 'open2.pl'; - - $MAILTO = "root"; - --$pid = &open2("OUTPUT","INPUT","/usr/local/bin/fping -u"); -+$pid = &open2("OUTPUT","INPUT","/usr/local/sbin/fping -u"); - - @check=("slapshot","foo","foobar"); - -@@ -178,7 +178,7 @@ - that are currently reachable. - .nf - --#!/usr/local/bin/perl -+#!/usr/bin/perl - - $hosts_to_backup = `cat /etc/hosts.backup | fping -a`; - diff -ruN net/fping/files/patch-sourceaddr net/fping/files/patch-sourceaddr --- net/fping/files/patch-sourceaddr 2012-07-17 21:12:39.000000000 +0200 +++ net/fping/files/patch-sourceaddr 1970-01-01 01:00:00.000000000 +0100 @@ -1,88 +0,0 @@ -diff -ru ../fping-2.4b2_to-ipv6-orig/fping.c ./fping.c ---- ../fping-2.4b2_to-ipv6-orig/fping.c Sun Jan 20 19:06:30 2002 -+++ ./fping.c Fri Apr 13 14:36:02 2007 -@@ -283,6 +283,12 @@ - u_int count = 1; - u_int trials; - u_int report_interval = 0; -+int src_addr_present = 0; -+#ifndef IPV6 -+struct in_addr src_addr; -+#else -+struct in6_addr src_addr; -+#endif - - /* global stats */ - long max_reply = 0; -@@ -408,6 +414,11 @@ - struct protoent *proto; - char *buf; - uid_t uid; -+#ifndef IPV6 -+ struct sockaddr_in sa; -+#else -+ struct sockaddr_in6 sa; -+#endif - /* check if we are root */ - - if( geteuid() ) -@@ -491,7 +502,7 @@ - - /* get command line options */ - -- while( ( c = getopt( argc, argv, "gedhlmnqusaAvz:t:i:p:f:r:c:b:C:Q:B:" ) ) != EOF ) -+ while( ( c = getopt( argc, argv, "gedhlmnqusaAvz:t:i:p:f:r:c:b:C:Q:B:S:" ) ) != EOF ) - { - switch( c ) - { -@@ -639,6 +650,16 @@ - generate_flag = 1; - break; - -+ case 'S': -+#ifndef IPV6 -+ if( ! inet_pton( AF_INET, optarg, &src_addr ) ) -+#else -+ if( ! inet_pton( AF_INET6, optarg, &src_addr ) ) -+#endif -+ usage(); -+ src_addr_present = 1; -+ break; -+ - default: - usage(); - break; -@@ -962,6 +983,22 @@ - if( !num_hosts ) - exit( 2 ); - -+ /* set the source address */ -+ -+ if( src_addr_present ) -+ { -+ memset( &sa, 0, sizeof( sa ) ); -+#ifndef IPV6 -+ sa.sin_family = AF_INET; -+ sa.sin_addr = src_addr; -+#else -+ sa.sin6_family = AF_INET6; -+ sa.sin6_addr = src_addr; -+#endif -+ if ( bind( s, (struct sockaddr *)&sa, sizeof( sa ) ) < 0 ) -+ errno_crash_and_burn( "cannot bind source address" ); -+ } -+ - /* allocate array to hold outstanding ping requests */ - - table = ( HOST_ENTRY** )malloc( sizeof( HOST_ENTRY* ) * num_hosts ); -@@ -2732,6 +2769,7 @@ - fprintf( stderr, " -Q n same as -q, but show summary every n seconds\n" ); - fprintf( stderr, " -r n number of retries (default %d)\n", retry ); - fprintf( stderr, " -s print final stats\n" ); -+ fprintf( stderr, " -S addr set source address\n" ); - fprintf( stderr, " -t n individual target initial timeout (in millisec) (default %d)\n", timeout / 100 ); - fprintf( stderr, " -u show targets that are unreachable\n" ); - fprintf( stderr, " -v show version\n" ); - - - diff -ruN net/fping/pkg-descr net/fping/pkg-descr --- net/fping/pkg-descr 2012-07-17 21:12:39.000000000 +0200 +++ net/fping/pkg-descr 2012-07-17 21:11:23.000000000 +0200 @@ -13,4 +13,4 @@ Unlike ping, fping is meant to be used in scripts and its output is easy to parse. -WWW: http://www.fping.com/ +WWW: http://www.fping.org/ --- fping.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120717192939.DFAEC2614F>