From a03f012956429ebe8a4a56114405b221643ad07e Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Wed, 6 Jan 2021 17:38:03 -0300 Subject: [PATCH 1/2] flutter: format with nixpkgs-fmt --- .../development/compilers/flutter/default.nix | 4 +- .../development/compilers/flutter/flutter.nix | 43 ++++++++++++++++--- 2 files changed, 38 insertions(+), 9 deletions(-) diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix index baab0583fb0..3eea7f596b6 100644 --- a/pkgs/development/compilers/flutter/default.nix +++ b/pkgs/development/compilers/flutter/default.nix @@ -1,5 +1,4 @@ { callPackage, dart }: - let dart_stable = dart.override { version = "2.10.0"; }; dart_beta = dart.override { version = "2.10.0"; }; @@ -8,7 +7,8 @@ let getPatches = dir: let files = builtins.attrNames (builtins.readDir dir); in map (f: dir + ("/" + f)) files; -in { +in +{ mkFlutter = mkFlutter; stable = mkFlutter rec { pname = "flutter"; diff --git a/pkgs/development/compilers/flutter/flutter.nix b/pkgs/development/compilers/flutter/flutter.nix index 7fda2d616f3..ddc346bf936 100644 --- a/pkgs/development/compilers/flutter/flutter.nix +++ b/pkgs/development/compilers/flutter/flutter.nix @@ -1,10 +1,37 @@ -{ channel, pname, version, sha256Hash, patches, dart -, filename ? "flutter_linux_${version}-${channel}.tar.xz"}: - -{ bash, buildFHSUserEnv, cacert, coreutils, git, makeWrapper, runCommand, stdenv -, fetchurl, alsaLib, dbus, expat, libpulseaudio, libuuid, libX11, libxcb -, libXcomposite, libXcursor, libXdamage, libXfixes, libGL, nspr, nss, systemd }: +{ channel +, pname +, version +, sha256Hash +, patches +, dart +, filename ? "flutter_linux_${version}-${channel}.tar.xz" +}: +{ bash +, buildFHSUserEnv +, cacert +, coreutils +, git +, makeWrapper +, runCommand +, stdenv +, fetchurl +, alsaLib +, dbus +, expat +, libpulseaudio +, libuuid +, libX11 +, libxcb +, libXcomposite +, libXcursor +, libXdamage +, libXfixes +, libGL +, nspr +, nss +, systemd +}: let drvName = "flutter-${channel}-${version}"; flutter = stdenv.mkDerivation { @@ -100,7 +127,9 @@ let ]; }; -in runCommand drvName { +in +runCommand drvName +{ startScript = '' #!${bash}/bin/bash export PUB_CACHE=''${PUB_CACHE:-"$HOME/.pub-cache"} From bbbe322b1aa93bbd00562b535d25ab52aae6b4ae Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Wed, 6 Jan 2021 17:43:33 -0300 Subject: [PATCH 2/2] flutter: refactor and reduce derivation size 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 --- .../development/compilers/flutter/flutter.nix | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/pkgs/development/compilers/flutter/flutter.nix b/pkgs/development/compilers/flutter/flutter.nix index ddc346bf936..b7769e88af3 100644 --- a/pkgs/development/compilers/flutter/flutter.nix +++ b/pkgs/development/compilers/flutter/flutter.nix @@ -12,7 +12,6 @@ , cacert , coreutils , git -, makeWrapper , runCommand , stdenv , fetchurl @@ -43,7 +42,7 @@ let sha256 = sha256Hash; }; - buildInputs = [ makeWrapper git ]; + buildInputs = [ git ]; inherit patches; @@ -58,28 +57,27 @@ let SNAPSHOT_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.snapshot" STAMP_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.stamp" SCRIPT_PATH="$FLUTTER_TOOLS_DIR/bin/flutter_tools.dart" - DART_SDK_PATH="$FLUTTER_ROOT/bin/cache/dart-sdk" - - DART="$DART_SDK_PATH/bin/dart" - PUB="$DART_SDK_PATH/bin/pub" + DART_SDK_PATH="${dart}" HOME=../.. # required for pub upgrade --offline, ~/.pub-cache # path is relative otherwise it's replaced by /build/flutter - (cd "$FLUTTER_TOOLS_DIR" && "$PUB" upgrade --offline) + (cd "$FLUTTER_TOOLS_DIR" && ${dart}/bin/pub upgrade --offline) local revision="$(cd "$FLUTTER_ROOT"; git rev-parse HEAD)" - "$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 -n "${version}" > version - rm -rf bin/cache/{artifacts,downloads} + rm -rf bin/cache/{artifacts,dart-sdk,downloads} rm -f bin/cache/*.stamp ''; installPhase = '' mkdir -p $out cp -r . $out + mkdir -p $out/bin/cache/ + ln -sf ${dart} $out/bin/cache/dart-sdk ''; }; @@ -155,8 +153,4 @@ runCommand drvName echo -n "$startScript" > $out/bin/${pname} chmod +x $out/bin/${pname} - - mkdir -p $out/bin/cache/dart-sdk/ - cp -r ${dart}/* $out/bin/cache/dart-sdk/ - ln $out/bin/cache/dart-sdk/bin/dart $out/bin/dart ''