diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-02-17 19:44:39 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-02-17 19:44:39 +0000 |
commit | f9b7fbbee875834f13893f1683e7a146436f5a2a (patch) | |
tree | 534b6af0d677e5ba272aa54a0f4c8914fd8a7cc4 | |
parent | 0407594d2c5ffb99ba0e3cc4b5c1fb28b0c2c49f (diff) | |
download | portage-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
-rwxr-xr-x | bin/emerge | 42 |
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): |