File collectd.spec of Package collectd

#
# spec file for package collectd
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2005-2013 Pascal Bleser <pascal.bleser@opensuse.org>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

%define madwifi_plugin madwifi
%define pcap_version %({rpm -q --qf='%{VERSION}\n' libpcap-devel 2>/dev/null || echo 0.0.0} | gawk -F. '{print $1*10000+$2*100+$3}')
%define snmp       1
%define with_esmtp 0
%define ipvs_plugin ipvs
%define plugins apache apcups battery %{expand:%{bind_plugin}} cgroups curl %{expand:%{curl_json_plugin}} %{expand:%{curl_xml_plugin}} conntrack contextswitch cpu cpufreq csv df disk %{expand:%{dns_plugin}} email entropy exec filecount fscache hddtemp interface %{expand:%{ipvs_plugin}} irq load logfile match_empty_counter match_hashed match_regex match_timediff match_value mbmon %{expand:%{memcached_plugin}} memory multimeter netlink network nfs nginx ntpd olsrd openvpn perl ping protocols powerdns processes sensors serial statsd swap syslog table tail target_notification target_replace target_scale target_set target_v5upgrade tcpconns teamspeak2 ted thermal threshold unixsock uptime users uuid vmem vserver wireless write_http %{expand:%{ascent_plugin}} %{expand:%{iptables_plugin}} %{expand:%{madwifi_plugin}} aggregation ethstat md numa tail_csv write_graphite
%if 0%{?_with_xmms:1}0
%define xmms 1
%else
%define xmms 0
%endif
%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%{?suse_version} >= 1100 && ! 0%{?_without_memcachec:1} && ! 0%{?sles_version} == 1215
%define memcachec 1
%define memcached_plugin memcached
%else
%define memcachec 0
%define memcached_plugin %{nil}
%endif
%if 0%{?suse_version} < 1000
%define libnotify 0
%else
%define libnotify 1
%endif
%if 0%{?suse_version} > 1020
%define ipmi   1
%define ascent 1
%define ascent_plugin ascent
%else
%define ipmi   0
%define ascent 0
%define ascent_plugin %{nil}
%endif
%define iptables 0
%define iptables_plugin %{nil}
# %if 0%{?suse_version} >= 1130
# %define rrdcached_plugin rrdcached
# %else
%define rrdcached_plugin %{nil}
# %endif
%if %{pcap_version} >= 10000
%define dns        1
%define dns_plugin dns
%else
%define dns        0
%define dns_plugin %{nil}
%endif
%if 0%{?suse_version} >= 1020
%define yajl 1
%define curl_json_plugin curl_json
%define curl_xml_plugin  curl_xml
%else
%define yajl 0
%define curl_json_plugin %{nil}
%define curl_xml_plugin  %{nil}
%endif


