This is also implemented in portage-mgorny by the following commit: https://github.com/mgorny/portage/commit/386cdb131c99b01541d53c8c894b2ec6534b6dea
Bug: https://bugs.gentoo.org/568884 --- pym/portage/eapi.py | 5 +++++ pym/portage/package/ebuild/config.py | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pym/portage/eapi.py b/pym/portage/eapi.py index 5f0017b65..49c0e0ecd 100644 --- a/pym/portage/eapi.py +++ b/pym/portage/eapi.py @@ -104,6 +104,10 @@ def eapi_has_automatic_unpack_dependencies(eapi): def eapi_has_hdepend(eapi): return eapi in ("5-hdepend",) +def eapi_allows_package_provided(eapi): + return eapi not in ("0", "1", "2", "3", "4", "4-python", "4-slot-abi", + "5", "5-progress", "6") + def eapi_has_bdepend(eapi): return eapi not in ("0", "1", "2", "3", "4", "4-python", "4-slot-abi", "5", "5-progress", "6") @@ -148,6 +152,7 @@ def _get_eapi_attrs(eapi): eapi = None eapi_attrs = _eapi_attrs( + allows_package_provided=(eapi is None or eapi_allows_package_provided(eapi)), bdepend = (eapi is not None and eapi_has_bdepend(eapi)), dots_in_PN = (eapi is None or eapi_allows_dots_in_PN(eapi)), dots_in_use_flags = (eapi is None or eapi_allows_dots_in_use_flags(eapi)), diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py index 9d2b34a53..ea49839d8 100644 --- a/pym/portage/package/ebuild/config.py +++ b/pym/portage/package/ebuild/config.py @@ -803,7 +803,8 @@ class config(object): pkgprovidedlines = [grabfile( os.path.join(x.location, "package.provided"), recursive=x.portage1_directories) - for x in profiles_complex] + for x in profiles_complex if _get_eapi_attrs(x.eapi).allows_package_provided] + pkgprovidedlines = stack_lists(pkgprovidedlines, incremental=1) has_invalid_data = False for x in range(len(pkgprovidedlines)-1, -1, -1): -- 2.13.6