xref: /OK3568_Linux_fs/buildroot/package/collectd/collectd.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1################################################################################
2#
3# collectd
4#
5################################################################################
6
7COLLECTD_VERSION = 5.12.0
8COLLECTD_SITE = \
9	https://github.com/collectd/collectd/releases/download/collectd-$(COLLECTD_VERSION)
10COLLECTD_SOURCE = collectd-$(COLLECTD_VERSION).tar.bz2
11COLLECTD_CONF_ENV = ac_cv_lib_yajl_yajl_alloc=yes
12COLLECTD_INSTALL_STAGING = YES
13COLLECTD_LICENSE = MIT (daemon, plugins), GPL-2.0 (plugins), LGPL-2.1 (plugins)
14COLLECTD_LICENSE_FILES = COPYING
15COLLECTD_CPE_ID_VENDOR = collectd
16COLLECTD_SELINUX_MODULES = apache collectd
17
18# These require unmet dependencies, are fringe, pointless or deprecated
19COLLECTD_PLUGINS_DISABLE = \
20	apple_sensors aquaero ascent barometer dpdkstat email \
21	gmond hddtemp intel_rdt ipmi java lpar \
22	madwifi mbmon mic multimeter netapp notify_desktop numa \
23	oracle perl pf pinba powerdns python routeros \
24	rrdcached sigrok tape target_v5upgrade teamspeak2 ted \
25	tokyotyrant turbostat uuid varnish virt vserver write_kafka \
26	write_mongodb xencpu xmms zfs_arc zone
27
28COLLECTD_CONF_ENV += LIBS="-lm"
29
30#
31# NOTE: There's also a third availible setting "intswap", which might
32# be needed on some old ARM hardware (see [2]), but is not being
33# accounted for as per discussion [1]
34#
35# [1] http://lists.busybox.net/pipermail/buildroot/2017-November/206100.html
36# [2] http://lists.busybox.net/pipermail/buildroot/2017-November/206251.html
37#
38ifeq ($(BR2_ENDIAN),"BIG")
39COLLECTD_FP_LAYOUT=endianflip
40else
41COLLECTD_FP_LAYOUT=nothing
42endif
43
44COLLECTD_CONF_OPTS += \
45	--with-nan-emulation \
46	--with-fp-layout=$(COLLECTD_FP_LAYOUT) \
47	--with-perl-bindings=no \
48	--disable-werror \
49	$(foreach p, $(COLLECTD_PLUGINS_DISABLE), --disable-$(p)) \
50	$(if $(BR2_PACKAGE_COLLECTD_AGGREGATION),--enable-aggregation,--disable-aggregation) \
51	$(if $(BR2_PACKAGE_COLLECTD_AMQP),--enable-amqp,--disable-amqp) \
52	$(if $(BR2_PACKAGE_COLLECTD_APACHE),--enable-apache,--disable-apache) \
53	$(if $(BR2_PACKAGE_COLLECTD_APCUPS),--enable-apcups,--disable-apcups) \
54	$(if $(BR2_PACKAGE_COLLECTD_BATTERY),--enable-battery,--disable-battery) \
55	$(if $(BR2_PACKAGE_COLLECTD_BIND),--enable-bind,--disable-bind) \
56	$(if $(BR2_PACKAGE_COLLECTD_BUDDYINFO),--enable-buddyinfo,--disable-buddyinfo) \
57	$(if $(BR2_PACKAGE_COLLECTD_CAPABILITIES),--enable-capabilities,--disable-capabilities) \
58	$(if $(BR2_PACKAGE_COLLECTD_CEPH),--enable-ceph,--disable-ceph) \
59	$(if $(BR2_PACKAGE_COLLECTD_CHRONY),--enable-chrony,--disable-chrony) \
60	$(if $(BR2_PACKAGE_COLLECTD_CGROUPS),--enable-cgroups,--disable-cgroups) \
61	$(if $(BR2_PACKAGE_COLLECTD_CONNTRACK),--enable-conntrack,--disable-conntrack) \
62	$(if $(BR2_PACKAGE_COLLECTD_CONTEXTSWITCH),--enable-contextswitch,--disable-contextswitch) \
63	$(if $(BR2_PACKAGE_COLLECTD_CPU),--enable-cpu,--disable-cpu) \
64	$(if $(BR2_PACKAGE_COLLECTD_CPUFREQ),--enable-cpufreq,--disable-cpufreq) \
65	$(if $(BR2_PACKAGE_COLLECTD_CPUSLEEP),--enable-cpusleep,--disable-cpusleep) \
66	$(if $(BR2_PACKAGE_COLLECTD_CSV),--enable-csv,--disable-csv) \
67	$(if $(BR2_PACKAGE_COLLECTD_CURL),--enable-curl,--disable-curl) \
68	$(if $(BR2_PACKAGE_COLLECTD_CURL_JSON),--enable-curl_json,--disable-curl_json) \
69	$(if $(BR2_PACKAGE_COLLECTD_CURL_XML),--enable-curl_xml,--disable-curl_xml) \
70	$(if $(BR2_PACKAGE_COLLECTD_DBI),--enable-dbi,--disable-dbi) \
71	$(if $(BR2_PACKAGE_COLLECTD_DF),--enable-df,--disable-df) \
72	$(if $(BR2_PACKAGE_COLLECTD_DISK),--enable-disk,--disable-disk) \
73	$(if $(BR2_PACKAGE_COLLECTD_DNS),--enable-dns,--disable-dns) \
74	$(if $(BR2_PACKAGE_COLLECTD_DPDK_TELEMETRY),--enable-dpdk_telemetry,--disable-dpdk_telemetry) \
75	$(if $(BR2_PACKAGE_COLLECTD_DRBD),--enable-drbd,--disable-drbd) \
76	$(if $(BR2_PACKAGE_COLLECTD_EMPTY_COUNTER),--enable-match_empty_counter,--disable-match_empty_counter) \
77	$(if $(BR2_PACKAGE_COLLECTD_ENTROPY),--enable-entropy,--disable-entropy) \
78	$(if $(BR2_PACKAGE_COLLECTD_ETHSTAT),--enable-ethstat,--disable-ethstat) \
79	$(if $(BR2_PACKAGE_COLLECTD_EXEC),--enable-exec,--disable-exec) \
80	$(if $(BR2_PACKAGE_COLLECTD_FHCOUNT),--enable-fhcount,--disable-fhcount) \
81	$(if $(BR2_PACKAGE_COLLECTD_FILECOUNT),--enable-filecount,--disable-filecount) \
82	$(if $(BR2_PACKAGE_COLLECTD_FSCACHE),--enable-fscache,--disable-fscache) \
83	$(if $(BR2_PACKAGE_COLLECTD_GPS),--enable-gps,--disable-gps) \
84	$(if $(BR2_PACKAGE_COLLECTD_GRAPHITE),--enable-write_graphite,--disable-write_graphite) \
85	$(if $(BR2_PACKAGE_COLLECTD_GRPC),--enable-grpc,--disable-grpc) \
86	$(if $(BR2_PACKAGE_COLLECTD_HASHED),--enable-match_hashed,--disable-match_hashed) \
87	$(if $(BR2_PACKAGE_COLLECTD_HUGEPAGES),--enable-hugepages,--disable-hugepages) \
88	$(if $(BR2_PACKAGE_COLLECTD_INFINIBAND),--enable-infiniband,--disable-infiniband) \
89	$(if $(BR2_PACKAGE_COLLECTD_INTERFACE),--enable-interface,--disable-interface) \
90	$(if $(BR2_PACKAGE_COLLECTD_IPC),--enable-ipc,--disable-ipc) \
91	$(if $(BR2_PACKAGE_COLLECTD_IPTABLES),--enable-iptables,--disable-iptables) \
92	$(if $(BR2_PACKAGE_COLLECTD_IPVS),--enable-ipvs,--disable-ipvs) \
93	$(if $(BR2_PACKAGE_COLLECTD_IRQ),--enable-irq,--disable-irq) \
94	$(if $(BR2_PACKAGE_COLLECTD_LOAD),--enable-load,--disable-load) \
95	$(if $(BR2_PACKAGE_COLLECTD_LOGFILE),--enable-logfile,--disable-logfile) \
96	$(if $(BR2_PACKAGE_COLLECTD_LOGPARSER),--enable-logparser,--disable-logparser) \
97	$(if $(BR2_PACKAGE_COLLECTD_LOGSTASH),--enable-log_logstash,--disable-log_logstash) \
98	$(if $(BR2_PACKAGE_COLLECTD_LUA),--enable-lua,--disable-lua) \
99	$(if $(BR2_PACKAGE_COLLECTD_MD),--enable-md,--disable-md) \
100	$(if $(BR2_PACKAGE_COLLECTD_MDEVENTS),--enable-mdevents,--disable-mdevents) \
101	$(if $(BR2_PACKAGE_COLLECTD_MEMCACHEC),--enable-memcachec,--disable-memcachec) \
102	$(if $(BR2_PACKAGE_COLLECTD_MEMCACHED),--enable-memcached,--disable-memcached) \
103	$(if $(BR2_PACKAGE_COLLECTD_MEMORY),--enable-memory,--disable-memory) \
104	$(if $(BR2_PACKAGE_COLLECTD_MODBUS),--enable-modbus,--disable-modbus) \
105	$(if $(BR2_PACKAGE_COLLECTD_MQTT),--enable-mqtt,--disable-mqtt) \
106	$(if $(BR2_PACKAGE_COLLECTD_MYSQL),--enable-mysql,--disable-mysql) \
107	$(if $(BR2_PACKAGE_COLLECTD_NETLINK),--enable-netlink,--disable-netlink) \
108	$(if $(BR2_PACKAGE_COLLECTD_NETWORK),--enable-network,--disable-network) \
109	$(if $(BR2_PACKAGE_COLLECTD_NFS),--enable-nfs,--disable-nfs) \
110	$(if $(BR2_PACKAGE_COLLECTD_NGINX),--enable-nginx,--disable-nginx) \
111	$(if $(BR2_PACKAGE_COLLECTD_NOTIFICATION),--enable-target_notification,--disable-target_notification) \
112	$(if $(BR2_PACKAGE_COLLECTD_NOTIFY_EMAIL),--enable-notify_email,--disable-notify_email) \
113	$(if $(BR2_PACKAGE_COLLECTD_NOTIFY_NAGIOS),--enable-notify_nagios,--disable-notify_nagios) \
114	$(if $(BR2_PACKAGE_COLLECTD_NTPD),--enable-ntpd,--disable-ntpd) \
115	$(if $(BR2_PACKAGE_COLLECTD_NUT),--enable-nut,--disable-nut) \
116	$(if $(BR2_PACKAGE_COLLECTD_OLSRD),--enable-olsrd,--disable-olsrd) \
117	$(if $(BR2_PACKAGE_COLLECTD_ONEWIRE),--enable-onewire,--disable-onewire) \
118	$(if $(BR2_PACKAGE_COLLECTD_OPENLDAP),--enable-openldap,--disable-openldap) \
119	$(if $(BR2_PACKAGE_COLLECTD_OPENVPN),--enable-openvpn,--disable-openvpn) \
120	$(if $(BR2_PACKAGE_COLLECTD_PING),--enable-ping,--disable-ping) \
121	$(if $(BR2_PACKAGE_COLLECTD_POSTGRESQL),--enable-postgresql,--disable-postgresql) \
122	$(if $(BR2_PACKAGE_COLLECTD_PROCESSES),--enable-processes,--disable-processes) \
123	$(if $(BR2_PACKAGE_COLLECTD_PROTOCOLS),--enable-protocols,--disable-protocols) \
124	$(if $(BR2_PACKAGE_COLLECTD_REDIS),--enable-redis,--disable-redis) \
125	$(if $(BR2_PACKAGE_COLLECTD_REGEX),--enable-match_regex,--disable-match-regex) \
126	$(if $(BR2_PACKAGE_COLLECTD_REPLACE),--enable-target_replace,--disable-target_replace) \
127	$(if $(BR2_PACKAGE_COLLECTD_RIEMANN),--enable-write_riemann,--disable-write_riemann) \
128	$(if $(BR2_PACKAGE_COLLECTD_RRDTOOL),--enable-rrdtool,--disable-rrdtool) \
129	$(if $(BR2_PACKAGE_COLLECTD_SCALE),--enable-target_scale,--disable-target_scale) \
130	$(if $(BR2_PACKAGE_COLLECTD_SENSORS),--enable-sensors,--disable-sensors) \
131	$(if $(BR2_PACKAGE_COLLECTD_SERIAL),--enable-serial,--disable-serial) \
132	$(if $(BR2_PACKAGE_COLLECTD_STATSD),--enable-statsd,--disable-statsd) \
133	$(if $(BR2_PACKAGE_COLLECTD_SET),--enable-target_set,--disable-target_set) \
134	$(if $(BR2_PACKAGE_COLLECTD_SMART),--enable-smart,--disable-smart) \
135	$(if $(BR2_PACKAGE_COLLECTD_SNMP),--enable-snmp,--disable-snmp) \
136	$(if $(BR2_PACKAGE_COLLECTD_SWAP),--enable-swap,--disable-swap) \
137	$(if $(BR2_PACKAGE_COLLECTD_SYNPROXY),--enable-synproxy,--disable-synproxy) \
138	$(if $(BR2_PACKAGE_COLLECTD_SYSLOG),--enable-syslog,--disable-syslog) \
139	$(if $(BR2_PACKAGE_COLLECTD_TABLE),--enable-table,--disable-table) \
140	$(if $(BR2_PACKAGE_COLLECTD_TAIL),--enable-tail,--disable-tail) \
141	$(if $(BR2_PACKAGE_COLLECTD_TAIL_CSV),--enable-tail_csv,--disable-tail_csv) \
142	$(if $(BR2_PACKAGE_COLLECTD_TCPCONNS),--enable-tcpconns,--disable-tcpconns) \
143	$(if $(BR2_PACKAGE_COLLECTD_THERMAL),--enable-thermal,--disable-thermal) \
144	$(if $(BR2_PACKAGE_COLLECTD_THRESHOLD),--enable-threshold,--disable-threshold) \
145	$(if $(BR2_PACKAGE_COLLECTD_TIMEDIFF),--enable-match_timediff,--disable-match_timediff) \
146	$(if $(BR2_PACKAGE_COLLECTD_UBI),--enable-ubi,--disable-ubi) \
147	$(if $(BR2_PACKAGE_COLLECTD_UNIXSOCK),--enable-unixsock,--disable-unixsock) \
148	$(if $(BR2_PACKAGE_COLLECTD_UPTIME),--enable-uptime,--disable-uptime) \
149	$(if $(BR2_PACKAGE_COLLECTD_USERS),--enable-users,--disable-users) \
150	$(if $(BR2_PACKAGE_COLLECTD_VALUE),--enable-match_value,--disable-match_value) \
151	$(if $(BR2_PACKAGE_COLLECTD_VMEM),--enable-vmem,--disable-vmem) \
152	$(if $(BR2_PACKAGE_COLLECTD_WIRELESS),--enable-wireless,--disable-wireless) \
153	$(if $(BR2_PACKAGE_COLLECTD_WRITEHTTP),--enable-write_http,--disable-write_http) \
154	$(if $(BR2_PACKAGE_COLLECTD_WRITEINFLUXDBUDP),--enable-write_influxdb_udp,--disable-write_influxdb_udp) \
155	$(if $(BR2_PACKAGE_COLLECTD_WRITELOG),--enable-write_log,--disable-write_log) \
156	$(if $(BR2_PACKAGE_COLLECTD_WRITEPROMETHEUS),--enable-write_prometheus,--disable-write_prometheus) \
157	$(if $(BR2_PACKAGE_COLLECTD_WRITEREDIS),--enable-write_redis,--disable-write_redis) \
158	$(if $(BR2_PACKAGE_COLLECTD_WRITESENSU),--enable-write_sensu,--disable-write_sensu) \
159	$(if $(BR2_PACKAGE_COLLECTD_WRITETSDB),--enable-write_tsdb,--disable-write_tsdb) \
160	$(if $(BR2_PACKAGE_COLLECTD_ZOOKEEPER),--enable-zookeeper,--disable-zookeeper)
161
162COLLECTD_DEPENDENCIES = \
163	host-pkgconf \
164	$(if $(BR2_PACKAGE_COLLECTD_AMQP),rabbitmq-c) \
165	$(if $(BR2_PACKAGE_COLLECTD_APACHE),libcurl) \
166	$(if $(BR2_PACKAGE_COLLECTD_BIND),libcurl libxml2) \
167	$(if $(BR2_PACKAGE_COLLECTD_CAPABILITIES),jansson libmicrohttpd) \
168	$(if $(BR2_PACKAGE_COLLECTD_CEPH),yajl) \
169	$(if $(BR2_PACKAGE_COLLECTD_CURL),libcurl) \
170	$(if $(BR2_PACKAGE_COLLECTD_CURL_JSON),libcurl yajl) \
171	$(if $(BR2_PACKAGE_COLLECTD_CURL_XML),libcurl libxml2) \
172	$(if $(BR2_PACKAGE_COLLECTD_DBI),libdbi) \
173	$(if $(BR2_PACKAGE_COLLECTD_DNS),libpcap) \
174	$(if $(BR2_PACKAGE_COLLECTD_DPDK_TELEMETRY),jansson) \
175	$(if $(BR2_PACKAGE_COLLECTD_GPS),gpsd) \
176	$(if $(BR2_PACKAGE_COLLECTD_GRPC),grpc) \
177	$(if $(BR2_PACKAGE_COLLECTD_IPTABLES),iptables) \
178	$(if $(BR2_PACKAGE_COLLECTD_LOGSTASH),yajl) \
179	$(if $(BR2_PACKAGE_COLLECTD_LUA),luainterpreter) \
180	$(if $(BR2_PACKAGE_COLLECTD_MEMCACHEC),libmemcached) \
181	$(if $(BR2_PACKAGE_COLLECTD_MODBUS),libmodbus) \
182	$(if $(BR2_PACKAGE_COLLECTD_MQTT),mosquitto) \
183	$(if $(BR2_PACKAGE_COLLECTD_MYSQL),mysql) \
184	$(if $(BR2_PACKAGE_COLLECTD_NETLINK),libmnl) \
185	$(if $(BR2_PACKAGE_COLLECTD_NGINX),libcurl) \
186	$(if $(BR2_PACKAGE_COLLECTD_NOTIFY_EMAIL),libesmtp) \
187	$(if $(BR2_PACKAGE_COLLECTD_NUT),nut) \
188	$(if $(BR2_PACKAGE_COLLECTD_ONEWIRE),owfs) \
189	$(if $(BR2_PACKAGE_COLLECTD_OPENLDAP),openldap) \
190	$(if $(BR2_PACKAGE_COLLECTD_PING),liboping) \
191	$(if $(BR2_PACKAGE_COLLECTD_POSTGRESQL),postgresql) \
192	$(if $(BR2_PACKAGE_COLLECTD_REDIS),hiredis) \
193	$(if $(BR2_PACKAGE_COLLECTD_RIEMANN),libtool riemann-c-client) \
194	$(if $(BR2_PACKAGE_COLLECTD_RRDTOOL),rrdtool) \
195	$(if $(BR2_PACKAGE_COLLECTD_SENSORS),lm-sensors) \
196	$(if $(BR2_PACKAGE_COLLECTD_SMART),libatasmart) \
197	$(if $(BR2_PACKAGE_COLLECTD_SNMP),netsnmp) \
198	$(if $(BR2_PACKAGE_COLLECTD_WRITEHTTP),libcurl) \
199	$(if $(BR2_PACKAGE_COLLECTD_WRITEPROMETHEUS),libmicrohttpd protobuf-c) \
200	$(if $(BR2_PACKAGE_COLLECTD_WRITEREDIS),hiredis)
201
202# include/library fixups
203ifeq ($(BR2_PACKAGE_JANSSON),y)
204COLLECTD_CONF_OPTS += --with-libjansson=$(STAGING_DIR)/usr
205endif
206ifeq ($(BR2_PACKAGE_LIBCURL),y)
207COLLECTD_CONF_OPTS += --with-libcurl=$(STAGING_DIR)/usr
208endif
209ifeq ($(BR2_PACKAGE_LUAJIT),y)
210COLLECTD_CONF_ENV += LIBLUA_PKG_CONFIG_NAME=luajit
211endif
212ifeq ($(BR2_PACKAGE_MYSQL),y)
213COLLECTD_CONF_OPTS += --with-libmysql=$(STAGING_DIR)/usr
214endif
215ifeq ($(BR2_PACKAGE_NETSNMP),y)
216COLLECTD_CONF_OPTS += --with-libnetsnmp=$(STAGING_DIR)/usr
217endif
218ifeq ($(BR2_PACKAGE_POSTGRESQL),y)
219COLLECTD_CONF_OPTS += --with-libpq=$(STAGING_DIR)/usr/bin/pg_config
220COLLECTD_CONF_ENV += LIBS="-lpthread -lm"
221endif
222ifeq ($(BR2_PACKAGE_YAJL),y)
223COLLECTD_CONF_OPTS += --with-libyajl=$(STAGING_DIR)/usr
224endif
225
226# network can use libgcrypt
227ifeq ($(BR2_PACKAGE_LIBGCRYPT),y)
228COLLECTD_DEPENDENCIES += libgcrypt
229COLLECTD_CONF_OPTS += --with-libgcrypt=$(STAGING_DIR)/usr/bin/libgcrypt-config
230else
231COLLECTD_CONF_OPTS += --with-libgcrypt=no
232endif
233
234define COLLECTD_INSTALL_TARGET_CMDS
235	$(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) -C $(@D) install
236	rm -f $(TARGET_DIR)/usr/bin/collectd-nagios
237endef
238
239ifeq ($(BR2_PACKAGE_COLLECTD_POSTGRESQL),)
240define COLLECTD_REMOVE_UNNEEDED_POSTGRESQL_DEFAULT_CONF
241	rm -f $(TARGET_DIR)/usr/share/collectd/postgresql_default.conf
242endef
243COLLECTD_POST_INSTALL_TARGET_HOOKS += COLLECTD_REMOVE_UNNEEDED_POSTGRESQL_DEFAULT_CONF
244endif
245
246define COLLECTD_INSTALL_INIT_SYSTEMD
247	$(INSTALL) -D -m 644 package/collectd/collectd.service \
248		$(TARGET_DIR)/usr/lib/systemd/system/collectd.service
249endef
250
251define COLLECTD_INSTALL_INIT_SYSV
252	$(INSTALL) -D -m 0755 package/collectd/S90collectd \
253		$(TARGET_DIR)/etc/init.d/S90collectd
254endef
255
256$(eval $(autotools-package))
257