mirror of
https://git.yoctoproject.org/poky
synced 2026-01-30 05:18:43 +01:00
Compare commits
79 Commits
nanbield-4
...
yocto-1.8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
90d943ae62 | ||
|
|
46669d3074 | ||
|
|
8f39398dbf | ||
|
|
be46715a9d | ||
|
|
f73d6752db | ||
|
|
33558eacc8 | ||
|
|
0db74ea8f4 | ||
|
|
08246fc7d4 | ||
|
|
d691916ef8 | ||
|
|
2f6a0659fe | ||
|
|
888fb56e97 | ||
|
|
1444bef551 | ||
|
|
d1df6afab2 | ||
|
|
faf19c5274 | ||
|
|
dee274305d | ||
|
|
20d2d2096a | ||
|
|
a274e39f0c | ||
|
|
dfaa74d34f | ||
|
|
d66075e595 | ||
|
|
5f46b438a8 | ||
|
|
674ffa8c68 | ||
|
|
9b6eee9f30 | ||
|
|
c636c22484 | ||
|
|
98ae8387e3 | ||
|
|
f96ffe74a9 | ||
|
|
66f1700481 | ||
|
|
d2d94d071c | ||
|
|
0b82198c8d | ||
|
|
cf475ab8ea | ||
|
|
4ef59fe419 | ||
|
|
64ccb07092 | ||
|
|
acf41de1fa | ||
|
|
3eabeef5d6 | ||
|
|
2f050af982 | ||
|
|
dbab9c0ba1 | ||
|
|
07fc680a4a | ||
|
|
8ab5bc3e1e | ||
|
|
59813630e5 | ||
|
|
ad7edfbde3 | ||
|
|
6fdf368f76 | ||
|
|
40db5ea7df | ||
|
|
56a4b1e1d4 | ||
|
|
80f3b20060 | ||
|
|
693ba0b14f | ||
|
|
e7b07d33c2 | ||
|
|
aa47ba52f0 | ||
|
|
00b2c3a5e4 | ||
|
|
23a0e97d2e | ||
|
|
0fb825c5e5 | ||
|
|
b0cb740fe0 | ||
|
|
6dd5e472eb | ||
|
|
3ff649953d | ||
|
|
8db54a9cfa | ||
|
|
77b1711afb | ||
|
|
1e551ec0c3 | ||
|
|
e643f3defe | ||
|
|
31d301a3f6 | ||
|
|
b803944ce6 | ||
|
|
64b75d4276 | ||
|
|
2ac2706bb7 | ||
|
|
a3360f2cc6 | ||
|
|
ef73b474fb | ||
|
|
b936350fc2 | ||
|
|
d81ee4d277 | ||
|
|
232ccf23cf | ||
|
|
a7e20761bd | ||
|
|
bc090aa673 | ||
|
|
6891ae6425 | ||
|
|
a842038bca | ||
|
|
7c0846cc5b | ||
|
|
47686dc42f | ||
|
|
938fa5cebf | ||
|
|
18661937e4 | ||
|
|
c1d31cf2c7 | ||
|
|
8b3d3e7c95 | ||
|
|
fe5b98019d | ||
|
|
184e00a36b | ||
|
|
8f1decb32b | ||
|
|
36ac2c6dfd |
@@ -352,19 +352,22 @@ Setup instructions
|
||||
------------------
|
||||
|
||||
You will need the following:
|
||||
* NFS root setup on your workstation
|
||||
* TFTP server installed on your workstation
|
||||
* RJ45 -> serial ("rollover") cable connected from your PC to the CONSOLE
|
||||
port on the board
|
||||
port on the device
|
||||
* Ethernet connected to the first ethernet port on the board
|
||||
|
||||
If using NFS as part of the setup process, you will also need:
|
||||
* NFS root setup on your workstation
|
||||
* TFTP server installed on your workstation (if fetching the kernel from
|
||||
TFTP, see below).
|
||||
|
||||
--- Preparation ---
|
||||
|
||||
Build an image (e.g. core-image-minimal) using "edgerouter" as the MACHINE.
|
||||
In the following instruction it is based on core-image-minimal. Another target
|
||||
may be similiar with it.
|
||||
|
||||
--- Booting from NFS root ---
|
||||
--- Booting from NFS root / kernel via TFTP ---
|
||||
|
||||
Load the kernel, and boot the system as follows:
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ from bb.ui.crumbs.hig.deployimagedialog import DeployImageDialog
|
||||
from bb.ui.crumbs.hig.imageselectiondialog import ImageSelectionDialog
|
||||
|
||||
# I put all the fs bitbake supported here. Need more test.
|
||||
DEPLOYABLE_IMAGE_TYPES = ["jffs2", "cramfs", "ext2", "ext3", "btrfs", "squashfs", "ubi", "vmdk"]
|
||||
DEPLOYABLE_IMAGE_TYPES = ["jffs2", "cramfs", "ext2", "ext3", "ext4", "btrfs", "squashfs", "ubi", "vmdk"]
|
||||
Title = "USB Image Writer"
|
||||
|
||||
class DeployWindow(gtk.Window):
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
__version__ = "1.25.0"
|
||||
__version__ = "1.26.0"
|
||||
|
||||
import sys
|
||||
if sys.version_info < (2, 7, 3):
|
||||
|
||||
@@ -1573,6 +1573,7 @@ class CookerExit(bb.event.Event):
|
||||
class CookerCollectFiles(object):
|
||||
def __init__(self, priorities):
|
||||
self.appendlist = {}
|
||||
self.bbappends = []
|
||||
self.appliedappendlist = []
|
||||
self.bbfile_config_priorities = priorities
|
||||
|
||||
@@ -1667,6 +1668,7 @@ class CookerCollectFiles(object):
|
||||
# Build a list of .bbappend files for each .bb file
|
||||
for f in bbappend:
|
||||
base = os.path.basename(f).replace('.bbappend', '.bb')
|
||||
self.bbappends.append((base, f))
|
||||
if not base in self.appendlist:
|
||||
self.appendlist[base] = []
|
||||
if f not in self.appendlist[base]:
|
||||
@@ -1692,11 +1694,11 @@ class CookerCollectFiles(object):
|
||||
"""
|
||||
filelist = []
|
||||
f = os.path.basename(fn)
|
||||
for bbappend in self.appendlist:
|
||||
for b in self.bbappends:
|
||||
(bbappend, filename) = b
|
||||
if (bbappend == f) or ('%' in bbappend and bbappend.startswith(f[:bbappend.index('%')])):
|
||||
self.appliedappendlist.append(bbappend)
|
||||
for filename in self.appendlist[bbappend]:
|
||||
filelist.append(filename)
|
||||
filelist.append(filename)
|
||||
return filelist
|
||||
|
||||
def collection_priorities(self, pkgfns, d):
|
||||
@@ -1716,10 +1718,10 @@ class CookerCollectFiles(object):
|
||||
unmatched.add(regex)
|
||||
|
||||
def findmatch(regex):
|
||||
for bbfile in self.appendlist:
|
||||
for append in self.appendlist[bbfile]:
|
||||
if regex.match(append):
|
||||
return True
|
||||
for b in self.bbappends:
|
||||
(bbfile, append) = b
|
||||
if regex.match(append):
|
||||
return True
|
||||
return False
|
||||
|
||||
for unmatch in unmatched.copy():
|
||||
|
||||
@@ -36,7 +36,7 @@ from bb import ui
|
||||
from bb import server
|
||||
from bb import cookerdata
|
||||
|
||||
__version__ = "1.25.0"
|
||||
__version__ = "1.26.0"
|
||||
logger = logging.getLogger("BitBake")
|
||||
|
||||
class BBMainException(bb.BBHandledException):
|
||||
|
||||
@@ -106,7 +106,7 @@ class BuildRequest(models.Model):
|
||||
(REQ_ARCHIVE, "archive"),
|
||||
)
|
||||
|
||||
search_allowed_fields = ("brtarget__target", "build__project__name", "build__machine")
|
||||
search_allowed_fields = ("brtarget__target", "build__project__name")
|
||||
|
||||
project = models.ForeignKey(Project)
|
||||
build = models.OneToOneField(Build, null = True) # TODO: toasterui should set this when Build is created
|
||||
|
||||
@@ -155,7 +155,7 @@ function layerDetailsPageInit (ctx) {
|
||||
if (!ctx.layerVersion.inCurrentPrj){
|
||||
if (ctx.numTargets > 0) {
|
||||
var text = " Add the "+ctx.layerVersion.name+" layer to your project "+
|
||||
"to enable these targets";
|
||||
"to enable these recipes";
|
||||
addRmLayerBtn.text(text);
|
||||
addRmLayerBtn.prepend("<span class=\"icon-plus\"></span>");
|
||||
} else {
|
||||
|
||||
@@ -100,9 +100,9 @@
|
||||
<p><a href="{% if project.id %}{% url 'project' project.id %}{% endif %}">View project configuration</a></p>
|
||||
</div>
|
||||
<li id="targets-form">
|
||||
<h6>Target(s):</h6>
|
||||
<h6>Recipe(s):</h6>
|
||||
<form>
|
||||
<input type="text" class="input-xlarge" id="build-target-input" placeholder="Type a target name" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead" />
|
||||
<input type="text" class="input-xlarge" id="build-target-input" placeholder="Type a recipe name" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead" />
|
||||
<div>
|
||||
<a class="btn btn-primary" id="build-button" disabled="disabled" data-project-id="{{project.id}}">Build</a>
|
||||
</div>
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
<a data-toggle="tab" href="#information" id="details-tab">Layer details</a>
|
||||
</li>
|
||||
<li>
|
||||
<a data-toggle="tab" href="#targets" id="targets-tab">Targets ({{total_targets}})</a>
|
||||
<a data-toggle="tab" href="#targets" id="targets-tab">Recipes ({{total_targets}})</a>
|
||||
</li>
|
||||
<li>
|
||||
<a data-toggle="tab" href="#machines" id="machines-tab">Machines ({{total_machines}})</a>
|
||||
@@ -190,8 +190,8 @@
|
||||
<div name="targets" id="targets" class="tab-pane">
|
||||
{% if total_targets == 0 %}
|
||||
<div class="alert alert-info">
|
||||
<p>Toaster does not have target information for the <strong> {{layerversion.layer.name}} </strong> layer.</p>
|
||||
<p>Toaster learns about layers when you build them. If this layer provides any targets, they will be listed here after you build the <strong> {{layerversion.layer.name}} </strong> layer.</p>
|
||||
<p>Toaster does not have recipe information for the <strong> {{layerversion.layer.name}} </strong> layer.</p>
|
||||
<p>Toaster learns about layers when you build them. If this layer provides any recipes, they will be listed here after you build the <strong> {{layerversion.layer.name}} </strong> layer.</p>
|
||||
</div>
|
||||
{% else %}
|
||||
|
||||
@@ -210,7 +210,7 @@
|
||||
<form class="navbar-search input-append pull-left">
|
||||
{% endif %}
|
||||
|
||||
<input type="text" id="target-search" name="targets_search" placeholder="Search targets" class="input-xlarge" value="{{request.GET.targets_search}}">
|
||||
<input type="text" id="target-search" name="targets_search" placeholder="Search recipes" class="input-xlarge" value="{{request.GET.targets_search}}">
|
||||
{% if request.GET.targets_search %}
|
||||
<a class="add-on btn target-search-clear">
|
||||
<i class="icon-remove"></i>
|
||||
@@ -253,17 +253,17 @@
|
||||
<tr>
|
||||
<th>
|
||||
<i class="icon-question-sign get-help" title="Information about a single piece of software, including where to download the source, configuration options, how to compile the source files and how to package the compiled output"></i>
|
||||
Target
|
||||
Recipe
|
||||
{% if request.GET.targets_search %}
|
||||
<span class="badge badge-info">{{targets.paginator.count}}</span>
|
||||
{% endif %}
|
||||
</th>
|
||||
<th>
|
||||
<i class="icon-question-sign get-help" title="The recipe version and revision"></i>
|
||||
Target version
|
||||
Recipe version
|
||||
</th>
|
||||
<th class="span4">Summary</th>
|
||||
<th class="span2">Build target</th>
|
||||
<th class="span2">Build recipe</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -277,7 +277,7 @@
|
||||
</td>
|
||||
<td>{{target.version}}</td>
|
||||
<td>{{target.summary}}</td>
|
||||
<td><button class="btn btn-block build-target-btn" data-target-name="{{target.name}}" {% if layer_in_project == 0 %}disabled="disabled"{% endif %} >Build target</button></td>
|
||||
<td><button class="btn btn-block build-target-btn" data-target-name="{{target.name}}" {% if layer_in_project == 0 %}disabled="disabled"{% endif %} >Build recipe</button></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
||||
@@ -104,15 +104,15 @@ vim: expandtab tabstop=2
|
||||
<div class="well">
|
||||
<form class="build-form" ng-submit="buildNamedTarget()">
|
||||
<div class="input-append controls">
|
||||
<input type="text" class="huge input-xxlarge" placeholder="Type the target(s) you want to build" autocomplete="off" ng-model="targetName" typeahead="e.name for e in getAutocompleteSuggestions('targets', $viewValue)|filter:$viewValue" typeahead-template-url="suggestion_details" ng-disabled="!layers.length"/>
|
||||
<input type="text" class="huge input-xxlarge" placeholder="Type the recipe(s) you want to build" autocomplete="off" ng-model="targetName" typeahead="e.name for e in getAutocompleteSuggestions('targets', $viewValue)|filter:$viewValue" typeahead-template-url="suggestion_details" ng-disabled="!layers.length"/>
|
||||
<button type="submit" class="btn btn-large btn-primary" ng-disabled="!targetName.length">
|
||||
Build
|
||||
</button>
|
||||
</div>
|
||||
<i class="icon-question-sign get-help get-help-blue" title="Type the name of one or more targets you want to build, separated by a space. You can also specify a task by appending a semicolon and a task name to a target name, like so: <code>core-image-minimal:do_build</code>"></i>
|
||||
<i class="icon-question-sign get-help get-help-blue" title="Type the name of one or more recipes you want to build, separated by a space. You can also specify a task by appending a semicolon and a task name to a recipe name, like so: <code>core-image-minimal:do_build</code>"></i>
|
||||
<p>
|
||||
<a href="{% url 'all-targets' %}">View all compatible targets</a>
|
||||
<i class="icon-question-sign get-help get-help-blue heading-help" title="View all the targets you can build with the release selected for this project, which is {[project.release.desc]}"></i>
|
||||
<a href="{% url 'all-targets' %}">View all compatible recipes</a>
|
||||
<i class="icon-question-sign get-help get-help-blue heading-help" title="View all the recipes you can build with the release selected for this project, which is {[project.release.desc]}"></i>
|
||||
{% if completedbuilds.count %}
|
||||
| <a href="{% url 'projectbuilds' project.id %}">View all project builds ({{completedbuilds.count}})</a>
|
||||
{% endif %}
|
||||
@@ -309,24 +309,24 @@ vim: expandtab tabstop=2
|
||||
<!-- project targets -->
|
||||
<div id="target-container" class="well well-transparent span4">
|
||||
<h3>
|
||||
Targets
|
||||
<i class="icon-question-sign get-help heading-help" title="What you build, often a recipe producing a root file system file (an image). Something like <code>core-image-minimal</code> or <code>core-image-sato</code>"></i>
|
||||
Recipes
|
||||
<i class="icon-question-sign get-help heading-help" title="What you build, often an image recipe that produces a root file system file. Something like <code>core-image-minimal</code> or <code>core-image-sato</code>"></i>
|
||||
</h3>
|
||||
<form ng-submit="buildNamedTarget()">
|
||||
<div class="input-append">
|
||||
<input type="text" class="input-xlarge" placeholder="Type the target(s) you want to build" autocomplete="off" data-minLength="1" ng-model="targetName1" typeahead="e.name for e in getAutocompleteSuggestions('targets', $viewValue)|filter:$viewValue" typeahead-template-url="suggestion_details" ng-disabled="!layers.length">
|
||||
<input type="text" class="input-xlarge" placeholder="Type the recipe(s) you want to build" autocomplete="off" data-minLength="1" ng-model="targetName1" typeahead="e.name for e in getAutocompleteSuggestions('targets', $viewValue)|filter:$viewValue" typeahead-template-url="suggestion_details" ng-disabled="!layers.length">
|
||||
<button type="submit" class="btn btn-primary" ng-disabled="!targetName1.length">
|
||||
Build </button>
|
||||
</div>
|
||||
{% csrf_token %}
|
||||
</form>
|
||||
<p>
|
||||
<a href="{% url 'all-targets' %}">View all compatible targets</a>
|
||||
<i class="icon-question-sign get-help" title="View all the targets you can build with the release selected for this project, which is {[project.release.desc]}"></i>
|
||||
<a href="{% url 'all-targets' %}">View all compatible recipes</a>
|
||||
<i class="icon-question-sign get-help" title="View all the recipes you can build with the release selected for this project, which is {[project.release.desc]}"></i>
|
||||
</p>
|
||||
<div ng-if="frequenttargets.length">
|
||||
<h4 class="air">
|
||||
Most built targets
|
||||
Most built recipes
|
||||
</h4>
|
||||
<ul class="unstyled configuration-list {[mutedtargets]}">
|
||||
<li ng-repeat="t in frequenttargets">
|
||||
@@ -335,7 +335,7 @@ vim: expandtab tabstop=2
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
<button class="btn btn-large btn-primary" ng-disabled="enableBuildSelectedTargets()" ng-click="buildSelectedTargets()">Build selected targets</button>
|
||||
<button class="btn btn-large btn-primary" ng-disabled="enableBuildSelectedTargets()" ng-click="buildSelectedTargets()">Build selected recipes</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,20 +3,20 @@
|
||||
{% load humanize %}
|
||||
|
||||
{% block localbreadcrumb %}
|
||||
<li>All compatible targets</li>
|
||||
<li>All compatible recipes</li>
|
||||
{% endblock %}
|
||||
|
||||
{% block projectinfomain %}
|
||||
<div class="page-header">
|
||||
<h1>
|
||||
{% if request.GET.filter and objects.paginator.count > 0 or request.GET.search and objects.paginator.count > 0 %}
|
||||
{{objects.paginator.count}} target{{objects.paginator.count|pluralize}} found
|
||||
{{objects.paginator.count}} recipe{{objects.paginator.count|pluralize}} found
|
||||
{% elif request.GET.filter and objects.paginator.count == 0 or request.GET.search and objects.paginator.count == 0 %}
|
||||
No targets found
|
||||
No recipes found
|
||||
{%else%}
|
||||
All compatible targets
|
||||
All compatible recipes
|
||||
{%endif%}
|
||||
<i class="icon-question-sign get-help heading-help" title="This page lists all the targets compatible with the release selected for this project, which is {{project.release.description}}"></i>
|
||||
<i class="icon-question-sign get-help heading-help" title="This page lists all the recipes compatible with the release selected for this project, which is {{project.release.description}}"></i>
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
@@ -31,13 +31,13 @@
|
||||
<form class="no-results input-append" id="searchform">
|
||||
<input id="search" name="search" class="input-xxlarge" type="text" value="{{request.GET.search}}"/>{% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" class="add-on btn" tabindex="-1"><i class="icon-remove"></i></a>{% endif %}
|
||||
<button class="btn" type="submit" value="Search">Search</button>
|
||||
<button class="btn btn-link" onclick="javascript:$('#search').val('');searchform.submit()">Show all targets</button>
|
||||
<button class="btn btn-link" onclick="javascript:$('#search').val('');searchform.submit()">Show all recipes</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="alert alert-info lead">
|
||||
<p>Toaster has no target information. To generate target information you can:</p>
|
||||
<p>Toaster has no recipe information. To generate recipe information you can:</p>
|
||||
<ul>
|
||||
<li><a href="http://www.yoctoproject.org/docs/latest/toaster-manual/toaster-manual.html#layer-source">Configure a layer source</a></li>
|
||||
<li><a href="{% url 'importlayer' %}">Import a layer</a>, then run a build</li>
|
||||
@@ -78,7 +78,7 @@
|
||||
<td class="add-layer" value="{{o.pk}}" layerversion_id="{{o.preffered_layerversion.pk}}">
|
||||
<div id="layer-tooltip-{{o.pk}}" style="display: none; font-size: 11px; line-height: 1.3;" class="tooltip-inner">layer was modified</div>
|
||||
<a href="{% url 'project' project.id %}#/targetbuild={{o.name}}" id="target-build-{{o.pk}}" class="btn btn-block remove-layer" style="display:none;" >
|
||||
Build target
|
||||
Build recipe
|
||||
</a>
|
||||
<a id="layer-add-{{o.pk}}" class="btn btn-block" style="display:none;" href="javascript:layerAdd({{o.preffered_layerversion.pk}}, '{{o.preffered_layerversion.layer.name}}', '{%url 'layerdetails' o.preffered_layerversion.pk%}', {{o.pk}})" >
|
||||
<i class="icon-plus"></i>
|
||||
|
||||
@@ -334,8 +334,14 @@ def _add_daterange_context(queryset_all, request, daterange_list):
|
||||
context_date['daterange_filter']=''
|
||||
for key in daterange_list:
|
||||
queryset_key = queryset_all.order_by(key)
|
||||
context_date['dateMin_'+key]=timezone.localtime(getattr(queryset_key.first(),key)).strftime("%d/%m/%Y")
|
||||
context_date['dateMax_'+key]=timezone.localtime(getattr(queryset_key.last(),key)).strftime("%d/%m/%Y")
|
||||
try:
|
||||
context_date['dateMin_'+key]=timezone.localtime(getattr(queryset_key.first(),key)).strftime("%d/%m/%Y")
|
||||
except AttributeError:
|
||||
context_date['dateMin_'+key]=timezone.localtime(timezone.now())
|
||||
try:
|
||||
context_date['dateMax_'+key]=timezone.localtime(getattr(queryset_key.last(),key)).strftime("%d/%m/%Y")
|
||||
except AttributeError:
|
||||
context_date['dateMax_'+key]=timezone.localtime(timezone.now())
|
||||
return context_date,today_begin,yesterday_begin
|
||||
|
||||
|
||||
@@ -1999,8 +2005,8 @@ if toastermain.settings.MANAGED:
|
||||
]
|
||||
}
|
||||
},
|
||||
{'name': 'Target', # default column, disabled box, with just the name in the list
|
||||
'qhelp': "This is the build target or build targets (i.e. one or more recipes or image recipes)",
|
||||
{'name': 'Recipe', # default column, disabled box, with just the name in the list
|
||||
'qhelp': "What you built (i.e. one or more recipes or image recipes)",
|
||||
'orderfield': _get_toggle_order(request, "brtarget__target"),
|
||||
'ordericon':_get_toggle_order_icon(request, "brtarget__target"),
|
||||
},
|
||||
@@ -2878,15 +2884,15 @@ if toastermain.settings.MANAGED:
|
||||
context = {
|
||||
'projectlayerset' : jsonfilter(map(lambda x: x.layercommit.id, prj.projectlayer_set.all().select_related("layercommit"))),
|
||||
'objects' : target_info,
|
||||
'objectname' : "targets",
|
||||
'objectname' : "recipes",
|
||||
'default_orderby' : 'name:+',
|
||||
|
||||
'tablecols' : [
|
||||
{ 'name': 'Target',
|
||||
{ 'name': 'Recipe',
|
||||
'orderfield': _get_toggle_order(request, "name"),
|
||||
'ordericon' : _get_toggle_order_icon(request, "name"),
|
||||
},
|
||||
{ 'name': 'Target version',
|
||||
{ 'name': 'Recipe version',
|
||||
'dclass': 'span2',
|
||||
},
|
||||
{ 'name': 'Description',
|
||||
@@ -3039,7 +3045,7 @@ if toastermain.settings.MANAGED:
|
||||
|
||||
vars_fstypes = {
|
||||
'btrfs','cpio','cpio.gz','cpio.lz4','cpio.lzma','cpio.xz','cramfs',
|
||||
'elf','ext2','ext2.bz2','ext2.gz','ext2.lzma', 'ext3','ext3.gz','hddimg',
|
||||
'elf','ext2','ext2.bz2','ext2.gz','ext2.lzma', 'ext4', 'ext4.gz', 'ext3','ext3.gz','hddimg',
|
||||
'iso','jffs2','jffs2.sum','squashfs','squashfs-lzo','squashfs-xz','tar.bz2',
|
||||
'tar.lz4','tar.xz','tartar.gz','ubi','ubifs','vmdk'
|
||||
}
|
||||
@@ -3310,8 +3316,8 @@ if toastermain.settings.MANAGED:
|
||||
{'name': 'Last build outcome', 'clclass': 'loutcome',
|
||||
'qhelp': "Tells you if the last project build completed successfully or failed",
|
||||
},
|
||||
{'name': 'Target', 'clclass': 'ltarget',
|
||||
'qhelp': "The last project build target(s): one or more recipes or image recipes",
|
||||
{'name': 'Recipe', 'clclass': 'ltarget',
|
||||
'qhelp': "The last recipe that was built in this project",
|
||||
},
|
||||
{'name': 'Errors', 'clclass': 'lerrors',
|
||||
'qhelp': "How many errors were encountered during the last project build (if any)",
|
||||
@@ -3425,8 +3431,8 @@ else:
|
||||
]
|
||||
}
|
||||
},
|
||||
{'name': 'Target', # default column, disabled box, with just the name in the list
|
||||
'qhelp': "This is the build target or build targets (i.e. one or more recipes or image recipes)",
|
||||
{'name': 'Recipe', # default column, disabled box, with just the name in the list
|
||||
'qhelp': "What you built (i.e. one or more recipes or image recipes)",
|
||||
'orderfield': _get_toggle_order(request, "target__target"),
|
||||
'ordericon':_get_toggle_order_icon(request, "target__target"),
|
||||
},
|
||||
|
||||
@@ -241,7 +241,9 @@ TARFILES = mega-manual.html mega-style.css figures/yocto-environment.png \
|
||||
figures/analysis-for-package-splitting.png \
|
||||
figures/image-generation.png \
|
||||
figures/sdk-generation.png figures/recipe-workflow.png \
|
||||
figures/build-workspace-directory.png figures/mega-title.png
|
||||
figures/build-workspace-directory.png figures/mega-title.png \
|
||||
figures/toaster-title.png figures/hosted-service.png \
|
||||
figures/simple-configuration.png
|
||||
endif
|
||||
|
||||
MANUALS = $(DOC)/$(DOC).html
|
||||
@@ -328,7 +330,9 @@ endif
|
||||
ifeq ($(DOC),toaster-manual)
|
||||
XSLTOPTS = --xinclude
|
||||
ALLPREQ = html tarball
|
||||
TARFILES = toaster-manual.html toaster-manual-style.css figures/toaster-title.png
|
||||
TARFILES = toaster-manual.html toaster-manual-style.css \
|
||||
figures/toaster-title.png figures/simple-configuration.png \
|
||||
figures/hosted-service.png
|
||||
MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf
|
||||
FIGURES = figures
|
||||
STYLESHEET = $(DOC)/*.css
|
||||
@@ -338,7 +342,7 @@ endif
|
||||
##
|
||||
# These URI should be rewritten by your distribution's xml catalog to
|
||||
# match your locally installed XSL stylesheets.
|
||||
XSL_BASE_URI = http://docbook.sourceforge.net/release/xsl/current
|
||||
XSL_BASE_URI = http://docbook.sourceforge.net/release/xsl/1.76.1
|
||||
XSL_XHTML_URI = $(XSL_BASE_URI)/xhtml/docbook.xsl
|
||||
|
||||
all: $(ALLPREQ)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
version="1.0">
|
||||
|
||||
<xsl:import
|
||||
href="http://docbook.sourceforge.net/release/xsl/current/eclipse/eclipse3.xsl" />
|
||||
href="http://docbook.sourceforge.net/release/xsl/1.76.1/eclipse/eclipse3.xsl" />
|
||||
|
||||
<xsl:param name="chunker.output.indent" select="'yes'"/>
|
||||
<xsl:param name="chunk.quietly" select="1"/>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
version="1.0">
|
||||
|
||||
<xsl:import
|
||||
href="http://docbook.sourceforge.net/release/xsl/current/eclipse/eclipse3.xsl" />
|
||||
href="http://docbook.sourceforge.net/release/xsl/1.76.1/eclipse/eclipse3.xsl" />
|
||||
|
||||
<xsl:param name="chunker.output.indent" select="'yes'"/>
|
||||
<xsl:param name="chunk.quietly" select="1"/>
|
||||
|
||||
@@ -100,11 +100,6 @@
|
||||
/usr/local/src/yocto/meta-yocto \
|
||||
/usr/local/src/yocto/meta-yocto-bsp \
|
||||
/usr/local/src/yocto/meta-mylayer \
|
||||
"
|
||||
|
||||
BBLAYERS_NON_REMOVABLE ?= " \
|
||||
/usr/local/src/yocto/meta \
|
||||
/usr/local/src/yocto/meta-yocto \
|
||||
"
|
||||
</literallayout>
|
||||
</para>
|
||||
|
||||
@@ -447,11 +447,6 @@
|
||||
$HOME/poky/meta-yocto \
|
||||
$HOME/poky/meta-yocto-bsp \
|
||||
$HOME/poky/meta-mylayer \
|
||||
"
|
||||
|
||||
BBLAYERS_NON_REMOVABLE ?= " \
|
||||
$HOME/poky/meta \
|
||||
$HOME/poky/meta-yocto \
|
||||
"
|
||||
</literallayout>
|
||||
</para>
|
||||
@@ -878,11 +873,6 @@
|
||||
/usr/local/src/yocto/meta-yocto \
|
||||
/usr/local/src/yocto/meta-yocto-bsp \
|
||||
/usr/local/src/yocto/meta-mylayer \
|
||||
"
|
||||
|
||||
BBLAYERS_NON_REMOVABLE ?= " \
|
||||
/usr/local/src/yocto/meta \
|
||||
/usr/local/src/yocto/meta-yocto \
|
||||
"
|
||||
</literallayout>
|
||||
Adding the layer to this file enables the build system to
|
||||
@@ -1304,10 +1294,16 @@
|
||||
or
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>).
|
||||
Here is the basic <filename>recipetool</filename> syntax:
|
||||
<note>
|
||||
Running <filename>recipetool -h</filename> or
|
||||
<filename>recipetool create -h</filename> produces the
|
||||
Python-generated help, which presented differently
|
||||
than what follows here.
|
||||
</note>
|
||||
<literallayout class='monospaced'>
|
||||
recipetool -h
|
||||
recipetool create [-h]
|
||||
recipetool [-d] [-q] [--color auto | always | never ] create [-o <replaceable>OUTFILE</replaceable>] [-m] [-x <replaceable>EXTERNALSRC</replaceable>] <replaceable>source</replaceable>
|
||||
recipetool [-d] [-q] [--color auto | always | never ] create -o <replaceable>OUTFILE</replaceable> [-m] [-x <replaceable>EXTERNALSRC</replaceable>] <replaceable>source</replaceable>
|
||||
|
||||
-d Enables debug output.
|
||||
-q Outputs only errors (quiet mode).
|
||||
@@ -1330,9 +1326,9 @@
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Running <filename>recipetool</filename> creates the base
|
||||
recipe and locates it properly in the layer that contains
|
||||
your source files.
|
||||
Running <filename>recipetool create -o</filename> <replaceable>OUTFILE</replaceable>
|
||||
creates the base recipe and locates it properly in the
|
||||
layer that contains your source files.
|
||||
Following are some syntax examples:
|
||||
</para>
|
||||
|
||||
@@ -1341,20 +1337,14 @@
|
||||
Once generated, the recipe resides in the existing source
|
||||
code layer:
|
||||
<literallayout class='monospaced'>
|
||||
recipetool create <replaceable>source</replaceable>
|
||||
recipetool create -o <replaceable>OUTFILE</replaceable> <replaceable>source</replaceable>
|
||||
</literallayout>
|
||||
Use this syntax to generate a recipe using code that you
|
||||
extract from <replaceable>source</replaceable>.
|
||||
The extracted code is placed in its own layer defined
|
||||
by <replaceable>EXTERNALSRC</replaceable>.
|
||||
<literallayout class='monospaced'>
|
||||
recipetool create -x <replaceable>EXTERNALSRC</replaceable> <replaceable>source</replaceable>
|
||||
</literallayout>
|
||||
Use this syntax to generate a recipe and override the
|
||||
tool's default placement of the recipe by specifying both
|
||||
its location and name using <replaceable>OUTFILE</replaceable>.
|
||||
<literallayout class='monospaced'>
|
||||
recipetool create -o <replaceable>OUTFILE</replaceable> <replaceable>source</replaceable>
|
||||
recipetool create -o <replaceable>OUTFILE</replaceable> -x <replaceable>EXTERNALSRC</replaceable> <replaceable>source</replaceable>
|
||||
</literallayout>
|
||||
Use this syntax to generate a recipe based on <replaceable>source</replaceable>.
|
||||
The options direct <filename>recipetool</filename> to
|
||||
@@ -5169,11 +5159,6 @@
|
||||
$HOME/poky/meta-yocto \
|
||||
$HOME/poky/meta-yocto-bsp \
|
||||
$HOME/poky/meta-mylayer \
|
||||
"
|
||||
|
||||
BBLAYERS_NON_REMOVABLE ?= " \
|
||||
$HOME/poky/meta \
|
||||
$HOME/poky/meta-yocto \
|
||||
"
|
||||
</literallayout></para></listitem>
|
||||
</itemizedlist>
|
||||
@@ -9351,217 +9336,6 @@
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="examining-builds-using-toaster">
|
||||
<title>Examining Builds Using the Toaster API</title>
|
||||
|
||||
<para>
|
||||
Toaster is an Application Programming Interface (API) and
|
||||
web-based interface to the OpenEmbedded build system, which uses
|
||||
BitBake.
|
||||
Both interfaces are based on a Representational State Transfer
|
||||
(REST) API that queries for and returns build information using
|
||||
<filename>GET</filename> and <filename>JSON</filename>.
|
||||
These types of search operations retrieve sets of objects from
|
||||
a datastore used to collect build information.
|
||||
The results contain all the data for the objects being returned.
|
||||
You can order the results of the search by key and the search
|
||||
parameters are consistent for all object types.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Using the interfaces you can do the following:
|
||||
<itemizedlist>
|
||||
<listitem><para>See information about the tasks executed
|
||||
and reused during the build.</para></listitem>
|
||||
<listitem><para>See what is built (recipes and
|
||||
packages) and what packages were installed into the final
|
||||
image.</para></listitem>
|
||||
<listitem><para>See performance-related information such
|
||||
as build time, CPU usage, and disk I/O.</para></listitem>
|
||||
<listitem><para>Examine error, warning and trace messages
|
||||
to aid in debugging.</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<note>
|
||||
<para>This release of Toaster provides you with information
|
||||
about a BitBake run.
|
||||
The tool does not allow you to configure and launch a build.
|
||||
However, future development includes plans to integrate the
|
||||
configuration and build launching capabilities of
|
||||
<ulink url='&YOCTO_HOME_URL;/tools-resources/projects/hob'>Hob</ulink>.
|
||||
</para>
|
||||
<para>For more information on using Hob to build an image,
|
||||
see the
|
||||
"<link linkend='image-development-using-hob'>Image Development Using Hob</link>"
|
||||
section.</para>
|
||||
</note>
|
||||
|
||||
<para>
|
||||
The remainder of this section describes what you need to have in
|
||||
place to use Toaster, how to start it, use it, and stop it.
|
||||
For additional information on installing and running Toaster, see the
|
||||
"<ulink url='https://wiki.yoctoproject.org/wiki/Toaster#Installation_and_Running'>Installation and Running</ulink>"
|
||||
section of the "Toaster" wiki page.
|
||||
For complete information on the API and its search operation
|
||||
URI, parameters, and responses, see the
|
||||
<ulink url='https://wiki.yoctoproject.org/wiki/REST_API_Contracts'>REST API Contracts</ulink>
|
||||
Wiki page.
|
||||
</para>
|
||||
|
||||
<section id='starting-toaster'>
|
||||
<title>Starting Toaster</title>
|
||||
|
||||
<para>
|
||||
Getting set up to use and start Toaster is simple.
|
||||
First, be sure you have met the following requirements:
|
||||
<itemizedlist>
|
||||
<listitem><para>You have set up your
|
||||
<link linkend='source-directory'>Source Directory</link>
|
||||
by cloning the upstream <filename>poky</filename>
|
||||
repository.
|
||||
See the
|
||||
<link linkend='local-yp-release'>Yocto Project Release</link>
|
||||
item for information on how to set up the Source
|
||||
Directory.</para></listitem>
|
||||
<listitem><para>Be sure your build machine has
|
||||
<ulink url='http://en.wikipedia.org/wiki/Django_%28web_framework%29'>Django</ulink>
|
||||
version 1.5 installed.</para></listitem>
|
||||
<listitem><para>Make sure that port 8000 and 8200 are
|
||||
free (i.e. they have no servers on them).
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Once you have met the requirements, follow these steps to
|
||||
start Toaster running in the background of your shell:
|
||||
<orderedlist>
|
||||
<listitem><para><emphasis>Set up your build environment:</emphasis>
|
||||
Source a build environment script (i.e.
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
|
||||
or
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>).
|
||||
</para></listitem>
|
||||
<listitem><para><emphasis>Start Toaster:</emphasis>
|
||||
Start the Toaster service using this
|
||||
command from within your
|
||||
<link linkend='build-directory'>Build Directory</link>:
|
||||
<literallayout class='monospaced'>
|
||||
$ source toaster start
|
||||
</literallayout></para></listitem>
|
||||
<note>
|
||||
The Toaster must be started and running in order
|
||||
for it to collect data.
|
||||
</note>
|
||||
</orderedlist>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
When Toaster starts, it creates some additional files in your
|
||||
Build Directory.
|
||||
Deleting these files will cause you to lose data or interrupt
|
||||
Toaster:
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis><filename>toaster.sqlite</filename>:</emphasis>
|
||||
Toaster's database file.</para></listitem>
|
||||
<listitem><para><emphasis><filename>toaster_web.log</filename>:</emphasis>
|
||||
The log file of the web server.</para></listitem>
|
||||
<listitem><para><emphasis><filename>toaster_ui.log</filename>:</emphasis>
|
||||
The log file of the user interface component.
|
||||
</para></listitem>
|
||||
<listitem><para><emphasis><filename>toastermain.pid</filename>:</emphasis>
|
||||
The PID of the web server.</para></listitem>
|
||||
<listitem><para><emphasis><filename>toasterui.pid</filename>:</emphasis>
|
||||
The PID of the DSI data bridge.</para></listitem>
|
||||
<listitem><para><emphasis><filename>bitbake-cookerdaemon.log</filename>:</emphasis>
|
||||
The BitBake server's log file.</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='using-toaster'>
|
||||
<title>Using Toaster</title>
|
||||
|
||||
<para>
|
||||
Once Toaster is running, it logs information for any BitBake
|
||||
run from your Build Directory.
|
||||
This logging is automatic.
|
||||
All you need to do is access and use the information.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
You access the information one of two ways:
|
||||
<itemizedlist>
|
||||
<listitem><para>Open a Browser and enter
|
||||
<filename>http://localhost:8000</filename>
|
||||
for the URL.
|
||||
</para></listitem>
|
||||
<listitem><para>Use the <filename>xdg-open</filename>
|
||||
tool from the shell and pass it the same URL.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
Either method opens the home page for the Toaster interface.
|
||||
</para>
|
||||
|
||||
<note><title>Notes</title>
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
For information on how to delete information from the
|
||||
Toaster database, see the
|
||||
<ulink url='https://wiki.yoctoproject.org/wiki/Toaster#Deleting_a_Build_from_the_Toaster_Database'>Deleting a Build from the Toaster Database</ulink>
|
||||
wiki page.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
For information on how to set up an instance of Toaster
|
||||
on a remote host, see the
|
||||
<ulink url='https://wiki.yoctoproject.org/wiki/Toaster#Setting_up_a_Toaster_Instance_on_a_Remote_Host'>Setting Up a Toaster Instance on a Remote Host</ulink>
|
||||
wiki page.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</note>
|
||||
</section>
|
||||
|
||||
<section id='examining-toaster-data'>
|
||||
<title>Examining Toaster Data</title>
|
||||
|
||||
<para>
|
||||
The Toaster database is persistent regardless of whether you
|
||||
start or stop the service.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Toaster's interface shows you a list of builds
|
||||
(successful and unsuccessful) for which it has data.
|
||||
You can click on any build to see related information.
|
||||
This information includes configuration details, information
|
||||
about tasks, all recipes and packages built and their
|
||||
dependencies, packages and their directory structure as
|
||||
installed in your final image,
|
||||
execution time, CPU usage and disk I/O per task.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For details on the interface, see the
|
||||
<ulink url='https://www.yoctoproject.org/documentation/toaster-manual'>Toaster Manual</ulink>.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='stopping-toaster'>
|
||||
<title>Stopping Toaster</title>
|
||||
|
||||
<para>
|
||||
Stop the Toaster service with the following command
|
||||
from with the
|
||||
<link linkend='build-directory'>Build Directory</link>:
|
||||
<literallayout class='monospaced'>
|
||||
$ source toaster stop
|
||||
</literallayout>
|
||||
The service stops but the Toaster database remains persistent.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="platdev-oprofile">
|
||||
<title>Profiling with OProfile</title>
|
||||
|
||||
@@ -10037,11 +9811,6 @@
|
||||
##OEROOT##/meta-yocto \
|
||||
##OEROOT##/meta-yocto-bsp \
|
||||
##OEROOT##/meta-mylayer \
|
||||
"
|
||||
|
||||
BBLAYERS_NON_REMOVABLE ?= " \
|
||||
##OEROOT##/meta \
|
||||
##OEROOT##/meta-yocto \
|
||||
"
|
||||
</literallayout>
|
||||
Creating and providing an archive of the
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
version="1.0">
|
||||
|
||||
<xsl:import
|
||||
href="http://docbook.sourceforge.net/release/xsl/current/eclipse/eclipse3.xsl" />
|
||||
href="http://docbook.sourceforge.net/release/xsl/1.76.1/eclipse/eclipse3.xsl" />
|
||||
|
||||
<xsl:param name="chunker.output.indent" select="'yes'"/>
|
||||
<xsl:param name="chunk.quietly" select="1"/>
|
||||
|
||||
@@ -146,6 +146,12 @@
|
||||
This manual presents a set of common and generally useful tracing and
|
||||
profiling schemes along with their applications (as appropriate) to each tool.
|
||||
</para></listitem>
|
||||
<listitem><para><emphasis>
|
||||
<ulink url='&YOCTO_DOCS_TOAST_URL;'>Toaster User Manual</ulink>:</emphasis>
|
||||
This manual introduces and describes how to set up and use
|
||||
Toaster, which is a web interface to the Yocto Project's
|
||||
<link linkend='build-system-term'>OpenEmbedded Build System</link>.
|
||||
</para></listitem>
|
||||
<listitem><para><emphasis>
|
||||
<ulink url='http://www.youtube.com/watch?v=3ZlOu-gLsh0'>
|
||||
Eclipse IDE Yocto Plug-in</ulink>:</emphasis>
|
||||
|
||||
@@ -335,12 +335,12 @@
|
||||
<para>
|
||||
Within the figure, the "Kernel.org Branch Point" represents the point in the tree
|
||||
where a supported base kernel is modified from the Linux kernel.
|
||||
For example, this could be the branch point for the <filename>linux-yocto-3.4</filename>
|
||||
For example, this could be the branch point for the <filename>linux-yocto-3.19</filename>
|
||||
kernel.
|
||||
Thus, everything further to the right in the structure is based on the
|
||||
<filename>linux-yocto-3.4</filename> kernel.
|
||||
<filename>linux-yocto-3.19</filename> kernel.
|
||||
Branch points to the right in the figure represent where the
|
||||
<filename>linux-yocto-3.4</filename> kernel is modified for specific hardware
|
||||
<filename>linux-yocto-3.19</filename> kernel is modified for specific hardware
|
||||
or types of kernels, such as real-time kernels.
|
||||
Each leaf thus represents the end-point for a kernel designed to run on a specific
|
||||
targeted device.
|
||||
@@ -1669,8 +1669,8 @@
|
||||
<para>
|
||||
A common development workflow consists of modifying project source
|
||||
files that are external to the Yocto Project and then integrating
|
||||
that project's build output into an image built using the Yocto
|
||||
Project.
|
||||
that project's build output into an image built using the
|
||||
OpenEmbedded build system.
|
||||
Given this scenario, development engineers typically want to stick
|
||||
to their familiar project development tools and methods, which allows
|
||||
them to just focus on the project.
|
||||
@@ -1679,14 +1679,12 @@
|
||||
<para>
|
||||
Several workflows exist that allow you to develop, build, and test
|
||||
code that is going to be integrated into an image built using the
|
||||
Yocto Project.
|
||||
OpenEmbedded build system.
|
||||
This section describes two:
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis><filename>devtool</filename>:</emphasis>
|
||||
A set of tools and
|
||||
enhancements put together by the Yocto Project team that
|
||||
makes it easier for you to modify code that is external to
|
||||
the Yocto Project.
|
||||
A set of tools to aid in working on the source code built by
|
||||
the OpenEmbedded build system.
|
||||
Section
|
||||
"<link linkend='using-devtool-in-your-workflow'>Using <filename>devtool</filename> in Your Workflow</link>"
|
||||
describes this workflow.
|
||||
@@ -1715,9 +1713,19 @@
|
||||
<para>
|
||||
As mentioned earlier, <filename>devtool</filename> helps
|
||||
you easily develop projects whose build output must be part of
|
||||
an image built using the Yocto Project.
|
||||
an image built using the OpenEmbedded build system.
|
||||
The remainder of this section presents the workflow you would
|
||||
use that includes <filename>devtool</filename>.
|
||||
<footnote>
|
||||
<para>
|
||||
Kudos and thanks to
|
||||
<ulink url='mailto:twoerner@gmail.com'>Trevor Woerner</ulink>
|
||||
whose
|
||||
"<ulink url='https://drive.google.com/file/d/0B3KGzY5fW7laTDVxUXo3UDRvd2s/view'>Yocto Project Developer Workflow Tutorial</ulink>"
|
||||
paper contributed nicely towards the development of this
|
||||
section.
|
||||
</para>
|
||||
</footnote>
|
||||
<note>
|
||||
The workflow considers the entire build process for the
|
||||
image and not just modification of the external source
|
||||
@@ -1729,9 +1737,6 @@
|
||||
<title>Establish the Reference Image</title>
|
||||
|
||||
<para>
|
||||
Local repositories for both the Yocto Project and your
|
||||
project must exist in addition to the image built by
|
||||
the OpenEmbedded build system.
|
||||
The steps to clone the <filename>poky</filename> Git
|
||||
repository, build out an image, and test it using QEMU
|
||||
are well documented as follows:
|
||||
@@ -1770,51 +1775,59 @@
|
||||
Several opportunities exist in the workflow to extract and
|
||||
work on the files.
|
||||
For now, just realize that you need to be able to have
|
||||
access to and edit files in your layer.
|
||||
One obvious solution is to initially extract the code into its
|
||||
own layer in preparation for modification.
|
||||
access to and edit files.
|
||||
One obvious solution is to initially extract the code into an
|
||||
isolated area in preparation for modification.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Another option is to use the <filename>devtool</filename>
|
||||
command.
|
||||
<filename>devtool</filename> makes use of a
|
||||
"workspace" layer where much of the transitional work
|
||||
occurs, which is needed for setting up Metadata used by the
|
||||
OpenEmbedded build system that lets you build your software.
|
||||
Options exist using <filename>devtool</filename> that
|
||||
enable you to use the tool to extract source code.
|
||||
Another option is to use the
|
||||
<filename>devtool modify</filename> command.
|
||||
This command makes use of a "workspace" layer where much of
|
||||
the transitional work occurs, which is needed for setting up
|
||||
Metadata used by the OpenEmbedded build system that lets you
|
||||
build your software.
|
||||
Options (i.e. "-x") exist using <filename>devtool</filename>
|
||||
that enable you to use the tool to extract source code.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='use-devtool-to-integrate-your-code-with-the-image'>
|
||||
<title>Use <filename>dev-tool</filename> to Integrate Your Code with the Image</title>
|
||||
<title>Use <filename>devtool add</filename> to Integrate Your Code with the Image</title>
|
||||
|
||||
<para>
|
||||
<filename>devtool</filename> automatically
|
||||
The <filename>devtool add</filename> command automatically
|
||||
generates the needed Metadata that allows the OpenEmbedded
|
||||
build system to build your code into the image.
|
||||
<note>
|
||||
If a package or packages produced by the recipe on which
|
||||
you are working are not already in
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></ulink>
|
||||
for the image, you must add them.
|
||||
The <filename>devtool add</filename> command does not
|
||||
add them for you.
|
||||
</note>
|
||||
Use the following command form:
|
||||
<literallayout class='monospaced'>
|
||||
$ devtool add <replaceable>your-project-name</replaceable> <replaceable>path-to-source</replaceable>/<replaceable>your-project-name</replaceable>
|
||||
$ devtool add <replaceable>your-project-name</replaceable> <replaceable>path-to-source</replaceable>
|
||||
</literallayout>
|
||||
Running <filename>devtool</filename> modifies the
|
||||
<filename>bblayers.conf</filename> used to build the
|
||||
image in the Yocto Project.
|
||||
Running <filename>devtool add</filename> modifies the
|
||||
<filename>bblayers.conf</filename> that the
|
||||
OpenEmbedded build system uses to build an image.
|
||||
For more information on the <filename>bblayers.conf</filename>,
|
||||
see the
|
||||
"<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>"
|
||||
section in the Yocto Project Board Support Package (BSP) Developer's Guide.
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#structure-build-conf-bblayers.conf'><filename>build/conf/bblayers.conf</filename></ulink>"
|
||||
section in the Yocto Project Reference Manual.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Running <filename>devtool</filename> adds a new workspace
|
||||
Running <filename>devtool add</filename> adds a new workspace
|
||||
layer to the <filename>bblayers.conf</filename> file that
|
||||
is based on your project's location:
|
||||
<literallayout class='monospaced'>
|
||||
<replaceable>path-to-source</replaceable>/<replaceable>build-directory</replaceable>/<replaceable>workspace-layer</replaceable>
|
||||
</literallayout>
|
||||
By default, the name of the workspace layer is "workplace".
|
||||
By default, the name of the workspace layer is "workspace".
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -1825,6 +1838,7 @@
|
||||
section.
|
||||
</para>
|
||||
|
||||
<!--
|
||||
<para>
|
||||
Of course, each layer must have a
|
||||
<filename>layer.conf</filename> configuration file.
|
||||
@@ -1842,9 +1856,10 @@
|
||||
BBFILE_PRIORITY_workspacelayer = "99"
|
||||
</literallayout>
|
||||
</para>
|
||||
-->
|
||||
|
||||
<para>
|
||||
Running <filename>devtool</filename> also automatically
|
||||
Running <filename>devtool add</filename> automatically
|
||||
generates your recipe:
|
||||
<literallayout class='monospaced'>
|
||||
$ cat workspace/recipes/<replaceable>your-project-name</replaceable>/<replaceable>your-project-name</replaceable>.bb
|
||||
@@ -1873,7 +1888,7 @@
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Lastly, the <filename>devtool</filename> creates the
|
||||
Lastly, the <filename>devtool add</filename> command creates the
|
||||
<filename>.bbappend</filename> file:
|
||||
<literallayout class='monospaced'>
|
||||
$ cat workspace/appends/<replaceable>your-project-name</replaceable>.bbappend
|
||||
@@ -1889,8 +1904,8 @@
|
||||
<title>Build Your Project</title>
|
||||
|
||||
<para>
|
||||
You can use BitBake or <filename>devtool</filename> to build
|
||||
your modified project.
|
||||
You can use BitBake or <filename>devtool build</filename> to
|
||||
build your modified project.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -1898,8 +1913,10 @@
|
||||
<literallayout class='monospaced'>
|
||||
$ bitbake <replaceable>your-project-name</replaceable>
|
||||
</literallayout>
|
||||
To use <filename>devtool</filename>, run the tool with the
|
||||
<filename>build</filename> option:
|
||||
Alternatively, you can use
|
||||
<filename>devtool build</filename>, which is equivalent to
|
||||
<filename>bitbake -c populate_sysroot</filename>.
|
||||
For example:
|
||||
<literallayout class='monospaced'>
|
||||
$ devtool build <replaceable>your-project-name</replaceable>
|
||||
</literallayout>
|
||||
@@ -1913,11 +1930,9 @@
|
||||
The final step before testing is to rebuild the base image
|
||||
with your project changes as part of the image.
|
||||
Simply run BitBake again on your image.
|
||||
Here is an example that assumes
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
|
||||
is set to "qemux86":
|
||||
Here is an example:
|
||||
<literallayout class='monospaced'>
|
||||
$ bitbake qemux86 <replaceable>image</replaceable>
|
||||
$ bitbake <replaceable>image</replaceable>
|
||||
</literallayout>
|
||||
</para>
|
||||
</section>
|
||||
@@ -1958,35 +1973,32 @@
|
||||
<filename>--help</filename> option:
|
||||
<literallayout class='monospaced'>
|
||||
$ devtool --help
|
||||
usage: devtool [-h] [--basepath BASEPATH] [-d] [-q]
|
||||
[--color {auto,always,never}]
|
||||
{create-workspace,deploy-target,undeploy-target,add,modify,extract,update-recipe,status,build,reset}
|
||||
...
|
||||
usage: devtool [-h] [--basepath BASEPATH] [-d] [-q] [--color COLOR]
|
||||
<subcommand> ...
|
||||
|
||||
OpenEmbedded development tool
|
||||
|
||||
positional arguments:
|
||||
{create-workspace,deploy-target,undeploy-target,add,modify,extract,update-recipe,status,build,reset}
|
||||
create-workspace Set up a workspace
|
||||
deploy-target Deploy recipe output files to live target machine
|
||||
undeploy-target Undeploy recipe output files in live target machine
|
||||
add Add a new recipe
|
||||
modify Modify the source for an existing recipe
|
||||
extract Extract the source for an existing recipe
|
||||
update-recipe Apply changes from external source tree to recipe
|
||||
status Show status
|
||||
build Build recipe
|
||||
reset Remove a recipe from your workspace
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--basepath BASEPATH Base directory of SDK / build directory
|
||||
-d, --debug Enable debug output
|
||||
-q, --quiet Print only errors
|
||||
--color {auto,always,never}
|
||||
Colorize output
|
||||
-h, --help show this help message and exit
|
||||
--basepath BASEPATH Base directory of SDK / build directory
|
||||
-d, --debug Enable debug output
|
||||
-q, --quiet Print only errors
|
||||
--color COLOR Colorize output (where COLOR is auto, always, never)
|
||||
|
||||
Use devtool <command> --help to get help on a specific command
|
||||
subcommands:
|
||||
<subcommand>
|
||||
create-workspace Set up a workspace
|
||||
deploy-target Deploy recipe output files to live target machine
|
||||
undeploy-target Undeploy recipe output files in live target machine
|
||||
add Add a new recipe
|
||||
modify Modify the source for an existing recipe
|
||||
extract Extract the source for an existing recipe
|
||||
update-recipe Apply changes from external source tree to recipe
|
||||
status Show workspace status
|
||||
build Build a recipe
|
||||
reset Remove a recipe from your workspace
|
||||
|
||||
Use devtool <subcommand> --help to get help on a specific command
|
||||
</literallayout>
|
||||
</para>
|
||||
|
||||
@@ -1996,7 +2008,9 @@
|
||||
name and using <filename>--help</filename>:
|
||||
<literallayout class='monospaced'>
|
||||
$ devtool add --help
|
||||
usage: devtool add [-h] [--version VERSION] recipename srctree
|
||||
usage: devtool add [-h] [--same-dir] [--version VERSION] recipename srctree
|
||||
|
||||
Adds a new recipe
|
||||
|
||||
positional arguments:
|
||||
recipename Name for new recipe to add
|
||||
@@ -2004,7 +2018,9 @@
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--same-dir, -s Build in same directory as source (default: False)
|
||||
--version VERSION, -V VERSION
|
||||
Version to use within recipe (PV) (default: None)
|
||||
</literallayout>
|
||||
</para>
|
||||
</section>
|
||||
@@ -2013,7 +2029,7 @@
|
||||
<title>Adding a New Recipe to the Workspace Layer</title>
|
||||
|
||||
<para>
|
||||
Use the <filename>add</filename> command to add a new recipe
|
||||
Use the <filename>devtool add</filename> command to add a new recipe
|
||||
to the workspace layer.
|
||||
The recipe you add should not exist -
|
||||
<filename>devtool</filename> creates it for you.
|
||||
@@ -2050,7 +2066,8 @@
|
||||
README - Provides information on what is in workspace layer and how to
|
||||
manage it.
|
||||
|
||||
appends - A directory that contains *.bbappend files.
|
||||
appends - A directory that contains *.bbappend files, which point to
|
||||
external source.
|
||||
|
||||
conf - A configuration directory that contains the layer.conf file.
|
||||
|
||||
@@ -2065,6 +2082,8 @@
|
||||
Running <filename>devtool add</filename> when the
|
||||
workspace layer exists causes the tool to add the recipe
|
||||
and append files into the existing workspace layer.
|
||||
The <filename>.bbappend</filename> file is created to point
|
||||
to the external source tree.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -2072,7 +2091,7 @@
|
||||
<title>Creating the Workspace Layer</title>
|
||||
|
||||
<para>
|
||||
Use the <filename>create-workspace</filename> command to
|
||||
Use the <filename>devtool create-workspace</filename> command to
|
||||
create a new workspace layer in your
|
||||
<link linkend='build-directory'>Build Directory</link>.
|
||||
When you create a new workspace layer, it is populated with the
|
||||
@@ -2108,19 +2127,21 @@
|
||||
<title>Modifying a Recipe</title>
|
||||
|
||||
<para>
|
||||
Use the <filename>modify</filename> command to configure
|
||||
an external recipe in the workspace layer.
|
||||
Use the <filename>devtool modify</filename> command to begin
|
||||
modifying the source of an existing recipe.
|
||||
This command is very similar to the
|
||||
<link linkend='devtool-adding-a-new-recipe-to-the-workspace'><filename>add</filename></link>
|
||||
command except that it does not physically create the
|
||||
recipe in the workspace layer because the recipe already
|
||||
exists in an external layer.
|
||||
exists in an another layer.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <filename>modify</filename> command provides options
|
||||
that allow you to extract the source and provide a
|
||||
development branch name where you can do your work.
|
||||
The <filename>devtool modify</filename> command extracts the
|
||||
source for a recipe, sets it up as a Git repository if the
|
||||
source had not already been fetched from Git, checks out a
|
||||
branch for development, and applies any patches from the recipe
|
||||
as commits on top.
|
||||
You can use the following command to checkout the source
|
||||
files:
|
||||
<literallayout class='monospaced'>
|
||||
@@ -2148,15 +2169,23 @@
|
||||
<title>Resetting a Recipe</title>
|
||||
|
||||
<para>
|
||||
Use the <filename>reset</filename> command to remove a
|
||||
Use the <filename>devtool reset</filename> command to remove a
|
||||
recipe and its configuration (e.g. the corresponding
|
||||
<filename>.bbappend</filename> file) from the workspace layer.
|
||||
Realize that this command deletes the recipe and and the
|
||||
Realize that this command deletes the recipe and the
|
||||
append file.
|
||||
The command does not physically move them for you.
|
||||
Consequently, you must be sure to physically relocate your
|
||||
updated recipe and the append file outside of the workspace
|
||||
layer before running the <filename>reset</filename> command.
|
||||
layer before running the <filename>devtool reset</filename>
|
||||
command.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If the <filename>devtool reset</filename> command detects that
|
||||
the recipe or the append files have been modified, the
|
||||
command preserves the modified files in a separate "attic"
|
||||
subdirectory under the workspace layer.
|
||||
<note>
|
||||
For complete syntax, use the
|
||||
<filename>devtool reset --help</filename> command.
|
||||
@@ -2168,18 +2197,17 @@
|
||||
<title>Updating a Recipe</title>
|
||||
|
||||
<para>
|
||||
Use the <filename>update-recipe</filename> command to cause
|
||||
<filename>devtool</filename> to update your recipe with patches
|
||||
that reflect changes you make to the source files.
|
||||
Use the <filename>devtool update-recipe</filename> command to
|
||||
update your recipe with patches that reflect changes you make
|
||||
to the source files.
|
||||
For example, if you know you are going to work on some
|
||||
code, you could first use the
|
||||
<link linkend='devtool-modifying-a-recipe'><filename>modify</filename></link>
|
||||
<link linkend='devtool-modifying-a-recipe'><filename>devtool modify</filename></link>
|
||||
command to extract the code and set up the workspace.
|
||||
After which, you could modify, compile, and test the code
|
||||
in its own layer to which it was extracted.
|
||||
After which, you could modify, compile, and test the code.
|
||||
When you are satisfied with the results you can then
|
||||
run the <filename>update-recipe</filename> to create the
|
||||
patches and update the recipe in the external layer:
|
||||
run the <filename>devtool update-recipe</filename> to create the
|
||||
patches and update the recipe:
|
||||
<literallayout class='monospaced'>
|
||||
$ devtool update-recipe <replaceable>recipe</replaceable>
|
||||
</literallayout>
|
||||
@@ -2194,9 +2222,12 @@
|
||||
<title>Building Your Software</title>
|
||||
|
||||
<para>
|
||||
Use the <filename>build</filename> command to cause the
|
||||
Use the <filename>devtool build</filename> command to cause the
|
||||
OpenEmbedded build system to build your software based
|
||||
on the recipe file:
|
||||
on the recipe file.
|
||||
The <filename>devtool build</filename> command is equivalent to
|
||||
<filename>bitbake -c populate_sysroot</filename>.
|
||||
Here is an example:
|
||||
<literallayout class='monospaced'>
|
||||
$ devtool build <replaceable>recipe</replaceable>
|
||||
</literallayout>
|
||||
@@ -2204,8 +2235,8 @@
|
||||
For complete syntax, use the
|
||||
<filename>devtool update-recipe --help</filename> command.
|
||||
</note>
|
||||
Building your software using <filename>build</filename> is
|
||||
identical to using BitBake to build the software.
|
||||
Building your software using <filename>devtool build</filename>
|
||||
is identical to using BitBake to build the software.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -2213,17 +2244,36 @@
|
||||
<title>Deploying Your Software on the Target Machine</title>
|
||||
|
||||
<para>
|
||||
Use the <filename>deploy-target</filename> command to deploy
|
||||
the recipe's build output to the the live target machine:
|
||||
Use the <filename>devtool deploy-target</filename> command to
|
||||
deploy the recipe's build output to the live target machine:
|
||||
<literallayout class='monospaced'>
|
||||
$ devtool deploy-target <replaceable>recipe</replaceable> <replaceable>target</replaceable>
|
||||
</literallayout>
|
||||
The <replaceable>target</replaceable> is the actual
|
||||
target running on an SSH server (i.e.
|
||||
<filename>user@hostname[:destdir]</filename>.
|
||||
<note>
|
||||
For complete syntax, use the
|
||||
<filename>devtool deploy-target --help</filename> command.
|
||||
The <replaceable>target</replaceable> is the address of the
|
||||
target machine, which must be running an SSH server (i.e.
|
||||
<filename>user@hostname[:destdir]</filename>).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This command deploys all files installed during the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-install'><filename>do_install</filename></ulink>
|
||||
task.
|
||||
Furthermore, you do not need to have package management enabled
|
||||
within the target machine.
|
||||
If you do, the package manager is bypassed.
|
||||
<note><title>Notes</title>
|
||||
<para>
|
||||
The <filename>deploy-target</filename>
|
||||
functionality is for development only.
|
||||
You should never use it to update an image that will be
|
||||
used in production.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For complete syntax, use the
|
||||
<filename>devtool deploy-target --help</filename>
|
||||
command.
|
||||
</para>
|
||||
</note>
|
||||
</para>
|
||||
</section>
|
||||
@@ -2232,18 +2282,18 @@
|
||||
<title>Removing Your Software from the Target Machine</title>
|
||||
|
||||
<para>
|
||||
Use the <filename>undeploy-target</filename> command to remove
|
||||
deployed build output from the target machine.
|
||||
For <filename>undeploy-target</filename> command to work,
|
||||
you must have previously used the
|
||||
<link linkend='devtool-deploying-your-software-on-the-target-machine'><filename>deploy-target</filename></link>
|
||||
Use the <filename>devtool undeploy-target</filename> command to
|
||||
remove deployed build output from the target machine.
|
||||
For the <filename>devtool undeploy-target</filename> command to
|
||||
work, you must have previously used the
|
||||
<link linkend='devtool-deploying-your-software-on-the-target-machine'><filename>devtool deploy-target</filename></link>
|
||||
command.
|
||||
<literallayout class='monospaced'>
|
||||
$ devtool undeploy-target <replaceable>recipe</replaceable> <replaceable>target</replaceable>
|
||||
</literallayout>
|
||||
The <replaceable>target</replaceable> is the actual
|
||||
target running on an SSH server (i.e.
|
||||
<filename>user@hostname</filename>.
|
||||
The <replaceable>target</replaceable> is the address of the
|
||||
target machine, which must be running an SSH server (i.e.
|
||||
<filename>user@hostname</filename>).
|
||||
<note>
|
||||
For complete syntax, use the
|
||||
<filename>devtool undeploy-target --help</filename> command.
|
||||
@@ -2257,11 +2307,19 @@
|
||||
|
||||
<para>
|
||||
<ulink url='http://savannah.nongnu.org/projects/quilt'>Quilt</ulink>
|
||||
is a powerful tool that allows you to capture source code changes without having
|
||||
a clean source tree.
|
||||
is a powerful tool that allows you to capture source code changes
|
||||
without having a clean source tree.
|
||||
This section outlines the typical workflow you can use to modify
|
||||
source code, test changes, and then preserve the changes in the
|
||||
form of a patch all using Quilt.
|
||||
<note><title>Tip</title>
|
||||
With regard to preserving changes to source files if you
|
||||
clean a recipe or have <filename>rm_work</filename> enabled,
|
||||
the workflow described in the
|
||||
"<link linkend='using-devtool-in-your-workflow'>Using <filename>devtool</filename> in Your Workflow</link>"
|
||||
section is a safer development flow than than the flow that
|
||||
uses Quilt.
|
||||
</note>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -2449,6 +2507,20 @@
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id='image-development-using-toaster'>
|
||||
<title>Image Development Using Toaster</title>
|
||||
|
||||
<para>
|
||||
Toaster is a web interface to the Yocto Project's OpenEmbedded build
|
||||
system.
|
||||
You can initiate builds using Toaster as well as examine the results
|
||||
and statistics of builds.
|
||||
See the
|
||||
<ulink url='&YOCTO_DOCS_TOAST_URL;'>Toaster User Manual</ulink>
|
||||
for information on how to set up and use Toaster to build images.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='image-development-using-hob'>
|
||||
<title>Image Development Using Hob</title>
|
||||
|
||||
|
||||
@@ -1597,7 +1597,7 @@
|
||||
|
||||
<para>
|
||||
You can find general Git information on how to push a change upstream in the
|
||||
<ulink url='http://book.git-scm.com/3_distributed_workflows.html'>Git Community Book</ulink>.
|
||||
<ulink url='http://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows'>Git Community Book</ulink>.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
You should also have about 50 Gbytes of free disk space for building images.
|
||||
</para></listitem>
|
||||
<listitem><para><emphasis>Packages:</emphasis> The OpenEmbedded build system
|
||||
requires that certain packages exist on your development system (e.g. Python 2.6 or 2.7).
|
||||
requires that certain packages exist on your development system (e.g. Python 2.7).
|
||||
See "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>"
|
||||
section in the Yocto Project Quick Start and the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
version="1.0">
|
||||
|
||||
<xsl:import
|
||||
href="http://docbook.sourceforge.net/release/xsl/current/eclipse/eclipse3.xsl" />
|
||||
href="http://docbook.sourceforge.net/release/xsl/1.76.1/eclipse/eclipse3.xsl" />
|
||||
|
||||
<xsl:param name="chunker.output.indent" select="'yes'"/>
|
||||
<xsl:param name="chunk.quietly" select="1"/>
|
||||
|
||||
BIN
documentation/mega-manual/figures/hosted-service.png
Normal file
BIN
documentation/mega-manual/figures/hosted-service.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
BIN
documentation/mega-manual/figures/simple-configuration.png
Normal file
BIN
documentation/mega-manual/figures/simple-configuration.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
@@ -216,6 +216,9 @@
|
||||
<xi:include
|
||||
xmlns:xi="http://www.w3.org/2003/XInclude" href="../toaster-manual/toaster-manual-setup-and-use.xml"/>
|
||||
|
||||
<xi:include
|
||||
xmlns:xi="http://www.w3.org/2003/XInclude" href="../toaster-manual/toaster-manual-reference.xml"/>
|
||||
|
||||
</book>
|
||||
|
||||
<!--
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<!ENTITY YOCTO_DOCS_URL "&YOCTO_HOME_URL;/docs">
|
||||
<!ENTITY YOCTO_SOURCES_URL "&YOCTO_HOME_URL;/sources/">
|
||||
<!ENTITY YOCTO_AB_PORT_URL "&YOCTO_AB_URL;:8010">
|
||||
<!ENTITY YOCTO_AB_NIGHTLY_URL "&YOCTO_AB_URL;/nightly/">
|
||||
<!ENTITY YOCTO_AB_NIGHTLY_URL "&YOCTO_AB_URL;/pub/nightly/">
|
||||
<!ENTITY YOCTO_POKY_URL "&YOCTO_DL_URL;/releases/poky/">
|
||||
<!ENTITY YOCTO_RELEASE_DL_URL "&YOCTO_DL_URL;/releases/yocto/yocto-&DISTRO;">
|
||||
<!ENTITY YOCTO_TOOLCHAIN_DL_URL "&YOCTO_RELEASE_DL_URL;/toolchain/">
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
version="1.0">
|
||||
|
||||
<xsl:import
|
||||
href="http://docbook.sourceforge.net/release/xsl/current/eclipse/eclipse3.xsl" />
|
||||
href="http://docbook.sourceforge.net/release/xsl/1.76.1/eclipse/eclipse3.xsl" />
|
||||
|
||||
<xsl:param name="chunker.output.indent" select="'yes'"/>
|
||||
<xsl:param name="chunk.quietly" select="1"/>
|
||||
|
||||
@@ -147,15 +147,18 @@
|
||||
</para>
|
||||
</note>
|
||||
<itemizedlist>
|
||||
<!-- <listitem><para>Ubuntu 10.04</para></listitem>
|
||||
<listitem><para>Ubuntu 11.10</para></listitem> -->
|
||||
<!--
|
||||
<listitem><para>Ubuntu 10.04</para></listitem>
|
||||
<listitem><para>Ubuntu 11.10</para></listitem>
|
||||
<listitem><para>Ubuntu 12.04 (LTS)</para></listitem>
|
||||
<listitem><para>Ubuntu 13.10</para></listitem>
|
||||
<listitem><para>Ubuntu 13.10</para></listitem> -->
|
||||
<listitem><para>Ubuntu 14.04 (LTS)</para></listitem>
|
||||
<listitem><para>Ubuntu 14.10</para></listitem>
|
||||
<!-- <listitem><para>Fedora 16 (Verne)</para></listitem>
|
||||
<listitem><para>Fedora 17 (Spherical)</para></listitem> -->
|
||||
<listitem><para>Fedora 17 (Spherical)</para></listitem>
|
||||
<listitem><para>Fedora release 19 (Schrödinger's Cat)</para></listitem>
|
||||
<listitem><para>Fedora release 20 (Heisenbug)</para></listitem>
|
||||
<listitem><para>Fedora release 20 (Heisenbug)</para></listitem> -->
|
||||
<listitem><para>Fedora release 21</para></listitem>
|
||||
<!-- <listitem><para>CentOS release 5.6 (Final)</para></listitem>
|
||||
<listitem><para>CentOS release 5.7 (Final)</para></listitem>
|
||||
<listitem><para>CentOS release 5.8 (Final)</para></listitem>
|
||||
@@ -164,6 +167,7 @@
|
||||
<listitem><para>CentOS release 7.x</para></listitem>
|
||||
<!-- <listitem><para>Debian GNU/Linux 6.0 (Squeeze)</para></listitem> -->
|
||||
<listitem><para>Debian GNU/Linux 7.x (Wheezy)</para></listitem>
|
||||
<listitem><para>Debian GNU/Linux 8.x (Jessie)</para></listitem>
|
||||
<!-- <listitem><para>Debian GNU/Linux 7.1 (Wheezy)</para></listitem>
|
||||
<listitem><para>Debian GNU/Linux 7.2 (Wheezy)</para></listitem>
|
||||
<listitem><para>Debian GNU/Linux 7.3 (Wheezy)</para></listitem>
|
||||
@@ -171,10 +175,11 @@
|
||||
<listitem><para>Debian GNU/Linux 7.5 (Wheezy)</para></listitem>
|
||||
<listitem><para>Debian GNU/Linux 7.6 (Wheezy)</para></listitem> -->
|
||||
<!-- <listitem><para>openSUSE 11.4</para></listitem>
|
||||
<listitem><para>openSUSE 12.1</para></listitem> -->
|
||||
<listitem><para>openSUSE 12.1</para></listitem>
|
||||
<listitem><para>openSUSE 12.2</para></listitem>
|
||||
<listitem><para>openSUSE 12.3</para></listitem>
|
||||
<listitem><para>openSUSE 13.1</para></listitem>
|
||||
<listitem><para>openSUSE 13.1</para></listitem> -->
|
||||
<listitem><para>openSUSE 13.2</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
@@ -262,7 +267,7 @@
|
||||
Yocto Project documentation manuals:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo yum install make docbook-style-dsssl docbook-style-xsl \
|
||||
docbook-dtds docbook-utils fop libxslt dblatex xmlto
|
||||
docbook-dtds docbook-utils fop libxslt dblatex xmlto xsltproc
|
||||
</literallayout></para></listitem>
|
||||
<listitem><para><emphasis>ADT Installer Extras:</emphasis>
|
||||
Packages needed if you are going to be using the
|
||||
@@ -347,7 +352,7 @@
|
||||
Yocto Project documentation manuals:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo yum install make docbook-style-dsssl docbook-style-xsl \
|
||||
docbook-dtds docbook-utils fop libxslt dblatex xmlto
|
||||
docbook-dtds docbook-utils fop libxslt dblatex xmlto xsltproc
|
||||
</literallayout></para></listitem>
|
||||
<listitem><para><emphasis>ADT Installer Extras:</emphasis>
|
||||
Packages needed if you are going to be using the
|
||||
@@ -538,7 +543,7 @@
|
||||
<ulink url='&YOCTO_DL_URL;/releases/yocto/'/>.</para></listitem>
|
||||
<listitem><para><emphasis>Nightly Builds:</emphasis> These
|
||||
tarball releases are available at
|
||||
<ulink url='http://autobuilder.yoctoproject.org/nightly'/>.
|
||||
<ulink url='&YOCTO_AB_NIGHTLY_URL;'/>.
|
||||
These builds include Yocto Project releases, meta-toolchain
|
||||
tarball installation scripts, and experimental builds.
|
||||
</para></listitem>
|
||||
|
||||
@@ -2013,6 +2013,279 @@
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id='moving-to-the-yocto-project-1.8-release'>
|
||||
<title>Moving to the Yocto Project 1.8 Release</title>
|
||||
|
||||
<para>
|
||||
This section provides migration information for moving to the
|
||||
Yocto Project 1.8 Release from the prior release.
|
||||
</para>
|
||||
|
||||
<section id='migration-1.8-removed-recipes'>
|
||||
<title>Removed Recipes</title>
|
||||
|
||||
<para>
|
||||
The following recipes have been removed:
|
||||
<itemizedlist>
|
||||
<listitem><para><filename>owl-video</filename>:
|
||||
Functionality replaced by <filename>gst-player</filename>.
|
||||
</para></listitem>
|
||||
<listitem><para><filename>gaku</filename>:
|
||||
Functionality replaced by <filename>gst-player</filename>.
|
||||
</para></listitem>
|
||||
<listitem><para><filename>gnome-desktop</filename>:
|
||||
This recipe is now available in
|
||||
<filename>meta-gnome</filename> and is no longer needed.
|
||||
</para></listitem>
|
||||
<listitem><para><filename>gsettings-desktop-schemas</filename>:
|
||||
This recipe is now available in
|
||||
<filename>meta-gnome</filename> and is no longer needed.
|
||||
</para></listitem>
|
||||
<listitem><para><filename>python-argparse</filename>:
|
||||
The <filename>argparse</filename> module is already
|
||||
provided in the default Python distribution in a
|
||||
package named <filename>python-argparse</filename>.
|
||||
Consequently, the separate
|
||||
<filename>python-argparse</filename> recipe is no
|
||||
longer needed.
|
||||
</para></listitem>
|
||||
<listitem><para><filename>telepathy-python, libtelepathy, telepathy-glib, telepathy-idle, telepathy-mission-control</filename>:
|
||||
All these recipes have moved to
|
||||
<filename>meta-oe</filename> and are consequently no
|
||||
longer needed by any recipes in OpenEmbedded-Core.
|
||||
</para></listitem>
|
||||
<listitem><para><filename>linux-yocto_3.10</filename> and <filename>linux-yocto_3.17</filename>:
|
||||
Support for the linux-yocto 3.10 and 3.17 kernels has been
|
||||
dropped.
|
||||
Support for the 3.14 kernel remains, while support for
|
||||
3.19 kernel has been added.
|
||||
</para></listitem>
|
||||
<listitem><para><filename>poky-feed-config-opkg</filename>:
|
||||
This recipe has become obsolete and is no longer needed.
|
||||
Use <filename>distro-feed-config</filename> from
|
||||
<filename>meta-oe</filename> instead.
|
||||
</para></listitem>
|
||||
<listitem><para><filename>libav 0.8.x</filename>:
|
||||
<filename>libav 9.x</filename> is now used.
|
||||
</para></listitem>
|
||||
<listitem><para><filename>sed-native</filename>:
|
||||
No longer needed.
|
||||
A working version of <filename>sed</filename> is expected
|
||||
to be provided by the host distribution.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.8-bluez'>
|
||||
<title>BlueZ 4.x / 5.x Selection</title>
|
||||
|
||||
<para>
|
||||
Proper built-in support for selecting BlueZ 5.x in preference
|
||||
to the default of 4.x now exists.
|
||||
To use BlueZ 5.x, simply add "bluez5" to your
|
||||
<link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
|
||||
value.
|
||||
If you had previously added append files
|
||||
(<filename>*.bbappend</filename>) to make this selection, you can
|
||||
now remove them.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Additionally, a
|
||||
<link linkend='ref-classes-bluetooth'><filename>bluetooth</filename></link>
|
||||
class has been added to make selection of the appropriate bluetooth
|
||||
support within a recipe a little easier.
|
||||
If you wish to make use of this class in a recipe, add something
|
||||
such as the following:
|
||||
<literallayout class='monospaced'>
|
||||
inherit bluetooth
|
||||
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}
|
||||
PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4"
|
||||
PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5"
|
||||
</literallayout>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.8-kernel-build-changes'>
|
||||
<title>Kernel Build Changes</title>
|
||||
|
||||
<para>
|
||||
The kernel build process was changed to place the source
|
||||
in a common shared work area and to place build artifacts
|
||||
separately in the source code tree.
|
||||
In theory, migration paths have been provided for most common
|
||||
usages in kernel recipes but this might not work in all cases.
|
||||
In particular, users need to ensure that
|
||||
<filename>${S}</filename> (source files) and
|
||||
<filename>${B}</filename> (build artifacts) are used
|
||||
correctly in functions such as
|
||||
<link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
|
||||
and
|
||||
<link linkend='ref-tasks-install'><filename>do_install</filename></link>.
|
||||
For kernel recipes that do not inherit from
|
||||
<filename>kernel-yocto</filename> or include
|
||||
<filename>linux-yocto.inc</filename>, you might wish to
|
||||
refer to the <filename>linux.inc</filename> file in the
|
||||
<filename>meta-oe</filename> layer for the kinds of changes you
|
||||
need to make.
|
||||
For reference, here is the
|
||||
<ulink url='http://cgit.openembedded.org/meta-openembedded/commit/meta-oe/recipes-kernel/linux/linux.inc?id=fc7132ede27ac67669448d3d2845ce7d46c6a1ee'>commit</ulink>
|
||||
where the <filename>linux.inc</filename> file in
|
||||
<filename>meta-oe</filename> was updated.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Recipes that rely on the kernel source code and do not inherit
|
||||
the module classes might need to add explicit dependencies on
|
||||
the <filename>do_shared_workdir</filename> kernel task, for example:
|
||||
<literallayout class='monospaced'>
|
||||
do_configure[depends] += "virtual/kernel:do_shared_workdir"
|
||||
</literallayout>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.8-ssl'>
|
||||
<title>SSL 3.0 is Now Disabled in OpenSSL</title>
|
||||
|
||||
<para>
|
||||
SSL 3.0 is now disabled when building OpenSSL.
|
||||
Disabling SSL 3.0 avoids any lingering instances of the POODLE
|
||||
vulnerability.
|
||||
If you feel you must re-enable SSL 3.0, then you can add an
|
||||
append file (<filename>*.bbappend</filename>) for the
|
||||
<filename>openssl</filename> recipe to remove "-no-ssl3"
|
||||
from
|
||||
<link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.8-default-sysroot-poisoning'>
|
||||
<title>Default Sysroot Poisoning</title>
|
||||
|
||||
<para>
|
||||
<filename>gcc's</filename> default sysroot and include directories
|
||||
are now "poisoned".
|
||||
In other words, the sysroot and include directories are being
|
||||
redirected to a non-existent location in order to catch when
|
||||
host directories are being used due to the correct options not
|
||||
being passed.
|
||||
This poisoning applies both to the cross-compiler used within the
|
||||
build and to the cross-compiler produced in the SDK.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If this change causes something in the build to fail, it almost
|
||||
certainly means the various compiler flags and commands are not
|
||||
being passed correctly to the underlying piece of software.
|
||||
In such cases, you need to take corrective steps.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.8-rebuild-improvements'>
|
||||
<title>Rebuild Improvements</title>
|
||||
|
||||
<para>
|
||||
Changes have been made to the
|
||||
<link linkend='ref-classes-base'><filename>base</filename></link>,
|
||||
<link linkend='ref-classes-autotools'><filename>autotools</filename></link>,
|
||||
and
|
||||
<link linkend='ref-classes-cmake'><filename>cmake</filename></link>
|
||||
classes to clean out generated files when the
|
||||
<link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
|
||||
task needs to be re-executed.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
One of the improvements is to attempt to run "make clean" during
|
||||
the <filename>do_configure</filename> task if a
|
||||
<filename>Makefile</filename> exists.
|
||||
Some software packages do not provide a working clean target
|
||||
within their make files.
|
||||
If you have such recipes, you need to set
|
||||
<link linkend='var-CLEANBROKEN'><filename>CLEANBROKEN</filename></link>
|
||||
to "1" within the recipe, for example:
|
||||
<literallayout class='monospaced'>
|
||||
CLEANBROKEN = "1"
|
||||
</literallayout>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.8-qa-check-and-validation-changes'>
|
||||
<title>QA Check and Validation Changes</title>
|
||||
|
||||
<para>
|
||||
The following QA Check and Validation Changes have occurred:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
Usage of
|
||||
<link linkend='var-PRINC'><filename>PRINC</filename></link>
|
||||
previously triggered a warning.
|
||||
It now triggers an error.
|
||||
You should remove any remaining usage of
|
||||
<filename>PRINC</filename> in any recipe or append file.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
An additional QA check has been added to detect usage of
|
||||
<filename>${D}</filename> in
|
||||
<link linkend='var-FILES'><filename>FILES</filename></link>
|
||||
values where
|
||||
<link linkend='var-D'><filename>D</filename></link> values
|
||||
should not be used at all.
|
||||
The same check ensures that <filename>$D</filename> is used
|
||||
in
|
||||
<filename>pkg_preinst/pkg_postinst/pkg_prerm/pkg_postrm</filename>
|
||||
functions instead of <filename>${D}</filename>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<link linkend='var-S'><filename>S</filename></link> now
|
||||
needs to be set to a valid value within a recipe.
|
||||
If <filename>S</filename> is not set in the recipe, the
|
||||
directory is not automatically created.
|
||||
If <filename>S</filename> does not point to a directory
|
||||
that exists at the time the
|
||||
<link linkend='ref-tasks-unpack'><filename>do_unpack</filename></link>
|
||||
task finishes, a warning will be shown.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<link linkend='var-LICENSE'><filename>LICENSE</filename></link>
|
||||
is now validated for correct formatting of multiple
|
||||
licenses.
|
||||
If the format is invalid (e.g. multiple licenses are
|
||||
specified with no operators to specify how the multiple
|
||||
licenses interact), then a warning will be shown.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.8-miscellaneous-changes'>
|
||||
<title>Miscellaneous Changes</title>
|
||||
|
||||
<para>
|
||||
The following miscellaneous changes have occurred:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
The <filename>send-error-report</filename> script now
|
||||
expects a "-s" option to be specified before the server
|
||||
address.
|
||||
This assumes a server address is being specified.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
The <filename>oe-pkgdata-util</filename> script now
|
||||
expects a "-p" option to be specified before the
|
||||
<filename>pkgdata</filename> directory, which is now
|
||||
optional.
|
||||
If the <filename>pkgdata</filename> directory is not
|
||||
specified, the script will run BitBake to query
|
||||
<link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
|
||||
from the build environment.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
<!--
|
||||
vim: expandtab tw=80 ts=4
|
||||
|
||||
@@ -270,6 +270,23 @@
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='ref-classes-bluetooth'>
|
||||
<title><filename>bluetooth.bbclass</filename></title>
|
||||
|
||||
<para>
|
||||
The <filename>bluetooth</filename> class defines a variable that
|
||||
expands to the recipe (package) providing core
|
||||
bluetooth support on the platform.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For details on how the class works, see the
|
||||
<filename>meta/classes/bluetooth.bbclass</filename> file in the Yocto
|
||||
Project
|
||||
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='ref-classes-boot-directdisk'>
|
||||
<title><filename>boot-directdisk.bbclass</filename></title>
|
||||
|
||||
@@ -2283,7 +2300,7 @@
|
||||
<title><filename>package_rpm.bbclass</filename></title>
|
||||
|
||||
<para>
|
||||
The <filename>package_deb</filename> class
|
||||
The <filename>package_rpm</filename> class
|
||||
provides support for creating packages that use the
|
||||
<filename>.rpm</filename> file format.
|
||||
The class ensures the packages are written out to the
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
version="1.0">
|
||||
|
||||
<xsl:import
|
||||
href="http://docbook.sourceforge.net/release/xsl/current/eclipse/eclipse3.xsl" />
|
||||
href="http://docbook.sourceforge.net/release/xsl/1.76.1/eclipse/eclipse3.xsl" />
|
||||
|
||||
<xsl:param name="chunker.output.indent" select="'yes'"/>
|
||||
<xsl:param name="chunk.quietly" select="1"/>
|
||||
|
||||
@@ -323,7 +323,7 @@
|
||||
|
||||
<para>
|
||||
If you do not provide a port number with the script, the
|
||||
BitBake server at port "12345" is started.
|
||||
BitBake server starts at a randomnly selected port.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -373,7 +373,7 @@
|
||||
<filename>source</filename> the script, the Build Directory is
|
||||
created using that name.
|
||||
For example, the following command starts the BitBake server using
|
||||
the default port "12345" and creates a Build Directory named
|
||||
a randomnly selected port and creates a Build Directory named
|
||||
<filename>mybuilds</filename> that is outside of the
|
||||
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>:
|
||||
<literallayout class='monospaced'>
|
||||
@@ -522,9 +522,7 @@
|
||||
which are directory trees, traversed (or walked) by BitBake.
|
||||
The <filename>bblayers.conf</filename> file uses the
|
||||
<link linkend='var-BBLAYERS'><filename>BBLAYERS</filename></link>
|
||||
variable to list the layers BitBake tries to find, and uses the
|
||||
<link linkend='var-BBLAYERS_NON_REMOVABLE'><filename>BBLAYERS_NON_REMOVABLE</filename></link>
|
||||
variable to list layers that must not be removed.
|
||||
variable to list the layers BitBake tries to find.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
@@ -193,6 +193,8 @@ h3.author {
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
/* Use this set when you decide to get the images in for variables.
|
||||
|
||||
div.glossary dl,
|
||||
div.variablelist dl {
|
||||
}
|
||||
@@ -225,6 +227,43 @@ div.variablelist dl {
|
||||
.glossdeffirst {
|
||||
text-indent: -70px;
|
||||
}
|
||||
*/
|
||||
|
||||
/* Start of non-image set */
|
||||
|
||||
div.glossary dl,
|
||||
div.variablelist dl {
|
||||
}
|
||||
|
||||
.glossary dl dt,
|
||||
.variablelist dl dt,
|
||||
.variablelist dl dt span.term {
|
||||
font-weight: normal;
|
||||
width: 20em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.variablelist dl dt {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
|
||||
.glossary dl dd,
|
||||
.variablelist dl dd {
|
||||
margin-top: 0em;
|
||||
margin-left: 25.5em;
|
||||
}
|
||||
|
||||
.glossary dd p,
|
||||
.variablelist dd p {
|
||||
margin-top: -1.3em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.glossdeffirst {
|
||||
text-indent: 0px;
|
||||
}
|
||||
|
||||
/* End of non-image set */
|
||||
|
||||
div.calloutlist table td {
|
||||
padding: 0em 0em 0em 0em;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -93,19 +93,10 @@
|
||||
<listitem><para><emphasis>
|
||||
<ulink url='http://www.openembedded.org/wiki/BitBake'>
|
||||
BitBake</ulink>:</emphasis> The tool used to process metadata.</para></listitem>
|
||||
<listitem><para><emphasis>
|
||||
<ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual</ulink>:</emphasis>
|
||||
A comprehensive guide to the BitBake tool.
|
||||
In the
|
||||
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>,
|
||||
you can find the BitBake User Manual in the
|
||||
<filename>bitbake/doc/bitbake-user-manual</filename> directory.
|
||||
</para></listitem>
|
||||
<listitem><para><emphasis>
|
||||
<ulink url='http://wiki.qemu.org/Index.html'>QEMU</ulink>:
|
||||
</emphasis> An open source machine emulator and virtualizer.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
For more links, see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#other-information'>Other Information</ulink>"
|
||||
section in the Yocto Project Development Manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
|
||||
22
documentation/template/embedded_video.xsl
Normal file
22
documentation/template/embedded_video.xsl
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:d="http://docbook.org/ns/docbook">
|
||||
|
||||
<xsl:output method="html" />
|
||||
|
||||
<xsl:template match="/d:chapter/d:section/d:mediaobject">
|
||||
<xsl:for-each select=".">
|
||||
<xsl:variable name="vid_url">
|
||||
<xsl:value-of select="./d:videoobject/d:videodata/@fileref" />
|
||||
</xsl:variable>
|
||||
<div style="text-align: center; margin: auto">
|
||||
<object type="application/x-shockwave-flash" width="640" height="420" data="{$vid_url}?color2=FBE9EC&showsearch=0&version=3&modestbranding=1&fs=1">
|
||||
<param name="movie" value="{$vid_url}?color2=FBE9EC&showsearch=0&version=3&modestbranding=1&fs=1" />
|
||||
<param name="allowFullScreen" value="true" />
|
||||
<param name="allowscriptaccess" value="always" />
|
||||
</object>
|
||||
</div>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
BIN
documentation/toaster-manual/figures/hosted-service.png
Normal file
BIN
documentation/toaster-manual/figures/hosted-service.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
BIN
documentation/toaster-manual/figures/simple-configuration.png
Normal file
BIN
documentation/toaster-manual/figures/simple-configuration.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
@@ -2,12 +2,14 @@
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
|
||||
|
||||
<xsl:import href="http://docbook.sourceforge.net/release/xsl/1.76.1/xhtml/docbook.xsl" />
|
||||
<!-- <xsl:import href="../template/1.76.1/docbook-xsl-1.76.1/xhtml/docbook.xsl" /> -->
|
||||
|
||||
<xsl:include href="../template/permalinks.xsl"/>
|
||||
<xsl:include href="../template/section.title.xsl"/>
|
||||
<xsl:include href="../template/component.title.xsl"/>
|
||||
<xsl:include href="../template/division.title.xsl"/>
|
||||
<xsl:include href="../template/formal.object.heading.xsl"/>
|
||||
<xsl:include href="../template/embedded_video.xsl"/>
|
||||
|
||||
<xsl:param name="html.stylesheet" select="'toaster-manual-style.css'" />
|
||||
<xsl:param name="chapter.autolabel" select="1" />
|
||||
|
||||
@@ -6,95 +6,12 @@
|
||||
<title>Introduction</title>
|
||||
|
||||
<para>
|
||||
Toaster is web interface to the OpenEmbedded build system, which uses
|
||||
BitBake.
|
||||
The interface allows you to access a datastore that retains build
|
||||
information and report out on the information.
|
||||
</para>
|
||||
<!--THE FOLLOWING IS DETAIL THAT I THINK BELEN WANTED OUT FOR THE MOMENT
|
||||
The interface is based on a Representational State Transfer
|
||||
(REST) API that queries for and returns build information using
|
||||
<filename>GET</filename> and <filename>JSON</filename>.
|
||||
These types of search operations retrieve sets of objects from
|
||||
a datastore used to collect build information.
|
||||
The results contain all the data for the objects being returned.
|
||||
You can order the results of the search by key and the search
|
||||
parameters are consistent for all object types.
|
||||
</para>
|
||||
-->
|
||||
|
||||
<para>
|
||||
You can use Toaster in several different modes:
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis>Analysis Mode:</emphasis>
|
||||
In this mode, you can record builds and statistics.
|
||||
In Analysis Mode, you have direct access to the
|
||||
<filename>bitbake</filename> command, which you use to build
|
||||
images.</para>
|
||||
<para>Analysis Mode requires you to have first started
|
||||
Toaster and then to initiate your build using the
|
||||
<filename>bitbake</filename> command from the shell.
|
||||
Toaster must be started before the build or it will not
|
||||
collect build data.
|
||||
</para></listitem>
|
||||
<listitem><para><emphasis>Build Mode:</emphasis>
|
||||
In this mode, Toaster handles the build configuration GUI
|
||||
(through project pages) and build scheduling and execution.
|
||||
In this mode, all your interaction with the build system
|
||||
happens through the web interface.
|
||||
You do not have direct access to the
|
||||
<filename>bitbake</filename> command.</para>
|
||||
<para>Using this mode, you configure and start your builds
|
||||
with Toaster's GUI.
|
||||
Each configuration is a project, which requires version and
|
||||
build system selection.
|
||||
As shipped, Toaster supports the Yocto Project releases
|
||||
1.8 and beyond.
|
||||
Aside from these supported releases, you can also select
|
||||
the "Local Yocto Project", which allows you to use your
|
||||
local clone of the Yocto Project
|
||||
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
|
||||
(e.g. <filename>poky</filename>).</para>
|
||||
<para>Build Mode also works two separate ways: locally and
|
||||
remotely.
|
||||
While you can use Build Mode locally, it is best to use
|
||||
Toaster's Build Mode through a hosted service where it can
|
||||
shared by multiple user.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Using Toaster, you can do the following:
|
||||
<note><title>REVIEWER NOTE</title>
|
||||
Belen suggested we split this list out into things that
|
||||
Analysis Mode and Build Mode can do.
|
||||
Also, we can structure the lists so the Build Mode list
|
||||
leverages off what is listed for Analysis Mode.
|
||||
I do not know the information for the complete lists.
|
||||
Someone needs to help me out here.
|
||||
For now, I am leaving the list as follows and will need some
|
||||
information.
|
||||
</note>
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
See information about the tasks executed
|
||||
and reused during the build.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
See what is built (recipes and
|
||||
packages) and what packages were installed into the final
|
||||
image.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
See performance-related information such
|
||||
as build time, CPU usage, and disk I/O.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Examine error, warning and trace messages
|
||||
to aid in debugging.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
Toaster is a web interface to the Yocto Project's
|
||||
<ulink url='&YOCTO_DOCS_DEV_URL;#build-system-term'>OpenEmbedded build system</ulink>.
|
||||
The interface enables you to configure and run your builds.
|
||||
Information about builds is collected and stored in a database.
|
||||
You can use Toaster to configure and start builds on multiple
|
||||
remote build servers.
|
||||
</para>
|
||||
|
||||
<note>
|
||||
@@ -116,10 +33,131 @@
|
||||
</para>
|
||||
</note>
|
||||
|
||||
<para>
|
||||
The remainder of this manual describes what you need to have in
|
||||
place to use Toaster, how to start it, use it, and stop it.
|
||||
</para>
|
||||
<section id='intro-modes'>
|
||||
<title>Toaster Operational Modes</title>
|
||||
|
||||
<para>
|
||||
You can use Toaster in Analysis Mode or Build Mode:
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis>Analysis Mode:</emphasis>
|
||||
In Analysis Mode, you can record builds and statistics.
|
||||
In this Mode, you directly access the
|
||||
<filename>bitbake</filename> command, which you then use to
|
||||
build images.</para>
|
||||
<para>Analysis Mode requires you to have first started
|
||||
Toaster and then to initiate your build using the
|
||||
<filename>bitbake</filename> command from the shell.
|
||||
Toaster must be started before the build or it will not
|
||||
collect build data.</para>
|
||||
<para>Toaster has the following capabilities in
|
||||
Analysis Mode:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
See what was built (recipes and packages) and what
|
||||
packages were installed into your final image.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Browse the directory structure of your image.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
See the value of all variables in your build
|
||||
configuration, and which files set each value.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Examine error, warning and trace messages to aid
|
||||
in debugging.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
See information about the BitBake tasks executed
|
||||
and reused during your build, including those that
|
||||
used shared state.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
See dependency relationships between recipes,
|
||||
packages and tasks
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
See performance information such as build time,
|
||||
task time, CPU usage, and disk I/O.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para></listitem>
|
||||
<listitem><para><emphasis>Build Mode:</emphasis>
|
||||
In Build Mode, Toaster handles the build configuration,
|
||||
scheduling and execution.
|
||||
In this mode, all your interaction with the build system
|
||||
happens through the web interface.
|
||||
You do not have direct access to the
|
||||
<filename>bitbake</filename> command.</para>
|
||||
<para>Using this mode, you configure and start your builds
|
||||
within Toaster's GUI.
|
||||
Each project can be configured for a specific version
|
||||
of the build system.
|
||||
As shipped, Toaster supports Yocto Project Releases 1.7 and
|
||||
beyond.</para>
|
||||
<para>Toaster has all the same capabilities in Build Mode
|
||||
as it does in Analysis Mode plus the following:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
Browse layers listed in the various
|
||||
<link linkend='layer-source'>layer sources</link>
|
||||
that are available in your project (e.g. the
|
||||
OpenEmbedded Metadata Index at
|
||||
<ulink url='http://layers.openembedded.org/layerindex/'></ulink>).
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Import your own layers for building.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Add and remove layers from your configuration.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Set configuration variables.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Select a target or multiple targets to build.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Start your builds.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='toaster-installation-options'>
|
||||
<title>Installation Options</title>
|
||||
|
||||
<para>
|
||||
You can set Toaster up to run as a local instance or as a shared
|
||||
hosted service.
|
||||
Regardless of how you set up Toaster, both Analysis and Build
|
||||
Modes are available.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
When Toaster is set up as a local instance, all the components
|
||||
reside on a single build host.
|
||||
Fundamentally, a local instance of Toaster is suited for a single
|
||||
user developing on a single build host.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<imagedata fileref="figures/simple-configuration.png" align="center" width="6in" depth="1.5in" />
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Toaster as a hosted service is suited for multiple users
|
||||
developing across several build hosts.
|
||||
When Toaster is set up as a hosted service, its components can
|
||||
be spread across several machines:
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<imagedata fileref="figures/hosted-service.png" align="center" width="6in" depth="3.5in" />
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<!--THIS EXTRA INFORMATION PROBABLY WILL GO AWAY
|
||||
For additional information on installing and running Toaster, see the
|
||||
|
||||
1073
documentation/toaster-manual/toaster-manual-reference.xml
Normal file
1073
documentation/toaster-manual/toaster-manual-reference.xml
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -9,8 +9,6 @@
|
||||
<para>
|
||||
This chapter describes how you need to prepare your system in order to
|
||||
use Toaster.
|
||||
Toaster requires some packages that you must have installed before
|
||||
trying to run Toaster.
|
||||
</para>
|
||||
|
||||
<section id='toaster-setting-up-the-basic-system-requirements'>
|
||||
@@ -30,54 +28,114 @@
|
||||
<title>Establishing Toaster System Dependencies</title>
|
||||
|
||||
<para>
|
||||
Toaster requires extra Python dependencies that Bitbake
|
||||
does not need in order to run.
|
||||
In order to make it easy to run Toaster, a requirements file
|
||||
located in the root directory of
|
||||
Toaster requires extra Python dependencies and
|
||||
<ulink url='http://www.libslack.org/daemon/'><filename>daemon</filename></ulink>
|
||||
in order to run.
|
||||
A Toaster requirements file named
|
||||
<filename>toaster-requirements.txt</filename> defines the
|
||||
Python dependencies.
|
||||
The requirements file is located in the
|
||||
<filename>bitbake</filename> directory, which is located in the
|
||||
root directory of the
|
||||
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
|
||||
<filename>bitbake/</filename>
|
||||
(e.g. <filename>poky/bitbake/toaster-requirements.txt</filename>).
|
||||
The dependencies appear in a <filename>pip</filename>,
|
||||
install-compatible format:
|
||||
<literallayout class='monospaced'>
|
||||
Django==1.6
|
||||
South==0.8.4
|
||||
argparse==1.2.1
|
||||
wsgiref==0.1.2
|
||||
</literallayout>
|
||||
Follow these steps to get set up:
|
||||
<orderedlist>
|
||||
<listitem><para><emphasis>Install <filename>virtualenv</filename>:</emphasis>
|
||||
<filename>virtualenv</filename> is a tool to create
|
||||
isolated Python environments by creating folders that
|
||||
contain all the necessary executables to use the packages
|
||||
that Python projects need.
|
||||
You can use <filename>pip</filename> to install
|
||||
<filename>virtualenv</filename>:
|
||||
<literallayout class='monospaced'>
|
||||
$ pip install virtualenv
|
||||
</literallayout>
|
||||
</para></listitem>
|
||||
<listitem><para><emphasis>Create and activate a virtual environment:</emphasis>
|
||||
<literallayout class='monospaced'>
|
||||
install-compatible format.
|
||||
</para>
|
||||
|
||||
<section id='toaster-optional-virtual-environment'>
|
||||
<title>Optionally Setting Up a Python Virtual Environment</title>
|
||||
|
||||
<para>
|
||||
It is highly recommended that you use a Python virtual
|
||||
environment that allows you to maintain a dedicated Python
|
||||
executable and its own set of installed modules.
|
||||
Doing so separates the executable from the Python and modules
|
||||
provided by the operating system and therefore avoids any
|
||||
version conflicts.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Follow these steps to set up your virtual environment.
|
||||
These steps assume a Ubuntu distribution:
|
||||
<orderedlist>
|
||||
<listitem><para><emphasis>Install <filename>virtualenv</filename>:</emphasis>
|
||||
Install the supported
|
||||
<filename>python-virtualenv</filename> package from your
|
||||
distribution rather than using <filename>pip</filename>.
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo apt-get install python-virtualenv
|
||||
</literallayout>
|
||||
</para></listitem>
|
||||
<listitem><para><emphasis>Create and Activate a Virtual Environment:</emphasis>
|
||||
<literallayout class='monospaced'>
|
||||
$ virtualenv venv
|
||||
$ source venv/bin/activate
|
||||
</literallayout>
|
||||
</para></listitem>
|
||||
<listitem><para><emphasis>Use <filename>pip</filename> to install needed packages:</emphasis>
|
||||
</literallayout>
|
||||
</para></listitem>
|
||||
</orderedlist>
|
||||
<note>
|
||||
If you do choose to set up a virtual environment in
|
||||
which to run Toaster, you must initialize that
|
||||
virtual environment each time you want to start
|
||||
Toaster.
|
||||
Use the following to initialize the environment just
|
||||
before you start Toaster:
|
||||
<literallayout class='monospaced'>
|
||||
$ pip install -r bitbake/toaster-requirements.txt
|
||||
$ source venv/bin/activate
|
||||
</literallayout>
|
||||
</para></listitem>
|
||||
</orderedlist>
|
||||
Once you complete these steps, you execute in a lightweight
|
||||
"virtual environment” with its own site directories that are
|
||||
optionally isolated from system site directories.
|
||||
The virtual environment has its own Python binary
|
||||
(allowing creation of environments with various Python versions)
|
||||
and can have its own independent set of installed Python packages
|
||||
in its site directories.
|
||||
</para>
|
||||
</section>
|
||||
</note>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='toaster-load-packages'>
|
||||
<title>Install Toaster Packages</title>
|
||||
|
||||
<para>
|
||||
You need to install the packages that Toaster requires.
|
||||
Use this command:
|
||||
<literallayout class='monospaced'>
|
||||
$ pip install -r bitbake/toaster-requirements.txt
|
||||
</literallayout>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='toaster-install-daemon'>
|
||||
<title>Install <filename>daemon</filename></title>
|
||||
|
||||
<para>
|
||||
Toaster depends on
|
||||
<ulink url='http://www.libslack.org/daemon/'><filename>daemon</filename></ulink>.
|
||||
Depending on your distribution, how you install
|
||||
<filename>daemon</filename> differs:
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis>Debian-Based Systems:</emphasis>
|
||||
If you are running a Debian-based distribution,
|
||||
install <filename>daemon</filename> using the
|
||||
following command:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo apt-get install daemon
|
||||
</literallayout>
|
||||
</para></listitem>
|
||||
<listitem><para><emphasis>Non-Debian-Based Systems:</emphasis>
|
||||
If you are not running a Debian-based distribution
|
||||
(Redhat-based distribution such as Fedora),
|
||||
you need to download the file relevant to the
|
||||
architecture and then install
|
||||
<filename>daemon</filename> manually.
|
||||
Following are the commands for 64-bit distributions:
|
||||
<literallayout class='monospaced'>
|
||||
$ wget http://libslack.org/daemon/download/daemon-0.6.4-1.x86_64.rpm
|
||||
$ sudo rpm -i daemon-0.6.4-1.x86_64.rpm
|
||||
</literallayout>
|
||||
Here are the commands for a 32-bit distribution:
|
||||
<literallayout class='monospaced'>
|
||||
$ wget http://libslack.org/daemon/download/daemon-0.6.4-1.i686.rpm
|
||||
$ sudo rpm -i daemon-0.6.4-1.i686.rpm
|
||||
</literallayout>
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
</chapter>
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
<revhistory>
|
||||
<revision>
|
||||
<revnumber>1.8</revnumber>
|
||||
<date>Sometime in 2015</date>
|
||||
<date>April 2015</date>
|
||||
<revremark>Released with the Yocto Project 1.8 Release.</revremark>
|
||||
</revision>
|
||||
</revhistory>
|
||||
@@ -51,7 +51,7 @@
|
||||
<note>
|
||||
For the latest version of this manual associated with this
|
||||
Yocto Project release, see the
|
||||
<ulink url='&YOCTO_DOCS_ADT_URL;'>Toaster User Manual</ulink>
|
||||
<ulink url='&YOCTO_DOCS_TOAST_URL;'>Toaster User Manual</ulink>
|
||||
from the Yocto Project website.
|
||||
</note>
|
||||
|
||||
@@ -65,6 +65,8 @@
|
||||
|
||||
<xi:include href="toaster-manual-setup-and-use.xml"/>
|
||||
|
||||
<xi:include href="toaster-manual-reference.xml"/>
|
||||
|
||||
</book>
|
||||
<!--
|
||||
vim: expandtab tw=80 ts=4
|
||||
|
||||
@@ -19,6 +19,7 @@ s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/1.8\/dev-manual\/dev-man
|
||||
s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/1.8\/kernel-dev\/kernel-dev.html#/\"link\" href=\"#/g
|
||||
s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/1.8\/profile-manual\/profile-manual.html#/\"link\" href=\"#/g
|
||||
s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/1.8\/ref-manual\/ref-manual.html#/\"link\" href=\"#/g
|
||||
s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/1.8\/toaster-manual\/toaster-manual.html#/\"link\" href=\"#/g
|
||||
s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/1.8\/yocto-project-qs\/yocto-project-qs.html#/\"link\" href=\"#/g
|
||||
|
||||
# Process cases where just an external manual is referenced without an id anchor
|
||||
@@ -29,4 +30,4 @@ s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/1.8\/bsp-guide\
|
||||
s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/1.8\/profile-manual\/profile-manual.html\" target=\"_top\">Yocto Project Profiling and Tracing Manual<\/a>/Yocto Project Profiling and Tracing Manual/g
|
||||
s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/1.8\/kernel-dev\/kernel-dev.html\" target=\"_top\">Yocto Project Linux Kernel Development Manual<\/a>/Yocto Project Linux Kernel Development Manual/g
|
||||
s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/1.8\/ref-manual\/ref-manual.html\" target=\"_top\">Yocto Project Reference Manual<\/a>/Yocto Project Reference Manual/g
|
||||
s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/1.8\/toaster-manual\/toaster-manual.html\" target=\"_top\">Yocto Project Toaster User Manual<\/a>/Yocto Project Toaster User Manual/g
|
||||
s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/1.8\/toaster-manual\/toaster-manual.html\" target=\"_top\">Toaster User Manual<\/a>/Toaster User Manual/g
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
version="1.0">
|
||||
|
||||
<xsl:import
|
||||
href="http://docbook.sourceforge.net/release/xsl/current/eclipse/eclipse3.xsl" />
|
||||
href="http://docbook.sourceforge.net/release/xsl/1.76.1/eclipse/eclipse3.xsl" />
|
||||
<xsl:import href="yocto-project-qs-titlepage.xsl"/>
|
||||
|
||||
<xsl:param name="chunker.output.indent" select="'yes'"/>
|
||||
|
||||
@@ -571,7 +571,7 @@
|
||||
$ bitbake -k core-image-sato
|
||||
</literallayout>
|
||||
<note>
|
||||
BitBake requires Python 2.6 or 2.7. For more information on
|
||||
BitBake requires Python 2.7. For more information on
|
||||
this requirement, see the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#required-git-tar-and-python-versions'>Required Git, tar, and Python</ulink>"
|
||||
section in the Yocto Project Reference Manual.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#
|
||||
# This is a list for tracking status of package relative to Major
|
||||
# distributions such as Fedora, Ubuntu, Debian, ... The package
|
||||
# distributions such as Fedora, Ubuntu, Debian, ... The package
|
||||
# name is the major distribution equivalent to the name used in oe-core
|
||||
#
|
||||
# The format is as a bitbake variable override for each recipe
|
||||
@@ -25,8 +25,10 @@ DISTRO_PN_ALIAS_pn-blktool = "Debian=blktool Mandriva=blktool"
|
||||
DISTRO_PN_ALIAS_pn-bluez4 = "Ubuntu=bluez Debian=bluez-utils"
|
||||
DISTRO_PN_ALIAS_pn-bluez5 = "Fedora=bluez Opensuse=bluez"
|
||||
DISTRO_PN_ALIAS_pn-bluez-dtl1-workaround = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-bootchart2 = "Fedora=bootchart2 Opensuse=bootchart"
|
||||
DISTRO_PN_ALIAS_pn-btrfs-tools = "Debian=btrfs-tools Fedora=btrfs-progs"
|
||||
DISTRO_PN_ALIAS_pn-build-appliance-image = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-build-compare = "Opensuse=build-compare Fedora=build-compare"
|
||||
DISTRO_PN_ALIAS_pn-builder = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-buildtools-tarball = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-calibrateproto = "OSPDT upstream=http://cgit.freedesktop.org/xorg/proto/calibrateproto"
|
||||
@@ -54,6 +56,7 @@ DISTRO_PN_ALIAS_pn-core-image-base = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-clutter = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-directfb = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-full-cmdline = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-kernel-dev = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-lsb = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-lsb-dev = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-lsb-qt3 = "OE-Core"
|
||||
@@ -67,14 +70,19 @@ DISTRO_PN_ALIAS_pn-core-image-rt-sdk = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-sato = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-sato-dev = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-sato-sdk = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-testmaster = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-testmaster-initramfs = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-weston = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-x11 = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-cross-localedef = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-cryptodev-linux = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-cryptodev-module = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-cryptodev-tests = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-cwautomacros = "OSPDT upstream=http://cwautomacros.berlios.de/"
|
||||
DISTRO_PN_ALIAS_pn-damageproto = "Meego=xorg-x11-proto-damageproto"
|
||||
DISTRO_PN_ALIAS_pn-db = "Debian=db5.1 Ubuntu=db5.1"
|
||||
DISTRO_PN_ALIAS_pn-dbus-ptest = "Fedora=dbus Ubuntu=dbus"
|
||||
DISTRO_PN_ALIAS_pn-dbus-test = "Fedora=dbus Ubuntu=dbus"
|
||||
DISTRO_PN_ALIAS_pn-dbus-wait = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-depmodwrapper-cross = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-directfb-examples = "Debian=directfb Fedora=directfb"
|
||||
@@ -85,7 +93,11 @@ DISTRO_PN_ALIAS_pn-docbook-dsssl-stylesheets = "Fedora=docbook-style-dsssl Ubunt
|
||||
DISTRO_PN_ALIAS_pn-docbook-sgml-dtd-3.1 = "Fedora=docbook-dtds Mandriva=docbook-dtd31-sgml"
|
||||
DISTRO_PN_ALIAS_pn-docbook-sgml-dtd-4.1 = "Fedora=docbook-dtds Mandriva=docbook-dtd41-sgml"
|
||||
DISTRO_PN_ALIAS_pn-docbook-sgml-dtd-4.5 = "Fedora=docbook-dtds Mandriva=docbook-dtd42-sgml"
|
||||
DISTRO_PN_ALIAS_pn-docbook-xml-dtd4 = "Ubuntu=docbook-xml Fedora=docbook-dtds"
|
||||
DISTRO_PN_ALIAS_pn-docbook-xml-dtd4-native = "Ubuntu=docbook-xml Fedora=docbook-dtds"
|
||||
DISTRO_PN_ALIAS_pn-docbook-xsl-stylesheets = "Fedora=docbook-xsl-stylesheets Opensuse=docbook-xsl-stylesheets"
|
||||
DISTRO_PN_ALIAS_pn-dri2proto = "Meego=xorg-x11-proto-dri2proto"
|
||||
DISTRO_PN_ALIAS_pn-dri3proto = "Fedora=dri3proto Opensuse=dri3proto-devel"
|
||||
DISTRO_PN_ALIAS_pn-dropbear = "Debian=dropbear Ubuntu=dropbear"
|
||||
DISTRO_PN_ALIAS_pn-dtc = "Fedora=dtc Ubuntu=dtc"
|
||||
DISTRO_PN_ALIAS_pn-eds-tools = "OpenedHand"
|
||||
@@ -112,17 +124,25 @@ DISTRO_PN_ALIAS_pn-gail = "Fedora=gail Ubuntu=libgail-3-0"
|
||||
DISTRO_PN_ALIAS_pn-gaku = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-galago-daemon = "Debian=galago-daemon Ubuntu=galago-daemon"
|
||||
DISTRO_PN_ALIAS_pn-gcc-cross-initial = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-gcc-cross-initial-i586 = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-gcc-crosssdk-initial = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-gcc-crosssdk-initial-x86_64 = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-gccmakedep = "Mandriva=gccmakedep Ubuntu=xutils-dev"
|
||||
DISTRO_PN_ALIAS_pn-gcc-runtime = "Ubuntu=gcc Fedora=gcc"
|
||||
DISTRO_PN_ALIAS_pn-gcc-sanitizers = "Ubuntu=gcc Fedora=gcc"
|
||||
DISTRO_PN_ALIAS_pn-gcc-source = "Ubuntu=gcc Fedora=gcc"
|
||||
DISTRO_PN_ALIAS_pn-gconf-dbus = "Meego=GConf-dbus"
|
||||
DISTRO_PN_ALIAS_pn-gdk-pixbuf = "Debian=libgdk-pixbuf2.0 Fedora=gdk-pixbuf"
|
||||
DISTRO_PN_ALIAS_pn-gdk-pixbuf-csource = "Debian=libgdk-pixbuf2.0-0 Fedora=gdk-pixbuf2"
|
||||
DISTRO_PN_ALIAS_pn-gettext-minimal = "Debian=gettext Fedora=gettext"
|
||||
DISTRO_PN_ALIAS_pn-glib-2.0 = "Meego=glib2 Fedora=glib2 OpenSuSE=glib2 Ubuntu=glib2.0 Mandriva=glib2.0 Debian=glib2.0"
|
||||
DISTRO_PN_ALIAS_pn-glibc-locale = "OpenSuSE=glibc-locale Fedora=glibc-devel"
|
||||
DISTRO_PN_ALIAS_pn-glibc-mtrace = "Fedora=glibc-utils Ubuntu=libc-dev-bin"
|
||||
DISTRO_PN_ALIAS_pn-glibc-scripts = "Fedora=glibc Ubuntu=libc-bin"
|
||||
DISTRO_PN_ALIAS_pn-glproto = "Meego=xorg-x11-proto-glproto"
|
||||
DISTRO_PN_ALIAS_pn-gnome-desktop-testing = "Debian=gnome-desktop-testing Fedora=gnome-desktop-testing"
|
||||
DISTRO_PN_ALIAS_pn-gnu-config = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-gptfdisk = "Fedora=gdisk Ubuntu=gdisk"
|
||||
DISTRO_PN_ALIAS_pn-grub-efi = "Debian=grub-efi Fedora=grub2-efi"
|
||||
DISTRO_PN_ALIAS_pn-grub-efi-i586 = "Debian=grub-efi Fedora=grub2-efi"
|
||||
DISTRO_PN_ALIAS_pn-grub-efi-x86-64 = "Debian=grub-efi Fedora=grub2-efi"
|
||||
@@ -131,10 +151,11 @@ DISTRO_PN_ALIAS_pn-gst-fluendo-mp3 = "Debian=gstreamer0.10-fluendo-mp3 Ubuntu=gs
|
||||
DISTRO_PN_ALIAS_pn-gst-fluendo-mpegdemux = "Ubuntu=gstreamer0.10-fluendo-mpegdemux Debian=gstreamer0.10-fluendo-mpegdemux"
|
||||
DISTRO_PN_ALIAS_pn-gst-meta-base = "Meego=gstreamer Fedora=gstreamer OpenSuSE=gstreamer Ubuntu=gstreamer0.10 Mandriva=gstreamer0.10 Debian=gstreamer0.10"
|
||||
DISTRO_PN_ALIAS_pn-gst-openmax = "OSPDT upstream=http://cgit.freedesktop.org/gstreamer/gst-openmax"
|
||||
DISTRO_PN_ALIAS_pn-gst-player = "Ubuntu=gst-player Fedora=gstreamer-player"
|
||||
DISTRO_PN_ALIAS_pn-gst-plugin-bluetooth = "Ubuntu=libgstreamer-plugins-base Fedora=gstreamer-plugins-base"
|
||||
DISTRO_PN_ALIAS_pn-gst-plugins-bad = "Fedora=gstreamer-plugins-bad-free OpenSuSE=gstreamer-plugins-bad Debian=gst-plugins-bad0.10"
|
||||
DISTRO_PN_ALIAS_pn-gst-plugins-base = "Meego=gst-plugins-base Fedora=gstreamer-plugins-base OpenSuSE=gstreamer-plugins-base Ubuntu=gst-plugins-base0.10 Mandriva=gstreamer0.10-plugins-base Debian=gst-plugins-base0.10"
|
||||
DISTRO_PN_ALIAS_pn-gst-plugins-gl = "Debian=gstreamer0.10-plugins-gl OpenSuSE=gstreamer-0_10-plugins-gl"
|
||||
DISTRO_PN_ALIAS_pn-gst-plugins-gl = "Debian=gstreamer0.10-plugins-gl OpenSuSE=gstreamer-0_10-plugins-gl"
|
||||
DISTRO_PN_ALIAS_pn-gst-plugins-good = "Meego=gst-plugins-good Fedora=gstreamer-plugins-good OpenSuSE=gstreamer-plugins-good Ubuntu=gst-plugins-good0.10 Mandriva=gstreamer0.10-plugins-good Debian=gst-plugins-good0.10"
|
||||
DISTRO_PN_ALIAS_pn-gst-plugins-ugly = "OpenSuSE=gstreamer-plugins-ugly Mandriva=gstreamer0.10-plugins-ugly Debian=gst-plugins-ugly0.10"
|
||||
DISTRO_PN_ALIAS_pn-gstreamer1.0 = "Debian=gstreamer1.0 Ubuntu=gstreamer1.0"
|
||||
@@ -142,6 +163,7 @@ DISTRO_PN_ALIAS_pn-gstreamer1.0-meta-base = "Meego=gstreamer Fedora=gstreamer Op
|
||||
DISTRO_PN_ALIAS_pn-gstreamer1.0-plugins-bad = "Debian=gstreamer1.0-plugins-bad Ubuntu=gstreamer1.0-plugins-bad"
|
||||
DISTRO_PN_ALIAS_pn-gstreamer1.0-plugins-base = "Debian=gstreamer1.0-plugins-base Ubuntu=gstreamer1.0-plugins-base"
|
||||
DISTRO_PN_ALIAS_pn-gstreamer1.0-plugins-good = "Debian=gstreamer1.0-plugins-good Ubuntu=gstreamer1.0-plugins-bad"
|
||||
DISTRO_PN_ALIAS_pn-gstreamer1.0-rtsp-server = "Ubuntu=gstreamer0.10-rtsp Fedora=gstreamer-rtsp"
|
||||
DISTRO_PN_ALIAS_pn-gstreamer = "Debian=gstreamer1.0 Ubuntu=gstreamer1.0"
|
||||
DISTRO_PN_ALIAS_pn-gtk+ = "Meego=gtk2 Fedora=gtk2 OpenSuSE=gtk2 Ubuntu=gtk+2.0 Mandriva=gtk+2.0 Debian=gtk+2.0"
|
||||
DISTRO_PN_ALIAS_pn-gtk+3 = "Ubuntu=gtk+3.0 Debian=gtk+3.0 Fedora=gtk3"
|
||||
@@ -169,6 +191,7 @@ DISTRO_PN_ALIAS_pn-iproute2 = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-jpeg = "OpenSuSE=libjpeg Ubuntu=libjpeg62"
|
||||
DISTRO_PN_ALIAS_pn-kbproto = "Meego=xorg-x11-proto-kbproto Ubuntu=x11proto-kb-dev Debian=x11proto-kb-dev"
|
||||
DISTRO_PN_ALIAS_pn-kconfig-frontends = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-kernel-devsrc = "Debian=linux-base Ubuntu=linux"
|
||||
DISTRO_PN_ALIAS_pn-kernelshark = "Mandriva=kernelshark Ubuntu=kernelshark"
|
||||
DISTRO_PN_ALIAS_pn-kern-tools-native = "Windriver"
|
||||
DISTRO_PN_ALIAS_pn-keymaps = "OE-Core"
|
||||
@@ -185,8 +208,10 @@ DISTRO_PN_ALIAS_pn-libclass-isa-perl = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-libdrm-poulsbo = "Debian=libdrm-intel1 Ubuntu=libdrm-intel1"
|
||||
DISTRO_PN_ALIAS_pn-libdumpvalue-perl = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-libenv-perl = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-liberation-fonts = "Ubuntu=fonts-liberation Fedora=liberation-fonts-ttf"
|
||||
DISTRO_PN_ALIAS_pn-libfakekey = "Meego1.0=libfakekey Debian=libfakekey"
|
||||
DISTRO_PN_ALIAS_pn-libfile-checktree-perl = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-libfm-extra = "Opensuse=libfm-extra4 Ubuntu=libfm-extra4"
|
||||
DISTRO_PN_ALIAS_pn-libfribidi = "OpenSuSE=fribidi Ubuntu=fribidi Mandriva=fribidi Debian=fribidi"
|
||||
DISTRO_PN_ALIAS_pn-libgcc = "Debian=libgcc4 Ubuntu=libgcc1 OpenSuSE=libgcc46"
|
||||
DISTRO_PN_ALIAS_pn-libgdbus = "Intel"
|
||||
@@ -198,6 +223,7 @@ DISTRO_PN_ALIAS_pn-libgu = "OpenSuSE=glu OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-libi18n-collate-perl = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-libical = "Ubuntu=libical Fedora=libical"
|
||||
DISTRO_PN_ALIAS_pn-libiconv = "Fedora=mingw-libiconv Opensuse=cross-mingw-libiconv"
|
||||
DISTRO_PN_ALIAS_pn-libinput = "Ubuntu=libinput0 Fedora=libinput0"
|
||||
DISTRO_PN_ALIAS_pn-libjson = "Ubuntu=libjson0-dev Debian=libjson0-dev"
|
||||
DISTRO_PN_ALIAS_pn-libksba = "Fedora=libksba Debian=libksba8 Ubuntu=libksba"
|
||||
DISTRO_PN_ALIAS_pn-liblbxutil = "Mandriva=liblbxutil OpenSuse=xorg-x11-devel"
|
||||
@@ -237,6 +263,7 @@ DISTRO_PN_ALIAS_pn-libxsettings-client = "Debian=libxsettings-client0 Ubuntu=lib
|
||||
DISTRO_PN_ALIAS_pn-libxtrap = "Debian=libxtrap6 Fedora=libXTrap"
|
||||
DISTRO_PN_ALIAS_pn-libxxf86misc = "Mandriva=libxxf86misc Fedora=libXxf86misc"
|
||||
DISTRO_PN_ALIAS_pn-linux-dummy = "Intel"
|
||||
DISTRO_PN_ALIAS_pn-linux-firmware = "Fedora=linux-firmware Ubuntu=linux-firmware"
|
||||
DISTRO_PN_ALIAS_pn-linux-libc-headers = "Debian=linux-kernel-headers Ubuntu=linux-kernel-headers"
|
||||
DISTRO_PN_ALIAS_pn-linux-libc-headers-yocto = "Debian=linux-kernel-headers Ubuntu=linux-kernel-headers"
|
||||
DISTRO_PN_ALIAS_pn-linux-yocto = "Debian=linux-base Ubuntu=linux"
|
||||
@@ -272,6 +299,7 @@ DISTRO_PN_ALIAS_pn-menu-cache = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-mesa = "Fedora=mesa Ubuntu=libgl1-mesa-dri"
|
||||
DISTRO_PN_ALIAS_pn-mesa-gl = "Fedora=mesa Ubuntu=libgl1-mesa-dri"
|
||||
DISTRO_PN_ALIAS_pn-mesa-glsl = "Fedora=mesa Ubuntu=libgl1-mesa-dri"
|
||||
DISTRO_PN_ALIAS_pn-meta-environment-extsdk-qemux86 = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-meta-environment-i586 = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-meta-environment-qemux86 = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-meta-environment-qemux86-64 = "OE-Core"
|
||||
@@ -280,6 +308,7 @@ DISTRO_PN_ALIAS_pn-meta-toolchain = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-meta-toolchain-qt = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-meta-toolchain-qte = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-mini-x-session = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-mkelfimage = "Ubuntu=mkelfimage Fedora=mkelfimage"
|
||||
DISTRO_PN_ALIAS_pn-mkfontdir = "Mandriva=mkfontdir Ubuntu=xfonts-utils Fedora=xorg-x11-font-utils"
|
||||
DISTRO_PN_ALIAS_pn-mkfontscale = "Mandriva=mkfontscale Ubuntu=xfonts-utils Fedora=xorg-x11-font-utils"
|
||||
DISTRO_PN_ALIAS_pn-mktemp = "Mandriva=mktemp Fedora=mktemp"
|
||||
@@ -292,6 +321,7 @@ DISTRO_PN_ALIAS_pn-mtd-utils = "Debian=mtd-utils Ubuntu=mtd-utils"
|
||||
DISTRO_PN_ALIAS_pn-mx-1.0 = "Ubuntu=mx Debian=mx Fedora=mx"
|
||||
DISTRO_PN_ALIAS_pn-n450-audio = "Intel"
|
||||
DISTRO_PN_ALIAS_pn-neard = "Intel"
|
||||
DISTRO_PN_ALIAS_pn-neon = "Fedora=neon Opensuse=neon"
|
||||
DISTRO_PN_ALIAS_pn-network-suspend-scripts = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-nfs-export-root = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-npth = "OSPDT"
|
||||
@@ -300,13 +330,15 @@ DISTRO_PN_ALIAS_pn-ocf-linux = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-ofono = "Debian=ofono Ubuntu=ofono"
|
||||
DISTRO_PN_ALIAS_pn-oh-puzzles = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-opkg = "OSPDT upstream=http://svn.openmoko.org/trunk/src/tar"
|
||||
DISTRO_PN_ALIAS_pn-opkg-arch-config = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-opkg-collateral = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-opkg-config-base = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-opkg-nogpg = "OSPDT upstream=http://svn.openmoko.org/trunk/src/tar"
|
||||
DISTRO_PN_ALIAS_pn-opkg-utils = "OSPDT upstream=http://svn.openmoko.org/trunk/src/target/opkg/"
|
||||
DISTRO_PN_ALIAS_pn-opkg-keyrings = "OSPDT upstream=git://git.yoctoproject.org/opkg-utils"
|
||||
DISTRO_PN_ALIAS_pn-opkg-nogpg = "OSPDT upstream=git://git.yoctoproject.org/opkg-utils"
|
||||
DISTRO_PN_ALIAS_pn-opkg-utils = "OSPDT upstream=git://git.yoctoproject.org/opkg-utils"
|
||||
DISTRO_PN_ALIAS_pn-oprofile = "Debian=oprofile Fedora=oprofile"
|
||||
DISTRO_PN_ALIAS_pn-oprofileui = "Fedora=oprofileui Ubuntu=oprofile-gui Debian=oprofile-gui"
|
||||
DISTRO_PN_ALIAS_pn-oprofileui-server = "Fedora=oprofileui Ubuntu=oprofile-gui Debian=oprofile-gui"
|
||||
DISTRO_PN_ALIAS_pn-os-release = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-owl-video = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-base = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core = "OE-Core"
|
||||
@@ -345,6 +377,7 @@ DISTRO_PN_ALIAS_pn-packagegroup-qt-toolchain-target = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-sdk-host = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-self-hosted = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-package-index = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-patchelf = "Opensuse=patchelf Fedora=patchelf"
|
||||
DISTRO_PN_ALIAS_pn-perf = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-piglit = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-pkgconfig = "Ubuntu=pkg-config Fedora=pkgconfig"
|
||||
@@ -362,12 +395,15 @@ DISTRO_PN_ALIAS_pn-pseudo = "Windriver"
|
||||
DISTRO_PN_ALIAS_pn-psplash = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-ptest-runner = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-puzzles = "Debian=sgt-puzzles Fedora=puzzles"
|
||||
DISTRO_PN_ALIAS_pn-python3 = "Fedora=python3 Debian=python3.2"
|
||||
DISTRO_PN_ALIAS_pn-python3-distribute = "Debian=python3-setuptools Fedora=python3-setuptools"
|
||||
DISTRO_PN_ALIAS_pn-python-ZSI = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-python-argparse = "Fedora=python-argparse OpenSuSE=python-argparse"
|
||||
DISTRO_PN_ALIAS_pn-python-dbus = "Ubuntu=python-dbus Debian=python-dbus Mandriva=python-dbus"
|
||||
DISTRO_PN_ALIAS_pn-python-distribute = "Opensuse=python-setuptools Fedora=python-setuptools"
|
||||
DISTRO_PN_ALIAS_pn-python-git = "Debian=python-git Fedora=GitPython"
|
||||
DISTRO_PN_ALIAS_pn-python-gst = "OpenSuSE=python-gstreamer Ubuntu=gst0.10-python Debian=gst0.10-python"
|
||||
DISTRO_PN_ALIAS_pn-python-mako = "Fedora=python-mako Opensuse=python-Mako"
|
||||
DISTRO_PN_ALIAS_pn-python-pycairo = "Meego=pycairo Fedora=pycairo Ubuntu=pycairo Debian=pycairo"
|
||||
DISTRO_PN_ALIAS_pn-python-pycurl = "Debian=python-pycurl Ubuntu=python-pycurl"
|
||||
DISTRO_PN_ALIAS_pn-python-pygobject = "Meego=pygobject2 Fedora=pygobject2 Ubuntu=pygobject Debian=pygobject"
|
||||
@@ -424,9 +460,10 @@ DISTRO_PN_ALIAS_pn-systemd-systemdctl = "Fedora=systemd Ubuntu=systemd"
|
||||
DISTRO_PN_ALIAS_pn-systemtap-uprobes = "Ubuntu=systemtap Debian=systemtap"
|
||||
DISTRO_PN_ALIAS_pn-sysvinit-inittab = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-table = "Intel"
|
||||
DISTRO_PN_ALIAS_pn-tar-replacement = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-tar-replacement = "Fedora=tar Ubuntu=tar"
|
||||
DISTRO_PN_ALIAS_pn-tcf-agent = "Windriver upstream=http://www.eclipse.org/dsdp/tm/"
|
||||
DISTRO_PN_ALIAS_pn-telepathy-python = "Debian=telepathy-python Ubuntu=telepathy-python"
|
||||
DISTRO_PN_ALIAS_pn-texinfo-dummy-native = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-tiny-init = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-tinylogin = "Debian=busybox Ubuntu=busybox Mandriva=busybox"
|
||||
DISTRO_PN_ALIAS_pn-trace-cmd = "Mandriva=trace-cmd Ubuntu=trace-cmd"
|
||||
@@ -441,6 +478,7 @@ DISTRO_PN_ALIAS_pn-u-boot-mkimage = "Ubuntu=uboot-mkimage Debian=uboot-mkimage"
|
||||
DISTRO_PN_ALIAS_pn-udev-extraconf = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-unfs3 = "Debian=unfs3 Fedora=unfs3"
|
||||
DISTRO_PN_ALIAS_pn-unfs-server = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-uninative-tarball = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-update-alternatives-dpkg = "Opensuse=update-alternatives Mandriva=update-alternatives"
|
||||
DISTRO_PN_ALIAS_pn-update-rc.d = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-usbinit = "OE-Core"
|
||||
@@ -477,6 +515,7 @@ DISTRO_PN_ALIAS_pn-xf86-input-synaptics = "Meego=xorg-x11-drv-synaptics Fedora=x
|
||||
DISTRO_PN_ALIAS_pn-xf86-input-vmmouse = "Fedora=xorg-x11-drv-vmmouse Ubuntu=xserver-xorg-input-vmmouse Mandriva=x11-driver-input-vmmouse Debian=xserver-xorg-input-vmmouse"
|
||||
DISTRO_PN_ALIAS_pn-xf86miscproto = "Meego=xorg-x11-proto-xf86miscproto"
|
||||
DISTRO_PN_ALIAS_pn-xf86rushproto = "Meego=xorg-x11-proto-xf86rushproto"
|
||||
DISTRO_PN_ALIAS_pn-xf86-video-cirrus = "Opensuse=xf86-video-cirrus Debian=xserver-xorg-video-cirrus"
|
||||
DISTRO_PN_ALIAS_pn-xf86-video-fbdev = "Ubuntu=xserver-xorg-video-fbdev Debian=xserver-xorg-video-fbdev"
|
||||
DISTRO_PN_ALIAS_pn-xf86-video-intel = "Debian=xserver-xorg-video-intel Fedora=xorg-x11-drv-intel Mandriva=x11-driver-video-intel Meego=xorg-x11-drv-intel Ubuntu=xserver-xorg-video-intel"
|
||||
DISTRO_PN_ALIAS_pn-xf86-video-modesetting = "Debian=xserver-xorg-video-modesetting Fedora=xf86-video-modesetting"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
DISTRO = "poky"
|
||||
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
|
||||
DISTRO_VERSION = "1.7+snapshot-${DATE}"
|
||||
DISTRO_VERSION = "1.8"
|
||||
DISTRO_CODENAME = "fido"
|
||||
SDK_VENDOR = "-pokysdk"
|
||||
SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
|
||||
@@ -72,6 +72,7 @@ CONNECTIVITY_CHECK_URIS ?= " \
|
||||
|
||||
SANITY_TESTED_DISTROS ?= " \
|
||||
poky-1.7 \n \
|
||||
poky-1.8 \n \
|
||||
Ubuntu-14.04 \n \
|
||||
Ubuntu-14.10 \n \
|
||||
Fedora-21 \n \
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"name": "Local Yocto Project",
|
||||
"sourcetype": "local",
|
||||
"apiurl": "../../",
|
||||
"branches": ["HEAD", "master", "dizzy"],
|
||||
"branches": ["HEAD", "master", "fido", "dizzy"],
|
||||
"layers": [
|
||||
{
|
||||
"name": "openembedded-core",
|
||||
@@ -39,13 +39,13 @@
|
||||
"name": "OpenEmbedded",
|
||||
"sourcetype": "layerindex",
|
||||
"apiurl": "http://layers.openembedded.org/layerindex/api/",
|
||||
"branches": ["master", "dizzy"]
|
||||
"branches": ["master", "fido", "dizzy"]
|
||||
},
|
||||
{
|
||||
"name": "Imported layers",
|
||||
"sourcetype": "imported",
|
||||
"apiurl": "",
|
||||
"branches": ["master", "dizzy", "HEAD"]
|
||||
"branches": ["master", "fido", "dizzy", "HEAD"]
|
||||
|
||||
}
|
||||
],
|
||||
@@ -56,6 +56,12 @@
|
||||
"branch": "master",
|
||||
"dirpath": "bitbake"
|
||||
},
|
||||
{
|
||||
"name": "fido",
|
||||
"giturl": "remote:origin",
|
||||
"branch": "fido",
|
||||
"dirpath": "bitbake"
|
||||
},
|
||||
{
|
||||
"name": "dizzy",
|
||||
"giturl": "remote:origin",
|
||||
@@ -80,7 +86,16 @@
|
||||
"branch": "master",
|
||||
"defaultlayers": [ "openembedded-core", "meta-yocto", "meta-yocto-bsp"],
|
||||
"layersourcepriority": { "Imported layers": 99, "Local Yocto Project" : 10, "OpenEmbedded" : 0 },
|
||||
"helptext": "Toaster will run your builds using the <a href=\"http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/\">Yocto Project master branch</a>, where active development takes place. This is not a stable branch, so your builds might not work as expected."
|
||||
"helptext": "Toaster will run your builds using the tip of the <a href=\"http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/\">Yocto Project master branch</a>, where active development takes place. This is not a stable branch, so your builds might not work as expected."
|
||||
},
|
||||
{
|
||||
"name": "fido",
|
||||
"description": "Yocto Project 1.8 Fido",
|
||||
"bitbake": "fido",
|
||||
"branch": "fido",
|
||||
"defaultlayers": [ "openembedded-core", "meta-yocto", "meta-yocto-bsp"],
|
||||
"layersourcepriority": { "Imported layers": 99, "Local Yocto Project" : 10, "OpenEmbedded" : 0 },
|
||||
"helptext": "Toaster will run your builds with the tip of the <a href=\"http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=fido\">Yocto Project 1.8 \"Fido\"</a> branch."
|
||||
},
|
||||
{
|
||||
"name": "dizzy",
|
||||
@@ -89,7 +104,7 @@
|
||||
"branch": "dizzy",
|
||||
"defaultlayers": [ "openembedded-core", "meta-yocto", "meta-yocto-bsp"],
|
||||
"layersourcepriority": { "Imported layers": 99, "Local Yocto Project" : 10, "OpenEmbedded" : 0 },
|
||||
"helptext": "Toaster will run your builds with the <a href=\"https://www.yoctoproject.org/downloads/core/dizzy1\">Yocto Project 1.7 \"Dizzy\"</a> release"
|
||||
"helptext": "Toaster will run your builds with the tip of the <a href=\"http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=dizzy\">Yocto Project 1.7 \"Dizzy\"</a> branch."
|
||||
},
|
||||
{
|
||||
"name": "local",
|
||||
|
||||
@@ -86,7 +86,7 @@ oe_runconf () {
|
||||
${CACHED_CONFIGUREVARS} $cfgscript ${CONFIGUREOPTS} ${EXTRA_OECONF} "$@"
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Configure failed. The contents of all config.log files follows to aid debugging"
|
||||
find ${S} -name config.log -print -exec cat {} \;
|
||||
find ${S} -ignore_readdir_race -name config.log -print -exec cat {} \;
|
||||
bbfatal "oe_runconf failed"
|
||||
fi
|
||||
set -e
|
||||
|
||||
@@ -146,6 +146,7 @@ IMAGE_TYPES = " \
|
||||
cramfs \
|
||||
ext2 ext2.gz ext2.bz2 ext2.lzma \
|
||||
ext3 ext3.gz \
|
||||
ext4 ext4.gz \
|
||||
btrfs \
|
||||
iso \
|
||||
hddimg \
|
||||
@@ -171,7 +172,7 @@ COMPRESS_DEPENDS_xz = "xz-native"
|
||||
COMPRESS_DEPENDS_lz4 = "lz4-native"
|
||||
COMPRESS_DEPENDS_sum = "mtd-utils-native"
|
||||
|
||||
RUNNABLE_IMAGE_TYPES ?= "ext2 ext3"
|
||||
RUNNABLE_IMAGE_TYPES ?= "ext2 ext3 ext4"
|
||||
RUNNABLE_MACHINE_PATTERNS ?= "qemu"
|
||||
|
||||
DEPLOYABLE_IMAGE_TYPES ?= "hddimg iso"
|
||||
|
||||
@@ -53,6 +53,13 @@ def package_qa_get_machine_dict():
|
||||
"darwin9" : {
|
||||
"arm" : (40, 0, 0, True, 32),
|
||||
},
|
||||
"eabi" : {
|
||||
"arm" : (40, 0, 0, True, 32),
|
||||
},
|
||||
"elf" : {
|
||||
"i586" : (3, 0, 0, True, 32),
|
||||
"x86_64": (62, 0, 0, True, 64),
|
||||
},
|
||||
"linux" : {
|
||||
"aarch64" : (183, 0, 0, True, 64),
|
||||
"aarch64_be" :(183, 0, 0, False, 64),
|
||||
|
||||
@@ -261,6 +261,7 @@ do_kernel_checkout[dirs] = "${S}"
|
||||
|
||||
addtask kernel_checkout before do_patch after do_unpack
|
||||
addtask kernel_metadata after do_validate_branches before do_patch
|
||||
do_kernel_metadata[depends] = "kern-tools-native:do_populate_sysroot"
|
||||
|
||||
do_kernel_configme[dirs] += "${S} ${B}"
|
||||
do_kernel_configme() {
|
||||
@@ -288,7 +289,7 @@ do_kernel_configme() {
|
||||
echo "CONFIG_LOCALVERSION="\"${LINUX_VERSION_EXTENSION}\" >> ${B}/.config
|
||||
}
|
||||
|
||||
addtask kernel_configme after do_patch
|
||||
addtask kernel_configme before do_configure after do_patch
|
||||
|
||||
python do_kernel_configcheck() {
|
||||
import re, string, sys
|
||||
|
||||
@@ -182,7 +182,7 @@ sdk_ext_postinst() {
|
||||
# dash which is /bin/sh on Ubuntu will not preserve the
|
||||
# current working directory when first ran, nor will it set $1 when
|
||||
# sourcing a script. That is why this has to look so ugly.
|
||||
sh -c ". buildtools/environment-setup* > /dev/null && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir > /dev/null && bitbake ${SDK_TARGETS} > /dev/null" || { echo "SDK preparation failed" ; exit 1 ; }
|
||||
sh -c ". buildtools/environment-setup* > preparing_build_system.log && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> preparing_build_system.log && bitbake ${SDK_TARGETS} >> preparing_build_system.log" || { echo "SDK preparation failed: see `pwd`/preparing_build_system.log" ; exit 1 ; }
|
||||
echo done
|
||||
}
|
||||
|
||||
|
||||
@@ -95,6 +95,7 @@ def siteinfo_data(d):
|
||||
"x86_64-linux": "bit-64",
|
||||
"x86_64-linux-musl": "x86_64-linux bit-64",
|
||||
"x86_64-linux-uclibc": "bit-64",
|
||||
"x86_64-elf": "bit-64",
|
||||
"x86_64-linux-gnu": "bit-64 x86_64-linux",
|
||||
"x86_64-linux-gnux32": "bit-32 ix86-common x32-linux",
|
||||
"x86_64-mingw32": "bit-64",
|
||||
|
||||
@@ -162,7 +162,7 @@ python toaster_image_dumpdata() {
|
||||
import stat
|
||||
artifact_path = os.path.join(dirpath, fn)
|
||||
filestat = os.stat(artifact_path)
|
||||
if stat.S_ISREG(filestat.st_mode):
|
||||
if not os.path.islink(artifact_path):
|
||||
artifact_info_data[artifact_path] = filestat.st_size
|
||||
except OSError as e:
|
||||
bb.event.fire(bb.event.MetadataEvent("OSErrorException", e), d)
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"name": "Local OpenEmbedded",
|
||||
"sourcetype": "local",
|
||||
"apiurl": "../../",
|
||||
"branches": ["HEAD", "master", "dizzy"],
|
||||
"branches": ["HEAD", "master", "fido", "dizzy"],
|
||||
"layers": [
|
||||
{
|
||||
"name": "openembedded-core",
|
||||
@@ -26,13 +26,13 @@
|
||||
"name": "OpenEmbedded",
|
||||
"sourcetype": "layerindex",
|
||||
"apiurl": "http://layers.openembedded.org/layerindex/api/",
|
||||
"branches": ["master", "dizzy"]
|
||||
"branches": ["master", "fido", "dizzy"]
|
||||
},
|
||||
{
|
||||
"name": "Imported layers",
|
||||
"sourcetype": "imported",
|
||||
"apiurl": "",
|
||||
"branches": ["master", "dizzy", "HEAD"]
|
||||
"branches": ["master", "fido", "dizzy", "HEAD"]
|
||||
|
||||
}
|
||||
],
|
||||
@@ -43,6 +43,12 @@
|
||||
"branch": "master",
|
||||
"dirpath": ""
|
||||
},
|
||||
{
|
||||
"name": "fido",
|
||||
"giturl": "git://git.openembedded.org/bitbake",
|
||||
"branch": "1.26",
|
||||
"dirpath": ""
|
||||
},
|
||||
{
|
||||
"name": "dizzy",
|
||||
"giturl": "git://git.openembedded.org/bitbake",
|
||||
@@ -67,7 +73,16 @@
|
||||
"branch": "master",
|
||||
"defaultlayers": [ "openembedded-core" ],
|
||||
"layersourcepriority": { "Imported layers": 99, "Local OpenEmbedded" : 10, "OpenEmbedded" : 0 },
|
||||
"helptext": "Toaster will run your builds using the OpenEmbedded master branch, where active development takes place. This is not a stable branch, so your builds might not work as expected."
|
||||
"helptext": "Toaster will run your builds using the tip of the <a href=\"http://cgit.openembedded.org/openembedded-core/log/\">OpenEmbedded master</a> branch, where active development takes place. This is not a stable branch, so your builds might not work as expected."
|
||||
},
|
||||
{
|
||||
"name": "fido",
|
||||
"description": "OpenEmbedded Fido",
|
||||
"bitbake": "fido",
|
||||
"branch": "fido",
|
||||
"defaultlayers": [ "openembedded-core" ],
|
||||
"layersourcepriority": { "Imported layers": 99, "Local OpenEmbedded" : 10, "OpenEmbedded" : 0 },
|
||||
"helptext": "Toaster will run your builds with the tip of the <a href=\"http://cgit.openembedded.org/openembedded-core/log/?h=fido\">OpenEmbedded \"Fido\"</a> branch"
|
||||
},
|
||||
{
|
||||
"name": "dizzy",
|
||||
@@ -76,7 +91,7 @@
|
||||
"branch": "dizzy",
|
||||
"defaultlayers": [ "openembedded-core" ],
|
||||
"layersourcepriority": { "Imported layers": 99, "Local OpenEmbedded" : 10, "OpenEmbedded" : 0 },
|
||||
"helptext": "Toaster will run your builds with the OpenEmbedded Dizzy release"
|
||||
"helptext": "Toaster will run your builds with the tip of the <a href=\"http://cgit.openembedded.org/openembedded-core/log/?h=dizzy\">OpenEmbedded \"Dizzy\"</a> branch"
|
||||
},
|
||||
{
|
||||
"name": "local",
|
||||
|
||||
@@ -111,11 +111,15 @@ class RpmIndexer(Indexer):
|
||||
index_cmds = []
|
||||
rpm_dirs_found = False
|
||||
for arch in archs:
|
||||
dbpath = os.path.join(self.d.getVar('WORKDIR', True), 'rpmdb', arch)
|
||||
if os.path.exists(dbpath):
|
||||
bb.utils.remove(dbpath, True)
|
||||
arch_dir = os.path.join(self.deploy_dir, arch)
|
||||
if not os.path.isdir(arch_dir):
|
||||
continue
|
||||
|
||||
index_cmds.append("%s --update -q %s" % (rpm_createrepo, arch_dir))
|
||||
index_cmds.append("%s --dbpath %s --update -q %s" % \
|
||||
(rpm_createrepo, dbpath, arch_dir))
|
||||
|
||||
rpm_dirs_found = True
|
||||
|
||||
|
||||
@@ -66,20 +66,17 @@ do_compile () {
|
||||
if [ "x${UBOOT_CONFIG}" != "x" ]
|
||||
then
|
||||
for config in ${UBOOT_MACHINE}; do
|
||||
for type in in ${UBOOT_CONFIG}; do
|
||||
if [ "${type}"x = "in"x ]
|
||||
i=`expr $i + 1`;
|
||||
for type in ${UBOOT_CONFIG}; do
|
||||
j=`expr $j + 1`;
|
||||
if [ $j -eq $i ]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
if [ -d "${S}/${config}/u-boot-${type}.${UBOOT_SUFFIX}" ]
|
||||
then
|
||||
break
|
||||
else
|
||||
oe_runmake O=${config} ${config}
|
||||
oe_runmake O=${config} ${UBOOT_MAKE_TARGET}
|
||||
cp ${S}/${config}/${UBOOT_BINARY} ${S}/${config}/u-boot-${type}.${UBOOT_SUFFIX}
|
||||
fi
|
||||
done
|
||||
unset j
|
||||
done
|
||||
else
|
||||
oe_runmake ${UBOOT_MACHINE}
|
||||
@@ -92,20 +89,17 @@ do_install () {
|
||||
if [ "x${UBOOT_CONFIG}" != "x" ]
|
||||
then
|
||||
for config in ${UBOOT_MACHINE}; do
|
||||
for type in in ${UBOOT_CONFIG}; do
|
||||
if [ "${type}"x = "in"x ]
|
||||
i=`expr $i + 1`;
|
||||
for type in ${UBOOT_CONFIG}; do
|
||||
j=`expr $j + 1`;
|
||||
if [ $j -eq $i ]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
if [ -d "${D}/boot/u-boot-${type}.${UBOOT_SUFFIX}" ]
|
||||
then
|
||||
break
|
||||
else
|
||||
install -d ${D}/boot
|
||||
install ${S}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${D}/boot/u-boot-${type}.${UBOOT_SUFFIX}
|
||||
ln -sf u-boot-${type}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}
|
||||
install ${S}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
|
||||
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}
|
||||
fi
|
||||
done
|
||||
unset j
|
||||
done
|
||||
else
|
||||
install -d ${D}/boot
|
||||
@@ -123,20 +117,17 @@ do_install () {
|
||||
if [ "x${UBOOT_CONFIG}" != "x" ]
|
||||
then
|
||||
for config in ${UBOOT_MACHINE}; do
|
||||
for type in in ${UBOOT_CONFIG}; do
|
||||
if [ "${type}"x = "in"x ]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
if [ -d "${D}/boot/${SPL_IMAGE}-${type}" ]
|
||||
then
|
||||
break
|
||||
else
|
||||
install ${S}/${config}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}-${type}
|
||||
ln -sf ${SPL_IMAGE}-${type} ${D}/boot/${SPL_BINARY}-${type}
|
||||
ln -sf ${SPL_IMAGE}-${type} ${D}/boot/${SPL_BINARY}
|
||||
fi
|
||||
i=`expr $i + 1`;
|
||||
for type in ${UBOOT_CONFIG}; do
|
||||
j=`expr $j + 1`;
|
||||
if [ $j -eq $i ]
|
||||
then
|
||||
install ${S}/${config}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}-${type}-${PV}-${PR}
|
||||
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${D}/boot/${SPL_BINARY}-${type}
|
||||
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${D}/boot/${SPL_BINARY}
|
||||
fi
|
||||
done
|
||||
unset j
|
||||
done
|
||||
else
|
||||
install ${S}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}
|
||||
@@ -157,22 +148,19 @@ do_deploy () {
|
||||
if [ "x${UBOOT_CONFIG}" != "x" ]
|
||||
then
|
||||
for config in ${UBOOT_MACHINE}; do
|
||||
for type in in ${UBOOT_CONFIG}; do
|
||||
if [ "${type}"x = "in"x ]
|
||||
i=`expr $i + 1`;
|
||||
for type in ${UBOOT_CONFIG}; do
|
||||
j=`expr $j + 1`;
|
||||
if [ $j -eq $i ]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
if [ -d "${DEPLOYDIR}/u-boot-${type}.${UBOOT_SUFFIX}" ]
|
||||
then
|
||||
break
|
||||
else
|
||||
install -d ${DEPLOYDIR}
|
||||
install ${S}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${DEPLOYDIR}/u-boot-${type}.${UBOOT_SUFFIX}
|
||||
install ${S}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
|
||||
cd ${DEPLOYDIR}
|
||||
ln -sf u-boot-${type}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}
|
||||
ln -sf u-boot-${type}.${UBOOT_SUFFIX} ${UBOOT_BINARY}
|
||||
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}
|
||||
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY}
|
||||
fi
|
||||
done
|
||||
unset j
|
||||
done
|
||||
else
|
||||
install -d ${DEPLOYDIR}
|
||||
@@ -190,23 +178,20 @@ do_deploy () {
|
||||
if [ "x${UBOOT_CONFIG}" != "x" ]
|
||||
then
|
||||
for config in ${UBOOT_MACHINE}; do
|
||||
for type in in ${UBOOT_CONFIG}; do
|
||||
if [ "${type}"x = "in"x ]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
if [ -d "${DEPLOYDIR}/${SPL_IMAGE}-${type}" ]
|
||||
then
|
||||
break
|
||||
else
|
||||
install ${S}/${config}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}-${type}
|
||||
rm -f ${DEPLOYDIR}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_SYMLINK}-${type}
|
||||
ln -sf ${SPL_IMAGE}-${type} ${DEPLOYDIR}/${SPL_BINARY}-${type}
|
||||
ln -sf ${SPL_IMAGE}-${type} ${DEPLOYDIR}/${SPL_BINARY}
|
||||
ln -sf ${SPL_IMAGE}-${type} ${DEPLOYDIR}/${SPL_SYMLINK}-${type}
|
||||
ln -sf ${SPL_IMAGE}-${type} ${DEPLOYDIR}/${SPL_SYMLINK}
|
||||
fi
|
||||
i=`expr $i + 1`;
|
||||
for type in ${UBOOT_CONFIG}; do
|
||||
j=`expr $j + 1`;
|
||||
if [ $j -eq $i ]
|
||||
then
|
||||
install ${S}/${config}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}-${type}-${PV}-${PR}
|
||||
rm -f ${DEPLOYDIR}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_SYMLINK}-${type}
|
||||
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_BINARY}-${type}
|
||||
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_BINARY}
|
||||
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_SYMLINK}-${type}
|
||||
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_SYMLINK}
|
||||
fi
|
||||
done
|
||||
unset j
|
||||
done
|
||||
else
|
||||
install ${S}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}
|
||||
|
||||
@@ -86,12 +86,13 @@ do_install () {
|
||||
cd ${D}${sysconfdir}/network/ && \
|
||||
ln -sf ../if-pre-up.d/wpa-supplicant if-post-down.d/wpa-supplicant
|
||||
|
||||
install -d ${D}/${sysconfdir}/dbus-1/system.d
|
||||
install -m 644 ${S}/wpa_supplicant/dbus/dbus-wpa_supplicant.conf ${D}/${sysconfdir}/dbus-1/system.d
|
||||
install -d ${D}/${datadir}/dbus-1/system-services
|
||||
install -m 644 ${S}/wpa_supplicant/dbus/*.service ${D}/${datadir}/dbus-1/system-services
|
||||
|
||||
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
|
||||
install -d ${D}/${sysconfdir}/dbus-1/system.d
|
||||
install -m 644 ${S}/wpa_supplicant/dbus/dbus-wpa_supplicant.conf ${D}/${sysconfdir}/dbus-1/system.d
|
||||
|
||||
install -d ${D}/${systemd_unitdir}/system
|
||||
install -m 644 ${S}/wpa_supplicant/systemd/*.service ${D}/${systemd_unitdir}/system
|
||||
fi
|
||||
|
||||
@@ -65,9 +65,26 @@ then
|
||||
fi
|
||||
echo "# we test using cross compiler from real sysroot therefore override the" > ${B}/configparms
|
||||
echo "# definitions that come from ${B}/config.make" >> ${B}/configparms
|
||||
|
||||
fgrep tcbootstrap ${B}/config.make > ${B}/configparms
|
||||
sed -i -e "s/\-tcbootstrap//g" ${B}/configparms
|
||||
|
||||
# g++ uses flag -nostdinc, so the locations of system include headers must be explicitly specified
|
||||
# If the locations are not already specified in config.make, then we provide the following locations:
|
||||
# <sysroot>/usr/include/c++/<g++ version>
|
||||
# <sysroot>/usr/include/c++/<g++ version>/<machine>
|
||||
|
||||
cxxincludes=\`cat ${B}/config.make | gawk '\$1 == "c++-sysincludes"' | gawk -F"=" '{print \$2}' | sed "s/[ \t]\?//g"\`
|
||||
|
||||
if [ -z "\$cxxincludes" ]; then
|
||||
sysroot=\`cat ${B}/configparms | sed -n "/CXX/p" | sed -e "s/^.*--sysroot=//"\`
|
||||
cxx=\`cat ${B}/configparms | gawk '\$1 ~ /^CXX/' | gawk -F"=" '{print \$2}' | gawk '{print \$1}'\`
|
||||
cxxmachine=\`\$cxx -dumpmachine\`
|
||||
cxxversion=\`\$cxx -dumpversion\`
|
||||
# pass the new value of c++-sysincludes via configparms
|
||||
echo "# c++-sysincludes added:" >> ${B}/configparms
|
||||
echo "c++-sysincludes = -isystem \$sysroot/usr/include/c++/\$cxxversion -isystem \$sysroot/usr/include/c++/\$cxxversion/\$cxxmachine" >> ${B}/configparms
|
||||
fi
|
||||
|
||||
wrapper="${S}/scripts/cross-test-ssh.sh \$target"
|
||||
localedef="${STAGING_BINDIR_NATIVE}/cross-localedef --little-endian --uint32-align=4"
|
||||
make tests-clean
|
||||
|
||||
36
meta/recipes-core/glibc/glibc/elf-Makefile-fix-a-typo.patch
Normal file
36
meta/recipes-core/glibc/glibc/elf-Makefile-fix-a-typo.patch
Normal file
@@ -0,0 +1,36 @@
|
||||
From 6207fb45553ee98f2f326883b7c21b76c8267343 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Yang <liezhi.yang@windriver.com>
|
||||
Date: Tue, 31 Mar 2015 02:31:25 -0700
|
||||
Subject: [PATCH] elf/Makefile: fix a typo
|
||||
|
||||
Fixed a typo:
|
||||
name-target-directory -> make-target-directory
|
||||
|
||||
There is no name-target-directory, it should be make-target-directory,
|
||||
this fixed the error:
|
||||
/bin/bash: /path/to/elf/runtime-linker.T: No such file or directory
|
||||
Makefile:361: recipe for target '/path/to/elf/runtime-linker.st' failed
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
||||
---
|
||||
elf/Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/elf/Makefile b/elf/Makefile
|
||||
index e5b142c..62fe245 100644
|
||||
--- a/elf/Makefile
|
||||
+++ b/elf/Makefile
|
||||
@@ -358,7 +358,7 @@ $(objpfx)interp.os: $(elf-objpfx)runtime-linker.h
|
||||
|
||||
$(elf-objpfx)runtime-linker.h: $(elf-objpfx)runtime-linker.st; @:
|
||||
$(elf-objpfx)runtime-linker.st: $(common-objpfx)config.make
|
||||
- $(name-target-directory)
|
||||
+ $(make-target-directory)
|
||||
echo '#define RUNTIME_LINKER "$(rtlddir)/$(rtld-installed-name)"' \
|
||||
> ${@:st=T}
|
||||
$(move-if-change) ${@:st=T} ${@:st=h}
|
||||
--
|
||||
1.7.9.5
|
||||
|
||||
@@ -25,6 +25,7 @@ SRC_URI = "git://sourceware.org/git/glibc.git;branch=${BRANCH} \
|
||||
file://0001-Add-unused-attribute.patch \
|
||||
file://0001-When-disabling-SSE-also-make-sure-that-fpmath-is-not.patch \
|
||||
file://0001-yes-within-the-path-sets-wrong-config-variables.patch \
|
||||
file://elf-Makefile-fix-a-typo.patch \
|
||||
${EGLIBCPATCHES} \
|
||||
"
|
||||
EGLIBCPATCHES = "\
|
||||
|
||||
@@ -21,8 +21,8 @@ IMAGE_FSTYPES = "vmdk"
|
||||
|
||||
inherit core-image
|
||||
|
||||
SRCREV ?= "d01cd53429b1c20f01dac97f1b9b659cb9dc9812"
|
||||
SRC_URI = "git://git.yoctoproject.org/poky \
|
||||
SRCREV ?= "0db74ea8f414c88932b9028a6973f39851ad9e6e"
|
||||
SRC_URI = "git://git.yoctoproject.org/poky;branch=fido \
|
||||
file://Yocto_Build_Appliance.vmx \
|
||||
file://Yocto_Build_Appliance.vmxf \
|
||||
"
|
||||
|
||||
@@ -4,6 +4,8 @@ SECTION = "base"
|
||||
|
||||
SRC_URI = "${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.xz"
|
||||
|
||||
SRC_URI_append_class-native = " file://tar-error-code.patch"
|
||||
|
||||
DEPENDS = "zlib bzip2 perl ncurses"
|
||||
DEPENDS_class-native = "bzip2-replacement-native zlib-native virtual/update-alternatives-native gettext-native perl-native"
|
||||
RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} xz run-postinsts perl"
|
||||
|
||||
54
meta/recipes-devtools/dpkg/dpkg/tar-error-code.patch
Normal file
54
meta/recipes-devtools/dpkg/dpkg/tar-error-code.patch
Normal file
@@ -0,0 +1,54 @@
|
||||
When running do_package_write_deb, we have trees of hardlinked files
|
||||
such as the dbg source files in ${PN}-dbg. If something makes another
|
||||
copy of one of those files (or deletes one), the number of links a file
|
||||
has changes and tar can notice this, e.g.:
|
||||
|
||||
| DEBUG: Executing python function do_package_deb
|
||||
| dpkg-deb: building package `sed-ptest' in `/media/build1/poky/build/tmp/work/i586-poky-linux/sed/4.2.2-r0/deploy-debs/i586/sed-ptest_4.2.2-r0.3_i386.deb'.
|
||||
| tar: ./usr/lib/sed/ptest/testsuite/tst-regex2: file changed as we read it
|
||||
| dpkg-deb: error: subprocess tar -cf returned error exit status 1
|
||||
|
||||
Tar returns an error of 1 when files 'change' and other errors codes
|
||||
in other error cases. We tweak dpkg-deb here so that it ignores an exit
|
||||
code of 1 from tar. The files don't really change (and we have locking in
|
||||
place to avoid that kind of issue).
|
||||
|
||||
Upsteam-Status: Inappropriate
|
||||
RP 2015/3/27
|
||||
|
||||
Index: dpkg-1.17.21/dpkg-deb/build.c
|
||||
===================================================================
|
||||
--- dpkg-1.17.21.orig/dpkg-deb/build.c
|
||||
+++ dpkg-1.17.21/dpkg-deb/build.c
|
||||
@@ -398,7 +398,7 @@ do_build(const char *const *argv)
|
||||
bool subdir;
|
||||
char *tfbuf;
|
||||
int arfd;
|
||||
- int p1[2], p2[2], gzfd;
|
||||
+ int p1[2], p2[2], gzfd, rc;
|
||||
pid_t c1, c2;
|
||||
|
||||
/* Decode our arguments. */
|
||||
@@ -493,7 +493,9 @@ do_build(const char *const *argv)
|
||||
}
|
||||
close(p1[0]);
|
||||
subproc_reap(c2, "gzip -9c", 0);
|
||||
- subproc_reap(c1, "tar -cf", 0);
|
||||
+ rc = subproc_reap(c1, "tar -cf", SUBPROC_RETERROR);
|
||||
+ if (rc && rc != 1)
|
||||
+ ohshite(_("subprocess %s returned error exit status %d"), "tar -cf", rc);
|
||||
|
||||
if (lseek(gzfd, 0, SEEK_SET))
|
||||
ohshite(_("failed to rewind temporary file (%s)"), _("control member"));
|
||||
@@ -581,7 +583,10 @@ do_build(const char *const *argv)
|
||||
/* All done, clean up wait for tar and gzip to finish their job. */
|
||||
close(p1[1]);
|
||||
subproc_reap(c2, _("<compress> from tar -cf"), 0);
|
||||
- subproc_reap(c1, "tar -cf", 0);
|
||||
+ rc = subproc_reap(c1, "tar -cf", SUBPROC_RETERROR);
|
||||
+ if (rc && rc != 1)
|
||||
+ ohshite(_("subprocess %s returned error exit status %d"), "tar -cf", rc);
|
||||
+
|
||||
/* Okay, we have data.tar as well now, add it to the ar wrapper. */
|
||||
if (deb_format.major == 2) {
|
||||
char datamember[16 + 1];
|
||||
@@ -11,26 +11,34 @@ Upstream-Status: Pending
|
||||
gcc/config/arm/linux-elf.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: gcc-4.9-20140316/gcc/config/arm/coff.h
|
||||
Index: gcc-4.9.2/gcc/config/arm/coff.h
|
||||
===================================================================
|
||||
--- gcc-4.9-20140316.orig/gcc/config/arm/coff.h
|
||||
+++ gcc-4.9-20140316/gcc/config/arm/coff.h
|
||||
@@ -33,7 +33,7 @@
|
||||
--- gcc-4.9.2.orig/gcc/config/arm/coff.h
|
||||
+++ gcc-4.9.2/gcc/config/arm/coff.h
|
||||
@@ -32,8 +32,11 @@
|
||||
#define TARGET_DEFAULT (MASK_APCS_FRAME)
|
||||
|
||||
#ifndef MULTILIB_DEFAULTS
|
||||
+#ifndef TARGET_ENDIAN_OPTION
|
||||
+#define TARGET_ENDIAN_OPTION "mlittle-endian"
|
||||
+#endif
|
||||
#define MULTILIB_DEFAULTS \
|
||||
- { "marm", "mlittle-endian", "mfloat-abi=soft", "mno-thumb-interwork" }
|
||||
+ { "marm", TARGET_ENDIAN_OPTION, "mfloat-abi=soft", "mno-thumb-interwork" }
|
||||
#endif
|
||||
|
||||
/* This is COFF, but prefer stabs. */
|
||||
Index: gcc-4.9-20140316/gcc/config/arm/elf.h
|
||||
Index: gcc-4.9.2/gcc/config/arm/elf.h
|
||||
===================================================================
|
||||
--- gcc-4.9-20140316.orig/gcc/config/arm/elf.h
|
||||
+++ gcc-4.9-20140316/gcc/config/arm/elf.h
|
||||
@@ -112,7 +112,7 @@
|
||||
--- gcc-4.9.2.orig/gcc/config/arm/elf.h
|
||||
+++ gcc-4.9.2/gcc/config/arm/elf.h
|
||||
@@ -116,8 +116,11 @@
|
||||
#endif
|
||||
|
||||
#ifndef MULTILIB_DEFAULTS
|
||||
+#ifndef TARGET_ENDIAN_OPTION
|
||||
+#define TARGET_ENDIAN_OPTION "mlittle-endian"
|
||||
+#endif
|
||||
#define MULTILIB_DEFAULTS \
|
||||
- { "marm", "mlittle-endian", "mfloat-abi=soft", "mno-thumb-interwork", "fno-leading-underscore" }
|
||||
+ { "marm", TARGET_ENDIAN_OPTION, "mfloat-abi=soft", "mno-thumb-interwork", "fno-leading-underscore" }
|
||||
|
||||
200
meta/recipes-devtools/patch/patch/patch-CVE-2015-1196.patch
Normal file
200
meta/recipes-devtools/patch/patch/patch-CVE-2015-1196.patch
Normal file
@@ -0,0 +1,200 @@
|
||||
From 4e9269a5fc1fe80a1095a92593dd85db871e1fd3 Mon Sep 17 00:00:00 2001
|
||||
From: Andreas Gruenbacher <andreas.gruenbacher@gmail.com>
|
||||
Date: Mon, 19 Jan 2015 23:18:30 +0100
|
||||
Subject: [PATCH] Make sure symlinks don't point outside working directory
|
||||
(CVE-2015-1196)
|
||||
|
||||
When creating symlinks from git-style patches, make sure the symlinks don't
|
||||
point above the current working directory. Otherwise, a subsequent patch could
|
||||
use the symlink to write outside the working directory.
|
||||
|
||||
* src/pch.c (symlink_target_is_valid): New function to check for valid symlink
|
||||
targets.
|
||||
* src/util.c (move_file): Use symlink_target_is_valid() here.
|
||||
* tests/symlinks: Add valid and invalid symlink test cases.
|
||||
|
||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
---
|
||||
NEWS | 3 ++
|
||||
src/pch.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
src/pch.h | 1 +
|
||||
src/util.c | 7 +++++++
|
||||
tests/symlinks | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
5 files changed, 117 insertions(+)
|
||||
|
||||
diff --git a/NEWS b/NEWS
|
||||
index 42afed7..d3f1c2d 100644
|
||||
--- a/NEWS
|
||||
+++ b/NEWS
|
||||
@@ -1,3 +1,6 @@
|
||||
+* With git-style patches, symlinks that point outside the working directory
|
||||
+ will no longer be created.
|
||||
+
|
||||
Changes in version 2.7.1:
|
||||
|
||||
* Two critical bug fixes in the "diff --git" format support.
|
||||
diff --git a/src/pch.c b/src/pch.c
|
||||
index 55e1504..f05ef83 100644
|
||||
--- a/src/pch.c
|
||||
+++ b/src/pch.c
|
||||
@@ -454,6 +454,60 @@ name_is_valid (char const *name)
|
||||
return is_valid;
|
||||
}
|
||||
|
||||
+bool
|
||||
+symlink_target_is_valid (char const *target, char const *to)
|
||||
+{
|
||||
+ bool is_valid;
|
||||
+
|
||||
+ if (IS_ABSOLUTE_FILE_NAME (to))
|
||||
+ is_valid = true;
|
||||
+ else if (IS_ABSOLUTE_FILE_NAME (target))
|
||||
+ is_valid = false;
|
||||
+ else
|
||||
+ {
|
||||
+ unsigned int depth = 0;
|
||||
+ char const *t;
|
||||
+
|
||||
+ is_valid = true;
|
||||
+ t = to;
|
||||
+ while (*t)
|
||||
+ {
|
||||
+ while (*t && ! ISSLASH (*t))
|
||||
+ t++;
|
||||
+ if (ISSLASH (*t))
|
||||
+ {
|
||||
+ while (ISSLASH (*t))
|
||||
+ t++;
|
||||
+ depth++;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ t = target;
|
||||
+ while (*t)
|
||||
+ {
|
||||
+ if (*t == '.' && *++t == '.' && (! *++t || ISSLASH (*t)))
|
||||
+ {
|
||||
+ if (! depth--)
|
||||
+ {
|
||||
+ is_valid = false;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ while (*t && ! ISSLASH (*t))
|
||||
+ t++;
|
||||
+ depth++;
|
||||
+ }
|
||||
+ while (ISSLASH (*t))
|
||||
+ t++;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /* Allow any symlink target if we are in the filesystem root. */
|
||||
+ return is_valid || cwd_is_root (to);
|
||||
+}
|
||||
+
|
||||
/* Determine what kind of diff is in the remaining part of the patch file. */
|
||||
|
||||
static enum diff
|
||||
diff --git a/src/pch.h b/src/pch.h
|
||||
index 0c7ff62..58861b0 100644
|
||||
--- a/src/pch.h
|
||||
+++ b/src/pch.h
|
||||
@@ -37,6 +37,7 @@ bool pch_write_line (lin, FILE *);
|
||||
bool there_is_another_patch (bool, mode_t *);
|
||||
char *pfetch (lin) _GL_ATTRIBUTE_PURE;
|
||||
char pch_char (lin) _GL_ATTRIBUTE_PURE;
|
||||
+bool symlink_target_is_valid (char const *, char const *);
|
||||
int another_hunk (enum diff, bool);
|
||||
int pch_says_nonexistent (bool) _GL_ATTRIBUTE_PURE;
|
||||
size_t pch_line_len (lin) _GL_ATTRIBUTE_PURE;
|
||||
diff --git a/src/util.c b/src/util.c
|
||||
index 66ae90f..636eded 100644
|
||||
--- a/src/util.c
|
||||
+++ b/src/util.c
|
||||
@@ -470,6 +470,13 @@ move_file (char const *from, bool *from_needs_removal,
|
||||
read_fatal ();
|
||||
buffer[size] = 0;
|
||||
|
||||
+ if (! symlink_target_is_valid (buffer, to))
|
||||
+ {
|
||||
+ fprintf (stderr, "symbolic link target '%s' is invalid\n",
|
||||
+ buffer);
|
||||
+ fatal_exit (0);
|
||||
+ }
|
||||
+
|
||||
if (! backup)
|
||||
{
|
||||
if (unlink (to) == 0)
|
||||
diff --git a/tests/symlinks b/tests/symlinks
|
||||
index 96626b3..6211026 100644
|
||||
--- a/tests/symlinks
|
||||
+++ b/tests/symlinks
|
||||
@@ -146,6 +146,59 @@ ncheck 'test ! -L symlink'
|
||||
|
||||
# --------------------------------------------------------------
|
||||
|
||||
+# Patch should not create symlinks which point outside the working directory.
|
||||
+
|
||||
+cat > symlink-target.diff <<EOF
|
||||
+diff --git a/dir/foo b/dir/foo
|
||||
+new file mode 120000
|
||||
+index 0000000..cad2309
|
||||
+--- /dev/null
|
||||
++++ b/dir/foo
|
||||
+@@ -0,0 +1 @@
|
||||
++../foo
|
||||
+\ No newline at end of file
|
||||
+EOF
|
||||
+
|
||||
+check 'patch -p1 < symlink-target.diff || echo "Status: $?"' <<EOF
|
||||
+patching symbolic link dir/foo
|
||||
+EOF
|
||||
+
|
||||
+cat > bad-symlink-target1.diff <<EOF
|
||||
+diff --git a/bar b/bar
|
||||
+new file mode 120000
|
||||
+index 0000000..cad2309
|
||||
+--- /dev/null
|
||||
++++ b/bar
|
||||
+@@ -0,0 +1 @@
|
||||
++/bar
|
||||
+\ No newline at end of file
|
||||
+EOF
|
||||
+
|
||||
+check 'patch -p1 < bad-symlink-target1.diff || echo "Status: $?"' <<EOF
|
||||
+patching symbolic link bar
|
||||
+symbolic link target '/bar' is invalid
|
||||
+Status: 2
|
||||
+EOF
|
||||
+
|
||||
+cat > bad-symlink-target2.diff <<EOF
|
||||
+diff --git a/baz b/baz
|
||||
+new file mode 120000
|
||||
+index 0000000..cad2309
|
||||
+--- /dev/null
|
||||
++++ b/baz
|
||||
+@@ -0,0 +1 @@
|
||||
++../baz
|
||||
+\ No newline at end of file
|
||||
+EOF
|
||||
+
|
||||
+check 'patch -p1 < bad-symlink-target2.diff || echo "Status: $?"' <<EOF
|
||||
+patching symbolic link baz
|
||||
+symbolic link target '../baz' is invalid
|
||||
+Status: 2
|
||||
+EOF
|
||||
+
|
||||
+# --------------------------------------------------------------
|
||||
+
|
||||
# The backup file of a new symlink is an empty regular file.
|
||||
|
||||
check 'patch -p1 --backup < create-symlink.diff || echo "Status: $?"' <<EOF
|
||||
--
|
||||
2.1.4
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
require patch.inc
|
||||
LICENSE = "GPLv3"
|
||||
|
||||
SRC_URI += "file://patch-CVE-2015-1196.patch"
|
||||
|
||||
SRC_URI[md5sum] = "95dd8d7e41dcbcecdd5cd88ef915378d"
|
||||
SRC_URI[sha256sum] = "c05f28668c3474bc63adcd48abae921d15e71c254fbebdbaeda40456d64039d5"
|
||||
|
||||
154
meta/recipes-extended/cpio/cpio-2.11/cpio-CVE-2015-1197.patch
Normal file
154
meta/recipes-extended/cpio/cpio-2.11/cpio-CVE-2015-1197.patch
Normal file
@@ -0,0 +1,154 @@
|
||||
Description: CVE-2015-1197
|
||||
Apply patch by Vitezslav Cizek of SuSE to fix CVE-2015-1197.
|
||||
Upstream is dormant or no longer existing. To restore the old
|
||||
behaviour use --extract-over-symlinks (Closes: #774669)
|
||||
This issue has been discovered by Alexander Cherepanov.
|
||||
Author: Vitezslav Cizek <vcizek@suse.cz>
|
||||
Bug-Debian: https://bugs.debian.org/774669
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
||||
|
||||
--- cpio-2.11+dfsg.orig/doc/cpio.1
|
||||
+++ cpio-2.11+dfsg/doc/cpio.1
|
||||
@@ -22,6 +22,7 @@ cpio \- copy files to and from archives
|
||||
[\-\-owner=[user][:.][group]] [\-\-no-preserve-owner] [\-\-message=message]
|
||||
[\-\-force\-local] [\-\-no\-absolute\-filenames] [\-\-sparse]
|
||||
[\-\-only\-verify\-crc] [\-\-to\-stdout] [\-\-quiet] [\-\-rsh-command=command]
|
||||
+[\-\-extract\-over\-symlinks]
|
||||
[\-\-help] [\-\-version] [pattern...] [< archive]
|
||||
|
||||
.B cpio
|
||||
--- cpio-2.11+dfsg.orig/src/copyin.c
|
||||
+++ cpio-2.11+dfsg/src/copyin.c
|
||||
@@ -700,6 +700,51 @@ copyin_link (struct cpio_file_stat *file
|
||||
free (link_name);
|
||||
}
|
||||
|
||||
+
|
||||
+static int
|
||||
+path_contains_symlink(char *path)
|
||||
+{
|
||||
+ struct stat st;
|
||||
+ char *slash;
|
||||
+ char *nextslash;
|
||||
+
|
||||
+ /* we got NULL pointer or empty string */
|
||||
+ if (!path || !*path) {
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ slash = path;
|
||||
+
|
||||
+ while ((nextslash = strchr(slash + 1, '/')) != NULL) {
|
||||
+ slash = nextslash;
|
||||
+ *slash = '\0';
|
||||
+
|
||||
+ if (lstat(path, &st) != 0) {
|
||||
+ if (errno == ELOOP) {
|
||||
+ /* ELOOP - too many symlinks */
|
||||
+ *slash = '/';
|
||||
+ return true;
|
||||
+ } else if (errno == ENOMEM) {
|
||||
+ /* No memory for lstat - terminate */
|
||||
+ xalloc_die();
|
||||
+ } else {
|
||||
+ /* cannot lstat path - give up */
|
||||
+ *slash = '/';
|
||||
+ return false;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (S_ISLNK(st.st_mode)) {
|
||||
+ *slash = '/';
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ *slash = '/';
|
||||
+ }
|
||||
+
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
static void
|
||||
copyin_file (struct cpio_file_stat *file_hdr, int in_file_des)
|
||||
{
|
||||
@@ -1471,6 +1516,23 @@ process_copy_in ()
|
||||
{
|
||||
/* Copy the input file into the directory structure. */
|
||||
|
||||
+ /* Can we write files over symlinks? */
|
||||
+ if (!extract_over_symlinks)
|
||||
+ {
|
||||
+ if (path_contains_symlink(file_hdr.c_name))
|
||||
+ {
|
||||
+ /* skip the file */
|
||||
+ /*
|
||||
+ fprintf(stderr, "Can't write over symlinks. Skipping %s\n", file_hdr.c_name);
|
||||
+ tape_toss_input (in_file_des, file_hdr.c_filesize);
|
||||
+ tape_skip_padding (in_file_des, file_hdr.c_filesize);
|
||||
+ continue;
|
||||
+ */
|
||||
+ /* terminate */
|
||||
+ error (1, 0, _("Can't write over symlinks: %s\n"), file_hdr.c_name);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
/* Do we need to rename the file? */
|
||||
if (rename_flag || rename_batch_file)
|
||||
{
|
||||
--- cpio-2.11+dfsg.orig/src/extern.h
|
||||
+++ cpio-2.11+dfsg/src/extern.h
|
||||
@@ -95,6 +95,7 @@ extern char input_is_special;
|
||||
extern char output_is_special;
|
||||
extern char input_is_seekable;
|
||||
extern char output_is_seekable;
|
||||
+extern bool extract_over_symlinks;
|
||||
extern int (*xstat) ();
|
||||
extern void (*copy_function) ();
|
||||
|
||||
--- cpio-2.11+dfsg.orig/src/global.c
|
||||
+++ cpio-2.11+dfsg/src/global.c
|
||||
@@ -187,6 +187,9 @@ bool to_stdout_option = false;
|
||||
/* The name this program was run with. */
|
||||
char *program_name;
|
||||
|
||||
+/* Extract files over symbolic links */
|
||||
+bool extract_over_symlinks;
|
||||
+
|
||||
/* A pointer to either lstat or stat, depending on whether
|
||||
dereferencing of symlinks is done for input files. */
|
||||
int (*xstat) ();
|
||||
--- cpio-2.11+dfsg.orig/src/main.c
|
||||
+++ cpio-2.11+dfsg/src/main.c
|
||||
@@ -57,7 +57,8 @@ enum cpio_options {
|
||||
FORCE_LOCAL_OPTION,
|
||||
DEBUG_OPTION,
|
||||
BLOCK_SIZE_OPTION,
|
||||
- TO_STDOUT_OPTION
|
||||
+ TO_STDOUT_OPTION,
|
||||
+ EXTRACT_OVER_SYMLINKS
|
||||
};
|
||||
|
||||
const char *program_authors[] =
|
||||
@@ -222,6 +223,8 @@ static struct argp_option options[] = {
|
||||
N_("Create leading directories where needed"), GRID+1 },
|
||||
{"no-preserve-owner", NO_PRESERVE_OWNER_OPTION, 0, 0,
|
||||
N_("Do not change the ownership of the files"), GRID+1 },
|
||||
+ {"extract-over-symlinks", EXTRACT_OVER_SYMLINKS, 0, 0,
|
||||
+ N_("Force writing over symbolic links"), GRID+1 },
|
||||
{"unconditional", 'u', NULL, 0,
|
||||
N_("Replace all files unconditionally"), GRID+1 },
|
||||
{"sparse", SPARSE_OPTION, NULL, 0,
|
||||
@@ -412,6 +415,10 @@ crc newc odc bin ustar tar (all-caps als
|
||||
no_chown_flag = true;
|
||||
break;
|
||||
|
||||
+ case EXTRACT_OVER_SYMLINKS: /* --extract-over-symlinks */
|
||||
+ extract_over_symlinks = true;
|
||||
+ break;
|
||||
+
|
||||
case 'o': /* Copy-out mode. */
|
||||
if (copy_function != 0)
|
||||
error (PAXEXIT_FAILURE, 0, _("Mode already defined"));
|
||||
@@ -6,7 +6,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
|
||||
PR = "r5"
|
||||
|
||||
SRC_URI += "file://remove-gets.patch \
|
||||
file://fix-memory-overrun.patch \
|
||||
file://fix-memory-overrun.patch \
|
||||
file://cpio-CVE-2015-1197.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "1112bb6c45863468b5496ba128792f6c"
|
||||
|
||||
10
meta/recipes-gnome/gnome/libart-lgpl/aarch64be/art_config.h
Normal file
10
meta/recipes-gnome/gnome/libart-lgpl/aarch64be/art_config.h
Normal file
@@ -0,0 +1,10 @@
|
||||
/* Automatically generated by gen_art_config.c */
|
||||
|
||||
#define ART_SIZEOF_CHAR 1
|
||||
#define ART_SIZEOF_SHORT 2
|
||||
#define ART_SIZEOF_INT 4
|
||||
#define ART_SIZEOF_LONG 8
|
||||
|
||||
typedef unsigned char art_u8;
|
||||
typedef unsigned short art_u16;
|
||||
typedef unsigned int art_u32;
|
||||
@@ -0,0 +1,10 @@
|
||||
/* Automatically generated by gen_art_config.c */
|
||||
|
||||
#define ART_SIZEOF_CHAR 1
|
||||
#define ART_SIZEOF_SHORT 2
|
||||
#define ART_SIZEOF_INT 4
|
||||
#define ART_SIZEOF_LONG 4
|
||||
|
||||
typedef unsigned char art_u8;
|
||||
typedef unsigned short art_u16;
|
||||
typedef unsigned int art_u32;
|
||||
10
meta/recipes-gnome/gnome/libart-lgpl/armeb/art_config.h
Normal file
10
meta/recipes-gnome/gnome/libart-lgpl/armeb/art_config.h
Normal file
@@ -0,0 +1,10 @@
|
||||
/* Automatically generated by gen_art_config.c */
|
||||
|
||||
#define ART_SIZEOF_CHAR 1
|
||||
#define ART_SIZEOF_SHORT 2
|
||||
#define ART_SIZEOF_INT 4
|
||||
#define ART_SIZEOF_LONG 4
|
||||
|
||||
typedef unsigned char art_u8;
|
||||
typedef unsigned short art_u16;
|
||||
typedef unsigned int art_u32;
|
||||
@@ -32,10 +32,6 @@ KCONF_BSP_AUDIT_LEVEL ?= "0"
|
||||
|
||||
LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE}"
|
||||
|
||||
do_patch[depends] = "kern-tools-native:do_populate_sysroot"
|
||||
|
||||
addtask kernel_configme before do_configure after do_patch
|
||||
|
||||
# Pick up shared functions
|
||||
inherit kernel
|
||||
inherit kernel-yocto
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
createrepo: Implement --dbpath command line option
|
||||
|
||||
--dbpath option allows to specify path to the directory
|
||||
with rpm database. By default createrepo uses or creates
|
||||
rpm database in /var/lib/rpm/
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
|
||||
|
||||
--- createrepo-0.4.11.orig/genpkgmetadata.py 2015-03-30 22:18:19.904000000 +0300
|
||||
+++ createrepo-0.4.11/genpkgmetadata.py 2015-03-30 22:28:49.208000000 +0300
|
||||
@@ -65,6 +65,7 @@
|
||||
-p, --pretty = output xml files in pretty format.
|
||||
--update = update existing metadata (if present)
|
||||
-d, --database = generate the sqlite databases.
|
||||
+ --dbpath <dir> = specify path to rpm db directory.
|
||||
""")
|
||||
|
||||
sys.exit(retval)
|
||||
@@ -72,10 +73,13 @@
|
||||
class MetaDataGenerator:
|
||||
def __init__(self, cmds):
|
||||
self.cmds = cmds
|
||||
- self.ts = rpm.TransactionSet()
|
||||
self.pkgcount = 0
|
||||
self.files = []
|
||||
|
||||
+ if self.cmds['dbpath']:
|
||||
+ rpm.addMacro("_dbpath", self.cmds['dbpath'])
|
||||
+ self.ts = rpm.TransactionSet()
|
||||
+
|
||||
def _os_path_walk(self, top, func, arg):
|
||||
"""Directory tree walk with callback function.
|
||||
copy of os.path.walk, fixes the link/stating problem
|
||||
@@ -435,6 +439,7 @@
|
||||
cmds['dir-pattern-match'] = ['.*bin\/.*', '^\/etc\/.*']
|
||||
cmds['skip-symlinks'] = False
|
||||
cmds['pkglist'] = []
|
||||
+ cmds['dbpath'] = None
|
||||
|
||||
try:
|
||||
gopts, argsleft = getopt.getopt(args, 'phqVvndg:s:x:u:c:o:CSi:', ['help', 'exclude=',
|
||||
@@ -442,7 +447,7 @@
|
||||
'baseurl=', 'groupfile=', 'checksum=',
|
||||
'version', 'pretty', 'split', 'outputdir=',
|
||||
'noepoch', 'checkts', 'database', 'update',
|
||||
- 'skip-symlinks', 'pkglist='])
|
||||
+ 'skip-symlinks', 'pkglist=', 'dbpath='])
|
||||
except getopt.error, e:
|
||||
errorprint(_('Options Error: %s.') % e)
|
||||
usage()
|
||||
@@ -516,6 +521,8 @@
|
||||
cmds['skip-symlinks'] = True
|
||||
elif arg in ['-i', '--pkglist']:
|
||||
cmds['pkglist'] = a
|
||||
+ elif arg == '--dbpath':
|
||||
+ cmds['dbpath'] = os.path.realpath(a)
|
||||
|
||||
except ValueError, e:
|
||||
errorprint(_('Options Error: %s') % e)
|
||||
@@ -14,6 +14,7 @@ SRC_URI= "http://createrepo.baseurl.org/download/${BP}.tar.gz \
|
||||
file://python-scripts-should-use-interpreter-from-env.patch \
|
||||
file://createrepo-rpm549.patch \
|
||||
file://recommends.patch \
|
||||
file://createrepo-dbpath.patch \
|
||||
file://rpm-createsolvedb.py \
|
||||
"
|
||||
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
From c640ff9340f358a00835816d0fea03d27a7be978 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Yang <liezhi.yang@windriver.com>
|
||||
Date: Tue, 31 Mar 2015 00:56:44 -0700
|
||||
Subject: [PATCH] Makefile: let libso_target depend on bt_rec
|
||||
|
||||
Fixed parallel issue:
|
||||
libtool: link: `bt_rec.lo' is not a valid libtool object
|
||||
Makefile:867: recipe for target 'libdb-6.0.la' failed
|
||||
make: *** [libdb-6.0.la] Error 1
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
||||
---
|
||||
Makefile.in | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index e451f70..0a42375 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -863,7 +863,7 @@ $(libdb_version): $(C_OBJS)
|
||||
$(LN) -s $(libdb_version) $(libdb)
|
||||
|
||||
# Shared C library.
|
||||
-$(libso_target): $(C_OBJS)
|
||||
+$(libso_target): $(C_OBJS) bt_rec@o@
|
||||
$(SOLINK) $(SOFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) \
|
||||
$(LIBCSO_LIBS)
|
||||
$(RM) $(libdb)
|
||||
@@ -18,6 +18,7 @@ RCONFLICTS_${PN} = "db3"
|
||||
SRC_URI = "http://download.oracle.com/berkeley-db/db-${PV}.tar.gz"
|
||||
SRC_URI += "file://arm-thumb-mutex_db5.patch;patchdir=.. \
|
||||
file://fix-parallel-build.patch \
|
||||
file://Makefile-let-libso_target-depend-on-bt_rec.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "ad28eb86ad3203b5422844db179c585b"
|
||||
|
||||
@@ -144,6 +144,10 @@ class Configuration(object):
|
||||
if option not in self.repos[name]:
|
||||
msg = "%s\nOption %s is not defined for component %s" %(msg, option, name)
|
||||
missing_options.append(option)
|
||||
# Sanitize dest_dir so that we do not have to deal with edge cases
|
||||
# (empty string, double slashes) in the rest of the code.
|
||||
dest_dir = os.path.normpath(self.repos[name]["dest_dir"])
|
||||
self.repos[name]["dest_dir"] = "." if not dest_dir else dest_dir
|
||||
if msg != "":
|
||||
logger.error("configuration file %s has the following error: %s" % (self.conffile,msg))
|
||||
if self.localconffile and 'last_revision' in missing_options:
|
||||
@@ -231,7 +235,7 @@ def action_init(conf, args):
|
||||
pass
|
||||
initialrev = rev
|
||||
dest_dir = repo['dest_dir']
|
||||
if dest_dir and dest_dir != ".":
|
||||
if dest_dir != ".":
|
||||
extract_dir = os.path.join(os.getcwd(), dest_dir)
|
||||
if not os.path.exists(extract_dir):
|
||||
os.makedirs(extract_dir)
|
||||
@@ -245,13 +249,16 @@ def action_init(conf, args):
|
||||
# files already moved, we need to prepend the
|
||||
# subdirectory to all filters, otherwise they would
|
||||
# not match.
|
||||
if subdir:
|
||||
if subdir == '.':
|
||||
subdir = ''
|
||||
elif subdir:
|
||||
subdir = os.path.normpath(subdir)
|
||||
file_filter = ' '.join([subdir + '/' + x for x in file_filter.split()])
|
||||
exclude_patterns = [subdir + '/' + x for x in exclude_patterns]
|
||||
# To handle both cases, we cd into the target
|
||||
# directory and optionally tell tar to strip the path
|
||||
# prefix when the files were already moved.
|
||||
subdir_components = len(os.path.normpath(subdir).split(os.path.sep)) if subdir else 0
|
||||
subdir_components = len(subdir.split(os.path.sep)) if subdir else 0
|
||||
strip=('--strip-components=%d' % subdir_components) if subdir else ''
|
||||
# TODO: file_filter wild cards do not work (and haven't worked before either), because
|
||||
# a) GNU tar requires a --wildcards parameter before turning on wild card matching.
|
||||
@@ -325,7 +332,7 @@ EOF
|
||||
runcmd('git replace --edit %s' % rev)
|
||||
|
||||
# Optional: rewrite history to change commit messages or to move files.
|
||||
if 'hook' in repo or dest_dir and dest_dir != ".":
|
||||
if 'hook' in repo or dest_dir != ".":
|
||||
filter_branch = ['git', 'filter-branch', '--force']
|
||||
with tempfile.NamedTemporaryFile() as hookwrapper:
|
||||
if 'hook' in repo:
|
||||
@@ -353,7 +360,7 @@ tail -c +18 $tmpname | head -c -4
|
||||
''' % (hook, name))
|
||||
hookwrapper.flush()
|
||||
filter_branch.extend(['--msg-filter', 'bash %s' % hookwrapper.name])
|
||||
if dest_dir and dest_dir != ".":
|
||||
if dest_dir != ".":
|
||||
parent = os.path.dirname(dest_dir)
|
||||
if not parent:
|
||||
parent = '.'
|
||||
@@ -371,7 +378,7 @@ tail -c +18 $tmpname | head -c -4
|
||||
if not os.path.exists(extract_dir):
|
||||
os.makedirs(extract_dir)
|
||||
copy_selected_files('HEAD', extract_dir, file_filter, exclude_patterns, '.',
|
||||
subdir=dest_dir if dest_dir and dest_dir != '.' else '')
|
||||
subdir=dest_dir)
|
||||
runcmd('git add --all --force .')
|
||||
if runcmd('git status --porcelain'):
|
||||
# Something to commit.
|
||||
@@ -644,7 +651,7 @@ def action_update(conf, args):
|
||||
filter = ['filterdiff', '-p1']
|
||||
for path in exclude.split():
|
||||
filter.append('-x')
|
||||
filter.append('%s/%s' % (dest_dir, path) if dest_dir else path)
|
||||
filter.append('%s/%s' % (dest_dir, path) if dest_dir != '.' else path)
|
||||
for patch in patchlist[:]:
|
||||
filtered = patch + '.tmp'
|
||||
with open(filtered, 'w') as f:
|
||||
@@ -658,6 +665,10 @@ def action_update(conf, args):
|
||||
# Empty, ignore it. Must also remove from revlist.
|
||||
with open(patch, 'r') as f:
|
||||
fromline = f.readline()
|
||||
if not fromline:
|
||||
# Patch must have been empty to start with. No need
|
||||
# to remove it.
|
||||
continue
|
||||
m = re.match(r'''^From ([0-9a-fA-F]+) .*\n''', fromline)
|
||||
rev = m.group(1)
|
||||
logger.debug('skipping empty patch %s = %s' % (patch, rev))
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
# Locate the netcat binary
|
||||
SOCAT=$(which socat 2>/dev/null)
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR: socat binary not in PATH"
|
||||
echo "ERROR: socat binary not in PATH" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
METHOD=""
|
||||
|
||||
Reference in New Issue
Block a user