From 410569a701757de3801f33f481a565e7c2415d94 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Tue, 30 Aug 2016 17:05:52 +1200 Subject: [PATCH] update_layer.py: fix up for bitbake API change The multiconfig changes broke the calls here to loadDataFull(). To avoid this being an issue in future, make use of tinfoil's new parse_recipe_file() function (if available) to isolate the code here from any future changes to bitbake's internal code. Part of the fix for [YOCTO #10192]. Signed-off-by: Paul Eggleton --- layerindex/tools/import_classic.py | 11 +++++++---- layerindex/update_layer.py | 5 ++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/layerindex/tools/import_classic.py b/layerindex/tools/import_classic.py index ee99246..45ccaa9 100755 --- a/layerindex/tools/import_classic.py +++ b/layerindex/tools/import_classic.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Import OE-Classic recipe data into the layer index database # @@ -27,11 +27,14 @@ import recipeparse logger = utils.logger_create('LayerIndexUpdate') -def update_recipe_file(data, path, recipe, layerdir_start, repodir): +def update_recipe_file(tinfoil, data, path, recipe, layerdir_start, repodir): fn = str(os.path.join(path, recipe.filename)) try: logger.debug('Updating recipe %s' % fn) - envdata = bb.cache.Cache.loadDataFull(fn, [], data) + if hasattr(tinfoil, 'parse_recipe_file'): + envdata = tinfoil.parse_recipe_file(fn, appends=False, config_data=data) + else: + envdata = bb.cache.Cache.loadDataFull(fn, [], data) envdata.setVar('SRCPV', 'X') envdata.setVar('SRCDATE', 'X') envdata.setVar('SRCREV', 'X') @@ -182,7 +185,7 @@ def main(): recipe.layerbranch = layerbranch recipe.filename = filename recipe.filepath = filepath - update_recipe_file(config_data_copy, root, recipe, layerdir_start, oeclassicpath) + update_recipe_file(tinfoil, config_data_copy, root, recipe, layerdir_start, oeclassicpath) recipe.save() layerbranch.vcs_last_fetch = datetime.now() diff --git a/layerindex/update_layer.py b/layerindex/update_layer.py index ccda4f9..13b508f 100644 --- a/layerindex/update_layer.py +++ b/layerindex/update_layer.py @@ -58,7 +58,10 @@ def update_recipe_file(tinfoil, data, path, recipe, layerdir_start, repodir): fn = str(os.path.join(path, recipe.filename)) try: logger.debug('Updating recipe %s' % fn) - envdata = tinfoil.cache.loadDataFull(fn, []) + if hasattr(tinfoil, 'parse_recipe_file'): + envdata = tinfoil.parse_recipe_file(fn, appends=False, config_data=data) + else: + envdata = bb.cache.Cache.loadDataFull(fn, [], data) envdata.setVar('SRCPV', 'X') recipe.pn = envdata.getVar("PN", True) recipe.pv = envdata.getVar("PV", True)