commit:     f05d0864653e082bd60db67b52132c4ba6515339
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Mon Apr  3 01:50:45 2017 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Tue Apr  4 03:19:19 2017 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=f05d0864

EbuildBuild: eliminate call to digestgen (bug 614116)

Eliminate the call to digestgen in EbuildBuild._fetchonly_exit,
and make Scheduler._generate_digests call it earlier when
--fetchonly is enabled. This avoids event loop recursion which
is not compatible with asyncio (digestgen makes many calls that
can trigger event loop recursion).

X-Gentoo-bug: 614116
X-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=614116
Acked-by: Brian Dolbec <dolsen <AT> gentoo.org>

 pym/_emerge/EbuildBuild.py | 5 -----
 pym/_emerge/Scheduler.py   | 3 ---
 2 files changed, 8 deletions(-)

diff --git a/pym/_emerge/EbuildBuild.py b/pym/_emerge/EbuildBuild.py
index 001f55fff..11eb1c93e 100644
--- a/pym/_emerge/EbuildBuild.py
+++ b/pym/_emerge/EbuildBuild.py
@@ -21,7 +21,6 @@ from _emerge.TaskSequence import TaskSequence
 import portage
 from portage import _encodings, _unicode_decode, _unicode_encode, os
 from portage.package.ebuild.digestcheck import digestcheck
-from portage.package.ebuild.digestgen import digestgen
 from portage.package.ebuild.doebuild import _check_temp_dir
 from portage.package.ebuild._spawn_nofetch import spawn_nofetch
 
@@ -168,10 +167,6 @@ class EbuildBuild(CompositeTask):
                if self.returncode != os.EX_OK:
                        portdb = self.pkg.root_config.trees[self._tree].dbapi
                        spawn_nofetch(portdb, self._ebuild_path, 
settings=self.settings)
-               elif 'digest' in self.settings.features:
-                       if not digestgen(mysettings=self.settings,
-                               
myportdb=self.pkg.root_config.trees[self._tree].dbapi):
-                               self.returncode = 1
                self.wait()
 
        def _pre_clean_exit(self, pre_clean_phase):

diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py
index 58ff97139..079fac7b9 100644
--- a/pym/_emerge/Scheduler.py
+++ b/pym/_emerge/Scheduler.py
@@ -616,9 +616,6 @@ class Scheduler(PollScheduler):
                tasks are started.
                """
 
-               if '--fetchonly' in self.myopts:
-                       return os.EX_OK
-
                digest = '--digest' in self.myopts
                if not digest:
                        for pkgsettings in self.pkgsettings.values():

Reply via email to