Signed-off-by: Khem Raj <[email protected]>
---
 ...asename-implementation-from-glib-2.0.patch | 174 ++++++++++++++++++
 .../bluealsa/bluealsa_4.3.0.bb                |   3 +-
 2 files changed, 176 insertions(+), 1 deletion(-)
 create mode 100644 
meta-multimedia/recipes-multimedia/bluealsa/bluealsa/0001-Use-basename-implementation-from-glib-2.0.patch

diff --git 
a/meta-multimedia/recipes-multimedia/bluealsa/bluealsa/0001-Use-basename-implementation-from-glib-2.0.patch
 
b/meta-multimedia/recipes-multimedia/bluealsa/bluealsa/0001-Use-basename-implementation-from-glib-2.0.patch
new file mode 100644
index 0000000000..546f82884b
--- /dev/null
+++ 
b/meta-multimedia/recipes-multimedia/bluealsa/bluealsa/0001-Use-basename-implementation-from-glib-2.0.patch
@@ -0,0 +1,174 @@
+From ebf62deb8422f5ac8e057c24ab10f6dcd50f28dd Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+Date: Sat, 24 Aug 2024 17:02:05 -0700
+Subject: [PATCH] Use basename implementation from glib-2.0
+
+This is portable across various platforms and system C libraries e.g.
+basename differs between glibc and musl, where glibc provides a GNU
+implementation and POSIX version, and musl provides posix version only
+and Newer version of musl have removed prototype for basename in string.h [1]
+which caused build failures with gcc-14 on musl systems.
+
+g_path_get_basename() is implemented in glib-2.0 and is portable across
+these systems. It allocates a new string for the returned value which
+should be free'd by user, however, all our usecases here are in main()
+functions, so technically we are not going to leak any memory.
+
+[1] 
https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Submitted [https://github.com/arkq/bluez-alsa/pull/726]
+Signed-off-by: Khem Raj <[email protected]>
+---
+ src/main.c               | 3 +--
+ test/mock/mock.c         | 2 +-
+ utils/aplay/Makefile.am  | 2 ++
+ utils/aplay/aplay.c      | 3 ++-
+ utils/cli/Makefile.am    | 2 ++
+ utils/cli/cli.c          | 3 ++-
+ utils/rfcomm/Makefile.am | 2 ++
+ utils/rfcomm/rfcomm.c    | 3 ++-
+ 8 files changed, 14 insertions(+), 6 deletions(-)
+
+diff --git a/src/main.c b/src/main.c
+index 96a66ae..be94845 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -276,8 +276,7 @@ int main(int argc, char **argv) {
+                       syslog = true;
+                       break;
+               }
+-
+-      log_open(basename(argv[0]), syslog);
++      log_open(g_path_get_basename(argv[0]), syslog);
+ 
+       if (ba_config_init() != 0) {
+               error("Couldn't initialize bluealsa config");
+diff --git a/test/mock/mock.c b/test/mock/mock.c
+index 947211a..177d3e8 100644
+--- a/test/mock/mock.c
++++ b/test/mock/mock.c
+@@ -256,7 +256,7 @@ int main(int argc, char *argv[]) {
+                       return EXIT_FAILURE;
+               }
+ 
+-      log_open(basename(argv[0]), false);
++      log_open(g_path_get_basename(argv[0]), false);
+       assert(ba_config_init() == 0);
+ 
+       /* Add BT address to the HCI filter to test filtering logic. */
+diff --git a/utils/aplay/Makefile.am b/utils/aplay/Makefile.am
+index 570a4c7..3df0d96 100644
+--- a/utils/aplay/Makefile.am
++++ b/utils/aplay/Makefile.am
+@@ -22,12 +22,14 @@ bluealsa_aplay_CFLAGS = \
+       @ALSA_CFLAGS@ \
+       @BLUEZ_CFLAGS@ \
+       @DBUS1_CFLAGS@ \
++      @GLIB2_CFLAGS@ \
+       @LIBUNWIND_CFLAGS@
+ 
+ bluealsa_aplay_LDADD = \
+       @ALSA_LIBS@ \
+       @BLUEZ_LIBS@ \
+       @DBUS1_LIBS@ \
++      @GLIB2_LIBS@ \
+       @LIBUNWIND_LIBS@
+ 
+ endif
+diff --git a/utils/aplay/aplay.c b/utils/aplay/aplay.c
+index 3de7790..cb48520 100644
+--- a/utils/aplay/aplay.c
++++ b/utils/aplay/aplay.c
+@@ -32,6 +32,7 @@
+ #include <alsa/asoundlib.h>
+ #include <bluetooth/bluetooth.h>
+ #include <dbus/dbus.h>
++#include <glib.h>
+ 
+ #include "shared/dbus-client.h"
+ #include "shared/dbus-client-pcm.h"
+@@ -1105,7 +1106,7 @@ int main(int argc, char *argv[]) {
+                       break;
+               }
+ 
+-      log_open(basename(argv[0]), syslog);
++      log_open(g_path_get_basename(argv[0]), syslog);
+       dbus_threads_init_default();
+ 
+       /* parse options */
+diff --git a/utils/cli/Makefile.am b/utils/cli/Makefile.am
+index 9d99a35..8c5783e 100644
+--- a/utils/cli/Makefile.am
++++ b/utils/cli/Makefile.am
+@@ -27,10 +27,12 @@ bluealsa_cli_SOURCES = \
+ bluealsa_cli_CFLAGS = \
+       -I$(top_srcdir)/src \
+       @DBUS1_CFLAGS@ \
++      @GLIB2_CFLAGS@ \
+       @LIBUNWIND_CFLAGS@
+ 
+ bluealsa_cli_LDADD = \
+       @DBUS1_LIBS@ \
++      @GLIB2_LIBS@ \
+       @LIBUNWIND_LIBS@
+ 
+ endif
+diff --git a/utils/cli/cli.c b/utils/cli/cli.c
+index aeeabe5..83765ab 100644
+--- a/utils/cli/cli.c
++++ b/utils/cli/cli.c
+@@ -22,6 +22,7 @@
+ #include <strings.h>
+ #include <sys/param.h>
+ 
++#include <glib.h>
+ #include <dbus/dbus.h>
+ 
+ #include "cli.h"
+@@ -414,7 +415,7 @@ int main(int argc, char *argv[]) {
+               }
+       }
+ 
+-      log_open(basename(argv[0]), false);
++      log_open(g_path_get_basename(argv[0]), false);
+       dbus_threads_init_default();
+ 
+       DBusError err = DBUS_ERROR_INIT;
+diff --git a/utils/rfcomm/Makefile.am b/utils/rfcomm/Makefile.am
+index 907df1a..2a5f915 100644
+--- a/utils/rfcomm/Makefile.am
++++ b/utils/rfcomm/Makefile.am
+@@ -16,10 +16,12 @@ bluealsa_rfcomm_CFLAGS = \
+       -I$(top_srcdir)/src \
+       @BLUEZ_CFLAGS@ \
+       @DBUS1_CFLAGS@ \
++      @GLIB2_CFLAGS@ \
+       @LIBUNWIND_CFLAGS@
+ 
+ bluealsa_rfcomm_LDADD = \
+       @DBUS1_LIBS@ \
++      @GLIB2_LIBS@ \
+       @LIBUNWIND_LIBS@ \
+       -lreadline
+ 
+diff --git a/utils/rfcomm/rfcomm.c b/utils/rfcomm/rfcomm.c
+index d01f081..abc2130 100644
+--- a/utils/rfcomm/rfcomm.c
++++ b/utils/rfcomm/rfcomm.c
+@@ -25,6 +25,7 @@
+ 
+ #include <bluetooth/bluetooth.h>
+ #include <dbus/dbus.h>
++#include <glib.h>
+ #include <readline/readline.h>
+ #include <readline/history.h>
+ 
+@@ -134,7 +135,7 @@ int main(int argc, char *argv[]) {
+ 
+       char dbus_ba_service[32] = BLUEALSA_SERVICE;
+ 
+-      log_open(basename(argv[0]), false);
++      log_open(g_path_get_basename(argv[0]), false);
+ 
+       while ((opt = getopt_long(argc, argv, opts, longopts, NULL)) != -1)
+               switch (opt) {
diff --git a/meta-multimedia/recipes-multimedia/bluealsa/bluealsa_4.3.0.bb 
b/meta-multimedia/recipes-multimedia/bluealsa/bluealsa_4.3.0.bb
index 419d6e8d22..f089e036e3 100644
--- a/meta-multimedia/recipes-multimedia/bluealsa/bluealsa_4.3.0.bb
+++ b/meta-multimedia/recipes-multimedia/bluealsa/bluealsa_4.3.0.bb
@@ -16,7 +16,8 @@ LIC_FILES_CHKSUM = 
"file://LICENSE;md5=143bc4e73f39cc5e89d6e096ac0315ba"
 
 DEPENDS += "alsa-lib bluez5 dbus glib-2.0-native python3-packaging-native sbc"
 
-SRC_URI = "git://github.com/Arkq/bluez-alsa.git;protocol=https;branch=master"
+SRC_URI = "git://github.com/Arkq/bluez-alsa.git;protocol=https;branch=master \
+           file://0001-Use-basename-implementation-from-glib-2.0.patch"
 
 SRCREV = "959573c2cccef5cf074f5b2fa7941abbd699c5f4"
 
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#111926): 
https://lists.openembedded.org/g/openembedded-devel/message/111926
Mute This Topic: https://lists.openembedded.org/mt/108080616/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to