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-05-18 18:26:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wayland-protocols (Old)
 and      /work/SRC/openSUSE:Factory/.wayland-protocols.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "wayland-protocols"

Tue May 18 18:26:34 2021 rev:22 rq:893101 version:1.21

Changes:
--------
--- /work/SRC/openSUSE:Factory/wayland-protocols/wayland-protocols.changes      
2020-03-08 22:23:33.428055979 +0100
+++ 
/work/SRC/openSUSE:Factory/.wayland-protocols.new.2988/wayland-protocols.changes
    2021-05-18 18:26:45.474880372 +0200
@@ -1,0 +2,15 @@
+Sun May  9 17:31:47 UTC 2021 - Dirk M??ller <[email protected]>
+
+- update to 1.21:
+  * Also new with this release is the introduction of a new protocol phase
+    that replaces the old "unstable" phase: "staging". The main purpose of
+    this is making it more painless to transition a protocol from it's
+    testing-in-production phase to declaring it stable. See README.md for
+    details.
+
+  * This release also introduces a new staging protocol: xdg-activation,
+    meant to enable transferring focus between different toplevel surfaces.
+    For example from a launcher to a launchee, or one focused application to
+    another.
+
+-------------------------------------------------------------------

Old:
----
  wayland-protocols-1.20.tar.xz
  wayland-protocols-1.20.tar.xz.sig

New:
----
  wayland-protocols-1.21.tar.xz
  wayland-protocols-1.21.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ wayland-protocols.spec ++++++
--- /var/tmp/diff_new_pack.Lx0vOY/_old  2021-05-18 18:26:47.002873749 +0200
+++ /var/tmp/diff_new_pack.Lx0vOY/_new  2021-05-18 18:26:47.006873732 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package wayland-protocols
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 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.20
+Version:        1.21
 Release:        0
 Summary:        Wayland protocols that adds functionality not available in the 
core protocol
 License:        MIT

++++++ wayland-protocols-1.20.tar.xz -> wayland-protocols-1.21.tar.xz ++++++
++++ 1772 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/MEMBERS.md new/wayland-protocols-1.21/MEMBERS.md
--- old/wayland-protocols-1.20/MEMBERS.md       2020-02-29 19:00:44.000000000 
+0100
+++ new/wayland-protocols-1.21/MEMBERS.md       2021-03-31 08:35:19.000000000 
+0200
@@ -3,7 +3,7 @@
 - EFL/Enlightenment: Mike Blumenkrantz <[email protected]>
 - GTK/Mutter: Jonas ??dahl <[email protected]>,
   Carlos Garnacho <[email protected]>
-- KWin: Roman Gilg <[email protected]>,
+- KWin: Eike Hein <[email protected]>,
   David Edmundson <[email protected]>
 - Mir: Christopher James Halse Rogers <[email protected]>,
   Alan Griffiths <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/Makefile.am new/wayland-protocols-1.21/Makefile.am
--- old/wayland-protocols-1.20/Makefile.am      2020-02-29 20:54:44.000000000 
+0100
+++ new/wayland-protocols-1.21/Makefile.am      2021-04-30 16:11:07.000000000 
+0200
@@ -31,24 +31,42 @@
        stable/xdg-shell/xdg-shell.xml                                          
\
        $(NULL)
 
+staging_protocols =                                                            
\
+       staging/xdg-activation/xdg-activation-v1.xml                            
\
+       $(NULL)
+
+misc_documentation =                                                           
\
+       staging/xdg-activation/x11-interoperation.rst                           
\
+       $(NULL)
+
 nobase_dist_pkgdata_DATA =                                                     
\
        $(unstable_protocols)                                                   
\
        $(stable_protocols)                                                     
\
+       $(staging_protocols)                                                    
\
        $(NULL)
 
 dist_noinst_DATA =                                                             
\
        $(sort $(foreach p,$(unstable_protocols),$(dir $p)README))              
\
        $(sort $(foreach p,$(stable_protocols),$(dir $p)README))                
\
+       $(sort $(foreach p,$(staging_protocols),$(dir $p)README))               
\
+       $(misc_documentation)                                                   
\
        README.md                                                               
\
        GOVERNANCE.md                                                           
\
        MEMBERS.md                                                              
\
+       meson.build                                                             
\
+       meson_options.txt                                                       
\
+       tests/meson.build                                                       
\
+       tests/build-cxx.cc.in                                                   
\
+       tests/build-pedantic.c.in                                               
\
+       tests/replace.py                                                        
\
+       tests/scan.sh                                                           
\
        $(NULL)
 
 noarch_pkgconfig_DATA = wayland-protocols.pc
 
 dist_check_SCRIPTS = tests/scan.sh
 
-TESTS = $(unstable_protocols) $(stable_protocols)
+TESTS = $(unstable_protocols) $(stable_protocols) $(staging_protocols)
 TEST_EXTENSIONS = .xml
 AM_TESTS_ENVIRONMENT = SCANNER='$(wayland_scanner)'; export SCANNER;
 XML_LOG_COMPILER = $(srcdir)/tests/scan.sh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/README.md new/wayland-protocols-1.21/README.md
--- old/wayland-protocols-1.20/README.md        2020-02-26 17:52:30.000000000 
+0100
+++ new/wayland-protocols-1.21/README.md        2021-03-31 11:20:59.000000000 
+0200
@@ -10,29 +10,69 @@
 of XML files containing the protocol specification, and a README file
 containing detailed state and a list of maintainers.
 
