diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix index f7dc6f8e87c3..940b379173fb 100644 --- a/pkgs/development/compilers/flutter/default.nix +++ b/pkgs/development/compilers/flutter/default.nix @@ -4,18 +4,32 @@ let getPatches = dir: let files = builtins.attrNames (builtins.readDir dir); in map (f: dir + ("/" + f)) files; - version = "2.2.1"; + version = "2.5.1"; channel = "stable"; filename = "flutter_linux_${version}-${channel}.tar.xz"; -in -{ + + # Decouples flutter derivation from dart derivation, + # use specific dart version to not need to bump dart derivation when bumping flutter. + dartVersion = "2.14.2"; + dartSourceBase = "https://storage.googleapis.com/dart-archive/channels"; + dartForFlutter = dart.override { + version = dartVersion; + sources = { + "${dartVersion}-x86_64-linux" = fetchurl { + url = "${dartSourceBase}/stable/release/${dartVersion}/sdk/dartsdk-linux-x64-release.zip"; + sha256 = "1gr2dr683kz0a0k6rcn4jcbxf9fr2xlzi5fcgn1lzrrxvys2lddx"; + }; + }; + }; +in { mkFlutter = mkFlutter; stable = mkFlutter rec { - inherit dart version; + inherit version; + dart = dartForFlutter; pname = "flutter"; src = fetchurl { - url = "https://storage.googleapis.com/flutter_infra/releases/${channel}/linux/${filename}"; - sha256 = "009pwk2casz10gibgjpz08102wxmkq9iq3994b3c2q342g6526g0"; + url = "https://storage.googleapis.com/flutter_infra_release/releases/${channel}/linux/${filename}"; + sha256 = "12ycz7iasrc9p9c6zr95l6llyji3za43gsx8cmr2kjfiv23bcrv2"; }; patches = getPatches ./patches; }; diff --git a/pkgs/development/compilers/flutter/flutter.nix b/pkgs/development/compilers/flutter/flutter.nix index 5cab3b929f75..e0ede49b0919 100644 --- a/pkgs/development/compilers/flutter/flutter.nix +++ b/pkgs/development/compilers/flutter/flutter.nix @@ -8,12 +8,10 @@ { bash , buildFHSUserEnv , cacert -, coreutils , git , runCommand , stdenv , lib -, fetchurl , alsa-lib , dbus , expat @@ -33,6 +31,7 @@ , nspr , nss , systemd +, which }: let drvName = "flutter-${version}"; @@ -74,10 +73,27 @@ let ''; installPhase = '' + runHook preInstall + mkdir -p $out cp -r . $out mkdir -p $out/bin/cache/ ln -sf ${dart} $out/bin/cache/dart-sdk + + runHook postInstall + ''; + + doInstallCheck = true; + installCheckInputs = [ which ]; + installCheckPhase = '' + runHook preInstallCheck + + export HOME="$(mktemp -d)" + $out/bin/flutter config --android-studio-dir $HOME + $out/bin/flutter config --android-sdk $HOME + $out/bin/flutter --version | fgrep -q '${version}' + + runHook postInstallCheck ''; };