flutter: Implement mkFlutter function using barebones FHS environment

This commit is contained in:
hacker1024
2022-11-14 21:17:36 +11:00
parent e2adc5d899
commit e4df8739b7

View File

@@ -1,71 +1,78 @@
{ 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.
buildFHSUserEnv {
name = flutter.name;
let
# Wrap flutter inside an fhs user env to allow execution of binary,
# like adb from $ANDROID_HOME or java from android-studio.
self = buildFHSUserEnv {
name = flutter.name;
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
]);
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
targetPkgs = pkgs: with pkgs; ([
flutter
# General ecosystem dependencies
bash
curl
git
unzip
which
xz
# 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
]);
# 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";
runScript = "flutter";
passthru = {
inherit flutter;
passthru = flutter.passthru // {
wrapped = 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.
'';
};
};
meta = flutter.meta // {
longDescription = ''
${flutter.meta.longDescription}
Wrapped in a FHS environment to improve compatibility with internal tools and tools in the ecosystem.
'';
};
}
in
self