321 lines
13 KiB
HTML
321 lines
13 KiB
HTML
{% extends "basebuilddetailpage.html" %}
|
|
|
|
{% load projecttags %}
|
|
|
|
{% block title %} {{object.name}}_{{object.version}} - {{build.target_set.all|dictsort:"target"|join:", "}} {{build.machine}} - {{build.project.name}} - Toaster {% endblock %}
|
|
{% block localbreadcrumb %}
|
|
<li><a href="{% url 'recipes' build.pk %}">Recipes</a></li>
|
|
<li>{{object.name}}_{{object.version}} </li>
|
|
{% endblock %}
|
|
|
|
{% block pagedetailinfomain %}
|
|
|
|
<!-- Begin container -->
|
|
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div class="page-header build-data">
|
|
<h1>{{object.name}}_{{object.version}}</h1>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-8 tabbable">
|
|
<ul class="nav nav-tabs">
|
|
<li class="{{tab_states.1}}">
|
|
<a href="#information" data-toggle="tab">
|
|
<span class="glyphicon glyphicon-question-sign get-help" title="Build-related
|
|
information about the recipe"></span>
|
|
Recipe details
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="{% url "recipe_packages" build.pk object.id %}">
|
|
<span class="glyphicon glyphicon-question-sign get-help" title="The packaged
|
|
output resulting from building the recipe"></span>
|
|
Packages ({{package_count}})
|
|
</a>
|
|
</li>
|
|
<li class="{{tab_states.3}}">
|
|
<a href="#dependencies" data-toggle="tab">
|
|
<span class="glyphicon glyphicon-question-sign get-help" title="The recipe
|
|
build-time dependencies (i.e. other recipes)"></span>
|
|
Build dependencies ({{object.r_dependencies_recipe.all.count}})
|
|
</a>
|
|
</li>
|
|
<li class="{{tab_states.4}}">
|
|
<a href="#brought-in-by" data-toggle="tab">
|
|
<span class="glyphicon glyphicon-question-sign get-help" title="The recipe
|
|
build-time reverse dependencies (i.e. the recipes that
|
|
depend on this recipe)"></span>
|
|
Reverse build dependencies ({{object.r_dependencies_depends.all.count}})
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
<div class="tab-content">
|
|
<div class="tab-pane {{tab_states.1}}" id="information">
|
|
<dl class="dl-horizontal">
|
|
<dt>
|
|
<span class="glyphicon glyphicon-question-sign get-help" title="The name of
|
|
the layer providing the recipe"></span>
|
|
Layer
|
|
</dt>
|
|
<dd>{{layer.name}}</dd>
|
|
|
|
<dt>
|
|
<span class="glyphicon glyphicon-question-sign get-help" title="Path to the
|
|
recipe .bb file"></span>
|
|
Recipe file
|
|
</dt>
|
|
<dd><code>{{object.file_path}} {% if object.pathflags %}<i>({{object.pathflags}})</i>{% endif %}</code></dd>
|
|
<dt>
|
|
<span class="glyphicon glyphicon-question-sign get-help"
|
|
title="The Git branch of the layer providing the
|
|
recipe"></span>
|
|
Layer branch
|
|
</dt>
|
|
{% if layer_version.layer.local_source_dir %}
|
|
<dd>
|
|
<span class="text-muted">Not applicable</span>
|
|
<span class="glyphicon glyphicon-question-sign get-help" title="The source
|
|
code of {{layer_version.layer.name}} is not in a git repository
|
|
so there is no branch associated with it"></span>
|
|
</dd>
|
|
{% else %}
|
|
<dd>{{layer_version.branch}}</dd>
|
|
{% endif %}
|
|
<dt>
|
|
<span class="glyphicon glyphicon-question-sign get-help" title="The Git
|
|
commit of the layer providing the recipe"></span>
|
|
Layer commit
|
|
</dt>
|
|
{% if layer_version.layer.local_source_dir %}
|
|
<dd>
|
|
<span class="text-muted">Not applicable</span>
|
|
<span class="glyphicon glyphicon-question-sign get-help" title="The source
|
|
code of {{layer_version.layer.name}} is not in a git repository
|
|
so there is no commit associated with it"></span>
|
|
</dd>
|
|
{% else %}
|
|
<dd class="iscommit">{{layer_version.commit}}</dd>
|
|
{% endif %}
|
|
{% if object.provides_set.all %}
|
|
<dt>
|
|
<span class="glyphicon glyphicon-question-sign get-help"
|
|
title="A list of aliases by which a particular recipe can be known. The additional aliases are
|
|
synonyms for the recipe and can be useful satisfying dependencies of other recipes during
|
|
the build"></span>
|
|
PROVIDES
|
|
</dt>
|
|
<dd><code>{% for provider in object.provides_set.all %}{{ provider.name }} {% endfor %}</code></dd>
|
|
{% endif %}
|
|
</dl>
|
|
|
|
<h2 class="details">Tasks</h2>
|
|
{% if not tasks %}
|
|
<div class="alert alert-info">
|
|
<strong>{{object.name}}_{{object.version}}</strong> does not have any tasks in this build.
|
|
</div>
|
|
{% else %}
|
|
<div class="table-responsive">
|
|
<table class="table table-bordered table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>
|
|
<span class="glyphicon glyphicon-question-sign
|
|
get-help" title="The running sequence of each task
|
|
in the build"></span>
|
|
Order
|
|
</th>
|
|
<th>
|
|
<span class="glyphicon glyphicon-question-sign get-help" title="The name
|
|
of the task"></span>
|
|
Task
|
|
</th>
|
|
<th>
|
|
<span class="glyphicon glyphicon-question-sign get-help" title="This
|
|
value tells you if a task had to run (executed) in
|
|
order to generate the task output, or if the output was
|
|
provided by another task and therefore the task didn't need
|
|
to run (not executed)"></span>
|
|
Executed
|
|
</th>
|
|
<th>
|
|
<span class="glyphicon glyphicon-question-sign get-help" title="This
|
|
column tells you if 'executed' tasks succeeded or
|
|
failed. The column also tells you why 'not executed'
|
|
tasks did not need to run"></span>
|
|
Outcome
|
|
</th>
|
|
<th>
|
|
<span class="glyphicon glyphicon-question-sign get-help" title="This
|
|
column tells you if a task tried to restore output
|
|
from the <code>sstate-cache</code> directory or
|
|
mirrors, and reports the result: Succeeded, Failed or File
|
|
not in cache"></span>
|
|
Cache attempt
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
{% for task in tasks %}
|
|
|
|
<tr {{ task|task_color }} >
|
|
|
|
<td>{{task.order}}</td>
|
|
<td>
|
|
<a href="{% url "task" build.pk task.pk %}">{{task.task_name}}</a>
|
|
{% if task.get_description %}<span class="glyphicon
|
|
glyphicon-question-sign get-help hover-help"
|
|
title="{{task.get_description}}"></span>
|
|
{% endif %}
|
|
</td>
|
|
|
|
<td>{{task.get_executed_display}}</td>
|
|
|
|
<td>{{task.get_outcome_display}}
|
|
{% if task.outcome = task.OUTCOME_FAILED %}
|
|
<a href="{% url 'build_artifact' build.pk "tasklogfile" task.pk %}">
|
|
<span class="glyphicon glyphicon-download-alt
|
|
get-help" title="Download task log
|
|
file"></span>
|
|
</a>
|
|
{% endif %}
|
|
<i class="icon-question-sign get-help hover-help" title="{{task.get_outcome_help}}"></i>
|
|
</td>
|
|
<td>
|
|
{% ifnotequal task.sstate_result task.SSTATE_NA %}
|
|
{{task.get_sstate_result_display}}
|
|
{% endifnotequal %}
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
<div class="tab-pane {{tab_states.3}}" id="dependencies">
|
|
|
|
{% if not object.r_dependencies_recipe.all %}
|
|
<div class="alert alert-info">
|
|
<strong>{{object.name}}_{{object.version}}</strong> has no build dependencies.
|
|
</div>
|
|
{% else %}
|
|
<table class="table table-bordered table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>
|
|
Recipe
|
|
</th>
|
|
<th>
|
|
Version
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
{% for rr in object.r_dependencies_recipe.all|dictsort:"depends_on.name" %}
|
|
<tr>
|
|
<td><a href="{% url "recipe" build.pk rr.depends_on.pk %}">{{rr.depends_on.name}}</a>
|
|
{% if rr.via %}
|
|
<span class="text-muted">satisfied via <code class="text-muted">{{rr.via.name}}</code></span>
|
|
<span class="glyphicon glyphicon-question-sign get-help hover-help"
|
|
title="This dependency is satisfied by the PROVIDES value
|
|
<code>{{rr.via.name}}</code> in the <code>{{rr.depends_on.name}}</code> recipe"></span>
|
|
{% endif %}
|
|
</td>
|
|
<td>{{rr.depends_on.version}}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
|
|
</div>
|
|
<div class="tab-pane {{tab_states.4}}" id="brought-in-by">
|
|
|
|
{% if not object.r_dependencies_depends.all %}
|
|
<div class="alert alert-info">
|
|
<strong>{{object.name}}_{{object.version}}</strong> has no reverse build dependencies.
|
|
</div>
|
|
{% else %}
|
|
<table class="table table-bordered table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>
|
|
Recipe
|
|
</th>
|
|
<th>
|
|
Version
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
{% for rr in object.r_dependencies_depends.all|dictsort:"recipe.name" %}
|
|
<tr>
|
|
<td><a href="{% url "recipe" build.pk rr.recipe.pk %}">{{rr.recipe.name}}</a>
|
|
{% if rr.via %}
|
|
<span class="text-muted"> satisfied via <code class="text-muted">{{rr.via.name}}</code></span>
|
|
<span class="glyphicon glyphicon-question-sign get-help hover-help"
|
|
title="This dependency is satisfied by the PROVIDES value
|
|
<code>{{rr.via.name}}</code> in the <code>{{rr.depends_on.name}}</code> recipe"></i>
|
|
{% endif %}
|
|
</td>
|
|
<td>{{rr.recipe.version}}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-4">
|
|
<div class="well">
|
|
<h2>About {{object.name}}</h2>
|
|
<dl class="item-info">
|
|
{% if object.summary %}
|
|
<dt>Summary</dt>
|
|
<dd>{{object.summary}}</dd>
|
|
{% endif %}
|
|
{% if object.description %}
|
|
<dt>Description</dt>
|
|
<dd>{{object.description}}</dd>
|
|
{% endif %}
|
|
{% if object.homepage %}
|
|
<dt>Homepage</dt>
|
|
<dd><a href="{{object.homepage}}">{{object.homepage}}</a></dd>
|
|
{% endif %}
|
|
{% if object.bugtracker %}
|
|
<dt>Bugtracker</dt>
|
|
<dd><a href="{{object.bugtracker}}">{{object.bugtracker}}</a></dd>
|
|
{% endif %}
|
|
{% if object.section %}
|
|
<dt>
|
|
Section
|
|
<span class="glyphicon glyphicon-question-sign get-help" title="The section in which recipes should be categorized"></span>
|
|
</dt>
|
|
<dd>{{object.section}}</dd>
|
|
{% endif %}
|
|
{% if object.license %}
|
|
<dt>License</dt>
|
|
<dd>{{object.license}}</dd>
|
|
{% endif %}
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
|
|
</div> <!-- end row -->
|
|
|
|
{% endblock %}
|