# # spec file for package collectd # # Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2005-2013 Pascal Bleser # # 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 <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