summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-04-03 17:02:19 +0000
committerZac Medico <zmedico@gentoo.org>2008-04-03 17:02:19 +0000
commit3c16767d68f6e28d5a536213c8fb4b7f1fc3251e (patch)
tree3c9e2fef195baf1815bfa96725beb36138754295 /bin
parente3ed2e222904594caed1f130f0a4ecce7a6fa389 (diff)
downloadportage-3c16767d68f6e28d5a536213c8fb4b7f1fc3251e.tar.gz
portage-3c16767d68f6e28d5a536213c8fb4b7f1fc3251e.tar.bz2
portage-3c16767d68f6e28d5a536213c8fb4b7f1fc3251e.zip
For old-style virtuals, we need to repeat the package.provided
check against the selected package. (trunk r9685) svn path=/main/branches/2.1.2/; revision=9686
Diffstat (limited to 'bin')
-rwxr-xr-xbin/emerge27
1 files changed, 25 insertions, 2 deletions
diff --git a/bin/emerge b/bin/emerge
index baba8283e..ed585388f 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -2059,7 +2059,9 @@ class depgraph:
self._set_atoms.add(myatom)
if not oneshot:
myfavorites.append(myatom)
+
for myarg, myatom in arg_atoms:
+ atom_cp = portage.dep_getkey(myatom)
pprovided = pkgsettings.pprovideddict.get(
portage.dep_getkey(myatom))
if pprovided and portage.match_from_list(myatom, pprovided):
@@ -2071,7 +2073,17 @@ class depgraph:
self._unsatisfied_deps_for_display.append(
((myroot, myatom), {"myparent":None}))
return False, myfavorites
-
+ if atom_cp != pkg.cp:
+ # For old-style virtuals, we need to repeat the
+ # package.provided check against the selected package.
+ expanded_atom = myatom.replace(atom_cp, pkg.cp)
+ pprovided = pkgsettings.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((myarg, myatom))
+ continue
if pkg.installed and "selective" not in self.myparams:
self._unsatisfied_deps_for_display.append(
((myroot, myatom), {"myparent":None}))
@@ -3081,6 +3093,7 @@ class depgraph:
self._set_atoms.add(myatom)
for mydep in mylist:
+ atom_cp = portage.dep_getkey(mydep)
pprovided = pkgsettings.pprovideddict.get(
portage.dep_getkey(mydep))
if pprovided and portage.match_from_list(mydep, pprovided):
@@ -3092,7 +3105,17 @@ class depgraph:
if not pkg:
self._missing_args.append(mydep)
continue
-
+ if atom_cp != pkg.cp:
+ # For old-style virtuals, we need to repeat the
+ # package.provided check against the selected package.
+ expanded_atom = mydep.replace(atom_cp, pkg.cp)
+ pprovided = pkgsettings.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((mydep, mydep))
+ continue
if pkg.installed and "selective" not in self.myparams:
# Previous behavior was to bail out in this case, but
# since the dep is satisfied by the installed package,