Fix non-local-engine Linux release builds (#58372)

diff --git a/packages/flutter_tools/lib/src/build_system/targets/linux.dart b/packages/flutter_tools/lib/src/build_system/targets/linux.dart
index 00a03c4..9963f50 100644
--- a/packages/flutter_tools/lib/src/build_system/targets/linux.dart
+++ b/packages/flutter_tools/lib/src/build_system/targets/linux.dart
@@ -23,8 +23,6 @@
   'flutter_glfw.h',
   // GTK. Not yet used by the template.
   'libflutter_linux_gtk.so',
-  // Shared.
-  'icudtl.dat',
 ];
 
 const String _kLinuxDepfile = 'linux_engine_sources.d';
@@ -86,6 +84,10 @@
       outputDirectory: outputDirectory,
       artifacts: _kLinuxArtifacts,
       clientSourcePaths: <String>[clientSourcePath, headersPath],
+      icuDataPath: environment.artifacts.getArtifactPath(
+        Artifact.icuData,
+        platform: TargetPlatform.linux_x64,
+      )
     );
     final DepfileService depfileService = DepfileService(
       fileSystem: environment.fileSystem,
diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
index 28392d0..093a1d1 100644
--- a/packages/flutter_tools/lib/src/cache.dart
+++ b/packages/flutter_tools/lib/src/cache.dart
@@ -1392,7 +1392,11 @@
 const List<List<String>> _linuxDesktopBinaryDirs = <List<String>>[
   <String>['linux-x64', 'linux-x64/linux-x64-flutter-glfw.zip'],
   <String>['linux-x64', 'linux-x64/flutter-cpp-client-wrapper-glfw.zip'],
+  <String>['linux-x64-profile', 'linux-x64-profile/linux-x64-flutter-glfw.zip'],
+  <String>['linux-x64-release', 'linux-x64-release/linux-x64-flutter-glfw.zip'],
   <String>['linux-x64', 'linux-x64/linux-x64-flutter-gtk.zip'],
+  <String>['linux-x64-profile', 'linux-x64-profile/linux-x64-flutter-gtk.zip'],
+  <String>['linux-x64-release', 'linux-x64-release/linux-x64-flutter-gtk.zip'],
 ];
 
 const List<List<String>> _macOSDesktopBinaryDirs = <List<String>>[
diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/linux_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/linux_test.dart
index 9daba1f..cddbcf3 100644
--- a/packages/flutter_tools/test/general.shard/build_system/targets/linux_test.dart
+++ b/packages/flutter_tools/test/general.shard/build_system/targets/linux_test.dart
@@ -36,6 +36,11 @@
       mode: anyNamed('mode'),
       platform: anyNamed('platform'),
     )).thenReturn('linux-x64/flutter_linux');
+    when(mockArtifacts.getArtifactPath(
+      Artifact.icuData,
+      mode: anyNamed('mode'),
+      platform: anyNamed('platform'),
+    )).thenReturn(r'linux-x64/icudtl.dat');
 
     final Environment testEnvironment = Environment.test(
       fileSystem.currentDirectory,
diff --git a/packages/flutter_tools/test/general.shard/cache_test.dart b/packages/flutter_tools/test/general.shard/cache_test.dart
index f497894..3a584b6 100644
--- a/packages/flutter_tools/test/general.shard/cache_test.dart
+++ b/packages/flutter_tools/test/general.shard/cache_test.dart
@@ -611,6 +611,19 @@
 
     expect(artifacts.getBinaryDirs(), isNotEmpty);
   });
+
+  testWithoutContext('Linux desktop artifacts include profile and release artifacts', () {
+    final MockCache mockCache = MockCache();
+    final LinuxEngineArtifacts artifacts = LinuxEngineArtifacts(
+      mockCache,
+      platform: FakePlatform(operatingSystem: 'linux'),
+    );
+
+    expect(artifacts.getBinaryDirs(), containsAll(<Matcher>[
+      contains(contains('profile')),
+      contains(contains('release')),
+    ]));
+  });
 }
 
 class FakeCachedArtifact extends EngineCachedArtifact {