From mboxrd@z Thu Jan 1 00:00:00 1970 From: Frank Vanbever Date: Mon, 17 Feb 2020 14:38:06 +0100 Subject: [Buildroot] [PATCH v2 1/1] package/fluentbit: new package Message-ID: <20200217133806.21237-1-frank.vanbever@essensium.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net From: Kevin Hilman Fluent Bit is an open source and multi-platform Log Processor and Forwarder which allows you to collect data/logs from different sources, unify and send them to multiple destinations. _FILE_OFFSET_BITS==64 needs to be filtered out to allow building with old glibc versions (<2.23). 0001-lib-flb_libco-ppc-Fix-signature-for-co_create-API-18.patch is required to allow building for PowerPC. Signed-off-by: Kevin Hilman Signed-off-by: Frank Vanbever --- This patch is adapted from http://patchwork.ozlabs.org/patch/1038388/ with some clean-up and additional fixes. --- DEVELOPERS | 1 + package/Config.in | 1 + ...c-Fix-signature-for-co_create-API-18.patch | 37 +++++++++++ package/fluent-bit/Config.in | 15 +++++ package/fluent-bit/fluent-bit.hash | 3 + package/fluent-bit/fluent-bit.mk | 65 +++++++++++++++++++ 6 files changed, 122 insertions(+) create mode 100644 package/fluent-bit/0001-lib-flb_libco-ppc-Fix-signature-for-co_create-API-18.patch create mode 100644 package/fluent-bit/Config.in create mode 100644 package/fluent-bit/fluent-bit.hash create mode 100644 package/fluent-bit/fluent-bit.mk diff --git a/DEVELOPERS b/DEVELOPERS index e4a3bcb24a..0c309d94e4 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -960,6 +960,7 @@ F: package/zxing-cpp/ N: Frank Vanbever F: package/elixir/ +F: package/fluent-bit/ F: package/libmodsecurity/ F: package/nginx-modsecurity/ diff --git a/package/Config.in b/package/Config.in index dfa3f34b9d..f3d84f16e5 100644 --- a/package/Config.in +++ b/package/Config.in @@ -2298,6 +2298,7 @@ menu "System tools" source "package/efibootmgr/Config.in" source "package/efivar/Config.in" source "package/emlog/Config.in" + source "package/fluent-bit/Config.in" source "package/ftop/Config.in" source "package/getent/Config.in" source "package/htop/Config.in" diff --git a/package/fluent-bit/0001-lib-flb_libco-ppc-Fix-signature-for-co_create-API-18.patch b/package/fluent-bit/0001-lib-flb_libco-ppc-Fix-signature-for-co_create-API-18.patch new file mode 100644 index 0000000000..350d7a2310 --- /dev/null +++ b/package/fluent-bit/0001-lib-flb_libco-ppc-Fix-signature-for-co_create-API-18.patch @@ -0,0 +1,37 @@ +From 731dab51a41d3635ceae5481d89d30148caac96d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 11 Feb 2020 19:36:21 -0800 +Subject: [PATCH] lib: flb_libco: ppc: Fix signature for co_create API (#1886) + +Signed-off-by: Khem Raj +--- + lib/flb_libco/ppc.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/lib/flb_libco/ppc.c b/lib/flb_libco/ppc.c +index e6536d56..533256b3 100644 +--- a/lib/flb_libco/ppc.c ++++ b/lib/flb_libco/ppc.c +@@ -279,7 +279,9 @@ static uint32_t* co_create_(unsigned size, uintptr_t entry) { + return t; + } + +-cothread_t co_create(unsigned int size, void (*entry_)(void)) { ++cothread_t co_create(unsigned int size, void (*entry_)(void), ++ size_t *out_size) { ++ + uintptr_t entry = (uintptr_t)entry_; + uint32_t* t = 0; + +@@ -325,7 +327,7 @@ cothread_t co_create(unsigned int size, void (*entry_)(void)) { + t[10] = (uint32_t)(sp >> shift >> shift); + t[11] = (uint32_t)sp; + } +- ++ *out_size = size; + return t; + } + +-- +2.20.1 + diff --git a/package/fluent-bit/Config.in b/package/fluent-bit/Config.in new file mode 100644 index 0000000000..98efaa36ff --- /dev/null +++ b/package/fluent-bit/Config.in @@ -0,0 +1,15 @@ +config BR2_PACKAGE_FLUENT_BIT + bool "fluent-bit" + depends on BR2_INSTALL_LIBSTDCPP + depends on !BR2_STATIC_LIBS + select BR2_PACKAGE_MUSL_FTS if !BR2_TOOLCHAIN_USES_GLIBC + help + Fluent Bit is an open source and multi-platform Log + processor and forwarder which allows you to collect + data/logs from different sources, unify and send them to + multiple destinations. + + http://fluentbit.io + +comment "fluent-bit needs a toolchain w/ C++, dynamic library" + depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS diff --git a/package/fluent-bit/fluent-bit.hash b/package/fluent-bit/fluent-bit.hash new file mode 100644 index 0000000000..1a8e0d121c --- /dev/null +++ b/package/fluent-bit/fluent-bit.hash @@ -0,0 +1,3 @@ +# computed locally +sha256 e897949356855e2a7d1a71085c7c21653b7792ef137d19d665e7b5dcd8e4d46a fluent-bit-1.3.7.tar.gz +sha256 0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 LICENSE diff --git a/package/fluent-bit/fluent-bit.mk b/package/fluent-bit/fluent-bit.mk new file mode 100644 index 0000000000..c48d77a1fe --- /dev/null +++ b/package/fluent-bit/fluent-bit.mk @@ -0,0 +1,65 @@ +################################################################################ +# +# fluent-bit +# +################################################################################ + +FLUENT_BIT_VERSION = 1.3.7 +FLUENT_BIT_SITE = $(call github,fluent,fluent-bit,v$(FLUENT_BIT_VERSION)) +FLUENT_BIT_LICENSE = Apache-2.0 +FLUENT_BIT_LICENSE_FILE = LICENSE + +# LuaJIT and filter_lua do not support cross compilation +FLUENT_BIT_CONF_OPTS += -DFLB_LUAJIT=OFF -DFLB_FILTER_LUA=OFF + +# Only build the daemon. Disable optional build of fluent-bit.so +FLUENT_BIT_CONF_OPTS += -DFLB_SHARED_LIB=OFF -DBUILD_SHARED_LIBS=OFF + +# Don't build the examples +FLUENT_BIT_CONF_OPTS += -DFLB_EXAMPLES=OFF + +# onigmo option does not support cross compilation +FLUENT_BIT_CONF_OPTS += -DFLB_PARSER=OFF -DFLB_REGEX=OFF + +# backtrace option does not support cross compilation +FLUENT_BIT_CONF_OPTS += -DFLB_BACKTRACE=OFF + +ifeq ($(BR2_PACKAGE_HOST_FLEX)$(BR2_PACKAGE_HOST_BISON),yy) +FLUENT_BIT_DEPENDENCIES += host-flex host-bison +FLUENT_BIT_CONF_OPTS += -DFLB_RECORD_ACCESSOR=ON -DFLB_STREAM_PROCESSOR=ON +else +FLUENT_BIT_CONF_OPTS += -DFLB_RECORD_ACCESSOR=OFF -DFLB_STREAM_PROCESSOR=OFF +endif + +ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),) +FLUENT_BIT_DEPENDENCIES += musl-fts +FLUENT_BIT_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-lfts +endif + +# fts.h does not support _FILE_OFFSET_BITS=64 in glibc 2.22 +FLUENT_BIT_CFLAGS = $(filter-out -D_FILE_OFFSET_BITS=64,$(TARGET_CFLAGS)) +FLUENT_BIT_CXXFLAGS = $(filter-out -D_FILE_OFFSET_BITS=64,$(TARGET_CXXFLAGS)) + +FLUENT_BIT_CONF_OPTS += -DCMAKE_C_FLAGS="$(FLUENT_BIT_CFLAGS)" \ + -DCMAKE_CXX_FLAGS="$(FLUENT_BIT_CXXFLAGS)" + +define FLUENT_BIT_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 0644 $(@D)/init/fluent-bit.service \ + $(TARGET_DIR)/usr/lib/systemd/system/fluent-bit.service + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants + ln -sf ../../../..//usr/lib/systemd/system/fluent-bit.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/fluent-bit.service +endef + +# Install the default configuration files +define FLUENT_BIT_INSTALL_CONF + mkdir -p $(TARGET_DIR)/etc/fluent-bit + $(INSTALL) -m 0644 -D $(@D)/conf/fluent-bit.conf \ + $(TARGET_DIR)/etc/fluent-bit/fluent-bit.conf + $(INSTALL) -m 0644 -D $(@D)/conf/plugins.conf \ + $(TARGET_DIR)/etc/fluent-bit/plugins.conf +endef + +FLUENT_BIT_POST_INSTALL_TARGET_HOOKS += FLUENT_BIT_INSTALL_CONF + +$(eval $(cmake-package)) -- 2.20.1