Commit graph

23,567 commits

Author SHA1 Message Date
stefan11111
ce761d7101 kdrive/fbdev: Respect the user-provided refresh rate
If the refresh rate is in the known mode list, we use that.
If not, we generate a mode using the CVT formula.

If we cannot set the mode we want, we try other modes,
but don't exceed the requested refresh rate.

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
2026-07-07 11:27:04 +02:00
stefan11111
6a4b9633a0 kdrive: Implement version 1.2 of the CVT reduced blanking formula
Like libxcvt, we are truncating instead of rounding to the nearest
integer, for safety reasons.

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
2026-07-07 11:27:04 +02:00
Enrico Weigelt, metux IT consult
0229438f09 ci: run pyxtest under valgrind memcheck on Ubuntu
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
Add a dedicated xserver-build-ubuntu-valgrind job that builds a debug
Xvfb and runs the pyxtest suite (test/pyxtest/) with --valgrind, so
memory errors (invalid reads/writes, use-after-free, uninitialised
value use) are caught in CI, not just OOB bugs ASAN happens to catch
locally.

The pytest-based harness (test/pyxtest/conftest.py, xserver.py,
valgrind.py) already implements valgrind support; it was simply never
wired into CI. pytest itself was also not installed in the Ubuntu CI
image, so the existing pyxtest suite has been silently skipped (not
built, since meson's find_program('pytest', required: false) found
nothing) on every other Ubuntu lane too. Installing python3-pytest
fixes that as a side effect: the normal xserver-build-ubuntu* jobs now
also actually run pyxtest (without valgrind) as part of "meson test",
exercising the existing protocol-fuzzing regression tests that were
previously dead weight.

Kept as a separate lane rather than adding --valgrind to the existing
run-xserver-build-and-test.sh: valgrind is slow, and pyxtest only
needs Xvfb, not the full Xorg/Xephyr/Xnest/XTS/piglit build the other
lanes carry.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-07 11:16:03 +02:00
Enrico Weigelt, metux IT consult
a959773be9 ci: freebsd: synthesize a bzip2.pc if the bzip2 package doesn't ship one
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
Installing bzip2 (previous commit) wasn't enough: on this CI image the
package provides libbz2 + headers but no bzip2.pc, so pkgconf's
dependency resolution for freetype2 (Requires.private: bzip2, pulled in
transitively by xfont2) still fails outright even though the library
itself is present and usable - confirmed via the job log still showing
'Package bzip2 was not found in the pkg-config search path' with
env[PKG_CONFIG_PATH] correctly unset (default search path), ruling out
a path problem. This is missing package metadata, not a missing
library: write a minimal bzip2.pc if pkg-config --exists bzip2 fails,
locating the actual installed lib/header paths via 'pkg info -l bzip2'
rather than hardcoding them.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-06 19:36:54 +02:00
Enrico Weigelt, metux IT consult
f95ab701fe ci: freebsd: install bzip2 (freetype2's pkgconfig Requires)
xfont2's pkg-config dependency lookup failed once the IGNORE_OSVERSION
fix (previous commit) let the package-version check through to the
actual build: freetype2's .pc file Requires: bzip2, but bzip2 wasn't in
the install list, so pkgconfig couldn't generate cflags for xfont2 and
meson bailed. Pre-existing gap, unmasked (not caused) by the previous
fix - this lane never got far enough to hit it before. The 'ld: error:
undefined symbol: main' lines in the same log are unrelated noise from
meson's own linker-capability probe (compiling a main-less test
program to detect LLD), not a real link failure.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-06 19:36:54 +02:00
Enrico Weigelt, metux IT consult
aaab164c0e ci: freebsd: set IGNORE_OSVERSION=yes to survive pkg repo/VM release skew
FreeBSD's official package repo tracks the '14' ABI branch, not the exact
point release pinned for the CI VM (release: "14.3" in
build-xserver.yml). When the repo rolls forward to packages built
against a newer point release, pkg refuses to proceed non-interactively
("repository FreeBSD contains packages for wrong OS version", no TTY
in CI to answer the y/N prompt), so pkg update -f fails every time and
the job never reaches the actual build - currently breaking every
FreeBSD CI run on master and on open PRs alike.

IGNORE_OSVERSION=yes is pkg's own documented escape hatch for exactly
this case; a one-point-release ABI skew is expected to be compatible in
practice. Confirmed via job logs: 'pkg: ... wrong OS version:
FreeBSD:14:amd64' / 'Newer FreeBSD version for package zycore-c:
package: 1404000, running userland: 1403000' immediately precedes the
generic 'pkg update -f' retry-loop failure that was previously
misdiagnosed as a network flake.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-06 19:36:54 +02:00
Enrico Weigelt, metux IT consult
5f85319446 Xext: namespace: allow CreateColormap against the real root window
Some checks failed
Build X servers / drivers-build-ubuntu (video-siliconmotion:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sis:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sisusb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suncg14:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suncg3:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
The real-root-window allowlist in hookResourceAccess() covered
CreateWindow/CreateGC/CreatePixmap/DestroyWindow/TranslateCoords/
QueryTree/ChangeWindowAttributes/QueryPointer/SendEvent/XInput, but
missed CreateColormap - which, like CreateGC/CreatePixmap, only needs
read-only access to the root window to find its screen/visual. Without
it, any confined (non-superPower) client creating a colormap against
the real root - which glxgears and most GL/visual-using clients do on
startup - got BadAccess and could never render.

Reproduced end-to-end: a FlyingTux-managed glxgears container confined
to its own namespace failed with 'X Error: BadAccess, Request Major
code 78 (CreateColormap)' until this was added; with it, the client
renders normally while namespace refcounts confirm it stayed confined
to its own namespace throughout.

Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt@vnc.biz>
2026-07-03 20:05:08 +02:00
Enrico Weigelt, metux IT consult
97278df78a Xext: namespace: fix NULL-deref crash for protocol-created namespaces
A namespace created at runtime via the CreateNamespace protocol request
never got a virtual root window assigned: XnsCreate() left rootWindow at
its calloc'd NULL, since only hookInitRootWindow() (a one-shot
PostInitRootWindowCallback fired once at boot, before any client can
reach the extension) ever populated that field, for the fixed set of
namespaces known from the config file at that point.

Any client placed into such a namespace then crashed the whole server
with a NULL-pointer segfault in hookWindowProperty() on its very first
GetProperty request (Xext/namespace/hook-windowproperty.c:37,
'subj->ns->rootWindow->drawable.id') - which virtually every X11 client
issues during normal startup. Reproduced end-to-end via a real
FlyingTux-managed container app connecting through a freshly created
namespace.

Factor the per-namespace virtual-root-window creation out of
hookInitRootWindow() into XnsCreateVirtualRoot(), and call it from
XnsCreate() too, so a namespace created via the protocol gets the same
virtual root a config-time one gets at boot.

Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt@vnc.biz>
2026-07-03 20:05:08 +02:00
Enrico Weigelt, metux IT consult
0523619977 doc: Xnamespace-protocol: fix stale attribute names in CreateNamespace/§8
CreateNamespace's field comment and the §8 required-changes list still
named the pre-implementation identifiers XnsAttrAutoRemove/XnsAttrBuiltin;
the actual wire constants are XNS_ATTR_TRANSIENT/XNS_ATTR_IMMUTABLE. Also
clean up the garbled §8 item 4 sentence.

Flagged as an advisory (non-blocking) note in the bot review.

Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt@vnc.biz>
2026-07-03 20:05:08 +02:00
Enrico Weigelt, metux IT consult
31336c8a4b Xext: namespace: grant superPower bypass in resource-access hook
Every other Xace hook in this extension already exempts superPower
clients (hook-client.c, hook-ext-access.c, hook-ext-dispatch.c,
hook-windowproperty.c, hook-send.c, hook-server.c, hook-device.c,
hook-selection.c) but hookResourceAccess() did not, so a superPower
client (e.g. a WM) could not resolve GetClientNamespace(windowID) for
a window owned by a client in another namespace - exactly the gap
probono asked about.

Verified: xnamespace -s whoami <window-id-in-other-ns> now returns
that namespace instead of BadAccess; go-x11proto conformance suite
still 40/40 (both byte orders).

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-03 20:05:08 +02:00
Enrico Weigelt, metux IT consult
410e0ac3af Xext: namespace: add Xnamespace management protocol extension
Add a superPower-only X11 extension (X-NAMESPACE) for managing namespaces
at runtime, the settings that were previously only provisionable from the
namespace.conf file at startup.

