Python 3.13 removed the deprecated pipes module. Fortunately 
shlex.quote is a direct replacement for pipes.quote.

With this diff I was able to build qtwebengine under Python 3.13.

ok?

Index: Makefile
===================================================================
RCS file: /cvs/ports/x11/qt5/qtwebengine/Makefile,v
diff -u -p -u -r1.69 Makefile
--- Makefile    14 Feb 2025 13:30:24 -0000      1.69
+++ Makefile    24 Feb 2025 02:31:18 -0000
@@ -9,7 +9,7 @@ USE_NOBTCFI =           Yes
 QT5NAME =              QtWebEngine
 KDE_COMMIT =           17fd3176988586168bee8654008a097a5f23ec1d
 KDE_VERSION =          11
-REVISION =             1
+REVISION =             2
 
 # Override
 VERSION =              ${QT5_WEBENGINE_VERSION}
Index: patches/patch-src_3rdparty_chromium_build_android_gyp_util_build_utils_py
===================================================================
RCS file: 
patches/patch-src_3rdparty_chromium_build_android_gyp_util_build_utils_py
diff -N 
patches/patch-src_3rdparty_chromium_build_android_gyp_util_build_utils_py
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_3rdparty_chromium_build_android_gyp_util_build_utils_py   
24 Feb 2025 02:31:18 -0000
@@ -0,0 +1,23 @@
+Fix build with Python 3.13
+
+Index: src/3rdparty/chromium/build/android/gyp/util/build_utils.py
+--- src/3rdparty/chromium/build/android/gyp/util/build_utils.py.orig
++++ src/3rdparty/chromium/build/android/gyp/util/build_utils.py
+@@ -12,7 +12,7 @@ import fnmatch
+ import json
+ import logging
+ import os
+-import pipes
++import shlex
+ import re
+ import shutil
+ import stat
+@@ -198,7 +198,7 @@ class CalledProcessError(Exception):
+     # A user should be able to simply copy and paste the command that failed
+     # into their shell.
+     copyable_command = '( cd {}; {} )'.format(os.path.abspath(self.cwd),
+-        ' '.join(map(pipes.quote, self.args)))
++        ' '.join(map(shlex.quote, self.args)))
+     return 'Command failed: {}\n{}'.format(copyable_command, self.output)
+ 
+ 

Reply via email to