Currently parallel-fetch does not start until after pkg_pretend, so be have serial fetching of binary packages for pkg_pretend.
The Scheduler _run_pkg_pretend method can be converted to a coroutine, and executed after the call to self._add_prefetchers() in the _merge method.
Patch posted for review: https://archives.gentoo.org/gentoo-portage-dev/message/eb24cd85bdca83960093cec3d7d540db https://github.com/gentoo/portage/pull/625
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/portage.git/commit/?id=c7fa3f1eb1ce1ebc0d1219dacba555e1a29d5f22 commit c7fa3f1eb1ce1ebc0d1219dacba555e1a29d5f22 Author: Zac Medico <zmedico@gentoo.org> AuthorDate: 2020-09-20 00:32:57 +0000 Commit: Zac Medico <zmedico@gentoo.org> CommitDate: 2020-09-21 05:17:24 +0000 emerge: enable parallel-fetch during pkg_pretend (bug 710432) Execute pkg_pretend phases in a coroutine while parallel-fetch is running concurrently. When it's time to execute the pkg_pretend phase for a remote binary package, use a Scheduler _get_prefetcher method to get a running prefetcher if available, and otherwise start a new fetcher. Since pkg_pretend phases now run inside of the --keep-going retry loop, --keep-going is now able to recover from pkg_pretend failures, which fixes bug 404157. Bug: https://bugs.gentoo.org/404157 Bug: https://bugs.gentoo.org/710432 Signed-off-by: Zac Medico <zmedico@gentoo.org> lib/_emerge/Scheduler.py | 142 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 99 insertions(+), 43 deletions(-)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=862266358f01efa90c12d182d1f85a3014b80439 commit 862266358f01efa90c12d182d1f85a3014b80439 Author: Zac Medico <zmedico@gentoo.org> AuthorDate: 2020-09-21 05:35:06 +0000 Commit: Zac Medico <zmedico@gentoo.org> CommitDate: 2020-09-21 05:59:31 +0000 sys-apps/portage: Bump to version 3.0.8 #404157 emerge: --keep-going support pkg_pretend failures #644246 Add mercurial sync support #710432 emerge: Enable parallel-fetch during pkg_pretend #743115 emerge: Fix slot conflict backtracking to group similar missed updates into a single backtracking try #743631 emerge: Fix slot conflict backtracking to prefer choices that satisfy all dependencies Bug: https://bugs.gentoo.org/739718 Bug: https://bugs.gentoo.org/404157 Bug: https://bugs.gentoo.org/644246 Bug: https://bugs.gentoo.org/710432 Bug: https://bugs.gentoo.org/743115 Bug: https://bugs.gentoo.org/743631 Package-Manager: Portage-3.0.8, Repoman-3.0.1 Signed-off-by: Zac Medico <zmedico@gentoo.org> sys-apps/portage/Manifest | 1 + sys-apps/portage/portage-3.0.8.ebuild | 267 ++++++++++++++++++++++++++++++++++ 2 files changed, 268 insertions(+)