Needs to do a build in 2-pass now since Google stopped shipping all
dependencies needed to build Flutter. This may be an oversight from them
since they used to ship everything, but this makes the whole build
process more robust.
The first step will download all dependencies from pub, and the
second step will build Flutter. Since we need to build repository
first, we also require a new depsSha256 parameter to be passed, that
represents the SHA256 of the resulting derivation of all Flutter
dependencies downloaded from https://pub.dev.
This commit also makes some changes in mkFlutter, allowing the
user to pass src instead of passing version/channel/filename, allowing
for more flexibility (i.e: building from a local fork of Flutter).
Related issue #108606.
Nowadays we have multiple outdated versions of Flutter in nixpkgs.
Instead, let's focus in having in having stable versions of Flutter
working.
Users needing to use beta or dev versions of Flutter can use mkFlutter
function, that still exists.
Instead of copying the whole dart derivation to bin/cache/dart-sdk
directory, just symlink it.
Also, make sure that the flutter is build from dart passed as a
parameter.
Before:
/nix/store/p3avfmvd0yrjpwwml7vvqbjin5vacx2k-flutter-stable-1.22.0 2084894968
After:
/nix/store/750k4z1yj5xsw7ymmwvn7cfjjzkaygzg-flutter-stable-1.22.0 1647047080
flutter: add beta and dev channels
flutter: artifacts are now downloaded in $HOME/.cache/flutter
flutter: remove all artifacts from flutter
flutter: fix lockfile path
flutter: fix pub_cache
flutter: fix flutter_tools/.packages pointing to /build
flutter: clean patches
flutter: fix write error on .cache/flutter/lockfile
flutter: add zlib as a dependency
flutter: add missing dependencies
flutter: fix flutter version
flutter: update versions + dependencies