package/qt5/qt5webengine-chromium: fix python 3.13 issue

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

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]: 4c6fc19849

Fixes: https://gitlab.com/buildroot.org/buildroot/-/jobs/9677167367

Signed-off-by: Gaël PORTAY <gael.portay+rtone@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Gaël PORTAY
2025-04-12 16:35:22 +02:00
committed by Thomas Petazzoni
parent 4f7e3f0bdd
commit 9e627c1628

View File

@@ -0,0 +1,57 @@
From 1a713c6e4861f0672252425a1ccbfa9f45834d5d Mon Sep 17 00:00:00 2001
From: Mohamed Heikal <mheikal@chromium.org>
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 <agrieve@chromium.org>
Commit-Queue: Mohamed Heikal <mheikal@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1126065}
Upstream: Backport [https://github.com/chromium/chromium/commit/4c6fc1984970af4b2b1765014c9ddcd957ad7dda]
Signed-off-by: Gaël PORTAY <gael.portay@rtone.fr>
[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