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 <JPEWhacker@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Joshua Watt 2023-03-23 10:37:59 -05:00 committed by Richard Purdie
parent 41de1ecadd
commit 7def843a55

View File

@ -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():