flutter: Remove the FHS wrapper

Now that Flutter artifacts are patched, there is no need for a FHS at runtime or any stage of the build process.

Those relying on it for the Android SDK should look at https://github.com/tadfisher/android-nixpkgs.
This commit is contained in:
hacker1024 2023-04-13 16:37:12 +10:00
parent 9e33e35589
commit e552959395
3 changed files with 3 additions and 89 deletions

View File

@ -2,7 +2,6 @@
let
mkFlutter = { version, patches, dart, src }: callPackage ./flutter.nix { inherit version patches dart src; };
wrapFlutter = flutter: callPackage ./wrapper.nix { inherit flutter; };
mkFlutterFHS = flutter: callPackage ./fhs.nix { inherit flutter; };
getPatches = dir:
let files = builtins.attrNames (builtins.readDir dir);
in map (f: dir + ("/" + f)) files;
@ -28,7 +27,7 @@ let
};
in
{
inherit mkFlutter wrapFlutter mkFlutterFHS flutterDrv;
inherit mkFlutter wrapFlutter flutterDrv;
stable = flutterDrv {
version = "3.3.3";
dartVersion = "2.18.2";

View File

@ -1,83 +0,0 @@
{ lib
, stdenv
, callPackage
, flutter
, buildFHSUserEnv
, runCommandLocal
, supportsAndroidEmulator ? stdenv.isLinux
}:
# Wrap flutter inside an fhs user env to allow execution of binary,
# like adb from $ANDROID_HOME or java from android-studio.
(callPackage ./sdk-symlink.nix { }) (buildFHSUserEnv rec {
name = "${flutter.name}-fhs";
multiPkgs = pkgs: with pkgs; ([
# Flutter only use these certificates
(runCommandLocal "fedoracert" { } ''
mkdir -p $out/etc/pki/tls/
ln -s ${cacert}/etc/ssl/certs $out/etc/pki/tls/certs
'')
zlib
]);
targetPkgs = pkgs: with pkgs; ([
flutter
# General ecosystem dependencies
bash
curl
git
unzip
which
xz
# flutter test requires this lib
libGLU
] ++ lib.optional supportsAndroidEmulator [
# for android emulator
alsa-lib
dbus
expat
libpulseaudio
libuuid
xorg.libX11
xorg.libxcb
xorg.libXcomposite
xorg.libXcursor
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXi
xorg.libXrender
xorg.libXtst
libGL
nspr
nss
systemd
]);
runScript = "flutter";
extraInstallCommands = ''
# By default, the derivation name is used as the binary name.
# This is not the desired behaviour in this case.
# https://github.com/NixOS/nixpkgs/blob/cb4536bf3606a7b6b54b69afe22ccd82e2906d92/pkgs/build-support/build-fhs-userenv/default.nix#L43
mv $out/bin/${name} $out/bin/flutter
'';
passthru = flutter.passthru // {
nonFHS = flutter;
mkFlutterApp = callPackage ../../../build-support/flutter {
flutter = callPackage ./fhs.nix { supportsAndroidEmulator = false; };
};
};
meta = flutter.meta // {
longDescription = ''
${flutter.meta.longDescription}
Wrapped in a FHS environment to improve compatibility with internal tools and tools in the ecosystem.
'';
};
})

View File

@ -13701,10 +13701,8 @@ with pkgs;
recurseIntoAttrs (callPackage ../development/compilers/flutter { });
flutter-unwrapped = flutterPackages.stable;
flutter2-unwrapped = flutterPackages.v2;
flutter-wrapped = flutterPackages.wrapFlutter flutter-unwrapped;
flutter2-wrapped = flutterPackages.wrapFlutter flutter2-unwrapped;
flutter = flutterPackages.mkFlutterFHS flutter-wrapped;
flutter2 = flutterPackages.mkFlutterFHS flutter2-wrapped;
flutter = flutterPackages.wrapFlutter flutter-unwrapped;
flutter2 = flutterPackages.wrapFlutter flutter2-unwrapped;
fnm = callPackage ../development/tools/fnm {
inherit (darwin.apple_sdk.frameworks) DiskArbitration Foundation Security;