Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs

Dashboard
Notifications
Mark all as read
Q&A

What are IUSE flags?

+0
−0

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?

Why does this post require moderator attention?
You might want to add some details to your flag.
Why should this post be closed?

0 comment threads

1 answer

+0
−0

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"
Why does this post require moderator attention?
You might want to add some details to your flag.

0 comment threads

Sign up to answer this question »

This community is part of the Codidact network. We have other communities too — take a look!

You can also join us in chat!

Want to advertise this community? Use our templates!