User:Ris/tmp/RequiredUseFlags

this is very rough...

Certain packages require that one or more of their dependencies be built with specific USE flags; these are called required USE flags.

In this case, when trying to emerge such a package, Portage will sometimes state that a dependency will require a specific USE flag to be set or unset.

There are also packages for which activating a specific USE flag will trigger a required USE flag. An example could be a package that uses an audio backend, with a choice of two backends, but only one may be active at once.

The USE flag requirements must be met for Portage to be able to proceed with installation, and it is up to the user to set up USE flags in a way that satisfies the requirement in order to permit installation to continue.

When USE flags are required, Portage outputs a code, such as:

The following REQUIRED_USE flag constraints are unsatisfied: ? ()

The active USE flag that imposes a constraint comes first and is followed by a question mark ("?"), followed by the flag or flags that the activation of the first flag requires. Requirements can be chained, if flag X requires flag Y, that in turn requires flag Z.

As well as requiring the activation of certain flags, USE flag constraints can sometimes require the deactivation of a flag or flags. In this case, the flag that must be deactivated to satisfy the constraint is preceded by an exclamation mark ("!").

? ( ( !) !)

Required USE flags are not activated automatically, in order that the user choose explicitly what the desired behavior.