From Fedora Project Wiki
(Add tracker bug)
 
(24 intermediate revisions by 2 users not shown)
Line 2: Line 2:


== Summary ==
== Summary ==
Port the GNOME desktop to Wayland.
Support GNOME Wayland sessions


== Owner ==
== Owner ==
* Name: [[User:mclasen| Matthias Clasen]] and the desktop team
* Name: [[User:mclasen| Matthias Clasen]] and the desktop team
* Email: mclasen@redhat.com, desktop@lists.fedoraproject.org
* Email: mclasen@redhat.com, desktop@lists.fedoraproject.org
Line 15: Line 14:
== Current status ==
== Current status ==
* Targeted release: [[Releases/21 | Fedora 21 ]]  
* Targeted release: [[Releases/21 | Fedora 21 ]]  
* Last updated: 2013-07-29
* Last updated: 2014-05-05
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1104669 #1104669]
 
Upstream gnome-shell 3.12.1 can be launched as a Wayland compositor, with some regressions and limitations.
mutter-wayland, and the GNOME Wayland session are available in f20. In rawide, mutter-wayland has been merged into mutter.


== Detailed Description ==
== Detailed Description ==
GNOME is being ported to Wayland. In particular GNOME shell is changed to run as a Wayland compositor instead of an X11 compositor. Other components of GNOME that currently talk directly to the X server, such as gnome-settings-daemon or
GNOME is being ported to Wayland. In particular GNOME shell is changed to run as a Wayland compositor instead of an X11 compositor. Other components of GNOME that currently talk directly to the X server, such as gnome-settings-daemon or gnome-control-center, will be ported to corresponding Wayland interfaces. Many GTK+ applications will just work, using the existing Wayland backend. Applications that make use of X-specific APIs will be supported with the xwayland X server, which is started on demand. gdm will be changed to support both Wayland-based sessions and X-based sessions.
gnome-control-center, will be ported to corresponding Wayland interfaces. Many GTK+ applications will just work, using the existing Wayland backend. Applications that make use of X-specific APIs will be supported with the xwayland X server, which is started on demand. gdm will be changed to support both Wayland-based sessions and X-based sessions.
 
For F20, we have an experimental GNOME shell Wayland compositor and an experimental GNOME Wayland session available, with some gaps in the surrounding desktop infrastructure. To avoid destabilizing the X compositor in F20, there is a separate mutter-wayland package, and gnome-shell ships two binaries that will link against the two mutters.
 
In F21, the mutter-wayland package is reintegrated in mutter, and the GNOME Wayland porting work is focusing on closing the gaps, to avoid user-visible regressions.


