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 2026-06-09 14:17:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wayland-protocols (Old)
and /work/SRC/openSUSE:Factory/.wayland-protocols.new.2375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wayland-protocols"
Tue Jun 9 14:17:09 2026 rev:50 rq:1357992 version:1.49
Changes:
--------
--- /work/SRC/openSUSE:Factory/wayland-protocols/wayland-protocols.changes
2026-04-04 19:06:59.368072308 +0200
+++
/work/SRC/openSUSE:Factory/.wayland-protocols.new.2375/wayland-protocols.changes
2026-06-09 14:21:25.311365460 +0200
@@ -1,0 +2,9 @@
+Mon Jun 8 07:18:27 UTC 2026 - Bjørn Lie <[email protected]>
+
+- Update to version 1.49:
+ + Improve multi-GPU support in linux-dmabuf-v1
+ + Add Windows BT.2100 image descriptions to color-management-v1
+ + A new experimental protocol for fractional scaling
+- Import new key from Simon Sers webpage: https://emersion.fr/about
+
+-------------------------------------------------------------------
Old:
----
wayland-protocols-1.48.tar.xz
wayland-protocols-1.48.tar.xz.sig
New:
----
wayland-protocols-1.49.tar.xz
wayland-protocols-1.49.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ wayland-protocols.spec ++++++
--- /var/tmp/diff_new_pack.ZVPTwz/_old 2026-06-09 14:21:28.583499976 +0200
+++ /var/tmp/diff_new_pack.ZVPTwz/_new 2026-06-09 14:21:28.587500140 +0200
@@ -1,7 +1,7 @@
#
# spec file for package wayland-protocols
#
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
# 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.48
+Version: 1.49
Release: 0
Summary: Wayland protocols that add functionality not available in the
core protocol
License: MIT
++++++ wayland-protocols-1.48.tar.xz -> wayland-protocols-1.49.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wayland-protocols-1.48/.gitlab-ci/debian-install.sh
new/wayland-protocols-1.49/.gitlab-ci/debian-install.sh
--- old/wayland-protocols-1.48/.gitlab-ci/debian-install.sh 2026-04-01
13:46:29.000000000 +0200
+++ new/wayland-protocols-1.49/.gitlab-ci/debian-install.sh 2026-06-07
15:06:32.000000000 +0200
@@ -2,7 +2,7 @@
# Note: don't forget to bump FDO_DISTRIBUTION_TAG when editing this file!
-git clone --branch 1.23.1 --depth=1
https://gitlab.freedesktop.org/wayland/wayland
+git clone --branch 1.25.0 --depth=1
https://gitlab.freedesktop.org/wayland/wayland
cd wayland/
git show -s HEAD
meson build/ -Dtests=false -Ddocumentation=false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wayland-protocols-1.48/.gitlab-ci.yml
new/wayland-protocols-1.49/.gitlab-ci.yml
--- old/wayland-protocols-1.48/.gitlab-ci.yml 2026-04-01 13:46:29.000000000
+0200
+++ new/wayland-protocols-1.49/.gitlab-ci.yml 2026-06-07 15:06:32.000000000
+0200
@@ -27,7 +27,7 @@
variables:
FDO_DISTRIBUTION_VERSION: trixie
FDO_DISTRIBUTION_PACKAGES: 'build-essential pkg-config meson git
ca-certificates libffi-dev libexpat1-dev libxml2-dev'
- FDO_DISTRIBUTION_TAG: '2025-11-15.0'
+ FDO_DISTRIBUTION_TAG: '2026-04-05.0'
FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT}
./.gitlab-ci/debian-install.sh'
check-commit:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wayland-protocols-1.48/experimental/xx-fractional-scale/README
new/wayland-protocols-1.49/experimental/xx-fractional-scale/README
--- old/wayland-protocols-1.48/experimental/xx-fractional-scale/README
1970-01-01 01:00:00.000000000 +0100
+++ new/wayland-protocols-1.49/experimental/xx-fractional-scale/README
2026-06-07 15:06:32.000000000 +0200
@@ -0,0 +1,4 @@
+xx fractional scale v2 protocol
+
+Maintainers:
+Xaver Hugl <[email protected]> (@Zamundaaa)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wayland-protocols-1.48/experimental/xx-fractional-scale/xx-fractional-scale-v2.xml
new/wayland-protocols-1.49/experimental/xx-fractional-scale/xx-fractional-scale-v2.xml
---
old/wayland-protocols-1.48/experimental/xx-fractional-scale/xx-fractional-scale-v2.xml
1970-01-01 01:00:00.000000000 +0100
+++
new/wayland-protocols-1.49/experimental/xx-fractional-scale/xx-fractional-scale-v2.xml
2026-06-07 15:06:32.000000000 +0200
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="xx_fractional_scale_v2">
+ <copyright>
+ Copyright © 2022 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>
+
+ <description summary="Protocol for fractional scaling">
+ This protocol allows compositors and clients to communicate the
+ coordinate space their surfaces act in.
+ </description>
+
+ <interface name="xx_fractional_scale_manager_v2" version="1">
+ <description summary="creates surface scale interfaces">
+ A global interface to create xx_fractional_scale_v2 interfaces.
+ </description>
+
+ <request name="destroy" type="destructor">
+ <description summary="release the global">
+ Informs the server that the client will not be using this protocol
+ object anymore. This does not affect any other objects.
+ </description>
+ </request>
+
+ <enum name="error">
+ <entry name="fractional_scale_exists" value="0"
+ summary="xx_fractional_scale_v2 for the surface already exists"/>
+ </enum>
+
+ <request name="get_fractional_scale">
+ <description summary="create an interface to enable fractional scaling">
+ Create an interface object for a wl_surface to communicate scale.
+ If the given wl_surface already has a xx_fractional_scale_v2 object
+ associated, the fractional_scale_exists protocol error is raised.
+ </description>
+ <arg name="id" type="new_id" interface="xx_fractional_scale_v2"
+ summary="the new scale interface"/>
+ <arg name="surface" type="object" interface="wl_surface"
+ summary="the surface"/>
+ </request>
+ </interface>
+
+ <interface name="xx_fractional_scale_v2" version="1">
+ <description summary="interface for fractional scaling">
+ An additional interface for a wl_surface object that allows compositor
and
+ client to communicate in a different coordinate space, in order to enable
+ them to accurately describe coordinates and sizes in pixels.
+ The two coordinate spaces in consideration are logical and pixels, where
+ logical coordinates describe the size content should have and pixels
+ describe the size of buffers.
+
+ A scale of one equals a lack of scaling, where the communicated values
+ define both logical coordinates and pixels.
+ A scale greater than one describes that for every logical coordinate,
+ more than one pixel is used, and a scale less than one describes that
+ multiple logical coordinates make up one pixel.
+ In mathematical terms, logical coordinates can be obtained by dividing
+ the provided values by the currently active scale.
+
+ The initial compositor and client coordinate scale factors are 1.
+ </description>
+
+ <event name="scale_factor">
+ <description summary="set the compositor coordinate space scale factor">
+ This event sets a scale factor for the associated wl_surface that
+ describes the coordinate system the compositor will use for events
+ following xx_fractional_scale_v2.scale_factor.
+
+ The scale factor is encoded in a 8.24 fixed point format.
+
+ The compositor must not send a scale of zero.
+
+ The client should re-render and commit a new buffer with the new scale
+ as soon as possible, in order to avoid artifacts caused by the mismatch
+ in compositor and client scales.
+ </description>
+ <arg name="scale_8_24" type="uint" summary="surface scale factor"/>
+ </event>
+
+ <request name="set_scale_factor">
+ <description summary="set the client coordinate space scale factor">
+ This request sets a scale factor for the associated wl_surface that
+ describes the coordinate system the client uses for requests following
+ xx_fractional_scale_v2.set_scale_factor.
+
+ The scale factor is encoded in a 8.24 fixed point format.
+
+ If this scale factor does not match the scale factor provided by the
+ compositor with xx_fractional_scale_v2.scale_factor, the compositor may
+ apply transformations to the wl_surface that can result in blurriness
+ or other artifacts.
+
+ If scale_8_24 is zero, the error invalid_scale will be raised.
+ </description>
+ <arg name="scale_8_24" type="uint" summary="surface scale factor"/>
+ </request>
+
+ <request name="destroy" type="destructor">
+ <description summary="remove the scale interface from the surface">
+ The wl_surface's xx_fractional_scale_v2 object is destroyed, and the
+ associated scale is reset to 1.
+ </description>
+ </request>
+
+ <enum name="error">
+ <entry name="invalid_scale" value="0"
+ summary="scale value is not valid"/>
+ </enum>
+ </interface>
+</protocol>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wayland-protocols-1.48/experimental/xx-session-management/xx-session-management-v1.xml
new/wayland-protocols-1.49/experimental/xx-session-management/xx-session-management-v1.xml
---
old/wayland-protocols-1.48/experimental/xx-session-management/xx-session-management-v1.xml
2026-04-01 13:46:29.000000000 +0200
+++
new/wayland-protocols-1.49/experimental/xx-session-management/xx-session-management-v1.xml
2026-06-07 15:06:32.000000000 +0200
@@ -84,12 +84,12 @@
</entry>
<entry name="recover" value="2">
<description summary="an app recovered">
- A app instance is recovering from for example a compositor or app
crash.
+ An app instance is recovering from for example a compositor or app
crash.
</description>
</entry>
<entry name="session_restore" value="3">
<description summary="an app restored">
- A app instance is restored, for example part of a restored session,
or
+ An app instance is restored, for example part of a restored session,
or
restored from having been temporarily terminated due to resource
constraints.
</description>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wayland-protocols-1.48/meson.build
new/wayland-protocols-1.49/meson.build
--- old/wayland-protocols-1.48/meson.build 2026-04-01 13:46:29.000000000
+0200
+++ new/wayland-protocols-1.49/meson.build 2026-06-07 15:06:32.000000000
+0200
@@ -1,5 +1,5 @@
project('wayland-protocols',
- version: '1.48',
+ version: '1.49',
meson_version: '>= 0.58.0',
license: 'MIT/Expat',
)
@@ -9,94 +9,109 @@
fs = import('fs')
dep_scanner = dependency('wayland-scanner',
- version: get_option('tests') ? '>=1.23.0' : '>=1.20.0',
+ version: get_option('tests') ? '>=1.25.0' : '>=1.22.90',
+ required: get_option('tests'),
native: true,
fallback: 'wayland'
)
-prog_scanner = find_program(dep_scanner.get_variable(pkgconfig:
'wayland_scanner', internal: 'wayland_scanner'))
+if dep_scanner.found()
+ prog_scanner = find_program(dep_scanner.get_variable(pkgconfig:
'wayland_scanner', internal: 'wayland_scanner'))
+endif
stable_protocols = {
- 'linux-dmabuf': ['v1'],
- 'presentation-time': [''],
- 'tablet': ['v2'],
- 'viewporter': [''],
- 'xdg-shell': [''],
+ 'linux-dmabuf': {'v1': []},
+ 'presentation-time': {'': []},
+ 'tablet': {'v2': []},
+ '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'],
+ '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': ['stable/xdg-shell/xdg-shell.xml']},
+ 'xdg-foreign': {'v1': [], 'v2': []},
+ 'xdg-output': {'v1': []},
+ 'xdg-shell': {'v5': [], 'v6': []},
+ 'xwayland-keyboard-grab': {'v1': []},
}
staging_protocols = {
- 'alpha-modifier': ['v1'],
- 'color-management': ['v1'],
- 'color-representation': ['v1'],
- 'commit-timing': ['v1'],
- 'content-type': ['v1'],
- 'cursor-shape': ['v1'],
- 'drm-lease': ['v1'],
- 'ext-background-effect': ['v1'],
- 'ext-data-control': ['v1'],
- 'ext-foreign-toplevel-list': ['v1'],
- 'ext-idle-notify': ['v1'],
- 'ext-image-capture-source': ['v1'],
- 'ext-image-copy-capture': ['v1'],
- 'ext-session-lock': ['v1'],
- 'ext-transient-seat': ['v1'],
- 'ext-workspace': ['v1'],
- 'fifo': ['v1'],
- 'fractional-scale': ['v1'],
- 'linux-drm-syncobj': ['v1'],
- 'pointer-warp': ['v1'],
- 'security-context': ['v1'],
- 'single-pixel-buffer': ['v1'],
- 'tearing-control': ['v1'],
- 'xdg-activation': ['v1'],
- 'xdg-dialog': ['v1'],
- 'xdg-session-management': ['v1'],
- 'xdg-system-bell': ['v1'],
- 'xdg-toplevel-drag': ['v1'],
- 'xdg-toplevel-icon': ['v1'],
- 'xdg-toplevel-tag': ['v1'],
- 'xwayland-shell': ['v1'],
+ 'alpha-modifier': {'v1': []},
+ 'color-management': {'v1': []},
+ 'color-representation': {'v1': []},
+ 'commit-timing': {'v1': []},
+ 'content-type': {'v1': []},
+ 'cursor-shape': {'v1': ['stable/tablet/tablet-v2.xml']},
+ 'drm-lease': {'v1': []},
+ 'ext-background-effect': {'v1': []},
+ 'ext-data-control': {'v1': []},
+ 'ext-foreign-toplevel-list': {'v1': []},
+ 'ext-idle-notify': {'v1': []},
+ 'ext-image-capture-source': {'v1': [
+
'staging/ext-foreign-toplevel-list/ext-foreign-toplevel-list-v1.xml',
+ ]},
+ 'ext-image-copy-capture': {'v1': [
+
'staging/ext-image-capture-source/ext-image-capture-source-v1.xml',
+
'staging/ext-foreign-toplevel-list/ext-foreign-toplevel-list-v1.xml',
+ ]},
+ 'ext-session-lock': {'v1': []},
+ 'ext-transient-seat': {'v1': []},
+ 'ext-workspace': {'v1': []},
+ 'fifo': {'v1': []},
+ 'fractional-scale': {'v1': []},
+ 'linux-drm-syncobj': {'v1': []},
+ 'pointer-warp': {'v1': []},
+ 'security-context': {'v1': []},
+ 'single-pixel-buffer': {'v1': []},
+ 'tearing-control': {'v1': []},
+ 'xdg-activation': {'v1': []},
+ 'xdg-dialog': {'v1': ['stable/xdg-shell/xdg-shell.xml']},
+ 'xdg-session-management': {'v1': ['stable/xdg-shell/xdg-shell.xml']},
+ 'xdg-system-bell': {'v1': []},
+ 'xdg-toplevel-drag': {'v1': ['stable/xdg-shell/xdg-shell.xml']},
+ 'xdg-toplevel-icon': {'v1': ['stable/xdg-shell/xdg-shell.xml']},
+ 'xdg-toplevel-tag': {'v1': ['stable/xdg-shell/xdg-shell.xml']},
+ 'xwayland-shell': {'v1': []},
}
experimental_protocols = {
- 'xx-cutouts': ['v1'],
- 'xx-input-method': ['v2'],
- 'xx-keyboard-filter': ['v1'],
- 'xx-session-management': ['v1'],
- 'xx-text-input': ['v3'],
- 'xx-zones': ['v1'],
+ 'xx-cutouts': {'v1': []},
+ 'xx-input-method': {'v2': []},
+ 'xx-keyboard-filter': {'v1': [
+ 'experimental/xx-input-method/xx-input-method-v2.xml',
+ ]},
+ 'xx-session-management': {'v1': ['stable/xdg-shell/xdg-shell.xml']},
+ 'xx-text-input': {'v3': []},
+ 'xx-zones': {'v1': ['stable/xdg-shell/xdg-shell.xml']},
}
protocol_files = []
installed_protocol_files = []
+protocol_deps = {}
stable_protocol_files = []
foreach name, versions : stable_protocols
- foreach version : versions
+ foreach version, deps : versions
if version == ''
- stable_protocol_files +=
['stable/@0@/@[email protected]'.format(name)]
+ protocol_file = 'stable/@0@/@[email protected]'.format(name)
else
- stable_protocol_files +=
['stable/@0@/@0@-@[email protected]'.format(name, version)]
+ protocol_file = 'stable/@0@/@0@-@[email protected]'.format(name,
version)
+ endif
+ stable_protocol_files += [protocol_file]
+ if deps.length() > 0
+ protocol_deps += {protocol_file: deps}
endif
endforeach
endforeach
@@ -105,10 +120,12 @@
staging_protocol_files = []
foreach name, versions : staging_protocols
- foreach version : versions
- staging_protocol_files += [
- 'staging/@0@/@0@-@[email protected]'.format(name, version)
- ]
+ foreach version, deps : versions
+ protocol_file = 'staging/@0@/@0@-@[email protected]'.format(name, version)
+ staging_protocol_files += [protocol_file]
+ if deps.length() > 0
+ protocol_deps += {protocol_file: deps}
+ endif
endforeach
endforeach
installed_protocol_files += staging_protocol_files
@@ -116,10 +133,12 @@
unstable_protocol_files = []
foreach name, versions : unstable_protocols
- foreach version : versions
- unstable_protocol_files += [
- 'unstable/@0@/@0@-unstable-@[email protected]'.format(name,
version)
- ]
+ foreach version, deps : versions
+ protocol_file =
'unstable/@0@/@0@-unstable-@[email protected]'.format(name, version)
+ unstable_protocol_files += [protocol_file]
+ if deps.length() > 0
+ protocol_deps += {protocol_file: deps}
+ endif
endforeach
endforeach
installed_protocol_files += unstable_protocol_files
@@ -127,10 +146,12 @@
experimental_protocol_files = []
foreach name, versions : experimental_protocols
- foreach version : versions
- experimental_protocol_files += [
- 'experimental/@0@/@0@-@[email protected]'.format(name, version)
- ]
+ foreach version, deps : versions
+ protocol_file = 'experimental/@0@/@0@-@[email protected]'.format(name,
version)
+ experimental_protocol_files += [protocol_file]
+ if deps.length() > 0
+ protocol_deps += {protocol_file: deps}
+ endif
endforeach
endforeach
protocol_files += experimental_protocol_files
@@ -157,7 +178,7 @@
include_dirs = []
headers = []
-if dep_scanner.version().version_compare('>=1.22.90')
+if dep_scanner.found()
subdir('include/wayland-protocols')
include_dirs = ['include']
endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wayland-protocols-1.48/stable/linux-dmabuf/feedback.rst
new/wayland-protocols-1.49/stable/linux-dmabuf/feedback.rst
--- old/wayland-protocols-1.48/stable/linux-dmabuf/feedback.rst 2026-04-01
13:46:29.000000000 +0200
+++ new/wayland-protocols-1.49/stable/linux-dmabuf/feedback.rst 2026-06-07
15:06:32.000000000 +0200
@@ -31,10 +31,12 @@
appropriate format/modifier and also to avoid allocating in private device
memory when cross-device operations are going to happen.
-linux-dmabuf feedback implementation notes
-==========================================
+3. Starting with version 6, the assumption of a single main device is removed.
+ Clients should instead use the target device of any tranche marked with the
+ ``sampling`` flag instead.
-This section contains recommendations for client and compositor
implementations.
+linux-dmabuf feedback implementation notes for version 4 and 5
+==============================================================
For clients
-----------
@@ -162,6 +164,29 @@
compositor could insert an intermediate tranche if it's possible to use a
mem2mem device to convert buffers to be able to use scan-out.
+linux-dmabuf feedback implementation nodes for version 6
+==========================================
+
+With version 6 of the protocol, most of the logic described for version 4 still
+stands, with a few exceptions:
+
+- the main device is no longer sent. If the client needs an equivalent to the
+ main device, the target device of the first tranche of the default feedback
+ with the ``sampling`` flag can be used.
+- compositors should send tranches with the ``sampling`` flag for all devices
+ they can sample from without triggering buffer migrations.
+- clients are strongly recommended to set the device they allocated buffers for
+ with ``wp_linux_buffer_params.set_sampling_device``. This avoids both
implicit
+ buffer migrations and unnecessary copies by the compositor.
+- compositors should avoid directly importing buffers into devices other than
the
+ one set by the client with the ``sampling`` device whenever possible, to
avoid
+ implicit buffer migrations by the graphics driver (which can reduce
performance
+ significantly)
+- if the compositor wishes a client to change which device it's rendering on,
it
+ can change the order of tranches (and thus devices) in the per-surface
feedback.
+ In response, clients that are capable of switching devices should re-allocate
+ on the first device they can use.
+
``dev_t`` encoding
==================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wayland-protocols-1.48/stable/linux-dmabuf/linux-dmabuf-v1.xml
new/wayland-protocols-1.49/stable/linux-dmabuf/linux-dmabuf-v1.xml
--- old/wayland-protocols-1.48/stable/linux-dmabuf/linux-dmabuf-v1.xml
2026-04-01 13:46:29.000000000 +0200
+++ new/wayland-protocols-1.49/stable/linux-dmabuf/linux-dmabuf-v1.xml
2026-06-07 15:06:32.000000000 +0200
@@ -24,7 +24,7 @@
DEALINGS IN THE SOFTWARE.
</copyright>
- <interface name="zwp_linux_dmabuf_v1" version="5">
+ <interface name="zwp_linux_dmabuf_v1" version="6">
<description summary="factory for creating dmabuf-based wl_buffers">
This interface offers ways to create generic dmabuf-based wl_buffers.
@@ -61,7 +61,7 @@
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
+ zwp_linux_buffer_params_v1 object with a
zwp_linux_dmabuf_v1.create_params
request. All planes required by the intended format are added with
the 'add' request. Finally, a 'create' or 'create_immed' request is
issued, which has the following outcome depending on the import success.
@@ -105,7 +105,7 @@
received.
</description>
<arg name="params_id" type="new_id"
interface="zwp_linux_buffer_params_v1"
- summary="the new temporary"/>
+ summary="id for the newly created zwp_linux_buffer_params_v1"/>
</request>
<event name="format" deprecated-since="4">
@@ -162,7 +162,7 @@
<request name="get_default_feedback" since="4">
<description summary="get default feedback">
- This request creates a new wp_linux_dmabuf_feedback object not bound
+ This request creates a new zwp_linux_dmabuf_feedback_v1 object not
bound
to a particular surface. This object will deliver feedback about dmabuf
parameters to use if the client doesn't support per-surface feedback
(see get_surface_feedback).
@@ -172,11 +172,11 @@
<request name="get_surface_feedback" since="4">
<description summary="get feedback for a surface">
- This request creates a new wp_linux_dmabuf_feedback object for the
+ This request creates a new zwp_linux_dmabuf_feedback_v1 object for the
specified wl_surface. This object will deliver feedback about dmabuf
parameters to use for buffers attached to this surface.
- If the surface is destroyed before the wp_linux_dmabuf_feedback object,
+ If the surface is destroyed before the zwp_linux_dmabuf_feedback_v1
object,
the feedback object becomes inert.
</description>
<arg name="id" type="new_id" interface="zwp_linux_dmabuf_feedback_v1"/>
@@ -184,7 +184,7 @@
</request>
</interface>
- <interface name="zwp_linux_buffer_params_v1" version="5">
+ <interface name="zwp_linux_buffer_params_v1" version="6">
<description summary="parameters for creating a dmabuf-based wl_buffer">
This temporary object is a collection of dmabufs and other
parameters that together form a single logical buffer. The temporary
@@ -206,7 +206,7 @@
<enum name="error">
<entry name="already_used" value="0"
- summary="the dmabuf_batch object has already been used to create
a wl_buffer"/>
+ summary="the zwp_linux_buffer_params_v1 object has already been
used to create a wl_buffer"/>
<entry name="plane_idx" value="1"
summary="plane index out of bounds"/>
<entry name="plane_set" value="2"
@@ -222,6 +222,8 @@
<entry name="invalid_wl_buffer" value="7"
summary="invalid wl_buffer resulted from importing dmabufs via
the create_immed request on given buffer_params"/>
+ <entry name="invalid_dev_t_size" value="8"
+ summary="an array with mismatching size for a dev_t was used"/>
</enum>
<request name="destroy" type="destructor">
@@ -282,7 +284,7 @@
authoritative source on how the format codes should work.
The 'flags' is a bitfield of the flags defined in enum "flags".
- 'y_invert' means the that the image needs to be y-flipped.
+ 'y_invert' means that the image needs to be y-flipped.
Flag 'interlaced' means that the frame in the buffer is not
progressive as usual, but interlaced. An interlaced buffer as
@@ -326,7 +328,7 @@
This request can be sent only once in the object's lifetime, after
which the only legal request is destroy. This object should be
destroyed after issuing a 'create' request. Attempting to use this
- object after issuing 'create' raises ALREADY_USED protocol error.
+ object after issuing 'create' raises the ALREADY_USED protocol error.
It is not mandatory to issue 'create'. If a client wants to
cancel the buffer creation, it can just destroy this object.
@@ -346,7 +348,7 @@
zwp_linux_buffer_params_v1 object.
</description>
<arg name="buffer" type="new_id" interface="wl_buffer"
- summary="the newly created wl_buffer"/>
+ summary="id for the the newly created wl_buffer"/>
</event>
<event name="failed">
@@ -394,9 +396,28 @@
<arg name="format" type="uint" summary="DRM_FORMAT code"/>
<arg name="flags" type="uint" enum="flags" summary="see enum flags"/>
</request>
+
+ <request name="set_sampling_device" since="6">
+ <description summary="set the target device of the wl_buffer">
+ Set the device the compositor should import the dmabufs to for sampling
+ in the next create or create_immed request.
+
+ To avoid race conditions when the compositor removes a device from the
+ tranches, it is not a protocol error if the device hasn't been
advertised
+ by the compositor in a tranche with the sampling flag, but the import
is
+ likely to fail in that case.
+
+ If the client doesn't know a suitable target device, it shouldn't set
one,
+ and the compositor should attempt import on all devices it supports.
+
+ If the array is too small to contain a dev_t or larger than required,
the
+ invalid_dev_t_size error will be emitted.
+ </description>
+ <arg name="device" type="array" summary="device dev_t value"/>
+ </request>
</interface>
- <interface name="zwp_linux_dmabuf_feedback_v1" version="5">
+ <interface name="zwp_linux_dmabuf_feedback_v1" version="6">
<description summary="dmabuf feedback">
This object advertises dmabuf parameters feedback. This includes the
preferred devices and the supported formats/modifiers.
@@ -419,25 +440,28 @@
descending order of preference. All formats and modifiers in the same
tranche have the same preference.
- To send parameters, the compositor sends one main_device event, tranches
- (each consisting of one tranche_target_device event, one tranche_flags
- event, tranche_formats events and then a tranche_done event), then one
- done event.
+ To send parameters, the compositor sends one main_device event (unless
+ the client bound version 6 or above), tranches (each consisting of one
+ tranche_target_device event, one tranche_flags event, tranche_formats
+ events and then a tranche_done event), then one done event.
+
+ With version 6 and above, the compositor must always advertise at least
+ one tranche with the sampling flag set.
</description>
<request name="destroy" type="destructor">
<description summary="destroy the feedback object">
Using this request a client can tell the server that it is not going to
- use the wp_linux_dmabuf_feedback object anymore.
+ use the zwp_linux_dmabuf_feedback_v1 object anymore.
</description>
</request>
<event name="done">
<description summary="all feedback has been sent">
- This event is sent after all parameters of a wp_linux_dmabuf_feedback
+ This event is sent after all parameters of a
zwp_linux_dmabuf_feedback_v1
object have been sent.
- This allows changes to the wp_linux_dmabuf_feedback parameters to be
+ This allows changes to the zwp_linux_dmabuf_feedback_v1 parameters to
be
seen as atomic, even if they happen via multiple events.
</description>
</event>
@@ -463,19 +487,19 @@
<arg name="size" type="uint" summary="table size, in bytes"/>
</event>
- <event name="main_device">
+ <event name="main_device" deprecated-since="6">
<description summary="preferred main device">
This event advertises the main device that the server prefers to use
when direct scan-out to the target device isn't possible. The
advertised main device may be different for each
- wp_linux_dmabuf_feedback object, and may change over time.
+ zwp_linux_dmabuf_feedback_v1 object, and may change over time.
There is exactly one main device. The compositor must send at least
one preference tranche with tranche_target_device equal to main_device.
Clients need to create buffers that the main device can import and
read from, otherwise creating the dmabuf wl_buffer will fail (see the
- wp_linux_buffer_params.create and create_immed requests for details).
+ zwp_linux_buffer_params_v1.create and create_immed requests for
details).
The main device will also likely be kept active by the compositor,
so clients can use it instead of waking up another device for power
savings.
@@ -488,13 +512,16 @@
If explicit modifiers are not supported and the client performs buffer
allocations on a different device than the main device, then the client
must force the buffer to have a linear layout.
+
+ With version 6 and above, this event is no longer sent. Clients should
+ use a device with the sampling flag in the tranches instead.
</description>
<arg name="device" type="array" summary="device dev_t value"/>
</event>
<event name="tranche_done">
<description summary="a preference tranche has been sent">
- This event splits tranche_target_device and tranche_formats events in
+ This event splits tranche_target_device and tranche_formats events into
preference tranches. It is sent after a set of tranche_target_device
and tranche_formats events; it represents the end of a tranche. The
next tranche will have a lower preference.
@@ -516,11 +543,11 @@
The client can use this hint to allocate the buffer in a way that makes
it accessible from the target device, ideally directly. The buffer must
- still be accessible from the main device, either through direct import
- or through a potentially more expensive fallback path. If the buffer
- can't be directly imported from the main device then clients must be
+ still be accessible from a device with the sampling flag, either
through
+ direct import or a potentially more expensive fallback path. If the
+ buffer can't be directly imported for sampling, then clients must be
prepared for the compositor changing the tranche priority or making
- wl_buffer creation fail (see the wp_linux_buffer_params.create and
+ wl_buffer creation fail (see the zwp_linux_buffer_params_v1.create and
create_immed requests for details).
If the device is a DRM node, the DRM node type (primary vs. render) is
@@ -534,7 +561,7 @@
</event>
<event name="tranche_formats">
- <description summary="supported buffer format modifier">
+ <description summary="supported buffer format modifiers">
This event advertises the format + modifier combinations that the
compositor supports.
@@ -558,25 +585,36 @@
This event is tied to a preference tranche, see the tranche_done event.
For the definition of the format and modifier codes, see the
- wp_linux_buffer_params.create request.
+ zwp_linux_buffer_params_v1.create request.
</description>
<arg name="indices" type="array" summary="array of 16-bit indexes"/>
</event>
<enum name="tranche_flags" bitfield="true">
- <entry name="scanout" value="1" summary="direct scan-out tranche"/>
+ <entry name="scanout" value="1" since="4">
+ <description summary="direct scan-out tranche">
+ The scanout flag is a hint that direct scan-out may be attempted by
+ the compositor on the target device if the client appropriately
+ allocates a buffer. How to allocate a buffer that can be scanned out
+ on the target device is implementation-defined.
+ </description>
+ </entry>
+ <entry name="sampling" value="2" since="6">
+ <description summary="sampling tranche">
+ The sampling flag describes that the compositor is able to
efficiently
+ sample from buffers imported to the target device if the client
+ appropriately allocates a buffer. How to allocate a buffer that can
be
+ efficiently sampled on the target device is implementation defined.
+ </description>
+ </entry>
</enum>
<event name="tranche_flags">
<description summary="tranche flags">
- This event sets tranche-specific flags.
-
- The scanout flag is a hint that direct scan-out may be attempted by the
- compositor on the target device if the client appropriately allocates a
- buffer. How to allocate a buffer that can be scanned out on the target
- device is implementation-defined.
-
- This event is tied to a preference tranche, see the tranche_done event.
+ This event sets tranche-specific flags. This event is tied to a
+ preference tranche, see the tranche_done event.
+ With version 6 and above, the compositor must set at least one flag
+ in each tranche.
</description>
<arg name="flags" type="uint" enum="tranche_flags" summary="tranche
flags"/>
</event>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wayland-protocols-1.48/stable/xdg-shell/xdg-shell.xml
new/wayland-protocols-1.49/stable/xdg-shell/xdg-shell.xml
--- old/wayland-protocols-1.48/stable/xdg-shell/xdg-shell.xml 2026-04-01
13:46:29.000000000 +0200
+++ new/wayland-protocols-1.49/stable/xdg-shell/xdg-shell.xml 2026-06-07
15:06:32.000000000 +0200
@@ -75,17 +75,16 @@
<request name="get_xdg_surface">
<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. It is
- illegal to create an xdg_surface for a wl_surface which already has an
- assigned role and this will result in a role 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
or xdg_popup. It also manages functionality shared between xdg_surface
based surface roles.
+ 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. It is illegal to create an xdg_surface for a wl_surface which
+ already has anassigned role and this will result in a role error.
+
See the documentation of xdg_surface for more details about what an
xdg_surface is and how it is used.
</description>
@@ -201,14 +200,14 @@
<request name="set_anchor">
<description summary="set anchor rectangle anchor">
Defines the anchor point for the anchor rectangle. The specified anchor
- is used derive an anchor point that the child surface will be
+ is used to derive an anchor point that the child surface will be
positioned relative to. If a corner anchor is set (e.g. 'top_left' or
'bottom_right'), the anchor point will be at the specified corner;
otherwise, the derived anchor point will be centered on the specified
edge, or in the center of the anchor rectangle if no edge is specified.
</description>
<arg name="anchor" type="uint" enum="anchor"
- summary="anchor"/>
+ summary="anchor point"/>
</request>
<enum name="gravity">
@@ -380,7 +379,7 @@
</request>
<request name="set_parent_size" since="3">
- <description summary="">
+ <description summary="set parent size">
Set the parent window geometry the compositor should use when
positioning the popup. The compositor may use this information to
determine the future state the popup should be constrained using. If
@@ -505,8 +504,8 @@
xdg_popup is and how it is used.
</description>
<arg name="id" type="new_id" interface="xdg_popup"/>
- <arg name="parent" type="object" interface="xdg_surface"
allow-null="true"/>
- <arg name="positioner" type="object" interface="xdg_positioner"/>
+ <arg name="parent" type="object" interface="xdg_surface"
allow-null="true" summary="parent surface for this popup"/>
+ <arg name="positioner" type="object" interface="xdg_positioner"
summary="positioner for this popup"/>
</request>
<request name="set_window_geometry">
@@ -552,10 +551,10 @@
greater than zero. Setting an invalid size will raise an
invalid_size error.
</description>
- <arg name="x" type="int"/>
- <arg name="y" type="int"/>
- <arg name="width" type="int"/>
- <arg name="height" type="int"/>
+ <arg name="x" type="int" summary="x coordinate of the top-left corner of
the window inside this surface"/>
+ <arg name="y" type="int" summary="y coordinate of the top-left corner of
the window inside this surface"/>
+ <arg name="width" type="int" summary="width of the window"/>
+ <arg name="height" type="int" summary="height of the window"/>
</request>
<request name="ack_configure">
@@ -628,7 +627,7 @@
id, and well as trigger user interactive operations such as interactive
resize and move.
- A xdg_toplevel by default is responsible for providing the full intended
+ An xdg_toplevel by default is responsible for providing the full intended
visual representation of the toplevel, which depending on the window
state, may mean things like a title bar, window controls and drop shadow.
@@ -684,7 +683,7 @@
descendants, and the parent must be different from the child toplevel,
otherwise the invalid_parent protocol error is raised.
</description>
- <arg name="parent" type="object" interface="xdg_toplevel"
allow-null="true"/>
+ <arg name="parent" type="object" interface="xdg_toplevel"
allow-null="true" summary="parent surface for this surface"/>
</request>
<request name="set_title">
@@ -697,7 +696,7 @@
The string must be encoded in UTF-8.
</description>
- <arg name="title" type="string"/>
+ <arg name="title" type="string" summary="title of the surface"/>
</request>
<request name="set_app_id">
@@ -726,7 +725,7 @@
[0] https://standards.freedesktop.org/desktop-entry-spec/
</description>
- <arg name="app_id" type="string"/>
+ <arg name="app_id" type="string" summary="application identifier surface
belongs to"/>
</request>
<request name="show_window_menu">
@@ -981,11 +980,11 @@
a surface is illegal and will result in an invalid_size error.
The width and height must be greater than or equal to zero. Using
- strictly negative values for width or height will result in a
+ strictly negative values for width or height will result in an
invalid_size error.
</description>
- <arg name="width" type="int"/>
- <arg name="height" type="int"/>
+ <arg name="width" type="int" summary="maximum width of the window"/>
+ <arg name="height" type="int" summary="maximum height of the window"/>
</request>
<request name="set_min_size">
@@ -1021,11 +1020,11 @@
a surface is illegal and will result in an invalid_size error.
The width and height must be greater than or equal to zero. Using
- strictly negative values for width and height will result in a
+ strictly negative values for width and height will result in an
invalid_size error.
</description>
- <arg name="width" type="int"/>
- <arg name="height" type="int"/>
+ <arg name="width" type="int" summary="minimum width of the window"/>
+ <arg name="height" type="int" summary="minimum height of the window"/>
</request>
<request name="set_maximized">
@@ -1095,7 +1094,7 @@
If the surface doesn't cover the whole output, the compositor will
position the surface in the center of the output and compensate with
- with border fill covering the rest of the output. The content of the
+ border fill covering the rest of the output. The content of the
border fill is undefined, but should be assumed to be in some way that
attempts to blend into the surrounding area (e.g. solid black).
@@ -1104,7 +1103,7 @@
up of subsurfaces, popups or similarly coupled surfaces) are not
visible below the fullscreened surface.
</description>
- <arg name="output" type="object" interface="wl_output"
allow-null="true"/>
+ <arg name="output" type="object" interface="wl_output" allow-null="true"
summary="preferred output to place surface on"/>
</request>
<request name="unset_fullscreen">
@@ -1161,12 +1160,15 @@
arguments should be interpreted, and possibly how it should be
drawn.
+ The states are sent as an array of 32-bit unsigned integers in
+ native endianness. State values are defined in the state enum.
+
Clients must send an ack_configure in response to this event. See
xdg_surface.configure and xdg_surface.ack_configure for details.
</description>
- <arg name="width" type="int"/>
- <arg name="height" type="int"/>
- <arg name="states" type="array"/>
+ <arg name="width" type="int" summary="suggested width of window"/>
+ <arg name="height" type="int" summary="suggested height of window"/>
+ <arg name="states" type="array" summary="suggested states of the
window"/>
</event>
<event name="close">
@@ -1202,8 +1204,8 @@
xdg_toplevel.configure_bounds will be sent, followed by
xdg_toplevel.configure and xdg_surface.configure.
</description>
- <arg name="width" type="int"/>
- <arg name="height" type="int"/>
+ <arg name="width" type="int" summary="suggested maximum width of
surface"/>
+ <arg name="height" type="int" summary="suggested maximum height of
surface"/>
</event>
<!-- Version 5 additions -->
@@ -1236,7 +1238,7 @@
xdg_surface.configure for details.
The capabilities are sent as an array of 32-bit unsigned integers in
- native endianness.
+ native endianness. Capability values are defined in the wm_capabilities
enum.
</description>
<arg name="capabilities" type="array" summary="array of 32-bit
capabilities"/>
</event>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wayland-protocols-1.48/staging/color-management/color-management-v1.xml
new/wayland-protocols-1.49/staging/color-management/color-management-v1.xml
--- old/wayland-protocols-1.48/staging/color-management/color-management-v1.xml
2026-04-01 13:46:29.000000000 +0200
+++ new/wayland-protocols-1.49/staging/color-management/color-management-v1.xml
2026-06-07 15:06:32.000000000 +0200
@@ -77,7 +77,7 @@
only be done by creating a new major version of the extension.
</description>
- <interface name="wp_color_manager_v1" version="2">
+ <interface name="wp_color_manager_v1" version="3">
<description summary="color manager singleton">
A singleton global interface used for getting color management extensions
for wl_surface and wl_output objects, and for creating client defined
@@ -164,6 +164,8 @@
</entry>
<entry name="windows_scrgb" value="7"
summary="create_windows_scrgb request"/>
+ <entry name="windows_bt2100" value="8"
+ summary="create_windows_bt2100 request"/>
</enum>
<enum name="primaries">
@@ -595,9 +597,41 @@
<arg name="reference"
type="object" interface="wp_image_description_reference_v1"/>
</request>
+
+ <request name="create_windows_bt2100" since="3">
+ <description summary="create Windows-BT.2100 image description object">
+ This creates a pre-defined image description for the so-called
+ Windows-BT.2100 stimulus encoding. This comes from the Windows 10
+ handling of its own definition of a BT.2100 color space for an HDR
+ screen driven in BT.2100/PQ signalling mode.
+
+ Windows-BT.2100 uses BT.2020 color primaries and white point.
+ The transfer characteristic is st2084_pq.
+
+ Windows-BT.2100 is generally displayed by Windows 10 without any
+ adjustments to the signal to account for viewing conditions.
+
+ The reference white level of Windows-BT.2100 is unknown. If a
+ reference white level must be assumed for compositor processing, it
+ should be 203 cd/m² of Report ITU-R BT.2408-7.
+
+ The target color volume of Windows-BT.2100 is unknown. The color gamut
+ may be anything up to BT.2100.
+
+ This request can be used when the compositor advertises
+ wp_color_manager_v1.feature.windows_bt2100.
+ Otherwise this request raises the protocol error unsupported_feature.
+
+ The resulting image description object does not allow get_information
+ request. The wp_image_description_v1.ready event shall be sent.
+ </description>
+
+ <arg name="image_description"
+ type="new_id" interface="wp_image_description_v1"/>
+ </request>
</interface>
- <interface name="wp_color_management_output_v1" version="2">
+ <interface name="wp_color_management_output_v1" version="3">
<description summary="output color properties">
A wp_color_management_output_v1 describes the color properties of an
output.
@@ -667,7 +701,7 @@
</request>
</interface>
- <interface name="wp_color_management_surface_v1" version="2">
+ <interface name="wp_color_management_surface_v1" version="3">
<description summary="color management extension to a surface">
A wp_color_management_surface_v1 allows the client to set the color
space and HDR properties of a surface.
@@ -755,7 +789,7 @@
</request>
</interface>
- <interface name="wp_color_management_surface_feedback_v1" version="2">
+ <interface name="wp_color_management_surface_feedback_v1" version="3">
<description summary="color management extension to a surface">
A wp_color_management_surface_feedback_v1 allows the client to get the
preferred image description of a surface.
@@ -873,7 +907,7 @@
</interface>
- <interface name="wp_image_description_creator_icc_v1" version="2">
+ <interface name="wp_image_description_creator_icc_v1" version="3">
<description summary="holder of image description ICC information">
This type of object is used for collecting all the information required
to create a wp_image_description_v1 object from an ICC file. A complete
@@ -989,7 +1023,7 @@
</request>
</interface>
- <interface name="wp_image_description_creator_params_v1" version="2">
+ <interface name="wp_image_description_creator_params_v1" version="3">
<description summary="holder of image description parameters">
This type of object is used for collecting all the parameters required
to create a wp_image_description_v1 object. A complete set of required
@@ -1363,7 +1397,7 @@
</request>
</interface>
- <interface name="wp_image_description_v1" version="2">
+ <interface name="wp_image_description_v1" version="3">
<description summary="Colorimetric image description">
An image description carries information about the pixel color encoding
and its intended display and viewing environment. The image description
is
@@ -1510,7 +1544,7 @@
</event>
</interface>
- <interface name="wp_image_description_info_v1" version="2">
+ <interface name="wp_image_description_info_v1" version="3">
<description summary="Colorimetric image description information">
Sends all matching events describing an image description object exactly
once and finally sends the 'done' event.
@@ -1702,7 +1736,7 @@
</event>
</interface>
- <interface name="wp_image_description_reference_v1" version="1">
+ <interface name="wp_image_description_reference_v1" version="1"
frozen="true">
<description summary="Reference to an image description">
This object is a reference to an image description. This interface is
frozen at version 1 to allow other protocols to create
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wayland-protocols-1.48/staging/ext-image-capture-source/ext-image-capture-source-v1.xml
new/wayland-protocols-1.49/staging/ext-image-capture-source/ext-image-capture-source-v1.xml
---
old/wayland-protocols-1.48/staging/ext-image-capture-source/ext-image-capture-source-v1.xml
2026-04-01 13:46:29.000000000 +0200
+++
new/wayland-protocols-1.49/staging/ext-image-capture-source/ext-image-capture-source-v1.xml
2026-06-07 15:06:32.000000000 +0200
@@ -39,7 +39,7 @@
only be done by creating a new major version of the extension.
</description>
- <interface name="ext_image_capture_source_v1" version="1">
+ <interface name="ext_image_capture_source_v1" version="1" frozen="true">
<description summary="opaque image capture source object">
The image capture source object is an opaque descriptor for a capturable
resource. This resource may be any sort of entity from which an image
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wayland-protocols-1.48/staging/xdg-session-management/xdg-session-management-v1.xml
new/wayland-protocols-1.49/staging/xdg-session-management/xdg-session-management-v1.xml
---
old/wayland-protocols-1.48/staging/xdg-session-management/xdg-session-management-v1.xml
2026-04-01 13:46:29.000000000 +0200
+++
new/wayland-protocols-1.49/staging/xdg-session-management/xdg-session-management-v1.xml
2026-06-07 15:06:32.000000000 +0200
@@ -96,12 +96,12 @@
</entry>
<entry name="recover" value="2">
<description summary="an app recovered">
- A app instance is recovering from for example a compositor or app
crash.
+ An app instance is recovering from for example a compositor or app
crash.
</description>
</entry>
<entry name="session_restore" value="3">
<description summary="an app restored">
- A app instance is restored, for example part of a restored session,
or
+ An app instance is restored, for example part of a restored session,
or
restored from having been temporarily terminated due to resource
constraints.
</description>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wayland-protocols-1.48/tests/meson.build
new/wayland-protocols-1.49/tests/meson.build
--- old/wayland-protocols-1.48/tests/meson.build 2026-04-01
13:46:29.000000000 +0200
+++ new/wayland-protocols-1.49/tests/meson.build 2026-06-07
15:06:32.000000000 +0200
@@ -22,9 +22,12 @@
add_languages('c', 'cpp', native: false)
replace = find_program('replace.py')
-extra_linker_flags = meson.get_compiler('c').get_supported_link_arguments([
- '-Wl,--unresolved-symbols=ignore-all',
-])
+# First pass: generate scanner outputs for each protocol and record the
+# generated custom_targets for use when building test executables.
+protocol_code = {}
+protocol_client_header = {}
+protocol_server_header = {}
+protocol_replace_command = {}
foreach protocol_file : protocol_files
xml_file = fs.name(protocol_file)
@@ -75,7 +78,10 @@
install: false,
)
- replace_command = [
+ protocol_code += {protocol_file: code}
+ protocol_client_header += {protocol_file: client_header}
+ protocol_server_header += {protocol_file: server_header}
+ protocol_replace_command += {protocol_file: [
replace,
'@INPUT@',
'@OUTPUT@',
@@ -83,7 +89,22 @@
client_header.full_path(),
'PROTOCOL_SERVER_INCLUDE_FILE',
server_header.full_path(),
- ]
+ ]}
+endforeach
+
+# Second pass: build test executables, linking in dependency code.
+foreach protocol_file : protocol_files
+ client_header = protocol_client_header[protocol_file]
+ server_header = protocol_server_header[protocol_file]
+ code = protocol_code[protocol_file]
+ replace_command = protocol_replace_command[protocol_file]
+
+ dep_code = []
+ if protocol_file in protocol_deps
+ foreach dep : protocol_deps[protocol_file]
+ dep_code += [protocol_code[dep]]
+ endforeach
+ endif
# Check that header can be included by a pedantic C99 compiler
test_name =
'test-build-pedantic-@0@'.format(protocol_file.underscorify())
@@ -100,9 +121,8 @@
test_source,
client_header,
server_header,
- code
- ],
- link_args: extra_linker_flags,
+ code,
+ ] + dep_code,
dependencies: libwayland,
c_args: [
'-std=c99',
@@ -129,9 +149,8 @@
test_source,
client_header,
server_header,
- ],
- link_args: extra_linker_flags,
- dependencies: libwayland,
+ ] + dep_code,
+ dependencies: libwayland,
cpp_args: [
'-Wall',
'-Werror',
++++++ wayland-protocols.keyring ++++++
Binary files /var/tmp/diff_new_pack.ZVPTwz/_old and
/var/tmp/diff_new_pack.ZVPTwz/_new differ