Date: Wednesday, October 9, 2013 @ 06:49:43 Author: bgyorgy Revision: 98363
archrelease: copy trunk to community-i686, community-x86_64 Added: cinnamon-session/repos/community-i686/PKGBUILD (from rev 98362, cinnamon-session/trunk/PKGBUILD) cinnamon-session/repos/community-i686/cinnamon-session.install (from rev 98362, cinnamon-session/trunk/cinnamon-session.install) cinnamon-session/repos/community-i686/lightdm_userswitch.patch (from rev 98362, cinnamon-session/trunk/lightdm_userswitch.patch) cinnamon-session/repos/community-i686/remove_sessionmigration.patch (from rev 98362, cinnamon-session/trunk/remove_sessionmigration.patch) cinnamon-session/repos/community-i686/timeout.patch (from rev 98362, cinnamon-session/trunk/timeout.patch) cinnamon-session/repos/community-x86_64/PKGBUILD (from rev 98362, cinnamon-session/trunk/PKGBUILD) cinnamon-session/repos/community-x86_64/cinnamon-session.install (from rev 98362, cinnamon-session/trunk/cinnamon-session.install) cinnamon-session/repos/community-x86_64/lightdm_userswitch.patch (from rev 98362, cinnamon-session/trunk/lightdm_userswitch.patch) cinnamon-session/repos/community-x86_64/remove_sessionmigration.patch (from rev 98362, cinnamon-session/trunk/remove_sessionmigration.patch) cinnamon-session/repos/community-x86_64/timeout.patch (from rev 98362, cinnamon-session/trunk/timeout.patch) Deleted: cinnamon-session/repos/community-i686/lightdm_userswitch.patch cinnamon-session/repos/community-i686/remove_sessionmigration.patch cinnamon-session/repos/community-x86_64/lightdm_userswitch.patch cinnamon-session/repos/community-x86_64/remove_sessionmigration.patch ------------------------------------------------+ /lightdm_userswitch.patch | 306 +++++++++++++++++++++++ /remove_sessionmigration.patch | 36 ++ community-i686/PKGBUILD | 53 +++ community-i686/cinnamon-session.install | 12 community-i686/lightdm_userswitch.patch | 153 ----------- community-i686/remove_sessionmigration.patch | 18 - community-i686/timeout.patch | 24 + community-x86_64/PKGBUILD | 53 +++ community-x86_64/cinnamon-session.install | 12 community-x86_64/lightdm_userswitch.patch | 153 ----------- community-x86_64/remove_sessionmigration.patch | 18 - community-x86_64/timeout.patch | 24 + 12 files changed, 520 insertions(+), 342 deletions(-) Copied: cinnamon-session/repos/community-i686/PKGBUILD (from rev 98362, cinnamon-session/trunk/PKGBUILD) =================================================================== --- community-i686/PKGBUILD (rev 0) +++ community-i686/PKGBUILD 2013-10-09 04:49:43 UTC (rev 98363) @@ -0,0 +1,53 @@ +# $Id$ +# Maintainer: Alexandre Filgueira <alexfilgue...@antergos.com> +# Contributor: Jan Alexander Steffens (heftig) <jan.steff...@gmail.com> + +pkgname=cinnamon-session +pkgver=2.0.0 +pkgrel=3 +pkgdesc="The Cinnamon Session Handler" +arch=(i686 x86_64) +license=(GPL LGPL) +depends=(cinnamon-desktop upower) +makedepends=(intltool mesa json-glib xtrans gnome-common) +options=('!emptydirs') +install=cinnamon-session.install +url="https://github.com/linuxmint/cinnamon-session" +source=(${pkgname}-${pkgver}.tar.gz::https://github.com/linuxmint/cinnamon-session/archive/${pkgver}.tar.gz + lightdm_userswitch.patch + remove_sessionmigration.patch + timeout.patch) +sha256sums=('d1eba64a5484f086f257ee75799d12afd77373fbdb0ced8d3ae48eadcd02a878' + '20e42cbb5504f67b1da5e1867a220629bc2fe1699cfd52be177a557c4096440b' + 'f3c0bc1a3debfaa686230f19ba371b08dd4645064d90ead0c34f465c7d416736' + 'ef421a14814c7858490b3a806568ab4ec8a0dc21d390e94f801771c1261bb24a') + +prepare() { + cd $pkgname-$pkgver + + # Add support for lightdm user switching + patch -Np1 -i ../lightdm_userswitch.patch + + # Do not try to execute session-migration script (it's specific to Ubuntu) + patch -Np1 -i ../remove_sessionmigration.patch + + # Increase timeout, for slow machines + patch -Np1 -i ../timeout.patch +} + +build() { + cd $pkgname-$pkgver + ./autogen.sh --prefix=/usr --sysconfdir=/etc \ + --localstatedir=/var --libexecdir=/usr/lib/cinnamon-session \ + --disable-schemas-compile --enable-systemd --disable-gconf + make +} + +package() { + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install + + # Prefix 'Startup Applications' with 'Cinnamon' to avoid confusion with gnome-session + sed -i 's/^Name\(.*\)=\(.*\)/Name\1=Cinnamon \2/' \ + "$pkgdir/usr/share/applications/cinnamon-session-properties.desktop" +} Copied: cinnamon-session/repos/community-i686/cinnamon-session.install (from rev 98362, cinnamon-session/trunk/cinnamon-session.install) =================================================================== --- community-i686/cinnamon-session.install (rev 0) +++ community-i686/cinnamon-session.install 2013-10-09 04:49:43 UTC (rev 98363) @@ -0,0 +1,12 @@ +post_install() { + glib-compile-schemas /usr/share/glib-2.0/schemas + gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} Deleted: community-i686/lightdm_userswitch.patch =================================================================== --- community-i686/lightdm_userswitch.patch 2013-10-09 04:49:19 UTC (rev 98362) +++ community-i686/lightdm_userswitch.patch 2013-10-09 04:49:43 UTC (rev 98363) @@ -1,153 +0,0 @@ -diff --git a/cinnamon-session/csm-manager.c b/cinnamon-session/csm-manager.c -index e3388b1..a8e63c5 100644 ---- a/cinnamon-session/csm-manager.c -+++ b/cinnamon-session/csm-manager.c -@@ -1097,44 +1097,20 @@ cancel_end_session (CsmManager *manager) - start_phase (manager); - } - -- --static void --manager_switch_user (GdkDisplay *display, -- CsmManager *manager) --{ -- GError *error; -- char *command; -- GAppLaunchContext *context; -- GAppInfo *app; -- -- /* We have to do this here and in request_switch_user() because this -- * function can be called at a later time, not just directly after -- * request_switch_user(). */ -- if (_switch_user_is_locked_down (manager)) { -- g_warning ("Unable to switch user: User switching has been locked down"); -- return; -- } -- -- command = g_strdup_printf ("%s %s", -- MDM_FLEXISERVER_COMMAND, -- MDM_FLEXISERVER_ARGS); -- -- error = NULL; -- context = (GAppLaunchContext*) gdk_display_get_app_launch_context (display); -- app = g_app_info_create_from_commandline (command, MDM_FLEXISERVER_COMMAND, 0, &error); -- -- if (app) { -- g_app_info_launch (app, NULL, context, &error); -- g_object_unref (app); -- } -- -- g_free (command); -- g_object_unref (context); -- -- if (error) { -- g_debug ("CsmManager: Unable to start MDM greeter: %s", error->message); -- g_error_free (error); -- } -+static gboolean -+process_is_running (const char * name) -+{ -+ int num_processes; -+ char * command = g_strdup_printf ("pidof %s | wc -l", name); -+ FILE *fp = popen(command, "r"); -+ fscanf(fp, "%d", &num_processes); -+ pclose(fp); -+ if (num_processes > 0) { -+ return TRUE; -+ } -+ else { -+ return FALSE; -+ } - } - - static gboolean -@@ -1157,7 +1133,7 @@ manager_perhaps_lock (CsmManager *manager) - - /* do this sync to ensure it's on the screen when we start suspending */ - error = NULL; -- ret = g_spawn_command_line_sync ("gnome-screensaver-command --lock", NULL, NULL, NULL, &error); -+ ret = g_spawn_command_line_sync ("cinnamon-screensaver-command --lock", NULL, NULL, NULL, &error); - if (!ret) { - g_warning ("Couldn't lock screen: %s", error->message); - g_error_free (error); -@@ -1165,6 +1141,80 @@ manager_perhaps_lock (CsmManager *manager) - } - - static void -+manager_switch_user (GdkDisplay *display, -+ CsmManager *manager) -+{ -+ GError *error; -+ char *command; -+ GAppLaunchContext *context; -+ GAppInfo *app; -+ -+ /* We have to do this here and in request_switch_user() because this -+ * function can be called at a later time, not just directly after -+ * request_switch_user(). */ -+ if (_switch_user_is_locked_down (manager)) { -+ g_warning ("Unable to switch user: User switching has been locked down"); -+ return; -+ } -+ -+ if (process_is_running("mdm")) { -+ command = g_strdup_printf ("%s %s", -+ MDM_FLEXISERVER_COMMAND, -+ MDM_FLEXISERVER_ARGS); -+ -+ error = NULL; -+ context = (GAppLaunchContext*) gdk_display_get_app_launch_context (display); -+ app = g_app_info_create_from_commandline (command, MDM_FLEXISERVER_COMMAND, 0, &error); -+ -+ if (app) { -+ g_app_info_launch (app, NULL, context, &error); -+ g_object_unref (app); -+ } -+ -+ g_free (command); -+ g_object_unref (context); -+ -+ if (error) { -+ g_debug ("CsmManager: Unable to start MDM greeter: %s", error->message); -+ g_error_free (error); -+ } -+ } -+ else if (process_is_running("lightdm")) { -+ const gchar *xdg_seat_path = g_getenv ("XDG_SEAT_PATH"); -+ if (xdg_seat_path != NULL) { -+ GDBusProxyFlags flags = G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START; -+ GDBusProxy *proxy = NULL; -+ error = NULL; -+ -+ proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SYSTEM, -+ flags, -+ NULL, -+ "org.freedesktop.DisplayManager", -+ xdg_seat_path, -+ "org.freedesktop.DisplayManager.Seat", -+ NULL, -+ &error); -+ if (proxy != NULL) { -+ manager_perhaps_lock (manager); -+ g_dbus_proxy_call (proxy, -+ "SwitchToGreeter", -+ g_variant_new ("()"), -+ G_DBUS_CALL_FLAGS_NONE, -+ -1, -+ NULL, -+ NULL, -+ NULL); -+ g_object_unref (proxy); -+ } -+ else { -+ g_debug ("GsmManager: Unable to start LightDM greeter: %s", error->message); -+ g_error_free (error); -+ } -+ } -+ } -+} -+ -+static void - manager_attempt_hibernate (CsmManager *manager) - { - if (csm_system_can_hibernate (manager->priv->system)) { Copied: cinnamon-session/repos/community-i686/lightdm_userswitch.patch (from rev 98362, cinnamon-session/trunk/lightdm_userswitch.patch) =================================================================== --- community-i686/lightdm_userswitch.patch (rev 0) +++ community-i686/lightdm_userswitch.patch 2013-10-09 04:49:43 UTC (rev 98363) @@ -0,0 +1,153 @@ +diff --git a/cinnamon-session/csm-manager.c b/cinnamon-session/csm-manager.c +index e3388b1..a8e63c5 100644 +--- a/cinnamon-session/csm-manager.c ++++ b/cinnamon-session/csm-manager.c +@@ -1097,44 +1097,20 @@ cancel_end_session (CsmManager *manager) + start_phase (manager); + } + +- +-static void +-manager_switch_user (GdkDisplay *display, +- CsmManager *manager) +-{ +- GError *error; +- char *command; +- GAppLaunchContext *context; +- GAppInfo *app; +- +- /* We have to do this here and in request_switch_user() because this +- * function can be called at a later time, not just directly after +- * request_switch_user(). */ +- if (_switch_user_is_locked_down (manager)) { +- g_warning ("Unable to switch user: User switching has been locked down"); +- return; +- } +- +- command = g_strdup_printf ("%s %s", +- MDM_FLEXISERVER_COMMAND, +- MDM_FLEXISERVER_ARGS); +- +- error = NULL; +- context = (GAppLaunchContext*) gdk_display_get_app_launch_context (display); +- app = g_app_info_create_from_commandline (command, MDM_FLEXISERVER_COMMAND, 0, &error); +- +- if (app) { +- g_app_info_launch (app, NULL, context, &error); +- g_object_unref (app); +- } +- +- g_free (command); +- g_object_unref (context); +- +- if (error) { +- g_debug ("CsmManager: Unable to start MDM greeter: %s", error->message); +- g_error_free (error); +- } ++static gboolean ++process_is_running (const char * name) ++{ ++ int num_processes; ++ char * command = g_strdup_printf ("pidof %s | wc -l", name); ++ FILE *fp = popen(command, "r"); ++ fscanf(fp, "%d", &num_processes); ++ pclose(fp); ++ if (num_processes > 0) { ++ return TRUE; ++ } ++ else { ++ return FALSE; ++ } + } + + static gboolean +@@ -1157,7 +1133,7 @@ manager_perhaps_lock (CsmManager *manager) + + /* do this sync to ensure it's on the screen when we start suspending */ + error = NULL; +- ret = g_spawn_command_line_sync ("gnome-screensaver-command --lock", NULL, NULL, NULL, &error); ++ ret = g_spawn_command_line_sync ("cinnamon-screensaver-command --lock", NULL, NULL, NULL, &error); + if (!ret) { + g_warning ("Couldn't lock screen: %s", error->message); + g_error_free (error); +@@ -1165,6 +1141,80 @@ manager_perhaps_lock (CsmManager *manager) + } + + static void ++manager_switch_user (GdkDisplay *display, ++ CsmManager *manager) ++{ ++ GError *error; ++ char *command; ++ GAppLaunchContext *context; ++ GAppInfo *app; ++ ++ /* We have to do this here and in request_switch_user() because this ++ * function can be called at a later time, not just directly after ++ * request_switch_user(). */ ++ if (_switch_user_is_locked_down (manager)) { ++ g_warning ("Unable to switch user: User switching has been locked down"); ++ return; ++ } ++ ++ if (process_is_running("mdm")) { ++ command = g_strdup_printf ("%s %s", ++ MDM_FLEXISERVER_COMMAND, ++ MDM_FLEXISERVER_ARGS); ++ ++ error = NULL; ++ context = (GAppLaunchContext*) gdk_display_get_app_launch_context (display); ++ app = g_app_info_create_from_commandline (command, MDM_FLEXISERVER_COMMAND, 0, &error); ++ ++ if (app) { ++ g_app_info_launch (app, NULL, context, &error); ++ g_object_unref (app); ++ } ++ ++ g_free (command); ++ g_object_unref (context); ++ ++ if (error) { ++ g_debug ("CsmManager: Unable to start MDM greeter: %s", error->message); ++ g_error_free (error); ++ } ++ } ++ else if (process_is_running("lightdm")) { ++ const gchar *xdg_seat_path = g_getenv ("XDG_SEAT_PATH"); ++ if (xdg_seat_path != NULL) { ++ GDBusProxyFlags flags = G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START; ++ GDBusProxy *proxy = NULL; ++ error = NULL; ++ ++ proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SYSTEM, ++ flags, ++ NULL, ++ "org.freedesktop.DisplayManager", ++ xdg_seat_path, ++ "org.freedesktop.DisplayManager.Seat", ++ NULL, ++ &error); ++ if (proxy != NULL) { ++ manager_perhaps_lock (manager); ++ g_dbus_proxy_call (proxy, ++ "SwitchToGreeter", ++ g_variant_new ("()"), ++ G_DBUS_CALL_FLAGS_NONE, ++ -1, ++ NULL, ++ NULL, ++ NULL); ++ g_object_unref (proxy); ++ } ++ else { ++ g_debug ("GsmManager: Unable to start LightDM greeter: %s", error->message); ++ g_error_free (error); ++ } ++ } ++ } ++} ++ ++static void + manager_attempt_hibernate (CsmManager *manager) + { + if (csm_system_can_hibernate (manager->priv->system)) { Deleted: community-i686/remove_sessionmigration.patch =================================================================== --- community-i686/remove_sessionmigration.patch 2013-10-09 04:49:19 UTC (rev 98362) +++ community-i686/remove_sessionmigration.patch 2013-10-09 04:49:43 UTC (rev 98363) @@ -1,18 +0,0 @@ ---- a/cinnamon-session/csm-session-fill.c -+++ b/cinnamon-session/csm-session-fill.c -@@ -228,15 +228,6 @@ - load_standard_apps (CsmManager *manager, - GKeyFile *keyfile) - { -- GError *error; -- -- g_debug ("fill: *** Executing user migration"); -- error = NULL; -- if(!g_spawn_command_line_sync ("session-migration", NULL, NULL, NULL, &error)) { -- g_warning ("Error while executing session-migration: %s", error->message); -- g_error_free (error); -- } -- - g_debug ("fill: *** Adding required components"); - handle_required_components (keyfile, !csm_manager_get_failsafe (manager), - append_required_components_helper, manager); Copied: cinnamon-session/repos/community-i686/remove_sessionmigration.patch (from rev 98362, cinnamon-session/trunk/remove_sessionmigration.patch) =================================================================== --- community-i686/remove_sessionmigration.patch (rev 0) +++ community-i686/remove_sessionmigration.patch 2013-10-09 04:49:43 UTC (rev 98363) @@ -0,0 +1,18 @@ +--- a/cinnamon-session/csm-session-fill.c ++++ b/cinnamon-session/csm-session-fill.c +@@ -228,15 +228,6 @@ + load_standard_apps (CsmManager *manager, + GKeyFile *keyfile) + { +- GError *error; +- +- g_debug ("fill: *** Executing user migration"); +- error = NULL; +- if(!g_spawn_command_line_sync ("session-migration", NULL, NULL, NULL, &error)) { +- g_warning ("Error while executing session-migration: %s", error->message); +- g_error_free (error); +- } +- + g_debug ("fill: *** Adding required components"); + handle_required_components (keyfile, !csm_manager_get_failsafe (manager), + append_required_components_helper, manager); Copied: cinnamon-session/repos/community-i686/timeout.patch (from rev 98362, cinnamon-session/trunk/timeout.patch) =================================================================== --- community-i686/timeout.patch (rev 0) +++ community-i686/timeout.patch 2013-10-09 04:49:43 UTC (rev 98363) @@ -0,0 +1,24 @@ +diff -u -r cinnamon-session-3.4.2/cinnamon-session/csm-session-fill.c cinnamon-session-3.4.2-timeout/cinnamon-session/csm-session-fill.c +--- cinnamon-session-3.4.2/cinnamon-session/csm-session-fill.c 2012-02-02 15:33:01.000000000 +0100 ++++ cinnamon-session-3.4.2-timeout/cinnamon-session/csm-session-fill.c 2012-06-10 02:39:46.184348462 +0200 +@@ -36,7 +36,7 @@ + #define CSM_KEYFILE_DEFAULT_PROVIDER_PREFIX "DefaultProvider" + + /* See https://bugzilla.gnome.org/show_bug.cgi?id=641992 for discussion */ +-#define CSM_RUNNABLE_HELPER_TIMEOUT 3000 /* ms */ ++#define CSM_RUNNABLE_HELPER_TIMEOUT 10000 /* ms */ + + typedef void (*GsmFillHandleProvider) (const char *provides, + const char *default_provider, +diff -u -r cinnamon-session-3.4.2/tools/cinnamon-session-check-accelerated.c cinnamon-session-3.4.2-timeout/tools/cinnamon-session-check-accelerated.c +--- cinnamon-session-3.4.2/tools/cinnamon-session-check-accelerated.c 2011-03-22 21:31:43.000000000 +0100 ++++ cinnamon-session-3.4.2-timeout/tools/cinnamon-session-check-accelerated.c 2012-06-10 02:42:08.013218006 +0200 +@@ -30,7 +30,7 @@ + #include <X11/Xatom.h> + + /* Wait up to this long for a running check to finish */ +-#define PROPERTY_CHANGE_TIMEOUT 5000 ++#define PROPERTY_CHANGE_TIMEOUT 12000 + + /* Values used for the _GNOME_SESSION_ACCELERATED root window property */ + #define NO_ACCEL 0 Copied: cinnamon-session/repos/community-x86_64/PKGBUILD (from rev 98362, cinnamon-session/trunk/PKGBUILD) =================================================================== --- community-x86_64/PKGBUILD (rev 0) +++ community-x86_64/PKGBUILD 2013-10-09 04:49:43 UTC (rev 98363) @@ -0,0 +1,53 @@ +# $Id$ +# Maintainer: Alexandre Filgueira <alexfilgue...@antergos.com> +# Contributor: Jan Alexander Steffens (heftig) <jan.steff...@gmail.com> + +pkgname=cinnamon-session +pkgver=2.0.0 +pkgrel=3 +pkgdesc="The Cinnamon Session Handler" +arch=(i686 x86_64) +license=(GPL LGPL) +depends=(cinnamon-desktop upower) +makedepends=(intltool mesa json-glib xtrans gnome-common) +options=('!emptydirs') +install=cinnamon-session.install +url="https://github.com/linuxmint/cinnamon-session" +source=(${pkgname}-${pkgver}.tar.gz::https://github.com/linuxmint/cinnamon-session/archive/${pkgver}.tar.gz + lightdm_userswitch.patch + remove_sessionmigration.patch + timeout.patch) +sha256sums=('d1eba64a5484f086f257ee75799d12afd77373fbdb0ced8d3ae48eadcd02a878' + '20e42cbb5504f67b1da5e1867a220629bc2fe1699cfd52be177a557c4096440b' + 'f3c0bc1a3debfaa686230f19ba371b08dd4645064d90ead0c34f465c7d416736' + 'ef421a14814c7858490b3a806568ab4ec8a0dc21d390e94f801771c1261bb24a') + +prepare() { + cd $pkgname-$pkgver + + # Add support for lightdm user switching + patch -Np1 -i ../lightdm_userswitch.patch + + # Do not try to execute session-migration script (it's specific to Ubuntu) + patch -Np1 -i ../remove_sessionmigration.patch + + # Increase timeout, for slow machines + patch -Np1 -i ../timeout.patch +} + +build() { + cd $pkgname-$pkgver + ./autogen.sh --prefix=/usr --sysconfdir=/etc \ + --localstatedir=/var --libexecdir=/usr/lib/cinnamon-session \ + --disable-schemas-compile --enable-systemd --disable-gconf + make +} + +package() { + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install + + # Prefix 'Startup Applications' with 'Cinnamon' to avoid confusion with gnome-session + sed -i 's/^Name\(.*\)=\(.*\)/Name\1=Cinnamon \2/' \ + "$pkgdir/usr/share/applications/cinnamon-session-properties.desktop" +} Copied: cinnamon-session/repos/community-x86_64/cinnamon-session.install (from rev 98362, cinnamon-session/trunk/cinnamon-session.install) =================================================================== --- community-x86_64/cinnamon-session.install (rev 0) +++ community-x86_64/cinnamon-session.install 2013-10-09 04:49:43 UTC (rev 98363) @@ -0,0 +1,12 @@ +post_install() { + glib-compile-schemas /usr/share/glib-2.0/schemas + gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} Deleted: community-x86_64/lightdm_userswitch.patch =================================================================== --- community-x86_64/lightdm_userswitch.patch 2013-10-09 04:49:19 UTC (rev 98362) +++ community-x86_64/lightdm_userswitch.patch 2013-10-09 04:49:43 UTC (rev 98363) @@ -1,153 +0,0 @@ -diff --git a/cinnamon-session/csm-manager.c b/cinnamon-session/csm-manager.c -index e3388b1..a8e63c5 100644 ---- a/cinnamon-session/csm-manager.c -+++ b/cinnamon-session/csm-manager.c -@@ -1097,44 +1097,20 @@ cancel_end_session (CsmManager *manager) - start_phase (manager); - } - -- --static void --manager_switch_user (GdkDisplay *display, -- CsmManager *manager) --{ -- GError *error; -- char *command; -- GAppLaunchContext *context; -- GAppInfo *app; -- -- /* We have to do this here and in request_switch_user() because this -- * function can be called at a later time, not just directly after -- * request_switch_user(). */ -- if (_switch_user_is_locked_down (manager)) { -- g_warning ("Unable to switch user: User switching has been locked down"); -- return; -- } -- -- command = g_strdup_printf ("%s %s", -- MDM_FLEXISERVER_COMMAND, -- MDM_FLEXISERVER_ARGS); -- -- error = NULL; -- context = (GAppLaunchContext*) gdk_display_get_app_launch_context (display); -- app = g_app_info_create_from_commandline (command, MDM_FLEXISERVER_COMMAND, 0, &error); -- -- if (app) { -- g_app_info_launch (app, NULL, context, &error); -- g_object_unref (app); -- } -- -- g_free (command); -- g_object_unref (context); -- -- if (error) { -- g_debug ("CsmManager: Unable to start MDM greeter: %s", error->message); -- g_error_free (error); -- } -+static gboolean -+process_is_running (const char * name) -+{ -+ int num_processes; -+ char * command = g_strdup_printf ("pidof %s | wc -l", name); -+ FILE *fp = popen(command, "r"); -+ fscanf(fp, "%d", &num_processes); -+ pclose(fp); -+ if (num_processes > 0) { -+ return TRUE; -+ } -+ else { -+ return FALSE; -+ } - } - - static gboolean -@@ -1157,7 +1133,7 @@ manager_perhaps_lock (CsmManager *manager) - - /* do this sync to ensure it's on the screen when we start suspending */ - error = NULL; -- ret = g_spawn_command_line_sync ("gnome-screensaver-command --lock", NULL, NULL, NULL, &error); -+ ret = g_spawn_command_line_sync ("cinnamon-screensaver-command --lock", NULL, NULL, NULL, &error); - if (!ret) { - g_warning ("Couldn't lock screen: %s", error->message); - g_error_free (error); -@@ -1165,6 +1141,80 @@ manager_perhaps_lock (CsmManager *manager) - } - - static void -+manager_switch_user (GdkDisplay *display, -+ CsmManager *manager) -+{ -+ GError *error; -+ char *command; -+ GAppLaunchContext *context; -+ GAppInfo *app; -+ -+ /* We have to do this here and in request_switch_user() because this -+ * function can be called at a later time, not just directly after -+ * request_switch_user(). */ -+ if (_switch_user_is_locked_down (manager)) { -+ g_warning ("Unable to switch user: User switching has been locked down"); -+ return; -+ } -+ -+ if (process_is_running("mdm")) { -+ command = g_strdup_printf ("%s %s", -+ MDM_FLEXISERVER_COMMAND, -+ MDM_FLEXISERVER_ARGS); -+ -+ error = NULL; -+ context = (GAppLaunchContext*) gdk_display_get_app_launch_context (display); -+ app = g_app_info_create_from_commandline (command, MDM_FLEXISERVER_COMMAND, 0, &error); -+ -+ if (app) { -+ g_app_info_launch (app, NULL, context, &error); -+ g_object_unref (app); -+ } -+ -+ g_free (command); -+ g_object_unref (context); -+ -+ if (error) { -+ g_debug ("CsmManager: Unable to start MDM greeter: %s", error->message); -+ g_error_free (error); -+ } -+ } -+ else if (process_is_running("lightdm")) { -+ const gchar *xdg_seat_path = g_getenv ("XDG_SEAT_PATH"); -+ if (xdg_seat_path != NULL) { -+ GDBusProxyFlags flags = G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START; -+ GDBusProxy *proxy = NULL; -+ error = NULL; -+ -+ proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SYSTEM, -+ flags, -+ NULL, -+ "org.freedesktop.DisplayManager", -+ xdg_seat_path, -+ "org.freedesktop.DisplayManager.Seat", -+ NULL, -+ &error); -+ if (proxy != NULL) { -+ manager_perhaps_lock (manager); -+ g_dbus_proxy_call (proxy, -+ "SwitchToGreeter", -+ g_variant_new ("()"), -+ G_DBUS_CALL_FLAGS_NONE, -+ -1, -+ NULL, -+ NULL, -+ NULL); -+ g_object_unref (proxy); -+ } -+ else { -+ g_debug ("GsmManager: Unable to start LightDM greeter: %s", error->message); -+ g_error_free (error); -+ } -+ } -+ } -+} -+ -+static void - manager_attempt_hibernate (CsmManager *manager) - { - if (csm_system_can_hibernate (manager->priv->system)) { Copied: cinnamon-session/repos/community-x86_64/lightdm_userswitch.patch (from rev 98362, cinnamon-session/trunk/lightdm_userswitch.patch) =================================================================== --- community-x86_64/lightdm_userswitch.patch (rev 0) +++ community-x86_64/lightdm_userswitch.patch 2013-10-09 04:49:43 UTC (rev 98363) @@ -0,0 +1,153 @@ +diff --git a/cinnamon-session/csm-manager.c b/cinnamon-session/csm-manager.c +index e3388b1..a8e63c5 100644 +--- a/cinnamon-session/csm-manager.c ++++ b/cinnamon-session/csm-manager.c +@@ -1097,44 +1097,20 @@ cancel_end_session (CsmManager *manager) + start_phase (manager); + } + +- +-static void +-manager_switch_user (GdkDisplay *display, +- CsmManager *manager) +-{ +- GError *error; +- char *command; +- GAppLaunchContext *context; +- GAppInfo *app; +- +- /* We have to do this here and in request_switch_user() because this +- * function can be called at a later time, not just directly after +- * request_switch_user(). */ +- if (_switch_user_is_locked_down (manager)) { +- g_warning ("Unable to switch user: User switching has been locked down"); +- return; +- } +- +- command = g_strdup_printf ("%s %s", +- MDM_FLEXISERVER_COMMAND, +- MDM_FLEXISERVER_ARGS); +- +- error = NULL; +- context = (GAppLaunchContext*) gdk_display_get_app_launch_context (display); +- app = g_app_info_create_from_commandline (command, MDM_FLEXISERVER_COMMAND, 0, &error); +- +- if (app) { +- g_app_info_launch (app, NULL, context, &error); +- g_object_unref (app); +- } +- +- g_free (command); +- g_object_unref (context); +- +- if (error) { +- g_debug ("CsmManager: Unable to start MDM greeter: %s", error->message); +- g_error_free (error); +- } ++static gboolean ++process_is_running (const char * name) ++{ ++ int num_processes; ++ char * command = g_strdup_printf ("pidof %s | wc -l", name); ++ FILE *fp = popen(command, "r"); ++ fscanf(fp, "%d", &num_processes); ++ pclose(fp); ++ if (num_processes > 0) { ++ return TRUE; ++ } ++ else { ++ return FALSE; ++ } + } + + static gboolean +@@ -1157,7 +1133,7 @@ manager_perhaps_lock (CsmManager *manager) + + /* do this sync to ensure it's on the screen when we start suspending */ + error = NULL; +- ret = g_spawn_command_line_sync ("gnome-screensaver-command --lock", NULL, NULL, NULL, &error); ++ ret = g_spawn_command_line_sync ("cinnamon-screensaver-command --lock", NULL, NULL, NULL, &error); + if (!ret) { + g_warning ("Couldn't lock screen: %s", error->message); + g_error_free (error); +@@ -1165,6 +1141,80 @@ manager_perhaps_lock (CsmManager *manager) + } + + static void ++manager_switch_user (GdkDisplay *display, ++ CsmManager *manager) ++{ ++ GError *error; ++ char *command; ++ GAppLaunchContext *context; ++ GAppInfo *app; ++ ++ /* We have to do this here and in request_switch_user() because this ++ * function can be called at a later time, not just directly after ++ * request_switch_user(). */ ++ if (_switch_user_is_locked_down (manager)) { ++ g_warning ("Unable to switch user: User switching has been locked down"); ++ return; ++ } ++ ++ if (process_is_running("mdm")) { ++ command = g_strdup_printf ("%s %s", ++ MDM_FLEXISERVER_COMMAND, ++ MDM_FLEXISERVER_ARGS); ++ ++ error = NULL; ++ context = (GAppLaunchContext*) gdk_display_get_app_launch_context (display); ++ app = g_app_info_create_from_commandline (command, MDM_FLEXISERVER_COMMAND, 0, &error); ++ ++ if (app) { ++ g_app_info_launch (app, NULL, context, &error); ++ g_object_unref (app); ++ } ++ ++ g_free (command); ++ g_object_unref (context); ++ ++ if (error) { ++ g_debug ("CsmManager: Unable to start MDM greeter: %s", error->message); ++ g_error_free (error); ++ } ++ } ++ else if (process_is_running("lightdm")) { ++ const gchar *xdg_seat_path = g_getenv ("XDG_SEAT_PATH"); ++ if (xdg_seat_path != NULL) { ++ GDBusProxyFlags flags = G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START; ++ GDBusProxy *proxy = NULL; ++ error = NULL; ++ ++ proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SYSTEM, ++ flags, ++ NULL, ++ "org.freedesktop.DisplayManager", ++ xdg_seat_path, ++ "org.freedesktop.DisplayManager.Seat", ++ NULL, ++ &error); ++ if (proxy != NULL) { ++ manager_perhaps_lock (manager); ++ g_dbus_proxy_call (proxy, ++ "SwitchToGreeter", ++ g_variant_new ("()"), ++ G_DBUS_CALL_FLAGS_NONE, ++ -1, ++ NULL, ++ NULL, ++ NULL); ++ g_object_unref (proxy); ++ } ++ else { ++ g_debug ("GsmManager: Unable to start LightDM greeter: %s", error->message); ++ g_error_free (error); ++ } ++ } ++ } ++} ++ ++static void + manager_attempt_hibernate (CsmManager *manager) + { + if (csm_system_can_hibernate (manager->priv->system)) { Deleted: community-x86_64/remove_sessionmigration.patch =================================================================== --- community-x86_64/remove_sessionmigration.patch 2013-10-09 04:49:19 UTC (rev 98362) +++ community-x86_64/remove_sessionmigration.patch 2013-10-09 04:49:43 UTC (rev 98363) @@ -1,18 +0,0 @@ ---- a/cinnamon-session/csm-session-fill.c -+++ b/cinnamon-session/csm-session-fill.c -@@ -228,15 +228,6 @@ - load_standard_apps (CsmManager *manager, - GKeyFile *keyfile) - { -- GError *error; -- -- g_debug ("fill: *** Executing user migration"); -- error = NULL; -- if(!g_spawn_command_line_sync ("session-migration", NULL, NULL, NULL, &error)) { -- g_warning ("Error while executing session-migration: %s", error->message); -- g_error_free (error); -- } -- - g_debug ("fill: *** Adding required components"); - handle_required_components (keyfile, !csm_manager_get_failsafe (manager), - append_required_components_helper, manager); Copied: cinnamon-session/repos/community-x86_64/remove_sessionmigration.patch (from rev 98362, cinnamon-session/trunk/remove_sessionmigration.patch) =================================================================== --- community-x86_64/remove_sessionmigration.patch (rev 0) +++ community-x86_64/remove_sessionmigration.patch 2013-10-09 04:49:43 UTC (rev 98363) @@ -0,0 +1,18 @@ +--- a/cinnamon-session/csm-session-fill.c ++++ b/cinnamon-session/csm-session-fill.c +@@ -228,15 +228,6 @@ + load_standard_apps (CsmManager *manager, + GKeyFile *keyfile) + { +- GError *error; +- +- g_debug ("fill: *** Executing user migration"); +- error = NULL; +- if(!g_spawn_command_line_sync ("session-migration", NULL, NULL, NULL, &error)) { +- g_warning ("Error while executing session-migration: %s", error->message); +- g_error_free (error); +- } +- + g_debug ("fill: *** Adding required components"); + handle_required_components (keyfile, !csm_manager_get_failsafe (manager), + append_required_components_helper, manager); Copied: cinnamon-session/repos/community-x86_64/timeout.patch (from rev 98362, cinnamon-session/trunk/timeout.patch) =================================================================== --- community-x86_64/timeout.patch (rev 0) +++ community-x86_64/timeout.patch 2013-10-09 04:49:43 UTC (rev 98363) @@ -0,0 +1,24 @@ +diff -u -r cinnamon-session-3.4.2/cinnamon-session/csm-session-fill.c cinnamon-session-3.4.2-timeout/cinnamon-session/csm-session-fill.c +--- cinnamon-session-3.4.2/cinnamon-session/csm-session-fill.c 2012-02-02 15:33:01.000000000 +0100 ++++ cinnamon-session-3.4.2-timeout/cinnamon-session/csm-session-fill.c 2012-06-10 02:39:46.184348462 +0200 +@@ -36,7 +36,7 @@ + #define CSM_KEYFILE_DEFAULT_PROVIDER_PREFIX "DefaultProvider" + + /* See https://bugzilla.gnome.org/show_bug.cgi?id=641992 for discussion */ +-#define CSM_RUNNABLE_HELPER_TIMEOUT 3000 /* ms */ ++#define CSM_RUNNABLE_HELPER_TIMEOUT 10000 /* ms */ + + typedef void (*GsmFillHandleProvider) (const char *provides, + const char *default_provider, +diff -u -r cinnamon-session-3.4.2/tools/cinnamon-session-check-accelerated.c cinnamon-session-3.4.2-timeout/tools/cinnamon-session-check-accelerated.c +--- cinnamon-session-3.4.2/tools/cinnamon-session-check-accelerated.c 2011-03-22 21:31:43.000000000 +0100 ++++ cinnamon-session-3.4.2-timeout/tools/cinnamon-session-check-accelerated.c 2012-06-10 02:42:08.013218006 +0200 +@@ -30,7 +30,7 @@ + #include <X11/Xatom.h> + + /* Wait up to this long for a running check to finish */ +-#define PROPERTY_CHANGE_TIMEOUT 5000 ++#define PROPERTY_CHANGE_TIMEOUT 12000 + + /* Values used for the _GNOME_SESSION_ACCELERATED root window property */ + #define NO_ACCEL 0