diff mbox series

[1/1] package/bluez5_utils: make a single option for avrcp and a2dp

Message ID 20210727072523.2273052-1-fontaine.fabrice@gmail.com
State Accepted
Headers show
Series [1/1] package/bluez5_utils: make a single option for avrcp and a2dp | expand

Commit Message

Fabrice Fontaine July 27, 2021, 7:25 a.m. UTC
Build of avrcp without a2dp is broken since commit
fb9fc969d91f69851b4c70dba512b607e52bda7b:

/home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/x86_64-buildroot-linux-uclibc/9.3.0/../../../../x86_64-buildroot-linux-uclibc/bin/ld: profiles/audio/bluetoothd-avrcp.o: in function `avrcp_handle_set_volume':
avrcp.c:(.text+0x9c4): undefined reference to `media_transport_update_device_volume'

However, build of a2dp without avrcp is also broken:

/data/buildroot-autobuilder/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/riscv32-buildroot-linux-gnu/10.2.0/../../../../riscv32-buildroot-linux-gnu/bin/ld: profiles/audio/bluetoothd-media.o: in function `.L50':
media.c:(.text+0x508): undefined reference to `avrcp_unregister_player'
/data/buildroot-autobuilder/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/riscv32-buildroot-linux-gnu/10.2.0/../../../../riscv32-buildroot-linux-gnu/bin/ld: profiles/audio/bluetoothd-media.o: in function `match_endpoint_by_path':
media.c:(.text+0x824): undefined reference to `avrcp_register_player'

Fixes:
 - http://autobuild.buildroot.org/results/d54cdfc03212fff772a863d1bc8afd3cfb605831
 - http://autobuild.buildroot.org/results/64d75af986a4d6e9c5a176efb6e22046f4d82350

So make a single audio option for a2dp and avrcp

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
 package/bluez5_utils/Config.in       | 12 +++---------
 package/bluez5_utils/bluez5_utils.mk | 15 ++++-----------
 2 files changed, 7 insertions(+), 20 deletions(-)

Comments

Thomas Petazzoni July 27, 2021, 7:43 a.m. UTC | #1
On Tue, 27 Jul 2021 09:25:23 +0200
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:

> Build of avrcp without a2dp is broken since commit
> fb9fc969d91f69851b4c70dba512b607e52bda7b:
> 
> /home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/x86_64-buildroot-linux-uclibc/9.3.0/../../../../x86_64-buildroot-linux-uclibc/bin/ld: profiles/audio/bluetoothd-avrcp.o: in function `avrcp_handle_set_volume':
> avrcp.c:(.text+0x9c4): undefined reference to `media_transport_update_device_volume'
> 
> However, build of a2dp without avrcp is also broken:
> 
> /data/buildroot-autobuilder/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/riscv32-buildroot-linux-gnu/10.2.0/../../../../riscv32-buildroot-linux-gnu/bin/ld: profiles/audio/bluetoothd-media.o: in function `.L50':
> media.c:(.text+0x508): undefined reference to `avrcp_unregister_player'
> /data/buildroot-autobuilder/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/riscv32-buildroot-linux-gnu/10.2.0/../../../../riscv32-buildroot-linux-gnu/bin/ld: profiles/audio/bluetoothd-media.o: in function `match_endpoint_by_path':
> media.c:(.text+0x824): undefined reference to `avrcp_register_player'
> 
> Fixes:
>  - http://autobuild.buildroot.org/results/d54cdfc03212fff772a863d1bc8afd3cfb605831
>  - http://autobuild.buildroot.org/results/64d75af986a4d6e9c5a176efb6e22046f4d82350
> 
> So make a single audio option for a2dp and avrcp

Shouldn't this be reported as bug to upstream bluez ? If they have
separate options, they should work independently from each other.

Thomas
Michael Nosthoff July 27, 2021, 8:03 a.m. UTC | #2
Hi,

On 27.07.21 09:25, Fabrice Fontaine wrote:
> So make a single audio option for a2dp and avrcp

That makes sense.

> -config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_AVRCP
> -	bool "build avrcp plugin"
> -	default y
> -	help
> -	  Build plugin for AVRCP (audio) profiles.
> +	  Build audio plugin profiles (for A2DP and AVRCP).

for consistency with the other options I would rephrase that to:

  Build plugins for audio profiles (A2DP and AVRCP).


Reviewed-by: Michael Nosthoff <buildroot@heine.tech>


Regards,

Michael
Michael Nosthoff July 27, 2021, 8:12 a.m. UTC | #3
Hi,

