aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/lib/recipetool/create.py
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2016-06-27 09:22:11 +1200
committerPaul Eggleton <paul.eggleton@linux.intel.com>2016-06-29 15:11:21 +1200
commit7c749720e8f23828d5312b040be0b0451f2fd009 (patch)
tree7d85ed5b4d53166fdd2d7649e4e37a9d010a4d7c /scripts/lib/recipetool/create.py
parent646c366c2566bd8dd6f73681cea9f5b021589a56 (diff)
downloadopenembedded-core-contrib-7c749720e8f23828d5312b040be0b0451f2fd009.tar.gz
openembedded-core-contrib-7c749720e8f23828d5312b040be0b0451f2fd009.tar.bz2
openembedded-core-contrib-7c749720e8f23828d5312b040be0b0451f2fd009.zip
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]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Diffstat (limited to 'scripts/lib/recipetool/create.py')
-rw-r--r--scripts/lib/recipetool/create.py6
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):
srcsubdir = dirlist[0]
srctree = os.path.join(srctree, srcsubdir)
else:
- with open(singleitem, 'r') as f:
+ with open(singleitem, 'r', errors='surrogateescape') as f:
if '<html' in f.read(100).lower():
logger.error('Fetching "%s" returned a single HTML page - check the URL is correct and functional' % fetchuri)
sys.exit(1)
@@ -840,7 +840,7 @@ def crunch_license(licfile):
# https://github.com/FFmpeg/FFmpeg/blob/master/COPYING.LGPLv3
crunched_md5sums['2ebfb3bb49b9a48a075cc1425e7f4129'] = 'LGPLv3'
lictext = []
- with open(licfile, 'r') as f:
+ with open(licfile, 'r', errors='surrogateescape') as f:
for line in f:
# Drop opening statements
if copyright_re.match(line):
@@ -978,7 +978,7 @@ def convert_debian(debpath):
values = {}
depends = []
- with open(os.path.join(debpath, 'control')) as f:
+ with open(os.path.join(debpath, 'control'), 'r', errors='surrogateescape') as f:
indesc = False
for line in f:
if indesc: