package/collectd: add DPDK_TELEMETRY option
authorFabrice Fontaine <fontaine.fabrice@gmail.com>
Wed, 15 Apr 2020 06:30:05 +0000 (08:30 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Mon, 17 Aug 2020 10:15:57 +0000 (12:15 +0200)
DPDK support is available since version 5.11.0 and
https://github.com/collectd/collectd/commit/00cbd4d2c016a676db476ae66bbc58d6bf11a6a0

It depends on jansson and is currently enabled by default raising the
following build failure on musl:

src/dpdk_telemetry.c:43:10: fatal error: sys/unistd.h: No such file or directory
 #include <sys/unistd.h>
          ^~~~~~~~~~~~~~

Fixes:
 - http://autobuild.buildroot.org/results/aafb8c72f147fefc7a988c45e4dc17de48b07a95

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/collectd/0001-src-dpdk_telemetry.c-fix-build-on-musl.patch [new file with mode: 0644]
package/collectd/Config.in
package/collectd/collectd.mk

diff --git a/package/collectd/0001-src-dpdk_telemetry.c-fix-build-on-musl.patch b/package/collectd/0001-src-dpdk_telemetry.c-fix-build-on-musl.patch
new file mode 100644 (file)
index 0000000..8378cd0
--- /dev/null
@@ -0,0 +1,37 @@
+From 70318d6bcf7ef89e1a73fc775d33f4c854aed484 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Tue, 14 Apr 2020 14:49:19 +0200
+Subject: [PATCH] src/dpdk_telemetry.c: fix build on musl
+
+Include unistd.h instead of sys/unistd.h to fix the following build
+failure on musl:
+
+src/dpdk_telemetry.c:43:10: fatal error: sys/unistd.h: No such file or directory
+ #include <sys/unistd.h>
+          ^~~~~~~~~~~~~~
+
+Fixes:
+ - http://autobuild.buildroot.org/results/aafb8c72f147fefc7a988c45e4dc17de48b07a95
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+[Upstream status: https://github.com/collectd/collectd/pull/3439]
+---
+ src/dpdk_telemetry.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/dpdk_telemetry.c b/src/dpdk_telemetry.c
+index b46e8574..cfee5f12 100755
+--- a/src/dpdk_telemetry.c
++++ b/src/dpdk_telemetry.c
+@@ -40,7 +40,7 @@
+ #include <sys/queue.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
+-#include <sys/unistd.h>
++#include <unistd.h>
+ #define BUF_SIZE 100000
+ #define PLUGIN_NAME "dpdk_telemetry"
+-- 
+2.25.1
+
index cd5d876e80a43b2aa6ac0d56dd416d4c7af0ad7b..a467a8a4ca384c289ccc8049a215f299097c487a 100644 (file)
@@ -213,6 +213,13 @@ config BR2_PACKAGE_COLLECTD_DNS
        help
          Collects statistics of DNS traffic using libpcap.
 
+config BR2_PACKAGE_COLLECTD_DPDK_TELEMETRY
+       bool "dpdk_telemetry"
+       select BR2_PACKAGE_JANSSON
+       help
+         Collects DPDK ethernet device metrics via dpdk_telemetry
+         library.
+
 config BR2_PACKAGE_COLLECTD_DRBD
        bool "drbd"
        help
index 6d084dbe42e7998ebb10b6a698c9078ef6946599..ad16c729120e06defa04342db5831f747e203c67 100644 (file)
@@ -66,6 +66,7 @@ COLLECTD_CONF_OPTS += \
        $(if $(BR2_PACKAGE_COLLECTD_DF),--enable-df,--disable-df) \
        $(if $(BR2_PACKAGE_COLLECTD_DISK),--enable-disk,--disable-disk) \
        $(if $(BR2_PACKAGE_COLLECTD_DNS),--enable-dns,--disable-dns) \
+       $(if $(BR2_PACKAGE_COLLECTD_DPDK_TELEMETRY),--enable-dpdk_telemetry,--disable-dpdk_telemetry) \
        $(if $(BR2_PACKAGE_COLLECTD_DRBD),--enable-drbd,--disable-drbd) \
        $(if $(BR2_PACKAGE_COLLECTD_EMPTY_COUNTER),--enable-match_empty_counter,--disable-match_empty_counter) \
        $(if $(BR2_PACKAGE_COLLECTD_ENTROPY),--enable-entropy,--disable-entropy) \
@@ -156,6 +157,7 @@ COLLECTD_DEPENDENCIES = \
        $(if $(BR2_PACKAGE_COLLECTD_CURL_JSON),libcurl yajl) \
        $(if $(BR2_PACKAGE_COLLECTD_CURL_XML),libcurl libxml2) \
        $(if $(BR2_PACKAGE_COLLECTD_DNS),libpcap) \
+       $(if $(BR2_PACKAGE_COLLECTD_DPKD_TELEMETRY),jansson) \
        $(if $(BR2_PACKAGE_COLLECTD_GPS),gpsd) \
        $(if $(BR2_PACKAGE_COLLECTD_GRPC),grpc) \
        $(if $(BR2_PACKAGE_COLLECTD_IPTABLES),iptables) \
@@ -186,6 +188,9 @@ COLLECTD_DEPENDENCIES = \
 ifeq ($(BR2_PACKAGE_GRPC),y)
 COLLECTD_CONF_OPTS += --with-libgrpc++=$(STAGING_DIR)/usr
 endif
+ifeq ($(BR2_PACKAGE_JANSSON),y)
+COLLECTD_CONF_OPTS += --with-libjansson=$(STAGING_DIR)/usr
+endif
 ifeq ($(BR2_PACKAGE_LIBCURL),y)
 COLLECTD_CONF_OPTS += --with-libcurl=$(STAGING_DIR)/usr
 endif