From 0507ec4c6069490c9a503e9e2b65f0e7b1962d34 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 28 Feb 2019 12:24:49 +0000 Subject: scripts/wic: Be consistent about how we call bitbake Whilst its tempting to call bitbake_main(), the script also directly executes bitbake. By doing both this creates all kinds of races. Therefore change to use subprocess execution in all cases. Signed-off-by: Richard Purdie --- scripts/wic | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'scripts/wic') diff --git a/scripts/wic b/scripts/wic index 37dfe2dc58..b4b7212cfa 100755 --- a/scripts/wic +++ b/scripts/wic @@ -35,6 +35,7 @@ import os import sys import argparse import logging +import subprocess from collections import namedtuple from distutils import spawn @@ -63,10 +64,7 @@ if os.environ.get('SDKTARGETSYSROOT'): bitbake_exe = spawn.find_executable('bitbake') if bitbake_exe: bitbake_path = scriptpath.add_bitbake_lib_path() - from bb import cookerdata - from bb.main import bitbake_main, BitBakeConfigParameters -else: - bitbake_main = None + import bb from wic import WicError from wic.misc import get_bitbake_var, BB_VARS @@ -124,7 +122,7 @@ def wic_create_subcommand(options, usage_str): Command-line handling for image creation. The real work is done by image.engine.wic_create() """ - if options.build_rootfs and not bitbake_main: + if options.build_rootfs and not bitbake_exe: raise WicError("Can't build rootfs as bitbake is not in the $PATH") if not options.image_name: @@ -160,9 +158,7 @@ def wic_create_subcommand(options, usage_str): argv.append("--debug") logger.info("Building rootfs...\n") - if bitbake_main(BitBakeConfigParameters(argv), - cookerdata.CookerConfiguration()): - raise WicError("bitbake exited with error") + subprocess.check_call(argv) rootfs_dir = get_bitbake_var("IMAGE_ROOTFS", options.image_name) kernel_dir = get_bitbake_var("DEPLOY_DIR_IMAGE", options.image_name) @@ -179,9 +175,7 @@ def wic_create_subcommand(options, usage_str): if not options.vars_dir and (not native_sysroot or not os.path.isdir(native_sysroot)): logger.info("Building wic-tools...\n") - if bitbake_main(BitBakeConfigParameters("bitbake wic-tools".split()), - cookerdata.CookerConfiguration()): - raise WicError("bitbake wic-tools failed") + subprocess.check_call(["bitbake", "wic-tools"]) native_sysroot = get_bitbake_var("RECIPE_SYSROOT_NATIVE", "wic-tools") if not native_sysroot: -- cgit 1.2.3-korg