%if 0%{?suse_version} >= 1000
%define with_snmp_plugin 1
%define with_pgsql 1
%define with_mysql 1
%define with_bind  1
%define bind_plugin bind
%define protobuf 0
%define pinba_plugin pinba
%else
%define with_snmp_plugin 0
%define with_pgsql 0
%define with_mysql 0
%define with_bind  0
%define bind_plugin %{nil}
%define protobuf 0
%define pinba_plugin %{nil}
%endif
%if 0%{?suse_version} >= 1210
%define has_systemd 1
BuildRequires:  systemd
%{perl_requires}
%{?libperl_requires}
%{?systemd_requires}
%else
# FIXME: use proper Requires(pre/post/preun/...)
PreReq:         %insserv_prereq
%endif
Name:           collectd
Version:        5.4.2
Release:        1.1
Summary:        Statistics Collection Daemon for filling RRD Files
License:        GPL-2.0
Group:          System/Monitoring
Url:            http://collectd.org/
Source:         http://collectd.org/files/collectd-%{version}.tar.bz2
Source1:        collectd.suse.init
Source2:        collectd.apache2.conf
Source3:        collectd-js.apache2.conf
# 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
Source99:       collectd-rpmlintrc
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
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
Patch23:        collectd-javac_target.patch
Patch25:        collectd-df-remove-duplicates.patch
# for /etc/apache2/... ownership (rpmlint):
BuildRequires:  apache2
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  bind-devel
BuildRequires:  bison
BuildRequires:  flex
BuildRequires:  freetype2-devel
BuildRequires:  gcc
BuildRequires:  gettext
BuildRequires:  gettext-devel
BuildRequires:  intltool
# for ipvs and madwifi:
BuildRequires:  kernel-source
BuildRequires:  libart_lgpl-devel
BuildRequires:  libevent-devel
#BuildRequires:  libmodbus-devel
BuildRequires:  libmnl-devel
BuildRequires:  libnetlink-devel
BuildRequires:  liboping-devel
BuildRequires:  libpcap
BuildRequires:  libpng-devel
BuildRequires:  libstatgrab-devel
BuildRequires:  libtool
BuildRequires:  libxml2-devel
BuildRequires:  linux-kernel-headers
BuildRequires:  make
BuildRequires:  perl
BuildRequires:  pkgconfig
BuildRequires:  python-devel
BuildRequires:  rrdtool
BuildRequires:  rrdcached
BuildRequires:  sensors
BuildRequires:  xfsprogs-devel
BuildRequires:  zlib-devel
Requires:       rrdtool
Requires:       sensors
# FIXME: use proper Requires(pre/post/preun/...)
PreReq:         %fillup_prereq
# in case we'd like to split it later:
Provides:       collectd-perl = %{version}-%{release}
# play nice with collectd-beta:
Obsoletes:      collectd-beta < %{version}
Provides:       collectd-beta = %{version}-%{release}
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
# Should not be used - since Mon Apr 23 10:56:57 UTC 2012
# except for 11.4
%if 0%{?suse_version} <= 1140 && !0%{?sles_version}
Patch24:        collectd-pkgconfig_libnotify_add_gtk.patch
%endif
%if 0%{?suse_version} > 1020 && !0%{?sles_version} == 1215
BuildRequires:  libdb-4_5-devel
%else
BuildRequires:  db-devel
%endif
%if 0%{?suse_version} > 910
BuildRequires:  libgcrypt-devel
%else
BuildRequires:  libgcrypt
%endif
%if %{libnotify}
BuildRequires:  gtk2-devel
BuildRequires:  libnotify-devel
%endif
%if %java
BuildRequires:  java-devel
%endif #java
%if %{with_esmtp}
BuildRequires:  libesmtp-devel
%endif
%if %{with_mysql}
BuildRequires:  mysql-devel >= 4.1.0
%endif
%if %{with_pgsql}
BuildRequires:  postgresql-devel
%endif
%if %{yajl}
BuildRequires:  libyajl-devel
%endif
# %if 0%{?suse_version} >= 1030
BuildRequires:  rrdtool-devel
# %endif
%if 0%{?suse_version} >= 1030
BuildRequires:  libcurl-devel
%else
BuildRequires:  curl-devel
%endif
%if %{ipmi}
# for ipmi:
BuildRequires:  OpenIPMI-devel
BuildRequires:  gdbm-devel
%endif #ipmi
%if %{snmp}
# for snmp:
BuildRequires:  net-snmp-devel
%endif #snmp
%if 0%{?suse_version} >= 1030
BuildRequires:  libpcap-devel
%endif
%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
%if %{protobuf}
BuildRequires:  protobuf-c
%endif
#%if 0%{?sles_version} == 11
#BuildRequires:  iptables-devel
#%endif
%if 0%{?sles_version} == 1215
BuildRequires:  libiptc-devel
BuildRequires:  libxtables-devel
%endif

%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.

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

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

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

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

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

Please look at %{_sysconfdir}/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} allow you to receive
message delivered on your desktop.
%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(Config::General)
Requires:       perl(SNMP)
Requires:       perl(Socket6)

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

%if %{with_mysql}
%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 #with_mysql

%if %{with_pgsql}
%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.
%endif #with_pgsql

%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

