Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 64857 - Can't log in with KDM if choose a session besides 'default'
Summary: Can't log in with KDM if choose a session besides 'default'
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] KDE (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-09-21 07:34 UTC by Decibels
Modified: 2005-02-08 02:38 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Decibels 2004-09-21 07:34:53 UTC
Has happened twice, this time got it down to kdm I believe. If choose a Session in kdm besides 'default' you will get an error "Sorry, kde-3.3.0 is no valid session"
This happend with kde-3.2.3 also, but can't pin down the exact details on that one. Don't remember choosing a different session, but reinstalling kde fix it. 
This time though emerged kde-3.3.0, ended session, chose kde-3.3.0 from Sessions and get the error. After figuring it out, ended session, chose 'default' and kde starts right up. Tried it with a test user and same results. 
Also chose kde-3.2.3 and same results, both kde are installed. Last time that wasn't the case, only kde-3.2.3 was installed.

Showing both installed, doesn't really matter though, cause default is now kde-3.3.0 and it will do the same thing.

bash-2.05b# qpkg -i kdebase
kde-base/kdebase-3.2.3-r1 *
        KDE base packages: the desktop, panel, window manager, konqueror... [  ]
kde-base/kdebase-3.3.0 *
        KDE base packages: the desktop, panel, window manager, konqueror... [  ]

Reproducible: Always
Steps to Reproduce:
1. Chose any session installed besides default.
2. Get error: Sorry, kde-... is no valid session.
3. Back at kdm login, chose 'default' session and kde starts up, no errors.

Actual Results:  
Get error if chose any session besides default.

Expected Results:  
Let me choose a session to boot to if it is installed.

No log files are produced showing problem that can find.
Comment 1 Gregorio Guidi (RETIRED) gentoo-dev 2004-09-21 09:37:01 UTC
Can you take a look at the files in /etc/X11/Sessions and in
/usr/kde/3.3/share/config/kdm/sessions/
and see if there's something strange?

/var/log/kdm.log can have useful info, too.
Comment 2 Decibels 2004-09-21 15:03:54 UTC
'No log files are produced showing problem that can find.'

Nothing was showing up there or xdm.log either.
Comment 3 Decibels 2004-09-21 16:34:07 UTC
Little more info:
1) If chose kde-3.2.3, get the error, then change to default it will boot to kde-3.3.0. So can't get to any other kde even though installed. 

2) Don't know why didn't say this first time, but looks like it might be xdm and not kdm. Say this cause of the message graphics. 
Comment 4 Gregorio Guidi (RETIRED) gentoo-dev 2004-09-21 17:05:09 UTC
The error message is produced by /usr/kde/3.3/share/config/kdm/Xsession

It seems the file /usr/kde/3.3/share/config/kdm/sessions/kde-3.3.0.desktop
and the other desktop files are missing/invalid.

Please take a look at those files and directories...
Comment 5 Decibels 2004-09-21 19:33:29 UTC
Greping the error message does appear to be kdm and not xdm like thought, it is
just defaulting to twm instead, hence the graphical look.

The source of the error message is /usr/kde/3.3/share/config/kdm/Xsession line 47. Found it just before reading your message Gregorio. Thanks though.

Gregorio: The files are there: Xsession.desktop and
kde-3.2.1,3.2.2,3.2.3,3.3.0  .desktops are all there.

***Found the problem: Not in this file, but demonstrates what works.
*****************************************
case $1 in
  "")
    exec xmessage -center -buttons OK:0 -default OK "Sorry, $DESKTOP_SESSION is no valid session."
    ;;
  failsafe)
    exec xterm -geometry 80x24-0-0
    ;;
  custom)
    exec $HOME/.xsession
    ;;
  default)
    exec /usr/kde/3.3/bin/startkde
    ;;
  *)
    eval exec "$1"
    ;;
