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.
This commit is contained in:
parent
da3c784c68
commit
a4fd1840ab
@ -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 \
|
||||
|
@ -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
|
||||
|
54
gnu/packages/patches/lightdm-arguments-ordering.patch
Normal file
54
gnu/packages/patches/lightdm-arguments-ordering.patch
Normal file
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user