On 27.07.21 09:43, Thomas Petazzoni wrote:
>
> Shouldn't this be reported as bug to upstream bluez ? If they have
> separate options, they should work independently from each other.
>
> Thomas

Valid point.
I'll try to get in touch with the BlueZ devs and see if they are 
interested in fixes there.
 From what I see there are a lot of historically grown options which 
could use some cleanup.

I see what I can do...


Regards,
Michael
Thomas Petazzoni July 28, 2021, 7:18 p.m. UTC | #4
On Tue, 27 Jul 2021 09:25:23 +0200
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:

> Build of avrcp without a2dp is broken since commit
> fb9fc969d91f69851b4c70dba512b607e52bda7b:
> 
> /home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/x86_64-buildroot-linux-uclibc/9.3.0/../../../../x86_64-buildroot-linux-uclibc/bin/ld: profiles/audio/bluetoothd-avrcp.o: in function `avrcp_handle_set_volume':
> avrcp.c:(.text+0x9c4): undefined reference to `media_transport_update_device_volume'
> 
> However, build of a2dp without avrcp is also broken:
> 
> /data/buildroot-autobuilder/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/riscv32-buildroot-linux-gnu/10.2.0/../../../../riscv32-buildroot-linux-gnu/bin/ld: profiles/audio/bluetoothd-media.o: in function `.L50':
> media.c:(.text+0x508): undefined reference to `avrcp_unregister_player'
> /data/buildroot-autobuilder/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/riscv32-buildroot-linux-gnu/10.2.0/../../../../riscv32-buildroot-linux-gnu/bin/ld: profiles/audio/bluetoothd-media.o: in function `match_endpoint_by_path':
> media.c:(.text+0x824): undefined reference to `avrcp_register_player'
> 
> Fixes:
>  - http://autobuild.buildroot.org/results/d54cdfc03212fff772a863d1bc8afd3cfb605831
>  - http://autobuild.buildroot.org/results/64d75af986a4d6e9c5a176efb6e22046f4d82350
> 
> So make a single audio option for a2dp and avrcp
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
>  package/bluez5_utils/Config.in       | 12 +++---------
>  package/bluez5_utils/bluez5_utils.mk | 15 ++++-----------
>  2 files changed, 7 insertions(+), 20 deletions(-)

I have also applied, as a stop-gap measure, but I also would like this
to be fixed upstream, ideally. Depending on the upstream modifications,
we will see what changes need to be done in Buildroot.

Thanks!

Thomas
diff mbox series

Patch

diff --git a/package/bluez5_utils/Config.in b/package/bluez5_utils/Config.in
index f2b63b0a1c..de480d0453 100644
--- a/package/bluez5_utils/Config.in
+++ b/package/bluez5_utils/Config.in
@@ -58,17 +58,11 @@  config BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL
 	  "Nokia OBEX PC Suite tool". So, only if OBEX support is
 	  enabled this option has an effect.
 
-config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_A2DP
-	bool "build a2dp plugin"
+config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_AUDIO
+	bool "build audio plugins (a2dp and avrcp)"
 	default y
 	help
-	  Build plugin for A2DP (audio) profiles.
-
-config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_AVRCP
-	bool "build avrcp plugin"
-	default y
-	help
-	  Build plugin for AVRCP (audio) profiles.
+	  Build audio plugin profiles (for A2DP and AVRCP).
 
 config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HEALTH
 	bool "build health plugin"
diff --git a/package/bluez5_utils/bluez5_utils.mk b/package/bluez5_utils/bluez5_utils.mk
index 7b7e31500f..3551b14a69 100644
--- a/package/bluez5_utils/bluez5_utils.mk
+++ b/package/bluez5_utils/bluez5_utils.mk
@@ -53,18 +53,11 @@  else
 BLUEZ5_UTILS_CONF_OPTS += --disable-experimental
 endif
 
-# enable a2dp plugin
-ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_A2DP),y)
-BLUEZ5_UTILS_CONF_OPTS += --enable-a2dp
+# enable audio plugins (a2dp and avrcp)
+ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_AUDIO),y)
+BLUEZ5_UTILS_CONF_OPTS += --enable-a2dp --enable-avrcp
 else
-BLUEZ5_UTILS_CONF_OPTS += --disable-a2dp
-endif
-
-#enable avrcp plugin
-ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_AVRCP),y)
-BLUEZ5_UTILS_CONF_OPTS += --enable-avrcp
-else
-BLUEZ5_UTILS_CONF_OPTS += --disable-avrcp
+BLUEZ5_UTILS_CONF_OPTS += --disable-a2dp --disable-avrcp
 endif
 
 # enable health plugin