summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/cooker.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2013-05-30 12:26:58 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-06-07 16:56:26 +0100
commit3e9456322d1c7a932697f5cf81bf4a4989b21f54 (patch)
treedb663ce14df3ba6cd5e4d6acc935c388a3d73364 /bitbake/lib/bb/cooker.py
parent2b2b3e8c342107b4cbb51e3a81103047ee9b63d9 (diff)
downloadpoky-3e9456322d1c7a932697f5cf81bf4a4989b21f54.tar.gz
bitbake: cooker: Split data from configuration
The reasons for combining these objects is ancient history, it makes sense to clean things up and separate them out now. This follows on logically from the configuration cleansups and leads well into the bitbake-worker changes. (Bitbake rev: 89ffd62661ebcf2a97ce0c8dfd5e4d5bfbe27de7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/cooker.py')
-rw-r--r--bitbake/lib/bb/cooker.py146
1 files changed, 73 insertions, 73 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index 2edfa9faeb..77273dcb29 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -108,13 +108,13 @@ class BBCooker:
108 logger.critical("Unable to import extra RecipeInfo '%s' from '%s': %s" % (cache_name, module_name, exc)) 108 logger.critical("Unable to import extra RecipeInfo '%s' from '%s': %s" % (cache_name, module_name, exc))
109 sys.exit("FATAL: Failed to import extra cache class '%s'." % cache_name) 109 sys.exit("FATAL: Failed to import extra cache class '%s'." % cache_name)
110 110
111 self.configuration.data = None 111 self.data = None
112 self.initConfigurationData() 112 self.initConfigurationData()
113 self.loadConfigurationData() 113 self.loadConfigurationData()
114 114
115 # Take a lock so only one copy of bitbake can run against a given build 115 # Take a lock so only one copy of bitbake can run against a given build
116 # directory at a time 116 # directory at a time
117 lockfile = self.configuration.data.expand("${TOPDIR}/bitbake.lock") 117 lockfile = self.data.expand("${TOPDIR}/bitbake.lock")
118 self.lock = bb.utils.lockfile(lockfile, False, False) 118 self.lock = bb.utils.lockfile(lockfile, False, False)
119 if not self.lock: 119 if not self.lock:
120 bb.fatal("Only one copy of bitbake should be run against a build directory") 120 bb.fatal("Only one copy of bitbake should be run against a build directory")
@@ -122,9 +122,9 @@ class BBCooker:
122 # 122 #
123 # Special updated configuration we use for firing events 123 # Special updated configuration we use for firing events
124 # 124 #
125 self.configuration.event_data = bb.data.createCopy(self.configuration.data) 125 self.event_data = bb.data.createCopy(self.data)
126 bb.data.update_data(self.configuration.event_data) 126 bb.data.update_data(self.event_data)
127 bb.parse.init_parser(self.configuration.event_data) 127 bb.parse.init_parser(self.event_data)
128 128
129 # TOSTOP must not be set or our children will hang when they output 129 # TOSTOP must not be set or our children will hang when they output
130 fd = sys.stdout.fileno() 130 fd = sys.stdout.fileno()
@@ -147,27 +147,27 @@ class BBCooker:
147 worker = True 147 worker = True
148 148
149 self.databuilder = bb.cookerdata.CookerDataBuilder(self.configuration, worker) 149 self.databuilder = bb.cookerdata.CookerDataBuilder(self.configuration, worker)
150 self.configuration.data = self.databuilder.data 150 self.data = self.databuilder.data
151 151
152 def enableDataTracking(self): 152 def enableDataTracking(self):
153 self.configuration.data.enableTracking() 153 self.data.enableTracking()
154 154
155 def disableDataTracking(self): 155 def disableDataTracking(self):
156 self.configuration.data.disableTracking() 156 self.data.disableTracking()
157 157
158 def loadConfigurationData(self): 158 def loadConfigurationData(self):
159 self.databuilder.parseBaseConfiguration() 159 self.databuilder.parseBaseConfiguration()
160 self.configuration.data = self.databuilder.data 160 self.data = self.databuilder.data
161 self.configuration.data_hash = self.databuilder.data_hash 161 self.data_hash = self.databuilder.data_hash
162 162
163 def saveConfigurationVar(self, var, val, default_file): 163 def saveConfigurationVar(self, var, val, default_file):
164 164
165 replaced = False 165 replaced = False
166 #do not save if nothing changed 166 #do not save if nothing changed
167 if str(val) == self.configuration.data.getVar(var): 167 if str(val) == self.data.getVar(var):
168 return 168 return
169 169
170 conf_files = self.configuration.data.varhistory.get_variable_files(var) 170 conf_files = self.data.varhistory.get_variable_files(var)
171 171
172 #format the value when it is a list 172 #format the value when it is a list
173 if isinstance(val, list): 173 if isinstance(val, list):
@@ -176,7 +176,7 @@ class BBCooker:
176 listval += "%s " % value 176 listval += "%s " % value
177 val = listval 177 val = listval
178 178
179 topdir = self.configuration.data.getVar("TOPDIR") 179 topdir = self.data.getVar("TOPDIR")
180 180
181 #comment or replace operations made on var 181 #comment or replace operations made on var
182 for conf_file in conf_files: 182 for conf_file in conf_files:
@@ -185,7 +185,7 @@ class BBCooker:
185 contents = f.readlines() 185 contents = f.readlines()
186 f.close() 186 f.close()
187 187
188 lines = self.configuration.data.varhistory.get_variable_lines(var, conf_file) 188 lines = self.data.varhistory.get_variable_lines(var, conf_file)
189 for line in lines: 189 for line in lines:
190 total = "" 190 total = ""
191 i = 0 191 i = 0
@@ -218,7 +218,7 @@ class BBCooker:
218 218
219 if replaced == False: 219 if replaced == False:
220 #remove var from history 220 #remove var from history
221 self.configuration.data.varhistory.del_var_history(var) 221 self.data.varhistory.del_var_history(var)
222 222
223 #add var to the end of default_file 223 #add var to the end of default_file
224 default_file = bb.cookerdata.findConfigFile(default_file) 224 default_file = bb.cookerdata.findConfigFile(default_file)
@@ -241,17 +241,17 @@ class BBCooker:
241 241
242 #add to history 242 #add to history
243 loginfo = {"op":set, "file":default_file, "line":total.count("\n")} 243 loginfo = {"op":set, "file":default_file, "line":total.count("\n")}
244 self.configuration.data.setVar(var, val, **loginfo) 244 self.data.setVar(var, val, **loginfo)
245 245
246 def parseConfiguration(self): 246 def parseConfiguration(self):
247 247
248 # Set log file verbosity 248 # Set log file verbosity
249 verboselogs = bb.utils.to_boolean(self.configuration.data.getVar("BB_VERBOSE_LOGS", "0")) 249 verboselogs = bb.utils.to_boolean(self.data.getVar("BB_VERBOSE_LOGS", "0"))
250 if verboselogs: 250 if verboselogs:
251 bb.msg.loggerVerboseLogs = True 251 bb.msg.loggerVerboseLogs = True
252 252
253 # Change nice level if we're asked to 253 # Change nice level if we're asked to
254 nice = self.configuration.data.getVar("BB_NICE_LEVEL", True) 254 nice = self.data.getVar("BB_NICE_LEVEL", True)
255 if nice: 255 if nice:
256 curnice = os.nice(0) 256 curnice = os.nice(0)
257 nice = int(nice) - curnice 257 nice = int(nice) - curnice
@@ -261,7 +261,7 @@ class BBCooker:
261 del self.recipecache 261 del self.recipecache
262 self.recipecache = bb.cache.CacheData(self.caches_array) 262 self.recipecache = bb.cache.CacheData(self.caches_array)
263 263
264 self.handleCollections( self.configuration.data.getVar("BBFILE_COLLECTIONS", True) ) 264 self.handleCollections( self.data.getVar("BBFILE_COLLECTIONS", True) )
265 265
266 def runCommands(self, server, data, abort): 266 def runCommands(self, server, data, abort):
267 """ 267 """
@@ -275,7 +275,7 @@ class BBCooker:
275 def showVersions(self): 275 def showVersions(self):
276 276
277 pkg_pn = self.recipecache.pkg_pn 277 pkg_pn = self.recipecache.pkg_pn
278 (latest_versions, preferred_versions) = bb.providers.findProviders(self.configuration.data, self.recipecache, pkg_pn) 278 (latest_versions, preferred_versions) = bb.providers.findProviders(self.data, self.recipecache, pkg_pn)
279 279
280 logger.plain("%-35s %25s %25s", "Recipe Name", "Latest Version", "Preferred Version") 280 logger.plain("%-35s %25s %25s", "Recipe Name", "Latest Version", "Preferred Version")
281 logger.plain("%-35s %25s %25s\n", "===========", "==============", "=================") 281 logger.plain("%-35s %25s %25s\n", "===========", "==============", "=================")
@@ -308,11 +308,11 @@ class BBCooker:
308 fn = self.matchFile(fn) 308 fn = self.matchFile(fn)
309 fn = bb.cache.Cache.realfn2virtual(fn, cls) 309 fn = bb.cache.Cache.realfn2virtual(fn, cls)
310 elif len(pkgs_to_build) == 1: 310 elif len(pkgs_to_build) == 1:
311 ignore = self.configuration.data.getVar("ASSUME_PROVIDED", True) or "" 311 ignore = self.data.getVar("ASSUME_PROVIDED", True) or ""
312 if pkgs_to_build[0] in set(ignore.split()): 312 if pkgs_to_build[0] in set(ignore.split()):
313 bb.fatal("%s is in ASSUME_PROVIDED" % pkgs_to_build[0]) 313 bb.fatal("%s is in ASSUME_PROVIDED" % pkgs_to_build[0])
314 314
315 localdata = data.createCopy(self.configuration.data) 315 localdata = data.createCopy(self.data)
316 bb.data.update_data(localdata) 316 bb.data.update_data(localdata)
317 bb.data.expandKeys(localdata) 317 bb.data.expandKeys(localdata)
318 318
@@ -324,18 +324,18 @@ class BBCooker:
324 fnid = taskdata.build_targets[targetid][0] 324 fnid = taskdata.build_targets[targetid][0]
325 fn = taskdata.fn_index[fnid] 325 fn = taskdata.fn_index[fnid]
326 else: 326 else:
327 envdata = self.configuration.data 327 envdata = self.data
328 328
329 if fn: 329 if fn:
330 try: 330 try:
331 envdata = bb.cache.Cache.loadDataFull(fn, self.collection.get_file_appends(fn), self.configuration.data) 331 envdata = bb.cache.Cache.loadDataFull(fn, self.collection.get_file_appends(fn), self.data)
332 except Exception as e: 332 except Exception as e:
333 parselog.exception("Unable to read %s", fn) 333 parselog.exception("Unable to read %s", fn)
334 raise 334 raise
335 335
336 # Display history 336 # Display history
337 with closing(StringIO()) as env: 337 with closing(StringIO()) as env:
338 self.configuration.data.inchistory.emit(env) 338 self.data.inchistory.emit(env)
339 logger.plain(env.getvalue()) 339 logger.plain(env.getvalue())
340 340
341 # emit variables and shell functions 341 # emit variables and shell functions
@@ -354,7 +354,7 @@ class BBCooker:
354 """ 354 """
355 Prepare a runqueue and taskdata object for iteration over pkgs_to_build 355 Prepare a runqueue and taskdata object for iteration over pkgs_to_build
356 """ 356 """
357 bb.event.fire(bb.event.TreeDataPreparationStarted(), self.configuration.data) 357 bb.event.fire(bb.event.TreeDataPreparationStarted(), self.data)
358 358
359 # If we are told to do the None task then query the default task 359 # If we are told to do the None task then query the default task
360 if (task == None): 360 if (task == None):
@@ -362,7 +362,7 @@ class BBCooker:
362 362
363 pkgs_to_build = self.checkPackages(pkgs_to_build) 363 pkgs_to_build = self.checkPackages(pkgs_to_build)
364 364
365 localdata = data.createCopy(self.configuration.data) 365 localdata = data.createCopy(self.data)
366 bb.data.update_data(localdata) 366 bb.data.update_data(localdata)
367 bb.data.expandKeys(localdata) 367 bb.data.expandKeys(localdata)
368 # We set abort to False here to prevent unbuildable targets raising 368 # We set abort to False here to prevent unbuildable targets raising
@@ -375,9 +375,9 @@ class BBCooker:
375 taskdata.add_provider(localdata, self.recipecache, k) 375 taskdata.add_provider(localdata, self.recipecache, k)
376 runlist.append([k, "do_%s" % task]) 376 runlist.append([k, "do_%s" % task])
377 current += 1 377 current += 1
378 bb.event.fire(bb.event.TreeDataPreparationProgress(current, len(pkgs_to_build)), self.configuration.data) 378 bb.event.fire(bb.event.TreeDataPreparationProgress(current, len(pkgs_to_build)), self.data)
379 taskdata.add_unresolved(localdata, self.recipecache) 379 taskdata.add_unresolved(localdata, self.recipecache)
380 bb.event.fire(bb.event.TreeDataPreparationCompleted(len(pkgs_to_build)), self.configuration.data) 380 bb.event.fire(bb.event.TreeDataPreparationCompleted(len(pkgs_to_build)), self.data)
381 return runlist, taskdata 381 return runlist, taskdata
382 382
383 ######## WARNING : this function requires cache_extra to be enabled ######## 383 ######## WARNING : this function requires cache_extra to be enabled ########
@@ -388,7 +388,7 @@ class BBCooker:
388 information. 388 information.
389 """ 389 """
390 runlist, taskdata = self.prepareTreeData(pkgs_to_build, task) 390 runlist, taskdata = self.prepareTreeData(pkgs_to_build, task)
391 rq = bb.runqueue.RunQueue(self, self.configuration.data, self.recipecache, taskdata, runlist) 391 rq = bb.runqueue.RunQueue(self, self.data, self.recipecache, taskdata, runlist)
392 rq.rqdata.prepare() 392 rq.rqdata.prepare()
393 393
394 seen_fnids = [] 394 seen_fnids = []
@@ -543,7 +543,7 @@ class BBCooker:
543 Generate an event with the result 543 Generate an event with the result
544 """ 544 """
545 depgraph = self.generateTaskDepTreeData(pkgs_to_build, task) 545 depgraph = self.generateTaskDepTreeData(pkgs_to_build, task)
546 bb.event.fire(bb.event.DepTreeGenerated(depgraph), self.configuration.data) 546 bb.event.fire(bb.event.DepTreeGenerated(depgraph), self.data)
547 547
548 def generateDotGraphFiles(self, pkgs_to_build, task): 548 def generateDotGraphFiles(self, pkgs_to_build, task):
549 """ 549 """
@@ -621,7 +621,7 @@ class BBCooker:
621 for append in appends) 621 for append in appends)
622 msg = 'No recipes available for:\n%s' % '\n'.join(appendlines) 622 msg = 'No recipes available for:\n%s' % '\n'.join(appendlines)
623 warn_only = data.getVar("BB_DANGLINGAPPENDS_WARNONLY", \ 623 warn_only = data.getVar("BB_DANGLINGAPPENDS_WARNONLY", \
624 self.configuration.data, False) or "no" 624 self.data, False) or "no"
625 if warn_only.lower() in ("1", "yes", "true"): 625 if warn_only.lower() in ("1", "yes", "true"):
626 bb.warn(msg) 626 bb.warn(msg)
627 else: 627 else:
@@ -629,7 +629,7 @@ class BBCooker:
629 629
630 def handlePrefProviders(self): 630 def handlePrefProviders(self):
631 631
632 localdata = data.createCopy(self.configuration.data) 632 localdata = data.createCopy(self.data)
633 bb.data.update_data(localdata) 633 bb.data.update_data(localdata)
634 bb.data.expandKeys(localdata) 634 bb.data.expandKeys(localdata)
635 635
@@ -645,7 +645,7 @@ class BBCooker:
645 self.recipecache.preferred[providee] = provider 645 self.recipecache.preferred[providee] = provider
646 646
647 def findCoreBaseFiles(self, subdir, configfile): 647 def findCoreBaseFiles(self, subdir, configfile):
648 corebase = self.configuration.data.getVar('COREBASE', True) or "" 648 corebase = self.data.getVar('COREBASE', True) or ""
649 paths = [] 649 paths = []
650 for root, dirs, files in os.walk(corebase + '/' + subdir): 650 for root, dirs, files in os.walk(corebase + '/' + subdir):
651 for d in dirs: 651 for d in dirs:
@@ -654,7 +654,7 @@ class BBCooker:
654 paths.append(os.path.join(root, d)) 654 paths.append(os.path.join(root, d))
655 655
656 if paths: 656 if paths:
657 bb.event.fire(bb.event.CoreBaseFilesFound(paths), self.configuration.data) 657 bb.event.fire(bb.event.CoreBaseFilesFound(paths), self.data)
658 658
659 def findConfigFilePath(self, configfile): 659 def findConfigFilePath(self, configfile):
660 """ 660 """
@@ -668,8 +668,8 @@ class BBCooker:
668 # Generate a list of parsed configuration files by searching the files 668 # Generate a list of parsed configuration files by searching the files
669 # listed in the __depends and __base_depends variables with a .conf suffix. 669 # listed in the __depends and __base_depends variables with a .conf suffix.
670 conffiles = [] 670 conffiles = []
671 dep_files = self.configuration.data.getVar('__base_depends') or [] 671 dep_files = self.data.getVar('__base_depends') or []
672 dep_files = dep_files + (self.configuration.data.getVar('__depends') or []) 672 dep_files = dep_files + (self.data.getVar('__depends') or [])
673 673
674 for f in dep_files: 674 for f in dep_files:
675 if f[0].endswith(".conf"): 675 if f[0].endswith(".conf"):
@@ -682,7 +682,7 @@ class BBCooker:
682 for cfg in conffiles: 682 for cfg in conffiles:
683 if cfg.endswith(match): 683 if cfg.endswith(match):
684 bb.event.fire(bb.event.ConfigFilePathFound(path), 684 bb.event.fire(bb.event.ConfigFilePathFound(path),
685 self.configuration.data) 685 self.data)
686 break 686 break
687 687
688 def findFilesMatchingInDir(self, filepattern, directory): 688 def findFilesMatchingInDir(self, filepattern, directory):
@@ -697,7 +697,7 @@ class BBCooker:
697 697
698 matches = [] 698 matches = []
699 p = re.compile(re.escape(filepattern)) 699 p = re.compile(re.escape(filepattern))
700 bbpaths = self.configuration.data.getVar('BBPATH', True).split(':') 700 bbpaths = self.data.getVar('BBPATH', True).split(':')
701 for path in bbpaths: 701 for path in bbpaths:
702 dirpath = os.path.join(path, directory) 702 dirpath = os.path.join(path, directory)
703 if os.path.exists(dirpath): 703 if os.path.exists(dirpath):
@@ -707,7 +707,7 @@ class BBCooker:
707 matches.append(f) 707 matches.append(f)
708 708
709 if matches: 709 if matches:
710 bb.event.fire(bb.event.FilesMatchingFound(filepattern, matches), self.configuration.data) 710 bb.event.fire(bb.event.FilesMatchingFound(filepattern, matches), self.data)
711 711
712 def findConfigFiles(self, varname): 712 def findConfigFiles(self, varname):
713 """ 713 """
@@ -717,7 +717,7 @@ class BBCooker:
717 possible = [] 717 possible = []
718 var = varname.lower() 718 var = varname.lower()
719 719
720 data = self.configuration.data 720 data = self.data
721 # iterate configs 721 # iterate configs
722 bbpaths = data.getVar('BBPATH', True).split(':') 722 bbpaths = data.getVar('BBPATH', True).split(':')
723 for path in bbpaths: 723 for path in bbpaths:
@@ -731,7 +731,7 @@ class BBCooker:
731 possible.append(val) 731 possible.append(val)
732 732
733 if possible: 733 if possible:
734 bb.event.fire(bb.event.ConfigFilesFound(var, possible), self.configuration.data) 734 bb.event.fire(bb.event.ConfigFilesFound(var, possible), self.data)
735 735
736 def findInheritsClass(self, klass): 736 def findInheritsClass(self, klass):
737 """ 737 """
@@ -762,7 +762,7 @@ class BBCooker:
762 762
763 # generate a dependency tree for all our packages 763 # generate a dependency tree for all our packages
764 tree = self.generatePkgDepTreeData(pkgs, 'build') 764 tree = self.generatePkgDepTreeData(pkgs, 'build')
765 bb.event.fire(bb.event.TargetsTreeGenerated(tree), self.configuration.data) 765 bb.event.fire(bb.event.TargetsTreeGenerated(tree), self.data)
766 766
767 def buildWorldTargetList(self): 767 def buildWorldTargetList(self):
768 """ 768 """
@@ -808,7 +808,7 @@ class BBCooker:
808 min_prio = 0 808 min_prio = 0
809 for c in collection_list: 809 for c in collection_list:
810 # Get collection priority if defined explicitly 810 # Get collection priority if defined explicitly
811 priority = self.configuration.data.getVar("BBFILE_PRIORITY_%s" % c, True) 811 priority = self.data.getVar("BBFILE_PRIORITY_%s" % c, True)
812 if priority: 812 if priority:
813 try: 813 try:
814 prio = int(priority) 814 prio = int(priority)
@@ -822,7 +822,7 @@ class BBCooker:
822 collection_priorities[c] = None 822 collection_priorities[c] = None
823 823
824 # Check dependencies and store information for priority calculation 824 # Check dependencies and store information for priority calculation
825 deps = self.configuration.data.getVar("LAYERDEPENDS_%s" % c, True) 825 deps = self.data.getVar("LAYERDEPENDS_%s" % c, True)
826 if deps: 826 if deps:
827 depnamelist = [] 827 depnamelist = []
828 deplist = deps.split() 828 deplist = deps.split()
@@ -842,7 +842,7 @@ class BBCooker:
842 842
843 if dep in collection_list: 843 if dep in collection_list:
844 if depver: 844 if depver:
845 layerver = self.configuration.data.getVar("LAYERVERSION_%s" % dep, True) 845 layerver = self.data.getVar("LAYERVERSION_%s" % dep, True)
846 if layerver: 846 if layerver:
847 try: 847 try:
848 lver = int(layerver) 848 lver = int(layerver)
@@ -879,7 +879,7 @@ class BBCooker:
879 # Calculate all layer priorities using calc_layer_priority and store in bbfile_config_priorities 879 # Calculate all layer priorities using calc_layer_priority and store in bbfile_config_priorities
880 for c in collection_list: 880 for c in collection_list:
881 calc_layer_priority(c) 881 calc_layer_priority(c)
882 regex = self.configuration.data.getVar("BBFILE_PATTERN_%s" % c, True) 882 regex = self.data.getVar("BBFILE_PATTERN_%s" % c, True)
883 if regex == None: 883 if regex == None:
884 parselog.error("BBFILE_PATTERN_%s not defined" % c) 884 parselog.error("BBFILE_PATTERN_%s not defined" % c)
885 errors = True 885 errors = True
@@ -899,9 +899,9 @@ class BBCooker:
899 """ 899 """
900 Setup any variables needed before starting a build 900 Setup any variables needed before starting a build
901 """ 901 """
902 if not self.configuration.data.getVar("BUILDNAME"): 902 if not self.data.getVar("BUILDNAME"):
903 self.configuration.data.setVar("BUILDNAME", time.strftime('%Y%m%d%H%M')) 903 self.data.setVar("BUILDNAME", time.strftime('%Y%m%d%H%M'))
904 self.configuration.data.setVar("BUILDSTART", time.strftime('%m/%d/%Y %H:%M:%S', time.gmtime())) 904 self.data.setVar("BUILDSTART", time.strftime('%m/%d/%Y %H:%M:%S', time.gmtime()))
905 905
906 def matchFiles(self, bf): 906 def matchFiles(self, bf):
907 """ 907 """
@@ -911,7 +911,7 @@ class BBCooker:
911 bf = os.path.abspath(bf) 911 bf = os.path.abspath(bf)
912 912
913 self.collection = CookerCollectFiles(self.recipecache.bbfile_config_priorities) 913 self.collection = CookerCollectFiles(self.recipecache.bbfile_config_priorities)
914 filelist, masked = self.collection.collect_bbfiles(self.configuration.data, self.configuration.event_data) 914 filelist, masked = self.collection.collect_bbfiles(self.data, self.event_data)
915 try: 915 try:
916 os.stat(bf) 916 os.stat(bf)
917 bf = os.path.abspath(bf) 917 bf = os.path.abspath(bf)
@@ -966,7 +966,7 @@ class BBCooker:
966 966
967 self.recipecache = bb.cache.CacheData(self.caches_array) 967 self.recipecache = bb.cache.CacheData(self.caches_array)
968 infos = bb.cache.Cache.parse(fn, self.collection.get_file_appends(fn), \ 968 infos = bb.cache.Cache.parse(fn, self.collection.get_file_appends(fn), \
969 self.configuration.data, 969 self.data,
970 self.caches_array) 970 self.caches_array)
971 infos = dict(infos) 971 infos = dict(infos)
972 972
@@ -999,15 +999,15 @@ class BBCooker:
999 999
1000 # Setup taskdata structure 1000 # Setup taskdata structure
1001 taskdata = bb.taskdata.TaskData(self.configuration.abort) 1001 taskdata = bb.taskdata.TaskData(self.configuration.abort)
1002 taskdata.add_provider(self.configuration.data, self.recipecache, item) 1002 taskdata.add_provider(self.data, self.recipecache, item)
1003 1003
1004 buildname = self.configuration.data.getVar("BUILDNAME") 1004 buildname = self.data.getVar("BUILDNAME")
1005 bb.event.fire(bb.event.BuildStarted(buildname, [item]), self.configuration.event_data) 1005 bb.event.fire(bb.event.BuildStarted(buildname, [item]), self.event_data)
1006 1006
1007 # Execute the runqueue 1007 # Execute the runqueue
1008 runlist = [[item, "do_%s" % task]] 1008 runlist = [[item, "do_%s" % task]]
1009 1009
1010 rq = bb.runqueue.RunQueue(self, self.configuration.data, self.recipecache, taskdata, runlist) 1010 rq = bb.runqueue.RunQueue(self, self.data, self.recipecache, taskdata, runlist)
1011 1011
1012 def buildFileIdle(server, rq, abort): 1012 def buildFileIdle(server, rq, abort):
1013 1013
@@ -1026,7 +1026,7 @@ class BBCooker:
1026 return False 1026 return False
1027 1027
1028 if not retval: 1028 if not retval:
1029 bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, item, failures), self.configuration.event_data) 1029 bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, item, failures), self.event_data)
1030 self.command.finishAsyncCommand() 1030 self.command.finishAsyncCommand()
1031 return False 1031 return False
1032 if retval is True: 1032 if retval is True:
@@ -1063,7 +1063,7 @@ class BBCooker:
1063 return False 1063 return False
1064 1064
1065 if not retval: 1065 if not retval:
1066 bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, targets, failures), self.configuration.data) 1066 bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, targets, failures), self.data)
1067 self.command.finishAsyncCommand() 1067 self.command.finishAsyncCommand()
1068 return False 1068 return False
1069 if retval is True: 1069 if retval is True:
@@ -1072,10 +1072,10 @@ class BBCooker:
1072 1072
1073 self.buildSetVars() 1073 self.buildSetVars()
1074 1074
1075 buildname = self.configuration.data.getVar("BUILDNAME") 1075 buildname = self.data.getVar("BUILDNAME")
1076 bb.event.fire(bb.event.BuildStarted(buildname, targets), self.configuration.data) 1076 bb.event.fire(bb.event.BuildStarted(buildname, targets), self.data)
1077 1077
1078 localdata = data.createCopy(self.configuration.data) 1078 localdata = data.createCopy(self.data)
1079 bb.data.update_data(localdata) 1079 bb.data.update_data(localdata)
1080 bb.data.expandKeys(localdata) 1080 bb.data.expandKeys(localdata)
1081 1081
@@ -1087,7 +1087,7 @@ class BBCooker:
1087 runlist.append([k, "do_%s" % task]) 1087 runlist.append([k, "do_%s" % task])
1088 taskdata.add_unresolved(localdata, self.recipecache) 1088 taskdata.add_unresolved(localdata, self.recipecache)
1089 1089
1090 rq = bb.runqueue.RunQueue(self, self.configuration.data, self.recipecache, taskdata, runlist) 1090 rq = bb.runqueue.RunQueue(self, self.data, self.recipecache, taskdata, runlist)
1091 if universe: 1091 if universe:
1092 rq.rqdata.warn_multi_bb = True 1092 rq.rqdata.warn_multi_bb = True
1093 1093
@@ -1123,16 +1123,16 @@ class BBCooker:
1123 if self.state != state.parsing: 1123 if self.state != state.parsing:
1124 self.parseConfiguration () 1124 self.parseConfiguration ()
1125 1125
1126 ignore = self.configuration.data.getVar("ASSUME_PROVIDED", True) or "" 1126 ignore = self.data.getVar("ASSUME_PROVIDED", True) or ""
1127 self.recipecache.ignored_dependencies = set(ignore.split()) 1127 self.recipecache.ignored_dependencies = set(ignore.split())
1128 1128
1129 for dep in self.configuration.extra_assume_provided: 1129 for dep in self.configuration.extra_assume_provided:
1130 self.recipecache.ignored_dependencies.add(dep) 1130 self.recipecache.ignored_dependencies.add(dep)
1131 1131
1132 self.collection = CookerCollectFiles(self.recipecache.bbfile_config_priorities) 1132 self.collection = CookerCollectFiles(self.recipecache.bbfile_config_priorities)
1133 (filelist, masked) = self.collection.collect_bbfiles(self.configuration.data, self.configuration.event_data) 1133 (filelist, masked) = self.collection.collect_bbfiles(self.data, self.event_data)
1134 1134
1135 self.configuration.data.renameVar("__depends", "__base_depends") 1135 self.data.renameVar("__depends", "__base_depends")
1136 1136
1137 self.parser = CookerParser(self, filelist, masked) 1137 self.parser = CookerParser(self, filelist, masked)
1138 self.state = state.parsing 1138 self.state = state.parsing
@@ -1177,14 +1177,14 @@ class BBCooker:
1177 # necessary from the data store. 1177 # necessary from the data store.
1178 #bb.utils.empty_environment() 1178 #bb.utils.empty_environment()
1179 try: 1179 try:
1180 prserv.serv.auto_start(self.configuration.data) 1180 prserv.serv.auto_start(self.data)
1181 except prserv.serv.PRServiceConfigError: 1181 except prserv.serv.PRServiceConfigError:
1182 bb.event.fire(CookerExit(), self.configuration.event_data) 1182 bb.event.fire(CookerExit(), self.event_data)
1183 return 1183 return
1184 1184
1185 def post_serve(self): 1185 def post_serve(self):
1186 prserv.serv.auto_shutdown(self.configuration.data) 1186 prserv.serv.auto_shutdown(self.data)
1187 bb.event.fire(CookerExit(), self.configuration.event_data) 1187 bb.event.fire(CookerExit(), self.event_data)
1188 1188
1189 def shutdown(self): 1189 def shutdown(self):
1190 self.state = state.shutdown 1190 self.state = state.shutdown
@@ -1490,8 +1490,8 @@ class CookerParser(object):
1490 def __init__(self, cooker, filelist, masked): 1490 def __init__(self, cooker, filelist, masked):
1491 self.filelist = filelist 1491 self.filelist = filelist
1492 self.cooker = cooker 1492 self.cooker = cooker
1493 self.cfgdata = cooker.configuration.data 1493 self.cfgdata = cooker.data
1494 self.cfghash = cooker.configuration.data_hash 1494 self.cfghash = cooker.data_hash
1495 1495
1496 # Accounting statistics 1496 # Accounting statistics
1497 self.parsed = 0 1497 self.parsed = 0
@@ -1582,8 +1582,8 @@ class CookerParser(object):
1582 sync = threading.Thread(target=self.bb_cache.sync) 1582 sync = threading.Thread(target=self.bb_cache.sync)
1583 sync.start() 1583 sync.start()
1584 multiprocessing.util.Finalize(None, sync.join, exitpriority=-100) 1584 multiprocessing.util.Finalize(None, sync.join, exitpriority=-100)
1585 bb.codeparser.parser_cache_savemerge(self.cooker.configuration.data) 1585 bb.codeparser.parser_cache_savemerge(self.cooker.data)
1586 bb.fetch.fetcher_parse_done(self.cooker.configuration.data) 1586 bb.fetch.fetcher_parse_done(self.cooker.data)
1587 1587
1588 def load_cached(self): 1588 def load_cached(self):
1589 for filename, appends in self.fromcache: 1589 for filename, appends in self.fromcache: