rpms/sabayon/devel sabayon-2.25.0-profile-save.patch, NONE, 1.1 sabayon.spec, 1.59, 1.60 sabayon-2.25.0-gconf-crashes.patch, 1.1, NONE

Tomas Bzatek tbzatek at fedoraproject.org
Mon Apr 20 12:15:32 UTC 2009


Author: tbzatek

Update of /cvs/extras/rpms/sabayon/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv11279

Modified Files:
	sabayon.spec 
Added Files:
	sabayon-2.25.0-profile-save.patch 
Removed Files:
	sabayon-2.25.0-gconf-crashes.patch 
Log Message:
* Mon Apr 20 2009 Tomas Bzatek <tbzatek at redhat.com> - 2.25.0-3
- Another, more complete fix for panel gconf save issues (gnome #542604)


sabayon-2.25.0-profile-save.patch:

--- NEW FILE sabayon-2.25.0-profile-save.patch ---
diff --git a/lib/sources/paneldelegate.py b/lib/sources/paneldelegate.py
index d37c180..87b1af5 100755
--- a/lib/sources/paneldelegate.py
+++ b/lib/sources/paneldelegate.py
@@ -39,6 +39,16 @@ def dprint (fmt, *args):
 
 PANEL_LAUNCHER_DIR = ".gnome2/panel2.d/default/launchers"
 
+
+def copy_dir (src_client, dst_client, dst_address, dir):
+    for entry in src_client.all_entries (dir):
+        if entry.get_schema_name():
+            gconfsource.associate_schema (dst_address, entry.key, entry.get_schema_name ())
+        if entry.value and not entry.get_is_default ():
+            dst_client.set (entry.key, entry.value)
+    for subdir in src_client.all_dirs (dir):
+        copy_dir (src_client, dst_client, dst_address, subdir)
+
 class PanelChange (userprofile.ProfileChange):
     def __init__ (self, source, delegate, id):
         userprofile.ProfileChange.__init__ (self, source, delegate)
@@ -162,10 +172,20 @@ class PanelDelegate (userprofile.SourceDelegate):
             self.added   = added
             self.removed = removed
             self.client = gconf.client_get_default ()
+
+        def _copy_tree(self, dir):
+            if not self.client.dir_exists(dir):
+                (src_client, src_address) = gconfsource.get_client_and_address_for_path(
+                    os.path.join(util.get_home_dir(), '.gconf'))
+                (dst_client, dst_address) = gconfsource.get_client_and_address_for_path(
+                    os.path.join(util.get_home_dir(), '.gconf.xml.defaults'))
+                copy_dir (src_client, dst_client, dst_address, dir)
     
     class PanelToplevel (PanelThing):
         def __init__ (self, id, added = False, removed = False):
             PanelDelegate.PanelThing.__init__ (self, id, added, removed)
+
+            self._copy_tree(PANEL_KEY_BASE + "/toplevels/" + id)
             
             self.orientation = self.client.get_string (PANEL_KEY_BASE + "/toplevels/" + id + "/orientation")
             
@@ -177,6 +197,8 @@ class PanelDelegate (userprofile.SourceDelegate):
         def __init__ (self, id, added = False, removed = False):
             PanelDelegate.PanelThing.__init__ (self, id, added, removed)
 
+            self._copy_tree(PANEL_KEY_BASE + "/applets/" + id)
+ 
             self.toplevel_id = self.client.get_string (PANEL_KEY_BASE + "/applets/" + id + "/toplevel_id")
             self.bonobo_iid  = self.client.get_string (PANEL_KEY_BASE + "/applets/" + id + "/bonobo_iid")
 
@@ -191,6 +213,8 @@ class PanelDelegate (userprofile.SourceDelegate):
     class PanelObject (PanelThing):
         def __init__ (self, id, added = False, removed = False):
             PanelDelegate.PanelThing.__init__ (self, id, added, removed)
+
+            self._copy_tree(PANEL_KEY_BASE + "/objects/" + id)
   
             self.toplevel_id = self.client.get_string (PANEL_KEY_BASE + "/objects/" + id + "/toplevel_id")
             self.object_type = self.client.get_string (PANEL_KEY_BASE + "/objects/" + id + "/object_type")
@@ -220,6 +244,8 @@ class PanelDelegate (userprofile.SourceDelegate):
                     self.name = _("Run Application button")
                 elif action_type == "search":
                     self.name = _("Search button")
+                elif action_type == "connect-server":
+                    self.name = _("Connect to Server button")
                 else:
                     self.name = _("Screenshot button")
             else:
@@ -339,14 +365,6 @@ class PanelDelegate (userprofile.SourceDelegate):
 
         return False
 
-    def __copy_dir (self, src_client, dst_client, dst_address, dir):
-        for entry in src_client.all_entries (dir):
-            if entry.get_schema_name ():
-                gconfsource.associate_schema (dst_address, entry.key, entry.get_schema_name ())
-            if entry.value and not entry.get_is_default ():
-                dst_client.set (entry.key, entry.value)
-        for subdir in src_client.all_dirs (dir):
-            self.__copy_dir (src_client, dst_client, dst_address, subdir)
 
     def __get_current_list (self, dict):
         id_list = []
@@ -368,8 +386,8 @@ class PanelDelegate (userprofile.SourceDelegate):
 
         (client, address) = self.source.get_committing_client_and_address (mandatory)
 
-        self.__copy_dir (self.client, client, address, PANEL_KEY_BASE + "/" + dir_name + "/" + thing.id)
-        
+        copy_dir (self.client, client, address, PANEL_KEY_BASE + "/" + dir_name + "/" + thing.id)
+
         id_list = self.__get_current_list (dict)
         id_list.append (thing.id)
         client.set_list (PANEL_KEY_BASE + "/general/" + id_list_name, gconf.VALUE_STRING, id_list)


Index: sabayon.spec
===================================================================
RCS file: /cvs/extras/rpms/sabayon/devel/sabayon.spec,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -r1.59 -r1.60
--- sabayon.spec	3 Apr 2009 16:14:50 -0000	1.59
+++ sabayon.spec	20 Apr 2009 12:15:00 -0000	1.60
@@ -8,7 +8,7 @@
 
 Name:    sabayon
 Version: 2.25.0
-Release: 2%{?dist}
+Release: 3%{?dist}
 Summary: Tool to maintain user profiles in a GNOME desktop
 
 Group:   Applications/System
@@ -30,8 +30,8 @@
 # https://bugzilla.gnome.org/show_bug.cgi?id=576440
 Patch5:  sabayon-2.25.0-XAUTHLOCALHOSTNAME.patch
 
-# https://bugzilla.gnome.org/show_bug.cgi?id=576445
-Patch6:  sabayon-2.25.0-gconf-crashes.patch
+# http://bugzilla.gnome.org/show_bug.cgi?id=542604
+Patch7:  sabayon-2.25.0-profile-save.patch
 
 
 Requires: %{name}-apply = %{version}-%{release}
@@ -108,7 +108,7 @@
 %patch3 -p1 -b .selinux
 %patch4 -p0 -b .gconfsave
 %patch5 -p1 -b .xauth
-%patch6 -p1 -b .gconf
+%patch7 -p1 -b .profile
 
 
 %build
@@ -298,6 +298,9 @@
 %ghost %{python_sitearch}/%{name}/lockdown/*.pyo
 
 %changelog
+* Mon Apr 20 2009 Tomas Bzatek <tbzatek at redhat.com> - 2.25.0-3
+- Another, more complete fix for panel gconf save issues (gnome #542604)
+
 * Fri Apr  3 2009 Tomas Bzatek <tbzatek at redhat.com> - 2.25.0-2
 - Fix some gconf crashes (gnome #576445)
 - Temporarily switched back to Xnest to get working keyboard (gnome #576447)


--- sabayon-2.25.0-gconf-crashes.patch DELETED ---




More information about the scm-commits mailing list