flutter: small refactorings in derivation
This commit is contained in:
parent
f5294b802d
commit
910d06bb90
@ -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;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -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 = ''
|
||||||
|
Loading…
x
Reference in New Issue
Block a user