Profiles use.mask file

The use.mask file can be used to mark USE flags as unavailable on a particular profile. This can be useful for various reasons:

Note that use.mask is a per-flag thing, not per package's use of a given flag. This is one of the reasons that USE flags must have a specific well defined purpose.

Updates to use.mask should be handled via the relevant arch team. Any additions are sorted chronologically, starting at the top of the file (underneath any comment header blocks).

See noblah USE flags for more discussion.

Stable USE masking and forcing

In addition to use.mask, use.force, package.use.mask and package.use.force, profiles support a stable variant of each of these files: use.stable.mask, use.stable.force, package.use.stable.mask and package.use.stable.force. They behave exactly like their counterparts, except that they only apply to packages which are being merged because of a stable keyword. Packages pulled in by a ~arch keyword are unaffected.

The typical use case is a USE flag whose dependency has not been stabilized yet. Listing the flag in package.use.stable.mask keeps it available to ~arch users, while preventing stable users from enabling something that cannot be satisfied on a stable system. This avoids having to mask the flag outright for everybody, or to rush the stabilization of the dependency.

As with the non-stable files, updates should be handled via the relevant arch team.