Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Feb 2003 16:59:40 -0800 (PST)
From:      Brooks Davis <brooks@FreeBSD.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/48551: new port: sysutils/ganglia-monitor-core: cluster monitoring system
Message-ID:  <200302220059.h1M0xeGp016177@minya.sea.one-eyed-alien.net>

next in thread | raw e-mail | index | archive | help

>Number:         48551
>Category:       ports
>Synopsis:       new port: sysutils/ganglia-monitor-core: cluster monitoring system
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Fri Feb 21 17:00:23 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Brooks Davis
>Release:        FreeBSD 5.0-CURRENT i386
>Organization:
The Aerospace Corporation
>Environment:
System: FreeBSD minya.sea.one-eyed-alien.net 5.0-CURRENT FreeBSD 5.0-CURRENT #3: Tue Feb 4 22:01:12 PST 2003 brooks@:/usr/src/sys/i386/compile/GENERIC i386


>Description:

Ganglia is a cluster monitoring system.  ganglia-monitor-core is a port
of the core monitoring daemons.  A followup PR will include
ganglia-webfrontend, the GUI.

>How-To-Repeat:
>Fix:

Add the port and the require entry to reserve the ganglia uid/gid in the
porting handbook.

# 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/files
#	ganglia-monitor-core/files/patch-gmetad_gmetad.c
#	ganglia-monitor-core/files/gmetad.sh.sample
#	ganglia-monitor-core/files/gmond.sh.sample
#	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/Makefile
#	ganglia-monitor-core/distinfo
#	ganglia-monitor-core/pkg-descr
#	ganglia-monitor-core/pkg-install
#	ganglia-monitor-core/pkg-plist
#
echo c - ganglia-monitor-core
mkdir -p ganglia-monitor-core > /dev/null 2>&1
echo c - ganglia-monitor-core/files
mkdir -p ganglia-monitor-core/files > /dev/null 2>&1
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$
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/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$
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$
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.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$
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$
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$
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/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$
X#
X
XPORTNAME=	ganglia-monitor-core
XPORTVERSION=	2.5.2
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"
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/distinfo
sed 's/^X//' >ganglia-monitor-core/distinfo << 'END-of-ganglia-monitor-core/distinfo'
XMD5 (ganglia-monitor-core-2.5.2.tar.gz) = a1a01a24156eb6d375b0dd47490aa9b5
END-of-ganglia-monitor-core/distinfo
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.h
Xinclude/ascii.h
Xinclude/asciitab.h
Xinclude/daemon_inetd.h
Xinclude/daemon_init.h
Xinclude/debug_msg.h
Xinclude/error.h
Xinclude/file.h
Xinclude/hash.h
Xinclude/iasciitab.h
Xinclude/latin1tab.h
Xinclude/llist.h
Xinclude/my_inet_ntop.h
Xinclude/nametab.h
Xinclude/net.h
Xinclude/rdwr.h
Xinclude/utf8tab.h
Xinclude/xmldef.h
Xinclude/xmlparse.h
Xinclude/xmlrole.h
Xinclude/xmltok.h
Xinclude/xmltok_impl.h
Xinclude/gexec_funcs.h
Xinclude/fsusage.h
Xinclude/gexec_process.h
Xinclude/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
exit

>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200302220059.h1M0xeGp016177>