xref: /OK3568_Linux_fs/buildroot/package/qt5/qt5webengine/0002-Add-python3-build-support.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunFrom 1e299a6c9eeb08555208b76623e453d8ab96b6e3 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: James Hilliard <james.hilliard1@gmail.com>
3*4882a593SmuzhiyunDate: Fri, 4 Feb 2022 16:16:35 -0700
4*4882a593SmuzhiyunSubject: [PATCH] Add python3 build support
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunAdapted from:
7*4882a593Smuzhiyunhttps://github.com/archlinux/svntogit-packages/blob/6edf5f1aaea952d046aff89a2e0175258fe77361/trunk/qt5-webengine-python3.patch
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunSigned-off-by: James Hilliard <james.hilliard1@gmail.com>
10*4882a593Smuzhiyun---
11*4882a593Smuzhiyun configure.pri                     | 13 ++++++-------
12*4882a593Smuzhiyun mkspecs/features/functions.prf    |  6 +++---
13*4882a593Smuzhiyun src/buildtools/config/support.pri | 10 +++++-----
14*4882a593Smuzhiyun src/buildtools/configure.json     | 18 +++++++++---------
15*4882a593Smuzhiyun 4 files changed, 23 insertions(+), 24 deletions(-)
16*4882a593Smuzhiyun
17*4882a593Smuzhiyundiff --git a/configure.pri b/configure.pri
18*4882a593Smuzhiyunindex e072961f..6fec7b20 100644
19*4882a593Smuzhiyun--- a/configure.pri
20*4882a593Smuzhiyun+++ b/configure.pri
21*4882a593Smuzhiyun@@ -13,8 +13,7 @@ defineTest(isPythonVersionSupported) {
22*4882a593Smuzhiyun     python_version = $$split(python_version, ',')
23*4882a593Smuzhiyun     python_major_version = $$first(python_version)
24*4882a593Smuzhiyun     greaterThan(python_major_version, 2) {
25*4882a593Smuzhiyun-        qtLog("Python version 3 is not supported by Chromium.")
26*4882a593Smuzhiyun-        return(false)
27*4882a593Smuzhiyun+        return(true)
28*4882a593Smuzhiyun     }
29*4882a593Smuzhiyun     python_minor_version = $$member(python_version, 1)
30*4882a593Smuzhiyun     python_patch_version = $$member(python_version, 2)
31*4882a593Smuzhiyun@@ -52,10 +51,10 @@ defineTest(qtConfReport_jumboBuild) {
32*4882a593Smuzhiyun     qtConfReportPadded($${1}, $$mergeLimit)
33*4882a593Smuzhiyun }
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun-defineTest(qtConfTest_detectPython2) {
36*4882a593Smuzhiyun-    python = $$qtConfFindInPath("python2$$EXE_SUFFIX")
37*4882a593Smuzhiyun+defineTest(qtConfTest_detectPython) {
38*4882a593Smuzhiyun+    python = $$qtConfFindInPath("python$$EXE_SUFFIX")
39*4882a593Smuzhiyun     isEmpty(python) {
40*4882a593Smuzhiyun-        qtLog("'python2$$EXE_SUFFIX' not found in PATH. Checking for 'python$$EXE_SUFFIX'.")
41*4882a593Smuzhiyun+        qtLog("'python$$EXE_SUFFIX' not found in PATH. Checking for 'python$$EXE_SUFFIX'.")
42*4882a593Smuzhiyun         python = $$qtConfFindInPath("python$$EXE_SUFFIX")
43*4882a593Smuzhiyun     }
44*4882a593Smuzhiyun     isEmpty(python) {
45*4882a593Smuzhiyun@@ -63,11 +62,11 @@ defineTest(qtConfTest_detectPython2) {
46*4882a593Smuzhiyun         return(false)
47*4882a593Smuzhiyun     }
48*4882a593Smuzhiyun     !isPythonVersionSupported($$python) {
49*4882a593Smuzhiyun-        qtLog("A suitable Python 2 executable could not be located.")
50*4882a593Smuzhiyun+        qtLog("A suitable Python executable could not be located.")
51*4882a593Smuzhiyun         return(false)
52*4882a593Smuzhiyun     }
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun-    # Make tests.python2.location available in configure.json.
55*4882a593Smuzhiyun+    # Make tests.python.location available in configure.json.
56*4882a593Smuzhiyun     $${1}.location = $$clean_path($$python)
57*4882a593Smuzhiyun     export($${1}.location)
58*4882a593Smuzhiyun     $${1}.cache += location
59*4882a593Smuzhiyundiff --git a/mkspecs/features/functions.prf b/mkspecs/features/functions.prf
60*4882a593Smuzhiyunindex 2750d707..9fda13d0 100644
61*4882a593Smuzhiyun--- a/mkspecs/features/functions.prf
62*4882a593Smuzhiyun+++ b/mkspecs/features/functions.prf
63*4882a593Smuzhiyun@@ -39,11 +39,11 @@ defineReplace(which) {
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun # Returns the unquoted path to the python executable.
66*4882a593Smuzhiyun defineReplace(pythonPath) {
67*4882a593Smuzhiyun-    isEmpty(QMAKE_PYTHON2) {
68*4882a593Smuzhiyun+    isEmpty(QMAKE_PYTHON) {
69*4882a593Smuzhiyun         # Fallback for building QtWebEngine with Qt < 5.8
70*4882a593Smuzhiyun-        QMAKE_PYTHON2 = python
71*4882a593Smuzhiyun+        QMAKE_PYTHON = python
72*4882a593Smuzhiyun     }
73*4882a593Smuzhiyun-    return($$QMAKE_PYTHON2)
74*4882a593Smuzhiyun+    return($$QMAKE_PYTHON)
75*4882a593Smuzhiyun }
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun # Returns the python executable for use with shell / make targets.
78*4882a593Smuzhiyundiff --git a/src/buildtools/config/support.pri b/src/buildtools/config/support.pri
79*4882a593Smuzhiyunindex e7f869a1..1bf2c5d7 100644
80*4882a593Smuzhiyun--- a/src/buildtools/config/support.pri
81*4882a593Smuzhiyun+++ b/src/buildtools/config/support.pri
82*4882a593Smuzhiyun@@ -21,7 +21,7 @@ defineReplace(qtwebengine_checkWebEngineCoreError) {
83*4882a593Smuzhiyun     !qtwebengine_checkForGperf(QtWebEngine):return(false)
84*4882a593Smuzhiyun     !qtwebengine_checkForBison(QtWebEngine):return(false)
85*4882a593Smuzhiyun     !qtwebengine_checkForFlex(QtWebEngine):return(false)
86*4882a593Smuzhiyun-    !qtwebengine_checkForPython2(QtWebEngine):return(false)
87*4882a593Smuzhiyun+    !qtwebengine_checkForPython(QtWebEngine):return(false)
88*4882a593Smuzhiyun     !qtwebengine_checkForNodejs(QtWebEngine):return(false)
89*4882a593Smuzhiyun     !qtwebengine_checkForSanitizer(QtWebEngine):return(false)
90*4882a593Smuzhiyun     linux:!qtwebengine_checkForPkgCfg(QtWebEngine):return(false)
91*4882a593Smuzhiyun@@ -51,7 +51,7 @@ defineReplace(qtwebengine_checkPdfError) {
92*4882a593Smuzhiyun     !qtwebengine_checkForGperf(QtPdf):return(false)
93*4882a593Smuzhiyun     !qtwebengine_checkForBison(QtPdf):return(false)
94*4882a593Smuzhiyun     !qtwebengine_checkForFlex(QtPdf):return(false)
95*4882a593Smuzhiyun-    !qtwebengine_checkForPython2(QtPdf):return(false)
96*4882a593Smuzhiyun+    !qtwebengine_checkForPython(QtPdf):return(false)
97*4882a593Smuzhiyun     !qtwebengine_checkForSanitizer(QtPdf):return(false)
98*4882a593Smuzhiyun     linux:!qtwebengine_checkForPkgCfg(QtPdf):return(false)
99*4882a593Smuzhiyun     linux:!qtwebengine_checkForHostPkgCfg(QtPdf):return(false)
100*4882a593Smuzhiyun@@ -143,10 +143,10 @@ defineTest(qtwebengine_checkForFlex) {
101*4882a593Smuzhiyun     return(true)
102*4882a593Smuzhiyun }
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun-defineTest(qtwebengine_checkForPython2) {
105*4882a593Smuzhiyun+defineTest(qtwebengine_checkForPython) {
106*4882a593Smuzhiyun     module = $$1
107*4882a593Smuzhiyun-    !qtConfig(webengine-python2) {
108*4882a593Smuzhiyun-        qtwebengine_skipBuild("Python version 2 (2.7.5 or later) is required to build $${module}.")
109*4882a593Smuzhiyun+    !qtConfig(webengine-python) {
110*4882a593Smuzhiyun+        qtwebengine_skipBuild("Python is required to build $${module}.")
111*4882a593Smuzhiyun         return(false)
112*4882a593Smuzhiyun     }
113*4882a593Smuzhiyun     return(true)
114*4882a593Smuzhiyundiff --git a/src/buildtools/configure.json b/src/buildtools/configure.json
115*4882a593Smuzhiyunindex 88d1790c..032aa665 100644
116*4882a593Smuzhiyun--- a/src/buildtools/configure.json
117*4882a593Smuzhiyun+++ b/src/buildtools/configure.json
118*4882a593Smuzhiyun@@ -295,9 +295,9 @@
119*4882a593Smuzhiyun             "label": "system ninja",
120*4882a593Smuzhiyun             "type": "detectNinja"
121*4882a593Smuzhiyun         },
122*4882a593Smuzhiyun-        "webengine-python2": {
123*4882a593Smuzhiyun-            "label": "python2",
124*4882a593Smuzhiyun-            "type": "detectPython2",
125*4882a593Smuzhiyun+        "webengine-python": {
126*4882a593Smuzhiyun+            "label": "python",
127*4882a593Smuzhiyun+            "type": "detectPython",
128*4882a593Smuzhiyun             "log": "location"
129*4882a593Smuzhiyun         },
130*4882a593Smuzhiyun         "webengine-winversion": {
131*4882a593Smuzhiyun@@ -374,7 +374,7 @@
132*4882a593Smuzhiyun                          && features.webengine-gperf
133*4882a593Smuzhiyun                          && features.webengine-bison
134*4882a593Smuzhiyun                          && features.webengine-flex
135*4882a593Smuzhiyun-                         && features.webengine-python2
136*4882a593Smuzhiyun+                         && features.webengine-python
137*4882a593Smuzhiyun                          && features.webengine-nodejs
138*4882a593Smuzhiyun                          && (!config.sanitizer || features.webengine-sanitizer)
139*4882a593Smuzhiyun                          && (!config.linux || features.pkg-config)
140*4882a593Smuzhiyun@@ -400,7 +400,7 @@
141*4882a593Smuzhiyun                          && features.webengine-gperf
142*4882a593Smuzhiyun                          && features.webengine-bison
143*4882a593Smuzhiyun                          && features.webengine-flex
144*4882a593Smuzhiyun-                         && features.webengine-python2
145*4882a593Smuzhiyun+                         && features.webengine-python
146*4882a593Smuzhiyun                          && (!config.sanitizer || features.webengine-sanitizer)
147*4882a593Smuzhiyun                          && (!config.linux || features.pkg-config)
148*4882a593Smuzhiyun                          && (!config.linux || features.webengine-host-pkg-config)
149*4882a593Smuzhiyun@@ -423,12 +423,12 @@
150*4882a593Smuzhiyun             "autoDetect": "features.private_tests",
151*4882a593Smuzhiyun             "output": [ "privateFeature" ]
152*4882a593Smuzhiyun         },
153*4882a593Smuzhiyun-        "webengine-python2": {
154*4882a593Smuzhiyun-            "label": "python2",
155*4882a593Smuzhiyun-            "condition": "tests.webengine-python2",
156*4882a593Smuzhiyun+        "webengine-python": {
157*4882a593Smuzhiyun+            "label": "python",
158*4882a593Smuzhiyun+            "condition": "tests.webengine-python",
159*4882a593Smuzhiyun             "output": [
160*4882a593Smuzhiyun                 "privateFeature",
161*4882a593Smuzhiyun-                { "type": "varAssign", "name": "QMAKE_PYTHON2", "value": "tests.webengine-python2.location" }
162*4882a593Smuzhiyun+                { "type": "varAssign", "name": "QMAKE_PYTHON", "value": "tests.webengine-python.location" }
163*4882a593Smuzhiyun             ]
164*4882a593Smuzhiyun         },
165*4882a593Smuzhiyun         "webengine-gperf": {
166*4882a593Smuzhiyun--
167*4882a593Smuzhiyun2.25.1
168*4882a593Smuzhiyun
169