# - enable the EPEL repository (http://dl.fedoraproject.org/pub/epel/) in the
# configuration files for your target systems (/etc/mock/*.cfg).
#
-# - copy this file in your ~/rpmbuild/SPECS/ directory
-#
# - fetch the desired collectd release file from https://collectd.org/files/
-# and save it in your ~/rpmbuild/SOURCES/ directory
+# and save it in your ~/rpmbuild/SOURCES/ directory (or build your own out of
+# the git repository: ./build.sh && ./configure && make-dist-bz2)
+#
+# - copy this file in your ~/rpmbuild/SPECS/ directory. Make sure the
+# "Version:" tag matches the version from the tarball.
#
# - build the SRPM first:
# mock -r centos-6-x86_64 --buildsrpm --spec ~/rpmbuild/SPECS/collectd.spec \
#
%global _hardened_build 1
+%{?perl_default_filter}
# plugins only buildable on RHEL6
# (NB: %{elN} macro is not available on RHEL < 6)
%{?el6:%global _has_recent_libganglia 1}
%{?el6:%global _has_working_libiptc 1}
%{?el6:%global _has_ip_vs_h 1}
+%{?el6:%global _has_lvm2app_h 1}
%{?el6:%global _has_libmodbus 1}
%{?el6:%global _has_iproute 1}
%{?el7:%global _has_recent_sockios_h 1}
%{?el7:%global _has_working_libiptc 1}
%{?el7:%global _has_ip_vs_h 1}
+%{?el7:%global _has_lvm2app_h 1}
%{?el7:%global _has_recent_librrd 1}
%{?el7:%global _has_varnish4 1}
-%{?el7:%global _has_broken_libmemcached 1}
%{?el7:%global _has_iproute 1}
+%{?el7:%global _has_libmodbus 1}
+%{?el7:%global _has_xmms 1}
# plugins enabled by default
%define with_aggregation 0%{!?_without_aggregation:1}
%define with_ascent 0%{!?_without_ascent:1}
%define with_battery 0%{!?_without_battery:1}
%define with_bind 0%{!?_without_bind:1}
+%define with_cgroups 0%{!?_without_cgroups:1}
%define with_conntrack 0%{!?_without_conntrack:1}
%define with_contextswitch 0%{!?_without_contextswitch:1}
%define with_cpu 0%{!?_without_cpu:1}
%define with_libvirt 0%{!?_without_libvirt:1}
%define with_load 0%{!?_without_load:1}
%define with_logfile 0%{!?_without_logfile:1}
+%define with_lvm 0%{!?_without_lvm:0%{?_has_lvm2app_h}}
%define with_madwifi 0%{!?_without_madwifi:1}
%define with_mbmon 0%{!?_without_mbmon:1}
%define with_md 0%{!?_without_md:1}
-%define with_memcachec 0%{!?_without_memcachec:0%{!?_has_broken_libmemcached:1}}
+%define with_memcachec 0%{!?_without_memcachec:1}
%define with_memcached 0%{!?_without_memcached:1}
%define with_memory 0%{!?_without_memory:1}
%define with_multimeter 0%{!?_without_multimeter:1}
%define with_sensors 0%{!?_without_sensors:1}
%define with_serial 0%{!?_without_serial:1}
%define with_snmp 0%{!?_without_snmp:1}
+%define with_statsd 0%{!?_without_statsd:1}
%define with_swap 0%{!?_without_swap:1}
%define with_syslog 0%{!?_without_syslog:1}
%define with_table 0%{!?_without_table:1}
%define with_write_graphite 0%{!?_without_write_graphite:1}
%define with_write_http 0%{!?_without_write_http:1}
%define with_write_riemann 0%{!?_without_write_riemann:1}
+%define with_xmms 0%{!?_without_xmms:0%{?_has_xmms}}
# Plugins not built by default because of dependencies on libraries not
# available in RHEL or EPEL:
# plugin apple_sensors disabled, requires a Mac
%define with_apple_sensors 0%{!?_without_apple_sensors:0}
+# plugin aquaero disabled, requires a libaquaero5
+%define with_aquaero 0%{!?_without_aquaero:0}
# plugin lpar disabled, requires AIX
%define with_lpar 0%{!?_without_lpar:0}
+# plugin mic disabled, requires Mic
+%define with_mic 0%{!?_without_mic:0}
# plugin netapp disabled, requires libnetapp
%define with_netapp 0%{!?_without_netapp:0}
# plugin onewire disabled, requires libowfs
%define with_redis 0%{!?_without_redis:0}
# plugin routeros disabled, requires librouteros
%define with_routeros 0%{!?_without_routeros:0}
+# plugin sigrok disabled, requires libsigrok
+%define with_sigrok 0%{!?_without_sigrok:0}
# plugin tape disabled, requires libkstat
%define with_tape 0%{!?_without_tape:0}
# plugin tokyotyrant disabled, requires tcrdb.h
%define with_write_mongodb 0%{!?_without_write_mongodb:0}
# plugin write_redis disabled, requires credis
%define with_write_redis 0%{!?_without_write_redis:0}
-# plugin xmms disabled, requires xmms
-%define with_xmms 0%{!?_without_xmms:0}
# plugin zfs_arc disabled, requires FreeBSD/Solaris
%define with_zfs_arc 0%{!?_without_zfs_arc:0}
-Summary: Statistics collection daemon for filling RRD files
+Summary: statistics collection and monitoring daemon
Name: collectd
-Version: 5.3.1
+Version: 5.4.2
Release: 1%{?dist}
URL: http://collectd.org
Source: http://collectd.org/files/%{name}-%{version}.tar.bz2
This plugin collects data provided by Apache's `mod_status'.
%endif
+%if %{with_aquaero}
+%package aquaero
+Summary: aquaero plugin for collectd
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+%description aquaero
+Various sensors in the Aquaero 5 watercooling board made by Aquacomputer.
+%endif
+
%if %{with_ascent}
%package ascent
Summary: Ascent plugin for collectd
This plugin collects information from virtualized guests.
%endif
+%if %{with_lvm}
+%package lvm
+Summary: LVM plugin for collectd
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+BuildRequires: lvm2-devel
+%description lvm
+This plugin collects size of “Logical Volumes” (LV) and “Volume Groups” (VG)
+of Linux' “Logical Volume Manager” (LVM).
+%endif
+
%if %{with_memcachec}
%package memcachec
Summary: Memcachec plugin for collectd
similar job, without requiring the installation of libmemcached.
%endif
+%if %{with_mic}
+%package mic
+Summary: mic plugin for collectd
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+%description mic
+The mic plugin collects CPU usage, memory usage, temperatures and power
+consumption from Intel Many Integrated Core (MIC) CPUs.
+%endif
+
%if %{with_modbus}
%package modbus
Summary: modbus plugin for collectd
Summary: netlink plugin for collectd
Group: System Environment/Daemons
Requires: %{name}%{?_isa} = %{version}-%{release}
-BuildRequires: iproute-devel
+BuildRequires: libmnl-devel, iproute-devel
%description netlink
The netlink plugin collects detailed network interface and routing statistics.
%endif
This plugin for collectd provides querying of sensors supported by lm_sensors.
%endif
+%if %{with_sigrok}
+%package sigrok
+Summary: sigrok plugin for collectd
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+%description sigrok
+Uses libsigrok as a backend, allowing any sigrok-supported device to have its
+measurements fed to collectd. This includes multimeters, sound level meters,
+thermometers, and much more.
+%endif
+
%if %{with_snmp}
%package snmp
Summary: SNMP plugin for collectd
The riemann plugin submits values to Riemann, an event stream processor.
%endif
+%if %{with_xmms}
+%package xmms
+Summary: XMMS plugin for collectd
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+BuildRequires: xmms-devel
+%description xmms
+The xmms plugin collects information from the XMMS music player.
+%endif
+
%package collection3
Summary: Web-based viewer for collectd
Group: System Environment/Daemons
%define _with_apple_sensors --disable-apple_sensors
%endif
+%if %{with_aquaero}
+%define _with_aquaero --enable-aquaero
+%else
+%define _with_aquaero --disable-aquaero
+%endif
+
%if %{with_ascent}
%define _with_ascent --enable-ascent
%else
%define _with_bind --disable-bind
%endif
+%if %{with_cgroups}
+%define _with_cgroups --enable-cgroups
+%else
+%define _with_cgroups --disable-cgroups
+%endif
+
%if %{with_conntrack}
%define _with_conntrack --enable-conntrack
%else
%if %{with_dbi}
%define _with_dbi --enable-dbi
%else
-%define _with_dbi --disable-dbi --without-libdbi
+%define _with_dbi --disable-dbi
%endif
%if %{with_df}
%define _with_lpar --disable-lpar
%endif
+%if %{with_lvm}
+%define _with_lvm --enable-lvm
+%else
+%define _with_lvm --disable-lvm
+%endif
+
%if %{with_madwifi}
%define _with_madwifi --enable-madwifi
%else
%define _with_memory --disable-memory
%endif
+%if %{with_mic}
+%define _with_mic --enable-mic
+%else
+%define _with_mic --disable-mic
+%endif
+
%if %{with_modbus}
%define _with_modbus --enable-modbus
%else
%if %{with_notify_email}
%define _with_notify_email --enable-notify_email
%else
-%define _with_notify_email --disable-notify_email --without-libesmpt
+%define _with_notify_email --disable-notify_email
%endif
%if %{with_ntpd}
%if %{with_perl}
%define _with_perl --enable-perl --with-perl-bindings="INSTALLDIRS=vendor"
%else
-%define _with_perl --disable-perl --without-libperl
+%define _with_perl --disable-perl
%endif
%if %{with_pf}
%define _with_serial --disable-serial
%endif
+%if %{with_sigrok}
+%define _with_sigrok --enable-sigrok
+%else
+%define _with_sigrok --disable-sigrok
+%endif
+
%if %{with_snmp}
%define _with_snmp --enable-snmp
%else
%define _with_snmp --disable-snmp
%endif
+%if %{with_statsd}
+%define _with_statsd --enable-statsd
+%else
+%define _with_statsd --disable-statsd
+%endif
+
%if %{with_swap}
%define _with_swap --enable-swap
%else
%if %{with_write_mongodb}
%define _with_write_mongodb --enable-write_mongodb
%else
-%define _with_write_mongodb --disable-write_mongodb --without-libmongoc
+%define _with_write_mongodb --disable-write_mongodb
%endif
%if %{with_write_redis}
%define _with_write_redis --enable-write_redis
%else
-%define _with_write_redis --disable-write_redis --without-libcredis
+%define _with_write_redis --disable-write_redis
%endif
%if %{with_write_riemann}
%{?_with_apache} \
%{?_with_apcups} \
%{?_with_apple_sensors} \
+ %{?_with_aquaero} \
%{?_with_ascent} \
%{?_with_battery} \
%{?_with_bind} \
+ %{?_with_cgroups} \
%{?_with_conntrack} \
%{?_with_contextswitch} \
%{?_with_cpu} \
%{?_with_java} \
%{?_with_libvirt} \
%{?_with_lpar} \
+ %{?_with_lvm} \
%{?_with_memcachec} \
+ %{?_with_mic} \
%{?_with_modbus} \
%{?_with_multimeter} \
%{?_with_mysql} \
%{?_with_rrdcached} \
%{?_with_rrdtool} \
%{?_with_sensors} \
+ %{?_with_sigrok} \
%{?_with_snmp} \
%{?_with_tape} \
%{?_with_tokyotyrant} \
%{?_with_processes} \
%{?_with_protocols} \
%{?_with_serial} \
+ %{?_with_statsd} \
%{?_with_swap} \
%{?_with_syslog} \
%{?_with_table} \
%{__mkdir} -p %{buildroot}%{_localstatedir}/www
%{__mkdir} -p %{buildroot}/%{_sysconfdir}/httpd/conf.d
-%{__cp} -a contrib/collection3 %{buildroot}%{_localstatedir}/www
-%{__cp} -a contrib/redhat/collection3.conf %{buildroot}/%{_sysconfdir}/httpd/conf.d/
+%{__mv} contrib/collection3 %{buildroot}%{_localstatedir}/www
+%{__mv} contrib/redhat/collection3.conf %{buildroot}/%{_sysconfdir}/httpd/conf.d/
-%{__cp} -a contrib/php-collection %{buildroot}%{_localstatedir}/www
-%{__cp} -a contrib/redhat/php-collection.conf %{buildroot}/%{_sysconfdir}/httpd/conf.d/
+%{__mv} contrib/php-collection %{buildroot}%{_localstatedir}/www
+%{__mv} contrib/redhat/php-collection.conf %{buildroot}/%{_sysconfdir}/httpd/conf.d/
### Clean up docs
find contrib/ -type f -exec %{__chmod} a-x {} \;
# *.la files shouldn't be distributed.
rm -f %{buildroot}/%{_libdir}/{collectd/,}*.la
-# Move the Perl examples to a separate directory.
-mkdir perl-examples
-find contrib -name '*.p[lm]' -exec mv {} perl-examples/ \;
-
# Remove Perl hidden .packlist files.
find %{buildroot} -type f -name .packlist -delete
# Remove Perl temporary file perllocal.pod
find %{buildroot} -type f -name perllocal.pod -delete
%if ! %{with_java}
+rm -f %{buildroot}%{_datadir}/collectd/java/collectd-api.jar
+rm -f %{buildroot}%{_datadir}/collectd/java/generic-jmx.jar
rm -f %{buildroot}%{_mandir}/man5/collectd-java.5*
%endif
%if ! %{with_perl}
rm -f %{buildroot}%{_mandir}/man5/collectd-perl.5*
rm -f %{buildroot}%{_mandir}/man3/Collectd::Unixsock.3pm*
-rm -fr perl-examples/
rm -fr %{buildroot}/usr/lib/perl5/
%endif
+%if ! %{with_postgresql}
+rm -f %{buildroot}%{_datadir}/collectd/postgresql_default.conf
+%endif
+
%if ! %{with_python}
rm -f %{buildroot}%{_mandir}/man5/collectd-python.5*
%endif
%{_bindir}/collectd-tg
%{_bindir}/collectdctl
%{_sbindir}/collectdmon
-%{_datadir}/collectd/
+%{_datadir}/collectd/types.db
%{_sharedstatedir}/collectd
%{_mandir}/man1/collectd-nagios.1*
%{_mandir}/man1/collectd.1*
%if %{with_battery}
%{_libdir}/%{name}/battery.so
%endif
+%if %{with_cgroups}
+%{_libdir}/%{name}/cgroups.so
+%endif
%if %{with_conntrack}
%{_libdir}/%{name}/conntrack.so
%endif
%if %{with_serial}
%{_libdir}/%{name}/serial.so
%endif
+%if %{with_statsd}
+%{_libdir}/%{name}/statsd.so
+%endif
%if %{with_swap}
%{_libdir}/%{name}/swap.so
%endif
%if %{with_thermal}
%{_libdir}/%{name}/thermal.so
%endif
-%if %{with_load}
+%if %{with_threshold}
%{_libdir}/%{name}/threshold.so
%endif
%if %{with_unixsock}
%{_includedir}/collectd/network_buffer.h
%{_includedir}/collectd/lcc_features.h
%{_libdir}/pkgconfig/libcollectdclient.pc
+%{_libdir}/libcollectdclient.so
%files -n libcollectdclient
-%{_libdir}/libcollectdclient.so
%{_libdir}/libcollectdclient.so.*
%if %{with_amqp}
%{_libdir}/%{name}/apache.so
%endif
+%if %{with_aquaero}
+%files aquaero
+%{_libdir}/%{name}/aquaero.so
+%endif
+
%if %{with_ascent}
%files ascent
%{_libdir}/%{name}/ascent.so
%if %{with_java}
%files java
-%{_prefix}/share/collectd/java/collectd-api.jar
-%{_prefix}/share/collectd/java/generic-jmx.jar
+%{_datadir}/collectd/java/collectd-api.jar
+%{_datadir}/collectd/java/generic-jmx.jar
%{_libdir}/%{name}/java.so
%{_mandir}/man5/collectd-java.5*
%endif
%{_libdir}/%{name}/libvirt.so
%endif
+%if %{with_lvm}
+%files lvm
+%{_libdir}/%{name}/lvm.so
+%endif
+
%if %{with_memcachec}
%files memcachec
%{_libdir}/%{name}/memcachec.so
%endif
+%if %{with_mic}
+%files mic
+%{_libdir}/%{name}/mic.so
+%endif
+
%if %{with_modbus}
%files modbus
%{_libdir}/%{name}/modbus.so
%if %{with_perl}
%files perl
-%doc perl-examples/*
%{perl_vendorlib}/Collectd.pm
%{perl_vendorlib}/Collectd/
%{_mandir}/man3/Collectd::Unixsock.3pm*
%if %{with_postgresql}
%files postgresql
-%{_prefix}/share/collectd/postgresql_default.conf
+%{_datadir}/collectd/postgresql_default.conf
%{_libdir}/%{name}/postgresql.so
%endif
%{_libdir}/%{name}/sensors.so
%endif
+%if %{with_sigrok}
+%files sigrok
+%{_libdir}/%{name}/sigrok.so
+%endif
+
%if %{with_snmp}
%files snmp
%{_mandir}/man5/collectd-snmp.5*
%{_libdir}/%{name}/write_riemann.so
%endif
+%if %{with_xmms}
+%files xmms
+%{_libdir}/%{name}/xmms.so
+%endif
+
%files collection3
%{_localstatedir}/www/collection3
%{_sysconfdir}/httpd/conf.d/collection3.conf
%doc contrib/
%changelog
+* Mon Aug 19 2013 Marc Fournier <marc.fournier@camptocamp.com> 5.4.2-1
+- New upstream version
+- Build netlink plugin by default
+- Enable cgroups, lvm and statsd plugins
+- Enable (but don't build by default) mic, aquaero and sigrok plugins
+- Enable modbus, memcachec and xmms plugins on RHEL7
+
* Tue Aug 06 2013 Marc Fournier <marc.fournier@camptocamp.com> 5.3.1-1
- New upstream version
- Added RHEL5 support:
- Enabled netlink plugin on RHEL6 and RHEL7
- Allow perl plugin to build on RHEL5
- Add support for RHEL7
+- Misc perl-related improvements:
+ * prevent rpmbuild from extracting dependencies from files in /usr/share/doc
+ * don't package collection3 and php-collection twice
+ * keep perl scripts from contrib/ in collectd-contrib
* Wed Apr 10 2013 Marc Fournier <marc.fournier@camptocamp.com> 5.3.0-1
- New upstream version