File collectd.spec of Package collectd

# norootforbuild

# TODO:
# libtokyotyrant (tcrdb.h)
# libkvm
# libupsclient (.pc)
# liboconfig
# ? oracle ($ORACLE_HOME)
# gmond
# 

%if 0%{?_with_xmms:1}0 || 0%{?suse_version} <= 1020
%define xmms 1
%else
%define xmms 0
%endif

%define xmms 0

%if 0%{?_with_java:1} || 0%{?suse_version} > 1030 && ! 0%{?_without_java:1} && ! 0%{?sles_version}
%define java 1
%else
%define java 0
%endif

%if 0%{?_with_virt:1} || 0%{?suse_version} > 1030
%define virt 1
%else
%define virt 0
%endif

%if ! 0%{?_without_dbi:1}
%define dbi 1
%else
%define dbi 0
%endif

%if ! 0%{?_without_memcachec:1}
%define memcachec 1
%else
%define memcachec 0
%endif

%if 0%{?suse_version} < 1000
%define libnotify 0
%else
%define libnotify 1
%endif

%if 0%{?suse_version} > 1020
%define snmp   0
%define ipmi   1
%define ascent 1
%define ascent_plugin ascent
%define iptables 1
%define iptables_plugin iptables
%else
%define snmp   0
%define ipmi   0
%define ascent 0
%define ascent_plugin %{nil}
%define iptables 0
%define iptables_plugin %{nil}
%endif

%if 0%{?suse_version} >= 1110
%define madwifi_plugin madwifi
%else
%define madwifi_plugin %{nil}
%endif

%if 0%{?suse_version} >= 1130
%define rrdcached_plugin rrdcached
%else
%define rrdcached_plugin %{nil}
%endif

%define libnetlink_version 2.6.25

%define plugins apache apcups battery bind curl curl_json curl_xml conntrack contextswitch cpu cpufreq csv df disk dns email entropy exec filecount fscache hddtemp interface ipvs irq load logfile match_empty_counter match_hashed match_regex match_timediff match_value mbmon memcached memory multimeter netlink network nfs nginx ntpd olsrd openvpn perl ping protocols powerdns processes rrdtool sensors serial swap syslog table tail target_notification target_replace target_scale target_set tcpconns teamspeak2 ted thermal unixsock uptime users uuid vmem vserver wireless write_http %{expand:%ascent_plugin} %{expand:%iptables_plugin} %{expand:%madwifi_plugin} %{expand:%rrdcached_plugin}

Name:				collectd
Version:			4.10.1
Release:			5.1
Summary:			Statistics Collection Daemon for filling RRD Files
Source:			http://collectd.org/files/collectd-%{version}.tar.bz2
Source1:			collectd.suse.init
Source2:			collectd.apache2.conf
Source3:			collectd-js.apache2.conf
# bundled/in-tree libnetlink.a, see http://mailman.verplant.org/pipermail/collectd/2007-October/001210.html
Source10:		http://devresources.linux-foundation.org/dev/iproute2/download/iproute2-%{libnetlink_version}.tar.bz2
# workaround for missing pthread.pc on openSUSE, required by OpenIPMIpthread.pc
# see https://bugzilla.novell.com/show_bug.cgi?id=388026
Source20:		collectd-pthread.pc
Patch4:			collectd-lib64.patch
Patch7:			collectd-fix-config.patch
Patch9:			collectd-version.patch
Patch10:			collectd-perl-vendor.patch
# see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=467072
Patch11:			collectd-fix_broken_perl-5.10.patch
Patch12:			collectd-fix-warnings.patch
Patch14:			collectd-iproute2-HZ.patch
Patch16:       iproute2-optflags.patch
Patch17:       collectd-fix_libltdl_autoreconf.patch
Patch18:       collectd-fix_collection_cgi.patch
Patch19:       collectd-fix_spamassassin_doc.patch
Patch20:       collectd-split_README.patch
Patch21:       collectd-fix_collectd_config_path_in_snmp_probe.patch
Patch22:       collectd-collection3.patch
Patch23:       collectd-javac_target.patch
URL:				http://collectd.org/
Group:			System/Monitoring
License:			GNU General Public License (GPL)
BuildRoot:		%{_tmppath}/build-%{name}-%{version}
Requires:		sensors rrdtool net-snmp 
BuildRequires:	sensors rrdtool libpng-devel zlib-devel perl
BuildRequires:	libstatgrab-devel gettext gettext-devel intltool bind-devel 
%if 0%{?suse_version} > 1020
BuildRequires: libdb-4_5-devel
%else
BuildRequires: db-devel
%endif
%if 0%{?suse_version} > 910
BuildRequires: libgcrypt-devel
%else
BuildRequires: libgcrypt
%endif
BuildRequires: liboping-devel
BuildRequires:	make gcc autoconf automake libtool pkgconfig
BuildRequires:	freetype2-devel libart_lgpl-devel
BuildRequires:	python-devel
%if %libnotify
BuildRequires: libnotify-devel gtk2-devel
%endif
%if %java
BuildRequires: java-devel
%endif #java
# for /etc/apache2/... ownership (rpmlint):
BuildRequires:  apache2
%if %suse_version >= 1000
BuildRequires:	libesmtp-devel
%endif
BuildRequires:	xfsprogs-devel
%if %suse_version >= 930
BuildRequires:	mysql-devel >= 4.1.0
%endif
BuildRequires:	postgresql-devel
BuildRequires:	libyajl-devel
%if %suse_version >= 1030
BuildRequires:	rrdtool-devel
%endif
%if %suse_version >= 1030
BuildRequires:	libcurl-devel
%else
BuildRequires:	curl-devel
%endif
BuildRequires:	libxml2-devel
%if %ipmi
# for ipmi:
BuildRequires:	OpenIPMI-devel gdbm-devel
%endif #ipmi
%if %snmp
# for snmp:
BuildRequires:	net-snmp-devel
%endif #snmp
# for ipvs and madwifi:
BuildRequires:	 kernel-source
%if %suse_version >= 1030
BuildRequires:	libpcap-devel
%endif
BuildRequires:	libpcap
%if %xmms
# for xmms:
BuildRequires:	xmms-devel
%endif
%if %virt
# for libvirt:
BuildRequires:	libvirt-devel
%endif
%if %dbi
BuildRequires: libdbi-devel
%endif
%if %memcachec
BuildRequires: libmemcached-devel
%endif
# in case we'd like to split it later:
Provides:		collectd-perl = %{version}-%{release}
PreReq:			%fillup_prereq
PreReq:			%insserv_prereq
# play nice with collectd-beta:
Obsoletes:		collectd-beta < %{version}
Provides:		collectd-beta = %{version}-%{release}

