{ callPackage, fetchurl, dart }: let mkFlutter = opts: callPackage (import ./flutter.nix opts) { }; getPatches = dir: let files = builtins.attrNames (builtins.readDir dir); in map (f: dir + ("/" + f)) files; version = "2.10.1"; channel = "stable"; filename = "flutter_linux_${version}-${channel}.tar.xz"; # Decouples flutter derivation from dart derivation, # use specific dart version to not need to bump dart derivation when bumping flutter. dartVersion = "2.16.1"; 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 = "sha256-PMY6DCFQC8XrlnFzOEPcwgBAs5/cAvNd78969Z+I1Fk="; }; }; }; in { mkFlutter = mkFlutter; stable = mkFlutter rec { inherit version; dart = dartForFlutter; pname = "flutter"; src = fetchurl { url = "https://storage.googleapis.com/flutter_infra_release/releases/${channel}/linux/${filename}"; sha256 = "sha256-rSfwcglDV2rvJl10j7FByAWmghd2FYxrlkgYnvRO54Y="; }; patches = getPatches ./patches; }; }