summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-02-17 19:44:39 +0000
committerZac Medico <zmedico@gentoo.org>2007-02-17 19:44:39 +0000
commitf9b7fbbee875834f13893f1683e7a146436f5a2a (patch)
tree534b6af0d677e5ba272aa54a0f4c8914fd8a7cc4 /bin
parent0407594d2c5ffb99ba0e3cc4b5c1fb28b0c2c49f (diff)
downloadportage-f9b7fbbee875834f13893f1683e7a146436f5a2a.tar.gz
portage-f9b7fbbee875834f13893f1683e7a146436f5a2a.tar.bz2
portage-f9b7fbbee875834f13893f1683e7a146436f5a2a.zip
For bug #166939, make --nodeps work like a normal package for new-style virtuals. (trunk r5981:5982 and r5983:5984)
svn path=/main/branches/2.1.2/; revision=5985
Diffstat (limited to 'bin')
-rwxr-xr-xbin/emerge42
1 files changed, 25 insertions, 17 deletions
diff --git a/bin/emerge b/bin/emerge
index 33db36435..593528542 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -1517,23 +1517,31 @@ class depgraph:
#processing dependencies
""" Call portage.dep_check to evaluate the use? conditionals and make sure all
dependencies are satisfiable. """
- try:
- if myparent and p_status == "nomerge":
- portage_dep._dep_check_strict = False
- mycheck = portage.dep_check(depstring, None,
- pkgsettings, myuse=myuse,
- use_binaries=("--usepkgonly" in self.myopts),
- myroot=myroot, trees=self.trees)
- finally:
- portage_dep._dep_check_strict = True
-
- if not mycheck[0]:
- if myparent:
- show_invalid_depstring_notice(myparent, depstring, mycheck[1])
- else:
- sys.stderr.write("\n%s\n%s\n" % (depstring, mycheck[1]))
- return 0
- mymerge = mycheck[1]
+ if arg:
+ mymerge = [depstring]
+ pprovided = pkgsettings.pprovideddict.get(
+ portage.dep_getkey(depstring))
+ if pprovided and portage.match_from_list(depstring, pprovided):
+ mymerge = []
+ else:
+ try:
+ if myparent and p_status == "nomerge":
+ portage_dep._dep_check_strict = False
+ mycheck = portage.dep_check(depstring, None,
+ pkgsettings, myuse=myuse,
+ use_binaries=("--usepkgonly" in self.myopts),
+ myroot=myroot, trees=self.trees)
+ finally:
+ portage_dep._dep_check_strict = True
+
+ if not mycheck[0]:
+ if myparent:
+ show_invalid_depstring_notice(
+ myparent, depstring, mycheck[1])
+ else:
+ sys.stderr.write("\n%s\n%s\n" % (depstring, mycheck[1]))
+ return 0
+ mymerge = mycheck[1]
if not mymerge and arg and \
portage.best_match_to_list(depstring, self.args_keys):