summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Bronder <jsbronder@gentoo.org>2008-08-04 23:17:12 +0000
committerJustin Bronder <jsbronder@gentoo.org>2008-08-04 23:17:12 +0000
commita796edd0581559d4020f92e73da6ec72d519f995 (patch)
treeaede06b10b665d72c9a8075364b4b86473f8aa38 /sys-cluster/ganglia
parent- ebuild style. anti word wrap (diff)
downloadgentoo-2-a796edd0581559d4020f92e73da6ec72d519f995.tar.gz
gentoo-2-a796edd0581559d4020f92e73da6ec72d519f995.tar.bz2
gentoo-2-a796edd0581559d4020f92e73da6ec72d519f995.zip
Version bump, thanks to Carlo Marcelo Arenas Belon for help with the ebuild. #233440
(Portage version: 2.1.4.4)
Diffstat (limited to 'sys-cluster/ganglia')
-rw-r--r--sys-cluster/ganglia/ChangeLog10
-rw-r--r--sys-cluster/ganglia/files/ganglia-3.1-gmond-python-tcpconn-concurrency.patch41
-rw-r--r--sys-cluster/ganglia/ganglia-3.1.0.ebuild127
3 files changed, 177 insertions, 1 deletions
diff --git a/sys-cluster/ganglia/ChangeLog b/sys-cluster/ganglia/ChangeLog
index a3e5baebb36d..6f2b365c0183 100644
--- a/sys-cluster/ganglia/ChangeLog
+++ b/sys-cluster/ganglia/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for sys-cluster/ganglia
# Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-cluster/ganglia/ChangeLog,v 1.15 2008/03/28 19:36:17 jsbronder Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/ganglia/ChangeLog,v 1.16 2008/08/04 23:17:11 jsbronder Exp $
+
+*ganglia-3.1.0 (04 Aug 2008)
+
+ 04 Aug 2008; Justin Bronder <jsbronder@gentoo.org>
+ +files/ganglia-3.1-gmond-python-tcpconn-concurrency.patch,
+ +ganglia-3.1.0.ebuild:
+ Version bump, thanks to Carlo Marcelo Arenas Belon for help with the ebuild.
+ #233440
28 Mar 2008; Justin Bronder <jsbronder@gentoo.org> ganglia-3.0.7.ebuild:
Correctly depend on httpd-php-5 without breaking the cache.
diff --git a/sys-cluster/ganglia/files/ganglia-3.1-gmond-python-tcpconn-concurrency.patch b/sys-cluster/ganglia/files/ganglia-3.1-gmond-python-tcpconn-concurrency.patch
new file mode 100644
index 000000000000..2b1832b36128
--- /dev/null
+++ b/sys-cluster/ganglia/files/ganglia-3.1-gmond-python-tcpconn-concurrency.patch
@@ -0,0 +1,41 @@
+Index: gmond/python_modules/network/tcpconn.py
+===================================================================
+--- gmond/python_modules/network/tcpconn.py (revision 1622)
++++ gmond/python_modules/network/tcpconn.py (working copy)
+@@ -245,19 +245,14 @@
+ tempconns[conn] = 0
+
+ #Call the netstat utility and split the output into separate lines
+- fd_poll = select.poll()
+- self.popenChild = popen2.Popen3("netstat -t -a")
+- fd_poll.register(self.popenChild.fromchild)
++ self.popenChild = popen2.Popen3("netstat -t -a -n")
++ lines = self.popenChild.fromchild.readlines()
+
+- poll_events = fd_poll.poll()
+-
+- if (len(poll_events) == 0): # Timeout
+- continue
+-
+- for (fd, events) in poll_events:
+- lines = self.popenChild.fromchild.readlines()
+-
+- self.popenChild.wait()
++ try:
++ self.popenChild.wait()
++ except OSError, e:
++ if e.errno == 10: # No child process
++ continue
+
+ #Iterate through the netstat output looking for the 'tcp' keyword in the tcp_at
+ # position and the state information in the tcp_state_at position. Count each
+@@ -300,7 +295,8 @@
+ _glock.release()
+
+ #Wait for the refresh_rate period before collecting the netstat data again.
+- time.sleep(_refresh_rate)
++ if not self.shuttingdown:
++ time.sleep(_refresh_rate)
+
+ #Set the current state of the thread after a shutdown has been indicated.
+ self.running = False
diff --git a/sys-cluster/ganglia/ganglia-3.1.0.ebuild b/sys-cluster/ganglia/ganglia-3.1.0.ebuild
new file mode 100644
index 000000000000..803e80b00ea3
--- /dev/null
+++ b/sys-cluster/ganglia/ganglia-3.1.0.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/ganglia/ganglia-3.1.0.ebuild,v 1.1 2008/08/04 23:17:11 jsbronder Exp $
+
+WEBAPP_OPTIONAL="yes"
+inherit multilib webapp depend.php python
+
+DESCRIPTION="A scalable distributed monitoring system for clusters and grids"
+HOMEPAGE="http://ganglia.sourceforge.net/"
+SRC_URI="mirror://sourceforge/ganglia/${P}.tar.gz"
+LICENSE="BSD"
+
+WEBAPP_MANUAL_SLOT="yes"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="minimal vhosts python"
+
+DEPEND="
+ dev-libs/confuse
+ dev-libs/expat
+ >=dev-libs/apr-1.0
+ python? ( >=dev-lang/python-2.3 )"
+
+RDEPEND="
+ ${DEPEND}
+ !minimal? ( net-analyzer/rrdtool
+ ${WEBAPP_DEPEND}
+ =virtual/httpd-php-5* )"
+
+pkg_setup() {
+ if ! use minimal ; then
+ require_gd
+ require_php_with_use xml ctype
+ webapp_pkg_setup
+ fi
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}"/ganglia-3.1-gmond-python-tcpconn-concurrency.patch
+}
+
+src_compile() {
+ econf \
+ --enable-gexec \
+ $(use_enable python) \
+ $(use_with !minimal gmetad) || die "econf failed"
+
+ emake || die "emake failed"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed"
+
+ newinitd "${FILESDIR}"/gmond.rc gmond
+ doman mans/{gmetric.1,gmond.1,gstat.1}
+ doman gmond/gmond.conf.5
+ dodoc AUTHORS ChangeLog INSTALL NEWS README
+ dodir /etc/ganglia/conf.d
+ gmond/gmond -t > "${D}"/etc/ganglia/gmond.conf
+
+ if use python; then
+ # Sadly, there is no install target for any of this.
+ mv gmond/modules/python/README "${T}"/README.python_modules
+ dodoc "${T}"/README.python_modules
+ insinto /etc/ganglia/conf.d
+ # multidisk/diskusage python metric skipped until fixed for gentoo
+ doins gmond/modules/conf.d/modpython.conf
+ doins gmond/python_modules/conf.d/tcpconn.pyconf
+ dodir /usr/$(get_libdir)/ganglia/python_modules
+ insinto /usr/$(get_libdir)/ganglia/python_modules
+ doins gmond/python_modules/network/tcpconn.py
+ fi
+
+ insinto /etc/ganglia
+ if ! use minimal; then
+ doins gmetad/gmetad.conf
+ doman mans/gmetad.1
+ keepdir /var/lib/ganglia/rrds
+ fowners nobody:nobody /var/lib/ganglia/rrds
+ newinitd "${FILESDIR}"/gmetad.rc gmetad
+
+ webapp_src_preinst
+ insinto "${MY_HTDOCSDIR}"
+ doins -r web/*
+
+ webapp_configfile "${MY_HTDOCSDIR}"/conf.php
+ webapp_src_install
+ fi
+}
+
+pkg_preinst() {
+ if has_version '<sys-cluster/ganglia-3.1.0'; then
+ elog "Previous ganglia installation detected."
+ elog "Copying gmetad configuration to /etc/ganglia"
+ elog "You may have to remove /etc/gmond.conf yourself."
+ mkdir -p "${D}"/etc/ganglia
+ [ -f "${ROOT}"etc/gmetad.conf ] \
+ && cp "${ROOT}"etc/gmetad.conf "${D}"/etc/ganglia
+ fi
+}
+
+pkg_postinst() {
+ elog "A default configuration file for gmond has been generated"
+ elog "for you as a template by running:"
+ elog " /usr/sbin/gmond -t > /etc/ganglia/gmond.conf"
+ elog "customize it from there or provide your own but be aware"
+ elog "the format has changed since 3.0 and so you won't be able"
+ elog "to use your current configuration (if you generated any)"
+ elog "in /etc/gmond.conf directly"
+
+ use minimal || webapp_pkg_postinst
+
+ use python && \
+ python_mod_optimize /usr/$(get_libdir)/ganglia/python_modules/
+}
+
+pkg_prerm() {
+ use minimal || webapp_pkg_prerm
+}
+
+pkg_postrm() {
+ use python && \
+ python_mod_cleanup /usr/$(get_libdir)/ganglia/python_modules/
+ [ -d /usr/$(get_libdir)/ganglia ] && rmdir /usr/$(get_libdir)/ganglia
+}