Actually... (below) 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 > client. > > 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 <[email protected]> > --- > 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 @@ > </request> > </interface> > > - <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. > This > object is published as a global during start up, or when such > a > @@ -1769,7 +1769,7 @@ > > </interface> > > - <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 > pointer_focus > @@ -2092,7 +2092,7 @@ > </event> > </interface> > > - <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 > be > memory-mapped to provide a keyboard mapping description. > + > + From version 7 onwards, the fd must be mapped with MAP_PRIVATE > by > + the recipient, as MAP_SHARED may fail. > </description> > <arg name="format" type="uint" enum="keymap_format" > summary="keymap format"/> > <arg name="fd" type="fd" summary="keymap file descriptor"/> > @@ -2203,7 +2206,7 @@ > </event> > </interface> > > - <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. _______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
