summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-04-03 16:45:56 +0000
committerZac Medico <zmedico@gentoo.org>2008-04-03 16:45:56 +0000
commite61b4d4bc3058a80635724667106c4797f63d876 (patch)
tree4b5f9953494fe7647c5b1334b9e4dd2056b1b977
parenta2144da08c8521262cd1c8e936705493afd650f4 (diff)
downloadportage-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__.py12
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), {}))