From 7def843a5544e97fa4f7b885feeb01b1cc269950 Mon Sep 17 00:00:00 2001 From: Joshua Watt Date: Thu, 23 Mar 2023 10:37:59 -0500 Subject: runqemu: Fix TypeError when command fails The commands passed to subprocess are tuples which when passed to a % format are treated as multiple format arguments instead of a single argument to be coerced by "%s". This results in a TypeError being raised with python claiming that not all arguments were consumed. Fix this by wrapping the command tuple in a str() call, as is done for the logging strings [YOCTO #15078] (From OE-Core rev: 3e5d04d9ebbee4e11fb39bf353b6d4c3133e166a) Signed-off-by: Joshua Watt Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie --- scripts/runqemu | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/runqemu b/scripts/runqemu index fee6b25b97..61a7f1820a 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -1042,7 +1042,7 @@ to your build configuration. cmd = ('runqemu-extract-sdk', src, dest) logger.info('Running %s...' % str(cmd)) if subprocess.call(cmd) != 0: - raise RunQemuError('Failed to run %s' % cmd) + raise RunQemuError('Failed to run %s' % str(cmd)) self.rootfs = dest self.cleanup_files.append(self.rootfs) self.cleanup_files.append('%s.pseudo_state' % self.rootfs) @@ -1051,7 +1051,7 @@ to your build configuration. cmd = ('runqemu-export-rootfs', 'start', self.rootfs) logger.info('Running %s...' % str(cmd)) if subprocess.call(cmd) != 0: - raise RunQemuError('Failed to run %s' % cmd) + raise RunQemuError('Failed to run %s' % str(cmd)) self.nfs_running = True @@ -1060,7 +1060,7 @@ to your build configuration. if cmd != '': logger.info('Running setup command %s' % str(cmd)) if subprocess.call(cmd, shell=True) != 0: - raise RunQemuError('Failed to run %s' % cmd) + raise RunQemuError('Failed to run %s' % str(cmd)) def setup_net_bridge(self): self.set('NETWORK_CMD', '-netdev bridge,br=%s,id=net0,helper=%s -device virtio-net-pci,netdev=net0 ' % ( @@ -1554,7 +1554,7 @@ to your build configuration. if cmd != '': logger.info('Running cleanup command %s' % str(cmd)) if subprocess.call(cmd, shell=True) != 0: - raise RunQemuError('Failed to run %s' % cmd) + raise RunQemuError('Failed to run %s' % str(cmd)) def cleanup(self): if self.cleaned: @@ -1663,7 +1663,7 @@ to your build configuration. return result raise RunQemuError("Native sysroot directory %s doesn't exist" % result) else: - raise RunQemuError("Can't find STAGING_BINDIR_NATIVE in '%s' output" % cmd) + raise RunQemuError("Can't find STAGING_BINDIR_NATIVE in '%s' output" % str(cmd)) def main(): -- cgit v1.2.3-54-g00ecf