This post was made with an older stylesheet

Shell has been ported to use the latest bluetooth protocol stack BlueZ 5 which released last December with numerous new features, API simplifications and other improvements. With this release BlueZ only supports the new Bluetooth Management kernel interface that was introduced in Linux 3.4, so essentially this is the minimum kernel requirement for BlueZ 5. For Low Energy support at least kernel version 3.5 is needed.

The energy profiles of BlueZ 5

Cycling Speed

Scan Parameters

Alert

Heartrate

HID over GATT (HoG)

Other changes

Move to standard D-Bus ObjectManager & Properties interface

Remove Manager interface as the same functionality comes through ObjectManager

Remove support for audio UNIX socket interface (the Media D-Bus interface replaces it)

SBC library moved into its own project

GStreamer elements removed after submitting them to the upstream GStreamer project

Removal of the Service interface and introduction of a new (libbluetooth independent) Profile interface

New bluetoothctl command line too for interacting with BlueZ

New btmon monitoring tool

Remove internal support for telephony (HFP and HSP) profiles. They should be implemented using the new Profile interface preferably by the telephony subsystem of choice (e.g. oFonowhich already supports this)

General connection establishment procedure and vastly simplified D-Bus API for it

The adapter power state is not stored persistently and remembered over bluetoothd restarts. An external entity (like ConnMan) is expected to handle this.

libbluetooth not installed by default as it’s not really useful or recommended anymore. The new Profile interface further decreases its usefulness.

INI-style format for all storage file. Old files from BlueZ 4 are auto-converted.

Merge obex-client into the main obexd daemon

D-Bus interface versions with the intent to always keep support at least for the two latest versions.

For full changelogs and migration guide from version 4 to 5:

http://www.bluez.org/

Emilio Pozuelo Monfort software engineer at Collabora pushed the changes in Shell today

In BlueZ 4, Authorize() was used to authorize both service and JustWorks authorization requests. In BlueZ 5 these two have been split into AuthorizeService() for services and RequestAuthorization for JustWorks devices. Adapt the Bluetooth code accordingly.

https://bugzilla.gnome.org/show_bug.cgi?id=700891

Emilio and Gustavo Padovan have done this work for Intel. You can read the “The big changes of BlueZ 5″ post of Gustavo at his blog:

http://padovan.org/blog/2013/02/the-big-changes-of-bluez-5/

More migrations for BlueZ 5:

Gnome-Bluetooth[1] and Gnome-Shell[2] have been ported to use BlueZ 5, the new major version of the Bluetooth handling daemon and utilities[3], and will available in GNOME 3.10.

Gnome-User-Share is still being worked on [4] as it requires some obexd/bluetoothd changes. NetworkManager port is also in progress. PulseAudio already supports both BlueZ 4 and Bluez 5.

[1]: https://bugzilla.gnome.org/ show_bug.cgi?id=685717

show_bug.cgi?id=685717 [2]: https://bugzilla.gnome.org/ show_bug.cgi?id=700891

show_bug.cgi?id=700891 [3]: http://www.bluez.org/bluez-5- api-introduction-and-porting- guide/ and http://lwn.net/Articles/ 531133/

api-introduction-and-porting- guide/ and http://lwn.net/Articles/ 531133/ [4]: https://bugzilla.gnome.org/ show_bug.cgi?id=694347

Nocera via GNOME ML

Bluetooth in System Status

Bluetooth indicator (and all the rest!) will also receive a major change in GNOME 3.10 or in GNOME after 3.10 — ;)

The system status icons will become much more dynamic -so, for example - if you turn on airplane mode, broadband, bluetooth and mobile broadband are replaced by an airplane mode icon or, if you are using a wired connection, the wifi icon is hidden.

This is work in progress

For more info on these you can check on System Status page @ GNOME Live!