diff options
Diffstat (limited to 'pkgs/applications/networking/browsers/chromium/common.nix')
-rw-r--r-- | pkgs/applications/networking/browsers/chromium/common.nix | 44 |
1 files changed, 34 insertions, 10 deletions
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 7bed83ac4c6d..3aac5f9b17ae 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -132,12 +132,22 @@ let find -iname '*.gyp*' \( -type f -o -type l \) \ -exec sed -i -e 's|<(DEPTH)|'"$(pwd)"'|g' {} + \ -exec chmod u+w {} + + '' + optionalString (!versionOlder source.version "37.0.0.0") '' + python third_party/libaddressinput/chromium/tools/update-strings.py ''; - postPatch = '' + postPatch = let + toPatch = if versionOlder source.version "36.0.0.0" + then "content/browser/browser_main_loop.cc" + else "sandbox/linux/suid/client/setuid_sandbox_client.cc"; + in '' sed -i -e '/base::FilePath exe_dir/,/^ *} *$/c \ sandbox_binary = base::FilePath(getenv("CHROMIUM_SANDBOX_BINARY_PATH")); - ' content/browser/browser_main_loop.cc + ' ${toPatch} + '' + optionalString (!versionOlder source.version "36.0.0.0") '' + sed -i -e '/module_path *=.*libexif.so/ { + s|= [^;]*|= base::FilePath().AppendASCII("${libexif}/lib/libexif.so")| + }' chrome/utility/media_galleries/image_metadata_extractor.cc ''; gypFlags = mkGypFlags (gypFlagsUseSystemLibs // { @@ -148,6 +158,7 @@ let use_gconf = gnomeSupport; use_gio = gnomeSupport; use_pulseaudio = pulseSupport; + linux_link_pulseaudio = pulseSupport; disable_nacl = !enableNaCl; use_openssl = useOpenSSL; selinux = enableSELinux; @@ -155,6 +166,9 @@ let linux_sandbox_chrome_path="${libExecPath}/${packageName}"; werror = ""; + # FIXME: In version 37, omnibox.mojom.js doesn't seem to be generated. + use_mojo = versionOlder source.version "37.0.0.0"; + # Google API keys, see: # http://www.chromium.org/developers/how-tos/api-keys # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution, @@ -185,14 +199,24 @@ let buildPhase = let CC = "${gcc}/bin/gcc"; CXX = "${gcc}/bin/g++"; - in '' - CC="${CC}" CC_host="${CC}" \ - CXX="${CXX}" CXX_host="${CXX}" \ - LINK_host="${CXX}" \ - "${ninja}/bin/ninja" -C "${buildPath}" \ - -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES \ - ${concatStringsSep " " (extraAttrs.buildTargets or [])} - ''; + buildCommand = target: let + # XXX: Only needed for version 36 and older! + targetSuffix = optionalString + (versionOlder source.version "37.0.0.0" && target == "mksnapshot") + (if stdenv.is64bit then ".x64" else ".ia32"); + in '' + CC="${CC}" CC_host="${CC}" \ + CXX="${CXX}" CXX_host="${CXX}" \ + LINK_host="${CXX}" \ + "${ninja}/bin/ninja" -C "${buildPath}" \ + -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES \ + "${target}${targetSuffix}" + '' + optionalString (target == "mksnapshot" || target == "chrome") '' + paxmark m "${buildPath}/${target}${targetSuffix}" + ''; + targets = extraAttrs.buildTargets or []; + commands = map buildCommand targets; + in concatStringsSep "\n" commands; }; # Remove some extraAttrs we supplied to the base attributes already. |