diff options
author | Bill Traynor <wmat@alphatroop.com> | 2013-04-25 12:47:03 -0400 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-01-13 22:00:28 +0000 |
commit | 56a567a56d1c071618a62055318cfe45ea8158b1 (patch) | |
tree | 6e58b693077cc36af2efa69b233a78b724c95861 | |
parent | 3a003082d74a6971a222f0039dee4e4c4f385a01 (diff) | |
download | bitbake-56a567a56d1c071618a62055318cfe45ea8158b1.tar.gz |
user-manual-metadata: Copied over the Running a Task section.
Copied section 'Running a Task' from the YP Reference Manual.
Signed-off-by: Bill Traynor <wmat@alphatroop.com>
-rw-r--r-- | doc/user-manual/user-manual-metadata.xml | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/doc/user-manual/user-manual-metadata.xml b/doc/user-manual/user-manual-metadata.xml index 15e0d45a0..2f221550d 100644 --- a/doc/user-manual/user-manual-metadata.xml +++ b/doc/user-manual/user-manual-metadata.xml @@ -566,7 +566,75 @@ need to import them.</para> being run first. </para> </section> +<section id='ref-bitbake-runtask'> + <title>Running a Task</title> + <para> + Tasks can either be a shell task or a Python task. + For shell tasks, BitBake writes a shell script to + <filename>${WORKDIR}/temp/run.do_taskname.pid</filename> and then executes the script. + The generated shell script contains all the exported variables, and the shell functions + with all variables expanded. + Output from the shell script goes to the file <filename>${WORKDIR}/temp/log.do_taskname.pid</filename>. + Looking at the expanded shell functions in the run file and the output in the log files + is a useful debugging technique. + </para> + + <para> + For Python tasks, BitBake executes the task internally and logs information to the + controlling terminal. + Future versions of BitBake will write the functions to files similar to the way + shell tasks are handled. + Logging will be handled in a way similar to shell tasks as well. + </para> + + <para> + Once all the tasks have been completed BitBake exits. + </para> + + <para> + When running a task, BitBake tightly controls the execution environment + of the build tasks to make sure unwanted contamination from the build machine + cannot influence the build. + Consequently, if you do want something to get passed into the build + task's environment, you must take a few steps: + <orderedlist> + <listitem><para>Tell BitBake to load what you want from the environment + into the data store. + You can do so through the <filename>BB_ENV_EXTRAWHITE</filename> + variable. + For example, assume you want to prevent the build system from + accessing your <filename>$HOME/.ccache</filename> directory. + The following command tells BitBake to load + <filename>CCACHE_DIR</filename> from the environment into the data + store: + <literallayout class='monospaced'> + export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE CCACHE_DIR" + </literallayout></para></listitem> + <listitem><para>Tell BitBake to export what you have loaded into the + environment store to the task environment of every running task. + Loading something from the environment into the data store + (previous step) only makes it available in the datastore. + To export it to the task environment of every running task, + use a command similar to the following in your + <filename>local.conf</filename> or distro configuration file: + <literallayout class='monospaced'> + export CCACHE_DIR + </literallayout></para></listitem> + </orderedlist> + </para> + + <note> + A side effect of the previous steps is that BitBake records the variable + as a dependency of the build process in things like the shared state + checksums. + If doing so results in unnecessary rebuilds of tasks, you can whitelist the + variable so that the shared state code ignores the dependency when it creates + checksums. + For information on this process, see the <filename>BB_HASHBASE_WHITELIST</filename> + example in the "<link linkend='checksums'>Checksums (Signatures)</link>" section. + </note> + </section> <section> <title>Task Flags</title> <para>Tasks support a number of flags which control various |