summaryrefslogtreecommitdiffstats
path: root/pym/portage/eapi.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-08-27 15:13:29 -0700
committerZac Medico <zmedico@gentoo.org>2012-08-27 15:13:29 -0700
commitac843c3df2210566b559dc57c5fb657e20933a58 (patch)
treede282b9f699d5917a0cd4929a2e11e1d6dc86894 /pym/portage/eapi.py
parentfbf6518406ddb79a999b7d1230046ad93adc445d (diff)
downloadportage-ac843c3df2210566b559dc57c5fb657e20933a58.tar.gz
portage-ac843c3df2210566b559dc57c5fb657e20933a58.tar.bz2
portage-ac843c3df2210566b559dc57c5fb657e20933a58.zip
EAPI 5: REQUIRED_USE at-most-one-of ?? operator
See bug #354219 and the PMS patch: http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=1c2dff2df2305aff88a734e3a2716de1bb69f3b6
Diffstat (limited to 'pym/portage/eapi.py')
-rw-r--r--pym/portage/eapi.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/pym/portage/eapi.py b/pym/portage/eapi.py
index a5ef30143..b701d02ab 100644
--- a/pym/portage/eapi.py
+++ b/pym/portage/eapi.py
@@ -56,6 +56,9 @@ def eapi_has_dosed_dohard(eapi):
def eapi_has_required_use(eapi):
return eapi not in ("0", "1", "2", "3")
+def eapi_has_required_use_at_most_one_of(eapi):
+ return eapi not in ("0", "1", "2", "3", "4", "4-python", "4-slot-abi")
+
def eapi_has_use_dep_defaults(eapi):
return eapi not in ("0", "1", "2", "3")
@@ -70,7 +73,7 @@ def eapi_allows_dots_in_use_flags(eapi):
_eapi_attrs = collections.namedtuple('_eapi_attrs',
'dots_in_PN dots_in_use_flags iuse_defaults '
- 'repo_deps required_use slot_abi slot_deps '
+ 'repo_deps required_use required_use_at_most_one_of slot_abi slot_deps '
'src_uri_arrows strong_blocks use_deps use_dep_defaults')
_eapi_attrs_cache = {}
@@ -97,6 +100,7 @@ def _get_eapi_attrs(eapi):
iuse_defaults = (eapi is None or eapi_has_iuse_defaults(eapi)),
repo_deps = (eapi is None or eapi_has_repo_deps(eapi)),
required_use = (eapi is None or eapi_has_required_use(eapi)),
+ required_use_at_most_one_of = (eapi is None or eapi_has_required_use_at_most_one_of(eapi)),
slot_deps = (eapi is None or eapi_has_slot_deps(eapi)),
slot_abi = (eapi is None or eapi_has_slot_abi(eapi)),
src_uri_arrows = (eapi is None or eapi_has_src_uri_arrows(eapi)),