Message ID | 20200217145805.18815-1-frank.vanbever@essensium.com |
---|---|
State | Changes Requested |
Headers | show |
Series | [v3,1/1] package/fluentbit: new package | expand |
Le 17/02/2020 à 15:58, Frank Vanbever a écrit : > From: Kevin Hilman <khilman@baylibre.com> > > 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 <khilman@baylibre.com> > Signed-off-by: Frank Vanbever <frank.vanbever@essensium.com> > --- > v2 -> v3: > - Cleaned up included patch: "Backported from:", "Signed off by:" and some > additional explanation on why the patch is necessary > > This patch is adapted from http://patchwork.ozlabs.org/patch/1038388/ > with some clean-up and additional fixes. > > Signed-off-by: Frank Vanbever <frank.vanbever@essensium.com> > --- > DEVELOPERS | 1 + > package/Config.in | 1 + > ...c-Fix-signature-for-co_create-API-18.patch | 42 ++++++++++++ > package/fluent-bit/Config.in | 15 +++++ > package/fluent-bit/fluent-bit.hash | 3 + > package/fluent-bit/fluent-bit.mk | 65 +++++++++++++++++++ > 6 files changed, 127 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 <frank.vanbever@essensium.com> > 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..c85bf85d33 > --- /dev/null > +++ b/package/fluent-bit/0001-lib-flb_libco-ppc-Fix-signature-for-co_create-API-18.patch > @@ -0,0 +1,42 @@ > +From 731dab51a41d3635ceae5481d89d30148caac96d Mon Sep 17 00:00:00 2001 > +From: Khem Raj <raj.khem@gmail.com> > +Date: Tue, 11 Feb 2020 19:36:21 -0800 > +Subject: [PATCH] lib: flb_libco: ppc: Fix signature for co_create API (#1886) > + > +This patch fixes build errors for the flb_libco dependency when builidng > +for PowerPC. > + > +Backported from: 731dab51a41d3635ceae5481d89d30148caac96d > +Signed-off-by: Khem Raj <raj.khem@gmail.com> > +Signed-off-by: Frank Vanbever <frank.vanbever@essensium.com> > +--- > + 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 > + Maybe it would be better to add a suboption to enable/disable FLB_RECORD_ACCESSOR instead if requiring host-flex and host-bison being selected. > +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)) Why do we want support old glibc ? It would disable LFS for glibc >= 2.23. Best regards, Romain > + > +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)) >
Hello Frank, On Mon, 17 Feb 2020 15:58:05 +0100 Frank Vanbever <frank.vanbever@essensium.com> wrote: > From: Kevin Hilman <khilman@baylibre.com> > > 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 <khilman@baylibre.com> > Signed-off-by: Frank Vanbever <frank.vanbever@essensium.com> I know it's our fault for not applying earlier, but the version 1.3.7 used in your package doesn't build with gcc 10.x (the infamous -fcommon issue). So I updated to 1.8.11, which also didn't build due to a "struct iovec" issue. I backported upstream commit b28d83d5851ca85943b5eea4f92b0c400169d4fb to fix this issue. But then, it stills fails to build, because there are bunch of warnings, and it is built with -Werror. If you're still interested in this package, could you have a look? Also Romain made some comments that were very true, and would need to be handled as well. Thanks a lot! Thomas
Hi Thomas,
On Thursday, 30 December 2021 15:53:34 CET Thomas Petazzoni wrote:
> If you're still interested in this package, could you have a look?
I took another look and basically came to the same conclusion as you. In an
ideal world I'd see it through, but my situation changed in the meantime and
right now I don't have the bandwidth to dive into fixing those problems. Sorry
about that.
Best regards,
Frank
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 <frank.vanbever@essensium.com> 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..c85bf85d33 --- /dev/null +++ b/package/fluent-bit/0001-lib-flb_libco-ppc-Fix-signature-for-co_create-API-18.patch @@ -0,0 +1,42 @@ +From 731dab51a41d3635ceae5481d89d30148caac96d Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 11 Feb 2020 19:36:21 -0800 +Subject: [PATCH] lib: flb_libco: ppc: Fix signature for co_create API (#1886) + +This patch fixes build errors for the flb_libco dependency when builidng +for PowerPC. + +Backported from: 731dab51a41d3635ceae5481d89d30148caac96d +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Frank Vanbever <frank.vanbever@essensium.com> +--- + 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))