From: Joshua Watt Date: Thu, 23 Mar 2023 15:37:59 +0000 (-0500) Subject: runqemu: Fix TypeError when command fails X-Git-Tag: 2023-04-mickledore~127 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3e5d04d9ebbee4e11fb39bf353b6d4c3133e166a;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git 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] Signed-off-by: Joshua Watt Signed-off-by: Alexandre Belloni --- diff --git a/scripts/runqemu b/scripts/runqemu index fee6b25b974..61a7f1820a6 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():