[Buildroot] [PATCH] package/openscap: fix build failure with dbus and musl

Alexis Lothoré via buildroot <[email protected]>
Newsgroups net.busybox.buildroot
Message-ID <[email protected]>
The openscap build can fail with the following error:

In file included from [...]/src/OVAL/probes/unix/linux/systemdunitproperty_probe.c:38:
[...]/src/OVAL/probes/unix/linux/systemdshared.h: In function ‘get_all_systemd_units’:
[...]/src/OVAL/probes/unix/linux/systemdshared.h:188:50: error: implicit declaration of function ‘basename’; did you mean ‘rename’? [-Wimplicit-function-declaration]
  188 |                 char *unit_name_s = oscap_strdup(basename(value.str));
      |                                                  ^~~~~~~~
      |                                                  rename
In file included from [...]/src/OVAL/probes/unix/linux/systemdunitdependency_probe.c:37:
[...]/src/OVAL/probes/unix/linux/systemdshared.h: In function ‘get_all_systemd_units’:
[...]/src/OVAL/probes/unix/linux/systemdshared.h:188:50: error: implicit declaration of function ‘basename’; did you mean ‘rename’? [-Wimplicit-function-declaration]
  188 |                 char *unit_name_s = oscap_strdup(basename(value.str));
      |                                                  ^~~~~~~~
      |                                                  rename

This error happens when:
- dbus is enabled in the configuration, making openscap build probes
  code
- the toolchain uses musl, which does not declare basename() in string.h
  the way glibc does

The build error can be reproduced with the following minimal defconfig:

  BR2_arm=y
  BR2_cortex_a9=y
  BR2_ARM_ENABLE_NEON=y
  BR2_ARM_ENABLE_VFP=y
  BR2_TOOLCHAIN_EXTERNAL=y
  BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
  BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_MUSL_BLEEDING_EDGE=y
  BR2_PACKAGE_DBUS=y
  BR2_PACKAGE_OPENSCAP=y

Backport the upstream fix to allow openscap to build with such
configuration. The custom patch can be removed once openscap is
re-released on its branch 1.3.x.

Fixes: https://autobuild.buildroot.org/results/a874d4f34d36fa9f8566be90ad2d5facb99aec24/
Signed-off-by: Alexis Lothoré <[email protected]>
---
The issue affects master, 2026.05.x and 2025.02.x
---
 ...02-OVAL-probes-add-missing-header-include.patch | 48 ++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/package/openscap/0002-OVAL-probes-add-missing-header-include.patch b/package/openscap/0002-OVAL-probes-add-missing-header-include.patch
new file mode 100644
index 000000000000..0c7598b2b5e1
--- /dev/null
+++ b/package/openscap/0002-OVAL-probes-add-missing-header-include.patch
@@ -0,0 +1,48 @@
+From ab69b76cb40d6f35d252246e965245804b17591f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Alexis=20Lothor=C3=A9?= <[email protected]>
+Date: Thu, 13 Aug 2026 15:18:15 +0200
+Subject: [PATCH] OVAL/probes: add missing header include
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Openscap build can fail with the following log when
+-Wimplicit-function-declaration is turned into an error:
+
+In file included from [...]/src/OVAL/probes/unix/linux/systemdunitproperty_probe.c:38:
+[...]/src/OVAL/probes/unix/linux/systemdshared.h: In function ‘get_all_systemd_units’:
+[...]/src/OVAL/probes/unix/linux/systemdshared.h:188:50: error: implicit declaration of function ‘basename’; did you mean ‘rename’? [-Wimplicit-function-declaration]
+  188 |                 char *unit_name_s = oscap_strdup(basename(value.str));
+      |                                                  ^~~~~~~~
+      |                                                  rename
+In file included from [...]/src/OVAL/probes/unix/linux/systemdunitdependency_probe.c:37:
+[...]/src/OVAL/probes/unix/linux/systemdshared.h: In function ‘get_all_systemd_units’:
+[...]/src/OVAL/probes/unix/linux/systemdshared.h:188:50: error: implicit declaration of function ‘basename’; did you mean ‘rename’? [-Wimplicit-function-declaration]
+  188 |                 char *unit_name_s = oscap_strdup(basename(value.str));
+      |                                                  ^~~~~~~~
+      |                                                  rename
+
+Add the missing header include pointed by `man 3 basename` to fix the
+error.
+
+Upstream: https://github.com/OpenSCAP/openscap/commit/ab69b76cb40d6f35d252246e965245804b17591f
+Signed-off-by: Alexis Lothoré <[email protected]>
+---
+ src/OVAL/probes/unix/linux/systemdshared.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/OVAL/probes/unix/linux/systemdshared.h b/src/OVAL/probes/unix/linux/systemdshared.h
+index 879ae5be9d6c..57e94ca6f49e 100644
+--- a/src/OVAL/probes/unix/linux/systemdshared.h
++++ b/src/OVAL/probes/unix/linux/systemdshared.h
+@@ -35,6 +35,7 @@
+ #include <config.h>
+ #endif
+ 
++#include <libgen.h>
+ #include <limits.h>
+ #include <stdio.h>
+ #include "common/debug_priv.h"
+-- 
+2.55.0
+

---
base-commit: 679b9ead7620bbf193620d1ebf56f53c1764d37a
change-id: 20260814-openscap_musl_dbus-32ab8a575a49

Best regards,
--  
Alexis Lothoré <[email protected]>

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.