summaryrefslogtreecommitdiff
path: root/portato/backend/portage/system.py
diff options
context:
space:
mode:
authorNecoro <>2008-01-14 10:31:51 +0000
committerNecoro <>2008-01-14 10:31:51 +0000
commit60e51e08dde38b982dc84923e3678555aeef21ba (patch)
tree6c5d4481df50f53fb932a31698a9fbcfdff5b72f /portato/backend/portage/system.py
parent933b7e68f19d6107bff06b29fbbce7f364fba74a (diff)
downloadportato-60e51e08dde38b982dc84923e3678555aeef21ba.tar.gz
portato-60e51e08dde38b982dc84923e3678555aeef21ba.tar.bz2
portato-60e51e08dde38b982dc84923e3678555aeef21ba.zip
r603@Devoty: necoro | 2008-01-14 11:30:26 +0100
Improved 'update world'; really support new use defaults
Diffstat (limited to '')
-rw-r--r--portato/backend/portage/system.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/portato/backend/portage/system.py b/portato/backend/portage/system.py
index d4f4aef..77004a7 100644
--- a/portato/backend/portage/system.py
+++ b/portato/backend/portage/system.py
@@ -368,14 +368,14 @@ class PortageSystem (SystemInterface):
# append system packages
packages.extend(unique_array([p.get_cp() for p in self.find_all_system_packages()]))
- states = [(["RDEPEND","PDEPEND"],True), (["DEPEND"], False)]
+ states = [(["RDEPEND","PDEPEND"],True)]#, (["DEPEND"], False)]
if self.with_bdeps():
states[1] = (["DEPEND"], True)
checked = []
updating = []
raw_checked = {}
- def check (p, add_not_installed = True):
+ def check (p, add_not_installed = True, prev_appended = False):
"""Checks whether a package is updated or not."""
if p.get_slot_cp() in checked:
@@ -426,7 +426,11 @@ class PortageSystem (SystemInterface):
appended = True
if deep or tempDeep:
- for state in states:
+ if (appended or prev_appended) and len(states) < 2:
+ real_states = states + [("DEPEND", False)]
+ else:
+ real_states = states
+ for state in real_states:
for i in p.get_matched_dep_packages(state[0]):
if i not in raw_checked or raw_checked[i] == False:
raw_checked.update({i : state[1]})
@@ -436,7 +440,7 @@ class PortageSystem (SystemInterface):
else:
for pkg in bm:
if not pkg: continue
- check(pkg, state[1])
+ check(pkg, state[1], appended)
for p in self.get_new_packages(packages):
if not p: continue # if a masked package is installed we have "None" here