diff --git a/bin/emerge b/bin/emerge index 55f25ea..c8180ce 100755 --- a/bin/emerge +++ b/bin/emerge @@ -679,7 +679,7 @@ class depgraph: "--getbinpkg" in self.myopts, "--getbinpkgonly" in self.myopts) - def create(self,mybigkey,myparent=None,addme=1,myuse=None,hard_dep=True,force_merge=False): + def create(self,mybigkey,myparent=None,addme=1,myuse=None,hard_dep=True,arg=None): """ Fills the digraph with nodes comprised of packages to merge. mybigkey is the package spec of the package to merge. @@ -744,10 +744,10 @@ class depgraph: 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 force_merge and \ - vardbapi.cpv_exists(mykey)): + ("selective" in self.myparams and \ + not arg and vardbapi.cpv_exists(mykey)): merging=0 - elif "selective" in self.myparams and not force_merge and vardbapi.cpv_exists(mykey): + elif "selective" in self.myparams and vardbapi.cpv_exists(mykey): merging=0 """ If we aren't merging, perform the --newuse check. @@ -886,7 +886,7 @@ class depgraph: print colorize("BAD", "\n*** You need to adjust PKGDIR to emerge this package.\n") sys.exit(1) if not self.create(["binary", myroot, mykey], - None, "--onlydeps" not in self.myopts, force_merge=("--noreplace" not in self.myopts)): + None, "--onlydeps" not in self.myopts): return (0,myfavorites) elif not "--oneshot" in self.myopts: myfavorites.append(mykey) @@ -909,7 +909,7 @@ class depgraph: raise portage_exception.PackageNotFound( "%s is not in a valid portage tree hierarchy or does not exist" % x) if not self.create(["ebuild", myroot, mykey], - None, "--onlydeps" not in self.myopts, force_merge=("--noreplace" not in self.myopts)): + None, "--onlydeps" not in self.myopts): return (0,myfavorites) elif not "--oneshot" in self.myopts: myfavorites.append(mykey) @@ -943,7 +943,11 @@ class depgraph: sys.stderr.flush() try: - self.mysd = self.select_dep(myroot, mykey, arg=x, force_merge=("--noreplace" not in self.myopts)) + if "--noreplace" in self.myopts: + arg = None + else: + arg = x + self.mysd = self.select_dep(myroot, mykey, arg=arg) except portage_exception.MissingSignature, e: portage.writemsg("\n\n!!! A missing gpg signature is preventing portage from calculating the\n") portage.writemsg("!!! required dependencies. This is a security feature enabled by the admin\n") @@ -996,7 +1000,7 @@ class depgraph: if curslot == myslot: return match - def select_dep(self,myroot,depstring,myparent=None,arg=None,myuse=None,raise_on_missing=False,soft_deps=False,force_merge=False): + def select_dep(self,myroot,depstring,myparent=None,arg=None,myuse=None,raise_on_missing=False,soft_deps=False): """ Given a depstring, create the depgraph such that all dependencies are satisfied. myroot = $ROOT from environment, where {R,P}DEPENDs are merged to. myparent = the node whose depstring is being passed in @@ -1187,14 +1191,14 @@ class depgraph: #we are a dependency, so we want to be unconditionally added hard_dep = not soft_deps and len(vardb.match(x)) == 0 if not self.create(selected_pkg[0:3], myparent, - myuse=selected_pkg[-1], hard_dep=hard_dep): + myuse=selected_pkg[-1], hard_dep=hard_dep, arg=arg): return 0 else: #if mysource is not set, then we are a command-line dependency and should not be added #if --onlydeps is specified. if not self.create(selected_pkg[0:3], myparent, addme=("--onlydeps" not in self.myopts), - myuse=selected_pkg[-1], force_merge=force_merge): + myuse=selected_pkg[-1], arg=arg): return 0 if "--debug" in self.myopts: