diff options
Diffstat (limited to 'redhat/tdeartwork/tdeartwork-3.5.13.2-fix_update_screensaver_list.patch')
-rw-r--r-- | redhat/tdeartwork/tdeartwork-3.5.13.2-fix_update_screensaver_list.patch | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/redhat/tdeartwork/tdeartwork-3.5.13.2-fix_update_screensaver_list.patch b/redhat/tdeartwork/tdeartwork-3.5.13.2-fix_update_screensaver_list.patch new file mode 100644 index 000000000..4277d6856 --- /dev/null +++ b/redhat/tdeartwork/tdeartwork-3.5.13.2-fix_update_screensaver_list.patch @@ -0,0 +1,57 @@ +--- trinity-tdeartwork/kscreensaver/kxsconfig/update_hacks.sh.ORI 2013-07-31 11:08:50.105439282 +0200 ++++ trinity-tdeartwork/kscreensaver/kxsconfig/update_hacks.sh 2013-07-31 11:22:06.146113235 +0200 +@@ -1,18 +1,50 @@ + #!/bin/sh +-scsvs=`cd /usr/lib/xscreensaver/ && ls -1 | grep -v config` ++ ++# Checks for Xscreensaver directory (may vary on different distributions) ++if [ -d /usr/libexec/xscreensaver ]; then ++ XSDIR=/usr/libexec/xscreensaver ++elif [ -d /usr/lib64/xscreensaver ]; then ++ XSDIR=/usr/lib64/xscreensaver ++else ++ XSDIR=/usr/lib/xscreensaver ++fi ++ ++# Gets list of screensavers. Exclude 'config'. ++scsvs="" ++pushd "${XSDIR}" >/dev/null ++for i in *; do ++ if [ "${i}" != "config" ]; then ++ scsvs="${scsvs} ${i}" ++ fi ++done ++popd >/dev/null ++ + echo $scsvs ++ ++# Removes useless .desktop files, if any ++for f in ScreenSavers/*.desktop; do ++ # Gets the command line for this screensaver ++ Exec="$(sed -n '/^Exec=kxsconfig / s/.* \(.*\)/\1/' $f)" ++ if [ ! -x "${XSDIR}/${Exec}" ]; then ++ echo "Removing ${f}" ++ rm -f "${f}" ++ fi ++done ++ ++# Creates missing screensavers .desktop files + for name in $scsvs; do +- if test -f /usr/lib/xscreensaver/$name && test -f /usr/share/xscreensaver/config/$name.xml && test ! -f ScreenSavers/$name.desktop; then ++ if test -f "${XSDIR}/$name" && test -f "/usr/share/xscreensaver/config/$name.xml" && test ! -f "ScreenSavers/$name.desktop"; then + echo "name: $name" + label=`grep '<screensaver.*_label' /usr/share/xscreensaver/config/$name.xml | sed -e 's#^.*_label=\"\(.*\)\".*$#\1#'` + echo "label: $label" + f=ScreenSavers/$name.desktop + sed -e "s#@NAME@#$name#; s#@LABEL@#$label#" ScreenSavers/xscreensaver.template > $f +- if ldd /usr/lib/xscreensaver/$name 2>&1 | grep libGL; then ++ if ldd "${XSDIR}/$name" 2>&1 | grep libGL; then + sed -e "s,@GL1@,X-KDE-Category=OpenGL Screen Savers,; s,@GL2@,X-KDE-Type=OpenGL," $f > $f.new + else + grep -v @GL $f > $f.new + fi + mv $f.new $f + fi +-done ++done ++ |