[elbe-devel] [PATCH] soapclient: fix cdrom upload
Torben Hohn
torben.hohn at linutronix.de
Thu Jul 16 08:54:52 CEST 2020
The cdrom file is opened in text mode. That results in utf-8 errors.
------------------------------------------------------------------------------
Traceback (most recent call last):
File "/home/old/linutronix/elbe/elbe", line 62, in <module>
cmdmod.run_command(sys.argv[2:])
File "/home/old/linutronix/elbe/elbepack/commands/control.py", line 189, in run_command
action.execute(control, opt, args[1:])
File "/home/old/linutronix/elbe/elbepack/soapclient.py", line 651, in execute
bindata = fp.read(size)
File "/usr/lib/python3.8/codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xef in position 32849: invalid continuation byte
elbe control set_cdrom Failed
Giving up
------------------------------------------------------------------------------
Open file in binary mode. In Python2 this does not change anything. But
in python3 this will result in read() returning bytes. And it will not
try to treat the file data as utf-8.
Signed-off-by: Torben Hohn <torben.hohn at linutronix.de>
---
elbepack/soapclient.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/elbepack/soapclient.py b/elbepack/soapclient.py
index f7bddf266..a465b615b 100644
--- a/elbepack/soapclient.py
+++ b/elbepack/soapclient.py
@@ -645,7 +645,7 @@ class SetCdromAction(ClientAction):
builddir = args[0]
filename = args[1]
- fp = open(filename, "r")
+ fp = open(filename, "rb")
client.service.start_cdrom(builddir)
while True:
bindata = fp.read(size)
--
2.20.1
More information about the elbe-devel
mailing list