Gentoo Archives: gentoo-portage-dev

From: Brian Dolbec <dolsen@g.o>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] [PATCH] repoman: fix KeyError triggered by fetch failure during manifest generation (bug 569942)
Date: Tue, 29 Dec 2015 20:19:10
Message-Id: 20151229121818.36fbdb84.dolsen@gentoo.org
In Reply to: [gentoo-portage-dev] [PATCH] repoman: fix KeyError triggered by fetch failure during manifest generation (bug 569942) by Zac Medico
1 On Sun, 27 Dec 2015 18:13:06 -0800
2 Zac Medico <zmedico@g.o> wrote:
3
4 > Fix Scanner not to override portdbapi._aux_cache_keys when generating
5 > manifests, since spawn_nofetch requires additional keys.
6 >
7 > Fixes: 39d81c514c33 ("[...]config.__getitem__(): Partially drop
8 > backward compatibility for nonexistent keys.") X-Gentoo-Bug: 569942
9 > X-Gentoo-Bug-url: https://bugs.gentoo.org/show_bug.cgi?id=569942
10 > ---
11 > pym/repoman/scanner.py | 10 +++++++---
12 > 1 file changed, 7 insertions(+), 3 deletions(-)
13 >
14 > diff --git a/pym/repoman/scanner.py b/pym/repoman/scanner.py
15 > index 9a87f65..d1c10d7 100644
16 > --- a/pym/repoman/scanner.py
17 > +++ b/pym/repoman/scanner.py
18 > @@ -93,9 +93,13 @@ class Scanner(object):
19 > self.portdb.settings =
20 > self.repo_settings.repoman_settings # We really only need to cache
21 > the metadata that's necessary for visibility # filtering. Anything
22 > else can be discarded to reduce memory consumption.
23 > - self.portdb._aux_cache_keys.clear()
24 > - self.portdb._aux_cache_keys.update(
25 > - ["EAPI", "IUSE", "KEYWORDS", "repository",
26 > "SLOT"])
27 > + if self.options.mode != "manifest" and
28 > self.options.digest != "y":
29 > + # Don't do this when generating manifests,
30 > since that uses
31 > + # additional keys if spawn_nofetch is called
32 > (RESTRICT and
33 > + # DEFINED_PHASES).
34 > + self.portdb._aux_cache_keys.clear()
35 > + self.portdb._aux_cache_keys.update(
36 > + ["EAPI", "IUSE", "KEYWORDS",
37 > "repository", "SLOT"])
38 > self.reposplit = myreporoot.split(os.path.sep)
39 > self.repolevel = len(self.reposplit)
40
41
42 Tested and confirmed working correctly now :)
43
44 Thanks. looks good
45 --
46 Brian Dolbec <dolsen>