%global __provides_exclude_from ^%{_libdir}/collectd/.*\\.so$ %undefine _strict_symbol_defs_build Summary: Statistics collection daemon for filling RRD files Name: collectd Version: 5.9.0 Release: 1 License: GPLv2 URL: https://collectd.org/ Source: https://collectd.org/files/%{name}-%{version}.tar.bz2 Source1: collectd-httpd.conf Source2: collectd.service Source91: apache.conf Source92: email.conf Source93: mysql.conf Source94: nginx.conf Source95: sensors.conf Source96: snmp.conf Source97: rrdtool.conf Source98: onewire.conf Patch0: %{name}-include-collectd.d.patch BuildRequires: perl-devel BuildRequires: perl-generators BuildRequires: perl-interpreter BuildRequires: perl(ExtUtils::MakeMaker) BuildRequires: perl(ExtUtils::Embed) BuildRequires: libgcrypt-devel Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description collectd is a daemon which collects system performance statistics periodically and provides mechanisms to store the values in a variety of ways, for example in RRD files. %package amqp Summary: AMQP plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: librabbitmq-devel %description amqp This plugin can be used to communicate with other instances of collectd or third party applications using an AMQP message broker. %package apache Summary: Apache plugin for collectd Requires: %{name} = %{version}-%{release} %description apache This plugin collects data provided by Apache's 'mod_status'. %package ascent Summary: Ascent plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: curl-devel BuildRequires: libxml2-devel %description ascent This plugin collects data about an Ascent server, a free server for the "World of Warcraft" game. %package bind Summary: Bind plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: curl-devel BuildRequires: libxml2-devel %description bind This plugin retrieves statistics from the BIND dns server. %package ceph Summary: Ceph plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: yajl-devel %description ceph This plugin collects data from Ceph. %package chrony Summary: Chrony plugin for collectd Requires: %{name} = %{version}-%{release} %description chrony Chrony plugin for collectd %package -n collectd-utils Summary: Collectd utilities Requires: libcollectdclient = %{version}-%{release} Requires: %{name} = %{version}-%{release} %description -n collectd-utils Collectd utilities %package curl Summary: Curl plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: curl-devel %description curl This plugin reads webpages with curl %package curl_json Summary: Curl JSON plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: curl-devel BuildRequires: yajl-devel %description curl_json This plugin retrieves JSON data via curl. %package curl_xml Summary: Curl XML plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: curl-devel BuildRequires: libxml2-devel %description curl_xml This plugin retrieves XML data via curl. %package dbi Summary: DBI plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: libdbi-devel %description dbi This plugin uses the dbi library to connect to various databases, execute SQL statements and read back the results. %package disk Summary: Disk plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: systemd-devel %description disk This plugin collects statistics of harddisk and, where supported, partitions. %package dns Summary: DNS traffic analysis plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: libpcap-devel %description dns This plugin collects DNS traffic data. %package drbd Summary: DRBD plugin for collectd Requires: %{name} = %{version}-%{release} %description drbd This plugin collects data from DRBD. %package email Summary: Email plugin for collectd Requires: %{name} = %{version}-%{release} %description email This plugin collects data provided by spamassassin. %package generic-jmx Summary: Generic JMX plugin for collectd Requires: %{name} = %{version}-%{release} %description generic-jmx This plugin collects data provided by JMX. %package hugepages Summary: Hugepages plugin for collectd Requires: %{name} = %{version}-%{release} %description hugepages This plugin collects statistics about hugepage usage. %package ipmi Summary: IPMI plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: OpenIPMI-devel %description ipmi This plugin for collectd provides IPMI support. %package iptables Summary: Iptables plugin for collectd Requires: collectd = %{version}-%{release} BuildRequires: iptables-devel %description iptables This plugin collects data from iptables counters. %package ipvs Summary: IPVS plugin for collectd Requires: %{name} = %{version}-%{release} %description ipvs This plugin collects data from IPVS. %package java Summary: Java bindings for collectd Requires: %{name} = %{version}-%{release} BuildRequires: java-devel BuildRequires: jpackage-utils %description java These are the Java bindings for collectd. %package -n libcollectdclient Summary: Collectd client library %description -n libcollectdclient Collectd client library. %package -n libcollectdclient-devel Summary: Development files for libcollectdclient Requires: libcollectdclient = %{version}-%{release} %description -n libcollectdclient-devel Development files for libcollectdclient. %package log_logstash Summary: Logstash plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: yajl-devel %description log_logstash This plugin formats messages as JSON events for Logstash %package lua Summary: Lua plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: lua-devel %description lua The Lua plugin embeds a Lua interpreter into collectd and exposes the application programming interface (API) to Lua scripts. %package mcelog Summary: Mcelog plugin for collectd Requires: %{name} = %{version}-%{release} %description mcelog This plugin monitors machine check exceptions reported by mcelog and generates appropriate notifications when machine check exceptions are detected. %package memcachec Summary: Memcachec plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: libmemcached-devel %description memcachec This plugin connects to a memcached server, queries one or more given pages and parses the returned data according to user specification. %package mysql Summary: MySQL plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: mariadb-connector-c-devel %description mysql MySQL querying plugin. This plugin provides data of issued commands, called handlers and database traffic. %package netlink Summary: Netlink plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: iproute-static, libmnl-devel %description netlink This plugin uses a netlink socket to query the Linux kernel about statistics of various interface and routing aspects. %package nginx Summary: Nginx plugin for collectd Requires: %{name} = %{version}-%{release} %description nginx This plugin collects data provided by Nginx. %package notify_desktop Summary: Notify desktop plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: libnotify-devel %description notify_desktop This plugin sends a desktop notification to a notification daemon, as defined in the Desktop Notification Specification. %package openldap Summary: OpenLDAP plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: openldap-devel %description openldap This plugin for collectd reads monitoring information from OpenLDAP's cn=Monitor subtree. %package ovs_events Summary: Open vSwitch events plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: yajl-devel %description ovs_events This plugin monitors the link status of Open vSwitch (OVS) connected interfaces, dispatches the values to collectd and sends notifications whenever a link state change occurs in the OVS database. %package ovs_stats Summary: Open vSwitch stats plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: yajl-devel %description ovs_stats This plugin collects statictics of OVS connected bridges and interfaces. %package -n perl-Collectd Summary: Perl bindings for collectd Requires: %{name} = %{version}-%{release} Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) %description -n perl-Collectd This package contains the Perl bindings and plugin for collectd. %package pinba Summary: Pinba plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: protobuf-c-devel %description pinba This plugin receives profiling information from Pinba, an extension for the PHP interpreter. %package postgresql Summary: PostgreSQL plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: libpq-devel %description postgresql PostgreSQL querying plugin. This plugins provides data of issued commands, called handlers and database traffic. %package python Summary: Python plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: python3-devel %description python The Python plugin embeds a Python interpreter into Collectd and exposes the application programming interface (API) to Python-scripts. %package rrdcached Summary: RRDCacheD plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: rrdtool-devel %description rrdcached This plugin uses the RRDtool accelerator daemon, rrdcached(1), to store values to RRD files in an efficient manner. %package rrdtool Summary: RRDTool plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: rrdtool-devel %description rrdtool This plugin for collectd provides rrdtool support. %ifnarch ppc sparc sparc64 %package sensors Summary: Libsensors module for collectd Requires: %{name} = %{version}-%{release} BuildRequires: lm_sensors-devel %description sensors This plugin for collectd provides querying of sensors supported by lm_sensors. %endif %package smart Summary: SMART plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: libatasmart-devel %description smart This plugin for collectd collects SMART statistics, notably load cycle count, temperature and bad sectors. %package snmp Summary: SNMP module for collectd Requires: %{name} = %{version}-%{release} BuildRequires: net-snmp-devel %description snmp This plugin for collectd provides querying of net-snmp. %package snmp_agent Summary: SNMP AgentX plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: net-snmp-devel %description snmp_agent This plugin is an AgentX subagent that receives and handles queries from a SNMP master agent and returns the data collected by read plugins. %package synproxy Summary: Synproxy plugin for collectd Requires: %{name} = %{version}-%{release} %description synproxy This plugin provides statistics for Linux SYNPROXY available since 3.12 %package varnish Summary: Varnish plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: varnish-libs-devel %description varnish This plugin collects information about Varnish, an HTTP accelerator. %ifnarch ppc sparc sparc64 %package virt Summary: Libvirt plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: libvirt-devel BuildRequires: libxml2-devel %description virt This plugin collects information from virtualized guests. %endif %package web Summary: Contrib web interface to viewing rrd files Requires: %{name} = %{version}-%{release} Requires: collectd-rrdtool = %{version}-%{release} Requires: perl-HTML-Parser, perl-Regexp-Common, rrdtool-perl, httpd %description web This package will allow for a simple web interface to view rrd files created by collectd. %package write_http Summary: HTTP output plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: curl-devel %description write_http This plugin can send data to Redis. %package write_kafka Summary: Kafka output plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: librdkafka-devel %description write_kafka This sends values to Kafka, a distributed messaging system. %package write_mongodb Summary: MongoDB output plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: mongo-c-driver-devel %description write_mongodb This plugin sends values to MongoDB. %package write_prometheus Summary: Prometheus output plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: libmicrohttpd-devel %description write_prometheus This plugin exposes collected values using an embedded HTTP server, turning the collectd daemon into a Prometheus exporter. %package write_riemann Summary: Riemann output plugin for collectd Requires: %{name} = %{version}-%{release} BuildRequires: riemann-c-client-devel %description write_riemann This plugin can send data to Riemann. %package write_sensu Summary: Sensu output plugin for collectd Requires: %{name} = %{version}-%{release} %description write_sensu This plugin can send data to Sensu. %package write_syslog Summary: syslog output plugin for collectd Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} Provides: %{name}-write-syslog = %{version}-%{release} %description write_syslog This plugin can send data to syslog. %package write_tsdb Summary: OpenTSDB output plugin for collectd Requires: %{name} = %{version}-%{release} %description write_tsdb This plugin can send data to OpenTSDB. %package zookeeper Summary: Zookeeper plugin for collectd Requires: %{name} = %{version}-%{release} %description zookeeper This is a collectd plugin that reads data from Zookeeper's MNTR command. %prep %autosetup -v -p1 # recompile generated files touch src/pinba.proto %build %configure \ --disable-dependency-tracking \ --enable-all-plugins \ --disable-static \ --disable-amqp1 \ --disable-apple_sensors \ --disable-aquaero \ --disable-barometer \ --disable-dpdkevents \ --disable-dpdkstat \ --disable-gmond \ --disable-gps \ --disable-gpu_nvidia \ --disable-grpc \ --disable-intel_pmu \ --disable-intel_rdt \ --disable-lpar \ --disable-lvm \ --disable-mic \ --disable-modbus \ --disable-mqtt \ --disable-netapp \ --disable-notify_email \ --disable-nut \ --disable-onewire \ --disable-oracle \ %ifarch s390 s390x --disable-pcie_errors \ %endif --disable-pf \ --disable-ping \ --disable-redis \ --disable-routeros \ %ifarch ppc sparc sparc64 --disable-sensors \ %endif --disable-sigrok \ --disable-tape \ --disable-tokyotyrant \ --disable-turbostat \ --disable-write_redis \ --disable-xencpu \ --disable-xmms \ --disable-zone \ --with-java=%{java_home}/ \ --with-python=%{_bindir}/python3 \ --with-perl-bindings=INSTALLDIRS=vendor \ --disable-werror \ AR_FLAGS="-cr" make %{?_smp_mflags} %install rm -rf contrib/SpamAssassin make install DESTDIR="%{buildroot}" install -Dp -m0644 src/collectd.conf %{buildroot}%{_sysconfdir}/collectd.conf install -Dp -m0644 %{SOURCE2} %{buildroot}%{_unitdir}/collectd.service install -d -m0755 %{buildroot}%{_localstatedir}/lib/collectd/rrd install -d -m0755 %{buildroot}%{_datadir}/collectd/collection3/ install -d -m0755 %{buildroot}%{_sysconfdir}/httpd/conf.d/ find contrib/ -type f -exec chmod a-x {} \; # Remove Perl hidden .packlist files. find %{buildroot} -name .packlist -delete # Remove Perl temporary file perllocal.pod find %{buildroot} -name perllocal.pod -delete # copy web interface cp -ad contrib/collection3/* %{buildroot}%{_datadir}/collectd/collection3/ cp -pv %{buildroot}%{_datadir}/collectd/collection3/etc/collection.conf %{buildroot}%{_sysconfdir}/collection.conf ln -rsf %{_sysconfdir}/collection.conf %{buildroot}%{_datadir}/collectd/collection3/etc/collection.conf cp -pv %{SOURCE1} %{buildroot}%{_sysconfdir}/httpd/conf.d/collectd.conf chmod +x %{buildroot}%{_datadir}/collectd/collection3/bin/*.cgi # Move the Perl examples to a separate directory. mkdir perl-examples find contrib -name '*.p[lm]' -exec mv {} perl-examples/ \; # Move config contribs mkdir -p %{buildroot}%{_sysconfdir}/collectd.d/ cp %{SOURCE91} %{buildroot}%{_sysconfdir}/collectd.d/apache.conf cp %{SOURCE92} %{buildroot}%{_sysconfdir}/collectd.d/email.conf cp %{SOURCE93} %{buildroot}%{_sysconfdir}/collectd.d/mysql.conf cp %{SOURCE94} %{buildroot}%{_sysconfdir}/collectd.d/nginx.conf cp %{SOURCE95} %{buildroot}%{_sysconfdir}/collectd.d/sensors.conf cp %{SOURCE96} %{buildroot}%{_sysconfdir}/collectd.d/snmp.conf cp %{SOURCE97} %{buildroot}%{_sysconfdir}/collectd.d/rrdtool.conf cp %{SOURCE98} %{buildroot}%{_sysconfdir}/collectd.d/onewire.conf # configs for subpackaged plugins %ifnarch s390 s390x for p in dns ipmi libvirt nut perl ping postgresql %else for p in dns ipmi libvirt perl ping postgresql %endif do cat > %{buildroot}%{_sysconfdir}/collectd.d/$p.conf < - 5.9.0-1 - Init package