[mutter] xwayland: Check for listenfd option



commit 22b926eea7171239374fee34a961b5b096675908
Author: Olivier Fourdan <ofourdan redhat com>
Date:   Fri Jan 22 11:16:24 2021 +0100

    xwayland: Check for listenfd option
    
    Current Xwayland has marked the command line option "-listen" as
    deprecated in favor of "-listenfd".
    
    Use the pkg-config variable "have_listenfd" (if available) from Xwayland
    to determine if we should use that option, to avoid a deprecation
    warning when spawning Xwayland.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1682>

 config.h.meson              |  3 +++
 meson.build                 | 11 +++++++++++
 src/wayland/meta-xwayland.c | 12 +++++++++---
 3 files changed, 23 insertions(+), 3 deletions(-)
---
diff --git a/config.h.meson b/config.h.meson
index 4b7a4a1070..26e13b9ca4 100644
--- a/config.h.meson
+++ b/config.h.meson
@@ -71,6 +71,9 @@
 /* Whether Xwayland has -initfd option */
 #mesondefine HAVE_XWAYLAND_INITFD
 
+/* Whether Xwayland has -listenfd option */
+#mesondefine HAVE_XWAYLAND_LISTENFD
+
 /* Whether libX11 has XSetIOErrorExitHandler */
 #mesondefine HAVE_XSETIOERROREXITHANDLER
 
diff --git a/meson.build b/meson.build
index 2cf1197962..88780e43c4 100644
--- a/meson.build
+++ b/meson.build
@@ -391,6 +391,7 @@ if cc.has_header_symbol('sys/prctl.h', 'prctl')
 endif
 
 have_xwayland_initfd = false
+have_xwayland_listenfd = false
 if have_wayland
   xwayland_dep = dependency('xwayland', required: false)
 
@@ -434,6 +435,15 @@ if have_wayland
   if (have_xwayland_initfd)
     cdata.set('HAVE_XWAYLAND_INITFD', 1)
   endif
+
+  # For Xwayland -listenfd usage
+  if xwayland_dep.found()
+    have_xwayland_listenfd = xwayland_dep.get_pkgconfig_variable('have_listenfd') == 'true'
+  endif
+
+  if (have_xwayland_listenfd)
+    cdata.set('HAVE_XWAYLAND_LISTENFD', 1)
+  endif
 endif
 
 have_xsetioerrorexithandler = false
@@ -518,6 +528,7 @@ output = [
   '        Introspection............ ' + have_introspection.to_string(),
   '        Profiler................. ' + have_profiler.to_string(),
   '        Xwayland initfd.......... ' + have_xwayland_initfd.to_string(),
+  '        Xwayland listenfd........ ' + have_xwayland_listenfd.to_string(),
   '        Safe X11 I/O errors...... ' + have_xsetioerrorexithandler.to_string(),
   '',
   '    Tests:',
diff --git a/src/wayland/meta-xwayland.c b/src/wayland/meta-xwayland.c
index 8c2ec1e75d..7abcb5def2 100644
--- a/src/wayland/meta-xwayland.c
+++ b/src/wayland/meta-xwayland.c
@@ -53,6 +53,12 @@
 #include "wayland/meta-xwayland-surface.h"
 #include "x11/meta-x11-display-private.h"
 
+#ifdef HAVE_XWAYLAND_LISTENFD
+#define XWAYLAND_LISTENFD "-listenfd"
+#else
+#define XWAYLAND_LISTENFD "-listen"
+#endif
+
 static int display_number_override = -1;
 
 static void meta_xwayland_stop_xserver (MetaXWaylandManager *manager);
@@ -914,9 +920,9 @@ meta_xwayland_start_xserver (MetaXWaylandManager *manager,
   args[i++] = "-core";
   args[i++] = "-auth";
   args[i++] = manager->auth_file;
-  args[i++] = "-listen";
+  args[i++] = XWAYLAND_LISTENFD;
   args[i++] = "4";
-  args[i++] = "-listen";
+  args[i++] = XWAYLAND_LISTENFD;
   args[i++] = "5";
   args[i++] = "-displayfd";
   args[i++] = "6";
@@ -924,7 +930,7 @@ meta_xwayland_start_xserver (MetaXWaylandManager *manager,
   args[i++] = "-initfd";
   args[i++] = "7";
 #else
-  args[i++] = "-listen";
+  args[i++] = XWAYLAND_LISTENFD;
   args[i++] = "7";
 #endif
   for (j = 0; j <  G_N_ELEMENTS (x11_extension_names); j++)


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