rpms/sabayon/F-12 sabayon-2.29.2-paneldelegate-race.patch, NONE, 1.1 sabayon.spec, 1.66, 1.67

Tomas Bzatek tbzatek at fedoraproject.org
Wed Dec 9 12:02:39 UTC 2009


Author: tbzatek

Update of /cvs/extras/rpms/sabayon/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv2320

Modified Files:
	sabayon.spec 
Added Files:
	sabayon-2.29.2-paneldelegate-race.patch 
Log Message:
* Wed Dec  9 2009 Tomas Bzatek <tbzatek at redhat.com> - 2.28.1-2
- Fixed race conditions while catching panel events


sabayon-2.29.2-paneldelegate-race.patch:
 paneldelegate.py |  142 +++++++++++++++++++++++++++++--------------------------
 1 file changed, 75 insertions(+), 67 deletions(-)

--- NEW FILE sabayon-2.29.2-paneldelegate-race.patch ---
>From a6c991fae5dbf5b110b2aec47245e74a700f2347 Mon Sep 17 00:00:00 2001
From: Scott Balneaves <sbalneav at ltsp.org>
Date: Mon, 07 Dec 2009 19:17:08 +0000
Subject: Fixed race conditions in paneldelegate.py at the expense of some nicer log printing

---
diff --git a/lib/sources/paneldelegate.py b/lib/sources/paneldelegate.py
index 8386823..6087f5c 100755
--- a/lib/sources/paneldelegate.py
+++ b/lib/sources/paneldelegate.py
@@ -74,63 +74,69 @@ class PanelAppletAddedChange (PanelChange):
     def __init__ (self, source, delegate, id):
         PanelChange.__init__ (self, source, delegate, id)
     def get_short_description (self):
+        return _("Applet '%s' added" % self.id)
         # FIXME: This only works if panel object type is bonobo-applet. Are all applets bonobo-applets ?
-        panel_applet = self.delegate.PanelApplet(self.delegate, self.id)
-        toplevel_id = panel_applet.toplevel_id
-        name = panel_applet.name
-
-        panel_toplevel = self.delegate.PanelToplevel(self.delegate, toplevel_id)
-        panel_orientation = panel_toplevel.orientation
-
-        if panel_orientation == "top":
-            return _("Applet %s added to top panel") % name
-        elif panel_orientation == "bottom":
-            return _("Applet %s added to bottom panel") % name
-        elif panel_orientation == "left":
-            return _("Applet %s added to left panel") % name
-        else:
-            return _("Applet %s added to right panel") % name
+        # FIXME: Race condition with the code below.
+        # panel_applet = self.delegate.PanelApplet(self.delegate, self.id)
+        # toplevel_id = panel_applet.toplevel_id
+        # name = panel_applet.name
+
+        # panel_toplevel = self.delegate.PanelToplevel(self.delegate, toplevel_id)
+        # panel_orientation = panel_toplevel.orientation
+
+        # if panel_orientation == "top":
+        #     return _("Applet %s added to top panel") % name
+        # elif panel_orientation == "bottom":
+        #     return _("Applet %s added to bottom panel") % name
+        # elif panel_orientation == "left":
+        #     return _("Applet %s added to left panel") % name
+        # else:
+        #     return _("Applet %s added to right panel") % name
 
 class PanelAppletRemovedChange (PanelChange):
     def __init__ (self, source, delegate, id):
         PanelChange.__init__ (self, source, delegate, id)
     def get_short_description (self):
+        return _("Applet '%s' removed" % self.id)
         # FIXME: This only works if panel object type is bonobo-applet. Are all applets bonobo-applets ?
-        panel_applet = self.delegate.PanelApplet(self.delegate, self.id)
-        toplevel_id = panel_applet.toplevel_id
-        name = panel_applet.name
-
-        panel_toplevel = self.delegate.PanelToplevel(self.delegate, toplevel_id)
-        panel_orientation = panel_toplevel.orientation
-
-        if panel_orientation == "top":
-            return _("Applet %s removed from top panel") % name
-        elif panel_orientation == "bottom":
-            return _("Applet %s removed from bottom panel") % name
-        elif panel_orientation == "left":
-            return _("Applet %s removed from left panel") % name
-        else:
-            return _("Applet %s removed from right panel") % name
+        # FIXME: Race condition with the code below.
+        # panel_applet = self.delegate.PanelApplet(self.delegate, self.id)
+        # toplevel_id = panel_applet.toplevel_id
+        # name = panel_applet.name
+
+        # panel_toplevel = self.delegate.PanelToplevel(self.delegate, toplevel_id)
+        # panel_orientation = panel_toplevel.orientation
+
+        # if panel_orientation == "top":
+        #     return _("Applet %s removed from top panel") % name
+        # elif panel_orientation == "bottom":
+        #     return _("Applet %s removed from bottom panel") % name
+        # elif panel_orientation == "left":
+        #     return _("Applet %s removed from left panel") % name
+        # else:
+        #     return _("Applet %s removed from right panel") % name
 
 class PanelObjectAddedChange (PanelChange):
     def __init__ (self, source, delegate, id):
         PanelChange.__init__ (self, source, delegate, id)
     def get_short_description (self):
