Loading pkgs/build-support/flutter/default.nix +61 −147 Original line number Diff line number Diff line { lib , callPackage , stdenvNoCC , runCommand , makeWrapper , wrapGAppsHook , llvmPackages_13 , fetchDartDeps , buildDartApplication , cacert , glib , flutter , jq }: # absolutely no mac support for now { pubGetScript ? "flutter pub get" , flutterBuildFlags ? [ ] , runtimeDependencies ? [ ] , customPackageOverrides ? { } , autoDepsList ? false , depsListFile ? null , vendorHash ? "" , pubspecLockFile ? null , nativeBuildInputs ? [ ] , preUnpack ? "" , postFixup ? "" , extraWrapProgramArgs ? "" , ... }@args: let flutterSetupScript = '' (buildDartApplication.override { dart = flutter; fetchDartDeps = fetchDartDeps.override { dart = flutter; }; }) (args // { sdkSetupScript = '' # Pub needs SSL certificates. Dart normally looks in a hardcoded path. # https://github.com/dart-lang/sdk/blob/3.1.0/runtime/bin/security_context_linux.cc#L48 # Loading @@ -54,63 +48,23 @@ let flutter config --enable-linux-desktop >/dev/null ''; deps = callPackage ../dart/fetch-dart-deps { dart = flutter; } { sdkSetupScript = flutterSetupScript; inherit pubGetScript vendorHash pubspecLockFile; buildDrvArgs = args; }; baseDerivation = llvmPackages_13.stdenv.mkDerivation (finalAttrs: args // { inherit flutterBuildFlags runtimeDependencies; outputs = [ "out" "debug" ]; nativeBuildInputs = [ makeWrapper deps flutter jq glib wrapGAppsHook ] ++ nativeBuildInputs; dontWrapGApps = true; preUnpack = '' ${lib.optionalString (!autoDepsList) '' if ! { [ '${lib.boolToString (depsListFile != null)}' = 'true' ] ${lib.optionalString (depsListFile != null) "&& cmp -s <(jq -Sc . '${depsListFile}') <(jq -Sc . '${finalAttrs.passthru.depsListFile}')"}; }; then echo 1>&2 -e '\nThe dependency list file was either not given or differs from the expected result.' \ '\nPlease choose one of the following solutions:' \ '\n - Duplicate the following file and pass it to the depsListFile argument.' \ '\n ${finalAttrs.passthru.depsListFile}' \ '\n - Set autoDepsList to true (not supported by Hydra or permitted in Nixpkgs)'. exit 1 fi ''} ${preUnpack} ''; nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ wrapGAppsHook ]; buildInputs = (args.buildInputs or [ ]) ++ [ glib ]; configurePhase = '' runHook preConfigure ${flutterSetupScript} runHook postConfigure ''; buildPhase = '' dontDartBuild = true; buildPhase = args.buildPhase or '' runHook preBuild mkdir -p build/flutter_assets/fonts doPubGet flutter pub get --offline -v flutter build linux -v --release --split-debug-info="$debug" ${builtins.concatStringsSep " " (map (flag: "\"${flag}\"") finalAttrs.flutterBuildFlags)} flutter build linux -v --release --split-debug-info="$debug" ${builtins.concatStringsSep " " (map (flag: "\"${flag}\"") flutterBuildFlags)} runHook postBuild ''; installPhase = '' dontDartInstall = true; installPhase = args.installPhase or '' runHook preInstall built=build/linux/*/release/bundle Loading Loading @@ -141,49 +95,9 @@ let runHook postInstall ''; postFixup = '' # Add runtime library dependencies to the LD_LIBRARY_PATH. # For some reason, the RUNPATH of the executable is not used to load dynamic libraries in dart:ffi with DynamicLibrary.open(). # # This could alternatively be fixed with patchelf --add-needed, but this would cause all the libraries to be opened immediately, # which is not what application authors expect. for f in "$out"/bin/*; do wrapProgram "$f" \ --suffix LD_LIBRARY_PATH : '${lib.makeLibraryPath finalAttrs.runtimeDependencies}' \ dontWrapGApps = true; extraWrapProgramArgs = '' ''${gappsWrapperArgs[@]} \ ${extraWrapProgramArgs} done ${postFixup} ''; passthru = (args.passthru or {}) // { inherit (deps) depsListFile; }; }); packageOverrideRepository = (callPackage ../../development/compilers/flutter/package-overrides { }) // customPackageOverrides; productPackages = builtins.filter (package: package.kind != "dev") (if autoDepsList then lib.importJSON deps.depsListFile else if depsListFile == null then [ ] else lib.importJSON depsListFile); in builtins.foldl' (prev: package: if packageOverrideRepository ? ${package.name} then prev.overrideAttrs (packageOverrideRepository.${package.name} { inherit (package) name version kind source dependencies; }) else prev) baseDerivation productPackages pkgs/development/compilers/dart/package-overrides/default.nix +6 −1 Original line number Diff line number Diff line { callPackage }: { } { flutter_secure_storage_linux = callPackage ./flutter-secure-storage-linux { }; handy_window = callPackage ./handy-window { }; matrix = callPackage ./matrix { }; olm = callPackage ./olm { }; } pkgs/development/compilers/flutter/package-overrides/flutter-secure-storage-linux/default.nix→pkgs/development/compilers/dart/package-overrides/flutter-secure-storage-linux/default.nix +0 −0 File moved. View file pkgs/development/compilers/flutter/package-overrides/handy-window/default.nix→pkgs/development/compilers/dart/package-overrides/handy-window/default.nix +0 −0 File moved. View file pkgs/development/compilers/flutter/package-overrides/matrix/default.nix→pkgs/development/compilers/dart/package-overrides/matrix/default.nix +0 −0 File moved. View file Loading
pkgs/build-support/flutter/default.nix +61 −147 Original line number Diff line number Diff line { lib , callPackage , stdenvNoCC , runCommand , makeWrapper , wrapGAppsHook , llvmPackages_13 , fetchDartDeps , buildDartApplication , cacert , glib , flutter , jq }: # absolutely no mac support for now { pubGetScript ? "flutter pub get" , flutterBuildFlags ? [ ] , runtimeDependencies ? [ ] , customPackageOverrides ? { } , autoDepsList ? false , depsListFile ? null , vendorHash ? "" , pubspecLockFile ? null , nativeBuildInputs ? [ ] , preUnpack ? "" , postFixup ? "" , extraWrapProgramArgs ? "" , ... }@args: let flutterSetupScript = '' (buildDartApplication.override { dart = flutter; fetchDartDeps = fetchDartDeps.override { dart = flutter; }; }) (args // { sdkSetupScript = '' # Pub needs SSL certificates. Dart normally looks in a hardcoded path. # https://github.com/dart-lang/sdk/blob/3.1.0/runtime/bin/security_context_linux.cc#L48 # Loading @@ -54,63 +48,23 @@ let flutter config --enable-linux-desktop >/dev/null ''; deps = callPackage ../dart/fetch-dart-deps { dart = flutter; } { sdkSetupScript = flutterSetupScript; inherit pubGetScript vendorHash pubspecLockFile; buildDrvArgs = args; }; baseDerivation = llvmPackages_13.stdenv.mkDerivation (finalAttrs: args // { inherit flutterBuildFlags runtimeDependencies; outputs = [ "out" "debug" ]; nativeBuildInputs = [ makeWrapper deps flutter jq glib wrapGAppsHook ] ++ nativeBuildInputs; dontWrapGApps = true; preUnpack = '' ${lib.optionalString (!autoDepsList) '' if ! { [ '${lib.boolToString (depsListFile != null)}' = 'true' ] ${lib.optionalString (depsListFile != null) "&& cmp -s <(jq -Sc . '${depsListFile}') <(jq -Sc . '${finalAttrs.passthru.depsListFile}')"}; }; then echo 1>&2 -e '\nThe dependency list file was either not given or differs from the expected result.' \ '\nPlease choose one of the following solutions:' \ '\n - Duplicate the following file and pass it to the depsListFile argument.' \ '\n ${finalAttrs.passthru.depsListFile}' \ '\n - Set autoDepsList to true (not supported by Hydra or permitted in Nixpkgs)'. exit 1 fi ''} ${preUnpack} ''; nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ wrapGAppsHook ]; buildInputs = (args.buildInputs or [ ]) ++ [ glib ]; configurePhase = '' runHook preConfigure ${flutterSetupScript} runHook postConfigure ''; buildPhase = '' dontDartBuild = true; buildPhase = args.buildPhase or '' runHook preBuild mkdir -p build/flutter_assets/fonts doPubGet flutter pub get --offline -v flutter build linux -v --release --split-debug-info="$debug" ${builtins.concatStringsSep " " (map (flag: "\"${flag}\"") finalAttrs.flutterBuildFlags)} flutter build linux -v --release --split-debug-info="$debug" ${builtins.concatStringsSep " " (map (flag: "\"${flag}\"") flutterBuildFlags)} runHook postBuild ''; installPhase = '' dontDartInstall = true; installPhase = args.installPhase or '' runHook preInstall built=build/linux/*/release/bundle Loading Loading @@ -141,49 +95,9 @@ let runHook postInstall ''; postFixup = '' # Add runtime library dependencies to the LD_LIBRARY_PATH. # For some reason, the RUNPATH of the executable is not used to load dynamic libraries in dart:ffi with DynamicLibrary.open(). # # This could alternatively be fixed with patchelf --add-needed, but this would cause all the libraries to be opened immediately, # which is not what application authors expect. for f in "$out"/bin/*; do wrapProgram "$f" \ --suffix LD_LIBRARY_PATH : '${lib.makeLibraryPath finalAttrs.runtimeDependencies}' \ dontWrapGApps = true; extraWrapProgramArgs = '' ''${gappsWrapperArgs[@]} \ ${extraWrapProgramArgs} done ${postFixup} ''; passthru = (args.passthru or {}) // { inherit (deps) depsListFile; }; }); packageOverrideRepository = (callPackage ../../development/compilers/flutter/package-overrides { }) // customPackageOverrides; productPackages = builtins.filter (package: package.kind != "dev") (if autoDepsList then lib.importJSON deps.depsListFile else if depsListFile == null then [ ] else lib.importJSON depsListFile); in builtins.foldl' (prev: package: if packageOverrideRepository ? ${package.name} then prev.overrideAttrs (packageOverrideRepository.${package.name} { inherit (package) name version kind source dependencies; }) else prev) baseDerivation productPackages
pkgs/development/compilers/dart/package-overrides/default.nix +6 −1 Original line number Diff line number Diff line { callPackage }: { } { flutter_secure_storage_linux = callPackage ./flutter-secure-storage-linux { }; handy_window = callPackage ./handy-window { }; matrix = callPackage ./matrix { }; olm = callPackage ./olm { }; }
pkgs/development/compilers/flutter/package-overrides/flutter-secure-storage-linux/default.nix→pkgs/development/compilers/dart/package-overrides/flutter-secure-storage-linux/default.nix +0 −0 File moved. View file
pkgs/development/compilers/flutter/package-overrides/handy-window/default.nix→pkgs/development/compilers/dart/package-overrides/handy-window/default.nix +0 −0 File moved. View file
pkgs/development/compilers/flutter/package-overrides/matrix/default.nix→pkgs/development/compilers/dart/package-overrides/matrix/default.nix +0 −0 File moved. View file