Compare commits

...
Sign in to create a new pull request.

3 commits

Author SHA1 Message Date
Mamoru Tasaka
8cfc502e94 Forgot to apply patch13... 2011-12-30 15:57:24 +09:00
TASAKA Mamoru
0991688a81 Add more fixes 2011-11-28 19:10:20 +09:00
TASAKA Mamoru
7d34866057 More strict check on daemon_wallpapoz startup for xprop
(bug 711541)
2011-11-28 19:08:30 +09:00
3 changed files with 83 additions and 18 deletions

View file

@ -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 "$@"

View file

@ -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:

View file

@ -8,7 +8,7 @@
%define mainver 0.5
%undefine betaver
#%%define svnver svn92_trunk
%define fedorarel 8
%define fedorarel 10
%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
@ -108,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
@ -176,6 +179,13 @@ popd
%{_datadir}/applications/fedora-%{name}.desktop
%changelog
* Fri Dec 30 2011 Mamoru Tasaka <mtasaka@fedoraproject.org> - 0.5-10
- Forgot to apply patch13...
* Mon Nov 28 2011 Mamoru Tasaka <mtasaka@fedoraproject.org> - 0.5-9
- More strict check on daemon_wallpapoz startup for xprop
(bug 711541)
* Wed Jun 1 2011 Mamoru Tasaka <mtasaka@fedoraproject.org> - 0.5-8
- Fix crash witching from desktop style XML to workspace style one
with workspace number increased (bug 708769)