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