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