diff --git a/NEWS b/NEWS index b4b378e7a0..d56edc5a0e 100644 --- a/NEWS +++ b/NEWS @@ -13,6 +13,7 @@ Features: * emerge: Make bare --root-deps option install build-time dependencies to ROOT as well as / for all EAPIs rather than instead of / for EAPI 6 and below (bug #435066). +* Show length of merge-wait queue as part of the status display Bug fixes: * ebuild: Handle Bash 5.2's change in behavior which enables the shopt diff --git a/lib/_emerge/JobStatusDisplay.py b/lib/_emerge/JobStatusDisplay.py index 9cf3c41db4..f0a77d6e4d 100644 --- a/lib/_emerge/JobStatusDisplay.py +++ b/lib/_emerge/JobStatusDisplay.py @@ -38,6 +38,7 @@ def __init__(self, quiet=False, xterm_titles=True): object.__setattr__(self, "quiet", quiet) object.__setattr__(self, "xterm_titles", xterm_titles) object.__setattr__(self, "maxval", 0) + object.__setattr__(self, "merge_wait", 0) object.__setattr__(self, "merges", 0) object.__setattr__(self, "_changed", False) object.__setattr__(self, "_displayed", False) @@ -262,6 +263,13 @@ def _display_status(self): f.pop_style() f.add_literal_data(" failed") + if self.merge_wait: + f.add_literal_data(", ") + f.push_style(number_style) + f.add_literal_data(f"{self.merge_wait}") + f.pop_style() + f.add_literal_data(" merge wait") + padding = self._jobs_column_width - len(plain_output.getvalue()) if padding > 0: f.add_literal_data(padding * " ") diff --git a/lib/_emerge/Scheduler.py b/lib/_emerge/Scheduler.py index 614df9e783..445598f010 100644 --- a/lib/_emerge/Scheduler.py +++ b/lib/_emerge/Scheduler.py @@ -1557,6 +1557,7 @@ def _build_exit(self, build): self._deallocate_config(build.settings) self._jobs -= 1 self._status_display.running = self._jobs + self._status_display.merge_wait = len(self._merge_wait_queue) self._schedule() def _extract_exit(self, build): @@ -1834,6 +1835,8 @@ def _schedule_tasks(self): if task.is_system_pkg: break + self._status_display.merge_wait = len(self._merge_wait_queue) + if self._schedule_tasks_imp(): state_change += 1