diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-10-10 11:01:36 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-10-10 11:01:36 -0700 |
commit | f8e0c75e0952d04cb518ad0914ad440f1b43f52d (patch) | |
tree | cbaf8b62c650c418e7cdd5ad29ef45bd9b1f0458 /pym/_emerge/depgraph.py | |
parent | 1a00bb2a24bed702ab0703540130d19d669191d0 (diff) | |
download | portage-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.py | 13 |
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 |