Date: Tue, 27 May 2003 15:03:55 -0700 (PDT) From: Brooks Davis <brooks@FreeBSD.org> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/52736: Update port: sysutils/ganglia-monitor-core Message-ID: <200305272203.h4RM3tQ6069485@minya.sea.one-eyed-alien.net> Resent-Message-ID: <200305272210.h4RMADAH081247@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 52736 >Category: ports >Synopsis: Update port: sysutils/ganglia-monitor-core >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Tue May 27 15:10:12 PDT 2003 >Closed-Date: >Last-Modified: >Originator: Brooks Davis >Release: FreeBSD 5.0-CURRENT i386 >Organization: >Environment: System: FreeBSD minya.sea.one-eyed-alien.net 5.0-CURRENT FreeBSD 5.0-CURRENT #8: Tue May 6 10:51:35 PDT 2003 brooks@minya.sea.one-eyed-alien.net:/usr/obj/usr/src/sys/GENERIC i386 >Description: Update upgrades the sysutils/ganglia-monitor-core port to Ganglia 2.5.3 (minor bugfixes), moves the include files to a ganglia subdirectory to unbreak XFree86-4-clients, and fixes a bug which caused gmond to dump core when started at boot. >How-To-Repeat: >Fix: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # ganglia-monitor-core # ganglia-monitor-core/CVS # ganglia-monitor-core/CVS/Root # ganglia-monitor-core/CVS/Repository # ganglia-monitor-core/CVS/Entries # ganglia-monitor-core/Makefile # ganglia-monitor-core/pkg-descr # ganglia-monitor-core/pkg-install # ganglia-monitor-core/pkg-plist # ganglia-monitor-core/files # ganglia-monitor-core/files/CVS # ganglia-monitor-core/files/CVS/Root # ganglia-monitor-core/files/CVS/Repository # ganglia-monitor-core/files/CVS/Entries # ganglia-monitor-core/files/gmetad.sh.sample # ganglia-monitor-core/files/gmond.sh.sample # ganglia-monitor-core/files/patch-gmetad_gmetad.c # ganglia-monitor-core/files/patch-gmetad_gmetad.conf # ganglia-monitor-core/files/patch-gmond_gmond.conf # ganglia-monitor-core/files/patch-lib_gmond__config.c # ganglia-monitor-core/files/patch-gmond_machines_freebsd.c # ganglia-monitor-core/files/patch-gmond_gmond.c # ganglia-monitor-core/distinfo # echo c - ganglia-monitor-core mkdir -p ganglia-monitor-core > /dev/null 2>&1 echo c - ganglia-monitor-core/CVS mkdir -p ganglia-monitor-core/CVS > /dev/null 2>&1 echo x - ganglia-monitor-core/CVS/Root sed 's/^X//' >ganglia-monitor-core/CVS/Root << 'END-of-ganglia-monitor-core/CVS/Root' X/usr/cvs END-of-ganglia-monitor-core/CVS/Root echo x - ganglia-monitor-core/CVS/Repository sed 's/^X//' >ganglia-monitor-core/CVS/Repository << 'END-of-ganglia-monitor-core/CVS/Repository' Xports/sysutils/ganglia-monitor-core END-of-ganglia-monitor-core/CVS/Repository echo x - ganglia-monitor-core/CVS/Entries sed 's/^X//' >ganglia-monitor-core/CVS/Entries << 'END-of-ganglia-monitor-core/CVS/Entries' X/Makefile/1.1/Sun Mar 2 00:24:16 2003// X/pkg-descr/1.1/Sun Mar 2 00:24:16 2003// X/pkg-install/1.1/Sun Mar 2 00:24:16 2003// X/pkg-plist/1.1/Sun Mar 2 00:24:16 2003// XD/files//// X/distinfo/1.1/Mon Mar 24 23:27:05 2003// END-of-ganglia-monitor-core/CVS/Entries echo x - ganglia-monitor-core/Makefile sed 's/^X//' >ganglia-monitor-core/Makefile << 'END-of-ganglia-monitor-core/Makefile' X# Ports collection makefile for: ganglia-monitor-core X# Date created: Wed Jan 23, 2003 X# Whom: Brooks Davis <brooks@freebsd.org> X# X# $FreeBSD: ports/sysutils/ganglia-monitor-core/Makefile,v 1.1 2003/03/02 00:24:16 kris Exp $ X# X XPORTNAME= ganglia-monitor-core XPORTVERSION= 2.5.3 XCATEGORIES= sysutils net parallel XMASTER_SITES= ${MASTER_SITE_SOURCEFORGE} XMASTER_SITE_SUBDIR= ganglia X.if defined (WITHOUT_GMETAD) XPKGNAMESUFFIX= -nogmetad X.endif X XMAINTAINER= brooks@FreeBSD.org XCOMMENT= "Ganglia cluster monitor, monitoring daemon" X X.if !defined (WITHOUT_GMETAD) XLIB_DEPENDS= rrd.0:${PORTSDIR}/net/rrdtool X.endif X XGNU_CONFIGURE= yes XCONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \ X LIBS="-L${LOCALBASE}/lib" XCONFIGURE_ARGS+= --includedir=${PREFIX}/include/ganglia X.if !defined (WITHOUT_GMETAD) XCONFIGURE_ARGS+= --with-gmetad X.endif XUSE_LIBTOOL= yes XINSTALLS_SHLIB= yes X.if defined (WITHOUT_GMETAD) XPLIST_SUB+= GMETAD="@comment " X.else XPLIST_SUB+= GMETAD= X.endif XUSE_REINPLACE= yes X XMAN1= gmetric.1 gmond.1 gstat.1 X.if !defined (WITHOUT_GMETAD) XMAN1+= gmetad.1 X.endif X XCONF_DIR= ${PREFIX}/etc XRC_DIR= ${PREFIX}/etc/rc.d X XFIX_CONF_FILES= ${WRKSRC}/lib/ganglia/gmond_config.h \ X ${WRKSRC}/mans/gmetad.1 \ X ${WRKSRC}/mans/gmond.1 \ X ${WRKSRC}/gmetad/cmdline.c \ X ${WRKSRC}/gmetad/cmdline.h \ X ${WRKSRC}/gmond/cmdline.c \ X ${WRKSRC}/gmond/cmdline.h XFIX_DB_FILES= ${WRKSRC}/gmetad/gmetad.c \ X ${WRKSRC}/gmetad/gmetad.conf X Xpost-patch: X ${REINPLACE_CMD} -e "s|/etc/\(gm[a-z]*d.conf\)|${CONF_DIR}/\1|g" \ X ${FIX_CONF_FILES} X ${REINPLACE_CMD} -e "s|/var/lib/ganglia|/var/db/ganglia|g" \ X ${FIX_DB_FILES} X X# Post-install X# X Xpost-install: install-man install-sample-files install-startup-files X ${SH} pkg-install ${PKGNAME} POST-INSTALL X Xinstall-man: X ${INSTALL_MAN} ${WRKSRC}/mans/gmetric.1 ${MANPREFIX}/man/man1 X ${INSTALL_MAN} ${WRKSRC}/mans/gmond.1 ${MANPREFIX}/man/man1 X ${INSTALL_MAN} ${WRKSRC}/mans/gstat.1 ${MANPREFIX}/man/man1 X.if !defined (WITHOUT_GMETAD) X ${INSTALL_MAN} ${WRKSRC}/mans/gmetad.1 ${MANPREFIX}/man/man1 X.endif X Xinstall-sample-files: X ${INSTALL_DATA} ${WRKSRC}/gmond/gmond.conf \ X ${CONF_DIR}/gmond.conf.sample X.if !defined (WITHOUT_GMETAD) X ${INSTALL_DATA} ${WRKSRC}/gmetad/gmetad.conf \ X ${CONF_DIR}/gmetad.conf.sample X.endif X Xinstall-startup-files: X ${INSTALL_SCRIPT} ${FILESDIR}/gmond.sh.sample ${RC_DIR} X.if !defined (WITHOUT_GMETAD) X ${INSTALL_SCRIPT} ${FILESDIR}/gmetad.sh.sample ${RC_DIR} X.endif X X.include <bsd.port.mk> END-of-ganglia-monitor-core/Makefile echo x - ganglia-monitor-core/pkg-descr sed 's/^X//' >ganglia-monitor-core/pkg-descr << 'END-of-ganglia-monitor-core/pkg-descr' XGanglia provides a complete real-time monitoring and execution Xenvironment that is in use by hundreds of universities, private and Xgovernment laboratories and commercial cluster implementors around the Xworld. Whether you want to monitor hundreds of computers in real-time Xacross a university campus or around the world, ganglia is for you. X XWWW: http://ganglia.sourceforge.net/ X X-- Brooks Davis <brooks@FreeBSD.org> END-of-ganglia-monitor-core/pkg-descr echo x - ganglia-monitor-core/pkg-install sed 's/^X//' >ganglia-monitor-core/pkg-install << 'END-of-ganglia-monitor-core/pkg-install' X#!/bin/sh X Xu=ganglia Xg=ganglia Xugid=97 Xhomedir=/nonexistent Xshell=/sbin/nologin Xrrd_rootdir=/var/db/ganglia/rrds X Xcase $2 in XPOST-INSTALL) X if pw group show "${g}" >/dev/null 2>&1; then X echo "Using existing group \"${g}\"." X else X echo "Creating group \"${g}\", (gid: ${ugid})." X pw groupadd ${g} -g ${ugid} X if [ $? != 0 ]; then X echo "Failed to add group \"${g}\"." X exit 1 X fi X fi X if pw user show "${u}" >/dev/null 2>&1; then X echo "Using existing user \"${u}\"." X else X echo "Creating user \"${u}\", (uid: ${ugid})." X pw useradd ${u} -u ${ugid} -g ${ugid} -h - \ X -d ${homedir} -s ${shell} -c "Ganglia User" X if [ $? != 0 ]; then X echo "Failed to add user \"${u}\"." X exit 1 X fi X fi X X mkdir -p ${rrd_rootdir} X chown -R ${u}:${g} ${rrd_rootdir} X ;; Xesac END-of-ganglia-monitor-core/pkg-install echo x - ganglia-monitor-core/pkg-plist sed 's/^X//' >ganglia-monitor-core/pkg-plist << 'END-of-ganglia-monitor-core/pkg-plist' Xbin/gstat Xbin/gmetric Xetc/gmond.conf.sample X%%GMETAD%%etc/gmetad.conf.sample Xetc/rc.d/gmond.sh.sample X%%GMETAD%%etc/rc.d/gmetad.sh.sample Xinclude/ganglia/ganglia.h Xinclude/ganglia/ascii.h Xinclude/ganglia/asciitab.h Xinclude/ganglia/daemon_inetd.h Xinclude/ganglia/daemon_init.h Xinclude/ganglia/debug_msg.h Xinclude/ganglia/error.h Xinclude/ganglia/file.h Xinclude/ganglia/hash.h Xinclude/ganglia/iasciitab.h Xinclude/ganglia/latin1tab.h Xinclude/ganglia/llist.h Xinclude/ganglia/my_inet_ntop.h Xinclude/ganglia/nametab.h Xinclude/ganglia/net.h Xinclude/ganglia/rdwr.h Xinclude/ganglia/utf8tab.h Xinclude/ganglia/xmldef.h Xinclude/ganglia/xmlparse.h Xinclude/ganglia/xmlrole.h Xinclude/ganglia/xmltok.h Xinclude/ganglia/xmltok_impl.h Xinclude/ganglia/gexec_funcs.h Xinclude/ganglia/fsusage.h Xinclude/ganglia/gexec_process.h Xinclude/ganglia/gmond_config.h Xlib/libganglia.so.2 Xlib/libganglia.so Xlib/libganglia.la Xlib/libganglia.a X%%GMETAD%%sbin/gmetad Xsbin/gmond X@dirrm include/ganglia X@unexec rmdir /var/db/ganglia/rrds /var/db/ganglia 2>/dev/null || true END-of-ganglia-monitor-core/pkg-plist echo c - ganglia-monitor-core/files mkdir -p ganglia-monitor-core/files > /dev/null 2>&1 echo c - ganglia-monitor-core/files/CVS mkdir -p ganglia-monitor-core/files/CVS > /dev/null 2>&1 echo x - ganglia-monitor-core/files/CVS/Root sed 's/^X//' >ganglia-monitor-core/files/CVS/Root << 'END-of-ganglia-monitor-core/files/CVS/Root' X/usr/cvs END-of-ganglia-monitor-core/files/CVS/Root echo x - ganglia-monitor-core/files/CVS/Repository sed 's/^X//' >ganglia-monitor-core/files/CVS/Repository << 'END-of-ganglia-monitor-core/files/CVS/Repository' Xports/sysutils/ganglia-monitor-core/files END-of-ganglia-monitor-core/files/CVS/Repository echo x - ganglia-monitor-core/files/CVS/Entries sed 's/^X//' >ganglia-monitor-core/files/CVS/Entries << 'END-of-ganglia-monitor-core/files/CVS/Entries' X/gmetad.sh.sample/1.1/Sun Mar 2 00:24:16 2003// X/gmond.sh.sample/1.1/Sun Mar 2 00:24:16 2003// X/patch-gmetad_gmetad.c/1.1/Sun Mar 2 00:24:16 2003// X/patch-gmetad_gmetad.conf/1.1/Sun Mar 2 00:24:16 2003// X/patch-gmond_gmond.conf/1.1/Sun Mar 2 00:24:16 2003// X/patch-lib_gmond__config.c/1.1/Sun Mar 2 00:24:16 2003// XD END-of-ganglia-monitor-core/files/CVS/Entries echo x - ganglia-monitor-core/files/gmetad.sh.sample sed 's/^X//' >ganglia-monitor-core/files/gmetad.sh.sample << 'END-of-ganglia-monitor-core/files/gmetad.sh.sample' X#!/bin/sh X# X# $FreeBSD: ports/sysutils/ganglia-monitor-core/files/gmetad.sh.sample,v 1.1 2003/03/02 00:24:16 kris Exp $ X# X# Start or stop gmetad. X# X Xrc_file=${0##*/} Xrc_arg=$1 X Xif ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/${rc_file}\$"); then X echo "${rc_file}: Cannot determine PREFIX." >&2 X echo "Please use the complete pathname." >&2 X exit 64 Xfi X Xprogram_dir=${PREFIX}/sbin Xprogram_file=gmetad Xprogram_path=${program_dir}/${program_file} X Xconfig_dir=${PREFIX}/etc Xconfig_file=${program_file}.conf Xconfig_path=${config_dir}/${config_file} X Xsyslog_facility=daemon.err X Xcase "$rc_arg" in Xstart) X if [ ! -x ${program_path} ]; then X logger -sp ${syslog_facility} -t ${program_file} \ X "unable to start: ${program_path} is missing." X exit 72 X fi X if [ ! -f ${config_path} ]; then X logger -sp ${syslog_facility} -t ${program_file} \ X "unable to start: ${config_path} is missing." X exit 72 X fi X ${program_path} && echo -n " ${program_file}" X ;; Xstop) X killall ${program_file} 2> /dev/null X ;; Xrestart) X $0 stop X $0 start X ;; Xstatus) X ps -auxww | egrep ${program_file} | egrep -v "($0|egrep)" X ;; X*) X echo "usage: ${rc_file} {start|stop|restart|status}" >&2 X exit 64 X ;; Xesac X Xexit 0 END-of-ganglia-monitor-core/files/gmetad.sh.sample echo x - ganglia-monitor-core/files/gmond.sh.sample sed 's/^X//' >ganglia-monitor-core/files/gmond.sh.sample << 'END-of-ganglia-monitor-core/files/gmond.sh.sample' X#!/bin/sh X# X# $FreeBSD: ports/sysutils/ganglia-monitor-core/files/gmond.sh.sample,v 1.1 2003/03/02 00:24:16 kris Exp $ X# X# Start or stop gmond. X# X Xrc_file=${0##*/} Xrc_arg=$1 X Xif ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/${rc_file}\$"); then X echo "${rc_file}: Cannot determine PREFIX." >&2 X echo "Please use the complete pathname." >&2 X exit 64 Xfi X Xprogram_dir=${PREFIX}/sbin Xprogram_file=gmond Xprogram_path=${program_dir}/${program_file} X Xconfig_dir=${PREFIX}/etc Xconfig_file=${program_file}.conf Xconfig_path=${config_dir}/${config_file} X Xsyslog_facility=daemon.err X Xcase "$rc_arg" in Xstart) X if [ ! -x ${program_path} ]; then X logger -sp ${syslog_facility} -t ${program_file} \ X "unable to start: ${program_path} is missing." X exit 72 X fi X if [ ! -f ${config_path} ]; then X logger -sp ${syslog_facility} -t ${program_file} \ X "unable to start: ${config_path} is missing." X exit 72 X fi X ${program_path} && echo -n " ${program_file}" X ;; Xstop) X killall ${program_file} 2> /dev/null X ;; Xrestart) X $0 stop X $0 start X ;; Xstatus) X ps -auxww | egrep ${program_file} | egrep -v "($0|egrep)" X ;; X*) X echo "usage: ${rc_file} {start|stop|restart|status}" >&2 X exit 64 X ;; Xesac X Xexit 0 END-of-ganglia-monitor-core/files/gmond.sh.sample echo x - ganglia-monitor-core/files/patch-gmetad_gmetad.c sed 's/^X//' >ganglia-monitor-core/files/patch-gmetad_gmetad.c << 'END-of-ganglia-monitor-core/files/patch-gmetad_gmetad.c' X X$FreeBSD: ports/sysutils/ganglia-monitor-core/files/patch-gmetad_gmetad.c,v 1.1 2003/03/02 00:24:16 kris Exp $ X X--- gmetad/gmetad.c.orig Mon Dec 9 14:43:23 2002 X+++ gmetad/gmetad.c Fri Feb 21 11:52:24 2003 X@@ -40,7 +40,7 @@ X pthread_mutex_t server_socket_mutex = PTHREAD_MUTEX_INITIALIZER; X int server_threads = 2; X char *rrd_rootdir = "/var/lib/ganglia/rrds"; X-char *setuid_username = "nobody"; X+char *setuid_username = "ganglia"; X int should_setuid = 1; X unsigned int source_index = 0; X END-of-ganglia-monitor-core/files/patch-gmetad_gmetad.c echo x - ganglia-monitor-core/files/patch-gmetad_gmetad.conf sed 's/^X//' >ganglia-monitor-core/files/patch-gmetad_gmetad.conf << 'END-of-ganglia-monitor-core/files/patch-gmetad_gmetad.conf' X X$FreeBSD: ports/sysutils/ganglia-monitor-core/files/patch-gmetad_gmetad.conf,v 1.1 2003/03/02 00:24:16 kris Exp $ X X--- gmetad/gmetad.conf.orig Wed Jan 29 10:17:02 2003 X+++ gmetad/gmetad.conf Fri Feb 21 11:52:58 2003 X@@ -55,9 +55,9 @@ X # default: on X # setuid off X # X-# User gmetad will setuid to (defaults to "nobody") X-# default: "nobody" X-# setuid_username "nobody" X+# User gmetad will setuid to (defaults to "ganglia") X+# default: "ganglia" X+# setuid_username "ganglia" X # X # The port gmetad will answer requests for XML X # default: 8651 END-of-ganglia-monitor-core/files/patch-gmetad_gmetad.conf echo x - ganglia-monitor-core/files/patch-gmond_gmond.conf sed 's/^X//' >ganglia-monitor-core/files/patch-gmond_gmond.conf << 'END-of-ganglia-monitor-core/files/patch-gmond_gmond.conf' X X$FreeBSD: ports/sysutils/ganglia-monitor-core/files/patch-gmond_gmond.conf,v 1.1 2003/03/02 00:24:16 kris Exp $ X X--- gmond/gmond.conf.orig Thu Feb 20 14:34:00 2003 X+++ gmond/gmond.conf Thu Feb 20 14:35:09 2003 X@@ -99,8 +99,8 @@ X # no_setuid on X # X # Which user should gmond run as? X-# default: nobody X-# setuid nobody X+# default: ganglia X+# setuid ganglia X # X # If you do not want this host to appear in the gexec host list, set X # this value to "on" END-of-ganglia-monitor-core/files/patch-gmond_gmond.conf echo x - ganglia-monitor-core/files/patch-lib_gmond__config.c sed 's/^X//' >ganglia-monitor-core/files/patch-lib_gmond__config.c << 'END-of-ganglia-monitor-core/files/patch-lib_gmond__config.c' X X$FreeBSD: ports/sysutils/ganglia-monitor-core/files/patch-lib_gmond__config.c,v 1.1 2003/03/02 00:24:16 kris Exp $ X X--- lib/gmond_config.c.orig Thu Feb 20 14:32:29 2003 X+++ lib/gmond_config.c Thu Feb 20 14:32:39 2003 X@@ -224,7 +224,7 @@ X config->deaf = 0; X config->debug_level = 0; X config->no_setuid = 0; X- config->setuid = conf_strdup("nobody"); X+ config->setuid = conf_strdup("ganglia"); X config->no_gexec = 0; X config->all_trusted = 0; X END-of-ganglia-monitor-core/files/patch-lib_gmond__config.c echo x - ganglia-monitor-core/files/patch-gmond_machines_freebsd.c sed 's/^X//' >ganglia-monitor-core/files/patch-gmond_machines_freebsd.c << 'END-of-ganglia-monitor-core/files/patch-gmond_machines_freebsd.c' X X$FreeBSD$ X X--- gmond/machines/freebsd.c.orig Thu Aug 15 10:17:25 2002 X+++ gmond/machines/freebsd.c Thu Apr 3 17:30:16 2003 X@@ -10,11 +10,36 @@ X #include <sys/param.h> X #include <sys/sysctl.h> X #include <sys/user.h> X+#if __FreeBSD_version < 500101 X #include <sys/dkstat.h> X+#else X+#include <sys/resource.h> X+#endif X+#include <sys/stat.h> X+#include <vm/vm_param.h> X #include <unistd.h> X #include "ganglia.h" X #include "metric_typedefs.h" X X+#define MIB_SWAPINFO_SIZE 3 X+ X+#ifndef XSWDEV_VERSION X+#define XSWDEV_VERSION 1 X+struct xswdev { X+ u_int xsw_version; X+ udev_t xsw_dev; X+ int xsw_flags; X+ int xsw_nblks; X+ int xsw_used; X+}; X+#endif X+ X+static int use_vm_swap_info = 0; X+static int mibswap[MIB_SWAPINFO_SIZE]; X+static size_t mibswap_size; X+static kvm_t *kd = NULL; X+static int pagesize; X+ X /* Function prototypes */ X long percentages(int cnt, int *out, register long *new, X register long *old, long *diffs); X@@ -27,6 +52,20 @@ X metric_init(void) X { X g_val_t val; X+ X+ /* X+ * Try to use the vm.swap_info sysctl to gather swap data. If it X+ * isn't implemented, fall back to trying to old kvm based interface. X+ */ X+ mibswap_size = MIB_SWAPINFO_SIZE; X+ if (sysctlnametomib("vm.swap_info", mibswap, &mibswap_size) == -1) { X+ perror("sysctlnametomib"); X+ kd = kvm_open(NULL, NULL, NULL, O_RDONLY, "metric_init()"); X+ } else { X+ use_vm_swap_info = 1; X+ } X+ pagesize = getpagesize(); X+ X val.int32 = SYNAPSE_SUCCESS; X return val; X } X@@ -81,21 +120,33 @@ X swap_total_func ( void ) X { X g_val_t val; X- X struct kvm_swap swap[1]; X- kvm_t *kd; X+ struct xswdev xsw; X+ size_t mibsize, size; X int totswap, n; X X- kd = kvm_open(NULL, NULL, NULL, O_RDONLY, "kvm_open"); X- n = kvm_getswapinfo(kd, swap, 1, 0); X- if (n < 0 || swap[0].ksw_total == 0) { X- val.uint32 = 0; X+ val.uint32 = 0; X+ totswap = 0; X+ X+ if (use_vm_swap_info) { X+ for (n = 0; ; ++n) { X+ mibswap[mibswap_size] = n; X+ size = sizeof(xsw); X+ if (sysctl(mibswap, mibswap_size + 1, &xsw, &size, NULL, NULL) == -1) X+ break; X+ if (xsw.xsw_version != XSWDEV_VERSION) X+ return val; X+ totswap += xsw.xsw_nblks; X+ } X+ } else if(kd != NULL) { X+ n = kvm_getswapinfo(kd, swap, 1, 0); X+ if (n < 0 || swap[0].ksw_total == 0) { X+ val.uint32 = 0; X+ } X+ totswap = swap[0].ksw_total; X } X- totswap = swap[0].ksw_total; X- totswap *= getpagesize() / 1024; X- val.uint32 = totswap; X- kvm_close(kd); X X+ val.uint32 = totswap * (pagesize / 1024); X return val; X } X X@@ -330,9 +381,8 @@ X len = sizeof (free_pages); X if((sysctlbyname("vm.stats.vm.v_free_count", &free_pages, &len, NULL, 0) X == -1) || !len) free_pages = 0; X- free_pages *= getpagesize() / 1024; X X- val.uint32 = free_pages; X+ val.uint32 = free_pages * (pagesize / 1024); X return val; X } X X@@ -373,9 +423,7 @@ X || !len) X cache = 0; X X- cache *= getpagesize() / 1024; X- X- val.uint32 = cache; X+ val.uint32 = cache * (pagesize / 1024); X return val; X } X X@@ -383,23 +431,35 @@ X swap_free_func ( void ) X { X g_val_t val; X+ X struct kvm_swap swap[1]; X- kvm_t *kd; X+ struct xswdev xsw; X+ size_t size; X int totswap, usedswap, freeswap, n; X X- kd = kvm_open(NULL, NULL, NULL, O_RDONLY, "kvm_open"); X- n = kvm_getswapinfo(kd, swap, 1, 0); X- if (n < 0 || swap[0].ksw_total == 0) { X- val.uint32 = 0; X- } X- totswap = swap[0].ksw_total; X- usedswap = swap[0].ksw_used; X- kvm_close(kd); X+ val.uint32 = 0; X+ totswap = 0; X+ usedswap = 0; X X- freeswap = totswap-usedswap; X- freeswap *= getpagesize() / 1024; X+ if (use_vm_swap_info) { X+ for (n = 0; ; ++n) { X+ mibswap[mibswap_size] = n; X+ size = sizeof(xsw); X+ if (sysctl(mibswap, mibswap_size + 1, &xsw, &size, NULL, NULL) == -1) X+ break; X+ if (xsw.xsw_version != XSWDEV_VERSION) X+ return val; X+ totswap += xsw.xsw_nblks; X+ usedswap += xsw.xsw_used; X+ } X+ } else if(kd != NULL) { X+ n = kvm_getswapinfo(kd, swap, 1, 0); X+ totswap = swap[0].ksw_total; X+ usedswap = swap[0].ksw_used; X+ } X+ freeswap = totswap - usedswap; X X- val.uint32 = freeswap; X+ val.uint32 = freeswap * (pagesize / 1024); X return val; X } X END-of-ganglia-monitor-core/files/patch-gmond_machines_freebsd.c echo x - ganglia-monitor-core/files/patch-gmond_gmond.c sed 's/^X//' >ganglia-monitor-core/files/patch-gmond_gmond.c << 'END-of-ganglia-monitor-core/files/patch-gmond_gmond.c' X X$FreeBSD$ X X--- gmond/gmond.c.orig Tue Jan 7 09:05:04 2003 X+++ gmond/gmond.c Thu Apr 3 16:40:22 2003 X@@ -163,6 +163,13 @@ X print_gmond_config(); X */ X X+ /* in machine.c */ X+ initval = metric_init(); X+ if ( initval.int32 <0) X+ { X+ err_quit("metric_init() returned an error"); X+ } X+ X if(!gmond_config.no_setuid) X become_a_nobody(gmond_config.setuid); X X@@ -266,13 +273,6 @@ X return -1; X } X debug_msg("multicasting on channel %s %d", gmond_config.mcast_channel, gmond_config.mcast_port); X- X- /* in machine.c */ X- initval = metric_init(); X- if ( initval.int32 <0) X- { X- err_quit("monitor_init() returned an error"); X- } X X pthread_create(&tid, &attr, monitor_thread, NULL); X debug_msg("created monitor thread"); END-of-ganglia-monitor-core/files/patch-gmond_gmond.c echo x - ganglia-monitor-core/distinfo sed 's/^X//' >ganglia-monitor-core/distinfo << 'END-of-ganglia-monitor-core/distinfo' XMD5 (ganglia-monitor-core-2.5.3.tar.gz) = c6bd5f5d21b3b84286d474f7e57f5101 END-of-ganglia-monitor-core/distinfo exit >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200305272203.h4RM3tQ6069485>