Bug 158480 - kdm/gdm session menu doesn't work, only default window manager loads
Summary: kdm/gdm session menu doesn't work, only default window manager loads
Status: RESOLVED FIXED
Alias: None
Product: SUSE LINUX 10.0
Classification: openSUSE
Component: X11 Applications (show other bugs)
Version: Final
Hardware: i686 SuSE Linux 10.0
: P5 - None : Major
Target Milestone: ---
Assignee: Dr. Werner Fink
QA Contact: Stefan Dirsch
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-03-16 00:48 UTC by Phil Mercurio
Modified: 2006-03-27 16:31 UTC (History)
4 users (show)

See Also:
Found By: Customer
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
KDM log (4.85 KB, application/octet-stream)
2006-03-23 19:53 UTC, Phil Mercurio
Details
/var/log/gdm/:0.log.4 (1.67 KB, text/plain)
2006-03-23 19:54 UTC, Phil Mercurio
Details
/etc/sysconfig/windowmanager (1.54 KB, text/plain)
2006-03-23 19:56 UTC, Phil Mercurio
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Phil Mercurio 2006-03-16 00:48:32 UTC
The graphical login session manager doesn't work in either kdm or gdm.
Regardless of what window manager is selected, only the window manager
configured as the default in sysconfig comes up.  This is happening 
on multiple machines where we've installed SuSE 10.0, and for multiple
users.  I've tried removing all ~/.??* files/dirs and it still happens.
Comment 1 Michael Gross 2006-03-16 14:25:58 UTC
Please be more verbosive. So this means if you change the default wm in your sysconfig, you can start this wm? How did you perform your installation, was this an update?
Comment 2 Phil Mercurio 2006-03-16 20:15:47 UTC
This has happened on every machine I've installed 10.0 on, about
5-6 machines, all fresh installations (not updates) onto boxes 
that were previously running 9.2 or 9.3.  I usually choose KDE
during installation, but this happens if I choose Gnome also.
In either case I select all of the other desktop in the software
selection portion of the installation.  

All users are validated via NIS and have a single home directory
automounted on all machines.  Regardless of the user's default
desktop or the desktop selected in the login menu, only the 
desktop set as DEFAULT_WM in sysconfig comes up.  I think I was
able to get into one of the failsafe window managers, but none
of the other menu settings work.  I tried at least KDE, Gnome,
and Windowmaker as DEFAULT_WM, and kdm, gdm, and xdm as
DISPLAYMANAGER, and the behavior is the same.
Comment 3 Michael Gross 2006-03-17 12:01:55 UTC
> All users are validated via NIS and have a single home directory
> automounted on all machines.

This might be the reason. Please try if this also happens with a local user.
Comment 4 Phil Mercurio 2006-03-20 19:41:22 UTC
I got a chance to try a local user today.  I created a local
user with an empty home directory, and still had the same problem.
With the local user, gdm displays a warning that ~/.dmrc doesn't
have the right permissions/ownership.  ~/.dmrc didn't exist, but
even after I created it and gave it the permissions requested in the
warning message, I still got the warning (and I still couldn't start
any window manager other than the default).

I also tried logging in as root, and root was able to select a different
window manager.  So it appears to be some sort of permission problem.
Comment 5 Michael Gross 2006-03-22 13:18:32 UTC
So this happens with both kdm and xdm on your system? For a locat user you need to copy the /etc/skel directory to the new user directory and change the permissions accordingly.
Comment 6 Phil Mercurio 2006-03-22 19:12:13 UTC
It happens for gdm, kdm, and xdm (see comment #2).  Copying over the /etc/skel
files to the local account doesn't make a difference.
Comment 7 Michael Gross 2006-03-23 09:03:54 UTC
Please attach your /var/log/kdm.log and /etc/sysconfig/windowmanager here.
Comment 8 Phil Mercurio 2006-03-23 19:53:39 UTC
Created attachment 74800 [details]
KDM log
Comment 9 Phil Mercurio 2006-03-23 19:54:40 UTC
Created attachment 74802 [details]
/var/log/gdm/:0.log.4
Comment 10 Phil Mercurio 2006-03-23 19:56:12 UTC
Created attachment 74803 [details]
/etc/sysconfig/windowmanager
Comment 11 Michael Gross 2006-03-24 11:59:09 UTC
Adding several people into CC. Hopefully someone can provide a clue here.
Comment 12 Stephan Kulow 2006-03-24 12:37:52 UTC
my guess: you have a ~/.xinitrc or ~/.xsession
Comment 13 Phil Mercurio 2006-03-24 16:02:06 UTC
I've tried a local account with an empty home directory, one with a
copy of /etc/skel as home dir, and an NIS account with all ~/.??* files
moved out of ~ (see previous comments).  The window manager that gets
loaded is whatever is set as DEFAULT_WM in all cases (except when
logging in as root, that works).
Comment 15 Stephan Kulow 2006-03-27 15:50:35 UTC
Werner might have an idea what to look for.
Comment 16 Dr. Werner Fink 2006-03-27 16:31:20 UTC
This is fixed in 10.1 or openSuSE, from the changelog of aaa_base:

  * Wed Nov 09 2005 - werner@suse.de
  - Do not overwrite the user's choise of WINDOWMANAGER

simply by replacing within /etc/profile.d/profile.sh the lines

 test -z "$DEFAULT_WM" && DEFAULT_WM=twm
 SAVEPATH=$PATH
 PATH=$PATH:/usr/X11R6/bin:/opt/gnome/bin:/usr/openwin/bin
 WINDOWMANAGER="`type -p ${DEFAULT_WM##*/}`"
 PATH=$SAVEPATH
 export WINDOWMANAGER
 unset DEFAULT_WM SAVEPATH

with

 if test -n "$DEFAULT_WM" -a -z "$WINDOWMANAGER" ; then
     SAVEPATH=$PATH
     PATH=$PATH:/usr/X11R6/bin:/opt/gnome/bin:/usr/openwin/bin
     WINDOWMANAGER="`type -p ${DEFAULT_WM##*/}`"
     PATH=$SAVEPATH
     export WINDOWMANAGER
     unset SAVEPATH
 fi
 unset DEFAULT_WM

and within /etc/profile.d/profile.csh the lines
 
 #if (! ${?default_wm} )     set default_wm=twm
 if ( ${%default_wm} == 0 ) set default_wm=twm
 set default_wm=${default_wm:t}
 
 # Do not use the `which' builtin nor set path to avoid a rehash
 #
 foreach val ($path /usr/X11R6/bin /opt/gnome/bin /usr/openwin/bin)
     if ( ${val:q} =~ *.* ) continue
     set val=${val:q}/${default_wm:q}
     if ( ! -x ${val:q} ) continue
     setenv WINDOWMANAGER ${val:q}
     break
 end
 unset val default_wm

with

 #
 # Do not use the `which' builtin nor set path to avoid a rehash
 #
 if (! ${?default_wm} ) set default_wm
 if ( ${%default_wm} > 0 && ! ${?WINDOWMANAGER} ) then
     set default_wm=${default_wm:t}
     foreach val ($path /usr/X11R6/bin /opt/gnome/bin /usr/openwin/bin)
         if ( ${val:q} =~ *.* ) continue
         set val=${val:q}/${default_wm:q}
         if ( ! -x ${val:q} ) continue
         setenv WINDOWMANAGER ${val:q}
         break
     end
     unset val
 endif
 unset default_wm