diff options
author | Justin Bronder <jsbronder@gentoo.org> | 2008-08-04 23:17:12 +0000 |
---|---|---|
committer | Justin Bronder <jsbronder@gentoo.org> | 2008-08-04 23:17:12 +0000 |
commit | a796edd0581559d4020f92e73da6ec72d519f995 (patch) | |
tree | aede06b10b665d72c9a8075364b4b86473f8aa38 /sys-cluster/ganglia | |
parent | - ebuild style. anti word wrap (diff) | |
download | gentoo-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/ChangeLog | 10 | ||||
-rw-r--r-- | sys-cluster/ganglia/files/ganglia-3.1-gmond-python-tcpconn-concurrency.patch | 41 | ||||
-rw-r--r-- | sys-cluster/ganglia/ganglia-3.1.0.ebuild | 127 |
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 +} |