Commit Graph

56 Commits

Author SHA1 Message Date
Tristan Ross
4a59129384
buildFlutterApplication: use the engine 2024-06-14 21:01:19 -07:00
Tristan Ross
cdd31bb726
flutterPackages: support beta releases 2024-06-13 14:47:30 -07:00
Tristan Ross
d2a06d2573
flutter: drop moreutils for more bash
Since moreutils depends on Perl and that causes #315990, drop moreutils
until Perl is fixed to handle cross compiling properly. We now create a
temporary file and write the jq result to it and then copy that to
`$out`.
2024-05-30 14:06:11 -07:00
Jan Tojnar
eb04659fc2 treewide: wrapGAppsHook → wrapGAppsHook3
This was achieved using the following command:

    sd 'wrapGAppsHook\b' wrapGAppsHook3 (rg -l 'wrapGAppsHook\b')

And then manually reverted the following changes:

- alias in top-level.nix
- function name in wrap-gapps-hook.sh
- comment in postFixup of at-spi2-core
- comment in gtk4
- comment in preFixup of 1password-gui/linux.nix
- comment in postFixup of qgis/unwrapped-ltr.nix and qgis/unwrapped.nix
- comment in postFixup of telegram-desktop
- comment in postFixup of fwupd
- buildCommand of mongodb-compass
- postFixup of xflux-gui
- comment in a patch in kdePackages.kde-gtk-config and plasma5Packages.kde-gtk-config
- description of programs.sway.wrapperFeatures.gtk NixOS option (manual rebuild)
2024-04-27 02:23:22 +02:00
hacker1024
64f9fa0d2c buildFlutterApplication: Change flutterHostPlatform to targetFlutterPlatform 2024-01-19 11:07:33 +11:00
hacker1024
3b33435d02 flutter.buildFlutterApplication: Add multiShell attribute 2024-01-18 14:20:03 +11:00
hacker1024
046da09ddd flutter.buildFlutterApplication: Properly throw unsupported host platform error 2024-01-18 11:59:38 +11:00
hacker1024
f51a0b053d flutter.buildFlutterApplication: Allow building for the Web 2024-01-18 10:27:32 +11:00
hacker1024
8494ee610b flutter.buildFlutterApplication: Add pkg-config to nativeBuildInputs 2023-12-26 17:08:51 +02:00
hacker1024
f057034d6a flutter.buildFlutterApplication: Don't assume jq and yq are available in extraPackageConfigSetup 2023-12-26 17:08:51 +02:00
hacker1024
53a3485bfc flutter.buildFlutterApplication: Remove unneeded nativeBuildInputs 2023-12-26 17:08:51 +02:00
hacker1024
af6e82b47a flutter.buildFlutterApplication: Use extraPackageConfigSetup 2023-12-26 17:06:18 +02:00
hacker1024
34ce9c64c9 pub2nix.readPubspecLock: Include entire source in package derivations
This allows references to paths above the package being built, e.g.  bc5d988f32/packages/libtokyo_flutter/pubspec.yaml (L42)
2023-12-26 17:05:28 +02:00
hacker1024
3081228cc4 dart: Use Nix instead of Pub 2023-12-26 17:05:20 +02:00
hacker1024
98e4fb2d07
flutter: Pass pubGetScript through to buildDartApplication 2023-12-21 11:44:14 +01:00
hacker1024
2addb67a14 buildFlutterApplication: Wrap buildDartApplication 2023-10-22 00:31:58 +11:00
Maciej Krüger
6cecfa12b5
Merge pull request #239570 from hacker1024/feature/flutter-wrapper-gapps
flutter: Use wrapGAppsHook
2023-09-20 23:34:26 +02:00
Maciej Krüger
b9ab9a92b9
Merge pull request #251409 from gilice/flutter-313 2023-08-30 22:00:14 +02:00
hacker1024
41bbc2c311 flutter: Supply CA bundle in sandbox 2023-08-29 13:12:01 +02:00
lucasew
acafc8e76e flutter.buildFlutterApplication: fix passthru being ignored
Signed-off-by: lucasew <lucas59356@gmail.com>
2023-08-28 22:54:36 -03:00
hacker1024
84347c2195 flutter: Use wrapGAppsHook
Flutter's Linux desktop embedding uses GTK. wrapGAppsHook should be used.
2023-08-28 11:59:44 +10:00
gilice
8991fac305 flutter: build-support: allow customizing wrapProgram args 2023-05-14 17:10:49 +02:00
hacker1024
49ce83d5b4 dart: Spoof Git dependency version checks 2023-05-12 23:04:33 +10:00
Kira Bruneau
d4652d33d6
Merge pull request #229770 from Misterio77/init-buildDartPackage
buildDartApplication: init
2023-05-11 14:43:20 -04:00
Sandro Jäckel
00000001b4
treewide: switch builtins.fromJSON(builtins.readFile ./file.json) to lib.importJSON ./file.json #2 2023-05-06 16:20:13 +02:00
Gabriel Fontes
70d3f5c0b4
buildFlutterApplication: default vendorHash to ""
This makes it more ergonomical to use, and is consistent with
buildDartApplication.
2023-05-05 13:32:51 -03:00
hacker1024
89bb0ed91b flutter.buildFlutterApplication: Add an option to generate the dependency list with IFD
This is useful for projects outside of Nixpkgs.
2023-04-23 00:32:24 +10:00
hacker1024
9f05297dc8 flutter.buildFlutterApplication: Manually supply the dependency list
This removes the need for IFD.
2023-04-23 00:12:45 +10:00
hacker1024
37e93f7c3b flutter.buildFlutterApplication: Supply package metadata to overrides 2023-04-17 14:40:18 +10:00
hacker1024
0495725a1f flutter.buildFlutterApplication: Introduce a package override repository
Some Flutter packages require additional attribute values to be added to buildFlutterApplication, to add things like libraries and environment variables.

