Skip to contentSkip to conversation

Proposed solution to bluez4/bluez5 selection

RFC In review Peter A. Bigot 2 participants 12 messages Nov 26, 2014 – Jan 24, 2015

lore
Share & tools
lore
#0 lore raw

v2 cover Proposed solution to bluez4/bluez5 selection

Here's a new approach to bluez5 integration for YOCTO #5031 based on RP's feedback from the last attempt.

Though the lib interface is supposedly compatible between bluez4 and bluez5 the dbus interface is not. The functionality differences are currently significant and likely to remain so. Therefore there will be no virtual/bluez as originally proposed in the defect report.

Selection of the provider of bluetooth services is mediated by DISTRO_FEATURES. As has been the case, "bluetooth" signifies support for bluetooth. Two new identifiers "bluez4" and "bluez5" distinguish the provider of bluetooth services, just as "systemd" and "sysvinit" distinguish the provider of init services.

Recipes that reference bluetooth now inherit from bluetooth.bbclass, which inspects the DISTRO_FEATURES and provides the variable BLUEZ as a default-defined variable with the value:
"" if "bluetooth" is not in DISTRO_FEATURES, else
"bluez5" if "bluez5" is in DISTRO_FEATURES, else
"bluez4"

The presence of "bluez4" or "bluez5" in PACKAGECONFIG is normally used to control configuration. (In some cases this is an "interface change" with respect to PACKAGECONFIG values for specific recipes but I don't see an alternative where existing keys are insufficiently precise.)

The assumption is most packages will support either bluez4 or bluez5. Existing packages that used "bluetooth" or "bluez" as the key to select an explicit dependence on bluez4 have mostly been changed to use "bluez4" as the key.

Where a package (e.g. pulseaudio) supports both variants with distinct configuration options PACKAGECONFIG settings for both "bluez4" and "bluez5" should be provided.

Where a package (e.g. connman) supports both variants without distinct configuration options the PACKAGECONFIG setting should be "bluez" and the dependence will be on "${BLUEZ}".

The following changes since commit ab63640fad50954b0440ab107c96dbd3f919ea4d:

gdk-pixbuf: use ptest-gnome (2014-11-25 13:03:30 +0000)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib pabigot/rfc-v2/bluez5
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=pabigot/rfc-v2/bluez5

Peter A. Bigot (9):
bluetooth.bbclass: simplify recipe inference of bluetooth provider
packagegroup-base: select distro preference for bluez provider
pulseaudio: select distro preference for bluez provider
qt-mobility: select distro preference for bluez provider gstreamer1.0-plugins-bad: select distro preference for bluez provider
ofono: select distro preference for bluez provider
neard: select distro preference for bluez provider
libpcap: select distro preference for bluez provider
connman: depend on distro provider of bluez

 meta/classes/bluetooth.bbclass                             | 14 ++++++++++++++
 meta/recipes-connectivity/connman/connman.inc              |  6 ++++--
 meta/recipes-connectivity/libpcap/libpcap.inc              |  6 ++++--
 meta/recipes-connectivity/neard/neard.inc                  |  4 ++--
 meta/recipes-connectivity/ofono/ofono.inc                  |  4 ++--
 meta/recipes-core/packagegroups/packagegroup-base.bb       |  3 ++-
 .../gstreamer/gstreamer1.0-plugins-bad.inc                 |  6 +++---
 .../gstreamer/gstreamer1.0-plugins-bad_git.bb              |  1 -
 meta/recipes-multimedia/pulseaudio/pulseaudio.inc          |  4 ++--
 meta/recipes-qt/qt4/qt-mobility_1.2.0.inc                  |  6 ++++--
 10 files changed, 37 insertions(+), 17 deletions(-)
 create mode 100644 meta/classes/bluetooth.bbclass
Signature · 1 line
1.8.5.5
#1 lore raw

RFC v2 1/9 bluetooth.bbclass: simplify recipe inference of bluetooth provider

Defines ${BLUEZ} to be the provider of bluez services as specified by DISTRO_FEATURES.

Example recipe fragment:
inherit bluetooth
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4" PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5"

---
 meta/classes/bluetooth.bbclass | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
 create mode 100644 meta/classes/bluetooth.bbclass
meta/classes/bluetooth.bbclass new file +14 -0
new file mode 100644
index 0000000..f88b4ae
@@ -0,0 +1,14 @@
+# Avoid code duplication in bluetooth-dependent recipes.
+
+# Define a variable that expands to the recipe (package) providing core
+# bluetooth support on the platform:
+# "" if bluetooth is not in DISTRO_FEATURES
+# else "bluez5" if bluez5 is in DISTRO_FEATURES
+# else "bluez4"
+
+# Use this with:
+#  inherit bluetooth
+#  PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}
+#  PACKAGECONFIG[bluez4] = "--enable-bluez4,--disable-bluez4,bluez4"
+
+BLUEZ ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5', 'bluez4', d), '', d)}"
Signature · 1 line
1.8.5.5
#2 lore raw

RFC v2 2/9 packagegroup-base: select distro preference for bluez provider

In reply to Peter A. Bigot
---
 meta/recipes-core/packagegroups/packagegroup-base.bb | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
meta/recipes-core/packagegroups/packagegroup-base.bb +2 -1
index f4b2cd5..369b63e 100644
@@ -8,6 +8,7 @@ PR = "r83"
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 inherit packagegroup
+inherit bluetooth
 
 PROVIDES = "${PACKAGES}"
 PACKAGES = ' \
@@ -203,7 +204,7 @@ RRECOMMENDS_packagegroup-base-pcmcia = "\
 
 SUMMARY_packagegroup-base-bluetooth = "Bluetooth support"
 RDEPENDS_packagegroup-base-bluetooth = "\
-    bluez4 \
+    ${BLUEZ} \
     ${@bb.utils.contains('COMBINED_FEATURES', 'alsa', 'libasound-module-bluez', '',d)} \
     "
 
Signature · 1 line
1.8.5.5
#3 lore raw

RFC v2 3/9 pulseaudio: select distro preference for bluez provider

In reply to Peter A. Bigot
---
 meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/recipes-multimedia/pulseaudio/pulseaudio.inc +2 -2
index db144a9..277b720 100644
@@ -12,7 +12,7 @@ DEPENDS = "libatomics-ops liboil libsamplerate0 libsndfile1 libtool"
 DEPENDS += "udev alsa-lib glib-2.0 dbus gconf"
 DEPENDS += "json-c gdbm speex libxml-parser-perl-native libcap"
 
-inherit autotools pkgconfig useradd gettext perlnative
+inherit autotools pkgconfig useradd gettext perlnative bluetooth
 
 # *.desktop rules wont be generated during configure and build will fail
 # if using --disable-nls
@@ -31,7 +31,7 @@ EXTRA_OECONF = "\
                 ac_cv_header_valgrind_memcheck_h=no \
 "
 
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez4', '', d)} \
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
Signature · 1 line
1.8.5.5
#4 lore raw

RFC v2 4/9 qt-mobility: select distro preference for bluez provider

In reply to Peter A. Bigot
---
 meta/recipes-qt/qt4/qt-mobility_1.2.0.inc | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
meta/recipes-qt/qt4/qt-mobility_1.2.0.inc +4 -2
index ae1769d..b3d23d4 100644
@@ -1,9 +1,11 @@
 HOMEPAGE = "http://qt-project.org/"
 DEPENDS = "gstreamer util-linux"
 
+inherit bluetooth
+
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluetooth', '', d)}"
-PACKAGECONFIG[bluetooth] = ",,bluez4"
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}"
+PACKAGECONFIG[bluez4] = ",,bluez4"
 PACKAGECONFIG[pulseaudio] = ",,pulseaudio"
 
 LICENSE = "LGPLv2.1"
