summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/depgraph.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-10-10 11:01:36 -0700
committerZac Medico <zmedico@gentoo.org>2011-10-10 11:01:36 -0700
commitf8e0c75e0952d04cb518ad0914ad440f1b43f52d (patch)
treecbaf8b62c650c418e7cdd5ad29ef45bd9b1f0458 /pym/_emerge/depgraph.py
parent1a00bb2a24bed702ab0703540130d19d669191d0 (diff)
downloadportage-f8e0c75e0952d04cb518ad0914ad440f1b43f52d.tar.gz
portage-f8e0c75e0952d04cb518ad0914ad440f1b43f52d.tar.bz2
portage-f8e0c75e0952d04cb518ad0914ad440f1b43f52d.zip
Add emerge --dynamic-deps <y|n> option.
This makes it possible to disable the dynamic dependency updates that FakeVartree performs by default. WARNING: If --dynamic-deps is disabled, then it is necessary to ensure that an alternative method is used to handle package moves in dependencies of installed packages. Normally, this is handled by FEATURES="fixpackages", which is enabled by default and may be disabled via make.conf(5). Alternatively, in order to manually apply package moves, run `emaint --fix moveinst` after each emerge --sync operation (see emaint(1)).
Diffstat (limited to 'pym/_emerge/depgraph.py')
-rw-r--r--pym/_emerge/depgraph.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index a409bedac..ab62dc773 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -109,6 +109,7 @@ class _frozen_depgraph_config(object):
# All Package instances
self._pkg_cache = {}
self._highest_license_masked = {}
+ dynamic_deps = myopts.get("--dynamic-deps", "y") != "n"
for myroot in trees:
self.trees[myroot] = {}
# Create a RootConfig instance that references
@@ -122,7 +123,8 @@ class _frozen_depgraph_config(object):
self.trees[myroot]["vartree"] = \
FakeVartree(trees[myroot]["root_config"],
pkg_cache=self._pkg_cache,
- pkg_root_config=self.roots[myroot])
+ pkg_root_config=self.roots[myroot],
+ dynamic_deps=dynamic_deps)
self.pkgsettings[myroot] = portage.config(
clone=self.trees[myroot]["vartree"].settings)
@@ -514,6 +516,8 @@ class depgraph(object):
for myroot in self._frozen_config.trees:
+ dynamic_deps = self._dynamic_config.myparams.get(
+ "dynamic_deps", "y") != "n"
preload_installed_pkgs = \
"--nodeps" not in self._frozen_config.myopts
@@ -535,8 +539,11 @@ class depgraph(object):
for pkg in vardb:
self._spinner_update()
- # This triggers metadata updates via FakeVartree.
- vardb.aux_get(pkg.cpv, [])
+ if dynamic_deps:
+ # This causes FakeVartree to update the
+ # Package instance dependencies via
+ # PackageVirtualDbapi.aux_update()
+ vardb.aux_get(pkg.cpv, [])
fakedb.cpv_inject(pkg)
self._dynamic_config._vdb_loaded = True