r42177 - in /desktop/unstable/gdm3/debian: ./ patches/ po/

joss at users.alioth.debian.org joss at users.alioth.debian.org
Thu Aug 14 00:10:01 UTC 2014


Author: joss
Date: Thu Aug 14 00:10:01 2014
New Revision: 42177

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=42177
Log:
* Reinstate patches for better VT management.
  + 17_switch_on_finish.patch: introduce a setting for GdmDisplay that 
    says it needs to go to the login screen when set.
  + 18_all_displays_transient.patch: give all local displays the same 
    properties. Restart them by default, not restart them when told 
    not to.
  + 19_switch_kill_greeter.patch: when switching to an existing 
    session, kill the greeter session and the afferent X server.
  + debian/rules: use configure switch to disable the -novtswitch 
    argument to X, if it ever builds again on !linux.
* 01_session_windowpath.patch, 02_slave_windowpath.patch: reintroduce 
  WINDOWPATH. Patches from upstream. Closes: #757889.
* tr.po: updated Turkish translation from Mert Dirik. Closes: #756719.
* 03_dont_mask_SIGUSR1.patch: patch from upstream. Stop masking 
  forcibly SIGUSR1. Closes: #756068.

Added:
    desktop/unstable/gdm3/debian/patches/01_session_windowpath.patch
    desktop/unstable/gdm3/debian/patches/02_slave_windowpath.patch
    desktop/unstable/gdm3/debian/patches/03_dont_mask_SIGUSR1.patch
    desktop/unstable/gdm3/debian/patches/17_switch_on_finish.patch
    desktop/unstable/gdm3/debian/patches/18_all_displays_transient.patch
    desktop/unstable/gdm3/debian/patches/19_switch_kill_greeter.patch
Modified:
    desktop/unstable/gdm3/debian/changelog
    desktop/unstable/gdm3/debian/patches/series
    desktop/unstable/gdm3/debian/po/tr.po
    desktop/unstable/gdm3/debian/rules

Modified: desktop/unstable/gdm3/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/changelog?rev=42177&op=diff
==============================================================================
--- desktop/unstable/gdm3/debian/changelog	[utf-8] (original)
+++ desktop/unstable/gdm3/debian/changelog	[utf-8] Thu Aug 14 00:10:01 2014
@@ -1,3 +1,23 @@
+gdm3 (3.12.2-2.1) unstable; urgency=medium
+
+  * Reinstate patches for better VT management.
+    + 17_switch_on_finish.patch: introduce a setting for GdmDisplay that 
+      says it needs to go to the login screen when set.
+    + 18_all_displays_transient.patch: give all local displays the same 
+      properties. Restart them by default, not restart them when told 
+      not to.
+    + 19_switch_kill_greeter.patch: when switching to an existing 
+      session, kill the greeter session and the afferent X server.
+    + debian/rules: use configure switch to disable the -novtswitch 
+      argument to X, if it ever builds again on !linux.
+  * 01_session_windowpath.patch, 02_slave_windowpath.patch: reintroduce 
+    WINDOWPATH. Patches from upstream. Closes: #757889.
+  * tr.po: updated Turkish translation from Mert Dirik. Closes: #756719.
+  * 03_dont_mask_SIGUSR1.patch: patch from upstream. Stop masking 
+    forcibly SIGUSR1. Closes: #756068.
+
+ -- Josselin Mouette <joss at debian.org>  Thu, 14 Aug 2014 02:09:47 +0200
+
 gdm3 (3.12.2-2) unstable; urgency=medium
 
   [ Laurent Bigonville ]

Added: desktop/unstable/gdm3/debian/patches/01_session_windowpath.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/patches/01_session_windowpath.patch?rev=42177&op=file
==============================================================================
--- desktop/unstable/gdm3/debian/patches/01_session_windowpath.patch	(added)
+++ desktop/unstable/gdm3/debian/patches/01_session_windowpath.patch	[utf-8] Thu Aug 14 00:10:01 2014
@@ -0,0 +1,29 @@
+From e4dbf006279ecbf408186f3759e559b46ddedda5 Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode at redhat.com>
+Date: Tue, 22 Jul 2014 17:26:42 -0400
+Subject: Revert "session: drop remnants of WINDOWPATH"
+
+This reverts commit 6e1f486ca0d37da9fc8239493633deed6d796b93.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=730729
+
+diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
+index 60667c5..bb54084 100644
+--- a/daemon/gdm-session.c
++++ b/daemon/gdm-session.c
+@@ -2387,6 +2387,12 @@ set_up_session_environment (GdmSession *self)
+                 }
+         }
+ 
++        if (g_getenv ("WINDOWPATH") != NULL) {
++                gdm_session_set_environment_variable (self,
++                                                      "WINDOWPATH",
++                                                      g_getenv ("WINDOWPATH"));
++        }
++
+         g_free (desktop_names);
+ }
+ 
+-- 
+cgit v0.10.1
+