Signature · 1 line
1.8.5.5
#5 lore raw

RFC v2 5/9 gstreamer1.0-plugins-bad: select distro preference for bluez provider

In reply to Peter A. Bigot
---
 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc    | 6 +++---
 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb | 1 -
 2 files changed, 3 insertions(+), 4 deletions(-)
meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc +3 -3
index dab0bf5..9e087e7 100644
@@ -9,7 +9,7 @@ S = "${WORKDIR}/gst-plugins-bad-${PV}"
 SRC_URI += "file://configure-allow-to-disable-libssh2.patch \
            "
 
-inherit gettext
+inherit gettext bluetooth
 
 # opengl packageconfig factored out to make it easy for distros
 # and BSP layers to pick either (desktop) opengl, gles2, or no GL
@@ -18,7 +18,7 @@ PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2',
 PACKAGECONFIG ??= " \
     ${PACKAGECONFIG_GL} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \
     orc curl uvch264 neon sndfile \
     hls sbc dash bz2 smoothstreaming \
@@ -49,7 +49,7 @@ PACKAGECONFIG[bz2]             = "--enable-bz2,--disable-bz2,bzip2"
 PACKAGECONFIG[fluidsynth]      = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth"
 PACKAGECONFIG[schroedinger]    = "--enable-schro,--disable-schro,schroedinger"
 PACKAGECONFIG[smoothstreaming] = "--enable-smoothstreaming,--disable-smoothstreaming,libxml2"
