Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 353225 - sys-apps/portage-2.1.9.35: repoman shows IUSE.undefined warning even when it's defined in eclass
Summary: sys-apps/portage-2.1.9.35: repoman shows IUSE.undefined warning even when it'...
Status: RESOLVED INVALID
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Repoman (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-01-30 12:33 UTC by Pacho Ramos
Modified: 2011-02-13 06:16 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Pacho Ramos gentoo-dev 2011-01-30 12:33:57 UTC
While committing latest emul packages I noticed repoman also warns due undefined USE as follows:

$ repoman full 

RepoMan scours the neighborhood...
  IUSE.undefined                1
   app-emulation/emul-linux-x86-baselibs/emul-linux-x86-baselibs-20110129.ebuild: IUSE is not defined

Note: use --include-dev (-d) to check dependencies for 'dev' profiles

RepoMan sez: "You're only giving me a partial QA payment?
              I'll take it this time, but I'm not happy."

Even with USE already defined in eclass (and working ok at merge time)

Thanks for your help :-)

Reproducible: Always
Comment 1 Sebastian Luther (few) 2011-01-30 18:18:17 UTC
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".
Comment 2 Pacho Ramos gentoo-dev 2011-01-30 18:33:41 UTC
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 :-/
Comment 3 Pacho Ramos gentoo-dev 2011-01-30 18:42:46 UTC
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)
Comment 4 Zac Medico gentoo-dev 2011-01-30 20:43:48 UTC
AFAIK this is a QA team policy, since there's no "technical" reason why IUSE needs to be initialized in the ebuild.
Comment 5 Sebastian Luther (few) 2011-02-13 06:12:41 UTC
Anything that needs to be done here?
Comment 6 Zac Medico gentoo-dev 2011-02-13 06:16:09 UTC
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.