r35755 - in /desktop/unstable/gdm3/debian: changelog patches/30_dbus_prctl_death.patch patches/31_worker_session_gone.patch patches/32_ignore_greeter_crash.patch patches/series

joss at users.alioth.debian.org joss at users.alioth.debian.org
Sat Sep 22 12:01:51 UTC 2012


Author: joss
Date: Sat Sep 22 12:01:50 2012
New Revision: 35755

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=35755
Log:
* Grab some patches upstream:
  + 30_dbus_prctl_death.patch: ensure dbus dies with the session.
  + 31_worker_session_gone.patch: avoid race condition when the 
    session dies.
  + 32_ignore_greeter_crash.patch: ignore when the greeter crashes 
    while no longer needed.

Added:
    desktop/unstable/gdm3/debian/patches/30_dbus_prctl_death.patch
    desktop/unstable/gdm3/debian/patches/31_worker_session_gone.patch
    desktop/unstable/gdm3/debian/patches/32_ignore_greeter_crash.patch
Modified:
    desktop/unstable/gdm3/debian/changelog
    desktop/unstable/gdm3/debian/patches/series

Modified: desktop/unstable/gdm3/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/changelog?rev=35755&op=diff
==============================================================================
--- desktop/unstable/gdm3/debian/changelog [utf-8] (original)
+++ desktop/unstable/gdm3/debian/changelog [utf-8] Sat Sep 22 12:01:50 2012
@@ -1,4 +1,4 @@
-gdm3 (3.4.1-3) UNRELEASED; urgency=low
+gdm3 (3.4.1-3) unstable; urgency=low
 
   * Drop suggests on gnome-mag.
   * Recommends: at-spi → at-spi2-core. Closes: #680947.
@@ -6,8 +6,14 @@
   * Generate templates from PO files. Closes: #686037.
   * Update po files from the xdm source.
   * Remove obsolete README.source.
-
- -- Josselin Mouette <joss at debian.org>  Fri, 06 Jul 2012 10:07:09 +0200
+  * Grab some patches upstream:
+    + 30_dbus_prctl_death.patch: ensure dbus dies with the session.
+    + 31_worker_session_gone.patch: avoid race condition when the 
+      session dies.
+    + 32_ignore_greeter_crash.patch: ignore when the greeter crashes 
+      while no longer needed.
+
+ -- Josselin Mouette <joss at debian.org>  Sat, 22 Sep 2012 14:01:46 +0200
 
 gdm3 (3.4.1-2) unstable; urgency=low
 

