diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix | 71 |
1 files changed, 44 insertions, 27 deletions
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix index df444eee2eb..049b0349a4f 100644 --- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix @@ -13,9 +13,9 @@ , systemd , enableProprietaryCodecs ? true , gn -, cups, darwin, openbsm, runCommand, xcbuild -, ffmpeg ? null -, lib, stdenv +, cups, darwin, openbsm, runCommand, xcbuild, writeScriptBin +, ffmpeg_3 ? null +, lib, stdenv, fetchpatch }: with stdenv.lib; @@ -38,6 +38,17 @@ qtModule { # which cannot be set at the same time as -Wformat-security hardeningDisable = [ "format" ]; + patches = [ + # Fix build with bison-3.7: https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?id=1a53f599 + (fetchpatch { + name = "qtwebengine-bison-3.7-build.patch"; + url = "https://code.qt.io/cgit/qt/qtwebengine-chromium.git/patch/?id=1a53f599"; + sha256 = "1nqpyn5fq37q7i9nasag6i14lnz0d7sld5ikqhlm8qwq9d7gbmjy"; + stripLen = 1; + extraPrefix = "src/3rdparty/"; + }) + ]; + postPatch = # Patch Chromium build tools '' @@ -51,6 +62,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 \ @@ -61,7 +79,7 @@ qtModule { '' # Patch library paths in Chromium sources + optionalString (!stdenv.isDarwin) '' - sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${systemd.lib}/lib/\1!' \ + sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \ src/3rdparty/chromium/device/udev_linux/udev?_loader.cc sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \ @@ -69,32 +87,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 +112,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 @@ -152,7 +153,7 @@ EOF libevent ] ++ optionals (stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) [ - ffmpeg + ffmpeg_3 ] ++ optionals (!stdenv.isDarwin) [ dbus zlib minizip snappy nss protobuf jsoncpp @@ -189,6 +190,7 @@ EOF CoreWLAN Quartz Cocoa + LocalAuthentication openbsm libunwind @@ -197,6 +199,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 |