Merge pull request #311815 from ExpidusOS/feat/flutter-3.22.0

flutter: 3.19.4 -> 3.22.0
This commit is contained in:
Raghav Sood 2024-05-20 00:58:20 +08:00 committed by GitHub
commit 6c0b7a92c3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 1078 additions and 6 deletions

View File

@ -1,6 +1,6 @@
{ lib
, fetchFromGitHub
, flutter
, flutterPackages
, corrosion
, rustPlatform
, cargo
@ -9,7 +9,7 @@
, copyDesktopItems
, makeDesktopItem
}:
flutter.buildFlutterApplication rec {
flutterPackages.v3_19.buildFlutterApplication rec {
pname = "intiface-central";
version = "2.5.6";
src = fetchFromGitHub {

View File

@ -1,5 +1,10 @@
{ callPackage }:
{ callPackage, flutterPackages }:
{
calculator = callPackage ./calculator {};
file-manager = callPackage ./file-manager {};
calculator = callPackage ./calculator {
flutter = flutterPackages.v3_19;
};
file-manager = callPackage ./file-manager {
flutter = flutterPackages.v3_19;
};
}

View File

@ -141,7 +141,9 @@ let
homepage = "https://flutter.dev";
license = licenses.bsd3;
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
maintainers = with maintainers; [ babariviere ericdallo FlafyDev hacker1024 ];
maintainers = teams.flutter.members ++ (with maintainers; [
babariviere ericdallo
]);
};
};
in

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
diff --git a/bin/internal/shared.sh b/bin/internal/shared.sh
index 75d9d3013e..657ad3cb78 100644
--- a/bin/internal/shared.sh
+++ b/bin/internal/shared.sh
@@ -245,7 +245,7 @@ function shared::execute() {
# and will corrupt each others' downloads.
#
# SHARED_NAME itself is prepared by the caller script.
- upgrade_flutter 7< "$SHARED_NAME"
+ # upgrade_flutter 7< "$SHARED_NAME"
BIN_NAME="$(basename "$PROG_NAME")"
case "$BIN_NAME" in

View File

@ -0,0 +1,44 @@
This patch introduces an intermediate Gradle build step to alter the behavior
of flutter_tools' Gradle project, specifically moving the creation of `build`
and `.gradle` directories from within the Nix Store to somewhere in `$HOME/.cache/flutter/nix-flutter-tools-gradle/$engineShortRev`.
Without this patch, flutter_tools' Gradle project tries to generate `build` and `.gradle`
directories within the Nix Store. Resulting in read-only errors when trying to build a
Flutter Android app at runtime.
This patch takes advantage of the fact settings.gradle takes priority over settings.gradle.kts to build the intermediate Gradle project
when a Flutter app runs `includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle")`
`rootProject.buildFileName = "/dev/null"` so that the intermediate project doesn't use `build.gradle.kts` that's in the same directory.
The intermediate project makes a `settings.gradle` file in `$HOME/.cache/flutter/nix-flutter-tools-gradle/<short engine rev>/` and `includeBuild`s it.
This Gradle project will build the actual `packages/flutter_tools/gradle` project by setting
`rootProject.projectDir = new File("$settingsDir")` and `apply from: new File("$settingsDir/settings.gradle.kts")`.
Now the `.gradle` will be built in `$HOME/.cache/flutter/nix-flutter-tools-gradle/<short engine rev>/`, but `build` doesn't.
To move `build` to `$HOME/.cache/flutter/nix-flutter-tools-gradle/<short engine rev>/` as well, we need to set `buildDirectory`.
diff --git a/packages/flutter_tools/gradle/settings.gradle b/packages/flutter_tools/gradle/settings.gradle
new file mode 100644
index 0000000000..b2485c94b4
--- /dev/null
+++ b/packages/flutter_tools/gradle/settings.gradle
@@ -0,0 +1,19 @@
+rootProject.buildFileName = "/dev/null"
+
+def engineShortRev = (new File("$settingsDir/../../../bin/internal/engine.version")).text.take(10)
+def dir = new File("$System.env.HOME/.cache/flutter/nix-flutter-tools-gradle/$engineShortRev")
+dir.mkdirs()
+def file = new File(dir, "settings.gradle")
+
+file.text = """
+rootProject.projectDir = new File("$settingsDir")
+apply from: new File("$settingsDir/settings.gradle.kts")
+
+gradle.allprojects { project ->
+ project.beforeEvaluate {
+ project.layout.buildDirectory = new File("$dir/build")
+ }
+}
+"""
+
+includeBuild(dir)

View File

@ -15434,6 +15434,7 @@ with pkgs;
flutterPackages = recurseIntoAttrs (callPackage ../development/compilers/flutter { });
flutter = flutterPackages.stable;
flutter322 = flutterPackages.v3_22;
flutter319 = flutterPackages.v3_19;
flutter316 = flutterPackages.v3_16;
flutter313 = flutterPackages.v3_13;