root_dep_populate – create build context directory for a package and fill it with files of dependencies.

Description

The method finds suitable installed packages, which are needed for the build of the current one. That is detected by depend_resolve_current_atom(3).
If some dependencies had not been found, method calls die, which exits the process.

When all dependencies are resolved, each used package is taken and its dump is loaded in subshell, so the environment starts to contain the state and code, belonging to that other package. ROOT is preserved and points to the directory of the initial package. After that pkg_root(3) is called, which reflects the files of used package to the context directory of current package. Code for pkg_root is taken at that moment from used package, not from the current one. When scope of subshell ends, all data and code of initial package return back automatically. Then next package dump is loaded.

When all used packages are processed, ROOT contains all files, needed for the build of the current package, and doesn't contain files, undeclared by dependencies.

The method does nothing, when dataword staticdeproot is included in profile and is present in AUSE. The ROOT is populated directly with pkg_root(3) by each package in that mode, as ROOT is shared between all packages and available for writing.

Writing

The method writes to ROOT.

Variables

The method uses any-api(7) variables:
ROOT

The method uses engine variables:

static_ROOT

Interfaces

The method calls map interfaces:
-
depend_resolve_current_atom(3)
-
pkg_root(3)

Options

The following options affect the method:
any_static_root

See also