Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please unblock package gdm3 and/or set a shorter time delay. This fixes RC bug #789118, one of two root causes for inability to unlock the lock screen if a user fails to read the release notes and carries out the upgrade from within the GNOME GUI (the other is in gnome-shell and will be requested separately). unblock gdm3/3.22.1-2 >+ [ Simon McVittie ] >+ * Work around upgrades not being done offline: >+ - Add a non-upstreamable patch to edit D-Bus messages from libgdm >+ to the session worker and adapt them from the pre-3.16 interface >+ to the post-3.16 interface. Only do this if a flag file in /run >+ has been created, so that this workaround will only be active >+ until the next reboot. >+ - gdm3.preinst: Create that flag file on upgrades. (Closes: #789118) The RC bug fix. >+ [ Jeremy Bicha ] >+ * debian/greeter.dconf-defaults: >+ - Use the new emblem-debian-white.png for default login screen logo >+ (Closes: #833529) Was already in pkg-gnome svn, targeting stretch. If desktop-base 9.0.3 is allowed to migrate, this puts Debian branding on the login screen (which was previously only present if deprecated theme packages were installed). If not, the missing file is harmlessly ignored. I've tested both ways. >+ [ Michael Biebl ] >+ * Stop setting authdir, has been dropped upstream in favour of xauthdir. Was already in pkg-gnome svn. Non-critical, but I have verified that it is harmless (there is no mention of authdir in the source tree, except as a substring of xauthdir, which is set by --with-xauth-dir=/var/run/gdm3 on the configure command-line). Regards, S
diffstat for gdm3-3.22.1 gdm3-3.22.1 changelog | 23 + gdm3.preinst | 5 greeter.dconf-defaults | 4 patches/Hack-D-Bus-messages-from-Debian-8-libgdm-to-work-wit.patch | 118 ++++++++++ patches/series | 1 rules | 2 6 files changed, 150 insertions(+), 3 deletions(-) diff -Nru gdm3-3.22.1/debian/changelog gdm3-3.22.1/debian/changelog --- gdm3-3.22.1/debian/changelog 2016-10-16 23:17:17.000000000 +0100 +++ gdm3-3.22.1/debian/changelog 2017-01-29 11:07:50.000000000 +0000 @@ -1,3 +1,26 @@ +gdm3 (3.22.1-2) unstable; urgency=medium + + * Team upload. + + [ Michael Biebl ] + * Stop setting authdir, has been dropped upstream in favour of xauthdir. + + [ Jeremy Bicha ] + * debian/greeter.dconf-defaults: + - Use the new emblem-debian-white.png for default login screen logo + (Closes: #833529) + + [ Simon McVittie ] + * Work around upgrades not being done offline: + - Add a non-upstreamable patch to edit D-Bus messages from libgdm + to the session worker and adapt them from the pre-3.16 interface + to the post-3.16 interface. Only do this if a flag file in /run + has been created, so that this workaround will only be active + until the next reboot. + - gdm3.preinst: Create that flag file on upgrades. (Closes: #789118) + + -- Simon McVittie <s...@debian.org> Sun, 29 Jan 2017 11:07:50 +0000 + gdm3 (3.22.1-1) unstable; urgency=medium * New upstream release. diff -Nru gdm3-3.22.1/debian/gdm3.preinst gdm3-3.22.1/debian/gdm3.preinst --- gdm3-3.22.1/debian/gdm3.preinst 2016-10-16 21:58:13.000000000 +0100 +++ gdm3-3.22.1/debian/gdm3.preinst 2017-01-29 01:59:22.000000000 +0000 @@ -9,4 +9,9 @@ fi fi +if [ -n "$2" ] && dpkg --compare-versions "$2" lt 3.22; then + echo "Enabling compatibility workaround for upgrades from Debian 8..." + touch "/run/gdm3-upgraded-from-debian-8" +fi + #DEBHELPER# diff -Nru gdm3-3.22.1/debian/greeter.dconf-defaults gdm3-3.22.1/debian/greeter.dconf-defaults --- gdm3-3.22.1/debian/greeter.dconf-defaults 2015-07-09 12:03:14.000000000 +0100 +++ gdm3-3.22.1/debian/greeter.dconf-defaults 2017-01-26 22:27:50.000000000 +0000 @@ -23,8 +23,8 @@ # Login manager options # ===================== [org/gnome/login-screen] -logo='/usr/share/icons/gnome/48x48/places/debian-swirl.png' -fallback-logo='/usr/share/icons/gnome/48x48/places/debian-swirl.png' +logo='/usr/share/icons/hicolor/48x48/emblems/emblem-debian-white.png' +fallback-logo='/usr/share/icons/hicolor/48x48/emblems/emblem-debian-white.png' # - Disable user list # disable-user-list=true diff -Nru gdm3-3.22.1/debian/patches/Hack-D-Bus-messages-from-Debian-8-libgdm-to-work-wit.patch gdm3-3.22.1/debian/patches/Hack-D-Bus-messages-from-Debian-8-libgdm-to-work-wit.patch --- gdm3-3.22.1/debian/patches/Hack-D-Bus-messages-from-Debian-8-libgdm-to-work-wit.patch 1970-01-01 01:00:00.000000000 +0100 +++ gdm3-3.22.1/debian/patches/Hack-D-Bus-messages-from-Debian-8-libgdm-to-work-wit.patch 2017-01-29 01:59:22.000000000 +0000 @@ -0,0 +1,118 @@ +From 27365c4863a3a5127541ed9ac77cb29500466ab8 Mon Sep 17 00:00:00 2001 +From: Simon McVittie <s...@debian.org> +Date: Wed, 25 Jan 2017 10:58:28 +0000 +Subject: [PATCH] Hack D-Bus messages from Debian 8 libgdm to work with this + version + +There is one extra argument. Add that argument, setting it to FALSE, +which makes this gdm behave like the only code path in Debian 8. + +Please remove this patch after Debian 9 is released. + +Forwarded: no, Debian-specific +--- + daemon/gdm-session-worker.c | 81 +++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 81 insertions(+) + +diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c +index 421ef028..6b14f003 100644 +--- a/daemon/gdm-session-worker.c ++++ b/daemon/gdm-session-worker.c +@@ -3077,6 +3077,80 @@ gdm_session_worker_handle_start_reauthentication (GdmDBusWorker *object, + return TRUE; + } + ++/* A horrible hack to cope with reauthentication requests coming from ++ * Debian 8's libgdm, which might still be resident in memory if a user ++ * was running gnome-shell and lets it lock during the upgrade. */ ++static GDBusMessage * ++rewrite_messages (GDBusConnection *connection, ++ GDBusMessage *message, ++ gboolean incoming, ++ gpointer nil) ++{ ++ g_autoptr (GDBusMessage) ret = NULL; ++ GVariant *body; ++ const gchar *service_name, *user_name, *x11_display, *x11_authority; ++ const gchar *display_device, *display_seat, *hostname; ++ gboolean display_is_local; ++ ++ if (!incoming || ++ g_dbus_message_get_message_type (message) != ++ G_DBUS_MESSAGE_TYPE_METHOD_CALL || ++ g_dbus_message_get_num_unix_fds (message) != 0 || ++ g_strcmp0 (g_dbus_message_get_interface (message), ++ "org.gnome.DisplayManager.Worker") != 0 || ++ g_strcmp0 (g_dbus_message_get_member (message), ++ "SetupForUser") != 0 || ++ g_strcmp0 (g_dbus_message_get_signature (message), ++ "ssss" "sssb") != 0) ++ return message; ++ ++ g_warning ("Patching old SetupForUser message from Debian 8 libgdm"); ++ ++ ret = g_dbus_message_copy (message, NULL); ++ ++ /* If we can't copy it for whatever reason, just give up */ ++ if (ret == NULL) ++ { ++ g_warning ("Failed to patch old SetupForUser message"); ++ return message; ++ } ++ ++ body = g_dbus_message_get_body (message); ++ ++ g_variant_get (body, ++ "(" "&s&s&s&s" "&s&s&sb" ")", ++ ++ &service_name, ++ &user_name, ++ &x11_display, ++ &x11_authority, ++ ++ &display_device, ++ &display_seat, ++ &hostname, ++ &display_is_local); ++ ++ /* The new API has one aditional boolean argument, display_is_initial. ++ * Set it to FALSE to make gdm behave like it did in Debian 8. */ ++ g_dbus_message_set_body (ret, ++ g_variant_new ("(" "ssss" "sssb" "b" ")", ++ ++ service_name, ++ user_name, ++ x11_display, ++ x11_authority, ++ ++ display_device, ++ display_seat, ++ hostname, ++ display_is_local, ++ ++ FALSE)); ++ ++ g_object_unref (message); ++ return g_steal_pointer (&ret); ++} ++ + static GObject * + gdm_session_worker_constructor (GType type, + guint n_construct_properties, +@@ -3104,6 +3178,13 @@ gdm_session_worker_constructor (GType type, + exit (1); + } + ++ if (worker->priv->is_reauth_session && ++ g_file_test ("/run/gdm3-upgraded-from-debian-8", ++ G_FILE_TEST_EXISTS)) { ++ g_dbus_connection_add_filter (worker->priv->connection, ++ rewrite_messages, NULL, NULL); ++ } ++ + worker->priv->manager = GDM_DBUS_WORKER_MANAGER (gdm_dbus_worker_manager_proxy_new_sync (worker->priv->connection, + G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, + NULL, /* dbus name */ +-- +2.11.0 + diff -Nru gdm3-3.22.1/debian/patches/series gdm3-3.22.1/debian/patches/series --- gdm3-3.22.1/debian/patches/series 2016-10-16 21:55:14.000000000 +0100 +++ gdm3-3.22.1/debian/patches/series 2017-01-29 01:59:22.000000000 +0000 @@ -4,3 +4,4 @@ 91_dconf_database_path.patch 92_systemd_unit.patch 94_retain_xorg_log.patch +Hack-D-Bus-messages-from-Debian-8-libgdm-to-work-wit.patch diff -Nru gdm3-3.22.1/debian/rules gdm3-3.22.1/debian/rules --- gdm3-3.22.1/debian/rules 2016-10-16 23:05:57.000000000 +0100 +++ gdm3-3.22.1/debian/rules 2016-10-17 00:11:11.000000000 +0100 @@ -72,7 +72,7 @@ $(CONFFLAGS) override_dh_auto_build: $(OUTFILES) $(MANPAGES) - authdir=/var/lib/gdm3 dh_auto_build + dh_auto_build override_dh_install: dh_install --list-missing