diff options
Diffstat (limited to 'pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/xserver_path.patch')
-rw-r--r-- | pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/xserver_path.patch | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/xserver_path.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/xserver_path.patch new file mode 100644 index 00000000000..b451d129391 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/xserver_path.patch @@ -0,0 +1,83 @@ +--- a/daemon/gdm-server.c 2014-07-30 23:00:17.786841724 +0200 ++++ b/daemon/gdm-server.c 2014-07-30 23:02:10.491239180 +0200 +@@ -322,7 +322,11 @@ + fallback: + #endif + +- server->priv->command = g_strdup_printf (X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options); ++ if (g_getenv("GDM_X_SERVER") != NULL) { ++ server->priv->command = g_strdup (g_getenv("GDM_X_SERVER")); ++ } else { ++ server->priv->command = g_strdup_printf (X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options); ++ } + } + + static gboolean +--- gdm-3.16.0/daemon/gdm-x-session.c.orig 2015-04-15 18:44:16.875743928 +0200 ++++ gdm-3.16.0/daemon/gdm-x-session.c 2015-04-16 13:34:02.335708638 +0200 +@@ -207,6 +207,8 @@ + char *display_fd_string = NULL; + char *vt_string = NULL; + char *display_number; ++ int nixos_argc = 0; ++ char **nixos_argv = NULL; + gsize display_number_size; + + auth_file = prepare_auth_file (); +@@ -236,7 +238,15 @@ + + display_fd_string = g_strdup_printf ("%d", DISPLAY_FILENO); + +- g_ptr_array_add (arguments, X_SERVER); ++ if (g_getenv("GDM_X_SERVER") != NULL) { ++ int i = 0; ++ g_shell_parse_argv(g_getenv("GDM_X_SERVER"), &nixos_argc, &nixos_argv, NULL); ++ for (i = 0; i < nixos_argc; i++) { ++ g_ptr_array_add (arguments, nixos_argv[i]); ++ } ++ } else { ++ g_ptr_array_add (arguments, X_SERVER); ++ } + + if (vt_string != NULL) { + g_ptr_array_add (arguments, vt_string); +@@ -259,12 +269,12 @@ + g_ptr_array_add (arguments, "-noreset"); + g_ptr_array_add (arguments, "-keeptty"); + +- g_ptr_array_add (arguments, "-verbose"); ++ /*g_ptr_array_add (arguments, "-verbose"); + if (state->debug_enabled) { + g_ptr_array_add (arguments, "7"); + } else { + g_ptr_array_add (arguments, "3"); +- } ++ }*/ + + if (state->debug_enabled) { + g_ptr_array_add (arguments, "-core"); +@@ -275,6 +285,9 @@ + (const char * const *) arguments->pdata, + &error); + g_free (display_fd_string); ++ if (nixos_argv) { ++ g_strfreev (nixos_argv); ++ } + g_clear_object (&launcher); + g_ptr_array_free (arguments, TRUE); + +--- gdm-3.16.0/daemon/gdm-session.c.orig 2015-04-16 14:19:01.392802683 +0200 ++++ gdm-3.16.0/daemon/gdm-session.c 2015-04-16 14:20:36.012296764 +0200 +@@ -2359,6 +2359,12 @@ + gchar *desktop_names; + const char *locale; + ++ if (g_getenv ("GDM_X_SERVER") != NULL) { ++ gdm_session_set_environment_variable (self, ++ "GDM_X_SERVER", ++ g_getenv ("GDM_X_SERVER")); ++ } ++ + gdm_session_set_environment_variable (self, + "GDMSESSION", + get_session_name (self)); |