[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: