diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix index 95758fb56ab0..0ca377d7f584 100644 --- a/pkgs/development/compilers/flutter/default.nix +++ b/pkgs/development/compilers/flutter/default.nix @@ -74,20 +74,20 @@ in { inherit wrapFlutter; stable = mkFlutter { - version = "3.10.5"; - engineVersion = "45f6e009110df4f34ec2cf99f63cf73b71b7a420"; - dartVersion = "3.0.5"; + version = "3.13.0"; + engineVersion = "1ac611c64eadbd93c5f5aba5494b8fc3b35ee952"; + dartVersion = "3.1.0"; dartHash = { - x86_64-linux = "sha256-UVVwPFk0qsKNR4JZMOGSGh1T482MN/8Xp4MZ3SA3C28="; - aarch64-linux = "sha256-phzaFfrv7qbZOOhPq92q39R6mr5vFeBqEmYDU7e7lZQ="; - x86_64-darwin = "sha256-4gJ659bNzs2lfI1LRwFACgu/ttkj+3xIrqLijju+CaI="; - aarch64-darwin = "sha256-RJt+muq5IrcAhVLYEgdbVygcY1oB7tnVCN+iqktC+6c="; + x86_64-linux = "sha256-sGpRyuUTkZ0cpG/O21NCHaOsQRjNklsl9G6Ia1tZxAw="; + aarch64-linux = "sha256-wcDtL/Lh0NFC01QlnKwx8ovTHZ5ww+rb1sELn92R1uU="; + x86_64-darwin = "sha256-h+e7ABlLWCxc6wrbjiy5lgp6O/DnNKdXFNJtgnXBZNA="; + aarch64-darwin = "sha256-sAWnd09mbcRLP0WjSjjWF7+WQ7LP3tWsq5Kqw8e4APg="; }; flutterHash = rec { - x86_64-linux = "sha256-lLppUQzu+fl81TMYSPD+HA83BqeIg7bXpURyo49NPwI="; + x86_64-linux = "sha256-gXNQ9RuHVC/3puHNygWPRdezx8iiKmiOnxQmoX6XUFo="; aarch64-linux = x86_64-linux; - x86_64-darwin = "sha256-1ZC5aCoGVBCeTSsu/ZEl1v53lLnzulx8Ya6YXvo4yIY="; - aarch64-darwin = "sha256-TCMempLjO47IbP5MAZVHlXXvNaURGo+EbaL0K8e27wU="; + x86_64-darwin = "sha256-vI8TsXIfTg4PYf5dzxDaJt+PIdmVFBmd2slKK7c1By0="; + aarch64-darwin = "sha256-VhGJlp+HG8QLZx8u0xK+cgbneoDM7zhNvm3Oco4nBms="; }; patches = flutter3Patches; }; diff --git a/pkgs/development/compilers/flutter/engine-artifacts/hashes.nix b/pkgs/development/compilers/flutter/engine-artifacts/hashes.nix index 1c8a5dc4059f..1e35b2cfb2ce 100644 --- a/pkgs/development/compilers/flutter/engine-artifacts/hashes.nix +++ b/pkgs/development/compilers/flutter/engine-artifacts/hashes.nix @@ -229,4 +229,121 @@ "linux-x64-flutter-gtk.zip" = "sha256-eluXkoISuzObXt2aiBmZGW6x8MsPTiD9bbVM4xcpe2w="; }; }; + + "1ac611c64eadbd93c5f5aba5494b8fc3b35ee952" = { + skyNotice = "sha256-bJMktK26wC9fVzdhLNcTHqOg5sHRZ535LB5u5dgwjlY="; + flutterNotice = "sha256-pZjblLYpD/vhC17PkRBXtqlDNRxyf92p5fKJHWhwCiA="; + android-arm = { + "artifacts.zip" = "sha256-rAWcm/vjJ7P9q69z0bZNhBv/NO+sGhFJe+r/BHPR1To="; + }; + android-arm-profile = { + "artifacts.zip" = "sha256-08+LDA7qNcMFH4xk+WfAXYqIDueCSHNmD/i/XaDeTrA="; + "linux-x64.zip" = "sha256-LWdrWdSGDAfX0gGtqQ2mSschBW3EAgaBldL/Cw99ft8="; + "darwin-x64.zip" = "sha256-FeBLBp3U2BPun/iPpTmHvaj3ZO8l7DQhwArqKN+D1m0="; + }; + android-arm-release = { + "artifacts.zip" = "sha256-VCWSWfL74PJ6F6N18mOHjOkN8oTkL8coDfemV0Pc/Fw="; + "linux-x64.zip" = "sha256-xtQJ9merALKe20LZai+5ApJNOXR3uweIYQFWSyjmBEE="; + "darwin-x64.zip" = "sha256-YuEY7ZQAqpo0wbvI/iK3YYUSguZGi/wSl/DLPzmlNj8="; + }; + android-arm64 = { + "artifacts.zip" = "sha256-z4gvkNofQaFv8tFAXcLepsge9CV1T7cBe3EZRdBT7Ms="; + }; + android-arm64-profile = { + "artifacts.zip" = "sha256-7DHKcgwdaG6+MH7uVqSk2UGxLM4VsHVk5vUtYMn11kQ="; + "linux-x64.zip" = "sha256-3ZahRPzDVBff2pGUjjoIABH1lmwyrx05GnaJNyF4OiY="; + "darwin-x64.zip" = "sha256-Pmil9S314EoWJhfo0nrtBh1VLUeiavKvp/LIPZJoy6U="; + }; + android-arm64-release = { + "artifacts.zip" = "sha256-GI+ADau8sbD9+ctXrciraeXNPGMto2+bBDyJcKt9YTE="; + "linux-x64.zip" = "sha256-riHs2bbOFNH7VqD3snEu5RuKrMqbsuFnDBZ9Apxq/+g="; + "darwin-x64.zip" = "sha256-DwTskXkcNqNsU3I+t9UMvKjxG4O2mN4cUGLB4dSWBHM="; + }; + android-x64 = { + "artifacts.zip" = "sha256-0dkDhr/TJi4ROcN1BV1OsUwWSnZuEHzgM0DKSeUIrnA="; + }; + android-x64-profile = { + "artifacts.zip" = "sha256-2g+GaZHO17/rLa6Y1DHfDEq0Q05NRxQ5ese2Eo5rvNA="; + "linux-x64.zip" = "sha256-O3bHS/UHz8ymXq8ZEutLIj7K8wVTdt7vTo3OLGAkkh8="; + "darwin-x64.zip" = "sha256-vEzg6vxm1CbvVBSAoWwZhAS/bsuDlesmo30zWwK2a7g="; + }; + android-x64-release = { + "artifacts.zip" = "sha256-nlYI2ffULiDrehOSFEZkZoav/RJ0VykwREQkUwNX2/I="; + "linux-x64.zip" = "sha256-iUy8tjpkFd3V/RIVRPbNNEsa/GAXhtLsNAkEOvdKhks="; + "darwin-x64.zip" = "sha256-xZf2f4L/hSJEN63hQqtP0rbXkB2iw/Co4vLXYe/oeI4="; + }; + android-x86 = { + "artifacts.zip" = "sha256-OIB7VnhCasOflVtGFOe1DgCLP4Os82R6H7ucp0Wrez0="; + }; + android-x86-jit-release = { + "artifacts.zip" = "sha256-dyjGkQJu73sOaxKvmIlbS5j0zO78RXHZrJQVi7qpBAU="; + }; + darwin-arm64 = { + "artifacts.zip" = "sha256-Ro+N5e5RhXgfqVDSEvqCKPdXRK1QnYCvIqmtlEW4s8c="; + "font-subset.zip" = "sha256-yCboANBEarWZDtoTwDFbtnlsPW2kPwZ5Jp31V2hbga4="; + }; + darwin-arm64-profile = { + "artifacts.zip" = "sha256-Lf3LLkRhtGNA9cWZwv4Q9MncXzOoVCgmp+6osWRUCE0="; + }; + darwin-arm64-release = { + "artifacts.zip" = "sha256-6BSQ2zodrQmZKkHeaGVVT4D7jNekhwNOul5C6qwLbO8="; + }; + darwin-x64 = { + "FlutterEmbedder.framework.zip" = "sha256-4jYk+aYjOS/CZajS1oVBexg2+C9fy0OmfaI6i3rrhXo="; + "FlutterMacOS.framework.zip" = "sha256-Im7DTFf1zXrG6n1OtM4Jixd992mS2r47GRnAa7/urNc="; + "artifacts.zip" = "sha256-SdnPPnx4NOfOlJU1234977/cVRCa/5KTI/1kqCtTxG0="; + "font-subset.zip" = "sha256-F7qt7X0FNXODb3rvTkXacK3wG/aEVn+ny8DHFL3gEkI="; + "gen_snapshot.zip" = "sha256-czdCi1cPdD/nu0LJIsgUj42O6D5x5xTKfM8l/UiKZqw="; + }; + darwin-x64-profile = { + "FlutterMacOS.framework.zip" = "sha256-gdfoq6jdHFDb2JXCf45qJ2ekTildUptLb/k0XuHYuh8="; + "artifacts.zip" = "sha256-aEoenQh0Q8xuLU6OeFND3GBbOvhMNsovbbFQwQfudm0="; + "gen_snapshot.zip" = "sha256-tY3qmpdF7MP4iEfqgouzLehr901H3QTLxeV28RoLPDY="; + }; + darwin-x64-release = { + "FlutterMacOS.dSYM.zip" = "sha256-dNlx9PsXeJeV6FMPOliRyuc5p58DeEmXus2zP1dOqPs="; + "FlutterMacOS.framework.zip" = "sha256-ibmcuVjd3kswmUvXzZi8vl5uNEbnWvMAwzWYxs8i1zw="; + "artifacts.zip" = "sha256-KCXwR/ZZK1jyLQaIAsb+wAz4awVU1QozydIQt10M30A="; + "gen_snapshot.zip" = "sha256-hZT+IMHbvSTjk2WcNvfPl+vdXZ2vbB/MjiYP1Q+cKD8="; + }; + "flutter_patched_sdk.zip" = "sha256-vm9Zt+obBuYHQchQlqlinGYg9mwmoo41HwqYzy8QXP0="; + "flutter_patched_sdk_product.zip" = "sha256-JjMQ2zEGXKIcyYqYfCxDYlRbwglVMQ8H1zs5h6To1es=" + ; + ios = { + "artifacts.zip" = "sha256-9/GWCsOvwEXVWYMYn48sZTe44GhB2JBJtPDRFUqgTek="; + }; + ios-profile = { + "artifacts.zip" = "sha256-XZ4AFdG60gUx2xv3qZdk8Hh/0ZuIeJXeBxBoWlmhP4I="; + }; + ios-release = { + "Flutter.dSYM.zip" = "sha256-QWCVU518mUHDXDdUm58XfS1TWYNkXI8LnfOIZ0PYLjs="; + "artifacts.zip" = "sha256-tFmIpEogaqCcx4ftVRah3Bw3CeB0dTku0xUMvUVfR00="; + }; + linux-arm64 = { + "artifacts.zip" = "sha256-MFsYOUIYLRINLNOjsDLFX4WPwcW3FTQ7P55/i8xQqcI="; + "font-subset.zip" = "sha256-nIWE1Mep1R1EMS3vS31qdTybhFOCyr7/agPEjlAodOQ="; + }; + linux-arm64-debug = { + "linux-arm64-flutter-gtk.zip" = "sha256-2zYHns8gycYy7VNjXfJdf/yl71VJSDFSIMb6lQ0JuKI="; + }; + linux-arm64-profile = { + "linux-arm64-flutter-gtk.zip" = "sha256-doGUIbTinn5kfw20NZRyph96ZkSa77Vm+y1Z/jBUi/E="; + }; + linux-arm64-release = { + "linux-arm64-flutter-gtk.zip" = "sha256-3zeRvhTZ3nFhOuiacJLTTlPBkyP1u3lh00j3e4jJpXU="; + }; + linux-x64 = { + "artifacts.zip" = "sha256-L8DrlHTLYneYo5yMdgXVZw3YikF0qBKijGVLJZJLTEA="; + "font-subset.zip" = "sha256-KC733fwlRIK6DhjAJopnKdzjaC1JhvJ8nK74x+5DtIE="; + }; + linux-x64-debug = { + "linux-x64-flutter-gtk.zip" = "sha256-5hu5uRB4gOnZyH4zWBj/b2Flz6+5DUK2ytTHWGVfp4A="; + }; + linux-x64-profile = { + "linux-x64-flutter-gtk.zip" = "sha256-gYGBrExyYlIl+nYnCvlGBq13bP0E5bzzM089THEqHBM="; + }; + linux-x64-release = { + "linux-x64-flutter-gtk.zip" = "sha256-Hw/hAMohLko1AMu3sr4Dq5OwvmrBP2PPJcJRVMgy6B4="; + }; + }; } diff --git a/pkgs/development/compilers/flutter/patches/flutter3/disable-auto-update.patch b/pkgs/development/compilers/flutter/patches/flutter3/disable-auto-update.patch index 874619046134..ceaf59b5f535 100644 --- a/pkgs/development/compilers/flutter/patches/flutter3/disable-auto-update.patch +++ b/pkgs/development/compilers/flutter/patches/flutter3/disable-auto-update.patch @@ -1,8 +1,8 @@ diff --git a/bin/internal/shared.sh b/bin/internal/shared.sh -index ab746724e9..1087983c87 100644 +index 3532c23114..25dfcae4c7 100644 --- a/bin/internal/shared.sh +++ b/bin/internal/shared.sh -@@ -215,8 +215,6 @@ function shared::execute() { +@@ -229,8 +229,6 @@ function shared::execute() { exit 1 fi @@ -11,35 +11,11 @@ index ab746724e9..1087983c87 100644 BIN_NAME="$(basename "$PROG_NAME")" case "$BIN_NAME" in flutter*) -diff --git a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart -index 738fef987d..03a152e64f 100644 ---- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart -+++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart -@@ -241,7 +241,6 @@ class FlutterCommandRunner extends CommandRunner { - globals.flutterUsage.suppressAnalytics = true; - } - -- globals.flutterVersion.ensureVersionFile(); - final bool machineFlag = topLevelResults['machine'] as bool? ?? false; - final bool ci = await globals.botDetector.isRunningOnBot; - final bool redirectedCompletion = !globals.stdio.hasTerminal && -@@ -250,10 +249,6 @@ class FlutterCommandRunner extends CommandRunner { - final bool versionCheckFlag = topLevelResults['version-check'] as bool? ?? false; - final bool explicitVersionCheckPassed = topLevelResults.wasParsed('version-check') && versionCheckFlag; - -- if (topLevelResults.command?.name != 'upgrade' && -- (explicitVersionCheckPassed || (versionCheckFlag && !isMachine))) { -- await globals.flutterVersion.checkFlutterVersionFreshness(); -- } - - // See if the user specified a specific device. - globals.deviceManager?.specifiedDeviceId = topLevelResults['device-id'] as String?; - diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart -index dd80b1e46e..8e54517765 100644 +index 13efbde879..467b3a7cbf 100644 --- a/packages/flutter_tools/lib/src/cache.dart +++ b/packages/flutter_tools/lib/src/cache.dart -@@ -668,6 +668,7 @@ +@@ -664,6 +664,7 @@ class Cache { /// Update the cache to contain all `requiredArtifacts`. Future updateAll(Set requiredArtifacts, {bool offline = false}) async { @@ -47,3 +23,27 @@ index dd80b1e46e..8e54517765 100644 if (!_lockEnabled) { return; } +diff --git a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart +index 5d6d78639f..90a4dfa555 100644 +--- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart ++++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart +@@ -297,7 +297,6 @@ class FlutterCommandRunner extends CommandRunner { + globals.flutterUsage.suppressAnalytics = true; + } + +- globals.flutterVersion.ensureVersionFile(); + final bool machineFlag = topLevelResults[FlutterGlobalOptions.kMachineFlag] as bool? ?? false; + final bool ci = await globals.botDetector.isRunningOnBot; + final bool redirectedCompletion = !globals.stdio.hasTerminal && +@@ -306,11 +305,6 @@ class FlutterCommandRunner extends CommandRunner { + final bool versionCheckFlag = topLevelResults[FlutterGlobalOptions.kVersionCheckFlag] as bool? ?? false; + final bool explicitVersionCheckPassed = topLevelResults.wasParsed(FlutterGlobalOptions.kVersionCheckFlag) && versionCheckFlag; + +- if (topLevelResults.command?.name != 'upgrade' && +- (explicitVersionCheckPassed || (versionCheckFlag && !isMachine))) { +- await globals.flutterVersion.checkFlutterVersionFreshness(); +- } +- + // See if the user specified a specific device. + final String? specifiedDeviceId = topLevelResults[FlutterGlobalOptions.kDeviceIdOption] as String?; + if (specifiedDeviceId != null) { diff --git a/pkgs/development/compilers/flutter/patches/flutter3/git-dir.patch b/pkgs/development/compilers/flutter/patches/flutter3/git-dir.patch index 42ad756f8ea4..6e6ae4e6fb98 100644 --- a/pkgs/development/compilers/flutter/patches/flutter3/git-dir.patch +++ b/pkgs/development/compilers/flutter/patches/flutter3/git-dir.patch @@ -1,8 +1,8 @@ diff --git a/dev/bots/prepare_package.dart b/dev/bots/prepare_package.dart -index 8e4cb81340..2c20940423 100644 +index 9f33a22cc3..c46255742c 100644 --- a/dev/bots/prepare_package.dart +++ b/dev/bots/prepare_package.dart -@@ -526,7 +526,7 @@ class ArchiveCreator { +@@ -602,7 +602,7 @@ class ArchiveCreator { Future _runGit(List args, {Directory? workingDirectory}) { return _processRunner.runProcess( @@ -12,10 +12,10 @@ index 8e4cb81340..2c20940423 100644 ); } diff --git a/packages/flutter_tools/lib/src/commands/downgrade.dart b/packages/flutter_tools/lib/src/commands/downgrade.dart -index 666c190067..b6c3761f6f 100644 +index a58b75c009..02da0daeb7 100644 --- a/packages/flutter_tools/lib/src/commands/downgrade.dart +++ b/packages/flutter_tools/lib/src/commands/downgrade.dart -@@ -118,7 +118,7 @@ class DowngradeCommand extends FlutterCommand { +@@ -120,7 +120,7 @@ class DowngradeCommand extends FlutterCommand { // Detect unknown versions. final ProcessUtils processUtils = _processUtils!; final RunResult parseResult = await processUtils.run([ @@ -24,7 +24,7 @@ index 666c190067..b6c3761f6f 100644 ], workingDirectory: workingDirectory); if (parseResult.exitCode != 0) { throwToolExit('Failed to parse version for downgrade:\n${parseResult.stderr}'); -@@ -191,7 +191,7 @@ class DowngradeCommand extends FlutterCommand { +@@ -192,7 +192,7 @@ class DowngradeCommand extends FlutterCommand { continue; } final RunResult parseResult = await _processUtils!.run([ @@ -34,55 +34,37 @@ index 666c190067..b6c3761f6f 100644 if (parseResult.exitCode == 0) { buffer.writeln('Channel "${getNameForChannel(channel)}" was previously on: ${parseResult.stdout}.'); diff --git a/packages/flutter_tools/lib/src/version.dart b/packages/flutter_tools/lib/src/version.dart -index dc47f17057..8068e2d1f5 100644 +index 0702b35e7e..36b2a95b65 100644 --- a/packages/flutter_tools/lib/src/version.dart +++ b/packages/flutter_tools/lib/src/version.dart -@@ -111,7 +111,7 @@ class FlutterVersion { - String? channel = _channel; - if (channel == null) { +@@ -407,7 +407,7 @@ abstract class FlutterVersion { + /// wrapper that does that. + @visibleForTesting + static List gitLog(List args) { +- return ['git', '-c', 'log.showSignature=false', 'log'] + args; ++ return ['git', '--git-dir','.git', '-c', 'log.showSignature=false', 'log'] + args; + } + } + +@@ -559,7 +559,7 @@ class _FlutterVersionGit extends FlutterVersion { + String? get repositoryUrl { + if (_repositoryUrl == null) { final String gitChannel = _runGit( - 'git rev-parse --abbrev-ref --symbolic $kGitTrackingUpstream', + 'git --git-dir .git rev-parse --abbrev-ref --symbolic $kGitTrackingUpstream', globals.processUtils, - _workingDirectory, + flutterRoot, ); -@@ -119,7 +119,7 @@ class FlutterVersion { +@@ -567,7 +567,7 @@ class _FlutterVersionGit extends FlutterVersion { if (slash != -1) { final String remote = gitChannel.substring(0, slash); _repositoryUrl = _runGit( - 'git ls-remote --get-url $remote', + 'git --git-dir .git ls-remote --get-url $remote', globals.processUtils, - _workingDirectory, + flutterRoot, ); -@@ -298,7 +298,7 @@ class FlutterVersion { - /// the branch name will be returned as `'[user-branch]'`. - String getBranchName({ bool redactUnknownBranches = false }) { - _branch ??= () { -- final String branch = _runGit('git rev-parse --abbrev-ref HEAD', globals.processUtils); -+ final String branch = _runGit('git --git-dir .git rev-parse --abbrev-ref HEAD', globals.processUtils); - return branch == 'HEAD' ? channel : branch; - }(); - if (redactUnknownBranches || _branch!.isEmpty) { -@@ -331,7 +331,7 @@ class FlutterVersion { - /// wrapper that does that. - @visibleForTesting - static List gitLog(List args) { -- return ['git', '-c', 'log.showSignature=false', 'log'] + args; -+ return ['git', '-c', 'log.showSignature=false', '--git-dir', '.git', 'log'] + args; - } - - /// Gets the release date of the latest available Flutter version. -@@ -708,7 +708,7 @@ class GitTagVersion { - String gitRef = 'HEAD' - }) { - if (fetchTags) { -- final String channel = _runGit('git rev-parse --abbrev-ref HEAD', processUtils, workingDirectory); -+ final String channel = _runGit('git --git-dir .git rev-parse --abbrev-ref HEAD', processUtils, workingDirectory); - if (channel == 'dev' || channel == 'beta' || channel == 'stable') { - globals.printTrace('Skipping request to fetchTags - on well known channel $channel.'); - } else { -@@ -718,7 +718,7 @@ class GitTagVersion { +@@ -952,7 +952,7 @@ class GitTagVersion { } // find all tags attached to the given [gitRef] final List tags = _runGit( @@ -91,7 +73,7 @@ index dc47f17057..8068e2d1f5 100644 // Check first for a stable tag final RegExp stableTagPattern = RegExp(r'^\d+\.\d+\.\d+$'); -@@ -739,7 +739,7 @@ class GitTagVersion { +@@ -973,7 +973,7 @@ class GitTagVersion { // recent tag and number of commits past. return parse( _runGit(