This change is targeted at F21. For F20, we aim for having an experimental GNOME shell Wayland compositor available, without necessarily having all the surrounding desktop infrastructure ported. To avoid destabilizing the X compositor, mutter will ship two separate libraries, and gnome-shell will ship two binaries that will link against them.
For more details, see [https://wiki.gnome.org/ThreePointNine/Features/WaylandSupport this page.]


== Benefit to Fedora ==
== Benefit to Fedora ==
Line 30: Line 35:
* Proposal owners:
* Proposal owners:
** Port GNOME shell to be a Wayland compositor
** Port GNOME shell to be a Wayland compositor
** Implement Wayland equivalents for X11 APIs such as XRANDR, XI2 and accessibility features
** Implement Wayland equivalents for X11 APIs such as
*** XRANDR (DONE)
*** XI2
*** accessibility
** Port gnome-settings-daemon, gnome-control-center, gnome-desktop from X11 APIs to Wayland equivalents
** Port gnome-settings-daemon, gnome-control-center, gnome-desktop from X11 APIs to Wayland equivalents
** Enable gdm to launch Wayland sessions
** Enable gdm to launch Wayland sessions (DONE)
** Complete the GTK+ Wayland backend to be on par with the X11 backend
** Complete the GTK+ Wayland backend to be on par with the X11 backend
** Package mutter-wayland as a separate package [https://bugzilla.redhat.com/show_bug.cgi?id=1007445 review] (DONE)


* Other developers:
* Other developers:
** The X team needs to improve xwayland to be good enough for all X11 application
** The X team needs to improve xwayland to be good enough for all X11 application - in practice this means we need X 1.16 (DONE)
** The X team needs to cooperate with us in reimplementing some X11 APIs
** The X team needs to cooperate with us in reimplementing some X11 APIs
** The X team needs to package libevdev (DONE)
** The X team needs to package libinput (DONE)
** It is '''not''' necessary for all spins or all desktop environments in Fedora to switch to Wayland at the same time (or ever)
** It is '''not''' necessary for all spins or all desktop environments in Fedora to switch to Wayland at the same time (or ever)


Line 58: Line 69:


== Dependencies ==
== Dependencies ==
Some new libraries may be developed to support Wayland compositors, such as libevdev. These will have to be packaged if GNOME shell starts to depends on them.
Some new libraries may be developed to support Wayland compositors, such as libevdev and libinput. These will have to be packaged if GNOME shell starts to depends on them. Xorg needs to be updated to version 1.16 to include xwayland.


== Contingency Plan ==
== Contingency Plan ==
Line 70: Line 81:
== Documentation ==
== Documentation ==
* https://wiki.gnome.org/Wayland - the GNOME wiki contains lots of material
* https://wiki.gnome.org/Wayland - the GNOME wiki contains lots of material
* https://wiki.gnome.org/ThreePointNine/Features/WaylandSupport - the upstream feature page for 3.10
* https://wiki.gnome.org/ThreePointEleven/Features/WaylandSupport - the upstream feature page for 3.12
* http://wayland.freedesktop.org/ - the Wayland web page
* http://wayland.freedesktop.org/ - the Wayland web page


Line 75: Line 88:
The GNOME desktop is using the Wayland display system now. X applications will continue to run transparently by means of xwayland.
The GNOME desktop is using the Wayland display system now. X applications will continue to run transparently by means of xwayland.


[[Category:ChangePageIncomplete]] [[Category:SystemWideChange]]
[[Category:ChangeAcceptedF21]] [[Category:SystemWideChange]]

Latest revision as of 13:22, 4 June 2014

Wayland

Summary

Support GNOME Wayland sessions

Owner

  • Name: Matthias Clasen and the desktop team
  • Email: mclasen@redhat.com, desktop@lists.fedoraproject.org
  • Release notes owner:

Current status

Upstream gnome-shell 3.12.1 can be launched as a Wayland compositor, with some regressions and limitations. mutter-wayland, and the GNOME Wayland session are available in f20. In rawide, mutter-wayland has been merged into mutter.

Detailed Description

GNOME is being ported to Wayland. In particular GNOME shell is changed to run as a Wayland compositor instead of an X11 compositor. Other components of GNOME that currently talk directly to the X server, such as gnome-settings-daemon or gnome-control-center, will be ported to corresponding Wayland interfaces. Many GTK+ applications will just work, using the existing Wayland backend. Applications that make use of X-specific APIs will be supported with the xwayland X server, which is started on demand. gdm will be changed to support both Wayland-based sessions and X-based sessions.

For F20, we have an experimental GNOME shell Wayland compositor and an experimental GNOME Wayland session available, with some gaps in the surrounding desktop infrastructure. To avoid destabilizing the X compositor in F20, there is a separate mutter-wayland package, and gnome-shell ships two binaries that will link against the two mutters.

In F21, the mutter-wayland package is reintegrated in mutter, and the GNOME Wayland porting work is focusing on closing the gaps, to avoid user-visible regressions.

For more details, see this page.

Benefit to Fedora

Fedora stays at the forefront of Linux development by adopting the next-generation display server technology after X. Aiming for F21 with this transition gives us the chance to influence many aspects of the Wayland-based userspace before they are set in stone.

Scope

  • Proposal owners:
    • Port GNOME shell to be a Wayland compositor
    • Implement Wayland equivalents for X11 APIs such as
      • XRANDR (DONE)
      • XI2
      • accessibility
    • Port gnome-settings-daemon, gnome-control-center, gnome-desktop from X11 APIs to Wayland equivalents
    • Enable gdm to launch Wayland sessions (DONE)
    • Complete the GTK+ Wayland backend to be on par with the X11 backend
    • Package mutter-wayland as a separate package review (DONE)
  • Other developers:
    • The X team needs to improve xwayland to be good enough for all X11 application - in practice this means we need X 1.16 (DONE)
    • The X team needs to cooperate with us in reimplementing some X11 APIs
    • The X team needs to package libevdev (DONE)
    • The X team needs to package libinput (DONE)
    • It is not necessary for all spins or all desktop environments in Fedora to switch to Wayland at the same time (or ever)
  • Release engineering:
    • No tasks anticipated
  • Policies and guidelines:
    • Once we have a basic Wayland-based GNOME session, it would be good to encourage testers and packagers to test their applications under Wayland
    • For applications that are known not to work under Wayland, we will need guidelines for how to ensure that they will transparently run under xwayland

Upgrade/compatibility impact

  • Proprietary driver support in Wayland is less complete than under X. Systems that have been configured to use e.g. the proprietary Nvidia drivers under X will fall back to using open-source drivers under Wayland
  • Support for alternative input devices such as Wacom tablets or joysticks may not be available in time for F21

How To Test

Log into a GNOME desktop. Do any activity you would normally do in your daily desktop use: launching applications, configuring displays, etc. Things should work the same way under Wayland than they used to under X.

User Experience

The user experience should not change noticeably, except for gaps in the initial porting (such as lack of Wacom tablet support).

Dependencies

Some new libraries may be developed to support Wayland compositors, such as libevdev and libinput. These will have to be packaged if GNOME shell starts to depends on them. Xorg needs to be updated to version 1.16 to include xwayland.

Contingency Plan

  • Contingency mechanism:
    • If we don't succeed in making an experimental GNOME shell Wayland compositor available in F20, we will make the Wayland compositor available in post-F20 rawhide as soon as it becomes available.
    • If important pieces of this plan are not going to be available in time for F21, we will defer the switch to Wayland until F22. We will keep the experimental Wayland compositor available in any case, to enable further development.
  • Contingency deadline:
    • We will reevaluate the timeline around the time F20 is released, and then again around the F21 feature submission deadline.
  • Blocks release? No

Documentation

Release Notes

The GNOME desktop is using the Wayland display system now. X applications will continue to run transparently by means of xwayland.