diff options
author | brooks <brooks@FreeBSD.org> | 2006-07-14 05:52:02 +0800 |
---|---|---|
committer | brooks <brooks@FreeBSD.org> | 2006-07-14 05:52:02 +0800 |
commit | fa4bf3436b852984c6b032825d01ea7c78dd6369 (patch) | |
tree | 6b21ffa30d9d89a7f0a816b1bee26877bbd40672 /sysutils | |
parent | 49043063c6e608f7f9f5bebe1b1b74e8fdaddf3b (diff) | |
download | freebsd-ports-gnome-fa4bf3436b852984c6b032825d01ea7c78dd6369.tar.gz freebsd-ports-gnome-fa4bf3436b852984c6b032825d01ea7c78dd6369.tar.zst freebsd-ports-gnome-fa4bf3436b852984c6b032825d01ea7c78dd6369.zip |
- Upgrade to 3.0.3 eliminating the need for the cpufreq patch and fixing
some bugs.
- Spell REQUIRE correctly in ganglia.sh.in
- For systems where rcorder is run on LOCALBASE/etc/rc.d, split
ganglia.sh into gmond.sh and gmetad.sh.
- Replace the patches changing user nobody to ganglia with REINPLACE_CMD
in post-patch removing a maintance issue and decreasing the file
count. Also, expand the scope to include gmond.conf's documentation
which was missed missed previously.
Diffstat (limited to 'sysutils')
11 files changed, 113 insertions, 164 deletions
diff --git a/sysutils/ganglia-monitor-core/Makefile b/sysutils/ganglia-monitor-core/Makefile index 1e91600daf5c..59bff459afb8 100644 --- a/sysutils/ganglia-monitor-core/Makefile +++ b/sysutils/ganglia-monitor-core/Makefile @@ -6,14 +6,9 @@ # PORTNAME= monitor-core -PORTVERSION= 3.0.1 -PORTREVISION= 3 +PORTVERSION= 3.0.3 CATEGORIES= sysutils net parallel -.if !defined(PORTDEV) MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} -.else -MASTER_SITES= http://matt-massie.com/%SUBDIR%/ -.endif MASTER_SITE_SUBDIR= ganglia PKGNAMEPREFIX= ganglia- .if defined(CLUSTER) @@ -34,9 +29,6 @@ CONFIGURE_ENV= CFLAGS="${_CFLAGS}" LDFLAGS="${_LDFLAGS}" _CFLAGS= ${CFLAGS} -I${LOCALBASE}/include ${PTHREAD_CFLAGS} _LDFLAGS= ${LDFLAGS} -L${LOCALBASE}/lib -USE_BZIP2= yes -USE_RC_SUBR= ganglia.sh - SUB_FILES= pkg-install .if defined (GMETAD_CONF) @@ -57,6 +49,19 @@ GMOND_CONF= ${WRKDIR}/gmond.conf .include <bsd.port.pre.mk> +# The daemons should use seperate scripts, but prior to 6.1 they won't +# run in the right order. In those cases we use the old monolythic +# script. +.if (${OSVERSION} >= 700007 || ( ${OSVERSION} < 700000 && ${OSVERSION} >= 600101)) +USE_RC_SUBR= gmond.sh +.if defined (WITH_GMETAD) +USE_RC_SUBR+= gmetad.sh +.endif +.else +USE_RC_SUBR= ganglia.sh +.endif + + .if defined (WITH_GMETAD) LIB_DEPENDS= rrd.2:${PORTSDIR}/net/rrdtool CONFIGURE_ARGS+= --with-gmetad @@ -95,12 +100,22 @@ FIX_CONF_FILES= ganglia.pod \ FIX_DB_FILES= ganglia.pod \ gmetad/conf.c \ gmetad/gmetad.conf +FIX_USER_FILES= ganglia.pod \ + gmetad/conf.c \ + gmetad/gmetad.conf \ + gmond/conf.pod \ + gmond/gmond.conf.5 \ + gmond/gmond.conf.html \ + gmond/g25_config.c \ + lib/libgmond.c post-patch: ${REINPLACE_CMD} -e "s|/etc/\(gm[a-z]*d.conf\)|${PREFIX}/etc/\1|g" \ ${FIX_CONF_FILES:S|^|${WRKSRC}/|} ${REINPLACE_CMD} -e "s|/var/lib/ganglia|/var/db/ganglia|g" \ ${FIX_DB_FILES:S|^|${WRKSRC}/|} + ${REINPLACE_CMD} -e "s|nobody|ganglia|g" \ + ${FIX_USER_FILES:S|^|${WRKSRC}/|} post-build: ${WRKSRC}/gmond/gmond -t > ${WRKDIR}/gmond.conf diff --git a/sysutils/ganglia-monitor-core/distinfo b/sysutils/ganglia-monitor-core/distinfo index e6297436fbc3..51d2094f2f0f 100644 --- a/sysutils/ganglia-monitor-core/distinfo +++ b/sysutils/ganglia-monitor-core/distinfo @@ -1,3 +1,3 @@ -MD5 (ganglia-3.0.1.tar.bz2) = 14f086834f91899d921bf7e7fe44b536 -SHA256 (ganglia-3.0.1.tar.bz2) = 5806fef3d43e57988032b2ce757e6e12a24d68185664868a5b5c6781b7f0656e -SIZE (ganglia-3.0.1.tar.bz2) = 2649342 +MD5 (ganglia-3.0.3.tar.gz) = c48320a112db20e8372ae8e89d97583e +SHA256 (ganglia-3.0.3.tar.gz) = 02e6272aa5f614a5ea3336c8cc4e1cdcd794893114d08dda39188c010154deab +SIZE (ganglia-3.0.3.tar.gz) = 2824785 diff --git a/sysutils/ganglia-monitor-core/files/ganglia.sh.in b/sysutils/ganglia-monitor-core/files/ganglia.sh.in index f02b30ee376a..f1790eb369a7 100644 --- a/sysutils/ganglia-monitor-core/files/ganglia.sh.in +++ b/sysutils/ganglia-monitor-core/files/ganglia.sh.in @@ -2,7 +2,7 @@ # $FreeBSD$ # PROVIDE: ganglia -# REQIORE: DAEMON +# REQUIRE: DAEMON # KEYWORD: shutdown # XXX: This should really be two seperate scripts with rcorder diff --git a/sysutils/ganglia-monitor-core/files/gmetad.sh.in b/sysutils/ganglia-monitor-core/files/gmetad.sh.in new file mode 100644 index 000000000000..9f2ad11e2526 --- /dev/null +++ b/sysutils/ganglia-monitor-core/files/gmetad.sh.in @@ -0,0 +1,60 @@ +#!/bin/sh +# $FreeBSD$ + +# PROVIDE: gmetad +# REQUIRE: gmond +# KEYWORD: shutdown + +. %%RC_SUBR%% + +name=gmetad +rcvar=`set_rcvar` +command="%%PREFIX%%/sbin/${name}" +start_precmd="gmetad_prestart" +stop_postcmd="gmetad_poststop" + +gmetad_prestart() +{ + if [ ! -d ${gmetasnap_rrddir} ]; then + mkdir -p ${gmetasnap_rrddir} + fi + chown ganglia:ganglia ${gmetasnap_rrddir} + if checkyesno gmetasnap_enable; then + if [ ! -d ${gmetasnap_snapdir} ]; then + mkdir -p ${gmetasnap_snapdir} + chown ganglia:ganglia ${gmetasnap_snapdir} + fi + if [ `ls ${gmetasnap_rrddir} | egrep -v ^.snap | wc -l` -eq 0 ]; then + ${gmetasnap_command} -r ${gmetasnap_rrddir} \ + -s ${gmetasnap_snapdir} ${gmetasnap_flags} \ + restore ${gmetasnap_snapname} + fi + fi +} + +gmetad_poststop() +{ + if checkyesno gmetasnap_enable; then + ${gmetasnap_command} -r ${gmetasnap_rrddir} \ + -s ${gmetasnap_snapdir} ${gmetasnap_flags} \ + save ${gmetasnap_snapname} + fi +} + +load_rc_config ganglia + +load_rc_config $name + +gmetad_enable=${gmetad_enable-NO} +gmetad_conf=${gmetad_conf-%%PREFIX%%/etc/gmetad.conf} + +gmetasnap_enable=${gmetasnap_enable-NO} +gmetasnap_rrddir=${gmetasnap_rrddir-/var/db/ganglia/rrds} +gmetasnap_snapdir=${gmetasnap_snapdir-/var/db/ganglia/snaps} +gmetasnap_snapname=${gmetasnap_snapname-snap} +gmetasnap_command=${gmetasnap_command-%%PREFIX%%/sbin/gmetasnap} + +command_args="-c ${gmetad_conf}" +required_files=${gmetad_conf} + +run_rc_command $* diff --git a/sysutils/ganglia-monitor-core/files/gmond.sh.in b/sysutils/ganglia-monitor-core/files/gmond.sh.in new file mode 100644 index 000000000000..ec66b3e174f8 --- /dev/null +++ b/sysutils/ganglia-monitor-core/files/gmond.sh.in @@ -0,0 +1,25 @@ +#!/bin/sh +# $FreeBSD$ + +# PROVIDE: gmond +# REQUIRE: DAEMON +# KEYWORD: shutdown + + +. %%RC_SUBR%% + +name=gmond +rcvar=`set_rcvar` +command="%%PREFIX%%/sbin/${name}" + +load_rc_config ganglia + +load_rc_config $name + +gmond_enable=${gmond_enable-NO} +gmond_conf=${gmond_conf-%%PREFIX%%/etc/gmond.conf} + +command_args="-c ${gmond_conf}" +required_files=${gmond_conf} + +run_rc_command $* diff --git a/sysutils/ganglia-monitor-core/files/patch-ganglia.pod b/sysutils/ganglia-monitor-core/files/patch-ganglia.pod deleted file mode 100644 index 9647438e6fcc..000000000000 --- a/sysutils/ganglia-monitor-core/files/patch-ganglia.pod +++ /dev/null @@ -1,18 +0,0 @@ - -$FreeBSD$ - ---- ganglia.pod.orig -+++ ganglia.pod -@@ -451,9 +451,9 @@ - # setuid off - # - #------------------------------------------------------------------------------- -- # User gmetad will setuid to (defaults to "nobody") -- # default: "nobody" -- # setuid_username "nobody" -+ # User gmetad will setuid to (defaults to "ganglia") -+ # default: "ganglia" -+ # setuid_username "ganglia" - # - #------------------------------------------------------------------------------- - # The port gmetad will answer requests for XML diff --git a/sysutils/ganglia-monitor-core/files/patch-gmetad_conf.c b/sysutils/ganglia-monitor-core/files/patch-gmetad_conf.c deleted file mode 100644 index 12bc6ee6482b..000000000000 --- a/sysutils/ganglia-monitor-core/files/patch-gmetad_conf.c +++ /dev/null @@ -1,14 +0,0 @@ - -$FreeBSD$ - ---- gmetad/conf.c.orig -+++ gmetad/conf.c -@@ -249,7 +249,7 @@ - config->trusted_hosts = NULL; - config->debug_level = 0; - config->should_setuid = 1; -- config->setuid_username = "nobody"; -+ config->setuid_username = "ganglia"; - config->rrd_rootdir = "/var/lib/ganglia/rrds"; - config->scalable_mode = 1; - config->all_trusted = 0; diff --git a/sysutils/ganglia-monitor-core/files/patch-gmetad_gmetad.conf b/sysutils/ganglia-monitor-core/files/patch-gmetad_gmetad.conf deleted file mode 100644 index 8d0b13d54724..000000000000 --- a/sysutils/ganglia-monitor-core/files/patch-gmetad_gmetad.conf +++ /dev/null @@ -1,18 +0,0 @@ - -$FreeBSD$ - ---- gmetad/gmetad.conf.orig Mon May 12 14:58:40 2003 -+++ gmetad/gmetad.conf Tue Oct 28 11:11:03 2003 -@@ -80,9 +80,9 @@ - # setuid off - # - #------------------------------------------------------------------------------- --# User gmetad will setuid to (defaults to "nobody") --# default: "nobody" --# setuid_username "nobody" -+# User gmetad will setuid to (defaults to "ganglia") -+# default: "ganglia" -+# setuid_username "ganglia" - # - #------------------------------------------------------------------------------- - # The port gmetad will answer requests for XML diff --git a/sysutils/ganglia-monitor-core/files/patch-gmond_g25__config.c b/sysutils/ganglia-monitor-core/files/patch-gmond_g25__config.c deleted file mode 100644 index faf21c8520ba..000000000000 --- a/sysutils/ganglia-monitor-core/files/patch-gmond_g25__config.c +++ /dev/null @@ -1,14 +0,0 @@ - -$FreeBSD$ - ---- gmond/g25_config.c.orig -+++ gmond/g25_config.c -@@ -228,7 +228,7 @@ - config->deaf = 0; - config->debug_level = 0; - config->no_setuid = 0; -- config->setuid = conf_strdup("nobody"); -+ config->setuid = conf_strdup("ganglia"); - config->no_gexec = 0; - config->all_trusted = 0; - config->host_dmax = 0; diff --git a/sysutils/ganglia-monitor-core/files/patch-lib_libgmond.c b/sysutils/ganglia-monitor-core/files/patch-lib_libgmond.c deleted file mode 100644 index 93e5fad0824f..000000000000 --- a/sysutils/ganglia-monitor-core/files/patch-lib_libgmond.c +++ /dev/null @@ -1,23 +0,0 @@ - -$FreeBSD$ - ---- lib/libgmond.c.orig -+++ lib/libgmond.c -@@ -39,7 +39,7 @@ - static cfg_opt_t globals_opts[] = { - CFG_BOOL("daemonize", 1, CFGF_NONE), - CFG_BOOL("setuid", 1, CFGF_NONE), -- CFG_STR("user", "nobody", CFGF_NONE), -+ CFG_STR("user", "ganglia", CFGF_NONE), - /* later i guess we should add "group" as well */ - CFG_INT("debug_level", 0, CFGF_NONE), - CFG_INT("max_udp_msg_len", 1472, CFGF_NONE), -@@ -125,7 +125,7 @@ - The values closely match ./gmond/metric.h definitions in 2.5.x */ \n\ - globals { \n\ - setuid = yes \n\ -- user = nobody \n\ -+ user = ganglia \n\ - cleanup_threshold = 300 /*secs */ \n\ - } \n\ - \n\ diff --git a/sysutils/ganglia-monitor-core/files/patch-srclib_libmetrics_freebsd_metrics.c b/sysutils/ganglia-monitor-core/files/patch-srclib_libmetrics_freebsd_metrics.c deleted file mode 100644 index 0a655c4fd4da..000000000000 --- a/sysutils/ganglia-monitor-core/files/patch-srclib_libmetrics_freebsd_metrics.c +++ /dev/null @@ -1,64 +0,0 @@ - -$FreeBSD$ - ---- srclib/libmetrics/freebsd/metrics.c.orig -+++ srclib/libmetrics/freebsd/metrics.c -@@ -151,16 +151,51 @@ - cpu_speed_func ( void ) - { - g_val_t val; -- int cpu_speed; -- size_t len = sizeof(cpu_speed); -+ char buf[1024]; -+ char *curptr; -+ size_t len; -+ long freq = 0, tmpfreq; - - /* -- * machdep.tsc_freq is an i386/amd64 only feature, but it's the best -- * we've got at the moment. -+ * If the system supports it, the cpufreq driver provides the best -+ * access to CPU frequency. Since we want a constant value, we're -+ * looking for the maximum frequency, not the current one. We -+ * don't know what order the driver will report values in so we -+ * search for the highest one by parsing the string returned by the -+ * dev.cpu.0.freq_levels sysctl. The format of the string is a space -+ * seperated list of MHz/milliwatts. - */ -- if (sysctlbyname("machdep.tsc_freq", &cpu_speed, &len, NULL, 0) == -1) -- cpu_speed = 0; -- val.uint16 = cpu_speed /= 1000000; -+ tmpfreq = 0; -+ len = sizeof(buf); -+ if (sysctlbyname("dev.cpu.0.freq_levels", buf, &len, NULL, 0) == -1) -+ buf[0] = '\0'; -+ curptr = buf; -+ while (isdigit(curptr[0])) { -+ freq = strtol(curptr, &curptr, 10); -+ if (freq > tmpfreq) -+ tmpfreq = freq; -+ /* Skip the rest of this entry */ -+ while (!isspace(curptr[0]) && curptr[0] != '\0') -+ curptr++; -+ /* Find the next entry */ -+ while (!isdigit(curptr[0]) && curptr[0] != '\0') -+ curptr++; -+ } -+ freq = tmpfreq; -+ if (tmpfreq != 0) -+ goto done; -+ -+ /* -+ * machdep.tsc_freq exists on some i386/amd64 machines and gives the -+ * CPU speed in Hz. If it exists it's a decent value. -+ */ -+ if (sysctlbyname("machdep.tsc_freq", &tmpfreq, &len, NULL, 0) != -1) { -+ freq = (double)tmpfreq / 1e6; -+ goto done; -+ } -+ -+done: -+ val.uint32 = freq; - - return val; - } |