Commit graph

1160 commits

Author SHA1 Message Date
Diego Viola
7e7d1f027f treewide: fix typos
Signed-off-by: Diego Viola <diego.viola@gmail.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2138>
2026-03-14 16:52:19 +00:00
Alan Coopersmith
94acecdeaf ephyr: show that -name & -title take non-optional arguments in usage output
Fixes: f028e245a ("Bug #10016: Implement WM_CLASS hints in Xephyr.")
Fixes: e3c65cf1d ("xephyr: Add -title option.")
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2137>
2026-03-09 18:35:44 -07:00
Alan Coopersmith
0df19c5001 ephyr: add -name to Xephyr man page
Fixes: f028e245a ("Bug #10016: Implement WM_CLASS hints in Xephyr.")
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2137>
2026-03-09 18:35:33 -07:00
Alan Coopersmith
45607067cf ephyr: add -title to Xephyr man page
Fixes: e3c65cf1d ("xephyr: Add -title option.")
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2137>
2026-03-09 18:35:20 -07:00
Diego Viola
e8f4522312 Fix typos
Signed-off-by: Diego Viola <diego.viola@gmail.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2134>
2026-03-03 06:50:01 -03:00
Alan Coopersmith
2e338890ee os: add a generic -verbose option instead of making each server add its own
Replaces Xwayland's server-specific implementation, but leaves Xorg's
since it sets global variables in the xfree86 ddx layer.  Also leaves
Xephyr's differently-spelled "-verbosity" for backwards compatibility.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2131>
2026-02-28 02:03:10 +00:00
Alan Coopersmith
6e126016e3 Xephyr.man: Use \- to get ASCII hyphens instead of Unicode dashes
Used in command-line arguments and email addresses

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2009>
(cherry picked from commit 0d2213ec44)
2026-01-25 10:40:01 -08:00
Alan Coopersmith
8fb69863a3 man pages: don't use .BI macro with a single argument
Clears warnings from groff -rCHECKSTYLE=10:

an.tmac: Xephyr.man:53: style: .BI expects at least 2 arguments, got 1
an.tmac: Xephyr.man:55: style: .BI expects at least 2 arguments, got 1
an.tmac: Xwayland.man:151: style: .BI expects at least 2 arguments, got 1
an.tmac: Xwayland.man:166: style: .BI expects at least 2 arguments, got 1

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2009>
(cherry picked from commit ff4f2f718b)
2026-01-25 10:40:01 -08:00
Alan Coopersmith
1176228c0b man pages: remove extraneous PP macros
Clears warnings from `mandoc -T lint` of the forms:
mandoc: Xorg.man:26:2: WARNING: skipping paragraph macro: PP after SH
mandoc: Xorg.man:40:2: WARNING: skipping paragraph macro: PP empty

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2009>
(cherry picked from commit bd08e04fcb)
2026-01-25 10:40:01 -08:00
Alan Coopersmith
fdb85312d1 man pages: strip trailing whitespace
Gets rid of many warnings from `mandoc -T lint` of the form:
mandoc: ./man/Xserver.man:621:7: STYLE: whitespace at end of input line

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2009>
(cherry picked from commit 6dfe3e7db6)
2026-01-25 10:40:01 -08:00
Enrico Weigelt, metux IT consult
2b5a37276f kdrive: Xkdrive.man: remove stray whitespace
Tiny editorial correction: drop a stray whitespace in manpage
that sneaked in at recent editorial changes.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1876>
(cherry picked from commit 32b3328e49)
2026-01-25 10:40:01 -08:00
Alan Coopersmith
40bca15705 man pages: use .BR to mark up man page references
The name of a man page is typeset in bold and the section in roman
(see man-pages(7)).

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1875>
(cherry picked from commit 5ac0a19e7f)
2026-01-25 10:40:01 -08:00
Enrico Weigelt, metux IT consult
afe3c7fc86 treewide: replace xnfcalloc() calls by XNFcallocarray()
This has been nothing but an alias for two decades now (somewhere in R6.6),
so there doesn't seem to be any practical need for this indirection.

The macro still needs to remain, as long as (external) drivers still using it.

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 f446235b71)
2026-01-25 10:39:55 -08:00
Enrico Weigelt, metux IT consult
d9f8206afb treewide: replace xnfalloc() calls to XNFalloc()
This has been nothing but an alias for two decades now (somewhere in R6.6),
so there doesn't seem to be any practical need for this indirection.

The macro still needs to remain, as long as (external) drivers still using it.

Fixes: ded6147bfb
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 c55ddd072b)
2026-01-25 10:39:55 -08:00
Alan Coopersmith
1a4c3b3dac Move sizeof to second argument in calloc calls
Clears -Wcalloc-transposed-args warnings from gcc 14.1, such as:

../dix/main.c:165:42: warning: ‘calloc’ sizes specified with ‘sizeof’ in the
 earlier argument and not in the later argument [-Wcalloc-transposed-args]
  165 |             serverClient = calloc(sizeof(ClientRec), 1);
      |                                          ^~~~~~~~~
../dix/main.c:165:42: note: earlier argument should specify number of
 elements, later size of each element

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1606>
(cherry picked from commit 522f469fe9)
2026-01-25 10:39:55 -08:00
Enrico Weigelt, metux IT consult
c2083c59fb kdrive: drop Solaris specific hack
Since kdrive is only working on Unix'es, we don't need to care whether
that file might not exist on Windows, neither any need for doing so
exlusively on Solaris.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1548>
(cherry picked from commit 1b49f6ddb8)
2026-01-25 10:39:53 -08:00
Enrico Weigelt, metux IT consult
83936985d9 rename remaining RT_* defines to X11_RESTYPE_*
Since we already had to rename some of them, in order to fix name clashes
on win32, it's now time to rename all the remaining ones.

The old ones are still present as define's to the new ones, just for
backwards compatibility.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1355>
(cherry picked from commit 85d4bd0dba)
2026-01-19 12:48:30 -08:00
Enrico Weigelt, metux IT consult
2835e076df drop remains of support for old Sun compilers
With transition from autoconf to meson, these aren't actually supported
anymore, and re-adding it isn't planned. Thus the now dead code pathes
can be completely removed.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1286>
(cherry picked from commit 6dafe3dbe6)
2026-01-19 12:32:18 -08:00
José Expósito
e89edec497 ephyr: Fix incompatible pointer type build error
Fix a compilation error on 32 bits architectures with gcc 14:

  ephyr_glamor_xv.c: In function ‘ephyr_glamor_xv_init’:
  ephyr_glamor_xv.c:154:31: error: assignment to ‘SetPortAttributeFuncPtr’ {aka ‘int (*)(struct _KdScreenInfo *, long unsigned int,  int,  void *)’} from incompatible pointer type ‘int (*)(KdScreenInfo *, Atom,  INT32,  void *)’ {aka ‘int (*)(struct _KdScreenInfo *, long unsigned int,  long int,  void *)’} [-Wincompatible-pointer-types]
    154 |     adaptor->SetPortAttribute = ephyr_glamor_xv_set_port_attribute;
        |                               ^
  ephyr_glamor_xv.c:155:31: error: assignment to ‘GetPortAttributeFuncPtr’ {aka ‘int (*)(struct _KdScreenInfo *, long unsigned int,  int *, void *)’} from incompatible pointer type ‘int (*)(KdScreenInfo *, Atom,  INT32 *, void *)’ {aka ‘int (*)(struct _KdScreenInfo *, long unsigned int,  long int *, void *)’} [-Wincompatible-pointer-types]
    155 |     adaptor->GetPortAttribute = ephyr_glamor_xv_get_port_attribute;
        |                               ^

Build error logs:
https://koji.fedoraproject.org/koji/taskinfo?taskID=111964273

Signed-off-by: José Expósito <jexposit@redhat.com>
2024-01-19 14:42:48 +01:00
Olivier Fourdan
2ef0f1116c ephyr,xwayland: Use the proper private key for cursor
The cursor in DIX is actually split in two parts, the cursor itself and
the cursor bits, each with their own devPrivates.

