flutter: small refactorings in derivation

This commit is contained in:
Thiago Kenji Okada 2021-01-29 15:03:58 -03:00
parent f5294b802d
commit 910d06bb90
4 changed files with 26 additions and 25 deletions

View File

@ -1,17 +1,22 @@
{ callPackage, dart }: { callPackage, fetchurl, dart }:
let let
mkFlutter = opts: callPackage (import ./flutter.nix opts) { }; mkFlutter = opts: callPackage (import ./flutter.nix opts) { };
getPatches = dir: getPatches = dir:
let files = builtins.attrNames (builtins.readDir dir); let files = builtins.attrNames (builtins.readDir dir);
in map (f: dir + ("/" + f)) files; in map (f: dir + ("/" + f)) files;
version = "1.22.4";
channel = "stable";
filename = "flutter_linux_${version}-${channel}.tar.xz";
in in
{ {
mkFlutter = mkFlutter; mkFlutter = mkFlutter;
stable = mkFlutter rec { stable = mkFlutter rec {
inherit dart; inherit dart version;
pname = "flutter"; pname = "flutter";
version = "1.22.4"; src = fetchurl {
sha256Hash = "0qalgav9drqddcj8lfvl9ddf3325n953pvkmgha47lslg9sa88zw"; url = "https://storage.googleapis.com/flutter_infra/releases/${channel}/linux/${filename}";
patches = getPatches ./patches/stable; sha256 = "0qalgav9drqddcj8lfvl9ddf3325n953pvkmgha47lslg9sa88zw";
};
patches = getPatches ./patches;
}; };
} }

View File

@ -1,10 +1,8 @@
{ pname { pname
, version , version
, sha256Hash
, patches , patches
, dart , dart
, channel ? "stable" , src
, filename ? "flutter_linux_${version}-${channel}.tar.xz"
}: }:
{ bash { bash
@ -33,19 +31,13 @@
, systemd , systemd
}: }:
let let
drvName = "flutter-${channel}-${version}"; drvName = "flutter-${version}";
flutter = stdenv.mkDerivation { flutter = stdenv.mkDerivation {
name = "${drvName}-unwrapped"; name = "${drvName}-unwrapped";
src = fetchurl {
url =
"https://storage.googleapis.com/flutter_infra/releases/${channel}/linux/${filename}";
sha256 = sha256Hash;
};
buildInputs = [ git ]; buildInputs = [ git ];
inherit patches; inherit src patches;
postPatch = '' postPatch = ''
patchShebangs --build ./bin/ patchShebangs --build ./bin/
@ -53,25 +45,29 @@ let
''; '';
buildPhase = '' buildPhase = ''
FLUTTER_ROOT=$(pwd) export FLUTTER_ROOT="$(pwd)"
FLUTTER_TOOLS_DIR="$FLUTTER_ROOT/packages/flutter_tools" export FLUTTER_TOOLS_DIR="$FLUTTER_ROOT/packages/flutter_tools"
SNAPSHOT_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.snapshot" export SCRIPT_PATH="$FLUTTER_TOOLS_DIR/bin/flutter_tools.dart"
STAMP_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.stamp"
SCRIPT_PATH="$FLUTTER_TOOLS_DIR/bin/flutter_tools.dart" export SNAPSHOT_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.snapshot"
DART_SDK_PATH="${dart}" export STAMP_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.stamp"
export DART_SDK_PATH="${dart}"
HOME=../.. # required for pub upgrade --offline, ~/.pub-cache HOME=../.. # required for pub upgrade --offline, ~/.pub-cache
# path is relative otherwise it's replaced by /build/flutter # path is relative otherwise it's replaced by /build/flutter
(cd "$FLUTTER_TOOLS_DIR" && ${dart}/bin/pub upgrade --offline) pushd "$FLUTTER_TOOLS_DIR"
${dart}/bin/pub get --offline
popd
local revision="$(cd "$FLUTTER_ROOT"; git rev-parse HEAD)" local revision="$(cd "$FLUTTER_ROOT"; git rev-parse HEAD)"
${dart}/bin/dart --snapshot="$SNAPSHOT_PATH" --packages="$FLUTTER_TOOLS_DIR/.packages" "$SCRIPT_PATH" ${dart}/bin/dart --snapshot="$SNAPSHOT_PATH" --packages="$FLUTTER_TOOLS_DIR/.packages" "$SCRIPT_PATH"
echo "$revision" > "$STAMP_PATH" echo "$revision" > "$STAMP_PATH"
echo -n "${version}" > version echo -n "${version}" > version
rm -rf bin/cache/{artifacts,dart-sdk,downloads} rm -r bin/cache/{artifacts,dart-sdk,downloads}
rm -f bin/cache/*.stamp rm bin/cache/*.stamp
''; '';
installPhase = '' installPhase = ''