Post History
IUSE flags are simply the list of available and default USE flags for a package as defined by the Ebuild maintainer. Definition IUSE is defined from a developer's perspective in man 5 ebuild (...
Answer
#1: Initial revision
IUSE flags are simply the list of available and default USE flags for a package as defined by the Ebuild maintainer. ### Definition IUSE is defined from a developer's perspective in [`man 5 ebuild`](https://dev.gentoo.org/~zmedico/portage/doc/man/ebuild.5.html) (not `man ebuild`!): >**IUSE** > > This should be a list of any and all USE flags that are leveraged within your build script. The only USE flags that should not be listed here are arch related flags (see **KEYWORDS**). Beginning with **EAPI 1**, it is possible to prefix flags with + or - in order to create default settings that respectively enable or disable the corresponding USE flags. For details about **USE** flag stacking order, refer to the **USE_ORDER** variable in make.conf(5). Given the default **USE_ORDER** setting, negative IUSE default settings are effective only for negation of repo-level USE settings, since profile and user configuration settings override them. There is also a quick hint about [IUSE defaults in the Dev-manual](https://devmanual.gentoo.org/general-concepts/use-flags/index.html#iuse-defaults). ### Example In Ulogd's Ebuild, the `IUSE` flags line is: ``` $ grep IUSE /var/db/repos/gentoo/app-admin/ulogd/*.ebuild IUSE="dbi doc json mysql nfacct +nfct +nflog pcap postgres selinux sqlite ulog" ``` Those are exactly the USE flags available to emerge Ulogd with their respective defaults: ``` $ emerge -vp ulogd [ebuild N ] app-admin/ulogd-2.0.7-r2::gentoo USE="nfct nflog -dbi -doc -json -mysql -nfacct -pcap -postgres (-selinux) -sqlite -ulog" ```