Date: Wed, 21 Apr 2010 22:10:56 +0100 (BST) From: Daniel Austin <freebsd-ports@dan.me.uk> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/145924: [PATCH] net/rtg: add startup script, and optimise database table creation Message-ID: <201004212110.o3LLAugZ014312@bolton.dan.me.uk> Resent-Message-ID: <201004212120.o3LLK62U066015@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 145924 >Category: ports >Synopsis: [PATCH] net/rtg: add startup script, and optimise database table creation >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: Wed Apr 21 21:20:05 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Daniel Austin >Release: FreeBSD 8.0-STABLE amd64 >Organization: >Environment: System: FreeBSD bolton.dan.me.uk 8.0-STABLE FreeBSD 8.0-STABLE #0: Sat Apr 17 15:03:33 BST 2010 >Description: I am happy to take over maintainer on this port. I have added a much needed startup script, optimised db table creation with indexes, added a PID file option to the polling process and fixed some warnings in the Makefile. Added file(s): - files/patch-etc-rtgtargmkr.pl.in - files/patch-src-rtg.h - files/patch-src-rtgpoll.c - files/rtgpoll.in Generated with FreeBSD Port Tools 0.99 >How-To-Repeat: >Fix: --- rtg-0.7.4_5.patch begins here --- 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 <file> Specify configuration file\n"); + printf(" -d Disable database inserts\n"); ++ printf(" -p <file> Specify pid file (defaults to /tmp/rtgpoll.pid)\n"); + printf(" -t <file> 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" + --- rtg-0.7.4_5.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?201004212110.o3LLAugZ014312>