aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix')
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix71
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