guix-commits
[Top][All Lists]
Advanced

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

09/13: gnu: lightdm: Apply patch to allow using VNC options.


From: guix-commits
Subject: 09/13: gnu: lightdm: Apply patch to allow using VNC options.
Date: Sun, 28 Aug 2022 22:33:11 -0400 (EDT)

apteryx pushed a commit to branch master
in repository guix.

commit a4fd1840ab16086d6b9c4001b510d73ef5727222
Author: Maxim Cournoyer <maxim.cournoyer@gmail.com>
AuthorDate: Tue Aug 9 15:47:21 2022 -0400

    gnu: lightdm: Apply patch to allow using VNC options.
    
    * gnu/packages/patches/lightdm-arguments-ordering.patch: New patch.
    * gnu/local.mk (dist_patch_DATA): Register it.
    * gnu/packages/display-managers.scm (lightdm): Apply it.
---
 gnu/local.mk                                       |  1 +
 gnu/packages/display-managers.scm                  |  3 +-
 .../patches/lightdm-arguments-ordering.patch       | 54 ++++++++++++++++++++++
 3 files changed, 57 insertions(+), 1 deletion(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 6a55ecc8d8..396f227188 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1360,6 +1360,7 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/librime-fix-build-with-gcc10.patch      \
   %D%/packages/patches/libvirt-add-install-prefix.patch        \
   %D%/packages/patches/libziparchive-add-includes.patch                \
+  %D%/packages/patches/lightdm-arguments-ordering.patch                \
   %D%/packages/patches/lightdm-vncserver-check.patch           \
   %D%/packages/patches/localed-xorg-keyboard.patch             \
   %D%/packages/patches/kdiagram-Fix-missing-link-libraries.patch \
diff --git a/gnu/packages/display-managers.scm 
b/gnu/packages/display-managers.scm
index 022e0509aa..2a0a72d145 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -269,7 +269,8 @@ experience for your users, your family and yourself")
               (sha256
                (base32
                 "1wr60c946p8jz9kb8zi4cd8d4mkcy7infbvlfzwajiglc22nblxn"))
-              (patches (search-patches "lightdm-vncserver-check.patch"))))
+              (patches (search-patches "lightdm-arguments-ordering.patch"
+                                       "lightdm-vncserver-check.patch"))))
     (build-system gnu-build-system)
     (arguments
      '(#:parallel-tests? #f             ; fails when run in parallel
diff --git a/gnu/packages/patches/lightdm-arguments-ordering.patch 
b/gnu/packages/patches/lightdm-arguments-ordering.patch
new file mode 100644
index 0000000000..c3b513a19a
--- /dev/null
+++ b/gnu/packages/patches/lightdm-arguments-ordering.patch
@@ -0,0 +1,54 @@
+When providing the VNCServer command as 'Xvnc -SecurityTypes None',
+the formatted command line used would look like:
+
+  Xvnc  -SecurityTypes None :1 -auth /var/run/lightdm/root/:1
+
+which is invalid (the display number must appear first).
+
+Submitted upstream at: https://github.com/canonical/lightdm/pull/265
+
+ src/x-server-local.c | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/src/x-server-local.c b/src/x-server-local.c
+index 7c4ab870..6c540d18 100644
+--- a/src/x-server-local.c
++++ b/src/x-server-local.c
+@@ -463,14 +463,20 @@ x_server_local_start (DisplayServer *display_server)
+     l_debug (display_server, "Logging to %s", log_file);
+ 
+     g_autofree gchar *absolute_command = get_absolute_command (priv->command);
++    g_auto(GStrv) tokens = g_strsplit (absolute_command, " ", 2);
++    const gchar* binary = tokens[0];
++    const gchar *extra_options = tokens[1];
++
+     if (!absolute_command)
+     {
+         l_debug (display_server, "Can't launch X server %s, not found in 
path", priv->command);
+         stopped_cb (priv->x_server_process, X_SERVER_LOCAL (server));
+         return FALSE;
+     }
+-    g_autoptr(GString) command = g_string_new (absolute_command);
++    g_autoptr(GString) command = g_string_new (binary);
+ 
++    /* The display argument must be given first when the X server used
++     * is Xvnc. */
+     g_string_append_printf (command, " :%d", priv->display_number);
+ 
+     if (priv->config_file)
+@@ -513,6 +519,12 @@ x_server_local_start (DisplayServer *display_server)
+     if (X_SERVER_LOCAL_GET_CLASS (server)->add_args)
+         X_SERVER_LOCAL_GET_CLASS (server)->add_args (server, command);
+ 
++    /* Any extra user options provided via the VNCServer 'command'
++     * config option are appended last, so the user can override any
++     * of the above. */
++    if (extra_options)
++        g_string_append_printf (command, " %s", extra_options);
++
+     process_set_command (priv->x_server_process, command->str);
+ 
+     l_debug (display_server, "Launching X Server");
+-- 
+2.36.1
+



reply via email to

[Prev in Thread] Current Thread [Next in Thread]