Commit graph

847 commits

Author SHA1 Message Date
Enrico Weigelt, metux IT consult
9c6593dad7 os: unexport CloseDownConnection()
Not used by any drivers, so no need to export it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1582>
(cherry picked from commit 1d7cb4b2c3)
2026-01-25 10:39:56 -08:00
Matthieu Herrb
d09eca6f61 Return NULL in *cmdname if the client argv or argv[0] is NULL
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/995>
(cherry picked from commit 59f5445a7f)
2026-01-25 10:39:56 -08:00
Matthieu Herrb
d09b70b4e0 Don't crash if the client argv or argv[0] is NULL.
Report from  bauerm at pestilenz dot org.

Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/995>
(cherry picked from commit a8512146ba)
2026-01-25 10:39:56 -08:00
Enrico Weigelt, metux IT consult
eb685f5dba os: utils: drop obsolete REMOVE_ENV_LD conditional
This always had been set since it's incarnation back two decades
ago, on XFree86 4.3.0.1. Probably no need to keep that around anymore.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1518>
(cherry picked from commit aef17edd92)
2026-01-25 10:39:56 -08:00
Enrico Weigelt, metux IT consult
12fc68d5d4 os: utils: drop unused USE_ISPRINT
This always had been disabled since it's incarnation XFree86 4.3.0.1,
back two decades ago, so there's likely no need for it.

Fixes: d568221710
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1518>
(cherry picked from commit 4b94e4fa08)
2026-01-25 10:39:56 -08:00
Enrico Weigelt, metux IT consult
b7587614b9 os: utils: drop REMOVE_LONG_ENV conditional
This always had been enabled since it's incarnation back two decades ago,
so it doesn't seem to be necessary keeping that conditional any longer.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1518>
(cherry picked from commit b5d897d126)
2026-01-25 10:39:56 -08:00
Enrico Weigelt, metux IT consult
1ce6028cb0 os: utils: drop unused NO_OUTPUT_PIPES
This hasn't been used/enabled for over 20 years, so there's probably
no reason for keeping it even longer.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1518>
(cherry picked from commit 69905a0a28)
2026-01-25 10:39:56 -08:00
Enrico Weigelt, metux IT consult
8bd4dc6806 os: utils: minor code formatting cleanup
Just correcting some small indention issues, no actual change.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1518>
(cherry picked from commit 6153b89d19)
2026-01-25 10:39:56 -08:00
Enrico Weigelt, metux IT consult
6ceebf6cf5 os: unexport WaitForSomething()
Not used by any drivers, so no need to export it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1584>
(cherry picked from commit 3d3d148039)
2026-01-25 10:39:56 -08:00
Alan Coopersmith
e56d8c9ccc Remove remnants of support for SVR4 systems other than Solaris & illumos
Most of the support for such OS'es was removed in 2010 for
xorg-server-1.10.0, but a few bits lingered on.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1667>
(cherry picked from commit 62c9f52e41)
2026-01-25 10:39:56 -08:00
Alan Coopersmith
eed43d1446 Remove remnants of support for SysV versions before SVR4
Most of the support for such OS'es was removed in 2010 for
xorg-server-1.10.0, but a few bits lingered on, and a few
comments were left out-of-date.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1667>
(cherry picked from commit f35951d83e)
2026-01-25 10:39:56 -08:00
Enrico Weigelt, metux IT consult
63dd5c4af6 os: backtrace: use fixed size array instead of vla
The backtrace buffer size (BT_SIZE) is determined by compile time,
so we can change BT_SIZE into a #define to turn vla into fixed array.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1664>
(cherry picked from commit 6531720c7c)
2026-01-25 10:39:56 -08:00
Enrico Weigelt, metux IT consult
b813a0be0d treewide: replace xnfreallocarray macro call by XNFreallocarray()
The xnfreallocarray was added along (and just as an alias to) XNFreallocarray
back a decade ago. It's just used in a few places and it's only saves us from
passing the first parameter (NULL), so the actual benefit isn't really huge.

No (known) driver is using it, so the macro can be dropped entirely.

Fixes: ae75d50395
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1529>
(cherry picked from commit 61233adbca)
2026-01-25 10:39:55 -08:00
Enrico Weigelt, metux IT consult
8cde76988b fix missing includes of <X11/Xfuncproto.h>
Several places using _X_ATTRIBUTE_PRINTF macro from X11/Xfuncproto.h
but missing to include it, so it depends on other headers whether it's
included by mere accident, which quickly causes trouble if include order
changes. Cleaning that up by adding explicit include statements.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1580>
(cherry picked from commit b30edf326b)
2026-01-25 10:39:55 -08:00
Joaquim Monteiro
83572aebca os: Fix siHostnameAddrMatch in the case where h_addr isn't defined
When IPv6 support isn't enabled, and h_addr isn't defined,
there is no for loop, so the break statement is invalid.

Signed-off-by: Joaquim Monteiro <joaquim.monteiro@protonmail.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1572>
(cherry picked from commit a6a993f950)
2026-01-25 10:39:54 -08:00
Joaquim Monteiro
dc16b6c03b os: Fix assignment with incompatible pointer type
struct hostent->h_addr_list is of type char**, not const char**.
GCC considers this an error when in C99 mode or later.

Signed-off-by: Joaquim Monteiro <joaquim.monteiro@protonmail.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1572>
(cherry picked from commit 0ddcd87851)
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
3678a119cf xace: typesafe hook function for XACE_AUTH_AVAIL
he generic XaceHook() call isn't typesafe (und unnecessarily slow).
Better add an explicit function, just like we already have for others.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1556>
(cherry picked from commit 591d95c79e)
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
dd0dcbe99d xace: typesafe hook function for XACE_SERVER_ACCESS
he generic XaceHook() call isn't typesafe (und unnecessarily slow).
Better add an explicit function, just like we already have for others.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1556>
(cherry picked from commit 47d6c3ad75)
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
ab1beea826 os: move xserver_poll.h into os/ directory
This header isn't public and holds defines for code in os/ directory,
so no need to keep it in the global header dir - it's probably better
off in os/ directory - just like we already have with many others.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1389>
(cherry picked from commit 487eb46826)
2026-01-25 10:39:54 -08:00
Enrico Weigelt, metux IT consult
877d43f6c4 os: drop extra ifdefs for AF_INET6
Since IPv6 is now only defined if IPv6 is really supported, we don't
need to ifdef on AF_INET6 anymore.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1539>
(cherry picked from commit f8057261fe)
2026-01-25 10:39:53 -08:00
Enrico Weigelt, metux IT consult
eede6c93c6 os: drop duplicate nested ifdef TCPCONN
This #ifdef is always true, since two lines above it's already
checked that TCPCONN is defined.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1539>
(cherry picked from commit 88b2257cc4)
2026-01-25 10:39:53 -08:00
Enrico Weigelt, metux IT consult
0c3fb1ea21 os: access.c: drop unnecessary ifdef
Conditional on ipv6 around including <arpa/inet.h> isn't necessary.
The only reason target not having it is win32, but it doesn't enable
SIOCGLIFCONF anyways.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1539>
(cherry picked from commit 9d6a1d1118)
2026-01-25 10:39:53 -08:00
Enrico Weigelt, metux IT consult
00f7df1f08 os: drop SUN-DES-1 authentication
DES isn't considered secure anymore for long time now, more and more platforms
dropping DES from their RPC implementations, and even the one where it came
from (Solaris) disabled it for a decade now. We have much better alternatives
(eg. passing creds via Unix socket for local connections, ssh tunneling,
MIT-MAGIC-COOKIE-1, ...), so it's unlikely anybody still really relying on it.

Therefore, sweep it out.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1453>
(cherry picked from commit 71b207a2eb)
2026-01-25 10:39:53 -08:00
Fotios Valasiadis
2f17ce75cc os: Explicitly include X11/Xmd.h for CARD32 definition to fix building on i686
Noticed this after trying to update to xorg-server-xwayland-24.1.0 in void linux https://github.com/void-linux/void-packages/pull/50457

Signed-off-by: Fotios Valasiadis <fvalasiad@gmail.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1561>
(cherry picked from commit af6180b2c9)
2026-01-25 10:39:53 -08:00
Enrico Weigelt, metux IT consult
7ea4e28f28 os: drop remains of STREAMSCONN
STREAMSCONN has been removed about a decade ago, but some comments
have been forgotten to be cleaned.

Fixes: b3e9c534e2
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1538>
(cherry picked from commit a4cb4bc4f8)
2026-01-25 10:39:53 -08:00
Enrico Weigelt, metux IT consult
f05897e027 os: secure-rpc: make build option tristate
Add support `auto` mode, which only enables secure-rpc when
dependencies are met.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1441>
(cherry picked from commit 620b678cfe)
2026-01-25 10:39:52 -08:00
Enrico Weigelt, metux IT consult
012ca2616e os: secure-rpc: check struct authdes_cred
Some platforms (eg. NetBSD) don't have DES support in rpc anymore, so we
should check, in order to prevent weird, hard to understand build breaks.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1441>
(cherry picked from commit 339717bac6)
2026-01-25 10:39:52 -08:00
Enrico Weigelt, metux IT consult
99192ff50f os: define SECURE_RPC locally instead of global config header
Since this define is only used inside os subdir, move the definition there
and out of the global config header. This also makes some further steps,
e.g. checking whether it's supported, a litle bit easier.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1441>
(cherry picked from commit d2d3f4a700)
2026-01-25 10:39:52 -08:00
Enrico Weigelt, metux IT consult
6738683d6d os: unexport ForceClockId()
This function is only intended for DDX'es (currently just Xwayland) that
need to force using another clock. Really shouldn't be called by drivers
or extensions.

Fixes: a779fda224
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1333>
(cherry picked from commit c17c527b9a)
2026-01-25 10:39:52 -08:00
Enrico Weigelt, metux IT consult
ba5996ef3b os: unexport ListenToAllClients()
It's just called by DIX, not by any drivers/modules, so no need to export it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1387>
(cherry picked from commit a0b69624f7)
2026-01-19 12:48:30 -08:00
Enrico Weigelt, metux IT consult
a94f1f04d9 os: unexport OnlyListenToOneClient()
Not used by any drivers, so no need to export it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1385>
(cherry picked from commit d18ef33099)
2026-01-19 12:48:30 -08:00
Enrico Weigelt, metux IT consult
ba89e22e7e os: unexport MakeClientGrabPervious() and MakeClientGrabImpervious()
Not used by any drivers, so no need to export them.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1384>
(cherry picked from commit 4c1795701c)
2026-01-19 12:48:30 -08:00
Enrico Weigelt, metux IT consult
e3610a9f5c os: fix missing include of misc.h in busfault.h
busfault.h is using FALSE, but didn't include misc.h, so it really
depends on include order whether it works.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1381>
(cherry picked from commit 3aa62ca6f0)
2026-01-19 12:48:30 -08:00
Enrico Weigelt, metux IT consult
e50bf99ec4 os: unexport OsVendorVErrorFProc pointer
This pointer allows a DDX to install it's own error print handler. It's really
only intended for DDXes, thus no need to have it exported to modules.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1369>
(cherry picked from commit 76d01e9bf6)
2026-01-19 12:48:30 -08:00
Enrico Weigelt, metux IT consult
48490209d2 os: unexport OsLookupColor()
It's an internal function, only used by DIX, not by drivers and shouldn't
have been exported in the first place.

Fixes: 49f77fff14
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1373>
(cherry picked from commit 6cb599f59c)
2026-01-19 12:47:57 -08:00
Enrico Weigelt, metux IT consult
2321632c44 os: unexport xthread_sigmask
This function isn't used by drivers and there's currently no need to do so,
thus keep it out of the public module API.

Fixes: 30ac756798
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1368>
(cherry picked from commit 3b7a63e6ae)
2026-01-19 12:32:26 -08:00
Enrico Weigelt, metux IT consult
e702149e99 include: move busfault.h out of public include dir
this header is isn't public, so it's more appropriate, where the actual
code is, which is the os/ directory.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1337>
(cherry picked from commit dae76bbaaf)
2026-01-19 12:32:26 -08:00
Enrico Weigelt, metux IT consult
178ddbca96 os: connection: drop obsolete define Pid_t
Clean up a yet some more stale leftovers.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1260>
(cherry picked from commit eac10cf1fa)
2026-01-19 12:32:26 -08:00
Enrico Weigelt, metux IT consult
a6339b6381 os: move SELinux enforcement state to the extension
Those fields are better off in the extension instead of the OS layer.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1328>
(cherry picked from commit 537293ff4e)
2026-01-19 12:32:24 -08:00
Enrico Weigelt, metux IT consult
a0554ea4a9 os: rpc: fix type mismatch
fix warning:

> ../os/rpcauth.c:159:16: warning: result of comparison of constant -1 with expression of type 'XID' (aka 'unsigned int') is always false [-Wtautological-constant-out-of-range-compare]
>     if (rpc_id == ~0L)
>         ~~~~~~ ^  ~~~

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1431>
(cherry picked from commit 8dc82a13a9)
2026-01-19 12:32:23 -08:00
Enrico Weigelt, metux IT consult
6d93688b5e os: fix missing include of <errno.h>
It's much cleaner to always include directly what one needs,
instead of relying on very indirect including.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1435>
(cherry picked from commit dfa606d5a4)
2026-01-19 12:32:23 -08:00
Enrico Weigelt, metux IT consult
706caadbf2 Fix missing include of <sys/wait.h>
Instead of relying on indirect includes, it's much cleaner if everybody
includes directly what he needs.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1419>
(cherry picked from commit ccfa7e9f2e)
2026-01-19 12:32:22 -08:00
Enrico Weigelt, metux IT consult
bb0c68997a os: move os_move_fd() out of public API
This function isn't used by any driver and doesn't seem to be useful for them,
thus move it out of the public module API, in order to tidy it up a bit.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1366>
(cherry picked from commit 15d3c1a6f1)
2026-01-19 12:32:20 -08:00
Enrico Weigelt, metux IT consult
0d3481defe os: fix missing X11/Xdefs.h include in os/osdep.h
osdep.h needs Bool type, which is defined X11/Xdefs.h.
For now it works, since Xdefs usually is already included somewhere
else, but that's an unreliable programming styles which quickly hits
us when changing include order.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1366>
(cherry picked from commit 1bdbe1cb3f)
2026-01-19 12:32:20 -08:00
Enrico Weigelt, metux IT consult
6a9bd0533f os: unexport AutoResetServer()
This is an internal function, not used and not supposed to be used by
any drivers, so shouldn't have been exported in the first place.

Fixes: 49f77fff14
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1372>
(cherry picked from commit 934b771f7a)
2026-01-19 12:32:20 -08:00
Enrico Weigelt, metux IT consult
ea7bf6a352 include: move xsha1.h to os/
This header is never exported and belongs to OS layer, thus no need to have it
in include/ directory, where all the public ones are - better off under os/.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1350>
(cherry picked from commit 40c5d39c55)
2026-01-19 12:32:20 -08:00
Enrico Weigelt, metux IT consult
600d53e98f os: simplify win32 uname()
Just define struct utsname and a tiny uname() function instead of
cluttering the code with ifdef's.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1295>
(cherry picked from commit 77f9792911)
2026-01-19 12:32:20 -08:00
Enrico Weigelt, metux IT consult
18ee3532f8 xwin: replace ZeroMemory()
replace Windows specific ZeroMemory (macro just calling memset())
by static initialization, calloc() and memset().

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1295>
(cherry picked from commit 7bd19a9580)
2026-01-19 12:32:20 -08:00
Enrico Weigelt, metux IT consult
529aab2d7c os: fix mising prototype / include on WIN32 builds
[90/383] Compiling C object os/liblibxlibc.a.p/strcasestr.c.obj
359../os/strcasestr.c:45:1: warning: no previous prototype for ‘xstrcasestr’ [-Wmissing-prototypes]
360   45 | xstrcasestr(const char *s, const char *find)
361      | ^~~~~~~~~~~

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1295>
(cherry picked from commit de34a20dc3)
2026-01-19 12:32:19 -08:00
Enrico Weigelt, metux IT consult
6cb6b75334 os: fix unused variable on WIN32 build
../os/access.c:443:18: warning: unused variable ‘n’ [-Wunused-variable]
420  443 |     register int n;
421      |                  ^
422

[120/383] Compiling C object os/liblibxserver_os.a.p/connection.c.obj
431../os/connection.c:137:14: warning: ‘ParentProcess’ defined but not used [-Wunused-variable]
432  137 | static Pid_t ParentProcess;
433      |              ^~~~~~~~~~~~~

../os/connection.c:132:13: warning: ‘RunFromSmartParent’ defined but not used [-Wunused-variable]
435  132 | static Bool RunFromSmartParent; /* send SIGUSR1 to parent process */
436      |             ^~~~~~~~~~~~~~~~~~

Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1295>
(cherry picked from commit 0706c03f9d)
2026-01-19 12:32:19 -08:00