[PATCH wayland] protocol: Bump seat to version 7 and require keymaps be private
derek.foreman.samsung at gmail.com
Thu Nov 1 18:01:13 UTC 2018
On 11/1/18 12:18 PM, Philipp Kerling wrote:
> Actually... (below)
Yes, you are of course strictly correct.
However, the recent previous commits that bumped wl_seat version 9a18a8
and c5356e have also kept all three children in sync, and it's become
de-facto convention to do so.
> 2018-11-01 (木) の 11:15 -0500 に Derek Foreman さんは書きました:
>> Weston commit 76829fc4eaea329d2a525c3978271e13bd76c078 (and similar
>> commits for other compositors) protects the compositor's keyboard
>> mapping from client damage by duplicating the keymap for every
>> On some systems there are other potential fixes for this - such as
>> using sealed memfds on linux - but we can't use them since
>> essentially all client code anywhere has mapped the keyboard map
>> with a MAP_SHARED mmap() call.
>> While we can't break years worth of code, we can require any future
>> clients to use MAP_PRIVATE if they use a seat version above 6.
>> If a compositor can't use sealing or a similar facility, it should
>> still protect itself with copied keymaps, but clients must always
>> assume shared mapping of a keymap will fail.
>> Signed-off-by: Derek Foreman <derek.foreman.samsung at gmail.com>
>> protocol/wayland.xml | 11 +++++++----
>> 1 file changed, 7 insertions(+), 4 deletions(-)
>> diff --git a/protocol/wayland.xml b/protocol/wayland.xml
>> index 141038b..802d433 100644
>> --- a/protocol/wayland.xml
>> +++ b/protocol/wayland.xml
>> @@ -1660,7 +1660,7 @@
>> - <interface name="wl_seat" version="6">
>> + <interface name="wl_seat" version="7">
>> <description summary="group of input devices">
>> A seat is a group of keyboards, pointer and touch devices.
>> object is published as a global during start up, or when such
>> @@ -1769,7 +1769,7 @@
>> - <interface name="wl_pointer" version="6">
>> + <interface name="wl_pointer" version="7">
> What is the reason for this version bump? The wl_pointer behavior is
> unaffected by the wl_keyboard change, right? As far as I understood the
> protocol versioning rules, bumping all child interfaces when updating
> one child interface is not required. In fact that would make their
> version counters quite superfluous.
> (Same for wl_touch)
>> <description summary="pointer input device">
>> The wl_pointer interface represents one or more input devices,
>> such as mice, which control the pointer location and
>> @@ -2092,7 +2092,7 @@
>> - <interface name="wl_keyboard" version="6">
>> + <interface name="wl_keyboard" version="7">
>> <description summary="keyboard input device">
>> The wl_keyboard interface represents one or more keyboards
>> associated with a seat.
>> @@ -2113,6 +2113,9 @@
>> <description summary="keyboard mapping">
>> This event provides a file descriptor to the client which can
>> memory-mapped to provide a keyboard mapping description.
>> + From version 7 onwards, the fd must be mapped with MAP_PRIVATE
>> + the recipient, as MAP_SHARED may fail.
>> <arg name="format" type="uint" enum="keymap_format"
>> summary="keymap format"/>
>> <arg name="fd" type="fd" summary="keymap file descriptor"/>
>> @@ -2203,7 +2206,7 @@
>> - <interface name="wl_touch" version="6">
>> + <interface name="wl_touch" version="7">
>> <description summary="touchscreen input device">
>> The wl_touch interface represents a touchscreen
>> associated with a seat.
More information about the wayland-devel