Added: desktop/unstable/gdm3/debian/patches/02_slave_windowpath.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/patches/02_slave_windowpath.patch?rev=42177&op=file
==============================================================================
--- desktop/unstable/gdm3/debian/patches/02_slave_windowpath.patch	(added)
+++ desktop/unstable/gdm3/debian/patches/02_slave_windowpath.patch	[utf-8] Thu Aug 14 00:10:01 2014
@@ -0,0 +1,109 @@
+From 13dc48dd1e30356dbd83d319734fd38571806677 Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode at redhat.com>
+Date: Tue, 22 Jul 2014 17:27:30 -0400
+Subject: Revert "slave: Remove support for WINDOWPATH"
+
+This reverts commit 64210ac9dc1dafd1970ad0abcf46a010731d17b4.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=730729
+
+diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c
+index 1afe48e..b4bbcfd 100644
+--- a/daemon/gdm-slave.c
++++ b/daemon/gdm-slave.c
+@@ -250,6 +250,83 @@ gdm_slave_setup_xhost_auth (XHostAddress *host_entries, XServerInterpretedAddres
+         host_entries[2].length    = sizeof (XServerInterpretedAddress);
+ }
+ 
++static void
++gdm_slave_set_windowpath (GdmSlave *slave)
++{
++        /* setting WINDOWPATH for clients */
++        Atom prop;
++        Atom actualtype;
++        int actualformat;
++        unsigned long nitems;
++        unsigned long bytes_after;
++        unsigned char *buf;
++        const char *windowpath;
++        char *newwindowpath;
++        unsigned long num;
++        char nums[10];
++        int numn;
++
++        prop = XInternAtom (slave->priv->server_display, "XFree86_VT", False);
++        if (prop == None) {
++                g_debug ("no XFree86_VT atom\n");
++                return;
++        }
++        if (XGetWindowProperty (slave->priv->server_display,
++                DefaultRootWindow (slave->priv->server_display), prop, 0, 1,
++                False, AnyPropertyType, &actualtype, &actualformat,
++                &nitems, &bytes_after, &buf)) {
++                g_debug ("no XFree86_VT property\n");
++                return;
++        }
++
++        if (nitems != 1) {
++                g_debug ("%lu items in XFree86_VT property!\n", nitems);
++                XFree (buf);
++                return;
++        }
++
++        switch (actualtype) {
++        case XA_CARDINAL:
++        case XA_INTEGER:
++        case XA_WINDOW:
++                switch (actualformat) {
++                case  8:
++                        num = (*(uint8_t  *)(void *)buf);
++                        break;
++                case 16:
++                        num = (*(uint16_t *)(void *)buf);
++                        break;
++                case 32:
++                        num = (*(long *)(void *)buf);
++                        break;
++                default:
++                        g_debug ("format %d in XFree86_VT property!\n", actualformat);
++                        XFree (buf);
++                        return;
++                }
++                break;
++        default:
++                g_debug ("type %lx in XFree86_VT property!\n", actualtype);
++                XFree (buf);
++                return;
++        }
++        XFree (buf);
++
++        windowpath = getenv ("WINDOWPATH");
++        numn = snprintf (nums, sizeof (nums), "%lu", num);
++        if (!windowpath) {
++                newwindowpath = malloc (numn + 1);
++                sprintf (newwindowpath, "%s", nums);
++        } else {
++                newwindowpath = malloc (strlen (windowpath) + 1 + numn + 1);
++                sprintf (newwindowpath, "%s:%s", windowpath, nums);
++        }
++
++        slave->priv->windowpath = newwindowpath;
++
++        g_setenv ("WINDOWPATH", newwindowpath, TRUE);
++}
++
+ gboolean
+ gdm_slave_connect_to_x11_display (GdmSlave *slave)
+ {
+@@ -299,6 +376,8 @@ gdm_slave_connect_to_x11_display (GdmSlave *slave)
+                 if (gdm_error_trap_pop ()) {
+                         g_warning ("Failed to give slave programs access to the display. Trying to proceed.");
+                 }
++
++                gdm_slave_set_windowpath (slave);
+         } else {
+                 g_debug ("GdmSlave: Connected to display %s", slave->priv->display_name);
+                 ret = TRUE;
+-- 
+cgit v0.10.1
+

Added: desktop/unstable/gdm3/debian/patches/03_dont_mask_SIGUSR1.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/patches/03_dont_mask_SIGUSR1.patch?rev=42177&op=file
==============================================================================
--- desktop/unstable/gdm3/debian/patches/03_dont_mask_SIGUSR1.patch	(added)
+++ desktop/unstable/gdm3/debian/patches/03_dont_mask_SIGUSR1.patch	[utf-8] Thu Aug 14 00:10:01 2014
@@ -0,0 +1,45 @@
+From ef6954833cf43bef8306823d7fcfb6a04b903ad7 Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode at redhat.com>
+Date: Fri, 30 May 2014 10:26:02 -0400
+Subject: worker: don't block SIGUSR1
+
+When the slaves were folded into the main manager process, we had
+to add support for detecting multiple simultaneous X servers starting
+up.
+
+We did that by creating a detected thread to listen for SIGUSR1 and
+then examining the siginfo to find out which X server is ready.
+
+In order to ensure only the dedicated thread received the SIGUSR1
+signals from the X server we blocked SIGUSR1 from the main thread.
+
+That blocked signal is inherited to the worker processes and the
+session.  Some programs depend on SIGUSR1 but don't explicitly unblock
+SIGUSR1 at start up, since the signal is presumed to be unblocked out
+the box.
+
+This commit makes sure SIGUSR1 is unblocked before starting the session
+to keep these programs functioning correctly.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=731228
+
+diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c
+index 8af97b0..bc50b37 100644
+--- a/daemon/gdm-session-worker.c
++++ b/daemon/gdm-session-worker.c
+@@ -1944,6 +1944,12 @@ gdm_session_worker_start_session (GdmSessionWorker  *worker,
+                  */
+                 signal (SIGPIPE, SIG_DFL);
+ 
++                /*
++                 * Reset SIGUSR1 to default since it was blocked by the manager
++                 * process for the X server startup handshake
++                 */
++                signal (SIGUSR1, SIG_DFL);
++
+                 gdm_session_execute (worker->priv->arguments[0],
+                                      worker->priv->arguments,
+                                      (char **)
+-- 
+cgit v0.10.1
+

Added: desktop/unstable/gdm3/debian/patches/17_switch_on_finish.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/patches/17_switch_on_finish.patch?rev=42177&op=file
==============================================================================
--- desktop/unstable/gdm3/debian/patches/17_switch_on_finish.patch	(added)
+++ desktop/unstable/gdm3/debian/patches/17_switch_on_finish.patch	[utf-8] Thu Aug 14 00:10:01 2014
@@ -0,0 +1,129 @@
+daemon: add switch-on-finish property to display
+
+Index: gdm3-3.12.2/daemon/gdm-display.c
+===================================================================
+--- gdm3-3.12.2.orig/daemon/gdm-display.c	2014-08-14 01:09:48.102831204 +0200
++++ gdm3-3.12.2/daemon/gdm-display.c	2014-08-14 01:10:35.310113921 +0200
+@@ -65,6 +65,7 @@ struct GdmDisplayPrivate
+         GdmDisplayAccessFile *access_file;
+ 
+         gboolean              is_local;
++        gboolean              switch_on_finish;
+         guint                 finish_idle_id;
+ 
+         GdmSlave             *slave;
+@@ -89,6 +90,7 @@ enum {
+         PROP_X11_COOKIE,
+         PROP_X11_AUTHORITY_FILE,
+         PROP_IS_LOCAL,
++        PROP_SWITCH_ON_FINISH,
+         PROP_SLAVE_TYPE,
+         PROP_IS_INITIAL
+ };
+@@ -135,6 +137,14 @@ gdm_display_get_session_id (GdmDisplay *
+         return display->priv->session_id;
+ }
+ 
++gboolean
++gdm_display_get_switch_on_finish (GdmDisplay *display)
++{
++        g_return_val_if_fail (GDM_IS_DISPLAY (display), 0);
++
++        return display->priv->switch_on_finish;
++}
++
+ static GdmDisplayAccessFile *
+ _create_access_file_for_user (GdmDisplay  *display,
+                               const char  *username,
+@@ -801,6 +811,13 @@ _gdm_display_set_session_id (GdmDisplay
+ }
+ 
+ static void
++_gdm_display_set_switch_on_finish (GdmDisplay   *display,
++                                   gboolean      switch_on_finish)
++{
++        display->priv->switch_on_finish = switch_on_finish;
++}
++
++static void
+ _gdm_display_set_remote_hostname (GdmDisplay     *display,
+                                   const char     *hostname)
+ {
+@@ -852,6 +869,16 @@ _gdm_display_set_is_initial (GdmDisplay
+         display->priv->is_initial = initial;
+ }
+ 
++void
++gdm_display_set_switch_on_finish (GdmDisplay   *display,
++                                  gboolean      switch_display)
++{
++        g_debug ("GdmDisplay: Setting display %s to %sswitch to login screen on finish",
++                 display->priv->x11_display_name, switch_display? "" : "not ");
++
++        _gdm_display_set_switch_on_finish (display, switch_display);
++}
++
+ static void
+ gdm_display_set_property (GObject        *object,
+                           guint           prop_id,
+@@ -890,6 +917,9 @@ gdm_display_set_property (GObject
+         case PROP_IS_LOCAL:
+                 _gdm_display_set_is_local (self, g_value_get_boolean (value));
+                 break;
++        case PROP_SWITCH_ON_FINISH:
++                _gdm_display_set_switch_on_finish (self, g_value_get_boolean (value));
++                break;
+         case PROP_SLAVE_TYPE:
+                 _gdm_display_set_slave_type (self, g_value_get_gtype (value));
+                 break;
+@@ -944,6 +974,9 @@ gdm_display_get_property (GObject
+         case PROP_IS_LOCAL:
+                 g_value_set_boolean (value, self->priv->is_local);
+                 break;
++        case PROP_SWITCH_ON_FINISH:
++                g_value_set_boolean (value, self->priv->switch_on_finish);
++                break;
+         case PROP_SLAVE_TYPE:
+                 g_value_set_gtype (value, self->priv->slave_type);
+                 break;
+@@ -1351,6 +1384,14 @@ gdm_display_class_init (GdmDisplayClass
+                                                                NULL,
+                                                                NULL,
+                                                                TRUE,
++                                                               G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
++
++        g_object_class_install_property (object_class,
++                                         PROP_SWITCH_ON_FINISH,
++                                         g_param_spec_boolean ("switch-on-finish",
++                                                               NULL,
++                                                               NULL,
++                                                               TRUE,
+                                                                G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ 
+         g_object_class_install_property (object_class,
+Index: gdm3-3.12.2/daemon/gdm-display.h
+===================================================================
+--- gdm3-3.12.2.orig/daemon/gdm-display.h	2014-08-14 01:09:48.102831204 +0200
++++ gdm3-3.12.2/daemon/gdm-display.h	2014-08-14 01:09:48.098831265 +0200
+@@ -136,6 +136,9 @@ gboolean            gdm_display_get_time
+ gboolean            gdm_display_is_initial                     (GdmDisplay  *display,
+                                                                 gboolean    *initial,
+                                                                 GError     **error);
++gboolean            gdm_display_get_switch_on_finish           (GdmDisplay  *display);
++void                gdm_display_set_switch_on_finish           (GdmDisplay  *display,
++                                                                gboolean     switch_display);
+ 
+ gboolean            gdm_display_get_x11_cookie                 (GdmDisplay  *display,
+                                                                 const char **x11_cookie,
+Index: gdm3-3.12.2/daemon/gdm-transient-display.c
+===================================================================
+--- gdm3-3.12.2.orig/daemon/gdm-transient-display.c	2014-08-14 01:09:48.102831204 +0200
++++ gdm3-3.12.2/daemon/gdm-transient-display.c	2014-08-14 01:09:52.000000000 +0200
+@@ -188,6 +188,7 @@ gdm_transient_display_new (int display_n
+         object = g_object_new (GDM_TYPE_TRANSIENT_DISPLAY,
+                                "x11-display-number", display_number,
+                                "x11-display-name", x11_display,
++                               "switch-on-finish", TRUE,
+                                NULL);
+         g_free (x11_display);
+ 

Added: desktop/unstable/gdm3/debian/patches/18_all_displays_transient.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/patches/18_all_displays_transient.patch?rev=42177&op=file
==============================================================================
--- desktop/unstable/gdm3/debian/patches/18_all_displays_transient.patch	(added)
+++ desktop/unstable/gdm3/debian/patches/18_all_displays_transient.patch	[utf-8] Thu Aug 14 00:10:01 2014
@@ -0,0 +1,135 @@
+Make all local displays "transient".
+By default, they are not reaped at the end of the session and go back to 
+the login prompt.
+
+Index: gdm3-3.12.2/daemon/Makefile.am
+===================================================================
+--- gdm3-3.12.2.orig/daemon/Makefile.am	2014-05-13 20:33:05.000000000 +0200
++++ gdm3-3.12.2/daemon/Makefile.am	2014-08-14 01:11:28.000000000 +0200
+@@ -35,7 +35,6 @@ AM_CPPFLAGS = \
+ BUILT_SOURCES =					\
+ 	gdm-display-glue.h			\
+ 	gdm-manager-glue.h			\
+-	gdm-static-display-glue.h		\
+ 	gdm-transient-display-glue.h		\
+ 	gdm-local-display-factory-glue.h	\
+ 	gdm-session-glue.h			\
+@@ -63,13 +62,6 @@ gdm-transient-display-glue.c gdm-transie
+ 		--generate-c-code=gdm-transient-display-glue		\
+ 		$(srcdir)/gdm-transient-display.xml
+ 
+-gdm-static-display-glue.c gdm-static-display-glue.h: gdm-static-display.xml Makefile.am
+-	$(AM_V_GEN)gdbus-codegen 					\
+-		--c-namespace=GdmDBus					\
+-		--interface-prefix=org.gnome.DisplayManager		\
+-		--generate-c-code=gdm-static-display-glue		\
+-		$(srcdir)/gdm-static-display.xml
+-
+ gdm-local-display-factory-glue.c gdm-local-display-factory-glue.h : gdm-local-display-factory.xml Makefile.am
+ 	$(AM_V_GEN)gdbus-codegen 					\
+ 		--c-namespace=GdmDBus					\
+@@ -186,8 +178,6 @@ gdm_SOURCES = 			\
+ 	gdm-local-display-factory.h	\
+ 	gdm-display.c			\
+ 	gdm-display.h			\
+-	gdm-static-display.c		\
+-	gdm-static-display.h		\
+ 	gdm-transient-display.c		\
+ 	gdm-transient-display.h		\
+ 	gdm-launch-environment.c	\
+@@ -223,8 +213,6 @@ nodist_gdm_SOURCES = 			\
+ 	gdm-manager-glue.c			\
+ 	gdm-transient-display-glue.h		\
+ 	gdm-transient-display-glue.c		\
+-	gdm-static-display-glue.h		\
+-	gdm-static-display-glue.c		\
+ 	gdm-session-glue.h			\
+ 	gdm-session-glue.c			\
+ 	gdm-session-worker-glue.c		\
+@@ -281,7 +269,6 @@ CLEANFILES =					\
+ 	gdm-session-glue.c			\
+ 	gdm-session-worker-glue.c		\
+ 	gdm-session-enum-types.c		\
+-	gdm-static-display-glue.c		\
+ 	gdm-transient-display-glue.c		\
+ 	$(BUILT_SOURCES)			\
+ 	$(NULL)
+@@ -291,7 +278,6 @@ EXTRA_DIST = 				\
+ 	gdm-session-worker.xml		\
+ 	gdm-session.xml			\
+ 	gdm-display.xml			\
+-	gdm-static-display.xml		\
+ 	gdm-transient-display.xml	\
+ 	gdm-local-display-factory.xml	\
+ 	gdm-session-enum-types.c.in	\
+Index: gdm3-3.12.2/daemon/gdm-local-display-factory.c
+===================================================================
+--- gdm3-3.12.2.orig/daemon/gdm-local-display-factory.c	2014-03-18 05:23:44.000000000 +0100
++++ gdm3-3.12.2/daemon/gdm-local-display-factory.c	2014-08-14 01:11:28.000000000 +0200
+@@ -35,7 +35,6 @@
+ #include "gdm-local-display-factory-glue.h"
+ 
+ #include "gdm-display-store.h"
+-#include "gdm-static-display.h"
+ #include "gdm-transient-display.h"
+ 
+ #define GDM_LOCAL_DISPLAY_FACTORY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_LOCAL_DISPLAY_FACTORY, GdmLocalDisplayFactoryPrivate))
+@@ -290,8 +289,8 @@ on_display_status_changed (GdmDisplay
+                 g_hash_table_remove (factory->priv->displays, GUINT_TO_POINTER (num));
+                 gdm_display_store_remove (store, display);
+ 
+-                /* Create a new equivalent display if it was static */
+-                if (GDM_IS_STATIC_DISPLAY (display)) {
++                /* Create a new equivalent display if needed */
++                if (gdm_display_get_switch_on_finish (display)) {
+                         /* reset num failures */
+                         factory->priv->num_failures = 0;
+ 
+@@ -303,8 +302,8 @@ on_display_status_changed (GdmDisplay
+                    so that it doesn't get reused */
+                 gdm_display_store_remove (store, display);
+ 
+-                /* Create a new equivalent display if it was static */
+-                if (GDM_IS_STATIC_DISPLAY (display)) {
++                /* Create a new equivalent display if needed */
++                if (gdm_display_get_switch_on_finish (display)) {
+ 
+                         factory->priv->num_failures++;
+ 
+@@ -370,7 +369,7 @@ create_display (GdmLocalDisplayFactory *
+ 
+         num = take_next_display_number (factory);
+ 
+-        display = gdm_static_display_new (num);
++        display = gdm_transient_display_new (num);
+ 
+         g_object_set (display, "seat-id", seat_id, NULL);
+         g_object_set (display, "is-initial", initial, NULL);
+Index: gdm3-3.12.2/daemon/gdm-transient-display.c
+===================================================================
+--- gdm3-3.12.2.orig/daemon/gdm-transient-display.c	2014-08-14 01:11:28.000000000 +0200
++++ gdm3-3.12.2/daemon/gdm-transient-display.c	2014-08-14 01:13:50.867144257 +0200
+@@ -94,9 +94,22 @@ gdm_transient_display_manage (GdmDisplay
+ static gboolean
+ gdm_transient_display_finish (GdmDisplay *display)
+ {
++        int status;
++
+         g_return_val_if_fail (GDM_IS_DISPLAY (display), FALSE);
+ 
+-        GDM_DISPLAY_CLASS (gdm_transient_display_parent_class)->finish (display);
++        if (gdm_display_get_switch_on_finish (display)) {
++                /* restart display */
++                gdm_display_unmanage (display);
++
++                status = gdm_display_get_status (display);
++                if (status != GDM_DISPLAY_FAILED) {
++                        gdm_display_manage (display);
++                }
++        } else {
++                /* Call parent's finish to be put in the FINISHED state */
++                GDM_DISPLAY_CLASS (gdm_transient_display_parent_class)->finish (display);
++        }
+ 
+         return TRUE;
+ }

Added: desktop/unstable/gdm3/debian/patches/19_switch_kill_greeter.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/patches/19_switch_kill_greeter.patch?rev=42177&op=file
==============================================================================
--- desktop/unstable/gdm3/debian/patches/19_switch_kill_greeter.patch	(added)
+++ desktop/unstable/gdm3/debian/patches/19_switch_kill_greeter.patch	[utf-8] Thu Aug 14 00:10:01 2014
@@ -0,0 +1,93 @@
+Index: gdm3-3.12.2/configure.ac
+===================================================================
+--- gdm3-3.12.2.orig/configure.ac	2014-08-13 21:37:53.886754675 +0200
++++ gdm3-3.12.2/configure.ac	2014-08-14 00:27:12.457744070 +0200
+@@ -274,6 +274,11 @@ AC_ARG_WITH(at-spi-registryd-directory,
+ AT_SPI_REGISTRYD_DIR=$with_at_spi_registryd_directory
+ AC_SUBST(AT_SPI_REGISTRYD_DIR)
+ 
++AC_ARG_WITH(vt-switch-workaround,
++            AS_HELP_STRING([--with-vt-switch-workaround],
++                           [Try to workaround missing -novtswitch option for X @<:@default=no@:>@])],,
++            [with_vt_switch_workaround="no"])
++
+ # Allow configuration of default PATH
+ #
+ withval=""
+@@ -991,6 +996,14 @@ AC_SUBST(PLYMOUTH_CFLAGS)
+ AC_SUBST(PLYMOUTH_LIBS)
+ 
+ dnl ---------------------------------------------------------------------------
++dnl - Check for vt switch support
++dnl ---------------------------------------------------------------------------
++
++if test "x$with_vt_switch_workaround" != "xno" ; then
++       AC_DEFINE(WITH_VT_SWITCH_WORKAROUND, 1, [Define to enable workaround for missing -novtswitch feature])
++fi
++
++dnl ---------------------------------------------------------------------------
+ dnl - Check for D-Bus
+ dnl ---------------------------------------------------------------------------
+ 
+Index: gdm3-3.12.2/daemon/gdm-manager.c
+===================================================================
+--- gdm3-3.12.2.orig/daemon/gdm-manager.c	2014-08-13 23:26:29.000000000 +0200
++++ gdm3-3.12.2/daemon/gdm-manager.c	2014-08-14 00:57:53.365712128 +0200
+@@ -108,6 +108,8 @@ static void create_seed_session_for_disp
+                                              uid_t       allowed_user);
+ static void     touch_ran_once_marker_file  (GdmManager *manager);
+ 
++static void     remove_user_session (GdmManager *manager, GdmSession *session);
++
+ static gpointer manager_object = NULL;
+ 
+ static void manager_interface_init (GdmDBusManagerIface *interface);
+@@ -1366,19 +1368,26 @@ on_start_user_session (StartUserSessionO
+          */
+         migrated = switch_to_compatible_user_session (operation->manager, operation->session, fail_if_already_switched);
+ 
++        display = get_display_for_user_session (operation->session);
++
+         g_debug ("GdmManager: migrated: %d", migrated);
+         if (migrated) {
+-                /* We don't stop the manager here because
+-                   when Xorg exits it switches to the VT it was
+-                   started from.  That interferes with fast
+-                   user switching. */
++#ifdef WITH_VT_SWITCH_WORKAROUND
++                /* If the X server doesn't support -novtswitch, then when the
++                   user logs out from their session later, they're going to get
++                   thrown back to the VT the greeter is currently running on.
++                   So we keep the greeter akkuve here, so when that happens the
++                   user doesn't see a blank VT or some confusing thing. */
+                 gdm_session_reset (operation->session);
+                 destroy_start_user_session_operation (operation);
++#else
++                gdm_display_set_switch_on_finish (display, FALSE);
++                remove_user_session (operation->manager, operation->session);
++#endif
++
+                 goto out;
+         }
+ 
+-        display = get_display_for_user_session (operation->session);
+-
+         if (gdm_session_get_display_mode (operation->session) == GDM_SESSION_DISPLAY_MODE_REUSE_VT) {
+                 /* In this case, the greeter's display is morphing into
+                  * the user session display. Kill the greeter on this session
+Index: gdm3-3.12.2/daemon/gdm-server.c
+===================================================================
+--- gdm3-3.12.2.orig/daemon/gdm-server.c	2014-03-19 16:15:29.000000000 +0100
++++ gdm3-3.12.2/daemon/gdm-server.c	2014-08-14 00:40:52.525234183 +0200
+@@ -276,7 +276,11 @@ gdm_server_init_command (GdmServer *serv
+                 debug_options = "";
+         }
+ 
++#ifdef WITH_VT_SWITCH_WORKAROUND
+ #define X_SERVER_ARG_FORMAT " -background none -noreset -verbose %s%s"
++#else
++#define X_SERVER_ARG_FORMAT " -novtswitch -background none -noreset -verbose %s%s"
++#endif
+ 
+ #ifdef WITH_SYSTEMD
+ 

Modified: desktop/unstable/gdm3/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/patches/series?rev=42177&op=diff
==============================================================================
--- desktop/unstable/gdm3/debian/patches/series	[utf-8] (original)
+++ desktop/unstable/gdm3/debian/patches/series	[utf-8] Thu Aug 14 00:10:01 2014
@@ -1,6 +1,12 @@
+01_session_windowpath.patch
+02_slave_windowpath.patch
+03_dont_mask_SIGUSR1.patch
 08_frequent-users_greeter.patch
 09_default_session.patch
 16_xserver_path.patch
+17_switch_on_finish.patch
+18_all_displays_transient.patch
+19_switch_kill_greeter.patch
 90_config_comments.patch
 91_dconf_database_path.patch
 92_systemd_unit.patch

Modified: desktop/unstable/gdm3/debian/po/tr.po
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/po/tr.po?rev=42177&op=diff
==============================================================================
--- desktop/unstable/gdm3/debian/po/tr.po	[utf-8] (original)
+++ desktop/unstable/gdm3/debian/po/tr.po	[utf-8] Thu Aug 14 00:10:01 2014
@@ -25,24 +25,23 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: xorg-x11\n"
+"Project-Id-Version: gdm3\n"
 "Report-Msgid-Bugs-To: gdm3 at packages.debian.org\n"
 "POT-Creation-Date: 2012-09-11 23:23+0200\n"
-"PO-Revision-Date: 2006-01-11 04:57+0200\n"
-"Last-Translator: Osman Yüksel <yuxel at sonsuzdongu.com>\n"
+"PO-Revision-Date: 2014-08-01 04:05+0200\n"
+"Last-Translator: Mert Dirik <mertdirik at gmail.com>\n"
 "Language-Team: Debian L10n Turkish <debian-l10n-turkish at lists.debian.org>\n"
-"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.10.2\n"
+"X-Generator: Poedit 1.5.4\n"
+"Language: tr\n"
 
 #. Type: select
 #. Description
 #: ../gdm3.templates:2001
-#, fuzzy
 msgid "Default display manager:"
-msgstr "Kullanmak istediğiniz öntanımlı ekran yöneticisini seçin."
+msgstr "Öntanımlı ekran yöneticisi:"
 
 #. Type: select
 #. Description
@@ -56,30 +55,29 @@
 #. Type: select
 #. Description
 #: ../gdm3.templates:2001
-#, fuzzy
 msgid ""
 "Only one display manager can manage a given X server, but multiple display "
 "manager packages are installed. Please select which display manager should "
 "run by default."
 msgstr ""
-"Sadece bir ekran yöneticisi verilen X sunucusunu yönetebilir; ancak birden "
-"fazla ekran yöneticisi kurulu durumda.  Lütfen öntanımlı olarak çalıştırmak "
-"istediğiniz ekran yöneticisini seçin."
+"Sadece bir ekran yöneticisi verilen X sunucusunu yönetebilir; ancak "
+"sisteminizde birden fazla ekran yöneticisi kurulu durumda. Lütfen öntanımlı "
+"olarak kullanmak istediğiniz ekran yöneticisini seçin."
 
 #. Type: select
 #. Description
 #: ../gdm3.templates:2001
-#, fuzzy
 msgid ""
 "Multiple display managers can run simultaneously if they are configured to "
 "manage different servers; to achieve this, configure the display managers "
 "accordingly, edit each of their init scripts in /etc/init.d, and disable the "
 "check for a default display manager."
 msgstr ""
-"(Eğer farklı sunucuları çalıştırmak için ayarlanırsa birden fazla ekran "
-"yöneticisi kullanılabilir.  Bunun için /etc/init.d içindeki ilgili betikleri "
-"değiştirin ve öntanımlı ekran yöneticisini denetleyen işlevleri devre dışı "
-"bırakın.)"
+"Farklı sunucuları çalıştıracak şakilde ayarlandıkları takdirde birden fazla "
+"ekran yöneticisi kullanılabilir.  Bunun için, her bir ekran yöneticisini "
+"uygun bir şekilde yapılandırın, hepsinin /etc/init.d dizinindeki ilgili "
+"betiklerini değiştirin ve öntanımlı ekran yöneticisini denetleyen işlevleri "
+"devre dışı bırakın."
 
 #, fuzzy
 #~ msgid "Stop the xdm daemon?"

Modified: desktop/unstable/gdm3/debian/rules
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/rules?rev=42177&op=diff
==============================================================================
--- desktop/unstable/gdm3/debian/rules	[utf-8] (original)
+++ desktop/unstable/gdm3/debian/rules	[utf-8] Thu Aug 14 00:10:01 2014
@@ -41,7 +41,7 @@
 ifeq (linux,$(DEB_HOST_ARCH_OS))
 		DEB_CONFIGURE_EXTRA_FLAGS += --with-systemd --with-selinux --without-console-kit
 else
-		DEB_CONFIGURE_EXTRA_FLAGS += --without-systemd --without-selinux --with-console-kit
+		DEB_CONFIGURE_EXTRA_FLAGS += --without-systemd --without-selinux --with-console-kit --with-vt-switch-workaround
 endif
 
 DEB_CONFIGURE_EXTRA_FLAGS += --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)




More information about the pkg-gnome-commits mailing list