The cursor itself includes the cursor bits, meaning that the cursor bits
devPrivates in within structure of the cursor.

Both Xephyr and Xwayland were using the private key for the cursor bits
to store the data for the cursor, and when using XSELINUX which comes
with its own special devPrivates, the data stored in that cursor bits'
devPrivates would interfere with the XSELINUX devPrivates data and the
SELINUX security ID would point to some other unrelated data, causing a
crash in the XSELINUX code when trying to (re)use the security ID.

CVE-2024-0409

Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2024-01-16 09:26:01 +01:00
Alexander Volkov
f1bd82552b ephyr: Send RRCrtcChangeNotify events on resize
After resizing Xephyr's window RRGetCrtcInfo returns the changed size,
but the RRCrtcChangeNotify event is not sent.
Call RRGetInfo(pScreen, TRUE) to update the current mode and send
notifications to clients.
2023-12-17 19:21:55 +00:00
Konstantin Pugin
8252b110f3 Xephyr: use glamor glx provider
Xephyr now gained an ability to use glamor glx provider.
Unfortunately, without DRI3, we end up with same llvmpipe as before

Signed-off-by: Konstantin Pugin <ria.freelander@gmail.com>
2023-11-07 18:20:48 +03:00
Tamura Dai
c107ee41f9 Xephyr: fix tiny memleak in KdParseKeyboard().
ki->name has already initialized in KdNewKeyboard() with strdup().
But initialized in KdParseKeyboard() again.

Signed-off-by: Tamura Dai <kirinode0@gmail.com>
2023-05-12 18:30:24 +09:00
Tamura Dai
f33962966f Xephyr: fix help output.
"-mouse" require two commas before options.

Signed-off-by: Tamura Dai <kirinode0@gmail.com>
2023-01-22 22:35:59 +00:00
Adam Jackson
cf30498fb8 ephyr: Sync even less in ephyrInternalDamageRedisplay
If we have multiple damage rects we would sync (if we would sync) after
every hostx_paint_rect. For shm images you'd rather push all the
ShmPutImage requests and wait after the last one.

      before                  after   Operation
------------   --------------------   -------------------------
 232000000.0    240000000.0 (1.034)   Dot
  41500000.0     41400000.0 (0.998)   1x1 rectangle
  11400000.0     11400000.0 (1.000)   10x10 rectangle
    553000.0       553000.0 (1.000)   100x100 rectangle
     37300.0        38500.0 (1.032)   500x500 rectangle
    831000.0      1140000.0 (1.372)   PutImage 10x10 square
     65200.0       134000.0 (2.055)   PutImage 100x100 square
      3410.0         3500.0 (1.026)   PutImage 500x500 square
    810000.0      1150000.0 (1.420)   ShmPutImage 10x10 square
    346000.0       364000.0 (1.052)   ShmPutImage 100x100 square
     22400.0        22800.0 (1.018)   ShmPutImage 500x500 square

Reviewed-by: Emma Anholt <emma@anholt.net>
2022-06-27 16:40:03 -04:00
Adam Jackson
7f88489963 ephyr: Sync less in hostx_paint_rect
Move the xcb_aux_sync into the shm path, where we do still need it to
synchronize access with the host. In the non-shm path the image is
copied to the host anyway so the sync just adds latency and keeps you
from using all your network bandwidth.

Only the non-shm-putimage path benefits from this, but the benefit is
significant even on the local machine (here a 3.2GHz Core i7-8700, using
XEPHYR_NO_SHM=1):

      before                  after   Operation
------------   --------------------   -------------------------
 228000000.0    225000000.0 (0.987)   Dot
  40900000.0     41600000.0 (1.017)   1x1 rectangle
  10400000.0     10700000.0 (1.029)   10x10 rectangle
    477000.0       471000.0 (0.987)   100x100 rectangle
     30900.0        31800.0 (1.029)   500x500 rectangle
    760000.0       981000.0 (1.291)   PutImage 10x10 square
     14700.0        19200.0 (1.306)   PutImage 100x100 square
       320.0          382.0 (1.194)   PutImage 500x500 square
    749000.0       984000.0 (1.314)   ShmPutImage 10x10 square
    268000.0       304000.0 (1.134)   ShmPutImage 100x100 square
     16600.0        18500.0 (1.114)   ShmPutImage 500x500 square

Reviewed-by: Emma Anholt <emma@anholt.net>
2022-06-27 16:39:49 -04:00
Alan Coopersmith
6f9fce0360 Replace "the the" with a single "the" in docs & comments
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Martin Roukala <martin.roukala@mupuf.org>
2022-03-31 13:27:57 -07:00
nerdopolis
4c03b67d33 xephyr: Don't check for SeatId anymore
After a change for the xserver to automatically determine the seat
based on the XDG_SEAT variable, xephyr stopped working. This was
because of an old feature where xephyr used to handle evdev
directly. This was dropped some time ago, and now this check is
not needed
2022-02-03 22:34:03 +00:00
Povilas Kanapickas
c97397dc47 Remove autotools support
Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
2021-10-27 13:15:40 +03:00
Adam Jackson
7d5b4c5405 glamor: Require EGL_KHR_no_config_context
This is not actually a change for xwayland with gbm, or for xfree86 with
big-GL, but we do change them as well to use EGL_NO_CONFIG_KHR
explicitly.

Reviewed-by: Emma Anholt <emma@anholt.net>
2021-09-15 19:14:23 +00:00
Adam Jackson
22772f0068 ephyr: Don't open-code glamor_compile_glsl_prog
Reviewed-by: Emma Anholt <emma@anholt.net>
2021-09-15 19:14:23 +00:00
Adam Jackson
07fa12ad1d ephyr/glamor: Port to EGL
There's no real benefit to using GLX, and the other DDXes are using EGL
already, so let's converge on EGL so we can concentrate the fixes in one
place.

We go to some effort to avoid being the thing that requires libX11 here.
We prefer EGL_EXT_platform_xcb over _x11, and if forced to use the
latter we'll ask the dynamic linker for XGetXCBConnection and
XOpenDisplay rather than link against xlib stuff ourselves. Xephyr is
now a pure XCB application if it can be.

Reviewed-by: Emma Anholt <emma@anholt.net>
2021-09-15 19:14:23 +00:00
Olivier Fourdan
3cdac5ba07 mi: List extensions in usage message
Not all extensions can be enabled or disabled at runtime, list the
extensions which can from the help message rather than on error only.

v2:
 * Print the header message in the ListStaticExtensions() (Peter
   Hutterer)
 * Do not export ListStaticExtensions() as Xserver API

Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2021-01-29 12:52:09 +00:00
Michel Dänzer
add3df2001 Consolidate fourcc.h
Move the copy in hw/xfree86/common to include/, and remove the one in
hw/kdrive/src/.

Fixes DIX glamor code including an xfree86 DDX header.
2020-09-15 11:43:16 +02:00
Alan Coopersmith
23e83724df Fix spelling/wording issues
Most (but not all) of these were found by using
  codespell --builtin clear,rare,usage,informal,code,names
but not everything reported by that was fixed.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2020-07-05 13:07:33 -07:00
Michel Dänzer
4287604425 Xephyr: Cast "red" to char* for xcb_aux_parse_color
xcb_aux_parse_color takes a non-const pointer, even though it doesn't
modify the string or take ownership of its memory.

Avoids the following warning from GCC:

