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


Reply via email to