diff options
Diffstat (limited to 'community/lightdm/lightdm-xdg-session-class.patch')
-rwxr-xr-x | community/lightdm/lightdm-xdg-session-class.patch | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/community/lightdm/lightdm-xdg-session-class.patch b/community/lightdm/lightdm-xdg-session-class.patch new file mode 100755 index 000000000..cd9093cf3 --- /dev/null +++ b/community/lightdm/lightdm-xdg-session-class.patch @@ -0,0 +1,130 @@ +=== modified file 'src/seat.c' +--- src/seat.c 2013-10-03 21:38:07 +0000 ++++ src/seat.c 2013-10-21 22:55:16 +0000 +@@ -1075,6 +1075,7 @@ + g_signal_connect (greeter_session, "stopped", G_CALLBACK (session_stopped_cb), seat); + + set_session_env (SESSION (greeter_session)); ++ session_set_env (SESSION (greeter_session), "XDG_SESSION_CLASS", "greeter"); + + session_set_pam_service (SESSION (greeter_session), GREETER_SERVICE); + if (getuid () == 0) + +=== modified file 'src/session-child.c' +--- src/session-child.c 2013-07-26 02:27:41 +0000 ++++ src/session-child.c 2013-10-21 22:55:16 +0000 +@@ -213,7 +213,6 @@ + gchar *authentication_result_string; + gchar *service; + gchar *username; +- gchar *class; + gchar *tty; + gchar *remote_host_name; + gchar *xdisplay; +@@ -284,7 +283,7 @@ + username = read_string (); + read_data (&do_authenticate, sizeof (do_authenticate)); + read_data (&is_interactive, sizeof (is_interactive)); +- class = read_string (); ++ read_string (); /* Used to be class, now we just use the environment variable */ + tty = read_string (); + remote_host_name = read_string (); + xdisplay = read_string (); +@@ -480,7 +479,7 @@ + g_variant_builder_init (&ck_parameters, G_VARIANT_TYPE ("(a(sv))")); + g_variant_builder_open (&ck_parameters, G_VARIANT_TYPE ("a(sv)")); + g_variant_builder_add (&ck_parameters, "(sv)", "unix-user", g_variant_new_int32 (user_get_uid (user))); +- if (g_strcmp0 (class, XDG_SESSION_CLASS_GREETER) == 0) ++ if (g_strcmp0 (pam_getenv (pam_handle, "XDG_SESSION_CLASS"), "greeter") == 0) + g_variant_builder_add (&ck_parameters, "(sv)", "session-type", g_variant_new_string ("LoginWindow")); + if (xdisplay) + { +@@ -601,7 +600,7 @@ + if (child_pid > 0) + { + /* Log to utmp */ +- if (g_strcmp0 (class, XDG_SESSION_CLASS_GREETER) != 0) ++ if (g_strcmp0 (pam_getenv (pam_handle, "XDG_SESSION_CLASS"), "greeter") != 0) + { + struct utmpx ut; + struct timeval tv; +@@ -632,7 +631,7 @@ + child_pid = 0; + + /* Log to utmp */ +- if (g_strcmp0 (class, XDG_SESSION_CLASS_GREETER) != 0) ++ if (g_strcmp0 (pam_getenv (pam_handle, "XDG_SESSION_CLASS"), "greeter") != 0) + { + struct utmpx ut; + struct timeval tv; + +=== modified file 'src/session.c' +--- src/session.c 2013-09-19 14:53:48 +0000 ++++ src/session.c 2013-10-21 22:43:11 +0000 +@@ -84,9 +84,6 @@ + /* File to log to */ + gchar *log_filename; + +- /* Seat class */ +- gchar *class; +- + /* tty this session is running on */ + gchar *tty; + +@@ -200,14 +197,6 @@ + } + + void +-session_set_class (Session *session, const gchar *class) +-{ +- g_return_if_fail (session != NULL); +- g_free (session->priv->class); +- session->priv->class = g_strdup (class); +-} +- +-void + session_set_display_server (Session *session, DisplayServer *display_server) + { + g_return_if_fail (session != NULL); +@@ -615,7 +604,7 @@ + write_string (session, session->priv->username); + write_data (session, &session->priv->do_authenticate, sizeof (session->priv->do_authenticate)); + write_data (session, &session->priv->is_interactive, sizeof (session->priv->is_interactive)); +- write_string (session, session->priv->class); ++ write_string (session, NULL); /* Used to be class, now we just use the environment variable */ + write_string (session, session->priv->tty); + write_string (session, session->priv->remote_host_name); + write_string (session, session->priv->xdisplay); +@@ -874,7 +863,6 @@ + g_free (self->priv->messages); + g_free (self->priv->authentication_result_string); + g_free (self->priv->log_filename); +- g_free (self->priv->class); + g_free (self->priv->tty); + g_free (self->priv->xdisplay); + if (self->priv->x_authority) + +=== modified file 'src/session.h' +--- src/session.h 2013-08-14 20:14:16 +0000 ++++ src/session.h 2013-10-21 22:55:16 +0000 +@@ -57,10 +57,6 @@ + SESSION_TYPE_REMOTE + } SessionType; + +-#define XDG_SESSION_CLASS_USER "user" +-#define XDG_SESSION_CLASS_GREETER "greeter" +-#define XDG_SESSION_CLASS_LOCK_SCREEN "lock-screen" +- + GType session_get_type (void); + + Session *session_new (void); +@@ -83,8 +79,6 @@ + + void session_set_log_file (Session *session, const gchar *filename); + +-void session_set_class (Session *session, const gchar *class); +- + void session_set_display_server (Session *session, DisplayServer *display_server); + + DisplayServer *session_get_display_server (Session *session); + |