Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-portage-dev@l.g.o
Cc: "Michał Górny" <mgorny@g.o>, Zac Medico <zmedico@g.o>
Subject: [gentoo-portage-dev] [PATCH] repoman: support metadata/layout.conf restrict-allowed
Date: Tue, 06 Aug 2019 03:42:03
Message-Id: 20190806034029.28125-1-zmedico@gentoo.org
1 Bug: https://bugs.gentoo.org/690786
2 Signed-off-by: Zac Medico <zmedico@g.o>
3 ---
4 lib/portage/repository/config.py | 8 +++++++-
5 repoman/lib/repoman/modules/scan/metadata/restrict.py | 6 +++++-
6 2 files changed, 12 insertions(+), 2 deletions(-)
7
8 diff --git a/lib/portage/repository/config.py b/lib/portage/repository/config.py
9 index 2b2b1e151..46bb6b65a 100644
10 --- a/lib/portage/repository/config.py
11 +++ b/lib/portage/repository/config.py
12 @@ -103,6 +103,7 @@ class RepoConfig(object):
13 'portage1_profiles_compat',
14 'priority',
15 'profile_formats',
16 + 'restrict_allowed',
17 'sign_commit',
18 'sign_manifest',
19 'strict_misc_digests',
20 @@ -339,7 +340,7 @@ class RepoConfig(object):
21 for value in ('allow-missing-manifest',
22 'cache-formats',
23 'create-manifest', 'disable-manifest', 'manifest-hashes',
24 - 'manifest-required-hashes', 'profile-formats',
25 + 'manifest-required-hashes', 'profile-formats', 'restrict-allowed',
26 'sign-commit', 'sign-manifest', 'thin-manifest', 'update-changelog'):
27 setattr(self, value.lower().replace("-", "_"), layout_data[value])
28
29 @@ -1142,6 +1143,11 @@ def parse_layout_conf(repo_location, repo_name=None):
30 data['eapis-banned'] = tuple(layout_data.get('eapis-banned', '').split())
31 data['eapis-deprecated'] = tuple(layout_data.get('eapis-deprecated', '').split())
32
33 + restrict_allowed = layout_data.get('restrict-allowed')
34 + if restrict_allowed is not None:
35 + restrict_allowed = tuple(restrict_allowed.split())
36 + data['restrict-allowed'] = restrict_allowed
37 +
38 data['sign-commit'] = layout_data.get('sign-commits', 'false').lower() \
39 == 'true'
40
41 diff --git a/repoman/lib/repoman/modules/scan/metadata/restrict.py b/repoman/lib/repoman/modules/scan/metadata/restrict.py
42 index 99784f231..f39128b24 100644
43 --- a/repoman/lib/repoman/modules/scan/metadata/restrict.py
44 +++ b/repoman/lib/repoman/modules/scan/metadata/restrict.py
45 @@ -18,6 +18,10 @@ class RestrictChecks(ScanBase):
46 '''
47 self.qatracker = kwargs.get('qatracker')
48 self.repo_settings = kwargs.get('repo_settings')
49 + if self.repo_settings.repo_config.restrict_allowed is None:
50 + self._restrict_allowed = self.repo_settings.qadata.valid_restrict
51 + else:
52 + self._restrict_allowed = self.repo_settings.repo_config.restrict_allowed
53
54 def check(self, **kwargs):
55 xpkg = kwargs.get('xpkg')
56 @@ -35,7 +39,7 @@ class RestrictChecks(ScanBase):
57
58 if myrestrict:
59 myrestrict = set(myrestrict)
60 - mybadrestrict = myrestrict.difference(self.repo_settings.qadata.valid_restrict)
61 + mybadrestrict = myrestrict.difference(self._restrict_allowed)
62
63 if mybadrestrict:
64 for mybad in mybadrestrict:
65 --
66 2.21.0