blob: bd4a5b3e89e648ca940f2f0c032b4f0ff7bfc723 [file] [log] [blame]
Andrew Geissler82c905d2020-04-13 13:39:40 -05001SUMMARY = "Collects and summarises system performance statistics"
2DESCRIPTION = "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."
Andrew Geissler20137392023-10-12 04:59:14 -06003HOMEPAGE = "https://collectd.org/"
Andrew Geissler9aee5002022-03-30 16:27:02 +00004LICENSE = "GPL-2.0-only & MIT"
Andrew Geissler82c905d2020-04-13 13:39:40 -05005LIC_FILES_CHKSUM = "file://COPYING;md5=1bd21f19f7f0c61a7be8ecacb0e28854"
6
7DEPENDS = "rrdtool curl libpcap libxml2 yajl libgcrypt libtool lvm2"
8
Andrew Geissler20137392023-10-12 04:59:14 -06009SRC_URI = "https://collectd.org/files/collectd-${PV}.tar.bz2 \
Andrew Geissler82c905d2020-04-13 13:39:40 -050010 file://collectd.init \
11 file://collectd.service \
12 file://no-gcrypt-badpath.patch \
13 file://0001-fix-to-build-with-glibc-2.25.patch \
14 file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch \
15 file://0005-Disable-new-gcc8-warnings.patch \
16 file://0006-libcollectdclient-Fix-string-overflow-errors.patch \
17 file://0001-Remove-including-sys-sysctl.h-on-glibc-based-systems.patch \
18 "
Andrew Geisslerd688a012020-09-18 13:36:00 -050019SRC_URI[md5sum] = "2b23a65960bc323d065234776a542e04"
20SRC_URI[sha256sum] = "5bae043042c19c31f77eb8464e56a01a5454e0b39fa07cf7ad0f1bfc9c3a09d6"
Andrew Geissler82c905d2020-04-13 13:39:40 -050021
22inherit autotools python3native update-rc.d pkgconfig systemd
23
Patrick Williams213cb262021-08-07 19:21:33 -050024SYSTEMD_SERVICE:${PN} = "collectd.service"
Andrew Geissler82c905d2020-04-13 13:39:40 -050025
26# Floatingpoint layout, architecture dependent
27# 'nothing', 'endianflip' or 'intswap'
28FPLAYOUT ?= "--with-fp-layout=nothing"
29
30PACKAGECONFIG ??= ""
31PACKAGECONFIG[openjdk] = "--with-java=${STAGING_DIR_TARGET}${libdir}/jvm,--without-java,openjdk-7"
32PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp --with-libnetsnmp=no,net-snmp"
33PACKAGECONFIG[libmemcached] = "--with-libmemcached,--without-libmemcached,libmemcached"
34PACKAGECONFIG[iptables] = "--enable-iptables,--disable-iptables,iptables"
35PACKAGECONFIG[postgresql] = "--enable-postgresql --with-libpq=yes, \
36 --disable-postgresql --with-libpq=no,postgresql"
37PACKAGECONFIG[mysql] = "--enable-mysql --with-libmysql=yes, \
38 --disable-mysql --with-libmysql=no,mysql5"
39PACKAGECONFIG[dbi] = "--enable-dbi,--disable-dbi,libdbi"
40PACKAGECONFIG[modbus] = "--enable-modbus,--disable-modbus,libmodbus"
41PACKAGECONFIG[libowcapi] = "--with-libowcapi,--without-libowcapi,owfs"
42PACKAGECONFIG[sensors] = "--enable-sensors --with-libsensors=yes, \
43 --disable-sensors --with-libsensors=no,lmsensors"
44PACKAGECONFIG[amqp] = "--enable-amqp --with-librabbitmq=yes, \
45 --disable-amqp --with-librabbitmq=no,rabbitmq-c"
46# protobuf-c, libvirt that are currently only available in meta-virtualization layer
47PACKAGECONFIG[pinba] = "--enable-pinba,--disable-pinba,protobuf-c-native protobuf-c"
48PACKAGECONFIG[libvirt] = "--enable-virt,--disable-virt,libvirt"
49PACKAGECONFIG[libesmtp] = "--with-libesmtp,--without-libesmtp,libesmtp"
50PACKAGECONFIG[libmnl] = "--with-libmnl,--without-libmnl,libmnl"
51PACKAGECONFIG[libatasmart] = "--with-libatasmart,--without-libatasmart,libatasmart"
52PACKAGECONFIG[ldap] = "--enable-openldap --with-libldap,--disable-openldap --without-libldap, openldap"
Andrew Geisslera2681d92020-10-16 10:17:07 -050053PACKAGECONFIG[rrdtool] = "--enable-rrdtool,--disable-rrdtool,rrdtool"
Andrew Geissler5082cc72023-09-11 08:41:39 -040054PACKAGECONFIG[rrdcached] = "--enable-rrdcached,--disable-rrdcached,rrdtool"
Andrew Geissler87f5cff2022-09-30 13:13:31 -050055PACKAGECONFIG[python] = "--enable-python,--disable-python"
Andrew Geissler82c905d2020-04-13 13:39:40 -050056
57EXTRA_OECONF = " \
58 ${FPLAYOUT} \
59 --disable-perl --with-libperl=no --with-perl-bindings=no \
60 --with-libgcrypt=${STAGING_BINDIR_CROSS}/libgcrypt-config \
Andrew Geissler4b7c1152020-11-30 19:55:29 -060061 --disable-notify_desktop --disable-werror \
Andrew Geissler82c905d2020-04-13 13:39:40 -050062"
63
Patrick Williams213cb262021-08-07 19:21:33 -050064do_install:append() {
Andrew Geissler82c905d2020-04-13 13:39:40 -050065 install -d ${D}${sysconfdir}/init.d
66 install -m 0755 ${WORKDIR}/collectd.init ${D}${sysconfdir}/init.d/collectd
67 sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/collectd
68 sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/collectd
69 sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/collectd
70 sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/collectd
71 install -Dm 0640 ${B}/src/collectd.conf ${D}${sysconfdir}/collectd.conf
72 # Fix configuration file to allow collectd to start up
73 sed -i 's!^#FQDNLookup[ \t]*true!FQDNLookup false!g' ${D}${sysconfdir}/collectd.conf
74
Andrew Geissler595f6302022-01-24 19:11:47 +000075 rmdir ${D}${localstatedir}/run ${D}${localstatedir}/log
76 rmdir --ignore-fail-on-non-empty ${D}${localstatedir}
Andrew Geissler82c905d2020-04-13 13:39:40 -050077
78 # Install systemd unit files
79 install -d ${D}${systemd_unitdir}/system
80 install -m 0644 ${WORKDIR}/collectd.service ${D}${systemd_unitdir}/system
81 sed -i -e 's,@SBINDIR@,${sbindir},g' \
82 ${D}${systemd_unitdir}/system/collectd.service
83}
84
Patrick Williams213cb262021-08-07 19:21:33 -050085CONFFILES:${PN} = "${sysconfdir}/collectd.conf"
Andrew Geissler82c905d2020-04-13 13:39:40 -050086
87INITSCRIPT_NAME = "collectd"
88INITSCRIPT_PARAMS = "defaults"
89
90# threshold.so load.so are also provided by gegl
91# disk.so is also provided by libgphoto2-camlibs
92PRIVATE_LIBS = "threshold.so load.so disk.so"