File xfce4-session-adapt-session-scripts.patch of Package xfce4-session

Index: xfce4-session-4.12.1/scripts/xinitrc.in
===================================================================
--- xfce4-session-4.12.1.orig/scripts/xinitrc.in
+++ xfce4-session-4.12.1/scripts/xinitrc.in
@@ -16,11 +16,16 @@ if test "x$XDG_MENU_PREFIX" = "x"; then
   export XDG_MENU_PREFIX
 fi
 
-# set DESKTOP_SESSION so that one can detect easily if an Xfce session is running
+# set DESKTOP_SESSION and XDG_CURRENT_DESKTOP so that one can detect easily if
+# an Xfce session is running
 if test "x$DESKTOP_SESSION" = "x"; then
   DESKTOP_SESSION="xfce"
   export DESKTOP_SESSION
 fi
+if test "x$XDG_CURRENT_DESKTOP" = "x"; then
+  XDG_CURRENT_DESKTOP="XFCE"
+  export XDG_CURRENT_DESKTOP
+fi
 
 # set XDG_CURRENT_DESKTOP so that Qt 5 applications can identify user set Xfce theme
 if test "x$XDG_CURRENT_DESKTOP" = "x"; then
@@ -44,12 +49,6 @@ if test "x$XDG_CACHE_HOME" = "x" ; then
 fi
 [ -d "$XDG_CACHE_HOME" ] || mkdir "$XDG_CACHE_HOME"
 
-# set up XDG user directores.  see
-# http://freedesktop.org/wiki/Software/xdg-user-dirs
-if which xdg-user-dirs-update >/dev/null 2>&1; then
-    xdg-user-dirs-update
-fi
-
 # Modify libglade and glade environment variables so that
 # it will find the files installed by Xfce
 GLADE_CATALOG_PATH="$GLADE_CATALOG_PATH:"
@@ -87,112 +86,17 @@ cat /dev/null $XRESOURCES | xrdb -nocpp
 # load local modmap
 test -r $HOME/.Xmodmap && xmodmap $HOME/.Xmodmap
 
-# run xfce4-session if installed
-if which xfce4-session >/dev/null 2>&1; then
-
-  # check if we start xfce4-session with ck-launch-session. this is only
-  # required for starting from a console, not a login manager
-  if test "x$XFCE4_SESSION_WITH_CK" = "x1"; then
-    if which ck-launch-session >/dev/null 2>&1; then
-      ck-launch-session xfce4-session
-    else
-      echo
-      echo "You have tried to start Xfce with consolekit support, but"
-      echo "ck-launch-session is not installed."
-      echo "Aborted startup..."
-      echo
-
-      exit 1
-    fi
-  else
-    # start xfce4-session normally
-    xfce4-session
+# check if we start xfce4-session with ck-launch-session. this is only
+# required for starting from a console, not a login manager
+if test "x$XFCE4_SESSION_WITH_CK" = "x1"; then
+  if ! ck-launch-session xfce4-session; then
+    cat >&2 <<'EOF'
+Failed to start Xfce with consolekit support.
+Aborted startup...
+EOF
+    exit 1
   fi
-
-  exit 0
+else
+  # start xfce4-session normally
+  xfce4-session
 fi
