diff --git a/pkgs/development/libraries/qt-5/5.9/default.nix b/pkgs/development/libraries/qt-5/5.9/default.nix index 5f28a29dd60..be84691e6c3 100644 --- a/pkgs/development/libraries/qt-5/5.9/default.nix +++ b/pkgs/development/libraries/qt-5/5.9/default.nix @@ -44,6 +44,7 @@ let qtserialport = [ ./qtserialport.patch ]; qttools = [ ./qttools.patch ]; qtwebengine = [ ./qtwebengine-no-build-skip.patch ] + ++ optional stdenv.cc.isClang ./qtwebengine-clang-fix.patch ++ optional stdenv.isDarwin ./qtwebengine-darwin-no-platform-check.patch; qtwebkit = [ ./qtwebkit.patch ]; qtvirtualkeyboard = [ diff --git a/pkgs/development/libraries/qt-5/5.9/qtwebengine-clang-fix.patch b/pkgs/development/libraries/qt-5/5.9/qtwebengine-clang-fix.patch new file mode 100644 index 00000000000..cf082cddd11 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.9/qtwebengine-clang-fix.patch @@ -0,0 +1,38 @@ +Fix a following build error: + +In file included from ../../3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm:7: +In file included from ../../3rdparty/chromium/base/bind.h:8: +../../3rdparty/chromium/base/bind_internal.h:214:31: error: cannot initialize a parameter of type 'NSError *' with an lvalue of type 'const long' + return (receiver.*method)(std::forward(args)...); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~ +../../3rdparty/chromium/base/bind_internal.h:285:20: note: in instantiation of function template specialization 'base::internal::FunctorTraits::Invoke' requested here + return Traits::Invoke(std::forward(functor), + ^ +../../3rdparty/chromium/base/bind_internal.h:361:43: note: in instantiation of function template specialization 'base::internal::InvokeHelper::MakeItSo' requested here + return InvokeHelper::MakeItSo( + ^ +../../3rdparty/chromium/base/bind_internal.h:339:12: note: in instantiation of function template specialization 'base::internal::Invoker, long>, void ()>::RunImpl, long> &, 0, 1>' requested here + return RunImpl(storage->functor_, + ^ +../../3rdparty/chromium/base/bind.h:62:45: note: in instantiation of member function 'base::internal::Invoker, long>, void ()>::Run' requested here + PolymorphicInvoke invoke_func = &Invoker::Run; + ^ +../../3rdparty/chromium/base/bind.h:77:10: note: in instantiation of function template specialization 'base::BindRepeating, long>' requested here + return BindRepeating(std::forward(functor), + ^ +../../3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm:241:15: note: in instantiation of function template specialization 'base::Bind, long>' requested here + base::Bind(&BluetoothRemoteGattCharacteristicMac::DidWriteValue, + +--- a/src/3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm ++++ b/src/3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm +@@ -239,7 +239,7 @@ void BluetoothRemoteGattCharacteristicMac::WriteRemoteCharacteristic( + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, + base::Bind(&BluetoothRemoteGattCharacteristicMac::DidWriteValue, +- base::Unretained(this), nil)); ++ base::Unretained(this), nullptr)); + } + } + diff --git a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix index f1fee7da48e..91b7acf4365 100644 --- a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix +++ b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix @@ -70,6 +70,10 @@ qtModule { substituteInPlace src/core/config/mac_osx.pri \ --replace /usr ${stdenv.cc} '' + + (optionalString (lib.versionAtLeast qtCompatVersion "5.11") '' + substituteInPlace src/3rdparty/chromium/third_party/crashpad/crashpad/util/BUILD.gn \ + --replace '$sysroot/usr' "${darwin.xnu}" + '') + '' cat < src/3rdparty/chromium/build/mac/find_sdk.py @@ -90,9 +94,6 @@ print('sdk_platform_path=""') print('sdk_build="17B41"') EOF - substituteInPlace src/3rdparty/chromium/third_party/crashpad/crashpad/util/BUILD.gn \ - --replace '$sysroot/usr' "${darwin.xnu}" - # 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]"