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:
Richard Purdie 2007-05-22 11:50:37 +00:00
parent 6e49fdb6db
commit d05bcee7f2
7 changed files with 26 additions and 11 deletions

View File

@ -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

View File

@ -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

View File

@ -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__ = [

View File

@ -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]]

View File

@ -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:

View File

@ -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)

View File

@ -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: