Skip to contentSkip to conversation

qt5webengine-chromium: fix python 3.13 issue

PATCH In review Gaël PORTAY 2 participants 2 messages Apr 12, 2025 – Apr 19, 2025

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 qt5webengine-chromium: fix python 3.13 issue

Python was bumped from 3.12.x to 3.13.x since the commit d63e207eb869063f82c867658676c2903beb08cb.

The module pipes is no longer part of the Python standard library. It was removed in Python 3.13 after being deprecated in Python 3.11. The last version of Python that provided the pipes module was Python 3.12.

See[1].

The chromium project in qt5webengine-chromium is very old (87-based[2]).

This backports a change removing the use of pipes that was first introduced in 114.0.5696.0[3] to fix the error below:

[174/23445] ACTION //components/resources:about_credits(/builds/buildroot.org/buildroot/output/build/qt5webengine-5.15.14/src/toolchain:target)
FAILED: gen/components/resources/about_credits.html
/builds/buildroot.org/buildroot/output/build/qt5webengine-5.15.14/host-bin/python ../../3rdparty/chromium/tools/licenses.py --target-os=linux --depfile gen/components/resources/about_credits.d credits gen/components/resources/about_credits.html /builds/buildroot.org/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/build/android/gyp/util/build_utils.py:628: SyntaxWarning: invalid escape sequence '\('
r = re.compile('@FileArg\((.*?)\)')
Traceback (most recent call last):
File "/builds/buildroot.org/buildroot/output/build/qt5webengine-5.15.14/src/core/release/../../3rdparty/chromium/tools/licenses.py", line 37, in <module>
from util import build_utils
File "/builds/buildroot.org/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/build/android/gyp/util/build_utils.py", line 15, in <module>
import pipes
ModuleNotFoundError: No module named 'pipes'

[1]: https://docs.python.org/3/library/pipes.html
[2]: https://github.com/qt/qtwebengine/blob/v5.15.14-lts-lgpl/CHROMIUM_VERSION
[3]: https://github.com/chromium/chromium/commit/4c6fc1984970af4b2b1765014c9ddcd957ad7dda

---
 ...-printed-cmd-when-long-commands-fail.patch | 57 +++++++++++++++++++
 1 file changed, 57 insertions(+)
 create mode 100644 package/qt5/qt5webengine-chromium/0011-Shorted-printed-cmd-when-long-commands-fail.patch
package/qt5/qt5webengine-chromium/0011-Shorted-printed-cmd-when-long-commands-fail.patch new file +57 -0
new file mode 100644
index 0000000000..908fe24e54
@@ -0,0 +1,57 @@
+From 1a713c6e4861f0672252425a1ccbfa9f45834d5d Mon Sep 17 00:00:00 2001
+From: Mohamed Heikal <[email protected]>
+Date: Tue, 4 Apr 2023 17:04:04 +0000
+Subject: [PATCH] Shorted printed cmd when long commands fail
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Some commands (eg: javac) are very long and when they fail most of the
+screen/log is filled with the actual cmd vs the error message output.
+Shorten printed CMDs to 200 chars unless an environment variable is set.
+
+Bug: None
+Change-Id: I92809a7e4a2b1204931a74fd6239803feddd430e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4395905
+Reviewed-by: Andrew Grieve <[email protected]>
+Commit-Queue: Mohamed Heikal <[email protected]>
+Cr-Commit-Position: refs/heads/main@{#1126065}
+Upstream-Status: Backport [https://github.com/chromium/chromium/commit/4c6fc1984970af4b2b1765014c9ddcd957ad7dda]
+Signed-off-by: Gaël PORTAY <[email protected]>
+[gportay: remove import pipes]
+---
+ chromium/build/android/gyp/util/build_utils.py | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/chromium/build/android/gyp/util/build_utils.py b/chromium/build/android/gyp/util/build_utils.py
+index 02298051702..5fa753af459 100644
+--- a/chromium/build/android/gyp/util/build_utils.py
++++ b/chromium/build/android/gyp/util/build_utils.py
+@@ -12,7 +12,6 @@ import fnmatch
+ import json
+ import logging
+ import os
+-import pipes
+ import re
+ import shutil
+ import stat
+@@ -196,9 +195,14 @@ class CalledProcessError(Exception):
+ 
+   def __str__(self):
+     # A user should be able to simply copy and paste the command that failed
+-    # into their shell.
++    # into their shell (unless it is more than 200 chars).
++    # User can set PRINT_FULL_COMMAND=1 to always print the full command.
++    print_full = os.environ.get('PRINT_FULL_COMMAND', '0') != '0'
++    full_cmd = shlex.join(self.args)
++    short_cmd = textwrap.shorten(full_cmd, width=200)
++    printed_cmd = full_cmd if print_full else short_cmd
+     copyable_command = '( cd {}; {} )'.format(os.path.abspath(self.cwd),
+-        ' '.join(map(pipes.quote, self.args)))
++                                              printed_cmd)
+     return 'Command failed: {}\n{}'.format(copyable_command, self.output)
+ 
+ 
+-- 
+2.39.5
+
Signature · 6 lines
2.39.5

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#1 lore raw

Hello Gaël,

Quoted 2 lines · On Sat, 12 Apr 2025 16:35:22 +0200 Gaël PORTAY <[email protected]>…

Python was bumped from 3.12.x to 3.13.x since the commit d63e207eb869063f82c867658676c2903beb08cb.

[...]

Thanks, I have applied your patch. Just two nits. First the title prefix should have been package/qt5/qt5webengine-chromium.

Quoted 1 line

+Upstream-Status: Backport [https://github.com/chromium/chromium/commit/4c6fc1984970af4b2b1765014c9ddcd957ad7dda]

This should have been Upstream:, not Upstream-Status:, otherwise our check-package tool complains.

Thanks a lot!

Thomas

Signature · 7 lines
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot