[OE-core] [PATCH v2] bluez: declaration of virtual/bluez and VIRTUAL-RUNTIME_bluez

Mark Hatle mark.hatle at windriver.com
Tue Nov 12 15:06:30 UTC 2013


On 11/12/13, 2:49 AM, Martin Jansa wrote:
> On Mon, Nov 11, 2013 at 05:31:07PM -0800, Saul Wold wrote:
>> On 11/11/2013 04:30 PM, Rongqing Li wrote:
>>>
>>>
>>> On 11/11/2013 05:59 PM, Iorga, Cristian wrote:
>>>> Hi all,
>>>>
>>>> As far as I have experimented, there is no upgrade path available at
>>>> the moment, due to extensive changes into the programming model for
>>>> BlueZ5 vs BlueZ4.
>>>> At the moment, the last single component that is not officially ready
>>>> for BlueZ5 is PulseAudio.
>>>> As have asked around, and PA5.0 will* support BlueZ5.
>>>> PA5.0 should* be released before EoY2013.
>>>> Judging by PA git log, there are extensive changes/updates in order to
>>>> support BZ5.
>>>>
>>>> Regards,
>>>> Cristian
>>>
>>> Thanks.
>>>
>>> Saul: Do you think it is ready for merge, our release needs it, thanks.
>>>
>>
>> At this point, I do not think this is an approporate patch, we can't
>> switch between bluez4 and bluez5 as Cristian points out above, they are
>> just not compatible.  This is a case where we need 2 distinct versions
>> and once the recipes/upstreams for the things that rely on bluez4 are
>> updated to bluez5, we will cut over and then likely move the bluez4
>> stack out of oe-core into meta-oe.
>
> I disagree a bit here, if some distribution is using only
> packagegroup-base -> bluez dependency, then this patch is useful to
> allow to switch to bluez5 already with just VIRTUAL_RUNTIME change
> instead of a lot longer .bbappend for packagegroup-base just to replace
> bluez4 with bluez5.
>
> If bluez4 is moved to meta-oe then there would be the same problem for
> people who can need bluez4-only images where bluez4 should be pulled by
> packagegroup-base.

My current expectation moving forward is that there will be a distro flag that 
selects bluez4 or bluez5 API.  Then the recipes should be selecting behavior 
based on that flag.

The VIRTUAL-RUNTIME_... is designed for cases where the same API is used, but 
different things could provide the functionality.  Such as a syslog daemon. 
Since the APIs are different, it's not appropriate in this case.

--Mark

