Merge branch 'chromium-update-with-gn'
This brings in the new stable version 54 which also introduces a lot of security fixes: CVE-2016-5198: Out of bounds memory access in V8 CVE-2016-5181: Universal XSS in Blink CVE-2016-5182: Heap overflow in Blink CVE-2016-5183: Use after free in PDFium CVE-2016-5184: Use after free in PDFium CVE-2016-5185: Use after free in Blink CVE-2016-5187: URL spoofing CVE-2016-5188: UI spoofing CVE-2016-5192: Cross-origin bypass in Blink CVE-2016-5189: URL spoofing CVE-2016-5186: Out of bounds read in DevTools CVE-2016-5191: Universal XSS in Bookmarks CVE-2016-5190: Use after free in Internals CVE-2016-5193: Scheme bypass Detailed announcements about these changes can be found here (latest to oldest): https://googlechromereleases.blogspot.de/2016/11/stable-channel-update-for-desktop.html https://googlechromereleases.blogspot.de/2016/10/stable-channel-update-for-desktop_20.html https://googlechromereleases.blogspot.de/2016/10/stable-channel-update-for-desktop.html The update process of Chromium has been a bit bumpy on our side, because version 54 also did the switch from GYP to GN so it wasn't just a matter of updating the upstream-info file. I've tested the Flash plugin (which runs fine) and WideVine manually, although I couldn't get WideVine to work (I was running this within a VM though). So if people want to use WideVine they need to use Chrome instead until we got this sorted out. VM test results along with builds for all platforms can be found here: https://headcounter.org/hydra/eval/339328 I'm going to backport these changes to stable as soon as the tests/builds succeed there as well. Closes: #19565 Closes: #20120
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
{ stdenv, fetchgit, fetchurl, python, ninja, libevent, xdg-user-dirs }:
|
||||
|
||||
let
|
||||
date = "20161008";
|
||||
|
||||
sourceTree = {
|
||||
"src/base" = {
|
||||
rev = "e71a514e60b085cc92bf6ef951ec329f52c79f9f";
|
||||
sha256 = "0zycbssmd2za0zij8czcs1fr66fi12f1g5ysc8fzkf8khbs5h6a9";
|
||||
};
|
||||
"src/build" = {
|
||||
rev = "17093d45bf738e9ae4b6294492860ee65218a657";
|
||||
sha256 = "0i9py78c3f46sc789qvdhmgjgyrghysbqjgr67iypwphw52jv2dz";
|
||||
};
|
||||
"src/tools/gn" = {
|
||||
rev = "9ff32cf3f1f4ad0212ac674b6303e7aa68f44f3f";
|
||||
sha256 = "14jr45k5fgcqk9d18fd77sijlqavvnv0knndh74zyb0b60464hz1";
|
||||
};
|
||||
"testing/gtest" = {
|
||||
rev = "585ec31ea716f08233a815e680fc0d4699843938";
|
||||
sha256 = "0csn1cza66851nmxxiw42smsm3422mx67vcyykwn0a71lcjng6rc";
|
||||
};
|
||||
};
|
||||
|
||||
mkDepend = path: attrs: fetchgit {
|
||||
url = "https://chromium.googlesource.com/chromium/${path}";
|
||||
inherit (attrs) rev sha256;
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "gn-${version}";
|
||||
version = "0.0.0.${date}";
|
||||
|
||||
unpackPhase = ''
|
||||
${with stdenv.lib; concatStrings (mapAttrsToList (path: sha256: ''
|
||||
dest=source/${escapeShellArg (removePrefix "src/" path)}
|
||||
mkdir -p "$(dirname "$dest")"
|
||||
cp --no-preserve=all -rT ${escapeShellArg (mkDepend path sha256)} "$dest"
|
||||
'') sourceTree)}
|
||||
( mkdir -p source/third_party
|
||||
cd source/third_party
|
||||
unpackFile ${xdg-user-dirs.src}
|
||||
mv * xdg_user
|
||||
)
|
||||
'';
|
||||
|
||||
sourceRoot = "source";
|
||||
|
||||
postPatch = ''
|
||||
# GN's bootstrap script relies on shebangs (which are relying on FHS paths),
|
||||
# except when on Windows. So instead of patchShebang-ing it, let's just
|
||||
# force the same behaviour as on Windows.
|
||||
sed -i -e '/^def *check_call/,/^[^ ]/ {
|
||||
s/is_win/True/
|
||||
}' tools/gn/bootstrap/bootstrap.py
|
||||
|
||||
# Patch out Chromium-bundled libevent and xdg_user_dirs
|
||||
sed -i -e '/static_libraries.*libevent/,/^ *\]\?[})]$/d' \
|
||||
tools/gn/bootstrap/bootstrap.py
|
||||
'';
|
||||
|
||||
NIX_LDFLAGS = "-levent";
|
||||
|
||||
nativeBuildInputs = [ python ninja ];
|
||||
buildInputs = [ libevent ];
|
||||
|
||||
buildPhase = ''
|
||||
python tools/gn/bootstrap/bootstrap.py -v -s --no-clean
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -vD out_bootstrap/gn "$out/bin/gn"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "A meta-build system that generates NinjaBuild files";
|
||||
homepage = "https://chromium.googlesource.com/chromium/src/tools/gn/";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user