What are IUSE flags?
Every Gentoo user knows USE flags. Occasionally I stumble upon IUSE flags, for example, man emerge
mention them in the description of an option:
--newuse, -N
...
USE flags may be toggled by your profile as well as your USE and package.use settings. If you would like to skip rebuilds for which disabled flags have been added to or removed from IUSE, see the related --changed-use option. If you would like to skip rebuilds for specific packages, see the --exclude option.
They are also mentioned (but not explained) in man portage
.
What are IUSE flags?
1 answer
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
(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.
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"
0 comment threads