aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/_emerge')
-rw-r--r--lib/_emerge/PollScheduler.py9
-rw-r--r--lib/_emerge/depgraph.py15
2 files changed, 22 insertions, 2 deletions
diff --git a/lib/_emerge/PollScheduler.py b/lib/_emerge/PollScheduler.py
index e5dffd8af..b5bfd20b7 100644
--- a/lib/_emerge/PollScheduler.py
+++ b/lib/_emerge/PollScheduler.py
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
import threading
@@ -39,6 +39,13 @@ class PollScheduler:
self._event_loop, is_background=self._is_background
)
+ @property
+ def _loop(self):
+ """
+ Returns the real underlying asyncio loop.
+ """
+ return self._event_loop._loop
+
def _is_background(self):
return self._background
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)