flutter: Don't use IFD to read the engine version

This commit is contained in:
hacker1024
2023-04-23 14:44:46 +10:00
parent ae0aff848f
commit 552e3fe498
2 changed files with 14 additions and 6 deletions
@@ -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 = {
@@ -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/
'';