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 2021-09-16 23:14:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wayland-protocols (Old)
and /work/SRC/openSUSE:Factory/.wayland-protocols.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wayland-protocols"
Thu Sep 16 23:14:33 2021 rev:23 rq:918403 version:1.22
Changes:
--------
--- /work/SRC/openSUSE:Factory/wayland-protocols/wayland-protocols.changes
2021-05-18 18:26:45.474880372 +0200
+++
/work/SRC/openSUSE:Factory/.wayland-protocols.new.1899/wayland-protocols.changes
2021-09-16 23:16:56.487939293 +0200
@@ -1,0 +2,20 @@
+Wed Sep 1 17:58:37 UTC 2021 - Christophe Giboudeaux <[email protected]>
+
+- Update to 1.22
+ This release includes a new staging protocol: DRM object leasing.
+
+ Besides that, various test and build system improvements are
+ included, as well as a set of clarifications to the
+ xdg-activation protocol and other protocols.
+
+ * xdg-shell: Make xdg_surface fail when surface has role
+ * xdg-output: fix minor calculation error
+ * xdg-activation: correct sequence when X11 client spawns
+ Wayland client
+ * xdg-activation: rewrite and move description of token forwarding
+ * xdg-activation-v1: clarify set_{serial,surface}
+ * presentation-time: use enum entry description tags
+- Check
https://lists.freedesktop.org/archives/wayland-devel/2021-September/041972.html
+ for the full list of changes.
+
+-------------------------------------------------------------------
Old:
----
wayland-protocols-1.21.tar.xz
wayland-protocols-1.21.tar.xz.sig
New:
----
wayland-protocols-1.22.tar.xz
wayland-protocols-1.22.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ wayland-protocols.spec ++++++
--- /var/tmp/diff_new_pack.qLXGRN/_old 2021-09-16 23:16:57.111939939 +0200
+++ /var/tmp/diff_new_pack.qLXGRN/_new 2021-09-16 23:16:57.115939943 +0200
@@ -18,7 +18,7 @@
Name: wayland-protocols
-Version: 1.21
+Version: 1.22
Release: 0
Summary: Wayland protocols that adds functionality not available in the
core protocol
License: MIT
++++++ wayland-protocols-1.21.tar.xz -> wayland-protocols-1.22.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wayland-protocols-1.21/MEMBERS.md
new/wayland-protocols-1.22/MEMBERS.md
--- old/wayland-protocols-1.21/MEMBERS.md 2021-03-31 08:35:19.000000000
+0200
+++ new/wayland-protocols-1.22/MEMBERS.md 2021-09-01 09:24:41.000000000
+0200
@@ -1,13 +1,15 @@
# wayland-protocols members
-- EFL/Enlightenment: Mike Blumenkrantz <[email protected]>
-- GTK/Mutter: Jonas ??dahl <[email protected]>,
- Carlos Garnacho <[email protected]>
-- KWin: Eike Hein <[email protected]>,
- David Edmundson <[email protected]>
-- Mir: Christopher James Halse Rogers <[email protected]>,
+- EFL/Enlightenment: Mike Blumenkrantz <[email protected]>
(@zmike)
+- GTK/Mutter: Jonas ??dahl <[email protected]> (@jadahl),
+ Carlos Garnacho <[email protected]> (@carlosg)
+- KWin: Eike Hein <[email protected]> (@hein),
+ David Edmundson <[email protected]> (@davidedmundson)
+- Mir: Christopher James Halse Rogers <[email protected]> (@RAOF),
Alan Griffiths <[email protected]>
- Qt: Eskil Abrahamsen Blomfeldt <[email protected]>
-- Weston: Pekka Paalanen <[email protected]>,
- Daniel Stone <[email protected]>
-- wlroots/Sway: Drew DeVault <[email protected]>, Simon Ser <[email protected]>
+ (@eskilblomfeldt)
+- Weston: Pekka Paalanen <[email protected]> (@pq),
+ Daniel Stone <[email protected]> (@daniels)
+- wlroots/Sway: Drew DeVault <[email protected]> (@ddevault),
+ Simon Ser <[email protected]> (@emersion)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wayland-protocols-1.21/Makefile.am
new/wayland-protocols-1.22/Makefile.am
--- old/wayland-protocols-1.21/Makefile.am 2021-04-30 16:11:07.000000000
+0200
+++ new/wayland-protocols-1.22/Makefile.am 2021-09-01 09:24:41.000000000
+0200
@@ -32,6 +32,7 @@
$(NULL)
staging_protocols =
\
+ staging/drm-lease/drm-lease-v1.xml
\
staging/xdg-activation/xdg-activation-v1.xml
\
$(NULL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wayland-protocols-1.21/Makefile.in
new/wayland-protocols-1.22/Makefile.in
--- old/wayland-protocols-1.21/Makefile.in 2021-04-30 18:09:40.000000000
+0200
+++ new/wayland-protocols-1.22/Makefile.in 2021-09-01 09:45:55.000000000
+0200
@@ -336,7 +336,8 @@
am__EXEEXT_2 = stable/presentation-time/presentation-time.xml \
stable/viewporter/viewporter.xml \
stable/xdg-shell/xdg-shell.xml
-am__EXEEXT_3 = staging/xdg-activation/xdg-activation-v1.xml
+am__EXEEXT_3 = staging/drm-lease/drm-lease-v1.xml \
+ staging/xdg-activation/xdg-activation-v1.xml
TEST_SUITE_LOG = test-suite.log
am__test_logs1 = $(TESTS:=.log)
TEST_LOGS = $(am__test_logs1:.xml.log=.log)
@@ -489,6 +490,7 @@
$(NULL)
staging_protocols = \
+ staging/drm-lease/drm-lease-v1.xml
\
staging/xdg-activation/xdg-activation-v1.xml
\
$(NULL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wayland-protocols-1.21/README.md
new/wayland-protocols-1.22/README.md
--- old/wayland-protocols-1.21/README.md 2021-03-31 11:20:59.000000000
+0200
+++ new/wayland-protocols-1.22/README.md 2021-09-01 09:24:41.000000000
+0200
@@ -89,6 +89,12 @@
To propose changes to existing protocols, create a GitLab merge request.
+Please include a `Signed-off-by` line at the end of the commit to certify
+that you wrote it or otherwise have the right to pass it on as an
+open-source patch. See the
+[Developer Certificate of Origin](https://developercertificate.org/) for
+a formal definition.
+
## Interface naming convention
All protocols should avoid using generic namespaces or no namespaces in
@@ -223,9 +229,9 @@
When merge requests get their needed feedback and items, remove the
corresponding label that marks it as needing something. For example, if a
-merge request receives all the required acknowledgments, remove the ~"Needs
-acks" label, or if 30 days passed since opening, remove any ~"In 30 days
-discussion period" label.
+merge request receives all the required acknowledgments, remove the
+~"Needs acks" label, or if 30 days passed since opening, remove any
+~"In 30 day discussion period" label.
### Nacking a merge request
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wayland-protocols-1.21/configure
new/wayland-protocols-1.22/configure
--- old/wayland-protocols-1.21/configure 2021-04-30 18:09:40.000000000
+0200
+++ new/wayland-protocols-1.22/configure 2021-09-01 09:45:55.000000000
+0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for wayland-protocols 1.21.
+# Generated by GNU Autoconf 2.69 for wayland-protocols 1.22.
#
# Report bugs to
<https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=wayland&version=unspecified>.
#
@@ -580,8 +580,8 @@
# Identity of this package.
PACKAGE_NAME='wayland-protocols'
PACKAGE_TARNAME='wayland-protocols'
-PACKAGE_VERSION='1.21'
-PACKAGE_STRING='wayland-protocols 1.21'
+PACKAGE_VERSION='1.22'
+PACKAGE_STRING='wayland-protocols 1.22'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=wayland&version=unspecified'
PACKAGE_URL='http://wayland.freedesktop.org/'
@@ -1226,7 +1226,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures wayland-protocols 1.21 to adapt to many kinds of
systems.
+\`configure' configures wayland-protocols 1.22 to adapt to many kinds of
systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1294,7 +1294,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of wayland-protocols 1.21:";;
+ short | recursive ) echo "Configuration of wayland-protocols 1.22:";;
esac
cat <<\_ACEOF
@@ -1392,7 +1392,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-wayland-protocols configure 1.21
+wayland-protocols configure 1.22
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1409,7 +1409,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by wayland-protocols $as_me 1.21, which was
+It was created by wayland-protocols $as_me 1.22, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -1760,7 +1760,7 @@
-WAYLAND_PROTOCOLS_VERSION=1.21
+WAYLAND_PROTOCOLS_VERSION=1.22
@@ -2539,7 +2539,7 @@
# Define the identity of the package.
PACKAGE='wayland-protocols'
- VERSION='1.21'
+ VERSION='1.22'
cat >>confdefs.h <<_ACEOF
@@ -3358,7 +3358,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by wayland-protocols $as_me 1.21, which was
+This file was extended by wayland-protocols $as_me 1.22, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -3412,7 +3412,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //;
s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-wayland-protocols config.status 1.21
+wayland-protocols config.status 1.22
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wayland-protocols-1.21/configure.ac
new/wayland-protocols-1.22/configure.ac
--- old/wayland-protocols-1.21/configure.ac 2021-04-30 18:09:17.000000000
+0200
+++ new/wayland-protocols-1.22/configure.ac 2021-09-01 09:45:22.000000000
+0200
@@ -1,7 +1,7 @@
AC_PREREQ([2.64])
m4_define([wayland_protocols_major_version], [1])
-m4_define([wayland_protocols_minor_version], [21])
+m4_define([wayland_protocols_minor_version], [22])
m4_define([wayland_protocols_version],
[wayland_protocols_major_version.wayland_protocols_minor_version])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wayland-protocols-1.21/meson.build
new/wayland-protocols-1.22/meson.build
--- old/wayland-protocols-1.21/meson.build 2021-04-30 18:09:21.000000000
+0200
+++ new/wayland-protocols-1.22/meson.build 2021-09-01 09:43:24.000000000
+0200
@@ -1,6 +1,6 @@
project('wayland-protocols',
- version: '1.21',
- meson_version: '>= 0.53.0',
+ version: '1.22',
+ meson_version: '>= 0.54.0',
license: 'MIT/Expat',
)
@@ -39,6 +39,7 @@
staging_protocols = {
'xdg-activation': ['v1'],
+ 'drm-lease': ['v1'],
}
protocol_files = []
@@ -106,6 +107,14 @@
configuration: pkgconfig_configuration,
)
+wayland_protocols = declare_dependency(
+ variables: {
+ 'pkgdatadir': wayland_protocols_srcdir,
+ },
+)
+
+meson.override_dependency('wayland-protocols', wayland_protocols)
+
if get_option('tests')
subdir('tests')
endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wayland-protocols-1.21/stable/presentation-time/presentation-time.xml
new/wayland-protocols-1.22/stable/presentation-time/presentation-time.xml
--- old/wayland-protocols-1.21/stable/presentation-time/presentation-time.xml
2021-03-31 08:35:19.000000000 +0200
+++ new/wayland-protocols-1.22/stable/presentation-time/presentation-time.xml
2021-09-01 09:24:41.000000000 +0200
@@ -159,43 +159,43 @@
These flags provide information about how the presentation of
the related content update was done. The intent is to help
clients assess the reliability of the feedback and the visual
- quality with respect to possible tearing and timings. The
- flags are:
-
- VSYNC:
- The presentation was synchronized to the "vertical retrace" by
- the display hardware such that tearing does not happen.
- Relying on user space scheduling is not acceptable for this
- flag. If presentation is done by a copy to the active
- frontbuffer, then it must guarantee that tearing cannot
- happen.
-
- HW_CLOCK:
- The display hardware provided measurements that the hardware
- driver converted into a presentation timestamp. Sampling a
- clock in user space is not acceptable for this flag.
-
- HW_COMPLETION:
- The display hardware signalled that it started using the new
- image content. The opposite of this is e.g. a timer being used
- to guess when the display hardware has switched to the new
- image content.
-
- ZERO_COPY:
- The presentation of this update was done zero-copy. This means
- the buffer from the client was given to display hardware as
- is, without copying it. Compositing with OpenGL counts as
- copying, even if textured directly from the client buffer.
- Possible zero-copy cases include direct scanout of a
- fullscreen surface and a surface on a hardware overlay.
+ quality with respect to possible tearing and timings.
</description>
- <entry name="vsync" value="0x1" summary="presentation was vsync'd"/>
- <entry name="hw_clock" value="0x2"
- summary="hardware provided the presentation timestamp"/>
- <entry name="hw_completion" value="0x4"
- summary="hardware signalled the start of the presentation"/>
- <entry name="zero_copy" value="0x8"
- summary="presentation was done zero-copy"/>
+ <entry name="vsync" value="0x1">
+ <description summary="presentation was vsync'd">
+ The presentation was synchronized to the "vertical retrace" by
+ the display hardware such that tearing does not happen.
+ Relying on user space scheduling is not acceptable for this
+ flag. If presentation is done by a copy to the active
+ frontbuffer, then it must guarantee that tearing cannot
+ happen.
+ </description>
+ </entry>
+ <entry name="hw_clock" value="0x2">
+ <description summary="hardware provided the presentation timestamp">
+ The display hardware provided measurements that the hardware
+ driver converted into a presentation timestamp. Sampling a
+ clock in user space is not acceptable for this flag.
+ </description>
+ </entry>
+ <entry name="hw_completion" value="0x4">
+ <description summary="hardware signalled the start of the
presentation">
+ The display hardware signalled that it started using the new
+ image content. The opposite of this is e.g. a timer being used
+ to guess when the display hardware has switched to the new
+ image content.
+ </description>
+ </entry>
+ <entry name="zero_copy" value="0x8">
+ <description summary="presentation was done zero-copy">
+ The presentation of this update was done zero-copy. This means
+ the buffer from the client was given to display hardware as
+ is, without copying it. Compositing with OpenGL counts as
+ copying, even if textured directly from the client buffer.
+ Possible zero-copy cases include direct scanout of a
+ fullscreen surface and a surface on a hardware overlay.
+ </description>
+ </entry>
</enum>
<event name="presented">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wayland-protocols-1.21/stable/xdg-shell/xdg-shell.xml
new/wayland-protocols-1.22/stable/xdg-shell/xdg-shell.xml
--- old/wayland-protocols-1.21/stable/xdg-shell/xdg-shell.xml 2021-03-26
10:11:47.000000000 +0100
+++ new/wayland-protocols-1.22/stable/xdg-shell/xdg-shell.xml 2021-09-01
09:24:41.000000000 +0200
@@ -75,7 +75,9 @@
<description summary="create a shell surface from a surface">
This creates an xdg_surface for the given surface. While xdg_surface
itself is not a role, the corresponding surface may only be assigned
- a role extending xdg_surface, such as xdg_toplevel or xdg_popup.
+ a role extending xdg_surface, such as xdg_toplevel or xdg_popup. It is
+ illegal to create an xdg_surface for a wl_surface which already has an
+ assigned role and this will result in a protocol error.
This creates an xdg_surface for the given surface. An xdg_surface is
used as basis to define a role to a given surface, such as xdg_toplevel
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wayland-protocols-1.21/staging/drm-lease/README
new/wayland-protocols-1.22/staging/drm-lease/README
--- old/wayland-protocols-1.21/staging/drm-lease/README 1970-01-01
01:00:00.000000000 +0100
+++ new/wayland-protocols-1.22/staging/drm-lease/README 2021-09-01
09:24:41.000000000 +0200
@@ -0,0 +1,6 @@
+Linux DRM lease
+
+Maintainers:
+Drew DeVault <[email protected]>
+Marius Vlad <[email protected]>
+Xaver Hugl <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wayland-protocols-1.21/staging/drm-lease/drm-lease-v1.xml
new/wayland-protocols-1.22/staging/drm-lease/drm-lease-v1.xml
--- old/wayland-protocols-1.21/staging/drm-lease/drm-lease-v1.xml
1970-01-01 01:00:00.000000000 +0100
+++ new/wayland-protocols-1.22/staging/drm-lease/drm-lease-v1.xml
2021-09-01 09:24:41.000000000 +0200
@@ -0,0 +1,303 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="drm_lease_v1">
+ <copyright>
+ Copyright ?? 2018 NXP
+ Copyright ?? 2019 Status Research & Development GmbH.
+ Copyright ?? 2021 Xaver Hugl
+
+ 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_drm_lease_device_v1" version="1">
+ <description summary="lease device">
+ This protocol is used by Wayland compositors which act as Direct
+ Renderering Manager (DRM) masters to lease DRM resources to Wayland
+ clients.
+
+ The compositor will advertise one wp_drm_lease_device_v1 global for each
+ DRM node. Some time after a client binds to the wp_drm_lease_device_v1
+ global, the compositor will send a drm_fd event followed by zero, one or
+ more connector events. After all currently available connectors have been
+ sent, the compositor will send a wp_drm_lease_device_v1.done event.
+
+ When the list of connectors available for lease changes the compositor
+ will send wp_drm_lease_device_v1.connector events for added connectors
and
+ wp_drm_lease_connector_v1.withdrawn events for removed connectors,
+ followed by a wp_drm_lease_device_v1.done event.
+
+ The compositor will indicate when a device is gone by removing the global
+ via a wl_registry.global_remove event. Upon receiving this event, the
+ client should destroy any matching wp_drm_lease_device_v1 object.
+
+ To destroy a wp_drm_lease_device_v1 object, the client must first issue
+ a release request. Upon receiving this request, the compositor will
+ immediately send a released event and destroy the object. The client must
+ continue to process and discard drm_fd and connector events until it
+ receives the released event. Upon receiving the released event, the
+ client can safely cleanup any client-side resources.
+
+ 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="create_lease_request">
+ <description summary="create a lease request object">
+ Creates a lease request object.
+
+ See the documentation for wp_drm_lease_request_v1 for details.
+ </description>
+ <arg name="id" type="new_id" interface="wp_drm_lease_request_v1" />
+ </request>
+
+ <request name="release">
+ <description summary="release this object">
+ Indicates the client no longer wishes to use this object. In response
+ the compositor will immediately send the released event and destroy
+ this object. It can however not guarantee that the client won't receive
+ connector events before the released event. The client must not send
any
+ requests after this one, doing so will raise a wl_display error.
+ Existing connectors, lease request and leases will not be affected.
+ </description>
+ </request>
+
+ <event name="drm_fd">
+ <description summary="open a non-master fd for this DRM node">
+ The compositor will send this event when the wp_drm_lease_device_v1
+ global is bound, although there are no guarantees as to how long this
+ takes - the compositor might need to wait until regaining DRM master.
+ The included fd is a non-master DRM file descriptor opened for this
+ device and the compositor must not authenticate it.
+ The purpose of this event is to give the client the ability to
+ query DRM and discover information which may help them pick the
+ appropriate DRM device or select the appropriate connectors therein.
+ </description>
+ <arg name="fd" type="fd" summary="DRM file descriptor" />
+ </event>
+
+ <event name="connector">
+ <description summary="advertise connectors available for leases">
+ The compositor will use this event to advertise connectors available
for
+ lease by clients. This object may be passed into a lease request to
+ indicate the client would like to lease that connector, see
+ wp_drm_lease_request_v1.request_connector for details. While the
+ compositor will make a best effort to not send disconnected connectors,
+ no guarantees can be made.
+
+ The compositor must send the drm_fd event before sending connectors.
+ After the drm_fd event it will send all available connectors but may
+ send additional connectors at any time.
+ </description>
+ <arg name="id" type="new_id" interface="wp_drm_lease_connector_v1" />
+ </event>
+
+ <event name="done">
+ <description summary="signals grouping of connectors">
+ The compositor will send this event to indicate that it has sent all
+ currently available connectors after the client binds to the global or
+ when it updates the connector list, for example on hotplug, drm master
+ change or when a leased connector becomes available again. It will
+ similarly send this event to group wp_drm_lease_connector_v1.withdrawn
+ events of connectors of this device.
+ </description>
+ </event>
+
+ <event name="released">
+ <description summary="the compositor has finished using the device">
+ This event is sent in response to the release request and indicates
+ that the compositor is done sending connector events.
+ The compositor will destroy this object immediately after sending the
+ event and it will become invalid. The client should release any
+ resources associated with this device after receiving this event.
+ </description>
+ </event>
+ </interface>
+
+ <interface name="wp_drm_lease_connector_v1" version="1">
+ <description summary="a leasable DRM connector">
+ Represents a DRM connector which is available for lease. These objects
are
+ created via wp_drm_lease_device_v1.connector events, and should be passed
+ to lease requests via wp_drm_lease_request_v1.request_connector.
+ Immediately after the wp_drm_lease_connector_v1 object is created the
+ compositor will send a name, a description, a connector_id and a done
+ event. When the description is updated the compositor will send a
+ description event followed by a done event.
+ </description>
+
+ <event name="name">
+ <description summary="name">
+ The compositor sends this event once the connector is created to
+ 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.
+ </description>
+ <arg name="name" type="string" summary="connector name" />
+ </event>
+
+ <event name="description">
+ <description summary="description">
+ The compositor sends this event once the connector is created to
provide
+ a human-readable description for this connector, which may be presented
+ to the user. The compositor may send this event multiple times over the
+ lifetime of this object to reflect changes in the description.
+ </description>
+ <arg name="description" type="string" summary="connector description" />
+ </event>
+
+ <event name="connector_id">
+ <description summary="connector_id">
+ The compositor sends this event once the connector is created to
+ indicate the DRM object ID which represents the underlying connector
+ that is being offered. Note that the final lease may include additional
+ object IDs, such as CRTCs and planes.
+ </description>
+ <arg name="connector_id" type="uint" summary="DRM connector ID" />
+ </event>
+
+ <event name="done">
+ <description summary="all properties have been sent">
+ This event is sent after all properties of a connector have been sent.
+ This allows changes to the properties to be seen as atomic even if they
+ happen via multiple events.
+ </description>
+ </event>
+
+ <event name="withdrawn">
+ <description summary="lease offer withdrawn">
+ Sent to indicate that the compositor will no longer honor requests for
+ DRM leases which include this connector. The client may still issue a
+ lease request including this connector, but the compositor will send
+ wp_drm_lease_v1.finished without issuing a lease fd. Compositors are
+ encouraged to send this event when they lose access to connector, for
+ example when the connector is hot-unplugged, when the connector gets
+ leased to a client or when the compositor loses DRM master.
+ </description>
+ </event>
+
+ <request name="destroy" type="destructor">
+ <description summary="destroy connector">
+ The client may send this request to indicate that it will not use this
+ connector. Clients are encouraged to send this after receiving the
+ "withdrawn" event so that the server can release the resources
+ associated with this connector offer. Neither existing lease requests
+ nor leases will be affected.
+ </description>
+ </request>
+ </interface>
+
+ <interface name="wp_drm_lease_request_v1" version="1">
+ <description summary="DRM lease request">
+ A client that wishes to lease DRM resources will attach the list of
+ connectors advertised with wp_drm_lease_device_v1.connector that they
+ wish to lease, then use wp_drm_lease_request_v1.submit to submit the
+ request.
+ </description>
+
+ <enum name="error">
+ <entry name="wrong_device" value="0"
+ summary="requested a connector from a different lease device"/>
+ <entry name="duplicate_connector" value="1"
+ summary="requested a connector twice"/>
+ <entry name="empty_lease" value="2"
+ summary="requested a lease without requesting a connector"/>
+ </enum>
+
+ <request name="request_connector">
+ <description summary="request a connector for this lease">
+ Indicates that the client would like to lease the given connector.
+ This is only used as a suggestion, the compositor may choose to
+ include any resources in the lease it issues, or change the set of
+ leased resources at any time. Compositors are however encouraged to
+ include the requested connector and other resources necessary
+ to drive the connected output in the lease.
+
+ Requesting a connector that was created from a different lease device
+ than this lease request raises the wrong_device error. Requesting a
+ connector twice will raise the duplicate_connector error.
+ </description>
+ <arg name="connector" type="object"
+ interface="wp_drm_lease_connector_v1" />
+ </request>
+
+ <request name="submit" type="destructor">
+ <description summary="submit the lease request">
+ Submits the lease request and creates a new wp_drm_lease_v1 object.
+ After calling submit the compositor will immediately destroy this
+ object, issuing any more requests will cause a wl_diplay error.
+ The compositor doesn't make any guarantees about the events of the
+ lease object, clients cannot expect an immediate response.
+ Not requesting any connectors before submitting the lease request
+ will raise the empty_lease error.
+ </description>
+ <arg name="id" type="new_id" interface="wp_drm_lease_v1" />
+ </request>
+ </interface>
+
+ <interface name="wp_drm_lease_v1" version="1">
+ <description summary="a DRM lease">
+ A DRM lease object is used to transfer the DRM file descriptor to the
+ client and manage the lifetime of the lease.
+
+ Some time after the wp_drm_lease_v1 object is created, the compositor
+ will reply with the lease request's result. If the lease request is
+ granted, the compositor will send a lease_fd event. If the lease request
+ is denied, the compositor will send a finished event without a lease_fd
+ event.
+ </description>
+
+ <event name="lease_fd">
+ <description summary="shares the DRM file descriptor">
+ This event returns a file descriptor suitable for use with DRM-related
+ ioctls. The client should use drmModeGetLease to enumerate the DRM
+ objects which have been leased to them. The compositor guarantees it
+ will not use the leased DRM objects itself until it sends the finished
+ event. If the compositor cannot or will not grant a lease for the
+ requested connectors, it will not send this event, instead sending the
+ finished event.
+
+ The compositor will send this event at most once during this objects
+ lifetime.
+ </description>
+ <arg name="leased_fd" type="fd" summary="leased DRM file descriptor" />
+ </event>
+
+ <event name="finished">
+ <description summary="sent when the lease has been revoked">
+ The compositor uses this event to either reject a lease request, or if
+ it previously sent a lease_fd, to notify the client that the lease has
+ been revoked. If the client requires a new lease, they should destroy
+ this object and submit a new lease request. The compositor will send
+ no further events for this object after sending the finish event.
+ Compositors should revoke the lease when any of the leased resources
+ become unavailable, namely when a hot-unplug occurs or when the
+ compositor loses DRM master.
+ </description>
+ </event>
+
+ <request name="destroy" type="destructor">
+ <description summary="destroys the lease object">
+ The client should send this to indicate that it no longer wishes to use
+ this lease. The compositor should use drmModeRevokeLease on the
+ appropriate file descriptor, if necessary.
+ </description>
+ </request>
+ </interface>
+</protocol>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wayland-protocols-1.21/staging/xdg-activation/x11-interoperation.rst
new/wayland-protocols-1.22/staging/xdg-activation/x11-interoperation.rst
--- old/wayland-protocols-1.21/staging/xdg-activation/x11-interoperation.rst
2021-04-30 16:04:09.000000000 +0200
+++ new/wayland-protocols-1.22/staging/xdg-activation/x11-interoperation.rst
2021-09-01 09:24:41.000000000 +0200
@@ -3,14 +3,14 @@
*This document is non-normative.*
-The former X11 startup-notification standard
-(https://cgit.freedesktop.org/startup-notification/tree/doc/startup-notification.txt)
-defines the use of the DESKTOP_STARTUP_ID environment variable to propagate
+The former
+`X11 Startup notification protocol
<https://cgit.freedesktop.org/startup-notification/tree/doc/startup-notification.txt>`_
+defines the use of the ``DESKTOP_STARTUP_ID`` environment variable to propagate
startup sequences ("activation tokens" in this protocol) between launcher and
launchee.
These startup sequence IDs are defined as a globally unique string with a
-`[unique]_TIME[timestamp]` format, where the ID as a whole is used for startup
+``[unique]_TIME[timestamp]`` format, where the ID as a whole is used for
startup
notification and the timestamp is used for focus requests and focus stealing
prevention.
@@ -22,11 +22,11 @@
--------------------------------------------
1. Wayland client requests token.
-2. Wayland client spawns X11 client, sets `$DESKTOP_STARTUP_ID` in its
+2. Wayland client spawns X11 client, sets ``$DESKTOP_STARTUP_ID`` in its
environment with the token string.
3. X11 client starts.
-4. X11 client sends startup-notification `remove` message with the activation
- `$DESKTOP_STARTUP_ID` content.
+4. X11 client sends startup-notification ``remove`` message with the activation
+ ``$DESKTOP_STARTUP_ID`` content.
5. Compositor receives startup notification message, matches ID with
the common pool.
6. The startup feedback is finished.
@@ -37,28 +37,27 @@
--------------------------------------------
1. X11 client builds a "globally unique" ID
-2. X11 client sends startup-notification `new` message with the ID.
+2. X11 client sends startup-notification ``new`` message with the ID.
3. Compositor receives startup notification message, adds the ID to
the common pool.
-4. X11 client spawns Wayland client, sets `$DESKTOP_STARTUP_ID` in its
+4. X11 client spawns Wayland client, sets ``$DESKTOP_STARTUP_ID`` in its
environment.
5. Wayland client starts.
-6. Wayland client sets the activation token, as received from
- `$DESKTOP_STARTUP_ID`.
+6. Wayland client requests surface activation with the activation token,
+ as received from ``$DESKTOP_STARTUP_ID``.
7. Compositor receives the request, matches ID with the common pool
8. The startup feedback is finished.
-9. Wayland client requests surface activation.
-10. Compositor applies internal policies to allow/deny focus switch.
+9. Compositor applies internal policies to allow/deny focus switch.
Caveats
-------
-- For legacy reasons, the usage of `$DESKTOP_STARTUP_ID` (even if as a
+- For legacy reasons, the usage of ``$DESKTOP_STARTUP_ID`` (even if as a
fallback) should be observed in compositors and clients that are
concerned with X11 interoperation.
- Depending on the X11 startup-notification implementation in use by the
- compositor, the usage of the `_TIME[timestamp]` suffix may be mandatory
+ compositor, the usage of the ``_TIME[timestamp]`` suffix may be mandatory
for its correct behavior in the first scenario, the startup-notification
reference library is one such implementation. Compositors may work
this around by adding a matching suffix to the generated activation tokens.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wayland-protocols-1.21/staging/xdg-activation/xdg-activation-v1.xml
new/wayland-protocols-1.22/staging/xdg-activation/xdg-activation-v1.xml
--- old/wayland-protocols-1.21/staging/xdg-activation/xdg-activation-v1.xml
2021-04-30 16:04:09.000000000 +0200
+++ new/wayland-protocols-1.22/staging/xdg-activation/xdg-activation-v1.xml
2021-09-01 09:24:41.000000000 +0200
@@ -30,8 +30,22 @@
The client that intends to activate another toplevel uses the
xdg_activation_v1.get_activation_token request to get an activation token.
- This token is then passed to the client to be activated through a separate
- band of communication. The client to be activated will then pass the token
+ This token is then forwarded to the client, which is supposed to activate
+ one of its surfaces, through a separate band of communication.
+
+ One established way of doing this is through the XDG_ACTIVATION_TOKEN
+ environment variable of a newly launched child process. The child process
+ should unset the environment variable again right after reading it out in
+ order to avoid propagating it to other child processes.
+
+ 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.
+
+ In general activation tokens may be transferred across clients through
+ means not described in this protocol.
+
+ The client to be activated will then pass the token
it received to the xdg_activation_v1.activate request. The compositor can
then use this token to decide how to react to the activation request.
@@ -89,7 +103,7 @@
token and might decide not to follow through with the activation if
it's
considered unwanted.
- Compositors can ignore unknown presentation tokens when an invalid
+ Compositors can ignore unknown activation tokens when an invalid
token is passed.
</description>
<arg name="token" type="string" summary="the activation token of the
initiating client"/>
@@ -120,6 +134,14 @@
Provides information about the seat and serial event that requested the
token.
+ The serial can come from an input or focus event. For instance, if a
+ click triggers the launch of a third-party client, the launcher client
+ should send a set_serial request with the serial and seat from the
+ wl_pointer.button event.
+
+ Some compositors might refuse to activate toplevels when the token
+ doesn't have a valid and recent enough event serial.
+
Must be sent before commit. This information is optional.
</description>
<arg name="serial" type="uint"
@@ -140,11 +162,14 @@
</request>
<request name="set_surface">
- <description summary="specifies the application being activated">
- The requesting client can specify a surface to associate the token
- being created with it.
+ <description summary="specifies the surface requesting activation">
+ This request sets the surface requesting the activation. Note, this is
+ different from the surface that will be activated.
+
+ Some compositors might refuse to activate toplevels when the token
+ doesn't have a requesting surface.
- Must be triggered before commit. This information is optional.
+ Must be sent before commit. This information is optional.
</description>
<arg name="surface" type="object" interface="wl_surface"
summary="the requesting surface"/>
@@ -161,17 +186,6 @@
<description summary="the exported activation token">
The 'done' event contains the unique token of this activation request
and notifies that the provider is done.
-
- Applications will typically receive the token through the
- XDG_ACTIVATION_TOKEN environment variable as set by its launcher, and
- should unset the environment variable right after this request, in
- order to avoid propagating it to child processes.
-
- Applications implementing the D-Bus interface
org.freedesktop.Application
- should get their token under XDG_ACTIVATION_TOKEN on their
platform_data.
-
- Presentation tokens may be transferred across clients through means not
- described in this protocol.
</description>
<arg name="token" type="string" summary="the exported activation token"/>
</event>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wayland-protocols-1.21/tests/build-cxx.cc.in
new/wayland-protocols-1.22/tests/build-cxx.cc.in
--- old/wayland-protocols-1.21/tests/build-cxx.cc.in 2021-03-31
08:35:19.000000000 +0200
+++ new/wayland-protocols-1.22/tests/build-cxx.cc.in 2021-09-01
09:24:41.000000000 +0200
@@ -8,5 +8,7 @@
int
main(int argc, char **argv)
{
+ (void)argc;
+ (void)argv;
return 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wayland-protocols-1.21/tests/build-pedantic.c.in
new/wayland-protocols-1.22/tests/build-pedantic.c.in
--- old/wayland-protocols-1.21/tests/build-pedantic.c.in 2021-03-31
08:35:19.000000000 +0200
+++ new/wayland-protocols-1.22/tests/build-pedantic.c.in 2021-09-01
09:24:41.000000000 +0200
@@ -6,5 +6,7 @@
int
main(int argc, char **argv)
{
+ (void)argc;
+ (void)argv;
return 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wayland-protocols-1.21/tests/meson.build
new/wayland-protocols-1.22/tests/meson.build
--- old/wayland-protocols-1.21/tests/meson.build 2021-03-31
08:35:19.000000000 +0200
+++ new/wayland-protocols-1.22/tests/meson.build 2021-09-01
09:43:24.000000000 +0200
@@ -11,16 +11,16 @@
protocol_path = join_paths(wayland_protocols_srcdir, protocol_file)
test_name = 'scan-@0@'.format(protocol_file.underscorify())
test(test_name, prog_scan_sh,
- args: protocol_path,
- env: [
- 'SCANNER=@0@'.format(prog_scanner.path()),
- ]
+ args: protocol_path,
+ env: [
+ 'SCANNER=@0@'.format(prog_scanner.path()),
+ ]
)
endforeach
# Check buildability
-add_languages('c', 'cpp')
+add_languages('c', 'cpp', native: true)
replace = find_program('replace.py')
foreach protocol_file : protocol_files
@@ -109,6 +109,7 @@
'-Wall',
'-Werror' ],
install: false,
+ native: true,
)
test(test_name, pedantic_test_executable)
@@ -130,11 +131,13 @@
server_header,
],
link_args: [ '-Wl,--unresolved-symbols=ignore-all' ],
+ dependencies: libwayland,
cpp_args: [
'-Wall',
'-Werror',
],
install: false,
+ native: true,
)
test(test_name, cxx_test_executable)
endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wayland-protocols-1.21/tests/replace.py
new/wayland-protocols-1.22/tests/replace.py
--- old/wayland-protocols-1.21/tests/replace.py 2021-03-31 08:35:19.000000000
+0200
+++ new/wayland-protocols-1.22/tests/replace.py 2021-09-01 09:24:41.000000000
+0200
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
import sys
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wayland-protocols-1.21/unstable/xdg-output/xdg-output-unstable-v1.xml
new/wayland-protocols-1.22/unstable/xdg-output/xdg-output-unstable-v1.xml
--- old/wayland-protocols-1.21/unstable/xdg-output/xdg-output-unstable-v1.xml
2019-11-21 13:53:15.000000000 +0100
+++ new/wayland-protocols-1.22/unstable/xdg-output/xdg-output-unstable-v1.xml
2021-09-01 09:24:41.000000000 +0200
@@ -138,7 +138,7 @@
advertise a logical size of 1920??1080,
- A compositor using a fractional scale of 1.5 will advertise a
- logical size to 2560??1620.
+ 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.