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 403690 - gdm Xclients session shouldn't be a built-in session
gdm Xclients session shouldn't be a built-in session
Status: RESOLVED FIXED
Product: gdm
Classification: Core
Component: general
unspecified
Other All
: Normal normal
: ---
Assigned To: GDM maintainers
GDM maintainers
Depends on:
Blocks:
 
 
Reported: 2007-02-02 19:06 UTC by Ray Strode [halfline]
Modified: 2009-08-14 14:41 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Ray Strode [halfline] 2007-02-02 19:06:48 UTC
GDM currently describes the default session as "Run Xclient script".  This isn't very nice because it assumes the user knows what an Xclient script is and most users have no idea.  

For a better out of the box experience, it should say something that a new user is likely to know is the right default choice.
Comment 1 Brian Cameron 2007-02-06 03:15:24 UTC
I'm happy to change the name to something better.  What do you recommend?

Note that this choice first tries to run the user's $HOME/.Xclients script
then tries to run /etc/X11/xinitc/Xclients or /etc/X11/Xclients.  GDM
does not ship any Xclients script into /etc.  Note that some distros 
(like Solaris) do not have any Xclients script in /etc, so this is not
a standard interface.

If we want to change the name of the choice to something like "default
system session", then we probably should have more intelligent code in
Xsession to handle systems that do not have an Xclients script, no?

Ideas?
Comment 2 Ray Strode [halfline] 2007-02-06 15:51:42 UTC
Actually, maybe it would be better to just drop it entirely.

It has a lot of magic behind it in the code that seems unnecessary.  Since it's not a standard interface, it seems like distros that support Xclients files could install a desktop file into /usr/share/xsessions that just has 

Name=System Default
Exec=/path/to/Xsession default

or something
Comment 3 Brian Cameron 2007-02-07 02:26:51 UTC
I think the reason it exists is so that people who install GDM themselves have some menu choice that may work if the default *.desktop files don't support the sessions they may have on their system (e.g. if they don't have GNOME - instead having KDE or some other session).

This menu choice used to say "Default system session", but then users on Solaris complained why it didn't do anything except pop up a message saying "No default session exists".  A "default system session" choice that doesn't work on some systems seems a bit worse than a confusing menu choice that doesn't work.  :)

Anyway, I took a look at doing so but this special case has a bunch of special-case logic.  Seems that the daemon passes the Xsession script the string "default", and the Xsession script then calls the Xclients script when it sees this.  So to properly remove this, all the special case logic should probably be removed.

I'd be happy either removing this feature (with all the special "default" logic), or fixing the Xsession script so it does something more intelligent when this choice is picked.  Fixing it so it does something more intelligent may be a slightly better choice for supporting users who build GDM themselves.

Comment 4 Ray Strode [halfline] 2007-02-07 15:08:16 UTC
Note /usr/share/xsessions is pretty widely used by the various desktops out there.
I guess users who build GDM themselves know how to use the system anyway or at least can read the docs and see that /usr/share/xsessions is mentioned.

Note in the case of Fedora/RHEL we have a system Xsession file that is shared between gdm and kdm and xdm, so we don't even use the Xsession file that ships with gdm, so removing the "default" stuff for us wouldn't be a big deal.  On the other hand, other distros might complain.

Maybe the best way to go would be to 

1) drop all the special handling from gdm's source
2) drop all the special handling from gdm's Xsession file
3) provide a small shell script that executes the various Xclients scripts in order (just basically the logic that's been dropped from the Xsession file)
4) provide an example .desktop file (that can be dropped into /usr/share/xsessions) that runs the small shell script

That way there is no more special casing involved and people/distros who want the old behavior can use/adapt the example desktop file.
Comment 5 Brian Cameron 2007-02-08 03:37:23 UTC
Thanks, Ray, I agree with your analysis and am agreeable to removing the code.  I'm not sure it is really necessary to provide the small shell script to run Xclients.  Why don't we just remove the functionality and add the shell script if someone complains and wants it back?

Would you be willing to rip out this code?
Comment 6 Ray Strode [halfline] 2007-02-08 15:15:04 UTC
Sure I can take a look at it.

(Not today though)
Comment 7 Ray Strode [halfline] 2007-02-18 12:41:49 UTC
retitling to

"gdm Xclients session shouldn't be a built-in session"
Comment 8 Ray Strode [halfline] 2009-08-14 14:41:50 UTC
We fixed this a long time ago.