diff app-admin/collectd/collectd-4.3.1.ebuild @ 2:0ea7846e04f1

new ebuild: collectd
author holger@hoho.dyndns.org
date Tue, 25 Mar 2008 20:50:34 +0100
parents
children
line wrap: on
line diff
--- /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"
+}