ref-manual: Updated the section on viewing dependencies

Fixes [YOCTO #10131]

The section was renamed "Viewing Dependencies" for consistency.
The section was moved up to be the third item in the sub-section
list.  The section was extensively re-written to provide more
clarity and options for the user to view dependencies.

(From yocto-docs rev: d521c3aabe6ded105cde6f7b3563c85340f759fd)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Scott Rifenbark 2016-08-12 13:19:34 -07:00 committed by Richard Purdie
parent 1a1fc42e9f
commit 3db5ff6386
1 changed files with 87 additions and 20 deletions

View File

@ -234,6 +234,93 @@
</para>
</section>
<section id='usingpoky-viewing-dependencies'>
<title>Viewing Dependencies</title>
<para>
Sometimes it can be hard to see why BitBake wants to build other
recipes before the one you have specified.
Dependency information can help you understand recipe build order.
</para>
<para>
To generate dependency information for a recipe, run the following
command:
<literallayout class='monospaced'>
$ bitbake -g <replaceable>recipename</replaceable>
</literallayout>
This command writes the following files in the current directory:
<itemizedlist>
<listitem><para>
<filename>pn-buildlist</filename>: A list of
recipes/targets involved in building
<replaceable>recipename</replaceable>.
"Involved" here means that at least one task from the
recipe needs to run when building
<replaceable>recipename</replaceable> from scratch.
Targets that are in
<link linkend='var-ASSUME_PROVIDED'><filename>ASSUME_PROVIDED</filename></link>
are not listed.
</para></listitem>
<listitem><para>
<filename>pn-depends.dot</filename>: A graph showing
dependencies between build-time targets (recipes).
</para></listitem>
<listitem><para>
<filename>package-depends.dot</filename>: A graph showing
known dependencies between runtime targets.
</para></listitem>
<listitem><para>
<filename>task-depends.dot</filename>: A graph showing
dependencies between tasks.
</para></listitem>
</itemizedlist>
</para>
<para>
The graphs are in
<ulink url='https://en.wikipedia.org/wiki/DOT_%28graph_description_language%29'>DOT</ulink>
format and can be converted to images (e.g. using the "dot" tool
from
<ulink url='http://www.graphviz.org/'>Graphviz</ulink>.
<note>
<para>DOT files use a plain text format.
The graphs generated using the
<filename>bitbake -g</filename> command are often so large as
to be impossible to read without special pruning (e.g. with
Bitbake's <filename>-I</filename> option) and processing.
Despite the form and size of the files, the corresponding
<filename>.dot</filename> files can still be easy to read
and provide useful information.</para>
<para>As an example, the
<filename>task-depends.dot</filename> file contains lines such
as the following:
<literallayout class='monospaced'>
"libxslt.do_configure" -> "libxml2.do_populate_sysroot"
</literallayout>
The above example line reveals that the
<link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
task in <filename>libxslt</filename> depends on the
<link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
task in <filename>libxml2</filename>, which is a normal
<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
dependency between the two recipes.</para>
</note>
</para>
<para>
You can use a different method to view dependency information
by using the following command:
<literallayout class='monospaced'>
$ bitbake -g -u depexp <replaceable>recipename</replaceable>
</literallayout>
This command displays a GUI window from which you can view
build-time and runtime dependencies for the recipes involved in
building <replaceable>recipename</replaceable>.
</para>
</section>
<section id='usingpoky-debugging-taskrunning'>
<title>Running Specific Tasks</title>
@ -370,26 +457,6 @@
</section>
<section id='usingpoky-debugging-dependencies'>
<title>Dependency Graphs</title>
<para>
Sometimes it can be hard to see why BitBake wants to build
other packages before building a given package you have specified.
The <filename>bitbake -g <replaceable>targetname</replaceable></filename> command
creates the <filename>pn-buildlist</filename>,
<filename>pn-depends.dot</filename>,
<filename>package-depends.dot</filename>, and
<filename>task-depends.dot</filename> files in the current
directory.
These files show what will be built and the package and task
dependencies, which are useful for debugging problems.
You can use the
<filename>bitbake -g -u depexp <replaceable>targetname</replaceable></filename>
command to display the results in a more human-readable form.
</para>
</section>
<section id='usingpoky-debugging-bitbake'>
<title>General BitBake Problems</title>