diff -up kdebase-workspace-4.5.2/startkde.cmake.zenity kdebase-workspace-4.5.2/startkde.cmake --- kdebase-workspace-4.5.2/startkde.cmake.zenity 2010-10-20 10:09:31.943643219 -0500 +++ kdebase-workspace-4.5.2/startkde.cmake 2010-10-20 10:15:13.310645585 -0500 @@ -13,12 +13,20 @@ fi # because we still need to do some cleanup. trap 'echo GOT SIGHUP' HUP +# 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." @@ -116,7 +124,7 @@ fi kstartupconfig4 returncode=$? if test $returncode -ne 0; then - xmessage -geometry 500x100 "kstartupconfig4 does not exist or fails. The error code is $returncode. Check your installation." + message "kstartupconfig4 does not exist or fails. The error code is $returncode. Check your installation." exit 1 fi [ -r $kdehome/share/config/startupconfig ] && . $kdehome/share/config/startupconfig @@ -245,7 +253,7 @@ for resource in tmp cache socket; do else echo 'startkde: Call to lnusertemp failed (temporary directories full?). Check your installation.' 1>&2 test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null - xmessage -geometry 600x100 "Call to lnusertemp failed (temporary directories full?). Check your installation." + message "Call to lnusertemp failed (temporary directories full?). Check your installation." exit 1 fi done @@ -269,7 +277,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 @@ -314,7 +322,7 @@ if test $? -ne 0; then # Startup error echo 'startkde: Could not start kdeinit4. Check your installation.' 1>&2 test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null - xmessage -geometry 500x100 "Could not start kdeinit4. Check your installation." + message "Could not start kdeinit4. Check your installation." exit 1 fi @@ -343,7 +351,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 if there's any crashhandler shown