Unverified Commit 58631b06 authored by tomberek's avatar tomberek Committed by GitHub
Browse files

Merge pull request #319660 from ExpidusOS/feat/flutter-beta

flutterPackages: support beta releases
parents de926d60 0284d26d
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -67,6 +67,20 @@ let
            exit 1
          fi
        '';
        # https://github.com/dart-lang/pub/blob/e1fbda73d1ac597474b82882ee0bf6ecea5df108/lib/src/sdk/dart.dart#L80
        "dart" = name: runCommand "dart-sdk-${name}" { passthru.packageRoot = "."; } ''
          for path in '${flutter.dart}/pkg/${name}'; do
            if [ -d "$path" ]; then
              ln -s "$path" "$out"
              break
            fi
          done

          if [ ! -e "$out" ]; then
            echo 1>&2 'The Dart SDK does not contain the requested package: ${name}!'
            exit 1
          fi
        '';
      };

      extraPackageConfigSetup = ''
+11 −6
Original line number Diff line number Diff line
@@ -14,28 +14,29 @@ let
    , patches
    , pubspecLock
    , artifactHashes
    , channel
    }:
    let
      args = {
        inherit version engineVersion patches pubspecLock artifactHashes;
        inherit version engineVersion patches pubspecLock artifactHashes channel;

        dart = dart.override {
          version = dartVersion;
          sources = {
            "${dartVersion}-x86_64-linux" = fetchzip {
              url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-linux-x64-release.zip";
              url = "https://storage.googleapis.com/dart-archive/channels/${channel}/release/${dartVersion}/sdk/dartsdk-linux-x64-release.zip";
              sha256 = dartHash.x86_64-linux;
            };
            "${dartVersion}-aarch64-linux" = fetchzip {
              url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-linux-arm64-release.zip";
              url = "https://storage.googleapis.com/dart-archive/channels/${channel}/release/${dartVersion}/sdk/dartsdk-linux-arm64-release.zip";
              sha256 = dartHash.aarch64-linux;
            };
            "${dartVersion}-x86_64-darwin" = fetchzip {
              url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-macos-x64-release.zip";
              url = "https://storage.googleapis.com/dart-archive/channels/${channel}/release/${dartVersion}/sdk/dartsdk-macos-x64-release.zip";
              sha256 = dartHash.x86_64-darwin;
            };
            "${dartVersion}-aarch64-darwin" = fetchzip {
              url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-macos-arm64-release.zip";
              url = "https://storage.googleapis.com/dart-archive/channels/${channel}/release/${dartVersion}/sdk/dartsdk-macos-arm64-release.zip";
              sha256 = dartHash.aarch64-darwin;
            };
          };
@@ -65,8 +66,12 @@ let
        patches = (getPatches ./patches) ++ (getPatches (versionDir + "/patches"));
      } // data))))
    (builtins.readDir ./versions);

  stableFlutterVersions = lib.attrsets.filterAttrs (_: v: v.channel == "stable") flutterVersions;
  betaFlutterVersions = lib.attrsets.filterAttrs (_: v: v.channel == "beta") flutterVersions;
in
flutterVersions // {
  stable = flutterVersions.${lib.last (lib.naturalSort (builtins.attrNames flutterVersions))};
  beta = flutterVersions.${lib.last (lib.naturalSort (builtins.attrNames betaFlutterVersions))};
  stable = flutterVersions.${lib.last (lib.naturalSort (builtins.attrNames stableFlutterVersions))};
  inherit wrapFlutter mkFlutter;
}
+18 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@
, stdenv
, systemPlatform
, buildDartApplication
, runCommand
, git
, which
, dart
@@ -54,5 +55,22 @@ buildDartApplication.override { inherit dart; } rec {
    popd
  '';

  sdkSourceBuilders = {
    # https://github.com/dart-lang/pub/blob/e1fbda73d1ac597474b82882ee0bf6ecea5df108/lib/src/sdk/dart.dart#L80
    "dart" = name: runCommand "dart-sdk-${name}" { passthru.packageRoot = "."; } ''
      for path in '${dart}/pkg/${name}'; do
        if [ -d "$path" ]; then
          ln -s "$path" "$out"
          break
        fi
      done

      if [ ! -e "$out" ]; then
        echo 1>&2 'The Dart SDK does not contain the requested package: ${name}!'
        exit 1
      fi
    '';
  };

  inherit pubspecLock;
}
+3 −2
Original line number Diff line number Diff line
{ version
, engineVersion
, patches
, channel
, dart
, src
, pubspecLock
@@ -74,7 +75,7 @@ let
          "devToolsVersion": "$(cat "${dart}/bin/resources/devtools/version.json" | jq -r .version)",
          "flutterVersion": "${version}",
          "frameworkVersion": "${version}",
          "channel": "stable",
          "channel": "${channel}",
          "repositoryUrl": "https://github.com/flutter/flutter.git",
          "frameworkRevision": "nixpkgs000000000000000000000000000000000",
          "frameworkCommitDate": "1970-01-01 00:00:00",
@@ -124,7 +125,7 @@ let
      '';

      passthru = {
        inherit dart engineVersion artifactHashes;
        inherit dart engineVersion artifactHashes channel;
        tools = flutterTools;
        # The derivation containing the original Flutter SDK files.
        # When other derivations wrap this one, any unmodified files
+5 −4
Original line number Diff line number Diff line
let
  dartVersion = "@dart_version@";
  platform = "@platform@";
  channel = "@channel@";
in
{
  x86_64-linux = { fetchzip }:
    fetchzip {
      url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-linux-x64-release.zip";
      url = "https://storage.googleapis.com/dart-archive/channels/${channel}/release/${dartVersion}/sdk/dartsdk-linux-x64-release.zip";
      sha256 = "0000000000000000000000000000000000000000000000000000";
    };
  aarch64-linux = { fetchzip }:
    fetchzip {
      url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-linux-arm64-release.zip";
      url = "https://storage.googleapis.com/dart-archive/channels/${channel}/release/${dartVersion}/sdk/dartsdk-linux-arm64-release.zip";
      sha256 = "0000000000000000000000000000000000000000000000000000";
    };
  x86_64-darwin = { fetchzip }:
    fetchzip {
      url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-macos-x64-release.zip";
      url = "https://storage.googleapis.com/dart-archive/channels/${channel}/release/${dartVersion}/sdk/dartsdk-macos-x64-release.zip";
      sha256 = "0000000000000000000000000000000000000000000000000000";
    };
  aarch64-darwin = { fetchzip }:
    fetchzip {
      url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-macos-arm64-release.zip";
      url = "https://storage.googleapis.com/dart-archive/channels/${channel}/release/${dartVersion}/sdk/dartsdk-macos-arm64-release.zip";
      sha256 = "0000000000000000000000000000000000000000000000000000";
    };
}.${platform}
Loading