From a582c6b07ccce44973acaba4c60c4549cbaa5c38 Mon Sep 17 00:00:00 2001 From: cclauss Date: Tue, 13 Aug 2019 14:53:52 +0200 Subject: [PATCH] build: support py3 for configure.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/29106 Reviewed-By: Anna Henningsen Reviewed-By: Michaƫl Zasso Reviewed-By: Richard Lau Reviewed-By: Sam Roberts Reviewed-By: Jiawen Geng Reviewed-By: Rich Trott --- configure.py | 39 ++++++++++++++++----------------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/configure.py b/configure.py index cc805d3fd165fd..3d752f434bbafe 100755 --- a/configure.py +++ b/configure.py @@ -11,7 +11,6 @@ import shlex import subprocess import shutil -import string from distutils.spawn import find_executable as which # If not run from node/, cd to node/. @@ -626,18 +625,14 @@ def print_verbose(x): def b(value): """Returns the string 'true' if value is truthy, 'false' otherwise.""" - if value: - return 'true' - else: - return 'false' + return 'true' if value else 'false' def B(value): """Returns 1 if value is truthy, 0 otherwise.""" - if value: - return 1 - else: - return 0 + return 1 if value else 0 +def to_utf8(s): + return s if isinstance(s, str) else s.decode("utf-8") def pkg_config(pkg): """Run pkg-config on the specified package @@ -652,7 +647,7 @@ def pkg_config(pkg): try: proc = subprocess.Popen(shlex.split(pkg_config) + args, stdout=subprocess.PIPE) - val = proc.communicate()[0].strip() + val = to_utf8(proc.communicate()[0]).strip() except OSError as e: if e.errno != errno.ENOENT: raise e # Unexpected error. return (None, None, None, None) # No pkg-config/pkgconf installed. @@ -668,10 +663,10 @@ def try_check_compiler(cc, lang): except OSError: return (False, False, '', '') - proc.stdin.write('__clang__ __GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__ ' - '__clang_major__ __clang_minor__ __clang_patchlevel__') + proc.stdin.write(b'__clang__ __GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__ ' + b'__clang_major__ __clang_minor__ __clang_patchlevel__') - values = (proc.communicate()[0].split() + ['0'] * 7)[0:7] + values = (to_utf8(proc.communicate()[0]).split() + ['0'] * 7)[0:7] is_clang = values[0] == '1' gcc_version = tuple(map(int, values[1:1+3])) clang_version = tuple(map(int, values[4:4+3])) if is_clang else None @@ -696,7 +691,7 @@ def get_version_helper(cc, regexp): consider adjusting the CC environment variable if you installed it in a non-standard prefix.''') - match = re.search(regexp, proc.communicate()[1]) + match = re.search(regexp, to_utf8(proc.communicate()[1])) if match: return match.group(2) @@ -715,7 +710,7 @@ def get_nasm_version(asm): return '0' match = re.match(r"NASM version ([2-9]\.[0-9][0-9]+)", - proc.communicate()[0]) + to_utf8(proc.communicate()[0])) if match: return match.group(1) @@ -746,7 +741,7 @@ def get_gas_version(cc): consider adjusting the CC environment variable if you installed it in a non-standard prefix.''') - gas_ret = proc.communicate()[1] + gas_ret = to_utf8(proc.communicate()[1]) match = re.match(r"GNU assembler version ([2-9]\.[0-9]+)", gas_ret) if match: @@ -811,10 +806,8 @@ def cc_macros(cc=None): consider adjusting the CC environment variable if you installed it in a non-standard prefix.''') - p.stdin.write('\n') - out = p.communicate()[0] - - out = str(out).split('\n') + p.stdin.write(b'\n') + out = to_utf8(p.communicate()[0]).split('\n') k = {} for line in out: @@ -1294,7 +1287,7 @@ def glob_to_var(dir_base, dir_sub, patch_dir): def configure_intl(o): def icu_download(path): - depFile = 'tools/icu/current_ver.dep'; + depFile = 'tools/icu/current_ver.dep' with open(depFile) as f: icus = json.load(f) # download ICU, if needed @@ -1363,7 +1356,7 @@ def write_config(data, name): o['variables']['icu_small'] = b(True) locs = set(options.with_icu_locales.split(',')) locs.add('root') # must have root - o['variables']['icu_locales'] = string.join(locs,',') + o['variables']['icu_locales'] = ','.join(str(loc) for loc in locs) # We will check a bit later if we can use the canned deps/icu-small elif with_intl == 'full-icu': # full ICU @@ -1503,7 +1496,7 @@ def write_config(data, name): elif int(icu_ver_major) < icu_versions['minimum_icu']: error('icu4c v%s.x is too old, v%d.x or later is required.' % (icu_ver_major, icu_versions['minimum_icu'])) - icu_endianness = sys.byteorder[0]; + icu_endianness = sys.byteorder[0] o['variables']['icu_ver_major'] = icu_ver_major o['variables']['icu_endianness'] = icu_endianness icu_data_file_l = 'icudt%s%s.dat' % (icu_ver_major, 'l')