-
-##################
-# IMPORTANT NOTE #
-##################
-
-# Everything below here ONLY gets executed if you are NOT using xfce4-session
-# (Xfce's session manager).  If you are using the session manager, everything
-# below is handled by it, and the code below is not executed at all.  If you're
-# not sure if you're using the session manager, type 'ps -e|grep xfce4-session'
-# in a terminal while Xfce is running.
-
-##################
-
-# Use dbus-launch if installed.
-if test x"$DBUS_SESSION_BUS_ADDRESS" = x""; then
-  if which dbus-launch >/dev/null 2>&1; then
-    eval `dbus-launch --sh-syntax --exit-with-session`
-    # some older versions of dbus don't export the var properly
-    export DBUS_SESSION_BUS_ADDRESS
-  else
-    echo "Could not find dbus-launch; Xfce will not work properly" >&2
-    fi
-fi
-
-# this is only necessary when running w/o xfce4-session
-xsetroot -solid black -cursor_name watch
-
-# or use old-fashioned startup script otherwise
-
-xfsettingsd &
-xfwm4 --daemon
-
-# start up stuff in $XDG_CONFIG_HOME/autostart/
-if test -d "$XDG_CONFIG_HOME/autostart"; then
-  for i in ${XDG_CONFIG_HOME}/autostart/*.desktop; do
-    grep -q -E "^Hidden=true" "$i" && continue
-    if grep -q -E "^OnlyShowIn=" "$i"; then
-      # need to test twice, as lack of the line entirely means we still run it
-      grep -E "^OnlyShowIn=" "$i" | grep -q 'XFCE;' || continue
-    fi
-    grep -E "^NotShowIn=" "$i" | grep -q 'XFCE;' && continue
-
-    # check for TryExec
-    trycmd=`grep -E "^TryExec=" "$i" | cut -d'=' -f2`
-    if test "$trycmd"; then
-      which "$trycmd" >/dev/null 2>&1 || continue
-    fi
-
-    cmd=`grep -E "^Exec=" "$i" | cut -d'=' -f2`
-    if test "$cmd" && which "$cmd" >/dev/null 2>&1; then
-      $cmd &
-    fi
-  done
-fi
-
-xfdesktop&
-orage &
-
-panel=`which xfce4-panel`
-case "x$panel" in
-	x|xno*)
-		;;
-	*)
-		$panel
-		ret=$?
-		while test $ret -ne 0; do
-			xmessage -center -file - -timeout 20 -title Error <<EOF
-A crash occured in the panel
-Please report this to the xfce4-dev@xfce.org list
-or on http://bugs.xfce.org
-Meanwhile the panel will be restarted
-EOF
-			cat >&2 <<EOF
-A crash occured in the panel
-Please report this to the xfce4-dev@xfce.org list
-or on http://bugs.xfce.org
-Meanwhile the panel will be restarted
-EOF
-			$panel
-			ret=$?
-		done
-		;;
-esac
-
-xsetroot -bg white -fg red  -solid black -cursor_name watch
Index: xfce4-session-4.12.1/scripts/xinitrc.in.in
===================================================================
--- xfce4-session-4.12.1.orig/scripts/xinitrc.in.in
+++ xfce4-session-4.12.1/scripts/xinitrc.in.in
@@ -16,11 +16,16 @@ if test "x$XDG_MENU_PREFIX" = "x"; then
   export XDG_MENU_PREFIX
 fi
 
-# set DESKTOP_SESSION so that one can detect easily if an Xfce session is running
+# set DESKTOP_SESSION and XDG_CURRENT_DESKTOP so that one can detect easily if
+# an Xfce session is running
 if test "x$DESKTOP_SESSION" = "x"; then
   DESKTOP_SESSION="xfce"
   export DESKTOP_SESSION
 fi
+if test "x$XDG_CURRENT_DESKTOP" = "x"; then
+  XDG_CURRENT_DESKTOP="XFCE"
+  export XDG_CURRENT_DESKTOP
+fi
 
 # set XDG_CURRENT_DESKTOP so that Qt 5 applications can identify user set Xfce theme
 if test "x$XDG_CURRENT_DESKTOP" = "x"; then
@@ -44,12 +49,6 @@ if test "x$XDG_CACHE_HOME" = "x" ; then
 fi
 [ -d "$XDG_CACHE_HOME" ] || mkdir "$XDG_CACHE_HOME"
 
-# set up XDG user directores.  see
-# http://freedesktop.org/wiki/Software/xdg-user-dirs
-if which xdg-user-dirs-update >/dev/null 2>&1; then
-    xdg-user-dirs-update
-fi
-
 # Modify libglade and glade environment variables so that
 # it will find the files installed by Xfce
 GLADE_CATALOG_PATH="$GLADE_CATALOG_PATH:@XFCE_GLADE_CATALOG_PATH@"
@@ -87,112 +86,17 @@ cat /dev/null $XRESOURCES | xrdb -nocpp
 # load local modmap
 test -r $HOME/.Xmodmap && xmodmap $HOME/.Xmodmap
 
-# run xfce4-session if installed
-if which xfce4-session >/dev/null 2>&1; then
-
-  # check if we start xfce4-session with ck-launch-session. this is only
-  # required for starting from a console, not a login manager
-  if test "x$XFCE4_SESSION_WITH_CK" = "x1"; then
-    if which ck-launch-session >/dev/null 2>&1; then
-      ck-launch-session xfce4-session
-    else
-      echo
-      echo "You have tried to start Xfce with consolekit support, but"
-      echo "ck-launch-session is not installed."
-      echo "Aborted startup..."
-      echo
-
-      exit 1
-    fi
-  else
-    # start xfce4-session normally
-    xfce4-session
+# check if we start xfce4-session with ck-launch-session. this is only
+# required for starting from a console, not a login manager
+if test "x$XFCE4_SESSION_WITH_CK" = "x1"; then
+  if ! ck-launch-session xfce4-session; then
+    cat >&2 <<'EOF'
+Failed to start Xfce with consolekit support.
+Aborted startup...
+EOF
+    exit 1
   fi
-
-  exit 0
+else
+  # start xfce4-session normally
+  xfce4-session
 fi
-
-##################
-# IMPORTANT NOTE #
-##################
-
-# Everything below here ONLY gets executed if you are NOT using xfce4-session
-# (Xfce's session manager).  If you are using the session manager, everything
-# below is handled by it, and the code below is not executed at all.  If you're
-# not sure if you're using the session manager, type 'ps -e|grep xfce4-session'
-# in a terminal while Xfce is running.
-
-##################
-
-# Use dbus-launch if installed.
-if test x"$DBUS_SESSION_BUS_ADDRESS" = x""; then
-  if which dbus-launch >/dev/null 2>&1; then
-    eval `dbus-launch --sh-syntax --exit-with-session`
-    # some older versions of dbus don't export the var properly
-    export DBUS_SESSION_BUS_ADDRESS
-  else
-    echo "Could not find dbus-launch; Xfce will not work properly" >&2
-    fi
-fi
-
-# this is only necessary when running w/o xfce4-session
-xsetroot -solid black -cursor_name watch
-
-# or use old-fashioned startup script otherwise
-
-xfsettingsd &
-xfwm4 --daemon
-
-# start up stuff in $XDG_CONFIG_HOME/autostart/
-if test -d "$XDG_CONFIG_HOME/autostart"; then
-  for i in ${XDG_CONFIG_HOME}/autostart/*.desktop; do
-    grep -q -E "^Hidden=true" "$i" && continue
-    if grep -q -E "^OnlyShowIn=" "$i"; then
-      # need to test twice, as lack of the line entirely means we still run it
-      grep -E "^OnlyShowIn=" "$i" | grep -q 'XFCE;' || continue
-    fi
-    grep -E "^NotShowIn=" "$i" | grep -q 'XFCE;' && continue
-
-    # check for TryExec
-    trycmd=`grep -E "^TryExec=" "$i" | cut -d'=' -f2`
-    if test "$trycmd"; then
-      which "$trycmd" >/dev/null 2>&1 || continue
-    fi
-
-    cmd=`grep -E "^Exec=" "$i" | cut -d'=' -f2`
-    if test "$cmd" && which "$cmd" >/dev/null 2>&1; then
-      $cmd &
-    fi
-  done
-fi
-
-xfdesktop&
-orage &
-
-panel=`which xfce4-panel`
-case "x$panel" in
-	x|xno*)
-		;;
-	*)
-		$panel
-		ret=$?
-		while test $ret -ne 0; do
-			xmessage -center -file - -timeout 20 -title Error <<EOF
-A crash occured in the panel
-Please report this to the xfce4-dev@xfce.org list
-or on http://bugs.xfce.org
-Meanwhile the panel will be restarted
-EOF
-			cat >&2 <<EOF
-A crash occured in the panel
-Please report this to the xfce4-dev@xfce.org list
-or on http://bugs.xfce.org
-Meanwhile the panel will be restarted
-EOF
-			$panel
-			ret=$?
-		done
-		;;
-esac
-
-xsetroot -bg white -fg red  -solid black -cursor_name watch
Index: xfce4-session-4.12.1/scripts/startxfce4.in
===================================================================
--- xfce4-session-4.12.1.orig/scripts/startxfce4.in
+++ xfce4-session-4.12.1/scripts/startxfce4.in
@@ -66,13 +66,22 @@ fi
 
 if test "x$XDG_DATA_DIRS" = "x"
 then
-  if test "x@_datadir_@" = "x/usr/local/share" -o "x@_datadir_@" = "x/usr/share"; then
+  if test "x@_datadir_@" = "x/usr/local/share" -o test "x@_datadir_@" = "x/usr/share"; then
     XDG_DATA_DIRS="/usr/local/share:/usr/share"
   else
     XDG_DATA_DIRS="@_datadir_@:/usr/local/share:/usr/share"
   fi
 else
-  XDG_DATA_DIRS="$XDG_DATA_DIRS:@_datadir_@"
+  case $XDG_DATA_DIRS in
+      *:@_datadir_@:*)
+          ;;
+      *)
+          XDG_DATA_DIRS="$XDG_DATA_DIRS:@_datadir_@"
+  esac
+fi
+if test -d "@_datadir_@/xfce"
+then
+    XDG_DATA_DIRS="@_datadir_@/xfce:$XDG_DATA_DIRS"
 fi
 export XDG_DATA_DIRS
 
@@ -84,7 +93,12 @@ then
     XDG_CONFIG_DIRS="/etc/xdg:@_sysconfdir_@/xdg"
   fi
 else
-  XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS:@_sysconfdir_@/xdg"
+  case $XDG_CONFIG_DIRS in
+    *:@_sysconfdir_@/xdg:*)
+      ;;
+    *)
+      XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS:@_sysconfdir_@/xdg"
+  esac
 fi
 export XDG_CONFIG_DIRS
 
openSUSE Build Service is sponsored by