| 10.2 Eclass-defined Metadata Keys
| The IUSE, REQUIRED_USE, DEPEND, BDEPEND, RDEPEND and PDEPEND variables
| are handled specially when set by an eclass. They must be accumulated
| across eclasses, appending the value set by each eclass to the resulting
| value after the previous one is loaded. Then the eclass-defined value is
| appended to that defined by the ebuild. [...]
In https://blogs.gentoo.org/mgorny/2019/11/06/gentoo-eclass-design-pitfalls/, mgorny complains that PROPERTIES and RESTRICT are not in this list. Consider adding them in EAPI 8.
HOMEPAGE, SRC_URI, LICENSE, and KEYWORDS would be additional candidates, but I believe that setting a default value in an eclass and overriding it in the ebuild is a valid usage case for all of them.
(In reply to Ulrich Müller from comment #0)
> HOMEPAGE, SRC_URI, LICENSE, and KEYWORDS would be additional candidates, but
> I believe that setting a default value in an eclass and overriding it in the
> ebuild is a valid usage case for all of them.
The same could be argued about every metadata variable, in particular about dependencies. It's not like we aren't adding switches to a lot of eclasses to suppress or modify defaults.
For the record, I was only being the devil's advocate here.
Let's go with PROPERTIES and RESTRICT then.
The bug has been referenced in the following commit(s):
Author: Ulrich Müller <email@example.com>
AuthorDate: 2021-05-16 18:46:09 +0000
Commit: Ulrich Müller <firstname.lastname@example.org>
CommitDate: 2021-06-05 08:55:37 +0000
EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses
Signed-off-by: Ulrich Müller <email@example.com>
eapi-differences.tex | 4 ++++
eclasses.tex | 27 ++++++++++++++++++++++-----
2 files changed, 26 insertions(+), 5 deletions(-)