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