Blob Blame History Raw
diff -up kde-workspace-4.7.97/startkde.cmake.redhat_startkde kde-workspace-4.7.97/startkde.cmake
--- kde-workspace-4.7.97/startkde.cmake.redhat_startkde	2012-01-03 13:43:14.000000000 -0600
+++ kde-workspace-4.7.97/startkde.cmake	2012-01-04 06:43:55.711665134 -0600
@@ -28,22 +28,6 @@ fi
 # we have to unset this for Darwin since it will screw up KDE's dynamic-loading
 unset DYLD_FORCE_FLAT_NAMESPACE
 
-# in case we have been started with full pathname spec without being in PATH
-bindir=`echo "$0" | sed -n 's,^\(/.*\)/[^/][^/]*$,\1,p'`
-if [ -n "$bindir" ]; then
-  qbindir=`$bindir/kde4-config --qt-binaries`
-  if [ -n "$qbindir" ]; then
-    case $PATH in
-      $qbindir|$qbindir:*|*:$qbindir|*:$qbindir:*) ;;
-      *) PATH=$qbindir:$PATH; export PATH;;
-    esac
-  fi
-  case $PATH in
-    $bindir|$bindir:*|*:$bindir|*:$bindir:*) ;;
-    *) PATH=$bindir:$PATH; export PATH;;
-  esac
-fi
-
 # Boot sequence:
 #
 # kdeinit is used to fork off processes which improves memory usage
@@ -64,6 +48,37 @@ fi
 kdehome=$HOME/@KDE_DEFAULT_HOME@
 test -n "$KDEHOME" && kdehome=`echo "$KDEHOME"|sed "s,^~/,$HOME/,"`
 
+# Read LANG and write the country part to kdeglobals
+# de_AT.UTF-8 => Country=at
+# This is necessary because klocale.cpp (kdelibs) does only try to read the value
+# from kdeglobals and then falls back to default instead of triyng to detect it
+
+if [ ! -e $kdehome/share/config/kdeglobals ] || [ ! `grep "Country=" $kdehome/share/config/kdeglobals` ]; then
+  if [ ! $LANG ]; then
+    if [ -e /etc/default/locale ]; then
+      localefile='/etc/default/locale'
+    elif [ -e /etc/sysconfig/i18n ]; then
+      localefile='/etc/sysconfig/i18n'
+    elif [ -e /etc/environment ]; then
+      localefile='/etc/environment'
+    fi
+    if [ $localefile ]; then
+      locale=`sed -ne 's/^LANG="\(.*\)"$/\1/p' $localefile`
+    fi
+  else
+    locale=$LANG
+  fi
+  if [ $locale ]; then
+    country=`echo $locale | sed -ne 's/^[A-Za-z]*_\([A-Za-z]*\).*$/\1/p'|tr 'A-Z' 'a-z'`
+    if [ ! $country = "" ]; then
+cat >>$kdehome/share/config/kdeglobals <<EOF
+[Locale]
+Country=$country
+EOF
+    fi
+  fi
+fi
+
 # see kstartupconfig source for usage
 mkdir -m 700 -p $kdehome
 mkdir -m 700 -p $kdehome/share
@@ -81,7 +96,15 @@ krandrrc [Screen2]
 krandrrc [Screen3]
 kcmfonts General forceFontDPI 0
 kdeglobals Locale Language '' # trigger requesting languages from KLocale
+kdeglobals Locale Country ''
 EOF
+# read the default KSplash theme to use out of kde-settings
+if [ -e /usr/share/kde-settings/kde-profile/default/share/config/ksplashrc ]
+  then eval `grep '^Theme=' /usr/share/kde-settings/kde-profile/default/share/config/ksplashrc`
+       if [ -n "$Theme" ]
+         then sed -i -e "s/Default/$Theme/g" $kdehome/share/config/startupconfigkeys
+       fi
+fi
 kstartupconfig4
 returncode=$?
 if test $returncode -ne 0; then
@@ -159,8 +182,9 @@ fi
 # better use the Autostart folder.
 
 libpath=`kde4-config --path lib | tr : '\n'`
+envpath=/etc/kde/env/
 
-for prefix in `echo "$libpath" | sed -n -e 's,/lib[^/]*/,/env/,p'`; do
+for prefix in `echo "$libpath" | sed -n -e 's,/lib[^/]*/,/env/,p'` $envpath ; do
   for file in "$prefix"*.sh; do
     test -r "$file" && . "$file"
   done
@@ -369,7 +393,8 @@ kde3 dcopserver_shutdown --wait 2>/dev/n
 echo 'startkde: Running shutdown scripts...'  1>&2
 
 # Run scripts found in $KDEDIRS/shutdown
-for prefix in `echo "$libpath" | sed -n -e 's,/lib[^/]*/,/shutdown/,p'`; do
+shutdownpath=/etc/kde/shutdown/
+for prefix in `echo "$libpath" | sed -n -e 's,/lib[^/]*/,/shutdown/,p'` $shutdownpath; do
   for file in `ls "$prefix" 2> /dev/null | egrep -v '(~|\.bak)$'`; do
     test -x "$prefix$file" && "$prefix$file"
   done