scripts: Fix encoding errors for python3
Moved call of decode('utf-8') as close as possible to call of subprocess API to avoid calling it in a lot of other places. Decoded binary data to utf-8 where appropriate to fix devtool and recipetool tests in python 3 environment. (From OE-Core rev: 30d02e2aa2d42fdf76271234b2dc9f37bc46b250) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
ed7abe6b9a
commit
3ee70cb725
|
@ -292,7 +292,10 @@ class GitApplyTree(PatchTree):
|
|||
def decodeAuthor(line):
|
||||
from email.header import decode_header
|
||||
authorval = line.split(':', 1)[1].strip().replace('"', '')
|
||||
return decode_header(authorval)[0][0]
|
||||
result = decode_header(authorval)[0][0]
|
||||
if hasattr(result, 'decode'):
|
||||
result = result.decode('utf-8')
|
||||
return result
|
||||
|
||||
@staticmethod
|
||||
def interpretPatchHeader(headerlines):
|
||||
|
|
|
@ -69,6 +69,7 @@ def exec_watch(cmd, **options):
|
|||
buf = ''
|
||||
while True:
|
||||
out = process.stdout.read(1)
|
||||
out = out.decode('utf-8')
|
||||
if out:
|
||||
sys.stdout.write(out)
|
||||
sys.stdout.flush()
|
||||
|
|
|
@ -90,7 +90,7 @@ def find_target_file(targetpath, d, pkglist=None):
|
|||
if fnmatch.fnmatchcase(fullpth, targetpath):
|
||||
recipes[targetpath].append(pn)
|
||||
elif line.startswith('pkg_preinst_') or line.startswith('pkg_postinst_'):
|
||||
scriptval = line.split(':', 1)[1].strip().decode('string_escape')
|
||||
scriptval = line.split(':', 1)[1].strip().encode('utf-8').decode('unicode_escape')
|
||||
if 'update-alternatives --install %s ' % targetpath in scriptval:
|
||||
recipes[targetpath].append('?%s' % pn)
|
||||
elif targetpath_re.search(scriptval):
|
||||
|
@ -172,7 +172,7 @@ def get_source_path(cmdelements):
|
|||
"""Find the source path specified within a command"""
|
||||
command = cmdelements[0]
|
||||
if command in ['install', 'cp']:
|
||||
helptext = subprocess.check_output('LC_ALL=C %s --help' % command, shell=True)
|
||||
helptext = subprocess.check_output('LC_ALL=C %s --help' % command, shell=True).decode('utf-8')
|
||||
argopts = ''
|
||||
argopt_line_re = re.compile('^-([a-zA-Z0-9]), --[a-z-]+=')
|
||||
for line in helptext.splitlines():
|
||||
|
|
|
@ -851,14 +851,14 @@ def crunch_license(licfile):
|
|||
continue
|
||||
# Squash spaces, and replace smart quotes, double quotes
|
||||
# and backticks with single quotes
|
||||
line = oe.utils.squashspaces(line.strip()).decode("utf-8")
|
||||
line = oe.utils.squashspaces(line.strip())
|
||||
line = line.replace(u"\u2018", "'").replace(u"\u2019", "'").replace(u"\u201c","'").replace(u"\u201d", "'").replace('"', '\'').replace('`', '\'')
|
||||
if line:
|
||||
lictext.append(line)
|
||||
|
||||
m = hashlib.md5()
|
||||
try:
|
||||
m.update(' '.join(lictext))
|
||||
m.update(' '.join(lictext).encode('utf-8'))
|
||||
md5val = m.hexdigest()
|
||||
except UnicodeEncodeError:
|
||||
md5val = None
|
||||
|
|
|
@ -516,7 +516,7 @@ class PythonRecipeHandler(RecipeHandler):
|
|||
except (OSError, subprocess.CalledProcessError):
|
||||
pass
|
||||
else:
|
||||
for line in dep_output.splitlines():
|
||||
for line in dep_output.decode('utf-8').splitlines():
|
||||
line = line.rstrip()
|
||||
dep, filename = line.split('\t', 1)
|
||||
if filename.endswith('/setup.py'):
|
||||
|
|
Loading…
Reference in New Issue