Requests: QueryVersion, {List,Create,Delete,Query}Namespace,
SetNamespaceFlags, {Add,Remove,List}AuthToken and GetClientNamespace.
Names are the wire identifier; capabilities/attributes are bitmasks.
Transient namespaces auto-remove when their last client exits.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-03 20:05:08 +02:00
Enrico Weigelt, metux IT consult
e16cc89236 Xext: namespace: register auth tokens through a shared helper
Introduce XnsAddToken(), which allocates an auth token, copies the
protocol name and key, registers the authorization and assigns a stable
per-namespace handle (struct auth_token.handle, allocated from a
per-namespace counter). Route the config loader's "auth" parsing through
it, so tokens loaded from the config now carry handles too and there is a
single token-registration code path (reused by the upcoming management
protocol).

Also initialise the auth_tokens list for the built-in namespaces and for
namespaces created by the config loader, fixing a latent crash when
iterating the token list of a namespace that has no tokens.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-03 20:05:08 +02:00
Enrico Weigelt, metux IT consult
04e2f98f27 Xext: namespace: factor out length-aware namespace lookup
Add XnsLookup(), which matches a namespace by an explicit byte length
rather than requiring a NUL-terminated string, and route both the
existing XnsFindByName() and select_ns() through it. This removes three
copies of the same "walk ns_list comparing names" loop and gives a
single lookup that also works on names taken straight from a request
buffer (used by the upcoming management protocol).

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-03 20:05:08 +02:00
Enrico Weigelt, metux IT consult
7bb4869b45 dix: request_priv.h: some more request parsing macros
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-03 20:05:08 +02:00
Enrico Weigelt, metux IT consult
bf6b62648d Xi: xiselectev: fix OOB read in ProcXISelectEvents' non-swapped path
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
The per-mask loop read evmask->mask_len to compute the next mask's
length before checking that the fixed xXIEventMask header itself was
still within the request buffer - a request with num_masks >= 1 and
insufficient trailing data reads one xXIEventMask-header's worth past
the end of the request. The byte-swapped path just above already
performs the equivalent pre-check ('len < bytes_to_int32(sizeof
(xXIEventMask))') before touching evmask->mask_len; this brings the
non-swapped path in line with it.

Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt@vnc.biz>
2026-07-03 19:59:53 +02:00
Enrico Weigelt, metux IT consult
6a97f6d38e render: filter: fix integer-overflow bypass of convolution size check
convolutionFilterValidateParams() derives w/h from client-supplied
xFixed values via the sign-extending xFixedToInt(), then checked
'w * h > nparams' as a plain (signed) int product. A client can choose
negative w/h so the mathematical product is huge but the signed int
product wraps to a small or negative value, defeating the bounds check
that is supposed to reject a convolution kernel larger than the actual
parameter list.

Reject negative w/h outright and compare the product as int64_t so it
cannot wrap before the comparison.

Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt@vnc.biz>
2026-07-03 19:59:53 +02:00
Enrico Weigelt, metux IT consult
7fff115a93 panoramiX: zero-init xAllocColorReply to avoid leaking uninitialised bytes
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
The reply struct was declared bare (uninitialised auto storage) and then
filled field-by-field (red/green/blue/pixel only), leaving pad1/pad2 and
any trailing padding uninitialised. Those bytes were then sent to the
client via X_SEND_REPLY_SIMPLE, an information disclosure.

Fix it with a designated initialiser so the pad/reserved bytes are
zeroed. This block sits inside XINERAMA_FOR_EACH_SCREEN_BACKWARD(), which
took a single macro parameter — so a top-level '{ .a = x, .b = y }'
initialiser was split at its commas into multiple macro arguments (the
old "static init would confuse preprocessor" caveat). Rather than work
around that per call site, make the XINERAMA_FOR_EACH_SCREEN_* macros
variadic (pass the body as __VA_ARGS__); commas in the body are then
preserved, and an ordinary designated initialiser can be used with no
compound-literal cast or extra parentheses.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-03 13:23:25 +02:00
stefan11111
2427dff73b kdrive: Don't fixup the cursor position twice in KdCursorOffScreen
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
The intent of the code is to take the coordinates of the cursor
and adjust them so that they are where they are supposed to be on
the new screen.

If we're moving up on a screen with a larger height that the one
we are on, *y < 0, so we fix it by adding the new screen's height.
Since the height is larger, and the code was lacking an else branch,
it thinks that we are now moving down, so it incorrectly subtracts
the old screen height, making the cursor end up somewhere it's not
supposed to be.

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
2026-07-03 10:24:22 +02:00
stefan11111
f8ee2e0734 kdrive/fbdev: Add some config examples to the man page
We had no info on how to pass multi-screen config options to Xfbdev.

