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 676401 - Update for libgdmgreeter changes
Update for libgdmgreeter changes
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: login-screen
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Ray Strode [halfline]
gnome-shell-maint
Depends on: 622888
Blocks:
 
 
Reported: 2012-05-19 23:22 UTC by Giovanni Campagna
Modified: 2012-07-17 15:39 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Login dialog: update for GDM port to GDBus (6.15 KB, patch)
2012-05-19 23:22 UTC, Giovanni Campagna
none Details | Review
Login dialog: update for GDM port to GDBus (7.09 KB, patch)
2012-06-08 15:10 UTC, Giovanni Campagna
reviewed Details | Review
gdm: port from libgdmgreeter to libgdm (16.82 KB, patch)
2012-07-17 08:40 UTC, Ray Strode [halfline]
committed Details | Review

Description Giovanni Campagna 2012-05-19 23:22:19 UTC
I expect that some of the changes in gdm I'm working on will affect gnome-shell.
Consider this a dumpbin for such changes.

Don't review until library is actually updated, of course. :)
Comment 1 Giovanni Campagna 2012-05-19 23:22:51 UTC
Created attachment 214471 [details] [review]
Login dialog: update for GDM port to GDBus

libgdmgreeter changed interface slightly due to the port to GDBus.
Update for that.
Comment 2 Giovanni Campagna 2012-06-08 15:10:37 UTC
Created attachment 215971 [details] [review]
Login dialog: update for GDM port to GDBus

libgdmgreeter changed interface slightly due to the port to GDBus.
Update for that.
Comment 3 Ray Strode [halfline] 2012-07-17 08:39:54 UTC
Review of attachment 215971 [details] [review]:

This was fine, but the library has changed a bit since then. Will post updated patch.
Comment 4 Ray Strode [halfline] 2012-07-17 08:40:23 UTC
Created attachment 218997 [details] [review]
gdm: port from libgdmgreeter to libgdm

When GDM was moved over to GDBus it dropped the libgdmgreeter
library and introduced a new libgdm library with a somewhat
different API.

The main differences in the API are:

1) open_connection is now implicit and automatic
2) conversations don't need to be started explicitly, they're
   started just-in-time when verification is requested
3) The functions are split up between the client, and new
   helper objects that correspond to the dbus interfaces
   they were generated from (one for user verification,
   one for greeter specific operations, and a couple more
   that aren't used by gnome-shell).
4) libgdm supports reauthenticating in an already running
   session, so user switching should now affect the users
   session more like screen unlocking does.

This commit moves the shell over to the new library.

Based on work by Giovanni Campagna <gcampagna@src.gnome.org>
Comment 5 Giovanni Campagna 2012-07-17 10:10:22 UTC
Review of attachment 218997 [details] [review]:

Just one comment: was it necessary to rename GdmGreeter to Gdm? Doing so makes it necessary to build gdm in jhbuild environments.
Or otherwise, it should be possible to make the dependency in userMenu optional with a try-catch around the Gdm import.
Comment 6 Florian Müllner 2012-07-17 10:25:50 UTC
(In reply to comment #5)
> Review of attachment 218997 [details] [review]:
> Or otherwise, it should be possible to make the dependency in userMenu optional
> with a try-catch around the Gdm import.

The conclusion in bug 677118 was that we don't consider gdm optional.
Comment 7 Ray Strode [halfline] 2012-07-17 14:09:50 UTC
To be "right" we would need to change the gobject-introspection interface version number when we change the so name, anyway (of course we could be a little fast and loose with it since it's not a stable library).

Out of curiousity, what's the problem with building GDM in jhbuild? The extra time? GDM should be a drop in the bucket compared webkit.  I guess there's an argument to be made that it wastes space, which is fair. From that point of view, the patch in bug 677118 sort of makes sense.  Though diskspace isn't a huge argument in and of its own.

Ideally being able to usefully run GDM in jhbuild would be nice, though figuring out the logistics of integrating it into the OS would be interesting.
Comment 8 Colin Walters 2012-07-17 14:43:20 UTC
Review of attachment 218997 [details] [review]:

Just minor comments here...I read the code and didn't see anything obviously badly wrong, but I didn't trace through all of the API use.

::: js/gdm/loginDialog.js
@@ +925,2 @@
     _onReset: function(client, serviceName) {
+        this._userVerifier = null

Missing semicolon.

@@ +1366,3 @@
+                id = this._userVerifier.connect('reset',
+                                                Lang.bind(this, function() {
+                                                    let i;

Duplicate "let i"

::: js/ui/userMenu.js
@@ +563,3 @@
         let allowSwitch = !this._lockdownSettings.get_boolean(DISABLE_USER_SWITCH_KEY);
         let multiUser = this._userManager.can_switch() && this._userManager.has_multiple_users;
+        let multiSession = Gdm.get_session_ids().length > 1;

This looks like a bugfix for an earlier patch, since we were already testing multiSession?
Comment 9 Ray Strode [halfline] 2012-07-17 15:39:14 UTC
Hey thanks!

The last hunk isn't a bugfix, just a rename from GdmGreeter to Gdm.
Comment 10 Ray Strode [halfline] 2012-07-17 15:39:41 UTC
Attachment 218997 [details] pushed as e06ecb8 - gdm: port from libgdmgreeter to libgdm