summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornecoro <>2007-08-16 17:33:21 +0000
committernecoro <>2007-08-16 17:33:21 +0000
commitae63d36e760b749b97332915b8a91dd6f9ece199 (patch)
treed1e97dcee9a31a3605b9ca6b3a143c81e5662afd
parentb48d1b86ad5dc9ec069be256c37d9571759111b8 (diff)
downloadportato-ae63d36e760b749b97332915b8a91dd6f9ece199.tar.gz
portato-ae63d36e760b749b97332915b8a91dd6f9ece199.tar.bz2
portato-ae63d36e760b749b97332915b8a91dd6f9ece199.zip
improved update-world
-rw-r--r--portato/backend/portage/package.py9
-rw-r--r--portato/gui/gui_helper.py24
2 files changed, 23 insertions, 10 deletions
diff --git a/portato/backend/portage/package.py b/portato/backend/portage/package.py
index 65522ec..2a2d81a 100644
--- a/portato/backend/portage/package.py
+++ b/portato/backend/portage/package.py
@@ -137,8 +137,13 @@ class PortagePackage (Package):
actual = self.get_actual_use_flags()
depstring = ""
- for d in depvar:
- depstring += self.get_package_settings(d, tree = self._settings.porttree)+" "
+ try:
+ for d in depvar:
+ depstring += self.get_package_settings(d, tree = self._settings.porttree)+" "
+ except KeyError: # not found in porttree - use vartree
+ depstring = ""
+ for d in depvar:
+ depstring += self.get_package_settings(d, tree = self._settings.vartree)+" "
deps = portage.dep_check(depstring, None, self._settings.settings, myuse = actual, trees = self._trees)
diff --git a/portato/gui/gui_helper.py b/portato/gui/gui_helper.py
index 110b241..87fcf69 100644
--- a/portato/gui/gui_helper.py
+++ b/portato/gui/gui_helper.py
@@ -369,17 +369,25 @@ class EmergeQueue:
elif cmp < 0:
downgrade = True
- if cmp != 0:
- uVersion = old.get_version()
+ uVersion = old.get_version()
- old_iuse = set(old.get_iuse_flags())
- new_iuse = set(pkg.get_iuse_flags())
+ old_iuse = set(old.get_iuse_flags())
+ new_iuse = set(pkg.get_iuse_flags())
- for i in old_iuse.difference(new_iuse):
- changedUse.append("-"+i)
+ for i in old_iuse.difference(new_iuse):
+ changedUse.append("-"+i)
- for i in new_iuse.difference(old_iuse):
- changedUse.append("+"+i)
+ for i in new_iuse.difference(old_iuse):
+ changedUse.append("+"+i)
+ else:
+ old_iuse = set(pkg.get_iuse_flags(installed = True))
+ new_iuse = set(pkg.get_iuse_flags(installed = False))
+
+ for i in old_iuse.difference(new_iuse):
+ changedUse.append("-"+i)
+
+ for i in new_iuse.difference(old_iuse):
+ changedUse.append("+"+i)
except backend.PackageNotFoundException, e: # package not found / package is masked -> delete current tree and re-raise the exception
if self.tree.iter_has_parent(it):