aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/_emerge/depgraph.py')
-rw-r--r--lib/_emerge/depgraph.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py
index a53eaaba9..63e7ad1ee 100644
--- a/lib/_emerge/depgraph.py
+++ b/lib/_emerge/depgraph.py
@@ -783,7 +783,7 @@ class depgraph:
ebuild_hash=ebuild_hash,
portdb=portdb,
repo_path=repo_path,
- settings=portdb.doebuild_settings,
+ settings=settings,
deallocate_config=deallocate_config,
)
proc.addExitListener(self._dynamic_deps_proc_exit(pkg, fake_vartree))
@@ -7640,6 +7640,19 @@ class depgraph:
continue
if (
+ empty
+ and pkg.installed
+ and not self._frozen_config.excluded_pkgs.findAtomForPackage(
+ pkg, modified_use=self._pkg_use_enabled(pkg)
+ )
+ ):
+ # With --emptytree option we assume no packages
+ # are installed, so we do not select them.
+ # But we allow installed packages to satisfy dependency requirements
+ # if they're explicitly excluded, so we allow them to be selected.
+ continue
+
+ if (
not pkg.installed
and self._frozen_config.excluded_pkgs.findAtomForPackage(
pkg, modified_use=self._pkg_use_enabled(pkg)