[arch-commits] Commit in cinnamon-session/trunk (3 files)

Balló György bgyorgy at nymeria.archlinux.org
Tue Oct 8 19:37:19 UTC 2013


    Date: Tuesday, October 8, 2013 @ 21:37:18
  Author: bgyorgy
Revision: 98339

upgpkg: cinnamon-session 2.0.0-2

Fix and cleanup dependencies, add some patches from Fedora

Added:
  cinnamon-session/trunk/lightdm_userswitch.patch
  cinnamon-session/trunk/remove_sessionmigration.patch
Modified:
  cinnamon-session/trunk/PKGBUILD

-------------------------------+
 PKGBUILD                      |   18 +++-
 lightdm_userswitch.patch      |  153 ++++++++++++++++++++++++++++++++++++++++
 remove_sessionmigration.patch |   18 ++++
 3 files changed, 185 insertions(+), 4 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2013-10-08 18:42:10 UTC (rev 98338)
+++ PKGBUILD	2013-10-08 19:37:18 UTC (rev 98339)
@@ -4,27 +4,37 @@
 
 pkgname=cinnamon-session
 pkgver=2.0.0
-pkgrel=1
+pkgrel=2
 pkgdesc="The Cinnamon Session Handler"
 arch=(i686 x86_64)
 license=(GPL LGPL)
-depends=(systemd dconf gsettings-desktop-schemas gtk3
-         hicolor-icon-theme libgl libsm libxtst upower)
-makedepends=(intltool mesa json-glib gtk-doc xtrans gnome-common)
+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 \

Added: lightdm_userswitch.patch
===================================================================
--- lightdm_userswitch.patch	                        (rev 0)
+++ lightdm_userswitch.patch	2013-10-08 19:37:18 UTC (rev 98339)
@@ -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)) {

Added: remove_sessionmigration.patch
===================================================================
--- remove_sessionmigration.patch	                        (rev 0)
+++ remove_sessionmigration.patch	2013-10-08 19:37:18 UTC (rev 98339)
@@ -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);




More information about the arch-commits mailing list