diff --git a/doc/languages-frameworks/idris2.section.md b/doc/languages-frameworks/idris2.section.md new file mode 100644 index 000000000000..47bcbf46aee9 --- /dev/null +++ b/doc/languages-frameworks/idris2.section.md @@ -0,0 +1,47 @@ +# Idris2 {#sec-idris2} + +In addition to exposing the Idris2 compiler itself, Nixpkgs exposes an `idris2Packages.buildIdris` helper to make it a bit more ergonomic to build Idris2 executables or libraries. + +The `buildIdris` function takes a package set that defines at a minimum the `src` and `projectName` of the package to be built and any `idrisLibraries` required to build it. The `src` is the same source you're familiar with but the `projectName` must be the name of the `ipkg` file for the project (omitting the `.ipkg` extension). The `idrisLibraries` is a list of other library derivations created with `buildIdris`. You can optionally specify other derivation properties as needed but sensible defaults for `configurePhase`, `buildPhase`, and `installPhase` are provided. + +Importantly, `buildIdris` does not create a single derivation but rather an attribute set with two properties: `executable` and `library`. The `executable` property is a derivation and the `library` property is a function that will return a derivation for the library with or without source code included. Source code need not be included unless you are aiming to use IDE or LSP features that are able to jump to definitions within an editor. + +A simple example of a fully packaged library would be the [`LSP-lib`](https://github.com/idris-community/LSP-lib) found in the `idris-community` GitHub organization. +```nix +{ fetchFromGitHub, idris2Packages }: +let lspLibPkg = idris2Packages.buildIdris { + projectName = "lsp-lib"; + src = fetchFromGitHub { + owner = "idris-community"; + repo = "LSP-lib"; + rev = "main"; + hash = "sha256-EvSyMCVyiy9jDZMkXQmtwwMoLaem1GsKVFqSGNNHHmY="; + }; + idrisLibraries = [ ]; +}; +in lspLibPkg.library +``` + +The above results in a derivation with the installed library results (with sourcecode). + +A slightly more involved example of a fully packaged executable would be the [`idris2-lsp`](https://github.com/idris-community/idris2-lsp) which is an Idris2 language server that uses the `LSP-lib` found above. +```nix +{ callPackage, fetchFromGitHub, idris2Packages }: + +# Assuming the previous example lives in `lsp-lib.nix`: +let lspLib = callPackage ./lsp-lib.nix { }; + lspPkg = idris2Packages.buildIdris { + projectName = "idris2-lsp"; + src = fetchFromGitHub { + owner = "idris-community"; + repo = "idris2-lsp"; + rev = "main"; + hash = "sha256-vQTzEltkx7uelDtXOHc6QRWZ4cSlhhm5ziOqWA+aujk="; + }; + idrisLibraries = [(idris2Packages.idris2Api { }) (lspLib { })]; + }; +in lspPkg.executable +``` + +The above uses the default value of `withSource = false` for both of the two required Idris libraries that the `idris2-lsp` executable depends on. `idris2Api` in the above derivation comes built in with `idris2Packages`. This library exposes many of the otherwise internal APIs of the Idris2 compiler. + diff --git a/doc/languages-frameworks/index.md b/doc/languages-frameworks/index.md index f177de507841..67107fb5b687 100644 --- a/doc/languages-frameworks/index.md +++ b/doc/languages-frameworks/index.md @@ -21,6 +21,7 @@ go.section.md haskell.section.md hy.section.md idris.section.md +idris2.section.md ios.section.md java.section.md javascript.section.md diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index b585d45fd8f1..db3539e03140 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1288,6 +1288,7 @@ a-n-n-a-l-e-e = { github = "a-n-n-a-l-e-e"; githubId = 150648636; + matrix = "@a-n-n-a-l-e-e:matrix.org"; name = "annalee"; }; anoa = { @@ -10289,6 +10290,12 @@ githubId = 21087104; name = "Laurent Fainsin"; }; + lavafroth = { + email = "lavafroth@protonmail.com"; + github = "lavafroth"; + githubId = 107522312; + name = "Himadri Bhattacharjee"; + }; layus = { email = "layus.on@gmail.com"; github = "layus"; @@ -11607,6 +11614,12 @@ githubId = 279868; name = "Matti Kariluoma"; }; + mattpolzin = { + email = "matt.polzin@gmail.com"; + github = "mattpolzin"; + githubId = 2075353; + name = "Matt Polzin"; + }; matt-snider = { email = "matt.snider@protonmail.com"; github = "matt-snider"; @@ -14269,6 +14282,12 @@ githubId = 15645854; name = "Brad Christensen"; }; + patwid = { + email = "patrick.widmer@tbwnet.ch"; + github = "patwid"; + githubId = 25278658; + name = "Patrick Widmer"; + }; paulsmith = { email = "paulsmith@pobox.com"; github = "paulsmith"; @@ -18411,6 +18430,15 @@ fingerprint = "D2A2 F0A1 E7A8 5E6F B711 DEE5 63A4 4817 A52E AB7B"; }]; }; + theaninova = { + name = "Thea Schöbl"; + email = "dev@theaninova.de"; + github = "Theaninova"; + githubId = 19289296; + keys = [{ + fingerprint = "6C9E EFC5 1AE0 0131 78DE B9C8 68FF FB1E C187 88CA"; + }]; + }; the-argus = { email = "i.mcfarlane2002@gmail.com"; github = "the-argus"; diff --git a/pkgs/applications/audio/reaper/default.nix b/pkgs/applications/audio/reaper/default.nix index 80b46356fb45..9d943ca9c415 100644 --- a/pkgs/applications/audio/reaper/default.nix +++ b/pkgs/applications/audio/reaper/default.nix @@ -28,13 +28,13 @@ let in stdenv.mkDerivation rec { pname = "reaper"; - version = "7.07"; + version = "7.08"; src = fetchurl { url = url_for_platform version stdenv.hostPlatform.qemuArch; - hash = if stdenv.isDarwin then "sha256-w1tP7PveKEMMo0jOCDla+NmAdIgrin8UPtprEZ/KgOc=" else { - x86_64-linux = "sha256-u7sc8ZGuieUa8yKKAhVaFHEcFyWrmtTBcHXIkJRE/Ac="; - aarch64-linux = "sha256-MTVNRSo3SOuFOJXDlQ5nBDJWRM3sQg1iVm1VEXOnZfg="; + hash = if stdenv.isDarwin then "sha256-PgYAwSSRwew+QLx6/Gs+J1v3iZ4U22bn6V8XWZk8Pz0=" else { + x86_64-linux = "sha256-lya/B9k9uWrvRbMnWRT0YDV9o+DpmjPGynBVPFij3rs="; + aarch64-linux = "sha256-0ePUvVrArUdg0t+CQK37yXA4UlHlMj2Mafe0dTyz5JU="; }.${stdenv.hostPlatform.system}; }; diff --git a/pkgs/applications/networking/instant-messengers/fluffychat/default.nix b/pkgs/applications/networking/instant-messengers/fluffychat/default.nix index bfc175f797d7..bdd41c4cfa64 100644 --- a/pkgs/applications/networking/instant-messengers/fluffychat/default.nix +++ b/pkgs/applications/networking/instant-messengers/fluffychat/default.nix @@ -3,7 +3,7 @@ , imagemagick , mesa , libdrm -, flutter +, flutter313 , pulseaudio , makeDesktopItem , gnome @@ -12,7 +12,7 @@ let libwebrtcRpath = lib.makeLibraryPath [ mesa libdrm ]; in -flutter.buildFlutterApplication rec { +flutter313.buildFlutterApplication rec { pname = "fluffychat"; version = "1.14.1"; diff --git a/pkgs/applications/networking/localsend/default.nix b/pkgs/applications/networking/localsend/default.nix index c5a6d5f3f913..c5a3a4c9cda5 100644 --- a/pkgs/applications/networking/localsend/default.nix +++ b/pkgs/applications/networking/localsend/default.nix @@ -2,7 +2,7 @@ , stdenv , fetchurl , fetchFromGitHub -, flutter +, flutter313 , makeDesktopItem , pkg-config , libayatana-appindicator @@ -13,7 +13,7 @@ let pname = "localsend"; version = "1.12.0"; - linux = flutter.buildFlutterApplication { + linux = flutter313.buildFlutterApplication { inherit pname version; src = fetchFromGitHub { diff --git a/pkgs/applications/science/logic/msat/default.nix b/pkgs/applications/science/logic/msat/default.nix new file mode 100644 index 000000000000..dc2b1a221199 --- /dev/null +++ b/pkgs/applications/science/logic/msat/default.nix @@ -0,0 +1,13 @@ +{ lib, ocamlPackages }: + +with ocamlPackages; buildDunePackage { + pname = "msat-bin"; + + inherit (msat) version src; + + buildInputs = [ camlzip containers msat ]; + + meta = msat.meta // { + description = "SAT solver binary based on the msat library"; + }; +} diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix index 6ce3d47e1172..3debac4c6fb4 100644 --- a/pkgs/applications/virtualization/qemu/default.nix +++ b/pkgs/applications/virtualization/qemu/default.nix @@ -23,7 +23,7 @@ , cephSupport ? false, ceph , glusterfsSupport ? false, glusterfs, libuuid , openGLSupport ? sdlSupport, mesa, libepoxy, libdrm -, rutabagaSupport ? openGLSupport && !toolsOnly, rutabaga_gfx +, rutabagaSupport ? openGLSupport && !toolsOnly && lib.meta.availableOn stdenv.hostPlatform rutabaga_gfx, rutabaga_gfx , virglSupport ? openGLSupport, virglrenderer , libiscsiSupport ? !toolsOnly, libiscsi , smbdSupport ? false, samba diff --git a/pkgs/build-support/dart/pub2nix/package-config.nix b/pkgs/build-support/dart/pub2nix/package-config.nix index 309e51ec84a1..70abb0a76cef 100644 --- a/pkgs/build-support/dart/pub2nix/package-config.nix +++ b/pkgs/build-support/dart/pub2nix/package-config.nix @@ -41,7 +41,7 @@ in fi languageConstraint="$(yq -r .environment.sdk "''${packageSources["$package"]}/''${packageRoots["$package"]}/pubspec.yaml")" - if [[ "$languageConstraint" =~ ^[[:space:]]*(\^|>=|>|)[[:space:]]*([[:digit:]]+\.[[:digit:]]+)\.[[:digit:]]+.*$ ]]; then + if [[ "$languageConstraint" =~ ^[[:space:]]*(\^|>=|>)?[[:space:]]*([[:digit:]]+\.[[:digit:]]+)\.[[:digit:]]+.*$ ]]; then languageVersionJson="\"''${BASH_REMATCH[2]}\"" elif [ "$languageConstraint" = 'any' ]; then languageVersionJson='null' diff --git a/pkgs/build-support/fetchgithub/default.nix b/pkgs/build-support/fetchgithub/default.nix index 231c0fb622b9..37f7dcfa3006 100644 --- a/pkgs/build-support/fetchgithub/default.nix +++ b/pkgs/build-support/fetchgithub/default.nix @@ -28,7 +28,7 @@ let useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone || forceFetchGit || (sparseCheckout != []); # We prefer fetchzip in cases we don't need submodules as the hash # is more stable in that case. - fetcher = if useFetchGit then fetchgit else fetchzip; + fetcher = if useFetchGit then fetchgit else fetchzip.override { withUnzip = false; }; privateAttrs = lib.optionalAttrs private { netrcPhase = '' if [ -z "''$${varBase}USERNAME" -o -z "''$${varBase}PASSWORD" ]; then diff --git a/pkgs/build-support/fetchzip/default.nix b/pkgs/build-support/fetchzip/default.nix index 6e6c5270a750..dd04ccb6e093 100644 --- a/pkgs/build-support/fetchzip/default.nix +++ b/pkgs/build-support/fetchzip/default.nix @@ -5,7 +5,7 @@ # (e.g. due to minor changes in the compression algorithm, or changes # in timestamps). -{ lib, fetchurl, unzip, glibcLocalesUtf8 }: +{ lib, fetchurl, withUnzip ? true, unzip, glibcLocalesUtf8 }: { name ? "source" , url ? "" @@ -42,7 +42,7 @@ fetchurl ({ # Have to pull in glibcLocalesUtf8 for unzip in setup-hook.sh to handle # UTF-8 aware locale: # https://github.com/NixOS/nixpkgs/issues/176225#issuecomment-1146617263 - nativeBuildInputs = [ unzip glibcLocalesUtf8 ] ++ nativeBuildInputs; + nativeBuildInputs = lib.optionals withUnzip [ unzip glibcLocalesUtf8 ] ++ nativeBuildInputs; postFetch = '' diff --git a/pkgs/by-name/br/bruno/package.nix b/pkgs/by-name/br/bruno/package.nix index dcacc86071b1..15bbceb35d22 100644 --- a/pkgs/by-name/br/bruno/package.nix +++ b/pkgs/by-name/br/bruno/package.nix @@ -1,5 +1,6 @@ { lib +, stdenv , fetchFromGitHub , buildNpmPackage , nix-update-script @@ -34,9 +35,10 @@ buildNpmPackage rec { nativeBuildInputs = [ (writeShellScriptBin "phantomjs" "echo 2.1.1") + pkg-config + ] ++ lib.optionals (! stdenv.isDarwin) [ makeWrapper copyDesktopItems - pkg-config ]; buildInputs = [ @@ -74,11 +76,27 @@ buildNpmPackage rec { pushd packages/bruno-electron + ${if stdenv.isDarwin then '' + cp -r ${electron}/Applications/Electron.app ./ + find ./Electron.app -name 'Info.plist' | xargs -d '\n' chmod +rw + + substituteInPlace electron-builder-config.js \ + --replace "identity: 'Anoop MD (W7LPPWA48L)'" 'identity: null' \ + --replace "afterSign: 'notarize.js'," "" + + npm exec electron-builder -- \ + --dir \ + --config electron-builder-config.js \ + -c.electronDist=./ \ + -c.electronVersion=${electron.version} \ + -c.npmRebuild=false + '' else '' npm exec electron-builder -- \ --dir \ -c.electronDist=${electron}/libexec/electron \ -c.electronVersion=${electron.version} \ -c.npmRebuild=false + ''} popd ''; @@ -88,9 +106,15 @@ buildNpmPackage rec { installPhase = '' runHook preInstall + + ${if stdenv.isDarwin then '' + mkdir -p $out/Applications + + cp -R packages/bruno-electron/out/**/Bruno.app $out/Applications/ + '' else '' mkdir -p $out/opt/bruno $out/bin - cp -r packages/bruno-electron/dist/linux-unpacked/{locales,resources{,.pak}} $out/opt/bruno + cp -r packages/bruno-electron/dist/linux*-unpacked/{locales,resources{,.pak}} $out/opt/bruno makeWrapper ${lib.getExe electron} $out/bin/bruno \ --add-flags $out/opt/bruno/resources/app.asar \ @@ -102,6 +126,7 @@ buildNpmPackage rec { size=${"$"}{s}x$s install -Dm644 $src/packages/bruno-electron/resources/icons/png/$size.png $out/share/icons/hicolor/$size/apps/bruno.png done + ''} runHook postInstall ''; @@ -113,7 +138,7 @@ buildNpmPackage rec { homepage = "https://www.usebruno.com"; inherit (electron.meta) platforms; license = licenses.mit; - maintainers = with maintainers; [ water-sucks lucasew kashw2 ]; + maintainers = with maintainers; [ water-sucks lucasew kashw2 mattpolzin ]; mainProgram = "bruno"; }; } diff --git a/pkgs/by-name/pm/pmtiles/package.nix b/pkgs/by-name/pm/pmtiles/package.nix new file mode 100644 index 000000000000..ffb24053f090 --- /dev/null +++ b/pkgs/by-name/pm/pmtiles/package.nix @@ -0,0 +1,28 @@ +{ lib, buildGoModule, fetchFromGitHub }: +buildGoModule rec { + pname = "pmtiles"; + version = "1.12.0"; + + src = fetchFromGitHub { + owner = "protomaps"; + repo = "go-pmtiles"; + rev = "v${version}"; + hash = "sha256-8gd6p4AAevtRkb/IZAXfxz8lioySf3s8lT6moi1IoWc="; + }; + + vendorHash = "sha256-gLFwGEUeH41bObG32MZznF7clct3h2GEvdZ2/KIiVb4="; + + ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=v${version}" ]; + + postInstall = '' + mv $out/bin/go-pmtiles $out/bin/pmtiles + ''; + + meta = with lib; { + description = "The single-file utility for creating and working with PMTiles archives"; + homepage = "https://github.com/protomaps/go-pmtiles"; + license = licenses.bsd3; + maintainers = [ maintainers.theaninova ]; + mainProgram = "pmtiles"; + }; +} diff --git a/pkgs/by-name/s3/s3scanner/package.nix b/pkgs/by-name/s3/s3scanner/package.nix new file mode 100644 index 000000000000..ab660d3e54bb --- /dev/null +++ b/pkgs/by-name/s3/s3scanner/package.nix @@ -0,0 +1,29 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "s3scanner"; + version = "3.0.4"; + + src = fetchFromGitHub { + owner = "sa7mon"; + repo = "s3scanner"; + rev = "v${version}"; + hash = "sha256-f1r5ubH7iLKuuEhs4MPNY779FjyASW1xOXtMtXvF/CY="; + }; + + ldflags = [ "-s -w" ]; + + vendorHash = "sha256-3Y1izt6xLg7aNJNqIEXROxR3IGAIIeptHlnoYEcuLew="; + + # Requires networking + doCheck = false; + + meta = with lib; { + description = "Scan for misconfigured S3 buckets across S3-compatible APIs"; + downloadPage = "https://github.com/sa7mon/S3Scanner/releases/tag/v${version}"; + homepage = "https://github.com/sa7mon/s3scanner"; + license = licenses.mit; + maintainers = with maintainers; [ lavafroth ]; + mainProgram = "s3scanner"; + }; +} diff --git a/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix b/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix index e0c1440a604f..0e1ce6e678cb 100644 --- a/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix +++ b/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix @@ -1,16 +1,22 @@ +# Schema: +# ${flutterVersion}.${targetPlatform}.${hostPlatform} +# +# aarch64-darwin as a host is not yet supported. +# https://github.com/flutter/flutter/issues/60118 { lib , runCommand , xorg , cacert , unzip -, platform +, flutterPlatform +, systemPlatform , flutter , hash }: let - platforms = [ + flutterPlatforms = [ "android" "ios" "web" @@ -24,21 +30,34 @@ let flutter' = flutter.override { # Use a version of Flutter with just enough capabilities to download # artifacts. - supportedTargetPlatforms = [ ]; + supportedTargetFlutterPlatforms = [ ]; + + # Modify flutter-tool's system platform in order to get the desired platform's hashes. + flutter = flutter.unwrapped.override { + flutterTools = flutter.unwrapped.tools.override { + inherit systemPlatform; + }; + }; }; in -runCommand "flutter-artifacts-${platform}" +runCommand "flutter-artifacts-${flutterPlatform}-${systemPlatform}" { nativeBuildInputs = [ xorg.lndir flutter' unzip ]; NIX_FLUTTER_TOOLS_VM_OPTIONS = "--root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt"; + NIX_FLUTTER_OPERATING_SYSTEM = { + "x86_64-linux" = "linux"; + "aarch64-linux" = "linux"; + "x86_64-darwin" = "macos"; + "aarch64-darwin" = "macos"; + }.${systemPlatform}; outputHash = hash; outputHashMode = "recursive"; outputHashAlgo = "sha256"; passthru = { - inherit platform; + inherit flutterPlatform; }; } '' export FLUTTER_ROOT="$NIX_BUILD_TOP" @@ -46,7 +65,7 @@ runCommand "flutter-artifacts-${platform}" rm -rf "$FLUTTER_ROOT/bin/cache" mkdir "$FLUTTER_ROOT/bin/cache" - HOME="$(mktemp -d)" flutter precache -v '--${platform}' ${builtins.concatStringsSep " " (map (p: "'--no-${p}'") (lib.remove platform platforms))} + HOME="$(mktemp -d)" flutter precache -v '--${flutterPlatform}' ${builtins.concatStringsSep " " (map (p: "'--no-${p}'") (lib.remove flutterPlatform flutterPlatforms))} rm -rf "$FLUTTER_ROOT/bin/cache/lockfile" find "$FLUTTER_ROOT" -type l -lname '${flutter'}/*' -delete diff --git a/pkgs/development/compilers/flutter/artifacts/hashes.nix b/pkgs/development/compilers/flutter/artifacts/hashes.nix deleted file mode 100644 index 551975acf662..000000000000 --- a/pkgs/development/compilers/flutter/artifacts/hashes.nix +++ /dev/null @@ -1,75 +0,0 @@ -# NOTICE: When updating these hashes, make sure that no additional platforms -# have been added to the `flutter precache` CLI. If any have, they may be -# included in every derivation, unless they are also added to the platform list -# in fetch-artifacts.nix. -# -# The known arguments are as follows: -# $ flutter precache --help --verbose -# Usage: flutter precache [arguments] -# -h, --help Print this usage information. -# -a, --all-platforms Precache artifacts for all host platforms. -# -f, --force Force re-downloading of artifacts. -# --[no-]android Precache artifacts for Android development. -# --[no-]android_gen_snapshot Precache gen_snapshot for Android development. -# --[no-]android_maven Precache Gradle dependencies for Android development. -# --[no-]android_internal_build Precache dependencies for internal Android development. -# --[no-]ios Precache artifacts for iOS development. -# --[no-]web Precache artifacts for web development. -# --[no-]linux Precache artifacts for Linux desktop development. -# --[no-]windows Precache artifacts for Windows desktop development. -# --[no-]macos Precache artifacts for macOS desktop development. -# --[no-]fuchsia Precache artifacts for Fuchsia development. -# --[no-]universal Precache artifacts required for any development platform. -# (defaults to on) -# --[no-]flutter_runner Precache the flutter runner artifacts. -# --[no-]use-unsigned-mac-binaries Precache the unsigned macOS binaries when available. - -# Schema: -# ${flutterVersion}.${targetPlatform}.${hostPlatform} -# -# aarch64-darwin as a host is not yet supported. -# https://github.com/flutter/flutter/issues/60118 -{ - "3.13.8" = { - android = { - x86_64-linux = "sha256-Uc36aBq8wQo2aEvjAPOoixZElWOE/GNRm2GUfhbwT3Y="; - aarch64-linux = "sha256-Uc36aBq8wQo2aEvjAPOoixZElWOE/GNRm2GUfhbwT3Y="; - x86_64-darwin = "sha256-v/6/GTj7732fEOIgSaoM00yaw2qNwOMuvbuoCvii7vQ="; - }; - fuchsia = { - x86_64-linux = "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk="; - aarch64-linux = "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk="; - x86_64-darwin = "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk="; - }; - ios = { - x86_64-linux = "sha256-QwkeGnutTVsm682CqxRtEd9rKUvN7zlAJcqkvAQYwao="; - aarch64-linux = "sha256-QwkeGnutTVsm682CqxRtEd9rKUvN7zlAJcqkvAQYwao="; - x86_64-darwin = "sha256-QwkeGnutTVsm682CqxRtEd9rKUvN7zlAJcqkvAQYwao="; - }; - linux = { - x86_64-linux = "sha256-0gIOwux3YBdmcXgwICr8dpftj1CauaBUX8Rt5GG0WSs="; - aarch64-linux = "sha256-drGHsuJoOCLqrhVrXczqJRCOtpeWVlqdWW0OSMS/l5M="; - x86_64-darwin = "sha256-0gIOwux3YBdmcXgwICr8dpftj1CauaBUX8Rt5GG0WSs="; - }; - macos = { - x86_64-linux = "sha256-9WqCJQ37mcGc5tzfqQoY5CqHWHGTizjXf9p73bdnNWc="; - aarch64-linux = "sha256-9WqCJQ37mcGc5tzfqQoY5CqHWHGTizjXf9p73bdnNWc="; - x86_64-darwin = "sha256-9WqCJQ37mcGc5tzfqQoY5CqHWHGTizjXf9p73bdnNWc="; - }; - universal = { - x86_64-linux = "sha256-wATt1UPjo/fh7RFO1vvcUAdo0dMAaaOUIuzYodsM0v0="; - aarch64-linux = "sha256-Z9bszNaIpCccG7OfvE5WFsw36dITiyCQAZ6p29+Yq68="; - x86_64-darwin = "sha256-qN5bAXRfQ78TWF3FLBIxWzUB5y5OrZVQTEilY5J/+2k="; - }; - web = { - x86_64-linux = "sha256-DVXJOOFxv7tKt3d0NaYMexkphEcr7+gDFV67I6iAYa0="; - aarch64-linux = "sha256-DVXJOOFxv7tKt3d0NaYMexkphEcr7+gDFV67I6iAYa0="; - x86_64-darwin = "sha256-DVXJOOFxv7tKt3d0NaYMexkphEcr7+gDFV67I6iAYa0="; - }; - windows = { - x86_64-linux = "sha256-s8fJtwQkuZaGXr6vrPiKfpwP/NfewbETwyp9ERGqHYI="; - aarch64-linux = "sha256-s8fJtwQkuZaGXr6vrPiKfpwP/NfewbETwyp9ERGqHYI="; - x86_64-darwin = "sha256-s8fJtwQkuZaGXr6vrPiKfpwP/NfewbETwyp9ERGqHYI="; - }; - }; -} diff --git a/pkgs/development/compilers/flutter/artifacts/prepare-artifacts.nix b/pkgs/development/compilers/flutter/artifacts/prepare-artifacts.nix index 9714d25c6f9b..9309c6429828 100644 --- a/pkgs/development/compilers/flutter/artifacts/prepare-artifacts.nix +++ b/pkgs/development/compilers/flutter/artifacts/prepare-artifacts.nix @@ -20,7 +20,7 @@ runHook postInstall ''; }).overrideAttrs ( - if builtins.pathExists ./overrides/${src.platform}.nix - then callPackage ./overrides/${src.platform}.nix { } + if builtins.pathExists ./overrides/${src.flutterPlatform}.nix + then callPackage ./overrides/${src.flutterPlatform}.nix { } else ({ ... }: { }) ) diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix index 382e9143810a..29d5d415b8a0 100644 --- a/pkgs/development/compilers/flutter/default.nix +++ b/pkgs/development/compilers/flutter/default.nix @@ -4,7 +4,7 @@ let wrapFlutter = flutter: callPackage ./wrapper.nix { inherit flutter; }; getPatches = dir: let files = builtins.attrNames (builtins.readDir dir); - in map (f: dir + ("/" + f)) files; + in if (builtins.pathExists dir) then map (f: dir + ("/" + f)) files else [ ]; mkFlutter = { version , engineVersion @@ -13,10 +13,11 @@ let , dartHash , patches , pubspecLock + , artifactHashes }: let args = { - inherit version engineVersion patches pubspecLock; + inherit version engineVersion patches pubspecLock artifactHashes; dart = dart.override { version = dartVersion; @@ -53,28 +54,24 @@ let buildFlutterApplication = callPackage ../../../build-support/flutter { # Package a minimal version of Flutter that only uses Linux desktop release artifacts. flutter = (wrapFlutter (mkCustomFlutter args)).override { - supportedTargetPlatforms = [ "universal" "linux" ]; + supportedTargetFlutterPlatforms = [ "universal" "linux" ]; }; }; }; }); - flutter3Patches = getPatches ./patches/flutter3; + flutterVersions = lib.mapAttrs' + (version: _: + let + versionDir = ./versions + "/${version}"; + data = lib.importJSON (versionDir + "/data.json"); + in + lib.nameValuePair "v${version}" (wrapFlutter (mkFlutter ({ + patches = (getPatches ./patches) ++ (getPatches (versionDir + "/patches")); + } // data)))) + (builtins.readDir ./versions); in -{ - inherit wrapFlutter; - stable = mkFlutter { - version = "3.13.8"; - engineVersion = "767d8c75e898091b925519803830fc2721658d07"; - dartVersion = "3.1.4"; - dartHash = { - x86_64-linux = "sha256-42wrqzjRcFDWw2aEY6+/faX+QE9PA8FmRWP4M/NkgBE="; - aarch64-linux = "sha256-/tWWWwTOgXHbwzotc7ZDDZa8+cbX6NODGYrjLK9gPPg="; - x86_64-darwin = "sha256-BchKowKd6BscVuk/dXibcQzdFkW9//GDfll77mHEI4M="; - aarch64-darwin = "sha256-9yrx09vYrOTmdqkfJI7mfh7DI1/rg67tPlf82m5+iKI="; - }; - flutterHash = "sha256-00G030FvZZTsdf9ruFs9jdIHcC5h+xpp4NlmL64qVZA="; - patches = flutter3Patches; - pubspecLock = lib.importJSON ./lockfiles/stable/pubspec.lock.json; - }; +flutterVersions // { + stable = flutterVersions.${lib.last (lib.naturalSort (builtins.attrNames flutterVersions))}; + inherit wrapFlutter mkFlutter; } diff --git a/pkgs/development/compilers/flutter/flutter-tools.nix b/pkgs/development/compilers/flutter/flutter-tools.nix index 4435c8fb6c76..55fee5630c16 100644 --- a/pkgs/development/compilers/flutter/flutter-tools.nix +++ b/pkgs/development/compilers/flutter/flutter-tools.nix @@ -1,4 +1,4 @@ -{ hostPlatform +{ systemPlatform , buildDartApplication , git , which @@ -35,7 +35,7 @@ buildDartApplication.override { inherit dart; } rec { ''; dartEntryPoints."flutter_tools.snapshot" = "bin/flutter_tools.dart"; - dartCompileFlags = [ "--define=NIX_FLUTTER_HOST_PLATFORM=${hostPlatform.system}" ]; + dartCompileFlags = [ "--define=NIX_FLUTTER_HOST_PLATFORM=${systemPlatform}" ]; # The Dart wrapper launchers are useless for the Flutter tool - it is designed # to be launched from a snapshot by the SDK. diff --git a/pkgs/development/compilers/flutter/flutter.nix b/pkgs/development/compilers/flutter/flutter.nix index 1e68a3b02a9e..42129501ca12 100644 --- a/pkgs/development/compilers/flutter/flutter.nix +++ b/pkgs/development/compilers/flutter/flutter.nix @@ -4,6 +4,7 @@ , dart , src , pubspecLock +, artifactHashes ? null , lib , stdenv , callPackage @@ -11,23 +12,24 @@ , darwin , git , which -}: - -let - tools = callPackage ./flutter-tools.nix { +, jq +, flutterTools ? callPackage ./flutter-tools.nix { inherit dart version; flutterSrc = src; inherit patches; inherit pubspecLock; - }; + systemPlatform = stdenv.hostPlatform.system; + } +}: +let unwrapped = stdenv.mkDerivation { name = "flutter-${version}-unwrapped"; inherit src patches version; buildInputs = [ git ]; - nativeBuildInputs = [ makeWrapper ] + nativeBuildInputs = [ makeWrapper jq ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ]; preConfigure = '' @@ -58,15 +60,28 @@ let # Add a flutter_tools artifact stamp, and build a snapshot. # This is the Flutter CLI application. echo "$(git rev-parse HEAD)" > bin/cache/flutter_tools.stamp - ln -s '${tools}/share/flutter_tools.snapshot' bin/cache/flutter_tools.snapshot + ln -s '${flutterTools}/share/flutter_tools.snapshot' bin/cache/flutter_tools.snapshot # Some of flutter_tools's dependencies contain static assets. The # application attempts to read its own package_config.json to find these # assets at runtime. mkdir -p packages/flutter_tools/.dart_tool - ln -s '${tools.pubcache}/package_config.json' packages/flutter_tools/.dart_tool/package_config.json + ln -s '${flutterTools.pubcache}/package_config.json' packages/flutter_tools/.dart_tool/package_config.json echo -n "${version}" > version + cat < bin/cache/flutter.version.json + { + "devToolsVersion": "$(cat "${dart}/bin/resources/devtools/version.json" | jq -r .version)", + "flutterVersion": "${version}", + "frameworkVersion": "${version}", + "channel": "stable", + "repositoryUrl": "https://github.com/flutter/flutter.git", + "frameworkRevision": "nixpkgs000000000000000000000000000000000", + "frameworkCommitDate": "1970-01-01 00:00:00", + "engineRevision": "${engineVersion}", + "dartSdkVersion": "${dart.version}" + } + EOF ''; installPhase = '' @@ -105,7 +120,8 @@ let ''; passthru = { - inherit dart engineVersion tools; + inherit dart engineVersion artifactHashes; + tools = flutterTools; # The derivation containing the original Flutter SDK files. # When other derivations wrap this one, any unmodified files # found here should be included as-is, for tooling compatibility. diff --git a/pkgs/development/compilers/flutter/lockfiles/stable/pubspec.lock.json b/pkgs/development/compilers/flutter/lockfiles/stable/pubspec.lock.json deleted file mode 100644 index 517092d8ee4e..000000000000 --- a/pkgs/development/compilers/flutter/lockfiles/stable/pubspec.lock.json +++ /dev/null @@ -1,847 +0,0 @@ -{ - "packages": { - "_fe_analyzer_shared": { - "dependency": "direct main", - "description": { - "name": "_fe_analyzer_shared", - "sha256": "ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "61.0.0" - }, - "analyzer": { - "dependency": "direct main", - "description": { - "name": "analyzer", - "sha256": "ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "5.13.0" - }, - "archive": { - "dependency": "direct main", - "description": { - "name": "archive", - "sha256": "80e5141fafcb3361653ce308776cfd7d45e6e9fbb429e14eec571382c0c5fecb", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.3.2" - }, - "args": { - "dependency": "direct main", - "description": { - "name": "args", - "sha256": "eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.4.2" - }, - "async": { - "dependency": "direct main", - "description": { - "name": "async", - "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.11.0" - }, - "boolean_selector": { - "dependency": "direct main", - "description": { - "name": "boolean_selector", - "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.1" - }, - "browser_launcher": { - "dependency": "direct main", - "description": { - "name": "browser_launcher", - "sha256": "6ee4c6b1f68a42e769ef6e663c4f56708522f7bce9d2ab6e308a37b612ffa4ec", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.1.1" - }, - "built_collection": { - "dependency": "direct main", - "description": { - "name": "built_collection", - "sha256": "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "5.1.1" - }, - "built_value": { - "dependency": "direct main", - "description": { - "name": "built_value", - "sha256": "598a2a682e2a7a90f08ba39c0aaa9374c5112340f0a2e275f61b59389543d166", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "8.6.1" - }, - "checked_yaml": { - "dependency": "direct dev", - "description": { - "name": "checked_yaml", - "sha256": "feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.0.3" - }, - "clock": { - "dependency": "direct main", - "description": { - "name": "clock", - "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.1.1" - }, - "collection": { - "dependency": "direct dev", - "description": { - "name": "collection", - "sha256": "f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.17.2" - }, - "completion": { - "dependency": "direct main", - "description": { - "name": "completion", - "sha256": "f11b7a628e6c42b9edc9b0bc3aa490e2d930397546d2f794e8e1325909d11c60", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.1" - }, - "convert": { - "dependency": "direct main", - "description": { - "name": "convert", - "sha256": "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.1.1" - }, - "coverage": { - "dependency": "direct main", - "description": { - "name": "coverage", - "sha256": "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.6.3" - }, - "crypto": { - "dependency": "direct main", - "description": { - "name": "crypto", - "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.3" - }, - "csslib": { - "dependency": "direct main", - "description": { - "name": "csslib", - "sha256": "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.0" - }, - "dap": { - "dependency": "direct main", - "description": { - "name": "dap", - "sha256": "2120d4a8cbad45e5dbd518b713e8f064274e0a4c0e3edcaef1f4cf9ccbc90cd9", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.0" - }, - "dds": { - "dependency": "direct main", - "description": { - "name": "dds", - "sha256": "397c3c80919ee187b2efc28205af3c0378b6b757ea6d059083dece145a2e31e9", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.9.0+hotfix" - }, - "dds_service_extensions": { - "dependency": "direct main", - "description": { - "name": "dds_service_extensions", - "sha256": "9ac669bef49a4c13ed62073685089be121200fb213800ec59c202e90d569ea44", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.5.0" - }, - "devtools_shared": { - "dependency": "direct main", - "description": { - "name": "devtools_shared", - "sha256": "ad58ac3a5df41adf08d0d6f0a4d73349533edcc383ee93a30ac3d0fd0bb6df49", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.24.0" - }, - "dwds": { - "dependency": "direct main", - "description": { - "name": "dwds", - "sha256": "b6dad73ae56f00bff7647f531b9db018005f713328e816e7a277b544184e9170", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "19.0.1+1" - }, - "fake_async": { - "dependency": "direct main", - "description": { - "name": "fake_async", - "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.3.1" - }, - "file": { - "dependency": "direct main", - "description": { - "name": "file", - "sha256": "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "6.1.4" - }, - "file_testing": { - "dependency": "direct dev", - "description": { - "name": "file_testing", - "sha256": "0aaadb4025bd350403f4308ad6c4cea953278d9407814b8342558e4946840fb5", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.0" - }, - "fixnum": { - "dependency": "direct main", - "description": { - "name": "fixnum", - "sha256": "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.1.0" - }, - "flutter_template_images": { - "dependency": "direct main", - "description": { - "name": "flutter_template_images", - "sha256": "fd3e55af73c577b9e3f88d4080d3e366cb5c8ef3fbd50b94dfeca56bb0235df6", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "4.2.0" - }, - "frontend_server_client": { - "dependency": "direct main", - "description": { - "name": "frontend_server_client", - "sha256": "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.2.0" - }, - "glob": { - "dependency": "direct main", - "description": { - "name": "glob", - "sha256": "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.2" - }, - "html": { - "dependency": "direct main", - "description": { - "name": "html", - "sha256": "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.15.4" - }, - "http": { - "dependency": "direct main", - "description": { - "name": "http", - "sha256": "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.13.6" - }, - "http_multi_server": { - "dependency": "direct main", - "description": { - "name": "http_multi_server", - "sha256": "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.2.1" - }, - "http_parser": { - "dependency": "direct main", - "description": { - "name": "http_parser", - "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "4.0.2" - }, - "intl": { - "dependency": "direct main", - "description": { - "name": "intl", - "sha256": "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.18.1" - }, - "io": { - "dependency": "direct main", - "description": { - "name": "io", - "sha256": "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.4" - }, - "js": { - "dependency": "direct main", - "description": { - "name": "js", - "sha256": "f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.6.7" - }, - "json_annotation": { - "dependency": "direct dev", - "description": { - "name": "json_annotation", - "sha256": "b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "4.8.1" - }, - "json_rpc_2": { - "dependency": "direct main", - "description": { - "name": "json_rpc_2", - "sha256": "5e469bffa23899edacb7b22787780068d650b106a21c76db3c49218ab7ca447e", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.2" - }, - "logging": { - "dependency": "direct main", - "description": { - "name": "logging", - "sha256": "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.2.0" - }, - "matcher": { - "dependency": "direct main", - "description": { - "name": "matcher", - "sha256": "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.12.16" - }, - "meta": { - "dependency": "direct main", - "description": { - "name": "meta", - "sha256": "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.9.1" - }, - "mime": { - "dependency": "direct main", - "description": { - "name": "mime", - "sha256": "e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.4" - }, - "multicast_dns": { - "dependency": "direct main", - "description": { - "name": "multicast_dns", - "sha256": "80e54aba906a7cc68fdc6a201e76b135af27155e2f8e958181d85e2b73786591", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.3.2+3" - }, - "mustache_template": { - "dependency": "direct main", - "description": { - "name": "mustache_template", - "sha256": "a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.0.0" - }, - "native_stack_traces": { - "dependency": "direct main", - "description": { - "name": "native_stack_traces", - "sha256": "c797830b9910d13b0f4e70ddef15cde034214fe3bdb8092c4ea5ffad2f74013f", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.5.6" - }, - "node_preamble": { - "dependency": "direct dev", - "description": { - "name": "node_preamble", - "sha256": "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.0.2" - }, - "package_config": { - "dependency": "direct main", - "description": { - "name": "package_config", - "sha256": "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.0" - }, - "path": { - "dependency": "direct main", - "description": { - "name": "path", - "sha256": "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.8.3" - }, - "petitparser": { - "dependency": "direct main", - "description": { - "name": "petitparser", - "sha256": "cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "5.4.0" - }, - "platform": { - "dependency": "direct main", - "description": { - "name": "platform", - "sha256": "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.1.0" - }, - "pool": { - "dependency": "direct main", - "description": { - "name": "pool", - "sha256": "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.5.1" - }, - "process": { - "dependency": "direct main", - "description": { - "name": "process", - "sha256": "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "4.2.4" - }, - "pub_semver": { - "dependency": "direct main", - "description": { - "name": "pub_semver", - "sha256": "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.4" - }, - "pubspec_parse": { - "dependency": "direct dev", - "description": { - "name": "pubspec_parse", - "sha256": "c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.2.3" - }, - "shelf": { - "dependency": "direct main", - "description": { - "name": "shelf", - "sha256": "ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.4.1" - }, - "shelf_packages_handler": { - "dependency": "direct main", - "description": { - "name": "shelf_packages_handler", - "sha256": "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.2" - }, - "shelf_proxy": { - "dependency": "direct main", - "description": { - "name": "shelf_proxy", - "sha256": "a71d2307f4393211930c590c3d2c00630f6c5a7a77edc1ef6436dfd85a6a7ee3", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.4" - }, - "shelf_static": { - "dependency": "direct main", - "description": { - "name": "shelf_static", - "sha256": "a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.1.2" - }, - "shelf_web_socket": { - "dependency": "direct main", - "description": { - "name": "shelf_web_socket", - "sha256": "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.4" - }, - "source_map_stack_trace": { - "dependency": "direct main", - "description": { - "name": "source_map_stack_trace", - "sha256": "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.1" - }, - "source_maps": { - "dependency": "direct main", - "description": { - "name": "source_maps", - "sha256": "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.10.12" - }, - "source_span": { - "dependency": "direct main", - "description": { - "name": "source_span", - "sha256": "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.10.0" - }, - "sse": { - "dependency": "direct main", - "description": { - "name": "sse", - "sha256": "3ff9088cac3f45aa8b91336f1962e3ea6c81baaba0bbba361c05f8aa7fb59442", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "4.1.2" - }, - "stack_trace": { - "dependency": "direct main", - "description": { - "name": "stack_trace", - "sha256": "c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.11.0" - }, - "standard_message_codec": { - "dependency": "direct main", - "description": { - "name": "standard_message_codec", - "sha256": "906e66549f0ea90d87c5320e0b0f04738c5d14bc7fb121a15da31b60e84f5b15", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.0.1+3" - }, - "stream_channel": { - "dependency": "direct main", - "description": { - "name": "stream_channel", - "sha256": "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.1" - }, - "string_scanner": { - "dependency": "direct main", - "description": { - "name": "string_scanner", - "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.2.0" - }, - "sync_http": { - "dependency": "direct main", - "description": { - "name": "sync_http", - "sha256": "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.3.1" - }, - "term_glyph": { - "dependency": "direct main", - "description": { - "name": "term_glyph", - "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.2.1" - }, - "test": { - "dependency": "direct dev", - "description": { - "name": "test", - "sha256": "13b41f318e2a5751c3169137103b60c584297353d4b1761b66029bae6411fe46", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.24.3" - }, - "test_api": { - "dependency": "direct main", - "description": { - "name": "test_api", - "sha256": "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.6.0" - }, - "test_core": { - "dependency": "direct main", - "description": { - "name": "test_core", - "sha256": "99806e9e6d95c7b059b7a0fc08f07fc53fabe54a829497f0d9676299f1e8637e", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.5.3" - }, - "typed_data": { - "dependency": "direct main", - "description": { - "name": "typed_data", - "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.3.2" - }, - "unified_analytics": { - "dependency": "direct main", - "description": { - "name": "unified_analytics", - "sha256": "4f9f29e5fd357d68fce270e37c7ad9bb489ee20098529199d6bc786b2b624298", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.0.0" - }, - "usage": { - "dependency": "direct main", - "description": { - "name": "usage", - "sha256": "0bdbde65a6e710343d02a56552eeaefd20b735e04bfb6b3ee025b6b22e8d0e15", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "4.1.1" - }, - "uuid": { - "dependency": "direct main", - "description": { - "name": "uuid", - "sha256": "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.7" - }, - "vm_service": { - "dependency": "direct main", - "description": { - "name": "vm_service", - "sha256": "c620a6f783fa22436da68e42db7ebbf18b8c44b9a46ab911f666ff09ffd9153f", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "11.7.1" - }, - "vm_snapshot_analysis": { - "dependency": "direct main", - "description": { - "name": "vm_snapshot_analysis", - "sha256": "5a79b9fbb6be2555090f55b03b23907e75d44c3fd7bdd88da09848aa5a1914c8", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.7.6" - }, - "watcher": { - "dependency": "direct main", - "description": { - "name": "watcher", - "sha256": "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.1.0" - }, - "web_socket_channel": { - "dependency": "direct main", - "description": { - "name": "web_socket_channel", - "sha256": "d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.4.0" - }, - "webdriver": { - "dependency": "direct main", - "description": { - "name": "webdriver", - "sha256": "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.2" - }, - "webkit_inspection_protocol": { - "dependency": "direct main", - "description": { - "name": "webkit_inspection_protocol", - "sha256": "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.2.0" - }, - "xml": { - "dependency": "direct main", - "description": { - "name": "xml", - "sha256": "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "6.3.0" - }, - "yaml": { - "dependency": "direct main", - "description": { - "name": "yaml", - "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.1.2" - } - }, - "sdks": { - "dart": ">=3.0.0 <4.0.0" - } -} diff --git a/pkgs/development/compilers/flutter/patches/flutter3/copy-without-perms.patch b/pkgs/development/compilers/flutter/patches/copy-without-perms.patch similarity index 100% rename from pkgs/development/compilers/flutter/patches/flutter3/copy-without-perms.patch rename to pkgs/development/compilers/flutter/patches/copy-without-perms.patch diff --git a/pkgs/development/compilers/flutter/patches/flutter3/deregister-pub-dependencies-artifact.patch b/pkgs/development/compilers/flutter/patches/deregister-pub-dependencies-artifact.patch similarity index 100% rename from pkgs/development/compilers/flutter/patches/flutter3/deregister-pub-dependencies-artifact.patch rename to pkgs/development/compilers/flutter/patches/deregister-pub-dependencies-artifact.patch diff --git a/pkgs/development/compilers/flutter/patches/flutter3/disable-auto-update.patch b/pkgs/development/compilers/flutter/patches/disable-auto-update.patch similarity index 87% rename from pkgs/development/compilers/flutter/patches/flutter3/disable-auto-update.patch rename to pkgs/development/compilers/flutter/patches/disable-auto-update.patch index 23a657e7c6a9..05960c01b737 100644 --- a/pkgs/development/compilers/flutter/patches/flutter3/disable-auto-update.patch +++ b/pkgs/development/compilers/flutter/patches/disable-auto-update.patch @@ -1,16 +1,3 @@ -diff --git a/bin/internal/shared.sh b/bin/internal/shared.sh -index 3532c23114..25dfcae4c7 100644 ---- a/bin/internal/shared.sh -+++ b/bin/internal/shared.sh -@@ -229,8 +229,6 @@ function shared::execute() { - exit 1 - fi - -- upgrade_flutter 7< "$PROG_NAME" -- - BIN_NAME="$(basename "$PROG_NAME")" - case "$BIN_NAME" in - flutter*) diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart index b7e624b4e2..edfdde118b 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command.dart diff --git a/pkgs/development/compilers/flutter/patches/flutter3/dont-validate-executable-location.patch b/pkgs/development/compilers/flutter/patches/dont-validate-executable-location.patch similarity index 100% rename from pkgs/development/compilers/flutter/patches/flutter3/dont-validate-executable-location.patch rename to pkgs/development/compilers/flutter/patches/dont-validate-executable-location.patch diff --git a/pkgs/development/compilers/flutter/patches/flutter3/flutter-pub-dart-override.patch b/pkgs/development/compilers/flutter/patches/flutter-pub-dart-override.patch similarity index 100% rename from pkgs/development/compilers/flutter/patches/flutter3/flutter-pub-dart-override.patch rename to pkgs/development/compilers/flutter/patches/flutter-pub-dart-override.patch diff --git a/pkgs/development/compilers/flutter/patches/flutter3/git-dir.patch b/pkgs/development/compilers/flutter/patches/git-dir.patch similarity index 100% rename from pkgs/development/compilers/flutter/patches/flutter3/git-dir.patch rename to pkgs/development/compilers/flutter/patches/git-dir.patch diff --git a/pkgs/development/compilers/flutter/patches/flutter3/override-host-platform.patch b/pkgs/development/compilers/flutter/patches/override-host-platform.patch similarity index 100% rename from pkgs/development/compilers/flutter/patches/flutter3/override-host-platform.patch rename to pkgs/development/compilers/flutter/patches/override-host-platform.patch diff --git a/pkgs/development/compilers/flutter/patches/override-operating-system.patch b/pkgs/development/compilers/flutter/patches/override-operating-system.patch new file mode 100644 index 000000000000..07d57175bd9a --- /dev/null +++ b/pkgs/development/compilers/flutter/patches/override-operating-system.patch @@ -0,0 +1,13 @@ +diff --git a/packages/flutter_tools/lib/src/base/platform.dart b/packages/flutter_tools/lib/src/base/platform.dart +index 45da89ad4c..2d79dbaece 100644 +--- a/packages/flutter_tools/lib/src/base/platform.dart ++++ b/packages/flutter_tools/lib/src/base/platform.dart +@@ -132,7 +132,7 @@ class LocalPlatform extends Platform { + String get pathSeparator => io.Platform.pathSeparator; + + @override +- String get operatingSystem => io.Platform.operatingSystem; ++ String get operatingSystem => io.Platform.environment['NIX_FLUTTER_OPERATING_SYSTEM'] ?? io.Platform.operatingSystem; + + @override + String get operatingSystemVersion => io.Platform.operatingSystemVersion; diff --git a/pkgs/development/compilers/flutter/update/get-artifact-hashes.nix b/pkgs/development/compilers/flutter/update/get-artifact-hashes.nix new file mode 100644 index 000000000000..89343a323165 --- /dev/null +++ b/pkgs/development/compilers/flutter/update/get-artifact-hashes.nix @@ -0,0 +1,48 @@ +{ callPackage +, flutterPackages +, lib +, symlinkJoin +, +}: +let + nixpkgsRoot = "@nixpkgs_root@"; + flutterCompactVersion = "@flutter_compact_version@"; + + flutterPlatforms = [ + "android" + "ios" + "web" + "linux" + "windows" + "macos" + "fuchsia" + "universal" + ]; + systemPlatforms = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + ]; + + derivations = + lib.foldl' + ( + acc: flutterPlatform: + acc + ++ (map + (systemPlatform: + callPackage "${nixpkgsRoot}/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix" { + flutter = flutterPackages."v${flutterCompactVersion}"; + inherit flutterPlatform; + inherit systemPlatform; + hash = ""; + }) + systemPlatforms) + ) [ ] + flutterPlatforms; +in +symlinkJoin { + name = "evaluate-derivations"; + paths = derivations; +} + diff --git a/pkgs/development/compilers/flutter/update/get-dart-hashes.nix b/pkgs/development/compilers/flutter/update/get-dart-hashes.nix new file mode 100644 index 000000000000..4122110bccaa --- /dev/null +++ b/pkgs/development/compilers/flutter/update/get-dart-hashes.nix @@ -0,0 +1,26 @@ +let + dartVersion = "@dart_version@"; + platform = "@platform@"; +in +{ + x86_64-linux = { fetchzip }: + fetchzip { + url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-linux-x64-release.zip"; + sha256 = ""; + }; + aarch64-linux = { fetchzip }: + fetchzip { + url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-linux-arm64-release.zip"; + sha256 = ""; + }; + x86_64-darwin = { fetchzip }: + fetchzip { + url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-macos-x64-release.zip"; + sha256 = ""; + }; + aarch64-darwin = { fetchzip }: + fetchzip { + url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-macos-arm64-release.zip"; + sha256 = ""; + }; +}.${platform} diff --git a/pkgs/development/compilers/flutter/update/get-flutter.nix b/pkgs/development/compilers/flutter/update/get-flutter.nix new file mode 100644 index 000000000000..81680797229b --- /dev/null +++ b/pkgs/development/compilers/flutter/update/get-flutter.nix @@ -0,0 +1,7 @@ +{ fetchFromGitHub }: +fetchFromGitHub { + owner = "flutter"; + repo = "flutter"; + rev = "@flutter_version@"; + hash = "@hash@"; +} diff --git a/pkgs/development/compilers/flutter/update/get-pubspec-lock.nix b/pkgs/development/compilers/flutter/update/get-pubspec-lock.nix new file mode 100644 index 000000000000..ff72046bcecb --- /dev/null +++ b/pkgs/development/compilers/flutter/update/get-pubspec-lock.nix @@ -0,0 +1,30 @@ +{ flutterPackages +, stdenv +, cacert +, +}: +let + flutterCompactVersion = "@flutter_compact_version@"; + inherit (flutterPackages."v${flutterCompactVersion}") dart; +in +stdenv.mkDerivation { + name = "pubspec-lock"; + src = @flutter_src@; + + nativeBuildInputs = [ dart ]; + + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "@hash@"; + + buildPhase = '' + cd ./packages/flutter_tools + + export HOME="$(mktemp -d)" + dart --root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt pub get -v + ''; + + installPhase = '' + cp -r ./pubspec.lock $out + ''; +} diff --git a/pkgs/development/compilers/flutter/update/update.py b/pkgs/development/compilers/flutter/update/update.py new file mode 100755 index 000000000000..c622487cf9dc --- /dev/null +++ b/pkgs/development/compilers/flutter/update/update.py @@ -0,0 +1,339 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i python3 -p python3Packages.pyyaml + +import shutil +import json +import urllib.request +import tempfile +from sys import exit +import os +import subprocess +import re +import json +import argparse +import yaml +import json + + +NIXPKGS_ROOT = subprocess.Popen(['git', + 'rev-parse', + '--show-toplevel'], + stdout=subprocess.PIPE, + text=True).communicate()[0].strip() + + +def load_code(name, **kwargs): + with open(f"{NIXPKGS_ROOT}/pkgs/development/compilers/flutter/update/{name}", 'r') as f: + code = f.read() + + for (key, value) in kwargs.items(): + code = code.replace(f"@{key}@", value) + + return code + + +# Return out paths +def nix_build(code): + temp = tempfile.NamedTemporaryFile(mode='w') + temp.write(code) + temp.flush() + os.fsync(temp.fileno()) + + process = subprocess.Popen( + [ + "nix-build", + "--impure", + "--no-out-link", + "--expr", + f"with import {NIXPKGS_ROOT} {{}}; callPackage {temp.name} {{}}"], + stdout=subprocess.PIPE, + text=True) + + process.wait() + temp.close() + return process.stdout.read().strip().splitlines()[0] + + +# Return errors +def nix_build_to_fail(code): + temp = tempfile.NamedTemporaryFile(mode='w') + temp.write(code) + temp.flush() + os.fsync(temp.fileno()) + + process = subprocess.Popen( + [ + "nix-build", + "--impure", + "--keep-going", + "--no-link", + "--expr", + f"with import {NIXPKGS_ROOT} {{}}; callPackage {temp.name} {{}}"], + stderr=subprocess.PIPE, + text=True) + + stderr = "" + while True: + line = process.stderr.readline() + if not line: + break + stderr += line + print(line.strip()) + + process.wait() + temp.close() + return stderr + + +def get_artifact_hashes(flutter_compact_version): + code = load_code("get-artifact-hashes.nix", + nixpkgs_root=NIXPKGS_ROOT, + flutter_compact_version=flutter_compact_version) + + stderr = nix_build_to_fail(code) + + pattern = re.compile( + r"/nix/store/.*-flutter-artifacts-(.+?)-(.+?).drv':\n\s+specified: .*\n\s+got:\s+(.+?)\n") + matches = pattern.findall(stderr) + result_dict = {} + + for match in matches: + flutter_platform, architecture, got = match + result_dict.setdefault(flutter_platform, {})[architecture] = got + + def sort_dict_recursive(d): + return { + k: sort_dict_recursive(v) if isinstance( + v, dict) else v for k, v in sorted( + d.items())} + result_dict = sort_dict_recursive(result_dict) + + return result_dict + + +def get_dart_hashes(dart_version): + platforms = [ + "x86_64-linux", + "aarch64-linux", + "x86_64-darwin", + "aarch64-darwin"] + result_dict = {} + for platform in platforms: + code = load_code( + "get-dart-hashes.nix", + dart_version=dart_version, + platform=platform) + stderr = nix_build_to_fail(code) + + pattern = re.compile(r"got:\s+(.+?)\n") + result_dict[platform] = pattern.findall(stderr)[0] + + return result_dict + + +def get_flutter_hash_and_src(flutter_version): + code = load_code( + "get-flutter.nix", + flutter_version=flutter_version, + hash="") + + stderr = nix_build_to_fail(code) + pattern = re.compile(r"got:\s+(.+?)\n") + hash = pattern.findall(stderr)[0] + + code = load_code( + "get-flutter.nix", + flutter_version=flutter_version, + hash=hash) + + return (hash, nix_build(code)) + + +def get_pubspec_lock(flutter_compact_version, flutter_src): + code = load_code( + "get-pubspec-lock.nix", + flutter_compact_version=flutter_compact_version, + flutter_src=flutter_src, + hash="") + + stderr = nix_build_to_fail(code) + pattern = re.compile(r"got:\s+(.+?)\n") + hash = pattern.findall(stderr)[0] + + code = load_code( + "get-pubspec-lock.nix", + flutter_compact_version=flutter_compact_version, + flutter_src=flutter_src, + hash=hash) + + pubspec_lock_file = nix_build(code) + + with open(pubspec_lock_file, 'r') as f: + pubspec_lock_yaml = f.read() + + return yaml.safe_load(pubspec_lock_yaml) + + +def write_data( + nixpkgs_flutter_version_directory, + flutter_version, + engine_hash, + dart_version, + dart_hash, + flutter_hash, + artifact_hashes, + pubspec_lock): + with open(f"{nixpkgs_flutter_version_directory}/data.json", "w") as f: + f.write(json.dumps({ + "version": flutter_version, + "engineVersion": engine_hash, + "dartVersion": dart_version, + "dartHash": dart_hash, + "flutterHash": flutter_hash, + "artifactHashes": artifact_hashes, + "pubspecLock": pubspec_lock, + }, indent=2).strip() + "\n") + + +def update_all_packages(): + versions_directory = f"{NIXPKGS_ROOT}/pkgs/development/compilers/flutter/versions" + versions = [directory for directory in os.listdir(versions_directory)] + versions = sorted(versions, key=lambda x: ( + int(x.split('_')[0]), int(x.split('_')[1])), reverse=True) + + new_content = [ + "flutterPackages = recurseIntoAttrs (callPackage ../development/compilers/flutter { });", + "flutter = flutterPackages.stable;", + ] + [f"flutter{version.replace('_', '')} = flutterPackages.v{version};" for version in versions] + + with open(f"{NIXPKGS_ROOT}/pkgs/top-level/all-packages.nix", 'r') as file: + lines = file.read().splitlines(keepends=True) + + start = -1 + end = -1 + for i, line in enumerate(lines): + if "flutterPackages = recurseIntoAttrs (callPackage ../development/compilers/flutter { });" in line: + start = i + if start != -1 and len(line.strip()) == 0: + end = i + break + + if start != -1 and end != -1: + del lines[start:end] + lines[start:start] = [f" {l}\n" for l in new_content] + + with open(f"{NIXPKGS_ROOT}/pkgs/top-level/all-packages.nix", 'w') as file: + file.write("".join(lines)) + + +# Finds Flutter version, Dart version, and Engine hash. +# If the Flutter version is given, it uses that. Otherwise finds the +# latest stable Flutter version. +def find_versions(flutter_version=None): + engine_hash = None + dart_version = None + + releases = json.load(urllib.request.urlopen( + "https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json")) + + if not flutter_version: + stable_hash = releases['current_release']['stable'] + release = next( + filter( + lambda release: release['hash'] == stable_hash, + releases['releases'])) + flutter_version = release['version'] + + tags = subprocess.Popen(['git', + 'ls-remote', + '--tags', + 'https://github.com/flutter/engine.git'], + stdout=subprocess.PIPE, + text=True).communicate()[0].strip() + + try: + engine_hash = next( + filter( + lambda line: line.endswith(f'refs/tags/{flutter_version}'), + tags.splitlines())).split('refs')[0].strip() + except StopIteration: + exit( + f"Couldn't find Engine hash for Flutter version: {flutter_version}") + + try: + dart_version = next( + filter( + lambda release: release['version'] == flutter_version, + releases['releases']))['dart_sdk_version'] + except StopIteration: + exit( + f"Couldn't find Dart version for Flutter version: {flutter_version}") + + return (flutter_version, engine_hash, dart_version) + + +def main(): + parser = argparse.ArgumentParser(description='Update Flutter in Nixpkgs') + parser.add_argument('--version', type=str, help='Specify Flutter version') + parser.add_argument('--artifact-hashes', action='store_true', + help='Whether to get artifact hashes') + args = parser.parse_args() + + (flutter_version, engine_hash, dart_version) = find_versions(args.version) + + flutter_compact_version = '_'.join(flutter_version.split('.')[:2]) + + if args.artifact_hashes: + print( + json.dumps( + get_artifact_hashes(flutter_compact_version), + indent=2).strip() + + "\n") + return + + print(f"Flutter version: {flutter_version} ({flutter_compact_version})") + print(f"Engine hash: {engine_hash}") + print(f"Dart version: {dart_version}") + + dart_hash = get_dart_hashes(dart_version) + (flutter_hash, flutter_src) = get_flutter_hash_and_src(flutter_version) + + nixpkgs_flutter_version_directory = f"{NIXPKGS_ROOT}/pkgs/development/compilers/flutter/versions/{flutter_compact_version}" + + if os.path.exists(f"{nixpkgs_flutter_version_directory}/data.json"): + os.remove(f"{nixpkgs_flutter_version_directory}/data.json") + os.makedirs(nixpkgs_flutter_version_directory, exist_ok=True) + + update_all_packages() + + common_data_args = { + "nixpkgs_flutter_version_directory": nixpkgs_flutter_version_directory, + "flutter_version": flutter_version, + "dart_version": dart_version, + "engine_hash": engine_hash, + "flutter_hash": flutter_hash, + "dart_hash": dart_hash, + } + + write_data( + pubspec_lock={}, + artifact_hashes={}, + **common_data_args) + + pubspec_lock = get_pubspec_lock(flutter_compact_version, flutter_src) + + write_data( + pubspec_lock=pubspec_lock, + artifact_hashes={}, + **common_data_args) + + artifact_hashes = get_artifact_hashes(flutter_compact_version) + + write_data( + pubspec_lock=pubspec_lock, + artifact_hashes=artifact_hashes, + **common_data_args) + + +if __name__ == "__main__": + main() diff --git a/pkgs/development/compilers/flutter/versions/3_13/data.json b/pkgs/development/compilers/flutter/versions/3_13/data.json new file mode 100644 index 000000000000..72e002f144d3 --- /dev/null +++ b/pkgs/development/compilers/flutter/versions/3_13/data.json @@ -0,0 +1,901 @@ +{ + "version": "3.13.8", + "engineVersion": "767d8c75e898091b925519803830fc2721658d07", + "dartVersion": "3.1.4", + "dartHash": { + "x86_64-linux": "sha256-42wrqzjRcFDWw2aEY6+/faX+QE9PA8FmRWP4M/NkgBE=", + "aarch64-linux": "sha256-/tWWWwTOgXHbwzotc7ZDDZa8+cbX6NODGYrjLK9gPPg=", + "x86_64-darwin": "sha256-BchKowKd6BscVuk/dXibcQzdFkW9//GDfll77mHEI4M=", + "aarch64-darwin": "sha256-9yrx09vYrOTmdqkfJI7mfh7DI1/rg67tPlf82m5+iKI=" + }, + "flutterHash": "sha256-00G030FvZZTsdf9ruFs9jdIHcC5h+xpp4NlmL64qVZA=", + "artifactHashes": { + "android": { + "x86_64-linux": "sha256-Uc36aBq8wQo2aEvjAPOoixZElWOE/GNRm2GUfhbwT3Y=", + "aarch64-linux": "sha256-Uc36aBq8wQo2aEvjAPOoixZElWOE/GNRm2GUfhbwT3Y=", + "x86_64-darwin": "sha256-v/6/GTj7732fEOIgSaoM00yaw2qNwOMuvbuoCvii7vQ=" + }, + "fuchsia": { + "x86_64-linux": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=", + "aarch64-linux": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=", + "x86_64-darwin": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=" + }, + "ios": { + "x86_64-linux": "sha256-QwkeGnutTVsm682CqxRtEd9rKUvN7zlAJcqkvAQYwao=", + "aarch64-linux": "sha256-QwkeGnutTVsm682CqxRtEd9rKUvN7zlAJcqkvAQYwao=", + "x86_64-darwin": "sha256-QwkeGnutTVsm682CqxRtEd9rKUvN7zlAJcqkvAQYwao=" + }, + "linux": { + "x86_64-linux": "sha256-0gIOwux3YBdmcXgwICr8dpftj1CauaBUX8Rt5GG0WSs=", + "aarch64-linux": "sha256-drGHsuJoOCLqrhVrXczqJRCOtpeWVlqdWW0OSMS/l5M=", + "x86_64-darwin": "sha256-0gIOwux3YBdmcXgwICr8dpftj1CauaBUX8Rt5GG0WSs=" + }, + "macos": { + "x86_64-linux": "sha256-9WqCJQ37mcGc5tzfqQoY5CqHWHGTizjXf9p73bdnNWc=", + "aarch64-linux": "sha256-9WqCJQ37mcGc5tzfqQoY5CqHWHGTizjXf9p73bdnNWc=", + "x86_64-darwin": "sha256-9WqCJQ37mcGc5tzfqQoY5CqHWHGTizjXf9p73bdnNWc=" + }, + "universal": { + "x86_64-linux": "sha256-wATt1UPjo/fh7RFO1vvcUAdo0dMAaaOUIuzYodsM0v0=", + "aarch64-linux": "sha256-Z9bszNaIpCccG7OfvE5WFsw36dITiyCQAZ6p29+Yq68=", + "x86_64-darwin": "sha256-qN5bAXRfQ78TWF3FLBIxWzUB5y5OrZVQTEilY5J/+2k=" + }, + "web": { + "x86_64-linux": "sha256-DVXJOOFxv7tKt3d0NaYMexkphEcr7+gDFV67I6iAYa0=", + "aarch64-linux": "sha256-DVXJOOFxv7tKt3d0NaYMexkphEcr7+gDFV67I6iAYa0=", + "x86_64-darwin": "sha256-DVXJOOFxv7tKt3d0NaYMexkphEcr7+gDFV67I6iAYa0=" + }, + "windows": { + "x86_64-linux": "sha256-s8fJtwQkuZaGXr6vrPiKfpwP/NfewbETwyp9ERGqHYI=", + "aarch64-linux": "sha256-s8fJtwQkuZaGXr6vrPiKfpwP/NfewbETwyp9ERGqHYI=", + "x86_64-darwin": "sha256-s8fJtwQkuZaGXr6vrPiKfpwP/NfewbETwyp9ERGqHYI=" + } + }, + "pubspecLock": { + "packages": { + "_fe_analyzer_shared": { + "dependency": "direct main", + "description": { + "name": "_fe_analyzer_shared", + "sha256": "ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "61.0.0" + }, + "analyzer": { + "dependency": "direct main", + "description": { + "name": "analyzer", + "sha256": "ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.13.0" + }, + "archive": { + "dependency": "direct main", + "description": { + "name": "archive", + "sha256": "80e5141fafcb3361653ce308776cfd7d45e6e9fbb429e14eec571382c0c5fecb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.3.2" + }, + "args": { + "dependency": "direct main", + "description": { + "name": "args", + "sha256": "eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.2" + }, + "async": { + "dependency": "direct main", + "description": { + "name": "async", + "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.11.0" + }, + "boolean_selector": { + "dependency": "direct main", + "description": { + "name": "boolean_selector", + "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "browser_launcher": { + "dependency": "direct main", + "description": { + "name": "browser_launcher", + "sha256": "6ee4c6b1f68a42e769ef6e663c4f56708522f7bce9d2ab6e308a37b612ffa4ec", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.1" + }, + "built_collection": { + "dependency": "direct main", + "description": { + "name": "built_collection", + "sha256": "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.1.1" + }, + "built_value": { + "dependency": "direct main", + "description": { + "name": "built_value", + "sha256": "598a2a682e2a7a90f08ba39c0aaa9374c5112340f0a2e275f61b59389543d166", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "8.6.1" + }, + "checked_yaml": { + "dependency": "direct dev", + "description": { + "name": "checked_yaml", + "sha256": "feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.3" + }, + "clock": { + "dependency": "direct main", + "description": { + "name": "clock", + "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.1" + }, + "collection": { + "dependency": "direct dev", + "description": { + "name": "collection", + "sha256": "f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.17.2" + }, + "completion": { + "dependency": "direct main", + "description": { + "name": "completion", + "sha256": "f11b7a628e6c42b9edc9b0bc3aa490e2d930397546d2f794e8e1325909d11c60", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.1" + }, + "convert": { + "dependency": "direct main", + "description": { + "name": "convert", + "sha256": "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.1" + }, + "coverage": { + "dependency": "direct main", + "description": { + "name": "coverage", + "sha256": "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.6.3" + }, + "crypto": { + "dependency": "direct main", + "description": { + "name": "crypto", + "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.3" + }, + "csslib": { + "dependency": "direct main", + "description": { + "name": "csslib", + "sha256": "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0" + }, + "dap": { + "dependency": "direct main", + "description": { + "name": "dap", + "sha256": "2120d4a8cbad45e5dbd518b713e8f064274e0a4c0e3edcaef1f4cf9ccbc90cd9", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0" + }, + "dds": { + "dependency": "direct main", + "description": { + "name": "dds", + "sha256": "397c3c80919ee187b2efc28205af3c0378b6b757ea6d059083dece145a2e31e9", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.9.0+hotfix" + }, + "dds_service_extensions": { + "dependency": "direct main", + "description": { + "name": "dds_service_extensions", + "sha256": "9ac669bef49a4c13ed62073685089be121200fb213800ec59c202e90d569ea44", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.5.0" + }, + "devtools_shared": { + "dependency": "direct main", + "description": { + "name": "devtools_shared", + "sha256": "ad58ac3a5df41adf08d0d6f0a4d73349533edcc383ee93a30ac3d0fd0bb6df49", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.24.0" + }, + "dwds": { + "dependency": "direct main", + "description": { + "name": "dwds", + "sha256": "b6dad73ae56f00bff7647f531b9db018005f713328e816e7a277b544184e9170", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "19.0.1+1" + }, + "fake_async": { + "dependency": "direct main", + "description": { + "name": "fake_async", + "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.1" + }, + "file": { + "dependency": "direct main", + "description": { + "name": "file", + "sha256": "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.1.4" + }, + "file_testing": { + "dependency": "direct dev", + "description": { + "name": "file_testing", + "sha256": "0aaadb4025bd350403f4308ad6c4cea953278d9407814b8342558e4946840fb5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.0" + }, + "fixnum": { + "dependency": "direct main", + "description": { + "name": "fixnum", + "sha256": "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.0" + }, + "flutter_template_images": { + "dependency": "direct main", + "description": { + "name": "flutter_template_images", + "sha256": "fd3e55af73c577b9e3f88d4080d3e366cb5c8ef3fbd50b94dfeca56bb0235df6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.2.0" + }, + "frontend_server_client": { + "dependency": "direct main", + "description": { + "name": "frontend_server_client", + "sha256": "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.2.0" + }, + "glob": { + "dependency": "direct main", + "description": { + "name": "glob", + "sha256": "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "html": { + "dependency": "direct main", + "description": { + "name": "html", + "sha256": "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.15.4" + }, + "http": { + "dependency": "direct main", + "description": { + "name": "http", + "sha256": "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.13.6" + }, + "http_multi_server": { + "dependency": "direct main", + "description": { + "name": "http_multi_server", + "sha256": "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.2.1" + }, + "http_parser": { + "dependency": "direct main", + "description": { + "name": "http_parser", + "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.0.2" + }, + "intl": { + "dependency": "direct main", + "description": { + "name": "intl", + "sha256": "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.18.1" + }, + "io": { + "dependency": "direct main", + "description": { + "name": "io", + "sha256": "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "js": { + "dependency": "direct main", + "description": { + "name": "js", + "sha256": "f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.6.7" + }, + "json_annotation": { + "dependency": "direct dev", + "description": { + "name": "json_annotation", + "sha256": "b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.8.1" + }, + "json_rpc_2": { + "dependency": "direct main", + "description": { + "name": "json_rpc_2", + "sha256": "5e469bffa23899edacb7b22787780068d650b106a21c76db3c49218ab7ca447e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.2" + }, + "logging": { + "dependency": "direct main", + "description": { + "name": "logging", + "sha256": "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "matcher": { + "dependency": "direct main", + "description": { + "name": "matcher", + "sha256": "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.12.16" + }, + "meta": { + "dependency": "direct main", + "description": { + "name": "meta", + "sha256": "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.9.1" + }, + "mime": { + "dependency": "direct main", + "description": { + "name": "mime", + "sha256": "e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "multicast_dns": { + "dependency": "direct main", + "description": { + "name": "multicast_dns", + "sha256": "80e54aba906a7cc68fdc6a201e76b135af27155e2f8e958181d85e2b73786591", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.2+3" + }, + "mustache_template": { + "dependency": "direct main", + "description": { + "name": "mustache_template", + "sha256": "a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.0" + }, + "native_stack_traces": { + "dependency": "direct main", + "description": { + "name": "native_stack_traces", + "sha256": "c797830b9910d13b0f4e70ddef15cde034214fe3bdb8092c4ea5ffad2f74013f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.5.6" + }, + "node_preamble": { + "dependency": "direct dev", + "description": { + "name": "node_preamble", + "sha256": "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.2" + }, + "package_config": { + "dependency": "direct main", + "description": { + "name": "package_config", + "sha256": "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.0" + }, + "path": { + "dependency": "direct main", + "description": { + "name": "path", + "sha256": "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.8.3" + }, + "petitparser": { + "dependency": "direct main", + "description": { + "name": "petitparser", + "sha256": "cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.4.0" + }, + "platform": { + "dependency": "direct main", + "description": { + "name": "platform", + "sha256": "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.0" + }, + "pool": { + "dependency": "direct main", + "description": { + "name": "pool", + "sha256": "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.5.1" + }, + "process": { + "dependency": "direct main", + "description": { + "name": "process", + "sha256": "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.2.4" + }, + "pub_semver": { + "dependency": "direct main", + "description": { + "name": "pub_semver", + "sha256": "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.4" + }, + "pubspec_parse": { + "dependency": "direct dev", + "description": { + "name": "pubspec_parse", + "sha256": "c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.3" + }, + "shelf": { + "dependency": "direct main", + "description": { + "name": "shelf", + "sha256": "ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.4.1" + }, + "shelf_packages_handler": { + "dependency": "direct main", + "description": { + "name": "shelf_packages_handler", + "sha256": "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.2" + }, + "shelf_proxy": { + "dependency": "direct main", + "description": { + "name": "shelf_proxy", + "sha256": "a71d2307f4393211930c590c3d2c00630f6c5a7a77edc1ef6436dfd85a6a7ee3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "shelf_static": { + "dependency": "direct main", + "description": { + "name": "shelf_static", + "sha256": "a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.2" + }, + "shelf_web_socket": { + "dependency": "direct main", + "description": { + "name": "shelf_web_socket", + "sha256": "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "source_map_stack_trace": { + "dependency": "direct main", + "description": { + "name": "source_map_stack_trace", + "sha256": "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "source_maps": { + "dependency": "direct main", + "description": { + "name": "source_maps", + "sha256": "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.10.12" + }, + "source_span": { + "dependency": "direct main", + "description": { + "name": "source_span", + "sha256": "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.10.0" + }, + "sse": { + "dependency": "direct main", + "description": { + "name": "sse", + "sha256": "3ff9088cac3f45aa8b91336f1962e3ea6c81baaba0bbba361c05f8aa7fb59442", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.1.2" + }, + "stack_trace": { + "dependency": "direct main", + "description": { + "name": "stack_trace", + "sha256": "c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.11.0" + }, + "standard_message_codec": { + "dependency": "direct main", + "description": { + "name": "standard_message_codec", + "sha256": "906e66549f0ea90d87c5320e0b0f04738c5d14bc7fb121a15da31b60e84f5b15", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.0.1+3" + }, + "stream_channel": { + "dependency": "direct main", + "description": { + "name": "stream_channel", + "sha256": "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "string_scanner": { + "dependency": "direct main", + "description": { + "name": "string_scanner", + "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "sync_http": { + "dependency": "direct main", + "description": { + "name": "sync_http", + "sha256": "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.1" + }, + "term_glyph": { + "dependency": "direct main", + "description": { + "name": "term_glyph", + "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.1" + }, + "test": { + "dependency": "direct dev", + "description": { + "name": "test", + "sha256": "13b41f318e2a5751c3169137103b60c584297353d4b1761b66029bae6411fe46", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.24.3" + }, + "test_api": { + "dependency": "direct main", + "description": { + "name": "test_api", + "sha256": "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.6.0" + }, + "test_core": { + "dependency": "direct main", + "description": { + "name": "test_core", + "sha256": "99806e9e6d95c7b059b7a0fc08f07fc53fabe54a829497f0d9676299f1e8637e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.5.3" + }, + "typed_data": { + "dependency": "direct main", + "description": { + "name": "typed_data", + "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.2" + }, + "unified_analytics": { + "dependency": "direct main", + "description": { + "name": "unified_analytics", + "sha256": "4f9f29e5fd357d68fce270e37c7ad9bb489ee20098529199d6bc786b2b624298", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.0" + }, + "usage": { + "dependency": "direct main", + "description": { + "name": "usage", + "sha256": "0bdbde65a6e710343d02a56552eeaefd20b735e04bfb6b3ee025b6b22e8d0e15", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.1.1" + }, + "uuid": { + "dependency": "direct main", + "description": { + "name": "uuid", + "sha256": "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.7" + }, + "vm_service": { + "dependency": "direct main", + "description": { + "name": "vm_service", + "sha256": "c620a6f783fa22436da68e42db7ebbf18b8c44b9a46ab911f666ff09ffd9153f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "11.7.1" + }, + "vm_snapshot_analysis": { + "dependency": "direct main", + "description": { + "name": "vm_snapshot_analysis", + "sha256": "5a79b9fbb6be2555090f55b03b23907e75d44c3fd7bdd88da09848aa5a1914c8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.7.6" + }, + "watcher": { + "dependency": "direct main", + "description": { + "name": "watcher", + "sha256": "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.0" + }, + "web_socket_channel": { + "dependency": "direct main", + "description": { + "name": "web_socket_channel", + "sha256": "d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.0" + }, + "webdriver": { + "dependency": "direct main", + "description": { + "name": "webdriver", + "sha256": "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.2" + }, + "webkit_inspection_protocol": { + "dependency": "direct main", + "description": { + "name": "webkit_inspection_protocol", + "sha256": "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "xml": { + "dependency": "direct main", + "description": { + "name": "xml", + "sha256": "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.3.0" + }, + "yaml": { + "dependency": "direct main", + "description": { + "name": "yaml", + "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.2" + } + }, + "sdks": { + "dart": ">=3.0.0 <4.0.0" + } + } +} diff --git a/pkgs/development/compilers/flutter/versions/3_13/patches/disable-auto-update-shared.patch b/pkgs/development/compilers/flutter/versions/3_13/patches/disable-auto-update-shared.patch new file mode 100644 index 000000000000..be08c419fe1b --- /dev/null +++ b/pkgs/development/compilers/flutter/versions/3_13/patches/disable-auto-update-shared.patch @@ -0,0 +1,13 @@ +diff --git a/bin/internal/shared.sh b/bin/internal/shared.sh +index 3532c23114..25dfcae4c7 100644 +--- a/bin/internal/shared.sh ++++ b/bin/internal/shared.sh +@@ -229,8 +229,6 @@ function shared::execute() { + exit 1 + fi + +- upgrade_flutter 7< "$PROG_NAME" +- + BIN_NAME="$(basename "$PROG_NAME")" + case "$BIN_NAME" in + flutter*) diff --git a/pkgs/development/compilers/flutter/versions/3_16/data.json b/pkgs/development/compilers/flutter/versions/3_16/data.json new file mode 100644 index 000000000000..100b2bd427d4 --- /dev/null +++ b/pkgs/development/compilers/flutter/versions/3_16/data.json @@ -0,0 +1,951 @@ +{ + "version": "3.16.7", + "engineVersion": "4a585b79294e830fa89c24924d58a27cc8fbf406", + "dartVersion": "3.2.4", + "dartHash": { + "x86_64-linux": "sha256-qslf+wgmNz9r+e45o3Bg9/vDj75GkM9gQE2tb5rbIvw=", + "aarch64-linux": "sha256-Wsm8GKi7PR5iGx/lNtp2qBK+lMk2NIHf/RvO5G94QnQ=", + "x86_64-darwin": "sha256-8DXMj0yhKpxHdqS0vr5C/RwhQGxvUmvxJA6mOgqBXU8=", + "aarch64-darwin": "sha256-ic6txmbhsv4CarUwG+4xqXsaQrMN4AQrWwg8DxsZGps=" + }, + "flutterHash": "sha256-j+tc8hMgZMBhju89n4e9tKRrq+CFBGOyeE0y+Z4FtHE=", + "artifactHashes": { + "android": { + "aarch64-linux": "sha256-j8jstEE1RsTVHJbq6f6We0An+CyJz9JH/YClyNA4mwg=", + "x86_64-darwin": "sha256-0FBI0CGMcxyttkzrdyjJlkGAjFd/yMuAQS3pDrNXZZw=", + "x86_64-linux": "sha256-j8jstEE1RsTVHJbq6f6We0An+CyJz9JH/YClyNA4mwg=" + }, + "fuchsia": { + "aarch64-linux": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=", + "x86_64-darwin": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=", + "x86_64-linux": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=" + }, + "ios": { + "aarch64-linux": "sha256-V3VXRX8hn45J+NhzKli+NAc3TGiSoeVQRlJte8DDbZw=", + "x86_64-darwin": "sha256-V3VXRX8hn45J+NhzKli+NAc3TGiSoeVQRlJte8DDbZw=", + "x86_64-linux": "sha256-V3VXRX8hn45J+NhzKli+NAc3TGiSoeVQRlJte8DDbZw=" + }, + "linux": { + "aarch64-linux": "sha256-LWpou3L7bAWGn8i4nDT/BZez2Uhf/LbqC2C4Z98hCHQ=", + "x86_64-darwin": "sha256-BzjmO4F8B9GagYPbdvoT55r+YgZcP4BUaKgJPGZDXOU=", + "x86_64-linux": "sha256-BzjmO4F8B9GagYPbdvoT55r+YgZcP4BUaKgJPGZDXOU=" + }, + "macos": { + "aarch64-linux": "sha256-BMFqhhy1O1hK33Pj2cxnCAzK9wwHkwT4gNbJ1GaLrnk=", + "x86_64-darwin": "sha256-BMFqhhy1O1hK33Pj2cxnCAzK9wwHkwT4gNbJ1GaLrnk=", + "x86_64-linux": "sha256-BMFqhhy1O1hK33Pj2cxnCAzK9wwHkwT4gNbJ1GaLrnk=" + }, + "universal": { + "aarch64-linux": "sha256-uB2YZRjioP/koMbPvaBHsezjPO0w5a+BpxZaDuiINIY=", + "x86_64-darwin": "sha256-Qwf12gMqrW5nDC9Is08oxWTbKMptRQRAIb58JETq3xA=", + "x86_64-linux": "sha256-quSFKx7TZRJpK+4YDt5f9jwr7rZsSsaXMxhJ8vIcczQ=" + }, + "web": { + "aarch64-linux": "sha256-rQphVm+T4k5B4OYYw0sJwYBOsNvUOC9fu8IuvXN7hVw=", + "x86_64-darwin": "sha256-rQphVm+T4k5B4OYYw0sJwYBOsNvUOC9fu8IuvXN7hVw=", + "x86_64-linux": "sha256-rQphVm+T4k5B4OYYw0sJwYBOsNvUOC9fu8IuvXN7hVw=" + }, + "windows": { + "aarch64-linux": "sha256-HL3QLwzze9aO+T/2/xbHqhKV1/ba++MuRnk206hfJdU=", + "x86_64-darwin": "sha256-HL3QLwzze9aO+T/2/xbHqhKV1/ba++MuRnk206hfJdU=", + "x86_64-linux": "sha256-HL3QLwzze9aO+T/2/xbHqhKV1/ba++MuRnk206hfJdU=" + } + }, + "pubspecLock": { + "packages": { + "_fe_analyzer_shared": { + "dependency": "direct main", + "description": { + "name": "_fe_analyzer_shared", + "sha256": "eb376e9acf6938204f90eb3b1f00b578640d3188b4c8a8ec054f9f479af8d051", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "64.0.0" + }, + "analyzer": { + "dependency": "direct main", + "description": { + "name": "analyzer", + "sha256": "69f54f967773f6c26c7dcb13e93d7ccee8b17a641689da39e878d5cf13b06893", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.2.0" + }, + "archive": { + "dependency": "direct main", + "description": { + "name": "archive", + "sha256": "80e5141fafcb3361653ce308776cfd7d45e6e9fbb429e14eec571382c0c5fecb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.3.2" + }, + "args": { + "dependency": "direct main", + "description": { + "name": "args", + "sha256": "eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.2" + }, + "async": { + "dependency": "direct main", + "description": { + "name": "async", + "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.11.0" + }, + "boolean_selector": { + "dependency": "direct main", + "description": { + "name": "boolean_selector", + "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "browser_launcher": { + "dependency": "direct main", + "description": { + "name": "browser_launcher", + "sha256": "6ee4c6b1f68a42e769ef6e663c4f56708522f7bce9d2ab6e308a37b612ffa4ec", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.1" + }, + "built_collection": { + "dependency": "direct main", + "description": { + "name": "built_collection", + "sha256": "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.1.1" + }, + "built_value": { + "dependency": "direct main", + "description": { + "name": "built_value", + "sha256": "a8de5955205b4d1dbbbc267daddf2178bd737e4bab8987c04a500478c9651e74", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "8.6.3" + }, + "checked_yaml": { + "dependency": "direct dev", + "description": { + "name": "checked_yaml", + "sha256": "feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.3" + }, + "cli_config": { + "dependency": "direct main", + "description": { + "name": "cli_config", + "sha256": "76910209e4aee158f5e26721509c98d7cbb97085da637f62b7c461298033752d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.1" + }, + "clock": { + "dependency": "direct main", + "description": { + "name": "clock", + "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.1" + }, + "collection": { + "dependency": "direct dev", + "description": { + "name": "collection", + "sha256": "ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.18.0" + }, + "completion": { + "dependency": "direct main", + "description": { + "name": "completion", + "sha256": "f11b7a628e6c42b9edc9b0bc3aa490e2d930397546d2f794e8e1325909d11c60", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.1" + }, + "convert": { + "dependency": "direct main", + "description": { + "name": "convert", + "sha256": "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.1" + }, + "coverage": { + "dependency": "direct main", + "description": { + "name": "coverage", + "sha256": "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.6.3" + }, + "crypto": { + "dependency": "direct main", + "description": { + "name": "crypto", + "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.3" + }, + "csslib": { + "dependency": "direct main", + "description": { + "name": "csslib", + "sha256": "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0" + }, + "dap": { + "dependency": "direct main", + "description": { + "name": "dap", + "sha256": "1dc9a11bc60836b151672d3edb6a56a18383ecf122e56eaf5837b32c81641aeb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.0" + }, + "dds": { + "dependency": "direct main", + "description": { + "name": "dds", + "sha256": "b7c2e57d24edda6b1d37fbd0748aefc1d75d9257a7dd0328d31398754144eac4", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.9.5" + }, + "dds_service_extensions": { + "dependency": "direct main", + "description": { + "name": "dds_service_extensions", + "sha256": "609d0a5d928502f7d160e4466f644474352721f4880c840ec9e8d208fff16d95", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.6.0" + }, + "devtools_shared": { + "dependency": "direct main", + "description": { + "name": "devtools_shared", + "sha256": "2fc4a90ba419b5cb59c6c7a060e94e9c4fdd993d96ef598910c572cb107f1f42", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.26.1" + }, + "dwds": { + "dependency": "direct main", + "description": { + "name": "dwds", + "sha256": "44778de6f92203fad32c550ca0d7a9bd1377e6926272ff7eda7c7a1bdde0cf2b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "21.0.0+1" + }, + "fake_async": { + "dependency": "direct main", + "description": { + "name": "fake_async", + "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.1" + }, + "file": { + "dependency": "direct main", + "description": { + "name": "file", + "sha256": "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.1.4" + }, + "file_testing": { + "dependency": "direct dev", + "description": { + "name": "file_testing", + "sha256": "0aaadb4025bd350403f4308ad6c4cea953278d9407814b8342558e4946840fb5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.0" + }, + "fixnum": { + "dependency": "direct main", + "description": { + "name": "fixnum", + "sha256": "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.0" + }, + "flutter_template_images": { + "dependency": "direct main", + "description": { + "name": "flutter_template_images", + "sha256": "fd3e55af73c577b9e3f88d4080d3e366cb5c8ef3fbd50b94dfeca56bb0235df6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.2.0" + }, + "frontend_server_client": { + "dependency": "direct main", + "description": { + "name": "frontend_server_client", + "sha256": "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.2.0" + }, + "glob": { + "dependency": "direct main", + "description": { + "name": "glob", + "sha256": "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "graphs": { + "dependency": "direct main", + "description": { + "name": "graphs", + "sha256": "aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.1" + }, + "html": { + "dependency": "direct main", + "description": { + "name": "html", + "sha256": "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.15.4" + }, + "http": { + "dependency": "direct main", + "description": { + "name": "http", + "sha256": "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.13.6" + }, + "http_multi_server": { + "dependency": "direct main", + "description": { + "name": "http_multi_server", + "sha256": "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.2.1" + }, + "http_parser": { + "dependency": "direct main", + "description": { + "name": "http_parser", + "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.0.2" + }, + "intl": { + "dependency": "direct main", + "description": { + "name": "intl", + "sha256": "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.18.1" + }, + "io": { + "dependency": "direct main", + "description": { + "name": "io", + "sha256": "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "js": { + "dependency": "direct main", + "description": { + "name": "js", + "sha256": "f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.6.7" + }, + "json_annotation": { + "dependency": "direct dev", + "description": { + "name": "json_annotation", + "sha256": "b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.8.1" + }, + "json_rpc_2": { + "dependency": "direct main", + "description": { + "name": "json_rpc_2", + "sha256": "5e469bffa23899edacb7b22787780068d650b106a21c76db3c49218ab7ca447e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.2" + }, + "logging": { + "dependency": "direct main", + "description": { + "name": "logging", + "sha256": "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "matcher": { + "dependency": "direct main", + "description": { + "name": "matcher", + "sha256": "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.12.16" + }, + "meta": { + "dependency": "direct main", + "description": { + "name": "meta", + "sha256": "a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.10.0" + }, + "mime": { + "dependency": "direct main", + "description": { + "name": "mime", + "sha256": "e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "multicast_dns": { + "dependency": "direct main", + "description": { + "name": "multicast_dns", + "sha256": "f4fd1c3365171fac5160afcb1a283001d3413dee5fd41c61d80888952d609379", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.2+4" + }, + "mustache_template": { + "dependency": "direct main", + "description": { + "name": "mustache_template", + "sha256": "a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.0" + }, + "native_assets_builder": { + "dependency": "direct main", + "description": { + "name": "native_assets_builder", + "sha256": "83e92c0f4917cfea0af594aac9ab5ee7d396fbcee1c19839ff33b8e1666cd84e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.3" + }, + "native_assets_cli": { + "dependency": "direct main", + "description": { + "name": "native_assets_cli", + "sha256": "51d1af3ebc2437f5883ed749f1877cb82d6a569b0712dad02c8370e6e4f2b5e3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.0" + }, + "native_stack_traces": { + "dependency": "direct main", + "description": { + "name": "native_stack_traces", + "sha256": "c797830b9910d13b0f4e70ddef15cde034214fe3bdb8092c4ea5ffad2f74013f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.5.6" + }, + "node_preamble": { + "dependency": "direct dev", + "description": { + "name": "node_preamble", + "sha256": "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.2" + }, + "package_config": { + "dependency": "direct main", + "description": { + "name": "package_config", + "sha256": "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.0" + }, + "path": { + "dependency": "direct main", + "description": { + "name": "path", + "sha256": "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.8.3" + }, + "petitparser": { + "dependency": "direct main", + "description": { + "name": "petitparser", + "sha256": "eeb2d1428ee7f4170e2bd498827296a18d4e7fc462b71727d111c0ac7707cfa6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.0.1" + }, + "platform": { + "dependency": "direct main", + "description": { + "name": "platform", + "sha256": "ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.2" + }, + "pool": { + "dependency": "direct main", + "description": { + "name": "pool", + "sha256": "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.5.1" + }, + "process": { + "dependency": "direct main", + "description": { + "name": "process", + "sha256": "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.2.4" + }, + "pub_semver": { + "dependency": "direct main", + "description": { + "name": "pub_semver", + "sha256": "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.4" + }, + "pubspec_parse": { + "dependency": "direct dev", + "description": { + "name": "pubspec_parse", + "sha256": "c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.3" + }, + "shelf": { + "dependency": "direct main", + "description": { + "name": "shelf", + "sha256": "ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.4.1" + }, + "shelf_packages_handler": { + "dependency": "direct main", + "description": { + "name": "shelf_packages_handler", + "sha256": "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.2" + }, + "shelf_proxy": { + "dependency": "direct main", + "description": { + "name": "shelf_proxy", + "sha256": "a71d2307f4393211930c590c3d2c00630f6c5a7a77edc1ef6436dfd85a6a7ee3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "shelf_static": { + "dependency": "direct main", + "description": { + "name": "shelf_static", + "sha256": "a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.2" + }, + "shelf_web_socket": { + "dependency": "direct main", + "description": { + "name": "shelf_web_socket", + "sha256": "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "source_map_stack_trace": { + "dependency": "direct main", + "description": { + "name": "source_map_stack_trace", + "sha256": "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "source_maps": { + "dependency": "direct main", + "description": { + "name": "source_maps", + "sha256": "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.10.12" + }, + "source_span": { + "dependency": "direct main", + "description": { + "name": "source_span", + "sha256": "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.10.0" + }, + "sse": { + "dependency": "direct main", + "description": { + "name": "sse", + "sha256": "3ff9088cac3f45aa8b91336f1962e3ea6c81baaba0bbba361c05f8aa7fb59442", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.1.2" + }, + "stack_trace": { + "dependency": "direct main", + "description": { + "name": "stack_trace", + "sha256": "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.11.1" + }, + "standard_message_codec": { + "dependency": "direct main", + "description": { + "name": "standard_message_codec", + "sha256": "fc7dd712d191b7e33196a0ecf354c4573492bb95995e7166cb6f73b047f9cae0", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.0.1+4" + }, + "stream_channel": { + "dependency": "direct main", + "description": { + "name": "stream_channel", + "sha256": "ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "string_scanner": { + "dependency": "direct main", + "description": { + "name": "string_scanner", + "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "sync_http": { + "dependency": "direct main", + "description": { + "name": "sync_http", + "sha256": "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.1" + }, + "term_glyph": { + "dependency": "direct main", + "description": { + "name": "term_glyph", + "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.1" + }, + "test": { + "dependency": "direct dev", + "description": { + "name": "test", + "sha256": "9b0dd8e36af4a5b1569029949d50a52cb2a2a2fdaa20cebb96e6603b9ae241f9", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.24.6" + }, + "test_api": { + "dependency": "direct main", + "description": { + "name": "test_api", + "sha256": "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.6.1" + }, + "test_core": { + "dependency": "direct main", + "description": { + "name": "test_core", + "sha256": "4bef837e56375537055fdbbbf6dd458b1859881f4c7e6da936158f77d61ab265", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.5.6" + }, + "typed_data": { + "dependency": "direct main", + "description": { + "name": "typed_data", + "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.2" + }, + "unified_analytics": { + "dependency": "direct main", + "description": { + "name": "unified_analytics", + "sha256": "fbcb0ad896a15c1ddea7ec45e8bfc92a894490e5792e07b74b2e6e992f4c77f8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.8.0" + }, + "usage": { + "dependency": "direct main", + "description": { + "name": "usage", + "sha256": "0bdbde65a6e710343d02a56552eeaefd20b735e04bfb6b3ee025b6b22e8d0e15", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.1.1" + }, + "uuid": { + "dependency": "direct main", + "description": { + "name": "uuid", + "sha256": "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.7" + }, + "vm_service": { + "dependency": "direct main", + "description": { + "name": "vm_service", + "sha256": "c538be99af830f478718b51630ec1b6bee5e74e52c8a802d328d9e71d35d2583", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "11.10.0" + }, + "vm_snapshot_analysis": { + "dependency": "direct main", + "description": { + "name": "vm_snapshot_analysis", + "sha256": "5a79b9fbb6be2555090f55b03b23907e75d44c3fd7bdd88da09848aa5a1914c8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.7.6" + }, + "watcher": { + "dependency": "direct main", + "description": { + "name": "watcher", + "sha256": "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.0" + }, + "web_socket_channel": { + "dependency": "direct main", + "description": { + "name": "web_socket_channel", + "sha256": "d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.0" + }, + "webdriver": { + "dependency": "direct main", + "description": { + "name": "webdriver", + "sha256": "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.2" + }, + "webkit_inspection_protocol": { + "dependency": "direct main", + "description": { + "name": "webkit_inspection_protocol", + "sha256": "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.1" + }, + "xml": { + "dependency": "direct main", + "description": { + "name": "xml", + "sha256": "af5e77e9b83f2f4adc5d3f0a4ece1c7f45a2467b695c2540381bac793e34e556", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.4.2" + }, + "yaml": { + "dependency": "direct main", + "description": { + "name": "yaml", + "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.2" + }, + "yaml_edit": { + "dependency": "direct main", + "description": { + "name": "yaml_edit", + "sha256": "1579d4a0340a83cf9e4d580ea51a16329c916973bffd5bd4b45e911b25d46bfd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + } + }, + "sdks": { + "dart": ">=3.2.0-36.0.dev <4.0.0" + } + } +} diff --git a/pkgs/development/compilers/flutter/versions/3_16/patches/disable-auto-update-shared.patch b/pkgs/development/compilers/flutter/versions/3_16/patches/disable-auto-update-shared.patch new file mode 100644 index 000000000000..961b41f7327c --- /dev/null +++ b/pkgs/development/compilers/flutter/versions/3_16/patches/disable-auto-update-shared.patch @@ -0,0 +1,13 @@ +diff --git a/bin/internal/shared.sh b/bin/internal/shared.sh +index 75d9d3013e..657ad3cb78 100644 +--- a/bin/internal/shared.sh ++++ b/bin/internal/shared.sh +@@ -245,7 +245,7 @@ function shared::execute() { + # and will corrupt each others' downloads. + # + # SHARED_NAME itself is prepared by the caller script. +- upgrade_flutter 7< "$SHARED_NAME" ++ # upgrade_flutter 7< "$SHARED_NAME" + + BIN_NAME="$(basename "$PROG_NAME")" + case "$BIN_NAME" in diff --git a/pkgs/development/compilers/flutter/wrapper.nix b/pkgs/development/compilers/flutter/wrapper.nix index 38c2eb289310..4a7aedf97d38 100644 --- a/pkgs/development/compilers/flutter/wrapper.nix +++ b/pkgs/development/compilers/flutter/wrapper.nix @@ -3,14 +3,14 @@ , darwin , callPackage , flutter -, supportedTargetPlatforms ? [ +, supportedTargetFlutterPlatforms ? [ "universal" "web" ] ++ lib.optional stdenv.hostPlatform.isLinux "linux" ++ lib.optional (stdenv.hostPlatform.isx86_64 || stdenv.hostPlatform.isDarwin) "android" ++ lib.optionals stdenv.hostPlatform.isDarwin [ "macos" "ios" ] -, artifactHashes ? (import ./artifacts/hashes.nix).${flutter.version} +, artifactHashes ? flutter.artifactHashes , extraPkgConfigPackages ? [ ] , extraLibraries ? [ ] , extraIncludes ? [ ] @@ -44,25 +44,26 @@ }: let - supportsLinuxDesktopTarget = builtins.elem "linux" supportedTargetPlatforms; + supportsLinuxDesktopTarget = builtins.elem "linux" supportedTargetFlutterPlatforms; - platformArtifacts = lib.genAttrs supportedTargetPlatforms (platform: + flutterPlatformArtifacts = lib.genAttrs supportedTargetFlutterPlatforms (flutterPlatform: (callPackage ./artifacts/prepare-artifacts.nix { src = callPackage ./artifacts/fetch-artifacts.nix { - inherit platform; + inherit flutterPlatform; + systemPlatform = stdenv.hostPlatform.system; flutter = callPackage ./wrapper.nix { inherit flutter; }; - hash = artifactHashes.${platform}.${stdenv.hostPlatform.system} or ""; + hash = artifactHashes.${flutterPlatform}.${stdenv.hostPlatform.system} or ""; }; })); cacheDir = symlinkJoin rec { name = "flutter-cache-dir"; - paths = builtins.attrValues platformArtifacts; + paths = builtins.attrValues flutterPlatformArtifacts; postBuild = '' mkdir -p "$out/bin/cache" ln -s '${flutter}/bin/cache/dart-sdk' "$out/bin/cache" ''; - passthru.platform = platformArtifacts; + passthru.flutterPlatform = flutterPlatformArtifacts; }; # By default, Flutter stores downloaded files (such as the Pub cache) in the SDK directory. @@ -127,6 +128,7 @@ in passthru = flutter.passthru // { inherit (flutter) version; unwrapped = flutter; + updateScript = ./update/update.py; inherit cacheDir; }; diff --git a/pkgs/development/compilers/idris2/build-idris.nix b/pkgs/development/compilers/idris2/build-idris.nix new file mode 100644 index 000000000000..c299128aa526 --- /dev/null +++ b/pkgs/development/compilers/idris2/build-idris.nix @@ -0,0 +1,73 @@ +{ stdenv, lib, idris2 +}: +# Usage: let +# pkg = idris2Packages.buildIdris { +# src = ...; +# projectName = "my-pkg"; +# idrisLibraries = [ ]; +# }; +# in { +# lib = pkg.library { withSource = true; }; +# bin = pkg.executable; +# } +# +{ src +, projectName +, idrisLibraries # Other libraries built with buildIdris +, ... }@attrs: + +let + ipkgName = projectName + ".ipkg"; + idrName = "idris2-${idris2.version}"; + libSuffix = "lib/${idrName}"; + libDirs = + lib.makeSearchPath libSuffix idrisLibraries; + drvAttrs = builtins.removeAttrs attrs [ "idrisLibraries" ]; + + sharedAttrs = { + name = projectName; + src = src; + nativeBuildInputs = [ idris2 ]; + + IDRIS2_PACKAGE_PATH = libDirs; + + configurePhase = '' + runHook preConfigure + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + idris2 --build ${ipkgName} + runHook postBuild + ''; + }; + +in { + executable = stdenv.mkDerivation (lib.attrsets.mergeAttrsList [ + sharedAttrs + { installPhase = '' + runHook preInstall + mkdir -p $out/bin + mv build/exec/* $out/bin + runHook postInstall + ''; + } + drvAttrs + ]); + library = { withSource ? false }: + let installCmd = if withSource then "--install-with-src" else "--install"; + in stdenv.mkDerivation (lib.attrsets.mergeAttrsList [ + sharedAttrs + { + installPhase = '' + runHook preInstall + mkdir -p $out/${libSuffix} + export IDRIS2_PREFIX=$out/lib + idris2 ${installCmd} ${ipkgName} + runHook postInstall + ''; + } + drvAttrs + ]); +} diff --git a/pkgs/development/compilers/idris2/default.nix b/pkgs/development/compilers/idris2/default.nix index 4bac5d33b1eb..8a2d28eb1ce0 100644 --- a/pkgs/development/compilers/idris2/default.nix +++ b/pkgs/development/compilers/idris2/default.nix @@ -1,97 +1,20 @@ -# Almost 1:1 copy of idris2's nix/platform.nix. Some work done in their flake.nix -# we do here instead. -{ stdenv -, lib -, chez -, chez-racket -, clang -, gmp -, fetchFromGitHub -, makeWrapper -, gambit -, nodejs -, zsh -, callPackage +{ callPackage +, idris2Packages }: -# NOTICE: An `idris2WithPackages` is available at: https://github.com/claymager/idris2-pkgs - let - # Taken from Idris2/idris2/flake.nix. Check if the idris2 project does it this - # way, still, every now and then. - platformChez = if stdenv.system == "x86_64-linux" then chez else chez-racket; -# Uses scheme to bootstrap the build of idris2 -in stdenv.mkDerivation rec { - pname = "idris2"; - version = "0.7.0"; +in { + idris2 = callPackage ./idris2.nix { }; - src = fetchFromGitHub { - owner = "idris-lang"; - repo = "Idris2"; - rev = "v${version}"; - sha256 = "sha256-VwveX3fZfrxEsytpbOc5Tm6rySpLFhTt5132J6rmrmM="; - }; + buildIdris = callPackage ./build-idris.nix { }; - strictDeps = true; - nativeBuildInputs = [ makeWrapper clang platformChez ] - ++ lib.optionals stdenv.isDarwin [ zsh ]; - buildInputs = [ platformChez gmp ]; - - prePatch = '' - patchShebangs --build tests - ''; - - makeFlags = [ "PREFIX=$(out)" ] - ++ lib.optional stdenv.isDarwin "OS="; - - # The name of the main executable of pkgs.chez is `scheme` - buildFlags = [ "bootstrap" "SCHEME=scheme" ]; - - checkTarget = "test"; - nativeCheckInputs = [ gambit nodejs ]; # racket ]; - checkFlags = [ "INTERACTIVE=" ]; - - # TODO: Move this into its own derivation, such that this can be changed - # without having to recompile idris2 every time. - postInstall = let - name = "${pname}-${version}"; - globalLibraries = [ - "\\$HOME/.nix-profile/lib/${name}" - "/run/current-system/sw/lib/${name}" - "$out/${name}" - ]; - globalLibrariesPath = builtins.concatStringsSep ":" globalLibraries; - in '' - # Remove existing idris2 wrapper that sets incorrect LD_LIBRARY_PATH - rm $out/bin/idris2 - # The only thing we need from idris2_app is the actual binary - mv $out/bin/idris2_app/idris2.so $out/bin/idris2 - rm $out/bin/idris2_app/* - rmdir $out/bin/idris2_app - # idris2 needs to find scheme at runtime to compile - # idris2 installs packages with --install into the path given by - # IDRIS2_PREFIX. We set that to a default of ~/.idris2, to mirror the - # behaviour of the standard Makefile install. - # TODO: Make support libraries their own derivation such that - # overriding LD_LIBRARY_PATH is unnecessary - wrapProgram "$out/bin/idris2" \ - --set-default CHEZ "${platformChez}/bin/scheme" \ - --run 'export IDRIS2_PREFIX=''${IDRIS2_PREFIX-"$HOME/.idris2"}' \ - --suffix IDRIS2_LIBS ':' "$out/${name}/lib" \ - --suffix IDRIS2_DATA ':' "$out/${name}/support" \ - --suffix IDRIS2_PACKAGE_PATH ':' "${globalLibrariesPath}" \ - --suffix DYLD_LIBRARY_PATH ':' "$out/${name}/lib" \ - --suffix LD_LIBRARY_PATH ':' "$out/${name}/lib" - ''; - - # Run package tests - passthru.tests = callPackage ./tests.nix { inherit pname; }; - - meta = { - description = "A purely functional programming language with first class types"; - homepage = "https://github.com/idris-lang/Idris2"; - license = lib.licenses.bsd3; - maintainers = with lib.maintainers; [ fabianhjr wchresta ]; - inherit (chez.meta) platforms; - }; + idris2Api = (idris2Packages.buildIdris { + inherit (idris2Packages.idris2) src; + projectName = "idris2api"; + idrisLibraries = [ ]; + preBuild = '' + export IDRIS2_PREFIX=$out/lib + make src/IdrisPaths.idr + ''; + }).library; } diff --git a/pkgs/development/compilers/idris2/idris2.nix b/pkgs/development/compilers/idris2/idris2.nix new file mode 100644 index 000000000000..88c4d05703cf --- /dev/null +++ b/pkgs/development/compilers/idris2/idris2.nix @@ -0,0 +1,97 @@ +# Almost 1:1 copy of idris2's nix/package.nix. Some work done in their flake.nix +# we do here instead. +{ stdenv +, lib +, chez +, chez-racket +, clang +, gmp +, fetchFromGitHub +, makeWrapper +, gambit +, nodejs +, zsh +, callPackage +}: + +# NOTICE: An `idris2WithPackages` is available at: https://github.com/claymager/idris2-pkgs + +let + # Taken from Idris2/idris2/flake.nix. Check if the idris2 project does it this + # way, still, every now and then. + platformChez = if stdenv.system == "x86_64-linux" then chez else chez-racket; +# Uses scheme to bootstrap the build of idris2 +in stdenv.mkDerivation rec { + pname = "idris2"; + version = "0.7.0"; + + src = fetchFromGitHub { + owner = "idris-lang"; + repo = "Idris2"; + rev = "v${version}"; + sha256 = "sha256-VwveX3fZfrxEsytpbOc5Tm6rySpLFhTt5132J6rmrmM="; + }; + + strictDeps = true; + nativeBuildInputs = [ makeWrapper clang platformChez ] + ++ lib.optionals stdenv.isDarwin [ zsh ]; + buildInputs = [ platformChez gmp ]; + + prePatch = '' + patchShebangs --build tests + ''; + + makeFlags = [ "PREFIX=$(out)" ] + ++ lib.optional stdenv.isDarwin "OS="; + + # The name of the main executable of pkgs.chez is `scheme` + buildFlags = [ "bootstrap" "SCHEME=scheme" ]; + + checkTarget = "test"; + nativeCheckInputs = [ gambit nodejs ]; # racket ]; + checkFlags = [ "INTERACTIVE=" ]; + + # TODO: Move this into its own derivation, such that this can be changed + # without having to recompile idris2 every time. + postInstall = let + name = "${pname}-${version}"; + globalLibraries = [ + "\\$HOME/.nix-profile/lib/${name}" + "/run/current-system/sw/lib/${name}" + "$out/${name}" + ]; + globalLibrariesPath = builtins.concatStringsSep ":" globalLibraries; + in '' + # Remove existing idris2 wrapper that sets incorrect LD_LIBRARY_PATH + rm $out/bin/idris2 + # The only thing we need from idris2_app is the actual binary + mv $out/bin/idris2_app/idris2.so $out/bin/idris2 + rm $out/bin/idris2_app/* + rmdir $out/bin/idris2_app + # idris2 needs to find scheme at runtime to compile + # idris2 installs packages with --install into the path given by + # IDRIS2_PREFIX. We set that to a default of ~/.idris2, to mirror the + # behaviour of the standard Makefile install. + # TODO: Make support libraries their own derivation such that + # overriding LD_LIBRARY_PATH is unnecessary + wrapProgram "$out/bin/idris2" \ + --set-default CHEZ "${platformChez}/bin/scheme" \ + --run 'export IDRIS2_PREFIX=''${IDRIS2_PREFIX-"$HOME/.idris2"}' \ + --suffix IDRIS2_LIBS ':' "$out/${name}/lib" \ + --suffix IDRIS2_DATA ':' "$out/${name}/support" \ + --suffix IDRIS2_PACKAGE_PATH ':' "${globalLibrariesPath}" \ + --suffix DYLD_LIBRARY_PATH ':' "$out/${name}/lib" \ + --suffix LD_LIBRARY_PATH ':' "$out/${name}/lib" + ''; + + # Run package tests + passthru.tests = callPackage ./tests.nix { inherit pname; }; + + meta = { + description = "A purely functional programming language with first class types"; + homepage = "https://github.com/idris-lang/Idris2"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ fabianhjr wchresta mattpolzin ]; + inherit (chez.meta) platforms; + }; +} diff --git a/pkgs/development/hare-third-party/hare-ssh/default.nix b/pkgs/development/hare-third-party/hare-ssh/default.nix new file mode 100644 index 000000000000..d25669f36643 --- /dev/null +++ b/pkgs/development/hare-third-party/hare-ssh/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, hare, hareThirdParty, fetchFromSourcehut }: + +stdenv.mkDerivation (finalAttrs: { + pname = "hare-ssh"; + version = "unstable-2023-11-16"; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = "hare-ssh"; + rev = "c6a39e37ba4a42721594e0a907fe016f8e2198a8"; + hash = "sha256-I43TLPoImBsvkgV3hDy9dw0pXVt4ezINnxFtEV9P2/M="; + }; + + nativeBuildInputs = [ hare ]; + + makeFlags = [ + "PREFIX=${builtins.placeholder "out"}" + "HARECACHE=.harecache" + ]; + + doCheck = true; + + meta = with lib; { + homepage = "https://git.sr.ht/~sircmpwn/hare-ssh/"; + description = "SSH client & server protocol implementation for Hare"; + license = with licenses; [ mpl20 ]; + maintainers = with maintainers; [ patwid ]; + + inherit (hare.meta) platforms badPlatforms; + }; +}) diff --git a/pkgs/development/libraries/aemu/default.nix b/pkgs/development/libraries/aemu/default.nix index 3ee8e5eca6f1..e2ea8e5b1cd5 100644 --- a/pkgs/development/libraries/aemu/default.nix +++ b/pkgs/development/libraries/aemu/default.nix @@ -28,6 +28,7 @@ stdenv.mkDerivation { # The BSD license comes from host-common/VpxFrameParser.cpp, which # incorporates some code from libvpx, which uses the 3-clause BSD license. license = with licenses; [ asl20 mit bsd3 ]; - platforms = platforms.darwin ++ platforms.linux; + # See base/include/aemu/base/synchronization/Lock.h + platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; }; } diff --git a/pkgs/development/libraries/gfxstream/default.nix b/pkgs/development/libraries/gfxstream/default.nix index bb88fe9f8496..196bca7cdc5f 100644 --- a/pkgs/development/libraries/gfxstream/default.nix +++ b/pkgs/development/libraries/gfxstream/default.nix @@ -29,6 +29,6 @@ stdenv.mkDerivation { description = "Graphics Streaming Kit"; license = licenses.free; # https://android.googlesource.com/platform/hardware/google/gfxstream/+/refs/heads/main/LICENSE maintainers = with maintainers; [ qyliss ]; - platforms = platforms.darwin ++ platforms.linux; + platforms = aemu.meta.platforms; }; } diff --git a/pkgs/development/libraries/rutabaga_gfx/default.nix b/pkgs/development/libraries/rutabaga_gfx/default.nix index ca220bb6ecc4..63f1ed88ae6c 100644 --- a/pkgs/development/libraries/rutabaga_gfx/default.nix +++ b/pkgs/development/libraries/rutabaga_gfx/default.nix @@ -1,5 +1,13 @@ -{ lib, stdenv, fetchgit, cargo, pkg-config, rustPlatform -, aemu, gfxstream, libcap, libdrm, minijail +{ lib +, stdenv +, fetchgit +, fetchpatch +, cargo +, pkg-config +, rustPlatform +, aemu +, gfxstream +, libdrm }: stdenv.mkDerivation (finalAttrs: { @@ -13,9 +21,23 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-0RJDKzeU7U6hc6CLKks8QcRs3fxN+/LYUbB0t6W790M="; }; + patches = [ + # Make gfxstream optional + # https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4860836 + (fetchpatch { + url = "https://chromium.googlesource.com/crosvm/crosvm/+/c3ad0e43eb12cbf737a6049e0134d483e337363f%5E%21/?format=TEXT"; + decode = "base64 -d"; + hash = "sha256-Ji1bK7jnRlg0OpDfCLcTHfPSiz3zYcdgsWL4n3EoIYI="; + }) + ]; + nativeBuildInputs = [ cargo pkg-config rustPlatform.cargoSetupHook ]; - buildInputs = [ aemu gfxstream ] - ++ lib.optional (lib.meta.availableOn stdenv.hostPlatform libdrm) libdrm; + buildInputs = lib.optionals (lib.meta.availableOn stdenv.hostPlatform gfxstream) ([ + aemu + gfxstream + ] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform libdrm) [ + libdrm + ]); cargoDeps = rustPlatform.fetchCargoTarball { inherit (finalAttrs) src; diff --git a/pkgs/development/ocaml-modules/msat/default.nix b/pkgs/development/ocaml-modules/msat/default.nix new file mode 100644 index 000000000000..d5893dc55e04 --- /dev/null +++ b/pkgs/development/ocaml-modules/msat/default.nix @@ -0,0 +1,36 @@ +{ lib, fetchFromGitHub, buildDunePackage +, iter +, containers +, mdx +}: + +buildDunePackage rec { + pname = "msat"; + version = "0.9.1"; + + src = fetchFromGitHub { + owner = "Gbury"; + repo = "mSAT"; + rev = "v${version}"; + hash = "sha256-ER7ZUejW+Zy3l2HIoFDYbR8iaKMvLZWaeWrOAAYXjG4="; + }; + + propagatedBuildInputs = [ + iter + ]; + + postPatch = '' + substituteInPlace dune --replace mdx ocaml-mdx + ''; + + doCheck = true; + checkInputs = [ containers ]; + nativeCheckInputs = [ mdx.bin ]; + + meta = { + description = "A modular sat/smt solver with proof output."; + homepage = "https://gbury.github.io/mSAT/"; + license = lib.licenses.asl20; + maintainers = [ lib.maintainers.vbgl ]; + }; +} diff --git a/pkgs/development/python-modules/gcs-oauth2-boto-plugin/default.nix b/pkgs/development/python-modules/gcs-oauth2-boto-plugin/default.nix index cb298fa2bab1..85e18fb12499 100644 --- a/pkgs/development/python-modules/gcs-oauth2-boto-plugin/default.nix +++ b/pkgs/development/python-modules/gcs-oauth2-boto-plugin/default.nix @@ -11,7 +11,7 @@ , pytestCheckHook , pythonOlder , pythonRelaxDepsHook -, retry_decorator +, retry-decorator , rsa , six }: @@ -43,7 +43,7 @@ buildPythonPackage rec { httplib2 oauth2client pyopenssl - retry_decorator + retry-decorator rsa six ]; diff --git a/pkgs/development/python-modules/retry_decorator/default.nix b/pkgs/development/python-modules/retry-decorator/default.nix similarity index 100% rename from pkgs/development/python-modules/retry_decorator/default.nix rename to pkgs/development/python-modules/retry-decorator/default.nix diff --git a/pkgs/development/tools/gotraceui/default.nix b/pkgs/development/tools/gotraceui/default.nix index 7eeb11612f93..15cc09ffebd2 100644 --- a/pkgs/development/tools/gotraceui/default.nix +++ b/pkgs/development/tools/gotraceui/default.nix @@ -5,16 +5,16 @@ buildGoModule rec { pname = "gotraceui"; - version = "0.3.0"; + version = "0.4.0"; src = fetchFromGitHub { owner = "dominikh"; repo = "gotraceui"; rev = "v${version}"; - sha256 = "sha256-hdI1TT33pPHK5018RQ+riPVqzqOF/xDkvh0WoYi6Pes="; + sha256 = "sha256-Rforuh9YlTv/mTpQm0+BaY+Ssc4DAiDCzVkIerP5Uz0="; }; - vendorHash = "sha256-nXPiwSG2Hs86/raDvTv2p77P6Xwm+t8VT0dvZpXE8Os="; + vendorHash = "sha256-dNV5u6BG+2Nzci6dX/4/4WAeM/zXE5+Ix0HqIsNnm0E="; subPackages = ["cmd/gotraceui"]; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/development/tools/language-servers/csharp-ls/default.nix b/pkgs/development/tools/language-servers/csharp-ls/default.nix index cefb7a969a40..f354b3220fc7 100644 --- a/pkgs/development/tools/language-servers/csharp-ls/default.nix +++ b/pkgs/development/tools/language-servers/csharp-ls/default.nix @@ -20,7 +20,7 @@ buildDotnetGlobalTool rec { homepage = "https://github.com/razzmatazz/csharp-language-server"; changelog = "https://github.com/razzmatazz/csharp-language-server/releases/tag/v${version}"; license = licenses.mit; - platforms = platforms.linux; + platforms = platforms.unix; maintainers = with maintainers; [ GaetanLepage ]; }; } diff --git a/pkgs/os-specific/linux/trace-cmd/default.nix b/pkgs/os-specific/linux/trace-cmd/default.nix index 7bdadc2cea15..d19754cdb5e0 100644 --- a/pkgs/os-specific/linux/trace-cmd/default.nix +++ b/pkgs/os-specific/linux/trace-cmd/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchzip, pkg-config, asciidoc, xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt, libtraceevent, libtracefs, zstd, sourceHighlight }: +{ lib, stdenv, fetchpatch, fetchzip, pkg-config, asciidoc, xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt, libtraceevent, libtracefs, zstd, sourceHighlight }: stdenv.mkDerivation rec { pname = "trace-cmd"; version = "3.2"; @@ -8,6 +8,14 @@ stdenv.mkDerivation rec { hash = "sha256-rTcaaEQ3Y4cneNnZSGiMZNp+Z7dyAa3oNTNMAEXr28g="; }; + patches = [ + # Upstream patches to be released in the next version + (fetchpatch { + sha256 = "sha256-eGuHODm29M7rbGYsyXUPoNe1xsIG3eJYhwXQDakRJHA="; + url = "https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/patch/?id=6b07a7df871342068604b204711ab741d421d051"; + }) + ]; + # Don't build and install html documentation postPatch = '' sed -i -e '/^all:/ s/html//' -e '/^install:/ s/install-html//' \ diff --git a/pkgs/shells/powershell/default.nix b/pkgs/shells/powershell/default.nix index 63564b0db547..97e179c94815 100644 --- a/pkgs/shells/powershell/default.nix +++ b/pkgs/shells/powershell/default.nix @@ -29,7 +29,7 @@ let in stdenv.mkDerivation rec { pname = "powershell"; - version = "7.4.0"; + version = "7.4.1"; src = passthru.sources.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); @@ -84,19 +84,19 @@ stdenv.mkDerivation rec { sources = { aarch64-darwin = fetchurl { url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-osx-arm64.tar.gz"; - hash = "sha256-FnT91XGMr7gE7/dYX+i3BBNiMiqpRODS+BbKHXXmNR8="; + hash = "sha256-Q10TWUPw8eOmb+76AlHXPp6AdvUS3pxGnNsgXFvnGWc="; }; aarch64-linux = fetchurl { url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-linux-arm64.tar.gz"; - hash = "sha256-E9MXYQuhM8ACmQxAYiqIaYk2hGBFGAmGHzeMJXMJifQ="; + hash = "sha256-cZwRVEofYyLyxY9Vkf96u3dorvl+8KOC43Efifoq3iI="; }; x86_64-darwin = fetchurl { url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-osx-x64.tar.gz"; - hash = "sha256-i2vQtNp6wgU2g+0pizlviSn/XKO4AwZcc29TIJ6BXBM="; + hash = "sha256-H63q4MY00o8OIISTv7VBnSZd8FdwLEuoCyErZE2X3AA="; }; x86_64-linux = fetchurl { url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-linux-x64.tar.gz"; - hash = "sha256-qoLD6SQVA7UtsYJ+P9f8CZ2nT4KLoDLptyblDHK0vuU="; + hash = "sha256-i+q6xEMbdem2fG2fr9iwLMAZ8h8jDqPZSuwTSMUFKdM="; }; }; tests.version = testers.testVersion { diff --git a/pkgs/tools/filesystems/bcachefs-tools/Cargo.lock b/pkgs/tools/filesystems/bcachefs-tools/Cargo.lock index a99cd4744392..091f76071a2b 100644 --- a/pkgs/tools/filesystems/bcachefs-tools/Cargo.lock +++ b/pkgs/tools/filesystems/bcachefs-tools/Cargo.lock @@ -99,7 +99,6 @@ dependencies = [ "errno 0.2.8", "gag", "getset", - "itertools", "libc", "log", "parse-display", @@ -407,15 +406,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "itertools" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" -dependencies = [ - "either", -] - [[package]] name = "lazy_static" version = "1.4.0" diff --git a/pkgs/tools/filesystems/bcachefs-tools/default.nix b/pkgs/tools/filesystems/bcachefs-tools/default.nix index 8eed999ccfe8..17b438ac46b8 100644 --- a/pkgs/tools/filesystems/bcachefs-tools/default.nix +++ b/pkgs/tools/filesystems/bcachefs-tools/default.nix @@ -24,14 +24,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "bcachefs-tools"; - version = "1.3.5"; + version = "1.4.1"; src = fetchFromGitHub { owner = "koverstreet"; repo = "bcachefs-tools"; rev = "v${finalAttrs.version}"; - hash = "sha256-Yq631LPpWal0hsEJS0dOtiox1295tYgUWJVIw+bsbnw="; + hash = "sha256-+KqTiIp9dIJWG2KvgvPwXC7p754XfgvKHjvwjCdbvCs="; }; nativeBuildInputs = [ @@ -69,7 +69,8 @@ stdenv.mkDerivation (finalAttrs: { checkFlags = [ "BCACHEFS_TEST_USE_VALGRIND=no" ]; makeFlags = [ - "PREFIX=${placeholder "out"}" + "DESTDIR=${placeholder "out"}" + "PREFIX=" "VERSION=${finalAttrs.version}" "INITRAMFS_DIR=${placeholder "out"}/etc/initramfs-tools" ]; diff --git a/pkgs/tools/games/pocket-updater-utility/default.nix b/pkgs/tools/games/pocket-updater-utility/default.nix index bfb863b909b1..9777b433505a 100644 --- a/pkgs/tools/games/pocket-updater-utility/default.nix +++ b/pkgs/tools/games/pocket-updater-utility/default.nix @@ -12,13 +12,13 @@ buildDotnetModule rec { pname = "pocket-updater-utility"; - version = "2.42.0"; + version = "2.43.0"; src = fetchFromGitHub { owner = "mattpannella"; repo = "${pname}"; rev = "${version}"; - hash = "sha256-Xw85xQstGDCJJ0J/WWd36Z1cXUAoIsL8lGcu7vZEWCA="; + hash = "sha256-mizKR3hS8s1we+jJ1bQQpFzRMjHFv4UAiINUpfnWnwI="; }; buildInputs = [ diff --git a/pkgs/tools/security/secp256k1/default.nix b/pkgs/tools/security/secp256k1/default.nix index 1af6812cfc99..5494f8f26c24 100644 --- a/pkgs/tools/security/secp256k1/default.nix +++ b/pkgs/tools/security/secp256k1/default.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation rec { pname = "secp256k1"; - version = "0.4.0"; + version = "0.4.1"; src = fetchFromGitHub { owner = "bitcoin-core"; repo = "secp256k1"; rev = "refs/tags/v${version}"; - sha256 = "sha256-KNEOEwxeCQybFdUFfItEF5KoZ/fZ/mahFU1LSlRyHZE="; + sha256 = "sha256-atq34GnWkSkWTWxZP4PCSF3hIjGFhQ534E+WUtLRkiM="; }; nativeBuildInputs = [ autoreconfHook ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ea71231b1ff2..c4af574d39d9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15789,10 +15789,10 @@ with pkgs; fluidd = callPackage ../applications/misc/fluidd { }; - flutterPackages = - recurseIntoAttrs (callPackage ../development/compilers/flutter { }); - flutter-unwrapped = flutterPackages.stable; - flutter = flutterPackages.wrapFlutter flutter-unwrapped; + flutterPackages = recurseIntoAttrs (callPackage ../development/compilers/flutter { }); + flutter = flutterPackages.stable; + flutter316 = flutterPackages.v3_16; + flutter313 = flutterPackages.v3_13; fnm = callPackage ../development/tools/fnm { inherit (darwin.apple_sdk.frameworks) DiskArbitration Foundation Security; @@ -16380,7 +16380,9 @@ with pkgs; idris = idrisPackages.with-packages [ idrisPackages.base ] ; - idris2 = callPackage ../development/compilers/idris2 { }; + idris2Packages = recurseIntoAttrs (callPackage ../development/compilers/idris2 { }); + + inherit (idris2Packages) idris2; inherit (callPackage ../development/tools/database/indradb { }) indradb-server @@ -39550,6 +39552,8 @@ with pkgs; monosat = callPackage ../applications/science/logic/monosat { }; + msat = callPackage ../applications/science/logic/msat { }; + nusmv = callPackage ../applications/science/logic/nusmv { }; nuXmv = callPackage ../applications/science/logic/nuXmv { }; diff --git a/pkgs/top-level/hare-third-party.nix b/pkgs/top-level/hare-third-party.nix index 942ec063559c..3796bbcba5b9 100644 --- a/pkgs/top-level/hare-third-party.nix +++ b/pkgs/top-level/hare-third-party.nix @@ -8,6 +8,7 @@ in hare-compress = callPackage ../development/hare-third-party/hare-compress { }; hare-ev = callPackage ../development/hare-third-party/hare-ev { }; hare-json = callPackage ../development/hare-third-party/hare-json { }; + hare-ssh = callPackage ../development/hare-third-party/hare-ssh { }; hare-toml = callPackage ../development/hare-third-party/hare-toml { }; hare-png = callPackage ../development/hare-third-party/hare-png { }; }) diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 317ecf9f3eeb..b31932759c85 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -1174,6 +1174,8 @@ let mrmime = callPackage ../development/ocaml-modules/mrmime { }; + msat = callPackage ../development/ocaml-modules/msat { }; + mtime_1 = callPackage ../development/ocaml-modules/mtime/1_x.nix { }; mtime = callPackage ../development/ocaml-modules/mtime { }; diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index 1f1f429eb228..8f1880f6bdc8 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -422,6 +422,7 @@ mapAliases ({ rdflib-jsonld = throw "rdflib-jsonld is not compatible with rdflib 6"; # added 2021-11-05 recaptcha_client = throw "recaptcha_client has been removed since it is no longer maintained"; # added 2023-10-20 rednose = throw "rednose is no longer maintained (since February 2018)"; # added 2023-08-06 + retry_decorator = retry-decorator; # added 2024-01-07 retworkx = rustworkx; # added 2023-05-14 repeated_test = repeated-test; # added 2022-11-15 repoze_lru = repoze-lru; # added 2023-11-11 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 96e779a07e55..b63278fc2df6 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -12578,7 +12578,7 @@ self: super: with self; { retry = callPackage ../development/python-modules/retry { }; - retry_decorator = callPackage ../development/python-modules/retry_decorator { }; + retry-decorator = callPackage ../development/python-modules/retry-decorator { }; retrying = callPackage ../development/python-modules/retrying { };