%description
collectd is a small daemon written in C for performance.  It reads various
system  statistics  and updates  RRD files,  creating  them if necessary.
Since the daemon doesn't need to startup every time it wants to update the
files it's very fast and easy on the system. Also, the statistics are very
fine grained since the files are updated every 10 seconds.




Authors:
--------
    Florian octo Forster <octo@verplant.org>

%package web
Summary:			Web Frontend for watching the %{name} Statistics
Group:			System/Monitoring
Requires:		perl apache2 rrdtool
Requires:      perl(Data::Dumper)
Requires:      perl(CGI)
Requires:      perl(HTML::Entities)
Requires:      perl(URI::Escape)
Requires:      rrdtool

%description web
Web frontend CGI for watching %{name} statistics from a browser.

Please look at /etc/apache2/conf.d/%{name}.conf on how to enable.

%package web-js
Summary:			Web/JavaScript Frontend for watching %{name} Statistics
Group:			System/Monitoring
Requires:		perl apache2 rrdtool
Requires:      perl(Data::Dumper)
Requires:      perl(CGI)
Requires:      perl(RRDs)
Requires:      perl(HTML::Entities)
Requires:      perl(JSON)
Requires:      perl(Config::General)

%description web-js
Web/JavaScript frontend CGI for watching %{name} statistics from
a browser.

Please look at /etc/apache2/conf.d/%{name}-js.conf on how to
enable.

%if %libnotify
%package plugin-notify-desktop
Summary:			Desktop Notification Plugin for %{name}
Group:			System/Monitoring
Requires:		%{name} = %{version}-%{release}

%description plugin-notify-desktop
Desktop Notification Support for %{name}
%endif #libnotify

%if %ipmi
%package plugin-ipmi
Summary:			OpenIPMI Monitoring Plugin for %{name}
Group:			System/Monitoring
Requires:		%{name} = %{version}-%{release}

%description plugin-ipmi
Optional %{name} plugin to monitor sensors using the OpenIPMI
library, for IPMI enabled systems.
%endif #ipmi

%if %snmp
%package plugin-snmp
Summary:			SNMP Monitoring Plugin for %{name}
Group:			System/Monitoring
Requires:		%{name} = %{version}-%{release}
Requires:      perl(SNMP)
Requires:      perl(Socket6)
Requires:      perl(Config::General)

%description plugin-snmp
Optional %{name} plugin to monitor devices using SNMP.
%endif #snmp

%if %suse_version >= 930
%package plugin-mysql
Summary:			MySQL Monitoring Plugin for %{name}
Group:			System/Monitoring
Requires:		%{name} = %{version}-%{release}

%description plugin-mysql
Optional %{name} plugin to monitor MySQL server instances.
%endif

%package plugin-postgresql
Summary:			PostgreSQL Monitoring Plugin for %{name}
Group:			System/Monitoring
Requires:		%{name} = %{version}-%{release}

%description plugin-postgresql
Optional %{name} plugin to monitor PostgreSQL server instances.

%package plugin-python
Summary:			Python API for %{name}
Group:			System/Monitoring
Requires:		%{name} = %{version}-%{release}

%description plugin-python
Optional %{name} Python API in order to write %{name} plugins in
Python.

%if %java
%package plugin-java
Summary:			Java API for %{name}
Group:			System/Monitoring
Requires:		%{name} = %{version}-%{release}

%description plugin-java
Optional %{name} Java API in order to write %{name} plugins in
Java.
%endif #java

%if %virt
%package plugin-virt
Summary:			Virtual Machine Statistics Plugin for %{name}
Group:			System/Monitoring
Requires:		%{name} = %{version}-%{release}

%description plugin-virt
Optional %{name} plugin to gather statistics from virtual
machines using libvirt.
%endif

%if %xmms
%package plugin-xmms
Summary:			XMMS Monitoring Plugin for %{name}
Group:			System/Monitoring
Requires:		%{name} = %{version}-%{release}

%description plugin-xmms
Optional %{name} plugin to gather sampling frequencies and file
bitrates of files played with XMMS.
%endif #xmms

%if %dbi
%package plugin-dbi
Summary:			DBI Storage Plugin for %{name}
Group:			System/Monitoring
Requires:		%{name} = %{version}-%{release}

%description plugin-dbi
Optional %{name} plugin to store sampling results into
various databases as supported by libdbi.
%endif #dbi

%if %memcachec
%package plugin-memcachec
Summary:			Memcache Daemon Monitoring Plugin for %{name}
Group:			System/Monitoring
Requires:		%{name} = %{version}-%{release}

%description plugin-memcachec
Optional %{name} plugin to sample memcached statistics.
%endif #memcachec

%package plugins-all
Summary:			All Monitoring Plugins for %{name}
Group:			System/Monitoring
Requires:		%{name} = %{version}-%{release}
%if %ipmi
Requires:		%{name}-plugin-ipmi = %{version}-%{release}
%endif #ipmi
%if %snmp
Requires:		%{name}-plugin-snmp = %{version}-%{release}
%endif #snmp
%if %suse_version >= 930
Requires:		%{name}-plugin-mysql = %{version}-%{release}
%endif #suse >= 930
Requires:		%{name}-plugin-postgresql = %{version}-%{release}
%if %java
Requires:		%{name}-plugin-java = %{version}-%{release}
%endif #java
%if %virt
Requires:		%{name}-plugin-virt = %{version}-%{release}
%endif #virt
Requires:		%{name}-web = %{version}-%{release}
Requires:		%{name}-web-js = %{version}-%{release}
%if %libnotify
Requires:		%{name}-plugin-notify-desktop = %{version}-%{release}
%endif #libnotify
Requires:		%{name}-plugin-python = %{version}-%{release}
%if %dbi
Requires:		%{name}-plugin-dbi = %{version}-%{release}
%endif #dbi
%if %memcachec
Requires:		%{name}-plugin-memcachec = %{version}-%{release}
%endif #memcachec

%description plugins-all
Metapackage that installs %{name} and all the available
monitoring plugin subpackages, except %{name}-plugin-xmms

%package spamassassin
Summary:			Spamassassin Monitoring for %{name}
Group:			System/Monitoring
Requires:		%{name} = %{version}-%{release}
Requires:      perl-spamassassin

%description spamassassin
Plugin for filling %{name} with statistics from the
SpamAsssassin anti-spam engine.

%package -n libcollectdclient0
Summary:			Library for %{name} clients
Group:			System/Monitoring
Provides:	   libcollectdclient = %{version}-%{release}

%description -n libcollectdclient0
Library which abstracts communication with the %{name}
unixsock plugin for clients.

%package -n libcollectdclient-devel
Summary:			Development Environment for %{name} clients
Group:			Development/Libraries/C and C++
Requires:      libcollectdclient0 = %{version}-%{release}

%description -n libcollectdclient-devel
Library which abstracts communication with the %{name}
unixsock plugin for clients.
This package contains the required development environment
to write %{name} unixsock clients.

%prep
%setup -q -n "collectd-%{version}" -a 10
%if "%{_lib}"=="lib64"
%patch4
%endif
%patch7
%patch9
%patch10
%patch11
%patch12
%patch17
pushd "iproute2-%{libnetlink_version}"
%patch14
%patch16
popd #iproute2
%patch18
%patch19
%patch20
%patch21
%patch22
%patch23

%__sed -i 's|@@VERSION@@|%{version}|g' configure.in

# workaround for missing pthread.pc on openSUSE, required by OpenIPMIpthread.pc
%__install -D -m0644 "%{SOURCE20}" pkgconfig/pthread.pc
%__sed 's|@@LIB@@|%{_lib}|g' pkgconfig/pthread.pc

%__perl -p -i -e 's|(-L\$withval/lib)\b|${1}64|g' configure.in configure

# unneeded files:
%__rm -fr \
	 contrib/fedora \
	 contrib/solaris-smf \
	 contrib/redhat \
	 contrib/sles*

# remove -Werror everywhere
find . -name 'configure*' -o -name 'Makefile*' -exec %__sed -i 's|-Werror||g' {} \;

%build
export SUSE_ASNEEDED=0

# build in-tree libnetlink.a
pushd "iproute2-%{libnetlink_version}"
LIBNETLINK_CFLAGS="%{optflags}"
%ifarch x86_64 ia64 ppc64 ppc64 s390x
# only add -fPIC on 64bit, to avoid performance drawback on non-64bit archs:
LIBNETLINK_CFLAGS="$LIBNETLINK_CFLAGS -fPIC"
%endif
%__make %{?jobs:-j%{jobs}} \
        SUBDIRS="lib" \
		  CC="%__cc" \
        OPTFLAGS="$LIBNETLINK_CFLAGS"
%__ln_s lib lib64
popd #iproute2

autoreconf -fiv

# set JAVA_HOME properly
[ -n "$JAVA_HOME" -a -d "$JAVA_HOME" ] || export JAVA_HOME="%{_usr}/%{_lib}/jvm/java"
[ -n "$JDK_HOME"  -a -d "$JDK_HOME"  ] || export JDK_HOME="$JAVA_HOME"
[ -n "$JRE_HOME"  -a -d "$JRE_HOME"  ] || export JRE_HOME="$JAVA_HOME"
export PATH="$JDK_HOME/bin:$JRE_HOME/bin:$JAVA_HOME/bin:$PATH"

# add /usr/src/linux to include path to find net/ip_vs.h:
export CFLAGS="%{optflags} -I$PWD/iproute2-%{libnetlink_version}/include/ -fno-strict-aliasing"
export CXXFLAGS="$CFLAGS"
# workaround for missing pthread.pc on openSUSE, required by OpenIPMIpthread.pc
export PKG_CONFIG_PATH="$PWD/pkgconfig:$PKG_CONFIG_PATH"
export KERNEL_DIR=/usr/src/linux
%configure \
	--with-libstatgrab \
	--with-rrdtool \
	--disable-static \
	--enable-dns \
	--disable-nut \
	--enable-netlink \
   --enable-python \
   --with-librrd \
%if %iptables
   --enable-iptables \
%else
   --disable-iptables \
   --without-iptc \
%endif #iptables
%if %ascent
	--enable-ascent \
%else
   --disable-ascent \
%endif #ascent
%if %ipmi
	--enable-ipmi \
%else
   --disable-ipmi \
%endif #ipmi
%if %java
   --enable-java \
   --with-java="$JAVA_HOME/" \
%else
   --disable-java \
%endif #java
%if %dbi
   --enable-dbi \
%else
   --disable-dbi \
%endif #dbi
%if %memcachec
   --enable-memcached \
%else
   --disable-memcached \
%endif #memcachec
	--with-libnetlink="$PWD/iproute2-%{libnetlink_version}/" \
%if %suse_version < 930
	--disable-mysql \
%endif
%ifos linux
	--enable-serial
%else
	--disable-serial
