From 2572634a6d50fdd1aafbd4f98c3553a08ec3f011 Mon Sep 17 00:00:00 2001 From: Tristan Ross Date: Tue, 25 Jun 2024 21:51:13 -0700 Subject: [PATCH 1/2] flutter.engine: fix swiftshader size --- .../compilers/flutter/engine/default.nix | 1 + .../compilers/flutter/engine/package.nix | 17 +++++++++++++---- .../update/get-engine-swiftshader.nix.in | 5 +++++ .../compilers/flutter/versions/3_13/data.json | 2 +- .../compilers/flutter/versions/3_16/data.json | 2 +- .../compilers/flutter/versions/3_19/data.json | 2 +- .../compilers/flutter/versions/3_22/data.json | 2 +- .../compilers/flutter/versions/3_23/data.json | 2 +- 8 files changed, 24 insertions(+), 9 deletions(-) diff --git a/pkgs/development/compilers/flutter/engine/default.nix b/pkgs/development/compilers/flutter/engine/default.nix index 4aac2301f866..7bf59dc85719 100644 --- a/pkgs/development/compilers/flutter/engine/default.nix +++ b/pkgs/development/compilers/flutter/engine/default.nix @@ -51,6 +51,7 @@ stdenv.mkDerivation ( runtimeMode outName dart + swiftshader ; inherit altRuntimeMode; diff --git a/pkgs/development/compilers/flutter/engine/package.nix b/pkgs/development/compilers/flutter/engine/package.nix index 7c2cd5cec220..09133fea5fa9 100644 --- a/pkgs/development/compilers/flutter/engine/package.nix +++ b/pkgs/development/compilers/flutter/engine/package.nix @@ -15,6 +15,7 @@ fetchgit, runCommand, llvmPackages, + llvmPackages_15, patchelf, openbox, xorg, @@ -67,6 +68,10 @@ let url = "https://swiftshader.googlesource.com/SwiftShader.git"; hash = swiftshaderHash; rev = swiftshaderRev; + + postFetch = '' + rm -rf $out/third_party/llvm-project + ''; }; llvm = symlinkJoin { @@ -178,7 +183,14 @@ stdenv.mkDerivation (finalAttrs: { postUnpack = '' pushd ${src.name} - ln -s $swiftshader src/flutter/third_party/swiftshader + cp -pr --reflink=auto $swiftshader src/flutter/third_party/swiftshader + chmod -R u+w -- src/flutter/third_party/swiftshader + + ln -s ${llvmPackages_15.llvm.monorepoSrc} src/flutter/third_party/swiftshader/third_party/llvm-project + + mkdir -p src/flutter/buildtools/${constants.alt-platform} + ln -s ${llvm} src/flutter/buildtools/${constants.alt-platform}/clang + ln -s ${dart} src/third_party/dart/tools/sdks/dart-sdk ${lib.optionalString (stdenv.isLinux) '' for patchtool in ''${patchtools[@]}; do @@ -198,9 +210,6 @@ stdenv.mkDerivation (finalAttrs: { popd done - mkdir -p src/flutter/buildtools/${constants.alt-platform} - ln -s ${llvm} src/flutter/buildtools/${constants.alt-platform}/clang - dart src/third_party/dart/tools/generate_package_config.dart cp ${./pkg-config.py} src/build/config/linux/pkg-config.py echo "${dartSdkVersion}" >src/third_party/dart/sdk/version diff --git a/pkgs/development/compilers/flutter/update/get-engine-swiftshader.nix.in b/pkgs/development/compilers/flutter/update/get-engine-swiftshader.nix.in index 2dffbe950b86..aa71f8ae2ad3 100644 --- a/pkgs/development/compilers/flutter/update/get-engine-swiftshader.nix.in +++ b/pkgs/development/compilers/flutter/update/get-engine-swiftshader.nix.in @@ -2,4 +2,9 @@ fetchgit { url = "https://swiftshader.googlesource.com/SwiftShader.git"; rev = "@engine_swiftshader_rev@"; + + # Keep with in sync of pkgs/development/compilers/flutter/engine/package.nix + postFetch = '' + rm -rf $out/third_party/llvm-project + ''; } diff --git a/pkgs/development/compilers/flutter/versions/3_13/data.json b/pkgs/development/compilers/flutter/versions/3_13/data.json index 9bd8b818bf46..1b61347b30f1 100644 --- a/pkgs/development/compilers/flutter/versions/3_13/data.json +++ b/pkgs/development/compilers/flutter/versions/3_13/data.json @@ -1,7 +1,7 @@ { "version": "3.13.8", "engineVersion": "767d8c75e898091b925519803830fc2721658d07", - "engineSwiftShaderHash": "sha256-N6f5aeDroqEwZlUBZi7nhDW8leE/7DqmOtRYOY4wzf4=", + "engineSwiftShaderHash": "sha256-qKf5gXIpI4+05bs7d3W6JlMNTn3vHFQL+i3JpFdyPao=", "engineSwiftShaderRev": "5f9ed9b16931c7155171d31f75004f73f0a3abc8", "channel": "stable", "engineHashes": { diff --git a/pkgs/development/compilers/flutter/versions/3_16/data.json b/pkgs/development/compilers/flutter/versions/3_16/data.json index 08cbdff5bc77..4c9142a149e9 100644 --- a/pkgs/development/compilers/flutter/versions/3_16/data.json +++ b/pkgs/development/compilers/flutter/versions/3_16/data.json @@ -1,7 +1,7 @@ { "version": "3.16.7", "engineVersion": "4a585b79294e830fa89c24924d58a27cc8fbf406", - "engineSwiftShaderHash": "sha256-N6f5aeDroqEwZlUBZi7nhDW8leE/7DqmOtRYOY4wzf4=", + "engineSwiftShaderHash": "sha256-qKf5gXIpI4+05bs7d3W6JlMNTn3vHFQL+i3JpFdyPao=", "engineSwiftShaderRev": "5f9ed9b16931c7155171d31f75004f73f0a3abc8", "channel": "stable", "engineHashes": { diff --git a/pkgs/development/compilers/flutter/versions/3_19/data.json b/pkgs/development/compilers/flutter/versions/3_19/data.json index 491447493db9..a05e0172ca44 100644 --- a/pkgs/development/compilers/flutter/versions/3_19/data.json +++ b/pkgs/development/compilers/flutter/versions/3_19/data.json @@ -1,7 +1,7 @@ { "version": "3.19.4", "engineVersion": "a5c24f538d05aaf66f7972fb23959d8cafb9f95a", - "engineSwiftShaderHash": "sha256-J8TKwbIQ7hdWCGIu1T//MJlRzT7OTVL0MG/dmMyutPQ=", + "engineSwiftShaderHash": "sha256-mRLCvhNkmHz7Rv6GzXkY7OB1opBSq+ATWZ466qZdgto=", "engineSwiftShaderRev": "2fa7e9b99ae4e70ea5ae2cc9c8d3afb43391384f", "channel": "stable", "engineHashes": { diff --git a/pkgs/development/compilers/flutter/versions/3_22/data.json b/pkgs/development/compilers/flutter/versions/3_22/data.json index 140b22bbcb1c..2abe37d9dac0 100644 --- a/pkgs/development/compilers/flutter/versions/3_22/data.json +++ b/pkgs/development/compilers/flutter/versions/3_22/data.json @@ -1,7 +1,7 @@ { "version": "3.22.2", "engineVersion": "edd8546116457bdf1c5bdfb13ecb9463d2bb5ed4", - "engineSwiftShaderHash": "sha256-J8TKwbIQ7hdWCGIu1T//MJlRzT7OTVL0MG/dmMyutPQ=", + "engineSwiftShaderHash": "sha256-mRLCvhNkmHz7Rv6GzXkY7OB1opBSq+ATWZ466qZdgto=", "engineSwiftShaderRev": "2fa7e9b99ae4e70ea5ae2cc9c8d3afb43391384f", "channel": "stable", "engineHashes": { diff --git a/pkgs/development/compilers/flutter/versions/3_23/data.json b/pkgs/development/compilers/flutter/versions/3_23/data.json index a4087fea903e..82233ea5112c 100644 --- a/pkgs/development/compilers/flutter/versions/3_23/data.json +++ b/pkgs/development/compilers/flutter/versions/3_23/data.json @@ -1,7 +1,7 @@ { "version": "3.23.0-0.1.pre", "engineVersion": "bb10c5466638e963479ba5e64e601e42d1a43447", - "engineSwiftShaderHash": "sha256-J8TKwbIQ7hdWCGIu1T//MJlRzT7OTVL0MG/dmMyutPQ=", + "engineSwiftShaderHash": "sha256-mRLCvhNkmHz7Rv6GzXkY7OB1opBSq+ATWZ466qZdgto=", "engineSwiftShaderRev": "2fa7e9b99ae4e70ea5ae2cc9c8d3afb43391384f", "channel": "beta", "engineHashes": { From 46a0243923a19886b8e5515c24d8007497273260 Mon Sep 17 00:00:00 2001 From: Tristan Ross Date: Tue, 25 Jun 2024 22:15:45 -0700 Subject: [PATCH 2/2] flutterPackages-source.v3_23.engine: fix building --- .../compilers/flutter/engine/package.nix | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/pkgs/development/compilers/flutter/engine/package.nix b/pkgs/development/compilers/flutter/engine/package.nix index 09133fea5fa9..a87088dc8131 100644 --- a/pkgs/development/compilers/flutter/engine/package.nix +++ b/pkgs/development/compilers/flutter/engine/package.nix @@ -83,6 +83,8 @@ let }; outName = "host_${runtimeMode}${lib.optionalString (!isOptimized) "_unopt --unoptimized"}"; + + dartPath = "${if (lib.versionAtLeast flutterVersion "3.23") then "flutter/third_party" else "third_party"}/dart"; in stdenv.mkDerivation (finalAttrs: { pname = "flutter-engine-${runtimeMode}${lib.optionalString (!isOptimized) "-unopt"}"; @@ -168,14 +170,14 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ gtk3 ]; patchtools = [ - "third_party/dart/tools/sdks/dart-sdk/bin/dart" + "${dartPath}/tools/sdks/dart-sdk/bin/dart" "flutter/third_party/gn/gn" ]; dontPatch = true; patchgit = [ - "third_party/dart" + dartPath "flutter" "." ] ++ lib.optional (lib.versionAtLeast flutterVersion "3.21") "flutter/third_party/skia"; @@ -183,6 +185,8 @@ stdenv.mkDerivation (finalAttrs: { postUnpack = '' pushd ${src.name} + cp ${./pkg-config.py} src/build/config/linux/pkg-config.py + cp -pr --reflink=auto $swiftshader src/flutter/third_party/swiftshader chmod -R u+w -- src/flutter/third_party/swiftshader @@ -190,7 +194,8 @@ stdenv.mkDerivation (finalAttrs: { mkdir -p src/flutter/buildtools/${constants.alt-platform} ln -s ${llvm} src/flutter/buildtools/${constants.alt-platform}/clang - ln -s ${dart} src/third_party/dart/tools/sdks/dart-sdk + + ln -s ${dart} src/${dartPath}/tools/sdks/dart-sdk ${lib.optionalString (stdenv.isLinux) '' for patchtool in ''${patchtools[@]}; do @@ -210,9 +215,8 @@ stdenv.mkDerivation (finalAttrs: { popd done - dart src/third_party/dart/tools/generate_package_config.dart - cp ${./pkg-config.py} src/build/config/linux/pkg-config.py - echo "${dartSdkVersion}" >src/third_party/dart/sdk/version + dart src/${dartPath}/tools/generate_package_config.dart + echo "${dartSdkVersion}" >src/${dartPath}/sdk/version rm -rf src/third_party/angle/.git python3 src/flutter/tools/pub_get_offline.py