summary refs log tree commit diff
path: root/pkgs/desktops/gnome-3/3.22/core/gdm/3.16-wip/xserver_path.patch
blob: b451d129391a093f46328906311319d2f0619a4f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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));