%endif #os linux

%__make %{?jobs:-j%{jobs}} \
%if 0%{?suse_version} < 1120
	 JAVAC_TARGET="-source 1.5 -target 1.5"
%else
	 JAVAC_TARGET="-source 1.5 -target 1.6"
%endif

%install
%makeinstall

# delete .la files
%__rm -f "%{buildroot}%{_libdir}"/*.{a,la}
%__rm -f "%{buildroot}%{_libdir}/collectd"/*.a

%__sed -i '/^dependency_libs=/ s|-L'"${RPM_BUILD_DIR}/%{name}-%{version}"'/src||g' "%{buildroot}%{_libdir}/collectd/python.la"

%if !%java
%__rm -f "%{buildroot}%{_mandir}/man5"/collectd-java.5*
%__rm -rf "%{buildroot}%{_datadir}/collectd/java"
%endif #!java
%__mkdir_p _rpmdoc_/java
%__mv contrib/GenericJMX.conf _rpmdoc_/java/

# fix bogus dependency in netlink.la, as it has been built against
# a static netlink library:
%__sed -i "/^dependency_libs=/s/=.*/=''/" \
		 "%{buildroot}%{_libdir}/collectd/netlink.la"

# fix permissions:
%__chmod 0755 "%{buildroot}%{_libdir}/collectd"/*.so
%__chmod 0644 "%{buildroot}%{_libdir}/collectd"/*.la

# create /var/lib/collectd to add it to the %files section:
%__install -d -m 0755 "%{buildroot}%{_localstatedir}/lib/collectd"

# init script:
%__install -D -m 0755 "%{SOURCE1}" "%{buildroot}/etc/init.d/collectd"
%__install -d -m 0755 "%{buildroot}/usr/sbin"
%__ln_s "../../etc/init.d/collectd" "%{buildroot}/usr/sbin/rccollectd"

# Apache2 configuration for the CGI frontend:
%__install -D -m 0644 "%{SOURCE2}" "%{buildroot}/etc/apache2/conf.d/%{name}.conf"
%__install -D -m 0755 contrib/collection.cgi "%{buildroot}/srv/www/collectd/collection.cgi"
%__install -D -m 0644 contrib/collection.conf "%{buildroot}%{_sysconfdir}/collectd/collection.conf"
%__sed -i 's|@@LIBDIR@@|%{_libdir}|g' "%{buildroot}%{_sysconfdir}/collectd/collection.conf"
# remove it from contrib, to avoid having it end up in the main package as well:
%__rm contrib/collection.cgi contrib/collection.conf

%perl_process_packlist

# web-js CGI frontend (_must_ be installed _after_ perl_process_packlist)
%__install -d "%{buildroot}/srv/www/collectd-js"
%__mkdir_p _rpmdoc_/web-js
%__mv contrib/collection3/README _rpmdoc_/web-js/README
find contrib/collection3/ -name .htaccess -exec %__rm {} \;
%__cp -a \
	 contrib/collection3/bin/* \
	 contrib/collection3/share/* \
	 "%{buildroot}/srv/www/collectd-js/"
%__mkdir_p "%{buildroot}%{_usr}/lib/collectd-js"
%__mv contrib/collection3/lib/* "%{buildroot}%{_usr}/lib/collectd-js/"

%__install -D -m 0644 contrib/collection3/etc/collection.conf \
	 "%{buildroot}%{_sysconfdir}/collectd/collection-js.conf"
%__rm -fr contrib/collection3/etc
%__install -D -m 0644 "%{SOURCE3}" "%{buildroot}/etc/apache2/conf.d/%{name}-js.conf"

# spamassassin (_must_ be installed _after_ perl_process_packlist)
%__install -D -m0644 contrib/SpamAssassin/example.cf \
	 "%{buildroot}%{_datadir}/spamassassin/99_%{name}.cf"
%__install -D -m0644 contrib/SpamAssassin/Collectd.pm \
	 "%{buildroot}%{perl_vendorlib}/Mail/SpamAssassin/Plugin/Collectd.pm"
pod2man \
	 contrib/SpamAssassin/Collectd.pm \
	 > "%{buildroot}%{perl_man3dir}/Mail::SpamAssassin::Plugin::Collectd.%{perl_man3ext}"
%__rm -rf contrib/SpamAssassin

# cussh script from contrib:
%__install -m0755 contrib/cussh.pl "%{buildroot}%{_bindir}/cussh"
%__install -d "%{buildroot}%{_mandir}/man1"
pod2man \
	 -c "Collectd UNIX Socket Shell" \
	 -n "CUSSH" \
	 -s 1 \
	 contrib/cussh.pl > "%{buildroot}%{_mandir}/man1/cussh.1"
%__rm contrib/cussh.pl

# snmp:
%__mkdir_p _rpmdoc_/snmp
%__sed -n '/^snmp-data\.conf/,$ p' contrib/README > _rpmdoc_/snmp/README
%__sed -i '/^snmp-data\.conf/,$ d' contrib/README
%__mv contrib/snmp-data.conf _rpmdoc_/snmp/
%__sed -i 's|\(\./\)snmp-probe-host\.px|collectd-snmp-probe-host|g' contrib/snmp-probe-host.px
pod2man \
	 -c "Collectd SNMP Host Probe" \
	 -n "COLLECTD-SNMP-PROBE-HOST" \
	 -s 1 \
	 contrib/snmp-probe-host.px \
	 > "%{buildroot}%{_mandir}/man1/collectd-snmp-probe-host.1"
%__install -D -m0755 contrib/snmp-probe-host.px "%{buildroot}%{_bindir}/collectd-snmp-probe-host"
%__rm contrib/snmp-probe-host.px
%__install -d "%{buildroot}%{_mandir}/man1"

find contrib/ -name '*.orig' -exec %__rm {} \;

# plugin list:
echo -n > plugins.lst
for plugin in %{plugins}; do
	 for ext in so la; do
	 	 echo "%{_libdir}/collectd/${plugin}.${ext}" >> plugins.lst
	 done
done

cat<<EOF >README.plugins-all
This package is empty but depends on all collectd plugin subpackages.
EOF

%preun
%stop_on_removal collectd

%postun
%restart_on_update collectd
%insserv_cleanup

%post
%{fillup_only collectd}

%post   -n libcollectdclient0 -p /sbin/ldconfig
%postun -n libcollectdclient0 -p /sbin/ldconfig

%clean
%__rm -rf "%{buildroot}"

%files -f plugins.lst
%defattr(-,root,root)
%doc AUTHORS ChangeLog COPYING README
%doc contrib
%config(noreplace) %{_sysconfdir}/collectd.conf
%dir %{_sysconfdir}/collectd
%{_bindir}/collectd-nagios
%{_bindir}/cussh
%{_sbindir}/collectd
%{_sbindir}/collectdmon
%dir %{_libdir}/collectd
%if %suse_version >= 1000
%{_libdir}/collectd/notify_email.so
%{_libdir}/collectd/notify_email.la
%endif
%dir %{_datadir}/collectd
%{_datadir}/collectd/types.db
%{perl_vendorlib}/Collectd.pm
%dir %{perl_vendorlib}/Collectd
%{perl_vendorlib}/Collectd/*
%{perl_vendorarch}/auto/Collectd
%doc %{_mandir}/man1/collectd.1*
%doc %{_mandir}/man1/collectdmon.1*
%doc %{_mandir}/man1/collectd-nagios.1*
%doc %{_mandir}/man1/cussh.1*
%doc %{_mandir}/man5/collectd.conf.5*
%doc %{_mandir}/man5/collectd-email.5*
%doc %{_mandir}/man5/collectd-exec.5*
%doc %{_mandir}/man5/collectd-perl.5*
%doc %{_mandir}/man5/collectd-unixsock.5*
%doc %{_mandir}/man5/types.db.5*
%doc %{perl_man3dir}/Collectd::Unixsock.%{perl_man3ext}*
%dir %{_localstatedir}/lib/collectd
/etc/init.d/collectd
/usr/sbin/rccollectd
/var/adm/perl-modules/%{name}

%files web
%defattr(-,root,root)
%config(noreplace) /etc/apache2/conf.d/%{name}.conf
%dir %{_sysconfdir}/collectd
%config(noreplace) %{_sysconfdir}/collectd/collection.conf
/srv/www/collectd

%files web-js
%defattr(-,root,root)
%doc _rpmdoc_/web-js/README
%config(noreplace) /etc/apache2/conf.d/%{name}-js.conf
%dir %{_sysconfdir}/collectd
%config(noreplace) %{_sysconfdir}/collectd/collection-js.conf
/srv/www/collectd-js
%{_usr}/lib/collectd-js

%if %libnotify
%files plugin-notify-desktop
%defattr(-,root,root)
%{_libdir}/collectd/notify_desktop.so
%{_libdir}/collectd/notify_desktop.la
%endif #libnotify

%if %ipmi
%files plugin-ipmi
%defattr(-,root,root)
%{_libdir}/collectd/ipmi.so
%{_libdir}/collectd/ipmi.la
%endif #ipmi

%if %snmp
%files plugin-snmp
%defattr(-,root,root)
%doc _rpmdoc_/snmp/*
%{_bindir}/collectd-snmp-probe-host
%{_libdir}/collectd/snmp.so
%{_libdir}/collectd/snmp.la
%doc %{_mandir}/man1/collectd-snmp-probe-host.1*
%doc %{_mandir}/man5/collectd-snmp.5*
#%doc /usr/share/doc/packages/collectd-plugin-snmp
%else
%{_bindir}/collectd-snmp-probe-host
%doc %{_mandir}/man1/collectd-snmp-probe-host.1*
%doc %{_mandir}/man5/collectd-snmp.5*
%endif #snmp



%if %suse_version >= 930
%files plugin-mysql
%defattr(-,root,root)
%{_libdir}/collectd/mysql.so
%{_libdir}/collectd/mysql.la
%endif

%files plugin-postgresql
%defattr(-,root,root)
%{_libdir}/collectd/postgresql.so
%{_libdir}/collectd/postgresql.la
%config %{_datadir}/collectd/postgresql_default.conf

%files plugin-python
%defattr(-,root,root)
%{_libdir}/collectd/python.so
%{_libdir}/collectd/python.la
%doc %{_mandir}/man5/collectd-python.5*

%if %java
%files plugin-java
%defattr(-,root,root)
%doc _rpmdoc_/java/GenericJMX.conf
%{_libdir}/collectd/java.so
%{_libdir}/collectd/java.la
%{_datadir}/collectd/java
%doc %{_mandir}/man5/collectd-java.5*
%endif #java

%if %virt
%files plugin-virt
%defattr(-,root,root)
%{_libdir}/collectd/libvirt.so
%{_libdir}/collectd/libvirt.la
%endif #virt

%if %xmms
%files plugin-xmms
%defattr(-,root,root)
%{_libdir}/collectd/xmms.so
%{_libdir}/collectd/xmms.la
%endif #xmms

%if %dbi
%files plugin-dbi
%defattr(-,root,root)
%{_libdir}/collectd/dbi.so
%{_libdir}/collectd/dbi.la
%endif #dbi

%if %memcachec
%files plugin-memcachec
%defattr(-,root,root)
%{_libdir}/collectd/memcachec.so
%{_libdir}/collectd/memcachec.la
%endif #memcachec

%files spamassassin
%defattr(-,root,root)
%dir %{_datadir}/spamassassin
%config(noreplace) %{_datadir}/spamassassin/99_%{name}.cf
%dir %{perl_vendorlib}/Mail
%dir %{perl_vendorlib}/Mail/SpamAssassin
%dir %{perl_vendorlib}/Mail/SpamAssassin/Plugin
%{perl_vendorlib}/Mail/SpamAssassin/Plugin/Collectd.pm
%doc %{perl_man3dir}/Mail::SpamAssassin::Plugin::Collectd.%{perl_man3ext}*

%files plugins-all
%defattr(-,root,root)
%doc README.plugins-all

%files -n libcollectdclient0
%defattr(-,root,root)
%{_libdir}/libcollectdclient.so.0
%{_libdir}/libcollectdclient.so.0.*.*

%files -n libcollectdclient-devel
%defattr(-,root,root)
%{_includedir}/collectd
%{_libdir}/libcollectdclient.so
%{_libdir}/pkgconfig/libcollectdclient.pc

%changelog
* Mon Jul 12 2010 pascal.bleser@opensuse.org
- add curl_json plugin (libyajl)
- fix Java plugin on 11.1
* Sun Jul 11 2010 pascal.bleser@opensuse.org
- update to 4.10.1:
  * the shutdown speed when terminating the read threads has been improved
  * libcollectdclient: a format error in the PUTVAL command has been removed
  * DF plugin: an error message shown when cu_mount_getlist fails has been added
  * Processes plugin: missing initialization code for IO members of a struct has been added
  * Python plugin: memory leaks in the write and notification callbacks have been fixed; a possible crash when the plugin was loaded but not configured has been fixed
  * SNMP plugin: verbosity with regard to unknown ASN types has been increased
  * PowerDNS plugin: compatibility changes for PowerDNS 2.9.22 and above have been applied
- changes from 4.10.0:
  * JSON output now includes the dstypes and dsnames fields
  * the new Timeout option can be used to specify a timeout for missing values
  * Apache plugin: support for IdleWorkers (Apache 1.*: IdleServers) has been added
  * cURL plugin: the new ExcludeRegex allows to easily exclude certain lines from the match
  * cURL-XML plugin: new plugin allows to read XML files using cURL and extract metrics included in the files
  * FileCount plugin: the new IncludeHidden option allows to include hidden files and directories in the statistics
  * LogFile plugin: the new PrintSeverity option allows to include the severity of a message in the output
  * memcachec plugin: the new ExcludeRegex allows to easily exclude certain lines from the match
  * Modbus plugin: new plugin allows to read registers from Modbus-TCP enabled devices
  * Network plugin: new Interface option allows to set the interface to be used for multicast and, if supported, unicast traffic
  * OpenVPN plugin: the CollectUserCount and CollectIndividualUsers options allow more detailed control over how to report sessions of multiple users
  * Pinba plugin: new plugin receives timing information from the Pinba PHP extension, which can be used for profiling PHP code and webserver performance
  * Ping plugin: new MaxMissed allows to re-resolve a hosts address when it doesn't reply to a number of ping requests
  * PostgreSQL plugin: the Interval config option has been added; the plugin has been relicensed under the 2-clause BSD license
  * Processes plugin: support for code and data virtual memory sizes has been added
  * Python plugin: support for Python 3 has been implemented
  * RouterOS plugin: support for collecting CPU load, memory usage, used and free disk space, sectors written and number of bad blocks from MikroTik devices has been added
  * Swap plugin: support for Linux < 2.6 has been added
  * Tail plugin: the new ExcludeRegex allows to easily exclude certain lines from the match
  * Write HTTP plugin: the StoreRates option has been added
  * RegEx match: the Invert option has been added
- bumped in-tree libnetlink_version version from 2.6.33 to 2.6.34
* Fri Apr 23 2010 pascal.bleser@opensuse.org
- bumped in-tree libnetlink_version version from 2.6.29-1 to 2.6.33
- update to 4.9.2:
  * append a newline to messages written to STDERR.
  * serialization of NANs in JSON format has been fixed
  * checks whether a "sleep" returned early have been added
  * continue reading files in a directory when parsing one file fails
  * Apache plugin: collection of the number of active connections has been fixed for Apache 2.*
  * Exec plugin: error messages have been improved; the "running" flag is now cleared correctly when forking a child fails
  * IPTables plugin: fix a violation of aliasing rules
  * Java plugin: the Java API files are now packaged into a .jar file
  * Network plugin: fix a segmentation fault when receiving packets with an unknown data source type
  * Network plugin: a memory leak when receiving encrypted network packets has been fixed
  * Oracle plugin: fix checking for lost connections and reconnect in this case
  * UnixSock plugin: a memory leak in the "LISTVAL" command has been fixed
  * Write HTTP plugin: use the "any" authentication schema, used to be "digest"
* Fri Jan 15 2010 pascal.bleser@opensuse.org
- update to 4.9.1:
  * RRDtool plugin: fix a bug with random write timeouts: due to an
    incorrect initialization some files may be suspended basically
    indefinitely; after flushing the files they were written
    regularly again
  * documentation: some manpage fixes
  * default config: added sample configuration for missing plugins
  * apache plugin: fix a segmentation fault in the config handling
    of VerifyPeer / VerifyHost
  * processes plugin: fix handling of derive data sources
  * RouterOS plugin: use the node name for the "host" field
  * monitorus plugin: put the plugin into the "Collectd::Plugins"
    namespace
  * Perl bindings: fix a warning that was printed when building
    debugging output
* Mon Dec 21 2009 pascal.bleser@opensuse.org
- update to 4.9.0:
  * new plugins: NetApp, Python, RouterOS, ContextSwitch, Monitorus,
    OpenVZ
  * timing information is now collected in the cURL plugin
  * the possibility to set the source address and device used has
    been added to the Ping plug-in
  * the detail provided by the DF plug-in has been enhanced
  * collection of IO-metrics has been added to the Processes plugin
* Sat Dec 19 2009 pascal.bleser@opensuse.org
- update to 4.8.2:
  * fixes a memory leak in the "listval" command
  * adds detection of dead connections and reconnection in the GenericJMX and Oracle plugins
  * fixes handling of negative values and hex strings has been corrected in the SNMP plugin
  * improved treatment of error messages when no log plugin was loaded
- build memcachec and dbi plugins
* Tue Oct  6 2009 pascal.bleser@opensuse.org
- split out -virt plugin package to avoid depending on libvirt.so and libxenstore.so
  in the main package
- more preconfigured integration and documentation mangling for files under contrib/
- split out spamassassin contrib files into their own package, properly preconfigured
- fix Apache2 configuration file in -web subpackage
* Sat Oct  3 2009 pascal.bleser@opensuse.org
- update to 4.8.1:
  * UnixSock plugin: fix a (well hidden) race condition related to file descriptor handling
- changes from 4.8.0:
  * collectd: two new data source types, DERIVE and ABSOLUTE, have been added: DERIVE can be used for counters that are reset occasionally
  * thresholds: the advanced threshold options “Percentage”, “Hits”, and “Hysteresis” have been added
  * cURL-JSON plugin: the new cURL-JSON plugin reads JSON files using the cURL library and parses the contents according to user specification; among other things, this allows to read statistics from a CouchDB instance
  * DF plugin: using the new “ReportByDevice” option the device rather than the mount point can be used to identify partitions
  * DNS plugin: the possibility to ignore numeric QTypes has been added
  * GenericJMX plugin: the new, Java-based GenericJMX plugin allows to query arbitrary data from a Java process using the Java Management Extensions (JMX)
  * MadWifi plugin: the new MadWifi plugin collects information about Atheros wireless LAN chipsets from the MadWifi driver
  * network plugin: the receive- and send-buffer-sizes have been made configurable, allowing for bigger and smaller packets
  * olsrd plugin: the new OLSR plugin queries routing information from the Optimized Link State Routing daemon
  * RRDtool plugin: a new configuration option allows to define a random write delay when writing RRD files; this spreads the load created by writing RRD files more evenly
  * Swap plugin: the possibility to collect swapped in/out pages has been added to the Swap plugin
  * TokyoTyrant plugin: the new TokyoTyrant plugin reads the number of records and file size from a running Tokyo Tyrant server
  * UnixSock plugin: add the GETTHRESHOLD command: this command can be used to query the thresholds configured for a particular identifier
  * Write HTTP plugin: the new Write HTTP plugin sends the values collected by collectd to a web-server using HTTP POST requests
  * Empty Counter match: the new Empty Counter match matches value lists, where at least one data source is of type COUNTER and the counter value of all counter data sources is zero
* Fri Sep 25 2009 kkaempf@suse.de
- temporarily disable perl plugin for opensuse 11.2, must fix configure check first
* Sun Jul 26 2009 pascal.bleser@opensuse.org
- update to 4.7.2:
  * several bugs in the threshold and notification subsystems have been fixed
  * portability of the “memcached” plug-in has been improved
* Tue May 12 2009 pascal.bleser@opensuse.org
- update the in-tree libnetlink to 2.6.29-1
- added missing ldconfig for libcollectclient0
- update to 4.7.0:
  * apache plugin: support to query multiple servers has been added
  * apache plugin: handling of lighttpd's scoreboard statistics has been improved
  * conntrack plugin: the new conntrack plugin collects the connection tracking table size
  * fscache plugin: the new fscache plugin collects statistics about Linux' file-system based caching framework
  * gmond plugin: the new gmond plugin can receive and interpret multicast traffic from Ganglia's gmond daemon
  * java plugin: the new java plugin exports the collectd API to Java, making it possible to write extensions to collectd in Java
  * memcachec plugin: the new memcachec plugin queries data from a memcached daemon and parses it similar to the cURL plugin
  * memcached plugin: support for connections over UNIX domain sockets has been added
  * mysql plugin: support to query multiple databases has been added
  * mysql plugin: master/slave statistics have been added
  * mysql plugin: lock statistics have been added
  * network plugin: the possibility to sign or encrypt network traffic has been added
  * protocols plugin: the new protocols plugin provides information about network protocols, such as IP, TCP and UDP
  * snmp plugin: the intervals given in the configuration of the SNMP plugin must no longer be a multiple of the global interval
  * table plugin: the new Table plugin provides parsing for table-like structured files, such as many files beneath /proc
  * ted plugin: the new TED plugin reads power consumption measurements from “The Energy Detective” (TED)
  * onewire plugin: the new Interval option allows collecting information from OneWire sensors at arbitrary intervals
  * ping plugin: support for collecting the drop rate and standard deviation of round-trip times has been added
  * uptime plugin: the new uptime plugin can collect the server's uptime
* Wed Mar 18 2009 pascal.bleser@opensuse.org
- update to 4.6.2:
  * collection of the number of cached RR-sets has been fixed in the "BIND" plugin
  * filter chains can now be configured without a default target
  * portability fixes have been added to the "DNS" and "Oracle" plugins
  * a typo that prevented the module from being used correctly has been
    corrected in the "TimeDiff" match
  * a possible race condition during startup has been fixed in the "RRDtool" plugin
* Sun Feb 22 2009 pascal.bleser@opensuse.org
- update to 4.6.1:
  * fixes an off-by-one error in the IPMI plugin
  * fixes smaller problems in the BIND plugin
  * documentation fixes
- upgrade in-tree libnetlink (iproute2) library to latest (2.6.28)
* Mon Feb 16 2009 guru@unixtech.be
- fix build on 11.1, make rpmlint happy
* Sun Oct 19 2008 guru@unixtech.be
- only expect the virt plugin on >=11.0 as collectd now requires a more
  recent libvirt (>=0.4.0, for virDomainBlockStats)
* Fri Oct 17 2008 guru@unixtech.be
- moved collectd-snmp manpage to -snmp subpackage
- update to 4.5.1:
  * fix a memory leak in the global value cache and configuration handling
    code
  * fix an off-by-one error in the ignorelist functionality
  * collectdmon: don't block SIGCHLD, fixes a potential portability problem
  * collectd-nagios: fix handling of the -d option
  * iptables plugin (4.5.1 only): fix an off-by-one error
  * perl plugin: log an error message if bootstrapping Collectd fails
  * postgresql plugin (4.5.1 only): don't reopen connection during
    reinitialization
  * snmp plugin (4.5.1 only): don't expect null-terminated strings from the
    Net-SNMP library
  * tail plugin: call clearerr(3) after reading an EOF
* Thu Sep 11 2008 guru@unixtech.be
- added a patch to remove poisoning of strcpy on openSUSE < 11.0,
  as it is replaced by a safe bounds-checking variant using a #define
* Wed Sep 10 2008 guru@unixtech.be
- added postgresql subpackage
- moved mysql into own subpackage
- added libvirt, filecount, notify_desktop and thermal plugins
- bump the in-tree iproute2 to 2.6.26
- update to 4.5.0:
  * fix a memory leak in the threshold checking code
  * memcached plugin: fix a too short timeout and a related file descriptor
    leak
  * memory plugin: a typo in the libstatgrab code has been fixed
  * snmp plugin: fix a possible memory leak
* Wed May  7 2008 guru@unixtech.be
- well-defined list of plugins to avoid unpredictable build results caused
  by missing dependencies (i.e. missing plugins)
- added XMMS plugin (as a separate subpackage)
- added OpenIPMI plugin (as a separate subpackage)
- use bundled libnetlink (from iproute2) as the one that ships with openSUSE
  is not build with -fPIC, which causes linking to fail on x86_64
- split out a few plugins to avoid dependencies in the main package
- new upstream version
* Wed Apr 23 2008 guru@unixtech.be
- new upstream version
* Tue Apr  1 2008 guru@unixtech.be
- new upstream version
* Tue Feb 19 2008 guru@unixtech.be
- new upstream version
* Mon Jan 21 2008 guru@unixtech.be
- new upstream version
* Mon Dec 17 2007 guru@unixtech.be
- new upstream version
* Fri Nov  9 2007 guru@unixtech.be
- new upstream version
- promoted beta to stable
* Wed Oct 24 2007 guru@unixtech.be
- new upstream version
* Sun Sep 30 2007 guru@unixtech.be
- new upstream version
* Wed Sep 12 2007 guru@unixtech.be
- new upstream version
- forked off -beta
* Tue Sep 11 2007 guru@unixtech.be
- new upstream version
- moved to openSUSE Build Service
* Wed Aug 29 2007 guru@unixtech.be
- added --disable-nut, made the build fail
- new upstream version
* Mon Aug 13 2007 guru@unixtech.be
- fixed commented defaults in configuration file
- fixed init script
- dropped sysconfig
- fixed access rights on init script, thanks to Detlef for reporting
* Fri Aug  3 2007 guru@unixtech.be
- new upstream version
* Sun Jun 24 2007 guru@unixtech.be
- new upstream version
* Wed Jun 20 2007 guru@unixtech.be
- new upstream version
* Sat Jun 16 2007 guru@unixtech.be
- new upstream version
* Wed Jun  6 2007 guru@unixtech.be
- new upstream version
* Sun Jun  3 2007 guru@unixtech.be
- new upstream version
* Tue May 29 2007 guru@unixtech.be
- new upstream version
* Tue Apr 10 2007 guru@unixtech.be
- new upstream version
* Sun Apr  1 2007 guru@unixtech.be
- new upstream version
* Sun Feb 11 2007 guru@unixtech.be
- new upstream version
* Fri Feb  9 2007 guru@unixtech.be
- new upstream version
* Thu Nov  2 2006 guru@unixtech.be
- new upstream version
* Thu Jul 20 2006 guru@unixtech.be
- added %%%%{_sysconfdir}/collectd.conf
- new upstream version
* Thu Jun 15 2006 guru@unixtech.be
- added mysql support on SUSE >= 9.3 (older versions don't have the required version >= 4.1.0)
- moved configure to build section
- new upstream version
* Sun May 14 2006 guru@unixtech.be
- new upstream version
* Wed Apr 19 2006 guru@unixtech.be
- added patch to fix a warning with a pointer diff being passed to printf
- added stripping of binaries on SUSE < 9.3
- removed Packager and Distribution, injected by rpmmacros
- new upstream version
* Mon Apr 10 2006 guru@unixtech.be
- new upstream version
* Thu Apr  6 2006 guru@unixtech.be
- new upstream version
* Mon Mar 13 2006 guru@unixtech.be
- new upstream version
- added BuildRequires for suse-release
- removed explicit Requires that are found by AutoReqProv
* Mon Jan 30 2006 guru@unixtech.be
- new upstream version
- added manpage for collectd.conf
- added SMP flags to make
* Mon Jan 23 2006 guru@unixtech.be
- new upstream version
* Sun Dec 25 2005 guru@unixtech.be
- new upstream version
* Sun Dec  4 2005 guru@unixtech.be
- small fixes to Requires section
- new upstream version
* Tue Nov  8 2005 guru@unixtech.be
- had to specify --enable-serial to build the serial collect module (only on Linux)
- sanitized spec file
- new upstream version
* Thu Oct 27 2005 guru@unixtech.be
- new upstream version
* Tue Oct  4 2005 guru@unixtech.be
- made rc-link in sbin conditional (SUSE)
- moved sysconfig file to fillup
- added debuginfo support
- new upstream version
* Sun Sep 18 2005 guru@unixtech.be
- dropped no-chown patch
- added manpage
- added runtime dependency to libping-dping
- added build dependency to libstatgrab
- new upstream version: 2.1.0
* Sun Aug 21 2005 guru@unixtech.be
- version 1.6.0
* Sun Aug  7 2005 guru@unixtech.be
- new package
openSUSE Build Service is sponsored by