fluentbit Upgrade to 1.3.5 -> 1.9.6

Signed-off-by: Paulo Neves <ptsneves@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Paulo Neves 2022-08-02 11:26:00 +02:00 committed by Khem Raj
parent 21233e7ac9
commit d09755e8e3
12 changed files with 261 additions and 325 deletions

View File

@ -0,0 +1,71 @@
From 6a704ab7bf69cd5d6970b3a7d3ae7798b26027c1 Mon Sep 17 00:00:00 2001
From: Paulo Neves <ptsneves@gmail.com>
Date: Thu, 28 Jul 2022 11:28:41 +0200
Subject: [PATCH] CMakeLists.txt Do not use private makefile $< target
$< is a private detail from the Makefile generated by CMakefile and
are not under control or to be used at the CMakeLists level. In 3.20
that private generation changed pre-requisite targets[1] and now logs
contain the path compiler_depend.ts instead of the actual file.
Upstream status: Pending [1]
[1] https://github.com/fluent/fluent-bit/issues/5492
---
CMakeLists.txt | 6 +-----
lib/chunkio/CMakeLists.txt | 7 +------
lib/cmetrics/CMakeLists.txt | 7 +------
3 files changed, 3 insertions(+), 17 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3dba5a8..d94b988 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -46,11 +46,7 @@ else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
endif()
-if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__='\"$(subst ${CMAKE_SOURCE_DIR}/,,$(abspath $<))\"'")
-else()
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
-endif()
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7l")
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -latomic")
diff --git a/lib/chunkio/CMakeLists.txt b/lib/chunkio/CMakeLists.txt
index bbe1f39..809ea93 100644
--- a/lib/chunkio/CMakeLists.txt
+++ b/lib/chunkio/CMakeLists.txt
@@ -14,12 +14,7 @@ else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall ")
endif()
-# Set __FILENAME__
-if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__='\"$(subst ${CMAKE_SOURCE_DIR}/,,$(abspath $<))\"'")
-else()
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
-endif()
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
include(cmake/macros.cmake)
diff --git a/lib/cmetrics/CMakeLists.txt b/lib/cmetrics/CMakeLists.txt
index 60e8774..e3d6149 100644
--- a/lib/cmetrics/CMakeLists.txt
+++ b/lib/cmetrics/CMakeLists.txt
@@ -34,12 +34,7 @@ set(CMT_VERSION_MINOR 3)
set(CMT_VERSION_PATCH 5)
set(CMT_VERSION_STR "${CMT_VERSION_MAJOR}.${CMT_VERSION_MINOR}.${CMT_VERSION_PATCH}")
-# Define __FILENAME__ consistently across Operating Systems
-if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__='\"$(subst ${CMAKE_SOURCE_DIR}/,,$(abspath $<))\"'")
-else()
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
-endif()
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
# Configuration options
option(CMT_DEV "Enable development mode" No)

View File

