diff -up plasma-workspace-5.4.2/startkde/startkde.cmake.startkde plasma-workspace-5.4.2/startkde/startkde.cmake --- plasma-workspace-5.4.2/startkde/startkde.cmake.startkde 2015-10-01 04:56:51.000000000 -0500 +++ plasma-workspace-5.4.2/startkde/startkde.cmake 2015-10-05 14:34:56.350411466 -0500 @@ -16,25 +16,22 @@ trap 'echo GOT SIGHUP' HUP # 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=`qtpaths --binaries-dir` - qdbus=$qbindir/qdbus - case $PATH in - $bindir|$bindir:*|*:$bindir|*:$bindir:*) ;; - *) PATH=$bindir:$PATH; export PATH;; - esac -else - qdbus=qdbus -fi +qdbus=qdbus-qt5 + +# See http://bugzilla.redhat.com/537609 , a naive attempt to drop dep +# on xmessage and allow alternatives like zenity. +message() { + xmessage -geometry 500x100 "$1" > /dev/null 2>/dev/null || \ + zenity --info --text="$1" > /dev/null 2>/dev/null ||: + return $? +} # Check if a KDE session already is running and whether it's possible to connect to X kcheckrunning kcheckrunning_result=$? if test $kcheckrunning_result -eq 0 ; then echo "KDE seems to be already running on this display." - xmessage -geometry 500x100 "KDE seems to be already running on this display." > /dev/null 2>/dev/null + message "KDE seems to be already running on this display." > /dev/null 2>/dev/null exit 1 elif test $kcheckrunning_result -eq 2 ; then echo "\$DISPLAY is not set or cannot connect to the X server." @@ -90,53 +87,10 @@ test -f $exportformatssettings && { . $exportformatssettings } -# Write a default kdeglobals file to set up the font -kdeglobalsfile=$configDir/kdeglobals -test -f $kdeglobalsfile || { -cat >$kdeglobalsfile <&2 -# Make sure that the KDE prefix is first in XDG_DATA_DIRS and that it's set at all. -# The spec allows XDG_DATA_DIRS to be not set, but X session startup scripts tend -# to set it to a list of paths *not* including the KDE prefix if it's not /usr or -# /usr/local. -if test -z "$XDG_DATA_DIRS"; then - XDG_DATA_DIRS="@CMAKE_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@:/usr/share:/usr/local/share" -fi -export XDG_DATA_DIRS - # Make sure that D-Bus is running # D-Bus autolaunch is broken if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then @@ -292,7 +186,7 @@ if $qdbus >/dev/null 2>/dev/null; then else echo 'startkde: Could not start D-Bus. Can you call qdbus?' 1>&2 test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null - xmessage -geometry 500x100 "Could not start D-Bus. Can you call qdbus?" + message "Could not start D-Bus. Can you call qdbus?" exit 1 fi @@ -348,18 +242,16 @@ if test $? -ne 0; then # Startup error echo 'startkde: Could not sync environment to dbus.' 1>&2 test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null - xmessage -geometry 500x100 "Could not sync environment to dbus." + message "Could not sync environment to dbus." exit 1 fi -# We set LD_BIND_NOW to increase the efficiency of kdeinit. -# kdeinit unsets this variable before loading applications. -LD_BIND_NOW=true @CMAKE_INSTALL_FULL_LIBEXECDIR_KF5@/start_kdeinit_wrapper --kded +kcminit_startup +@CMAKE_INSTALL_FULL_LIBEXECDIR_KF5@/start_kdeinit_wrapper --kded +kcminit_startup if test $? -ne 0; then # Startup error echo 'startkde: Could not start kdeinit5. Check your installation.' 1>&2 test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null - xmessage -geometry 500x100 "Could not start kdeinit5. Check your installation." + message "Could not start kdeinit5. Check your installation." exit 1 fi @@ -383,7 +275,7 @@ if test $? -eq 255; then # Startup error echo 'startkde: Could not start ksmserver. Check your installation.' 1>&2 test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null - xmessage -geometry 500x100 "Could not start ksmserver. Check your installation." + message "Could not start ksmserver. Check your installation." fi wait_drkonqi=`kreadconfig5 --file startkderc --group WaitForDrKonqi --key Enabled --default true`