Summary: | sys-apps/portage-2.1.9.35: repoman shows IUSE.undefined warning even when it's defined in eclass | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Pacho Ramos <pacho> |
Component: | Repoman | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED INVALID | ||
Severity: | normal | ||
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Pacho Ramos
![]() PMS: <quote> 8.2 Mandatory Ebuild-defined Variables All ebuilds must define at least the following variables: [...] IUSE The USE flags used by the ebuild. Any eclass that works with USE flags must also set IUSE, listing only the variables used by that eclass. The package manager is responsible for merging these values. See section 12.1.1 for discussion on which values must be listed this variable. [...] If any of these variables are undefined, or if any of these variables are set to invalid values, the package manager’s behaviour is undefined; ideally, an error in one ebuild should not prevent operations upon other ebuilds or packages. </quote> I think you're required to set IUSE="" in the ebuild, which says "the ebuild doesn't add new use flags to IUSE on top of those defined in eclasses". But why does I need to specify it even empty in both (ebuild and eclass)? Looks like, for example, binutils ebuilds neither specify it in ebuilds as it's also specified in its eclass :-/ I must confess I dropped IUSE="" from emul ebuilds yesterday for trying the following eclass change locally: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/eclass/emul-linux-x86.eclass?r1=1.5&r2=1.6 When I applied that change to my locally installed eclass, I saw ebuilds where simply not showing new IUSE until I dropped "IUSE=""" entries. But when I have just tried to reproduce the behavior I have seen USE is shown even with IUSE="" :-/ (maybe because I have run emerge --sync) AFAIK this is a QA team policy, since there's no "technical" reason why IUSE needs to be initialized in the ebuild. Anything that needs to be done here? The docs already refer to "style guidelines", so I guess we can mark this as INVALID as long as the style guidelines remain the same. |