@ -1,28 +0,0 @@
From 5571f949fa2048b79c197b5b10a11ecb1891cbe9 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 23 Apr 2022 08:24:34 -0700
Subject: [PATCH] Control sytemd unit install location with SYSTEM_DIR
This helps building when usrmerge is on
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/CMakeLists.txt | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -323,7 +323,11 @@ if(FLB_BINARY)
"${PROJECT_SOURCE_DIR}/init/systemd.in"
${FLB_SYSTEMD_SCRIPT}
)
- install(FILES ${FLB_SYSTEMD_SCRIPT} DESTINATION /lib/systemd/system)
+ if(SYSTEMD_DIR)
+ install(FILES ${FLB_SYSTEMD_SCRIPT} DESTINATION ${SYSTEMD_DIR})
+ else()
+ install(FILES ${FLB_SYSTEMD_SCRIPT} DESTINATION /lib/systemd/system)
+ endif()
install(DIRECTORY DESTINATION ${FLB_INSTALL_CONFDIR})
elseif(FLB_UPSTART)
set(FLB_UPSTART_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.conf")

View File

@ -1,43 +0,0 @@
From 3d7390c89c2205d1eed0384be0bb65adb675e60d Mon Sep 17 00:00:00 2001
From: Ramon Fried <ramon@neureality.ai>
Date: Tue, 9 Feb 2021 18:59:59 +0200
Subject: [PATCH] bin: fix SIGSEGV caused by using flb_free instead of
mk_mem_free
Upstream-Status: Accepted
Signed-off-by: Ramon Fried <ramon@neureality.ai>
---
src/fluent-bit.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/fluent-bit.c b/src/fluent-bit.c
index c0c73b4..989cfde 100644
--- a/src/fluent-bit.c
+++ b/src/fluent-bit.c
@@ -289,7 +289,7 @@ static int input_set_property(struct flb_input_instance *in, char *kv)
in->p->name, key);
}
- flb_free(key);
+ mk_mem_free(key);
return ret;
}
@@ -314,7 +314,7 @@ static int output_set_property(struct flb_output_instance *out, char *kv)
}
ret = flb_output_set_property(out, key, value);
- flb_free(key);
+ mk_mem_free(key);
return ret;
}
@@ -340,7 +340,7 @@ static int filter_set_property(struct flb_filter_instance *filter, char *kv)
}
ret = flb_filter_set_property(filter, key, value);
- flb_free(key);
+ mk_mem_free(key);
return ret;
}

View File

