Make depgraph.select_files() recursively expand sets given as
authorZac Medico <zmedico@gentoo.org>
Wed, 31 Oct 2007 22:12:41 +0000 (22:12 -0000)
committerZac Medico <zmedico@gentoo.org>
Wed, 31 Oct 2007 22:12:41 +0000 (22:12 -0000)
arguments so that containment tests in _get_parent_sets()
properly match atoms in nested sets (like if world contains
system). Otherwise, atoms from nested sets would get recorded
in the world file.

svn path=/main/trunk/; revision=8350

pym/_emerge/__init__.py

index 3f8ab808c7fed69756f9de1d2f2603aa97db997f..83e0d1af572033ec32cc4f1317916e1d63d7a663 100644 (file)
@@ -1644,7 +1644,14 @@ class depgraph(object):
 
        def select_files(self, myfiles, mysets):
                "given a list of .tbz2s, .ebuilds and deps, create the appropriate depgraph and return a favorite list"
-               self._sets.update(mysets)
+               # Recursively expand sets so that containment tests in
+               # self._get_parent_sets() properly match atoms in nested
+               # sets (like if world contains system). Otherwise, atoms
+               # from nested sets would get recorded in the world file.
+               setconfig = self.settings.setconfig
+               for set_name in mysets:
+                       self._sets[set_name] = InternalPackageSet(
+                               initial_atoms=setconfig.getSetAtoms(set_name))
                myfavorites=[]
                myroot = self.target_root
                dbs = self._filtered_trees[myroot]["dbs"]