From e6f6e1ad0a21caf7e5c622dd88fcf8aefc7c49df Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Wed, 3 Mar 2021 19:04:47 +0100 Subject: [PATCH] xwayland: use -listenfd if available Xwayland's -listen option was deprecated in [1] in favor of -listenfd. [1]: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/593 --- include/xwayland/meson.build | 3 +++ xwayland/server.c | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/xwayland/meson.build b/include/xwayland/meson.build index 16712083..37ddf4ca 100644 --- a/include/xwayland/meson.build +++ b/include/xwayland/meson.build @@ -1,11 +1,14 @@ +have_listenfd = false if xwayland.found() xwayland_path = xwayland.get_pkgconfig_variable('xwayland') + have_listenfd = xwayland.get_pkgconfig_variable('have_listenfd') == 'true' else xwayland_path = xwayland_prog.full_path() endif xwayland_config_data = configuration_data() xwayland_config_data.set_quoted('XWAYLAND_PATH', xwayland_path) +xwayland_config_data.set10('HAVE_XWAYLAND_LISTENFD', have_listenfd) configure_file( output: 'config.h', configuration: xwayland_config_data, diff --git a/xwayland/server.c b/xwayland/server.c index f5c6b060..58ba1a8e 100644 --- a/xwayland/server.c +++ b/xwayland/server.c @@ -64,8 +64,13 @@ noreturn static void exec_xwayland(struct wlr_xwayland_server *server) { char *argv[] = { "Xwayland", NULL /* display, e.g. :1 */, "-rootless", "-terminate", "-core", +#if HAVE_XWAYLAND_LISTENFD + "-listenfd", NULL /* x_fd[0] */, + "-listenfd", NULL /* x_fd[1] */, +#else "-listen", NULL /* x_fd[0] */, "-listen", NULL /* x_fd[1] */, +#endif "-wm", NULL /* wm_fd[1] */, NULL, }; @@ -91,7 +96,7 @@ noreturn static void exec_xwayland(struct wlr_xwayland_server *server) { snprintf(wayland_socket_str, sizeof(wayland_socket_str), "%d", server->wl_fd[1]); setenv("WAYLAND_SOCKET", wayland_socket_str, true); - wlr_log(WLR_INFO, "WAYLAND_SOCKET=%d Xwayland :%d -rootless -terminate -core -listen %d -listen %d -wm %d", + wlr_log(WLR_INFO, "WAYLAND_SOCKET=%d Xwayland :%d -rootless -terminate -core -listenfd %d -listenfd %d -wm %d", server->wl_fd[1], server->display, server->x_fd[0], server->x_fd[1], server->wm_fd[1]);