kdm and tcsh

Kacper Kornet kornet at camk.edu.pl
Sat Apr 9 23:12:55 CEST 2005


Kdm seems not to set the enviroment variables from /etc/profile.d when the
login shell is tcsh. The following patch for /etc/X11/kdm/Xsession solves
this problem:

#v+
Index: kdebase-kdm.Xsession
===================================================================
RCS file: /cvsroot/SOURCES/kdebase-kdm.Xsession,v
retrieving revision 1.7
diff -u -r1.7 kdebase-kdm.Xsession
--- kdebase-kdm.Xsession	17 Nov 2004 17:27:49 -0000	1.7
+++ kdebase-kdm.Xsession	9 Apr 2005 21:11:32 -0000
@@ -1,22 +1,24 @@
 #!/bin/sh
 
 # Make it login shell
+if [ "$HAVE_LOGIN_SHELL" != "yes" ]; then	
 case $SHELL in
     	*/csh|*/tcsh)
 	# [t]cshrc is always sourced automatically.
 	# Note that sourcing csh.login after .cshrc is non-standard.
-	eval `$SHELL -c 'if (-f /etc/csh.login) source /etc/csh.login; if (-f ~/.login) source ~/.login; sh -c set'`
+		export HAVE_LOGIN_SHELL=yes	
+		exec $SHELL -c "if (-f /etc/csh.login) source /etc/csh.login; if (-f ~/.login) source ~/.login; exec $0 $*"
 	;;
 	*)
-	if [ "$HAVE_LOGIN_SHELL" != "yes" ]; then
 		export HAVE_LOGIN_SHELL=yes
 		exec $SHELL -l $0 $*
-	fi
 	unset HAVE_LOGIN_SHELL	
 esac
+fi
 
 # Call standard xinit actions
 . /etc/X11/xinit/xinitdefs
+
 
 case $1 in
     failsafe)
#v-


Best wishes,

-- 
  Kacper 




More information about the pld-devel-en mailing list