Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/package/ebuild/_config/, pym/portage/util/
Date: Tue, 21 Nov 2017 00:14:28
Message-Id: 1511223108.128c55ed57eea3f02b860a14a7e4f8cae109089a.zmedico@gentoo
1 commit: 128c55ed57eea3f02b860a14a7e4f8cae109089a
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Tue Nov 21 00:01:40 2017 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Tue Nov 21 00:11:48 2017 +0000
6 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=128c55ed
7
8 UseManager: reject atoms with USE flags (bug 607872)
9
10 Reject atoms with USE flags in package.* files since
11 they trigger infinite recursion in config.setcpv().
12
13 Bug: https://bugs.gentoo.org/607872
14
15 pym/portage/package/ebuild/_config/UseManager.py | 5 +++--
16 pym/portage/util/__init__.py | 6 +++++-
17 2 files changed, 8 insertions(+), 3 deletions(-)
18
19 diff --git a/pym/portage/package/ebuild/_config/UseManager.py b/pym/portage/package/ebuild/_config/UseManager.py
20 index 9ebd0f3ab..7302876ab 100644
21 --- a/pym/portage/package/ebuild/_config/UseManager.py
22 +++ b/pym/portage/package/ebuild/_config/UseManager.py
23 @@ -196,7 +196,8 @@ class UseManager(object):
24 file_dict = grabdict_package(file_name, recursive=recursive,
25 allow_wildcard=extended_syntax, allow_repo=extended_syntax,
26 verify_eapi=(not extended_syntax), eapi=eapi,
27 - eapi_default=eapi_default, allow_build_id=allow_build_id)
28 + eapi_default=eapi_default, allow_build_id=allow_build_id,
29 + allow_use=False)
30 if eapi is not None and eapi_filter is not None and not eapi_filter(eapi):
31 if file_dict:
32 writemsg(_("--- EAPI '%s' does not support '%s': '%s'\n") %
33 @@ -242,7 +243,7 @@ class UseManager(object):
34 os.path.join(location, file_name),
35 recursive=1, newlines=1, allow_wildcard=True,
36 allow_repo=True, verify_eapi=False,
37 - allow_build_id=True)
38 + allow_build_id=True, allow_use=False)
39 for k, v in pusedict.items():
40 l = []
41 use_expand_prefix = ''
42
43 diff --git a/pym/portage/util/__init__.py b/pym/portage/util/__init__.py
44 index 45710ba72..d63d5f156 100644
45 --- a/pym/portage/util/__init__.py
46 +++ b/pym/portage/util/__init__.py
47 @@ -429,7 +429,7 @@ def read_corresponding_eapi_file(filename, default="0"):
48 return eapi
49
50 def grabdict_package(myfilename, juststrings=0, recursive=0, newlines=0,
51 - allow_wildcard=False, allow_repo=False, allow_build_id=False,
52 + allow_wildcard=False, allow_repo=False, allow_build_id=False, allow_use=True,
53 verify_eapi=False, eapi=None, eapi_default="0"):
54 """ Does the same thing as grabdict except it validates keys
55 with isvalidatom()"""
56 @@ -458,6 +458,10 @@ def grabdict_package(myfilename, juststrings=0, recursive=0, newlines=0,
57 writemsg(_("--- Invalid atom in %s: %s\n") % (filename, e),
58 noiselevel=-1)
59 else:
60 + if not allow_use and k.use:
61 + writemsg(_("--- Atom is not allowed to have USE flag(s) in %s: %s\n") % (filename, k),
62 + noiselevel=-1)
63 + continue
64 atoms.setdefault(k, []).extend(v)
65
66 if juststrings: