about summary refs log tree commit diff
path: root/pkgs/development/compilers/flutter
diff options
context:
space:
mode:
authorhacker1024 <hacker1024@users.sourceforge.net>2023-04-23 14:44:46 +1000
committerhacker1024 <hacker1024@users.sourceforge.net>2023-04-23 14:44:46 +1000
commit552e3fe49817599c2127a8ab32b72b8e6bf9f724 (patch)
tree77a0d54e0ebba398b7d93119c230397d34084f05 /pkgs/development/compilers/flutter
parentae0aff848fce2a672919bedffbe04f85bfed13b6 (diff)
flutter: Don't use IFD to read the engine version
Diffstat (limited to 'pkgs/development/compilers/flutter')
-rw-r--r--pkgs/development/compilers/flutter/default.nix8
-rw-r--r--pkgs/development/compilers/flutter/flutter.nix12
2 files changed, 14 insertions, 6 deletions
diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix
index e3b060777e706..2cc1844801ffb 100644
--- a/pkgs/development/compilers/flutter/default.nix
+++ b/pkgs/development/compilers/flutter/default.nix
@@ -1,12 +1,12 @@
 { callPackage, fetchzip, dart }:
 let
-  mkFlutter = { version, patches, dart, src }: callPackage ./flutter.nix { inherit version patches dart src; };
+  mkFlutter = { version, engineVersion, patches, dart, src }: callPackage ./flutter.nix { inherit version engineVersion patches dart src; };
   wrapFlutter = flutter: callPackage ./wrapper.nix { inherit flutter; };
   getPatches = dir:
     let files = builtins.attrNames (builtins.readDir dir);
     in map (f: dir + ("/" + f)) files;
-  flutterDrv = { version, dartVersion, hash, dartHash, patches }: mkFlutter {
-    inherit version patches;
+  flutterDrv = { version, engineVersion, dartVersion, hash, dartHash, patches }: mkFlutter {
+    inherit version engineVersion patches;
     dart = dart.override {
       version = dartVersion;
       sources = {
@@ -32,6 +32,7 @@ in
   inherit mkFlutter wrapFlutter flutterDrv flutter3Patches flutter2Patches;
   stable = flutterDrv {
     version = "3.7.12";
+    engineVersion = "1a65d409c7a1438a34d21b60bf30a6fd5db59314";
     dartVersion = "2.19.6";
     hash = "sha256-5ExDBQXIpoZ5NwS66seY3m9/V8xDiyq/RdzldAyHdEE=";
     dartHash = {
@@ -43,6 +44,7 @@ in
 
   v2 = flutterDrv {
     version = "2.10.5";
+    engineVersion = "57d3bac3dd5cb5b0e464ab70e7bc8a0d8cf083ab";
     dartVersion = "2.16.2";
     hash = "sha256-MxaWvlcCfXN8gsC116UMzqb4LgixHL3YjrGWy7WYgW4=";
     dartHash = {
diff --git a/pkgs/development/compilers/flutter/flutter.nix b/pkgs/development/compilers/flutter/flutter.nix
index a566a543e4184..92d635be96781 100644
--- a/pkgs/development/compilers/flutter/flutter.nix
+++ b/pkgs/development/compilers/flutter/flutter.nix
@@ -1,4 +1,5 @@
 { version
+, engineVersion
 , patches
 , dart
 , src
@@ -29,9 +30,7 @@
 let
   engineArtifactDirectory =
     let
-      engineArtifacts = callPackage ./engine-artifacts {
-        engineVersion = lib.removeSuffix "\n" (builtins.readFile (src + /bin/internal/engine.version));
-      };
+      engineArtifacts = callPackage ./engine-artifacts { inherit engineVersion; };
     in
     runCommandLocal "flutter-engine-artifacts-${version}" { }
       (
@@ -81,6 +80,13 @@ let
 
       buildInputs = [ git ];
 
+      preConfigure = ''
+        if [ "$(< bin/internal/engine.version)" != '${engineVersion}' ]; then
+          echo 1>&2 "The given engine version (${engineVersion}) does not match the version required by the Flutter SDK ($(< bin/internal/engine.version))."
+          exit 1
+        fi
+      '';
+
       postPatch = ''
         patchShebangs --build ./bin/
       '';