Re: [gdm-list] dbus, greeter and panel



Hi,

On Mon, May 23, 2011 at 11:59 PM, † <govnototalitarizm gmail com> wrote:

> - - As far as I understood greeter talks with gdm daemon via dbus.
> Is there .xml specification for this interface somewhere?
That's correct.  It uses a peer-to-peer dbus connection.  The
interface is "private" between the greeter and the server.  There's no
documented specification and it can change from release to release.

You can get an XML blob of the interface by introspecting it in the
standard dbus way.

At some point it will get ported to gdbus and then it will have an xml
file with it.

Are you making your own greeter?  Feel free to ask questions here.

> - - Does greeter also draw panel or it's a separate application with different dbus
> interface?
Yes, the greeter draws the panel.

> - - Who actually decides to start logon process? I mean greeter is a dumb program
> conveying login credentials to gdm for decisions or it's a greeter which command gdm
> to initiate logon procedure?
The login process is done via PAM (see gdm-session-worker.c).  Any
time PAM needs to say or ask something,
that information/request gets forwarded to the slave and then
forwarded to the greeter.

Likewise when the user answers the questions, the get forwarded back
down to the worker to be processed by
the PAM service.

After all the verification has happened, the slave kills the greeter
and tells the worker to fork into the user
and start the user's session.

Before the slave does this, the greeter has to give a final "nod" with
the StartSessionWhenReady call.
This is so the slave won't go off and start the session while the
greeter is still interacting with the user for
a reason independent of the PAM conversation.

> - - Is it possible to display panel with all the menus but do NOT ask user for
> password? Kind of autologon but after user have pressed single "ok, proceed" button.
Timed login works this way.  Or you could use "passwd -d" to remove
the password from the users account.

Note if you don't have a password, then you'll likely have to enter a
password anyway post-login, for keyring.

> Please note - last 2 questions are related - I'm not asking if that's possible with
> current implementation, I'm curious if interface(s) between greeter\panel and gdm are
> sufficient for this use-case?
Yea, it would be possible to do that.  If you need help figuring it
out (after getting the above TimedLogin hint), stop by #gdm and I'll
walk you through some of the details.

> Also there are files gdm/gui/simple-greeter/test-* which I presume allow to test
> easier for changes in greeter without constant login\logout. Is there how-to
> somewhere on how to use them?
you just run them.  they aren't unit tests or under any framework or anything.

> Links to rtfms are appreciated as well :)
Because making custom greeters isn't something people do very often,
there aren't many docs on it.
I'd like to fix that, though, at some point.

The source code is your best bet for inspiration right now, but it's
not too bad.  Anyway, feel free to ask questions as they come up.

Do note though, the interface is private, so you may have to make
changes to your greeter as new releases of GDM come out.

--Ray


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]