ports/145924: [PATCH] net/rtg: add startup script, and optimise database table creation

Daniel Austin freebsd-ports at dan.me.uk
Wed Apr 21 21:20:06 UTC 2010


>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 at FreeBSD.org
+MAINTAINER=	freebsd-ports at 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:



More information about the freebsd-ports-bugs mailing list