*****************************************
If pick failsafe: xterm works
If pick default: kde-3.3 always boots
If pick custom: will choose what have in ~/.xsession (ie. /usr/kde/3.2/bin/startkde). Didn't have
   ~/.xsession at first, so after adding it and making .xsessions executable kde-3.2.3 booted up.
If pick anything else get the error message.

****Reason: It is the /usr/kde/3.3/share/config/kdm/sessions/*.desktop files. There is the same problem
with /usr/kde/3.2/share/config/kdm/sessions/*.desktop files. They are not readable by anyone but root.
Default in 3.2 folder is permissions: 600 . Think that 3.3 was same or was 700, forget. Anyway, changing
permissions on *.desktop files in 3.3 to 644 was the lowest denominator that found to work.

Solution:
Permissions need to be changed to 644 on the 3.3 *.desktop files inorder to choose anything but: failsafe
default or custom (custom requires you have ~/.xsessions file and is executable though).


Also found bug report dated 8/15/2004 at debian: bug#265795
http://lists.debian.org/debian-qt-kde/2004/08/msg00268.html
Comment 6 Gregorio Guidi (RETIRED) gentoo-dev 2004-09-22 01:59:47 UTC
So it's a problem for those with a default 600 mask for root.

A possible solution could be something like this for kde-base/kdebase/files/3.3.0/Xsetup

--- Xsetup.orig 2004-09-22 10:52:19.229333320 +0200
+++ Xsetup      2004-09-22 10:52:37.490557192 +0200
@@ -26,6 +26,8 @@
 Name=${SESSION}
 EOF

+chmod +r "${SESSIONDIR}/${SESSION}.desktop"
+
 fi
 }
Comment 7 Decibels 2004-09-22 16:55:11 UTC
Your right, had changed /etc/profile umask to 077. 

1) with patch(chmod +r "${SESSIONDIR}/${SESSION}.desktop") 
Since script doesn't remove existing files so won't change them. Also deleted *.desktop files to check 
and they will still get created with perms 600. 

a) Doing it manually also doesn't work either:

bash-2.05b# chmod +r -v Xsession.desktop
mode of `Xsession.desktop' changed to 0600 (rw-------)

 b) Doing it manually this way WILL work:

bash-2.05b# chmod 644 -v sessions/*.desktop
mode of `sessions/Xsession.desktop' changed to 0644 (rw-r--r--)
mode of `sessions/kde-3.2.1.desktop' changed to 0644 (rw-r--r--)
mode of `sessions/kde-3.2.2.desktop' changed to 0644 (rw-r--r--)
mode of `sessions/kde-3.2.3.desktop' changed to 0644 (rw-r--r--)
mode of `sessions/kde-3.3.0.desktop' changed to 0644 (rw-r--r--)

2) with patch, but change to (chmod 644 "${SESSIONDIR}/${SESSION}.desktop")
Again it doesn't delete existing files, but for new sessions it DOES work.


Results:
Patch doesn't work for new session *.desktop files unless change +r to 644 perms.
So could do that and would work, but what about existing files? Leave it up to the
user/admin to change perms on them and new sessions will be taken care of?

Could delete and recreate *.desktop sessions for each session in /etc/X11/Sessions
when before start kde login. That would get rid of *.desktop sessions that have removed from
/etc/X11/Sessions and change perms on all of the *.desktop files. That would also 
get rid of a little cruft left over in /usr/kde/*/share/config/kdm/sessions/*.desktop
when delete /etc/X11/Sessions. Not sure if you want to go that route though.
Comment 8 Gregorio Guidi (RETIRED) gentoo-dev 2004-09-23 02:53:13 UTC
Right, the chmod command has to be like you said.

About removing and recreating .desktop files, I leave the decision to
the gentoo/kde devs.
Comment 9 Gregorio Guidi (RETIRED) gentoo-dev 2005-02-08 02:38:26 UTC
This should not be a problem now, since we use /usr/share/xsessions 
for .desktop files (in kdebase-3.3.2-r2 and in 3.4).