summaryrefslogtreecommitdiff
path: root/portato/gui/queue.py
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2008-04-16 23:05:57 +0200
committerRené 'Necoro' Neumann <necoro@necoro.net>2008-04-16 23:05:57 +0200
commit184755e6f8e9fc040daff11e6f6b6ea9a60aad2c (patch)
treea9b50a9158a335d488777f2ff6d1a9bbcc93c453 /portato/gui/queue.py
parentf5187016939c45c041c7d857bd6380e601410e96 (diff)
downloadportato-184755e6f8e9fc040daff11e6f6b6ea9a60aad2c.tar.gz
portato-184755e6f8e9fc040daff11e6f6b6ea9a60aad2c.tar.bz2
portato-184755e6f8e9fc040daff11e6f6b6ea9a60aad2c.zip
Correct handling of masked packages during update
Diffstat (limited to 'portato/gui/queue.py')
-rw-r--r--portato/gui/queue.py13
1 files changed, 5 insertions, 8 deletions
diff --git a/portato/gui/queue.py b/portato/gui/queue.py
index 9627cef..3ac9246 100644
--- a/portato/gui/queue.py
+++ b/portato/gui/queue.py
@@ -170,10 +170,8 @@ class EmergeQueue:
except backend.PackageNotFoundException, e: # package not found / package is masked -> delete current tree and re-raise the exception
if type == "update": # remove complete tree
- if self.tree.iter_has_parent(it):
- while self.tree.iter_has_parent(it):
- it = self.tree.parent_iter(it)
- self.remove_with_children(it, removeNewFlags = False)
+ self.remove_with_children(self.tree.first_iter(it), removeNewFlags = False)
+
elif type == "install": # remove only the intentionally added package
top = self.tree.first_iter(it)
parent = self.tree.parent_iter(it)
@@ -224,11 +222,10 @@ class EmergeQueue:
@raises portato.backend.PackageNotFoundException: if trying to add a package which does not exist"""
if type in ("install", "update"): # emerge
- # insert dependencies
- pkg = self._get_pkg_from_cpv(cpv, unmask)
- deps = pkg.get_dep_packages()
-
if update:
+ pkg = self._get_pkg_from_cpv(cpv, unmask)
+ deps = pkg.get_dep_packages()
+
if not forceUpdate and cpv in self.deps[type] and deps == self.deps[type][cpv]:
return # nothing changed - return
else: