Commit Graph

127 Commits

Author SHA1 Message Date
Pol Dellaiera
3eb7f7a63b
Merge pull request #248683 from oxij/tree/source-root-continues-3
treewide: cleanup `sourceRoot` and `setSourceRoot` usage
2023-08-15 05:53:52 +02:00
Luke Granger-Brown
19cd58a6ca flutter37: fix skyNotice hash for version 1a65d409c7a1438a34d21b60bf30a6fd5db59314
Using fetchurl like this means that, if you build the `flutter`
derivation first, you will get a file named "LICENSE" in your store with
the correct hash. `flutter37` will then build because this file is
already in your store, even though the LICENSE to which _it_ refers is
different. This is dangerous in this case - but an intentional design
decision in the way fetchurl works to allow artifacts which are the same
to be fetched from arbitrary sources, or even pre-populated into the
store.

To avoid this, explicitly tag the fetchurl with a name and the commit
hash we're fetching from. This means we _must_ fetch these separately
for each flutter version and avoids the problem of accidentally reusing
artifacts for a different build.
2023-08-13 14:30:43 +01:00
Jan Malakhovski
b358ebd870 treewide: replace setSourceRoot = "sourceRoot=$PWD" and similar with sourceRoot = "." 2023-08-12 08:29:55 +00:00
gilice
c34385b52c flutter: link notices to all of the artifact directories.
The flutter team has also started doing this, but only for new
artifacts. This way, we also do it for older artifacts.
2023-08-11 10:03:39 +02:00
Sunghoon Kang
37a10c3cb7
flutter: revert unnecessary extension extraction
Signed-off-by: Sunghoon Kang <me@hoon.dev>
2023-07-07 16:59:52 +09:00
Sunghoon Kang
77618bd28b
flutter: revert patch changes
Signed-off-by: Sunghoon Kang <me@hoon.dev>
2023-07-07 16:56:40 +09:00
Sunghoon Kang
8cb8349928
flutter: fix hash
Signed-off-by: Sunghoon Kang <me@hoon.dev>
2023-07-07 13:16:43 +09:00
Sunghoon Kang
77702747e7
flutter: add darwin support
Signed-off-by: Sunghoon Kang <me@hoon.dev>
2023-07-07 13:07:34 +09:00
Ilan Joselevich
d625c36563
Merge pull request #240715 from FlafyDev/flutter-cache-drv-2
flutter: Separate cache and unwrapped derivations #2
2023-07-05 03:03:27 +03:00
hacker1024
309f54ae5b flutter: Remove Flutter 2 2023-07-04 08:59:01 +10:00
FlafyDev
570f3efd1d flutter: Separate cache and unwrapped derivations
flutter-unwrapped will now not come with engine artifacts in its cache directory(`$out/bin/cache`).

To specify a different cache directory, set FLUTTER_CACHE_DIR.

Flutter's wrapper now sets FLUTTER_CACHE_DIR to set engine artifacts.

The sh file `$out/bin/internal/shared.sh` runs when launching Flutter and calls `"$FLUTTER_ROOT/bin/cache/` instead of our environment variable `FLUTTER_CACHE_DIR`.
I decided not to patch it since the script doesn't require engine artifacts(which are the only thing not added by the unwrapped derivation), so it shouldn't fail, and patching it will just be harder to maintain.
2023-06-30 15:23:34 +03:00
gilice
dcf789f53e flutter: 3.10.0 -> 3.10.5 2023-06-14 19:12:50 +02:00
FlafyDev
b1efbff8ec flutter: Move artifact installation logic to the wrapper 2023-05-15 01:16:47 +03:00
hacker1024
6af167f231 flutter: Keep 3.7 available 2023-05-12 23:09:41 +10:00
hacker1024
97b7363358 flutter: Append to search paths in the wrapper
Appending to search paths allows dependencies to be replaced at runtime.

This is useful, for example, to the Dart packaging mechanism, which supplies a wrapped version of Git that spoofs cached Git package revisions for Pub.
2023-05-12 23:09:41 +10:00
hacker1024
7f36f6e96b flutter: 3.7.12 -> 3.10.0 2023-05-12 23:09:41 +10:00
hacker1024
6b30711c43
flutter: Install Android variant artifacts in platform subdirectories (#231296)
* flutter: Allow installing artifacts in subdirectories

* flutter: Install Android variant artifacts in platform subdirectories
2023-05-11 23:55:11 +02:00
Maciej Krüger
429d14f15f
Merge pull request #228467 from gilice/expose-mkFlutter 2023-05-02 13:34:00 +02:00
gilice
596aa930b2 flutter: rename & expose builders to pkgs
The renames are:
  mkFlutter -> mkCustomFlutter
  flutterDrv -> mkFlutter

I hope this will bring more clarity
2023-04-30 18:33:05 +02:00
hacker1024
f151560cf0 flutter: package-overrides: olm: init 2023-04-26 16:54:06 +10:00
hacker1024
04ed017ad7 flutter: package-overrides: matrix: init 2023-04-26 16:53:53 +10:00
hacker1024
ad510f4221 flutter: package-overrides: handy_window: init 2023-04-26 16:53:43 +10:00
hacker1024
26e9b52d94 flutter: package-overrides: flutter_secure_storage_linux: init 2023-04-26 16:53:33 +10:00
hacker1024
7fb8a68efa flutter: Fix linux-x64-profile/linux-x64-flutter-gtk artifact hash
This was accidentally copied from linux-x64-release.
2023-04-26 00:55:10 +10:00
hacker1024
f7af9373ed flutter: Generate target PKG_CONFIG_PATH at build time 2023-04-25 14:40:29 +10:00
hacker1024
552e3fe498 flutter: Don't use IFD to read the engine version 2023-04-23 14:44:46 +10:00
hacker1024
ae0aff848f flutter: Throw a useful message when there are missing artifact hashes 2023-04-23 14:43:48 +10:00
hacker1024
7e53598823 flutter: 3.7.11 -> 3.7.12 2023-04-23 14:30:37 +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
17cb291df1 flutter: Allow adding extra dependencies to the wrapper
Flutter application derivations can add dependencies and build flags, but it's not as easy during development.

As an alternative to nix-shell, a custom Flutter wrapper can be built with dependencies required by projects.

This feature builds on the existing build environment setup techniques required for Linux desktop support, so is fairly cheap to maintain.
2023-04-16 21:20:25 +10:00
hacker1024
607a57d48e flutter.mkFlutterApp: Rename to flutter.buildFlutterApplication
This fits more appropriately with other build derivations like buildPythonApplication.
2023-04-15 20:57:21 +10:00
hacker1024
b187edb802 flutter: Pass through the version attribute in the wrapper 2023-04-15 19:25:01 +10:00
hacker1024
62e50080f3 flutter: Download engine artifacts individually
This brings the following benefits:
- Artifacts missing in the SDK tarball (such as prebuilts for linux-aarch64) can be obtained
- Artifacts can be patched more granularly (e.g. libflutter_linux_gtk is patchelf-ed for GTK3, and the linux-aarch64 assets have a postPatch to add some missing files)
- Minimal Flutter packages can be generated (e.g. mkFlutterApp only needs prebuilts for desktop Linux, and developers that don't care for desktop Linux can exclude the artifacts and dependencies)

It also paves the way for including manually built engine facts.
2023-04-15 02:09:28 +10:00
hacker1024
c3797393b7 flutter: Use fetchzip instead of fetchurl for source downloads
This allows for speedier re-use of the source archives, and lets files inside be read in Nix.
2023-04-15 01:52:30 +10:00
hacker1024
b16e344fae flutter: Remove --no-version-check from the immutable wrapper
This is not technically needed anyway, as the feature is removed in disable-auto-update.patch.

Prepending this argument causes issues:
- https://github.com/kevmoo/completion.dart/issues/33
- https://github.com/flutter/flutter/issues/124793
2023-04-14 15:11:31 +10:00
hacker1024
1b2cac51b2 flutter: Use existing libdeflate derivation 2023-04-14 14:21:38 +10:00
hacker1024
cedcb0b772 flutter: Rename "self" to "unwrapped" in main derivation 2023-04-13 23:19:16 +10:00
hacker1024
13bbb36132 flutter: Move makeWrapper to nativeBuildInputs in wrapper 2023-04-13 22:52:40 +10:00
hacker1024
c59ce54f1d flutter: Add mkFlutterApp as a passthru attribute 2023-04-13 22:02:50 +10:00
hacker1024
4196ddbeb5 flutter: Add git and which to PATH 2023-04-13 21:55:50 +10:00
hacker1024
f3aac6e61e flutter: Add FlafyDev, gilice, and hacker1024 as maintainers 2023-04-13 19:46:45 +10:00
hacker1024
4df7d07ab1 flutter: Remove stray dollar sign from name string 2023-04-13 19:29:42 +10:00
hacker1024
d5aa0c1f97 Merge remote-tracking branch 'NixOS/master' into patch-3 2023-04-13 19:22:50 +10:00
hacker1024
5777f1a122 flutter: Don't check executable locations in doctor
Flutter 3.5.0 adds a check to make sure that the Flutter and Dart tool executables are inside the SDK directory.

This does not play nicely with the wrapping and linking techniques used to package it. It is also impossible for there to be an issue related to binary locations, as everything is set up properly in the derivation.
2023-04-13 18:02:26 +10:00
hacker1024
0f2848638f flutter: 3.3.3 -> 3.7.11 2023-04-13 18:01:58 +10:00
hacker1024
aa9079c678 flutter: Remove prebuilt dependencies from the wrapper
These are no longer needed now that the artifacts are patched.
2023-04-13 18:01:58 +10:00
hacker1024
7f01352e65 flutter: Don't preserve prebuilt SDK asset file permissions
See: https://github.com/flutter/flutter/issues/119961

Co-authored-by: FlafyDev <flafyarazi@gmail.com>
Co-authored-by: gilice <gilice@proton.me>
Co-authored-by: hacker1024 <hacker1024@users.sourceforge.net>
2023-04-13 18:01:53 +10:00
hacker1024
9497627b15 flutter: Don't try to update the immutable artifact cache
Co-authored-by: FlafyDev <flafyarazi@gmail.com>
Co-authored-by: gilice <gilice@proton.me>
Co-authored-by: hacker1024 <hacker1024@users.sourceforge.net>
2023-04-13 18:01:45 +10:00
hacker1024
d6ce0dafcf flutter: Don't use an external artifact cache
The internal artifacts should be used, as they have been patched to use Nix libraries.

Co-authored-by: FlafyDev <flafyarazi@gmail.com>
Co-authored-by: gilice <gilice@proton.me>
Co-authored-by: hacker1024 <hacker1024@users.sourceforge.net>
2023-04-13 18:01:35 +10:00
hacker1024
e552959395 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.
2023-04-13 18:01:32 +10:00