+## Protocol phases
+
+Protocols in general has three phases: the development phase, the testing
+phase, and the stable phase.
+
+In the development phase, a protocol is not officially part of
+wayland-protocols, but is actively being developed, for example by
+iterating over it in a
+[merge
+request](https://gitlab.freedesktop.org/wayland/wayland-protocols/merge_requests),
+or planning it in an
+[issue](https://gitlab.freedesktop.org/wayland/wayland-protocols/issues).
+
+During this phase, patches for clients and compositors are written as a test
+vehicle. Such patches must not be merged in clients and compositors, because
+the protocol can still change.
+
+When a protocol has reached a stage where it is ready for wider adoption,
+and after the [GOVERNANCE section
+2.3](GOVERNANCE.md#2.3-introducing-new-protocols) requirements have been
+met, it enters the "testing" phase. At this point, the protocol is added
+to `staging/` directory of wayland-protocols and made part of a release.
+What this means is that implementation is encouraged in clients and
+compositors where the functionality it specifies is wanted.
+
+Extensions in staging cannot have backward incompatible changes, in that
+sense they are equal to stable extensions. However, they may be completely
+replaced with a new major version, or a different protocol extension all
+together, if design flaws are found in the testing phase.
+
+After a staging protocol has been sufficiently tested in the wild and
+proven adequate, its maintainers and the community at large may declare it
+"stable", meaning it is unexpected to become superseded by a new major
+version.
+
+## Deprecation
+
+A protocol may be deprecated, if it has been replaced by some other
+protocol, or declared undesirable for some other reason. No more changes
+will be made to a deprecated protocol.
+
+## Legacy protocol phases
+
+An "unstable" protocol refers to a protocol categorization policy
+previously used by wayland-protocols, where protocols initially
+placed in the `unstable/` directory had certain naming conventions were
+applied, requiring a backward incompatible change to be declared "stable".
+
+During this phase, protocol extension interface names were in addition to
+the major version postfix also prefixed with `z` to distinguish from
+stable protocols.
+
 ## Protocol directory tree structure
 
-Protocols may be "stable", "unstable" or "deprecated", and the interface
-and protocol names as well as place in the directory tree will reflect
-this.
-
-A stable protocol is a protocol which has been declared stable by
-the maintainers. Changes to such protocols will always be backward
-compatible.
-
-An unstable protocol is a protocol currently under development and this
-will be reflected in the protocol and interface names. See [Unstable
-naming convention](#unstable-naming-convention).
-
-A deprecated protocol is a protocol that has either been replaced by some
-other protocol, or declared undesirable for some other reason. No more
-changes will be made to a deprecated protocol.
-
-Depending on which of the above states the protocol is in, the protocol
-is placed within the toplevel directory containing the protocols with the
-same state. Stable protocols are placed in the `stable/` directory,
-unstable protocols are placed in the `unstable/` directory, and
-deprecated protocols are placed in the `deprecated/` directory.
+Depending on which stage a protocol is in, the protocol is placed within
+the toplevel directory containing the protocols with the same stage.
+Stable protocols are placed in the `stable/` directory, staging protocols
+are placed in the `staging/` directory, and deprecated protocols are
+placed in the `deprecated/` directory.
+
+Unstable protocols (see [Legacy protocol phases](#legacy-protocol-phases))
+can be found in the `unstable/` directory, but new ones should never be
+placed here.
 
 ## Protocol development procedure
 
@@ -49,9 +89,6 @@
 
 To propose changes to existing protocols, create a GitLab merge request.
 
-If the changes are backward incompatible changes to an unstable protocol,
-see [Unstable protocol changes](#unstable-protocol-changes).
-
 ## Interface naming convention
 
 All protocols should avoid using generic namespaces or no namespaces in
@@ -73,38 +110,42 @@
 For more information about namespaces, see [GOVERNANCE section 2.1
 ](GOVERNANCE.md#21-protocol-namespaces).
 
-## Unstable naming convention
-
-Unstable protocols have a special naming convention in order to make it
-possible to make discoverable backward incompatible changes.
-
-An unstable protocol has at least two versions: the major version, which
-represents backward incompatible changes, and the minor version, which
-represents backward compatible changes to the interfaces in the protocol.
-
-The major version is part of the XML file name, the protocol name in the
-XML, and interface names in the protocol.
-
-Minor versions are the version attributes of the interfaces in the XML.
-There may be more than one minor version per protocol, if there are more
-than one global.
-
-The XML file and protocol name also has the word 'unstable' in them, and
-all of the interfaces in the protocol are prefixed with `z` and
-suffixed with the major version number.
-
-For example, an unstable protocol called `foo-bar` with major version 2
-containing the two interfaces `wp_foo` and `wp_bar` both minor version 1
-will be placed in the directory `unstable/foo-bar/` consisting of one file
-called `README` and one called `foo-bar-unstable-v2.xml`. The XML file
-will consist of two interfaces called `zwp_foo_v2` and `zwp_bar_v2` with
-the `version` attribute set to 1.
-
-## Unstable protocol changes
-
-During the development of a new protocol it is possible that backward
-incompatible changes are needed. Such a change needs to be represented
-in the major and minor versions of the protocol.
+Each new protocol XML file must include a major version postfix, starting
+with `-v1`. The purpose of this postfix is to make it possible to
+distinguish between backward incompatible major versions of the same
+protocol.
+
+The interfaces in the protocol XML file should as well have the same
+major version postfix in their names.
+
+For example, the protocol `foo-bar` may have a XML file
+`foo-bar/foo-bar-v1.xml`, consisting of the interface `wp_foo_bar_v1`,
+corresponding to the major version 1, as well as the newer version
+`foo-bar/foo-bar-v2.xml` consisting of the interface `wp_foo_bar_v2`,
+corresponding to the major version 2.
+
+## Include a disclaimer
+
+Include the following disclaimer:
+
+```
+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.
+```
+
+## Backward compatible protocol changes
+
+A protocol may receive backward compatible additions and changes. This
+is to be done in the general Wayland way, using `version` and `since` XML
+element attributes.
+
+## Backward incompatible protocol changes
+
+While not preferred, a protocol may at any stage, especially during the
+testing phase, when it is located in the `staging/` directory, see
+backward incompatible changes.
 
 Assuming a backward incompatible change is needed, the procedure for how to
 do so is the following:
@@ -113,33 +154,38 @@
 - Increase the major version number in the protocol XML by 1.
 - Increase the major version number in all of the interfaces in the
   XML by 1.
-- Reset the minor version number (interface version attribute) of all
+- Reset the interface version number (interface version attribute) of all
   the interfaces to 1.
-
-Backward compatible changes within a major unstable version can be done
-in the regular way as done in core Wayland or in stable protocols.
+- Remove all of the `since` attributes.
 
 ## Declaring a protocol stable
 
-Once it is decided that a protocol should be declared stable, meaning no
-more backward incompatible changes will ever be allowed, one last
-breakage is needed.
+Once it has been concluded that a protocol been proven adequate in
+production, and that it is deemed unlikely to receive any backward
+incompatible changes, it may be declared stable.
 
 The procedure of doing this is the following:
 
 - Create a new directory in the `stable/` toplevel directory with the
-  same name as the protocol directory in the `unstable/` directory.
+  same name as the protocol directory in the `staging/` directory.
 - Copy the final version of the XML that is the version that was
   decided to be declared stable into the new directory. The target name
   should be the same name as the protocol directory but with the `.xml`
   suffix.
-- Rename the name of the protocol in the XML by removing the
-  `unstable` part and the major version number.
-- Remove the `z` prefix and the major version number suffix from all
-  of the interfaces in the protocol.
-- Reset all of the interface version attributes to 1.
-- Update the `README` file in the unstable directory and create a new
+- Remove the disclaimer about the protocol being in the testing phase.
+- Update the `README` file in the staging directory and create a new
   `README` file in the new directory.
+- Replace the disclaimer in the protocol files left in the staging/
+  directory with the following:
+
+```
+Disclaimer: This protocol extension has been marked stable. This copy is
+no longer used and only retained for backwards compatibility. The
+canonical version can be found in the stable/ directory.
+```
+
+Note that the major version of the stable protocol extension, as well as
+all the interface versions and names, must remain unchanged.
 
 There are other requirements for declaring a protocol stable, see
 [GOVERNANCE section 2.3](GOVERNANCE.md#23-introducing-new-protocols).
@@ -148,3 +194,40 @@
 
 Each release of wayland-protocols finalizes the version of the protocols
 to their state they had at that time.
+
+## Gitlab conventions
+
+### Triaging merge requests
+
+New merge requests should be triaged. Doing so requires the one doing the
+triage to add a set of initial labels:
+
+~"New Protocol" - For a new protocol being added. If it's an amendment to
+an existing protocol, apply the label of the corresponding protocol
+instead. If none exist, create it.
+
+~"Needs acks" - If the protocol needs one or more acknowledgements.
+
+~"Needs implementations" - If there are not enough implementations of the
+protocol.
+
+~"Needs review" - If the protocol is in need of review.
+
+~"In 30 day discussion period" - If the protocol needs a 30 day discussion
+period.
+
+For the meaning and requirement of acknowledgments and available
+implementations, see the GOVERNANCE.md document.
+
+### Managing merge requests
+
+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.
+
+### Nacking a merge request
+
+If the inclusion of a merge request is denied due to one or more Nacks, add
+the ~Nacked label.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/configure.ac new/wayland-protocols-1.21/configure.ac
--- old/wayland-protocols-1.20/configure.ac     2020-02-29 20:54:18.000000000 
+0100
+++ new/wayland-protocols-1.21/configure.ac     2021-04-30 18:09:17.000000000 
+0200
@@ -1,7 +1,7 @@
 AC_PREREQ([2.64])
 
 m4_define([wayland_protocols_major_version], [1])
-m4_define([wayland_protocols_minor_version], [20])
+m4_define([wayland_protocols_minor_version], [21])
 m4_define([wayland_protocols_version],
           [wayland_protocols_major_version.wayland_protocols_minor_version])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/meson.build new/wayland-protocols-1.21/meson.build
--- old/wayland-protocols-1.20/meson.build      1970-01-01 01:00:00.000000000 
+0100
+++ new/wayland-protocols-1.21/meson.build      2021-04-30 18:09:21.000000000 
+0200
@@ -0,0 +1,111 @@
+project('wayland-protocols',
+       version: '1.21',
+       meson_version: '>= 0.53.0',
+       license: 'MIT/Expat',
+)
+
+wayland_protocols_version = meson.project_version()
+
+fs = import('fs')
+
+dep_scanner = dependency('wayland-scanner', native: true)
+
+stable_protocols = [
+       'presentation-time',
+       'viewporter',
+       'xdg-shell',
+]
+
+unstable_protocols = {
+       'fullscreen-shell': ['v1'],
+       'idle-inhibit': ['v1'],
+       'input-method': ['v1'],
+       'input-timestamps': ['v1'],
+       'keyboard-shortcuts-inhibit': ['v1'],
+       'linux-dmabuf': ['v1'],
+       'linux-explicit-synchronization': ['v1'],
+       'pointer-constraints': ['v1'],
+       'pointer-gestures': ['v1'],
+       'primary-selection': ['v1'],
+       'relative-pointer': ['v1'],
+       'tablet': ['v1', 'v2'],
+       'text-input': ['v1', 'v3'],
+       'xdg-decoration': ['v1'],
+       'xdg-foreign': ['v1', 'v2'],
+       'xdg-output': ['v1'],
+       'xdg-shell': ['v5', 'v6'],
+       'xwayland-keyboard-grab': ['v1'],
+}
+
+staging_protocols = {
+       'xdg-activation': ['v1'],
+}
+
+protocol_files = []
+
+foreach name : stable_protocols
+       protocol_files += ['stable/@0@/@[email protected]'.format(name)]
+endforeach
+
+foreach name : staging_protocols.keys()
+       foreach version : staging_protocols.get(name)
+               protocol_files += [
+                       'staging/@0@/@0@-@[email protected]'.format(name, version)
+               ]
+       endforeach
+endforeach
+
+foreach name : unstable_protocols.keys()
+       foreach version : unstable_protocols.get(name)
+               protocol_files += [
+                       'unstable/@0@/@0@-unstable-@[email protected]'.format(name, 
version)
+               ]
+       endforeach
+endforeach
+
+# Check that each protocol has a README
+foreach protocol_file : protocol_files
+       dir = fs.parent(protocol_file)
+       if not fs.is_file(dir + '/README')
+               error('Missing README in @0@'.format(protocol_file))
+       endif
+endforeach
+
+foreach protocol_file : protocol_files
+       protocol_install_dir = fs.parent(join_paths(
+               get_option('datadir'),
+               'wayland-protocols',
+               protocol_file,
+       ))
+       install_data(
+               protocol_file,
+               install_dir: protocol_install_dir,
+       )
+endforeach
+
+wayland_protocols_srcdir = meson.current_source_dir()
+
+pkgconfig_configuration = configuration_data()
+pkgconfig_configuration.set('prefix', get_option('prefix'))
+pkgconfig_configuration.set('datarootdir', 
'${prefix}/@0@'.format(get_option('datadir')))
+pkgconfig_configuration.set('abs_top_srcdir', wayland_protocols_srcdir)
+pkgconfig_configuration.set('PACKAGE', 'wayland-protocols')
+pkgconfig_configuration.set('WAYLAND_PROTOCOLS_VERSION', 
wayland_protocols_version)
+
+pkg_install_dir = join_paths(get_option('datadir'), 'pkgconfig')
+configure_file(
+       input: 'wayland-protocols.pc.in',
+       output: 'wayland-protocols.pc',
+       configuration: pkgconfig_configuration,
+       install_dir: pkg_install_dir,
+)
+
+configure_file(
+       input: 'wayland-protocols-uninstalled.pc.in',
+       output: 'wayland-protocols-uninstalled.pc',
+       configuration: pkgconfig_configuration,
+)
+
+if get_option('tests')
+       subdir('tests')
+endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/meson_options.txt 
new/wayland-protocols-1.21/meson_options.txt
--- old/wayland-protocols-1.20/meson_options.txt        1970-01-01 
01:00:00.000000000 +0100
+++ new/wayland-protocols-1.21/meson_options.txt        2021-03-31 
08:35:19.000000000 +0200
@@ -0,0 +1,4 @@
+option('tests',
+       type: 'boolean',
+       value: true,
+       description: 'Build the tests')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/stable/presentation-time/presentation-time.xml 
new/wayland-protocols-1.21/stable/presentation-time/presentation-time.xml
--- old/wayland-protocols-1.20/stable/presentation-time/presentation-time.xml   
2020-02-17 12:21:13.000000000 +0100
+++ new/wayland-protocols-1.21/stable/presentation-time/presentation-time.xml   
2021-03-31 08:35:19.000000000 +0200
@@ -253,7 +253,7 @@
            summary="high 32 bits of refresh counter"/>
       <arg name="seq_lo" type="uint"
            summary="low 32 bits of refresh counter"/>
-      <arg name="flags" type="uint" summary="combination of 'kind' values"/>
+      <arg name="flags" type="uint" enum="kind" summary="combination of 'kind' 
values"/>
     </event>
 
     <event name="discarded">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/stable/xdg-shell/xdg-shell.xml 
new/wayland-protocols-1.21/stable/xdg-shell/xdg-shell.xml
--- old/wayland-protocols-1.20/stable/xdg-shell/xdg-shell.xml   2020-02-29 
19:00:44.000000000 +0100
+++ new/wayland-protocols-1.21/stable/xdg-shell/xdg-shell.xml   2021-03-26 
10:11:47.000000000 +0100
@@ -389,7 +389,7 @@
 
     <request name="set_parent_configure" since="3">
       <description summary="set parent configure this is a response to">
-       Set the serial of a xdg_surface.configure event this positioner will be
+       Set the serial of an xdg_surface.configure event this positioner will be
        used in response to. The compositor may use this information together
        with set_parent_size to determine what future state the popup should be
        constrained using.
@@ -426,6 +426,11 @@
       manipulate a buffer prior to the first xdg_surface.configure call must
       also be treated as errors.
 
+      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.
+
       Mapping an xdg_surface-based role surface is defined as making it
       possible for the surface to be shown by the compositor. Note that
       a mapped surface is not guaranteed to be visible once it is mapped.
@@ -581,7 +586,11 @@
       by the compositor until it is explicitly mapped again.
       All active operations (e.g., move, resize) are canceled and all
       attributes (e.g. title, state, stacking, ...) are discarded for
-      an xdg_toplevel surface when it is unmapped.
+      an xdg_toplevel surface when it is unmapped. The xdg_toplevel returns to
+      the state it had right after xdg_surface.get_toplevel. The client
+      can re-map the toplevel by perfoming a commit without any buffer
+      attached, waiting for a configure event and handling it as usual (see
+      xdg_surface description).
 
       Attaching a null buffer to a toplevel unmaps the surface.
     </description>
@@ -1204,12 +1213,12 @@
 
        If the popup is repositioned in response to a configure event for its
        parent, the client should send an xdg_positioner.set_parent_configure
-       and possibly a xdg_positioner.set_parent_size request to allow the
+       and possibly an xdg_positioner.set_parent_size request to allow the
        compositor to properly constrain the popup.
 
        If the popup is repositioned together with a parent that is being
        resized, but not in response to a configure event, the client should
-       send a xdg_positioner.set_parent_size request.
+       send an xdg_positioner.set_parent_size request.
       </description>
       <arg name="positioner" type="object" interface="xdg_positioner"/>
       <arg name="token" type="uint" summary="reposition request token"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/staging/xdg-activation/README 
new/wayland-protocols-1.21/staging/xdg-activation/README
--- old/wayland-protocols-1.20/staging/xdg-activation/README    1970-01-01 
01:00:00.000000000 +0100
+++ new/wayland-protocols-1.21/staging/xdg-activation/README    2021-04-30 
16:04:09.000000000 +0200
@@ -0,0 +1,4 @@
+XDG Activation protocol
+
+Maintainers:
+Aleix Pol Gonzalez <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/staging/xdg-activation/x11-interoperation.rst 
new/wayland-protocols-1.21/staging/xdg-activation/x11-interoperation.rst
--- old/wayland-protocols-1.20/staging/xdg-activation/x11-interoperation.rst    
1970-01-01 01:00:00.000000000 +0100
+++ new/wayland-protocols-1.21/staging/xdg-activation/x11-interoperation.rst    
2021-04-30 16:04:09.000000000 +0200
@@ -0,0 +1,64 @@
+Interoperation with X11
+=======================
+
+*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
+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
+notification and the timestamp is used for focus requests and focus stealing
+prevention.
+
+In order to observe mixed usage scenarios where Wayland and X11 clients might
+be launching each other, it is possible for a compositor to manage a shared
+pool of activation tokens.
+
+Scenario 1. Wayland client spawns X11 client
+--------------------------------------------
+
+1. Wayland client requests token.
+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.
+5. Compositor receives startup notification message, matches ID with
+   the common pool.
+6. The startup feedback is finished.
+7. X11 client requests focus.
+8. Compositor applies internal policies to allow/deny focus switch.
+
+Scenario 2. X11 client spawns Wayland client
+--------------------------------------------
+
+1. X11 client builds a "globally unique" 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
+   environment.
+5. Wayland client starts.
+6. Wayland client sets 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.
+
+Caveats
+-------
+
+- 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
+  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' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/staging/xdg-activation/xdg-activation-v1.xml 
new/wayland-protocols-1.21/staging/xdg-activation/xdg-activation-v1.xml
--- old/wayland-protocols-1.20/staging/xdg-activation/xdg-activation-v1.xml     
1970-01-01 01:00:00.000000000 +0100
+++ new/wayland-protocols-1.21/staging/xdg-activation/xdg-activation-v1.xml     
2021-04-30 16:04:09.000000000 +0200
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="xdg_activation_v1">
+
+  <copyright>
+    Copyright ?? 2020 Aleix Pol Gonzalez &lt;[email protected]&gt;
+    Copyright ?? 2020 Carlos Garnacho &lt;[email protected]&gt;
+
+    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>
+
+  <description summary="Protocol for requesting activation of surfaces">
+    The way for a client to pass focus to another toplevel is as follows.
+
+    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
+    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.
+
+    The token the activating client gets may be ineffective either already at
+    the time it receives it, for example if it was not focused, for focus
+    stealing prevention. The activating client will have no way to discover
+    the validity of the token, and may still forward it to the to be activated
+    client.
+
+    The created activation token may optionally get information attached to it
+    that can be used by the compositor to identify the application that we
+    intend to activate. This can for example be used to display a visual hint
+    about what application is being started.
+
+    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="xdg_activation_v1" version="1">
+    <description summary="interface for activating surfaces">
+      A global interface used for informing the compositor about applications
+      being activated or started, or for applications to request to be
+      activated.
+    </description>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy the xdg_activation object">
+        Notify the compositor that the xdg_activation object will no longer be
+        used.
+
+        The child objects created via this interface are unaffected and should
+        be destroyed separately.
+      </description>
+    </request>
+
+    <request name="get_activation_token">
+      <description summary="requests a token">
+        Creates an xdg_activation_token_v1 object that will provide
+        the initiating client with a unique token for this activation. This
+        token should be offered to the clients to be activated.
+      </description>
+
+      <arg name="id" type="new_id" interface="xdg_activation_token_v1"/>
+    </request>
+
+    <request name="activate">
+      <description summary="notify new interaction being available">
+        Requests surface activation. It's up to the compositor to display
+        this information as desired, for example by placing the surface above
+        the rest.
+
+        The compositor may know who requested this by checking the activation
+        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
+        token is passed.
+      </description>
+      <arg name="token" type="string" summary="the activation token of the 
initiating client"/>
+      <arg name="surface" type="object" interface="wl_surface"
+          summary="the wl_surface to activate"/>
+    </request>
+  </interface>
+
+  <interface name="xdg_activation_token_v1" version="1">
+    <description summary="an exported activation handle">
+      An object for setting up a token and receiving a token handle that can
+      be passed as an activation token to another client.
+
+      The object is created using the xdg_activation_v1.get_activation_token
+      request. This object should then be populated with the app_id, surface
+      and serial information and committed. The compositor shall then issue a
+      done event with the token. In case the request's parameters are invalid,
+      the compositor will provide an invalid token.
+    </description>
+
+    <enum name="error">
+      <entry name="already_used" value="0"
+             summary="The token has already been used previously"/>
+    </enum>
+
+    <request name="set_serial">
+      <description summary="specifies the seat and serial of the activating 
event">
+        Provides information about the seat and serial event that requested the
+        token.
+
+        Must be sent before commit. This information is optional.
+      </description>
+      <arg name="serial" type="uint"
+           summary="the serial of the event that triggered the activation"/>
+      <arg name="seat" type="object" interface="wl_seat"
+           summary="the wl_seat of the event"/>
+    </request>
+
+    <request name="set_app_id">
+      <description summary="specifies the application being activated">
+        The requesting client can specify an app_id to associate the token
+        being created with it.
+
+        Must be sent before commit. This information is optional.
+      </description>
+      <arg name="app_id" type="string"
+           summary="the application id of the client being activated."/>
+    </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.
+
+        Must be triggered before commit. This information is optional.
+      </description>
+      <arg name="surface" type="object" interface="wl_surface"
+          summary="the requesting surface"/>
+    </request>
+
+    <request name="commit">
+      <description summary="issues the token request">
+        Requests an activation token based on the different parameters that
+        have been offered through set_serial, set_surface and set_app_id.
+      </description>
+    </request>
+
+    <event name="done">
+      <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>
+
+    <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.
+      </description>
+    </request>
+  </interface>
+</protocol>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/tests/build-cxx.cc.in 
new/wayland-protocols-1.21/tests/build-cxx.cc.in
--- old/wayland-protocols-1.20/tests/build-cxx.cc.in    1970-01-01 
01:00:00.000000000 +0100
+++ new/wayland-protocols-1.21/tests/build-cxx.cc.in    2021-03-31 
08:35:19.000000000 +0200
@@ -0,0 +1,12 @@
+#include "@PROTOCOL_CLIENT_INCLUDE_FILE@"
+#include "@PROTOCOL_SERVER_INCLUDE_FILE@"
+
+/* This is a build-test only */
+
+using namespace std;
+
+int
+main(int argc, char **argv)
+{
+       return 0;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/tests/build-pedantic.c.in 
new/wayland-protocols-1.21/tests/build-pedantic.c.in
--- old/wayland-protocols-1.20/tests/build-pedantic.c.in        1970-01-01 
01:00:00.000000000 +0100
+++ new/wayland-protocols-1.21/tests/build-pedantic.c.in        2021-03-31 
08:35:19.000000000 +0200
@@ -0,0 +1,10 @@
+#include "@PROTOCOL_CLIENT_INCLUDE_FILE@"
+#include "@PROTOCOL_SERVER_INCLUDE_FILE@"
+
+/* This is a build-test only */
+
+int
+main(int argc, char **argv)
+{
+       return 0;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/tests/meson.build 
new/wayland-protocols-1.21/tests/meson.build
--- old/wayland-protocols-1.20/tests/meson.build        1970-01-01 
01:00:00.000000000 +0100
+++ new/wayland-protocols-1.21/tests/meson.build        2021-03-31 
08:35:19.000000000 +0200
@@ -0,0 +1,141 @@
+prog_scan_sh = find_program('scan.sh')
+prog_scanner = 
find_program(dep_scanner.get_pkgconfig_variable('wayland_scanner'))
+
+libwayland = [
+       dependency('wayland-client'),
+       dependency('wayland-server'),
+]
+
+# Check that each protocol passes through the scanner
+foreach protocol_file : protocol_files
+       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()),
+            ]
+       )
+endforeach
+
+# Check buildability
+
+add_languages('c', 'cpp')
+replace = find_program('replace.py')
+
+foreach protocol_file : protocol_files
+       xml_file = fs.name(protocol_file)
+       xml_components = xml_file.split('.')
+       protocol_base_file_name = xml_components[0]
+
+       protocol_path = files(join_paths(wayland_protocols_srcdir, 
protocol_file))
+       client_header_path = '@[email protected]'.format(protocol_base_file_name)
+       server_header_path = '@[email protected]'.format(protocol_base_file_name)
+       code_path = '@[email protected]'.format(protocol_base_file_name)
+       client_header = custom_target(
+               client_header_path,
+               output: client_header_path,
+               input: protocol_path,
+               command: [
+                       prog_scanner,
+                       '--strict',
+                       'client-header',
+                       '@INPUT@',
+                       '@OUTPUT@',
+               ],
+               install: false,
+       )
+       server_header = custom_target(
+               server_header_path,
+               output: server_header_path,
+               input: protocol_path,
+               command: [
+                       prog_scanner,
+                       '--strict',
+                       'server-header',
+                       '@INPUT@',
+                       '@OUTPUT@',
+               ],
+               install: false,
+       )
+       code = custom_target(
+               code_path,
+               output: code_path,
+               input: protocol_path,
+               command: [
+                       prog_scanner,
+                       '--strict',
+                       'private-code',
+                       '@INPUT@',
+                       '@OUTPUT@',
+               ],
+               install: false,
+       )
+
+       replace_command = [
+               replace,
+               '@INPUT@',
+               '@OUTPUT@',
+               'PROTOCOL_CLIENT_INCLUDE_FILE',
+               client_header.full_path(),
+               'PROTOCOL_SERVER_INCLUDE_FILE',
+               server_header.full_path(),
+       ]
+
+       # Check that header can be included by a pedantic C99 compiler
+       test_name = 
'test-build-pedantic-@0@'.format(protocol_file.underscorify())
+       test_name_source = '@[email protected]'.format(test_name)
+       test_source = custom_target(
+               test_name_source,
+               input: 'build-pedantic.c.in',
+               output: test_name_source,
+               command: replace_command,
+       )
+       pedantic_test_executable = executable(
+               test_name,
+               [
+                       test_source,
+                       client_header,
+                       server_header,
+                       code
+               ],
+               link_args: [
+                       '-Wl,--unresolved-symbols=ignore-all',
+               ],
+               dependencies: libwayland,
+               c_args: [
+                       '-std=c99',
+                       '-pedantic',
+                       '-Wall',
+                       '-Werror' ],
+               install: false,
+       )
+       test(test_name, pedantic_test_executable)
+
+       # Check that the header
+       if not protocol_file.contains('xdg-foreign-unstable-v1')
+               test_name = 
'test-build-cxx-@0@'.format(protocol_file.underscorify())
+               test_name_source = '@[email protected]'.format(test_name)
+               test_source = custom_target(
+                       test_name_source,
+                       input: 'build-cxx.cc.in',
+                       output: test_name_source,
+                       command: replace_command,
+               )
+               cxx_test_executable = executable(
+                       test_name,
+                       [
+                               test_source,
+                               client_header,
+                               server_header,
+                       ],
+                       link_args: [ '-Wl,--unresolved-symbols=ignore-all' ],
+                       cpp_args: [
+                               '-Wall',
+                               '-Werror',
+                       ],
+                       install: false,
+               )
+               test(test_name, cxx_test_executable)
+       endif
+endforeach
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/tests/replace.py 
new/wayland-protocols-1.21/tests/replace.py
--- old/wayland-protocols-1.20/tests/replace.py 1970-01-01 01:00:00.000000000 
+0100
+++ new/wayland-protocols-1.21/tests/replace.py 2021-03-31 08:35:19.000000000 
+0200
@@ -0,0 +1,23 @@
+#!/usr/bin/python3
+
+import sys
+
+execpath, inpath, outpath, *dict_list = sys.argv
+
+dictonary = {}
+while dict_list:
+    key, value, *rest = dict_list
+    dictonary[key] = value
+    dict_list = rest
+
+infile = open(inpath, 'r')
+outfile = open(outpath, 'w')
+
+buf = infile.read()
+infile.close()
+
+for key, value in dictonary.items():
+    buf = buf.replace('@{}@'.format(key), value)
+
+outfile.write(buf)
+outfile.close()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/unstable/fullscreen-shell/fullscreen-shell-unstable-v1.xml
 
new/wayland-protocols-1.21/unstable/fullscreen-shell/fullscreen-shell-unstable-v1.xml
--- 
old/wayland-protocols-1.20/unstable/fullscreen-shell/fullscreen-shell-unstable-v1.xml
       2019-02-27 16:10:42.000000000 +0100
+++ 
new/wayland-protocols-1.21/unstable/fullscreen-shell/fullscreen-shell-unstable-v1.xml
       2021-04-30 16:02:26.000000000 +0200
@@ -112,7 +112,7 @@
        wl_display.sync request immediately after binding to ensure that they
        receive all the capability events.
       </description>
-      <arg name="capability" type="uint"/>
+      <arg name="capability" type="uint" enum="capability" />
     </event>
 
     <enum name="present_method">
@@ -147,9 +147,13 @@
        operation on the surface.  This will override any kind of output
        scaling, so the buffer_scale property of the surface is effectively
        ignored.
+
+       This request gives the surface the role of a fullscreen shell surface.
+       If the surface already has another role, it raises a role protocol
+       error.
       </description>
       <arg name="surface" type="object" interface="wl_surface" 
allow-null="true"/>
-      <arg name="method" type="uint"/>
+      <arg name="method" type="uint" enum="present_method" />
       <arg name="output" type="object" interface="wl_output" 
allow-null="true"/>
     </request>
 
@@ -192,6 +196,10 @@
        then the compositor may choose a mode that matches either the buffer
        size or the surface size.  In either case, the surface will fill the
        output.
+
+       This request gives the surface the role of a fullscreen shell surface.
+       If the surface already has another role, it raises a role protocol
+       error.
       </description>
       <arg name="surface" type="object" interface="wl_surface"/>
       <arg name="output" type="object" interface="wl_output"/>
@@ -204,6 +212,7 @@
        These errors can be emitted in response to wl_fullscreen_shell requests.
       </description>
       <entry name="invalid_method" value="0" summary="present_method is not 
known"/>
+      <entry name="role" value="1" summary="given wl_surface has another 
role"/>
     </enum>
   </interface>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml 
new/wayland-protocols-1.21/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
--- 
old/wayland-protocols-1.20/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml   
    2019-11-21 13:53:15.000000000 +0100
+++ 
new/wayland-protocols-1.21/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml   
    2021-04-30 16:02:26.000000000 +0200
@@ -55,6 +55,12 @@
         at any time use those fds to import the dmabuf into any kernel
         sub-system that might accept it.
 
+      However, when the underlying graphics stack fails to deliver the
+      promise, because of e.g. a device hot-unplug which raises internal
+      errors, after the wl_buffer has been successfully created the
+      compositor must not raise protocol errors to the client when dmabuf
+      import later fails.
+
       To create a wl_buffer from one or more dmabufs, a client creates a
       zwp_linux_dmabuf_params_v1 object with a 
zwp_linux_dmabuf_v1.create_params
       request. All planes required by the intended format are added with
@@ -137,6 +143,9 @@
         is as if no explicit modifier is specified. The effective modifier
         will be derived from the dmabuf.
 
+        A compositor that sends valid modifiers and DRM_FORMAT_MOD_INVALID for
+        a given format supports both explicit modifiers and implicit modifiers.
+
         For the definition of the format and modifier codes, see the
         zwp_linux_buffer_params_v1::create and zwp_linux_buffer_params_v1::add
         requests.
@@ -225,7 +234,7 @@
            summary="low 32 bits of layout modifier"/>
     </request>
 
-    <enum name="flags">
+    <enum name="flags" bitfield="true">
       <entry name="y_invert" value="1" summary="contents are y-inverted"/>
       <entry name="interlaced" value="2" summary="content is interlaced"/>
       <entry name="bottom_first" value="4" summary="bottom field first"/>
@@ -296,7 +305,7 @@
       <arg name="width" type="int" summary="base plane width in pixels"/>
       <arg name="height" type="int" summary="base plane height in pixels"/>
       <arg name="format" type="uint" summary="DRM_FORMAT code"/>
-      <arg name="flags" type="uint" summary="see enum flags"/>
+      <arg name="flags" type="uint" enum="flags" summary="see enum flags"/>
     </request>
 
     <event name="created">
@@ -354,7 +363,7 @@
       <arg name="width" type="int" summary="base plane width in pixels"/>
       <arg name="height" type="int" summary="base plane height in pixels"/>
       <arg name="format" type="uint" summary="DRM_FORMAT code"/>
-      <arg name="flags" type="uint" summary="see enum flags"/>
+      <arg name="flags" type="uint" enum="flags" summary="see enum flags"/>
     </request>
 
   </interface>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml
 
new/wayland-protocols-1.21/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml
--- 
old/wayland-protocols-1.20/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml
 2016-11-21 06:27:27.000000000 +0100
+++ 
new/wayland-protocols-1.21/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml
 2021-03-31 08:35:19.000000000 +0200
@@ -147,7 +147,7 @@
           summary="the pointer that should be locked"/>
       <arg name="region" type="object" interface="wl_region" allow-null="true"
           summary="region of surface"/>
-      <arg name="lifetime" type="uint" summary="lock lifetime"/>
+      <arg name="lifetime" type="uint" enum="lifetime" summary="lock 
lifetime"/>
     </request>
 
     <request name="confine_pointer">
@@ -177,7 +177,7 @@
           summary="the pointer that should be confined"/>
       <arg name="region" type="object" interface="wl_region" allow-null="true"
           summary="region of surface"/>
-      <arg name="lifetime" type="uint" summary="confinement lifetime"/>
+      <arg name="lifetime" type="uint" enum="lifetime" summary="confinement 
lifetime"/>
     </request>
   </interface>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml
 
new/wayland-protocols-1.21/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml
--- 
old/wayland-protocols-1.20/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml
       2019-11-21 13:53:15.000000000 +0100
+++ 
new/wayland-protocols-1.21/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml
       2021-04-30 16:02:26.000000000 +0200
@@ -6,7 +6,7 @@
       A global interface to provide semantic touchpad gestures for a given
       pointer.
 
-      Two gestures are currently supported: swipe and zoom/rotate.
+      Two gestures are currently supported: swipe and pinch.
       All gestures follow a three-stage cycle: begin, update, end and
       are identified by a unique id.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/unstable/text-input/text-input-unstable-v1.xml 
new/wayland-protocols-1.21/unstable/text-input/text-input-unstable-v1.xml
--- old/wayland-protocols-1.20/unstable/text-input/text-input-unstable-v1.xml   
2016-08-30 11:13:08.000000000 +0200
+++ new/wayland-protocols-1.21/unstable/text-input/text-input-unstable-v1.xml   
2021-03-31 08:35:19.000000000 +0200
@@ -113,7 +113,7 @@
       <arg name="anchor" type="uint"/>
     </request>
 
-    <enum name="content_hint">
+    <enum name="content_hint" bitfield="true">
       <description summary="content hint">
        Content hint is a bitmask to allow to modify the behavior of the text
        input.
@@ -166,8 +166,8 @@
        default hints (auto completion, auto correction, auto capitalization)
        should be assumed.
       </description>
-      <arg name="hint" type="uint"/>
-      <arg name="purpose" type="uint"/>
+      <arg name="hint" type="uint" enum="content_hint" />
+      <arg name="purpose" type="uint" enum="content_purpose" />
     </request>
 
     <request name="set_cursor_rectangle">
@@ -271,7 +271,7 @@
       </description>
       <arg name="index" type="uint"/>
       <arg name="length" type="uint"/>
-      <arg name="style" type="uint"/>
+      <arg name="style" type="uint" enum="preedit_style" />
     </event>
 
     <event name="preedit_cursor">
@@ -365,7 +365,7 @@
        direction text is laid out properly.
       </description>
       <arg name="serial" type="uint" summary="serial of the latest known text 
input state"/>
-      <arg name="direction" type="uint"/>
+      <arg name="direction" type="uint" enum="text_direction" />
     </event>
   </interface>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/unstable/text-input/text-input-unstable-v3.xml 
new/wayland-protocols-1.21/unstable/text-input/text-input-unstable-v3.xml
--- old/wayland-protocols-1.20/unstable/text-input/text-input-unstable-v3.xml   
2019-02-27 16:10:42.000000000 +0100
+++ new/wayland-protocols-1.21/unstable/text-input/text-input-unstable-v3.xml   
2021-03-31 08:35:19.000000000 +0200
@@ -94,6 +94,12 @@
         zwp_text_input_v3.disable when there is no longer any input focus on
         the current surface.
 
+        Clients must not enable more than one text input on the single seat
+        and should disable the current text input before enabling the new one.
+        At most one instance of text input may be in enabled state per 
instance,
+        Requests to enable the another text input when some text input is 
active
+        must be ignored by compositor.
+
         This request resets all state associated with previous enable, disable,
         set_surrounding_text, set_text_change_cause, set_content_type, and
         set_cursor_rectangle requests, as well as the state associated with
@@ -307,6 +313,9 @@
       <description summary="enter event">
         Notification that this seat's text-input focus is on a certain surface.
 
+        If client has created multiple text input objects, compositor must send
+        this event to all of them.
+
         When the seat has the keyboard capability the text-input focus follows
         the keyboard focus. This event sets the current surface for the
         text-input object.
@@ -321,7 +330,9 @@
         set.
 
         The leave notification clears the current surface. It is sent before
-        the enter notification for the new focus.
+        the enter notification for the new focus. After leave event, compositor
+        must ignore requests from any text input instances until next enter
+        event.
 
         When the seat has the keyboard capability the text-input focus follows
         the keyboard focus.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml
 
new/wayland-protocols-1.21/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml
--- 
old/wayland-protocols-1.20/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml
   2019-03-12 20:32:09.000000000 +0100
+++ 
new/wayland-protocols-1.21/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml
   2021-03-26 10:11:47.000000000 +0100
@@ -113,7 +113,7 @@
         that the client prefers the provided decoration mode.
 
         After requesting a decoration mode, the compositor will respond by
-        emitting a xdg_surface.configure event. The client should then update
+        emitting an xdg_surface.configure event. The client should then update
         its content, drawing it without decorations if the received mode is
         server-side decorations. The client must also acknowledge the configure
         when committing the new content (see xdg_surface.ack_configure).
@@ -122,7 +122,7 @@
         different mode instead.
 
         Clients whose decoration mode depend on the xdg_toplevel state may send
-        a set_mode request in response to a xdg_surface.configure event and 
wait
+        a set_mode request in response to an xdg_surface.configure event and 
wait
         for the next xdg_surface.configure event to prevent unwanted state.
         Such clients are responsible for preventing configure loops and must
         make sure not to send multiple successive set_mode requests with the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/unstable/xdg-foreign/xdg-foreign-unstable-v1.xml 
new/wayland-protocols-1.21/unstable/xdg-foreign/xdg-foreign-unstable-v1.xml
--- old/wayland-protocols-1.20/unstable/xdg-foreign/xdg-foreign-unstable-v1.xml 
2016-11-21 06:27:27.000000000 +0100
+++ new/wayland-protocols-1.21/unstable/xdg-foreign/xdg-foreign-unstable-v1.xml 
2021-03-26 10:11:47.000000000 +0100
@@ -77,7 +77,7 @@
        corresponding interface and event for details.
 
        A surface may be exported multiple times, and each exported handle may
-       be used to create a xdg_imported multiple times. Only xdg_surface
+       be used to create an xdg_imported multiple times. Only xdg_surface
        surfaces may be exported.
       </description>
       <arg name="id" type="new_id" interface="zxdg_exported_v1"
@@ -118,7 +118,7 @@
 
   <interface name="zxdg_exported_v1" version="1">
     <description summary="an exported surface handle">
-      A xdg_exported object represents an exported reference to a surface. The
+      An xdg_exported object represents an exported reference to a surface. The
       exported surface may be referenced as long as the xdg_exported object not
       destroyed. Destroying the xdg_exported invalidates any relationship the
       importer may have established using xdg_imported.
@@ -145,7 +145,7 @@
 
   <interface name="zxdg_imported_v1" version="1">
     <description summary="an imported surface handle">
-      A xdg_imported object represents an imported reference to surface 
exported
+      An xdg_imported object represents an imported reference to surface 
exported
       by some client. A client can use this interface to manipulate
       relationships between its own surfaces and the imported surface.
     </description>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/unstable/xdg-foreign/xdg-foreign-unstable-v2.xml 
new/wayland-protocols-1.21/unstable/xdg-foreign/xdg-foreign-unstable-v2.xml
--- old/wayland-protocols-1.20/unstable/xdg-foreign/xdg-foreign-unstable-v2.xml 
2017-11-15 11:55:56.000000000 +0100
+++ new/wayland-protocols-1.21/unstable/xdg-foreign/xdg-foreign-unstable-v2.xml 
2021-04-30 16:02:26.000000000 +0200
@@ -69,6 +69,14 @@
       </description>
     </request>
 
+    <enum name="error">
+      <description summary="error values">
+        These errors can be emitted in response to invalid xdg_exporter
+        requests.
+      </description>
+      <entry name="invalid_surface" value="0" summary="surface is not an 
xdg_toplevel"/>
+    </enum>
+
     <request name="export_toplevel">
       <description summary="export a toplevel surface">
        The export_toplevel request exports the passed surface so that it can 
later be
@@ -77,8 +85,9 @@
        corresponding interface and event for details.
 
        A surface may be exported multiple times, and each exported handle may
-       be used to create a xdg_imported multiple times. Only xdg_toplevel
-       equivalent surfaces may be exported.
+       be used to create an xdg_imported multiple times. Only xdg_toplevel
+        equivalent surfaces may be exported, otherwise an invalid_surface
+        protocol error is sent.
       </description>
       <arg name="id" type="new_id" interface="zxdg_exported_v2"
           summary="the new xdg_exported object"/>
@@ -118,7 +127,7 @@
 
   <interface name="zxdg_exported_v2" version="1">
     <description summary="an exported surface handle">
-      A xdg_exported object represents an exported reference to a surface. The
+      An xdg_exported object represents an exported reference to a surface. The
       exported surface may be referenced as long as the xdg_exported object not
       destroyed. Destroying the xdg_exported invalidates any relationship the
       importer may have established using xdg_imported.
@@ -145,11 +154,19 @@
 
   <interface name="zxdg_imported_v2" version="1">
     <description summary="an imported surface handle">
-      A xdg_imported object represents an imported reference to surface 
exported
+      An xdg_imported object represents an imported reference to surface 
exported
       by some client. A client can use this interface to manipulate
       relationships between its own surfaces and the imported surface.
     </description>
 
+    <enum name="error">
+      <description summary="error values">
+        These errors can be emitted in response to invalid xdg_imported
+        requests.
+      </description>
+      <entry name="invalid_surface" value="0" summary="surface is not an 
xdg_toplevel"/>
+    </enum>
+
     <request name="destroy" type="destructor">
       <description summary="destroy the xdg_imported object">
        Notify the compositor that it will no longer use the xdg_imported
@@ -160,10 +177,11 @@
 
     <request name="set_parent_of">
       <description summary="set as the parent of some surface">
-       Set the imported surface as the parent of some surface of the client.
-       The passed surface must be a xdg_toplevel equivalent. Calling this
-       function sets up a surface to surface relation with the same stacking
-       and positioning semantics as xdg_toplevel.set_parent.
+        Set the imported surface as the parent of some surface of the client.
+        The passed surface must be an xdg_toplevel equivalent, otherwise an
+        invalid_surface protocol error is sent. Calling this function sets up
+        a surface to surface relation with the same stacking and positioning
+        semantics as xdg_toplevel.set_parent.
       </description>
       <arg name="surface" type="object" interface="wl_surface"
           summary="the child surface"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/unstable/xdg-shell/xdg-shell-unstable-v6.xml 
new/wayland-protocols-1.21/unstable/xdg-shell/xdg-shell-unstable-v6.xml
--- old/wayland-protocols-1.20/unstable/xdg-shell/xdg-shell-unstable-v6.xml     
2017-01-18 07:31:54.000000000 +0100
+++ new/wayland-protocols-1.21/unstable/xdg-shell/xdg-shell-unstable-v6.xml     
2021-03-26 10:11:47.000000000 +0100
@@ -389,7 +389,7 @@
       also be treated as errors.
 
       For a surface to be mapped by the compositor, the following conditions
-      must be met: (1) the client has assigned a xdg_surface based role to the
+      must be met: (1) the client has assigned an xdg_surface based role to the
       surface, (2) the client has set and committed the xdg_surface state and
       the role dependent state to the surface and (3) the client has committed 
a
       buffer to the surface.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/wayland-protocols-1.20/wayland-protocols.pc.in 
new/wayland-protocols-1.21/wayland-protocols.pc.in
--- old/wayland-protocols-1.20/wayland-protocols.pc.in  2019-11-28 
19:22:22.000000000 +0100
+++ new/wayland-protocols-1.21/wayland-protocols.pc.in  2021-04-30 
16:02:26.000000000 +0200
@@ -1,6 +1,6 @@
 prefix=@prefix@
 datarootdir=@datarootdir@
-pkgdatadir=${pc_sysrootdir}@datadir@/@PACKAGE@
+pkgdatadir=${pc_sysrootdir}${datarootdir}/@PACKAGE@
 
 Name: Wayland Protocols
 Description: Wayland protocol files

Reply via email to