diff options
author | hacker1024 <hacker1024@users.sourceforge.net> | 2023-04-14 01:49:09 +1000 |
---|---|---|
committer | hacker1024 <hacker1024@users.sourceforge.net> | 2023-04-14 01:49:09 +1000 |
commit | f7e3c19cc8b34f17bd822bf328687b913c1534ad (patch) | |
tree | 7ce86720e1a59ddef267c9035bb5474d63ecf567 /pkgs/build-support/flutter | |
parent | 8f9aa6b18befaa6bd6f5cb1a328a9528bc4bd761 (diff) |
flutter.mkFlutterApp: Don't vendor arbitrary configuration files
Diffstat (limited to 'pkgs/build-support/flutter')
-rw-r--r-- | pkgs/build-support/flutter/default.nix | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/pkgs/build-support/flutter/default.nix b/pkgs/build-support/flutter/default.nix index 379953b6dfc92..d63be4d061a4a 100644 --- a/pkgs/build-support/flutter/default.nix +++ b/pkgs/build-support/flutter/default.nix @@ -86,7 +86,8 @@ let # Build a reproducible tar, per instructions at https://reproducible-builds.org/docs/archives/ tar --owner=0 --group=0 --numeric-owner --format=gnu \ --sort=name --mtime="@$SOURCE_DATE_EPOCH" \ - -czf "$out" -C "$RES" . + -czf "$out" -C "$RES" \ + pubspec.yaml pubspec.lock f .pub-cache ''; GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; @@ -120,35 +121,32 @@ let # for some reason fluffychat build breaks without this - seems file gets overriden by some tool cp pubspec.yaml pubspec-backup - # we get this from $depsFolder so disabled for now, but we might need it again once deps are fetched properly - # flutter config --no-analytics >/dev/null 2>/dev/null # mute first-run - # flutter config --enable-linux-desktop + TMP=$(mktemp -d) + export HOME="$TMP" + + flutter config --no-analytics &>/dev/null # mute first-run + flutter config --enable-linux-desktop # extract deps - depsFolder=$(mktemp -d) - tar xzf "$deps" -C "$depsFolder" + tar xzf "$deps" -C "$HOME" # after extracting update paths to point to real paths - find "$depsFolder" -type f -exec sed -i \ - -e s,${placeholder_deps},$depsFolder,g \ + find "$HOME" -type f -exec sed -i \ + -e s,${placeholder_deps},"$HOME",g \ -e s,${placeholder_flutter},${flutter},g \ {} + # ensure we're using a lockfile for the right package version if [ -e pubspec.lock ]; then # FIXME: currently this is broken. in theory this should not break, but flutter has it's own way of doing things. - # diff -u pubspec.lock $depsFolder/pubspec.lock + # diff -u pubspec.lock "$HOME/pubspec.lock" true else - cp -v "$depsFolder/pubspec.lock" . + cp -v "$HOME/pubspec.lock" . fi - diff -u pubspec.yaml $depsFolder/pubspec.yaml - - mv -v $(find $depsFolder/f -type f) . - - # prepare - export HOME="$depsFolder" + diff -u pubspec.yaml "$HOME/pubspec.yaml" + mv -v $(find "$HOME/f" -type f) . runHook postConfigure ''; |