qt5.qtwebengine: disable platform check using patches

The previous code using substituteInPlace was broken for both 5.9 and
5.11 (latter was broken after a minor release bump). Using patches
should make things fail loudly and prevent modules/qtwebengine.nix from
being littered with version checks.

The patch for 5.12 is only tested to apply.
This commit is contained in:
Dmitry Kalinkin 2019-02-26 17:36:17 -05:00
parent b0f4ef9127
commit 1809832958
No known key found for this signature in database
GPG Key ID: 5157B3EC8B2CA333
7 changed files with 117 additions and 14 deletions

View File

@ -64,7 +64,10 @@ let
qttools = [ ./qttools.patch ];
qtwebengine = [ ./qtwebengine-no-build-skip.patch ]
++ optional stdenv.cc.isClang ./qtwebengine-clang-fix.patch
++ optional stdenv.isDarwin ./qtwebengine-darwin-sdk-10.10.patch;
++ optionals stdenv.isDarwin [
./qtwebengine-darwin-no-platform-check.patch
./qtwebengine-darwin-sdk-10.10.patch
];
qtwebkit = [ ./qtwebkit.patch ]
++ optionals stdenv.isDarwin [
./qtwebkit-darwin-no-readline.patch

View File

@ -0,0 +1,37 @@
diff --git a/mkspecs/features/platform.prf b/mkspecs/features/platform.prf
--- a/mkspecs/features/platform.prf
+++ b/mkspecs/features/platform.prf
@@ -38,10 +38,6 @@ defineTest(isPlatformSupported) {
return(false)
}
} else:osx {
- !isMinXcodeVersion(7, 3) {
- skipBuild("Using Xcode version $$QMAKE_XCODE_VERSION, but at least version 7.3 is required to build Qt WebEngine.")
- return(false)
- }
!clang|intel_icc {
skipBuild("Qt WebEngine on macOS requires Clang.")
return(false)
@@ -52,10 +48,6 @@ defineTest(isPlatformSupported) {
skipBuild("Building Qt WebEngine requires macOS version 10.11 or newer.")
return(false)
}
- !isMinOSXSDKVersion(10, 10): {
- skipBuild("Building Qt WebEngine requires a macOS SDK version of 10.11 or newer. Current version is $${WEBENGINE_OSX_SDK_PRODUCT_VERSION}.")
- return(false)
- }
} else {
skipBuild("Unknown platform. Qt WebEngine only supports Linux, Windows, and macOS.")
return(false)
diff --git a/src/core/config/mac_osx.pri b/src/core/config/mac_osx.pri
--- a/src/core/config/mac_osx.pri
+++ b/src/core/config/mac_osx.pri
@@ -5,8 +5,6 @@ load(functions)
# otherwise query for it.
QMAKE_MAC_SDK_VERSION = $$eval(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.SDKVersion)
isEmpty(QMAKE_MAC_SDK_VERSION) {
- QMAKE_MAC_SDK_VERSION = $$system("/usr/bin/xcodebuild -sdk $${QMAKE_MAC_SDK} -version SDKVersion 2>/dev/null")
- isEmpty(QMAKE_MAC_SDK_VERSION): error("Could not resolve SDK version for \'$${QMAKE_MAC_SDK}\'")
}
QMAKE_CLANG_DIR = "/usr"

View File

@ -63,7 +63,8 @@ let
qtwebengine = [
./qtwebengine-no-build-skip.patch
./qtwebengine-CVE-2019-5786.patch
];
]
++ optional stdenv.isDarwin ./qtwebengine-darwin-no-platform-check.patch;
qtwebkit = [ ./qtwebkit.patch ]
++ optionals stdenv.isDarwin [
./qtwebkit-darwin-no-readline.patch

View File

@ -0,0 +1,21 @@
diff --git a/mkspecs/features/platform.prf b/mkspecs/features/platform.prf
--- a/mkspecs/features/platform.prf
+++ b/mkspecs/features/platform.prf
@@ -40,8 +40,6 @@ defineTest(isPlatformSupported) {
} else:osx {
# FIXME: Try to get it back down to 8.2 for building on OS X 10.11
!isMinXcodeVersion(8, 3, 3) {
- skipBuild("Using Xcode version $$QMAKE_XCODE_VERSION, but at least version 8.3.3 is required to build Qt WebEngine.")
- return(false)
}
!clang|intel_icc {
skipBuild("Qt WebEngine on macOS requires Clang.")
@@ -54,8 +52,6 @@ defineTest(isPlatformSupported) {
return(false)
}
!isMinOSXSDKVersion(10, 12): {
- skipBuild("Building Qt WebEngine requires a macOS SDK version of 10.12 or newer. Current version is $${WEBENGINE_OSX_SDK_PRODUCT_VERSION}.")
- return(false)
}
} else {
skipBuild("Unknown platform. Qt WebEngine only supports Linux, Windows, and macOS.")

View File

@ -43,7 +43,8 @@ let
qtscript = [ ./qtscript.patch ];
qtserialport = [ ./qtserialport.patch ];
qttools = [ ./qttools.patch ];
qtwebengine = [ ./qtwebengine-no-build-skip.patch ];
qtwebengine = [ ./qtwebengine-no-build-skip.patch ]
++ optional stdenv.isDarwin ./qtwebengine-darwin-no-platform-check.patch;
qtwebkit = [ ./qtwebkit.patch ];
qtvirtualkeyboard = [
(fetchpatch {

View File

@ -0,0 +1,50 @@
diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf
--- a/mkspecs/features/configure.prf
+++ b/mkspecs/features/configure.prf
@@ -194,9 +194,6 @@ defineTest(runConfigure) {
} else {
log("Native Spellchecker .............. Not enabled (Default, enable with WEBENGINE_CONFIG+=use_native_spellchecker)$${EOL}")
}
- !isMinOSXSDKVersion(10, 10, 3) {
- log(" Force Touch API usage .............. Not enabled (Because the OS X SDK version to be used \"$${WEBENGINE_OSX_SDK_PRODUCT_VERSION}\" is lower than the required \"10.10.3\")$${EOL}")
- }
}
}
diff --git a/mkspecs/features/functions.prf b/mkspecs/features/functions.prf
--- a/mkspecs/features/functions.prf
+++ b/mkspecs/features/functions.prf
@@ -38,10 +38,6 @@ defineTest(isPlatformSupported) {
return(false)
}
} else:osx {
- !isMinXcodeVersion(5, 1) {
- skipBuild("Using XCode version $$QMAKE_XCODE_VERSION, but at least version 5.1 is required to build Qt WebEngine.")
- return(false)
- }
!clang|intel_icc {
skipBuild("Qt WebEngine on macOS requires Clang.")
return(false)
@@ -52,10 +48,6 @@ defineTest(isPlatformSupported) {
skipBuild("Qt WebEngine requires OS X version 10.10 or newer.")
return(false)
}
- !isMinOSXSDKVersion(10, 10): {
- skipBuild("Qt WebEngine requires an OS X SDK version of 10.10 or newer. Current version is $${WEBENGINE_OSX_SDK_PRODUCT_VERSION}.")
- return(false)
- }
} else {
skipBuild("Unknown platform. Qt WebEngine only supports Linux, Windows, and OS X.")
return(false)
diff --git a/src/core/config/mac_osx.pri b/src/core/config/mac_osx.pri
--- a/src/core/config/mac_osx.pri
+++ b/src/core/config/mac_osx.pri
@@ -5,8 +5,6 @@ load(functions)
# otherwise query for it.
QMAKE_MAC_SDK_VERSION = $$eval(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.SDKVersion)
isEmpty(QMAKE_MAC_SDK_VERSION) {
- QMAKE_MAC_SDK_VERSION = $$system("/usr/bin/xcodebuild -sdk $${QMAKE_MAC_SDK} -version SDKVersion 2>/dev/null")
- isEmpty(QMAKE_MAC_SDK_VERSION): error("Could not resolve SDK version for \'$${QMAKE_MAC_SDK}\'")
}
QMAKE_CLANG_DIR = "/usr"

View File

@ -67,18 +67,8 @@ qtModule {
src/3rdparty/chromium/gpu/config/gpu_info_collector_linux.cc
''
+ optionalString stdenv.isDarwin (''
# Remove annoying xcode check
substituteInPlace mkspecs/features/platform.prf \
--replace "lessThan(QMAKE_XCODE_VERSION, 7.3)" false \
--replace "/usr/bin/xcodebuild" "xcodebuild"
substituteInPlace src/3rdparty/chromium/build/mac_toolchain.py \
--replace "/usr/bin/xcode-select" "xcode-select"
substituteInPlace src/core/config/mac_osx.pri \
--replace /usr ${stdenv.cc} \
--replace "isEmpty(QMAKE_MAC_SDK_VERSION)" false
--replace /usr ${stdenv.cc}
''
# TODO remove when new Apple SDK is in
+ (if lib.versionOlder qtCompatVersion "5.11" then ''