From 4424442dc886986e956d10dfa763657186900b17 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Tue, 24 Mar 2020 13:54:27 +0100 Subject: [PATCH 1/3] gn: 20190403 -> 2020-03-09 This updates gn to the required version for chromiumDev (the recommended version for the stable release of Chromium isn't sufficient [0]). [0]: The Chromium build fails during the configuration phase: ERROR at //mojo/public/tools/bindings/mojom.gni:393:16: Undefined identifier "cpp_typemaps", ^------------- (cherry picked from commit a1b4bfe34f8ed53b6e19dd6e7a70b7326e3e4646) --- .../tools/build-managers/gn/default.nix | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/pkgs/development/tools/build-managers/gn/default.nix b/pkgs/development/tools/build-managers/gn/default.nix index d8557bfcbc27..599e10af1a9a 100644 --- a/pkgs/development/tools/build-managers/gn/default.nix +++ b/pkgs/development/tools/build-managers/gn/default.nix @@ -1,31 +1,37 @@ { stdenv, lib, fetchgit, darwin, writeText -, git, ninja, python3 }: +, ninja, python3 +}: let - rev = "64b846c96daeb3eaf08e26d8a84d8451c6cb712b"; - sha256 = "1v2kzsshhxn0ck6gd5w16gi2m3higwd9vkyylmsczxfxnw8skgpy"; + # Note: Please use the recommended version for Chromium, e.g.: + # https://git.archlinux.org/svntogit/packages.git/tree/trunk/chromium-gn-version.sh?h=packages/gn + rev = "fd3d768bcfd44a8d9639fe278581bd9851d0ce3a"; + revNum = "1718"; # git describe HEAD --match initial-commit | cut -d- -f3 + version = "2020-03-09"; + sha256 = "1asc14y8by7qcn10vbk467hvx93s30pif8r0brissl0sihsaqazr"; - shortRev = builtins.substring 0 7 rev; + revShort = builtins.substring 0 7 rev; lastCommitPosition = writeText "last_commit_position.h" '' #ifndef OUT_LAST_COMMIT_POSITION_H_ #define OUT_LAST_COMMIT_POSITION_H_ - #define LAST_COMMIT_POSITION "(${shortRev})" + #define LAST_COMMIT_POSITION_NUM ${revNum} + #define LAST_COMMIT_POSITION "${revNum} (${revShort})" #endif // OUT_LAST_COMMIT_POSITION_H_ ''; -in -stdenv.mkDerivation { - pname = "gn"; - version = "20190403"; +in stdenv.mkDerivation { + pname = "gn-unstable"; + inherit version; src = fetchgit { + # Note: The TAR-Archives (+archive/${rev}.tar.gz) are not deterministic! url = "https://gn.googlesource.com/gn"; inherit rev sha256; }; - nativeBuildInputs = [ ninja python3 git ]; + nativeBuildInputs = [ ninja python3 ]; buildInputs = lib.optionals stdenv.isDarwin (with darwin; with apple_sdk.frameworks; [ libobjc cctools @@ -49,8 +55,8 @@ stdenv.mkDerivation { setupHook = ./setup-hook.sh; meta = with lib; { - description = "A meta-build system that generates NinjaBuild files"; - homepage = https://gn.googlesource.com/gn; + description = "A meta-build system that generates build files for Ninja"; + homepage = "https://gn.googlesource.com/gn"; license = licenses.bsd3; platforms = platforms.unix; maintainers = with maintainers; [ stesie matthewbauer ]; From 72acf9cd34980ac5265444f5245d33c852488ce0 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Wed, 25 Mar 2020 23:32:03 +0100 Subject: [PATCH 2/3] aseprite.skia: Override the gn version to fix the build With #83290 merged the build would fail during the configuration phase: ``` configuring ERROR at //gn/BUILDCONFIG.gn:85:14: Script returned non-zero exit code. is_clang = exec_script("gn/is_clang.py", ^---------- Current dir: /build/source/out/Release/ Command: python /build/source/gn/gn/is_clang.py cc c++ Returned 2. stderr: python: can't open file '/build/source/gn/gn/is_clang.py': [Errno 2] No such file or directory ``` (cherry picked from commit ad66bbd98b5b944fd22e103d2e25b723858954f5) --- pkgs/applications/editors/aseprite/default.nix | 2 ++ pkgs/applications/editors/aseprite/skia.nix | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/aseprite/default.nix b/pkgs/applications/editors/aseprite/default.nix index 6e6d7db81770..5ba0f9cf237e 100644 --- a/pkgs/applications/editors/aseprite/default.nix +++ b/pkgs/applications/editors/aseprite/default.nix @@ -98,6 +98,8 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + passthru = { inherit skia; }; + meta = with lib; { homepage = https://www.aseprite.org/; description = "Animated sprite editor & pixel art tool"; diff --git a/pkgs/applications/editors/aseprite/skia.nix b/pkgs/applications/editors/aseprite/skia.nix index c89ebd4ad0c1..141d51bed0f8 100644 --- a/pkgs/applications/editors/aseprite/skia.nix +++ b/pkgs/applications/editors/aseprite/skia.nix @@ -6,6 +6,14 @@ let # skia-deps.nix is generated by: ./skia-make-deps.sh 'angle2|dng_sdk|piex|sfntly' depSrcs = import ./skia-deps.nix { inherit fetchgit; }; + gnOld = gn.overrideAttrs (oldAttrs: rec { + version = "20190403"; + src = fetchgit { + url = "https://gn.googlesource.com/gn"; + rev = "64b846c96daeb3eaf08e26d8a84d8451c6cb712b"; + sha256 = "1v2kzsshhxn0ck6gd5w16gi2m3higwd9vkyylmsczxfxnw8skgpy"; + }; + }); in stdenv.mkDerivation { name = "skia-aseprite-m71"; @@ -14,11 +22,11 @@ stdenv.mkDerivation { owner = "aseprite"; repo = "skia"; # latest commit from aseprite-m71 branch - rev = "89e4ca4352d05adc892f5983b108433f29b2c0c2"; + rev = "89e4ca4352d05adc892f5983b108433f29b2c0c2"; # TODO: Remove the gnOld override sha256 = "0n3vrkswvi6rib9zv2pzi18h3j5wm7flmgkgaikcm6q7iw4l2c7x"; }; - nativeBuildInputs = [ python2 gn ninja ]; + nativeBuildInputs = [ python2 gnOld ninja ]; buildInputs = [ fontconfig expat icu58 libglvnd libjpeg libpng libwebp zlib From 9a7d21670307c0e6ae06d62201bd5b2189574b8e Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Fri, 3 Apr 2020 19:17:57 +0200 Subject: [PATCH 3/3] chromiumDev: Override gn to fix the configuration phase The configuration phase was failing due to: ``` configuring ERROR at //BUILD.gn:1376:5: Unknown function. filter_exclude([ "$root_build_dir/foo" ], ^------------- ``` (cherry picked from commit ad3220f9ff3f24a12357ea07d33dff7ba0c54d33) --- .../networking/browsers/chromium/common.nix | 4 ++-- .../networking/browsers/chromium/default.nix | 17 ++++++++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 831a93734248..9f7583b1ef5c 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -1,4 +1,4 @@ -{ stdenv, llvmPackages, gn, ninja, which, nodejs, fetchpatch, gnutar +{ stdenv, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, gnutar # default dependencies , bzip2, flac, speex, libopus @@ -281,7 +281,7 @@ let libExecPath="${libExecPath}" python build/linux/unbundle/replace_gn_files.py \ --system-libraries ${toString gnSystemLibraries} - ${gn}/bin/gn gen --args=${escapeShellArg gnFlags} out/Release | tee gn-gen-outputs.txt + ${gnChromium}/bin/gn gen --args=${escapeShellArg gnFlags} out/Release | tee gn-gen-outputs.txt # Fail if `gn gen` contains a WARNING. grep -o WARNING gn-gen-outputs.txt && echo "Found gn WARNING, exiting nix build" && exit 1 diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index b3ca9a79ad30..564e50b86709 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -1,6 +1,6 @@ { newScope, config, stdenv, llvmPackages_9, llvmPackages_10 , makeWrapper, ed -, glib, gtk3, gnome3, gsettings-desktop-schemas +, glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit , libva ? null , gcc, nspr, nss, patchelfUnstable, runCommand , lib @@ -32,9 +32,20 @@ let upstream-info = (callPackage ./update.nix {}).getChannel channel; - mkChromiumDerivation = callPackage ./common.nix { + mkChromiumDerivation = callPackage ./common.nix ({ inherit gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport useVaapi useOzone; - }; + gnChromium = gn; + } // lib.optionalAttrs (channel == "dev") { + # TODO: Remove after we can update gn for the stable channel (backward incompatible changes): + gnChromium = gn.overrideAttrs (oldAttrs: { + version = "2020-03-23"; + src = fetchgit { + url = "https://gn.googlesource.com/gn"; + rev = "5ed3c9cc67b090d5e311e4bd2aba072173e82db9"; + sha256 = "00y2d35wvqmx9glaqhfb62wdgbfpwr77v0934nnvh9ks71vnsjqy"; + }; + }); + }); browser = callPackage ./browser.nix { inherit channel enableWideVine; };