Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package wayland-protocols for openSUSE:Factory checked in at 2023-07-04 15:21:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/wayland-protocols (Old) and /work/SRC/openSUSE:Factory/.wayland-protocols.new.23466 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wayland-protocols" Tue Jul 4 15:21:46 2023 rev:34 rq:1096540 version:1.32 Changes: -------- --- /work/SRC/openSUSE:Factory/wayland-protocols/wayland-protocols.changes 2022-12-01 16:58:19.374863686 +0100 +++ /work/SRC/openSUSE:Factory/.wayland-protocols.new.23466/wayland-protocols.changes 2023-07-04 15:21:56.370046818 +0200 @@ -1,0 +2,11 @@ +Mon Jul 3 10:17:43 UTC 2023 - llyyr <[email protected]> + +- Update to version 1.32: + * ext-foreign-toplevel-list: new protocol + * cursor-shape-v1: new protocol + * security-context-v1: new protocol + * xdg-shell: add suspended toplevel state + * Apart from these new additions, this release also brings the + usual clarifications, cleanups and fixes. + +------------------------------------------------------------------- Old: ---- wayland-protocols-1.31.tar.xz wayland-protocols-1.31.tar.xz.sig New: ---- wayland-protocols-1.32.tar.xz wayland-protocols-1.32.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ wayland-protocols.spec ++++++ --- /var/tmp/diff_new_pack.vKMKzO/_old 2023-07-04 15:21:57.178051673 +0200 +++ /var/tmp/diff_new_pack.vKMKzO/_new 2023-07-04 15:21:57.194051770 +0200 @@ -1,7 +1,7 @@ # # spec file for package wayland-protocols # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # Copyright (c) 2015 Bjørn Lie, Bryne, Norway. # # All modifications and additions to the file contributed by third parties @@ -18,7 +18,7 @@ Name: wayland-protocols -Version: 1.31 +Version: 1.32 Release: 0 Summary: Wayland protocols that add functionality not available in the core protocol License: MIT ++++++ wayland-protocols-1.31.tar.xz -> wayland-protocols-1.32.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' "old/wayland-protocols-1.31/.gitlab/merge_request_templates/New protocol.md" "new/wayland-protocols-1.32/.gitlab/merge_request_templates/New protocol.md" --- "old/wayland-protocols-1.31/.gitlab/merge_request_templates/New protocol.md" 1970-01-01 01:00:00.000000000 +0100 +++ "new/wayland-protocols-1.32/.gitlab/merge_request_templates/New protocol.md" 2023-07-03 11:26:25.000000000 +0200 @@ -0,0 +1,9 @@ + + +#### Requirements for merging + +- [ ] Review +- [ ] Implementations +- [ ] ACKs from members + +/label ~"New Protocol" ~"In 30 day discussion period" ~"Needs acks" ~"Needs implementations" ~"Needs review" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/.gitlab-ci.yml new/wayland-protocols-1.32/.gitlab-ci.yml --- old/wayland-protocols-1.31/.gitlab-ci.yml 2022-11-29 14:37:41.000000000 +0100 +++ new/wayland-protocols-1.32/.gitlab-ci.yml 2023-07-03 11:26:25.000000000 +0200 @@ -1,4 +1,4 @@ -.templates_sha: &template_sha 290b79e0e78eab67a83766f4e9691be554fc4afd +.templates_sha: &template_sha fb33e1b244ec2a0b8edf8ee5590a96369c3b4666 include: - project: 'freedesktop/ci-templates' @@ -16,6 +16,11 @@ variables: FDO_UPSTREAM_REPO: wayland/wayland-protocols +workflow: + rules: + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + - if: $CI_PIPELINE_SOURCE == 'push' + .debian: variables: FDO_DISTRIBUTION_VERSION: bullseye @@ -31,6 +36,10 @@ - ci-fairy check-commits --signed-off-by --junit-xml=results.xml variables: GIT_DEPTH: 100 + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' + when: always + - when: never artifacts: reports: junit: results.xml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/.mailmap new/wayland-protocols-1.32/.mailmap --- old/wayland-protocols-1.31/.mailmap 1970-01-01 01:00:00.000000000 +0100 +++ new/wayland-protocols-1.32/.mailmap 2023-07-03 11:26:25.000000000 +0200 @@ -0,0 +1,3 @@ +Faith Ekstrand <[email protected]> <[email protected]> +Faith Ekstrand <[email protected]> <[email protected]> +Faith Ekstrand <[email protected]> <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/meson.build new/wayland-protocols-1.32/meson.build --- old/wayland-protocols-1.31/meson.build 2022-11-29 14:37:41.000000000 +0100 +++ new/wayland-protocols-1.32/meson.build 2023-07-03 11:26:25.000000000 +0200 @@ -1,5 +1,5 @@ project('wayland-protocols', - version: '1.31', + version: '1.32', meson_version: '>= 0.55.0', license: 'MIT/Expat', ) @@ -37,10 +37,13 @@ staging_protocols = { 'content-type': ['v1'], + 'cursor-shape': ['v1'], 'drm-lease': ['v1'], + 'ext-foreign-toplevel-list': ['v1'], 'ext-idle-notify': ['v1'], 'ext-session-lock': ['v1'], 'fractional-scale': ['v1'], + 'security-context': ['v1'], 'single-pixel-buffer': ['v1'], 'tearing-control': ['v1'], 'xdg-activation': ['v1'], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/stable/xdg-shell/xdg-shell.xml new/wayland-protocols-1.32/stable/xdg-shell/xdg-shell.xml --- old/wayland-protocols-1.31/stable/xdg-shell/xdg-shell.xml 2022-11-29 14:37:41.000000000 +0100 +++ new/wayland-protocols-1.32/stable/xdg-shell/xdg-shell.xml 2023-07-03 11:26:25.000000000 +0200 @@ -29,7 +29,7 @@ DEALINGS IN THE SOFTWARE. </copyright> - <interface name="xdg_wm_base" version="5"> + <interface name="xdg_wm_base" version="6"> <description summary="create desktop-style surfaces"> The xdg_wm_base interface is exposed as a global object enabling clients to turn their wl_surfaces into windows in a desktop environment. It @@ -122,7 +122,7 @@ </event> </interface> - <interface name="xdg_positioner" version="5"> + <interface name="xdg_positioner" version="6"> <description summary="child surface positioner"> The xdg_positioner provides a collection of rules for the placement of a child surface relative to a parent surface. Rules can be defined to ensure @@ -407,7 +407,7 @@ </request> </interface> - <interface name="xdg_surface" version="5"> + <interface name="xdg_surface" version="6"> <description summary="desktop user interface surface base interface"> An interface that may be implemented by a wl_surface, for implementations that provide a desktop-style user interface. @@ -436,8 +436,10 @@ After creating a role-specific object and setting it up, the client must perform an initial commit without any buffer attached. The compositor - will reply with an xdg_surface.configure event. The client must - acknowledge it and is then allowed to attach a buffer to map the surface. + will reply with initial wl_surface state such as + wl_surface.preferred_buffer_scale followed by an xdg_surface.configure + event. The client must acknowledge it and is then allowed to attach a + buffer to map the surface. Mapping an xdg_surface-based role surface is defined as making it possible for the surface to be shown by the compositor. Note that @@ -530,13 +532,22 @@ commit. This unset is meant for extremely simple clients. The arguments are given in the surface-local coordinate space of - the wl_surface associated with this xdg_surface. + the wl_surface associated with this xdg_surface, and may extend outside + of the wl_surface itself to mark parts of the subsurface tree as part of + the window geometry. + + When applied, the effective window geometry will be the set window + geometry clamped to the bounding rectangle of the combined + geometry of the surface of the xdg_surface and the associated + subsurfaces. + + The effective geometry will not be recalculated unless a new call to + set_window_geometry is done and the new pending surface state is + subsequently applied. - The width and height must be greater than zero. Setting an invalid size - will raise an invalid_size error. When applied, the effective window - geometry will be the set window geometry clamped to the bounding - rectangle of the combined geometry of the surface of the xdg_surface and - the associated subsurfaces. + The width and height of the effective window geometry must be + greater than zero. Setting an invalid size will raise an + invalid_size error. </description> <arg name="x" type="int"/> <arg name="y" type="int"/> @@ -606,7 +617,7 @@ </interface> - <interface name="xdg_toplevel" version="5"> + <interface name="xdg_toplevel" version="6"> <description summary="toplevel surface"> This interface defines an xdg_surface role which allows a surface to, among other things, set window-like properties such as maximize, @@ -799,10 +810,10 @@ The edges parameter specifies how the surface should be resized, and is one of the values of the resize_edge enum. Values not matching - a variant of the enum will cause a protocol error. The compositor - may use this information to update the surface position for example - when dragging the top left corner. The compositor may also use - this information to adapt its behavior, e.g. choose an appropriate + a variant of the enum will cause the invalid_resize_edge protocol error. + The compositor may use this information to update the surface position + for example when dragging the top left corner. The compositor may also + use this information to adapt its behavior, e.g. choose an appropriate cursor image. </description> <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat of the user event"/> @@ -823,7 +834,8 @@ <entry name="maximized" value="1" summary="the surface is maximized"> <description summary="the surface is maximized"> The surface is maximized. The window geometry specified in the configure - event must be obeyed by the client. + event must be obeyed by the client, or the xdg_wm_base.invalid_surface_state + error is raised. The client should draw without shadow or other decoration outside of the window geometry. @@ -877,6 +889,13 @@ considered to be adjacent to another part of the tiling grid. </description> </entry> + <entry name="suspended" value="9" since="6"> + <description summary="surface repaint is suspended"> + The surface is currently not ordinarily being repainted; for + example because its content is occluded by another window, or its + outputs are switched off due to screen locking. + </description> + </entry> </enum> <request name="set_max_size"> @@ -1175,7 +1194,7 @@ </event> </interface> - <interface name="xdg_popup" version="5"> + <interface name="xdg_popup" version="6"> <description summary="short-lived, popup surfaces for menus"> A popup surface is a short-lived, temporary surface. It can be used to implement for example menus, popovers, tooltips and other similar user @@ -1213,8 +1232,8 @@ This destroys the popup. Explicitly destroying the xdg_popup object will also dismiss the popup, and unmap the surface. - If this xdg_popup is not the "topmost" popup, a protocol error - will be sent. + If this xdg_popup is not the "topmost" popup, the + xdg_wm_base.not_the_topmost_popup protocol error will be sent. </description> </request> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/staging/cursor-shape/README new/wayland-protocols-1.32/staging/cursor-shape/README --- old/wayland-protocols-1.31/staging/cursor-shape/README 1970-01-01 01:00:00.000000000 +0100 +++ new/wayland-protocols-1.32/staging/cursor-shape/README 2023-07-03 11:26:25.000000000 +0200 @@ -0,0 +1,4 @@ +cursor-shape protocol + +Maintainers: +Simon Ser <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/staging/cursor-shape/cursor-shape-v1.xml new/wayland-protocols-1.32/staging/cursor-shape/cursor-shape-v1.xml --- old/wayland-protocols-1.31/staging/cursor-shape/cursor-shape-v1.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/wayland-protocols-1.32/staging/cursor-shape/cursor-shape-v1.xml 2023-07-03 11:26:25.000000000 +0200 @@ -0,0 +1,147 @@ +<?xml version="1.0" encoding="UTF-8"?> +<protocol name="cursor_shape_v1"> + <copyright> + Copyright 2018 The Chromium Authors + Copyright 2023 Simon Ser + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + </copyright> + + <interface name="wp_cursor_shape_manager_v1" version="1"> + <description summary="cursor shape manager"> + This global offers an alternative, optional way to set cursor images. This + new way uses enumerated cursors instead of a wl_surface like + wl_pointer.set_cursor does. + + Warning! The protocol described in this file is currently in the testing + phase. Backward compatible changes may be added together with the + corresponding interface version bump. Backward incompatible changes can + only be done by creating a new major version of the extension. + </description> + + <request name="destroy" type="destructor"> + <description summary="destroy the manager"> + Destroy the cursor shape manager. + </description> + </request> + + <request name="get_pointer"> + <description summary="manage the cursor shape of a pointer device"> + Obtain a wp_cursor_shape_device_v1 for a wl_pointer object. + </description> + <arg name="cursor_shape_device" type="new_id" interface="wp_cursor_shape_device_v1"/> + <arg name="pointer" type="object" interface="wl_pointer"/> + </request> + + <request name="get_tablet_tool_v2"> + <description summary="manage the cursor shape of a tablet tool device"> + Obtain a wp_cursor_shape_device_v1 for a zwp_tablet_tool_v2 object. + </description> + <arg name="cursor_shape_device" type="new_id" interface="wp_cursor_shape_device_v1"/> + <arg name="tablet_tool" type="object" interface="zwp_tablet_tool_v2"/> + </request> + </interface> + + <interface name="wp_cursor_shape_device_v1" version="1"> + <description summary="cursor shape for a device"> + This interface advertises the list of supported cursor shapes for a + device, and allows clients to set the cursor shape. + </description> + + <enum name="shape"> + <description summary="cursor shapes"> + This enum describes cursor shapes. + + The names are taken from the CSS W3C specification: + https://w3c.github.io/csswg-drafts/css-ui/#cursor + </description> + <entry name="default" value="1" summary="default cursor"/> + <entry name="context_menu" value="2" summary="a context menu is available for the object under the cursor"/> + <entry name="help" value="3" summary="help is available for the object under the cursor"/> + <entry name="pointer" value="4" summary="pointer that indicates a link or another interactive element"/> + <entry name="progress" value="5" summary="progress indicator"/> + <entry name="wait" value="6" summary="program is busy, user should wait"/> + <entry name="cell" value="7" summary="a cell or set of cells may be selected"/> + <entry name="crosshair" value="8" summary="simple crosshair"/> + <entry name="text" value="9" summary="text may be selected"/> + <entry name="vertical_text" value="10" summary="vertical text may be selected"/> + <entry name="alias" value="11" summary="drag-and-drop: alias of/shortcut to something is to be created"/> + <entry name="copy" value="12" summary="drag-and-drop: something is to be copied"/> + <entry name="move" value="13" summary="drag-and-drop: something is to be moved"/> + <entry name="no_drop" value="14" summary="drag-and-drop: the dragged item cannot be dropped at the current cursor location"/> + <entry name="not_allowed" value="15" summary="drag-and-drop: the requested action will not be carried out"/> + <entry name="grab" value="16" summary="drag-and-drop: something can be grabbed"/> + <entry name="grabbing" value="17" summary="drag-and-drop: something is being grabbed"/> + <entry name="e_resize" value="18" summary="resizing: the east border is to be moved"/> + <entry name="n_resize" value="19" summary="resizing: the north border is to be moved"/> + <entry name="ne_resize" value="20" summary="resizing: the north-east corner is to be moved"/> + <entry name="nw_resize" value="21" summary="resizing: the north-west corner is to be moved"/> + <entry name="s_resize" value="22" summary="resizing: the south border is to be moved"/> + <entry name="se_resize" value="23" summary="resizing: the south-east corner is to be moved"/> + <entry name="sw_resize" value="24" summary="resizing: the south-west corner is to be moved"/> + <entry name="w_resize" value="25" summary="resizing: the west border is to be moved"/> + <entry name="ew_resize" value="26" summary="resizing: the east and west borders are to be moved"/> + <entry name="ns_resize" value="27" summary="resizing: the north and south borders are to be moved"/> + <entry name="nesw_resize" value="28" summary="resizing: the north-east and south-west corners are to be moved"/> + <entry name="nwse_resize" value="29" summary="resizing: the north-west and south-east corners are to be moved"/> + <entry name="col_resize" value="30" summary="resizing: that the item/column can be resized horizontally"/> + <entry name="row_resize" value="31" summary="resizing: that the item/row can be resized vertically"/> + <entry name="all_scroll" value="32" summary="something can be scrolled in any direction"/> + <entry name="zoom_in" value="33" summary="something can be zoomed in"/> + <entry name="zoom_out" value="34" summary="something can be zoomed out"/> + </enum> + + <enum name="error"> + <entry name="invalid_shape" value="1" + summary="the specified shape value is invalid"/> + </enum> + + <request name="destroy" type="destructor"> + <description summary="destroy the cursor shape device"> + Destroy the cursor shape device. + + The device cursor shape remains unchanged. + </description> + </request> + + <request name="set_shape"> + <description summary="set device cursor to the shape"> + Sets the device cursor to the specified shape. The compositor will + change the cursor image based on the specified shape. + + The cursor actually changes only if the input device focus is one of + the requesting client's surfaces. If any, the previous cursor image + (surface or shape) is replaced. + + The "shape" argument must be a valid enum entry, otherwise the + invalid_shape protocol error is raised. + + This is similar to the wl_pointer.set_cursor and + zwp_tablet_tool_v2.set_cursor requests, but this request accepts a + shape instead of contents in the form of a surface. Clients can mix + set_cursor and set_shape requests. + + The serial parameter must match the latest wl_pointer.enter or + zwp_tablet_tool_v2.proximity_in serial number sent to the client. + Otherwise the request will be ignored. + </description> + <arg name="serial" type="uint" summary="serial number of the enter event"/> + <arg name="shape" type="uint" enum="shape"/> + </request> + </interface> +</protocol> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/staging/drm-lease/drm-lease-v1.xml new/wayland-protocols-1.32/staging/drm-lease/drm-lease-v1.xml --- old/wayland-protocols-1.31/staging/drm-lease/drm-lease-v1.xml 2022-11-29 14:37:41.000000000 +0100 +++ new/wayland-protocols-1.32/staging/drm-lease/drm-lease-v1.xml 2023-07-03 11:26:25.000000000 +0200 @@ -148,6 +148,10 @@ indicate the name of this connector. This will not change for the duration of the Wayland session, but is not guaranteed to be consistent between sessions. + + If the compositor supports wl_output version 4 and this connector + corresponds to a wl_output, the compositor should use the same name as + for the wl_output. </description> <arg name="name" type="string" summary="connector name" /> </event> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/staging/ext-foreign-toplevel-list/README new/wayland-protocols-1.32/staging/ext-foreign-toplevel-list/README --- old/wayland-protocols-1.31/staging/ext-foreign-toplevel-list/README 1970-01-01 01:00:00.000000000 +0100 +++ new/wayland-protocols-1.32/staging/ext-foreign-toplevel-list/README 2023-07-03 11:26:25.000000000 +0200 @@ -0,0 +1,4 @@ +Foreign toplevel list protocol + +Maintainers: +i509VCB <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/staging/ext-foreign-toplevel-list/ext-foreign-toplevel-list-v1.xml new/wayland-protocols-1.32/staging/ext-foreign-toplevel-list/ext-foreign-toplevel-list-v1.xml --- old/wayland-protocols-1.31/staging/ext-foreign-toplevel-list/ext-foreign-toplevel-list-v1.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/wayland-protocols-1.32/staging/ext-foreign-toplevel-list/ext-foreign-toplevel-list-v1.xml 2023-07-03 11:26:25.000000000 +0200 @@ -0,0 +1,219 @@ +<?xml version="1.0" encoding="UTF-8"?> +<protocol name="ext_foreign_toplevel_list_v1"> + <copyright> + Copyright © 2018 Ilia Bozhinov + Copyright © 2020 Isaac Freund + Copyright © 2022 wb9688 + Copyright © 2023 i509VCB + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this permission + notice appear in supporting documentation, and that the name of + the copyright holders not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. The copyright holders make no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + </copyright> + + <description summary="list toplevels"> + The purpose of this protocol is to provide protocol object handles for + toplevels, possibly originating from another client. + + This protocol is intentionally minimalistic and expects additional + functionality (e.g. creating a screencopy source from a toplevel handle, + getting information about the state of the toplevel) to be implemented + in extension protocols. + + The compositor may choose to restrict this protocol to a special client + launched by the compositor itself or expose it to all clients, + this is compositor policy. + + The key words "must", "must not", "required", "shall", "shall not", + "should", "should not", "recommended", "may", and "optional" in this + document are to be interpreted as described in IETF RFC 2119. + + Warning! The protocol described in this file is currently in the testing + phase. Backward compatible changes may be added together with the + corresponding interface version bump. Backward incompatible changes can + only be done by creating a new major version of the extension. + </description> + + <interface name="ext_foreign_toplevel_list_v1" version="1"> + <description summary="list toplevels"> + A toplevel is defined as a surface with a role similar to xdg_toplevel. + XWayland surfaces may be treated like toplevels in this protocol. + + After a client binds the ext_foreign_toplevel_list_v1, each mapped + toplevel window will be sent using the ext_foreign_toplevel_list_v1.toplevel + event. + + Clients which only care about the current state can perform a roundtrip after + binding this global. + + For each instance of ext_foreign_toplevel_list_v1, the compositor must + create a new ext_foreign_toplevel_handle_v1 object for each mapped toplevel. + + If a compositor implementation sends the ext_foreign_toplevel_list_v1.finished + event after the global is bound, the compositor must not send any + ext_foreign_toplevel_list_v1.toplevel events. + </description> + + <event name="toplevel"> + <description summary="a toplevel has been created"> + This event is emitted whenever a new toplevel window is created. It is + emitted for all toplevels, regardless of the app that has created them. + + All initial properties of the toplevel (identifier, title, app_id) will be sent + immediately after this event using the corresponding events for + ext_foreign_toplevel_handle_v1. The compositor will use the + ext_foreign_toplevel_handle_v1.done event to indicate when all data has + been sent. + </description> + <arg name="toplevel" type="new_id" interface="ext_foreign_toplevel_handle_v1"/> + </event> + + <event name="finished"> + <description summary="the compositor has finished with the toplevel manager"> + This event indicates that the compositor is done sending events + to this object. The client should should destroy the object. + See ext_foreign_toplevel_list_v1.destroy for more information. + + The compositor must not send any more toplevel events after this event. + </description> + </event> + + <request name="stop"> + <description summary="stop sending events"> + This request indicates that the client no longer wishes to receive + events for new toplevels. + + The Wayland protocol is asynchronous, meaning the compositor may send + further toplevel events until the stop request is processed. + The client should wait for a ext_foreign_toplevel_list_v1.finished + event before destroying this object. + </description> + </request> + + <request name="destroy" type="destructor"> + <description summary="destroy the ext_foreign_toplevel_list_v1 object"> + This request should be called either when the client will no longer + use the ext_foreign_toplevel_list_v1 or after the finished event + has been received to allow destruction of the object. + + If a client wishes to destroy this object it should send a + ext_foreign_toplevel_list_v1.stop request and wait for a ext_foreign_toplevel_list_v1.finished + event, then destroy the handles and then this object. + </description> + </request> + </interface> + + <interface name="ext_foreign_toplevel_handle_v1" version="1"> + <description summary="a mapped toplevel"> + A ext_foreign_toplevel_handle_v1 object represents a mapped toplevel + window. A single app may have multiple mapped toplevels. + </description> + + <request name="destroy" type="destructor"> + <description summary="destroy the ext_foreign_toplevel_handle_v1 object"> + This request should be used when the client will no longer use the handle + or after the closed event has been received to allow destruction of the + object. + + When a handle is destroyed, a new handle may not be created by the server + until the toplevel is unmapped and then remapped. Destroying a toplevel handle + is not recommended unless the client is cleaning up child objects + before destroying the ext_foreign_toplevel_list_v1 object, the toplevel + was closed or the toplevel handle will not be used in the future. + + Other protocols which extend the ext_foreign_toplevel_handle_v1 + interface should require destructors for extension interfaces be + called before allowing the toplevel handle to be destroyed. + </description> + </request> + + <event name="closed"> + <description summary="the toplevel has been closed"> + The server will emit no further events on the ext_foreign_toplevel_handle_v1 + after this event. Any requests received aside from the destroy request must + be ignored. Upon receiving this event, the client should destroy the handle. + + Other protocols which extend the ext_foreign_toplevel_handle_v1 + interface must also ignore requests other than destructors. + </description> + </event> + + <event name="done"> + <description summary="all information about the toplevel has been sent"> + This event is sent after all changes in the toplevel state have + been sent. + + This allows changes to the ext_foreign_toplevel_handle_v1 properties + to be atomically applied. Other protocols which extend the + ext_foreign_toplevel_handle_v1 interface may use this event to also + atomically apply any pending state. + + This event must not be sent after the ext_foreign_toplevel_handle_v1.closed + event. + </description> + </event> + + <event name="title"> + <description summary="title change"> + The title of the toplevel has changed. + + The configured state must not be applied immediately. See + ext_foreign_toplevel_handle_v1.done for details. + </description> + <arg name="title" type="string"/> + </event> + + <event name="app_id"> + <description summary="app_id change"> + The app id of the toplevel has changed. + + The configured state must not be applied immediately. See + ext_foreign_toplevel_handle_v1.done for details. + </description> + <arg name="app_id" type="string"/> + </event> + + <event name="identifier"> + <description summary="a stable identifier for a toplevel"> + This identifier is used to check if two or more toplevel handles belong + to the same toplevel. + + The identifier is useful for command line tools or privileged clients + which may need to reference an exact toplevel across processes or + instances of the ext_foreign_toplevel_list_v1 global. + + The compositor must only send this event when the handle is created. + + The identifier must be unique per toplevel and it's handles. Two different + toplevels must not have the same identifier. The identifier is only valid + as long as the toplevel is mapped. If the toplevel is unmapped the identifier + must not be reused. An identifier must not be reused by the compositor to + ensure there are no races when sharing identifiers between processes. + + An identifier is a string that contains up to 32 printable ASCII bytes. + An identifier must not be an empty string. It is recommended that a + compositor includes an opaque generation value in identifiers. How the + generation value is used when generating the identifier is implementation + dependent. + </description> + <arg name="identifier" type="string"/> + </event> + </interface> +</protocol> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/staging/ext-session-lock/ext-session-lock-v1.xml new/wayland-protocols-1.32/staging/ext-session-lock/ext-session-lock-v1.xml --- old/wayland-protocols-1.31/staging/ext-session-lock/ext-session-lock-v1.xml 2022-11-29 14:37:41.000000000 +0100 +++ new/wayland-protocols-1.32/staging/ext-session-lock/ext-session-lock-v1.xml 2023-07-03 11:26:25.000000000 +0200 @@ -3,17 +3,23 @@ <copyright> Copyright 2021 Isaac Freund - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. </copyright> <description summary="secure session locking with arbitrary graphics"> @@ -29,6 +35,10 @@ the session is locked the session remains locked, possibly permanently depending on compositor policy. + The key words "must", "must not", "required", "shall", "shall not", + "should", "should not", "recommended", "may", and "optional" in this + document are to be interpreted as described in IETF RFC 2119. + Warning! The protocol described in this file is currently in the testing phase. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes @@ -61,12 +71,12 @@ <interface name="ext_session_lock_v1" version="1"> <description summary="manage lock state and create lock surfaces"> - On creation of this object either the locked or finished event will - immediately be sent. + In response to the creation of this object the compositor must send + either the locked or finished event. - The locked event indicates that the session is locked. This means that - the compositor should stop rendering and providing input to normal - clients. Instead the compositor should blank all outputs with an opaque + The locked event indicates that the session is locked. This means + that the compositor must stop rendering and providing input to normal + clients. Instead the compositor must blank all outputs with an opaque color such that their normal content is fully hidden. The only surfaces that should be rendered while the session is locked @@ -74,7 +84,31 @@ at the compositor's discretion, special privileged surfaces such as input methods or portions of desktop shell UIs. - If the client dies while the session is locked, the compositor should not + The locked event must not be sent until a new "locked" frame (either + from a session lock surface or the compositor blanking the output) has + been presented on all outputs and no security sensitive normal/unlocked + content is possibly visible. + + The finished event should be sent immediately on creation of this + object if the compositor decides that the locked event will not be sent. + + The compositor may wait for the client to create and render session lock + surfaces before sending the locked event to avoid displaying intermediate + blank frames. However, it must impose a reasonable time limit if + waiting and send the locked event as soon as the hard requirements + described above can be met if the time limit expires. Clients should + immediately create lock surfaces for all outputs on creation of this + object to make this possible. + + This behavior of the locked event is required in order to prevent + possible race conditions with clients that wish to suspend the system + or similar after locking the session. Without these semantics, clients + triggering a suspend after receiving the locked event would race with + the first "locked" frame being presented and normal/unlocked frames + might be briefly visible as the system is resumed if the suspend + operation wins the race. + + If the client dies while the session is locked, the compositor must not unlock the session in response. It is acceptable for the session to be permanently locked if this happens. The compositor may choose to continue to display the lock surfaces the client had mapped before it died or @@ -119,20 +153,21 @@ This client is now responsible for displaying graphics while the session is locked and deciding when to unlock the session. - Either this event or the finished event will be sent immediately on - creation of this object. + The locked event must not be sent until a new "locked" frame has been + presented on all outputs and no security sensitive normal/unlocked + content is possibly visible. If this event is sent, making the destroy request is a protocol error, - the lock object may only be destroyed using the unlock_and_destroy - request. + the lock object must be destroyed using the unlock_and_destroy request. </description> </event> <event name="finished"> <description summary="the session lock object should be destroyed"> - The compositor has decided that the session lock should be - destroyed. Exactly when this event is sent is compositor policy, but - it will never be sent more than once for a given session lock object. + The compositor has decided that the session lock should be destroyed + as it will no longer be used by the compositor. Exactly when this + event is sent is compositor policy, but it must never be sent more + than once for a given session lock object. This might be sent because there is already another ext_session_lock_v1 object held by a client, or the compositor has decided to deny the @@ -140,10 +175,13 @@ be sent because the compositor implements some alternative, secure way to authenticate and unlock the session. - Either this event or the locked event will be sent exactly once on - creation of this object. If the locked event is sent on creation of - this object, the finished event may still be sent at some later time - in this object's lifetime, this is compositor policy. + The finished event should be sent immediately on creation of this + object if the compositor decides that the locked event will not + be sent. + + If the locked event is sent on creation of this object the finished + event may still be sent at some later time in this object's + lifetime. This is compositor policy. Upon receiving this event, the client should make either the destroy request or the unlock_and_destroy request, depending on whether or @@ -177,17 +215,17 @@ verified by the client. This request also informs the compositor that the lock object will - no longer be used and may be safely destroyed. Existing objects - created through this interface remain valid. + no longer be used and should be destroyed. Existing objects created + through this interface remain valid. After this request is made, lock surfaces created through this object should be destroyed by the client as they will no longer be used by the compositor. It is a protocol error to make this request if the locked event has - not been sent. In that case, the lock object may only be destroyed - using the destroy request. - + not been sent. In that case, the lock object must be destroyed using + the destroy request. + Note that a correct client that wishes to exit directly after unlocking the session must use the wl_display.sync request to ensure the server receives and processes the unlock_and_destroy request. Otherwise @@ -207,7 +245,7 @@ On binding this interface the compositor will immediately send the first configure event. After making the ack_configure request in - response to this event the client may attach and commit the first + response to this event the client should attach and commit the first buffer. Committing the surface before acking the first configure is a protocol error. Committing the surface with a null buffer at any time is a protocol error. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/staging/security-context/README new/wayland-protocols-1.32/staging/security-context/README --- old/wayland-protocols-1.31/staging/security-context/README 1970-01-01 01:00:00.000000000 +0100 +++ new/wayland-protocols-1.32/staging/security-context/README 2023-07-03 11:26:25.000000000 +0200 @@ -0,0 +1,4 @@ +security_context protocol + +Maintainers: +Simon Ser <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/staging/security-context/engines.md new/wayland-protocols-1.32/staging/security-context/engines.md --- old/wayland-protocols-1.31/staging/security-context/engines.md 1970-01-01 01:00:00.000000000 +0100 +++ new/wayland-protocols-1.32/staging/security-context/engines.md 2023-07-03 11:26:25.000000000 +0200 @@ -0,0 +1,14 @@ +# security-context-v1 engines + +This document describes how some specific engine implementations populate the +metadata in security-context-v1. + +## [Flatpak] + +* `sandbox_engine` is always set to `flatpak`. +* `app_id` is the Flatpak application ID (in reverse-DNS style). It is always + set. +* `instance_id` is the Flatpak instance ID of the running sandbox. It is always + set. + +[Flatpak]: https://flatpak.org/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/staging/security-context/security-context-v1.xml new/wayland-protocols-1.32/staging/security-context/security-context-v1.xml --- old/wayland-protocols-1.31/staging/security-context/security-context-v1.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/wayland-protocols-1.32/staging/security-context/security-context-v1.xml 2023-07-03 11:26:25.000000000 +0200 @@ -0,0 +1,171 @@ +<?xml version="1.0" encoding="UTF-8"?> +<protocol name="security_context_v1"> + <copyright> + Copyright © 2021 Simon Ser + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + </copyright> + + <interface name="wp_security_context_manager_v1" version="1"> + <description summary="client security context manager"> + This interface allows a client to register a new Wayland connection to + the compositor and attach a security context to it. + + This is intended to be used by sandboxes. Sandbox engines attach a + security context to all connections coming from inside the sandbox. The + compositor can then restrict the features that the sandboxed connections + can use. + + Compositors should forbid nesting multiple security contexts by not + exposing wp_security_context_manager_v1 global to clients with a security + context attached, or by sending the nested protocol error. Nested + security contexts are dangerous because they can potentially allow + privilege escalation of a sandboxed client. + + Warning! The protocol described in this file is currently in the testing + phase. Backward compatible changes may be added together with the + corresponding interface version bump. Backward incompatible changes can + only be done by creating a new major version of the extension. + </description> + + <enum name="error"> + <entry name="invalid_listen_fd" value="1" + summary="listening socket FD is invalid"/> + <entry name="nested" value="2" + summary="nested security contexts are forbidden"/> + </enum> + + <request name="destroy" type="destructor"> + <description summary="destroy the manager object"> + Destroy the manager. This doesn't destroy objects created with the + manager. + </description> + </request> + + <request name="create_listener"> + <description summary="create a new security context"> + Creates a new security context with a socket listening FD. + + The compositor will accept new client connections on listen_fd. + listen_fd must be ready to accept new connections when this request is + sent by the client. In other words, the client must call bind(2) and + listen(2) before sending the FD. + + close_fd is a FD closed by the client when the compositor should stop + accepting new connections on listen_fd. + + The compositor must continue to accept connections on listen_fd when + the Wayland client which created the security context disconnects. + </description> + <arg name="id" type="new_id" interface="wp_security_context_v1"/> + <arg name="listen_fd" type="fd" summary="listening socket FD"/> + <arg name="close_fd" type="fd" summary="FD closed when done"/> + </request> + </interface> + + <interface name="wp_security_context_v1" version="1"> + <description summary="client security context"> + The security context allows a client to register a new client and attach + security context metadata to the connections. + + When both are set, the combination of the application ID and the sandbox + engine must uniquely identify an application. The same application ID + will be used across instances (e.g. if the application is restarted, or + if the application is started multiple times). + + When both are set, the combination of the instance ID and the sandbox + engine must uniquely identify a running instance of an application. + </description> + + <enum name="error"> + <entry name="already_used" value="1" + summary="security context has already been committed"/> + <entry name="already_set" value="2" + summary="metadata has already been set"/> + <entry name="invalid_metadata" value="3" + summary="metadata is invalid"/> + </enum> + + <request name="destroy" type="destructor"> + <description summary="destroy the security context object"> + Destroy the security context object. + </description> + </request> + + <request name="set_sandbox_engine"> + <description summary="set the sandbox engine"> + Attach a unique sandbox engine name to the security context. + + A list of well-known engines is maintained at: + https://gitlab.freedesktop.org/wayland/wayland-protocols/-/blob/main/staging/security-context/engines.md + + It is a protocol error to call this request twice. The already_set + error is sent in this case. + </description> + <arg name="name" type="string" summary="the sandbox engine name"/> + </request> + + <request name="set_app_id"> + <description summary="set the application ID"> + Attach an application ID to the security context. + + The application ID is an opaque, sandbox-specific identifier for an + application. See the well-known engines document for more details: + https://gitlab.freedesktop.org/wayland/wayland-protocols/-/blob/main/staging/security-context/engines.md + + The compositor may use the application ID to group clients belonging to + the same security context application. + + Whether this request is optional or not depends on the sandbox engine used. + + It is a protocol error to call this request twice. The already_set + error is sent in this case. + </description> + <arg name="app_id" type="string" summary="the application ID"/> + </request> + + <request name="set_instance_id"> + <description summary="set the instance ID"> + Attach an instance ID to the security context. + + The instance ID is an opaque, sandbox-specific identifier for a running + instance of an application. See the well-known engines document for + more details: + https://gitlab.freedesktop.org/wayland/wayland-protocols/-/blob/main/staging/security-context/engines.md + + Whether this request is optional or not depends on the sandbox engine used. + + It is a protocol error to call this request twice. The already_set + error is sent in this case. + </description> + <arg name="instance_id" type="string" summary="the instance ID"/> + </request> + + <request name="commit"> + <description summary="register the security context"> + Atomically register the new client and attach the security context + metadata. + + It's a protocol error to send any request other than "destroy" after + this request. In this case, the already_used error is sent. + </description> + </request> + </interface> +</protocol> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/staging/xdg-activation/xdg-activation-v1.xml new/wayland-protocols-1.32/staging/xdg-activation/xdg-activation-v1.xml --- old/wayland-protocols-1.31/staging/xdg-activation/xdg-activation-v1.xml 2022-11-29 14:37:41.000000000 +0100 +++ new/wayland-protocols-1.32/staging/xdg-activation/xdg-activation-v1.xml 2023-07-03 11:26:25.000000000 +0200 @@ -40,7 +40,7 @@ Another established way exists for Applications implementing the D-Bus interface org.freedesktop.Application, which should get their token under - XDG_ACTIVATION_TOKEN on their platform_data. + activation-token on their platform_data. In general activation tokens may be transferred across clients through means not described in this protocol. @@ -193,7 +193,7 @@ <request name="destroy" type="destructor"> <description summary="destroy the xdg_activation_token_v1 object"> Notify the compositor that the xdg_activation_token_v1 object will no - longer be used. + longer be used. The received token stays valid. </description> </request> </interface> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/tests/meson.build new/wayland-protocols-1.32/tests/meson.build --- old/wayland-protocols-1.31/tests/meson.build 2022-11-29 14:37:41.000000000 +0100 +++ new/wayland-protocols-1.32/tests/meson.build 2023-07-03 11:26:25.000000000 +0200 @@ -1,6 +1,6 @@ prog_scan_sh = find_program('scan.sh') -dep_scanner = dependency('wayland-scanner', version: '>=1.20.0', native: true) -prog_scanner = find_program(dep_scanner.get_variable(pkgconfig: 'wayland_scanner')) +dep_scanner = dependency('wayland-scanner', version: '>=1.20.0', native: true, fallback: 'wayland') +prog_scanner = find_program(dep_scanner.get_variable(pkgconfig: 'wayland_scanner', internal: 'wayland_scanner')) libwayland = [ dependency('wayland-client'), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml new/wayland-protocols-1.32/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml --- old/wayland-protocols-1.31/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml 2022-11-29 14:37:41.000000000 +0100 +++ new/wayland-protocols-1.32/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml 2023-07-03 11:26:25.000000000 +0200 @@ -344,7 +344,7 @@ successful. It provides the new wl_buffer referencing the dmabuf(s). Upon receiving this event, the client should destroy the - zlinux_dmabuf_params object. + zwp_linux_buffer_params_v1 object. </description> <arg name="buffer" type="new_id" interface="wl_buffer" summary="the newly created wl_buffer"/> @@ -357,7 +357,7 @@ has not been fulfilled. Upon receiving this event, the client should destroy the - zlinux_buffer_params object. + zwp_linux_buffer_params_v1 object. </description> </event> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/unstable/tablet/tablet-unstable-v2.xml new/wayland-protocols-1.32/unstable/tablet/tablet-unstable-v2.xml --- old/wayland-protocols-1.31/unstable/tablet/tablet-unstable-v2.xml 2022-11-29 14:37:41.000000000 +0100 +++ new/wayland-protocols-1.32/unstable/tablet/tablet-unstable-v2.xml 2023-07-03 11:26:25.000000000 +0200 @@ -247,7 +247,7 @@ previously been used as cursor surface for a different tool, a protocol error is raised. </description> - <arg name="serial" type="uint" summary="serial of the enter event"/> + <arg name="serial" type="uint" summary="serial of the proximity_in event"/> <arg name="surface" type="object" interface="wl_surface" allow-null="true"/> <arg name="hotspot_x" type="int" summary="surface-local x coordinate"/> <arg name="hotspot_y" type="int" summary="surface-local y coordinate"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/unstable/xdg-output/xdg-output-unstable-v1.xml new/wayland-protocols-1.32/unstable/xdg-output/xdg-output-unstable-v1.xml --- old/wayland-protocols-1.31/unstable/xdg-output/xdg-output-unstable-v1.xml 2022-11-29 14:37:41.000000000 +0100 +++ new/wayland-protocols-1.32/unstable/xdg-output/xdg-output-unstable-v1.xml 2023-07-03 11:26:25.000000000 +0200 @@ -35,12 +35,12 @@ Typically, the global compositor space on a desktop system is made of a contiguous or overlapping set of rectangular regions. - Some of the information provided in this protocol might be identical - to their counterparts already available from wl_output, in which case - the information provided by this protocol should be preferred to their - equivalent in wl_output. The goal is to move the desktop specific - concepts (such as output location within the global compositor space, - the connector name and types, etc.) out of the core wl_output protocol. + The logical_position and logical_size events defined in this protocol + might provide information identical to their counterparts already + available from wl_output, in which case the information provided by this + protocol should be preferred to their equivalent in wl_output. The goal is + to move the desktop specific concepts (such as output location within the + global compositor space, etc.) out of the core wl_output protocol. Warning! The protocol described in this file is experimental and backward incompatible changes may be made. Backward compatible @@ -117,10 +117,6 @@ The logical_size event describes the size of the output in the global compositor space. - For example, a surface without any buffer scale, transformation - nor rotation set, with the size matching the logical_size will - have the same size as the corresponding output when displayed. - Most regular Wayland clients should not pay attention to the logical size and would rather rely on xdg_shell interfaces. @@ -131,14 +127,14 @@ For example, for a wl_output mode 3840Ã2160 and a scale factor 2: - - A compositor not scaling the surface buffers will advertise a - logical size of 3840Ã2160, + - A compositor not scaling the monitor viewport in its compositing space + will advertise a logical size of 3840Ã2160, - - A compositor automatically scaling the surface buffers will + - A compositor scaling the monitor viewport with scale factor 2 will advertise a logical size of 1920Ã1080, - - A compositor using a fractional scale of 1.5 will advertise a - logical size of 2560Ã1440. + - A compositor scaling the monitor viewport using a fractional scale of + 1.5 will advertise a logical size of 2560Ã1440. For example, for a wl_output mode 1920Ã1080 and a 90 degree rotation, the compositor will advertise a logical size of 1080x1920. @@ -191,6 +187,9 @@ xdg_output_manager.get_xdg_output). This event is only sent once per xdg_output, and the name does not change over the lifetime of the wl_output global. + + This event is deprecated, instead clients should use wl_output.name. + Compositors must still support this event. </description> <arg name="name" type="string" summary="output name"/> </event> @@ -212,6 +211,9 @@ For objects of version 2 and lower, this event is only sent once per xdg_output, and the description does not change over the lifetime of the wl_output global. + + This event is deprecated, instead clients should use + wl_output.description. Compositors must still support this event. </description> <arg name="description" type="string" summary="output description"/> </event> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/unstable/xdg-shell/xdg-shell-unstable-v5.xml new/wayland-protocols-1.32/unstable/xdg-shell/xdg-shell-unstable-v5.xml --- old/wayland-protocols-1.31/unstable/xdg-shell/xdg-shell-unstable-v5.xml 2022-11-29 14:37:41.000000000 +0100 +++ new/wayland-protocols-1.32/unstable/xdg-shell/xdg-shell-unstable-v5.xml 2023-07-03 11:26:25.000000000 +0200 @@ -478,6 +478,11 @@ If the surface was already maximized, the compositor will still emit a configure event with the "maximized" state. + + Note that unrelated compositor side state changes may cause + configure events to be emitted at any time, meaning trying to + match this request to a specific future configure event is + futile. </description> </request> @@ -500,6 +505,11 @@ If the surface was already not maximized, the compositor will still emit a configure event without the "maximized" state. + + Note that unrelated compositor side state changes may cause + configure events to be emitted at any time, meaning trying to + match this request to a specific future configure event is + futile. </description> </request> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayland-protocols-1.31/unstable/xdg-shell/xdg-shell-unstable-v6.xml new/wayland-protocols-1.32/unstable/xdg-shell/xdg-shell-unstable-v6.xml --- old/wayland-protocols-1.31/unstable/xdg-shell/xdg-shell-unstable-v6.xml 2022-11-29 14:37:41.000000000 +0100 +++ new/wayland-protocols-1.32/unstable/xdg-shell/xdg-shell-unstable-v6.xml 2023-07-03 11:26:25.000000000 +0200 @@ -404,14 +404,17 @@ <request name="destroy" type="destructor"> <description summary="destroy the xdg_surface"> Destroy the xdg_surface object. An xdg_surface must only be destroyed - after its role object has been destroyed. + after its role object has been destroyed. If the role object still + exists when this request is issued, the zxdg_shell_v6.defunct_surfaces + is raised. </description> </request> <request name="get_toplevel"> <description summary="assign the xdg_toplevel surface role"> This creates an xdg_toplevel object for the given xdg_surface and gives - the associated wl_surface the xdg_toplevel role. + the associated wl_surface the xdg_toplevel role. If the surface already + had a role, the zxdg_shell_v6.role error is raised. See the documentation of xdg_toplevel for more details about what an xdg_toplevel is and how it is used. @@ -422,7 +425,8 @@ <request name="get_popup"> <description summary="assign the xdg_popup surface role"> This creates an xdg_popup object for the given xdg_surface and gives the - associated wl_surface the xdg_popup role. + associated wl_surface the xdg_popup role. If the surface already + had a role, the zxdg_shell_v6.role error is raised. See the documentation of xdg_popup for more details about what an xdg_popup is and how it is used. @@ -486,6 +490,9 @@ A client may send multiple ack_configure requests before committing, but only the last request sent before a commit indicates which configure event the client really is responding to. + + If an invalid serial is used, the zxdg_shell_v6.invalid_surface_state + error is raised. </description> <arg name="serial" type="uint" summary="the serial from the configure event"/> </request> @@ -692,19 +699,21 @@ <entry name="maximized" value="1" summary="the surface is maximized"> <description summary="the surface is maximized"> The surface is maximized. The window geometry specified in the configure - event must be obeyed by the client. + event must be obeyed by the client. If the window geometry is not obyed, + the zxdg_shell_v6.invalid_surface_state error is raised. </description> </entry> <entry name="fullscreen" value="2" summary="the surface is fullscreen"> <description summary="the surface is fullscreen"> - The surface is fullscreen. The window geometry specified in the configure - event must be obeyed by the client. + The surface is fullscreen. See set_fullscreen for more information. </description> </entry> <entry name="resizing" value="3" summary="the surface is being resized"> <description summary="the surface is being resized"> The surface is being resized. The window geometry specified in the - configure event is a maximum; the client cannot resize beyond it. + configure event is a maximum; the client cannot resize beyond it. If the + client attempts to resize above it, the zxdg_shell_v6.invalid_surface_state + error is raised. Clients that have aspect ratio or cell sizing configuration can use a smaller size, however. </description> @@ -752,8 +761,8 @@ a surface is illegal and will result in a protocol error. The width and height must be greater than or equal to zero. Using - strictly negative values for width and height will result in a - protocol error. + strictly negative values for width and height will result in the + zxdg_shell_v6.invalid_surface_state error being raised. </description> <arg name="width" type="int"/> <arg name="height" type="int"/> @@ -793,8 +802,8 @@ a surface is illegal and will result in a protocol error. The width and height must be greater than or equal to zero. Using - strictly negative values for width and height will result in a - protocol error. + strictly negative values for width and height will result in the + zxdg_shell_v6.invalid_surface_state error being raised. </description> <arg name="width" type="int"/> <arg name="height" type="int"/> @@ -818,6 +827,11 @@ If the surface was already maximized, the compositor will still emit a configure event with the "maximized" state. + + Note that unrelated compositor side state changes may cause + configure events to be emitted at any time, meaning trying to + match this request to a specific future configure event is + futile. </description> </request> @@ -840,6 +854,11 @@ If the surface was already not maximized, the compositor will still emit a configure event without the "maximized" state. + + Note that unrelated changes in the state of compositor may cause + configure events to be emitted by the compositor between processing + this request and emitting corresponding configure event, so trying + to match the request with the event is futile. </description> </request>