>>
>> Sau!
>>
>>>
>>> -Roy
>>>
>>>>
>>>> -----Original Message-----
>>>> From: openembedded-core-bounces at lists.openembedded.org
>>>> [mailto:openembedded-core-bounces at lists.openembedded.org] On Behalf Of
>>>> Martin Jansa
>>>> Sent: Friday, November 1, 2013 11:35 AM
>>>> To: rongqing.li at windriver.com
>>>> Cc: openembedded-core at lists.openembedded.org
>>>> Subject: Re: [OE-core] [PATCH v2] bluez: declaration of virtual/bluez
>>>> and VIRTUAL-RUNTIME_bluez
>>>>
>>>> On Fri, Nov 01, 2013 at 04:09:28PM +0800, rongqing.li at windriver.com
>>>> wrote:
>>>>> From: Roy Li <rongqing.li at windriver.com>
>>>>>
>>>>> We have two version bluez, declare virtual/bluez and
>>>>> VIRTUAL-RUNTIME_bluez to switch them easily, and set the preferred
>>>>> provider for bluez as bluez4
>>>>
>>>> +1
>>>>
>>>> I agree that some apps aren't compatible with both versions now, but
>>>> this gives easy way to switch between them for DISTRO which cares only
>>>> about apps which are compatible with bluez5 already.
>>>>
>>>> BTW: Have someone tried upgrade path on target from bluez4 to bluez5?
>>>> I know we discussed it at lengths before bluez5 was merged, but don't
>>>> know if someone really tested it.
>>>>
>>>>> Signed-off-by: Roy Li <rongqing.li at windriver.com>
>>>>> ---
>>>>>    meta/conf/distro/include/default-providers.inc
>>>>> |    5 ++---
>>>>>    meta/recipes-connectivity/bluez/bluez4.inc
>>>>> |    1 +
>>>>>    meta/recipes-connectivity/bluez5/bluez5.inc
>>>>> |    1 +
>>>>>    meta/recipes-connectivity/connman/connman.inc
>>>>> |    4 ++--
>>>>>    meta/recipes-connectivity/libpcap/libpcap.inc
>>>>> |    2 +-
>>>>>    meta/recipes-connectivity/neard/neard.inc
>>>>> |    2 +-
>>>>>    meta/recipes-connectivity/ofono/ofono.inc
>>>>> |    2 +-
>>>>>    meta/recipes-core/packagegroups/packagegroup-base.bb
>>>>> |    2 +-
>>>>>    meta/recipes-gnome/packagegroups/packagegroup-sdk-gmae.inc
>>>>> |    2 +-
>>>>>    meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb
>>>>> |    2 +-
>>>>>    meta/recipes-multimedia/pulseaudio/pulseaudio.inc
>>>>> |    2 +-
>>>>>    meta/recipes-qt/qt4/qt-mobility_1.2.0.inc
>>>>> |    2 +-
>>>>>    12 files changed, 14 insertions(+), 13 deletions(-)
>>>>>
>>>>> diff --git a/meta/conf/distro/include/default-providers.inc
>>>>> b/meta/conf/distro/include/default-providers.inc
>>>>> index d4b9db0..0ec4cd9 100644
>>>>> --- a/meta/conf/distro/include/default-providers.inc
>>>>> +++ b/meta/conf/distro/include/default-providers.inc
>>>>> @@ -14,6 +14,7 @@ PREFERRED_PROVIDER_virtual/update-alternatives ?=
>>>>> "opkg"
>>>>>    PREFERRED_PROVIDER_virtual/update-alternatives-native ?= "opkg-native"
>>>>>    PREFERRED_PROVIDER_virtual/libx11 ?= "libx11"
>>>>>    PREFERRED_PROVIDER_xf86-video-intel ?= "xf86-video-intel"
>>>>> +PREFERRED_PROVIDER_virtual/bluez ?= "bluez4"
>>>>>
>>>>>    #
>>>>>    # Default virtual runtime providers
>>>>> @@ -21,6 +22,7 @@ PREFERRED_PROVIDER_xf86-video-intel ?=
>>>>> "xf86-video-intel"
>>>>>    VIRTUAL-RUNTIME_update-alternatives ?= "update-alternatives-cworth"
>>>>>    VIRTUAL-RUNTIME_apm ?= "apm"
>>>>>    VIRTUAL-RUNTIME_alsa-state ?= "alsa-state"
>>>>> +VIRTUAL-RUNTIME_bluez ?= "bluez4"
>>>>>
>>>>>    #
>>>>>    # Default recipe providers
>>>>> @@ -40,6 +42,3 @@ PREFERRED_PROVIDER_console-tools ?= "kbd"
>>>>>    PREFERRED_PROVIDER_gzip-native ?= "pigz-native"
>>>>>    PREFERRED_PROVIDER_make ?= "make"
>>>>>    PREFERRED_PROVIDER_udev ?=
>>>>> "${@base_contains('DISTRO_FEATURES','systemd','systemd','udev',d)}"
>>>>> -# There are issues with runtime packages and PREFERRED_PROVIDER, see
>>>>> YOCTO #5044 for details -# on this rather strange entry.
>>>>> -PREFERRED_PROVIDER_bluez4 ?= "bluez4"
>>>>> diff --git a/meta/recipes-connectivity/bluez/bluez4.inc
>>>>> b/meta/recipes-connectivity/bluez/bluez4.inc
>>>>> index e4f6834..c0babc6 100644
>>>>> --- a/meta/recipes-connectivity/bluez/bluez4.inc
>>>>> +++ b/meta/recipes-connectivity/bluez/bluez4.inc
>>>>> @@ -9,6 +9,7 @@ LIC_FILES_CHKSUM =
>>>>> "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \
>>>>>
>>>>> file://sbc/sbc.c;beginline=1;endline=25;md5=1a40781ed30d50d8639323a184aeb191"
>>>>>
>>>>>    DEPENDS = "udev libusb dbus-glib glib-2.0 libcheck readline"
>>>>>    RDEPENDS_${PN}-dev = "bluez-hcidump"
>>>>> +PROVIDES += "virtual/bluez"
>>>>>
>>>>>    PACKAGECONFIG ??= "\
>>>>>        ${@base_contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)}\ diff
>>>>> --git a/meta/recipes-connectivity/bluez5/bluez5.inc
>>>>> b/meta/recipes-connectivity/bluez5/bluez5.inc
>>>>> index 2e25d86..b3ab131 100644
>>>>> --- a/meta/recipes-connectivity/bluez5/bluez5.inc
>>>>> +++ b/meta/recipes-connectivity/bluez5/bluez5.inc
>>>>> @@ -7,6 +7,7 @@ LIC_FILES_CHKSUM =
>>>>> "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \
>>>>>
>>>>> file://COPYING.LIB;md5=fb504b67c50331fc78734fed90fb0e09 \
>>>>>
>>>>> file://src/main.c;beginline=1;endline=24;md5=9bc54b93cd7e17bf03f52513f39f926e"
>>>>>
>>>>>    DEPENDS = "udev libusb dbus-glib glib-2.0 libcheck readline"
>>>>> +PROVIDES += "virtual/bluez"
>>>>>
>>>>>    RCONFLICTS_${PN} = "bluez4"
>>>>>
>>>>> diff --git a/meta/recipes-connectivity/connman/connman.inc
>>>>> b/meta/recipes-connectivity/connman/connman.inc
>>>>> index c2d71e0..8641415 100644
>>>>> --- a/meta/recipes-connectivity/connman/connman.inc
>>>>> +++ b/meta/recipes-connectivity/connman/connman.inc
>>>>> @@ -41,7 +41,7 @@ PACKAGECONFIG ??= "wispr \  #
>>>>> PACKAGECONFIG_append_pn-connman = " openvpn vpnc l2tp pptp"
>>>>>
>>>>>    PACKAGECONFIG[wifi] = "--enable-wifi, --disable-wifi, wpa-supplicant"
>>>>> -PACKAGECONFIG[bluetooth] = "--enable-bluetooth, --disable-bluetooth,
>>>>> bluez4"
>>>>> +PACKAGECONFIG[bluetooth] = "--enable-bluetooth, --disable-bluetooth,
>>>>> virtual/bluez"
>>>>>    PACKAGECONFIG[3g] = "--enable-ofono, --disable-ofono, ofono"
>>>>>    PACKAGECONFIG[tist] = "--enable-tist,--disable-tist,"
>>>>>    PACKAGECONFIG[openvpn] = "--enable-openvpn
>>>>> --with-openvpn=${sbindir}/openvpn,--disable-openvpn,,openvpn"
>>>>> @@ -118,7 +118,7 @@ RPROVIDES_${PN} = "\
>>>>>
>>>>>    RDEPENDS_${PN} = "\
>>>>>        dbus \
>>>>> -    ${@base_contains('PACKAGECONFIG', 'bluetooth', 'bluez4', '', d)} \
>>>>> +    ${@base_contains('PACKAGECONFIG', 'bluetooth',
>>>>> +'${VIRTUAL-RUNTIME_bluez}', '', d)} \
>>>>>        ${@base_contains('PACKAGECONFIG', 'wifi','wpa-supplicant', '',
>>>>> d)} \
>>>>>        ${@base_contains('PACKAGECONFIG', '3g','ofono', '', d)} \
>>>>>        xuser-account \
>>>>> diff --git a/meta/recipes-connectivity/libpcap/libpcap.inc
>>>>> b/meta/recipes-connectivity/libpcap/libpcap.inc
>>>>> index 3a08afe..3a67ecc 100644
>>>>> --- a/meta/recipes-connectivity/libpcap/libpcap.inc
>>>>> +++ b/meta/recipes-connectivity/libpcap/libpcap.inc
>>>>> @@ -11,7 +11,7 @@ LIC_FILES_CHKSUM =
>>>>> "file://LICENSE;md5=1d4b0366557951c84a94fabe3529f867 \  DEPENDS =
>>>>> "flex-native bison-native libnl"
>>>>>
>>>>>    PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'bluetooth',
>>>>> 'bluetooth', '', d)}"
>>>>> -PACKAGECONFIG[bluetooth] =
>>>>> "--enable-bluetooth,--disable-bluetooth,bluez4"
>>>>> +PACKAGECONFIG[bluetooth] =
>>>>> "--enable-bluetooth,--disable-bluetooth,virtual/bluez"
>>>>>    PACKAGECONFIG[canusb] = "--enable-canusb,--enable-canusb=no,libusb"
>>>>>
>>>>>    INC_PR = "r5"
>>>>> diff --git a/meta/recipes-connectivity/neard/neard.inc
>>>>> b/meta/recipes-connectivity/neard/neard.inc
>>>>> index 7cccbdc..1d27c10 100644
>>>>> --- a/meta/recipes-connectivity/neard/neard.inc
>>>>> +++ b/meta/recipes-connectivity/neard/neard.inc
>>>>> @@ -47,7 +47,7 @@ RDEPENDS_${PN} = "dbus python python-dbus
>>>>> python-pygobject"
>>>>>
>>>>>    # Bluez & Wifi are not mandatory except for handover
>>>>> RRECOMMENDS_${PN} = "\
>>>>> -                     ${@base_contains('DISTRO_FEATURES',
>>>>> 'bluetooth', 'bluez4', '', d)} \
>>>>> +                     ${@base_contains('DISTRO_FEATURES', 'bluetooth',
>>>>> + 'virtual/bluez', '', d)} \
>>>>>                         ${@base_contains('DISTRO_FEATURES',
>>>>> 'wifi','wpa-supplicant', '', d)} \
>>>>>                        "
>>>>>
>>>>> diff --git a/meta/recipes-connectivity/ofono/ofono.inc
>>>>> b/meta/recipes-connectivity/ofono/ofono.inc
>>>>> index 3972e06..ff34265 100644
>>>>> --- a/meta/recipes-connectivity/ofono/ofono.inc
>>>>> +++ b/meta/recipes-connectivity/ofono/ofono.inc
>>>>> @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM =
>>>>> "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
>>>>>
>>>>>    inherit autotools pkgconfig update-rc.d systemd
>>>>>
>>>>> -DEPENDS  = "dbus glib-2.0 udev mobile-broadband-provider-info
>>>>> ${@base_contains('DISTRO_FEATURES', 'bluetooth','bluez4', '', d)}"
>>>>> +DEPENDS  = "dbus glib-2.0 udev mobile-broadband-provider-info
>>>>> ${@base_contains('DISTRO_FEATURES', 'bluetooth','virtual/bluez', '',
>>>>> d)}"
>>>>>
>>>>>    INITSCRIPT_NAME = "ofono"
>>>>>    INITSCRIPT_PARAMS = "defaults 22"
>>>>> diff --git a/meta/recipes-core/packagegroups/packagegroup-base.bb
>>>>> b/meta/recipes-core/packagegroups/packagegroup-base.bb
>>>>> index eee8bd9..a63ce73 100644
>>>>> --- a/meta/recipes-core/packagegroups/packagegroup-base.bb
>>>>> +++ b/meta/recipes-core/packagegroups/packagegroup-base.bb
>>>>> @@ -210,7 +210,7 @@ RRECOMMENDS_packagegroup-base-pcmcia = "\
>>>>>
>>>>>    SUMMARY_packagegroup-base-bluetooth = "Bluetooth support"
>>>>>    RDEPENDS_packagegroup-base-bluetooth = "\
>>>>> -    bluez4 \
>>>>> +    ${VIRTUAL-RUNTIME_bluez} \
>>>>>        ${@base_contains('COMBINED_FEATURES', 'alsa',
>>>>> 'libasound-module-bluez', '',d)} \
>>>>>        "
>>>>>
>>>>> diff --git
>>>>> a/meta/recipes-gnome/packagegroups/packagegroup-sdk-gmae.inc
>>>>> b/meta/recipes-gnome/packagegroups/packagegroup-sdk-gmae.inc
>>>>> index 416e05d..75c92e2 100644
>>>>> --- a/meta/recipes-gnome/packagegroups/packagegroup-sdk-gmae.inc
>>>>> +++ b/meta/recipes-gnome/packagegroups/packagegroup-sdk-gmae.inc
>>>>> @@ -3,7 +3,7 @@ SDK-GMAE = " \
>>>>>        dbus-glib-dev \
>>>>>        gtk+-dev \
>>>>>        gstreamer-dev \
>>>>> -    bluez4-dev \
>>>>> +    ${VIRTUAL-RUNTIME_bluez}-dev \
>>>>>        gconf-dev \
>>>>>        avahi-dev \
>>>>>        telepathy-glib-dev \
>>>>> diff --git
>>>>> a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb
>>>>> b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb
>>>>> index e1a5904..8f37be8 100644
>>>>> ---
>>>>> a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb
>>>>> +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.b
>>>>> +++ b
>>>>> @@ -11,7 +11,7 @@ S = "${WORKDIR}/git"
>>>>>
>>>>>    SRCREV = "6e5db57d2446a753aaa76bee268e1f95600b14ce"
>>>>>
>>>>> -PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,bluez4"
>>>>> +PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,virtual/bluez"
>>>>>    PACKAGECONFIG[sbc] = "--enable-sbc,--disable-sbc,sbc"
>>>>>    PACKAGECONFIG[hls] = "--enable-hls,--disable-hls,gnutls"
>>>>>
>>>>> diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
>>>>> b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
>>>>> index bb13f4b..e4e058f 100644
>>>>> --- a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
>>>>> +++ b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
>>>>> @@ -36,7 +36,7 @@ PACKAGECONFIG ??=
>>>>> "${@base_contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '',
>>>>>                       ${@base_contains('DISTRO_FEATURES', 'systemd',
>>>>> 'systemd', '', d)} \
>>>>>                       ${@base_contains('DISTRO_FEATURES', 'zeroconf',
>>>>> 'avahi', '', d)} \
>>>>>                       ${@base_contains('DISTRO_FEATURES', 'x11',
>>>>> 'x11', '', d)}"
>>>>> -PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,bluez4 sbc"
>>>>> +PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,virtual/bluez
>>>>> sbc"
>>>>>    PACKAGECONFIG[gtk] = "--enable-gtk3,--disable-gtk3,gtk+3"
>>>>>    PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
>>>>>    PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11
>>>>> libxtst libice libsm libxcb"
>>>>> diff --git a/meta/recipes-qt/qt4/qt-mobility_1.2.0.inc
>>>>> b/meta/recipes-qt/qt4/qt-mobility_1.2.0.inc
>>>>> index 062702f..ef3f08d 100644
>>>>> --- a/meta/recipes-qt/qt4/qt-mobility_1.2.0.inc
>>>>> +++ b/meta/recipes-qt/qt4/qt-mobility_1.2.0.inc
>>>>> @@ -3,7 +3,7 @@ DEPENDS = "gstreamer util-linux"
>>>>>
>>>>>    PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES',
>>>>> 'pulseaudio', 'pulseaudio', '', d)} \
>>>>>                       ${@base_contains('DISTRO_FEATURES', 'bluetooth',
>>>>> 'bluetooth', '', d)}"
>>>>> -PACKAGECONFIG[bluetooth] = ",,bluez4"
>>>>> +PACKAGECONFIG[bluetooth] = ",,virtual/bluez"
>>>>>    PACKAGECONFIG[pulseaudio] = ",,pulseaudio"
>>>>>
>>>>>    LICENSE = "LGPLv2.1"
>>>>> --
>>>>> 1.7.10.4
>>>>>
>>>>> _______________________________________________
>>>>> Openembedded-core mailing list
>>>>> Openembedded-core at lists.openembedded.org
>>>>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>>>>
>>>
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>




More information about the Openembedded-core mailing list