-PACKAGECONFIG[bluez]           = "--enable-bluez,--disable-bluez,bluez4"
+PACKAGECONFIG[bluez4]          = "--enable-bluez,--disable-bluez,bluez4"
 PACKAGECONFIG[rsvg]            = "--enable-rsvg,--disable-rsvg,librsvg"
 PACKAGECONFIG[sndfile]         = "--enable-sndfile,--disable-sndfile,libsndfile1"
 PACKAGECONFIG[webp]            = "--enable-webp,--disable-webp,libwebp"
meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb +0 -1
index e1a5904..2a5aff5 100644
@@ -11,7 +11,6 @@ S = "${WORKDIR}/git"
 
 SRCREV = "6e5db57d2446a753aaa76bee268e1f95600b14ce"
 
-PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,bluez4"
 PACKAGECONFIG[sbc] = "--enable-sbc,--disable-sbc,sbc"
 PACKAGECONFIG[hls] = "--enable-hls,--disable-hls,gnutls"
 
Signature · 1 line
1.8.5.5
#6 lore raw

RFC v2 6/9 ofono: select distro preference for bluez provider

In reply to Peter A. Bigot
---
 meta/recipes-connectivity/ofono/ofono.inc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/recipes-connectivity/ofono/ofono.inc +2 -2
index 9f65f4f..5017a61 100644
@@ -5,9 +5,9 @@ LICENSE  = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
                     file://src/ofono.h;beginline=1;endline=20;md5=3ce17d5978ef3445def265b98899c2ee"
 
-inherit autotools pkgconfig update-rc.d systemd
+inherit autotools pkgconfig update-rc.d systemd bluetooth
 
-DEPENDS  = "dbus glib-2.0 udev mobile-broadband-provider-info ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth','bluez4', '', d)}"
+DEPENDS  = "dbus glib-2.0 udev mobile-broadband-provider-info ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}"
 
 INITSCRIPT_NAME = "ofono"
 INITSCRIPT_PARAMS = "defaults 22"
Signature · 1 line
1.8.5.5
#7 lore raw

RFC v2 7/9 neard: select distro preference for bluez provider

In reply to Peter A. Bigot
---
 meta/recipes-connectivity/neard/neard.inc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/recipes-connectivity/neard/neard.inc +2 -2
index e714cad..1a7ac8d 100644
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \
  file://src/near.h;beginline=1;endline=20;md5=358e4deefef251a4761e1ffacc965d13 \
  "
 
-inherit autotools-brokensep pkgconfig systemd update-rc.d
+inherit autotools-brokensep pkgconfig systemd update-rc.d bluetooth
 
 EXTRA_OECONF += "--enable-tools"
 
@@ -47,7 +47,7 @@ RDEPENDS_${PN} = "dbus python python-dbus python-pygobject"
 
 # Bluez & Wifi are not mandatory except for handover
 RRECOMMENDS_${PN} = "\
-                     ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez4', '', d)} \
+                     ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \
                      ${@bb.utils.contains('DISTRO_FEATURES', 'wifi','wpa-supplicant', '', d)} \
                     "
 
Signature · 1 line
1.8.5.5
#8 lore raw

RFC v2 8/9 libpcap: select distro preference for bluez provider

In reply to Peter A. Bigot
---
 meta/recipes-connectivity/libpcap/libpcap.inc | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
meta/recipes-connectivity/libpcap/libpcap.inc +4 -2
index a12eb16..979665c 100644
@@ -10,8 +10,10 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=1d4b0366557951c84a94fabe3529f867 \
                     file://pcap.h;beginline=1;endline=32;md5=39af3510e011f34b8872f120b1dc31d2"
 DEPENDS = "flex-native bison-native"
 
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluetooth', '', d)}"
-PACKAGECONFIG[bluetooth] = "--enable-bluetooth,--disable-bluetooth,bluez4"
+inherit bluetooth
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}"
+PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4"
 PACKAGECONFIG[canusb] = "--enable-canusb,--enable-canusb=no,libusb"
 PACKAGECONFIG[libnl] = "--with-libnl,--without-libnl,libnl"
 
Signature · 1 line
1.8.5.5
#9 lore raw

