bitbake: Merge bugfixes from bitbake-1.8 svn
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@1759 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
parent
6e49fdb6db
commit
d05bcee7f2
|
@ -1,8 +1,17 @@
|
||||||
|
Changes in Bitbake 1.8.x:
|
||||||
|
- Make sure __inherit_cache is updated before calling include() (from Michael Krelin)
|
||||||
|
- Fix bug when target was in ASSUME_PROVIDED (#2236)
|
||||||
|
- Raise ParseError for filenames with multiple underscores instead of infinitely looping (#2062)
|
||||||
|
- Fix invalid regexp in BBMASK error handling (missing import) (#1124)
|
||||||
|
- Don't run build sanity checks on incomplete builds
|
||||||
|
- Promote certain warnings from debug to note 2 level
|
||||||
|
|
||||||
Changes in Bitbake 1.8.2:
|
Changes in Bitbake 1.8.2:
|
||||||
- Catch truncated cache file errors
|
- Catch truncated cache file errors
|
||||||
- Add PE (Package Epoch) support from Philipp Zabel (pH5)
|
- Add PE (Package Epoch) support from Philipp Zabel (pH5)
|
||||||
- Add code to handle inter-task dependencies
|
- Add code to handle inter-task dependencies
|
||||||
- Allow operations other than assignment on flag variables
|
- Allow operations other than assignment on flag variables
|
||||||
|
- Fix cache errors when generation dotGraphs
|
||||||
|
|
||||||
Changes in Bitbake 1.8.0:
|
Changes in Bitbake 1.8.0:
|
||||||
- Release 1.7.x as a stable series
|
- Release 1.7.x as a stable series
|
||||||
|
|
|
@ -27,7 +27,7 @@ sys.path.insert(0,os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'l
|
||||||
import bb
|
import bb
|
||||||
from bb import cooker
|
from bb import cooker
|
||||||
|
|
||||||
__version__ = "1.8.1"
|
__version__ = "1.8.3"
|
||||||
|
|
||||||
#============================================================================#
|
#============================================================================#
|
||||||
# BBOptions
|
# BBOptions
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
# with this program; if not, write to the Free Software Foundation, Inc.,
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
__version__ = "1.8.1"
|
__version__ = "1.8.3"
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ import sys, os, getopt, glob, copy, os.path, re, time
|
||||||
import bb
|
import bb
|
||||||
from bb import utils, data, parse, event, cache, providers, taskdata, runqueue
|
from bb import utils, data, parse, event, cache, providers, taskdata, runqueue
|
||||||
from sets import Set
|
from sets import Set
|
||||||
import itertools
|
import itertools, sre_constants
|
||||||
|
|
||||||
parsespin = itertools.cycle( r'|/-\\' )
|
parsespin = itertools.cycle( r'|/-\\' )
|
||||||
|
|
||||||
|
@ -201,7 +201,7 @@ class BBCooker:
|
||||||
fnid = rq.runq_fnid[task]
|
fnid = rq.runq_fnid[task]
|
||||||
fn = taskdata.fn_index[fnid]
|
fn = taskdata.fn_index[fnid]
|
||||||
pn = self.status.pkg_fn[fn]
|
pn = self.status.pkg_fn[fn]
|
||||||
version = self.bb_cache.getVar('PV', fn, True ) + '-' + self.bb_cache.getVar('PR', fn, True)
|
version = "%s:%s-%s" % self.status.pkg_pepvpr[fn]
|
||||||
print >> tdepends_file, '"%s.%s" [label="%s %s\\n%s\\n%s"]' % (pn, taskname, pn, taskname, version, fn)
|
print >> tdepends_file, '"%s.%s" [label="%s %s\\n%s\\n%s"]' % (pn, taskname, pn, taskname, version, fn)
|
||||||
for dep in rq.runq_depends[task]:
|
for dep in rq.runq_depends[task]:
|
||||||
depfn = taskdata.fn_index[rq.runq_fnid[dep]]
|
depfn = taskdata.fn_index[rq.runq_fnid[dep]]
|
||||||
|
|
|
@ -72,9 +72,9 @@ def inherit(files, d):
|
||||||
if not file in __inherit_cache:
|
if not file in __inherit_cache:
|
||||||
bb.msg.debug(2, bb.msg.domain.Parsing, "BB %s:%d: inheriting %s" % (fn, lineno, file))
|
bb.msg.debug(2, bb.msg.domain.Parsing, "BB %s:%d: inheriting %s" % (fn, lineno, file))
|
||||||
__inherit_cache.append( file )
|
__inherit_cache.append( file )
|
||||||
include(fn, file, d, "inherit")
|
|
||||||
data.setVar('__inherit_cache', __inherit_cache, d)
|
data.setVar('__inherit_cache', __inherit_cache, d)
|
||||||
|
include(fn, file, d, "inherit")
|
||||||
|
__inherit_cache = data.getVar('__inherit_cache', d) or []
|
||||||
|
|
||||||
def handle(fn, d, include = 0):
|
def handle(fn, d, include = 0):
|
||||||
global __func_start_regexp__, __inherit_regexp__, __export_func_regexp__, __addtask_regexp__, __addhandler_regexp__, __infunc__, __body__, __residue__
|
global __func_start_regexp__, __inherit_regexp__, __export_func_regexp__, __addtask_regexp__, __addhandler_regexp__, __infunc__, __body__, __residue__
|
||||||
|
@ -377,6 +377,8 @@ def vars_from_file(mypkg, d):
|
||||||
myfile = os.path.splitext(os.path.basename(mypkg))
|
myfile = os.path.splitext(os.path.basename(mypkg))
|
||||||
parts = myfile[0].split('_')
|
parts = myfile[0].split('_')
|
||||||
__pkgsplit_cache__[mypkg] = parts
|
__pkgsplit_cache__[mypkg] = parts
|
||||||
|
if len(parts) > 3:
|
||||||
|
raise ParseError("Unable to generate default variables from the filename: %s (too many underscores)" % mypkg)
|
||||||
exp = 3 - len(parts)
|
exp = 3 - len(parts)
|
||||||
tmplist = []
|
tmplist = []
|
||||||
while exp != 0:
|
while exp != 0:
|
||||||
|
|
|
@ -91,6 +91,10 @@ class RunQueue:
|
||||||
|
|
||||||
taskData = self.taskData
|
taskData = self.taskData
|
||||||
|
|
||||||
|
if len(taskData.tasks_name) == 0:
|
||||||
|
# Nothing to do
|
||||||
|
return
|
||||||
|
|
||||||
bb.msg.note(1, bb.msg.domain.RunQueue, "Preparing Runqueue")
|
bb.msg.note(1, bb.msg.domain.RunQueue, "Preparing Runqueue")
|
||||||
|
|
||||||
for task in range(len(taskData.tasks_name)):
|
for task in range(len(taskData.tasks_name)):
|
||||||
|
@ -536,7 +540,7 @@ class RunQueue:
|
||||||
self.stats.taskFailed()
|
self.stats.taskFailed()
|
||||||
del self.build_pids[result[0]]
|
del self.build_pids[result[0]]
|
||||||
self.active_builds = self.active_builds - 1
|
self.active_builds = self.active_builds - 1
|
||||||
if len(self.failed_fnids) > 0:
|
bb.msg.note(1, bb.msg.domain.RunQueue, "Tasks Summary: Attempted %d tasks of which %d didn't need to be rerun and %d failed." % (self.stats.completed, self.stats.skipped, self.stats.failed))
|
||||||
return self.failed_fnids
|
return self.failed_fnids
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
bb.msg.note(1, bb.msg.domain.RunQueue, "Sending SIGINT to remaining %s tasks" % self.active_builds)
|
bb.msg.note(1, bb.msg.domain.RunQueue, "Sending SIGINT to remaining %s tasks" % self.active_builds)
|
||||||
|
|
|
@ -348,7 +348,7 @@ class TaskData:
|
||||||
return
|
return
|
||||||
|
|
||||||
if not item in dataCache.providers:
|
if not item in dataCache.providers:
|
||||||
bb.msg.debug(1, bb.msg.domain.Provider, "No providers of build target %s (for %s)" % (item, self.get_dependees_str(item)))
|
bb.msg.note(2, bb.msg.domain.Provider, "No providers of build target %s (for %s)" % (item, self.get_dependees_str(item)))
|
||||||
bb.event.fire(bb.event.NoProvider(item, cfgData))
|
bb.event.fire(bb.event.NoProvider(item, cfgData))
|
||||||
raise bb.providers.NoProvider(item)
|
raise bb.providers.NoProvider(item)
|
||||||
|
|
||||||
|
@ -365,7 +365,7 @@ class TaskData:
|
||||||
eligible.remove(p)
|
eligible.remove(p)
|
||||||
|
|
||||||
if not eligible:
|
if not eligible:
|
||||||
bb.msg.debug(1, bb.msg.domain.Provider, "No providers of build target %s after filtering (for %s)" % (item, self.get_dependees_str(item)))
|
bb.msg.note(2, bb.msg.domain.Provider, "No providers of build target %s after filtering (for %s)" % (item, self.get_dependees_str(item)))
|
||||||
bb.event.fire(bb.event.NoProvider(item, cfgData))
|
bb.event.fire(bb.event.NoProvider(item, cfgData))
|
||||||
raise bb.providers.NoProvider(item)
|
raise bb.providers.NoProvider(item)
|
||||||
|
|
||||||
|
@ -503,7 +503,7 @@ class TaskData:
|
||||||
Mark a build target as failed (unbuildable)
|
Mark a build target as failed (unbuildable)
|
||||||
Trigger removal of any files that have this as a dependency
|
Trigger removal of any files that have this as a dependency
|
||||||
"""
|
"""
|
||||||
bb.msg.debug(1, bb.msg.domain.Provider, "Removing failed build target %s" % self.build_names_index[targetid])
|
bb.msg.note(2, bb.msg.domain.Provider, "Removing failed build target %s" % self.build_names_index[targetid])
|
||||||
self.failed_deps.append(targetid)
|
self.failed_deps.append(targetid)
|
||||||
dependees = self.get_dependees(targetid)
|
dependees = self.get_dependees(targetid)
|
||||||
for fnid in dependees:
|
for fnid in dependees:
|
||||||
|
|
Loading…
Reference in New Issue