[pulseaudio-discuss] [PATCHv2 19/60] build: Make the build of bluetooth modules BlueZ 4 specific

João Paulo Rechi Vita jprvita at gmail.com
Fri Aug 16 05:30:57 PDT 2013


On Fri, Aug 16, 2013 at 4:59 AM, Tanu Kaskinen
<tanu.kaskinen at linux.intel.com> wrote:
> On Tue, 2013-08-13 at 01:53 -0300, jprvita at gmail.com wrote:
>> From: João Paulo Rechi Vita <jprvita at openbossa.org>
>>
>> ---
>>  configure.ac    | 28 ++++++++++++++++------------
>>  src/Makefile.am | 23 ++++++++++++++---------
>>  2 files changed, 30 insertions(+), 21 deletions(-)
>>
>> diff --git a/configure.ac b/configure.ac
>> index 616a990..1c023dd 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -981,21 +981,25 @@ AX_DEFINE_DIR(PA_MACHINE_ID_FALLBACK, PA_MACHINE_ID_FALLBACK,
>>
>>  #### BlueZ support (optional, dependent on D-Bus) ####
>>
>> -AC_ARG_ENABLE([bluez],
>> -    AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]))
>> +AC_ARG_ENABLE([bluez4],
>> +    AS_HELP_STRING([--disable-bluez4],[Disable optional BlueZ 4 support]))
>>
>> -AS_IF([test "x$enable_bluez" != "xno"],
>> -    [PKG_CHECK_MODULES(BLUEZ, [ bluez >= 4.99 ], HAVE_BLUEZ=1, HAVE_BLUEZ=0)],
>> -    HAVE_BLUEZ=0)
>> -AS_IF([test "x$enable_bluez" != "xno"],
>> +AS_IF([test "x$enable_bluez4" != "xno"],
>> +    [PKG_CHECK_MODULES(BLUEZ_4, [ bluez >= 4.99 bluez < 5.0 ], HAVE_BLUEZ_4=1, HAVE_BLUEZ_4=0)],
>> +    HAVE_BLUEZ_4=0)
>
> This disables bluez4 support if bluez5 version of the .pc file is
> installed. I thought earlier that bluez5 wouldn't install the file at
> all, but I learned today that it does install it if bluez is built with
> --enable-library. Let's not have the PKG_CHECK_MODULES check at all,
> since we aren't using libbluetooth. Support for both versions shall be
> built by default, regardless of the installed .pc file version.
>

I have also thought the same, but I forgot to do it :/

>> +AS_IF([test "x$enable_bluez4" != "xno"],
>>      [PKG_CHECK_MODULES(SBC, [ sbc >= 1.0 ], HAVE_SBC=1, HAVE_SBC=0)],
>>      HAVE_SBC=0)
>> -AS_IF([test "x$HAVE_SBC" != "x1"], HAVE_BLUEZ=0)
>> -AS_IF([test "x$HAVE_DBUS" != "x1"], HAVE_BLUEZ=0)
>> +AS_IF([test "x$HAVE_SBC" != "x1"], HAVE_BLUEZ_4=0)
>> +AS_IF([test "x$HAVE_DBUS" != "x1"], HAVE_BLUEZ_4=0)
>>
>> -AS_IF([test "x$enable_bluez" = "xyes" && test "x$HAVE_BLUEZ" = "x0"],
>> -    [AC_MSG_ERROR([*** BLUEZ support not found (requires BlueZ, sbc, and D-Bus)])])
>> +AS_IF([test "x$enable_bluez4" = "xyes" && test "x$HAVE_BLUEZ_4" = "x0"],
>> +    [AC_MSG_ERROR([*** BLUEZ 4 support not found (requires bluez >= 4.99 and < 5.0, sbc, and D-Bus)])])
>>
>> +AC_SUBST(HAVE_BLUEZ_4)
>> +AM_CONDITIONAL([HAVE_BLUEZ_4], [test "x$HAVE_BLUEZ_4" = x1])
>> +
>> +AS_IF([test "x$HAVE_BLUEZ_4" = "x1"], HAVE_BLUEZ=1)
>>  AC_SUBST(HAVE_BLUEZ)
>>  AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
>>
>> @@ -1389,7 +1393,7 @@ AS_IF([test "x$HAVE_XEN" = "x1"], ENABLE_XEN=yes, ENABLE_XEN=no)
>>  AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no)
>>  AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no)
>>  AS_IF([test "x$HAVE_SYSTEMD" = "x1"], ENABLE_SYSTEMD=yes, ENABLE_SYSTEMD=no)
>> -AS_IF([test "x$HAVE_BLUEZ" = "x1"], ENABLE_BLUEZ=yes, ENABLE_BLUEZ=no)
>> +AS_IF([test "x$HAVE_BLUEZ_4" = "x1"], ENABLE_BLUEZ_4=yes, ENABLE_BLUEZ_4=no)
>>  AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], ENABLE_HAL_COMPAT=yes, ENABLE_HAL_COMPAT=no)
>>  AS_IF([test "x$HAVE_TCPWRAP" = "x1"], ENABLE_TCPWRAP=yes, ENABLE_TCPWRAP=no)
>>  AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE=yes, ENABLE_LIBSAMPLERATE=no)
>> @@ -1440,7 +1444,7 @@ echo "
>>      Enable LIRC:                   ${ENABLE_LIRC}
>>      Enable Xen PV driver:          ${ENABLE_XEN}
>>      Enable D-Bus:                  ${ENABLE_DBUS}
>> -      Enable BlueZ:                ${ENABLE_BLUEZ}
>> +      Enable BlueZ 4:              ${ENABLE_BLUEZ_4}
>>      Enable udev:                   ${ENABLE_UDEV}
>>        Enable HAL->udev compat:     ${ENABLE_HAL_COMPAT}
>>      Enable systemd login:          ${ENABLE_SYSTEMD}
>> diff --git a/src/Makefile.am b/src/Makefile.am
>> index ff37877..0e94725 100644
>> --- a/src/Makefile.am
>> +++ b/src/Makefile.am
>> @@ -1320,8 +1320,12 @@ endif
>>
>>  if HAVE_BLUEZ
>>  modlibexec_LTLIBRARIES += \
>> +             module-bluetooth-policy.la
>> +endif
>> +
>> +if HAVE_BLUEZ_4
>> +modlibexec_LTLIBRARIES += \
>>               module-bluetooth-proximity.la \
>> -             module-bluetooth-policy.la \
>>               libbluez4-util.la \
>>               module-bluez4-discover.la \
>>               module-bluez4-device.la
>> @@ -2012,10 +2016,16 @@ module_bluetooth_proximity_la_LIBADD = $(MODULE_LIBADD) $(DBUS_LIBS)
>>  module_bluetooth_proximity_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS) -DPA_BT_PROXIMITY_HELPER=\"$(pulselibexecdir)/proximity-helper\"
>>
>>  proximity_helper_SOURCES = modules/bluetooth/proximity-helper.c
>> -proximity_helper_LDADD = $(AM_LDADD) $(BLUEZ_LIBS)
>> -proximity_helper_CFLAGS = $(AM_CFLAGS) $(BLUEZ_CFLAGS)
>> +proximity_helper_LDADD = $(AM_LDADD) $(BLUEZ_4_LIBS)
>> +proximity_helper_CFLAGS = $(AM_CFLAGS) $(BLUEZ_4_CFLAGS)
>
> Uh, so we do use libbluetooth after all.
>
> I did some investigation, and it seems that module-bluetooth-proximity
> uses BlueZ 3 APIs, meaning that it hasn't worked for a while. Nobody has
> complained, so nobody is using the module. Let's remove the proximity
> code.
>

module-bluetooth-proximity is pretty much a toy, as the original
commit description says: "add new fun module that automatically mutes
your audio devices when you leave with your bluetooth phone, and
unmutes when you come back". My initial idea was just to not compile
it by default and provide a configure option to enable it, but it may
be a better idea to completely remove it instead. I'll send a separate
commit doing so, to be applied right before this one.

I'll also have to send an updated version of patch 20 (build: Add
support for enabling/disabling BlueZ 5 support) due to conflict
resolution.

-- 
João Paulo Rechi Vita
http://about.me/jprvita


More information about the pulseaudio-discuss mailing list