diff options
author | V3n3RiX <venerix@koprulu.sector> | 2022-01-04 01:27:12 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2022-01-04 01:27:12 +0000 |
commit | 3517852e3b8a68d1e997770fc0650c5053bafc6c (patch) | |
tree | 44068672445b1418489aed82de58df3c470289e7 /dev-lang/jerryscript | |
parent | 0f15659d48c193027158492acb726297501202c5 (diff) |
gentoo resync : 04.01.2022
Diffstat (limited to 'dev-lang/jerryscript')
-rw-r--r-- | dev-lang/jerryscript/Manifest | 4 | ||||
-rw-r--r-- | dev-lang/jerryscript/files/jerryscript-2.4.0-python3-r4.patch | 236 | ||||
-rw-r--r-- | dev-lang/jerryscript/files/jerryscript-2.4.0-python3.patch | 128 | ||||
-rw-r--r-- | dev-lang/jerryscript/jerryscript-2.4.0-r4.ebuild (renamed from dev-lang/jerryscript/jerryscript-2.4.0-r3.ebuild) | 19 |
4 files changed, 249 insertions, 138 deletions
diff --git a/dev-lang/jerryscript/Manifest b/dev-lang/jerryscript/Manifest index 347d36f81fc4..05cfc0a5c593 100644 --- a/dev-lang/jerryscript/Manifest +++ b/dev-lang/jerryscript/Manifest @@ -1,4 +1,4 @@ -AUX jerryscript-2.4.0-python3.patch 5463 BLAKE2B ad2fdaf83a2be714194c3ee6e6703211792a8a1dbe4bbb13914f37e50c9ade6cbad915236fae3a74eb2bfed22a640c1daf0958570c2e792450dd5d59a2e5eacc SHA512 445dabde9b8c5c48b6ceb3663b234a0a7f26c2f310a4a0673bdb7301409cd6e76dbedc590bbd1a27814021e8917a7ec55487070b39c2508d061c156e408063a7 +AUX jerryscript-2.4.0-python3-r4.patch 9837 BLAKE2B 5758af36551b8ea75fe8719bf6bfaa41fc03cb32012af61b1747a1d7464038e2fb5ddd5523bd894dbd7e23d399f5e330f163e87d6b1d9a485f393706ef74e98f SHA512 5e490949df94120e077dab74998275b02d0edca63288f1358499981a664ddeff8b2947837cf3bec356072ce40634b0945bcedb9ae689f430ba943dd5cbedd1ca DIST jerryscript-2.4.0.tar.gz 2802799 BLAKE2B 18a3f71e7d3e2fc43772cb94aa3b0d4d28d72c6cd174eb0195f09283c5da5140ef85e86c6ed7a82e672724563549294c26d870b55c8bd9d0a92251b1002c612a SHA512 e96e6c6a2207ff869474801a1f8bbd3ce453d4076e558736ebf6962ccab08540f57cf932ec43bcd40429e21f1c6453d77874dd0a467d91a15d8357257533c1ea -EBUILD jerryscript-2.4.0-r3.ebuild 1740 BLAKE2B 519e56171297f4044fb34a40cc0a17580ff1dcb83cc9bb34e3e50aece4b2457a78daa01dfb84ff839f860257fc02325c981ed7db605195f0405c654ec5b3fa35 SHA512 f19ad96f5260bfa2eb4b69644efcd47b21438d5fcead63ae18b2f96e46de7ec5b963fed5f057024baf4e7e791be2b185d5458bd0f7cadc47666c0ad1329bdbc4 +EBUILD jerryscript-2.4.0-r4.ebuild 1861 BLAKE2B c8c4adb196c14fae623ead03f4d63170cb98b73b465fe917d613610132ae27873037c8ff90b7b1a3810c9622de3dd8f6704332297d8411caeb775438411d75ec SHA512 12ea0a863fe85a9868a6695fe318535bbb1990c38c50ba1d5e5e2c0bf100390b9accce5f4681350db97ce141a559b895ed83b2961df4fdac40a26226ad8726bb MISC metadata.xml 489 BLAKE2B 7bfef37a187374e80e86e4015d2501d7b105f19e2c33e2ccbfd0c216da6d01abfe42816890d27f5691d81103365e87d8c74ca439cc2266e8e0ee4b37e6d9fff5 SHA512 ca4df019071b344c7326998bb7c5e1cd533a540f955c85b20bd1166c80941de134fe6d2772f97ac9dd72dd4ea45123ca7c12af2c714d5b144c3ca6b236a5aba5 diff --git a/dev-lang/jerryscript/files/jerryscript-2.4.0-python3-r4.patch b/dev-lang/jerryscript/files/jerryscript-2.4.0-python3-r4.patch new file mode 100644 index 000000000000..92198f3901d4 --- /dev/null +++ b/dev-lang/jerryscript/files/jerryscript-2.4.0-python3-r4.patch @@ -0,0 +1,236 @@ +From 22d8b904d85e548aa06d2d665aeaaee510a2435a Mon Sep 17 00:00:00 2001 +From: Zac Medico <zmedico@gmail.com> +Date: Sun, 23 May 2021 13:46:30 -0700 +Subject: [PATCH] Python debugger support for Python 3 (in addition to Python + 2) + +- Added safe_ord compatibility to pass through int arguments +- Fixed JerryDebugger to decode bytes as utf8 strings when necessary +- Fixed WebSocket send_message method to use packed_data[0:1] bytes slice + +JerryScript-DCO-1.0-Signed-off-by: Zac Medico <zmedico@gmail.com> +--- + jerry-debugger/jerry_client_main.py | 82 ++++++++++++++---------- + jerry-debugger/jerry_client_rawpacket.py | 13 +++- + jerry-debugger/jerry_client_websocket.py | 15 ++++- + 3 files changed, 74 insertions(+), 36 deletions(-) + +diff --git a/jerry-debugger/jerry_client_main.py b/jerry-debugger/jerry_client_main.py +index e65d0e14..ee3ffd26 100644 +--- a/jerry-debugger/jerry_client_main.py ++++ b/jerry-debugger/jerry_client_main.py +@@ -151,2 +151,11 @@ def arguments_parse(): + ++if sys.version_info.major >= 3: ++ def safe_ord(c): ++ if isinstance(c, int): ++ return c ++ return ord(c) ++else: ++ safe_ord = ord ++ ++ + class JerryBreakpoint(object): +@@ -309,8 +318,8 @@ class JerryDebugger(object): + +- if len(result) != config_size or ord(result[0]) != JERRY_DEBUGGER_CONFIGURATION: ++ if len(result) != config_size or safe_ord(result[0]) != JERRY_DEBUGGER_CONFIGURATION: + raise Exception("Unexpected configuration") + +- self.little_endian = ord(result[1]) & JERRY_DEBUGGER_LITTLE_ENDIAN +- self.max_message_size = ord(result[6]) +- self.cp_size = ord(result[7]) ++ self.little_endian = safe_ord(result[1]) & JERRY_DEBUGGER_LITTLE_ENDIAN ++ self.max_message_size = safe_ord(result[6]) ++ self.cp_size = safe_ord(result[7]) + +@@ -402,3 +411,3 @@ class JerryDebugger(object): + if args != "pending": +- for i in self.active_breakpoint_list.values(): ++ for i in list(self.active_breakpoint_list.values()): + breakpoint = self.active_breakpoint_list[i.active_index] +@@ -563,2 +572,3 @@ class JerryDebugger(object): + def _send_string(self, args, message_type, index=0): ++ args = args.encode("utf8") + +@@ -686,3 +696,3 @@ class JerryDebugger(object): + +- buffer_type = ord(data[0]) ++ buffer_type = safe_ord(data[0]) + buffer_size = len(data) -1 +@@ -740,6 +750,6 @@ class JerryDebugger(object): + elif buffer_type == JERRY_DEBUGGER_EXCEPTION_STR: +- self.exception_string += data[1:] ++ self.exception_string += data[1:].decode("utf8") + + elif buffer_type == JERRY_DEBUGGER_EXCEPTION_STR_END: +- self.exception_string += data[1:] ++ self.exception_string += data[1:].decode("utf8") + +@@ -810,3 +820,3 @@ class JerryDebugger(object): + elif buffer_type in [JERRY_DEBUGGER_SCOPE_VARIABLES, JERRY_DEBUGGER_SCOPE_VARIABLES_END]: +- self.scope_vars += "".join(data[1:]) ++ self.scope_vars += "".join(data[1:].decode("utf8")) + +@@ -866,5 +876,5 @@ class JerryDebugger(object): + def _parse_source(self, data): +- source_code = "" +- source_code_name = "" +- function_name = "" ++ source_code = b"" ++ source_code_name = b"" ++ function_name = b"" + stack = [{"line": 1, +@@ -881,3 +891,3 @@ class JerryDebugger(object): + +- buffer_type = ord(data[0]) ++ buffer_type = safe_ord(data[0]) + buffer_size = len(data) - 1 +@@ -905,10 +915,10 @@ class JerryDebugger(object): + +- stack.append({"source": source_code, +- "source_name": source_code_name, ++ stack.append({"source": source_code.decode("utf8"), ++ "source_name": source_code_name.decode("utf8"), + "line": position[0], + "column": position[1], +- "name": function_name, ++ "name": function_name.decode("utf8"), + "lines": [], + "offsets": []}) +- function_name = "" ++ function_name = b"" + +@@ -939,4 +949,4 @@ class JerryDebugger(object): + if not stack: +- func_desc["source"] = source_code +- func_desc["source_name"] = source_code_name ++ func_desc["source"] = source_code.decode("utf8") ++ func_desc["source_name"] = source_code_name.decode("utf8") + +@@ -991,3 +1001,3 @@ class JerryDebugger(object): + +- for breakpoint_index, breakpoint in bp_list.items(): ++ for breakpoint_index, breakpoint in list(bp_list.items()): + source_lines = 0 +@@ -1134,3 +1144,3 @@ class JerryDebugger(object): + JERRY_DEBUGGER_OUTPUT_RESULT_END]: +- subtype = ord(data[-1]) ++ subtype = safe_ord(data[-1]) + message += data[1:-1] +@@ -1141,3 +1151,3 @@ class JerryDebugger(object): + data = self.channel.get_message(True) +- buffer_type = ord(data[0]) ++ buffer_type = safe_ord(data[0]) + # Checks if the next frame would be an invalid data frame. +@@ -1153,4 +1163,4 @@ class JerryDebugger(object): + message = self.current_out + message +- lines = message.split("\n") +- self.current_out = lines.pop() ++ lines = message.decode("utf8").split("\n") ++ self.current_out = lines.pop().encode("utf8") + +@@ -1162,4 +1172,4 @@ class JerryDebugger(object): + message = self.current_log + message +- lines = message.split("\n") +- self.current_log = lines.pop() ++ lines = message.decode("utf8").split("\n") ++ self.current_log = lines.pop().encode("utf8") + +@@ -1167,2 +1177,3 @@ class JerryDebugger(object): + ++ message = message.decode("utf8") + if not message.endswith("\n"): +@@ -1176,2 +1187,5 @@ class JerryDebugger(object): + return "%strace: %s%s" % (self.blue, self.nocolor, message) ++ else: ++ message = message.decode("utf8") ++ + +@@ -1195,3 +1209,3 @@ class JerryDebugger(object): + # Process name +- name_length = ord(self.scope_vars[buff_pos:buff_pos + 1]) ++ name_length = safe_ord(self.scope_vars[buff_pos:buff_pos + 1]) + buff_pos += 1 +@@ -1201,3 +1215,3 @@ class JerryDebugger(object): + # Process type +- value_type = ord(self.scope_vars[buff_pos:buff_pos + 1]) ++ value_type = safe_ord(self.scope_vars[buff_pos:buff_pos + 1]) + +@@ -1205,3 +1219,3 @@ class JerryDebugger(object): + +- value_length = ord(self.scope_vars[buff_pos:buff_pos + 1]) ++ value_length = safe_ord(self.scope_vars[buff_pos:buff_pos + 1]) + buff_pos += 1 +@@ -1236,12 +1250,12 @@ class JerryDebugger(object): + for i, level in enumerate(self.scope_data): +- if ord(level) == JERRY_DEBUGGER_SCOPE_WITH: ++ if safe_ord(level) == JERRY_DEBUGGER_SCOPE_WITH: + table.append([str(i), 'with']) +- elif ord(level) == JERRY_DEBUGGER_SCOPE_GLOBAL: ++ elif safe_ord(level) == JERRY_DEBUGGER_SCOPE_GLOBAL: + table.append([str(i), 'global']) +- elif ord(level) == JERRY_DEBUGGER_SCOPE_NON_CLOSURE: ++ elif safe_ord(level) == JERRY_DEBUGGER_SCOPE_NON_CLOSURE: + # Currently it is only marks the catch closure. + table.append([str(i), 'catch']) +- elif ord(level) == JERRY_DEBUGGER_SCOPE_LOCAL: ++ elif safe_ord(level) == JERRY_DEBUGGER_SCOPE_LOCAL: + table.append([str(i), 'local']) +- elif ord(level) == JERRY_DEBUGGER_SCOPE_CLOSURE: ++ elif safe_ord(level) == JERRY_DEBUGGER_SCOPE_CLOSURE: + table.append([str(i), 'closure']) +diff --git a/jerry-debugger/jerry_client_rawpacket.py b/jerry-debugger/jerry_client_rawpacket.py +index 5c3304ed..275be83c 100644 +--- a/jerry-debugger/jerry_client_rawpacket.py ++++ b/jerry-debugger/jerry_client_rawpacket.py +@@ -17,2 +17,3 @@ + import struct ++import sys + +@@ -20,2 +21,12 @@ MAX_BUFFER_SIZE = 256 + ++ ++if sys.version_info.major >= 3: ++ def safe_ord(c): ++ if isinstance(c, int): ++ return c ++ return ord(c) ++else: ++ safe_ord = ord ++ ++ + class RawPacket(object): +@@ -72,3 +83,3 @@ class RawPacket(object): + if len(self.data_buffer) >= 1: +- size = ord(self.data_buffer[0]) ++ size = safe_ord(self.data_buffer[0]) + if size == 0: +diff --git a/jerry-debugger/jerry_client_websocket.py b/jerry-debugger/jerry_client_websocket.py +index fe2c761a..9c755966 100644 +--- a/jerry-debugger/jerry_client_websocket.py ++++ b/jerry-debugger/jerry_client_websocket.py +@@ -17,2 +17,3 @@ + import struct ++import sys + +@@ -22,2 +23,14 @@ WEBSOCKET_FIN_BIT = 0x80 + ++ ++if sys.version_info.major >= 3: ++ # pylint: disable=invalid-name ++ _ord_orig = ord ++ def _ord_compat(c): ++ if isinstance(c, int): ++ return c ++ return _ord_orig(c) ++ # pylint: disable=redefined-builtin ++ ord = _ord_compat ++ ++ + class WebSocket(object): +@@ -94,3 +107,3 @@ class WebSocket(object): + WEBSOCKET_BINARY_FRAME | WEBSOCKET_FIN_BIT, +- WEBSOCKET_FIN_BIT + struct.unpack(byte_order + "B", packed_data[0])[0], ++ WEBSOCKET_FIN_BIT + struct.unpack(byte_order + "B", packed_data[0:1])[0], + 0) + packed_data[1:] diff --git a/dev-lang/jerryscript/files/jerryscript-2.4.0-python3.patch b/dev-lang/jerryscript/files/jerryscript-2.4.0-python3.patch deleted file mode 100644 index a7046b4b6453..000000000000 --- a/dev-lang/jerryscript/files/jerryscript-2.4.0-python3.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 3f725c9a6e62048dcc7e1d0dd0f9c3e8d2e092f6 Mon Sep 17 00:00:00 2001 -From: Zac Medico <zmedico@gmail.com> -Date: Sun, 23 May 2021 13:46:30 -0700 -Subject: [PATCH] Python debugger support for Python 3 (in addition to Python 2) - -https://github.com/jerryscript-project/jerryscript/pull/4678 - -- Added ord builtin compatibility to pass through int arguments -- Fixed JerryDebugger _parse_source method to decode bytes as utf8 strings -- Fixed WebSocket send_message method to use packed_data[0:1] bytes slice - -JerryScript-DCO-1.0-Signed-off-by: Zac Medico <zmedico@gmail.com> ---- - jerry-debugger/jerry_client_main.py | 26 ++++++++++++++++-------- - jerry-debugger/jerry_client_websocket.py | 14 ++++++++++++- - 2 files changed, 31 insertions(+), 9 deletions(-) - -diff --git a/jerry-debugger/jerry_client_main.py b/jerry-debugger/jerry_client_main.py -index e65d0e14..b465955f 100644 ---- a/jerry-debugger/jerry_client_main.py -+++ b/jerry-debugger/jerry_client_main.py -@@ -151,2 +151,13 @@ def arguments_parse(): - -+if sys.version_info.major >= 3: -+ # pylint: disable=invalid-name -+ _ord_orig = ord -+ def _ord_compat(c): -+ if isinstance(c, int): -+ return c -+ return _ord_orig(c) -+ # pylint: disable=redefined-builtin -+ ord = _ord_compat -+ -+ - class JerryBreakpoint(object): -@@ -563,2 +574,3 @@ class JerryDebugger(object): - def _send_string(self, args, message_type, index=0): -+ args = args.encode("utf8") - -@@ -810,3 +822,3 @@ class JerryDebugger(object): - elif buffer_type in [JERRY_DEBUGGER_SCOPE_VARIABLES, JERRY_DEBUGGER_SCOPE_VARIABLES_END]: -- self.scope_vars += "".join(data[1:]) -+ self.scope_vars += "".join(data[1:].decode("utf8")) - -@@ -866,5 +878,5 @@ class JerryDebugger(object): - def _parse_source(self, data): -- source_code = "" -- source_code_name = "" -- function_name = "" -+ source_code = b"" -+ source_code_name = b"" -+ function_name = b"" - stack = [{"line": 1, -@@ -905,7 +917,7 @@ class JerryDebugger(object): - -- stack.append({"source": source_code, -- "source_name": source_code_name, -+ stack.append({"source": source_code.decode("utf8"), -+ "source_name": source_code_name.decode("utf8"), - "line": position[0], - "column": position[1], -- "name": function_name, -+ "name": function_name.decode("utf8"), - "lines": [], -@@ -939,4 +951,4 @@ class JerryDebugger(object): - if not stack: -- func_desc["source"] = source_code -- func_desc["source_name"] = source_code_name -+ func_desc["source"] = source_code.decode("utf8") -+ func_desc["source_name"] = source_code_name.decode("utf8") - -@@ -1153,4 +1165,4 @@ class JerryDebugger(object): - message = self.current_out + message -- lines = message.split("\n") -- self.current_out = lines.pop() -+ lines = message.decode("utf8").split("\n") -+ self.current_out = lines.pop().encode("utf8") - -@@ -1162,4 +1174,4 @@ class JerryDebugger(object): - message = self.current_log + message -- lines = message.split("\n") -- self.current_log = lines.pop() -+ lines = message.decode("utf8").split("\n") -+ self.current_log = lines.pop().encode("utf8") - -@@ -1171,7 +1183,7 @@ class JerryDebugger(object): - if subtype == JERRY_DEBUGGER_OUTPUT_WARNING: -- return "%swarning: %s%s" % (self.yellow, self.nocolor, message) -+ return "%swarning: %s%s" % (self.yellow, self.nocolor, message.decode("utf8")) - elif subtype == JERRY_DEBUGGER_OUTPUT_ERROR: -- return "%serr: %s%s" % (self.red, self.nocolor, message) -+ return "%serr: %s%s" % (self.red, self.nocolor, message.decode("utf8")) - elif subtype == JERRY_DEBUGGER_OUTPUT_TRACE: -- return "%strace: %s%s" % (self.blue, self.nocolor, message) -+ return "%strace: %s%s" % (self.blue, self.nocolor, message.decode("utf8")) - -@@ -1180,2 +1192,3 @@ class JerryDebugger(object): - -+ message = message.decode("utf8") - if not message.endswith("\n"): -diff --git a/jerry-debugger/jerry_client_websocket.py b/jerry-debugger/jerry_client_websocket.py -index fe2c761a..9c755966 100644 ---- a/jerry-debugger/jerry_client_websocket.py -+++ b/jerry-debugger/jerry_client_websocket.py -@@ -17,2 +17,3 @@ - import struct -+import sys - -@@ -22,2 +23,14 @@ WEBSOCKET_FIN_BIT = 0x80 - -+ -+if sys.version_info.major >= 3: -+ # pylint: disable=invalid-name -+ _ord_orig = ord -+ def _ord_compat(c): -+ if isinstance(c, int): -+ return c -+ return _ord_orig(c) -+ # pylint: disable=redefined-builtin -+ ord = _ord_compat -+ -+ - class WebSocket(object): -@@ -94,3 +107,3 @@ class WebSocket(object): - WEBSOCKET_BINARY_FRAME | WEBSOCKET_FIN_BIT, -- WEBSOCKET_FIN_BIT + struct.unpack(byte_order + "B", packed_data[0])[0], -+ WEBSOCKET_FIN_BIT + struct.unpack(byte_order + "B", packed_data[0:1])[0], - 0) + packed_data[1:] diff --git a/dev-lang/jerryscript/jerryscript-2.4.0-r3.ebuild b/dev-lang/jerryscript/jerryscript-2.4.0-r4.ebuild index f7f6592c87ba..bc0002817e91 100644 --- a/dev-lang/jerryscript/jerryscript-2.4.0-r3.ebuild +++ b/dev-lang/jerryscript/jerryscript-2.4.0-r4.ebuild @@ -1,10 +1,10 @@ -# Copyright 2021 Gentoo Authors +# Copyright 2021-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 -PYTHON_COMPAT=(python3_{7,8,9}) -inherit cmake python-any-r1 +PYTHON_COMPAT=(python3_{7,8,9,10}) +inherit cmake python-single-r1 DESCRIPTION="Ultra-lightweight JavaScript engine for the Internet of Things" HOMEPAGE="https://github.com/jerryscript-project/jerryscript" @@ -16,10 +16,11 @@ KEYWORDS="~amd64" IUSE="debugger" RDEPEND="debugger? ( ${PYTHON_DEPS} )" BDEPEND="${RDEPEND}" +REQUIRED_USE="debugger? ( ${PYTHON_REQUIRED_USE} )" RESTRICT+=" test" PATCHES=( - "${FILESDIR}/jerryscript-2.4.0-python3.patch" + "${FILESDIR}/jerryscript-2.4.0-python3-r4.patch" ) src_prepare() { @@ -61,11 +62,13 @@ src_install() { python_optimize "${ED}${jerry_debugger_dir}" cat <<-EOF > "${T}/jerry-debugger" - #!/bin/sh - export PYTHONPATH=${EPREFIX}${jerry_debugger_dir} - exec python "${jerry_debugger_dir}/jerry_client.py" "\$@" + #!/usr/bin/python + import sys + sys.path.insert(0, "${EPREFIX}${jerry_debugger_dir}") + with open("${jerry_debugger_dir}/jerry_client.py") as f: + exec(f.read()) EOF - dobin "${T}"/jerry-debugger + python_doscript "${T}"/jerry-debugger fi } |