From a1b4bfe34f8ed53b6e19dd6e7a70b7326e3e4646 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Tue, 24 Mar 2020 13:54:27 +0100 Subject: [PATCH 1/2] 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", ^------------- --- .../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 ad66bbd98b5b944fd22e103d2e25b723858954f5 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Wed, 25 Mar 2020 23:32:03 +0100 Subject: [PATCH 2/2] 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 ``` --- 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