RFC v2 9/9 connman: depend on distro provider of bluez

In reply to Peter A. Bigot

connman currently supports both bluez4 and bluez5 without distinguishing them at configuration time.

---
 meta/recipes-connectivity/connman/connman.inc | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
meta/recipes-connectivity/connman/connman.inc +4 -2
index f121a81..6228aad 100644
@@ -13,6 +13,8 @@ LICENSE  = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \
                     file://src/main.c;beginline=1;endline=20;md5=486a279a6ab0c8d152bcda3a5b5edc36"
 
+inherit bluetooth
+
 DEPENDS  = "dbus glib-2.0 ppp iptables"
 
 INC_PR = "r20"
@@ -32,7 +34,7 @@ EXTRA_OECONF += "\
 
 PACKAGECONFIG ??= "wispr \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'wifi','wifi', '', d)} \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth','bluetooth', '', d)} \
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
                    ${@bb.utils.contains('DISTRO_FEATURES', '3g','3g', '', d)} \
 "
 
@@ -41,7 +43,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[bluez] = "--enable-bluetooth, --disable-bluetooth, ${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"
Signature · 1 line
1.8.5.5
#10 lore raw
In reply to Peter A. Bigot

Any feedback on this approach?

Thanks.

Peter

Quoted 72 lines · Peter A. Bigot

Here's a new approach to bluez5 integration for YOCTO #5031 based on RP's feedback from the last attempt.

Though the lib interface is supposedly compatible between bluez4 and bluez5 the dbus interface is not. The functionality differences are currently significant and likely to remain so. Therefore there will be no virtual/bluez as originally proposed in the defect report.

Selection of the provider of bluetooth services is mediated by DISTRO_FEATURES. As has been the case, "bluetooth" signifies support for bluetooth. Two new identifiers "bluez4" and "bluez5" distinguish the provider of bluetooth services, just as "systemd" and "sysvinit" distinguish the provider of init services.

Recipes that reference bluetooth now inherit from bluetooth.bbclass, which inspects the DISTRO_FEATURES and provides the variable BLUEZ as a default-defined variable with the value:
"" if "bluetooth" is not in DISTRO_FEATURES, else
"bluez5" if "bluez5" is in DISTRO_FEATURES, else
"bluez4"

