prior to debug.eclass defining IUSE as IUSE="${IUSE} debug", it exposed an issue w/ useq's QA check. current useq QA check as of portage-2.0.51_pre10- if ! hasq "${u}" ${IUSE} && ! hasq "${u}" ${PORTAGE_ARCHLIST} selinux; then echo "QA Notice: USE Flag '${u}' not in IUSE for ${CATEGORY}/${PF}" >&2 fi Problem with this is that inherit shifts eclass IUSE definitions into E_IUSE. After the ebuild has been completely sourced, E_IUSE is merged into IUSE. So, inline use statements in the global scope complain that IUSE is lacking a use flag, despite the fact it exists- it has just been defined by the eclass (which is valid behaviour), but due to the use statement being in the global scope for the ebuild, the eclass's IUSE definitions haven't yet been merged. so... it should be if ! hasq "${u}" ${IUSE} ${E_IUSE} && ! hasq "${u}" ${PORTAGE_ARCHLIST} selinux; then ...etc. The modified check looks in the ebuilds defined IUSE, and in eclass defined IUSE statements. This eliminates the invalid QA complaints. If we're after complaining about statements in the global scope, fine, label the complaint as such- the current QA IUSE complaint about eclass defined IUSE is misleading.
pre13 is out, closing.