-        panel_object = self.delegate.PanelObject(self.delegate, self.id)
-        toplevel_id = panel_object.toplevel_id
-        name = panel_object.name
-
-        panel_toplevel = self.delegate.PanelToplevel(self.delegate, toplevel_id)
-        panel_orientation = panel_toplevel.orientation
-
-        if panel_orientation == "top":
-            return _("%s added to top panel") % name
-        elif panel_orientation == "bottom":
-            return _("%s added to bottom panel") % name
-        elif panel_orientation == "left":
-            return _("%s added to left panel") % name
-        else:
-            return _("%s added to right panel") % name
+        return _("Object '%s' added" % self.id)
+        # FIXME: Race condition with code below.
+        # panel_object = self.delegate.PanelObject(self.delegate, self.id)
+        # toplevel_id = panel_object.toplevel_id
+        # name = panel_object.name
+
+        # panel_toplevel = self.delegate.PanelToplevel(self.delegate, toplevel_id)
+        # panel_orientation = panel_toplevel.orientation
+
+        # if panel_orientation == "top":
+        #     return _("%s added to top panel") % name
+        # elif panel_orientation == "bottom":
+        #     return _("%s added to bottom panel") % name
+        # elif panel_orientation == "left":
+        #     return _("%s added to left panel") % name
+        # else:
+        #     return _("%s added to right panel") % name
 
     def commit_change (self, mandatory):
         # Might have to commit a launcher file
@@ -143,21 +149,23 @@ class PanelObjectRemovedChange (PanelChange):
     def __init__ (self, source, delegate, id):
         PanelChange.__init__ (self, source, delegate, id)
     def get_short_description (self):
-        panel_object = self.delegate.PanelObject(self.delegate, self.id)
-        toplevel_id = panel_object.toplevel_id
-        name = panel_object.name
-
-        panel_toplevel = self.delegate.PanelToplevel(self.delegate, toplevel_id)
-        panel_orientation = panel_toplevel.orientation
-
-        if panel_orientation == "top":
-            return _("%s removed from top panel") % name
-        elif panel_orientation == "bottom":
-            return _("%s removed from bottom panel") % name
-        elif panel_orientation == "left":
-            return _("%s removed from left panel") % name
-        else:
-            return _("%s removed from right panel") % name
+        return _("Object '%s' removed" % self.id)
+        # FIXME: Race condition with code below.
+        # panel_object = self.delegate.PanelObject(self.delegate, self.id)
+        # toplevel_id = panel_object.toplevel_id
+        # name = panel_object.name
+
+        # panel_toplevel = self.delegate.PanelToplevel(self.delegate, toplevel_id)
+        # panel_orientation = panel_toplevel.orientation
+
+        # if panel_orientation == "top":
+        #     return _("%s removed from top panel") % name
+        # elif panel_orientation == "bottom":
+        #     return _("%s removed from bottom panel") % name
+        # elif panel_orientation == "left":
+        #     return _("%s removed from left panel") % name
+        # else:
+        #     return _("%s removed from right panel") % name
 
     def commit_change (self, mandatory):
         launcher = self.delegate.get_gconf_client ().get_string (PANEL_KEY_BASE + "/objects/" + self.id + "/launcher_location")
@@ -208,12 +216,13 @@ class PanelDelegate (userprofile.SourceDelegate):
                     id,
                     toplevel_key_name, self.toplevel_id,
                     bonobo_iid_key_name, self.bonobo_iid)
-
-            applet = bonobo.activation.query("iid == '" + self.bonobo_iid + "'" )
-            for i in applet:
-                for prop in i.props:
-                    if prop.name == "name":
-                        self.name = prop.v.value_string #FIXME: This probably won't return localised names
+            
+            if self.bonobo_iid:
+                applet = bonobo.activation.query("iid == '" + self.bonobo_iid + "'" )
+                for i in applet:
+                    for prop in i.props:
+                        if prop.name == "name":
+                            self.name = prop.v.value_string #FIXME: This probably won't return localised names
 
 
 
--
cgit v0.8.2


Index: sabayon.spec
===================================================================
RCS file: /cvs/extras/rpms/sabayon/F-12/sabayon.spec,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -p -r1.66 -r1.67
--- sabayon.spec	27 Oct 2009 10:46:16 -0000	1.66
+++ sabayon.spec	9 Dec 2009 12:02:38 -0000	1.67
@@ -8,7 +8,7 @@
 
 Name:    sabayon
 Version: 2.28.1
-Release: 1%{?dist}
+Release: 2%{?dist}
 Summary: Tool to maintain user profiles in a GNOME desktop
 
 Group:   Applications/System
@@ -18,6 +18,9 @@ Source:  http://ftp.gnome.org/pub/GNOME/
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
+
+# from upstream
+Patch1:  sabayon-2.29.2-paneldelegate-race.patch
 # http://bugzilla.gnome.org/show_bug.cgi?id=486218 
 Patch3:  selinux.patch
 
@@ -88,6 +91,7 @@ that need to be installed on the client 
 %prep
 %setup -q
 
+%patch1 -p1 -b .race
 %patch3 -p1 -b .selinux
 
 
@@ -269,6 +273,9 @@ fi
 %ghost %{python_sitearch}/%{name}/lockdown/*.pyo
 
 %changelog
+* Wed Dec  9 2009 Tomas Bzatek <tbzatek at redhat.com> - 2.28.1-2
+- Fixed race conditions while catching panel events
+
 * Tue Oct 27 2009 Tomas Bzatek <tbzatek at redhat.com> - 2.28.1-1
 - Update to 2.28.1
 




More information about the fedora-extras-commits mailing list