commit:     1b355098341147c4b48ccec16186a7a157a7cbfd
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 23 14:27:39 2023 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Wed Aug 23 14:48:34 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1b355098

net-wireless/bluez: Fix compilation with clang

Thanks-to: Luca Santarelli
Closes: https://bugs.gentoo.org/912464
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>

 net-wireless/bluez/bluez-5.68.ebuild               |  1 +
 .../bluez/files/bluez-5.68-clang-midi.patch        | 83 ++++++++++++++++++++++
 2 files changed, 84 insertions(+)

diff --git a/net-wireless/bluez/bluez-5.68.ebuild 
b/net-wireless/bluez/bluez-5.68.ebuild
index ef9003114ac9..37f02d578577 100644
--- a/net-wireless/bluez/bluez-5.68.ebuild
+++ b/net-wireless/bluez/bluez-5.68.ebuild
@@ -78,6 +78,7 @@ PATCHES=(
        "${FILESDIR}"/${P}-bap-ebusy-fix.patch
        "${FILESDIR}"/${P}-monitor-decoding.patch
        "${FILESDIR}"/${P}-heap-use-after-free.patch
+       "${FILESDIR}"/${P}-clang-midi.patch
 )
 
 pkg_setup() {

diff --git a/net-wireless/bluez/files/bluez-5.68-clang-midi.patch 
b/net-wireless/bluez/files/bluez-5.68-clang-midi.patch
new file mode 100644
index 000000000000..f62d9f395944
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-5.68-clang-midi.patch
@@ -0,0 +1,83 @@
+From b9e93e01161cf5392f0cbea3400cfa2dae54643d Mon Sep 17 00:00:00 2001
+From: Luiz Augusto von Dentz <[email protected]>
+Date: Mon, 17 Jul 2023 12:36:15 -0700
+Subject: midi: Fix build errors
+
+This fixes the following build errors:
+
+unit/test-midi.c:541:82: error: function definition is not allowed here
+void compare_events_cb(const struct midi_write_parser *parser,
+                                       void *user_data) {
+                                                        ^
+unit/test-midi.c:587:17: error: use of undeclared identifier
+'compare_events_cb'; did you mean 'compare_events'?
+                                     compare_events_cb, &midi_data);
+                                     ^~~~~~~~~~~~~~~~~
+                                     compare_events
+
+profiles/midi/midi.c:61:75: error: function definition is not allowed
+here
+void foreach_cb(const struct midi_write_parser *parser, void *user_data) {
+                                                                         ^
+profiles/midi/midi.c:78:40: error: use of undeclared identifier 'foreach_cb'
+                midi_read_ev(&midi->midi_out, event, foreach_cb, midi);
+                                                     ^
+---
+ profiles/midi/midi.c | 27 ++++++++++++++-------------
+ 1 file changed, 14 insertions(+), 13 deletions(-)
+
+(limited to 'profiles/midi/midi.c')
+
+diff --git a/profiles/midi/midi.c b/profiles/midi/midi.c
+index 40064df3ae..bab309bca7 100644
+--- a/profiles/midi/midi.c
++++ b/profiles/midi/midi.c
+@@ -53,20 +53,21 @@ struct midi {
+       struct midi_write_parser midi_out;
+ };
+ 
++static void foreach_cb(const struct midi_write_parser *parser, void 
*user_data)
++{
++      struct midi *midi = user_data;
++
++      bt_gatt_client_write_without_response(midi->client,
++                                              midi->midi_io_handle, false,
++                                              midi_write_data(parser),
++                                              midi_write_data_size(parser));
++}
++
+ static bool midi_write_cb(struct io *io, void *user_data)
+ {
+       struct midi *midi = user_data;
+       int err;
+ 
+-      void foreach_cb(const struct midi_write_parser *parser, void 
*user_data) {
+-              struct midi *midi = user_data;
+-              bt_gatt_client_write_without_response(midi->client,
+-                                                    midi->midi_io_handle,
+-                                                    false,
+-                                                    midi_write_data(parser),
+-                                                    
midi_write_data_size(parser));
+-      };
+-
+       do {
+               snd_seq_event_t *event = NULL;
+ 
+@@ -81,10 +82,10 @@ static bool midi_write_cb(struct io *io, void *user_data)
+ 
+       if (midi_write_has_data(&midi->midi_out))
+               bt_gatt_client_write_without_response(midi->client,
+-                                                    midi->midi_io_handle,
+-                                                    false,
+-                                                    
midi_write_data(&midi->midi_out),
+-                                                    
midi_write_data_size(&midi->midi_out));
++                                      midi->midi_io_handle,
++                                      false,
++                                      midi_write_data(&midi->midi_out),
++                                      midi_write_data_size(&midi->midi_out));
+ 
+       midi_write_reset(&midi->midi_out);
+ 
+-- 
+cgit 
+

Reply via email to