summaryrefslogtreecommitdiff
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2013-05-23 21:43:11 -0700
committerZac Medico <zmedico@gentoo.org>2013-05-23 21:43:11 -0700
commit7f164c6fd1c47c254b1e1df101edb680492c0c12 (patch)
tree4bcc86a40cbbe5b1cd85a5ba2ccf32a9924652f7 /pym
parentman/emerge.1: --resume uses mtimedb (diff)
downloadportage-7f164c6fd1c47c254b1e1df101edb680492c0c12.tar.gz
portage-7f164c6fd1c47c254b1e1df101edb680492c0c12.tar.bz2
portage-7f164c6fd1c47c254b1e1df101edb680492c0c12.zip
repoman: check for deprecated EAPIs, bug #470670v2.2.0_alpha177
This adds support for repo.eapi.banned (fatal) and repo.eapi.deprecated (warning) checks which are controlled by eapis-banned and eapis-deprecated settings in a repository's metadata/layout.conf.
Diffstat (limited to 'pym')
-rw-r--r--pym/portage/repository/config.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/pym/portage/repository/config.py b/pym/portage/repository/config.py
index 969fce43e..da8c36561 100644
--- a/pym/portage/repository/config.py
+++ b/pym/portage/repository/config.py
@@ -80,7 +80,8 @@ class RepoConfig(object):
'main_repo', 'manifest_hashes', 'masters', 'missing_repo_name',
'name', 'portage1_profiles', 'portage1_profiles_compat', 'priority',
'profile_formats', 'sign_commit', 'sign_manifest', 'sync',
- 'thin_manifest', 'update_changelog', 'user_location')
+ 'thin_manifest', 'update_changelog', 'user_location',
+ '_eapis_banned', '_eapis_deprecated')
def __init__(self, name, repo_opts):
"""Build a RepoConfig with options in repo_opts
@@ -198,6 +199,15 @@ class RepoConfig(object):
self.portage1_profiles_compat = not eapi_allows_directories_on_profile_level_and_repository_level(eapi) and \
layout_data['profile-formats'] == ('portage-1-compat',)
+ self._eapis_banned = frozenset(layout_data['eapis-banned'])
+ self._eapis_deprecated = frozenset(layout_data['eapis-deprecated'])
+
+ def eapi_is_banned(self, eapi):
+ return eapi in self._eapis_banned
+
+ def eapi_is_deprecated(self, eapi):
+ return eapi in self._eapis_deprecated
+
def iter_pregenerated_caches(self, auxdbkeys, readonly=True, force=False):
"""
Reads layout.conf cache-formats from left to right and yields cache
@@ -745,6 +755,9 @@ def parse_layout_conf(repo_location, repo_name=None):
data['allow-provide-virtual'] = \
layout_data.get('allow-provide-virtuals', 'false').lower() == 'true'
+ data['eapis-banned'] = tuple(layout_data.get('eapis-banned', '').split())
+ data['eapis-deprecated'] = tuple(layout_data.get('eapis-deprecated', '').split())
+
data['sign-commit'] = layout_data.get('sign-commits', 'false').lower() \
== 'true'