The presence of "bluez4" or "bluez5" in PACKAGECONFIG is normally used to control configuration. (In some cases this is an "interface change" with respect to PACKAGECONFIG values for specific recipes but I don't see an alternative where existing keys are insufficiently precise.)

The assumption is most packages will support either bluez4 or bluez5. Existing packages that used "bluetooth" or "bluez" as the key to select an explicit dependence on bluez4 have mostly been changed to use "bluez4" as the key.

Where a package (e.g. pulseaudio) supports both variants with distinct configuration options PACKAGECONFIG settings for both "bluez4" and "bluez5" should be provided.

Where a package (e.g. connman) supports both variants without distinct configuration options the PACKAGECONFIG setting should be "bluez" and the dependence will be on "${BLUEZ}".

The following changes since commit ab63640fad50954b0440ab107c96dbd3f919ea4d:

   gdk-pixbuf: use ptest-gnome (2014-11-25 13:03:30 +0000)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib pabigot/rfc-v2/bluez5
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=pabigot/rfc-v2/bluez5

Peter A. Bigot (9):
bluetooth.bbclass: simplify recipe inference of bluetooth provider
packagegroup-base: select distro preference for bluez provider
pulseaudio: select distro preference for bluez provider
qt-mobility: select distro preference for bluez provider gstreamer1.0-plugins-bad: select distro preference for bluez provider
ofono: select distro preference for bluez provider
neard: select distro preference for bluez provider
libpcap: select distro preference for bluez provider
connman: depend on distro provider of bluez

  meta/classes/bluetooth.bbclass                             | 14 ++++++++++++++
  meta/recipes-connectivity/connman/connman.inc              |  6 ++++--
  meta/recipes-connectivity/libpcap/libpcap.inc              |  6 ++++--
  meta/recipes-connectivity/neard/neard.inc                  |  4 ++--
  meta/recipes-connectivity/ofono/ofono.inc                  |  4 ++--
  meta/recipes-core/packagegroups/packagegroup-base.bb       |  3 ++-
  .../gstreamer/gstreamer1.0-plugins-bad.inc                 |  6 +++---
  .../gstreamer/gstreamer1.0-plugins-bad_git.bb              |  1 -
  meta/recipes-multimedia/pulseaudio/pulseaudio.inc          |  4 ++--
  meta/recipes-qt/qt4/qt-mobility_1.2.0.inc                  |  6 ++++--
  10 files changed, 37 insertions(+), 17 deletions(-)

create mode 100644 meta/classes/bluetooth.bbclass

#11 lore raw

I have not reviewed the patch, but I think this approach is good.
If somebody want integrate bluez5 into his Distro,
mybe he will catch errors when build the recipes that are hardcoded to require bluez4.

Fedora has changed to bluez5 after Fedora-20.

Thanks
Bian

Quoted 97 lines

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Peter A. Bigot
Sent: Friday, December 05, 2014 8:32 AM
To: [email protected]
Subject: Re: [OE-core] [RFC v2 0/9] Proposed solution to bluez4/bluez5 selection

Any feedback on this approach?

Thanks.

Peter

Quoted 35 lines · Peter A. Bigot

Here's a new approach to bluez5 integration for YOCTO #5031 based on RP's feedback from the last attempt.

Though the lib interface is supposedly compatible between bluez4 and bluez5 the dbus interface is not. The functionality differences are currently significant and likely to remain so. Therefore there will be no virtual/bluez as originally proposed in the defect report.

Selection of the provider of bluetooth services is mediated by DISTRO_FEATURES. As has been the case, "bluetooth" signifies support for bluetooth. Two new identifiers "bluez4" and "bluez5" distinguish the provider of bluetooth services, just as "systemd" and "sysvinit" distinguish the provider of init services.

Recipes that reference bluetooth now inherit from bluetooth.bbclass, which inspects the DISTRO_FEATURES and provides the variable BLUEZ as a default-defined variable with the value:
"" if "bluetooth" is not in DISTRO_FEATURES, else "bluez5" if "bluez5" is in DISTRO_FEATURES, else "bluez4"

The presence of "bluez4" or "bluez5" in PACKAGECONFIG is normally used to control configuration. (In some cases this is an "interface change" with respect to PACKAGECONFIG values for specific recipes but I don't see an alternative where existing keys are insufficiently precise.)

The assumption is most packages will support either bluez4 or bluez5. Existing packages that used "bluetooth" or "bluez" as the key to select an explicit dependence on bluez4 have mostly been changed to use "bluez4" as the key.

Where a package (e.g. pulseaudio) supports both variants with distinct configuration options PACKAGECONFIG settings for both "bluez4" and "bluez5" should be provided.

Quoted 5 lines

Where a package (e.g. connman) supports both variants without distinct configuration options the PACKAGECONFIG setting should be "bluez" and the dependence will be on "${BLUEZ}".

The following changes since commit

ab63640fad50954b0440ab107c96dbd3f919ea4d:

Quoted 21 lines
   gdk-pixbuf: use ptest-gnome (2014-11-25 13:03:30 +0000)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib pabigot/rfc-v2/bluez5

http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=pabigot/rfc-v
2/bluez5

Peter A. Bigot (9):
bluetooth.bbclass: simplify recipe inference of bluetooth provider
packagegroup-base: select distro preference for bluez provider
pulseaudio: select distro preference for bluez provider
qt-mobility: select distro preference for bluez provider gstreamer1.0-plugins-bad: select distro preference for bluez provider
ofono: select distro preference for bluez provider
neard: select distro preference for bluez provider
libpcap: select distro preference for bluez provider
connman: depend on distro provider of bluez

Quoted 1 line
  meta/classes/bluetooth.bbclass                             | 14

++++++++++++++

Quoted 10 lines
  meta/recipes-connectivity/connman/connman.inc              |  6 ++++--
  meta/recipes-connectivity/libpcap/libpcap.inc              |  6 ++++--
  meta/recipes-connectivity/neard/neard.inc                  |  4 ++--
  meta/recipes-connectivity/ofono/ofono.inc                  |  4 ++--
  meta/recipes-core/packagegroups/packagegroup-base.bb       |  3 ++-
  .../gstreamer/gstreamer1.0-plugins-bad.inc                 |  6 +++---
  .../gstreamer/gstreamer1.0-plugins-bad_git.bb              |  1 -
  meta/recipes-multimedia/pulseaudio/pulseaudio.inc          |  4 ++--
  meta/recipes-qt/qt4/qt-mobility_1.2.0.inc                  |  6 ++++--
  10 files changed, 37 insertions(+), 17 deletions(-)
Quoted 2 lines

create mode 100644 meta/classes/bluetooth.bbclass

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core