../hw/kdrive/ephyr/hostx.c: In function ‘hostx_init’:
../hw/kdrive/ephyr/hostx.c:683:30: warning: passing argument 1 of ‘xcb_aux_parse_color’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  683 |     if (!xcb_aux_parse_color("red", &red, &green, &blue)) {
      |                              ^~~~~
In file included from ../hw/kdrive/ephyr/hostx.c:50:
/usr/include/xcb/xcb_aux.h:194:27: note: expected ‘char *’ but argument is of type ‘const char *’
  194 | xcb_aux_parse_color(char *color_name,
      |                     ~~~~~~^~~~~~~~~~
2020-01-28 20:35:06 +00:00
Sven Joachim
47387916fb Fix various spelling errors 2019-10-01 17:05:28 +00:00
Diego Viola
0854732d55 ephyr: fix typo: rquires -> requires
Signed-off-by: Diego Viola <diego.viola@gmail.com>
2019-04-19 22:13:46 -03:00
Jon Turney
2764128e9f Fix missing prototype warning for xf86_find_platform_device_by_devnum()
../hw/kdrive/src/kdrive.c:999:1: warning: no previous prototype for ‘xf86_find_platform_device_by_devnum’ [-Wmissing-prototypes]

Place the same guards around this stub as are around including the
hotplug.h header which declares the prototype.
2019-04-17 13:57:38 +01:00
Eric Anholt
164a37eac2 simple-xinit: Introduce an escaped "--" argument.
For testing xephyr-glamor on top of Xvfb in CI better, I want to be
able to make one command line describing the nested server invocation,
but that means I need to get two simple-xinits to split client/server
on different "--" arguments.

Signed-off-by: Eric Anholt <eric@anholt.net>
2019-03-27 09:50:19 -07:00
Alan Coopersmith
4ad21c3247 Add ddxInputThread call from os layer into ddx layer
Allows ddx's to run additional code as necessary to set up the
input thread.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2019-02-25 15:48:03 +00:00
Adam Jackson
03b2125005 dix: Remove LegalModifier()
This hasn't done anything besides return TRUE in a long long time.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2018-09-28 16:25:17 -04:00
Adam Jackson
a23eba2a91 dix: Merge AbortDDX into ddxGiveUp
These are so close to identical that most DDXes implement one in terms
of the other. All the relevant cases can be distinguished by the error
code, so merge the functions together to make things simpler.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2018-09-28 16:25:12 -04:00
Eric Anholt
e3e5265743 meson: Remove XXX for libconfig in kdrive.
This is already included in ephyr (the only kdrive server left)

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-08-02 10:27:26 -04:00
Adam Jackson
a1e8dc0516 meson: Install man pages
Signed-off-by: Adam Jackson <ajax@redhat.com>
Acked-by: Keith Packard <keithp@keithp.com>
2018-03-27 10:28:33 -04:00
Adam Jackson
2e497bf887 man: s/__/@/g
A cosmetic change for automake (though we have to replicate some of
xorg-macros.m4 in manpages.am now), but meson's configure_file() wants
@-delimited strings.

Signed-off-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
2018-03-27 10:13:17 -04:00
Louis-Francis Ratté-Boulianne
cef12efc15 glamor: Implement GetSupportedModifiers
Implement function added in DRI3 v1.1.

A newest version of libepoxy (>= 1.4.4) is required as earlier
versions use a problematic version of Khronos
EXT_image_dma_buf_import_modifiers spec.

v4: Only send scanout-supported modifiers if flipping is possible
v5: Fix memory corruption in XWayland (uninitialized pointer)

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Acked-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
2018-03-05 13:27:55 -05:00
Alexander Volkov
343ee7d075 Xephyr: Avoid calling xcb_shm_detach() twice
This call was forgotten to be removed in
90996f5909 in which
hostx_destroy_shm_segment() was introduced, which
itself does it.

Signed-off-by: Alexander Volkov <a.volkov@rusbitech.ru>
Reviewed-by: Adam Jackson <ajax@redhat.com>
2018-02-20 11:05:59 -05:00
Laurent Carlier
82d9e99bf9 meson: Xephyr Requires xcb-shm version 1.9.3 or newer
Sync with commit 8510f542e5

Signed-off-by: Laurent Carlier <lordheavym@gmail.com>
2018-02-19 13:14:42 -05:00
Adam Jackson
67c303fff3 miinitext: Load GLX on the mi path
Add a stub for Xnest so it continues to link, but otherwise we support
GLX on every server so there's no need to make every DDX add it.

Signed-off-by: Adam Jackson <ajax@redhat.com>
2018-02-14 17:04:48 -05:00