diff options
author | Zac Medico <zmedico@gentoo.org> | 2006-12-18 00:38:26 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2006-12-18 00:38:26 +0000 |
commit | 4f723d39bf88fc33d94b2d62e80a779994ae3a51 (patch) | |
tree | 4317490ac1e73edeec241e5c7836bbf8f800a172 | |
parent | c6bf311015cf9e1413170a6d112df6562cfbd7d2 (diff) | |
download | portage-4f723d39bf88fc33d94b2d62e80a779994ae3a51.tar.gz portage-4f723d39bf88fc33d94b2d62e80a779994ae3a51.tar.bz2 portage-4f723d39bf88fc33d94b2d62e80a779994ae3a51.zip |
Do some minor cleanup of the --depclean code.
svn path=/main/trunk/; revision=5312
-rwxr-xr-x | bin/emerge | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/bin/emerge b/bin/emerge index dfe4c1a34..2f5c35a16 100755 --- a/bin/emerge +++ b/bin/emerge @@ -4088,11 +4088,14 @@ def action_depclean(settings, trees, ldpath_mtimes, print warn_prefix + good("`emerge --update --newuse --deep world`") + " prior to depclean." xterm_titles = "notitles" not in settings.features - portdb = trees[settings["ROOT"]]["porttree"].dbapi - real_vartree = trees[settings["ROOT"]]["vartree"] - vartree = FakeVartree(real_vartree, portdb) - trees[settings["ROOT"]]["vartree"] = vartree - vardb = vartree.dbapi + myroot = settings["ROOT"] + dep_check_trees = {} + dep_check_trees[myroot] = trees[myroot].copy() + dep_check_trees[myroot]["vartree"] = \ + FakeVartree(trees[myroot]["vartree"], trees[myroot]["porttree"].dbapi) + vardb = dep_check_trees[myroot]["vartree"].dbapi + # Constrain dependency selection to the installed packages. + dep_check_trees[myroot]["porttree"] = dep_check_trees[myroot]["vartree"] syslist = getlist(settings, "system") worldlist = getlist(settings, "world") fakedb = portage.fakedbapi(settings=settings) @@ -4124,13 +4127,6 @@ def action_depclean(settings, trees, ldpath_mtimes, unresolveable = {} aux_keys = ["DEPEND", "RDEPEND", "PDEPEND"] - # Now that FakeVartree pulls metadata from the portdb and performs global - # updates when necessary, fake_vardb and vardb are equivalent. - fake_vardb = vardb - - # HACK: Ensure that installed packages are preferenced by dep_check(). - trees[settings["ROOT"]]["porttree"].dbapi = fake_vardb - while remaining_atoms: atom, parent, priority = remaining_atoms.pop() pkgs = vardb.match(atom) @@ -4145,7 +4141,7 @@ def action_depclean(settings, trees, ldpath_mtimes, continue spinner.update() fakedb.cpv_inject(pkg) - myaux = dict(izip(aux_keys, fake_vardb.aux_get(pkg, aux_keys))) + myaux = dict(izip(aux_keys, vardb.aux_get(pkg, aux_keys))) mydeps = [] if myopts.get("--with-bdeps", "y") == "y": mydeps.append((myaux["DEPEND"], soft)) @@ -4165,7 +4161,7 @@ def action_depclean(settings, trees, ldpath_mtimes, print "hard" success, atoms = portage.dep_check(depstr, None, settings, - myuse=usedef, trees=trees, myroot=settings["ROOT"]) + myuse=usedef, trees=dep_check_trees, myroot=myroot) if not success: print "\n\n" print "Error occurred while processing",pkg @@ -4178,10 +4174,6 @@ def action_depclean(settings, trees, ldpath_mtimes, for atom in atoms: remaining_atoms.append((atom, pkg, priority)) - # Restore the portdb back to normal (see fake_vardb above). - trees[settings["ROOT"]]["porttree"].dbapi = portdb - trees[settings["ROOT"]]["vartree"] = real_vartree - if "--quiet" not in myopts: print "\b\b... done!\n" |