diff options
Diffstat (limited to 'pkgs/applications/networking/browsers/chromium/common.nix')
-rw-r--r-- | pkgs/applications/networking/browsers/chromium/common.nix | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 69e54e25c374..3aac5f9b17ae 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -132,6 +132,8 @@ 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 = let @@ -142,6 +144,10 @@ let sed -i -e '/base::FilePath exe_dir/,/^ *} *$/c \ sandbox_binary = base::FilePath(getenv("CHROMIUM_SANDBOX_BINARY_PATH")); ' ${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 // { @@ -160,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, @@ -190,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. |