depgraph: __auto_rebuild__ KeyError, bug #427036
authorZac Medico <zmedico@gentoo.org>
Wed, 18 Jul 2012 17:19:07 +0000 (10:19 -0700)
committerZac Medico <zmedico@gentoo.org>
Wed, 18 Jul 2012 17:19:07 +0000 (10:19 -0700)
pym/_emerge/DependencyArg.py
pym/_emerge/depgraph.py

index ba36f78d2825270a0b53f5ffecd641fca80fd59e..80134c804f7f32ea927e25347f91e917e2db68af 100644 (file)
@@ -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
 
index 552d5785476b58d651f25cfa1f610f7539d7bb84..0f3bc9389c93889461bb1e7da8c449aa6a134a43 100644 (file)
@@ -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: