diff -ruN --exclude=CVS /usr/ports/net/rtg/Makefile /usr/ports/net/rtg.new/Makefile --- /usr/ports/net/rtg/Makefile 2010-04-21 21:50:24.185293078 +0100 +++ /usr/ports/net/rtg.new/Makefile 2010-04-21 21:43:00.249914307 +0100 @@ -7,18 +7,19 @@ PORTNAME= rtg PORTVERSION= 0.7.4 -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= net MASTER_SITES= SF -MAINTAINER= ports@FreeBSD.org +MAINTAINER= freebsd-ports@dan.me.uk COMMENT= A flexible, high-performance SNMP statistics monitoring system LIB_DEPENDS= netsnmp.16:${PORTSDIR}/net-mgmt/net-snmp MAN1= rtgplot.1 rtgpoll.1 -USE_MYSQL= yes +USE_RC_SUBR= rtgpoll +USE_MYSQL= yes GNU_CONFIGURE= yes CONFIGURE_ARGS+= --sysconfdir=${PREFIX}/etc/${PORTNAME} \ --with-mysql=${LOCALBASE} \ diff -ruN --exclude=CVS /usr/ports/net/rtg/files/patch-etc-rtgtargmkr.pl.in /usr/ports/net/rtg.new/files/patch-etc-rtgtargmkr.pl.in --- /usr/ports/net/rtg/files/patch-etc-rtgtargmkr.pl.in 1970-01-01 01:00:00.000000000 +0100 +++ /usr/ports/net/rtg.new/files/patch-etc-rtgtargmkr.pl.in 2010-04-21 21:01:20.907252084 +0100 @@ -0,0 +1,11 @@ +--- etc/rtgtargmkr.pl.in.orig 2010-04-21 20:55:58.903081619 +0100 ++++ etc/rtgtargmkr.pl.in 2010-04-21 20:56:15.567832088 +0100 +@@ -126,7 +126,7 @@ + &sql_insert($sql); + $rid = &find_router_id($router); + foreach $mib ( keys %mibs_of_interest ) { +- $sql = "CREATE TABLE $mib"."_$rid (id INT NOT NULL, dtime DATETIME NOT NULL, counter BIGINT NOT NULL, KEY $mib"."_$rid". "_idx (dtime))"; ++ $sql = "CREATE TABLE $mib"."_$rid (id INT NOT NULL, dtime DATETIME NOT NULL, counter BIGINT NOT NULL, KEY $mib"."_$rid". "_idx (dtime), KEY id_dtime_idx (id,dtime))"; + &sql_insert($sql); + } + } diff -ruN --exclude=CVS /usr/ports/net/rtg/files/patch-src-rtg.h /usr/ports/net/rtg.new/files/patch-src-rtg.h --- /usr/ports/net/rtg/files/patch-src-rtg.h 1970-01-01 01:00:00.000000000 +0100 +++ /usr/ports/net/rtg.new/files/patch-src-rtg.h 2010-04-21 21:34:47.350265897 +0100 @@ -0,0 +1,13 @@ +--- src/rtg.h.orig 2010-04-21 21:26:38.587554904 +0100 ++++ src/rtg.h 2010-04-21 21:31:40.436052227 +0100 +@@ -42,9 +42,7 @@ + #define DEFAULT_DB_PASS "rtgdefault" + #define DEFAULT_SNMP_VER 1 + #define DEFAULT_SNMP_PORT 161 +- +-/* PID File */ +-#define PIDFILE "/tmp/rtgpoll.pid" ++#define DEFAULT_PIDFILE "/tmp/rtgpoll.pid" + + #define STAT_DESCRIP_ERROR 99 + #define HASHSIZE 5000 diff -ruN --exclude=CVS /usr/ports/net/rtg/files/patch-src-rtgpoll.c /usr/ports/net/rtg.new/files/patch-src-rtgpoll.c --- /usr/ports/net/rtg/files/patch-src-rtgpoll.c 1970-01-01 01:00:00.000000000 +0100 +++ /usr/ports/net/rtg.new/files/patch-src-rtgpoll.c 2010-04-21 21:35:03.514023063 +0100 @@ -0,0 +1,65 @@ +--- src/rtgpoll.c.orig 2010-04-21 21:24:13.686718318 +0100 ++++ src/rtgpoll.c 2010-04-21 21:33:53.755065067 +0100 +@@ -13,6 +13,7 @@ + stats_t stats = + {PTHREAD_MUTEX_INITIALIZER, 0, 0, 0, 0, 0, 0, 0, 0, 0.0}; + char *target_file = NULL; ++char *pidfile = NULL; + target_t *current = NULL; + MYSQL mysql; + int entries = 0; +@@ -41,7 +42,7 @@ + config_defaults(&set); + + /* Parse the command-line. */ +- while ((ch = getopt(argc, argv, "c:dhmt:vz")) != EOF) ++ while ((ch = getopt(argc, argv, "c:dhmp:t:vz")) != EOF) + switch ((char) ch) { + case 'c': + conf_file = optarg; +@@ -55,6 +56,9 @@ + case 'm': + set.multiple++; + break; ++ case 'p': ++ pidfile = optarg; ++ break; + case 't': + target_file = optarg; + break; +@@ -66,6 +70,9 @@ + break; + } + ++ if (!pidfile) ++ pidfile = DEFAULT_PIDFILE; ++ + if (set.verbose >= LOW) + printf("RTG version %s starting.\n", VERSION); + +@@ -78,7 +85,7 @@ + sigaddset(&signal_set, SIGINT); + sigaddset(&signal_set, SIGQUIT); + if (!set.multiple) +- checkPID(PIDFILE); ++ checkPID(pidfile); + + if (pthread_sigmask(SIG_BLOCK, &signal_set, NULL) != 0) + printf("pthread_sigmask error\n"); +@@ -244,7 +251,7 @@ + if (set.verbose >= LOW) + printf("Quiting: received signal %d.\n", sig_number); + rtg_dbdisconnect(&mysql); +- unlink(PIDFILE); ++ unlink(pidfile); + exit(1); + break; + } +@@ -259,6 +266,7 @@ + printf("\nOptions:\n"); + printf(" -c Specify configuration file\n"); + printf(" -d Disable database inserts\n"); ++ printf(" -p Specify pid file (defaults to /tmp/rtgpoll.pid)\n"); + printf(" -t Specify target file\n"); + printf(" -v Increase verbosity\n"); + printf(" -m Allow multiple instances\n"); diff -ruN --exclude=CVS /usr/ports/net/rtg/files/rtgpoll.in /usr/ports/net/rtg.new/files/rtgpoll.in --- /usr/ports/net/rtg/files/rtgpoll.in 1970-01-01 01:00:00.000000000 +0100 +++ /usr/ports/net/rtg.new/files/rtgpoll.in 2010-04-21 21:59:35.415072523 +0100 @@ -0,0 +1,36 @@ +#!/bin/sh + +# $FreeBSD$ +# +# PROVIDE: rtgpoll +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# rtgpoll_enable (bool): Set to NO by default. +# Set it to YES to enable rtgpoll. +# rtgpoll_config (path): Set to %%PREFIX%%/etc/rtg/rtg.conf by default. +# rtgpoll_targets (path): Set to %%PREFIX%%/etc/rtg/targets.cfg by default. +# rtgpoll_pidfile (path): Set to /var/run/rtgpoll.pid by default. +# + +. /etc/rc.subr + +name="rtgpoll" +rcvar=${name}_enable + +command=%%PREFIX%%/bin/${name} + +load_rc_config $name + +: ${rtgpoll_enable="NO"} +: ${rtgpoll_config="%%PREFIX%%/etc/rtg/rtg.conf"} +: ${rtgpoll_targets="%%PREFIX%%/etc/rtg/targets.cfg"} +: ${rtgpoll_pidfile="/var/run/${name}.pid"} + +command_args="-p $rtgpoll_pidfile -c $rtgpoll_config -t $rtgpoll_targets &" + +run_rc_command "$1" +