view app-admin/collectd/collectd-4.3.1.ebuild @ 8:aa846b9f01c1

wget 1.11.1 is in portage
author holger@hoho.dyndns.org
date Wed, 26 Mar 2008 23:42:05 +0100
parents 0ea7846e04f1
children
line wrap: on
line source

# 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"
}