blob: 26238e51f162cf509d4fc076f709231c54d6b9b4 [file] [log] [blame]
Patrick Williams92b42cb2022-09-03 06:53:57 -05001SUMMARY = "Fast Log processor and Forwarder"
2DESCRIPTION = "Fluent Bit is a data collector, processor and \
3forwarder for Linux. It supports several input sources and \
4backends (destinations) for your data. \
5"
6
7HOMEPAGE = "http://fluentbit.io"
8BUGTRACKER = "https://github.com/fluent/fluent-bit/issues"
9
10LICENSE = "Apache-2.0"
11LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
12SECTION = "net"
13
Andrew Geisslerfc113ea2023-03-31 09:59:46 -050014SRC_URI = "https://releases.fluentbit.io/1.9/source-${PV}.tar.gz;subdir=fluent-bit-${PV};downloadfilename=${BPN}-${PV}.tar.gz \
Patrick Williams92b42cb2022-09-03 06:53:57 -050015 file://0001-CMakeLists.txt-Do-not-use-private-makefile-target.patch \
16 file://0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch \
17 file://0003-mbedtls-Do-not-overwrite-CFLAGS.patch \
18 file://0004-build-Make-systemd-init-systemd-detection-contingent.patch \
19 file://0001-monkey-Define-_GNU_SOURCE-for-memmem-API-check.patch \
20 file://0002-mbedtls-Remove-unused-variable.patch \
21 file://0003-mbedtls-Disable-documentation-warning-as-error-with-.patch \
22 file://0004-Use-correct-type-to-store-return-from-flb_kv_item_cr.patch \
23 file://0005-stackdriver-Fix-return-type-mismatch.patch \
24 file://0006-monkey-Fix-TLS-detection-testcase.patch \
Andrew Geisslerfc113ea2023-03-31 09:59:46 -050025 file://0007-cmake-Do-not-check-for-upstart-on-build-host.patch \
Patrick Williams92b42cb2022-09-03 06:53:57 -050026 "
Andrew Geissler87f5cff2022-09-30 13:13:31 -050027SRC_URI:remove:x86 = "file://0002-mbedtls-Remove-unused-variable.patch"
Patrick Williams92b42cb2022-09-03 06:53:57 -050028SRC_URI:append:libc-musl = "\
29 file://0001-Use-posix-strerror_r-with-musl.patch \
30 file://0002-chunkio-Link-with-fts-library-with-musl.patch \
31 "
32SRC_URI[sha256sum] = "8ca2ac081d7eee717483c06608adcb5e3d5373e182ad87dba21a23f8278c6540"
33S = "${WORKDIR}/fluent-bit-${PV}"
34
35DEPENDS = "zlib bison-native flex-native openssl"
36DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
37
38PACKAGECONFIG[yaml] = "-DFLB_CONFIG_YAML=On,-DFLB_CONFIG_YAML=Off,libyaml"
39PACKAGECONFIG[kafka] = "-DFLB_OUT_KAFKA=On,-DFLB_OUT_KAFKA=Off,librdkafka"
40PACKAGECONFIG[examples] = "-DFLB_EXAMPLES=On,-DFLB_EXAMPLES=Off"
41PACKAGECONFIG[jemalloc] = "-DFLB_JEMALLOC=On,-DFLB_JEMALLOC=Off,jemalloc"
42#TODO add more fluentbit options to PACKAGECONFIG[]
43
44DEPENDS:append:libc-musl = " fts "
45
46# flex hardcodes the input file in #line directives leading to TMPDIR contamination of debug sources.
47do_compile:append() {
48 find ${B} -name '*.c' -or -name '*.h' | xargs sed -i -e 's|${TMPDIR}|/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/|g'
49}
50
51PACKAGECONFIG ?= "yaml"
52
53LTO = ""
54
55# Use CMake 'Unix Makefiles' generator
56OECMAKE_GENERATOR ?= "Unix Makefiles"
57
58# Fluent Bit build options
59# ========================
60
61# Host related setup
62EXTRA_OECMAKE += "-DGNU_HOST=${HOST_SYS} -DFLB_TD=1"
63
64# Disable LuaJIT and filter_lua support
65EXTRA_OECMAKE += "-DFLB_LUAJIT=Off -DFLB_FILTER_LUA=Off "
66
67# Disable Library and examples
68EXTRA_OECMAKE += "-DFLB_SHARED_LIB=Off"
69
70# Enable systemd iff systemd is in DISTRO_FEATURES
71EXTRA_OECMAKE += "${@bb.utils.contains('DISTRO_FEATURES','systemd','-DFLB_SYSTEMD=On','-DFLB_SYSTEMD=Off',d)}"
72
73# Enable release builds
74EXTRA_OECMAKE += "-DFLB_RELEASE=On"
75
76# musl needs these options
77EXTRA_OECMAKE:append:libc-musl = ' -DFLB_JEMALLOC_OPTIONS="--with-jemalloc-prefix=je_ --with-lg-quantum=3" -DFLB_CORO_STACK_SIZE=24576'
78
79EXTRA_OECMAKE:append:riscv64 = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
80EXTRA_OECMAKE:append:riscv32 = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
81EXTRA_OECMAKE:append:mips = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
Andrew Geissler517393d2023-01-13 08:55:19 -060082EXTRA_OECMAKE:append:powerpc = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
Patrick Williams92b42cb2022-09-03 06:53:57 -050083EXTRA_OECMAKE:append:x86 = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
84
85CFLAGS:append:x86 = " -DMBEDTLS_HAVE_SSE2"
86
87inherit cmake systemd pkgconfig
88
89SYSTEMD_SERVICE:${PN} = "td-agent-bit.service"
90
91EXTRA_OECMAKE += "-DCMAKE_DEBUG_SRCDIR=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/"
92TARGET_CC_ARCH += " ${SELECTED_OPTIMIZATION}"