pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/37158: kdebase3's Kdm Xsession doesn't handle csh or tcsh environments properly



>Number:         37158
>Category:       pkg
>Synopsis:       kdebase3's Kdm Xsession doesn't handle csh or tcsh 
>environments properly
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Oct 20 20:10:00 +0000 2007
>Originator:     Jason Boyer
>Release:        3.1
>Organization:
>Environment:
NetBSD janus.local 3.1 NetBSD 3.1 (GENERIC.MPACPI) #0: Tue Oct 31 04:47:22 UTC 
2006  
builds%b0.netbsd.org@localhost:/home/builds/ab/netbsd-3-1-RELEASE/i386/200610302053Z-obj/home/builds/ab/netbsd-3-1-RELEASE/src/sys/arch/i386/compile/GENERIC.MPACPI
 i386

>Description:
Line 35 of /usr/pkg/share/kde/config/kdm/Xsession reads like so:

    $SHELL -c "if (-f /etc/csh.login) source /etc/csh.login; if (-f ~/.login) 
source ~/.login; /bin/sh -c export > $xsess_tmp"

$xsess_tmp is then sourced into the Xsession /bin/sh script.

Note the "/bin/sh -c export" part. Since there's no -p and /bin/sh isn't bash 
(which ignores -p), the values of the env variables aren't given, and 
~/.xsession-errors starts out with a long list of "{SOMEVAR} not found" as it 
tries to execute your env vars. Thus, none of your environment is preserved if 
you use csh or tcsh as your shell. Annoying.
>How-To-Repeat:
Change your shell to csh or tcsh
Make certain that /bin/sh isn't bash (obviously the case on NetBSD)
Start KDE
Wonder why none of your environment is still set.
>Fix:
The Xsession file is created from kdebase-3.5.7/kdm/kfrontend/genkdmconf.c on 
line 676. Changing "/bin/sh -c export" to just "env" works fine for both 
/usr/pkg/bin/tcsh and /bin/csh, and as a bonus, cuts out a wasteful extra shell 
invocation.




Home | Main Index | Thread Index | Old Index