diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2016-06-29 15:12:03 +1200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-07-08 09:57:24 +0100 |
commit | 75f1a0ed422669734081f394187c28ef0258dfc2 (patch) | |
tree | dbb026543f557ec3c391d41fc03be9b72196dbe7 /scripts/lib/recipetool/create.py | |
parent | 74c5cd0c2c98c0fb80c834b514afacb598ad7073 (diff) | |
download | poky-75f1a0ed422669734081f394187c28ef0258dfc2.tar.gz |
recipetool: create: avoid decoding errors with Python 3
We're opening source files with the default encoding (utf-8) but we
can't necessarily be sure that they are UTF-8 clean - for example,
recipetool create ftp://mama.indstate.edu/linux/tree/tree-1.7.0.tgz
prior to this patch resulted in a UnicodeDecodeError. Use the
"surrogateescape" mode to avoid this.
Fixes [YOCTO #9822].
(From OE-Core rev: 50fcd9d1b9a20d49bc873467a82a071f2f2f8b5a)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib/recipetool/create.py')
-rw-r--r-- | scripts/lib/recipetool/create.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py index 129742807f..042e7009cb 100644 --- a/scripts/lib/recipetool/create.py +++ b/scripts/lib/recipetool/create.py | |||
@@ -390,7 +390,7 @@ def create_recipe(args): | |||
390 | srcsubdir = dirlist[0] | 390 | srcsubdir = dirlist[0] |
391 | srctree = os.path.join(srctree, srcsubdir) | 391 | srctree = os.path.join(srctree, srcsubdir) |
392 | else: | 392 | else: |
393 | with open(singleitem, 'r') as f: | 393 | with open(singleitem, 'r', errors='surrogateescape') as f: |
394 | if '<html' in f.read(100).lower(): | 394 | if '<html' in f.read(100).lower(): |
395 | logger.error('Fetching "%s" returned a single HTML page - check the URL is correct and functional' % fetchuri) | 395 | logger.error('Fetching "%s" returned a single HTML page - check the URL is correct and functional' % fetchuri) |
396 | sys.exit(1) | 396 | sys.exit(1) |
@@ -840,7 +840,7 @@ def crunch_license(licfile): | |||
840 | # https://github.com/FFmpeg/FFmpeg/blob/master/COPYING.LGPLv3 | 840 | # https://github.com/FFmpeg/FFmpeg/blob/master/COPYING.LGPLv3 |
841 | crunched_md5sums['2ebfb3bb49b9a48a075cc1425e7f4129'] = 'LGPLv3' | 841 | crunched_md5sums['2ebfb3bb49b9a48a075cc1425e7f4129'] = 'LGPLv3' |
842 | lictext = [] | 842 | lictext = [] |
843 | with open(licfile, 'r') as f: | 843 | with open(licfile, 'r', errors='surrogateescape') as f: |
844 | for line in f: | 844 | for line in f: |
845 | # Drop opening statements | 845 | # Drop opening statements |
846 | if copyright_re.match(line): | 846 | if copyright_re.match(line): |
@@ -978,7 +978,7 @@ def convert_debian(debpath): | |||
978 | 978 | ||
979 | values = {} | 979 | values = {} |
980 | depends = [] | 980 | depends = [] |
981 | with open(os.path.join(debpath, 'control')) as f: | 981 | with open(os.path.join(debpath, 'control'), 'r', errors='surrogateescape') as f: |
982 | indesc = False | 982 | indesc = False |
983 | for line in f: | 983 | for line in f: |
984 | if indesc: | 984 | if indesc: |