Bug#1122855: xvfb-run broken after todays updates?
Hi,
Am 13.12.25 um 15:40 schrieb Simon McVittie:
On Sat, 13 Dec 2025 at 12:06:29 +0100, Rene Engelhard wrote:
root@frodo:~# xvfb-run --auto-servernum true; echo $?
1
For what it's worth, this is working as expected for me and exiting 0 (in up-to-date unstable on amd64, either on a laptop or in a podman container) so perhaps there is some other factor.
On a system where this doesn't work, running as "xvfb-run -e /dev/stderr --auto-servernum true" might produce useful information (or not). For historical reasons Xvfb's stderr is sent to /dev/null by default.
For updated/future packages, I wonder whether it's time to be preferring the utilities from the xwayland-run package (wlheadless-run for native Wayland apps, or xwfb-run for X11 apps) as a wrapper for regression tests that reflects how users of our most common desktop environments will increasingly be using the app.
Which unfortunately fails with --auto-servernum:
$ xwfb-run -e /dev/stderr --auto-servernum true
usage: xwfb-run [-h] [-a AUTO_SERVERNUM] [-c COMPOSITOR] [-d AUTO_DISPLAY] [-e ERROR_FILE] [-f AUTH_FILE] [-n SERVER_NUM] [-l] [-p XAUTH_PROTO]
[-s SERVER_ARGS] [-w WAIT] [-z COMPOSITOR_ARGS]
[command ...]
Run an X11 client in a dedicated Xwayland server on a Wayland compositor headless.
positional arguments:
command The program to run and arguments.
options:
-h, --help show this help message and exit
-a, --auto-servernum AUTO_SERVERNUM
Unused, kept for backward compatibility only.
-c, --compositor COMPOSITOR
Use the compositor class implementation.
-d, --auto-display AUTO_DISPLAY
Unused, kept for backward compatibility only.
-e, --error-file ERROR_FILE
File used to store xauth and X server errors.
-f, --auth-file AUTH_FILE
File used to store auth cookie.
-n, --server-num SERVER_NUM
Xserver number to use.
-l, --listen-tcp Enable TCP port listening in the X server.
-p, --xauth-proto XAUTH_PROTO
Xauthority protocol name to use.
-s, --server-args SERVER_ARGS
Arguments to pass to the X server.
-w, --wait WAIT Delay in seconds to wait for the X server to start before running COMMAND.
-z, --compositor-args COMPOSITOR_ARGS
Arguments to pass to the Wayland compositor.
so is not exactly argument-compatible...
But running it here gives:
$ xwfb-run -e /dev/stderr true; echo $?
Date: 2025-12-13 CET
[16:05:00.741] weston 14.0.2
https://wayland.freedesktop.org
Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
Build: 14.0.2
[16:05:00.741] Command line: weston --no-config --backend headless --socket wayland-485968
[16:05:00.741] OS: Linux, 6.12.57+deb13-amd64, #1 SMP PREEMPT_DYNAMIC Debian 6.12.57-1 (2025-11-05), x86_64
[16:05:00.741] Flight recorder: enabled
[16:05:00.741] Starting with no config file.
[16:05:00.741] Output repaint window is 7 ms maximum.
[16:05:00.741] Loading module '/usr/lib/x86_64-linux-gnu/libweston-14/headless-backend.so'
[16:05:00.745] Registered plugin API 'weston_windowed_output_api_headless_v2' of size 16
[16:05:00.745] Color manager: no-op
protocol support: no
[16:05:00.745] Output 'headless' attempts EOTF mode SDR and colorimetry mode default.
[16:05:00.745] Output 'headless' using color profile: stock sRGB color profile
[16:05:00.745] Output 'headless' enabled with head(s) headless
[16:05:00.745] Compositor capabilities:
arbitrary surface rotation: no
screen capture uses y-flip: no
cursor planes: no
arbitrary resolutions: no
view mask clipping: no
explicit sync: no
color operations: no
presentation clock: CLOCK_MONOTONIC_RAW, id 4
presentation clock resolution: 0.000000001 s
[16:05:00.745] Loading module '/usr/lib/x86_64-linux-gnu/weston/desktop-shell.so'
[16:05:00.745] launching '/usr/libexec/weston-keyboard'
[16:05:00.746] launching '/usr/libexec/weston-desktop-shell'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
Xwayland glamor: GBM Wayland interfaces not available
Failed to initialize glamor, falling back to sw
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Could not resolve keysym XF86RefreshRateToggle
> Warning: Could not resolve keysym XF86Accessibility
> Warning: Could not resolve keysym XF86DoNotDisturb
Errors from xkbcomp are not fatal to the X server
[16:05:01.780] caught signal 15
[16:05:01.780] no-op renderer SHM seed: 2
0
with xkb-data 2.44 and
rene@frodo:~/LibreOffice/git/master$ xwfb-run true; echo $?
Xwayland failed to start!
1
rene@frodo:~/LibreOffice/git/master$ xwfb-run -e /dev/stderr true; echo $?
Date: 2025-12-13 CET
[16:08:00.363] weston 14.0.2
https://wayland.freedesktop.org
Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
Build: 14.0.2
[16:08:00.363] Command line: weston --no-config --backend headless --socket wayland-486125
[16:08:00.363] OS: Linux, 6.12.57+deb13-amd64, #1 SMP PREEMPT_DYNAMIC Debian 6.12.57-1 (2025-11-05), x86_64
[16:08:00.363] Flight recorder: enabled
[16:08:00.363] Starting with no config file.
[16:08:00.363] Output repaint window is 7 ms maximum.
[16:08:00.363] Loading module '/usr/lib/x86_64-linux-gnu/libweston-14/headless-backend.so'
[16:08:00.367] Registered plugin API 'weston_windowed_output_api_headless_v2' of size 16
[16:08:00.367] Color manager: no-op
protocol support: no
[16:08:00.367] Output 'headless' attempts EOTF mode SDR and colorimetry mode default.
[16:08:00.367] Output 'headless' using color profile: stock sRGB color profile
[16:08:00.367] Output 'headless' enabled with head(s) headless
[16:08:00.367] Compositor capabilities:
arbitrary surface rotation: no
screen capture uses y-flip: no
cursor planes: no
arbitrary resolutions: no
view mask clipping: no
explicit sync: no
color operations: no
presentation clock: CLOCK_MONOTONIC_RAW, id 4
presentation clock resolution: 0.000000001 s
[16:08:00.367] Loading module '/usr/lib/x86_64-linux-gnu/weston/desktop-shell.so'
[16:08:00.367] launching '/usr/libexec/weston-keyboard'
[16:08:00.367] launching '/usr/libexec/weston-desktop-shell'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
Xwayland glamor: GBM Wayland interfaces not available
Failed to initialize glamor, falling back to sw
XKB: Failed to compile keymap
Keyboard initialization failed. This could be a missing or incorrect setup of xkeyboard-config.
(EE)
Fatal server error:
(EE) Failed to activate virtual core keyboard: 2(EE)
Xwayland failed to start!
[16:08:01.393] caught signal 15
[16:08:01.393] no-op renderer SHM seed: 2
Traceback (most recent call last):
File "/usr/bin/xwfb-run", line 129, in <module>
xwayland.cleanup()
~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/wlheadless/xwayland.py", line 153, in cleanup
self.remove_xauth_entry()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/wlheadless/xwayland.py", line 123, in remove_xauth_entry
xauth_command_line = ['xauth', 'remove', os.environ['DISPLAY']]
~~~~~~~~~~^^^^^^^^^^^
File "<frozen os>", line 717, in __getitem__
KeyError: 'DISPLAY'
1
with xkb-data 2.46
Regards,
Rene
Reply to: