From b5cdce85e8dc27f192634556556ac56dadea3433 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 13 Jul 2024 15:47:35 +0200 Subject: [PATCH] package/qt5/qt5webengine-chromium: fix another Python 3.x issue Backport an upstream Chromium patch that fixes: FAILED: gen/services/metrics/public/cpp/ukm_builders.cc gen/services/metrics/public/cpp/ukm_builders.h gen/services/metrics/public/cpp/ukm_decode.cc gen/services/metrics/public/cpp/ukm_decode.h /home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/host-bin/python ../../3rdparty/chromium/tools/metrics/ukm/gen_builders.py --input ../../3rdparty/chromium/tools/metrics/ukm/ukm.xml --output gen/services/metrics/public/cpp /home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/metrics/ukm/../common/models.py:247: SyntaxWarning: invalid escape sequence '\w' """A complex node type that has attributes or other nodes as children. Traceback (most recent call last): File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/core/release/../../3rdparty/chromium/tools/metrics/ukm/gen_builders.py", line 59, in sys.exit(main(sys.argv)) ^^^^^^^^^^^^^^ File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/core/release/../../3rdparty/chromium/tools/metrics/ukm/gen_builders.py", line 27, in main data = ReadFilteredData(args.input) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/core/release/../../3rdparty/chromium/tools/metrics/ukm/gen_builders.py", line 48, in ReadFilteredData data = ukm_model.UKM_XML_TYPE.Parse(ukm_file.read()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/metrics/ukm/../common/models.py", line 439, in Parse return self._ParseMinidom(input_file) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/metrics/ukm/../common/models.py", line 418, in _ParseMinidom return self.root_type.Unmarshall(root) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/metrics/ukm/../common/models.py", line 324, in Unmarshall child.node_type.Unmarshall(n) for n in nodes] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/metrics/ukm/../common/models.py", line 302, in Unmarshall if not re.match(attr_re, attr_val): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/thomas/buildroot/buildroot/output/host/lib/python3.12/re/__init__.py", line 167, in match return _compile(pattern, flags).match(string) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/thomas/buildroot/buildroot/output/host/lib/python3.12/re/__init__.py", line 307, in _compile p = _compiler.compile(pattern, flags) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/thomas/buildroot/buildroot/output/host/lib/python3.12/re/_compiler.py", line 745, in compile p = _parser.parse(p, flags) ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/thomas/buildroot/buildroot/output/host/lib/python3.12/re/_parser.py", line 979, in parse p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/thomas/buildroot/buildroot/output/host/lib/python3.12/re/_parser.py", line 460, in _parse_sub itemsappend(_parse(source, state, verbose, nested + 1, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/thomas/buildroot/buildroot/output/host/lib/python3.12/re/_parser.py", line 840, in _parse raise source.error('global flags not at the start ' re.error: global flags not at the start of the expression at position 1 Signed-off-by: Thomas Petazzoni --- .../0004-Migrate-presubmit-to-python3.patch | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 package/qt5/qt5webengine-chromium/0004-Migrate-presubmit-to-python3.patch diff --git a/package/qt5/qt5webengine-chromium/0004-Migrate-presubmit-to-python3.patch b/package/qt5/qt5webengine-chromium/0004-Migrate-presubmit-to-python3.patch new file mode 100644 index 0000000000..9314e30c5c --- /dev/null +++ b/package/qt5/qt5webengine-chromium/0004-Migrate-presubmit-to-python3.patch @@ -0,0 +1,132 @@ +From 71d96b9be632b5231b28277d9e72f6a6c5308e24 Mon Sep 17 00:00:00 2001 +From: Dan Harrington +Date: Fri, 4 Jun 2021 16:46:25 +0000 +Subject: [PATCH] Migrate presubmit to python3 + +Fixed a couple warnings I found when running the unit +tests in python3. + +Bug: 1212110 +Change-Id: I3d1b5859b5c517ad5eea30cb816fad0389715f73 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2934203 +Reviewed-by: Jesse Doherty +Commit-Queue: Dan H +Cr-Commit-Position: refs/heads/master@{#889331} +Upstream: https://github.com/chromium/chromium/commit/f90f49df8db04dcb72f7ce0c4d0b2fe329bab00c +Signed-off-by: Thomas Petazzoni +--- + chromium/tools/metrics/ukm/PRESUBMIT.py | 2 + + .../tools/metrics/ukm/gen_builders_test.py | 4 +- + chromium/tools/metrics/ukm/ukm_model.py | 56 +++++++++++-------- + 3 files changed, 37 insertions(+), 25 deletions(-) + +diff --git a/chromium/tools/metrics/ukm/PRESUBMIT.py b/chromium/tools/metrics/ukm/PRESUBMIT.py +index 28fab1cffb7..99b13be681b 100644 +--- a/chromium/tools/metrics/ukm/PRESUBMIT.py ++++ b/chromium/tools/metrics/ukm/PRESUBMIT.py +@@ -8,6 +8,8 @@ See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts + for more details on the presubmit API built into gcl. + """ + ++USE_PYTHON3 = True ++ + UKM_XML = 'ukm.xml' + + +diff --git a/chromium/tools/metrics/ukm/gen_builders_test.py b/chromium/tools/metrics/ukm/gen_builders_test.py +index 1ca15e52c9a..0015320a524 100755 +--- a/chromium/tools/metrics/ukm/gen_builders_test.py ++++ b/chromium/tools/metrics/ukm/gen_builders_test.py +@@ -25,8 +25,8 @@ class GenBuildersTest(unittest.TestCase): + + def testGenerateCode(self): + relpath = '.' +- data = ukm_model.UKM_XML_TYPE.Parse( +- open('../../tools/metrics/ukm/ukm.xml').read()) ++ with open('../../tools/metrics/ukm/ukm.xml') as f: ++ data = ukm_model.UKM_XML_TYPE.Parse(f.read()) + event = data[ukm_model._EVENT_TYPE.tag][0] + metric = event[ukm_model._METRIC_TYPE.tag][0] + self.assertIsNotNone(event) +diff --git a/chromium/tools/metrics/ukm/ukm_model.py b/chromium/tools/metrics/ukm/ukm_model.py +index ec24dd57360..b36899db189 100644 +--- a/chromium/tools/metrics/ukm/ukm_model.py ++++ b/chromium/tools/metrics/ukm/ukm_model.py +@@ -39,15 +39,16 @@ _INDEX_TYPE = models.ObjectNodeType( + ], + single_line=True) + +-_STATISTICS_TYPE = models.ObjectNodeType( ++_STATISTICS_TYPE = models.ObjectNodeType( + 'statistics', + attributes=[ +- ('export', str, r'^(?i)(|true|false)$'), ++ ('export', str, r'(?i)^(|true|false)$'), + ], + children=[ + models.ChildType(_QUANTILES_TYPE.tag, _QUANTILES_TYPE, multiple=False), +- models.ChildType( +- _ENUMERATION_TYPE.tag, _ENUMERATION_TYPE, multiple=False), ++ models.ChildType(_ENUMERATION_TYPE.tag, ++ _ENUMERATION_TYPE, ++ multiple=False), + ]) + + _HISTORY_TYPE = models.ObjectNodeType( +@@ -90,25 +91,34 @@ _METRIC_TYPE = models.ObjectNodeType( + _AGGREGATION_TYPE.tag, _AGGREGATION_TYPE, multiple=True), + ]) + +-_EVENT_TYPE = models.ObjectNodeType( +- 'event', +- attributes=[ +- ('name', str, r'^[A-Za-z0-9.]+$'), +- ('singular', str, r'^(?i)(|true|false)$'), +- ], +- alphabetization=[ +- (_OBSOLETE_TYPE.tag, _KEEP_ORDER), +- (_OWNER_TYPE.tag, _KEEP_ORDER), +- (_SUMMARY_TYPE.tag, _KEEP_ORDER), +- (_METRIC_TYPE.tag, _LOWERCASE_FN('name')), +- ], +- extra_newlines=(1, 1, 1), +- children=[ +- models.ChildType(_OBSOLETE_TYPE.tag, _OBSOLETE_TYPE, multiple=False), +- models.ChildType(_OWNER_TYPE.tag, _OWNER_TYPE, multiple=True), +- models.ChildType(_SUMMARY_TYPE.tag, _SUMMARY_TYPE, multiple=False), +- models.ChildType(_METRIC_TYPE.tag, _METRIC_TYPE, multiple=True), +- ]) ++_EVENT_TYPE = models.ObjectNodeType('event', ++ attributes=[ ++ ('name', str, r'^[A-Za-z0-9.]+$'), ++ ('singular', str, ++ r'(?i)^(|true|false)$'), ++ ], ++ alphabetization=[ ++ (_OBSOLETE_TYPE.tag, _KEEP_ORDER), ++ (_OWNER_TYPE.tag, _KEEP_ORDER), ++ (_SUMMARY_TYPE.tag, _KEEP_ORDER), ++ (_METRIC_TYPE.tag, ++ _LOWERCASE_FN('name')), ++ ], ++ extra_newlines=(1, 1, 1), ++ children=[ ++ models.ChildType(_OBSOLETE_TYPE.tag, ++ _OBSOLETE_TYPE, ++ multiple=False), ++ models.ChildType(_OWNER_TYPE.tag, ++ _OWNER_TYPE, ++ multiple=True), ++ models.ChildType(_SUMMARY_TYPE.tag, ++ _SUMMARY_TYPE, ++ multiple=False), ++ models.ChildType(_METRIC_TYPE.tag, ++ _METRIC_TYPE, ++ multiple=True), ++ ]) + + _UKM_CONFIGURATION_TYPE = models.ObjectNodeType( + 'ukm-configuration', +-- +2.25.1 +