Browse Source

package/ledmon: update patch to fix musl build

Updated patch following an upstream review:
https://github.com/md-raid-utilities/ledmon/pull/272#issuecomment-3596495739

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Bernd Kuhls 1 month ago
parent
commit
b4668eded3

+ 0 - 100
package/ledmon/0001-Include-libgen.h-to-fix-musl-builds.patch

@@ -1,100 +0,0 @@
-From 95adecd3cc8e94f9964c34fdf0354c209acce166 Mon Sep 17 00:00:00 2001
-From: Bernd Kuhls <bernd@kuhls.net>
-Date: Thu, 27 Nov 2025 21:17:22 +0100
-Subject: [PATCH] Include libgen.h to fix musl builds
-
-Fixes various build errors like
-
-block.c: In function 'block_set_devnode':
-block.c:226:22: error: implicit declaration of function 'basename'
- [-Wimplicit-function-declaration]
-  226 |         char *name = basename(device->sysfs_path);
-
-Upstream: https://github.com/md-raid-utilities/ledmon/pull/272
-
-Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
-[Bernd: backported upstream PR to v1.1.0]
----
- src/ledctl/ledctl.c | 1 +
- src/ledmon/ledmon.c | 1 +
- src/lib/block.c     | 1 +
- src/lib/npem.c      | 1 +
- src/lib/slot.c      | 1 +
- src/lib/vmdssd.c    | 1 +
- 6 files changed, 6 insertions(+)
-
-diff --git a/src/ledctl/ledctl.c b/src/ledctl/ledctl.c
-index 30adc74..af2ea1b 100644
---- a/src/ledctl/ledctl.c
-+++ b/src/ledctl/ledctl.c
-@@ -5,6 +5,7 @@
- #include <ctype.h>
- #include <errno.h>
- #include <getopt.h>
-+#include <libgen.h>
- #include <linux/limits.h>
- #include <inttypes.h>
- #include <limits.h>
-diff --git a/src/ledmon/ledmon.c b/src/ledmon/ledmon.c
-index 37ef69a..4644492 100644
---- a/src/ledmon/ledmon.c
-+++ b/src/ledmon/ledmon.c
-@@ -5,6 +5,7 @@
- #include <errno.h>
- #include <fcntl.h>
- #include <getopt.h>
-+#include <libgen.h>
- #include <limits.h>
- #include <signal.h>
- #include <stdint.h>
-diff --git a/src/lib/block.c b/src/lib/block.c
-index 23dc34f..afa7d57 100644
---- a/src/lib/block.c
-+++ b/src/lib/block.c
-@@ -3,6 +3,7 @@
- 
- #include <dirent.h>
- #include <fcntl.h>
-+#include <libgen.h>
- #include <limits.h>
- #include <stdint.h>
- #include <stdio.h>
-diff --git a/src/lib/npem.c b/src/lib/npem.c
-index bdceee3..f980ba8 100644
---- a/src/lib/npem.c
-+++ b/src/lib/npem.c
-@@ -2,6 +2,7 @@
- // Copyright (C) 2022 Intel Corporation.
- 
- #include <errno.h>
-+#include <libgen.h>
- #include <stdio.h>
- #include <string.h>
- #include <pci/pci.h>
-diff --git a/src/lib/slot.c b/src/lib/slot.c
-index 1044ddf..68e3009 100644
---- a/src/lib/slot.c
-+++ b/src/lib/slot.c
-@@ -1,6 +1,7 @@
- // SPDX-License-Identifier: LGPL-2.1-or-later
- // Copyright (C) 2023 Intel Corporation.
- 
-+#include <libgen.h>
- #include <stdio.h>
- #include <string.h>
- 
-diff --git a/src/lib/vmdssd.c b/src/lib/vmdssd.c
-index 8a6e846..0270a7d 100644
---- a/src/lib/vmdssd.c
-+++ b/src/lib/vmdssd.c
-@@ -2,6 +2,7 @@
- // Copyright (C) 2022 Intel Corporation.
- 
- #include <errno.h>
-+#include <libgen.h>
- #include <limits.h>
- #include <stdlib.h>
- #include <stdint.h>
--- 
-2.47.3
-

+ 42 - 0
package/ledmon/0001-libled-provide-basename-if-GLIBC-is-not-avialable.patch

@@ -0,0 +1,42 @@
+From 4c0477bdaef56314eb4df4a432be54cc49238be0 Mon Sep 17 00:00:00 2001
+From: Bernd Kuhls <bernd@kuhls.net>
+Date: Mon, 1 Dec 2025 19:07:42 +0100
+Subject: [PATCH] libled: provide basename if GLIBC is not avialable
+
+If GNU basename is not avilable, define it. It is safer to use that
+rather than include libgen.h with XPG basename() definition.
+
+Suggested in
+https://github.com/md-raid-utilities/ledmon/pull/272#issuecomment-3596495739
+
+Code copied from
+https://github.com/md-raid-utilities/mdadm/commit/9dbd11e091f84eb0bf9d717283774816c4c4453d
+
+Upstream: https://github.com/md-raid-utilities/ledmon/pull/272
+
+Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
+---
+ src/lib/libled_internal.h | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/src/lib/libled_internal.h b/src/lib/libled_internal.h
+index 2355d30..2061fc2 100644
+--- a/src/lib/libled_internal.h
++++ b/src/lib/libled_internal.h
+@@ -70,4 +70,13 @@ led_status_t device_exclude_pattern_add(struct led_ctx *ctx, const char *path);
+  */
+ void lib_log(struct led_ctx *ctx, enum led_log_level_enum loglevel, const char *buf, ...)
+ 				__attribute__ ((format (printf, 3, 4)));
++
++/*
++ * Ensure GNU basename behavior on GLIBC less systems.
++ */
++#ifndef __GLIBC__
++#define basename(path) \
++       (strrchr((path), '/') ? strrchr((path),'/') + 1 : (path))
++#endif
++
+ #endif
+-- 
+2.47.3
+