Paul:

> Thanks for the response. It's nice that people are trying to improve
> GDM, but what I see is not an improvement but a regression in
> functionality.  It was behaving perfectly previously, why fix whats not
> broke.

I guess it depends on your definition of "broke".  There are numerous
things about the old GDM that were problematic, if not plain broken.
The old GDM codebase was over 10 years old, and a serious rewrite had
been long overdue, really.

I will list some of the issues with the old GDM that inspired rewriting
the code:

- The old GDM's thread management and signal handling code was poorly
   designed - your classic "spaghetti code".  The old GDM tended to
   overuse global variables for storing state and had very little sense
   of encapsulation.  It also suffered from a lot of cut-and-paste
   code duplication.

   The new GDM uses the more standard GTK+ event loop for better thread
   and signal management, and uses GObject object-oriented techniques
   to ensure that the code follows common sense design principles such
   as encapsulation and avoiding duplicate code.

- The old GDM used a private socket protocol for communication with
   the main daemon.  This was problematic for a number of reasons.
   Over the years, numerous denial-of-service problems were fixed where
   any user could send a cleverly crafted string to the daemon to cause
   it to crash or otherwise misbehave.  The new GDM uses D-Bus, which
   is more standard, more reliable, and should not be prone to the
   same degree of problems as with maintaining a GDM-specific IPC
   mechanism.

- The GNOME community is deprecating libgnomecanvas, so it was
   necessary to drop support for the gdmgreeter and its themes.  Although
   I know lots of people like the gdmgreeter themes, the old gdmgreeter
   had some serious problems.  It never worked well with accessibility,
   for example.

   There is real interest in the upstream GNOME community to add back
   some form of theming to GDM, but further discussion is needed to
   determine the best way forward.  Should an alternative and supported
   canvas be used like libgnomecanvas, or should theming be handled by
   something more like clutter.  I think it would make sense for the GDM
   community to have a wait and see attitude about how a11y is handled
   in gnome-shell before seriously considering a clutter-based solution
   for supporting GDM themes.

- The new GDM has significantly improved support for Virtual Terminals
   (VT's).  The "User Switch" applet provided with the new GDM is a
   huge improvement over the way the old GDM managed VT's.  VT
   support integrated into build 125, though it is currently not enabled
   by default on OpenSolaris.

- Separating seat/session/user management into the separate ConsoleKit
   module makes it easier for GDM to integrate with the rest of the
   desktop.  Many of the improved VT features, for example, depend on
   this.

- The old gdmsetup program was a real hack.  You really should never
   encourage users to run GUI programs as root, as the old gdmsetup
   GUI required.  The GDM community is currently working to rewrite
   gdmsetup so it works more sensibly and the GUI runs as the user
   and communicates with the daemon via D-Bus to change configuration
   settings.  It will use PolicyKit (or RBAC on OpenSolaris) to ensure
   that only users with appropriate authority can modify the login
   configuration.

- Considerable effort was made improving the new GDM's user interface.
   The face browser was significantly improved, the new GDM uses more
   of the standard GNOME infrastructure (metacity, gnome-session and
   gnome-settings-daemons).  The ability to add panel applets to GDM
   provides some useful features and makes it possible to further
   enhance GDM in interesting ways.

- The old GDM has not received any significant upstream attention
   or maintenance since March, 2009 when GDM 2.20.10 was released.  Sun
   has been slow to migrate to the new GDM since it is a requirement
   that the new GDM needed to support MultiSeat and Sun Ray before it
   could be integrated.  Other distros have already migrated to the
   new GDM.

   So, it is better to work with the upstream community and work towards
   making the new GDM work well rather than continuing to invest time
   and energy on otherwise dead code.

> Maybe all this was to add Face Browser Mode.

As I explain above, there were a lot of motivations.  The old GDM also
had a face browser, but the Face Browser in the new GDM is much
improved.

More detail on the motivations for rewriting GDM are here:

   http://live.gnome.org/GDM/NewDesign

It is true that there are some regressions in the new GDM, but
hopefully this gives you some perspective of why things are changing
and helps you to understand that there is some sense behind the
decisions being made.

> I've always made fun
> of Windows NT (when it first came out) how they had to hit ctrl-alt-del
> to login. Why the extra keystroke. Now Opensolaris has it in the form of
> a click on login, if only one person uses the computer, I like to just
> enter my login information without any additional clicks.

I agree that the extra button click is annoying.

Ray Strode, from Red Hat and one of the co-maintainers of GDM, is
currently rewriting the way that GDM works with PAM so it can better
support multiple PAM stacks.

https://fedoraproject.org/wiki/Features/MultiplePAMStacksInGDM

In talking with Ray, this problem should go away when this work
lands upstream.  So, I do not recommend investing time to fix this
problem sooner unless there is a real end-user demand.

> Maybe Face
> Browser Mode can satisfy my requirements if one click on the face is
> equivalent to the login name and all I have to then is enter my
> password. But since it's off by default, I haven't seen any way to turn
> it on yet. I'd like to try it.

Run "man gdm" and it explains how to change configuration, and provides
an example on how to use gconftool-2 to change the face browser setting.

> I'd also like to see the shutdown button
> there, sometimes I turn on my computer and never use it and just need to
> shutdown, it would be nice to do this without logging in.

This can be enabled by setting your RBAC configuration as described
here:

http://library.gnome.org/admin/gdm/2.20/solaris.html.en#solarisrbac

This works in both the old GDM and the new GDM.  In the old GDM you
also had to set the SystemMenu configuration option to "true", but this
is not necessary with the new GDM.  The new GDM only requires that RBAC
be set up for this to work.

Brian

Reply via email to