After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 679132 - fallback greeter: Esc key does not abort the password entering dialog
fallback greeter: Esc key does not abort the password entering dialog
Status: RESOLVED OBSOLETE
Product: gdm
Classification: Core
Component: general
3.4.x
Other All
: Normal normal
: ---
Assigned To: GDM maintainers
GDM maintainers
Depends on:
Blocks:
 
 
Reported: 2012-06-29 12:27 UTC by Paul Menzel
Modified: 2014-05-14 19:05 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Paul Menzel 2012-06-29 12:27:12 UTC
Choosing a user from the list the window changes and the user is asked to enter the password. In GDM 3.0.x it was possible to use the ESC key to abort that and go back to the user list. Using Debian Sid/unstable with GDM 3.4.1 this does not work anymore.
Comment 1 Paul Menzel 2012-08-23 09:15:06 UTC
This is Debian bug report #685674 [1].

[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=685674
Comment 2 Paul Menzel 2012-08-23 09:16:38 UTC
Please note that this was also not present in GDM 2.30.5-6squeeze4 and 2.30.5-10.
Comment 3 Ray Strode [halfline] 2012-09-05 02:42:16 UTC
I believe this was fixed some time ago, please reopen if you continue to have problems.
Comment 4 Paul Menzel 2012-09-05 07:29:35 UTC
(In reply to comment #3)
> I believe this was fixed some time ago, please reopen if you continue to have
> problems.

Thanks for your answer. Unfortunately I am not able to find that fix.

Also I do not understand why GDM was not kept as component. As far as I understand the Debian package is built from the GDM sources and not the gnome-shell sources. Also this problem started to surface when only upgrading the GDM package.

Grepping through the gnome-shell source files [1] I only found bug 681537 [2], but I do not know how that applies to the GDM package.

I am reopening this report until I can test a patch against GDM 3.4.1 to verify the fix and to have that patch backported to the version in Debian Wheezy/testing.

Ray, it would be great if you could help me further to find that patch.

[1] http://git.gnome.org/browse/gnome-shell/
[2] https://bugzilla.gnome.org/show_bug.cgi?id=681537
Comment 5 Giovanni Campagna 2012-09-05 11:11:28 UTC
This is strange, git blame tells me that escape key support in the gnome-shell gdm greeter was supported from the very beginning (9f1da201). In fact, it works fine here.

As far as the component is concerned, gnome-shell is the right choice because since 3.2 gdm uses gnome-shell for its UI.
Comment 6 Paul Menzel 2012-09-05 11:32:29 UTC
(In reply to comment #5)
> This is strange, git blame tells me that escape key support in the gnome-shell
> gdm greeter was supported from the very beginning (9f1da201).

Could you please tell me in what line I should look at.

> In fact, it works fine here.

That is great to hear! What version do you use? I am using 3.4.1. If you use a newer version that would correspond with Ray’s statement, that it has been fixed in between.

> As far as the component is concerned, gnome-shell is the right choice because
> since 3.2 gdm uses gnome-shell for its UI.

Thank you for the explanation. Looking at the Debian package description [1]

$ LANG=C aptitude show gdm3
Package: gdm3                            
New: yes
State: installed
Automatically installed: yes
Version: 3.4.1-2
Priority: optional
Section: gnome
Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
Architecture: i386
Uncompressed Size: 6024 k
Depends: libaccountsservice0 (>= 0.6.8), libatk1.0-0 (>= 1.12.4), libattr1 (>= 1:2.4.46-8), libaudit0 (>= 1.7.13), libc6 (>= 2.4),
         libcairo-gobject2 (>= 1.10.0), libcairo2 (>= 1.10.0), libcanberra-gtk3-0 (>= 0.25), libcanberra0 (>= 0.2), libdbus-1-3 (>= 1.0.2),
         libdbus-glib-1-2 (>= 0.88), libfontconfig1 (>= 2.9.0), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.30.0), libgtk-3-0 (>=
         3.0.0), libpam0g (>= 0.99.7.1), libpango1.0-0 (>= 1.14.0), libselinux1 (>= 1.32), libupower-glib1 (>= 0.9.0), libwrap0 (>= 7.6-4~),
         libx11-6, libxau6, libxdmcp6, libxklavier16 (>= 5.0), libxrandr2 (>= 2:1.2.99.3), dconf-gsettings-backend (>= 0.12.1-2), debconf
         (>= 0.5) | debconf-2.0, gir1.2-freedesktop, gir1.2-glib-2.0, adduser, libpam-modules (>= 0.72-1), libpam-runtime (>= 0.76-13.1),
         gnome-session-bin (>= 3.2), gnome-settings-daemon (>= 3.2), metacity (>= 1:2.34.2), policykit-1-gnome, upower, gnome-session |
         x-session-manager | x-window-manager | x-terminal-emulator, lsb-base (>= 3.2-14), librsvg2-common, accountsservice (>= 0.6.12),
         gsettings-desktop-schemas, libglib2.0-bin (>= 2.26), dconf-tools (>= 0.12.1-2), x11-common (>= 1:7.6+11), x11-xserver-utils
PreDepends: dpkg (>= 1.15.7.2)
Recommends: zenity, xserver-xephyr, x11-xkb-utils, xserver-xorg, at-spi, gnome-icon-theme, desktop-base (>= 6)
Suggests: libpam-gnome-keyring, gnome-mag, gnome-orca, gok, gnome-shell
Conflicts: gdm
Breaks: gnome-control-center (< 3.0), gnome-orca (< 2.30.0-2), gnome-panel (< 3.0), gnome-screensaver (< 2.17.7), gnome-shell (< 3.2)
Provides: x-display-manager
Description: Next generation GNOME Display Manager
 GDM provides the equivalent of a "login:" prompt for X displays: it asks for a login and starts X sessions. 
 
 It provides all the functionality of XDM, including XDMCP support for managing remote displays, and extends it with the ability to start X
 servers on demand. 
 
 The greeter is written using the GNOME libraries and hence looks like a GNOME application - even to the extent of supporting themes! 
 
 This package contains the next generation GDM, which was developed using the technologies on which GNOME 3 is based.

gnome-shell is “only” recommended (but is installed on my system anyway). So I guess some library from gnome-shell is used by GDM 3.

[1] http://packages.debian.org/sid/gdm3
Comment 7 Giovanni Campagna 2012-09-05 11:42:31 UTC
(In reply to comment #6)
> (In reply to comment #5)
> > This is strange, git blame tells me that escape key support in the gnome-shell
> > gdm greeter was supported from the very beginning (9f1da201).
> 
> Could you please tell me in what line I should look at.

On 3.4.1, it's line 1024 of js/gdm/loginDialog.js in the gnome-shell tarball.

> > In fact, it works fine here.
> 
> That is great to hear! What version do you use? I am using 3.4.1. If you use a
> newer version that would correspond with Ray’s statement, that it has been
> fixed in between.

TBH, I tested using master, but I don't expect to see differences in 3.4.1 (or 3.2, fwiw)

> > As far as the component is concerned, gnome-shell is the right choice because
> > since 3.2 gdm uses gnome-shell for its UI.
> 
> Thank you for the explanation. Looking at the Debian package description [1]
> [...]
> 
> gnome-shell is “only” recommended (but is installed on my system anyway). So I
> guess some library from gnome-shell is used by GDM 3.
> 
> [1] http://packages.debian.org/sid/gdm3

That description is not totally incorrect, but it's definitely incomplete. GDM includes a gtk based UI, but it's used only for fallback mode. When the graphic card is new enough, instead of spawning the simple-greeter (gdm's builtin UI), gdm will launch gnome-shell in gdm mode.
There is no gnome-shell library, it's a just a different process launched inside the GDM session.
Comment 8 Paul Menzel 2012-09-05 12:14:39 UTC
(In reply to comment #7)
> (In reply to comment #6)
> > (In reply to comment #5)
> > > This is strange, git blame tells me that escape key support in the gnome-shell
> > > gdm greeter was supported from the very beginning (9f1da201).
> > 
> > Could you please tell me in what line I should look at.
> 
> On 3.4.1, it's line 1024 of js/gdm/loginDialog.js in the gnome-shell tarball.

Thanks.

> > > In fact, it works fine here.
> > 
> > That is great to hear! What version do you use? I am using 3.4.1. If you use a
> > newer version that would correspond with Ray’s statement, that it has been
> > fixed in between.
> 
> TBH, I tested using master, but I don't expect to see differences in 3.4.1 (or
> 3.2, fwiw)

But only with gnome-shell in GDM mode. Interesting.

> > > As far as the component is concerned, gnome-shell is the right choice because
> > > since 3.2 gdm uses gnome-shell for its UI.
> > 
> > Thank you for the explanation. Looking at the Debian package description [1]
> > [...]
> > 
> > gnome-shell is “only” recommended (but is installed on my system anyway). So I
> > guess some library from gnome-shell is used by GDM 3.
> > 
> > [1] http://packages.debian.org/sid/gdm3
> 
> That description is not totally incorrect, but it's definitely incomplete. GDM
> includes a gtk based UI, but it's used only for fallback mode. When the graphic
> card is new enough, instead of spawning the simple-greeter (gdm's builtin UI),
> gdm will launch gnome-shell in gdm mode.
> There is no gnome-shell library, it's a just a different process launched
> inside the GDM session.

Very interesting. I think on Debian GDM is always spawning the simple greeter. So this problem seems to be related with the simple greeter.

Any hints on how to start GDM in gnome-shell mode? Or could you test fallback mode or tell me where to look there? That would be awesome.
Comment 9 Giovanni Campagna 2012-09-05 13:27:16 UTC
Uh oh! Indeed, the fallback greeter has this bug (tested gdm 3.5.90).

To force gdm in gnome-shell mode, you must ensure that the dconf key /org/gnome/desktop/session/session-name is set to 'gdm-shell' for the gdm user. This is the upstream default but it could be patched.
Additionally, you may need to change the IsRunnableHelper in /usr/share/gnome-session/gdm-shell.session to /bin/true (or /bin/false to force fallback mode)
Comment 10 Paul Menzel 2012-09-05 15:21:38 UTC
(In reply to comment #9)
> Uh oh! Indeed, the fallback greeter has this bug (tested gdm 3.5.90).

So should the component be changed back to gdm?

Any hint where to look in GDM’s fallback greeter?

> To force gdm in gnome-shell mode, you must ensure that the dconf key
> /org/gnome/desktop/session/session-name is set to 'gdm-shell' for the gdm user.
> This is the upstream default but it could be patched.
> Additionally, you may need to change the IsRunnableHelper in
> /usr/share/gnome-session/gdm-shell.session to /bin/true (or /bin/false to force
> fallback mode)

I will try that this week. But it will unfortunately will not fix that bug for others using the fallback greeter. :/
Comment 11 Jasper St. Pierre (not reading bugmail) 2012-09-05 15:30:11 UTC
(In reply to comment #10)
> (In reply to comment #9)
> > Uh oh! Indeed, the fallback greeter has this bug (tested gdm 3.5.90).
> 
> So should the component be changed back to gdm?

Yes.

> Any hint where to look in GDM’s fallback greeter?

I don't think it's a debugging thing at this point. I just don't think this was ever implemented in the fallback greeter.

> > To force gdm in gnome-shell mode, you must ensure that the dconf key
> > /org/gnome/desktop/session/session-name is set to 'gdm-shell' for the gdm user.
> > This is the upstream default but it could be patched.
> > Additionally, you may need to change the IsRunnableHelper in
> > /usr/share/gnome-session/gdm-shell.session to /bin/true (or /bin/false to force
> > fallback mode)
> 
> I will try that this week. But it will unfortunately will not fix that bug for
> others using the fallback greeter. :/

Do you get a full GNOME Shell session, or are you using gnome-panel?
Comment 12 Paul Menzel 2012-09-05 15:37:55 UTC
(In reply to comment #11)
> (In reply to comment #10)
> > (In reply to comment #9)
> > > Uh oh! Indeed, the fallback greeter has this bug (tested gdm 3.5.90).
> > 
> > So should the component be changed back to gdm?
> 
> Yes.

Thanks for doing that!

> > Any hint where to look in GDM’s fallback greeter?
> 
> I don't think it's a debugging thing at this point. I just don't think this was
> ever implemented in the fallback greeter.

I do not know the code base. It worked with GDM 2.30.5 but I do not know if the fallback greeter and the “old” GDM share any code.

> > > To force gdm in gnome-shell mode, you must ensure that the dconf key
> > > /org/gnome/desktop/session/session-name is set to 'gdm-shell' for the gdm user.
> > > This is the upstream default but it could be patched.
> > > Additionally, you may need to change the IsRunnableHelper in
> > > /usr/share/gnome-session/gdm-shell.session to /bin/true (or /bin/false to force
> > > fallback mode)
> > 
> > I will try that this week. But it will unfortunately will not fix that bug for
> > others using the fallback greeter. :/
> 
> Do you get a full GNOME Shell session, or are you using gnome-panel?

I am using GNOME Classic by choice but GNOME Shell is supported.
Comment 13 Paul Menzel 2012-09-05 16:00:58 UTC
(In reply to comment #9)

[…]

> To force gdm in gnome-shell mode, you must ensure that the dconf key
> /org/gnome/desktop/session/session-name is set to 'gdm-shell' for the gdm user.
> This is the upstream default but it could be patched.

$ sudo -u Debian-gdm dconf read /org/gnome/desktop/session/session-name
$ echo $?
0

> Additionally, you may need to change the IsRunnableHelper in
> /usr/share/gnome-session/gdm-shell.session to /bin/true (or /bin/false to force
> fallback mode)

The desktop file in Debian runs `/usr/lib/gnome-session/gnome-session-check-accelerated`.

$ /usr/lib/gnome-session/gnome-session-check-accelerated
$ echo $?
0
Comment 14 Ray Strode [halfline] 2012-09-06 18:16:57 UTC
you have to set the environment variable DCONF_PROFILE=gdm to be able to read gdm's configuration.

Odd that escape doesn't work in the fallback greeter. I'm pretty sure it used to.  It may have broken when landing multi-stack support.
Comment 15 Paul Menzel 2012-09-07 12:13:14 UTC
(In reply to comment #14)
> you have to set the environment variable DCONF_PROFILE=gdm to be able to read
> gdm's configuration.

That breaks `dconf` for me. ;-) See bug 683569.

> Odd that escape doesn't work in the fallback greeter. I'm pretty sure it used
> to.  It may have broken when landing multi-stack support.

Can you point me to some file responsible for processing key presses?
Comment 16 Paul Menzel 2012-09-25 11:32:00 UTC
Another interesting thing is, that when choosing »Other« to get to the dialog to enter a username manually, the ESC works for *both* dialogs for entering the username and the one for entering the password.
Comment 17 Paul Menzel 2012-09-27 10:39:24 UTC
(In reply to comment #15)
> (In reply to comment #14)
> > you have to set the environment variable DCONF_PROFILE=gdm to be able to read
> > gdm's configuration.
> 
> That breaks `dconf` for me. ;-) See bug 683569.
> 
> > Odd that escape doesn't work in the fallback greeter. I'm pretty sure it used
> > to.  It may have broken when landing multi-stack support.
> 
> Can you point me to some file responsible for processing key presses?

Grepping the `gnome-3-4` branch, `GTK_RESPONSE_CANCEL` is passed to `gtk_dialog_add_buttons()`.

gui/simple-chooser/gdm-host-chooser-dialog.c-        gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), d
gui/simple-chooser/gdm-host-chooser-dialog.c-        gtk_container_set_border_width (GTK_CONTAINER (dialog->priv->chooser_widget), 5);
gui/simple-chooser/gdm-host-chooser-dialog.c-
gui/simple-chooser/gdm-host-chooser-dialog.c:        gtk_dialog_add_buttons (GTK_DIALOG (dialog),
gui/simple-chooser/gdm-host-chooser-dialog.c-                                GTK_STOCK_REFRESH, GTK_RESPONSE_APPLY,
gui/simple-chooser/gdm-host-chooser-dialog.c-                                GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
gui/simple-chooser/gdm-host-chooser-dialog.c-                                GTK_STOCK_CONNECT, GTK_RESPONSE_OK,
--
gui/simple-greeter/gdm-user-chooser-dialog.c-
gui/simple-greeter/gdm-user-chooser-dialog.c-        gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), d
gui/simple-greeter/gdm-user-chooser-dialog.c-
gui/simple-greeter/gdm-user-chooser-dialog.c:        gtk_dialog_add_buttons (GTK_DIALOG (dialog),
gui/simple-greeter/gdm-user-chooser-dialog.c-                                GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
gui/simple-greeter/gdm-user-chooser-dialog.c-                                GTK_STOCK_OK, GTK_RESPONSE_OK,
gui/simple-greeter/gdm-user-chooser-dialog.c-                                NULL);


I have not figured out how everything works and the password entering dialog might be done by some extension. If yes, maybe that is not passing the Esc key press down?


[1] http://developer.gnome.org/gtk/2.24/GtkDialog.html#gtk-dialog-add-buttons
Comment 18 Laurent Bigonville 2014-05-14 14:52:21 UTC
I guess that his bug can be closed now that the fallback greeter is gone
Comment 19 Ray Strode [halfline] 2014-05-14 19:05:42 UTC
Indeed, this bug is no longer relevant since bug 688665