From bfe2255172c9d33a592e0ecdec6d651672d22682 Mon Sep 17 00:00:00 2001 From: Changqing Li Date: Thu, 15 Nov 2018 16:16:55 +0800 Subject: checklayer: generate locked-sigs.inc under builddir yocto-check-layer will find locked-sigs.inc under builddir, but locked-sigs.inc is generated under current bitbake working dir. if run yocto-check-layer outside builddir, we will met error like "No such file or directory: *locked-sigs.inc". change to run bitbake -S under builddir to fix this problem. [YOCTO #12973] (From OE-Core rev: 2ec0bc0b038bc6413978c8f34ef5c0d22b4bc3e7) Signed-off-by: Changqing Li Signed-off-by: Richard Purdie --- scripts/lib/checklayer/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'scripts') diff --git a/scripts/lib/checklayer/__init__.py b/scripts/lib/checklayer/__init__.py index 7788041843..ca7863a19e 100644 --- a/scripts/lib/checklayer/__init__.py +++ b/scripts/lib/checklayer/__init__.py @@ -221,13 +221,13 @@ def add_layer(bblayersconf, layer, layers, logger): return True -def check_command(error_msg, cmd): +def check_command(error_msg, cmd, cwd=None): ''' Run a command under a shell, capture stdout and stderr in a single stream, throw an error when command returns non-zero exit code. Returns the output. ''' - p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=cwd) output, _ = p.communicate() if p.returncode: msg = "%s\nCommand: %s\nOutput:\n%s" % (error_msg, cmd, output.decode('utf-8')) @@ -257,7 +257,7 @@ def get_signatures(builddir, failsafe=False, machine=None): os.unlink(sigs_file) try: check_command('Generating signatures failed. This might be due to some parse error and/or general layer incompatibilities.', - cmd) + cmd, builddir) except RuntimeError as ex: if failsafe and os.path.exists(sigs_file): # Ignore the error here. Most likely some recipes active -- cgit v1.2.3-54-g00ecf