1{% extends "basebuilddetailpage.html" %} 2 3{% load projecttags %} 4 5{% block title %} {{object.name}}_{{object.version}} - {{build.target_set.all|dictsort:"target"|join:", "}} {{build.machine}} - {{build.project.name}} - Toaster {% endblock %} 6{% block localbreadcrumb %} 7<li><a href="{% url 'recipes' build.pk %}">Recipes</a></li> 8<li>{{object.name}}_{{object.version}} </li> 9{% endblock %} 10 11{% block pagedetailinfomain %} 12 13<!-- Begin container --> 14 15<div class="row"> 16 <div class="col-md-12"> 17 <div class="page-header build-data"> 18 <h1>{{object.name}}_{{object.version}}</h1> 19 </div> 20 </div> 21</div> 22 23<div class="row"> 24 <div class="col-md-8 tabbable"> 25 <ul class="nav nav-tabs"> 26 <li class="{{tab_states.1}}"> 27 <a href="#information" data-toggle="tab"> 28 <span class="glyphicon glyphicon-question-sign get-help" title="Build-related 29 information about the recipe"></span> 30 Recipe details 31 </a> 32 </li> 33 <li> 34 <a href="{% url "recipe_packages" build.pk object.id %}"> 35 <span class="glyphicon glyphicon-question-sign get-help" title="The packaged 36 output resulting from building the recipe"></span> 37 Packages ({{package_count}}) 38 </a> 39 </li> 40 <li class="{{tab_states.3}}"> 41 <a href="#dependencies" data-toggle="tab"> 42 <span class="glyphicon glyphicon-question-sign get-help" title="The recipe 43 build-time dependencies (i.e. other recipes)"></span> 44 Build dependencies ({{object.r_dependencies_recipe.all.count}}) 45 </a> 46 </li> 47 <li class="{{tab_states.4}}"> 48 <a href="#brought-in-by" data-toggle="tab"> 49 <span class="glyphicon glyphicon-question-sign get-help" title="The recipe 50 build-time reverse dependencies (i.e. the recipes that 51 depend on this recipe)"></span> 52 Reverse build dependencies ({{object.r_dependencies_depends.all.count}}) 53 </a> 54 </li> 55 </ul> 56 <div class="tab-content"> 57 <div class="tab-pane {{tab_states.1}}" id="information"> 58 <dl class="dl-horizontal"> 59 <dt> 60 <span class="glyphicon glyphicon-question-sign get-help" title="The name of 61 the layer providing the recipe"></span> 62 Layer 63 </dt> 64 <dd>{{layer.name}}</dd> 65 66 <dt> 67 <span class="glyphicon glyphicon-question-sign get-help" title="Path to the 68 recipe .bb file"></span> 69 Recipe file 70 </dt> 71 <dd><code>{{object.file_path}} {% if object.pathflags %}<i>({{object.pathflags}})</i>{% endif %}</code></dd> 72 <dt> 73 <span class="glyphicon glyphicon-question-sign get-help" 74 title="The Git branch of the layer providing the 75 recipe"></span> 76 Layer branch 77 </dt> 78 {% if layer_version.layer.local_source_dir %} 79 <dd> 80 <span class="text-muted">Not applicable</span> 81 <span class="glyphicon glyphicon-question-sign get-help" title="The source 82 code of {{layer_version.layer.name}} is not in a git repository 83 so there is no branch associated with it"></span> 84 </dd> 85 {% else %} 86 <dd>{{layer_version.branch}}</dd> 87 {% endif %} 88 <dt> 89 <span class="glyphicon glyphicon-question-sign get-help" title="The Git 90 commit of the layer providing the recipe"></span> 91 Layer commit 92 </dt> 93 {% if layer_version.layer.local_source_dir %} 94 <dd> 95 <span class="text-muted">Not applicable</span> 96 <span class="glyphicon glyphicon-question-sign get-help" title="The source 97 code of {{layer_version.layer.name}} is not in a git repository 98 so there is no commit associated with it"></span> 99 </dd> 100 {% else %} 101 <dd class="iscommit">{{layer_version.commit}}</dd> 102 {% endif %} 103 {% if object.provides_set.all %} 104 <dt> 105 <span class="glyphicon glyphicon-question-sign get-help" 106 title="A list of aliases by which a particular recipe can be known. The additional aliases are 107 synonyms for the recipe and can be useful satisfying dependencies of other recipes during 108 the build"></span> 109 PROVIDES 110 </dt> 111 <dd><code>{% for provider in object.provides_set.all %}{{ provider.name }} {% endfor %}</code></dd> 112 {% endif %} 113 </dl> 114 115 <h2 class="details">Tasks</h2> 116 {% if not tasks %} 117 <div class="alert alert-info"> 118 <strong>{{object.name}}_{{object.version}}</strong> does not have any tasks in this build. 119 </div> 120 {% else %} 121 <div class="table-responsive"> 122 <table class="table table-bordered table-hover"> 123 <thead> 124 <tr> 125 <th> 126 <span class="glyphicon glyphicon-question-sign 127 get-help" title="The running sequence of each task 128 in the build"></span> 129 Order 130 </th> 131 <th> 132 <span class="glyphicon glyphicon-question-sign get-help" title="The name 133 of the task"></span> 134 Task 135 </th> 136 <th> 137 <span class="glyphicon glyphicon-question-sign get-help" title="This 138 value tells you if a task had to run (executed) in 139 order to generate the task output, or if the output was 140 provided by another task and therefore the task didn't need 141 to run (not executed)"></span> 142 Executed 143 </th> 144 <th> 145 <span class="glyphicon glyphicon-question-sign get-help" title="This 146 column tells you if 'executed' tasks succeeded or 147 failed. The column also tells you why 'not executed' 148 tasks did not need to run"></span> 149 Outcome 150 </th> 151 <th> 152 <span class="glyphicon glyphicon-question-sign get-help" title="This 153 column tells you if a task tried to restore output 154 from the <code>sstate-cache</code> directory or 155 mirrors, and reports the result: Succeeded, Failed or File 156 not in cache"></span> 157 Cache attempt 158 </th> 159 </tr> 160 </thead> 161 <tbody> 162 163 {% for task in tasks %} 164 165 <tr {{ task|task_color }} > 166 167 <td>{{task.order}}</td> 168 <td> 169 <a href="{% url "task" build.pk task.pk %}">{{task.task_name}}</a> 170 {% if task.get_description %}<span class="glyphicon 171 glyphicon-question-sign get-help hover-help" 172 title="{{task.get_description}}"></span> 173 {% endif %} 174 </td> 175 176 <td>{{task.get_executed_display}}</td> 177 178 <td>{{task.get_outcome_display}} 179 {% if task.outcome == task.OUTCOME_FAILED %} 180 <a href="{% url 'build_artifact' build.pk "tasklogfile" task.pk %}"> 181 <span class="glyphicon glyphicon-download-alt 182 get-help" title="Download task log 183 file"></span> 184 </a> 185 {% endif %} 186 <i class="icon-question-sign get-help hover-help" title="{{task.get_outcome_help}}"></i> 187 </td> 188 <td> 189 {% if task.sstate_result != task.SSTATE_NA %} 190 {{task.get_sstate_result_display}} 191 {% endif %} 192 </td> 193 194 </tr> 195 196 {% endfor %} 197 </tbody> 198 </table> 199 </div> 200 {% endif %} 201 </div> 202 <div class="tab-pane {{tab_states.3}}" id="dependencies"> 203 204 {% if not object.r_dependencies_recipe.all %} 205 <div class="alert alert-info"> 206 <strong>{{object.name}}_{{object.version}}</strong> has no build dependencies. 207 </div> 208 {% else %} 209 <table class="table table-bordered table-hover"> 210 <thead> 211 <tr> 212 <th> 213 Recipe 214 </th> 215 <th> 216 Version 217 </th> 218 </tr> 219 </thead> 220 <tbody> 221 222 {% for rr in object.r_dependencies_recipe.all|dictsort:"depends_on.name" %} 223 <tr> 224 <td><a href="{% url "recipe" build.pk rr.depends_on.pk %}">{{rr.depends_on.name}}</a> 225 {% if rr.via %} 226 <span class="text-muted">satisfied via <code class="text-muted">{{rr.via.name}}</code></span> 227 <span class="glyphicon glyphicon-question-sign get-help hover-help" 228 title="This dependency is satisfied by the PROVIDES value 229 <code>{{rr.via.name}}</code> in the <code>{{rr.depends_on.name}}</code> recipe"></span> 230 {% endif %} 231 </td> 232 <td>{{rr.depends_on.version}}</td> 233 </tr> 234 {% endfor %} 235 236 </tbody> 237 </table> 238 {% endif %} 239 240 </div> 241 <div class="tab-pane {{tab_states.4}}" id="brought-in-by"> 242 243 {% if not object.r_dependencies_depends.all %} 244 <div class="alert alert-info"> 245 <strong>{{object.name}}_{{object.version}}</strong> has no reverse build dependencies. 246 </div> 247 {% else %} 248 <table class="table table-bordered table-hover"> 249 <thead> 250 <tr> 251 <th> 252 Recipe 253 </th> 254 <th> 255 Version 256 </th> 257 </tr> 258 </thead> 259 <tbody> 260 261 {% for rr in object.r_dependencies_depends.all|dictsort:"recipe.name" %} 262 <tr> 263 <td><a href="{% url "recipe" build.pk rr.recipe.pk %}">{{rr.recipe.name}}</a> 264 {% if rr.via %} 265 <span class="text-muted"> satisfied via <code class="text-muted">{{rr.via.name}}</code></span> 266 <span class="glyphicon glyphicon-question-sign get-help hover-help" 267 title="This dependency is satisfied by the PROVIDES value 268 <code>{{rr.via.name}}</code> in the <code>{{rr.depends_on.name}}</code> recipe"></i> 269 {% endif %} 270 </td> 271 <td>{{rr.recipe.version}}</td> 272 </tr> 273 {% endfor %} 274 275 </tbody> 276 </table> 277 {% endif %} 278 279 </div> 280 </div> 281</div> 282 283<div class="col-md-4"> 284 <div class="well"> 285 <h2>About {{object.name}}</h2> 286 <dl class="item-info"> 287 {% if object.summary %} 288 <dt>Summary</dt> 289 <dd>{{object.summary}}</dd> 290 {% endif %} 291 {% if object.description %} 292 <dt>Description</dt> 293 <dd>{{object.description}}</dd> 294 {% endif %} 295 {% if object.homepage %} 296 <dt>Homepage</dt> 297 <dd><a href="{{object.homepage}}">{{object.homepage}}</a></dd> 298 {% endif %} 299 {% if object.bugtracker %} 300 <dt>Bugtracker</dt> 301 <dd><a href="{{object.bugtracker}}">{{object.bugtracker}}</a></dd> 302 {% endif %} 303 {% if object.section %} 304 <dt> 305 Section 306 <span class="glyphicon glyphicon-question-sign get-help" title="The section in which recipes should be categorized"></span> 307 </dt> 308 <dd>{{object.section}}</dd> 309 {% endif %} 310 {% if object.license %} 311 <dt>License</dt> 312 <dd>{{object.license}}</dd> 313 {% endif %} 314 </dl> 315 </div> 316</div> 317 318</div> <!-- end row --> 319 320{% endblock %} 321