Proposal: I propose to make global scope call of 'use' and others lead to: - an e(qa)warn for existing EAPIs - a fatal error for new EAPIs. End of proposal :) See bug #566534 https://dev.gentoo.org/~ulm/pms/head/pms.html: 11.3.3.12 Use List Functions These functions provide behaviour based upon set or unset use flags. Ebuilds must not run any of these commands once the current phase function has returned. It is an error if an ebuild calls any of these functions in global scope. 'use' ... Currently portage does nothing to ebuilds using builtin 'use' functions in global scope. Rumors say paludis crashes on such ebuilds. ewarn/failure make such kind of breakage on portage improve long-term ebuild portability. Example ebuild: EAPI=5 use x86 && QA_PREBUILT="*" SLOT=0 works just fine: $ ebuild ghc-99999.ebuild clean install >>> Unpacking source... >>> Source unpacked in /tmp/portage/dev-lang/ghc-99999/work >>> Preparing source in /tmp/portage/dev-lang/ghc-99999/work ... >>> Source prepared. >>> Configuring source in /tmp/portage/dev-lang/ghc-99999/work ... >>> Source configured. >>> Compiling source in /tmp/portage/dev-lang/ghc-99999/work ... >>> Source compiled. >>> Test phase: dev-lang/ghc-99999 >>> Completed testing dev-lang/ghc-99999 >>> Install ghc-99999 into /tmp/portage/dev-lang/ghc-99999/image/ category dev-lang >>> Completed installing ghc-99999 into /tmp/portage/dev-lang/ghc-99999/image/ * Final size of build directory: 0 KiB * Final size of installed tree: 0 KiB Thanks!
PMS bans it in all EAPIs, and Portage respects the ban since EAPI 6.
Ok, i'll restate first point once again: I propose to make global scope call of 'use' and others lead to: - an e(qa)warn for existing EAPIs Rumors say paludis crashes on such ebuilds. ewarn/failure make such kind of breakage on portage improve long-term ebuild portability.
Now Portage completely bans them in all EAPIs. Enjoy.