Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-portage-dev@l.g.o
Cc: Zac Medico <zmedico@g.o>
Subject: [gentoo-portage-dev] [PATCH 1/2] EbuildBuild: eliminate call to digestgen (bug 614116)
Date: Mon, 03 Apr 2017 02:39:58
Message-Id: 20170403023654.13089-1-zmedico@gentoo.org
1 Eliminate the call to digestgen in EbuildBuild._fetchonly_exit,
2 and make Scheduler._generate_digests call it earlier when
3 --fetchonly is enabled. This avoids event loop recursion which
4 is not compatible with asyncio (digestgen makes many calls that
5 can trigger event loop recursion).
6
7 X-Gentoo-bug: 614116
8 X-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=614116
9 ---
10 pym/_emerge/EbuildBuild.py | 5 -----
11 pym/_emerge/Scheduler.py | 3 ---
12 2 files changed, 8 deletions(-)
13
14 diff --git a/pym/_emerge/EbuildBuild.py b/pym/_emerge/EbuildBuild.py
15 index 001f55f..11eb1c9 100644
16 --- a/pym/_emerge/EbuildBuild.py
17 +++ b/pym/_emerge/EbuildBuild.py
18 @@ -21,7 +21,6 @@ from _emerge.TaskSequence import TaskSequence
19 import portage
20 from portage import _encodings, _unicode_decode, _unicode_encode, os
21 from portage.package.ebuild.digestcheck import digestcheck
22 -from portage.package.ebuild.digestgen import digestgen
23 from portage.package.ebuild.doebuild import _check_temp_dir
24 from portage.package.ebuild._spawn_nofetch import spawn_nofetch
25
26 @@ -168,10 +167,6 @@ class EbuildBuild(CompositeTask):
27 if self.returncode != os.EX_OK:
28 portdb = self.pkg.root_config.trees[self._tree].dbapi
29 spawn_nofetch(portdb, self._ebuild_path, settings=self.settings)
30 - elif 'digest' in self.settings.features:
31 - if not digestgen(mysettings=self.settings,
32 - myportdb=self.pkg.root_config.trees[self._tree].dbapi):
33 - self.returncode = 1
34 self.wait()
35
36 def _pre_clean_exit(self, pre_clean_phase):
37 diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py
38 index 58ff971..079fac7 100644
39 --- a/pym/_emerge/Scheduler.py
40 +++ b/pym/_emerge/Scheduler.py
41 @@ -616,9 +616,6 @@ class Scheduler(PollScheduler):
42 tasks are started.
43 """
44
45 - if '--fetchonly' in self.myopts:
46 - return os.EX_OK
47 -
48 digest = '--digest' in self.myopts
49 if not digest:
50 for pkgsettings in self.pkgsettings.values():
51 --
52 2.10.2

Replies