* 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.
		
			
				
	
	
		
			54 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| 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
 | |
| 
 |