From 7d348660577dc3ffce868d656bd09058a1b2ae32 Mon Sep 17 00:00:00 2001 From: TASAKA Mamoru Date: Mon, 28 Nov 2011 19:08:30 +0900 Subject: [PATCH 1/3] More strict check on daemon_wallpapoz startup for xprop (bug 711541) --- ...papoz-0.4.1-rev92-kill-daemon-without-x.patch | 16 +++++++++------- wallpapoz.spec | 8 +++++++- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/wallpapoz-0.4.1-rev92-kill-daemon-without-x.patch b/wallpapoz-0.4.1-rev92-kill-daemon-without-x.patch index f394d8f..728aeea 100644 --- a/wallpapoz-0.4.1-rev92-kill-daemon-without-x.patch +++ b/wallpapoz-0.4.1-rev92-kill-daemon-without-x.patch @@ -1,5 +1,5 @@ ---- wallpapoz-0.4.1-svn92_trunk/share/wallpapoz/lib/wallpapoz_system.py.kill_nox 2010-03-18 00:52:45.000000000 +0900 -+++ wallpapoz-0.4.1-svn92_trunk/share/wallpapoz/lib/wallpapoz_system.py 2010-03-18 01:00:30.000000000 +0900 +--- wallpapoz-0.5/share/wallpapoz/lib/wallpapoz_system.py.kill_nox 2011-11-28 18:16:13.959482838 +0900 ++++ wallpapoz-0.5/share/wallpapoz/lib/wallpapoz_system.py 2011-11-28 18:19:02.545376745 +0900 @@ -24,9 +24,11 @@ ## wallpapoz_system.py -- finds current desktop and changes wallpaper # achieve goal by calling external program @@ -12,7 +12,7 @@ class WallpapozSystem: -@@ -59,12 +61,46 @@ +@@ -59,12 +61,48 @@ print "daemon_wallpapoz: respawning daemon_wallpapoz." self.respawn_system() @@ -41,6 +41,8 @@ + + if (cmd.find('xprop') >= 0) and (pstdout.find('no such atom') >= 0): + kill_daemon = True ++ if (cmd.find('xprop') >= 0) and (pstdout.find('not') >= 0): ++ kill_daemon = True + + if kill_daemon: + ## No X resource available, kill daemon_wallpapoz @@ -60,7 +62,7 @@ start_width = raw_resolution.find('Width') end_width = raw_resolution.find('\n',start_width) start_height = raw_resolution.find('Height') -@@ -77,7 +113,7 @@ +@@ -77,7 +115,7 @@ if self.beryl: self.total_workspaces = self.row_workspaces * self.column_workspaces else: @@ -69,7 +71,7 @@ # Save this total_workspaces value if not WallpapozSystem.static_finding_total_workspaces_called_p: -@@ -86,7 +122,7 @@ +@@ -86,7 +124,7 @@ ## class method to find if user use beryl in his system or not def check_beryl(self): @@ -78,7 +80,7 @@ # output of xprop -root _NET_DESKTOP_GEOMETRY is '_NET_DESKTOP_GEOMETRY(CARDINAL) = 1024, 768\n' # and we just need the '1024, 768' part raw_geometry = raw_geometry[34:raw_geometry.find('\n')] -@@ -117,7 +153,7 @@ +@@ -117,7 +155,7 @@ ## class method to know what workspace we are in now def current_desktop(self): if self.beryl: @@ -87,7 +89,7 @@ # output of xprop -root _NET_DESKTOP_VIEWPORT is '_NET_DESKTOP_VIEWPORT(CARDINAL) = 1024, 768\n' # and we just need the '1024, 768' part raw_viewport = raw_viewport[34:raw_viewport.find('\n')] -@@ -126,7 +162,7 @@ +@@ -126,7 +164,7 @@ y_pos = int(viewport[1]) / self.screen_height workspace = x_pos + self.column_workspaces * y_pos else: diff --git a/wallpapoz.spec b/wallpapoz.spec index 0d6f5ae..dff3d7f 100644 --- a/wallpapoz.spec +++ b/wallpapoz.spec @@ -8,7 +8,7 @@ %define mainver 0.5 %undefine betaver #%%define svnver svn92_trunk -%define fedorarel 8 +%define fedorarel 9 %define rel %{?betaver:0.}%{fedorarel}%{?svnver:.%svnver}%{?betaver:.%betaver} @@ -26,6 +26,7 @@ Source11: wallpapoz-autostart.desktop %endif # Install daemon_wallpapoz wrapper script, which may # fix 584980, 597687? +# and 711541 Source12: daemon_wallpapoz-wrapper # Misc fixes for daemon_wallpapoz under compiz working, # containing fix for bug 531342, 542244, bug 567437, bug 573642 @@ -40,6 +41,7 @@ Patch4: wallpapoz-0.4.1-rev92-paste-initialization.patch # Kill daemon_wallpapoz when X resource is no longer available # bug 531343, 538533, 541434, 556377, 569135, 571827 # (and bug 566594) +# (and bug 711541) Patch5: wallpapoz-0.4.1-rev92-kill-daemon-without-x.patch # Kill other daemon_wallpapoz if running Patch6: wallpapoz-0.4.1-rev92-kill-multiple-daemon.patch @@ -176,6 +178,10 @@ popd %{_datadir}/applications/fedora-%{name}.desktop %changelog +* Mon Nov 28 2011 Mamoru Tasaka - 0.5-9 +- More strict check on daemon_wallpapoz startup for xprop + (bug 711541) + * Wed Jun 1 2011 Mamoru Tasaka - 0.5-8 - Fix crash witching from desktop style XML to workspace style one with workspace number increased (bug 708769) From 0991688a813f8885b4a7b7dcad92417006f91344 Mon Sep 17 00:00:00 2001 From: TASAKA Mamoru Date: Mon, 28 Nov 2011 19:10:20 +0900 Subject: [PATCH 2/3] Add more fixes --- daemon_wallpapoz-wrapper | 73 ++++++++++++++++++++++++++++++++++------ 1 file changed, 63 insertions(+), 10 deletions(-) diff --git a/daemon_wallpapoz-wrapper b/daemon_wallpapoz-wrapper index 89ea42d..bb0d5df 100644 --- a/daemon_wallpapoz-wrapper +++ b/daemon_wallpapoz-wrapper @@ -4,25 +4,78 @@ which xprop &>/dev/null || exit 1 sleep 2 TRIAL=0 +FOUND=0 PROGNAME=$0 while true ; do - RESULT=$(xprop -root _NET_DESKTOP_GEOMETRY 2>/dev/null) + if test $TRIAL -ge 6 ; then + echo "$PROGNAME: not lauching daemon_wallpapoz" + exit 1 + fi + + COMMAND="xprop -root _NET_NUMBER_OF_DESKTOPS 2>/dev/null" + RESULT=$(eval "$COMMAND") + RESULT=${RESULT:36} + if ( (test -z "$RESULT" ) || ! (echo "$RESULT" | grep -q "^[0-9]" ) ) ; then + # xprop failed + echo "daemon_wallpapoz: $COMMAND failed at startup, retrying after 3 seconds..." + TRIAL=$((TRIAL+1)) + sleep 3 + continue + fi + + COMMAND="xprop -root _NET_DESKTOP_GEOMETRY 2>/dev/null" + RESULT=$(eval "$COMMAND") RESULT=${RESULT:34} WIDTH=$(echo $RESULT | sed -e 's|,.*$||') HEIGHT=$(echo $RESULT | sed -e 's|^.*,||' | sed -e 's|^[ \t][ \t]*||') - if [[ ( -z $WIDTH ) || ( -z $WIDTH ) ]] ; then + if ( (test -z "$WIDTH" ) || ! (echo "$WIDTH" | grep -q "^[0-9]" ) ) ; then # xprop failed + echo "daemon_wallpapoz: $COMMAND failed at startup, retrying after 3 seconds..." TRIAL=$((TRIAL+1)) - echo "$PROGNAME: xprop returned unexpected result for $TRIAL times" - if test $TRIAL -ge 4 ; then - echo "$PROGNAME: not lauching daemon_wallpapoz" - exit 1 - fi sleep 3 - else - # xprop succeeded - break + continue fi + if ( (test -z "$HEIGHT" ) || ! (echo "$HEIGHT" | grep -q "^[0-9]" ) ) ; then + # xprop failed + echo "daemon_wallpapoz: $COMMAND failed at startup, retrying after 3 seconds..." + TRIAL=$((TRIAL+1)) + sleep 3 + continue + fi + + COMMAND="xprop -root _NET_DESKTOP_VIEWPORT 2>/dev/null" + RESULT=$(eval "$COMMAND") + RESULT=${RESULT:34} + WIDTH=$(echo $RESULT | sed -e 's|,.*$||') + HEIGHT=$(echo $RESULT | sed -e 's|^.*,||' | sed -e 's|^[ \t][ \t]*||') + if ( (test -z "$WIDTH" ) || ! (echo "$WIDTH" | grep -q "^[0-9]" ) ) ; then + # xprop failed + echo "daemon_wallpapoz: $COMMAND failed at startup, retrying after 3 seconds..." + TRIAL=$((TRIAL+1)) + sleep 3 + continue + fi + if ( (test -z "$HEIGHT" ) || ! (echo "$HEIGHT" | grep -q "^[0-9]" ) ) ; then + # xprop failed + echo "daemon_wallpapoz: $COMMAND failed at startup, retrying after 3 seconds..." + TRIAL=$((TRIAL+1)) + sleep 3 + continue + fi + + COMMAND="xprop -root _NET_CURRENT_DESKTOP 2>/dev/null" + RESULT=$(eval "$COMMAND") + RESULT=${RESULT:33} + if ( (test -z "$RESULT" ) || ! (echo "$RESULT" | grep -q "^[0-9]" ) ) ; then + # xprop failed + echo "daemon_wallpapoz: $COMMAND failed at startup, retrying after 3 seconds..." + TRIAL=$((TRIAL+1)) + sleep 3 + continue + fi + + # succeeded + break done exec /usr/libexec/daemon_wallpapoz "$@" From 8cfc502e949ae14f9fcd291d956be7e0e20ea8b7 Mon Sep 17 00:00:00 2001 From: Mamoru Tasaka Date: Fri, 30 Dec 2011 15:57:24 +0900 Subject: [PATCH 3/3] Forgot to apply patch13... --- wallpapoz.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wallpapoz.spec b/wallpapoz.spec index dff3d7f..eaf1cc9 100644 --- a/wallpapoz.spec +++ b/wallpapoz.spec @@ -8,7 +8,7 @@ %define mainver 0.5 %undefine betaver #%%define svnver svn92_trunk -%define fedorarel 9 +%define fedorarel 10 %define rel %{?betaver:0.}%{fedorarel}%{?svnver:.%svnver}%{?betaver:.%betaver} @@ -110,6 +110,7 @@ wallpapers for different workspaces or virtual desktops. %patch11 -p1 -b .gsettings %endif %patch12 -p1 -b .workspace_img +%patch13 -p1 -b .workspace_num_incr # Umm... permission fix find . -type f -print0 | xargs -0 chmod 0644 @@ -178,6 +179,9 @@ popd %{_datadir}/applications/fedora-%{name}.desktop %changelog +* Fri Dec 30 2011 Mamoru Tasaka - 0.5-10 +- Forgot to apply patch13... + * Mon Nov 28 2011 Mamoru Tasaka - 0.5-9 - More strict check on daemon_wallpapoz startup for xprop (bug 711541)