%if %{protobuf}
%package plugin-pinba
Summary:        Pinba Collector Plugin for %{name}
Group:          System/Monitoring
Requires:       %{name} = %{version}-%{release}

%description plugin-pinba
Optional %{name} plugin to receive and dispatch timing values from Pinba, a
profiling extension for PHP.
%endif #protobuf

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

%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 libcollectdclient1
Summary:        Library for %{name} clients
Group:          System/Monitoring
Provides:       libcollectdclient = %{version}-%{release}

%description -n libcollectdclient1
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:       libcollectdclient1 = %{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}"
#%if "%{_lib}"=="lib64"
#%patch4
#%endif
%patch7
#%patch9 -p1
%patch10
#%patch11
#%patch17
%patch18
%patch19
%patch20
%patch21
%patch23
%if 0%{?suse_version} <= 1140 && !0%{?sles_version}
%patch24 -p1
%endif
%patch25

sed -i 's|@@VERSION@@|%{version}|g' configure.ac

# 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.ac 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

autoreconf -fiv

# set JAVA_HOME properly
[ -n "$JAVA_HOME" -a -d "$JAVA_HOME" ] || export JAVA_HOME="%{_libdir}/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"

export CFLAGS="%{optflags} -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=%{_prefix}/src/linux
%configure \
    --with-libstatgrab \
    --disable-static \
%if %{dns}
    --enable-dns \
%else
    --disable-dns \
%endif
    --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
%if 0%{?suse_version} < 930
    --disable-mysql \
%endif
%ifos linux
    --enable-serial
%else
    --disable-serial
%endif #os linux

make %{?_smp_flags} \
%if 0%{?suse_version} < 1120
     JAVAC_TARGET="-source 1.5 -target 1.5"
%else
     JAVAC_TARGET="-source 1.5 -target 1.6"
%endif

%install
make DESTDIR=%{buildroot} install %{?_smp_mflags}

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

# delete if it exists (not packaged any more on openSUSE):
rm -rf "%{buildroot}%{_localstatedir}/adm/perl-modules/%{name}"

%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 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"

