keywords_check – parse the KEYWORDS variable and set up the status of the build.

Description

KEYWORDS is a list of words, which describe supported configuration for the current package.
The list has the following format:
KEYWORDS="~nottested ~badarch itworked goodone ..."
The words with ~ at the beginning contain flags, which mark unsupported conditions. Flag may be any word from AUSE. If any of flags, marked with ~, is met in current AUSE, status_set_skip method is called and build recieves SKIP status. At the next call of status_check(3) the build will be interrupted (and usually status_check is called shortly after). Putting the ~ word in KEYWORDS is also called masking the package for that word.

The words without modificators at the beginning represent restricting set of flags, which mark the working configuration. That means package works only when at least one of given restricting conditions is met. If none of given flags are met between words of AUSE or as a value of ANYARCH, ANYARCHMODE, ANYOS, ANYARCHCAP, ANYARCHENDIAN variables for current package, build is marked as skipped. Use this form with care, as it requires to explicitly mark the working configuration instead of separating the unneeded variants with known troubles.

If any of ANYARCH, ANYARCHMODE, ANYOS variables contains the value all, the build is passed, even if restricting set of flags has not been met. With the value all the build is still skipped, if given ~words have been met in AUSE.
Masking and restricting words can be listed in any order inside the variable.

Note the build is interrupted not in the described method, but in a separate status_check(3). That is for ability to perform some actions before actual exit.

When data from other packages is retrieved (reading their deps, for example), the method may be used to filter out non-actual ones. For that it just should be called after load_dump.

Writing

The method does not write to any files.

Variables

The method uses any-api(7) variables:
KEYWORDS
AUSE
ANYOS
ANYARCH
ANYARCHMODE
ANYARCHCAP
ANYARCHENDIAN

See also

any(1), any-map(7), any-api(7)