license: don't assume source files are UTF-8

We can't assume that source files are entirely UTF-8, so when copying the
license blocks open the file as binary instead of text.

[ YOCTO #11135 ]

(From OE-Core rev: b606e1430c36f1ad528fbfbbf9b8b6243390b879)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2017-03-08 14:30:13 +00:00
committed by Richard Purdie
parent 519255fd73
commit 0ed537f95b

View File

@@ -386,9 +386,9 @@ def copy_license_files(lic_files_paths, destdir):
if begin_idx is None and end_idx is None:
shutil.copyfile(src, dst)
else:
with open(src, 'r') as src_f:
with open(dst, 'w') as dst_f:
dst_f.write(''.join(src_f.readlines()[begin_idx:end_idx]))
with open(src, 'rb') as src_f:
with open(dst, 'wb') as dst_f:
dst_f.write(b''.join(src_f.readlines()[begin_idx:end_idx]))
except Exception as e:
bb.warn("Could not copy license file %s to %s: %s" % (src, dst, e))