diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-10-05 23:50:28 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-10-06 16:32:40 -0700 |
commit | 980e83339c9265e24e0e2c33c067c3aa3ba1a5b7 (patch) | |
tree | b8752cae7aef3287de84b9c993c7b1c69a20ffc4 | |
parent | d9396b733d27df2bd12cf5ebd427a09c907cde37 (diff) | |
download | portage-980e83339c9265e24e0e2c33c067c3aa3ba1a5b7.tar.gz portage-980e83339c9265e24e0e2c33c067c3aa3ba1a5b7.tar.bz2 portage-980e83339c9265e24e0e2c33c067c3aa3ba1a5b7.zip |
Fix _iter_match_pkgs installed multislot breakage
-rw-r--r-- | pym/_emerge/depgraph.py | 11 | ||||
-rw-r--r-- | pym/portage/dep/__init__.py | 7 |
2 files changed, 11 insertions, 7 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 7e99a24e8..e9d68a18e 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -2488,6 +2488,7 @@ class depgraph(object): # Therefore, assume that such SLOT dependencies are already # satisfied rather than forcing a rebuild. installed = pkg_type == 'installed' + ignore_installed_slot = False if installed and not cpv_list and atom.slot: for cpv in db.match(atom.cp): slot_available = False @@ -2507,14 +2508,10 @@ class depgraph(object): root_config, installed=installed) # Remove the slot from the atom and verify that # the package matches the resulting atom. - atom_without_slot = portage.dep.remove_slot(atom) - if atom.use: - atom_without_slot += str(atom.use) - atom_without_slot = portage.dep.Atom(atom_without_slot) if portage.match_from_list( - atom_without_slot, [inst_pkg]): - cpv_list = [inst_pkg.cpv] - break + atom.without_slot, [inst_pkg]): + yield inst_pkg + return if cpv_list: diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py index 3d7c554c4..268ebb643 100644 --- a/pym/portage/dep/__init__.py +++ b/pym/portage/dep/__init__.py @@ -1119,6 +1119,13 @@ class Atom(_atom_base): return Atom(self.replace(_repo_separator + self.repo, '', 1), allow_wildcard=True) + @property + def without_slot(self): + if self.slot is None: + return self + return Atom(self.replace(_slot_separator + self.slot, '', 1), + allow_repo=True, allow_wildcard=True) + def __setattr__(self, name, value): raise AttributeError("Atom instances are immutable", self.__class__, name, value) |