From e61b4d4bc3058a80635724667106c4797f63d876 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 3 Apr 2008 16:45:56 +0000 Subject: For old-style virtuals, we need to repeat the package.provided check against the selected package. svn path=/main/trunk/; revision=9685 --- pym/_emerge/__init__.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'pym') 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), {})) -- cgit v1.2.3-1-g7c22