m (Fix a typo) |
(Add tracker bug) |
||
(13 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
== Summary == | == Summary == | ||
BlueZ is the Linux Bluetooth stack for managing wireless Bluetooth devices. In Fedora 20, we are going to switch from BlueZ version 4 to version 5. | |||
== Owner == | == Owner == | ||
* Name: [[User:hadess| Bastien Nocera]], [[User:kalev| Kalev Lember]], and the desktop SIG | |||
* Email: bnocera@redhat.com, kalevlember@gmail.com | |||
* Name: [[User:hadess| Bastien Nocera]] | |||
* Email: bnocera@redhat.com | |||
* Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> --> | * Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> --> | ||
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo) | <!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo) | ||
Line 18: | Line 14: | ||
== Current status == | == Current status == | ||
* Targeted release: [[Releases/20 | Fedora 20 ]] | * Targeted release: [[Releases/20 | Fedora 20 ]] | ||
* Last updated: 2013- | * Last updated: 2013-08-12 | ||
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page | <!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page | ||
Bugzilla states meaning as usual: | Bugzilla states meaning as usual: | ||
Line 27: | Line 23: | ||
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development | CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development | ||
--> | --> | ||
* Tracker bug: | * Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=998563 #998563] | ||
== Detailed Description == | == Detailed Description == | ||
The BlueZ project recently released BlueZ version 5. Compared to BlueZ version 4, the new release brings new features and improvements, however it is also accompanied by a significant API change. The BlueZ versions 4 and 5 are not parallel installable, and we need coordination between various parts of Fedora to switch over at the same time. | |||
This is coming late after the Change Proposals Submission Deadline. As this affects various critical parts of the distribution (KDE, GNOME, NetworkManager, pulseaudio), we wanted to be sure it is feasible to switch everything over at the same time, and were considering postponing it to Fedora 21. However, upstreams have made good progress with porting over to BlueZ 5 and we feel it would be beneficial for Fedora to switch over during the Fedora 20 timeframe. | |||
== Benefit to Fedora == | == Benefit to Fedora == | ||
This keeps the Bluetooth stack in Fedora up to date. | This keeps the Bluetooth stack in Fedora up to date. BlueZ 4 is no longer maintained upstream; switching to BlueZ 5 ensures we can get all the latest upstream bug fixes and enhancements. | ||
== Scope == | == Scope == | ||
BlueZ 5 uses a D-Bus API that's not compatible with BlueZ 4 and as such, management applications and a number of libraries and daemons need to be ported. | |||
* Proposal owners: | * Proposal owners: | ||
This is a change affecting many parts of the distribution. The proposal owners, supported by the rest of the Desktop SIG, are going to take care of updating the BlueZ package to version 5 and porting over gnome-bluetooth, NetworkManager, and PulseAudio packages. | |||
For GNOME 3.10 | |||
* KDE SIG: | |||
The bluetooth stack for KDE is BlueDevil. It has a git branch with BlueZ 5 support and the Fedora KDE SIG will handle updating the package to a git snapshot. | |||
* Desktop SIG: | |||
For GNOME 3.10, Gustavo Padovan and Bastien Nocera have been porting gnome-bluetooth, NetworkManager and PulseAudio to BlueZ 5, and the Fedora Desktop SIG will ensure these get updated to the BlueZ 5 versions in Fedora. | |||
* NetworkManager team: | |||
... will ensure the relevant NetworkManager changes land in Fedora 20. | |||
* MATE team: | |||
mate-bluetooth has not received much upstream attention recently and is likely to not get ported to BlueZ 5 in time for F20. However, the Fedora MATE maintainers are looking into switching back to using gnome-bluetooth, and creating a panel applet for MATE that uses gnome-bluetooth underneath. An initial prototype is available at https://github.com/NiceandGently/bluetooth-panel-applet | |||
* Other developers: | * Other developers: | ||
Bluez4 and Bluez5 are not parallel-installable, and incompatible, so | Bluez4 and Bluez5 are not parallel-installable, and incompatible, so | ||
other applications relying on Bluez4 will need to be ported by their | other applications relying on Bluez4 will need to be ported by their | ||
respective maintainers. | respective maintainers. | ||
* Release engineering: | * Release engineering: | ||
No release engineering coordination required. | No release engineering coordination required. | ||
* Policies and guidelines: | * Policies and guidelines: | ||
No changes needed in the packaging guidelines. | No changes needed in the packaging guidelines. | ||
== Upgrade/compatibility impact == | == Upgrade/compatibility impact == | ||
See the following mailing list post for details and discussion for affected packages: https://lists.fedoraproject.org/pipermail/devel/2013-June/184334.html | |||
BlueZ ships a daemon and provides two main interfaces for applications | BlueZ ships a daemon and provides two main interfaces for applications | ||
to use it: | to use it: | ||
=== libbluetooth shared library === | ==== libbluetooth shared library ==== | ||
The library ABI hasn't changed | The library ABI hasn't changed, so the upgrade/compatibility impact should be minimal. Applications using the libbluetooth library should be able to continue working without needing code changes or rebuilds. | ||
=== | ==== BlueZ D-Bus API ==== | ||
The D-Bus API has had major changes. Most major consumers should be ported over during the Fedora 20 timeframe, with one exception: | |||
* blueman | * blueman | ||
Blueman is abandoned upstream and is going to be dropped from Fedora 20. The following mailing list post includes the relevant details: https://lists.fedoraproject.org/pipermail/devel/2013-August/187223.html | |||
== How To Test == | == How To Test == | ||
Testing the change requires having Bluetooth capable hardware. Major functionality should keep working without regressions, compared to BlueZ 4 in Fedora 19. | |||
== User Experience == | == User Experience == | ||
User experience should change minimally. | |||
== Dependencies == | == Dependencies == | ||
This requires coordination between the kernel team, the Desktop team, the KDE team, and various other package maintainers. The proposal owners will handle the coordination. | |||
== Contingency Plan == | |||
If the release blocking desktops have major bluetooth related regressions by the time of the Fedora 20 Beta Change Deadline, then FESCo and the proposal owners may enact a contingency plan to revert the BlueZ 5 related changes and go back to BlueZ 4. In that case, we'll likely want to keep using BlueZ in the Rawhide branch and only revert the changes in Branched (F20). | |||
In addition, the upstream GNOME release team is also keeping an eye open for regressions, and will revert back to BlueZ 4 for GNOME 3.10 (due in September) if there are major regressions in either GNOME, NetworkManager or PulseAudio. | |||
1) Bump bluez package's epoch in both Branched and Rawhide branches | |||
2) Revert bluez back to version 4.101 in F20 and stick with 5.x in F21 | |||
3) Switch NetworkManager, PulseAudio, gnome-bluetooth, BlueDevil back to using BlueZ 4 in the F20 branch | |||
4) Send a notice to fedora-devel-announce, asking other package maintainers to switch back to BlueZ 4 in the F20 branch | |||
== Documentation == | == Documentation == | ||
<!-- Is there upstream documentation on this change, or notes you have written yourself? Link to that material here so other interested developers can get involved. --> | <!-- Is there upstream documentation on this change, or notes you have written yourself? Link to that material here so other interested developers can get involved. --> | ||
LWN introduction to BlueZ 5: http://lwn.net/Articles/531133/ | |||
BlueZ 5 porting guide: http://www.bluez.org/bluez-5-api-introduction-and-porting-guide/ | |||
== Release Notes == | == Release Notes == | ||
Fedora 20 uses BlueZ version 5 for managing Bluetooth devices. The new BlueZ release includes significant API changes and all major desktops have been ported over. | |||
[[Category:ChangeAcceptedF20]] | |||
[[Category: | |||
<!-- When your change proposal page is completed and ready for review and announcement --> | <!-- When your change proposal page is completed and ready for review and announcement --> | ||
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> | <!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> |
Latest revision as of 12:55, 20 August 2013
Migrate to Bluez 5
Summary
BlueZ is the Linux Bluetooth stack for managing wireless Bluetooth devices. In Fedora 20, we are going to switch from BlueZ version 4 to version 5.
Owner
- Name: Bastien Nocera, Kalev Lember, and the desktop SIG
- Email: bnocera@redhat.com, kalevlember@gmail.com
- Release notes owner:
Current status
Detailed Description
The BlueZ project recently released BlueZ version 5. Compared to BlueZ version 4, the new release brings new features and improvements, however it is also accompanied by a significant API change. The BlueZ versions 4 and 5 are not parallel installable, and we need coordination between various parts of Fedora to switch over at the same time.
This is coming late after the Change Proposals Submission Deadline. As this affects various critical parts of the distribution (KDE, GNOME, NetworkManager, pulseaudio), we wanted to be sure it is feasible to switch everything over at the same time, and were considering postponing it to Fedora 21. However, upstreams have made good progress with porting over to BlueZ 5 and we feel it would be beneficial for Fedora to switch over during the Fedora 20 timeframe.
Benefit to Fedora
This keeps the Bluetooth stack in Fedora up to date. BlueZ 4 is no longer maintained upstream; switching to BlueZ 5 ensures we can get all the latest upstream bug fixes and enhancements.
Scope
BlueZ 5 uses a D-Bus API that's not compatible with BlueZ 4 and as such, management applications and a number of libraries and daemons need to be ported.
- Proposal owners:
This is a change affecting many parts of the distribution. The proposal owners, supported by the rest of the Desktop SIG, are going to take care of updating the BlueZ package to version 5 and porting over gnome-bluetooth, NetworkManager, and PulseAudio packages.
- KDE SIG:
The bluetooth stack for KDE is BlueDevil. It has a git branch with BlueZ 5 support and the Fedora KDE SIG will handle updating the package to a git snapshot.
- Desktop SIG:
For GNOME 3.10, Gustavo Padovan and Bastien Nocera have been porting gnome-bluetooth, NetworkManager and PulseAudio to BlueZ 5, and the Fedora Desktop SIG will ensure these get updated to the BlueZ 5 versions in Fedora.
- NetworkManager team:
... will ensure the relevant NetworkManager changes land in Fedora 20.
- MATE team:
mate-bluetooth has not received much upstream attention recently and is likely to not get ported to BlueZ 5 in time for F20. However, the Fedora MATE maintainers are looking into switching back to using gnome-bluetooth, and creating a panel applet for MATE that uses gnome-bluetooth underneath. An initial prototype is available at https://github.com/NiceandGently/bluetooth-panel-applet
- Other developers:
Bluez4 and Bluez5 are not parallel-installable, and incompatible, so other applications relying on Bluez4 will need to be ported by their respective maintainers.
- Release engineering:
No release engineering coordination required.
- Policies and guidelines:
No changes needed in the packaging guidelines.
Upgrade/compatibility impact
See the following mailing list post for details and discussion for affected packages: https://lists.fedoraproject.org/pipermail/devel/2013-June/184334.html
BlueZ ships a daemon and provides two main interfaces for applications to use it:
The library ABI hasn't changed, so the upgrade/compatibility impact should be minimal. Applications using the libbluetooth library should be able to continue working without needing code changes or rebuilds.
BlueZ D-Bus API
The D-Bus API has had major changes. Most major consumers should be ported over during the Fedora 20 timeframe, with one exception:
- blueman
Blueman is abandoned upstream and is going to be dropped from Fedora 20. The following mailing list post includes the relevant details: https://lists.fedoraproject.org/pipermail/devel/2013-August/187223.html
How To Test
Testing the change requires having Bluetooth capable hardware. Major functionality should keep working without regressions, compared to BlueZ 4 in Fedora 19.
User Experience
User experience should change minimally.
Dependencies
This requires coordination between the kernel team, the Desktop team, the KDE team, and various other package maintainers. The proposal owners will handle the coordination.
Contingency Plan
If the release blocking desktops have major bluetooth related regressions by the time of the Fedora 20 Beta Change Deadline, then FESCo and the proposal owners may enact a contingency plan to revert the BlueZ 5 related changes and go back to BlueZ 4. In that case, we'll likely want to keep using BlueZ in the Rawhide branch and only revert the changes in Branched (F20).
In addition, the upstream GNOME release team is also keeping an eye open for regressions, and will revert back to BlueZ 4 for GNOME 3.10 (due in September) if there are major regressions in either GNOME, NetworkManager or PulseAudio.
1) Bump bluez package's epoch in both Branched and Rawhide branches 2) Revert bluez back to version 4.101 in F20 and stick with 5.x in F21 3) Switch NetworkManager, PulseAudio, gnome-bluetooth, BlueDevil back to using BlueZ 4 in the F20 branch 4) Send a notice to fedora-devel-announce, asking other package maintainers to switch back to BlueZ 4 in the F20 branch
Documentation
LWN introduction to BlueZ 5: http://lwn.net/Articles/531133/
BlueZ 5 porting guide: http://www.bluez.org/bluez-5-api-introduction-and-porting-guide/
Release Notes
Fedora 20 uses BlueZ version 5 for managing Bluetooth devices. The new BlueZ release includes significant API changes and all major desktops have been ported over.