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


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.


The method writes to ROOT.


The method uses any-api(7) variables:

The method uses engine variables:



The method calls map interfaces:


The following options affect the method:

See also