X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=contrib%2Fredhat%2Fcollectd.spec;h=406ea48b05d5f16bb60f2db4d5e3353c99d86875;hb=dd8429c16bc57f949abb2537e003b76ad88b6f90;hp=19305924dc97f430dab7acd4c87483ee7bfc957f;hpb=2421812ea47269c50920414a6e3c32448800120f;p=collectd.git diff --git a/contrib/redhat/collectd.spec b/contrib/redhat/collectd.spec index 19305924..406ea48b 100644 --- a/contrib/redhat/collectd.spec +++ b/contrib/redhat/collectd.spec @@ -14,10 +14,12 @@ # - 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 \ @@ -34,6 +36,7 @@ # %global _hardened_build 1 +%{?perl_default_filter} # plugins only buildable on RHEL6 # (NB: %{elN} macro is not available on RHEL < 6) @@ -47,6 +50,8 @@ %{?el6:%global _has_libmodbus 1} %{?el6:%global _has_libudev 1} %{?el6:%global _has_iproute 1} +%{?el6:%global _has_atasmart 1} +%{?el6:%global _has_hiredis 1} %{?el7:%global _has_libyajl 1} %{?el7:%global _has_recent_libpcap 1} @@ -59,6 +64,8 @@ %{?el7:%global _has_varnish4 1} %{?el7:%global _has_broken_libmemcached 1} %{?el7:%global _has_iproute 1} +%{?el7:%global _has_atasmart 1} +%{?el7:%global _has_hiredis 1} # plugins enabled by default %define with_aggregation 0%{!?_without_aggregation:1} @@ -120,6 +127,7 @@ %define with_numa 0%{!?_without_numa:1} %define with_nut 0%{!?_without_nut:1} %define with_olsrd 0%{!?_without_olsrd:1} +%define with_openldap 0%{!?_without_openldap:1} %define with_openvpn 0%{!?_without_openvpn:1} %define with_perl 0%{!?_without_perl:1} %define with_pinba 0%{!?_without_pinba:1} @@ -129,10 +137,12 @@ %define with_processes 0%{!?_without_processes:1} %define with_protocols 0%{!?_without_protocols:1} %define with_python 0%{!?_without_python:1} +%define with_redis 0%{!?_without_redis:0%{?_has_hiredis}} %define with_rrdcached 0%{!?_without_rrdcached:0%{?_has_recent_librrd}} %define with_rrdtool 0%{!?_without_rrdtool:1} %define with_sensors 0%{!?_without_sensors:1} %define with_serial 0%{!?_without_serial:1} +%define with_smart 0%{!?_without_smart:0%{?_has_atasmart}} %define with_snmp 0%{!?_without_snmp:1} %define with_statsd 0%{!?_without_statsd:1} %define with_swap 0%{!?_without_swap:1} @@ -155,9 +165,12 @@ %define with_wireless 0%{!?_without_wireless:1} %define with_write_graphite 0%{!?_without_write_graphite:1} %define with_write_http 0%{!?_without_write_http:1} +%define with_write_log 0%{!?_without_write_log:1} +%define with_write_redis 0%{!?_without_write_redis:0%{?_has_hiredis}} %define with_write_riemann 0%{!?_without_write_riemann:1} %define with_write_tsdb 0%{!?_without_write_tsdb:1} %define with_zfs_arc 0%{!?_without_zfs_arc:1} +%define with_zookeeper 0%{!?_without_zookeeper:1} # Plugins not built by default because of dependencies on libraries not # available in RHEL or EPEL: @@ -180,8 +193,6 @@ %define with_oracle 0%{!?_without_oracle:0} # plugin oracle disabled, requires BSD %define with_pf 0%{!?_without_pf:0} -# plugin redis disabled, requires credis -%define with_redis 0%{!?_without_redis:0} # plugin routeros disabled, requires librouteros %define with_routeros 0%{!?_without_routeros:0} # plugin sigrok disabled, requires libsigrok @@ -194,8 +205,6 @@ %define with_write_kafka 0%{!?_without_write_kafka:0} # plugin write_mongodb disabled, requires libmongoc %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} @@ -208,12 +217,19 @@ Source: http://collectd.org/files/%{name}-%{version}.tar.bz2 License: GPLv2 Group: System Environment/Daemons BuildRoot: %{_tmppath}/%{name}-%{version}-root -BuildRequires: libgcrypt-devel, kernel-headers +BuildRequires: libgcrypt-devel, kernel-headers, libtool-ltdl-devel Vendor: collectd development team +%if 0%{?el7:1} +Requires(pre): initscripts +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +%else Requires(post): chkconfig Requires(preun): chkconfig, initscripts Requires(postun): initscripts +%endif %description collectd is a small daemon which collects system information periodically and @@ -533,17 +549,27 @@ BuildRequires: nut-devel This plugin for collectd provides Network UPS Tools support. %endif +%if %{with_openldap} +%package openldap +Summary: Openldap plugin for collectd +Group: System Environment/Daemons +Requires: %{name}%{?_isa} = %{version}-%{release} +BuildRequires: openldap-devel +%description openldap +This plugin reads monitoring information from OpenLDAP's cn=Monitor subtree. +%endif + %if %{with_perl} %package perl Summary: Perl plugin for collectd Group: System Environment/Daemons Requires: %{name}%{?_isa} = %{version}-%{release} Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) -%if 0%{?rhel} >= 6 + %if 0%{?rhel} >= 6 BuildRequires: perl-ExtUtils-Embed -%else + %else BuildRequires: perl -%endif + %endif %description perl The Perl plugin embeds a Perl interpreter into collectd and exposes the application programming interface (API) to Perl-scripts. @@ -587,11 +613,11 @@ database. Summary: Python plugin for collectd Group: System Environment/Daemons Requires: %{name}%{?_isa} = %{version}-%{release} -%if 0%{?rhel} >= 6 + %if 0%{?rhel} >= 6 BuildRequires: python-devel -%else + %else BuildRequires: python26-devel -%endif + %endif %description python The Python plugin embeds a Python interpreter into collectd and exposes the application programming interface (API) to Python-scripts. @@ -602,10 +628,10 @@ application programming interface (API) to Python-scripts. Summary: Redis plugin for collectd Group: System Environment/Daemons Requires: %{name}%{?_isa} = %{version}-%{release} -BuildRequires: credis-devel +BuildRequires: hiredis-devel %description redis The Redis plugin connects to one or more instances of Redis, a key-value store, -and collects usage information using the credis library. +and collects usage information using the hiredis library. %endif %if %{with_rrdcached} @@ -650,6 +676,17 @@ measurements fed to collectd. This includes multimeters, sound level meters, thermometers, and much more. %endif +%if %{with_smart} +%package smart +Summary: SMART plugin for collectd +Group: System Environment/Daemons +Requires: %{name}%{?_isa} = %{version}-%{release} +BuildRequires: libatasmart-devel +%description smart +Collect SMART statistics, notably load cycle count, temperature and bad +sectors. +%endif + %if %{with_snmp} %package snmp Summary: SNMP plugin for collectd @@ -706,7 +743,7 @@ The write_kafka plugin sends values to kafka, a distributed messaging system. Summary: Write-Redis plugin for collectd Group: System Environment/Daemons Requires: %{name}%{?_isa} = %{version}-%{release} -BuildRequires: credis-devel +BuildRequires: hiredis-devel %description write_redis The Write Redis plugin stores values in Redis, a “data structures server”. %endif @@ -763,6 +800,13 @@ Requires: libcollectdclient%{?_isa} = %{version}-%{release} %description -n libcollectdclient-devel Development files for libcollectdclient +%package -n collectd-utils +Summary: Collectd utilities +Group: System Environment/Daemons +Requires: libcollectdclient%{?_isa} = %{version}-%{release} +Requires: collectd%{?_isa} = %{version}-%{release} +%description -n collectd-utils +Collectd utilities %prep %setup -q @@ -1164,6 +1208,12 @@ Development files for libcollectdclient %define _with_onewire --disable-onewire %endif +%if %{with_openldap} +%define _with_openldap --enable-openldap +%else +%define _with_openldap --disable-openldap +%endif + %if %{with_openvpn} %define _with_openvpn --enable-openvpn %else @@ -1225,11 +1275,11 @@ Development files for libcollectdclient %endif %if %{with_python} -%if 0%{?rhel} >= 6 + %if 0%{?rhel} >= 6 %define _with_python --enable-python -%else + %else %define _with_python --enable-python --with-python=%{_bindir}/python2.6 -%endif + %endif %else %define _with_python --disable-python %endif @@ -1276,6 +1326,12 @@ Development files for libcollectdclient %define _with_sigrok --disable-sigrok %endif +%if %{with_smart} +%define _with_smart --enable-smart +%else +%define _with_smart --disable-smart +%endif + %if %{with_snmp} %define _with_snmp --enable-snmp %else @@ -1426,6 +1482,12 @@ Development files for libcollectdclient %define _with_write_kafka --disable-write_kafka %endif +%if %{with_write_log} +%define _with_write_log --enable-write_log +%else +%define _with_write_log --disable-write_log +%endif + %if %{with_write_mongodb} %define _with_write_mongodb --enable-write_mongodb %else @@ -1435,7 +1497,7 @@ Development files for libcollectdclient %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} @@ -1462,6 +1524,12 @@ Development files for libcollectdclient %define _with_zfs_arc --disable-zfs_arc %endif +%if %{with_zookeeper} +%define _with_zookeeper --enable-zookeeper +%else +%define _with_zookeeper --disable-zookeeper +%endif + %configure CFLAGS="%{optflags} -DLT_LAZY_OR_NOW=\"RTLD_LAZY|RTLD_GLOBAL\"" \ --disable-static \ --without-included-ltdl \ @@ -1529,6 +1597,7 @@ Development files for libcollectdclient %{?_with_notify_email} \ %{?_with_nut} \ %{?_with_onewire} \ + %{?_with_openldap} \ %{?_with_oracle} \ %{?_with_perl} \ %{?_with_pf} \ @@ -1542,6 +1611,7 @@ Development files for libcollectdclient %{?_with_rrdtool} \ %{?_with_sensors} \ %{?_with_sigrok} \ + %{?_with_smart} \ %{?_with_snmp} \ %{?_with_tape} \ %{?_with_tokyotyrant} \ @@ -1552,6 +1622,7 @@ Development files for libcollectdclient %{?_with_write_redis} \ %{?_with_xmms} \ %{?_with_zfs_arc} \ + %{?_with_zookeeper} \ %{?_with_irq} \ %{?_with_load} \ %{?_with_logfile} \ @@ -1590,6 +1661,7 @@ Development files for libcollectdclient %{?_with_wireless}\ %{?_with_write_graphite} \ %{?_with_write_http} \ + %{?_with_write_log} \ %{?_with_write_riemann} \ %{?_with_write_tsdb} @@ -1600,7 +1672,11 @@ Development files for libcollectdclient %install rm -rf %{buildroot} %{__make} install DESTDIR=%{buildroot} -%{__install} -Dp -m 0755 contrib/redhat/init.d-collectd %{buildroot}%{_initrddir}/collectd +%if 0%{?el7:1} +%{__install} -Dp -m0644 contrib/systemd.collectd.service %{buildroot}%{_unitdir}/collectd.service +%else +%{__install} -Dp -m0755 contrib/redhat/init.d-collectd %{buildroot}%{_initrddir}/collectd +%endif %{__install} -Dp -m0644 src/collectd.conf %{buildroot}%{_sysconfdir}/collectd.conf %{__install} -d %{buildroot}%{_sharedstatedir}/collectd/ %{__install} -d %{buildroot}%{_sysconfdir}/collectd.d/ @@ -1608,37 +1684,38 @@ rm -rf %{buildroot} %{__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 @@ -1651,19 +1728,44 @@ rm -f %{buildroot}%{_mandir}/man5/collectd-snmp.5* %clean rm -rf %{buildroot} +%pre +%if 0%{?el7:1} +# stop sysv-based instance before upgrading to systemd +if [ $1 -eq 2 ] && [ -f /var/lock/subsys/collectd ]; then + SYSTEMCTL_SKIP_REDIRECT=1 %{_initddir}/collectd stop >/dev/null 2>&1 || : +fi +%endif + %post -/sbin/chkconfig --add collectd +%if 0%{?el7:1} +if [ $1 -eq 2 ]; then + /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi +%systemd_post collectd.service +%else +/sbin/chkconfig --add collectd || : +%endif %preun +%if 0%{?el7:1} +%systemd_preun collectd.service +%else +# stop collectd only when uninstalling if [ $1 -eq 0 ]; then - /sbin/service collectd stop &>/dev/null - /sbin/chkconfig --del collectd + /sbin/service collectd stop >/dev/null 2>&1 || : + /sbin/chkconfig --del collectd || : fi +%endif %postun -if [ $1 -ge 1 ]; then - /sbin/service collectd condrestart &>/dev/null || : +%if 0%{?el7:1} +%systemd_postun_with_restart collectd.service +%else +# restart collectd only when upgrading +if [ $1 -eq 1 ]; then + /sbin/service collectd condrestart >/dev/null 2>&1 || : fi +%endif %post -n libcollectdclient -p /sbin/ldconfig %postun -n libcollectdclient -p /sbin/ldconfig @@ -1672,19 +1774,17 @@ fi %files %doc AUTHORS COPYING ChangeLog README %config(noreplace) %{_sysconfdir}/collectd.conf +%if 0%{?el7:1} +%{_unitdir}/collectd.service +%else %{_initrddir}/collectd +%endif %{_sbindir}/collectd -%{_bindir}/collectd-nagios -%{_bindir}/collectd-tg -%{_bindir}/collectdctl %{_sbindir}/collectdmon -%{_datadir}/collectd/ +%{_datadir}/collectd/types.db %{_sharedstatedir}/collectd -%{_mandir}/man1/collectd-nagios.1* %{_mandir}/man1/collectd.1* -%{_mandir}/man1/collectdctl.1* %{_mandir}/man1/collectdmon.1* -%{_mandir}/man1/collectd-tg.1* %{_mandir}/man5/collectd-email.5* %{_mandir}/man5/collectd-exec.5* %{_mandir}/man5/collectd-threshold.5* @@ -1872,12 +1972,18 @@ fi %if %{with_write_graphite} %{_libdir}/%{name}/write_graphite.so %endif +%if %{with_write_log} +%{_libdir}/%{name}/write_log.so +%endif %if %{with_write_tsdb} %{_libdir}/%{name}/write_tsdb.so %endif %if %{with_zfs_arc} %{_libdir}/%{name}/zfs_arc.so %endif +%if %{with_zookeeper} +%{_libdir}/%{name}/zookeeper.so +%endif %files -n libcollectdclient-devel %{_includedir}/collectd/client.h @@ -1890,6 +1996,14 @@ fi %{_libdir}/libcollectdclient.so %{_libdir}/libcollectdclient.so.* +%files -n collectd-utils +%{_bindir}/collectd-nagios +%{_bindir}/collectd-tg +%{_bindir}/collectdctl +%{_mandir}/man1/collectdctl.1* +%{_mandir}/man1/collectd-nagios.1* +%{_mandir}/man1/collectd-tg.1* + %if %{with_amqp} %files amqp %{_libdir}/%{name}/amqp.so @@ -1977,8 +2091,8 @@ fi %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 @@ -2043,9 +2157,13 @@ fi %{_libdir}/%{name}/nut.so %endif +%if %{with_openldap} +%files openldap +%{_libdir}/%{name}/openldap.so +%endif + %if %{with_perl} %files perl -%doc perl-examples/* %{perl_vendorlib}/Collectd.pm %{perl_vendorlib}/Collectd/ %{_mandir}/man3/Collectd::Unixsock.3pm* @@ -2065,7 +2183,7 @@ fi %if %{with_postgresql} %files postgresql -%{_prefix}/share/collectd/postgresql_default.conf +%{_datadir}/collectd/postgresql_default.conf %{_libdir}/%{name}/postgresql.so %endif @@ -2100,6 +2218,11 @@ fi %{_libdir}/%{name}/sigrok.so %endif +%if %{with_smart} +%files smart +%{_libdir}/%{name}/smart.so +%endif + %if %{with_snmp} %files snmp %{_mandir}/man5/collectd-snmp.5* @@ -2145,10 +2268,12 @@ fi %changelog # * TODO 5.5.0-1 # - New upstream version -# - New plugins enabled by default: drbd, log_logstash, write_tsdb +# - New plugins enabled by default: drbd, log_logstash, write_tsdb, smart, openldap, redis, write_redis, zookeeper, write_log # - New plugins disabled by default: barometer, write_kafka # - Enable zfs_arc, now supported on Linux -# - Install disk plugin in an dedicated package, as it depends on libudev +# - Install disk plugin in a dedicated package, as it depends on libudev +# - use systemd on EL7, sysvinit on EL6 & EL5 +# - Install collectdctl, collectd-tg and collectd-nagios in collectd-utils.rpm * Mon Aug 19 2013 Marc Fournier 5.4.0-1 - New upstream version @@ -2169,6 +2294,10 @@ fi - 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 5.3.0-1 - New upstream version