Added: desktop/unstable/gdm3/debian/patches/30_dbus_prctl_death.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/patches/30_dbus_prctl_death.patch?rev=35755&op=file
==============================================================================
--- desktop/unstable/gdm3/debian/patches/30_dbus_prctl_death.patch (added)
+++ desktop/unstable/gdm3/debian/patches/30_dbus_prctl_death.patch [utf-8] Sat Sep 22 12:01:50 2012
@@ -1,0 +1,45 @@
+From c030b9bfe8b3e59b8c99802cc53fd0229bbd154a Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters at verbum.org>
+Date: Fri, 27 Apr 2012 15:14:42 +0000
+Subject: welcome: Use Linux PR_SET_PDEATHSIG to ensure dbus-daemon dies when we do
+
+It's convenient for debugging to "kill -9 $(pidof gdm-binary)", but
+presently because gdm runs bare "dbus-launch" which daemonizes,
+it won't terminate when the parent gdm welcome session dies.
+
+Other approaches here are to use "dbus-daemon --no-fork --print-address"
+directly as a child, and kill it when we get SIGTERM:
+http://git.gnome.org/browse/at-spi2-core/tree/bus/at-spi-bus-launcher.c
+
+But this is an easy fix, even if it only works on Linux.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=674982
+---
+diff --git a/daemon/gdm-welcome-session.c b/daemon/gdm-welcome-session.c
+index 778d5dc..3431edb 100644
+--- a/daemon/gdm-welcome-session.c
++++ b/daemon/gdm-welcome-session.c
+@@ -32,6 +32,9 @@
+ #include <pwd.h>
+ #include <grp.h>
+ #include <signal.h>
++#ifdef HAVE_SYS_PRCTL_H
++#include <sys/prctl.h>
++#endif
+ 
+ #include <glib.h>
+ #include <glib/gi18n.h>
+@@ -469,6 +472,11 @@ spawn_child_setup (SpawnChildData *data)
+                 _exit (2);
+         }
+ 
++        /* Terminate the process when the parent dies */
++#ifdef HAVE_SYS_PRCTL_H
++        prctl (PR_SET_PDEATHSIG, SIGTERM);
++#endif
++
+         if (data->log_file != NULL) {
+                 int logfd;
+ 
+--
+cgit v0.9.0.2

Added: desktop/unstable/gdm3/debian/patches/31_worker_session_gone.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/patches/31_worker_session_gone.patch?rev=35755&op=file
==============================================================================
--- desktop/unstable/gdm3/debian/patches/31_worker_session_gone.patch (added)
+++ desktop/unstable/gdm3/debian/patches/31_worker_session_gone.patch [utf-8] Sat Sep 22 12:01:50 2012
@@ -1,0 +1,51 @@
+From 09358813114e1c16b1ea02d80327e418a1809486 Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode at redhat.com>
+Date: Sun, 06 May 2012 03:58:35 +0000
+Subject: worker: don't report session gone until closed
+
+It's important we don't tell the slave the session
+has exited/died until we've called pam_close_session,
+since the slave reacts to it going way by closing
+down which can result in the worker getting explicitly
+killed before pam_close_session gets called.
+---
+diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c
+index 869075b..449e7d1 100644
+--- a/daemon/gdm-session-worker.c
++++ b/daemon/gdm-session-worker.c
+@@ -1639,6 +1639,16 @@ session_worker_child_watch (GPid              pid,
+                  : WIFSIGNALED (status) ? WTERMSIG (status)
+                  : -1);
+ 
++#ifdef WITH_CONSOLE_KIT
++        if (worker->priv->ckc != NULL) {
++                ck_connector_close_session (worker->priv->ckc, NULL);
++                ck_connector_unref (worker->priv->ckc);
++                worker->priv->ckc = NULL;
++        }
++#endif
++
++        gdm_session_worker_uninitialize_pam (worker, PAM_SUCCESS);
++
+         if (WIFEXITED (status)) {
+                 int code = WEXITSTATUS (status);
+ 
+@@ -1653,16 +1663,6 @@ session_worker_child_watch (GPid              pid,
+                                       num);
+         }
+ 
+-#ifdef WITH_CONSOLE_KIT
+-        if (worker->priv->ckc != NULL) {
+-                ck_connector_close_session (worker->priv->ckc, NULL);
+-                ck_connector_unref (worker->priv->ckc);
+-                worker->priv->ckc = NULL;
+-        }
+-#endif
+-
+-        gdm_session_worker_uninitialize_pam (worker, PAM_SUCCESS);
+-
+         worker->priv->child_pid = -1;
+ }
+ 
+--
+cgit v0.9.0.2

Added: desktop/unstable/gdm3/debian/patches/32_ignore_greeter_crash.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/patches/32_ignore_greeter_crash.patch?rev=35755&op=file
==============================================================================
--- desktop/unstable/gdm3/debian/patches/32_ignore_greeter_crash.patch (added)
+++ desktop/unstable/gdm3/debian/patches/32_ignore_greeter_crash.patch [utf-8] Sat Sep 22 12:01:50 2012
@@ -1,0 +1,30 @@
+From fe89c906e5a8d6d5e9140226866d315e97d3bee3 Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode at redhat.com>
+Date: Sun, 06 May 2012 02:49:54 +0000
+Subject: daemon: don't freak out if greeter dies after login finishes
+
+If we've already logged a user in and the greeter is shutting
+down and crashes, we should just ignore the crash and continue
+with the login process.
+
+Furthermore, if we explicitly kill the greeter and it dies with
+a TERM signal, then we definitely don't want to treat that as
+if it was a crash.
+---
+diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c
+index 7c709a6..bf48246 100644
+--- a/daemon/gdm-simple-slave.c
++++ b/daemon/gdm-simple-slave.c
+@@ -1032,7 +1032,9 @@ on_greeter_session_died (GdmGreeterSession    *greeter,
+                          GdmSimpleSlave       *slave)
+ {
+         g_debug ("GdmSimpleSlave: Greeter died: %d", signal);
+-        gdm_slave_stopped (GDM_SLAVE (slave));
++        if (slave->priv->start_session_service_name == NULL) {
++                gdm_slave_stopped (GDM_SLAVE (slave));
++        }
+ }
+ 
+ static void
+--
+cgit v0.9.0.2

Modified: desktop/unstable/gdm3/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/patches/series?rev=35755&op=diff
==============================================================================
--- desktop/unstable/gdm3/debian/patches/series [utf-8] (original)
+++ desktop/unstable/gdm3/debian/patches/series [utf-8] Sat Sep 22 12:01:50 2012
@@ -15,6 +15,9 @@
 21_static_display_purge.patch
 22_noconsole.patch
 23_start_polkit.patch
+30_dbus_prctl_death.patch
+31_worker_session_gone.patch
+32_ignore_greeter_crash.patch
 90_config_comments.patch
 91_shell_version_control.patch
 92_gsettings_path.patch




More information about the pkg-gnome-commits mailing list