changeset 2:0ea7846e04f1

new ebuild: collectd
author holger@hoho.dyndns.org
date Tue, 25 Mar 2008 20:50:34 +0100
parents dab1199d9829
children e15b399580ab
files app-admin/collectd/Manifest app-admin/collectd/collectd-4.3.1.ebuild app-admin/collectd/files/collectd-4.3.1.confd app-admin/collectd/files/collectd-4.3.1.initd
diffstat 4 files changed, 366 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app-admin/collectd/Manifest	Tue Mar 25 20:50:34 2008 +0100
@@ -0,0 +1,4 @@
+AUX collectd-4.3.1.confd 519 RMD160 f4f3a699b9e8ce3e11522a3a521089793824fffd SHA1 2477a4acab05455ea7e1072663dcb5c381f175a6 SHA256 f043ad355fd7f5d2f017207d6cec7be5ac8c27d12aca19f1fd6541ea230d24b6
+AUX collectd-4.3.1.initd 801 RMD160 3e195dba9144906e4a364635eb48236f35e81100 SHA1 b4fdf02ea754c6a6067b895213cb9b8ed4a8bb76 SHA256 edf081f989a38c77ec4f5de3050b8e7ee96a8a420e15ac02d1d0bb8546391c8d
+DIST collectd-4.3.1.tar.bz2 850924 RMD160 ca29a39d790d7b100980880fa1b36e4980ef5d07 SHA1 abc338efe3d9af1bf52a08958f6656e8a4467fda SHA256 f2150bb59133fd4776c1cd84d975d5ec19f550893df48e22fe910b8f559116e9
+EBUILD collectd-4.3.1.ebuild 8802 RMD160 10fdcac304eb722f676c70eeec2246a1448331d0 SHA1 31343536776eb0106c5e68901dae60f4b3c10826 SHA256 5b62152d925382532fe71e1b2682c77280fc36881fa861cf361f7777e5e2cf60
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app-admin/collectd/collectd-4.3.1.ebuild	Tue Mar 25 20:50:34 2008 +0100
@@ -0,0 +1,318 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+inherit eutils linux-info flag-o-matic
+
+DESCRIPTION="A small daemon which collects system performance statistics"
+HOMEPAGE="http://collectd.org/"
+
+SRC_URI="${HOMEPAGE}/files/${P}.tar.bz2"
+LICENSE="GPL-3"
+
+SLOT="0"
+
+KEYWORDS="~x86 ~amd64"
+IUSE="
+    apache2
+    lighttpd
+    nginx
+    apcups
+    hddtemp
+    network
+    dns
+    email
+    qemu
+    xen
+    vserver
+    memcache
+    mysql
+    nfs
+    ntp
+    nut
+    perl
+    rrdtool
+    lm_sensors
+    snmp
+    syslog
+    hal
+    ithreads
+"
+
+DEPEND="
+    apache2?	( >=net-misc/curl-7.17.0 )
+    lighttpd?	( >=net-misc/curl-7.17.0 )
+    nginx?	( >=net-misc/curl-7.17.0 )
+    dns?	( >=net-libs/libpcap-0.9.8 )
+    qemu?	( >=app-emulation/libvirt-0.3.3 )
+    xen?	( >=app-emulation/libvirt-0.3.3 )
+    mysql?	( >=virtual/mysql-5.0 )
+    perl?	( >=dev-lang/perl-5.8.8-r4 )
+    nut?	( >=sys-power/nut-2.2.0 )
+    rrdtool?	( >=net-analyzer/rrdtool-1.2.27 )
+    lm_sensors?	( >=sys-apps/lm_sensors-2.10.4 )
+    snmp?	( >=net-analyzer/net-snmp-5.4.1-r3 )
+    hal?	( >=sys-apps/hal-0.5.9.1-r3 )
+
+    >=dev-libs/libxml2-2.6.31
+"
+
+RDEPEND="
+    ${DEPEND}
+    apcups?	( >=sys-power/apcupsd-3.14.2 )
+    hddtemp?	( >=app-admin/hddtemp-0.3_beta15-r3 )
+    memcache?	( >=net-misc/memcached-1.2.2-r2 )
+    ntp?	( >=net-misc/ntp-4.2.4_p4 )
+    syslog?	( virtual/logger )
+    !hal?	( >=sys-apps/dmidecode-2.9 )
+"
+
+pkg_setup()
+{
+    linux-info_pkg_setup
+}
+
+src_compile()
+{
+    local myconf
+    local mykern
+    local disabled_plugins
+    
+    ### NEEDS TO BE FIXED PROBABLY
+    append-flags -I/usr/src/linux/include
+
+    ### Kernel options
+    if (linux_chkconfig_present PROC_FS); then
+        mykern="$(mykern) proc_fs"
+    fi
+
+    if (linux_chkconfig_present IP_VS); then
+        mykern="$(mykern) ip_vs"
+    fi
+
+    #################################################    
+
+    myconf="${myconf}
+	--without-libiptc
+	--with-liboconfig
+	--with-libpthread
+	--without-libstatgrab
+	--without-libxmms
+    "
+
+    ### no checks
+	myconf="${myconf} --enable-csv"
+	myconf="${myconf} --enable-df"
+	myconf="${myconf} --enable-logfile"
+	myconf="${myconf} --enable-uuid" ## Depends on hal or dmidecode
+
+    ### procfs dependents
+    if ( hasq proc_fs ${mykern} ); then
+	myconf="${myconf} --enable-battery" ## NEEDS KERNEL CHECK
+	myconf="${myconf} --enable-cpu"
+	myconf="${myconf} --enable-cpufreq" ## NEEDS KERNEL CHECK
+	myconf="${myconf} --enable-disk"
+	myconf="${myconf} --enable-entropy"
+	myconf="${myconf} --enable-irq"
+	myconf="${myconf} --enable-load"
+	myconf="${myconf} --enable-memory"
+	myconf="${myconf} --enable-processes"
+	myconf="${myconf} --enable-serial"
+	myconf="${myconf} --enable-swap"
+	myconf="${myconf} --enable-users" ## NEEDS KERNEL CHECK
+
+	### Network
+	myconf="${myconf} $(use_enable network interface)"
+	#myconf="${myconf} $(use_enable network netlink) $(use_with network libnetlink)"  ## BREAKS
+	    myconf="${myconf} --disable-netlink --without-libnetlink"
+	    disabled_plugins="${disabled_plugins} netlink"
+	myconf="${myconf} $(use_enable network)"
+	myconf="${myconf} $(use_enable network ping) $(use_with network liboping)"
+	myconf="${myconf} $(use_enable network tcpconns)"
+	myconf="${myconf} $(use_enable network unixsock)"
+	myconf="${myconf} $(use_enable network wireless)" ## NEEDS KERNEL CHECK
+
+	if ( use network ); then
+	    myconf="${myconf} $(use_enable dns) $(use_with dns libpcap)"
+	    myconf="${myconf} $(use_enable nfs)"
+	    myconf="${myconf} $(use_enable ntp ntpd)"
+	    myconf="${myconf} $(use_enable snmp) $(use_with snmp libnetsnmp)"
+
+	    if ( hasq ip_vs ${mykern} ); then
+		myconf="${myconf} $(use_enable vserver)"
+		myconf="${myconf} $(use_enable vserver ipvs)"	#NEEDS CFLAGS -I -- FIX LATER
+	    else
+		if ( use vserver ); then die "${P} requires that IP_VS is enabled in the kernel for the USE flag vserver"; fi
+	    fi
+	else
+	    myconf="${myconf} \
+		--disable-dns --without-libpcap
+		--disable-nfs
+		--disable-ntpd
+		--disable-snmp
+		--disable-vserver
+		--disable-ipvs
+	    "
+
+	    if ( use dns ); then die "USE flag dns requires USE flag network"; fi
+	    if ( use nfs ); then die "USE flag nfs requires USE flag network"; fi
+	    if ( use ntp ); then die "USE flag ntp requires USE flag network"; fi
+	    if ( use snmp ); then die "USE flag snmp requires USE flag network"; fi
+	    if ( use vserver ); then die "USE flag vserver requires USE flag network"; fi
+	fi
+    else
+	### Network
+	if ( use network ); then die "${P} requires that PROC_FS is enabled in the kernel for the USE flag network"; fi
+	
+	die "${P} requires that PROC_FS is enabled in the kernel" ## UPDATE LATER
+    fi
+
+    ### Web Servers
+    if ( use apache2 || use lighttpd || use nginx );
+    then myconf="${myconf} --with-libcurl"
+    else myconf="${myconf} --without-libcurl"
+    fi
+
+    if ( use apache2 || use lighttpd );
+    then myconf="${myconf} --enable-apache"
+    else myconf="${myconf} --disable-apache"
+    fi
+
+    myconf="${myconf} $(use_enable nginx)"
+
+    ### APC UPS
+    myconf="${myconf} $(use_enable apcups)"
+
+    ### Apple
+    myconf="${myconf} --disable-apple_sensors"		## DISABLED
+	disabled_plugins="${disabled_plugins} apple_sensors"
+
+    ### Email
+    myconf="${myconf} $(use_enable email)"
+
+    ### hddtemp
+    myconf="${myconf} $(use_enable hddtemp)"
+
+    ### Virtualization -- NEEDS KERNEL CHECK
+    if ( use qemu || use xen )
+    then
+	myconf="${myconf} --enable-libvirt";
+	if (built_with_use libvirt qemu); then die "USE flag qemu requires that libvirt was compiled with the USE flag qemu"; fi
+	if (built_with_use libvirt xen); then die "USE flag xen requires that libvirt was compiled with the USE flag xen"; fi
+    else
+	myconf="${myconf} --disable-libvirt";
+    fi
+    
+    ### Memcached
+    myconf="${myconf} $(use_enable memcache memcached)"
+
+    ### Mysql
+    myconf="${myconf} $(use_enable mysql) $(use_with mysql libmysql)"
+
+    ### Network UPS
+    myconf="${myconf} $(use_enable nut) $(use_with nut libupsclient)"
+
+    ### Perl
+    if (use perl); then
+	myconf="${myconf} $(use_with perl libperl)"
+	myconf="${myconf} $(use_with perl perl-bindings)"
+	if (use ithreads); then
+	    if (built_with_use perl ithreads); then myconf="${myconf} --enable-perl"
+	    else die "The perl plug-in requires that libperl was compiled with the USE flag ithreads"; fi
+	else
+	    myconf="${myconf} --disable-perl"
+	    einfo
+	    einfo "The perl plug-in requires the ithreads USE flag."
+	fi
+	
+    fi
+    
+    ### RRDtool
+    myconf="${myconf} $(use_enable rrdtool) $(use_with rrdtool)"
+
+    ### lm_sensors
+    myconf="${myconf} $(use_enable lm_sensors sensors) $(use_with lm_sensors lm-sensors)"
+
+    ### Syslog
+    myconf="${myconf} $(use_enable syslog)"
+
+    ### DISABLED
+    myconf="${myconf} --disable-exec"			## NEEDS USERS
+	disabled_plugins="${disabled_plugins} exec"
+    myconf="${myconf} --disable-iptables"		## BREAKS
+	disabled_plugins="${disabled_plugins} iptables"
+    myconf="${myconf} --disable-mbmon"			## COULD NOT FIND DAEMON
+	disabled_plugins="${disabled_plugins} mbmon"
+    myconf="${myconf} --disable-multimeter"		## DISABLED
+	disabled_plugins="${disabled_plugins} multimeter"
+    myconf="${myconf} --disable-tape"			## SOLARIS ???
+	disabled_plugins="${disabled_plugins} tape"
+    myconf="${myconf} --disable-xmms"			## NOT IN GENTOO
+	disabled_plugins="${disabled_plugins} xmms"
+
+    einfo
+    einfo "The following plug-ins have been disabled in the ebuild"
+    einfo ${disabled_plugins}
+    einfo
+
+    ### Configure
+    econf \
+	${myconf} \
+	--localstatedir=/var \
+	|| die "econf failed"
+
+    einfo
+    einfo "The above plug-ins have been configured"
+    einfo
+    ebeep 3
+
+    ### Build
+    emake \
+	|| die "emake failed"
+}
+
+src_install()
+{
+    emake \
+	DESTDIR="${D}" \
+	install || die "emake install failed"
+
+    ### Documentation
+    docinto contrib/SpamAssassin
+    dodoc contrib/SpamAssassin/* \
+	|| die "dodoc contrib failed"
+
+    docinto contrib/examples
+    dodoc contrib/examples/* \
+	|| die "dodoc contrib failed"
+
+    docinto contrib/iptables
+    dodoc contrib/iptables/* \
+	|| die "dodoc contrib failed"
+    docinto contrib
+
+    docinto contrib
+    dodoc contrib/README contrib/*\.[a-z]* \
+	|| die "dodoc contrib failed"
+
+    dodoc AUTHORS ChangeLog NEWS README TODO \
+	|| die "dodoc failed"
+
+    
+    keepdir /var/lib/collectd \
+	|| die "keepdir failed"
+
+    newinitd "${FILESDIR}/${P}.initd" collectd \
+	|| die "newinitd failed"
+    
+    newconfd "${FILESDIR}/${P}.confd" collectd \
+	|| die "newconfd failed"
+}
+
+pkg_postinst()
+{
+    einfo "collectd introduced some changes in the new 4.x series."
+    einfo "For further information, read http://collectd.org/migrate-v3-v4.shtml"
+    einfo "The migration script can be found at:"
+    einfo "/usr/share/doc/${P}/contrib/migrate-3-4.px.bz2"
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app-admin/collectd/files/collectd-4.3.1.confd	Tue Mar 25 20:50:34 2008 +0100
@@ -0,0 +1,13 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+# File used to store the PID file. Usually you won't need to touch it.
+#COLLECTD_PIDFILE='/var/run/collectd.pid'
+
+# Nice value used to launch collectd, to change priority of the process. As
+# you usually will want to run it in background, a default of 5 is used.
+#COLLECTD_NICE='5'
+
+# Location of configuration file. Modify if you don't like the standard one.
+#COLLECTD_CONFIG='/etc/collectd.conf'
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app-admin/collectd/files/collectd-4.3.1.initd	Tue Mar 25 20:50:34 2008 +0100
@@ -0,0 +1,31 @@
+#!/sbin/runscript
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+# Assign defaults to parameters from /etc/conf.d/collectd
+: ${COLLECTD_PIDFILE:='/var/run/collectd.pid'}
+: ${COLLECTD_NICE:='5'}
+: ${COLLECTD_CONFIG:='/etc/collectd.conf'}
+
+depend()
+{
+    after logger net firewall dns \
+	lm_sensors cpufreqd nfs apache lighttpd nginx mysql
+}
+
+start()
+{
+    ebegin "Starting collectd"
+    start-stop-daemon --start --pidfile ${COLLECTD_PIDFILE} \
+	--nice ${COLLECTD_NICE} --exec /usr/sbin/collectd \
+	-- -P ${COLLECTD_PIDFILE} -C ${COLLECTD_CONFIG}
+    eend $? "Failed to start collectd"
+}
+
+stop()
+{
+    ebegin "Stopping collectd"
+    start-stop-daemon --stop --pidfile ${COLLECTD_PIDFILE}
+    eend $? "Failed to stop collectd"
+}