# Apache2 configuration for the CGI frontend:
install -D -m 0644 "%{SOURCE2}" "%{buildroot}%{_sysconfdir}/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
rm -rf "%{buildroot}%{_localstatedir}/adm/perl-modules"/*

# 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}%{_libexecdir}/collectd-js"
mv contrib/collection3/lib/* "%{buildroot}%{_libexecdir}/collectd-js/"

install -D -m 0644 contrib/collection3%{_sysconfdir}/collection.conf \
     "%{buildroot}%{_sysconfdir}/collectd/collection-js.conf"
rm -fr contrib/collection3/etc
install -D -m 0644 "%{SOURCE3}" "%{buildroot}%{_sysconfdir}/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 {} \;

%if !%{with_pgsql}
rm -f "%{buildroot}%{_datadir}/collectd/postgresql_default.conf"
%endif

%if !%{with_snmp_plugin}
rm -f "%{buildroot}%{_mandir}/man5/collectd-snmp.5"
%endif

# 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

install -d -m 0755 "%{buildroot}%{_prefix}/sbin"

%if 0%{?has_systemd}
install -D -m0644 contrib/collectd.service %{buildroot}%{_unitdir}/collectd.service
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}
%else
# init script:
%if 0%{?sles_version} == 11
install -D -m 0755 "%{SOURCE1}" "%{buildroot}%{_initrddir}/collectd"
ln -s "../..%{_initrddir}/collectd" "%{buildroot}%{_sbindir}/rccollectd"
%else
install -D -m 0755 "%{SOURCE1}" "%{buildroot}%{_initddir}/collectd"
ln -s "../..%{_initddir}/collectd" "%{buildroot}%{_sbindir}/rccollectd"
%endif
%endif

%preun
%stop_on_removal collectd

%if 0%{?has_systemd}
%service_del_preun %{name}.service
%endif

%postun
%restart_on_update collectd
%insserv_cleanup

%if 0%{?has_systemd}
%service_del_postun %{name}.service
%endif

%pre

%if 0%{?has_systemd}
%service_add_pre %{name}.service
%endif

%post
%{fillup_only collectd}

%if 0%{?has_systemd}
%service_add_post %{name}.service
%endif

%post   -n libcollectdclient1 -p /sbin/ldconfig

%postun -n libcollectdclient1 -p /sbin/ldconfig

%files -f plugins.lst
%defattr(-,root,root)
%doc AUTHORS ChangeLog COPYING README
%doc contrib
%config(noreplace) %{_sysconfdir}/collectd.conf
%dir %{_sysconfdir}/collectd
%{_bindir}/collectd-tg
%{_bindir}/collectd-nagios
%{_bindir}/collectdctl
%{_bindir}/cussh
%{_sbindir}/collectd
%{_sbindir}/collectdmon
%{_sbindir}/rccollectd
%dir %{_libdir}/collectd
%if %{with_esmtp}
%{_libdir}/collectd/notify_email.so
%{_libdir}/collectd/notify_email.la
%endif #with_esmtp
%{_libdir}/collectd/rrdcached.la
%{_libdir}/collectd/rrdcached.so
%{_libdir}/collectd/rrdtool.la
%{_libdir}/collectd/rrdtool.so

%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%{ext_man}
%doc %{_mandir}/man1/collectdctl.1%{ext_man}
%doc %{_mandir}/man1/collectdmon.1%{ext_man}
%doc %{_mandir}/man1/collectd-tg.1%{ext_man}
%doc %{_mandir}/man1/collectd-nagios.1%{ext_man}
%doc %{_mandir}/man1/cussh.1%{ext_man}
%doc %{_mandir}/man5/collectd.conf.5%{ext_man}
%doc %{_mandir}/man5/collectd-email.5%{ext_man}
%doc %{_mandir}/man5/collectd-exec.5%{ext_man}
%doc %{_mandir}/man5/collectd-perl.5%{ext_man}
%doc %{_mandir}/man5/collectd-threshold.5%{ext_man}
%doc %{_mandir}/man5/collectd-unixsock.5%{ext_man}
%doc %{_mandir}/man5/types.db.5%{ext_man}
%doc %{perl_man3dir}/Collectd::Unixsock.%{perl_man3ext}%{ext_man}
%dir %{_localstatedir}/lib/collectd
%if 0%{?has_systemd}
%{_unitdir}/collectd.service
%else
%if 0%{?sles_version} == 11
%{_initrddir}/collectd
%else
%{_initddir}/collectd
%endif
%endif

%files web
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/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) %{_sysconfdir}/apache2/conf.d/%{name}-js.conf
%dir %{_sysconfdir}/collectd
%config(noreplace) %{_sysconfdir}/collectd/collection-js.conf
/srv/www/collectd-js
%{_libexecdir}/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
%doc %{_mandir}/man1/collectd-snmp-probe-host.1%{ext_man}
%if %{with_snmp_plugin}
%{_libdir}/collectd/snmp.so
%{_libdir}/collectd/snmp.la
%doc %{_mandir}/man5/collectd-snmp.5%{ext_man}
%endif #with_snmp_plugin
%endif #snmp

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

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

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

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

%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%{ext_man}
%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}%{ext_man}

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

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

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

%changelog
* Mon Mar  2 2015 bruno@ioda-net.ch
- packaging :
  deleted source collectd.service, use now upstream version in contrib
  spec_cleaner .spec
- upstream update bugfix release 2015-02-26, Version 5.4.2
  * Build system: Numerous fixes. Thanks to Bjørn Nordbø, Jim Radford,
  KOMEDA Shinji, Lauri Tirkkonen, Manuel Luis Sanmartin Rozada, Marc
  Fournier, Rainer Müller, Yoga Ramalingam and Yves Mettier. #326,
  [#373], #653, #828
  * collectd: A use-after-free has been fixed in the "parse_value()"
  function. Thanks to Matthias Urlichs.
  * collectd: Fix carriage return sign in types_list Thanks to Marc
  Fournier and @NsLib.
  * collectd: Fix programming error in src/configfile.c. Thanks to
  Wilfried Goesgens.
  * collectd: An off-by-one error has been fixed in the
  "strstripnewline()" function. Patch by Florian Forster.
  * collectd: Use the complain mechanism to report filter chain write
  failures. Thanks to Sebastian Harl.
  * collectd: Spelling and grammar of error messages have been fixed.
  Thanks to Katelyn Perry and Tim Laszlo.
  * collectdctl: Fixed buffering issues which caused trouble on AIX and
  Solaris. Thanks to Yoga Ramalingam.
  * Documentation: Details and example about multi-instance filterchain
  targets have been added. Thanks to Marc Fournier.
  * Documentation: The "CollectStatistics" option of the rrdcached has
  been documented. Thanks to Micha Krause. #907
  * Documentation: The write_redis has been documented. Thanks to Marc
  Fournier.
  * Documentation: The "GraphiteSeparateInstances" and
  "GraphiteAlwaysAppendDS" options of the amqp have been documented.
  Thanks to Marc Fournier.
  * Documentation: Documentation of the "AutoLoadPlugin" option has been
  improved. Thanks to Florian Forster. #715
  * aggregation: "utils_vl_lookup": A race when creating user objects
  has been fixed. Thanks to Sebastian Harl. #535
  * cpu: Temperature code for MacOSX has been removed.
  Thanks to Florian Forster and Marc Fournier. #22
  * cURL, cURL-JSON, cURL-XML and Write HTTP plugins: Call
  "curl_global_init()" in the plugins' "init()" callback. Thanks to
  Jeremy Katz.
  * cURL and memcachec plugins: Fix calculation of gauge, average,
  minimum and maximum. Previously, they were calculated from the start
  of the daemon, which is not the documented behavior. Thanks to
  Florian Forster. #663
  * curl-json: A bug, which triggered when two URLs with a long common
  prefix were configured, was fixed. Thanks to Marc Fournier. #582
  * dbi: Compatibility with new versions of libdbi has been restored.
  Thanks to Florian Forster. #950
  * Exec, UnixSock plugins: Fix parsing of the "time" option of the
  "PUTNOTIF" command. Thanks to Adrian Miron. #477
  * ipmi: A conflict with the java over the "SIGUSR2" signal has been
  fixed. Thanks to Vincent Bernat. #114
  * java: Conversion from Java's time representation to collectd's
  representation has been fixed. Thanks to Manuel Luis Sanmartín
  Rozada.
  * java: Make sure "cjni_thread_detach()" is called on all paths.
  Thanks to Florian Forster.
  * LogFile and SysLog plugins: Avoid total silence in case of a
  misconfiguration. Thanks to Marc Fournier and Wilfried Goesgens.
  * network: Support for recent versions of gcrypt has been added.
  Thanks to Vincent Bernat. #632
  * network: Robustness of the client connecting behavior has been
  improved. Thanks to Florian Forster. #627
  * python: Don't create empty "meta_data_t" objects. Thanks to Florian
  Forster. #716
  * python: Fix Py list length check in "cpy_build_meta()". Thanks to
  Yoga Ramalingam.
  * python: The "interval" member was fixed to export seconds as a
  double. Thanks to Justin Burnham.
  * RRDtool and RRDCacheD plugins: A memory leak when creating RRD files
  has been fixed. Thanks to Yves Mettier. #661
  * snmp: Fix a memory leak. Thanks to Marc Fournier and Pierre-Yves
  Ritschard. #610, #804
  * statsd: Support for samplerates in timer metrics was added. Thanks
  to John Leach. #461
  * swap: Fix behavior under OpenVZ by making "cached" optional. Thanks
  to Florian Forster. #733
  * threshold: Population of the "time" field in notifications has been
  added. Thanks to Manuel Luis Sanmartín Rozada.
  * libvirt: Only gather stats for running domains. Thanks to Ruben
  Kerkhof.
  * lvm: An issue with Volume Groups (VGs) without Logical Volumes (LVs)
  has been fixed. Thanks to Jan Kundrát.
  * write_graphite: Escape characters not supported by Graphite. Thanks
  to Pierre-Yves Ritschard and Marc Fournier.
  * write_http: Make callback names context-dependent. Thanks to Marc
  Fournier. #821
  * write_redis: A formatting bug, which resulted in totally unusable
  numbers being transmitted to Redis, was fixed. Thanks to Marc
  Fournier.
  * write_riemann: Receive acknowledge message when using TCP. Thanks to
  John-John Tedro.
* Sun Jul 20 2014 p.drouand@gmail.com
- Do not provide support for systemd and sysvinit on the same system
  it's redundant
- Add a rc symlink with systemd service file for backward compatibility
* Sat Mar 15 2014 bruno@ioda-net.ch
- update to version 5.4.1, a new bugfix release Changes include:
  * AMQP plugin: Add support for RabbitMQ 0.4.x to avoid compiler warnings.
  Thanks to Sebastian Harl for implementing this.
  * Apache / Network plugins: Improved initialization order hopefully resolved
  gcrypt initialization problems.
  * Aquaero plugin: The type used to submit fan utilization was fixed. Thanks
  to Alex Deymo for the patch.
  * cgroups plugin: A small memory leak was fixed. Checking the existence of a
  mount option without a value was fixed. More permissive parsing of the
  cpuacct.stats file fixes support for some versions of Linux. Thanks to Marc
  Fournier for bug reports and patches.
  * cURL plugin: Fix <Match> blocks without an instance. Thanks to Alexander
  Golovko for reporting and Sebastian Harl for fixing this.
  * cURL-JSON plugin: Potentially invalid memory access has been sanitized.
  Thanks to Jim Radford for his patch.
  * Interface plugin: Fix behavior under FreeBSD 10: Reporting of per-address
  statistics caused duplicate updates to the same metric. Thanks to demon
  / @trtrmitya for the patch.
  * Write Graphite plugin: Use TCP to connect to Graphite by default. The
  default changed from TCP to UDP between 5.3.1 and 5.4.0, which is a
  regression. Thanks to Marc Fournier for fixing this. Reconnect behavior
  was improved. Thanks to Michael Hart for his patch.
  * ZFS ARC plugin: Collect "allocated" and "stolen" on FreeBSD only. -
- Packaging :
  * rework of patch collectd-version.patch against 5.4.1 source
  * rework collectd-pkgconfig_libnotify_add_gtk.patch against 5.4.1
  As it should not be used since 2012. (gtk-2.0) if now only applied for
    11.4 Evergreen
* Thu Sep  5 2013 mls@suse.de
- add libperl_requires, as we link against libperl and thus
  need a specific version of perl
* Fri Aug 23 2013 pascal.bleser@opensuse.org
- update to 5.4.0:
  * collectd: The "LoadPlugin" config option no longer attempts to load
    plugins twice. If more than one "LoadPlugin" statement or block is
    encountered, only the first will have any effect.
  * collectd: The "AutoLoadPlugin" option allows to automatically load
    plugins for which a configuration is found.
  * collectd: The "WriteQueueLimitHigh" and "WriteQueueLimitLow" options
    allow collectd to drop values when under stress, to avoid running out
    of memory.
  * amqp plugin: The "GraphiteSeparateInstances" and
    "GraphiteAlwaysAppendDS" options have been added.
  * aquaero plugin: This new plugin reads various metrics, e.g. fan
    speeds and temperatures, from Aquaero 5, a fan and water cooling
    control panel.
  * curl plugin: The "MeasureResponseCode" option has been added.
  * curl_json plugin: Support for UNIX domain sockets and array wildcards
    has been added.
  * curl_xml plugin: Support for long URLs has been improved.
  * cgroups plugin: This new plugin collects CPU accounting information
    for processes in a cgroup.
  * df plugin: The "ValuesAbsolute" and "ValuesPercentage" options have
    been added.
  * exec plugin: Do UID / GID lookups before forking. This should prevent
    a race condition in the NSS library.
  * lvm plugin: This new plugin collects size information from Linux'
    Logical Volume Manager (LVM).
  * memcached plugin: Support for increment and decrement counts has been
    added.
  * mic plugin: This new plugin collects CPU and memory usage, power
    consumption and temperatures of Intel's Many-Integrated-Core (MIC)
    architecture, such as Xeon Phi cards.
  * netlink plugin: This plugin has been converted to use the supported
    "libmnl" library.
  * nginx plugin: Collection of accepted and handled connections has been
    added.
  * sigrok plugin: This new plugin collects metrics from sigrok, a signal
    processing framework reading various hardware devices, from light
    meters to spectrum analyzers.
  * statsd plugin: This new plugin listens to a UDP socket and reads
    metrics in the StatsD format.
  * varnish plugin: Many additional metrics have been added.
  * write_graphite plugin: Support for "UDP" has been added.
  * write_riemann plugin: The "TTLFactor" option has been added.
- changes from 5.3.1:
  * Configuration: Fix error handling: Errors in included files were
    ignored, causing configuration mistakes to go unnoticed.
  * dns plugin: Don't abort when PCAP returns an error.
  * modbus plugin: The reconnection strategy was improved, fixing a
    segfault in the libmodbud library.
  * mysql plugin: The notification about a newly running MySQL slave
    thread has been fixed.
  * snmp plugin: A build issue has been fixed (C99 mixed declaration).
  * threshold plugin: Handling of the "Interesting" configuration option
    has been fixed.
  * write_riemann plugin: A memory leak has been fixed.
- dropped collectd-fix-warnings.patch, as it only fixed warnings in the
  netlink plugin, which has been rewritten
- disable dns plugin on SLE_11_SP2, libpcap too old there
* Fri Aug 23 2013 pascal.bleser@opensuse.org
- update to 5.3.0:
  * collectd: The "Include" statements can now be limited to include
    only matching files in a directory
  * collectd: Dispatches / writes are now handled by a thread pool. This
    improves reliability and throughput for instances configured to act
    as a "server"
  * aggregation plugin: Selection of value lists is now possible using
    regular expressions. Parts of the identifier of the resulting metric
    can now be set via the configuration file.
  * apcups plugin: The "ReportSeconds" option has been implemented.
  * curl* plugins: Support for POST requests and custom request headers
    has been added
  * curl_xml plugin: Support for XML namespaces has been added.
  * dbi plugin: Support for numeric options has been added. The
    "Host" option has been added.
  * disk plugin: Support for systems with >256 has been fixed
  * libvirt plugin: Support for memory allocation has been added.
  * netapp plugin: Support for "SnapVault", "VFiler" and deduplication /
    compression and quota metrics.
  * postgresql plugin: The reconnection logic has been improved.
  * rrdtool, rrdcached plugins: The "CreateFilesAsync" option has been
    implemented. When enabled, new RRD files will be created
    asynchronously, which improved throughput of "server" instances.
  * tail_csv plugin: This new plugins allows to read metrics from CSV
    files, such as Snort's statistics file.
  * write_mongodb plugin: Authentication options have been added.
  * write_riemann plugin: This new plugin allows sending metrics to
    Riemann, a stream processing and alerting tool.
- dropped own copy of iproute2, builds properly with the one provided
  by the system
* Thu Aug  1 2013 tchvatal@suse.com
- Tarball was actually broken, rather stick with no download url,
  because upstream provides only 3.0 and newer for download now.
* Thu Aug  1 2013 tchvatal@suse.com
- Update the tarball so download_files serivce is silent.
* Fri Jun 28 2013 coolo@suse.com
- fix more of spamassasin's doc
* Mon Aug 27 2012 crrodriguez@opensuse.org
- Add systemd rules.
* Mon Jul 30 2012 chris@computersalat.de
- fix deps for iptables
  * iptables-devel works for > 1020
  * > 12.1 'split iptables-devel into libiptc-devel and libxtables-devel'
* Mon Jun 11 2012 coolo@suse.com
- require the right perl version
* Mon Apr 23 2012 aj@suse.de
- Drop collectd-fix_new_yajl_lib.patch and collect-libnotify_070.patch
  both are handled in the new version.
* Tue Apr 17 2012 pascal.bleser@opensuse.org
- changed copyright from GPL-2.0+ to GPL-2.0, see bnc#757527:
  https://bugzilla.novell.com/show_bug.cgi?id=757527
- added myself to the copyright header in the spec file, have been maintaining
  this spec file since 2005 ;)
* Mon Apr 16 2012 aj@suse.de
- Remove modbus support since modbus is not in openSUSE:Factory.
- Fix buildrequires: it's libxtables-devel for 12.2.
* Tue Apr  3 2012 pascal.bleser@opensuse.org
- update to 5.0.4
* Sun Feb 19 2012 pascal.bleser@opensuse.org
- add modbus support
* Sun Feb 19 2012 pascal.bleser@opensuse.org
- fix apache configuration for collectd-js, thanks to Bruno Friedmann
  <tigerfoot@opensuse.org> for reporting
* Sun Feb 19 2012 pascal.bleser@opensuse.org
- update to 5.0.3: too many changes to list, please read ChangeLog in the main
  package
* Thu Jan 12 2012 coolo@suse.com
- change license to be in spdx.org format
* Mon Oct 17 2011 schubi@suse.com
- fixed build ( new yajl lib API )
* Fri Sep 16 2011 coolo@suse.com
- adding patch from jengelh to fix build
* Tue Aug  2 2011 stefan.bruens@rwth-aachen.de
- notify-desktop: fix compatibility with libnotify >= 0.7.0
- iptables plugin: use iptables library
- ipvs plugin: disable for >= 12.1, as build fails currently
* Mon Aug  1 2011 stefan.bruens@rwth-aachen.de
- df plugin: skip duplicate entries, fixes "uc_update: Value too old"
  error
* Sat Apr 16 2011 pascal.bleser@opensuse.org
- downgrading in-tree iproute2 from 2.6.38 to 2.6.37, as 2.6.38 causes an
  internal error in gcc
* Fri Apr 15 2011 pascal.bleser@opensuse.org
- add pinba plugin (through protobuf-c support)
- add rpmlintrc file to suppress false positives
- add collectd-pkgconfig_libnotify_add_gtk.patch to fix building libnotify
  support on >= 11.4
* Wed Apr 13 2011 pascal.bleser@opensuse.org
- bump in-tree iproute2 to 2.6.38
- update to 4.10.3:
  * collectd: Threshold subsection: Handling of NAN values in the percentage
    calculation has been fixed
  * collectd, java plugin, ntpd plugin: Several diagnostic messages have been
    improved
  * curl_json plugin: Handling of arrays has been fixed.
  * libvirt plugin: A bug in reading the virtual CPU statistics has been fixed
  * processes plugin: Potentially erroneous behavior has been fixed in an error
    handling case
  * python plugin: Fix dispatching of values from Python scripts to collectd
- changes from 4.10.2:
  * collectd: If including one configuration file fails, continue with the rest
    of the configuration if possible
  * collectd: Fix a bug in the read function scheduling. In rare cases read
    functions may not have been called as often as requested
  * collectd: A left-over hard-coded 2 has been replaced by the configurable
    timeout value
  * curl, memcachec, tail plugins: Fix handling of "DERIVE" data sources.
    Matching the end of a string has been improved
  * curl_json plugin: Fix a problem when parsing 64bit integers. Reading JSON
    data from non-HTTP sources has been fixed
  * network plugin: Be less verbose about unchecked signatures, in order to
    prevent spamming the logs
  * notify_email plugin: Concurrency problems have been fixed
  * python plugin: Set "sys.argv", since many scripts don't expect that it may
    not be set
  * rrdtool, rrdcached plugin: Fix a too strict assertion when creating RRD
    files
  * swap plugin: A bug which lead to incorrect I/O values has been fixed
  * value match: A minor memory leak has been fixed
* 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
  * 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
  * 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
  * 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