Clean up and simplify depgraph params logic. This fixes bug #148893.
authorZac Medico <zmedico@gentoo.org>
Sun, 24 Sep 2006 23:45:07 +0000 (23:45 -0000)
committerZac Medico <zmedico@gentoo.org>
Sun, 24 Sep 2006 23:45:07 +0000 (23:45 -0000)
svn path=/main/trunk/; revision=4524

bin/emerge
pym/portage.py

index 22dff0d502db7f05709873356da11ed068146020..cc7cae83533bc2c4e976d9805c400b4ec11495eb 100755 (executable)
@@ -352,11 +352,13 @@ def create_depgraph_params(myopts, myaction):
        # recurse:   go into the dependencies
        # deep:      go into the dependencies of already merged packages
        # empty:     pretend nothing is merged
-       myparams = ["self", "recurse", "selective"]
+       myparams = ["recurse"]
        add=[]
        sub=[]
        if "--update" in myopts or myaction in ("system", "world"):
-               add.append("empty")
+               add.extend(["selective"])
+       if "--noreplace" in myopts:
+               add.extend(["selective"])
        if "--emptytree" in myopts:
                add.extend(["empty"])
                sub.extend(["selective"])
@@ -764,19 +766,9 @@ class depgraph:
                merging=1
                if addme:
                # this is where we add the node to the list of packages to merge
-                       if (arg and "--noreplace" not in self.myopts) or not myparent:
-                               """ If there is no parent, the package was specified on the
-                                   command line or is part of system/world sets.
-                                   In either case, if we aren't in 'self' mode (where package
-                                   is always included and if in 'selective' mode package is already
-                                   installed we skip merging it."""
-                               if "self" not in self.myparams or \
-                                       ("selective" in self.myparams and \
-                                       not (arg and "--noreplace" not in self.myopts) and \
-                                       vardbapi.cpv_exists(mykey)):
+                       if "selective" in self.myparams or not arg:
+                               if "empty" not in self.myparams and vardbapi.cpv_exists(mykey):
                                        merging=0
-                       elif "selective" in self.myparams and vardbapi.cpv_exists(mykey):
-                               merging=0
 
                        """ If we aren't merging, perform the --newuse check.
                            If the package has new iuse flags or different use flags then if
index 25377beb254f265e679d0581b9a5179adc28ed3a..e4d95747e6486c497c367c9b536e65d601dd991d 100644 (file)
@@ -3374,7 +3374,8 @@ def dep_zapdeps(unreduced, reduced, myroot, use_binaries=0, trees=None,
                global db
                trees = db
        writemsg("ZapDeps -- %s\n" % (use_binaries), 2)
-       if not reduced or unreduced == ["||"] or dep_eval(reduced):
+       if not reduced or unreduced == ["||"] or \
+               (not return_all_deps and dep_eval(reduced)):
                return []
 
        if unreduced[0] != "||":