[Git][xorg-team/wayland/wayland][debian-unstable] 92 commits: connection: fix segfault in wl_closure_invoke()
Dylan Aïssi (@daissi) <[email protected]>
| Newsgroups | gmane.linux.debian.devel.x |
|---|---|
| Message-ID | <[email protected]> |
Dylan Aïssi pushed to branch debian-unstable at X Strike Force / wayland / wayland Commits: 827d0c30 by Caitlyn Stewart at 2025-05-27T14:45:32+01:00 connection: fix segfault in wl_closure_invoke() Signed-off-by: Caitlyn Stewart <[email protected]> - - - - - ecff0ee1 by Caitlyn at 2025-06-01T11:21:36+00:00 debug: Colorize output for easier reading Signed-off-by: Caitlyn <[email protected]> - - - - - 6281ccbd by Kirill Primak at 2025-06-01T14:56:34+03:00 client: fix conversion specifier in the discarded event log message Signed-off-by: Kirill Primak <[email protected]> - - - - - 1bee7aa4 by Tobias Stoeckmann at 2025-06-08T16:16:09+00:00 cursor: Fix undefined behavior with huge names If an index.theme contains a theme name which gets close to INT_MAX, then creation of full path can lead to a signed integer overflow, which is undefined behavior. Fix this by turning one of the values to size_t. Easy solution for a probably never occurring issue. Signed-off-by: Tobias Stoeckmann <[email protected]> - - - - - ce0ac4f2 by Tobias Stoeckmann at 2025-06-08T16:16:09+00:00 cursor: Gracefully handle out of memory condition If the full path could not be constructed, avoid calling opendir(NULL) which, depending on library, might trigger undefined behavior. Signed-off-by: Tobias Stoeckmann <[email protected]> - - - - - 5c2f31d8 by Tobias Stoeckmann at 2025-06-08T16:16:09+00:00 cursor: Gracefully handle huge cursor files If cursor files require more than INT_MAX bytes, it is possible to trigger out of boundary writes. Since these sizes are most likely not desired anyway, gracefully handle these situations like out of memory errors. Signed-off-by: Tobias Stoeckmann <[email protected]> - - - - - 2978fd70 by Tobias Stoeckmann at 2025-06-08T16:16:09+00:00 cursor: Ignore invalid cursor files The header offset must not be smaller than file header length. Ignore such invalid files. Signed-off-by: Tobias Stoeckmann <[email protected]> - - - - - 0de833da by Tobias Stoeckmann at 2025-06-08T16:16:09+00:00 cursor: Properly check realloc for errors Do not override realloc's input pointer before checking for errors, otherwise it's not possible to keep old value, as intended. Signed-off-by: Tobias Stoeckmann <[email protected]> - - - - - 387adc6a by Manuel Stoeckl at 2025-06-08T16:20:35+00:00 server: Document wl_display_add_socket_auto The exact sequence of names tried has de facto become part of the API. Signed-off-by: Manuel Stoeckl <[email protected]> - - - - - 4a0c4e21 by Manuel Stoeckl at 2025-06-08T16:20:35+00:00 doc: Further explain typical display socket lookup This change mentions the case where WAYLAND_SOCKET is used, which helps people avoid just testing 'getenv(WAYLAND_DISPLAY)' to see if a Wayland compositor is available; Signed-off-by: Manuel Stoeckl <[email protected]> - - - - - ca83185e by Matt Turner at 2025-06-08T17:30:55+00:00 tests: Make `tests` dict elements dicts themselves Previously each value was a list of extra sources. The next commit will add an additional field to each test, so they need to be dicts themselves. Signed-off-by: Matt Turner <[email protected]> - - - - - 6c1da920 by Matt Turner at 2025-06-08T17:30:55+00:00 tests: Add support for specifying runtime dependencies Signed-off-by: Matt Turner <[email protected]> - - - - - fdac631d by Matt Turner at 2025-06-08T17:30:55+00:00 tests: Depend on exec-fd-leak-checker Closes: https://gitlab.freedesktop.org/wayland/wayland/-/issues/514 Signed-off-by: Matt Turner <[email protected]> - - - - - 53fbc2b0 by Matt Turner at 2025-06-08T17:30:55+00:00 egl: Make `wayland-egl symbols check` depend on `wayland_egl` Closes: https://gitlab.freedesktop.org/wayland/wayland/-/issues/515 Signed-off-by: Matt Turner <[email protected]> - - - - - ba9f9a44 by Pekka Paalanen at 2025-06-12T14:37:32+03:00 doc: add a section on color management I think the docbook deserves an introduction to how color management is designed in Wayland, aimed at people who are familiar with pixels but new to the topic. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - adf84614 by Demi Marie Obenour at 2025-06-21T11:29:04+00:00 connection: Do not busy-loop if a message exceeds the buffer size If the length of a message exceeds the maximum length of the buffer, the buffer size will reach its maximum value and stay there forever, with no message ever being successfully processed. Since libwayland uses level-triggered epoll, this will cause the compositor to loop forever and consume CPU time. In libwayland 1.22 and below, there was an explicit check that caused messages exceeding 4096 bytes to result in an EOVERFLOW error, preventing the loop. However, this check was removed between d074d5290263 ("connection: Dynamically resize connection buffers"). To prevent this problem, always limit the size of messages to 4096 bytes. Since the default and minimum buffer size is 4096 bytes, this ensures that a single message will always fit in the buffer. It would be possible to allow larger messages if the buffer size was larger, but the maximum size of a message should not depend on the buffer size chosen by the compositor. Rejecting messages that exceed 4092 bytes seems to have the advantage of reserving 4 bits, not 3, in the size field for future use. However, message sizes in the range [0x0, 0x7] are invalid, so one can obtain a fourth bit by negating the meaning of bit 12 if bits 0 through 11 (inclusive) are 0. Allowing 4096-byte messages provides the far more important advantage that regressions compared to 1.22 are impossible and regressions compared to 1.23 are extremely unlikely. The only case where a regression is possible is: - The receiving side is using libwayland 1.23. - The sending side is either using libwayland 1.23 or is not using libwayland. - The sender sends a message exceeding 4096 bytes. - If the sender of the large message is the client, the server has increased the buffer size from the default value. This combination is considered extremely unlikely, as libwayland 1.22 and below would disconnect upon receiving such a large message. 4096-byte messages, however, have always worked, so there was no reason to avoid sending them. Fixes: d074d5290263 ("connection: Dynamically resize connection buffers"). Fixes: #494 Signed-off-by: Demi Marie Obenour <[email protected]> - - - - - eecf3f76 by Simon Ser at 2025-06-21T13:38:28+02:00 build: re-open main branch for regular development Signed-off-by: Simon Ser <[email protected]> - - - - - 90187031 by ykla at 2025-06-25T07:18:28+08:00 ci: upgrade FreeBSD to 14.2 Signed-off-by: ykla <[email protected]> - - - - - cd0d1543 by ykla at 2025-07-20T02:09:35+00:00 ci: upgrade FreeBSD to 14.3 Signed-off-by: ykla [email protected] - - - - - 264da6a9 by YaoBing Xiao at 2025-08-03T11:36:34+00:00 cursor: Free theme when size check fails to avoid memory leak Signed-off-by: YaoBing Xiao <[email protected]> - - - - - 77730f10 by Kyle Brenneman at 2025-09-15T14:45:53+01:00 connection: Add a function to parse WAYLAND_DEBUG tokens Add a new function, wl_check_env_token, to scan for a token in a comma-separated string. Change wl_display_create in wayland-server.c and wl_display_connect_to_fd in wayland-client.c to use that instead of a simple substring search. This means that WAYLAND_DEBUG will accept a value like "client,server" but not "clientserver". But, this will make it easier to add other tokens without worrying about overlap between them. Signed-off-by: Kyle Brenneman <[email protected]> - - - - - 4673ef7e by Kyle Brenneman at 2025-09-15T14:45:53+01:00 connection: Add a thread ID to WAYLAND_DEBUG output. If WAYLAND_DEBUG contains the token "thread_id", and gettid() is available, then include the current thread ID in the output from wl_closure_print. If multiple threads are sending requests, then those requests can get interleaved. That's usually fine, but for wl_surface requests and commits, that can cause problems ranging from incorrect behavior to protocol errors. Being able to see which requests are sent by different threads would make such problems much easier to diagnose. Signed-off-by: Kyle Brenneman <[email protected]> - - - - - d81525a2 by Isaac Freund at 2025-09-16T11:48:33+03:00 client: add wl_display_dispatch_pending_single As well as wl_display_dispatch_queue_pending_single. The motivation is writing libwayland bindings for a dynamic language with exceptions/non-local returns. Since it is invalid for a wl_dispatcher_func_t callback provided to libwayland to not return, there is no way to prevent dispatching of further events in the case of an exception in the dynamic language event handler. Furthermore, since creating/destroying Wayland objects in an event handler affects the dispatching of subsequent events by libwayland, it is not possible to collect Wayland events in a queue outside libwayland and dispatch them one-by-one after wl_display_dispatch_pending() returns. Adding libwayland API to dispatch at most one pending event solves this problem cleanly. The bindings can have libwayland dispatch a single event, wait for wl_display_dispatch_pending_single() to return, run the dynamic language event handler (which may longjmp away), and continue the loop for as long as there are more events to dispatch. References: https://codeberg.org/ifreund/janet-wayland Signed-off-by: Isaac Freund <[email protected]> - - - - - dfab16e2 by Julian Orth at 2025-11-26T10:47:34+01:00 protocol: add new formats Generated from libdrm 2.4.129. Signed-off-by: Julian Orth <[email protected]> - - - - - c8a09967 by Sebastian Wick at 2025-11-27T17:39:11+02:00 build: Bump to meson version 0.64.0 This version will be required in the next commit. Bumps the CI image to get the required version from the debian package instead of from pip. Removes the bindir builtin directory from pkgconfig.generate() which is deprecated since 0.62.0. It will be automatically included when referenced. Use `meson setup` everywhere instead of relying on deprecated automatic detection of the setup command. Signed-off-by: Sebastian Wick <[email protected]> - - - - - bbb5fa66 by Sebastian Wick at 2025-11-27T17:39:11+02:00 doc: Refactor the build system for complete build dir docs By structuring things differently, it becomes possible to have a complete build of the docs in the build dir, without having to install anything. Signed-off-by: Sebastian Wick <[email protected]> - - - - - 99638501 by Joshua Watt at 2025-12-12T11:48:19+00:00 tests/event-loop-test: Remove event loop timer test The event loop timer test has very precise sequencing and timing constraints, which make it difficult to pass reliably on loaded systems. Since this test isn't providing much value, remove it to prevent the erroneous errors. Signed-off-by: Joshua Watt <[email protected]> - - - - - 5b59b34a by Pekka Paalanen at 2025-12-29T11:15:10+02:00 editorconfig: indent .xsl with 2 spaces The XSL files are mostly indented with 2 spaces. Using the default editorconfig rules in VSCode constantly tries to mix in tabs. Add the 2-space rule for .xsl files to fix this. The .xsl files, like .xml files, use a tab character in place of 8 spaces. This complicates things, and the new rule will prefer just spaces. To keep the existing sometimes-tab-indented code looking right, the tab width must be explicitly set to 8. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - 0519f2fb by Pekka Paalanen at 2025-12-29T11:15:10+02:00 doc: remove HTML_TIMESTAMP to fix the Doxygen message: warning: Tag 'HTML_TIMESTAMP' at line 8 of file '-' has become obsolete. To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u" Observed with Doxygen 1.9.8. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - 573c95cb by Pekka Paalanen at 2025-12-29T11:15:11+02:00 doc/xsl: fix malformed <variablelist> For all requests and events that do not have any arguments, enabling XML validation would lead to many errors like this: /home/pq/git/wayland/build/doc/publican/Wayland.xml:5287: element variablelist: validity error : Element variablelist content does not follow the DTD, expecting (blockinfo? , (title , titleabbrev?)? , (caution | important | note | tip | warning | literallayout | programlisting | programlistingco | screen | screenco | screenshot | synopsis | cmdsynopsis | funcsynopsis | classsynopsis | fieldsynopsis | constructorsynopsis | destructorsynopsis | methodsynopsis | formalpara | para | simpara | address | blockquote | graphic | graphicco | mediaobject | mediaobjectco | informalequation | informalexample | informalfigure | informaltable | anchor | bridgehead | remark | highlights | abstract | authorblurb | epigraph | indexterm | beginpage)* , varlistentry+), got The reason is that a <variablelist> without any <varlistentry> inside it is illegal. If there are no <arg> at all, do not emit the list paragraph. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - e1e8ccd4 by Pekka Paalanen at 2025-12-29T11:19:01+02:00 doc: reinstate image maps This fixes the errors during the compilation of Architecture.xml that the .map files cannot be found. As a result, the architure diagrams become clickable in the HTML document once again. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - d1b8f352 by Pekka Paalanen at 2025-12-29T11:19:01+02:00 server: fix wl_signal_add Doxygen warning $ meson compile -C build -v xml-Server-doc INFO: autodetecting backend as ninja INFO: calculating backend command to run: /usr/bin/ninja -C /home/pq/git/wayland/build -v doc/doxygen/xml/Server/combine.xslt doc/doxygen/xml/Server/index.xml ninja: Entering directory `/home/pq/git/wayland/build' [1/1] /home/pq/git/wayland/doc/doxygen/gen-doxygen.py --builddir=doc/doxygen/xml/Server --section=Server --output-format=xml doc/doxygen/wayland.doxygen ../doc/doxygen/../../src/wayland-util.h ../doc/doxygen/../../src/event-loop.c ../doc/doxygen/../../src/wayland-server.c ../doc/doxygen/../../src/wayland-server.h ../doc/doxygen/../../src/wayland-server-core.h ../doc/doxygen/../../src/wayland-shm.c /home/pq/git/wayland/src/wayland-server-core.h:394: warning: explicit link request to 'wl_signal_add' could not be resolved I don't know why, but the "explicit link" mark-up fails, while the automatic link mark-up works. This warning disappears. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - 256f8532 by Pekka Paalanen at 2025-12-29T11:19:01+02:00 doc: fix Xwayland image validity xmllint complained: element imageobjectco: validity error : Element imageobjectco content does not follow the DTD, expecting (areaspec , imageobject , calloutlist*), got (imageobject ) This image has no callouts (clickable items explained in the text), so it must not use the tags that assume callouts. I probably cargo-culted this from the X11 and Wayland diagrams which have callouts when writing Xwayland.xml. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - da2e9b5c by Pekka Paalanen at 2025-12-29T16:26:41+02:00 doc/xsl: include static inline functions When generating documentation, xmllint complained: element link: validity error : IDREF attribute linkend references an unknown ID "Server-structwl__signal_1afe73f44f7f1b517c9c0ba90829c93309" element link: validity error : IDREF attribute linkend references an unknown ID "Server-structwl__signal_1afe73f44f7f1b517c9c0ba90829c93309" element link: validity error : IDREF attribute linkend references an unknown ID "Server-structwl__signal_1aa8bcd3b8e250cfe35ed064d5af589096" These were referring to wl_signal_add() and wl_signal_emit() I think, which are static inlines in a public header. The XSLT ignored static functions, probably assuming that they cannot be public API. Internal (static) functions are present in the Doxygen XML, so they do need to be excluded. Now we include static functions if their body is in a header. We de not scan private headers, so they must be public API. Comparing the final generated HTML documentation, these functions are added to both Client and Server APIs: wl_fixed_to_double wl_fixed_from_double wl_fixed_to_int wl_fixed_from_int These functions are added to the Server API: wl_signal_init wl_signal_add wl_signal_get wl_signal_emit Signed-off-by: Pekka Paalanen <[email protected]> - - - - - 7736d879 by Pekka Paalanen at 2025-12-29T16:27:14+02:00 build/doc: explain two XML conversions Now that I figured out what these do, I might as well add comments about it for others. The target names are changed to be more descriptive of what the target does. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - 12ec67ae by Pekka Paalanen at 2025-12-29T16:27:14+02:00 server: document listener fields and a vfunc Adding these simple documentation comments allows us to have meaningful link targets in the generated API documentation. That will help getting rid of broken links which cause XML validation to fail. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - 4216a08b by Pekka Paalanen at 2025-12-29T16:27:42+02:00 doc/xsl: rearrange member doc generation Creating an empty <variablelist> is illegal. This can already be seen in the XSL anywhere it is generated. The used XSL programming pattern requires the look-up conditions to be repeated between the <xsl:if> and <xsl:apply-templates> tags. Usually this is not a problem, but the conditions for memberdef is too much to copy around. The conditions between the if and the apply-templates have already diverged, causing validation errors (that are currently suppressed). Rearrange the XSL so that the applicable memberdef are stored in a variable, so that both the if and the apply-templates operate on the exact same set of matches. This avoids emitting empty <variablelist>. As a result, the members of structures wl_argument, wl_interface, wl_message, and wl_listener newly appear in the documentation. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - f9e6b471 by Pekka Paalanen at 2025-12-29T16:27:44+02:00 doc: validate doc XML again Now that all XML validation errors have been fixed, it is time to turn the validation back on to make sure the errors stay out. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - f72e3fae by Sebastian Wick at 2026-01-03T15:16:50+01:00 server: document protocol logger callback function This fixes a validation error in the documentation which are not fatal. The idea is the same as in 12ec67a ("server: document listener fields and a vfunc"), which seems to have missed the reference to the wl_protocol_logger_func_t from the note in wl_log_func_t. Signed-off-by: Sebastian Wick <[email protected]> - - - - - 8c094789 by Simon Ser at 2026-01-08T11:09:24+00:00 tests: cast pid_t and struct timeval fields before printing The exact type behind these might depend on the architecture. For instance, on ARMv7, struct timeval fields are long long int instead of long int: FAILED: tests/libtest-runner.a.p/test-compositor.c.o cc -Itests/libtest-runner.a.p -Itests -I../tests -I. -I.. -Isrc -I../src -fdiagnostics-color=always -fsanitize=address,undefined -fno-omit-frame-pointer -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c99 -O0 -g -D_POSIX_C_SOURCE=200809L -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden -fPIC -pthread -MD -MQ tests/libtest-runner.a.p/test-compositor.c.o -MF tests/libtest-runner.a.p/test-compositor.c.o.d -o tests/libtest-runner.a.p/test-compositor.c.o -c ../tests/test-compositor.c ../tests/test-compositor.c: In function 'get_socket_name': ../tests/test-compositor.c:95:60: error: format '%ld' expects argument of type 'long int', but argument 5 has type '__time64_t' {aka 'long long int'} [-Werror=format=] 95 | snprintf(retval, sizeof retval, "wayland-test-%d-%ld%ld", | ~~^ | | | long int | %lld 96 | getpid(), tv.tv_sec, tv.tv_usec); | ~~~~~~~~~ | | | __time64_t {aka long long int} ../tests/test-compositor.c:95:63: error: format '%ld' expects argument of type 'long int', but argument 6 has type '__suseconds64_t' {aka 'long long int'} [-Werror=format=] 95 | snprintf(retval, sizeof retval, "wayland-test-%d-%ld%ld", | ~~^ | | | long int | %lld 96 | getpid(), tv.tv_sec, tv.tv_usec); | ~~~~~~~~~~ | | | __suseconds64_t {aka long long int} Signed-off-by: Simon Ser <[email protected]> - - - - - 92229a00 by Simon Ser at 2026-01-08T11:09:24+00:00 ci: bump Debian to Trixie Signed-off-by: Simon Ser <[email protected]> - - - - - 5a45a89a by Simon Ser at 2026-01-13T20:22:48+00:00 ci: install to prefix after building in Debian Artifacts include the prefix directory, but it was empty: we weren't running the install step. Run it to align Debian with FreeBSD. This allows reviewers to check the HTML documentation output. Signed-off-by: Simon Ser <[email protected]> - - - - - 0e0c0d50 by Pekka Paalanen at 2026-01-20T16:31:38+02:00 doc: remove Preface.xml This was never filled out, so might as well just delete it. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - ad1692d1 by Pekka Paalanen at 2026-01-20T16:31:42+02:00 doc: remove Revision_History.xml This was never used. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - 924d7909 by Pekka Paalanen at 2026-01-21T10:32:57+02:00 doc: remove unused CSS files I could not find them referenced anywhere. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - fc331626 by Pekka Paalanen at 2026-01-21T10:32:57+02:00 doc: drop non-existing refs from CSS It seems these images were never in the repository. They might have existed when the documentation was still built with Publican, but since the migration to xmlto I think these have all been just 404. Removing div.warning:before, div.note:before and div.important:before would actually delete some unexpected empty space if the Docbook <warning>, <note> or <important> elements were used. They are not used now, but may be in the future. .draft is never used, so I replaced the image with whatever. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - dd8afabd by Sebastian Wick at 2026-01-22T10:49:37+02:00 protocol: Define Content Update behavior The protocol currently is in a state where we define that commits create content updates and they are queued up until they are applied, and the old view that commit applies the state or caches it in the parent state. This commit moves the protocol completely to the new model which retains the old behavior when no constraints are being used but allows for constraints to be used to hold back a group of synchronized content updates. To convince yourself that this indeed retains the original behavior I suggest to play around with a few examples and look at the resulting graphs, as is done here: https://gitlab.freedesktop.org/wayland/wayland/-/issues/457#note_2403135 Signed-off-by: Sebastian Wick <[email protected]> - - - - - 1807450a by Sebastian Wick at 2026-01-22T10:49:37+02:00 doc: Add a chapter on content updates The behavior of content updates, specifically in combination with sync subsrufaces and constrains can become quite complicated. This introduces a chapter in the wayland book which explains the behavior of the core specification in this regard, and shows examples. Signed-off-by: Sebastian Wick <[email protected]> - - - - - 11be42e8 by Pekka Paalanen at 2026-01-22T11:08:28+02:00 editorconfig: follow wayland-protocols XML style It's unlikely that protocols/wayland.xml sees much change anymore, but files in doc/ might. To make writing documentation easier, stick to an unsurprising indentation style that is already in use in wayland-protocols and for the XSL files. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - f7f08140 by Pekka Paalanen at 2026-01-22T11:08:28+02:00 doc: fix a root element validation error Once I got XML validation working in VSCode, it found an error: Document root element "preface", must match DOCTYPE root "chapter". I guess DOCTYPE declares which element is used as root in the file. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - 95c6014a by Pekka Paalanen at 2026-01-22T11:08:28+02:00 doc: document the Wayland XML dialect Document the XML tags used to describe Wayland protocols. Previously we only had the informal specification in the Protocol chapter, and the DTD. Better late than never. I have looked into wayland-scanner and libwayland for various limitations documented here possibly for the first time. I have also forbid things that are not in use or are known broken, including unspecified interface for a new_id in an event, or an object argument with an unspecified interface. I did investigate writing a RELAX NG compact schema for Wayland and documenting everything there, then generating DocBook XML from it. However, it seems generating documentation from schema is actually really complicated. I found these tools: - xs3p stylesheet: website looks dead, though Sourceforge still has it. Produces XHTML, not DocBook. Has an unfamiliar license. - xsddoc: the authors wrote that XSLT is not really sufficient, so they abandoned this approach and went for Java to create xnsdoc. - xnsdoc: seems to be proprietary licensed, although one could ask for a free license for a FLOSS project. All in all, it seems to be much easier to just write the documentation in DocBook, copying the strcture from the DTD manually, than to generate it. It's not doing to change often, anyway. It also allowed me to leverage DocBook syntax in full. Signed-off-by: Pekka Paalanen <[email protected]> Signed-off-by: Pekka Paalanen <[email protected]> - - - - - 8b102c3b by Pekka Paalanen at 2026-01-22T11:08:28+02:00 doc/css: adjust code and userinput styles I don't know why <code> was defined to be bold, it looks bad to me. The same with <synopsis> which would inherit bold from <dt> when used inside a variablelist term. So, to make the code snippets look better, force them to use normal weight. <userinput> should differentiate from normal code somehow, and italic seems fine for it. <literal> already has bold, and I think it's fine, so no need to touch it. These changes are mainly for the new XML dialect documentation chapter. I didn't notice anything changing for the older or generated parts of the docs. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - bb7b2846 by Julian Orth at 2026-01-29T14:17:16+01:00 doc: update GPU buffer exchange section Finally, a buffer exchange mechanism for the 21st century. Signed-off-by: Julian Orth <[email protected]> - - - - - 77b9eb76 by Julian Orth at 2026-02-02T14:54:52+02:00 protocol: reindent wayland.xml The file used a mixture of tabs and spaces. According to .editorconfig, all xml files should be indented with spaces, so this seems like the correct choice if we wanted to reindent the file. I used vim's :retab command to expand all tabs to 8 spaces. Signed-off-by: Julian Orth <[email protected]> - - - - - a7ee144a by Julian Orth at 2026-02-02T14:54:52+02:00 add .git-blame-ignore-revs file This can be used with git config blame.ignoreRevsFile .git-blame-ignore-revs Signed-off-by: Julian Orth <[email protected]> - - - - - dbf45d11 by Julian Orth at 2026-02-02T14:00:28+01:00 fix .git-blame-ignore-revs revision The commit hash was changed during merge. Signed-off-by: Julian Orth <[email protected]> - - - - - e12bbe49 by Pekka Paalanen at 2026-02-04T15:12:04+00:00 doc: make DocBook validation optional It turns out that changes in the building environment, the version of Doxygen being a prime suspect, can break the validation. Invalid DocBook XML does lead to likely broken documentation, but perhaps it is better than failing to build or having to disable documentation completely. CI turns DocBook validation on, because the CI environment is stable and known, and we do want to catch mistakes in hand-written DocBook files. Signed-off-by: Pekka Paalanen <[email protected]> - - - - - 5818c936 by Julian Orth at 2026-02-05T13:02:45+01:00 doc: add docbook -> mdbook conversion tool Signed-off-by: Julian Orth <[email protected]> - - - - - cff12248 by Julian Orth at 2026-02-05T13:02:45+01:00 doc: run docbook -> mdbook conversion tool To reproduce this commit, delete the contents of the src directory and run the tool. Signed-off-by: Julian Orth <[email protected]> - - - - - 131b8d0d by Julian Orth at 2026-02-05T13:02:45+01:00 doc: remove docbook -> mdbook conversion tool Signed-off-by: Julian Orth <[email protected]> - - - - - df7f2fb9 by Julian Orth at 2026-02-05T13:02:45+01:00 doc: add copyright notice to mdbook Signed-off-by: Julian Orth <[email protected]> - - - - - 4bddeba2 by Julian Orth at 2026-02-12T15:08:06+01:00 doc: copy images to mdbook Signed-off-by: Julian Orth <[email protected]> - - - - - cb4e8ada by Julian Orth at 2026-02-12T15:17:31+01:00 doc: rewrite the book foreword Signed-off-by: Julian Orth <[email protected]> - - - - - 4f6ea74a by Julian Orth at 2026-02-12T15:17:33+01:00 doc: add meson.build for book Signed-off-by: Julian Orth <[email protected]> - - - - - 1915dd17 by Julian Orth at 2026-02-12T15:17:33+01:00 doc: link to website in doxygen Signed-off-by: Julian Orth <[email protected]> - - - - - ddd4f652 by Julian Orth at 2026-02-12T15:17:33+01:00 doc: remove most content from docbook Signed-off-by: Julian Orth <[email protected]> - - - - - bc7a55a1 by Julian Orth at 2026-02-12T15:17:33+01:00 doc: reword docbook foreword to capture new scope Signed-off-by: Julian Orth <[email protected]> - - - - - 4897da68 by Julian Orth at 2026-02-12T15:17:33+01:00 doc: turn captions into third-level headers in book Signed-off-by: Julian Orth <[email protected]> - - - - - 5231c0ee by Julian Orth at 2026-02-12T15:45:57+01:00 doc: restore missing image files in docbook Signed-off-by: Julian Orth <[email protected]> - - - - - 72805582 by Isaac Freund at 2026-02-24T13:16:52+01:00 doc: fix cname-(suffix-)requirements These used to be macro-like xml things that expanded to the text this commit replaces them with. Signed-off-by: Isaac Freund <[email protected]> - - - - - 7e47803e by Simon Ser at 2026-02-28T09:27:32+00:00 protocol: introduce wl_surface.get_release This new request allows clients to get per-surface-commit buffer release events. It supersedes wl_buffer.release. This functionality is also available via the linux-explicit-synchronization protocol, but requires the compositor to also support Linux synchronization fences. Adding this new request to the core protocol allows any compositor to implement the functionality. Signed-off-by: Simon Ser <[email protected]> Closes: https://gitlab.freedesktop.org/wayland/wayland/-/issues/203 References: https://gitlab.freedesktop.org/wayland/wayland/-/issues/46 - - - - - ef336e8b by Julian Orth at 2026-02-28T10:44:25+00:00 protocol: fix wl_region version wl_region is not a frozen interface and therefore should have the version of the parent object, wl_compositor. Signed-off-by: Julian Orth <[email protected]> - - - - - bb2fda51 by Julian Orth at 2026-02-28T10:44:25+00:00 protocol: add wl_compositor destructor Signed-off-by: Julian Orth <[email protected]> - - - - - cba27542 by Julian Orth at 2026-02-28T10:44:25+00:00 protocol: add wl_data_device_manager destructors Signed-off-by: Julian Orth <[email protected]> - - - - - cd4e6a14 by Loïc Yhuel at 2026-03-01T01:03:37+00:00 client: fix crash when creating proxies with no queue Before, it worked if the client did set a queue on the proxy before any event was received. Now we have the "warning: queue xxx destroyed while proxies still attached", then a crash if one of the proxies is used to create a proxy. Fixes: 674145dc3f ("client: Track the proxies attached to a queue") Fixes: 0ba650202e ("client: Warn when a queue is destroyed with attached proxies") Signed-off-by: Loïc Yhuel <[email protected]> - - - - - dad4404d by Alexandros Frantzis at 2026-03-01T01:03:37+00:00 tests: Add test for using a proxy with a destroyed queue as a factory Signed-off-by: Alexandros Frantzis <[email protected]> - - - - - 290ce2a9 by Manuel Stoeckl at 2026-02-28T20:17:00-05:00 protocol: elaborate on drm_fourcc.h and wl_shm.format codes Wayland clients should not assume the format list will not grow, or assume the format descriptions in the Wayland protocol are complete. (The latter fact is clear for descriptionless enum entries like XRGB8888_A8; but, for example, the full XRGB16161616F format description explicitly requires IEEE 754 binary16 floats instead of bfloat16 or ARM's alternative half precision variant.) Signed-off-by: Manuel Stoeckl <[email protected]> - - - - - fe3a02c1 by Simon Ser at 2026-03-03T11:31:53+02:00 util: assert alloc is consistent with data in wl_array_add() struct wl_array may be constructed by users manually from a foreign data pointer: uint32_t states[] = {1, 2, 3}; struct wl_array arr = { .data = states, .size = sizeof(states) / sizeof(states[0]), }; This is useful to avoid the need to allocate when sending Wayland messages. Users need to be careful not to use wl_array_add() on such arrays: the function will misbehave by leaving garbage at the start of the new buffer when reallocating. Add an assert to guard against wl_array_add() calls in this situation, to have a clear crash instead of undefined behavior. Signed-off-by: Simon Ser <[email protected]> - - - - - df10ef18 by Diego Viola at 2026-03-03T08:17:13-03:00 Fix typos Signed-off-by: Diego Viola <[email protected]> - - - - - fe4d7620 by Rudi Heitbaum at 2026-03-03T21:36:37+00:00 cursor: fix discards 'const' qualifier Fixes: ../cursor/xcursor.c: In function 'xcursor_next_path': ../cursor/xcursor.c:610:23: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 610 | char *colon = strchr(path, ':'); | ^~~~~~ Signed-off-by: Rudi Heitbaum <[email protected]> - - - - - 4d13366f by Kirill Primak at 2026-03-05T11:18:53+00:00 server: improve version mismatch error message "1 < 2" is obviously true but not very useful information by itself. Provide a bit more context. Signed-off-by: Kirill Primak <[email protected]> - - - - - a58bcd74 by Isaac Freund at 2026-03-05T12:00:35+00:00 doc: add frozen=true interface attribute This is useful for scanners that use knowledge of the object creation hierarchy such as zig-wayland [1]. Currently zig-wayland uses a hardcoded list of frozen interfaces. [1]: https://codeberg.org/ifreund/zig-wayland Signed-off-by: Isaac Freund <[email protected]> - - - - - c0a6e736 by Isaac Freund at 2026-03-05T12:00:35+00:00 scanner: enforce frozen attribute Signed-off-by: Isaac Freund <[email protected]> - - - - - 69aabecd by Kirill Primak at 2026-03-05T17:34:24+00:00 server: don't disclose the existence of invisible globals Otherwise, a client iterate over a range of names binding with deliberately incorrect interfaces and receive error messages with expected interfaces regardless of global visibility. Signed-off-by: Kirill Primak <[email protected]> - - - - - 13d906a6 by Kirill Primak at 2026-03-05T17:34:24+00:00 server: improve wl_registry.bind error messages - Consistently use PRIu32 for global names (uint32_t) - Use expected/got instead of have/wanted (which were used differently anyway) Signed-off-by: Kirill Primak <[email protected]> - - - - - e6aeed98 by Simon Ser at 2026-03-05T19:10:51+01:00 build: bump version to 1.24.91 for the RC1 release Signed-off-by: Simon Ser <[email protected]> - - - - - 3e673a43 by Simon Ser at 2026-03-19T17:03:08+01:00 build: bump version to 1.25.0 Signed-off-by: Simon Ser <[email protected]> - - - - - e1e9da66 by Dylan Aïssi at 2026-04-02T17:02:58+02:00 Merge tag '1.25.0' into upstream-unstable 1.25.0 - - - - - 1d9920bc by Dylan Aïssi at 2026-04-02T17:03:32+02:00 Merge branch 'upstream-unstable' into debian-unstable - - - - - c82c29b7 by Dylan Aïssi at 2026-04-02T17:04:42+02:00 Bump debian/changelog Signed-off-by: Dylan Aïssi <[email protected]> - - - - - b75b34c2 by Dylan Aïssi at 2026-04-02T17:21:14+02:00 Build-Deps: switch from docbook to mdbook - - - - - 82a8156d by Dylan Aïssi at 2026-04-02T17:24:37+02:00 libwayland-doc: update path to the new documentation - - - - - 116 changed files: - .editorconfig - + .git-blame-ignore-revs - .gitlab-ci.yml - cursor/wayland-cursor.c - cursor/xcursor.c - debian/changelog - debian/control - debian/libwayland-doc.install - + doc/book/.gitignore - + doc/book/book.toml - + doc/book/images/content-updates/content-updates.drawio - + doc/book/images/content-updates/simple-desynchronized.drawio - + doc/book/images/content-updates/simple-synchronized.drawio - + doc/book/images/content-updates/sync-subsurf-case1.drawio - + doc/book/images/content-updates/sync-subsurf-case2.drawio - + doc/book/images/content-updates/sync-to-desync-subsurf.drawio - + doc/book/images/content-updates/sync-to-desync-transition.drawio - doc/doxygen/dot/wayland-architecture.gv → doc/book/images/wayland-architecture.gv - doc/doxygen/dot/x-architecture.gv → doc/book/images/x-architecture.gv - + doc/book/meson.build - + doc/book/src/Architecture.md - + doc/book/src/Color.md - + doc/book/src/Compositors.md - + doc/book/src/Content_Updates.md - + doc/book/src/Foreword.md - + doc/book/src/Introduction.md - + doc/book/src/Message_XML.md - + doc/book/src/Protocol.md - + doc/book/src/SUMMARY.md - + doc/book/src/Xwayland.md - + doc/book/src/images/content-updates/content-update-legend.png - + doc/book/src/images/content-updates/simple-desynchronized-state-1.png - + doc/book/src/images/content-updates/simple-desynchronized-state-2.png - + doc/book/src/images/content-updates/simple-desynchronized-state-3.png - + doc/book/src/images/content-updates/simple-desynchronized-state-4.png - + doc/book/src/images/content-updates/simple-desynchronized-state-5.png - + doc/book/src/images/content-updates/simple-desynchronized-state-6.png - + doc/book/src/images/content-updates/simple-synchronized-state-1.png - + doc/book/src/images/content-updates/simple-synchronized-state-2.png - + doc/book/src/images/content-updates/simple-synchronized-state-3.png - + doc/book/src/images/content-updates/simple-synchronized-state-4.png - + doc/book/src/images/content-updates/simple-synchronized-state-5.png - + doc/book/src/images/content-updates/sync-subsurf-case1-1.png - + doc/book/src/images/content-updates/sync-subsurf-case1-2.png - + doc/book/src/images/content-updates/sync-subsurf-case1-3.png - + doc/book/src/images/content-updates/sync-subsurf-case1-4.png - + doc/book/src/images/content-updates/sync-subsurf-case1-5.png - + doc/book/src/images/content-updates/sync-subsurf-case2-1.png - + doc/book/src/images/content-updates/sync-subsurf-case2-2.png - + doc/book/src/images/content-updates/sync-subsurf-case2-3.png - + doc/book/src/images/content-updates/sync-to-desync-subsurf-1.png - + doc/book/src/images/content-updates/sync-to-desync-subsurf-2.png - + doc/book/src/images/content-updates/sync-to-desync-subsurf-3.png - + doc/book/src/images/content-updates/sync-to-desync-transition-1.png - + doc/book/src/images/content-updates/sync-to-desync-transition-2.png - + doc/book/src/images/content-updates/sync-to-desync-transition-3.png - doc/publican/sources/images/icon.svg → doc/book/src/images/icon.svg - + doc/book/src/images/wayland-architecture.png - doc/publican/sources/images/wayland.png → doc/book/src/images/wayland.png - + doc/book/src/images/x-architecture.png - doc/publican/sources/images/xwayland-architecture.png → doc/book/src/images/xwayland-architecture.png - doc/doxygen/mainpage.dox - doc/doxygen/meson.build - doc/doxygen/wayland.doxygen.in - doc/doxygen/xml/Client/meson.build - doc/doxygen/xml/Server/meson.build - doc/doxygen/xml/meson.build - doc/meson.build - doc/publican/sources/Author_Group.xml → doc/publican/Author_Group.xml - doc/publican/sources/Book_Info.xml → doc/publican/Book_Info.xml - doc/publican/sources/Client.xml → doc/publican/Client.xml - doc/publican/sources/Foreword.xml → doc/publican/Foreword.xml - doc/publican/sources/Server.xml → doc/publican/Server.xml - doc/publican/sources/Wayland.ent → doc/publican/Wayland.ent - doc/publican/sources/Wayland.xml → doc/publican/Wayland.xml - doc/publican/sources/css/common.css → doc/publican/html/css/common.css - doc/publican/sources/css/default.css → doc/publican/html/css/default.css - + doc/publican/html/css/meson.build - + doc/publican/html/images/icon.svg - + doc/publican/html/images/meson.build - + doc/publican/html/images/wayland.png - doc/publican/meson.build - − doc/publican/sources/Architecture.xml - − doc/publican/sources/Compositors.xml - − doc/publican/sources/Introduction.xml - − doc/publican/sources/Preface.xml - − doc/publican/sources/Protocol.xml - − doc/publican/sources/Revision_History.xml - − doc/publican/sources/Xwayland.xml - − doc/publican/sources/css/brand.css - − doc/publican/sources/css/epub.css - − doc/publican/sources/css/print.css - − doc/publican/sources/meson.build - doc/publican/doxygen-to-publican.xsl → doc/publican/xsl/doxygen-to-publican.xsl - doc/publican/merge-mapcoords.xsl → doc/publican/xsl/merge-mapcoords.xsl - doc/publican/protocol-interfaces-to-docbook.xsl → doc/publican/xsl/protocol-interfaces-to-docbook.xsl - doc/publican/protocol-to-docbook.xsl → doc/publican/xsl/protocol-to-docbook.xsl - + git-blame-ignore-revs - meson.build - meson_options.txt - protocol/wayland.dtd - protocol/wayland.xml - src/connection.c - src/meson.build - src/scanner.c - src/wayland-client-core.h - src/wayland-client.c - src/wayland-private.h - src/wayland-server-core.h - src/wayland-server.c - src/wayland-util.c - tests/data/bad-identifier-protocol.xml - tests/display-test.c - tests/event-loop-test.c - tests/queue-test.c - tests/test-compositor.c The diff was not included because it is too large. View it on GitLab: https://salsa.debian.org/xorg-team/wayland/wayland/-/compare/89c8daa9ee982cb4efbe1318b521a5a83ddde5bd...82a8156db4e9a6745f74fa43d6b632f68a549d60 -- View it on GitLab: https://salsa.debian.org/xorg-team/wayland/wayland/-/compare/89c8daa9ee982cb4efbe1318b521a5a83ddde5bd...82a8156db4e9a6745f74fa43d6b632f68a549d60 You're receiving this email because of your account on salsa.debian.org.