From d32c3049ea4e844eaed9fa0ed506bf9c7d5c15a8 Mon Sep 17 00:00:00 2001 From: lxnay Date: Fri, 3 Oct 2008 18:11:27 +0000 Subject: [PATCH] Entropy/Repository Manager: - make it stronger when dealing with Portage on Spm functions Entropy/Spritz: - do not consider spm package dict static git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2466 cd1c1023-2f26-0410-ae45-c471fc1f0318 --- libraries/entropy.py | 33 ++++++++++++++++++--------------- spritz/src/dialogs.py | 19 ++++++++++++++----- 2 files changed, 32 insertions(+), 20 deletions(-) diff --git a/libraries/entropy.py b/libraries/entropy.py index 04676bc5a..979936da3 100644 --- a/libraries/entropy.py +++ b/libraries/entropy.py @@ -21932,22 +21932,25 @@ class SystemManagerExecutorServerRepositoryInterface: data = {} data['atom'] = matched_atom data['key'] = self.entropyTools.dep_getkey(matched_atom) - if from_installed: - data['slot'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_installed_package_slot(matched_atom) - portage_matched_atom = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_best_atom("%s:%s" % (data['key'],data['slot'],)) - # get installed package description - data['available_atom'] = portage_matched_atom - if portage_matched_atom: - data['use'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_package_useflags(portage_matched_atom) + try: + if from_installed: + data['slot'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_installed_package_slot(matched_atom) + portage_matched_atom = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_best_atom("%s:%s" % (data['key'],data['slot'],)) + # get installed package description + data['available_atom'] = portage_matched_atom + if portage_matched_atom: + data['use'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_package_useflags(portage_matched_atom) + else: + # get use flags of the installed package + data['use'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_installed_package_useflags(matched_atom) + data['description'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_installed_package_description(matched_atom) else: - # get use flags of the installed package - data['use'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_installed_package_useflags(matched_atom) - data['description'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_installed_package_description(matched_atom) - else: - data['slot'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_package_slot(matched_atom) - data['use'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_package_useflags(matched_atom) - data['installed_atom'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_installed_atom("%s:%s" % (data['key'],data['slot'],)) - data['description'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_package_description(matched_atom) + data['slot'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_package_slot(matched_atom) + data['use'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_package_useflags(matched_atom) + data['installed_atom'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_installed_atom("%s:%s" % (data['key'],data['slot'],)) + data['description'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_package_description(matched_atom) + except KeyError: + pass return data diff --git a/spritz/src/dialogs.py b/spritz/src/dialogs.py index 7c78fe7cc..aef9c5b4f 100644 --- a/spritz/src/dialogs.py +++ b/spritz/src/dialogs.py @@ -569,7 +569,10 @@ class RepositoryManagerMenu(MenuSkel): cell.set_property('stock-id','gtk-cancel') def spm_package_obj_to_cell(self, obj, cell): - use_data = obj['use']['use_string'].split() + use_data = [] + if obj.has_key('use'): + if obj['use'].has_key('use_string'): + use_data = obj['use']['use_string'].split() max_chars = 100 use_string = [] for use in use_data: @@ -585,18 +588,24 @@ class RepositoryManagerMenu(MenuSkel): installed_string = '%s: %s\n' % (_("Installed"),cleanMarkupString(str(obj['installed_atom'])),) if obj.has_key('available_atom'): available_string = '%s: %s\n' % (_("Available"),cleanMarkupString(str(obj['available_atom'])),) + + atom = obj.get('atom') + key = obj.get('key') + slot = obj.get('slot') + description = obj.get('description') + txt = "%s\n%s: %s, %s: %s\n" % ( - cleanMarkupString(obj['atom']), + cleanMarkupString(atom), _("Key"), - cleanMarkupString(obj['key']), + cleanMarkupString(key), _("Slot"), - cleanMarkupString(obj['slot']), + cleanMarkupString(slot), ) txt += installed_string txt += available_string txt += "%s: %s\n%s: %s" % ( _("Description"), - cleanMarkupString(obj['description']), + cleanMarkupString(description), _("USE Flags"), cleanMarkupString(use_string), )