Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-portage-dev@l.g.o
Cc: Zac Medico <zmedico@g.o>
Subject: [gentoo-portage-dev] [PATCH] Disallow package.provided in EAPI 7
Date: Mon, 26 Mar 2018 20:35:02
Message-Id: 20180326203427.4671-1-zmedico@gentoo.org
1 This is also implemented in portage-mgorny by the following commit:
2
3 https://github.com/mgorny/portage/commit/386cdb131c99b01541d53c8c894b2ec6534b6dea
4
5 Bug: https://bugs.gentoo.org/568884
6 ---
7 pym/portage/eapi.py | 5 +++++
8 pym/portage/package/ebuild/config.py | 3 ++-
9 2 files changed, 7 insertions(+), 1 deletion(-)
10
11 diff --git a/pym/portage/eapi.py b/pym/portage/eapi.py
12 index 5f0017b65..49c0e0ecd 100644
13 --- a/pym/portage/eapi.py
14 +++ b/pym/portage/eapi.py
15 @@ -104,6 +104,10 @@ def eapi_has_automatic_unpack_dependencies(eapi):
16 def eapi_has_hdepend(eapi):
17 return eapi in ("5-hdepend",)
18
19 +def eapi_allows_package_provided(eapi):
20 + return eapi not in ("0", "1", "2", "3", "4", "4-python", "4-slot-abi",
21 + "5", "5-progress", "6")
22 +
23 def eapi_has_bdepend(eapi):
24 return eapi not in ("0", "1", "2", "3", "4", "4-python", "4-slot-abi",
25 "5", "5-progress", "6")
26 @@ -148,6 +152,7 @@ def _get_eapi_attrs(eapi):
27 eapi = None
28
29 eapi_attrs = _eapi_attrs(
30 + allows_package_provided=(eapi is None or eapi_allows_package_provided(eapi)),
31 bdepend = (eapi is not None and eapi_has_bdepend(eapi)),
32 dots_in_PN = (eapi is None or eapi_allows_dots_in_PN(eapi)),
33 dots_in_use_flags = (eapi is None or eapi_allows_dots_in_use_flags(eapi)),
34 diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py
35 index 9d2b34a53..ea49839d8 100644
36 --- a/pym/portage/package/ebuild/config.py
37 +++ b/pym/portage/package/ebuild/config.py
38 @@ -803,7 +803,8 @@ class config(object):
39 pkgprovidedlines = [grabfile(
40 os.path.join(x.location, "package.provided"),
41 recursive=x.portage1_directories)
42 - for x in profiles_complex]
43 + for x in profiles_complex if _get_eapi_attrs(x.eapi).allows_package_provided]
44 +
45 pkgprovidedlines = stack_lists(pkgprovidedlines, incremental=1)
46 has_invalid_data = False
47 for x in range(len(pkgprovidedlines)-1, -1, -1):
48 --
49 2.13.6