@ -1,38 +0,0 @@
From be4032079c931704f52e29f5da5c01cde24ac842 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 16 Jan 2020 10:44:58 -0800
Subject: [PATCH] ppc: Fix signature for co_create API
Upstream-Status: Submitted [https://github.com/fluent/fluent-bit/pull/1886]
Signed-off-by: Khem Raj <raj.khem@gmail.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.25.0

View File

@ -0,0 +1,26 @@
From 71dab751a27a2e582b711de22873065dd28f4b65 Mon Sep 17 00:00:00 2001
From: Paulo Neves <ptsneves@gmail.com>
Date: Thu, 28 Jul 2022 11:42:31 +0200
Subject: [PATCH] flb_info.h.in: Do not hardcode compilation directories
Including the source dir in the header makes the header not
reproducible and contaminates it with host builder paths. Instead
make it take CMAKE_DEBUG_SRCDIR that can be set to a known
reproducible value
---
include/fluent-bit/flb_info.h.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/fluent-bit/flb_info.h.in b/include/fluent-bit/flb_info.h.in
index a89485c..2579afc 100644
--- a/include/fluent-bit/flb_info.h.in
+++ b/include/fluent-bit/flb_info.h.in
@@ -23,7 +23,7 @@
#define STR_HELPER(s) #s
#define STR(s) STR_HELPER(s)
-#define FLB_SOURCE_DIR "@CMAKE_SOURCE_DIR@"
+#define FLB_SOURCE_DIR "@CMAKE_DEBUG_SRCDIR@"
/* General flags set by CMakeLists.txt */
@FLB_BUILD_FLAGS@

View File

@ -1,82 +0,0 @@
From 7c3b1dfb174312594d3317c24ed71c60398f653f Mon Sep 17 00:00:00 2001
From: Ramon Fried <ramon@neureality.ai>
Date: Wed, 10 Feb 2021 04:23:36 +0200
Subject: [PATCH] parser: Fix SIGSEGV caused by using flb_free instead of
mk_mem_free
Upstream-Status: Backport (fix only for 1.3.5)
Signed-off-by: Ramon Fried <ramon@neureality.ai>
---
src/flb_parser.c | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/src/flb_parser.c b/src/flb_parser.c
index d35c568..7c20e12 100644
--- a/src/flb_parser.c
+++ b/src/flb_parser.c
@@ -490,7 +490,7 @@ int flb_parser_conf_file(const char *file, struct flb_config *config)
MK_RCONF_STR);
if (str) {
time_keep = flb_utils_bool(str);
- flb_free(str);
+ mk_mem_free(str);
}
else {
time_keep = FLB_FALSE;
@@ -522,23 +522,23 @@ int flb_parser_conf_file(const char *file, struct flb_config *config)
flb_debug("[parser] new parser registered: %s", name);
- flb_free(name);
- flb_free(format);
+ mk_mem_free(name);
+ mk_mem_free(format);
if (regex) {
- flb_free(regex);
+ mk_mem_free(regex);
}
if (time_fmt) {
- flb_free(time_fmt);
+ mk_mem_free(time_fmt);
}
if (time_key) {
- flb_free(time_key);
+ mk_mem_free(time_key);
}
if (time_offset) {
- flb_free(time_offset);
+ mk_mem_free(time_offset);
}
if (types_str) {
- flb_free(types_str);
+ mk_mem_free(types_str);
}
decoders = NULL;
@@ -548,19 +548,19 @@ int flb_parser_conf_file(const char *file, struct flb_config *config)
return 0;
fconf_error:
- flb_free(name);
- flb_free(format);
+ mk_mem_free(name);
+ mk_mem_free(format);
if (regex) {
- flb_free(regex);
+ mk_mem_free(regex);
}
if (time_fmt) {
- flb_free(time_fmt);
+ mk_mem_free(time_fmt);
}
if (time_key) {
- flb_free(time_key);
+ mk_mem_free(time_key);
}
if (types_str) {
- flb_free(types_str);
+ mk_mem_free(types_str);
}
if (decoders) {
flb_parser_decoder_list_destroy(decoders);

View File

@ -0,0 +1,28 @@
From 8486b912281ae85db0c9fc05bb546f16872e114c Mon Sep 17 00:00:00 2001
From: Paulo Neves <ptsneves@gmail.com>
Date: Thu, 28 Jul 2022 14:37:18 +0200
Subject: [PATCH] mbedtls: Do not overwrite CFLAGS
bitbake passes CFLAGS that are often in conflict with the ones set
in mbedtls' CMakeLists.txt. Such conflicts are the inability to use
FORTIFY_SOURCE=2 except in release mode
Upstream status: Innapropriate due to fluent-bit having it's own Release
flags that also overwrite bitbake ones.
---
lib/mbedtls-2.28.0/CMakeLists.txt | 2 --
1 file changed, 2 deletions(-)
diff --git a/lib/mbedtls-2.28.0/CMakeLists.txt b/lib/mbedtls-2.28.0/CMakeLists.txt
index d76bddc..e717846 100644
--- a/lib/mbedtls-2.28.0/CMakeLists.txt
+++ b/lib/mbedtls-2.28.0/CMakeLists.txt
@@ -204,8 +204,6 @@ if(CMAKE_COMPILER_IS_GNU)
if (GCC_VERSION VERSION_GREATER 7.0 OR GCC_VERSION VERSION_EQUAL 7.0)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wformat-overflow=2 -Wformat-truncation")
endif()
- set(CMAKE_C_FLAGS_RELEASE "-O2")
- set(CMAKE_C_FLAGS_DEBUG "-O0 -g3")
set(CMAKE_C_FLAGS_COVERAGE "-O0 -g3 --coverage")
set(CMAKE_C_FLAGS_ASAN "-fsanitize=address -fno-common -fsanitize=undefined -fno-sanitize-recover=all -O3")
set(CMAKE_C_FLAGS_ASANDBG "-fsanitize=address -fno-common -fsanitize=undefined -fno-sanitize-recover=all -O1 -g3 -fno-omit-frame-pointer -fno-optimize-sibling-calls")

View File

@ -0,0 +1,64 @@
From 7a792624925d46690c1f07fe4b194b5f4c510db6 Mon Sep 17 00:00:00 2001
From: Paulo Neves <ptsneves@gmail.com>
Date: Tue, 2 Aug 2022 09:57:05 +0200
Subject: [PATCH 1/1] build: Make systemd init systemd detection contingent on
pkgconfig
Use pkg-config to get systemd.pc variables and systemdunitdir. Those
variable ensure that .service files are installed in the correct paths
and only when systemd is detected.
Upstream Status: Pending [1]
[1] https://github.com/fluent/fluent-bit/pull/5818
---
cmake/FindJournald.cmake | 4 ++++
src/CMakeLists.txt | 4 ++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/cmake/FindJournald.cmake b/cmake/FindJournald.cmake
index f5a3a832b..9e6657a29 100644
--- a/cmake/FindJournald.cmake
+++ b/cmake/FindJournald.cmake
@@ -5,6 +5,8 @@
# JOURNALD_INCLUDE_DIR - the Journald include directory
# JOURNALD_LIBRARIES - Link these to use Journald
# JOURNALD_DEFINITIONS - Compiler switches required for using Journald
+# SYSTEMD_UNITDIR - The systemd units' directory
+#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
@@ -16,7 +18,9 @@
# in the FIND_PATH() and FIND_LIBRARY() calls
find_package(PkgConfig)
pkg_check_modules(PC_JOURNALD QUIET systemd)
+pkg_get_variable(PC_SYSTEMD_UNITDIR systemd "systemdsystemunitdir")
+set(SYSTEMD_UNITDIR ${PC_SYSTEMD_UNITDIR})
set(JOURNALD_FOUND ${PC_JOURNALD_FOUND})
set(JOURNALD_DEFINITIONS ${PC_JOURNALD_CFLAGS_OTHER})
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 522bbf9bd..30743d8d6 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -480,13 +480,13 @@ if(FLB_BINARY)
endif()
# Detect init system, install upstart, systemd or init.d script
- if(IS_DIRECTORY /lib/systemd/system)
+ if(DEFINED SYSTEMD_UNITDIR)
set(FLB_SYSTEMD_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.service")
configure_file(
"${PROJECT_SOURCE_DIR}/init/systemd.in"
${FLB_SYSTEMD_SCRIPT}
)
- install(FILES ${FLB_SYSTEMD_SCRIPT} COMPONENT binary DESTINATION /lib/systemd/system)
+ install(FILES ${FLB_SYSTEMD_SCRIPT} COMPONENT binary DESTINATION ${SYSTEMD_UNITDIR})
install(DIRECTORY DESTINATION ${FLB_INSTALL_CONFDIR} COMPONENT binary)
elseif(IS_DIRECTORY /usr/share/upstart)
set(FLB_UPSTART_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.conf")
--
2.25.1

View File

@ -1,27 +0,0 @@
help complier to use intrinsics, clang in few cases e.g. aarch64 can not
and then requires linking with libm, its the only function needed from libm then
its good to avoid needing it.
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/include/fluent-bit/stream_processor/flb_sp_timeseries.h
+++ b/include/fluent-bit/stream_processor/flb_sp_timeseries.h
@@ -207,7 +207,7 @@ void cb_forecast_calc(struct timeseries
result = b0 + b1 * (val->f64 + *forecast->latest_x);
break;
default:
- result = nan("");
+ result = __builtin_nan("");
break;
}
@@ -283,7 +283,7 @@ void cb_forecast_r_calc(struct timeserie
result = ((val->i64 - b0) / b1) - *forecast->latest_x;
break;
default:
- result = nan("");
+ result = __builtin_nan("");
break;
}

View File

@ -1,38 +0,0 @@
Define CMake variables to indicate init system for target
incase of cross compile, detecting systemd support based on
host directory structure is not right thing to do
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.kheem@gmail.com>
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -317,7 +317,7 @@ if(FLB_BINARY)
install(TARGETS fluent-bit-bin RUNTIME DESTINATION ${FLB_INSTALL_BINDIR})
# Detect init system, install upstart, systemd or init.d script
- if(IS_DIRECTORY /lib/systemd/system)
+ if(FLB_SYSTEMD)
set(FLB_SYSTEMD_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.service")
configure_file(
"${PROJECT_SOURCE_DIR}/init/systemd.in"
@@ -325,7 +325,7 @@ if(FLB_BINARY)
)
install(FILES ${FLB_SYSTEMD_SCRIPT} DESTINATION /lib/systemd/system)
install(DIRECTORY DESTINATION ${FLB_INSTALL_CONFDIR})
- elseif(IS_DIRECTORY /usr/share/upstart)
+ elseif(FLB_UPSTART)
set(FLB_UPSTART_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.conf")
configure_file(
"${PROJECT_SOURCE_DIR}/init/upstart.in"
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -70,6 +70,8 @@ option(FLB_RECORD_ACCESSOR "Enable re
option(FLB_SYSTEM_STRPTIME "Use strptime in system libc" Yes)
option(FLB_STATIC_CONF "Build binary using static configuration")
option(FLB_STREAM_PROCESSOR "Enable Stream Processor" Yes)
+option(FLB_SYSTEMD "Enable systemd init system" No)
+option(FLB_UPSTART "Enable upstart init system" No)
option(FLB_CORO_STACK_SIZE "Set coroutine stack size")
# Metrics: Experimental Feature, disabled by default on 0.12 series

View File

@ -1,69 +0,0 @@
SUMMARY = "Fast Log processor and Forwarder"
DESCRIPTION = "Fluent Bit is a data collector, processor and \
forwarder for Linux. It supports several input sources and \
backends (destinations) for your data. \
"
HOMEPAGE = "http://fluentbit.io"
BUGTRACKER = "https://github.com/fluent/fluent-bit/issues"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
SECTION = "net"
SRC_URI = "http://fluentbit.io/releases/1.3/fluent-bit-${PV}.tar.gz \
file://jemalloc.patch \
file://cross-build-init-system-detection.patch \
file://builtin-nan.patch \
file://0001-ppc-Fix-signature-for-co_create-API.patch \
file://0001-bin-fix-SIGSEGV-caused-by-using-flb_free-instead-of-.patch \
file://0002-parser-Fix-SIGSEGV-caused-by-using-flb_free-instead-.patch \
file://0001-Control-sytemd-unit-install-location-with-SYSTEM_DIR.patch \
"
SRC_URI[md5sum] = "6eae6dfd0a874e5dd270c36e9c68f747"
SRC_URI[sha256sum] = "e037c76c89269c8dc4027a08e442fefd2751b0f1e0f9c38f9a4b12d781a9c789"
S = "${WORKDIR}/fluent-bit-${PV}"
DEPENDS = "zlib bison-native flex-native"
DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
DEPENDS:append:libc-musl = " fts "
INSANE_SKIP:${PN}-dev += "dev-elf"
LTO = ""
# Use CMake 'Unix Makefiles' generator
OECMAKE_GENERATOR ?= "Unix Makefiles"
# Fluent Bit build options
# ========================
# Host related setup
EXTRA_OECMAKE += "-DGNU_HOST=${HOST_SYS} -DFLB_ALL=ON -DFLB_TD=1"
# Disable LuaJIT and filter_lua support
EXTRA_OECMAKE += "-DFLB_LUAJIT=Off -DFLB_FILTER_LUA=Off "
# Disable Library and examples
EXTRA_OECMAKE += "-DFLB_SHARED_LIB=Off -DFLB_EXAMPLES=Off "
# Enable systemd iff systemd is in DISTRO_FEATURES
EXTRA_OECMAKE += "${@bb.utils.contains('DISTRO_FEATURES','systemd','-DFLB_SYSTEMD=On -DSYSTEMD_DIR=${systemd_system_unitdir}','-DFLB_SYSTEMD=Off',d)}"
EXTRA_OECMAKE:append:riscv64 = " -DFLB_DEPS='atomic'"
EXTRA_OECMAKE:append:riscv32 = " -DFLB_DEPS='atomic'"
# Kafka Output plugin (disabled by default): note that when
# enabling Kafka output plugin, the backend library librdkafka
# requires 'openssl' as a dependency.
#
# DEPENDS += "openssl "
# EXTRA_OECMAKE += "-DFLB_OUT_KAFKA=On "
inherit cmake systemd
CFLAGS += "-fcommon"
SYSTEMD_SERVICE:${PN} = "td-agent-bit.service"
TARGET_CC_ARCH:append = " ${SELECTED_OPTIMIZATION}"

View File

@ -0,0 +1,72 @@
SUMMARY = "Fast Log processor and Forwarder"
DESCRIPTION = "Fluent Bit is a data collector, processor and \
forwarder for Linux. It supports several input sources and \
backends (destinations) for your data. \
"
HOMEPAGE = "http://fluentbit.io"
BUGTRACKER = "https://github.com/fluent/fluent-bit/issues"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
SECTION = "net"
SRC_URI = "https://releases.fluentbit.io/1.9/source-${PV}.tar.gz;subdir=fluent-bit-${PV} \
file://0001-CMakeLists.txt-Do-not-use-private-makefile-target.patch \
file://0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch \
file://0003-mbedtls-Do-not-overwrite-CFLAGS.patch \
file://0004-build-Make-systemd-init-systemd-detection-contingent.patch \
"
SRC_URI[sha256sum] = "5ef7dd97e10936269fe5f4e5d3ebf16559333066f7d6757ba12464a9d6186570"
S = "${WORKDIR}/fluent-bit-${PV}"
DEPENDS = "zlib bison-native flex-native openssl"
DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
PACKAGECONFIG[yaml] = "-DFLB_CONFIG_YAML=On,-DFLB_CONFIG_YAML=Off,libyaml"
PACKAGECONFIG[kafka] = "-DFLB_OUT_KAFKA=On,-DFLB_OUT_KAFKA=Off,librdkafka"
PACKAGECONFIG[examples] = "-DFLB_EXAMPLES=On,-DFLB_EXAMPLES=Off"
PACKAGECONFIG[jemalloc] = "-DFLB_JEMALLOC=On,-DFLB_JEMALLOC=Off,jemalloc"
#TODO add more fluentbit options to PACKAGECONFIG[]
DEPENDS:append:libc-musl = " fts "
# flex hardcodes the input file in #line directives leading to TMPDIR contamination of debug sources.
do_compile:append() {
find ${B} -name '*.c' -or -name '*.h' | xargs sed -i -e 's|${TMPDIR}|/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/|g'
}
FLB_JEMALLOC_OPTIONS_LIST = "--with-jemalloc-prefix=je_ --with-lg-quantum=3"
PACKAGECONFIG ?= "yaml"
LTO = ""
# Use CMake 'Unix Makefiles' generator
OECMAKE_GENERATOR ?= "Unix Makefiles"
# Fluent Bit build options
# ========================
# Host related setup
EXTRA_OECMAKE += "-DGNU_HOST=${HOST_SYS} -DFLB_TD=1"
# Disable LuaJIT and filter_lua support
EXTRA_OECMAKE += "-DFLB_LUAJIT=Off -DFLB_FILTER_LUA=Off "
# Disable Library and examples
EXTRA_OECMAKE += "-DFLB_SHARED_LIB=Off"
# Enable systemd iff systemd is in DISTRO_FEATURES
EXTRA_OECMAKE += "${@bb.utils.contains('DISTRO_FEATURES','systemd','-DFLB_SYSTEMD=On','-DFLB_SYSTEMD=Off',d)}"
EXTRA_OECMAKE:append:riscv64 = " -DFLB_DEPS='atomic'"
EXTRA_OECMAKE:append:riscv32 = " -DFLB_DEPS='atomic'"
inherit cmake systemd pkgconfig
SYSTEMD_SERVICE:${PN} = "td-agent-bit.service"
EXTRA_OECMAKE += "-DCMAKE_DEBUG_SRCDIR=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/"
TARGET_CC_ARCH += " ${SELECTED_OPTIMIZATION}"