To prevent duplication in applications that use the packages, a repository of package overrides is kept. buildFlutterApplication will look for package overrides for each dependency, and apply them by calling overrideAttrs on itself.
2023-04-17 03:21:01 +10:00
hacker1024
329c494d0c flutter.buildFlutterApplication: Allow overriding configuration attributes
This allows thing like `flutterBuildFlags` and `runtimeDependencies` to be overridden with `overrideAttrs`.

Attributes that affect dependency retrieval cannot be overridden.
2023-04-17 02:59:02 +10:00
hacker1024
4f5dd08fe8 dart.fetch-dart-deps: Add hook runtime dependencies 2023-04-16 23:11:07 +10:00
hacker1024
bbfc7911d3 flutter.buildFlutterApplication: Supply runtime dependencies
This wraps Flutter programs with an appropriate 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.

The name of the runtimeDependencies argument was chosen to match autoPatchelfHook, which has a similar feature.
2023-04-16 19:25:42 +10:00
hacker1024
eefb67036f flutter.buildFlutterApplication: Move debugging symbols into another output
This reduces the size of the executable.

It works well with Nix - if the user includes the version in their bug report, the exact debugging symbols required can easily be found.
2023-04-16 16:47:08 +10:00
hacker1024
5a5435dea6 flutter.buildFlutterApplication: Add flutterBuildFlags argument 2023-04-16 15:45:09 +10:00
hacker1024
88275ca6d6 flutter.buildFlutterApplication: Allow using a custom pubspec.lock 2023-04-16 01:49:43 +10:00
hacker1024
915a6779fc flutter.buildFlutterApplication: Refactor dependency setup as a standalone derivation with an output hook
This allows anything that needs to build a Dart application (such as a future `buildDartApplication` function) to use the same setup.
2023-04-16 00:17:41 +10:00
hacker1024
f00f918e27 flutter: Remove cached Git package Git directories
Pub does not perform any Git operations on the cached package directly, instead cloning it through a mirror.

The .git directories are not needed, and are a source of non-determinism.
2023-04-15 20:30:46 +10:00
hacker1024
c3a87421ae flutter: Don't tarball the package cache
Co-authored-by: FlafyDev <flafyarazi@gmail.com>

The dependency fixed-output derivation now uses the recursive hash mode to avoid tarballing and copying all the files.

https://github.com/NixOS/nix/issues/6660 was ran into during the development of this change. Input references were found in the Git package cache before nukeReferences was used.

It turns out that the mirrors in the Git package cache do not actually need to be preserved, as the SDK does not use them during the build process. They are therefore deleted in the dependency derivation and re-created as blank repositories in the main derivation.

A description of the Git package cache layout can be found here: c890afa1d6/lib/src/source/git.dart (L339)
2023-04-15 20:17:44 +10:00
hacker1024
fdce3f30c4 flutter.mkFlutterApp: Don't hash more unstable files
Files and directories such as .dart_tool, .flutter-plugins, .packages and .pub-cache/hosted/*/.cache will be happily regenerated by the SDK in an offline environment.

The patches being made to these files and directories to remove non-determinism were flawed: They did not handle cases where files only appeared in one run, or cases where tooling versions had an effect on the output.
2023-04-15 03:18:56 +10:00
hacker1024
7e12e3afaa flutter.mkFlutterApp: Remove the target architecture from the dependency derivation name
As the dependency tarballs no longer include SDK artifacts, they are not platform dependent.
2023-04-14 14:25:33 +10:00
hacker1024
30caca0839 flutter.mkFlutterApp: Add Git to nativeBuildInputs
The deterministic Git script depends on it.
2023-04-14 02:16:04 +10:00
hacker1024
f7e3c19cc8 flutter.mkFlutterApp: Don't vendor arbitrary configuration files 2023-04-14 01:49:09 +10:00
hacker1024
8f9aa6b18b flutter.mkFlutterApp: Don't use autoPatchelf on package cache
While this may be beneficial for packages that ship native binaries, this causes issues due to Flutter packages that have inappropriately uploaded build artifacts (such as those from example subprojects) to pub.dev.
2023-04-14 01:41:58 +10:00
hacker1024
04e7ced7e2 mkFlutterApp: Don't fetch prebuilt artifacts
Artifacts are now supplied by the Flutter SDK derivation.

In addition, they are no longer a factor in the dependency hash calculation.
2023-04-13 22:01:42 +10:00
hacker1024
6d50bcc487 mkFlutterApp: Deduplicate build environment setup
The build environment is now set up by the Flutter wrapper, and does not need to be done in mkFlutterApp.
2023-04-13 22:00:24 +10:00
hacker1024
d5aa0c1f97 Merge remote-tracking branch 'NixOS/master' into patch-3 2023-04-13 19:22:50 +10:00
Artturin
f9fdf2d402 treewide: move NIX_CFLAGS_COMPILE to the env attrset
with structuredAttrs lists will be bash arrays which cannot be exported
which will be a issue with some patches and some wrappers like cc-wrapper

this makes it clearer that NIX_CFLAGS_COMPILE must be a string as lists
in env cause a eval failure
2023-02-22 21:23:04 +02:00
Artturin
2eeb34c273 treewide: {build,host,target}Platform -> stdenv.{build,host,target}Platform 2023-01-09 21:13:22 +02:00
Luke Granger-Brown
8a4ef88653 mkFlutterApp: support apps which don't produce a .packages 2022-12-02 03:22:52 +00:00