SHA256
1
0
forked from pool/collectd
collectd/collectd.spec
Lars Vogdt 58038c9325 Accepting request 498235 from home:jengelh:branches:server:monitoring
- Trim filler wording from descriptions, resolve orthographic
  errors, and shorten a find–delete call.

OBS-URL: https://build.opensuse.org/request/show/498235
OBS-URL: https://build.opensuse.org/package/show/server:monitoring/collectd?expand=0&rev=143
2017-06-21 10:00:54 +00:00

1046 lines
29 KiB
RPMSpec

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