All of lore.kernel.org
 help / color / mirror / Atom feed
From: Frank Vanbever <frank.vanbever@essensium.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v3 1/1] package/fluentbit: new package
Date: Mon, 17 Feb 2020 15:58:05 +0100	[thread overview]
Message-ID: <20200217145805.18815-1-frank.vanbever@essensium.com> (raw)
In-Reply-To: <20200217133806.21237-1-frank.vanbever@essensium.com>

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
+
+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

  parent reply	other threads:[~2020-02-17 14:58 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-17 13:38 [Buildroot] [PATCH v2 1/1] package/fluentbit: new package Frank Vanbever
2020-02-17 14:09 ` Ryan Barnett
2020-02-17 14:58 ` Frank Vanbever [this message]
2020-03-24 21:42   ` [Buildroot] [PATCH v3 " Romain Naour
2021-12-30 14:53   ` Thomas Petazzoni
2022-01-12 16:59     ` Frank Vanbever

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200217145805.18815-1-frank.vanbever@essensium.com \
    --to=frank.vanbever@essensium.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.