LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File collectd.spec of Package collectd (Project server:monitoring)

#
# spec file for package collectd
#
# Copyright (c) 2017 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/
#


%bcond_with modbus

%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 1
%define ipvs_plugin ipvs
%define plugins apache apcups battery %{expand:%{bind_plugin}} cgroups chrony curl %{expand:%{curl_json_plugin}} %{expand:%{curl_xml_plugin}} conntrack contextswitch cpu cpufreq cpusleep csv df disk %{expand:%{dns_plugin}} email entropy exec filecount fscache hddtemp hugepages 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 notify_nagios ntpd olsrd openvpn perl ping protocols powerdns processes rrdtool %{expand:%{sensors_plugin}} 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}} %{expand:%{rrdcached_plugin}} aggregation ethstat md numa tail_csv write_graphite ceph drbd fhcount ipc log_logstash %{expand:%{turbostat_plugin}} write_log write_sensu write_tsdb zfs_arc zookeeper
%ifnarch s390 s390x
%define sensors    1
%define sensors_plugin sensors
%else
%define sensors    0
%define sensors_plugin %{nil}
%endif
%ifarch %ix86 x86_64
%define turbostat_plugin turbostat
%else
%define turbostat_plugin %{nil}
%endif 

%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}
%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
%define iptables 1
%define iptables_plugin iptables
%else
%define ipmi   0
%define ascent 0
%define ascent_plugin %{nil}
%define iptables 0
%define iptables_plugin %{nil}
%endif
%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} >= 1000
%define yajl 1
%define curl_json_plugin curl_json
%define curl_xml_plugin  curl_xml
%define with_snmp_plugin 1
%define with_pgsql 1
%define with_mysql 1
%define with_bind  1
%define bind_plugin bind
%define protobuf 1
%define pinba_plugin pinba
%else
%define yajl 0
%define curl_json_plugin %{nil}
%define curl_xml_plugin  %{nil}
%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.7.1
Release:        0
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
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
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

# 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:  gpsd-devel
BuildRequires:  intltool
# for ipvs and madwifi:
#BuildRequires:  kernel-source
BuildRequires:  libart_lgpl-devel
BuildRequires:  libatasmart-devel
BuildRequires:  libevent-devel
BuildRequires:  libmnl-devel
BuildRequires:  libnetlink-devel
BuildRequires:  liboping-devel
BuildRequires:  libpcap
BuildRequires:  libpng-devel
BuildRequires:  libstatgrab-devel
BuildRequires:  libtool
BuildRequires:  libudev-devel
BuildRequires:  libxml2-devel
BuildRequires:  linux-kernel-headers
BuildRequires:  lua-devel
BuildRequires:  make
BuildRequires:  perl
BuildRequires:  pkgconfig
BuildRequires:  python-devel
BuildRequires:  rrdtool
BuildRequires:  xfsprogs-devel
BuildRequires:  zlib-devel
Requires:       rrdtool
%if %{sensors}
BuildRequires:  sensors
Requires:       sensors
%endif
# 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
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 %{with modbus}
BuildRequires:  libmodbus-devel
%endif
%if %{protobuf}
BuildRequires:  protobuf-c
%endif
%if 0%{?suse_version} < 1220
%if 0%{?suse_version} > 1020
BuildRequires:  iptables-devel
%endif
%else
BuildRequires:  libiptc-devel
BuildRequires:  libxtables-devel
%endif

%description
collectd is a daemon (written in C) that reads various system
statistics and updates RRD files. Statistics are very fine grained
with an update interval of 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 delivery 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 %{with modbus}
%package plugin-modbus
Summary:        ModBus Plugin for %{name}
Group:          System/Monitoring
Requires:       %{name} = %{version}-%{release}

%description plugin-modbus
Optional %{name} plugin to collect data using ModBus protocol.
%endif #modbus

%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 plugin-smart
Summary:        SMART Monitoring Plugin for %{name}
Group:          System/Monitoring
Requires:       %{name} = %{version}-%{release}

%description plugin-smart
Optional %{name} plugin to monitor Self-Monitoring, Analysis and Reporting
Technology (SMART) information from disk drives.

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

%description plugin-lua
Optional %{name} Lua API in order to write %{name} plugins in Lua.

%package plugin-gps
Summary:        gpsd monitoring plugin for %{name}
Group:          System/Monitoring
Requires:       %{name} = %{version}-%{release}

%description plugin-gps
Optional %{name} plugin to monitor gpsd.

%package plugins-all
Summary:        All Monitoring Plugins for %{name}
Group:          System/Monitoring
Requires:       %{name} = %{version}-%{release}
Requires:       %{name}-plugin-gps = %{version}-%{release}
Requires:       %{name}-plugin-lua = %{version}-%{release}
Requires:       %{name}-plugin-python = %{version}-%{release}
Requires:       %{name}-plugin-smart = %{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 %{with modbus}
Requires:       %{name}-plugin-modbus = %{version}-%{release}
%endif #modbus
%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}"
%patch7
%patch9 -p1
%patch10
%patch11
%patch18
%patch19
%patch20
%patch21
%patch23 -p1
%if 0%{?suse_version} <= 1140 && !0%{?sles_version}
%patch24 -p1
%endif

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 \
    --with-rrdtool \
    --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 %{with modbus}
    --enable-modbus \
%else
    --disable-modbus \
%endif #modbus
%if 0%{?suse_version} < 930
    --disable-mysql \
%endif
%ifos linux
    --enable-serial
%else
    --disable-serial
%endif #os linux

make %{?_smp_flags} V=1 \
%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' -delete

%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/systemd.collectd.service %{buildroot}%{_unitdir}/collectd.service
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}
%else
# init script:
install -D -m 0755 "%{SOURCE1}" "%{buildroot}%{_initddir}/collectd"
ln -s "../..%{_initddir}/collectd" "%{buildroot}%{_sbindir}/rccollectd"
%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
%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
%{_initddir}/collectd
%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/virt.so
%{_libdir}/collectd/virt.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

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

%files plugin-smart
%defattr(-,root,root)
%{_libdir}/collectd/smart.so
%{_libdir}/collectd/smart.la

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

%files plugin-gps
%defattr(-,root,root)
%{_libdir}/collectd/gps.so
%{_libdir}/collectd/gps.la

%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