diff --git a/pkgs/applications/misc/yubioath-flutter/default.nix b/pkgs/applications/misc/yubioath-flutter/default.nix index e3ff56e77d48..4012b40ff602 100644 --- a/pkgs/applications/misc/yubioath-flutter/default.nix +++ b/pkgs/applications/misc/yubioath-flutter/default.nix @@ -21,6 +21,7 @@ flutter.buildFlutterApplication rec { passthru.helper = python3.pkgs.callPackage ./helper.nix { inherit src version meta; }; + depsListFile = ./deps.json; vendorHash = "sha256-WfZiB7MO4wHUg81xm67BMu4zQdC9CfhN5BQol+AI2S8="; postPatch = '' diff --git a/pkgs/applications/misc/yubioath-flutter/deps.json b/pkgs/applications/misc/yubioath-flutter/deps.json new file mode 100644 index 000000000000..1ce525f799bd --- /dev/null +++ b/pkgs/applications/misc/yubioath-flutter/deps.json @@ -0,0 +1,1319 @@ +[ + { + "name": "yubico_authenticator", + "version": "6.1.0+60100", + "kind": "root", + "source": "root", + "dependencies": [ + "flutter", + "flutter_localizations", + "intl", + "async", + "logging", + "collection", + "shared_preferences", + "flutter_riverpod", + "json_annotation", + "freezed_annotation", + "window_manager", + "qrscanner_zxing", + "desktop_drop", + "url_launcher", + "integration_test", + "flutter_test", + "flutter_lints", + "build_runner", + "freezed", + "json_serializable" + ] + }, + { + "name": "json_serializable", + "version": "6.5.4", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "analyzer", + "async", + "build", + "build_config", + "collection", + "json_annotation", + "meta", + "path", + "pub_semver", + "pubspec_parse", + "source_gen", + "source_helper" + ] + }, + { + "name": "source_helper", + "version": "1.3.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "analyzer", + "collection", + "source_gen" + ] + }, + { + "name": "source_gen", + "version": "1.2.6", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "analyzer", + "async", + "build", + "dart_style", + "glob", + "meta", + "path", + "source_span", + "yaml" + ] + }, + { + "name": "yaml", + "version": "3.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "source_span", + "string_scanner" + ] + }, + { + "name": "string_scanner", + "version": "1.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "source_span" + ] + }, + { + "name": "source_span", + "version": "1.9.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "path", + "term_glyph" + ] + }, + { + "name": "term_glyph", + "version": "1.2.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "path", + "version": "1.8.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "collection", + "version": "1.17.0", + "kind": "direct", + "source": "hosted", + "dependencies": [] + }, + { + "name": "meta", + "version": "1.8.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "glob", + "version": "2.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "collection", + "file", + "path", + "string_scanner" + ] + }, + { + "name": "file", + "version": "6.1.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta", + "path" + ] + }, + { + "name": "async", + "version": "2.10.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "collection", + "meta" + ] + }, + { + "name": "dart_style", + "version": "2.2.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "analyzer", + "args", + "path", + "pub_semver", + "source_span" + ] + }, + { + "name": "pub_semver", + "version": "2.1.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "meta" + ] + }, + { + "name": "args", + "version": "2.3.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "analyzer", + "version": "5.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "_fe_analyzer_shared", + "collection", + "convert", + "crypto", + "glob", + "meta", + "package_config", + "path", + "pub_semver", + "source_span", + "watcher", + "yaml" + ] + }, + { + "name": "watcher", + "version": "1.0.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "path" + ] + }, + { + "name": "package_config", + "version": "2.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "path" + ] + }, + { + "name": "crypto", + "version": "3.0.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "typed_data" + ] + }, + { + "name": "typed_data", + "version": "1.3.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection" + ] + }, + { + "name": "convert", + "version": "3.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "typed_data" + ] + }, + { + "name": "_fe_analyzer_shared", + "version": "50.0.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta" + ] + }, + { + "name": "build", + "version": "2.3.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "analyzer", + "async", + "convert", + "crypto", + "glob", + "logging", + "meta", + "path" + ] + }, + { + "name": "logging", + "version": "1.1.0", + "kind": "direct", + "source": "hosted", + "dependencies": [] + }, + { + "name": "pubspec_parse", + "version": "1.2.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "checked_yaml", + "collection", + "json_annotation", + "pub_semver", + "yaml" + ] + }, + { + "name": "json_annotation", + "version": "4.7.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "meta" + ] + }, + { + "name": "checked_yaml", + "version": "2.0.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "json_annotation", + "source_span", + "yaml" + ] + }, + { + "name": "build_config", + "version": "1.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "checked_yaml", + "json_annotation", + "path", + "pubspec_parse", + "yaml" + ] + }, + { + "name": "freezed", + "version": "2.3.2", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "analyzer", + "build", + "build_config", + "collection", + "meta", + "source_gen", + "freezed_annotation", + "json_annotation" + ] + }, + { + "name": "freezed_annotation", + "version": "2.2.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "collection", + "json_annotation", + "meta" + ] + }, + { + "name": "build_runner", + "version": "2.3.3", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "args", + "async", + "analyzer", + "build", + "build_config", + "build_daemon", + "build_resolvers", + "build_runner_core", + "code_builder", + "collection", + "crypto", + "dart_style", + "frontend_server_client", + "glob", + "graphs", + "http_multi_server", + "io", + "js", + "logging", + "meta", + "mime", + "package_config", + "path", + "pool", + "pub_semver", + "pubspec_parse", + "shelf", + "shelf_web_socket", + "stack_trace", + "stream_transform", + "timing", + "watcher", + "web_socket_channel", + "yaml" + ] + }, + { + "name": "web_socket_channel", + "version": "2.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "crypto", + "stream_channel" + ] + }, + { + "name": "stream_channel", + "version": "2.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async" + ] + }, + { + "name": "timing", + "version": "1.0.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "json_annotation" + ] + }, + { + "name": "stream_transform", + "version": "2.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "stack_trace", + "version": "1.11.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "path" + ] + }, + { + "name": "shelf_web_socket", + "version": "1.0.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "shelf", + "stream_channel", + "web_socket_channel" + ] + }, + { + "name": "shelf", + "version": "1.4.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "collection", + "http_parser", + "path", + "stack_trace", + "stream_channel" + ] + }, + { + "name": "http_parser", + "version": "4.0.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "source_span", + "string_scanner", + "typed_data" + ] + }, + { + "name": "pool", + "version": "1.5.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "stack_trace" + ] + }, + { + "name": "mime", + "version": "1.0.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "js", + "version": "0.6.5", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta" + ] + }, + { + "name": "io", + "version": "1.0.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta", + "path", + "string_scanner" + ] + }, + { + "name": "http_multi_server", + "version": "3.2.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async" + ] + }, + { + "name": "graphs", + "version": "2.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection" + ] + }, + { + "name": "frontend_server_client", + "version": "3.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "path" + ] + }, + { + "name": "code_builder", + "version": "4.3.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "built_collection", + "built_value", + "collection", + "matcher", + "meta" + ] + }, + { + "name": "matcher", + "version": "0.12.13", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta", + "stack_trace" + ] + }, + { + "name": "built_value", + "version": "8.4.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "built_collection", + "collection", + "fixnum", + "meta" + ] + }, + { + "name": "fixnum", + "version": "1.0.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "built_collection", + "version": "5.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "build_runner_core", + "version": "7.2.7", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "build", + "build_config", + "build_resolvers", + "collection", + "convert", + "crypto", + "glob", + "graphs", + "json_annotation", + "logging", + "meta", + "path", + "package_config", + "pool", + "timing", + "watcher", + "yaml" + ] + }, + { + "name": "build_resolvers", + "version": "2.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "analyzer", + "async", + "build", + "crypto", + "graphs", + "logging", + "path", + "package_config", + "pool", + "pub_semver", + "stream_transform", + "yaml" + ] + }, + { + "name": "build_daemon", + "version": "3.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "built_collection", + "built_value", + "http_multi_server", + "logging", + "path", + "pool", + "shelf", + "shelf_web_socket", + "stream_transform", + "watcher", + "web_socket_channel" + ] + }, + { + "name": "flutter_lints", + "version": "2.0.1", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "lints" + ] + }, + { + "name": "lints", + "version": "2.0.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "flutter_test", + "version": "0.0.0", + "kind": "dev", + "source": "sdk", + "dependencies": [ + "flutter", + "test_api", + "path", + "fake_async", + "clock", + "stack_trace", + "vector_math", + "async", + "boolean_selector", + "characters", + "collection", + "js", + "matcher", + "material_color_utilities", + "meta", + "source_span", + "stream_channel", + "string_scanner", + "term_glyph" + ] + }, + { + "name": "material_color_utilities", + "version": "0.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "characters", + "version": "1.2.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "boolean_selector", + "version": "2.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "source_span", + "string_scanner" + ] + }, + { + "name": "vector_math", + "version": "2.1.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "clock", + "version": "1.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "fake_async", + "version": "1.3.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "clock", + "collection" + ] + }, + { + "name": "test_api", + "version": "0.4.16", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "boolean_selector", + "collection", + "meta", + "source_span", + "stack_trace", + "stream_channel", + "string_scanner", + "term_glyph", + "matcher" + ] + }, + { + "name": "flutter", + "version": "0.0.0", + "kind": "direct", + "source": "sdk", + "dependencies": [ + "characters", + "collection", + "js", + "material_color_utilities", + "meta", + "vector_math", + "sky_engine" + ] + }, + { + "name": "sky_engine", + "version": "0.0.99", + "kind": "transitive", + "source": "sdk", + "dependencies": [] + }, + { + "name": "integration_test", + "version": "0.0.0", + "kind": "dev", + "source": "sdk", + "dependencies": [ + "flutter", + "flutter_driver", + "flutter_test", + "path", + "vm_service", + "archive", + "async", + "boolean_selector", + "characters", + "clock", + "collection", + "crypto", + "fake_async", + "file", + "js", + "matcher", + "material_color_utilities", + "meta", + "source_span", + "stack_trace", + "stream_channel", + "string_scanner", + "sync_http", + "term_glyph", + "test_api", + "typed_data", + "vector_math", + "webdriver" + ] + }, + { + "name": "webdriver", + "version": "3.0.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "archive", + "matcher", + "path", + "stack_trace", + "sync_http" + ] + }, + { + "name": "sync_http", + "version": "0.3.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "archive", + "version": "3.3.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "crypto", + "path" + ] + }, + { + "name": "vm_service", + "version": "9.4.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "flutter_driver", + "version": "0.0.0", + "kind": "transitive", + "source": "sdk", + "dependencies": [ + "file", + "flutter", + "flutter_test", + "fuchsia_remote_debug_protocol", + "path", + "meta", + "vm_service", + "webdriver", + "archive", + "async", + "boolean_selector", + "characters", + "clock", + "collection", + "crypto", + "js", + "matcher", + "material_color_utilities", + "platform", + "process", + "source_span", + "stack_trace", + "stream_channel", + "string_scanner", + "sync_http", + "term_glyph", + "test_api", + "typed_data", + "vector_math" + ] + }, + { + "name": "process", + "version": "4.2.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "file", + "path", + "platform" + ] + }, + { + "name": "platform", + "version": "3.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "fuchsia_remote_debug_protocol", + "version": "0.0.0", + "kind": "transitive", + "source": "sdk", + "dependencies": [ + "process", + "vm_service", + "file", + "meta", + "path", + "platform" + ] + }, + { + "name": "url_launcher", + "version": "6.1.7", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "flutter", + "url_launcher_android", + "url_launcher_ios", + "url_launcher_linux", + "url_launcher_macos", + "url_launcher_platform_interface", + "url_launcher_web", + "url_launcher_windows" + ] + }, + { + "name": "url_launcher_windows", + "version": "3.0.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "url_launcher_platform_interface" + ] + }, + { + "name": "url_launcher_platform_interface", + "version": "2.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "plugin_platform_interface" + ] + }, + { + "name": "plugin_platform_interface", + "version": "2.1.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta" + ] + }, + { + "name": "url_launcher_web", + "version": "2.0.13", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "flutter_web_plugins", + "url_launcher_platform_interface" + ] + }, + { + "name": "flutter_web_plugins", + "version": "0.0.0", + "kind": "transitive", + "source": "sdk", + "dependencies": [ + "flutter", + "js", + "characters", + "collection", + "material_color_utilities", + "meta", + "vector_math" + ] + }, + { + "name": "url_launcher_macos", + "version": "3.0.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "url_launcher_platform_interface" + ] + }, + { + "name": "url_launcher_linux", + "version": "3.0.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "url_launcher_platform_interface" + ] + }, + { + "name": "url_launcher_ios", + "version": "6.0.17", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "url_launcher_platform_interface" + ] + }, + { + "name": "url_launcher_android", + "version": "6.0.22", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "url_launcher_platform_interface" + ] + }, + { + "name": "desktop_drop", + "version": "0.4.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "flutter", + "flutter_web_plugins", + "cross_file" + ] + }, + { + "name": "cross_file", + "version": "0.3.3+2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "js", + "meta" + ] + }, + { + "name": "qrscanner_zxing", + "version": "1.0.0", + "kind": "direct", + "source": "path", + "dependencies": [ + "flutter", + "plugin_platform_interface" + ] + }, + { + "name": "window_manager", + "version": "0.3.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "flutter", + "path", + "screen_retriever" + ] + }, + { + "name": "screen_retriever", + "version": "0.1.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter" + ] + }, + { + "name": "flutter_riverpod", + "version": "2.1.3", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "collection", + "flutter", + "meta", + "riverpod", + "state_notifier" + ] + }, + { + "name": "state_notifier", + "version": "0.7.2+1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta" + ] + }, + { + "name": "riverpod", + "version": "2.1.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "meta", + "stack_trace", + "state_notifier" + ] + }, + { + "name": "shared_preferences", + "version": "2.0.16", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "flutter", + "shared_preferences_android", + "shared_preferences_foundation", + "shared_preferences_linux", + "shared_preferences_platform_interface", + "shared_preferences_web", + "shared_preferences_windows" + ] + }, + { + "name": "shared_preferences_windows", + "version": "2.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "file", + "flutter", + "path", + "path_provider_platform_interface", + "path_provider_windows", + "shared_preferences_platform_interface" + ] + }, + { + "name": "shared_preferences_platform_interface", + "version": "2.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "plugin_platform_interface" + ] + }, + { + "name": "path_provider_windows", + "version": "2.1.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "ffi", + "flutter", + "path", + "path_provider_platform_interface", + "win32" + ] + }, + { + "name": "win32", + "version": "3.1.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "ffi" + ] + }, + { + "name": "ffi", + "version": "2.0.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "path_provider_platform_interface", + "version": "2.0.5", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "platform", + "plugin_platform_interface" + ] + }, + { + "name": "shared_preferences_web", + "version": "2.0.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "flutter_web_plugins", + "shared_preferences_platform_interface" + ] + }, + { + "name": "shared_preferences_linux", + "version": "2.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "file", + "flutter", + "path", + "path_provider_linux", + "path_provider_platform_interface", + "shared_preferences_platform_interface" + ] + }, + { + "name": "path_provider_linux", + "version": "2.1.7", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "ffi", + "flutter", + "path", + "path_provider_platform_interface", + "xdg_directories" + ] + }, + { + "name": "xdg_directories", + "version": "0.2.0+2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta", + "path", + "process" + ] + }, + { + "name": "shared_preferences_foundation", + "version": "2.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "shared_preferences_platform_interface" + ] + }, + { + "name": "shared_preferences_android", + "version": "2.0.14", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "shared_preferences_platform_interface" + ] + }, + { + "name": "intl", + "version": "0.17.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "clock", + "path" + ] + }, + { + "name": "flutter_localizations", + "version": "0.0.0", + "kind": "direct", + "source": "sdk", + "dependencies": [ + "flutter", + "intl", + "characters", + "clock", + "collection", + "js", + "material_color_utilities", + "meta", + "path", + "vector_math" + ] + } +] diff --git a/pkgs/build-support/dart/fetch-dart-deps/default.nix b/pkgs/build-support/dart/fetch-dart-deps/default.nix index a3ab2c2c73a2..9deb99648c08 100644 --- a/pkgs/build-support/dart/fetch-dart-deps/default.nix +++ b/pkgs/build-support/dart/fetch-dart-deps/default.nix @@ -4,6 +4,7 @@ , dart , git , cacert +, jq }: { @@ -151,13 +152,35 @@ let outputHashMode = "recursive"; outputHash = if vendorHash != "" then vendorHash else lib.fakeSha256; } // (removeAttrs drvArgs [ "name" "pname" ])); + + depsListDrv = stdenvNoCC.mkDerivation ({ + name = "${name}-dart-deps-list.json"; + nativeBuildInputs = [ hook dart jq ]; + + configurePhase = '' + runHook preConfigure + dart pub get --offline + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + dart pub deps --json | jq .packages > $out + runHook postBuild + ''; + } // buildDrvInheritArgs); + + hook = (makeSetupHook { + # The setup hook should not be part of the fixed-output derivation. + # Updates to the hook script should not change vendor hashes, and it won't + # work at all anyway due to https://github.com/NixOS/nix/issues/6660. + name = "${name}-dart-deps-setup-hook"; + substitutions = { inherit deps; }; + propagatedBuildInputs = [ dart git ]; + passthru = { + files = deps.outPath; + depsListFile = depsListDrv.outPath; + }; + }) ./setup-hook.sh; in -(makeSetupHook { - # The setup hook should not be part of the fixed-output derivation. - # Updates to the hook script should not change vendor hashes, and it won't - # work at all anyway due to https://github.com/NixOS/nix/issues/6660. - name = "${name}-dart-deps-setup-hook"; - substitutions = { inherit deps; }; - propagatedBuildInputs = [ dart git ]; - passthru.files = deps.outPath; -}) ./setup-hook.sh +hook diff --git a/pkgs/build-support/dart/list-dart-deps/default.nix b/pkgs/build-support/dart/list-dart-deps/default.nix deleted file mode 100644 index 5cafd7773d45..000000000000 --- a/pkgs/build-support/dart/list-dart-deps/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ stdenv -, dart -, jq -}: -deps: - -builtins.fromJSON (builtins.readFile (stdenv.mkDerivation { - name = "${deps.name}-list.json"; - nativeBuildInputs = [ deps dart jq ]; - - unpackPhase = '' - runHook preUnpack - ln -s "${deps.files}"/pubspec/* . - runHook postUnpack - ''; - - configurePhase = '' - runHook preConfigure - dart pub get --offline - runHook postConfigure - ''; - - buildPhase = '' - runHook preBuild - dart pub deps --json | jq .packages > $out - runHook postBuild - ''; -})) diff --git a/pkgs/build-support/flutter/default.nix b/pkgs/build-support/flutter/default.nix index 70428736c324..622a19c32bd0 100644 --- a/pkgs/build-support/flutter/default.nix +++ b/pkgs/build-support/flutter/default.nix @@ -5,6 +5,7 @@ , llvmPackages_13 , cacert , flutter +, jq }: # absolutely no mac support for now @@ -13,9 +14,11 @@ , flutterBuildFlags ? [ ] , runtimeDependencies ? [ ] , customPackageOverrides ? { } +, depsListFile ? null , vendorHash , pubspecLockFile ? null , nativeBuildInputs ? [ ] +, preUnpack ? "" , postFixup ? "" , ... }@args: @@ -41,8 +44,19 @@ let makeWrapper deps flutter + jq ] ++ nativeBuildInputs; + preUnpack = '' + 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 copy the contents of ${finalAttrs.passthru.depsListFile} to a new file to pass to the depsListFile argument.' + exit 1 + fi + + ${preUnpack} + ''; + configurePhase = '' runHook preConfigure @@ -106,11 +120,14 @@ let ${postFixup} ''; + + passthru = { + inherit (deps) depsListFile; + }; }); packageOverrideRepository = (callPackage ../../development/compilers/flutter/package-overrides { }) // customPackageOverrides; - packages = callPackage ../dart/list-dart-deps { dart = flutter; } deps; - productPackages = builtins.filter (package: package.kind != "dev") packages; + productPackages = builtins.filter (package: package.kind != "dev") (if depsListFile == null then [ ] else (builtins.fromJSON (builtins.readFile depsListFile))); in builtins.foldl' (prev: package: diff --git a/pkgs/os-specific/linux/firmware/firmware-updater/default.nix b/pkgs/os-specific/linux/firmware/firmware-updater/default.nix index d6dfa4dbae34..13421c5cc8bd 100644 --- a/pkgs/os-specific/linux/firmware/firmware-updater/default.nix +++ b/pkgs/os-specific/linux/firmware/firmware-updater/default.nix @@ -8,6 +8,7 @@ flutter2.buildFlutterApplication { version = "unstable"; pubspecLockFile = ./pubspec.lock; + depsListFile = ./deps.json; vendorHash = "sha256-kKfe+7obb2fihrca+mjCM2+51wNkbPLEPFLpXzK5Wvc="; src = fetchFromGitHub { diff --git a/pkgs/os-specific/linux/firmware/firmware-updater/deps.json b/pkgs/os-specific/linux/firmware/firmware-updater/deps.json new file mode 100644 index 000000000000..9264a9fb70ee --- /dev/null +++ b/pkgs/os-specific/linux/firmware/firmware-updater/deps.json @@ -0,0 +1,763 @@ +[ + { + "name": "firmware_updater", + "version": "0.0.0", + "kind": "root", + "source": "root", + "dependencies": [ + "collection", + "dio", + "flutter", + "flutter_html", + "flutter_localizations", + "fwupd", + "path", + "provider", + "yaru", + "yaru_icons", + "yaru_widgets", + "flutter_lints", + "flutter_test" + ] + }, + { + "name": "flutter_test", + "version": "0.0.0", + "kind": "dev", + "source": "sdk", + "dependencies": [ + "flutter", + "test_api", + "path", + "fake_async", + "clock", + "stack_trace", + "vector_math", + "async", + "boolean_selector", + "characters", + "charcode", + "collection", + "matcher", + "material_color_utilities", + "meta", + "source_span", + "stream_channel", + "string_scanner", + "term_glyph", + "typed_data" + ] + }, + { + "name": "typed_data", + "version": "1.3.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection" + ] + }, + { + "name": "collection", + "version": "1.15.0", + "kind": "direct", + "source": "hosted", + "dependencies": [] + }, + { + "name": "term_glyph", + "version": "1.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "string_scanner", + "version": "1.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "charcode", + "source_span" + ] + }, + { + "name": "source_span", + "version": "1.8.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "path", + "term_glyph" + ] + }, + { + "name": "path", + "version": "1.8.0", + "kind": "direct", + "source": "hosted", + "dependencies": [] + }, + { + "name": "charcode", + "version": "1.3.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "stream_channel", + "version": "2.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async" + ] + }, + { + "name": "async", + "version": "2.8.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "meta" + ] + }, + { + "name": "meta", + "version": "1.7.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "material_color_utilities", + "version": "0.1.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "matcher", + "version": "0.12.11", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "stack_trace" + ] + }, + { + "name": "stack_trace", + "version": "1.10.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "path" + ] + }, + { + "name": "characters", + "version": "1.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "boolean_selector", + "version": "2.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "source_span", + "string_scanner" + ] + }, + { + "name": "vector_math", + "version": "2.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "clock", + "version": "1.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "fake_async", + "version": "1.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "clock", + "collection" + ] + }, + { + "name": "test_api", + "version": "0.4.8", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "boolean_selector", + "collection", + "meta", + "source_span", + "stack_trace", + "stream_channel", + "string_scanner", + "term_glyph", + "matcher" + ] + }, + { + "name": "flutter", + "version": "0.0.0", + "kind": "direct", + "source": "sdk", + "dependencies": [ + "characters", + "collection", + "material_color_utilities", + "meta", + "typed_data", + "vector_math", + "sky_engine" + ] + }, + { + "name": "sky_engine", + "version": "0.0.99", + "kind": "transitive", + "source": "sdk", + "dependencies": [] + }, + { + "name": "flutter_lints", + "version": "1.0.4", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "lints" + ] + }, + { + "name": "lints", + "version": "1.0.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "yaru_widgets", + "version": "1.0.8", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "flutter" + ] + }, + { + "name": "yaru_icons", + "version": "0.1.3", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "flutter" + ] + }, + { + "name": "yaru", + "version": "0.2.5", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "flutter" + ] + }, + { + "name": "provider", + "version": "6.0.5", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "collection", + "flutter", + "nested" + ] + }, + { + "name": "nested", + "version": "1.0.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter" + ] + }, + { + "name": "fwupd", + "version": "0.2.2", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "collection", + "dbus", + "meta" + ] + }, + { + "name": "dbus", + "version": "0.7.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "args", + "ffi", + "meta", + "xml" + ] + }, + { + "name": "xml", + "version": "5.3.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "meta", + "petitparser" + ] + }, + { + "name": "petitparser", + "version": "4.4.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta" + ] + }, + { + "name": "ffi", + "version": "1.2.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "args", + "version": "2.3.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "flutter_localizations", + "version": "0.0.0", + "kind": "direct", + "source": "sdk", + "dependencies": [ + "flutter", + "intl", + "characters", + "clock", + "collection", + "material_color_utilities", + "meta", + "path", + "typed_data", + "vector_math" + ] + }, + { + "name": "intl", + "version": "0.17.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "clock", + "path" + ] + }, + { + "name": "flutter_html", + "version": "2.2.1", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "html", + "csslib", + "flutter_layout_grid", + "video_player", + "chewie", + "webview_flutter", + "chewie_audio", + "flutter_svg", + "flutter_math_fork", + "collection", + "numerus", + "flutter" + ] + }, + { + "name": "numerus", + "version": "1.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "flutter_math_fork", + "version": "0.5.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "flutter_svg", + "provider", + "meta", + "collection", + "tuple" + ] + }, + { + "name": "tuple", + "version": "2.0.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "flutter_svg", + "version": "0.23.0+1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "meta", + "path_drawing", + "vector_math", + "xml" + ] + }, + { + "name": "path_drawing", + "version": "0.5.1+1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "vector_math", + "meta", + "path_parsing", + "flutter" + ] + }, + { + "name": "path_parsing", + "version": "0.2.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "vector_math", + "meta" + ] + }, + { + "name": "chewie_audio", + "version": "1.3.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "cupertino_icons", + "flutter", + "video_player" + ] + }, + { + "name": "video_player", + "version": "2.5.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "html", + "video_player_android", + "video_player_avfoundation", + "video_player_platform_interface", + "video_player_web" + ] + }, + { + "name": "video_player_web", + "version": "2.0.13", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "flutter_web_plugins", + "video_player_platform_interface" + ] + }, + { + "name": "video_player_platform_interface", + "version": "6.0.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "plugin_platform_interface" + ] + }, + { + "name": "plugin_platform_interface", + "version": "2.1.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta" + ] + }, + { + "name": "flutter_web_plugins", + "version": "0.0.0", + "kind": "transitive", + "source": "sdk", + "dependencies": [ + "flutter", + "js", + "characters", + "collection", + "material_color_utilities", + "meta", + "typed_data", + "vector_math" + ] + }, + { + "name": "js", + "version": "0.6.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "video_player_avfoundation", + "version": "2.3.8", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "video_player_platform_interface" + ] + }, + { + "name": "video_player_android", + "version": "2.3.10", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "video_player_platform_interface" + ] + }, + { + "name": "html", + "version": "0.15.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "csslib", + "source_span" + ] + }, + { + "name": "csslib", + "version": "0.17.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "source_span" + ] + }, + { + "name": "cupertino_icons", + "version": "1.0.5", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "webview_flutter", + "version": "2.8.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "webview_flutter_android", + "webview_flutter_platform_interface", + "webview_flutter_wkwebview" + ] + }, + { + "name": "webview_flutter_wkwebview", + "version": "2.7.5", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "path", + "webview_flutter_platform_interface" + ] + }, + { + "name": "webview_flutter_platform_interface", + "version": "1.9.5", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "meta", + "plugin_platform_interface" + ] + }, + { + "name": "webview_flutter_android", + "version": "2.8.14", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "webview_flutter_platform_interface" + ] + }, + { + "name": "chewie", + "version": "1.4.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "cupertino_icons", + "flutter", + "provider", + "video_player", + "wakelock" + ] + }, + { + "name": "wakelock", + "version": "0.6.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "meta", + "wakelock_macos", + "wakelock_platform_interface", + "wakelock_web", + "wakelock_windows" + ] + }, + { + "name": "wakelock_windows", + "version": "0.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "wakelock_platform_interface", + "win32" + ] + }, + { + "name": "win32", + "version": "2.5.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "ffi" + ] + }, + { + "name": "wakelock_platform_interface", + "version": "0.3.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "meta" + ] + }, + { + "name": "wakelock_web", + "version": "0.4.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "flutter_web_plugins", + "js", + "wakelock_platform_interface" + ] + }, + { + "name": "wakelock_macos", + "version": "0.4.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "flutter_web_plugins", + "wakelock_platform_interface" + ] + }, + { + "name": "flutter_layout_grid", + "version": "1.0.6", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "collection", + "meta", + "quiver" + ] + }, + { + "name": "quiver", + "version": "3.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "matcher" + ] + }, + { + "name": "dio", + "version": "4.0.6", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "http_parser", + "path" + ] + }, + { + "name": "http_parser", + "version": "4.0.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "source_span", + "string_scanner", + "typed_data" + ] + } +]