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
