author | Antonio Rojas
<arojas@archlinux.org> 2021-10-16 22:32:38 UTC |
committer | Antonio Rojas
<arojas@archlinux.org> 2021-10-16 22:32:38 UTC |
parent | 8ba9a04c59db817f1ee5f59001410de43965f463 |
PKGBUILD | +14 | -6 |
qt5-webengine-python3.patch | +150 | -0 |
diff --git a/PKGBUILD b/PKGBUILD index 97e2090..d6494df 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -6,16 +6,22 @@ pkgbase=qt5-doc pkgname=(qt5-doc qt5-examples) _qtver=5.15.2 pkgver=${_qtver/-/} -pkgrel=1 +pkgrel=2 arch=('any') url='https://www.qt.io' license=('GPL3' 'LGPL3' 'FDL' 'custom') -makedepends=('qt5-tools' 'python2' 'python' 'pciutils' 'libxtst' 'libxcursor' 'libxrandr' 'libxss' 'libxcomposite' +makedepends=('qt5-tools' 'python' 'pciutils' 'libxtst' 'libxcursor' 'libxrandr' 'libxss' 'libxcomposite' 'gperf' 'nss' 'clang') groups=('qt' 'qt5') _pkgfqn="qt-everywhere-src-${_qtver}" -source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/single/${_pkgfqn}.tar.xz") -sha256sums=('3a530d1b243b5dec00bc54937455471aaa3e56849d2593edb8ded07228202240') +source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/single/${_pkgfqn}.tar.xz" + https://invent.kde.org/qt/qt/qtbase/-/commit/8252ef5f.patch + https://invent.kde.org/qt/qt/qtbase/-/commit/cb2da673.patch + qt5-webengine-python3.patch) +sha256sums=('3a530d1b243b5dec00bc54937455471aaa3e56849d2593edb8ded07228202240' + '8ab742b991ed5c43e8da4b1ce1982fd38fe611aaac3d57ee37728b59932b518a' + '33304570431c0dd3becc22f3f0911ccfc781a1ce6c7926c3acb08278cd2e60c3' + '54de45621463a7c07f87482fbcbb9eacbc60d840bb69b34bc6c776d1df720453') prepare() { cd ${_pkgfqn} @@ -23,13 +29,15 @@ prepare() { ln -s /usr/bin qttools/ ln -s /usr/bin/{rcc,uic,moc} qtbase/bin/ - sed -e 's|QMAKE_PYTHON2 = python|QMAKE_PYTHON2 = python2|' -i qtwebengine/mkspecs/features/functions.prf # Use python2 + patch -d qtbase -p1 < "$srcdir"/8252ef5f.patch # Fix build with GCC 11 + patch -d qtbase -p1 < "$srcdir"/cb2da673.patch + patch -d qtwebengine -p1 < "$srcdir"/qt5-webengine-python3.patch # Fix build with Python 3 } build() { cd ${_pkgfqn} - QMAKE_PYTHON2=python2 ./configure -confirm-license -opensource \ + ./configure -confirm-license -opensource \ -prefix /usr \ -docdir /usr/share/doc/qt \ -headerdir /usr/include/qt \ diff --git a/qt5-webengine-python3.patch b/qt5-webengine-python3.patch new file mode 100644 index 0000000..1e87136 --- /dev/null +++ b/qt5-webengine-python3.patch @@ -0,0 +1,150 @@ +diff --git a/configure.pri b/configure.pri +index e072961f..5efe30bc 100644 +--- a/configure.pri ++++ b/configure.pri +@@ -12,10 +12,6 @@ defineTest(isPythonVersionSupported) { + python_version ~= s/[()]//g + python_version = $$split(python_version, ',') + python_major_version = $$first(python_version) +- greaterThan(python_major_version, 2) { +- qtLog("Python version 3 is not supported by Chromium.") +- return(false) +- } + python_minor_version = $$member(python_version, 1) + python_patch_version = $$member(python_version, 2) + greaterThan(python_major_version, 1): greaterThan(python_minor_version, 6): greaterThan(python_patch_version, 4): return(true) +@@ -52,10 +48,10 @@ defineTest(qtConfReport_jumboBuild) { + qtConfReportPadded($${1}, $$mergeLimit) + } + +-defineTest(qtConfTest_detectPython2) { +- python = $$qtConfFindInPath("python2$$EXE_SUFFIX") ++defineTest(qtConfTest_detectPython) { ++ python = $$qtConfFindInPath("python$$EXE_SUFFIX") + isEmpty(python) { +- qtLog("'python2$$EXE_SUFFIX' not found in PATH. Checking for 'python$$EXE_SUFFIX'.") ++ qtLog("'python$$EXE_SUFFIX' not found in PATH. Checking for 'python$$EXE_SUFFIX'.") + python = $$qtConfFindInPath("python$$EXE_SUFFIX") + } + isEmpty(python) { +@@ -63,11 +59,11 @@ defineTest(qtConfTest_detectPython2) { + return(false) + } + !isPythonVersionSupported($$python) { +- qtLog("A suitable Python 2 executable could not be located.") ++ qtLog("A suitable Python executable could not be located.") + return(false) + } + +- # Make tests.python2.location available in configure.json. ++ # Make tests.python.location available in configure.json. + $${1}.location = $$clean_path($$python) + export($${1}.location) + $${1}.cache += location +diff --git a/mkspecs/features/functions.prf b/mkspecs/features/functions.prf +index 2750d707..9fda13d0 100644 +--- a/mkspecs/features/functions.prf ++++ b/mkspecs/features/functions.prf +@@ -39,11 +39,11 @@ defineReplace(which) { + + # Returns the unquoted path to the python executable. + defineReplace(pythonPath) { +- isEmpty(QMAKE_PYTHON2) { ++ isEmpty(QMAKE_PYTHON) { + # Fallback for building QtWebEngine with Qt < 5.8 +- QMAKE_PYTHON2 = python ++ QMAKE_PYTHON = python + } +- return($$QMAKE_PYTHON2) ++ return($$QMAKE_PYTHON) + } + + # Returns the python executable for use with shell / make targets. +diff --git a/src/buildtools/config/support.pri b/src/buildtools/config/support.pri +index e7f869a1..1bf2c5d7 100644 +--- a/src/buildtools/config/support.pri ++++ b/src/buildtools/config/support.pri +@@ -21,7 +21,7 @@ defineReplace(qtwebengine_checkWebEngineCoreError) { + !qtwebengine_checkForGperf(QtWebEngine):return(false) + !qtwebengine_checkForBison(QtWebEngine):return(false) + !qtwebengine_checkForFlex(QtWebEngine):return(false) +- !qtwebengine_checkForPython2(QtWebengine):return(false) ++ !qtwebengine_checkForPython(QtWebengine):return(false) + !qtwebengine_checkForSanitizer(QtWebEngine):return(false) + linux:!qtwebengine_checkForPkgCfg(QtWebEngine):return(false) + linux:!qtwebengine_checkForHostPkgCfg(QtWebEngine):return(false) +@@ -50,7 +50,7 @@ defineReplace(qtwebengine_checkPdfError) { + !qtwebengine_checkForGperf(QtPdf):return(false) + !qtwebengine_checkForBison(QtPdf):return(false) + !qtwebengine_checkForFlex(QtPdf):return(false) +- !qtwebengine_checkForPython2(QtPdf):return(false) ++ !qtwebengine_checkForPython(QtPdf):return(false) + !qtwebengine_checkForSanitizer(QtPdf):return(false) + linux:!qtwebengine_checkForPkgCfg(QtPdf):return(false) + linux:!qtwebengine_checkForHostPkgCfg(QtPdf):return(false) +@@ -142,10 +142,10 @@ defineTest(qtwebengine_checkForFlex) { + return(true) + } + +-defineTest(qtwebengine_checkForPython2) { ++defineTest(qtwebengine_checkForPython) { + module = $$1 +- !qtConfig(webengine-python2) { +- qtwebengine_skipBuild("Python version 2 (2.7.5 or later) is required to build $${module}.") ++ !qtConfig(webengine-python) { ++ qtwebengine_skipBuild("Python is required to build $${module}.") + return(false) + } + return(true) +diff --git a/src/buildtools/configure.json b/src/buildtools/configure.json +index 88d1790c..032aa665 100644 +--- a/src/buildtools/configure.json ++++ b/src/buildtools/configure.json +@@ -294,9 +294,9 @@ + "label": "system ninja", + "type": "detectNinja" + }, +- "webengine-python2": { +- "label": "python2", +- "type": "detectPython2", ++ "webengine-python": { ++ "label": "python", ++ "type": "detectPython", + "log": "location" + }, + "webengine-winversion": { +@@ -372,7 +372,7 @@ + && features.webengine-gperf + && features.webengine-bison + && features.webengine-flex +- && features.webengine-python2 ++ && features.webengine-python + && (!config.sanitizer || features.webengine-sanitizer) + && (!config.linux || features.pkg-config) + && (!config.linux || features.webengine-host-pkg-config) +@@ -397,7 +397,7 @@ + && features.webengine-gperf + && features.webengine-bison + && features.webengine-flex +- && features.webengine-python2 ++ && features.webengine-python + && (!config.sanitizer || features.webengine-sanitizer) + && (!config.linux || features.pkg-config) + && (!config.linux || features.webengine-host-pkg-config) +@@ -420,12 +420,12 @@ + "autoDetect": "features.private_tests", + "output": [ "privateFeature" ] + }, +- "webengine-python2": { +- "label": "python2", +- "condition": "tests.webengine-python2", ++ "webengine-python": { ++ "label": "python", ++ "condition": "tests.webengine-python", + "output": [ + "privateFeature", +- { "type": "varAssign", "name": "QMAKE_PYTHON2", "value": "tests.webengine-python2.location" } ++ { "type": "varAssign", "name": "QMAKE_PYTHON", "value": "tests.webengine-python.location" } + ] + }, + "webengine-gperf": {