Class ComponentRequires
source code
action.Action --+
|
action.RecipeAction --+
|
policy.BasePolicy --+
|
policy.Policy --+
|
ComponentRequires
- Known Subclasses:
-
derivedpolicy.ComponentRequires
NAME
r.ComponentRequires() - Create automatic
intra-package, inter-component dependencies
SYNOPSIS
r.ComponentRequires([{'componentname':
requiringComponentSet}] | [{'packagename':
{'componentname': requiringComponentSet}}])
DESCRIPTION
The r.ComponentRequires() policy creates automatic,
intra-package, inter-component dependencies, such as a corresponding
dependency between :lib and :data
components.
Changes are passed in using dictionaries, both for additions that
are specific to a specific package, and additions that apply generally
to all binary packages being cooked from one recipe. For general
changes that are not specific to a package, use this syntax:
r.ComponentRequires({'componentname':
requiringComponentSet}). For package-specific changes,
you need to specify packages as well as components:
r.ComponentRequires({'packagename':
'componentname': requiringComponentSet}).
By default, both :lib and :runtime
components (if they exist) require the :data component (if
it exists). If you call r.ComponentRequires({'data':
set(('lib',))}), you limit it so that :runtime
components will not require :data components for this
recipe.
In recipes that create more than one binary package, you may need to
limit your changes to a single binary package. To do so, use the
package-specific syntax. For example, to remove the
:runtime requirement on :data only for the
foo package, call: r.ComponentRequires({'foo':
'data': set(('lib',))}).
Note that r.ComponentRequires cannot require capability
flags; use r.Requires if you need to specify requirements,
including capability flags.
EXAMPLES
r.ComponentRequires({'openssl': {'config': set(('runtime',
'lib'))}})
Uses r.ComponentRequires to create dependencies in a
top-level manner for the :runtime and :lib
component sets to require the :config component for the
openssl package.
|
|
|
|
|
updateArgs(self,
*args,
**keywords)
The default way to update a class is to override any provided
keywords. |
source code
|
|
|
|
|
|
Inherited from policy.Policy:
compileFilters,
doProcess,
filterExpArgs,
filterExpression,
mtimeChanged,
policyException,
policyInclusion,
walkDir
Inherited from policy.BasePolicy:
dbg,
error,
info,
postInit,
postPolicy,
warn
Inherited from action.RecipeAction:
doAction,
doPrep,
doSuggestAutoBuildReqs,
init_error
Inherited from action.Action:
addArgs
|
|
|
bucket = 8
|
|
|
requires = (('PackageSpec', 7), ('ExcludeDirectories', 6))
|
|
Inherited from policy.Policy:
filetree,
invariantexceptions,
invariantinclusions,
invariantsubtrees,
keywords,
processUnmodified,
recursive,
rootdir
Inherited from policy.BasePolicy:
allowUnusedFilters
|
|
The default way to update a class is to override any provided
keywords. Subclasses which have the ability to provide more intelligent
handling can override this method. This method is invoked automatically
by recipe.py when a recipe references a policy object. It acts rather
like __init__ except that it can meaningfully be called more than once
for an object.
Some keyword arguments (at least exceptions and
subtrees) should be appended rather than replaced.
- Overrides:
policy.BasePolicy.updateArgs
- (inherited documentation)
|