rpms/wallpapoz/F-11 command-wrapper.sh, NONE, 1.1 kill-daemon_wallpapoz, NONE, 1.1 wallpapoz-0.4.1-rev92-compiz-respawn.patch, NONE, 1.1 wallpapoz-0.4.1-rev92-path-fedora.patch, NONE, 1.1 daemon_wallpapoz-wrapper, 1.1, 1.2 wallpapoz.spec, 1.23, 1.24

Mamoru Tasaka mtasaka at fedoraproject.org
Wed Feb 3 20:06:05 UTC 2010


Author: mtasaka

Update of /cvs/extras/rpms/wallpapoz/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv11135/F-11

Modified Files:
	daemon_wallpapoz-wrapper wallpapoz.spec 
Added Files:
	command-wrapper.sh kill-daemon_wallpapoz 
	wallpapoz-0.4.1-rev92-compiz-respawn.patch 
	wallpapoz-0.4.1-rev92-path-fedora.patch 
Log Message:
* Thu Feb  4 2010 Mamoru Tasaka <mtasaka at ioa.s.u-tokyo.ac.jp> - 0.4.1-12.svn92_trunk
- Some fixes for daemon_wallpapoz under compiz
  (bug 531342, 542244)
- Kill daemon_wallpapoz when X resource is no longer avaiable
  (bug 531343, 538533, 541434, 556377)



--- NEW FILE command-wrapper.sh ---
#!/bin/bash

OLDPATH=$PATH
PATH=$(echo $PATH | sed -e "s|$(pwd)[^:]*[:]*||g")
export PATH

TMPFILE=$(mktemp /tmp/wallpapoz-XXXXXX)
realfile=$(which $(basename $0))

$realfile "$@" 2>$TMPFILE ; ret=$?

PATH=$OLDPATH
export PATH

if [ $ret != 0 ] ; then
  if ( cat $TMPFILE | grep -q 'unable to open display' ) ; then
    # X resource not available ; kill daemon_wallpapoz
    kill-daemon_wallpapoz
  fi
fi

rm -f $TMPFILE

exit $ret

--- NEW FILE kill-daemon_wallpapoz ---
#!/bin/bash

pgrep -U $(id -u) -f daemon_wallpapoz | while read daemon_pid
do
	pgrep -U $(id -u) -f python | while read python_pid
	do
		if [ $daemon_pid = $python_pid ]
		then
			/usr/bin/kill -SIGTERM $daemon_pid
		fi
	done
done

wallpapoz-0.4.1-rev92-compiz-respawn.patch:
 share/wallpapoz/lib/wallpapoz_system.py |   13 +++++++++++++
 src/daemon_wallpapoz                    |   19 ++++++++++++++++++-
 2 files changed, 31 insertions(+), 1 deletion(-)

--- NEW FILE wallpapoz-0.4.1-rev92-compiz-respawn.patch ---
--- wallpapoz-0.4.1-svn92_trunk/share/wallpapoz/lib/wallpapoz_system.py.compiz	2009-08-30 01:22:07.000000000 +0900
+++ wallpapoz-0.4.1-svn92_trunk/share/wallpapoz/lib/wallpapoz_system.py	2010-02-04 02:33:51.000000000 +0900
@@ -25,6 +25,7 @@
 # achieve goal by calling external program
 
 import os
+import sys
 import string
 
 class WallpapozSystem:
@@ -73,6 +74,10 @@
     if self.geometry_height!=self.screen_height:
       self.beryl = True
 
+  def beryl_status(self):
+    self.check_beryl()
+    return self.beryl
+
   ## class method to find how many rows and columns of workspaces
   def finding_row_and_column(self):
     self.row_workspaces = self.geometry_height / self.screen_height
@@ -113,3 +118,11 @@
       return True
     else:
       return False
+
+  def respawn_system(self):
+    new_argv = []
+    new_argv.extend(sys.argv)
+    os.execvp('daemon_wallpapoz', new_argv)
+    print "os.execvp failed, exiting..."
+    exit()
+    return
--- wallpapoz-0.4.1-svn92_trunk/src/daemon_wallpapoz.compiz	2009-08-30 01:22:07.000000000 +0900
+++ wallpapoz-0.4.1-svn92_trunk/src/daemon_wallpapoz	2010-02-04 02:31:21.000000000 +0900
@@ -107,6 +107,9 @@
   delay = 60 * float(wallpapozxml.delay())
   randomvar = int(wallpapozxml.is_random())
 
+  # get current compiz status
+  previous_beryl_status = wallpapoz_system.beryl_status() 
+
   # how many workspace we use
   if conf_type == "workspace":
     # cleansing
@@ -134,11 +137,25 @@
     if wallpapozxml.get_type() == "workspace":
       while True:
 	# don't get rush
-	time.sleep(1)
+        # sleep a bit more
+	time.sleep(2)
+
+        # check if compiz is working every loop
+        cur_beryl_status = wallpapoz_system.beryl_status()
+        if previous_beryl_status != cur_beryl_status:
+          # compiz status changed, respawn daemon_wallpapoz
+          print "Compiz status changed, respawning daemon_wallpapoz."
+          wallpapoz_system.respawn_system()
+
+        previous_beryl_status = cur_beryl_status
 
 	# what workspace we are in now?
 	cur_desk = wallpapoz_system.current_desktop()
 
+        if cur_desk >= wallpapoz_system.get_total_workspaces() :
+          # ignore
+          continue
+
 	# requirement for changing wallpaper
 	# 1. we change workspace
 	# 2. index of wallpaper list change

wallpapoz-0.4.1-rev92-path-fedora.patch:
 daemon_wallpapoz |    1 +
 wallpapoz        |    1 +
 2 files changed, 2 insertions(+)

--- NEW FILE wallpapoz-0.4.1-rev92-path-fedora.patch ---
--- wallpapoz-0.4.1-svn92_trunk/src/daemon_wallpapoz.path	2010-02-04 03:40:26.000000000 +0900
+++ wallpapoz-0.4.1-svn92_trunk/src/daemon_wallpapoz	2010-02-04 03:46:52.000000000 +0900
@@ -41,6 +41,7 @@
 os.chdir(os.path.abspath(pathname))
 
 sys.path.append("../share/wallpapoz/lib")
+sys.path.append("../../share/wallpapoz/lib")
 from xml_processing import XMLProcessing
 from wallpapoz_system import WallpapozSystem
 
--- wallpapoz-0.4.1-svn92_trunk/src/wallpapoz.path	2009-08-30 01:22:07.000000000 +0900
+++ wallpapoz-0.4.1-svn92_trunk/src/wallpapoz	2010-02-04 03:46:19.000000000 +0900
@@ -48,6 +48,7 @@
 os.chdir(os.path.abspath(pathname))
 
 sys.path.append("../share/wallpapoz/lib")
+sys.path.append("../../share/wallpapoz/lib")
 from xml_processing import XMLProcessing
 from wallpapoz_system import WallpapozSystem
 


Index: daemon_wallpapoz-wrapper
===================================================================
RCS file: /cvs/extras/rpms/wallpapoz/F-11/daemon_wallpapoz-wrapper,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- daemon_wallpapoz-wrapper	20 Jan 2009 16:41:31 -0000	1.1
+++ daemon_wallpapoz-wrapper	3 Feb 2010 20:06:05 -0000	1.2
@@ -1,13 +1,6 @@
 #!/bin/sh
 
-pgrep -U $(id -u) -f daemon_wallpapoz | while read daemon_pid
-do
-	pgrep -U $(id -u) -f python | while read python_pid
-	do
-		if [ $daemon_pid = $python_pid ]
-		then
-			/usr/bin/kill -SIGTERM $daemon_pid
-		fi
-	done
-done
-exec /usr/libexec/daemon_wallpapoz "$@"
+export PATH=/usr/libexec/wallpapoz:$PATH
+
+kill-daemon_wallpapoz
+exec daemon_wallpapoz "$@"


Index: wallpapoz.spec
===================================================================
RCS file: /cvs/extras/rpms/wallpapoz/F-11/wallpapoz.spec,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -p -r1.23 -r1.24
--- wallpapoz.spec	29 Aug 2009 17:02:06 -0000	1.23
+++ wallpapoz.spec	3 Feb 2010 20:06:05 -0000	1.24
@@ -8,7 +8,7 @@
 %define         mainver         0.4.1
 %undefine         betaver
 %define         svnver          svn92_trunk
-%define         fedorarel       10
+%define         fedorarel       12
 
 %define         rel             %{?betaver:0.}%{fedorarel}%{?svnver:.%svnver}%{?betaver:.%betaver}
 
@@ -23,8 +23,12 @@ URL:            %{srcurl}
 Source0:        %{srcurl}files/%{name}-%{mainver}%{?svnver:-%svnver}%{?betaver:%betaver}.tar.bz2
 Source10:       daemon_wallpapoz-wrapper
 %if 0%{?fedora} >= 12
-Source11:	wallpapoz-autostart.desktop
+Source11:       wallpapoz-autostart.desktop
 %endif
+Source12:       kill-daemon_wallpapoz
+Source13:       command-wrapper.sh
+Patch0:         wallpapoz-0.4.1-rev92-compiz-respawn.patch
+Patch1:         wallpapoz-0.4.1-rev92-path-fedora.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildArch:      noarch
@@ -39,6 +43,7 @@ BuildRequires:  gnome-python2
 %if 0%{?fedora} >= 10
 BuildRequires:  gnome-python2-gnome
 %endif
+Requires:       GConf2
 Requires:       pygtk2-libglade
 Requires:       python-imaging
 Requires:       gnome-python2
@@ -55,6 +60,8 @@ wallpapers for different workspaces or v
 
 %prep
 %setup -q -n %{name}-%{version}%{?svnver:-%svnver}
+%patch0 -p1 -b .compiz
+%patch1 -p1 -b .path
 
 %build
 
@@ -73,13 +80,23 @@ desktop-file-install \
    $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop
 
 # Install daemon_wallpapoz-wrapper, move the original one
-# to %%_libexecdir
-%{__mkdir_p} $RPM_BUILD_ROOT%{_libexecdir}
+# to %%_libexecdir/wallpapoz
+%{__mkdir_p} $RPM_BUILD_ROOT%{_libexecdir}/wallpapoz
 %{__mv} $RPM_BUILD_ROOT%{_bindir}/daemon_wallpapoz \
-	$RPM_BUILD_ROOT%{_libexecdir}/
+	$RPM_BUILD_ROOT%{_libexecdir}/wallpapoz
 %{__install} -cpm 0755 %{SOURCE10} \
 	$RPM_BUILD_ROOT%{_bindir}/daemon_wallpapoz
 
+# Install some other wrapper stuff
+%{__install} -cpm 0755 \
+	%{SOURCE12} %{SOURCE13} \
+	$RPM_BUILD_ROOT%{_libexecdir}/wallpapoz/
+for file in \
+	xprop xwininfo
+do
+	ln -sf $(basename %{SOURCE13}) $RPM_BUILD_ROOT%{_libexecdir}/wallpapoz/$file
+done
+
 # Install desktop application autostart stuff
 %if 0%{?fedora} >= 12
 mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/xdg/autostart
@@ -97,7 +114,7 @@ desktop-file-install \
 %defattr(-,root,root,-)
 %doc COPYING README
 %{_bindir}/*%{name}
-%{_libexecdir}/daemon_wallpapoz
+%{_libexecdir}/wallpapoz/
 
 %if 0%{?fedora} >= 12
 %{_sysconfdir}/xdg/autostart/wallpapoz-autostart.desktop
@@ -110,6 +127,15 @@ desktop-file-install \
 %{_datadir}/applications/fedora-%{name}.desktop
 
 %changelog
+* Thu Feb  4 2010 Mamoru Tasaka <mtasaka at ioa.s.u-tokyo.ac.jp> - 0.4.1-12.svn92_trunk
+- Some fixes for daemon_wallpapoz under compiz
+  (bug 531342, 542244)
+- Kill daemon_wallpapoz when X resource is no longer avaiable
+  (bug 531343, 538533, 541434, 556377)
+
+* Wed Sep 23 2009 Mamoru Tasaka <mtasaka at ioa.s.u-tokyo.ac.jp> - 0.4.1-11.svn92_trunk
+- Explicitly add R: GConf2 (as wallpapoz really needs this)
+
 * Sun Aug 30 2009 Mamoru Tasaka <mtasaka at ioa.s.u-tokyo.ac.jp> - 0.4.1-10.svn92_trunk
 - Update to rev 92
 - Install desktop application autostart stuff on F-12+



More information about the scm-commits mailing list