diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2020-08-23 02:00:50 +0200 |
---|---|---|
committer | Jan Tojnar <jtojnar@gmail.com> | 2020-08-23 02:00:50 +0200 |
commit | 91104b5417275b780f6947b46a5c1bcc0d99f10b (patch) | |
tree | f9530394ba9869c49b30171bb6006f04ba43abf8 /pkgs/development/libraries/qt-5 | |
parent | 4cf394ea3f173946363c40439b03ebcd92eb2bb4 (diff) | |
parent | ddfa22167019726c015a5638e815d028031162e8 (diff) |
Merge branch 'master' into staging-next
Diffstat (limited to 'pkgs/development/libraries/qt-5')
5 files changed, 125 insertions, 28 deletions
diff --git a/pkgs/development/libraries/qt-5/5.12/default.nix b/pkgs/development/libraries/qt-5/5.12/default.nix index e8d052d3cd139..e89c0a8b40357 100644 --- a/pkgs/development/libraries/qt-5/5.12/default.nix +++ b/pkgs/development/libraries/qt-5/5.12/default.nix @@ -97,8 +97,10 @@ let url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/qtbug-77037-workaround.patch?h=packages/qt5-webengine&id=fc77d6b3d5ec74e421b58f199efceb2593cbf951"; sha256 = "1gv733qfdn9746nbqqxzyjx4ijjqkkb7zb71nxax49nna5bri3am"; }) - ] - ++ optional stdenv.isDarwin ./qtwebengine-darwin-no-platform-check.patch; + ] ++ optionals stdenv.isDarwin [ + ./qtwebengine-darwin-no-platform-check.patch + ./qtwebengine-darwin-fix-failed-static-assertion.patch + ]; qtwebkit = [ ./qtwebkit.patch ] ++ optionals stdenv.isDarwin [ ./qtwebkit-darwin-no-readline.patch diff --git a/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-fix-failed-static-assertion.patch b/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-fix-failed-static-assertion.patch new file mode 100644 index 0000000000000..510e25f56a4db --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-fix-failed-static-assertion.patch @@ -0,0 +1,31 @@ +Fix a following build error: + +In file included from ../../3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm:7: +../../3rdparty/chromium/base/bind.h:59:3: error: static_assert failed "Bound argument |i| of type |Arg| cannot be forwarded as |Unwrapped| to the bound functor, which declares it as |Param|." + static_assert( + ^ +../../3rdparty/chromium/base/bind.h:91:7: note: in instantiation of template class 'base::internal::AssertConstructible<1, long, long, const long &, NSError *>' requested here + : AssertConstructible<Ns, Args, std::decay_t<Args>, Unwrapped, Params>... { + ^ +../../3rdparty/chromium/base/bind.h:213:27: note: in instantiation of template class 'base::internal::AssertBindArgsValidity<std::__1::integer_sequence<unsigned long, 0, 1>, base::internal::TypeList<base::WeakPtr<device::BluetoothRemoteGattCharacteristicMac>, long>, base::internal::TypeList<device::BluetoothRemoteGattCharacteristicMac *, const long &>, base::internal::TypeList<device::BluetoothRemoteGattCharacteristicMac *, NSError *> >' requested here + static_assert(internal::AssertBindArgsValidity< + ^ +../../3rdparty/chromium/base/bind.h:242:16: note: in instantiation of function template specialization 'base::BindRepeating<void (device::BluetoothRemoteGattCharacteristicMac::*)(NSError *), base::WeakPtr<device::BluetoothRemoteGattCharacteristicMac>, long>' requested here + return base::BindRepeating(std::forward<Functor>(functor), + ^ +../../3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm:211:15: note: in instantiation of function template specialization 'base::Bind<void (device::BluetoothRemoteGattCharacteristicMac::*)(NSError *), base::WeakPtr<device::BluetoothRemoteGattCharacteristicMac>, long>' requested here + base::Bind(&BluetoothRemoteGattCharacteristicMac::DidWriteValue, + ^ + +Resurrected from https://github.com/NixOS/nixpkgs/blob/ddcf01bca6c7a7a7f096bec836a1e6a707ad473d/pkgs/development/libraries/qt-5/5.11/qtwebengine-clang-fix.patch because the same problem is present in 5.12 when compiling on macOS. + +--- a/src/3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm ++++ b/src/3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm +@@ -209,7 +209,7 @@ void BluetoothRemoteGattCharacteristicMac::WriteRemoteCharacteristic( + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, + base::Bind(&BluetoothRemoteGattCharacteristicMac::DidWriteValue, +- weak_ptr_factory_.GetWeakPtr(), nil)); ++ weak_ptr_factory_.GetWeakPtr(), nullptr)); + } + } diff --git a/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch b/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch index 546e753144d06..8ed3fe59a5a28 100644 --- a/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch +++ b/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch @@ -1,4 +1,18 @@ +diff --git a/configure.pri b/configure.pri +index 897bea54..6f834c20 100644 +--- a/configure.pri ++++ b/configure.pri +@@ -269,7 +269,7 @@ defineReplace(webEngineGetMacOSVersion) { + } + + defineReplace(webEngineGetMacOSSDKVersion) { +- value = $$system("/usr/bin/xcodebuild -sdk $$QMAKE_MAC_SDK -version ProductVersion 2>/dev/null") ++ value = $$system("xcrun --show-sdk-version") + return($$value) + } + diff --git a/mkspecs/features/platform.prf b/mkspecs/features/platform.prf +index 35eb6b89..7eed640a 100644 --- a/mkspecs/features/platform.prf +++ b/mkspecs/features/platform.prf @@ -40,8 +40,6 @@ defineTest(isPlatformSupported) { @@ -19,15 +33,39 @@ diff --git a/mkspecs/features/platform.prf b/mkspecs/features/platform.prf } } else { skipBuild("Unknown platform. Qt WebEngine only supports Linux, Windows, and macOS.") +@@ -111,7 +107,7 @@ defineTest(isMinOSXSDKVersion) { + requested_minor = $$2 + requested_patch = $$3 + isEmpty(requested_patch): requested_patch = 0 +- WEBENGINE_OSX_SDK_PRODUCT_VERSION = $$system("/usr/bin/xcodebuild -sdk $$QMAKE_MAC_SDK -version ProductVersion 2>/dev/null") ++ WEBENGINE_OSX_SDK_PRODUCT_VERSION = $$system("xcrun --show-sdk-version") + export(WEBENGINE_OSX_SDK_PRODUCT_VERSION) + isEmpty(WEBENGINE_OSX_SDK_PRODUCT_VERSION) { + skipBuild("Could not resolve SDK product version for \'$$QMAKE_MAC_SDK\'.") diff --git a/src/core/config/mac_osx.pri b/src/core/config/mac_osx.pri +index 4426901c..3aa6057e 100644 --- a/src/core/config/mac_osx.pri +++ b/src/core/config/mac_osx.pri -@@ -5,8 +5,6 @@ load(functions) +@@ -5,16 +5,16 @@ 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_MAC_SDK_VERSION = $$system("xcrun --show-sdk-version") + isEmpty(QMAKE_MAC_SDK_VERSION): error("Could not resolve SDK version for \'$${QMAKE_MAC_SDK}\'") } - + QMAKE_CLANG_DIR = "/usr" +-QMAKE_CLANG_PATH = $$eval(QMAKE_MAC_SDK.macx-clang.$${QMAKE_MAC_SDK}.QMAKE_CXX) +-!isEmpty(QMAKE_CLANG_PATH) { +- clang_dir = $$clean_path("$$dirname(QMAKE_CLANG_PATH)/../") +- exists($$clang_dir): QMAKE_CLANG_DIR = $$clang_dir +-} ++# QMAKE_CLANG_PATH = $$eval(QMAKE_MAC_SDK.macx-clang.$${QMAKE_MAC_SDK}.QMAKE_CXX) ++# !isEmpty(QMAKE_CLANG_PATH) { ++# clang_dir = $$clean_path("$$dirname(QMAKE_CLANG_PATH)/../") ++# exists($$clang_dir): QMAKE_CLANG_DIR = $$clang_dir ++# } + + QMAKE_CLANG_PATH = "$${QMAKE_CLANG_DIR}/bin/clang++" + message("Using clang++ from $${QMAKE_CLANG_PATH}") diff --git a/pkgs/development/libraries/qt-5/5.14/qtdeclarative.patch b/pkgs/development/libraries/qt-5/5.14/qtdeclarative.patch index f2f4ee77354d3..8f5b5d4790fb1 100644 --- a/pkgs/development/libraries/qt-5/5.14/qtdeclarative.patch +++ b/pkgs/development/libraries/qt-5/5.14/qtdeclarative.patch @@ -1,3 +1,23 @@ +diff --git a/src/qml/qml/qqmlimport.cpp b/src/qml/qml/qqmlimport.cpp +index 005db4248..685c5b1b2 100644 +--- a/src/qml/qml/qqmlimport.cpp ++++ b/src/qml/qml/qqmlimport.cpp +@@ -1760,6 +1760,15 @@ QQmlImportDatabase::QQmlImportDatabase(QQmlEngine *e) + QString installImportsPath = QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath); + addImportPath(installImportsPath); + ++ // Add import paths derived from PATH ++ const QStringList paths = QFile::decodeName(qgetenv("PATH")).split(':'); ++ const QString qmldir = QStringLiteral("../" NIXPKGS_QML2_IMPORT_PREFIX); ++ for (const QString &path: paths) { ++ if (!path.isEmpty()) { ++ addImportPath(QDir::cleanPath(path + QDir::separator() + qmldir)); ++ } ++ } ++ + // env import paths + if (Q_UNLIKELY(!qEnvironmentVariableIsEmpty("QML2_IMPORT_PATH"))) { + const QString envImportPath = qEnvironmentVariable("QML2_IMPORT_PATH"); diff --git a/tools/qmlcachegen/qmlcache.prf b/tools/qmlcachegen/qmlcache.prf index 537eaf62e..e21de58f6 100644 --- a/tools/qmlcachegen/qmlcache.prf diff --git a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix index 512060701e2dd..c0db5915b947d 100644 --- a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix +++ b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix @@ -13,7 +13,7 @@ , systemd , enableProprietaryCodecs ? true , gn -, cups, darwin, openbsm, runCommand, xcbuild +, cups, darwin, openbsm, runCommand, xcbuild, writeScriptBin , ffmpeg_3 ? null , lib, stdenv }: @@ -51,6 +51,13 @@ qtModule { substituteInPlace ./src/3rdparty/chromium/v8/gypfiles/standalone.gypi \ --replace /bin/echo ${coreutils}/bin/echo '' + # Prevent Chromium build script from making the path to `clang` relative to + # the build directory. `clang_base_path` is the value of `QMAKE_CLANG_DIR` + # from `src/core/config/mac_osx.pri`. + + optionalString stdenv.isDarwin '' + substituteInPlace ./src/3rdparty/chromium/build/toolchain/mac/BUILD.gn \ + --replace 'prefix = rebase_path("$clang_base_path/bin/", root_build_dir)' 'prefix = "$clang_base_path/bin/"' + '' # Patch library paths in Qt sources + '' sed -i \ @@ -69,32 +76,15 @@ qtModule { '' + optionalString stdenv.isDarwin ('' substituteInPlace src/core/config/mac_osx.pri \ - --replace /usr ${stdenv.cc} + --replace 'QMAKE_CLANG_DIR = "/usr"' 'QMAKE_CLANG_DIR = "${stdenv.cc}"' '' + # Following is required to prevent a build error: + # ninja: error: '/nix/store/z8z04p0ph48w22rqzx7ql67gy8cyvidi-SDKs/MacOSX10.12.sdk/usr/include/mach/exc.defs', needed by 'gen/third_party/crashpad/crashpad/util/mach/excUser.c', missing and no known rule to make it + (optionalString (lib.versionAtLeast qtCompatVersion "5.11") '' substituteInPlace src/3rdparty/chromium/third_party/crashpad/crashpad/util/BUILD.gn \ --replace '$sysroot/usr' "${darwin.xnu}" '') + '' - - cat <<EOF > src/3rdparty/chromium/build/mac/find_sdk.py -#!/usr/bin/env python -print("${darwin.apple_sdk.sdk}") -print("10.12.0") -EOF - - cat <<EOF > src/3rdparty/chromium/build/config/mac/sdk_info.py -#!/usr/bin/env python -print('xcode_version="0910"') -print('xcode_version_int=910') -print('xcode_build="9B55"') -print('machine_os_build="17E199"') -print('sdk_path=""') -print('sdk_version="10.10"') -print('sdk_platform_path=""') -print('sdk_build="17B41"') -EOF - # Apple has some secret stuff they don't share with OpenBSM substituteInPlace src/3rdparty/chromium/base/mac/mach_port_broker.mm \ --replace "audit_token_to_pid(msg.trailer.msgh_audit)" "msg.trailer.msgh_audit.val[5]" @@ -111,8 +101,8 @@ EOF # TODO: investigate and fix properly "-march=westmere" ] ++ lib.optionals stdenv.isDarwin [ - "-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_10" - "-DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_10" + "-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_12" + "-DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_12" # # Prevent errors like @@ -189,6 +179,7 @@ EOF CoreWLAN Quartz Cocoa + LocalAuthentication openbsm libunwind @@ -197,6 +188,21 @@ EOF buildInputs = optionals stdenv.isDarwin (with darwin; [ cups + # `sw_vers` is used by `src/3rdparty/chromium/build/config/mac/sdk_info.py` + # to get some information about the host platform. + (writeScriptBin "sw_vers" '' + #!${stdenv.shell} + + while [ $# -gt 0 ]; do + case "$1" in + -buildVersion) echo "17E199";; + *) break ;; + + esac + shift + done + '') + # For sandbox.h include (runCommand "MacOS_SDK_sandbox.h" {} '' install -Dm444 "${lib.getDev darwin.apple_sdk.sdk}"/include/sandbox.h "$out"/include/sandbox.h |