]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Add a gdmflexiserver binary that provides backwards compatibility with existing sessions
authorRobert Ancell <robert.ancell@canonical.com>
Sat, 6 Aug 2011 14:52:06 +0000 (16:52 +0200)
committerRobert Ancell <robert.ancell@canonical.com>
Sat, 6 Aug 2011 14:52:06 +0000 (16:52 +0200)
1  2 
NEWS
src/Makefile.am
src/display.c
src/gdmflexiserver
src/process.c
src/process.h

diff --cc NEWS
index 7b5f92eb86998744d662de486e1030d499eb527f,882a37782e760ad8aacfb0c6937d047ed05c9252..21e9fe07479d7a164c6bbf6793d06d618bdb7694
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
@@@ -1,7 -1,3 +1,9 @@@
 +Overview of changes in lightdm 0.9.3
 +
 +    * Unlock ConsoleKit sessions when switching to them
++    * Add a gdmflexiserver binary that provides backwards compatibility with
++      existing sessions
 +
  Overview of changes in lightdm 0.9.2
  
      * Fix annotation and Vala bindings for getting the UserList singleton
diff --cc src/Makefile.am
index 9687c4c4e33c5b286de5ea32dbbe3770c603d7b9,07275f71d9fcf43e3c95d1944df74bca5f6ae8a5..8fc14fd34d7ac1353c01a7240c67dd8562884855
@@@ -1,5 -1,5 +1,7 @@@
  sbin_PROGRAMS = lightdm
  
++dist_pkglibexec_SCRIPTS = gdmflexiserver
++
  ldm-marshal.c: ldm-marshal.list
        @GLIB_GENMARSHAL@ --prefix=ldm_marshal $(srcdir)/ldm-marshal.list --header --body > ldm-marshal.c
  
diff --cc src/display.c
index e34b36a3d6c17f4bcdb44655c39d6c754c311a53,0cfa726033c79d2b35bb979b9ecbb27d904677bf..6eff5fe96333ea38df78f92471133608c9844540
@@@ -584,7 -584,7 +584,8 @@@ static Session 
  create_session (Display *display, PAMSession *pam_session, const gchar *session_name, gboolean is_greeter, const gchar *log_filename)
  {
      User *user;
 -    gchar *sessions_dir, *filename, *path, *orig_path, *command = NULL;
 +    gchar *sessions_dir, *filename, *path, *command = NULL;
++    const gchar *orig_path;
      GKeyFile *session_desktop_file;
      Session *session;
      gchar *cookie;
  
      set_env_from_pam_session (session, pam_session);
  
 -    /* Insert our own utility directory to PATH */
++    /* Insert our own utility directory to PATH
++     * This is to provide gdmflexiserver which provides backwards compatibility with GDM.
++     * This can be removed when this is no longer required.
++     */
+     orig_path = process_get_env (PROCESS (session), "PATH");
 -    path = g_strdup_printf ("%s:%s", PKGLIBEXEC_DIR, orig_path);
 -    process_set_env (PROCESS (session), "PATH", path);
 -    g_free (path);
 -    g_free (orig_path);
++    if (orig_path)
++    {
++        path = g_strdup_printf ("%s:%s", PKGLIBEXEC_DIR, orig_path);
++        process_set_env (PROCESS (session), "PATH", path);
++        g_free (path);
++    }
      process_set_log_file (PROCESS (session), log_filename);
  
      /* Open ConsoleKit session */
index 0000000000000000000000000000000000000000,3168e177ab8f0dc820d49a33bd4702b268ad7537..3168e177ab8f0dc820d49a33bd4702b268ad7537
mode 000000,100755..100755
--- /dev/null
diff --cc src/process.c
index 286f73232cd763a884b8139a78b8142f84d698a7,babb0b194bb49a36044fc61bcddde2cc245c5a01..e51acab9cf6ad03a5ec4dbc5346ea86563e6adb1
@@@ -97,6 -97,13 +97,13 @@@ process_set_env (Process *process, cons
      g_hash_table_insert (process->priv->env, g_strdup (name), g_strdup (value));
  }
  
 -gchar *
++const gchar *
+ process_get_env (Process *process, const gchar *name)
+ {
 -    g_return_if_fail (process != NULL);
 -    return g_strdup (g_hash_table_lookup (process->priv->env, name));
++    g_return_val_if_fail (process != NULL, FALSE);
++    return g_hash_table_lookup (process->priv->env, name);
+ }
  static void
  process_watch_cb (GPid pid, gint status, gpointer data)
  {
diff --cc src/process.h
index 4e739d60aea4f897000f06798547aea3b832c896,eac071eea1ff7ee9447c0c0ea255970569522e1c..60c95264dd47f080c3ee65fd0507a924c6382c0a
@@@ -53,6 -53,8 +53,8 @@@ const gchar *process_get_log_file (Proc
  
  void process_set_env (Process *process, const gchar *name, const gchar *value);
  
 -gchar *process_get_env (Process *process, const gchar *name);
++const gchar *process_get_env (Process *process, const gchar *name);
  gboolean process_start (Process *process,
                                User *user,
                                const gchar *working_dir,