commit:     be21bd79e63282e48d9202d18b89bfd132aa4b2f
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Tue Aug  6 03:38:10 2019 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Mon Aug 19 01:48:48 2019 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=be21bd79

repoman: support metadata/layout.conf restrict-allowed

Bug: https://bugs.gentoo.org/690786
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 lib/portage/repository/config.py                      | 8 +++++++-
 repoman/lib/repoman/modules/scan/metadata/restrict.py | 6 +++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/lib/portage/repository/config.py b/lib/portage/repository/config.py
index 2b2b1e151..46bb6b65a 100644
--- a/lib/portage/repository/config.py
+++ b/lib/portage/repository/config.py
@@ -103,6 +103,7 @@ class RepoConfig(object):
                'portage1_profiles_compat',
                'priority',
                'profile_formats',
+               'restrict_allowed',
                'sign_commit',
                'sign_manifest',
                'strict_misc_digests',
@@ -339,7 +340,7 @@ class RepoConfig(object):
                        for value in ('allow-missing-manifest',
                                'cache-formats',
                                'create-manifest', 'disable-manifest', 
'manifest-hashes',
-                               'manifest-required-hashes', 'profile-formats',
+                               'manifest-required-hashes', 'profile-formats', 
'restrict-allowed',
                                'sign-commit', 'sign-manifest', 
'thin-manifest', 'update-changelog'):
                                setattr(self, value.lower().replace("-", "_"), 
layout_data[value])
 
@@ -1142,6 +1143,11 @@ def parse_layout_conf(repo_location, repo_name=None):
        data['eapis-banned'] = tuple(layout_data.get('eapis-banned', 
'').split())
        data['eapis-deprecated'] = tuple(layout_data.get('eapis-deprecated', 
'').split())
 
+       restrict_allowed = layout_data.get('restrict-allowed')
+       if restrict_allowed is not None:
+               restrict_allowed = tuple(restrict_allowed.split())
+       data['restrict-allowed'] = restrict_allowed
+
        data['sign-commit'] = layout_data.get('sign-commits', 'false').lower() \
                == 'true'
 

diff --git a/repoman/lib/repoman/modules/scan/metadata/restrict.py 
b/repoman/lib/repoman/modules/scan/metadata/restrict.py
index 99784f231..f39128b24 100644
--- a/repoman/lib/repoman/modules/scan/metadata/restrict.py
+++ b/repoman/lib/repoman/modules/scan/metadata/restrict.py
@@ -18,6 +18,10 @@ class RestrictChecks(ScanBase):
                '''
                self.qatracker = kwargs.get('qatracker')
                self.repo_settings = kwargs.get('repo_settings')
+               if self.repo_settings.repo_config.restrict_allowed is None:
+                       self._restrict_allowed = 
self.repo_settings.qadata.valid_restrict
+               else:
+                       self._restrict_allowed = 
self.repo_settings.repo_config.restrict_allowed
 
        def check(self, **kwargs):
                xpkg = kwargs.get('xpkg')
@@ -35,7 +39,7 @@ class RestrictChecks(ScanBase):
 
                if myrestrict:
                        myrestrict = set(myrestrict)
-                       mybadrestrict = 
myrestrict.difference(self.repo_settings.qadata.valid_restrict)
+                       mybadrestrict = 
myrestrict.difference(self._restrict_allowed)
 
                        if mybadrestrict:
                                for mybad in mybadrestrict:

Reply via email to