diff options
Diffstat (limited to 'app-i18n/mozc/files/mozc-2.23.2815.102-python-3_1.patch')
-rw-r--r-- | app-i18n/mozc/files/mozc-2.23.2815.102-python-3_1.patch | 621 |
1 files changed, 621 insertions, 0 deletions
diff --git a/app-i18n/mozc/files/mozc-2.23.2815.102-python-3_1.patch b/app-i18n/mozc/files/mozc-2.23.2815.102-python-3_1.patch new file mode 100644 index 000000000000..2b9bbd720cde --- /dev/null +++ b/app-i18n/mozc/files/mozc-2.23.2815.102-python-3_1.patch @@ -0,0 +1,621 @@ +https://github.com/google/mozc/issues/462 + +--- /src/base/gen_character_set.py ++++ /src/base/gen_character_set.py +@@ -33,7 +33,6 @@ + import itertools + import optparse + import re +-import string + import sys + + +@@ -89,7 +88,8 @@ + @staticmethod + def _LoadTable(filename, column_index, pattern, validater): + result = set() +- for line in open(filename): ++ fh = open(filename) ++ for line in fh: + if line.startswith('#'): + # Skip a comment line. + continue +@@ -100,6 +100,7 @@ + ucs = int(match.group(1), 16) + if validater(ucs): + result.add(ucs) ++ fh.close() + + return result + +@@ -250,7 +251,7 @@ + # (at most) four code points. + bit_list = [] + for _, group in itertools.groupby(enumerate(category_list), +- lambda (codepoint, _): codepoint / 4): ++ lambda x: x[0] // 4): + # Fill bits from LSB to MSB for each group. + bits = 0 + for index, (_, category) in enumerate(group): +@@ -263,7 +264,7 @@ + + # Output the content. Each line would have (at most) 16 bytes. + for _, group in itertools.groupby(enumerate(bit_list), +- lambda (index, _): index / 16): ++ lambda x: x[0] // 16): + line = [' \"'] + for _, bits in group: + line.append('\\x%02X' % bits) +@@ -386,7 +387,7 @@ + # Bitmap lookup. + # TODO(hidehiko): the bitmap has two huge 0-bits ranges. Reduce them. + category_map = [ +- (bits, category) for category, bits in CATEGORY_BITMAP.iteritems()] ++ (bits, category) for category, bits in CATEGORY_BITMAP.items()] + category_map.sort() + + lines.extend([ +@@ -451,7 +452,7 @@ + options.jisx0213file) + category_list = [ + categorizer.GetCategory(codepoint) +- for codepoint in xrange(categorizer.MaxCodePoint() + 1)] ++ for codepoint in range(categorizer.MaxCodePoint() + 1)] + generated_character_set_header = GenerateCharacterSetHeader(category_list) + + # Write the result. +--- /src/base/gen_config_file_stream_data.py ++++ /src/base/gen_config_file_stream_data.py +@@ -58,7 +58,7 @@ + result = [] + result.append(' { "%s", "' % os.path.basename(path)) + with open(path, 'rb') as stream: +- result.extend(r'\x%02X' % ord(byte) for byte in stream.read()) ++ result.extend(r'\x%02X' % byte for byte in stream.read()) + result.append('", %d }' % os.path.getsize(path)) + + return ''.join(result) +@@ -93,8 +93,8 @@ + def main(): + (options, args) = ParseOptions() + if not options.output: +- print >>sys.stderr, ( +- 'usage: gen_config_file_stream_data.py --output=filepath input ...') ++ print('usage: gen_config_file_stream_data.py --output=filepath input ...', ++ file=sys.stderr) + sys.exit(2) + + with open(options.output, 'w') as output: +--- /src/build_mozc.py ++++ /src/build_mozc.py +@@ -943,7 +943,7 @@ + logging.info('running %s...', binary) + try: + test_function(binary, gtest_report_dir, options) +- except RunOrDieError, e: ++ except RunOrDieError as e: + logging.error(e) + failed_tests.append(binary) + else: +@@ -1082,7 +1082,7 @@ + # and '-c' and 'Release' are build options. + targets = [] + build_options = [] +- for i in xrange(len(args)): ++ for i in range(len(args)): + if args[i].startswith('-'): + # starting with build options + build_options = args[i:] +@@ -1190,14 +1190,14 @@ + + def ShowHelpAndExit(): + """Shows the help message.""" +- print 'Usage: build_mozc.py COMMAND [ARGS]' +- print 'Commands: ' +- print ' gyp Generate project files.' +- print ' build Build the specified target.' +- print ' runtests Build all tests and run them.' +- print ' clean Clean all the build files and directories.' +- print '' +- print 'See also the comment in the script for typical usage.' ++ print('Usage: build_mozc.py COMMAND [ARGS]') ++ print('Commands: ') ++ print(' gyp Generate project files.') ++ print(' build Build the specified target.') ++ print(' runtests Build all tests and run them.') ++ print(' clean Clean all the build files and directories.') ++ print('') ++ print('See also the comment in the script for typical usage.') + sys.exit(1) + + +--- /src/build_tools/android_util.py ++++ /src/build_tools/android_util.py +@@ -548,7 +548,7 @@ + (devices_result, _) = process.communicate() + used_ports = set(int(port) for port + in re.findall(r'emulator-(\d+)', devices_result)) +- return [port for port in xrange(5554, 5586, 2) if port not in used_ports] ++ return [port for port in range(5554, 5586, 2) if port not in used_ports] + + + def SetUpTestingSdkHomeDirectory(dest_android_sdk_home, +@@ -575,7 +575,7 @@ + 'create', 'avd', + '--force', + '--sdcard', '512M',] +- for key, value in options.iteritems(): ++ for key, value in options.items(): + args.extend([key, value]) + env = {'ANDROID_SDK_HOME': os.path.abspath(dest_android_sdk_home)} + logging.info('Creating AVD: %s', args) +@@ -615,7 +615,7 @@ + def main(): + for arg in sys.argv[1:]: + for item in sorted(GetApkProperties(arg).items()): +- print '%s: %s' % item ++ print('%s: %s' % item) + + + if __name__ == '__main__': +--- /src/build_tools/binary_size_checker.py ++++ /src/build_tools/binary_size_checker.py +@@ -70,12 +70,12 @@ + actual_size = os.stat(filename).st_size + expected_size = EXPECTED_MAXIMUM_SIZES[basename] + if actual_size < expected_size * 1024 * 1024: +- print 'Pass: %s (size: %d) is smaller than expected (%d MB)' % ( +- filename, actual_size, expected_size) ++ print('Pass: %s (size: %d) is smaller than expected (%d MB)' % ( ++ filename, actual_size, expected_size)) + return True + else: +- print 'WARNING: %s (size: %d) is larger than expected (%d MB)' % ( +- filename, actual_size, expected_size) ++ print('WARNING: %s (size: %d) is larger than expected (%d MB)' % ( ++ filename, actual_size, expected_size)) + return False + + +--- /src/build_tools/build_and_sign_pkg_mac.py ++++ /src/build_tools/build_and_sign_pkg_mac.py +@@ -44,8 +44,8 @@ + import shutil + import sys + +-from util import PrintErrorAndExit +-from util import RunOrDie ++from .util import PrintErrorAndExit ++from .util import RunOrDie + + + def ParseOption(): +--- /src/build_tools/build_breakpad.py ++++ /src/build_tools/build_breakpad.py +@@ -54,9 +54,9 @@ + try: + subprocess.check_output(command) + except subprocess.CalledProcessError as e: +- print e.output ++ print(e.output) + sys.exit(e.returncode) +- print 'Done: %s' % ' '.join(command) ++ print('Done: %s' % ' '.join(command)) + + + def Xcodebuild(projdir, target, arch, sdk, outdir): +--- /src/build_tools/build_diskimage_mac.py ++++ /src/build_tools/build_diskimage_mac.py +@@ -90,7 +90,7 @@ + # setup volume directory + temp_dir = tempfile.mkdtemp() + CopyFile(path.join(build_dir, ".keystone_install"), temp_dir) +- os.chmod(path.join(temp_dir, ".keystone_install"), 0755) # rwxr-xr-x ++ os.chmod(path.join(temp_dir, ".keystone_install"), 0o755) # rwxr-xr-x + for a in args: + CopyFile(path.join(build_dir, a), temp_dir) + +--- /src/build_tools/change_reference_mac.py ++++ /src/build_tools/change_reference_mac.py +@@ -41,8 +41,8 @@ + import optparse + import os + +-from util import PrintErrorAndExit +-from util import RunOrDie ++from .util import PrintErrorAndExit ++from .util import RunOrDie + + + def ParseOption(): +--- /src/build_tools/code_generator_util.py ++++ /src/build_tools/code_generator_util.py +@@ -33,27 +33,26 @@ + __author__ = "hidehiko" + + import struct +-import types + + + def ToCppStringLiteral(s): + """Returns C-style string literal, or NULL if given s is None.""" + if s is None: +- return 'NULL' ++ return b'NULL' + +- if all(0x20 <= ord(c) <= 0x7E for c in s): ++ if all(0x20 <= c <= 0x7E for c in s): + # All characters are in ascii code. +- return '"%s"' % s.replace('\\', r'\\').replace('"', r'\"') ++ return b'"%b"' % s.replace(b'\\', br'\\').replace(b'"', br'\"') + else: + # One or more characters are non-ascii. +- return '"%s"' % ''.join(r'\x%02X' % ord(c) for c in s) ++ return b'"%b"' % b''.join(br'\x%02X' % c for c in s) + + + def FormatWithCppEscape(format_text, *args): + """Returns a string filling format with args.""" + literal_list = [] + for arg in args: +- if isinstance(arg, (types.StringType, types.NoneType)): ++ if isinstance(arg, (bytes, type(None))): + arg = ToCppStringLiteral(arg) + literal_list.append(arg) + +@@ -95,7 +94,7 @@ + if target_compiler and target_compiler.startswith('msvs'): + stream.write('const uint64 k%s_data_wordtype[] = {\n' % variable_name) + +- for word_index in xrange(0, len(data), 8): ++ for word_index in range(0, len(data), 8): + word_chunk = data[word_index:word_index + 8].ljust(8, '\x00') + stream.write('0x%016X, ' % struct.unpack('<Q', word_chunk)) + if (word_index / 8) % 4 == 3: +@@ -111,7 +110,7 @@ + stream.write('const char k%s_data[] =\n' % variable_name) + # Output 16bytes per line. + chunk_size = 16 +- for index in xrange(0, len(data), chunk_size): ++ for index in range(0, len(data), chunk_size): + chunk = data[index:index + chunk_size] + stream.write('"') + stream.writelines(r'\x%02X' % ord(c) for c in chunk) +@@ -126,36 +125,50 @@ + if type(codepoint_list) is int: + codepoint_list = (codepoint_list,) + if codepoint_list is None or len(codepoint_list) == 0: +- return 'null' +- result = r'"' ++ return b'null' ++ result = b'"' + for codepoint in codepoint_list: +- utf16_string = unichr(codepoint).encode('utf-16be') ++ utf16_string = chr(codepoint).encode('utf-16be') + if len(utf16_string) == 2: + (u0, l0) = utf16_string +- result += r'\u%02X%02X' % (ord(u0), ord(l0)) ++ result += br'\u%02X%02X' % (u0, l0) + else: + (u0, l0, u1, l1) = utf16_string +- result += r'\u%02X%02X\u%02X%02X' % (ord(u0), ord(l0), ord(u1), ord(l1)) +- result += r'"' ++ result += br'\u%02X%02X\u%02X%02X' % (u0, l0, u1, l1) ++ result += b'"' + return result + + + def SkipLineComment(stream, comment_prefix='#'): + """Skips line comments from stream.""" + for line in stream: ++ if isinstance(line, bytes): ++ if isinstance(comment_prefix, str): ++ comment_prefix = comment_prefix.encode('utf-8') ++ line_ending = b'\n' ++ else: ++ line_ending = '\n' + stripped_line = line.strip() + if stripped_line and not stripped_line.startswith(comment_prefix): +- yield line.rstrip('\n') ++ yield line.rstrip(line_ending) + + + def ParseColumnStream(stream, num_column=None, delimiter=None): + """Returns parsed columns read from stream.""" + if num_column is None: + for line in stream: +- yield line.rstrip('\n').split(delimiter) ++ if isinstance(line, bytes): ++ line_ending = b'\n' ++ else: ++ line_ending = '\n' ++ yield line.rstrip(line_ending).split(delimiter) + else: + for line in stream: +- yield line.rstrip('\n').split(delimiter)[:num_column] ++ if isinstance(line, bytes): ++ line_ending = b'\n' ++ else: ++ line_ending = '\n' ++ yield line.rstrip(line_ending).split(delimiter)[:num_column] + + + def SelectColumn(stream, column_index): +@@ -172,5 +185,5 @@ + grouper extends the last chunk to make it an n-element chunk by adding + appropriate value, but this returns truncated chunk. + """ +- for index in xrange(0, len(iterable), n): ++ for index in range(0, len(iterable), n): + yield iterable[index:index + n] +--- /src/build_tools/codesign_mac.py ++++ /src/build_tools/codesign_mac.py +@@ -46,17 +46,17 @@ + + def RunOrDie(command): + """Run the command, or die if it failed.""" +- print "Running: " + command ++ print("Running: " + command) + try: + output = subprocess.check_output(command, shell=True) +- print >> sys.stderr, "==========" +- print >> sys.stderr, "COMMAND: " + command +- print >> sys.stderr, output ++ print("==========", file=sys.stderr) ++ print("COMMAND: " + command, file=sys.stderr) ++ print(output, file=sys.stderr) + except subprocess.CalledProcessError as e: +- print >> sys.stderr, "==========" +- print >> sys.stderr, "ERROR: " + command +- print >> sys.stderr, e.output +- print >> sys.stderr, "==========" ++ print("==========", file=sys.stderr) ++ print("ERROR: " + command, file=sys.stderr) ++ print(e.output, file=sys.stderr) ++ print("==========", file=sys.stderr) + sys.exit(1) + + +@@ -119,18 +119,18 @@ + (options, unused_args) = parser.parse_args() + + if not options.target: +- print "Error: --target should be specified." +- print parser.print_help() ++ print("Error: --target should be specified.") ++ print(parser.print_help()) + sys.exit(1) + + return options + + + def DumpEnviron(): +- print "=== os.environ ===" ++ print("=== os.environ ===") + for key in sorted(os.environ): +- print "%s = %s" % (key, os.getenv(key)) +- print "==================" ++ print("%s = %s" % (key, os.getenv(key))) ++ print("==================") + + + def main(): +--- /src/build_tools/copy_dll_and_symbol.py ++++ /src/build_tools/copy_dll_and_symbol.py +@@ -38,7 +38,7 @@ + import os + import shutil + +-from util import PrintErrorAndExit ++from .util import PrintErrorAndExit + + def ParseOption(): + """Parse command line options.""" +@@ -98,7 +98,7 @@ + if _GetLastModifiedTime(src) <= target_file_mtime: + # Older file found. Ignore. + continue +- print 'Copying %s to %s' % (src, target_file_abspath) ++ print('Copying %s to %s' % (src, target_file_abspath)) + shutil.copy2(src, target_file_abspath) + break + +--- /src/build_tools/copy_file.py ++++ /src/build_tools/copy_file.py +@@ -52,7 +52,7 @@ + Args: + message: The error message to be printed to stderr. + """ +- print >>sys.stderr, message ++ print(message, file=sys.stderr) + sys.exit(1) + + +--- /src/build_tools/copy_qt_frameworks_mac.py ++++ /src/build_tools/copy_qt_frameworks_mac.py +@@ -41,9 +41,9 @@ + import optparse + import os + +-from copy_file import CopyFiles +-from util import PrintErrorAndExit +-from util import RunOrDie ++from .copy_file import CopyFiles ++from .util import PrintErrorAndExit ++from .util import RunOrDie + + + def ParseOption(): +--- /src/build_tools/embed_file.py ++++ /src/build_tools/embed_file.py +@@ -46,10 +46,10 @@ + + def _FormatAsUint64LittleEndian(s): + """Formats a string as uint64 value in little endian order.""" +- for _ in xrange(len(s), 8): +- s += '\0' ++ for _ in range(len(s), 8): ++ s += b'\0' + s = s[::-1] # Reverse the string +- return '0x%s' % binascii.b2a_hex(s) ++ return b'0x%b' % binascii.b2a_hex(s) + + + def main(): +@@ -57,30 +57,30 @@ + with open(opts.input, 'rb') as infile: + with open(opts.output, 'wb') as outfile: + outfile.write( +- '#ifdef MOZC_EMBEDDED_FILE_%(name)s\n' +- '#error "%(name)s was already included or defined elsewhere"\n' +- '#else\n' +- '#define MOZC_EMBEDDED_FILE_%(name)s\n' +- 'const uint64 %(name)s_data[] = {\n' +- % {'name': opts.name}) ++ b'#ifdef MOZC_EMBEDDED_FILE_%(name)b\n' ++ b'#error "%(name)b was already included or defined elsewhere"\n' ++ b'#else\n' ++ b'#define MOZC_EMBEDDED_FILE_%(name)b\n' ++ b'const uint64 %(name)b_data[] = {\n' ++ % {b'name': opts.name.encode('utf-8')}) + + while True: + chunk = infile.read(8) + if not chunk: + break +- outfile.write(' ') ++ outfile.write(b' ') + outfile.write(_FormatAsUint64LittleEndian(chunk)) +- outfile.write(',\n') ++ outfile.write(b',\n') + + outfile.write( +- '};\n' +- 'const EmbeddedFile %(name)s = {\n' +- ' %(name)s_data,\n' +- ' %(size)d,\n' +- '};\n' +- '#endif // MOZC_EMBEDDED_FILE_%(name)s\n' +- % {'name': opts.name, +- 'size': os.stat(opts.input).st_size}) ++ b'};\n' ++ b'const EmbeddedFile %(name)b = {\n' ++ b' %(name)b_data,\n' ++ b' %(size)d,\n' ++ b'};\n' ++ b'#endif // MOZC_EMBEDDED_FILE_%(name)b\n' ++ % {b'name': opts.name.encode('utf-8'), ++ b'size': os.stat(opts.input).st_size}) + + + if __name__ == '__main__': +--- /src/build_tools/embed_pathname.py ++++ /src/build_tools/embed_pathname.py +@@ -28,7 +28,7 @@ + # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-"""A script to embed the given (relative) path name to C/C++ characters array. ++r"""A script to embed the given (relative) path name to C/C++ characters array. + + Example: + ./embed_pathname.py --path_to_be_embedded=d:\data\mozc +@@ -53,7 +53,7 @@ + + (options, unused_args) = parser.parse_args() + if not all(vars(options).values()): +- print parser.print_help() ++ print(parser.print_help()) + sys.exit(1) + + return options +@@ -63,7 +63,7 @@ + opt = ParseOption() + path = os.path.abspath(opt.path_to_be_embedded) + # TODO(yukawa): Consider the case of non-ASCII characters. +- escaped_path = path.encode('string-escape') ++ escaped_path = path.replace('\\', '\\\\') + with open(opt.output, 'w') as output_file: + output_file.write( + 'const char %s[] = "%s";\n' % (opt.constant_name, escaped_path)) +--- /src/build_tools/ensure_gyp_module_path.py ++++ /src/build_tools/ensure_gyp_module_path.py +@@ -48,7 +48,7 @@ + + (options, _) = parser.parse_args() + if not options.expected: +- print parser.print_help() ++ print(parser.print_help()) + sys.exit(1) + + return options +@@ -59,20 +59,20 @@ + opt = ParseOption() + expected_path = os.path.abspath(opt.expected) + if not os.path.exists(expected_path): +- print '%s does not exist.' % expected_path ++ print('%s does not exist.' % expected_path) + sys.exit(1) + + try: + import gyp # NOLINT + except ImportError as e: +- print 'import gyp failed: %s' % e ++ print('import gyp failed: %s' % e) + sys.exit(1) + + actual_path = os.path.abspath(gyp.__path__[0]) + if expected_path != actual_path: +- print 'Unexpected gyp module is loaded on this environment.' +- print ' expected: %s' % expected_path +- print ' actual : %s' % actual_path ++ print('Unexpected gyp module is loaded on this environment.') ++ print(' expected: %s' % expected_path) ++ print(' actual : %s' % actual_path) + sys.exit(1) + + if __name__ == '__main__': +--- /src/build_tools/gen_win32_resource_header.py ++++ /src/build_tools/gen_win32_resource_header.py +@@ -39,7 +39,7 @@ + __author__ = "yukawa" + + import logging +-import mozc_version ++from . import mozc_version + import optparse + import os + import sys +--- /src/build_tools/mozc_version.py ++++ /src/build_tools/mozc_version.py +@@ -94,7 +94,7 @@ + last_digit = TARGET_PLATFORM_TO_DIGIT.get(target_platform, None) + if last_digit is None: + logging.critical('target_platform %s is invalid. Accetable ones are %s', +- target_platform, TARGET_PLATFORM_TO_DIGIT.keys()) ++ target_platform, list(TARGET_PLATFORM_TO_DIGIT.keys())) + sys.exit(1) + + if not revision: +@@ -314,13 +314,14 @@ + self._properties = {} + if not os.path.isfile(path): + return +- for line in open(path): +- matchobj = re.match(r'(\w+)=(.*)', line.strip()) +- if matchobj: +- var = matchobj.group(1) +- val = matchobj.group(2) +- if var not in self._properties: +- self._properties[var] = val ++ with open(path) as file: ++ for line in file: ++ matchobj = re.match(r'(\w+)=(.*)', line.strip()) ++ if matchobj: ++ var = matchobj.group(1) ++ val = matchobj.group(2) ++ if var not in self._properties: ++ self._properties[var] = val + + # Check mandatory properties. + for key in VERSION_PROPERTIES: |