Wayland and Weston 1.3 releases are out

Hi all, I've tagged and pushed the 1.3 release and it's available from http://wayland.freedesktop.org/releases as usual and the hashes for this release are: febbbfc8d76ed0b2157077d50cb6e5ceb1aa47de wayland-1.3.0.tar.xz 2c3dbb89031f120fb191492634e53a583f99d57d wayland 1.3.0 tag 670f95844d20dc87da579b6ac566388edc0bfa0c weston-1.3.0.tar.xz 95659c03219b057d9d703b04cf89bc0329ce947a weston 1.3.0 tag Wayland Changes We don't have a lot of Wayland side changes this time. I see that as good news and as sign that the wayland side is slowing down and maturing. I feel like the core protocol code is generally useful and stable and does what we need. What we did do this cycle: - More pixel formats for wl_shm (Tomeu Vizoso). We can now create RGB565 (and many more) shm surfaces and a compositor can indicate which ones it supports. - Doc work (Peter Hutterer, Bryce Harrington, Aaron Faanes). Much work on the doc build system from Peter and general wording and grammer improvements all around. - Multi resource support (Rob Bradford). Rob added support for dealing with lsits of resources which the weston side multi-resource fix builds on. - Support for language bindings (Jason Ekstrand). After a long time and many detours into fixing other parts of Wayland and Weston, Jason finally landed the language binding support. This feature lets you bind a higher level language to libwayland-client/server by providing custom dispatch functions. - Release requests for wl_pointer, wl_keyboard and wl_touch (Rob Bradford). We don't have a way for a client to deregister its interest in receiving input events, we just drop them on the client side when the client destroys the proxy. With the release requests, we now have a way to stop the server from sending them in the first place. - Install the wayland.xml protocol defintion (Jason Ekstrand). We now install the core Wayland XML protocol definition in a public location. Language bindings can parse this to generate code or bind dynamically. This also introduces a well known protocol directory where other projects can install protocol files. - Very few bug fixes in this release. There was only a couple of actual bug fixes this time around, which again is a sign that core wayland is settling down. Weston changes. - HW accelerated screen capture using libva Shift-Mod-SPACE Q (Ander Conselvan de Oliveira). This adds realtime h.264 screen capture to Weston using libva. This new feature can capture and encode weston screen contents and write to disk with negligible CPU or GPU overhead on recent Intel chips. We may switch away from libva and use gstreamer in the future, which will let us support more codecs and hardware. For now, libva is the only way to get to the high-performance, zero-copy encoding path that we want. Another future direction for this is network astreaming instead of just writing to disk, but this basic recording feature wil be the base for that work. - libhybris support (Adrian Negreanu). Adrian added support for using libhybris with the fbdev backend. This means that it's possible to use weston with Android EGL/GLES2 drivers, provided that you have the right device, drivers and kernel. - Multi-resource input events (Rob Bradford and Neil Roberts). We had a limitation that only the first pointer, keyboard or touch resource from a client would receive events, since we only tracked one resource as part of the input focus tracking. It should be possible to get multiple wl_pointer etc resources and receive events on all of them so that different subsystems can have their own resource for receiving events. With Rob and Neils patches this now works, which enables toolkit integration such as WebKitGTK+ and Clutter-GTK+. - Better touch support: better support in clients (Rusty Lynch and Brian Lovin), critical bug fixes in the evdev touch code (Neil Roberts). - XWM: better fullscreen support, support for drag-and-drop from X to wayland (other direction coming next). (Kristian Høgsberg) - weston-launch: modified behavior, now two modes of operation: run from a vt after logging in or run from an init script with -u. setup and restore tty in weston-launch, handle vt switch and drop/set master in weston-launch (Kristian Høgsberg). - Support for RGB565 client buffers in gl and pixman renderers (Tomeu Vizoso). - New WL_OUTPUT udev attribute for matching touch screen input devices to their outputs. (krh) - We have a new configure summary from Armin K and a few new configure options: --with-cairo=image/gl/glesv2 This gives better control over which cairo-gl flavor to use. We used to auto-detect or just fall back to image, but there was never a good way to request cairo-image if any cairo-gl was available or to request GL over GLES2. (Rob Bradford) --enable-demo-clients Install all the demo clients. Normally we only install weston-terminal and weston-info, but with this option it's now possible to install all clients (Armin k) - New weston.ini options: [touchpad] constant_accel_factor=... min_accel_factor=... max_accel_factor=... These options lets us control touchpad acceleration (Armin K). [xwayland] path=... This option lets us specific a different path to the xwayland server to use (Maksim Melnikau). - New weston command line options: --shell=shell.so Override the shell module choice from weston.ini. A useful option for briefly testing a different shell (Jason Ekstrand). - weston-terminal: Better support for wide (CJK) characters (Peng Wu). Resizing fixed, warms my heart (José Bollo). Known Issues We're shipping the 1.3.0 release with a number of known issues. I expect we'll do a 1.3.1 release within a couple of week to try to fix as many of these as possible. This is Arties list from the RC2 test report: - weston-launch grew a drm dep again, pull Tomeus fix. - Fix desktop-shell resizing the right way. I reverted Hardenings patch for output resize in desktop-shell to avoid regressing output rotation, but we need to fix it the right way. - Rapid VT-switching causes hang <https://bugs.freedesktop.org/show_bug.cgi?id=69764> - Multiple mouse cursors on a single seat with multi-seat setup: <https://bugs.freedesktop.org/show_bug.cgi?id=69778> - Weston SEGV on hot-unplugged output: <https://bugs.freedesktop.org/show_bug.cgi?id=69777> - Weston-calibrator always uses "primary" output; bad for multi-display calibration: <https://bugs.freedesktop.org/show_bug.cgi?id=69780> - Zoom and Touch don't play nice with each other: <https://bugs.freedesktop.org/show_bug.cgi?id=68620> - Weston SEGV - Text input protocol post to dying resource: <https://bugs.freedesktop.org/show_bug.cgi?id=69490> - Weston-terminal corrupt rendering when output transformed at 90 or 270: <https://bugs.freedesktop.org/show_bug.cgi?id=70250> with a couple of bugs outside wayland and weston that still affects key weston features: - Composite Bypass non-functional: <https://bugs.freedesktop.org/show_bug.cgi?id=69437> - LibVA Capture hangs Weston on Sandy Bridge platforms: <https://bugs.freedesktop.org/show_bug.cgi?id=69330> Ideally we'll be able to address many of the issues above, in particular, I want fix the weston-launch drm dependency, the desktop-shell resizing and the output unplug bugs before doing 1.3.1. Plans for 1.4 We're going to try something new for 1.4 - we'll do an alpha release a month before the scheduled release. I'm looking at Jan 15, 2014 as the release date for 1.4.0, and we'll do an alpha release on Dec 16. The motivation here is to get a snapshot out a bit earlier so we can start testing earlier and hopefully uncover bugs earlier. In the 1.3 cycle we did RC1 a week before the expected release date and ended up with a lot of bugs and no time to fix them. For 1.4 the hope is that the alpha release will let us discover those bugs while we still have month to fix them. After the alpha we'll start to slow down development, but there'll still be room for pulling in minor or low-risk features. We'll start the RCs on Jan 2, at which point we'll go into bug fix only mode. Here's my (probably incomplete) list of features that I think we can do for 1.4: - Moving subsurface and input methods into wayland. - Jasons decorations work. - Jasons surface/view split. - logind changes from David. - Output cloning - wl_shm buffer truncate exploit fix from Neil - eglSwapInterval(0) (Neil) - Nested wl_buffer pass-through (Neil) - Touch grabs to enable touch-to-focus (Neil) - Default pointer grab patch from Giulio - Use gstreamer or libva helper library instead of direct libva use for weston encoding. - wl_subsurface scaling. Contributors As always, many people did great work to make this release happen, thanks to everybody involved: Aaron Faanes, Adrian Negreanu, Alexandru DAMIAN, Ander Conselvan de Oliveira, Andrew Wedgbury, Armin K, Axel Davy, Brian J Lovin, Brian Lovin, Bryce Harrington, Bryce W. Harrington, Chang Liu, Daiki Ueno, Daniel Stone, Eduardo Lima, Emilio Pozuelo Monfort, Giulio Camuffo, Hardening, Jason Ekstrand, Jiergir Ogoerg, José Bollo, Kristian Høgsberg, Louis-Francis Ratté-Boulianne, Maksim Melnikau, Marc Chalain, Marek Ch, Michael Fu, Neil Roberts, Paul Winwood, Peng Wu, Peter Hutterer, Pier Luigi Fiorini, Quentin Glidic, Rob Bradford, Rolf Morel, Rusty Lynch, Sam Spilsbury, Samuel Iglesias Gonsalvez, Stanislav Vorobiov, Stefan Schmidt, Tomeu Vizoso thanks, Kristian