diff mbox series

[meta-oe] fluentbit: Mitigate init manager detection issues

Message ID 20241021165703.3473986-1-niko.mauno@vaisala.com
State Accepted
Headers show
Series [meta-oe] fluentbit: Mitigate init manager detection issues | expand

Commit Message

Niko Mauno Oct. 21, 2024, 4:57 p.m. UTC
Avoid following CMake failure which during do_configure stemming from
non-cross compile friendly condition check executed on a build host
which has /usr/share/upstart directory

  | CMake Error at src/CMakeLists.txt:550 (install):
  |   install DIRECTORY given unknown argument "/etc/fluent-bit/".

Also handle systemd init manager case more appropriately, so that it
works also when the build host does not have a /lib/systemd/system
directory.

Signed-off-by: Niko Mauno <niko.mauno@vaisala.com>
---
 ...ts.txt-Revise-init-manager-deduction.patch | 41 +++++++++++++++++++
 ...able-installing-systemd-service-file.patch | 40 ------------------
 .../fluentbit/fluentbit_3.1.9.bb              |  9 +++-
 3 files changed, 49 insertions(+), 41 deletions(-)
 create mode 100644 meta-oe/recipes-extended/fluentbit/fluentbit/0003-CMakeLists.txt-Revise-init-manager-deduction.patch
 delete mode 100644 meta-oe/recipes-extended/fluentbit/fluentbit/0003-Disable-installing-systemd-service-file.patch
diff mbox series

Patch

diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0003-CMakeLists.txt-Revise-init-manager-deduction.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0003-CMakeLists.txt-Revise-init-manager-deduction.patch
new file mode 100644
index 0000000000..5105444dc0
--- /dev/null
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0003-CMakeLists.txt-Revise-init-manager-deduction.patch
@@ -0,0 +1,41 @@ 
+From c9969cc46e5e4d58db28c89b22bebe42d9f96962 Mon Sep 17 00:00:00 2001
+From: Niko Mauno <niko.mauno@vaisala.com>
+Date: Mon, 21 Oct 2024 16:02:46 +0000
+Subject: [PATCH] CMakeLists.txt: Revise init manager deduction
+
+The init manager deduction is not cross-compile friendly, so replace
+the host specific condition checks with placeholders that can be
+replaced in Yocto recipe.
+
+Signed-off-by: Niko Mauno <niko.mauno@vaisala.com>
+
+Upstream-Status: Inappropriate [configuration]
+---
+ src/CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 084f2c57d..f0f35f00b 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -532,7 +532,7 @@ if(FLB_BINARY)
+     set(SYSTEMD_UNITDIR  /lib/systemd/system)
+   endif()
+ 
+-  if(SYSTEMD_UNITDIR)
++  if(@INIT_MANAGER_IS_SYSTEMD@)
+     set(FLB_SYSTEMD_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.service")
+     configure_file(
+       "${PROJECT_SOURCE_DIR}/init/systemd.in"
+@@ -540,7 +540,7 @@ if(FLB_BINARY)
+       )
+     install(FILES ${FLB_SYSTEMD_SCRIPT} COMPONENT binary DESTINATION ${SYSTEMD_UNITDIR})
+     install(DIRECTORY DESTINATION ${FLB_INSTALL_CONFDIR} COMPONENT binary)
+-  elseif(IS_DIRECTORY /usr/share/upstart)
++  elseif(@INIT_MANAGER_IS_UPSTART@)
+     set(FLB_UPSTART_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.conf")
+     configure_file(
+       "${PROJECT_SOURCE_DIR}/init/upstart.in"
+-- 
+2.39.2
+
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0003-Disable-installing-systemd-service-file.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0003-Disable-installing-systemd-service-file.patch
deleted file mode 100644
index 36a0092ba8..0000000000
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/0003-Disable-installing-systemd-service-file.patch
+++ /dev/null
@@ -1,40 +0,0 @@ 
-From c3b891eeec691753fccdf8e0a4541dcba244ec6b Mon Sep 17 00:00:00 2001
-From: Niko Mauno <niko.mauno@vaisala.com>
-Date: Thu, 10 Oct 2024 11:06:07 +0300
-Subject: [PATCH] Disable installing systemd service file
-
-With this we avoid the the following BitBake error when using some
-other init manager than SystemD:
-
-  ERROR: fluentbit-3.1.9-r0 do_package: QA Issue: fluentbit: Files/directories were installed but not shipped in any package:
-    /lib
-    /lib/systemd
-    /lib/systemd/system
-    /lib/systemd/system/fluent-bit.service
-  Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
-  fluentbit: 4 installed and not shipped files. [installed-vs-shipped]
-  ERROR: fluentbit-3.1.9-r0 do_package: Fatal QA errors were found, failing task.
-
-Upstream-Status: Inappropriate [hack]
-
-Signed-off-by: Niko Mauno <niko.mauno@vaisala.com>
----
- src/CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index e24666484..c102806d0 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -534,7 +534,7 @@ if(FLB_BINARY)
-     set(SYSTEMD_UNITDIR  /lib/systemd/system)
-   endif()
- 
--  if(SYSTEMD_UNITDIR)
-+  if(FALSE)
-     set(FLB_SYSTEMD_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.service")
-     configure_file(
-       "${PROJECT_SOURCE_DIR}/init/systemd.in"
--- 
-2.39.2
-
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit_3.1.9.bb b/meta-oe/recipes-extended/fluentbit/fluentbit_3.1.9.bb
index fc67236d3e..f96e1a7edc 100644
--- a/meta-oe/recipes-extended/fluentbit/fluentbit_3.1.9.bb
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit_3.1.9.bb
@@ -22,7 +22,7 @@  SRC_URI = "\
     git://github.com/fluent/fluent-bit.git;branch=3.1;protocol=https \
     file://0001-lib-Do-not-use-private-makefile-targets-in-CMakelist.patch \
     file://0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', 'file://0003-Disable-installing-systemd-service-file.patch', d)} \
+    file://0003-CMakeLists.txt-Revise-init-manager-deduction.patch \
 "
 SRC_URI:append:libc-musl = "\
     file://0004-chunkio-Link-with-fts-library-with-musl.patch \
@@ -116,6 +116,13 @@  EXTRA_OECMAKE:append:riscv32 = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
 EXTRA_OECMAKE:append:riscv64 = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
 EXTRA_OECMAKE:append:x86 = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
 
+do_configure:prepend() {
+    sed -i \
+        -e 's#@INIT_MANAGER_IS_SYSTEMD@#'${@'TRUE' if d.getVar('INIT_MANAGER') == 'systemd' else 'FALSE'}'#' \
+        -e 's#@INIT_MANAGER_IS_UPSTART@#'${@'TRUE' if d.getVar('INIT_MANAGER') == 'upstart' else 'FALSE'}'#' \
+        ${S}/src/CMakeLists.txt
+}
+
 # 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}|${TARGET_DBGSRC_DIR}/|g'