diff options
author | Zac Medico <zmedico@gentoo.org> | 2013-05-23 21:43:11 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2013-05-23 21:43:11 -0700 |
commit | 7f164c6fd1c47c254b1e1df101edb680492c0c12 (patch) | |
tree | 4bcc86a40cbbe5b1cd85a5ba2ccf32a9924652f7 /pym | |
parent | man/emerge.1: --resume uses mtimedb (diff) | |
download | portage-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.py | 15 |
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' |