[sabayon] Unbreak a bit for F16 (#756511)
Tomas Bzatek
tbzatek at fedoraproject.org
Fri Nov 25 10:44:54 UTC 2011
commit 7d0cf6a32b31f1ba4223a52f1b4480c3bfeddc23
Author: Tomas Bzatek <tbzatek at redhat.com>
Date: Fri Nov 25 11:44:49 2011 +0100
Unbreak a bit for F16 (#756511)
sabayon-2.30.1-f16.patch | 93 ++++++++++++++++++++++++++++++++++++++++++++++
sabayon.spec | 10 ++++-
2 files changed, 102 insertions(+), 1 deletions(-)
---
diff --git a/sabayon-2.30.1-f16.patch b/sabayon-2.30.1-f16.patch
new file mode 100644
index 0000000..6918817
--- /dev/null
+++ b/sabayon-2.30.1-f16.patch
@@ -0,0 +1,93 @@
+diff -up sabayon-2.30.1/admin-tool/sabayon-apply.f16 sabayon-2.30.1/admin-tool/sabayon-apply
+--- sabayon-2.30.1/admin-tool/sabayon-apply.f16 2010-03-30 13:02:46.000000000 -0400
++++ sabayon-2.30.1/admin-tool/sabayon-apply 2011-11-23 14:50:30.375841413 -0500
+@@ -144,10 +144,8 @@ if __name__ == '__main__':
+ break
+
+ if not profile_name:
+- mprint ("No profile for user '%s' found", user_name)
+- sys.stderr.write (_("No profile for user '%s' found\n") % user_name)
+- sys.exit (util.EXIT_CODE_NO_USER_PROFILE)
+-
++ dprint ("No profile for user '%s' found", user_name)
++ errors.errors_exit_helper_normally ("No profile for user '%s' found" % user_name)
+ #
+ # We've determined a profile applies to us. re-create source trees.
+ #
+@@ -169,7 +167,7 @@ if __name__ == '__main__':
+
+ if errors.errors_have_recoverable_error ():
+ mprint ("There were recoverable errors while applying the profile.")
+- except:
++ except Exception:
+ errors.errors_exit_with_fatal_exception (debuglog.DEBUG_LOG_DOMAIN_SABAYON_APPLY,
+ util.get_admin_log_config_filename ())
+
+diff -up sabayon-2.30.1/lib/sources/paneldelegate.py.f16 sabayon-2.30.1/lib/sources/paneldelegate.py
+--- sabayon-2.30.1/lib/sources/paneldelegate.py.f16 2010-02-09 08:37:24.000000000 -0500
++++ sabayon-2.30.1/lib/sources/paneldelegate.py 2011-11-23 14:50:30.376841413 -0500
+@@ -20,7 +20,6 @@ import os
+ import gconf
+ import gconfsource
+ import subprocess
+-import bonobo
+ import xdg.DesktopEntry
+
+ try:
+@@ -75,7 +74,6 @@ class PanelAppletAddedChange (PanelChang
+ 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 ?
+ # FIXME: Race condition with the code below.
+ # panel_applet = self.delegate.PanelApplet(self.delegate, self.id)
+ # toplevel_id = panel_applet.toplevel_id
+@@ -98,7 +96,6 @@ class PanelAppletRemovedChange (PanelCha
+ 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 ?
+ # FIXME: Race condition with the code below.
+ # panel_applet = self.delegate.PanelApplet(self.delegate, self.id)
+ # toplevel_id = panel_applet.toplevel_id
+@@ -208,25 +205,12 @@ class PanelDelegate (userprofile.SourceD
+ self._copy_tree (PANEL_KEY_BASE + "/applets/" + id)
+
+ toplevel_key_name = PANEL_KEY_BASE + "/applets/" + id + "/toplevel_id"
+- bonobo_iid_key_name = PANEL_KEY_BASE + "/applets/" + id + "/bonobo_iid"
+-
+ self.toplevel_id = self.gconf_client.get_string (toplevel_key_name)
+- self.bonobo_iid = self.gconf_client.get_string (bonobo_iid_key_name)
+
+- dprint ("Creating PanelApplet for '%s' (toplevel_key %s, toplevel_id %s, bonobo_key %s, bonobo_iid %s)",
++ dprint ("Creating PanelApplet for '%s' (toplevel_key %s, toplevel_id %s)",
+ id,
+- toplevel_key_name, self.toplevel_id,
+- bonobo_iid_key_name, self.bonobo_iid)
++ toplevel_key_name, self.toplevel_id)
+
+- 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
+-
+-
+-
+ class PanelObject (PanelThing):
+ def __init__ (self, delegate, id, added = False, removed = False):
+ PanelDelegate.PanelThing.__init__ (self, delegate, id, added, removed)
+diff -up sabayon-2.30.1/lib/storage.py.f16 sabayon-2.30.1/lib/storage.py
+--- sabayon-2.30.1/lib/storage.py.f16 2010-03-30 13:02:46.000000000 -0400
++++ sabayon-2.30.1/lib/storage.py 2011-11-23 14:51:36.695829755 -0500
+@@ -303,6 +303,9 @@ class ProfileStorage:
+ if not os.path.exists (dest_dir):
+ os.makedirs (dest_dir)
+
++ if dest_path[-1] == "/":
++ continue
++
+ # Python 2.6 dependency
+ # zip.extract(f, dir)
+ file (dest_path, "w").write (zip.read (f))
diff --git a/sabayon.spec b/sabayon.spec
index 5cb70f6..9e330aa 100644
--- a/sabayon.spec
+++ b/sabayon.spec
@@ -8,7 +8,7 @@
Name: sabayon
Version: 2.30.1
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Tool to maintain user profiles in a GNOME desktop
Group: Applications/System
@@ -18,6 +18,10 @@ Source: http://ftp.gnome.org/pub/GNOME/sources/sabayon/2.30/sabayon-%{version}.
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+# Sabayon is broken in many ways in F16
+# https://bugzilla.redhat.com/show_bug.cgi?id=756511
+Patch0: sabayon-2.30.1-f16.patch
+
Requires: %{name}-apply = %{version}-%{release}
Requires: libxml2-python
Requires: pygtk2 >= %{pygtk2_version}
@@ -79,6 +83,7 @@ that need to be installed on the client systems.
%prep
%setup -q -n %{name}-%{version}
+%patch0 -p1
# https://fedoraproject.org/wiki/Features/SystemPythonExecutablesUseSystemPython
# replace "/usr/bin/env python" with a "/usr/bin/python"
@@ -217,6 +222,9 @@ fi
%changelog
+* Fri Nov 25 2011 Tomas Bzatek <tbzatek at redhat.com> - 2.30.1-3
+- Unbreak a bit for F16 (#756511)
+
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 2.30.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
More information about the scm-commits
mailing list