aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-07-18 10:19:07 -0700
committerZac Medico <zmedico@gentoo.org>2012-07-18 10:19:07 -0700
commited4e91f0473b5cfcbb1d6de22991bbf3e270a6e3 (patch)
treedd77af21df193777e311be8095ce8ba78f99fc04
parentportage.update: use isvalidatom for EAPI check (diff)
downloadportage-ed4e91f0473b5cfcbb1d6de22991bbf3e270a6e3.tar.gz
portage-ed4e91f0473b5cfcbb1d6de22991bbf3e270a6e3.tar.bz2
portage-ed4e91f0473b5cfcbb1d6de22991bbf3e270a6e3.zip
depgraph: __auto_rebuild__ KeyError, bug #427036
-rw-r--r--pym/_emerge/DependencyArg.py5
-rw-r--r--pym/_emerge/depgraph.py7
2 files changed, 9 insertions, 3 deletions
diff --git a/pym/_emerge/DependencyArg.py b/pym/_emerge/DependencyArg.py
index ba36f78d2..80134c804 100644
--- a/pym/_emerge/DependencyArg.py
+++ b/pym/_emerge/DependencyArg.py
@@ -7,9 +7,9 @@ from portage import _encodings, _unicode_encode, _unicode_decode
class DependencyArg(object):
- __slots__ = ('arg', 'force_reinstall', 'reset_depth', 'root_config')
+ __slots__ = ('arg', 'force_reinstall', 'internal', 'reset_depth', 'root_config')
- def __init__(self, arg=None, force_reinstall=False,
+ def __init__(self, arg=None, force_reinstall=False, internal=False,
reset_depth=True, root_config=None):
"""
Use reset_depth=False for special arguments that should not interact
@@ -17,6 +17,7 @@ class DependencyArg(object):
"""
self.arg = arg
self.force_reinstall = force_reinstall
+ self.internal = internal
self.reset_depth = reset_depth
self.root_config = root_config
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 552d57854..0f3bc9389 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -2533,7 +2533,8 @@ class depgraph(object):
if isinstance(arg, (AtomArg, PackageArg)):
myfavorites.add(arg.atom)
elif isinstance(arg, SetArg):
- myfavorites.add(arg.arg)
+ if not arg.internal:
+ myfavorites.add(arg.arg)
myfavorites = list(myfavorites)
if debug:
@@ -2566,6 +2567,7 @@ class depgraph(object):
# to behave like normal arguments in most other respects.
pset=InternalPackageSet(initial_atoms=atoms),
force_reinstall=True,
+ internal=True,
reset_depth=False,
root_config=self._frozen_config.roots[root])
@@ -6793,6 +6795,9 @@ class depgraph(object):
continue
if arg.root_config.root != root_config.root:
continue
+ if arg.internal:
+ # __auto_* sets
+ continue
k = arg.name
if k in ("selected", "world") or \
not root_config.sets[k].world_candidate: