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))