diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-04-03 16:45:56 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-04-03 16:45:56 +0000 |
commit | e61b4d4bc3058a80635724667106c4797f63d876 (patch) | |
tree | 4b5f9953494fe7647c5b1334b9e4dd2056b1b977 | |
parent | a2144da08c8521262cd1c8e936705493afd650f4 (diff) | |
download | portage-e61b4d4bc3058a80635724667106c4797f63d876.tar.gz portage-e61b4d4bc3058a80635724667106c4797f63d876.tar.bz2 portage-e61b4d4bc3058a80635724667106c4797f63d876.zip |
For old-style virtuals, we need to repeat the package.provided
check against the selected package.
svn path=/main/trunk/; revision=9685
-rw-r--r-- | pym/_emerge/__init__.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 51a576900..80ddca31d 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -2243,6 +2243,7 @@ class depgraph(object): while args: arg = args.pop() for atom in arg.set: + atom_cp = portage.dep_getkey(atom) try: pprovided = pprovideddict.get(portage.dep_getkey(atom)) if pprovided and portage.match_from_list(atom, pprovided): @@ -2266,6 +2267,17 @@ class depgraph(object): return 0, myfavorites self._missing_args.append((arg, atom)) continue + if atom_cp != pkg.cp: + # For old-style virtuals, we need to repeat the + # package.provided check against the selected package. + expanded_atom = atom.replace(atom_cp, pkg.cp) + pprovided = pprovideddict.get(pkg.cp) + if pprovided and \ + portage.match_from_list(expanded_atom, pprovided): + # A provided package has been + # specified on the command line. + self._pprovided_args.append((arg, atom)) + continue if pkg.installed and "selective" not in self.myparams: self._unsatisfied_deps_for_display.append( ((myroot, atom), {})) |