From: Olaf Hering Date: Thu, 1 Jul 2021 09:56:01 +0000 (+0200) Subject: tools/python: fix Python3.4 TypeError in format string X-Git-Tag: archive/raspbian/4.14.3-1+rpi1^2~44^2~34 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=bb9377a20559de07e1dbe91399902c70cfafccea;p=xen.git tools/python: fix Python3.4 TypeError in format string Using the first element of a tuple for a format specifier fails with python3.4 as included in SLE12: b = b"string/%x" % (i, ) TypeError: unsupported operand type(s) for %: 'bytes' and 'tuple' It happens to work with python 2.7 and 3.6. To support older Py3, format as strings and explicitly encode as ASCII. Signed-off-by: Olaf Hering Reviewed-by: Andrew Cooper Acked-by: Marek Marczykowski-Górecki (cherry picked from commit a27976a1080d537fb1f212a8f9133d60daa0025b) --- diff --git a/tools/python/scripts/convert-legacy-stream b/tools/python/scripts/convert-legacy-stream index 227e1b5c3f..7fe375a668 100755 --- a/tools/python/scripts/convert-legacy-stream +++ b/tools/python/scripts/convert-legacy-stream @@ -346,9 +346,9 @@ def read_libxl_toolstack(vm, data): if bytearray(name)[-1] != 0: raise StreamError("physmap name not NUL terminated") - root = b"physmap/%x" % (phys, ) - kv = [root + b"/start_addr", b"%x" % (start, ), - root + b"/size", b"%x" % (size, ), + root = ("physmap/%x" % (phys, )).encode('ascii') + kv = [root + b"/start_addr", ("%x" % (start, )).encode('ascii'), + root + b"/size", ("%x" % (size, )).encode('ascii'), root + b"/name", name[:-1]] for key, val in zip(kv[0::2], kv[1::2]):