We also had no example configs to guide people interested in
configuring Xfbdev.

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
2026-07-03 10:24:22 +02:00
Jeremy Huddleston Sequoia
2a0fd97cdf xquartz/GL: silence OpenGL deprecation warnings
OpenGL.framework and CGL are annotated OPENGL_DEPRECATED(_, 10.14) in the SDK,
but that can be silenced with -DGL_SILENCE_DEPRECATION.

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
(cherry picked from commit 31060c9506)
2026-07-03 10:24:13 +02:00
Jeremy Huddleston Sequoia
73de6346ff xquartz/GL: advertise GLX_ARB_create_context and _profile
XQuartz never called __glXEnableExtension for GLX_ARB_create_context or its
profile / robustness companions, so clients could not use
glXCreateContextAttribsARB to ask for a specific OpenGL version or profile.

Enable the three extensions in __glXAquaScreenProbe between the
InitExtensionEnableBits call and __glXScreenInit so the extension string
picks them up.  The direct-rendering path (XQuartz's AppleDRI mode) does
not go through __glXAquaScreenCreateContext -- createcontext.c routes
direct requests to __glXdirectContextCreate, and the actual context is
built on the client side.  The server-side createContext hook stays
capped at GL 1.4 for indirect clients by validate_GL_version and does not
need changes.

This is needed for OpenGL core profile support.

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>

(cherry picked from commit 609e7d9421)
2026-07-03 10:24:13 +02:00
Enrico Weigelt, metux IT consult
e113dab26f dix: rpcbuf: write empty counted string for NULL str
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
x_rpcbuf_write_counted_string_pad() wrote nothing at all when str was NULL.
But a counted string is a fixed wire element - a 16-bit length, the bytes,
then padding to a 4-byte unit. The matching reader (XKB's _GetCountedString)
unconditionally consumes that 16-bit length (an empty string is length 0 +
pad = 4 bytes), and XkbSizeCountedString() budgets 4 bytes for NULL too.

Omitting the field for NULL therefore produced a short, malformed
XkbGetGeometry reply whenever a geometry string field was NULL (label_font,
a doodad text/font/logo_name, a colour spec, or a property name/value),
desyncing every following field for the reading client.

Write an empty counted string (length 0 + padding) for NULL instead, so the
writer matches the reader and the size accounting.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-03 10:17:05 +02:00
Enrico Weigelt, metux IT consult
63a635b7bf test: add XLIBRE_TEST env var to select which unit test suites run
run_test_in_child() now checks XLIBRE_TEST (a comma-separated list of
suite function names, e.g. "ddc_tests,xkb_test") and skips any suite
not named in it. Unset/empty behaves exactly as before (run
everything).

Handy for iterating on a single new test suite without wading through
the rest of test/tests' output every run, and for isolating one
suite when an unrelated one in the sequence is flaky (run_test_in_child
exit()s the whole binary on the first failing suite, so a single flaky
suite ahead of the one you care about currently blocks everything
after it).

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-03 10:14:24 +02:00
Enrico Weigelt, metux IT consult
f045ee09ad glx: zero-init xGLXQueryVersionReply to avoid leaking uninitialised bytes
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
The reply struct was declared bare (uninitialised auto storage) and then
filled field-by-field (majorVersion/minorVersion only), leaving pad1 and
any trailing padding uninitialised. Those bytes were then sent to the
client via X_SEND_REPLY_SIMPLE, an information disclosure.

Use a designated initialiser so all omitted fields and padding are zeroed;
type/sequenceNumber/length are still set by X_SEND_REPLY_SIMPLE afterward.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-02 19:56:59 +02:00
Enrico Weigelt, metux IT consult
9567d5fa8b panoramiX: make XINERAMA_FOR_EACH_SCREEN_* macros variadic
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
The XINERAMA_FOR_EACH_SCREEN_FORWARD / _FORWARD_SKIP0 / _BACKWARD macros
took the loop body as a single macro parameter. Any top-level comma in
the body was therefore parsed as an argument separator, so a body
containing e.g. a designated initialiser (`Foo f = { .a = 1, .b = 2 };`)
failed to compile — the reason for the existing "static init would
confuse preprocessor" workarounds at the call sites.

Pass the body as a variadic argument (`...` / `__VA_ARGS__`) instead.
Commas in the body are then preserved, so ordinary designated
initialisers (and other comma-containing statements) can be used in the
loop body without compound-literal-cast or memset workarounds.

Pure enabling change: all existing call sites pass a single brace block,
which is unchanged as __VA_ARGS__. Build-verified (Xvfb/Xnest link).

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-02 17:59:46 +02:00
Enrico Weigelt, metux IT consult
6efb6f85de xf86: drop dead #define termio termios
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
The SysV `struct termio` type is used nowhere in the tree — the only
`termio` occurrence is the unrelated `#include <termio.h>` in the
SVR4/Sun block — so this BSD-only alias mapping `termio` to `termios`
under `#ifdef CSRG_BASED` is dead code and can be removed.

The rest of the `#ifdef CSRG_BASED` block is left intact: it is a
legitimate structural BSD-header block, to be dealt with in a later
xf86_OSlib.h restructure.

The CSRG_BASED block isn't compiled on Linux; a `-Dwerror=true` Linux
build links Xvfb and Xnest cleanly, confirming no accidental damage.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-02 13:23:11 +02:00
Gary T. Giesen
ccd005b2e3 config/udev: guard against NULL subsystem in fallback bus id
config_udev_get_fallback_bus_id() passes the result of
udev_device_get_subsystem() straight into strcmp(). That accessor can return
NULL when the device has no subsystem, so strcmp(NULL, "pci") dereferences a
NULL pointer and the server crashes with a SIGSEGV.

The path is reached for any DRM device with no udev ID_PATH property, where
config_udev_odev_setup_attribs() falls back to this function. DisplayLink/evdi
virtual cards have no ID_PATH; a udev remove of such a card during teardown can
present a parent whose subsystem is already gone (reported NULL), and the
unchecked strcmp faults.

The same NULL-subsystem-into-strcmp class was fixed for the four sibling callers
in this file by commit 429ee86a; config_udev_get_fallback_bus_id() was added
later (commit 2f53d1cf) without the guard. The preceding parent==NULL case is
already guarded here; extend the same defensiveness to the subsystem lookup.

Related to: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1905

Signed-off-by: Gary T. Giesen <ggiesen@giesen.me>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2245>
(cherry picked from commit 9babe7e7f6)
2026-07-02 13:22:41 +02:00
Enrico Weigelt, metux IT consult
26e24dba36 os/access.c: drop dead <sys/utsname.h> include
The `#if defined(SVR4) || defined(__GNU__)` include of <sys/utsname.h>
is unused: access.c calls neither uname() nor references struct utsname
anywhere. Host-name retrieval was long ago factored out into
xhostname() (os/xhostname.h), which owns the gethostname()/uname()
logic; the include here is a leftover. The explanatory comment above
the xhostname() call (mentioning uname()) is kept — it still documents
why xhostname is preferred over gethostname().

No feature flag needed — there is nothing to gate. Verified: Linux
-Dwerror=true build still links Xvfb and Xnest.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-02 13:21:09 +02:00
Enrico Weigelt, metux IT consult
b9d651f800 os: gate <sys/param.h> on HAVE_SYS_PARAM_H, not CSRG_BASED
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
Whether <sys/param.h> is available is a header question, not an
OS-family question. Both os/connection.c and os/access.c included it
under `#ifdef CSRG_BASED` (i.e. "is this a BSD-derived system or
Darwin?") — a grab-bag OS macro standing in for the concrete fact that
actually matters. Replace it with a proper feature check.

Add HAVE_SYS_PARAM_H via cc.has_header('sys/param.h') to conf_data
(alongside the other HAVE_SYS_*_H probes) and switch both includes to
it. This is behaviour-preserving:

  - On the BSD/Darwin systems where CSRG_BASED was set, sys/param.h
    exists, so the header is still included.
  - In os/access.c the inner `#if (BSD >= 199103)` guard is unchanged:
    BSD is only defined by sys/param.h itself (on real BSD), so on other
    platforms it stays undefined and VARIABLE_IFREQ is not defined —
    exactly as before.
  - On platforms that always have sys/param.h (e.g. glibc/Linux) the
    header is now also included, which is harmless.

Verified: Linux build with -Dwerror=true configures and links Xvfb and
Xnest cleanly (no MIN/MAX or other redefinition from the widened
include).

First step of replacing the tree's grab-bag OS-family #ifdefs
(CSRG_BASED, SVR4, ...) with concrete, meson-detectable feature flags.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-02 11:42:50 +02:00
Enrico Weigelt, metux IT consult
7103c74da1 xf86: gate consType on CONFIG_BSD_CONSOLE, not CSRG_BASED
The xf86Info.consType field and the BSD console-driver-type constants
(PCCONS/SYSCONS/PCVT/WSCONS/...) are the BSD console machinery consumed
by hw/xfree86/os-support/bsd/console_*.c and bsd_VTsw.c. They were
gated on the opaque grab-bag macro CSRG_BASED ("Computer Systems
Research Group", i.e. BSD-derived) OR'd with __FreeBSD_kernel__.

Introduce a self-documenting meson flag CONFIG_BSD_CONSOLE (following
the existing CONFIG_WSCONS/CONFIG_UDEV/... convention) set to exactly
`csrg_based or host_machine.system() == 'kfreebsd'` — i.e. the same set
of platforms the old `CSRG_BASED || __FreeBSD_kernel__` guard matched —
and use it at all three sites (struct field, constants, initializer).

Behaviour / ABI:
  - The flag is true on precisely the same platforms as before, so the
    xf86InfoRec layout is unchanged everywhere. On Linux (and every
    non-BSD target) CONFIG_BSD_CONSOLE is undefined just as CSRG_BASED
    was, so consType stays absent and the struct offsets — hence the
    driver ABI, incl. the nvidia blob — are untouched.
  - Fixes a latent inconsistency on GNU/kFreeBSD: the struct field was
    present there (via __FreeBSD_kernel__) but xf86Globals.c initialised
    .consType only under #ifdef CSRG_BASED, so it defaulted to 0 instead
    of -1. Both are now driven by the single CONFIG_BSD_CONSOLE flag, so
    field presence and initialiser always agree.

Verified: Linux -Dwerror=true build configures (dix-config.h gets
`#undef CONFIG_BSD_CONSOLE`) and links Xorg cleanly.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-02 11:42:00 +02:00
Enrico Weigelt, metux IT consult
657b337e71 xf86: drop dead HAS_SETPRIORITY / <sys/resource.h> block
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
xf86Helper.c defined HAS_SETPRIORITY and included <sys/resource.h>
under `#if defined(CSRG_BASED) || defined(__GNU__)`, commented "For
xf86GetClocks". But nothing in the tree uses any of it:

  - `setpriority()` is called nowhere,
  - the HAS_SETPRIORITY macro is referenced nowhere,
  - xf86GetClocks no longer touches process priority at all.

It is a leftover from when xf86GetClocks temporarily raised its
priority while measuring dot clocks; that code is long gone. Remove the
orphaned block rather than convert its OS-family guard to a feature
flag — there is no feature left to gate.

Verified: Linux build with -Dwerror=true compiles xf86Helper.c and
links Xorg cleanly.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-02 11:39:27 +02:00
Enrico Weigelt, metux IT consult
812c0238ad ci: bump go-x11proto (go-xts) pin v0.0.4 -> v0.0.7
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
The go-xts CI suite is built against the go-x11proto client library, pinned
via PKG_GOXPROTO_REF/GOXPROTO_REF. Raise it from v0.0.4 to the current
release v0.0.7 (fresh tag pushed upstream).

Both pin sites must move together: install-prereq.sh consumes
PKG_GOXPROTO_REF (conf.sh), which defaults to $GOXPROTO_REF from the
workflow env.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-01 20:12:07 +02:00
stefan11111
3f5d7f1a87 kdrive/fbdev: From option -noaccel
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
It does the same as `-dumb` now.

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
2026-07-01 19:41:48 +02:00
stefan11111
243d972875 kdrive/fbdev: Modify screen parsing/declaration
Before this, screens were parsed like so:

```
xinit -- /path/to/Xfbdev -screen <geom> -<screen_0_args> \
-screen <geom> -<screen_1_args> ... \
-screen <geom> -<screen_n_args>
```

This somewhat worked, but it was against the general kdrive design.
Notably, `-dumb` and `-origin` (and probably others) didn't work right.

This patch changes the screen parsing like so:

```
xinit -- /path/to/Xfbdev -<screen_0_args> -screem <geom> \
-<screen_1_args> -screen <geom> ... \
-<screen_n_args> -screen <geom> -<screen_n_args>
```

This fixes the above issues.
This also e.g. makes:
`xinit -- /path/to/Xfbdev -fb /dev/fb0 -screen 1920x1080`
do the more "intuitive" thing of declaring one screen,
instead of what it currently does, which is declare 2
screens, one implicit, one explicit.

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
2026-07-01 19:41:48 +02:00
stefan11111
aae5c0f428 kdrive: Move the KdDPMS call up in KdEnableScreen
Make it match the reverse of `KdDisableScreen`

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
2026-07-01 19:41:31 +02:00
stefan11111
44c2356df6 kdrive: Only change the dpms state if the screen is enabled.
Keeps the same behavior as xf86

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
2026-07-01 19:41:31 +02:00
stefan11111
408de3f941 kdrive: Call the card's dpms function regardless of the current dpms state.
xf86 has no such checks for the dpms state

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
2026-07-01 19:41:31 +02:00
stefan11111
3b8f8e8272 kdrive: Add support for the DPMS extension
Add the dpms related code was already there for other purposes.
This just exposes it to the dpms extension code.

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
2026-07-01 19:41:31 +02:00
stefan11111
b054fad8a4 kdrive: Add a helper for dpms and related state tracking
Before this, dpms state tracking had to be done on every call,
and Xfbdev needed to duplicate the state tracking.

With this, all state tracking is done by the helper,
and kdrive X server don't need to do any state tracking.

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
2026-07-01 19:41:31 +02:00
stefan11111
e29ad4cc1a kdrive.h: Add some comments
Signed-off-by: stefan11111 <stefan11111github@gmail.com>
2026-07-01 19:41:31 +02:00
Enrico Weigelt, metux IT consult
98b538dadc xfree86: vbe: fix memory leak on VideoModePtr allocation failure
In VBEGetVBEInfo(), when the calloc() for block->VideoModePtr fails, the
already-allocated VbeInfoBlock was leaked on the error path. By that point
block->OEMStringPtr has also been strdup()'d, so a bare free(block) would
still leak that string. Use VBEFreeVBEInfo() to release the partially-built
block together with all strings it already owns (the fields not yet set are
NULL from the initial calloc(), so freeing them is safe).

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-01 19:41:22 +02:00
Enrico Weigelt, metux IT consult
1e51bbbac5 Xext/xf86bigfont: drop redundant SHM page-rounding and pagesize
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
shmalloc() rounded the SHM segment size up to a page boundary before
shmget() (`size = (size + pagesize - 1) & -pagesize`). That is redundant:
SysV shmget() already rounds the segment up to a page, and the rounded
size is never sent to the client (it receives the shmid and reads the
real glyph-metrics size). So the rounding — and the `pagesize` global
computed solely for it via SHMLBA / sysconf(_SC_PAGESIZE) (the only
CSRG_BASED user in this file) — served no purpose.

pagesize's only other role was the `pagesize == 0` sentinel meaning "the
SHM syscall probe failed" on MUST_CHECK_FOR_SHM_SYSCALL platforms. Replace
it with a dedicated `bool shmSupported` (stdbool.h), set once
CheckForShmSyscall() succeeds. This also drops the
`#if !defined(CSRG_BASED) && !defined(__CYGWIN__)` block.

No behavioural change: shmget() allocates the same page-rounded segment
regardless.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-01 18:51:50 +02:00
Enrico Weigelt, metux IT consult
c7843a9d39 dix: guard ARRAY_SIZE against a platform-provided definition
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
include/dix.h defined ARRAY_SIZE() unconditionally. On platforms whose
system headers already provide it — notably illumos/Solaris
<sys/sysmacros.h> — that is a redefinition, fatal under -Werror
("ARRAY_SIZE redefined"). Wrap it in #ifndef, matching what
Xext/dri2/pci_ids/pci_id_driver_map.h already does, so any translation
unit that pulls in a system ARRAY_SIZE before dix.h keeps building.

(Robustness fix: the concrete xf86bigfont Solaris break that exposed this
is separately fixed by dropping its <sys/sysmacros.h> include, but dix.h
should not be fragile for the next such file.)

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-01 18:25:14 +02:00
Enrico Weigelt, metux IT consult
5c9ba0bd89 .github: build xf86bigfont on the CI lanes, keep it off by default
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
PR #3202 both fixed the extension's cross-platform build *and* flipped the
meson default on. Keep the compile fixes, but restore the meson default to
off: xf86bigfont is a low-relevance legacy optimisation (server-side core
fonts; modern toolkits render client-side) that was deliberately off, and
re-enabling it for all downstreams isn't wanted.

Instead pass -Dxf86bigfont=true on the CI build lanes, so the extension
stays compiled and validated across all platforms in CI without changing
the shipped default.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-01 17:50:11 +02:00
Enrico Weigelt, metux IT consult
43143d82e9 Xext/xf86bigfont: guard the Unix-only bits for mingw (Windows)
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
Building the extension on mingw (Windows, no SysV SHM → CONFIG_MITSHM off)
failed on two counts:

  - QueryVersion filled the reply's uid/gid via geteuid()/getegid(), which
    Windows has no equivalent for (implicit-declaration error). Those fields
    only matter for the CONFIG_MITSHM local-shm path (off on Windows), so
    guard them (`#if !defined(WIN32) || defined(__CYGWIN__)` — Cygwin does
    have them); on native Windows uid/gid stay 0.
  - stuff_flags is only consumed under CONFIG_MITSHM, so with SHM off it was
    set-but-unused (-Werror=unused-but-set-variable). Scope its declaration
    and assignment under CONFIG_MITSHM too, matching how pDesc is already
    handled in this function.

Verified the Linux (CONFIG_MITSHM, non-WIN32) path is unchanged and builds
clean; the Windows path is validated by the mingw32 CI lane.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-01 16:55:08 +02:00
Enrico Weigelt, metux IT consult
c504e16903 Xext/xf86bigfont: drop the Linux-only <sys/sysmacros.h> include
xf86bigfont.c unconditionally included <sys/sysmacros.h> inside the
CONFIG_MITSHM block. That header is glibc/Linux-specific (major()/minor()/
makedev()) and does not exist on the BSDs or macOS, so building the
extension there fails:

    xf86bigfont.c:49:10: fatal error: 'sys/sysmacros.h' file not found

None of those macros are used in this file, so the include is simply
removed. Fixes the compile break on macOS, FreeBSD, DragonFly, NetBSD and
OpenBSD (surfaced once the extension was built in CI).

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-01 16:55:08 +02:00
Enrico Weigelt, metux IT consult
d7f258b3bf meson: build the XF86-BigFont extension by default
xf86bigfont was option(value: false), so nothing — not a single CI lane —
ever compiled Xext/xf86bigfont/. Flip the default to true so the extension
is part of the standard build and gains CI coverage on every platform.

When enabled it pulls in xf86bigfontproto (>= 1.2.0, with the xorgproto
subproject fallback) as a build dependency.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-01 16:55:08 +02:00
Enrico Weigelt, metux IT consult
9c4a3a9301 kdrive/ephyr: fix NULL-deref crash on lost host-display connection during color setup
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
hostx_init() calls xcb_lookup_color_reply() and xcb_alloc_color_reply()
without checking for a NULL reply, then immediately dereferences it. If
the connection to the host X display dies in between (e.g. a transport
error on the socket Xephyr just connected through), both functions
return NULL and Xephyr crashes with a SIGSEGV instead of failing
cleanly, the same way the adjacent xcb_connect() failure a few lines
above already does.

Found while investigating a CI segfault in the Xephyr -glamor test
that traced back to exactly this NULL deref (offset 0x8 into a NULL
xcb_lookup_color_reply_t), exposed by a local-transport listener race
under concurrent test load.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-01 16:37:12 +02:00
Enrico Weigelt, metux IT consult
9049e6ca59 os: drop the never-defined XTHREADS_NEEDS_BYNAMEPARAMS blocks
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
XTHREADS_NEEDS_BYNAMEPARAMS is defined nowhere in the tree — not by the
meson build, not by any header. Its six `#ifdef XTHREADS_NEEDS_BYNAMEPARAMS`
blocks (in access.c, Xtranssock.c, utils.c, xdmcp.c) each only declared a
_Xget{host,serv}bynameparams buffer for the old reentrant _XGethostbyname /
_XGetservbyname wrappers. The declaration was therefore never compiled, and
the buffer is only referenced inside the equally-uncompiled pre-getaddrinfo
gethostbyname fallbacks. Pure dead code; remove it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-01 15:50:50 +02:00
stefan11111
5c55dbc6fb glamor/glamor_egl: Fix build without libdrm or dri3
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
We were missing some `ifdef`s

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
2026-07-01 14:00:42 +02:00