summaryrefslogtreecommitdiffstats
path: root/pkgs/applications/networking/browsers/chromium/common.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/networking/browsers/chromium/common.nix')
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix35
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.