From 9e26436f7e5e7a328dd169f8898f2747dee79031 Mon Sep 17 00:00:00 2001 From: Arnout Engelen Date: Thu, 19 Mar 2026 17:46:40 +0100 Subject: [PATCH 001/110] nodejs: re-introduce `nodejs.src` This was always equivalent to `nodejs-slim.src`. This is a follow-up on https://github.com/NixOS/nixpkgs/pull/481461 which has links from a number of downstream projects that hit this. --- pkgs/development/web/nodejs/symlink.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/development/web/nodejs/symlink.nix b/pkgs/development/web/nodejs/symlink.nix index 87bbdbec6314..531b5268856d 100644 --- a/pkgs/development/web/nodejs/symlink.nix +++ b/pkgs/development/web/nodejs/symlink.nix @@ -5,7 +5,10 @@ }: symlinkJoin { pname = "nodejs"; - inherit (nodejs-slim) version passthru meta; + inherit (nodejs-slim) version meta; + passthru = nodejs-slim.passthru // { + inherit (nodejs-slim) src; + }; paths = [ nodejs-slim nodejs-slim.npm From a5201b96f259427f109f414450d650f57723fadf Mon Sep 17 00:00:00 2001 From: Connor Grady Date: Sun, 29 Mar 2026 20:41:53 -0700 Subject: [PATCH 002/110] maintainers: add connor-grady --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 611bab3b36c7..3ad82631ff70 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -5388,6 +5388,12 @@ name = "Simon Hauser"; githubId = 15233006; }; + connor-grady = { + email = "connor.grady@gmail.com"; + github = "connor-grady"; + githubId = 50903811; + name = "Connor Grady"; + }; connorbaker = { email = "ConnorBaker01@gmail.com"; matrix = "@connorbaker:matrix.org"; From 2cb7afd6e45ed0e1fc11b48a473e3369d6e646d2 Mon Sep 17 00:00:00 2001 From: Connor Grady Date: Mon, 30 Mar 2026 01:12:14 -0700 Subject: [PATCH 003/110] maintainers: add connor-grady --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 611bab3b36c7..3ad82631ff70 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -5388,6 +5388,12 @@ name = "Simon Hauser"; githubId = 15233006; }; + connor-grady = { + email = "connor.grady@gmail.com"; + github = "connor-grady"; + githubId = 50903811; + name = "Connor Grady"; + }; connorbaker = { email = "ConnorBaker01@gmail.com"; matrix = "@connorbaker:matrix.org"; From 2efcdfdcc3132556f218ec5c2f098e0c1aba70c8 Mon Sep 17 00:00:00 2001 From: Connor Grady Date: Mon, 30 Mar 2026 01:15:08 -0700 Subject: [PATCH 004/110] nixos/authelia: support unnamed default instance --- nixos/modules/services/security/authelia.nix | 34 +++++++++++++------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/nixos/modules/services/security/authelia.nix b/nixos/modules/services/security/authelia.nix index 059337e3a425..57f436c5443e 100644 --- a/nixos/modules/services/security/authelia.nix +++ b/nixos/modules/services/security/authelia.nix @@ -10,9 +10,11 @@ let format = pkgs.formats.yaml { }; + autheliaName = name: "authelia" + lib.optionalString (name != "") "-${name}"; + autheliaOpts = with lib; - { name, ... }: + { name, config, ... }: { options = { enable = mkEnableOption "Authelia instance"; @@ -23,21 +25,28 @@ let description = '' Name is used as a suffix for the service name, user, and group. By default it takes the value you use for `` in: - {option}`services.authelia.` + {option}`services.authelia.instances.` + + When set to the empty string `""`, the service name, user, and group + will be just `authelia` without a suffix. ''; }; package = mkPackageOption pkgs "authelia" { }; user = mkOption { - default = "authelia-${name}"; type = types.str; + defaultText = lib.literalExpression '' + if name == "" then "authelia" else "authelia-''${name}" + ''; description = "The name of the user for this authelia instance."; }; group = mkOption { - default = "authelia-${name}"; type = types.str; + defaultText = lib.literalExpression '' + if name == "" then "authelia" else "authelia-''${name}" + ''; description = "The name of the group for this authelia instance."; }; @@ -252,6 +261,11 @@ let ''; }; }; + + config = { + user = mkDefault (autheliaName config.name); + group = mkDefault (autheliaName config.name); + }; }; writeOidcJwksConfigFile = @@ -382,7 +396,7 @@ in ExecStart = "${execCommand} ${configArg}"; Restart = "always"; RestartSec = "5s"; - StateDirectory = "authelia-${instance.name}"; + StateDirectory = autheliaName instance.name; StateDirectoryMode = "0700"; # Security options: @@ -431,11 +445,8 @@ in }; }; mkInstanceUsersConfig = instance: { - groups."authelia-${instance.name}" = lib.mkIf (instance.group == "authelia-${instance.name}") { - name = "authelia-${instance.name}"; - }; - users."authelia-${instance.name}" = lib.mkIf (instance.user == "authelia-${instance.name}") { - name = "authelia-${instance.name}"; + groups.${autheliaName instance.name} = lib.mkIf (instance.group == autheliaName instance.name) { }; + users.${autheliaName instance.name} = lib.mkIf (instance.user == autheliaName instance.name) { isSystemUser = true; group = instance.group; }; @@ -468,7 +479,7 @@ in map ( instance: lib.mkIf instance.enable { - "authelia-${instance.name}" = mkInstanceServiceConfig instance; + ${autheliaName instance.name} = mkInstanceServiceConfig instance; } ) instances ); @@ -481,5 +492,6 @@ in jk dit7ya nicomem + connor-grady ]; } From 949b1b2b36c67d9907ecf52912dbd24d28fd9b77 Mon Sep 17 00:00:00 2001 From: Connor Grady Date: Sun, 29 Mar 2026 20:43:48 -0700 Subject: [PATCH 005/110] sftpgo-plugin-auth: init at 1.0.14 --- .../by-name/sf/sftpgo-plugin-auth/package.nix | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 pkgs/by-name/sf/sftpgo-plugin-auth/package.nix diff --git a/pkgs/by-name/sf/sftpgo-plugin-auth/package.nix b/pkgs/by-name/sf/sftpgo-plugin-auth/package.nix new file mode 100644 index 000000000000..27eed8123550 --- /dev/null +++ b/pkgs/by-name/sf/sftpgo-plugin-auth/package.nix @@ -0,0 +1,40 @@ +{ + buildGoModule, + fetchFromGitHub, + lib, + nix-update-script, +}: +buildGoModule (finalAttrs: { + pname = "sftpgo-plugin-auth"; + version = "1.0.14"; + + src = fetchFromGitHub { + owner = "sftpgo"; + repo = "sftpgo-plugin-auth"; + tag = "v${finalAttrs.version}"; + hash = "sha256-Aw9n4CBmsWEqhNol5Ge/Ae5uaZn4zp6sIc8N6L724H4="; + }; + + vendorHash = "sha256-ZCkKr0hpHx37T9DfaYev9jxkpNcDPF9R0YsCkw2/pA8="; + + env.CGO_ENABLED = "0"; + + ldflags = [ + "-s" + "-X github.com/sftpgo/sftpgo-plugin-auth/cmd.commitHash=${finalAttrs.src.rev}" + ]; + + subPackages = [ "." ]; + + passthru.updateScript = nix-update-script { }; + + meta = { + homepage = "https://github.com/sftpgo/sftpgo-plugin-auth"; + changelog = "https://github.com/sftpgo/sftpgo-plugin-auth/releases/tag/${finalAttrs.src.tag}"; + description = "LDAP/Active Directory authentication for SFTPGo"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ connor-grady ]; + mainProgram = "sftpgo-plugin-auth"; + platforms = lib.platforms.unix; + }; +}) From 979150fce920e5e656fb705f0a3d4398af86768b Mon Sep 17 00:00:00 2001 From: Leonard Sheng Sheng Lee Date: Wed, 18 Mar 2026 11:37:23 +0100 Subject: [PATCH 006/110] yubiswitch: init at 0.18 Signed-off-by: Leonard Sheng Sheng Lee --- pkgs/by-name/yu/yubiswitch/package.nix | 39 ++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 pkgs/by-name/yu/yubiswitch/package.nix diff --git a/pkgs/by-name/yu/yubiswitch/package.nix b/pkgs/by-name/yu/yubiswitch/package.nix new file mode 100644 index 000000000000..2132f42e99d2 --- /dev/null +++ b/pkgs/by-name/yu/yubiswitch/package.nix @@ -0,0 +1,39 @@ +{ + lib, + stdenvNoCC, + fetchurl, + _7zz, +}: + +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "yubiswitch"; + version = "0.18"; + + src = fetchurl { + url = "https://github.com/pallotron/yubiswitch/releases/download/v${finalAttrs.version}/yubiswitch_${finalAttrs.version}.dmg"; + hash = "sha256-ee7l8jj1pJdj+SjMNWcLfHV//G0FG9bdBkNcxUh8Zuk="; + }; + + sourceRoot = "."; + + nativeBuildInputs = [ _7zz ]; + + installPhase = '' + runHook preInstall + + mkdir -p "$out/Applications" + cp -R yubiswitch.app "$out/Applications" + + runHook postInstall + ''; + + meta = { + description = "macOS status bar application to enable/disable a Yubikey Nano"; + homepage = "https://github.com/pallotron/yubiswitch"; + changelog = "https://github.com/pallotron/yubiswitch/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.gpl3Plus; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + platforms = lib.platforms.darwin; + maintainers = with lib.maintainers; [ sheeeng ]; + }; +}) From 4f960f03799edff48abf11a550ec36a41a1daa55 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 16:40:02 +0000 Subject: [PATCH 007/110] hey-mail: 1.3.1 -> 1.3.3 --- pkgs/by-name/he/hey-mail/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/he/hey-mail/package.nix b/pkgs/by-name/he/hey-mail/package.nix index eca024314d9d..26c2a482e23d 100644 --- a/pkgs/by-name/he/hey-mail/package.nix +++ b/pkgs/by-name/he/hey-mail/package.nix @@ -94,12 +94,12 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "hey-mail"; - version = "1.3.1"; - rev = "29"; + version = "1.3.3"; + rev = "31"; src = fetchurl { url = "https://api.snapcraft.io/api/v1/snaps/download/lfWUNpR7PrPGsDfuxIhVxbj0wZHoH7bK_${finalAttrs.rev}.snap"; - hash = "sha512-mDMFD5G+TWpcCDNphvHegwlVGebw4aauShq7wJRF7F+iXX7E65+S00JpYWHu8PhUQeoVK4DkA4JkLfMq0D2lHA=="; + hash = "sha512-0KhmZ1xkEPuuzukeKbWW7jeNh2TOINMnOtuwpZQIM7sgDhCSl2DEZnguEKY2DvGNTTQxVWSZcuU/KSSblqIE4Q=="; }; nativeBuildInputs = [ From 6f26437428ddd0528a90dc8b30db5c01e77b6284 Mon Sep 17 00:00:00 2001 From: hacker1024 Date: Sun, 12 Apr 2026 20:41:22 +1000 Subject: [PATCH 008/110] Revert "flutterPackages: fix `hostPlatform` rename evaluation warning" This reverts commit 3b4a0798b7c01d90ef25015e2dbdb47fe2a83fc2. --- pkgs/development/compilers/flutter/scope.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/compilers/flutter/scope.nix b/pkgs/development/compilers/flutter/scope.nix index 9ef8c0d8359f..ab7369a5513d 100644 --- a/pkgs/development/compilers/flutter/scope.nix +++ b/pkgs/development/compilers/flutter/scope.nix @@ -94,7 +94,7 @@ lib.makeScope newScope ( inherit outputs; }; - host-artifacts = self.callPackage ./host-artifacts.nix { inherit (stdenv) hostPlatform; }; + host-artifacts = self.callPackage ./host-artifacts.nix { }; all-artifacts = self.callPackage ./all-artifacts.nix { }; From 4a7fb2c8ea171e000d96df759bd743c1d02fadaa Mon Sep 17 00:00:00 2001 From: hacker1024 Date: Sun, 12 Apr 2026 20:41:26 +1000 Subject: [PATCH 009/110] Revert "flutterPackages: refactor" This reverts commit fe90d5a666a4d649ddb35bf6d617bf5e98be777c. --- ci/OWNERS | 3 +- .../dart/build-dart-application/default.nix | 6 + pkgs/desktops/expidus/calculator/default.nix | 58 ++ .../expidus/calculator/pubspec.lock.json | 790 +++++++++++++++ pkgs/desktops/expidus/default.nix | 10 + .../desktops/expidus/file-manager/default.nix | 58 ++ .../expidus/file-manager/pubspec.lock.json | 910 +++++++++++++++++ .../compilers/dart/source/default.nix | 140 +-- .../compilers/flutter/all-artifacts.nix | 79 -- .../flutter/artifacts/fetch-artifacts.nix | 102 ++ .../flutter/artifacts/overrides/darwin.nix | 14 + .../flutter/artifacts/overrides/linux.nix | 12 + .../flutter/artifacts/prepare-artifacts.nix | 30 + .../build-flutter-application.nix | 47 +- pkgs/development/compilers/flutter/cipd.nix | 37 - .../compilers/flutter/constants.nix | 41 - .../development/compilers/flutter/default.nix | 177 +++- .../compilers/flutter/engine/constants.nix | 48 + .../compilers/flutter/engine/dart.nix | 12 + .../compilers/flutter/engine/default.nix | 371 ++----- .../compilers/flutter/engine/package.nix | 390 ++++++++ .../flutter/engine/patches/git-revision.patch | 44 - .../flutter/engine/patches/no-vpython.patch | 11 - .../flutter/engine/patches/not-in-git.patch | 13 - .../engine/patches/shared-libcxx.patch | 22 - .../engine/patches/unbundle-engine.patch | 933 ------------------ .../compilers/flutter/engine/source.nix | 112 ++- .../compilers/flutter/engine/tools.nix | 103 ++ .../compilers/flutter/flutter-tools.nix | 84 +- .../development/compilers/flutter/flutter.nix | 539 ++++------ .../compilers/flutter/host-artifacts.nix | 302 ------ .../flutter/patches/opt-in-analytics.patch | 22 - ...touch-is-a-mouse-then-mouse-is-touch.patch | 18 - pkgs/development/compilers/flutter/scope.nix | 105 -- .../compilers/flutter/sdk-symlink.nix | 65 ++ pkgs/development/compilers/flutter/update.py | 358 ------- .../flutter/update/get-artifact-hashes.nix.in | 44 + .../flutter/update/get-dart-hashes.nix.in | 22 + .../flutter/update/get-engine-hashes.nix.in | 36 + .../update/get-engine-swiftshader.nix.in | 10 + .../flutter/update/get-flutter.nix.in | 7 + .../flutter/update/get-pubspec-lock.nix.in | 40 + .../compilers/flutter/update/update.py | 501 ++++++++++ .../compilers/flutter/versions/3_29/data.json | 142 ++- .../versions/3_29/patches/no-cache.patch | 51 - .../versions/3_29/patches/version.patch | 126 --- .../compilers/flutter/versions/3_32/data.json | 142 ++- .../versions/3_32/patches/no-cache.patch | 51 - .../versions/3_32/patches/version.patch | 131 --- .../compilers/flutter/versions/3_35/data.json | 142 ++- .../3_35/patches/content-unaware-hash.patch | 12 - .../versions/3_35/patches/no-cache.patch | 51 - .../versions/3_35/patches/version.patch | 131 --- .../compilers/flutter/versions/3_38/data.json | 142 ++- .../3_38/patches/content-unaware-hash.patch | 12 - .../versions/3_38/patches/no-cache.patch | 51 - .../versions/3_38/patches/version.patch | 131 --- .../compilers/flutter/versions/3_41/data.json | 143 ++- .../3_41/patches/content-unaware-hash.patch | 12 - .../versions/3_41/patches/no-cache.patch | 51 - .../versions/3_41/patches/version.patch | 131 --- .../development/compilers/flutter/wrapper.nix | 211 ++++ pkgs/top-level/aliases.nix | 1 - pkgs/top-level/all-packages.nix | 19 +- 64 files changed, 4447 insertions(+), 4162 deletions(-) create mode 100644 pkgs/desktops/expidus/calculator/default.nix create mode 100644 pkgs/desktops/expidus/calculator/pubspec.lock.json create mode 100644 pkgs/desktops/expidus/default.nix create mode 100644 pkgs/desktops/expidus/file-manager/default.nix create mode 100644 pkgs/desktops/expidus/file-manager/pubspec.lock.json delete mode 100644 pkgs/development/compilers/flutter/all-artifacts.nix create mode 100644 pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix create mode 100644 pkgs/development/compilers/flutter/artifacts/overrides/darwin.nix create mode 100644 pkgs/development/compilers/flutter/artifacts/overrides/linux.nix create mode 100644 pkgs/development/compilers/flutter/artifacts/prepare-artifacts.nix delete mode 100644 pkgs/development/compilers/flutter/cipd.nix delete mode 100644 pkgs/development/compilers/flutter/constants.nix create mode 100644 pkgs/development/compilers/flutter/engine/constants.nix create mode 100644 pkgs/development/compilers/flutter/engine/dart.nix create mode 100644 pkgs/development/compilers/flutter/engine/package.nix delete mode 100644 pkgs/development/compilers/flutter/engine/patches/git-revision.patch delete mode 100644 pkgs/development/compilers/flutter/engine/patches/no-vpython.patch delete mode 100644 pkgs/development/compilers/flutter/engine/patches/not-in-git.patch delete mode 100644 pkgs/development/compilers/flutter/engine/patches/shared-libcxx.patch delete mode 100644 pkgs/development/compilers/flutter/engine/patches/unbundle-engine.patch create mode 100644 pkgs/development/compilers/flutter/engine/tools.nix delete mode 100644 pkgs/development/compilers/flutter/host-artifacts.nix delete mode 100644 pkgs/development/compilers/flutter/patches/opt-in-analytics.patch delete mode 100644 pkgs/development/compilers/flutter/patches/pmos-if-touch-is-a-mouse-then-mouse-is-touch.patch delete mode 100644 pkgs/development/compilers/flutter/scope.nix create mode 100644 pkgs/development/compilers/flutter/sdk-symlink.nix delete mode 100755 pkgs/development/compilers/flutter/update.py create mode 100644 pkgs/development/compilers/flutter/update/get-artifact-hashes.nix.in create mode 100644 pkgs/development/compilers/flutter/update/get-dart-hashes.nix.in create mode 100644 pkgs/development/compilers/flutter/update/get-engine-hashes.nix.in create mode 100644 pkgs/development/compilers/flutter/update/get-engine-swiftshader.nix.in create mode 100644 pkgs/development/compilers/flutter/update/get-flutter.nix.in create mode 100644 pkgs/development/compilers/flutter/update/get-pubspec-lock.nix.in create mode 100755 pkgs/development/compilers/flutter/update/update.py delete mode 100644 pkgs/development/compilers/flutter/versions/3_29/patches/no-cache.patch delete mode 100644 pkgs/development/compilers/flutter/versions/3_29/patches/version.patch delete mode 100644 pkgs/development/compilers/flutter/versions/3_32/patches/no-cache.patch delete mode 100644 pkgs/development/compilers/flutter/versions/3_32/patches/version.patch delete mode 100644 pkgs/development/compilers/flutter/versions/3_35/patches/content-unaware-hash.patch delete mode 100644 pkgs/development/compilers/flutter/versions/3_35/patches/no-cache.patch delete mode 100644 pkgs/development/compilers/flutter/versions/3_35/patches/version.patch delete mode 100644 pkgs/development/compilers/flutter/versions/3_38/patches/content-unaware-hash.patch delete mode 100644 pkgs/development/compilers/flutter/versions/3_38/patches/no-cache.patch delete mode 100644 pkgs/development/compilers/flutter/versions/3_38/patches/version.patch delete mode 100644 pkgs/development/compilers/flutter/versions/3_41/patches/content-unaware-hash.patch delete mode 100644 pkgs/development/compilers/flutter/versions/3_41/patches/no-cache.patch delete mode 100644 pkgs/development/compilers/flutter/versions/3_41/patches/version.patch create mode 100644 pkgs/development/compilers/flutter/wrapper.nix diff --git a/ci/OWNERS b/ci/OWNERS index 374afcd510af..d26921700e10 100644 --- a/ci/OWNERS +++ b/ci/OWNERS @@ -466,8 +466,9 @@ nixos/tests/incus/ @adamcstephens pkgs/by-name/in/incus/ @adamcstephens pkgs/by-name/lx/lxc* @adamcstephens -# Flutter +# ExpidusOS, Flutter /pkgs/development/compilers/flutter @RossComputerGuy +/pkgs/desktops/expidus @RossComputerGuy # GNU Tar & Zip /pkgs/tools/archivers/gnutar @RossComputerGuy diff --git a/pkgs/build-support/dart/build-dart-application/default.nix b/pkgs/build-support/dart/build-dart-application/default.nix index 0a94d4e276aa..ed07a06551b5 100644 --- a/pkgs/build-support/dart/build-dart-application/default.nix +++ b/pkgs/build-support/dart/build-dart-application/default.nix @@ -194,10 +194,16 @@ lib.extendMkDerivation { # Ensure that we inherit the propagated build inputs from the dependencies. builtins.attrValues pubspecLockData.dependencySources; + preConfigure = args.preConfigure or "" + '' + ln -sf "$pubspecLockFilePath" pubspec.lock + ''; + # When stripping, it seems some ELF information is lost and the dart VM cli # runs instead of the expected program. Don't strip if it's an exe output. dontStrip = args.dontStrip or (dartOutputType == "exe"); + passAsFile = [ "pubspecLockFile" ]; + passthru = { pubspecLock = pubspecLockData; } diff --git a/pkgs/desktops/expidus/calculator/default.nix b/pkgs/desktops/expidus/calculator/default.nix new file mode 100644 index 000000000000..f005dcf52969 --- /dev/null +++ b/pkgs/desktops/expidus/calculator/default.nix @@ -0,0 +1,58 @@ +{ + lib, + flutter, + fetchFromGitHub, +}: +flutter.buildFlutterApplication rec { + pname = "expidus-calculator"; + version = "0.1.1-alpha"; + + src = fetchFromGitHub { + owner = "ExpidusOS"; + repo = "calculator"; + rev = version; + hash = "sha256-O3LHp10Fo3PW3zoN7mFSQEKh+AAaR+IqkRtc6nQrIZE="; + }; + + flutterBuildFlags = [ + "--dart-define=COMMIT_HASH=a5d8f54404b9994f83beb367a1cd11e04a6420cb" + ]; + + pubspecLock = lib.importJSON ./pubspec.lock.json; + + gitHashes = { + libtokyo = "sha256-T0+vyfSfijLv7MvM+zt3bkVpb3aVrlDnse2xyNMp9GU="; + libtokyo_flutter = "sha256-T0+vyfSfijLv7MvM+zt3bkVpb3aVrlDnse2xyNMp9GU="; + }; + + postInstall = '' + rm $out/bin/calculator + ln -s $out/app/$pname/calculator $out/bin/expidus-calculator + + mkdir -p $out/share/applications + mv $out/app/$pname/data/com.expidusos.calculator.desktop $out/share/applications + + mkdir -p $out/share/icons + mv $out/app/$pname/data/com.expidusos.calculator.png $out/share/icons + + mkdir -p $out/share/metainfo + mv $out/app/$pname/data/com.expidusos.calculator.metainfo.xml $out/share/metainfo + + substituteInPlace "$out/share/applications/com.expidusos.calculator.desktop" \ + --replace "Exec=calculator" "Exec=$out/bin/expidus-calculator" \ + --replace "Icon=com.expidusos.calculator" "Icon=$out/share/icons/com.expidusos.calculator.png" + ''; + + meta = { + broken = true; + description = "ExpidusOS Calculator"; + homepage = "https://expidusos.com"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ RossComputerGuy ]; + platforms = [ + "x86_64-linux" + "aarch64-linux" + ]; + mainProgram = "expidus-calculator"; + }; +} diff --git a/pkgs/desktops/expidus/calculator/pubspec.lock.json b/pkgs/desktops/expidus/calculator/pubspec.lock.json new file mode 100644 index 000000000000..a2e6f2e46776 --- /dev/null +++ b/pkgs/desktops/expidus/calculator/pubspec.lock.json @@ -0,0 +1,790 @@ +{ + "packages": { + "args": { + "dependency": "transitive", + "description": { + "name": "args", + "sha256": "eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.2" + }, + "async": { + "dependency": "transitive", + "description": { + "name": "async", + "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.11.0" + }, + "bitsdojo_window": { + "dependency": "direct main", + "description": { + "name": "bitsdojo_window", + "sha256": "1118bc1cd16e6f358431ca4473af57cc1b287d2ceab46dfab6d59a9463160622", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.5" + }, + "bitsdojo_window_linux": { + "dependency": "transitive", + "description": { + "name": "bitsdojo_window_linux", + "sha256": "d3804a30315fcbb43b28acc86d1180ce0be22c0c738ad2da9e5ade4d8dbd9655", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.3" + }, + "bitsdojo_window_macos": { + "dependency": "transitive", + "description": { + "name": "bitsdojo_window_macos", + "sha256": "d2a9886c74516c5b84c1dd65ab8ee5d1c52055b265ebf0e7d664dee28366b521", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.3" + }, + "bitsdojo_window_platform_interface": { + "dependency": "transitive", + "description": { + "name": "bitsdojo_window_platform_interface", + "sha256": "65daa015a0c6dba749bdd35a0f092e7a8ba8b0766aa0480eb3ef808086f6e27c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.2" + }, + "bitsdojo_window_windows": { + "dependency": "transitive", + "description": { + "name": "bitsdojo_window_windows", + "sha256": "8766a40aac84a6d7bdcaa716b24997e028fc9a9a1800495fc031721fd5a22ed0", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.5" + }, + "boolean_selector": { + "dependency": "transitive", + "description": { + "name": "boolean_selector", + "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "characters": { + "dependency": "transitive", + "description": { + "name": "characters", + "sha256": "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.0" + }, + "clock": { + "dependency": "transitive", + "description": { + "name": "clock", + "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.1" + }, + "collection": { + "dependency": "transitive", + "description": { + "name": "collection", + "sha256": "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.17.1" + }, + "crypto": { + "dependency": "transitive", + "description": { + "name": "crypto", + "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.3" + }, + "fake_async": { + "dependency": "transitive", + "description": { + "name": "fake_async", + "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.1" + }, + "ffi": { + "dependency": "transitive", + "description": { + "name": "ffi", + "sha256": "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.0" + }, + "file": { + "dependency": "transitive", + "description": { + "name": "file", + "sha256": "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.1.4" + }, + "filesize": { + "dependency": "transitive", + "description": { + "name": "filesize", + "sha256": "f53df1f27ff60e466eefcd9df239e02d4722d5e2debee92a87dfd99ac66de2af", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.1" + }, + "flutter": { + "dependency": "direct main", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_adaptive_scaffold": { + "dependency": "direct main", + "description": { + "name": "flutter_adaptive_scaffold", + "sha256": "3e78be8b9c95b1c9832b2f8ec4a845adac205c4bb5e7bd3fb204b07990229167", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.7+1" + }, + "flutter_lints": { + "dependency": "direct dev", + "description": { + "name": "flutter_lints", + "sha256": "a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.3" + }, + "flutter_localizations": { + "dependency": "direct main", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_markdown": { + "dependency": "direct main", + "description": { + "name": "flutter_markdown", + "sha256": "d4a1cb250c4e059586af0235f32e02882860a508e189b61f2b31b8810c1e1330", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.6.17+2" + }, + "flutter_test": { + "dependency": "direct dev", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_web_plugins": { + "dependency": "transitive", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "http": { + "dependency": "transitive", + "description": { + "name": "http", + "sha256": "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.13.6" + }, + "http_parser": { + "dependency": "transitive", + "description": { + "name": "http_parser", + "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.0.2" + }, + "intl": { + "dependency": "transitive", + "description": { + "name": "intl", + "sha256": "a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.18.0" + }, + "js": { + "dependency": "transitive", + "description": { + "name": "js", + "sha256": "f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.6.7" + }, + "libtokyo": { + "dependency": "direct main", + "description": { + "path": "packages/libtokyo", + "ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7", + "resolved-ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7", + "url": "https://github.com/ExpidusOS/libtokyo.git" + }, + "source": "git", + "version": "0.1.0" + }, + "libtokyo_flutter": { + "dependency": "direct main", + "description": { + "path": "packages/libtokyo_flutter", + "ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7", + "resolved-ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7", + "url": "https://github.com/ExpidusOS/libtokyo.git" + }, + "source": "git", + "version": "0.1.0" + }, + "lints": { + "dependency": "transitive", + "description": { + "name": "lints", + "sha256": "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "markdown": { + "dependency": "direct main", + "description": { + "name": "markdown", + "sha256": "acf35edccc0463a9d7384e437c015a3535772e09714cf60e07eeef3a15870dcd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.1.1" + }, + "matcher": { + "dependency": "transitive", + "description": { + "name": "matcher", + "sha256": "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.12.15" + }, + "material_color_utilities": { + "dependency": "transitive", + "description": { + "name": "material_color_utilities", + "sha256": "d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.0" + }, + "material_theme_builder": { + "dependency": "transitive", + "description": { + "name": "material_theme_builder", + "sha256": "380ab70835e01f4ee0c37904eebae9e36ed37b5cf8ed40d67412ea3244a2afd6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "math_expressions": { + "dependency": "direct main", + "description": { + "name": "math_expressions", + "sha256": "3576593617c3870d75728a751f6ec6e606706d44e363f088ac394b5a28a98064", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.0" + }, + "meta": { + "dependency": "transitive", + "description": { + "name": "meta", + "sha256": "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.9.1" + }, + "nested": { + "dependency": "transitive", + "description": { + "name": "nested", + "sha256": "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0" + }, + "package_info_plus": { + "dependency": "direct main", + "description": { + "name": "package_info_plus", + "sha256": "10259b111176fba5c505b102e3a5b022b51dd97e30522e906d6922c745584745", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.2" + }, + "package_info_plus_platform_interface": { + "dependency": "transitive", + "description": { + "name": "package_info_plus_platform_interface", + "sha256": "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.1" + }, + "path": { + "dependency": "transitive", + "description": { + "name": "path", + "sha256": "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.8.3" + }, + "path_provider_linux": { + "dependency": "transitive", + "description": { + "name": "path_provider_linux", + "sha256": "f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.1" + }, + "path_provider_platform_interface": { + "dependency": "transitive", + "description": { + "name": "path_provider_platform_interface", + "sha256": "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "path_provider_windows": { + "dependency": "transitive", + "description": { + "name": "path_provider_windows", + "sha256": "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.1" + }, + "platform": { + "dependency": "transitive", + "description": { + "name": "platform", + "sha256": "ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.2" + }, + "plugin_platform_interface": { + "dependency": "transitive", + "description": { + "name": "plugin_platform_interface", + "sha256": "da3fdfeccc4d4ff2da8f8c556704c08f912542c5fb3cf2233ed75372384a034d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.6" + }, + "provider": { + "dependency": "direct main", + "description": { + "name": "provider", + "sha256": "cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.0.5" + }, + "pub_semver": { + "dependency": "direct main", + "description": { + "name": "pub_semver", + "sha256": "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.4" + }, + "pubspec": { + "dependency": "direct main", + "description": { + "name": "pubspec", + "sha256": "f534a50a2b4d48dc3bc0ec147c8bd7c304280fff23b153f3f11803c4d49d927e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.0" + }, + "quiver": { + "dependency": "transitive", + "description": { + "name": "quiver", + "sha256": "b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.2.1" + }, + "sentry": { + "dependency": "transitive", + "description": { + "name": "sentry", + "sha256": "39c23342fc96105da449914f7774139a17a0ca8a4e70d9ad5200171f7e47d6ba", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.9.0" + }, + "sentry_flutter": { + "dependency": "direct main", + "description": { + "name": "sentry_flutter", + "sha256": "ff68ab31918690da004a42e20204242a3ad9ad57da7e2712da8487060ac9767f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.9.0" + }, + "shared_preferences": { + "dependency": "direct main", + "description": { + "name": "shared_preferences", + "sha256": "b7f41bad7e521d205998772545de63ff4e6c97714775902c199353f8bf1511ac", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.1" + }, + "shared_preferences_android": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_android", + "sha256": "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.1" + }, + "shared_preferences_foundation": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_foundation", + "sha256": "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.4" + }, + "shared_preferences_linux": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_linux", + "sha256": "c2eb5bf57a2fe9ad6988121609e47d3e07bb3bdca5b6f8444e4cf302428a128a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.1" + }, + "shared_preferences_platform_interface": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_platform_interface", + "sha256": "d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.1" + }, + "shared_preferences_web": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_web", + "sha256": "d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.1" + }, + "shared_preferences_windows": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_windows", + "sha256": "f763a101313bd3be87edffe0560037500967de9c394a714cd598d945517f694f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.1" + }, + "sky_engine": { + "dependency": "transitive", + "description": "flutter", + "source": "sdk", + "version": "0.0.99" + }, + "source_span": { + "dependency": "transitive", + "description": { + "name": "source_span", + "sha256": "dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.9.1" + }, + "stack_trace": { + "dependency": "transitive", + "description": { + "name": "stack_trace", + "sha256": "c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.11.0" + }, + "stream_channel": { + "dependency": "transitive", + "description": { + "name": "stream_channel", + "sha256": "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "string_scanner": { + "dependency": "transitive", + "description": { + "name": "string_scanner", + "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "term_glyph": { + "dependency": "transitive", + "description": { + "name": "term_glyph", + "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.1" + }, + "test_api": { + "dependency": "transitive", + "description": { + "name": "test_api", + "sha256": "eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.5.1" + }, + "typed_data": { + "dependency": "transitive", + "description": { + "name": "typed_data", + "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.2" + }, + "uri": { + "dependency": "transitive", + "description": { + "name": "uri", + "sha256": "889eea21e953187c6099802b7b4cf5219ba8f3518f604a1033064d45b1b8268a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0" + }, + "url_launcher": { + "dependency": "direct main", + "description": { + "name": "url_launcher", + "sha256": "47e208a6711459d813ba18af120d9663c20bdf6985d6ad39fe165d2538378d27", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.1.14" + }, + "url_launcher_android": { + "dependency": "transitive", + "description": { + "name": "url_launcher_android", + "sha256": "b04af59516ab45762b2ca6da40fa830d72d0f6045cd97744450b73493fa76330", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.1.0" + }, + "url_launcher_ios": { + "dependency": "transitive", + "description": { + "name": "url_launcher_ios", + "sha256": "7c65021d5dee51813d652357bc65b8dd4a6177082a9966bc8ba6ee477baa795f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.1.5" + }, + "url_launcher_linux": { + "dependency": "transitive", + "description": { + "name": "url_launcher_linux", + "sha256": "b651aad005e0cb06a01dbd84b428a301916dc75f0e7ea6165f80057fee2d8e8e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.6" + }, + "url_launcher_macos": { + "dependency": "transitive", + "description": { + "name": "url_launcher_macos", + "sha256": "b55486791f666e62e0e8ff825e58a023fd6b1f71c49926483f1128d3bbd8fe88", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.7" + }, + "url_launcher_platform_interface": { + "dependency": "transitive", + "description": { + "name": "url_launcher_platform_interface", + "sha256": "95465b39f83bfe95fcb9d174829d6476216f2d548b79c38ab2506e0458787618", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.5" + }, + "url_launcher_web": { + "dependency": "transitive", + "description": { + "name": "url_launcher_web", + "sha256": "ba140138558fcc3eead51a1c42e92a9fb074a1b1149ed3c73e66035b2ccd94f2", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.19" + }, + "url_launcher_windows": { + "dependency": "transitive", + "description": { + "name": "url_launcher_windows", + "sha256": "95fef3129dc7cfaba2bc3d5ba2e16063bb561fc6d78e63eee16162bc70029069", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.8" + }, + "uuid": { + "dependency": "transitive", + "description": { + "name": "uuid", + "sha256": "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.7" + }, + "vector_math": { + "dependency": "transitive", + "description": { + "name": "vector_math", + "sha256": "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.4" + }, + "win32": { + "dependency": "transitive", + "description": { + "name": "win32", + "sha256": "a6f0236dbda0f63aa9a25ad1ff9a9d8a4eaaa5012da0dc59d21afdb1dc361ca4", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.4" + }, + "xdg_directories": { + "dependency": "transitive", + "description": { + "name": "xdg_directories", + "sha256": "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.3" + }, + "yaml": { + "dependency": "transitive", + "description": { + "name": "yaml", + "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.2" + } + }, + "sdks": { + "dart": ">=3.0.5 <4.0.0", + "flutter": ">=3.10.0" + } +} diff --git a/pkgs/desktops/expidus/default.nix b/pkgs/desktops/expidus/default.nix new file mode 100644 index 000000000000..3506e1e51699 --- /dev/null +++ b/pkgs/desktops/expidus/default.nix @@ -0,0 +1,10 @@ +{ callPackage, flutterPackages }: +{ + calculator = callPackage ./calculator { + flutter = flutterPackages.v3_35; + }; + + file-manager = callPackage ./file-manager { + flutter = flutterPackages.v3_35; + }; +} diff --git a/pkgs/desktops/expidus/file-manager/default.nix b/pkgs/desktops/expidus/file-manager/default.nix new file mode 100644 index 000000000000..ffd2c4dd838f --- /dev/null +++ b/pkgs/desktops/expidus/file-manager/default.nix @@ -0,0 +1,58 @@ +{ + lib, + flutter, + fetchFromGitHub, +}: +flutter.buildFlutterApplication rec { + pname = "expidus-file-manager"; + version = "0.2.1"; + + src = fetchFromGitHub { + owner = "ExpidusOS"; + repo = "file-manager"; + rev = version; + hash = "sha256-R6eszy4Dz8tAPRTwZzRiZWIgVMiGv5zlhFB/HcD6gqg="; + }; + + flutterBuildFlags = [ + "--dart-define=COMMIT_HASH=b4181b9cff18a07e958c81d8f41840d2d36a6705" + ]; + + pubspecLock = lib.importJSON ./pubspec.lock.json; + + gitHashes = { + libtokyo = "sha256-T0+vyfSfijLv7MvM+zt3bkVpb3aVrlDnse2xyNMp9GU="; + libtokyo_flutter = "sha256-T0+vyfSfijLv7MvM+zt3bkVpb3aVrlDnse2xyNMp9GU="; + }; + + postInstall = '' + rm $out/bin/file_manager + ln -s $out/app/$pname/file_manager $out/bin/expidus-file-manager + + mkdir -p $out/share/applications + mv $out/app/$pname/data/com.expidusos.file_manager.desktop $out/share/applications + + mkdir -p $out/share/icons + mv $out/app/$pname/data/com.expidusos.file_manager.png $out/share/icons + + mkdir -p $out/share/metainfo + mv $out/app/$pname/data/com.expidusos.file_manager.metainfo.xml $out/share/metainfo + + substituteInPlace "$out/share/applications/com.expidusos.file_manager.desktop" \ + --replace "Exec=file_manager" "Exec=$out/bin/expidus-file-manager" \ + --replace "Icon=com.expidusos.file_manager" "Icon=$out/share/icons/com.expidusos.file_manager.png" + ''; + + meta = { + broken = true; + description = "ExpidusOS File Manager"; + homepage = "https://expidusos.com"; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ RossComputerGuy ]; + platforms = [ + "x86_64-linux" + "aarch64-linux" + ]; + mainProgram = "expidus-file-manager"; + }; +} diff --git a/pkgs/desktops/expidus/file-manager/pubspec.lock.json b/pkgs/desktops/expidus/file-manager/pubspec.lock.json new file mode 100644 index 000000000000..048127e70dab --- /dev/null +++ b/pkgs/desktops/expidus/file-manager/pubspec.lock.json @@ -0,0 +1,910 @@ +{ + "packages": { + "args": { + "dependency": "transitive", + "description": { + "name": "args", + "sha256": "eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.2" + }, + "async": { + "dependency": "transitive", + "description": { + "name": "async", + "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.11.0" + }, + "bitsdojo_window": { + "dependency": "direct main", + "description": { + "name": "bitsdojo_window", + "sha256": "1118bc1cd16e6f358431ca4473af57cc1b287d2ceab46dfab6d59a9463160622", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.5" + }, + "bitsdojo_window_linux": { + "dependency": "transitive", + "description": { + "name": "bitsdojo_window_linux", + "sha256": "d3804a30315fcbb43b28acc86d1180ce0be22c0c738ad2da9e5ade4d8dbd9655", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.3" + }, + "bitsdojo_window_macos": { + "dependency": "transitive", + "description": { + "name": "bitsdojo_window_macos", + "sha256": "d2a9886c74516c5b84c1dd65ab8ee5d1c52055b265ebf0e7d664dee28366b521", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.3" + }, + "bitsdojo_window_platform_interface": { + "dependency": "transitive", + "description": { + "name": "bitsdojo_window_platform_interface", + "sha256": "65daa015a0c6dba749bdd35a0f092e7a8ba8b0766aa0480eb3ef808086f6e27c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.2" + }, + "bitsdojo_window_windows": { + "dependency": "transitive", + "description": { + "name": "bitsdojo_window_windows", + "sha256": "8766a40aac84a6d7bdcaa716b24997e028fc9a9a1800495fc031721fd5a22ed0", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.5" + }, + "boolean_selector": { + "dependency": "transitive", + "description": { + "name": "boolean_selector", + "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "characters": { + "dependency": "transitive", + "description": { + "name": "characters", + "sha256": "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.0" + }, + "clock": { + "dependency": "transitive", + "description": { + "name": "clock", + "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.1" + }, + "collection": { + "dependency": "direct main", + "description": { + "name": "collection", + "sha256": "f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.17.2" + }, + "crypto": { + "dependency": "transitive", + "description": { + "name": "crypto", + "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.3" + }, + "dbus": { + "dependency": "transitive", + "description": { + "name": "dbus", + "sha256": "6f07cba3f7b3448d42d015bfd3d53fe12e5b36da2423f23838efc1d5fb31a263", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.7.8" + }, + "fake_async": { + "dependency": "transitive", + "description": { + "name": "fake_async", + "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.1" + }, + "ffi": { + "dependency": "direct main", + "description": { + "name": "ffi", + "sha256": "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.0" + }, + "file": { + "dependency": "transitive", + "description": { + "name": "file", + "sha256": "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.1.4" + }, + "filesize": { + "dependency": "direct main", + "description": { + "name": "filesize", + "sha256": "f53df1f27ff60e466eefcd9df239e02d4722d5e2debee92a87dfd99ac66de2af", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.1" + }, + "flutter": { + "dependency": "direct main", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_adaptive_scaffold": { + "dependency": "direct main", + "description": { + "name": "flutter_adaptive_scaffold", + "sha256": "4f448902314bc9b6cf820c85d5bad4de6489c0eff75dcedf5098f3a53ec981ee", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.6" + }, + "flutter_lints": { + "dependency": "direct dev", + "description": { + "name": "flutter_lints", + "sha256": "2118df84ef0c3ca93f96123a616ae8540879991b8b57af2f81b76a7ada49b2a4", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.2" + }, + "flutter_localizations": { + "dependency": "direct main", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_markdown": { + "dependency": "direct main", + "description": { + "name": "flutter_markdown", + "sha256": "2b206d397dd7836ea60035b2d43825c8a303a76a5098e66f42d55a753e18d431", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.6.17+1" + }, + "flutter_test": { + "dependency": "direct dev", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_web_plugins": { + "dependency": "transitive", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "http": { + "dependency": "transitive", + "description": { + "name": "http", + "sha256": "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.13.6" + }, + "http_parser": { + "dependency": "transitive", + "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" + }, + "libtokyo": { + "dependency": "direct main", + "description": { + "path": "packages/libtokyo", + "ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7", + "resolved-ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7", + "url": "https://github.com/ExpidusOS/libtokyo.git" + }, + "source": "git", + "version": "0.1.0" + }, + "libtokyo_flutter": { + "dependency": "direct main", + "description": { + "path": "packages/libtokyo_flutter", + "ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7", + "resolved-ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7", + "url": "https://github.com/ExpidusOS/libtokyo.git" + }, + "source": "git", + "version": "0.1.0" + }, + "lints": { + "dependency": "transitive", + "description": { + "name": "lints", + "sha256": "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "markdown": { + "dependency": "transitive", + "description": { + "name": "markdown", + "sha256": "acf35edccc0463a9d7384e437c015a3535772e09714cf60e07eeef3a15870dcd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.1.1" + }, + "matcher": { + "dependency": "transitive", + "description": { + "name": "matcher", + "sha256": "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.12.16" + }, + "material_color_utilities": { + "dependency": "transitive", + "description": { + "name": "material_color_utilities", + "sha256": "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.5.0" + }, + "material_theme_builder": { + "dependency": "transitive", + "description": { + "name": "material_theme_builder", + "sha256": "380ab70835e01f4ee0c37904eebae9e36ed37b5cf8ed40d67412ea3244a2afd6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "meta": { + "dependency": "transitive", + "description": { + "name": "meta", + "sha256": "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.9.1" + }, + "nested": { + "dependency": "transitive", + "description": { + "name": "nested", + "sha256": "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0" + }, + "open_file_plus": { + "dependency": "direct main", + "description": { + "name": "open_file_plus", + "sha256": "f087e32722ffe4bac71925e7a1a9848a1008fd789e47c6628da3ed7845922227", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.4.1" + }, + "package_info_plus": { + "dependency": "direct main", + "description": { + "name": "package_info_plus", + "sha256": "10259b111176fba5c505b102e3a5b022b51dd97e30522e906d6922c745584745", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.2" + }, + "package_info_plus_platform_interface": { + "dependency": "transitive", + "description": { + "name": "package_info_plus_platform_interface", + "sha256": "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.1" + }, + "path": { + "dependency": "direct main", + "description": { + "name": "path", + "sha256": "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.8.3" + }, + "path_provider": { + "dependency": "direct main", + "description": { + "name": "path_provider", + "sha256": "909b84830485dbcd0308edf6f7368bc8fd76afa26a270420f34cabea2a6467a0", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.0" + }, + "path_provider_android": { + "dependency": "transitive", + "description": { + "name": "path_provider_android", + "sha256": "5d44fc3314d969b84816b569070d7ace0f1dea04bd94a83f74c4829615d22ad8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.0" + }, + "path_provider_foundation": { + "dependency": "transitive", + "description": { + "name": "path_provider_foundation", + "sha256": "1b744d3d774e5a879bb76d6cd1ecee2ba2c6960c03b1020cd35212f6aa267ac5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.0" + }, + "path_provider_linux": { + "dependency": "transitive", + "description": { + "name": "path_provider_linux", + "sha256": "ba2b77f0c52a33db09fc8caf85b12df691bf28d983e84cf87ff6d693cfa007b3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.0" + }, + "path_provider_platform_interface": { + "dependency": "direct main", + "description": { + "name": "path_provider_platform_interface", + "sha256": "bced5679c7df11190e1ddc35f3222c858f328fff85c3942e46e7f5589bf9eb84", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.0" + }, + "path_provider_windows": { + "dependency": "direct main", + "description": { + "name": "path_provider_windows", + "sha256": "ee0e0d164516b90ae1f970bdf29f726f1aa730d7cfc449ecc74c495378b705da", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.0" + }, + "permission_handler": { + "dependency": "direct main", + "description": { + "name": "permission_handler", + "sha256": "63e5216aae014a72fe9579ccd027323395ce7a98271d9defa9d57320d001af81", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "10.4.3" + }, + "permission_handler_android": { + "dependency": "transitive", + "description": { + "name": "permission_handler_android", + "sha256": "2ffaf52a21f64ac9b35fe7369bb9533edbd4f698e5604db8645b1064ff4cf221", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "10.3.3" + }, + "permission_handler_apple": { + "dependency": "transitive", + "description": { + "name": "permission_handler_apple", + "sha256": "99e220bce3f8877c78e4ace901082fb29fa1b4ebde529ad0932d8d664b34f3f5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "9.1.4" + }, + "permission_handler_platform_interface": { + "dependency": "transitive", + "description": { + "name": "permission_handler_platform_interface", + "sha256": "7c6b1500385dd1d2ca61bb89e2488ca178e274a69144d26bbd65e33eae7c02a9", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.11.3" + }, + "permission_handler_windows": { + "dependency": "transitive", + "description": { + "name": "permission_handler_windows", + "sha256": "cc074aace208760f1eee6aa4fae766b45d947df85bc831cde77009cdb4720098", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.3" + }, + "petitparser": { + "dependency": "transitive", + "description": { + "name": "petitparser", + "sha256": "cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.4.0" + }, + "platform": { + "dependency": "transitive", + "description": { + "name": "platform", + "sha256": "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.0" + }, + "plugin_platform_interface": { + "dependency": "transitive", + "description": { + "name": "plugin_platform_interface", + "sha256": "43798d895c929056255600343db8f049921cbec94d31ec87f1dc5c16c01935dd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.5" + }, + "provider": { + "dependency": "direct main", + "description": { + "name": "provider", + "sha256": "cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.0.5" + }, + "pub_semver": { + "dependency": "direct main", + "description": { + "name": "pub_semver", + "sha256": "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.4" + }, + "pubspec": { + "dependency": "direct main", + "description": { + "name": "pubspec", + "sha256": "f534a50a2b4d48dc3bc0ec147c8bd7c304280fff23b153f3f11803c4d49d927e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.0" + }, + "quiver": { + "dependency": "transitive", + "description": { + "name": "quiver", + "sha256": "b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.2.1" + }, + "sentry": { + "dependency": "transitive", + "description": { + "name": "sentry", + "sha256": "39c23342fc96105da449914f7774139a17a0ca8a4e70d9ad5200171f7e47d6ba", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.9.0" + }, + "sentry_flutter": { + "dependency": "direct main", + "description": { + "name": "sentry_flutter", + "sha256": "ff68ab31918690da004a42e20204242a3ad9ad57da7e2712da8487060ac9767f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.9.0" + }, + "shared_preferences": { + "dependency": "direct main", + "description": { + "name": "shared_preferences", + "sha256": "0344316c947ffeb3a529eac929e1978fcd37c26be4e8468628bac399365a3ca1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.0" + }, + "shared_preferences_android": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_android", + "sha256": "fe8401ec5b6dcd739a0fe9588802069e608c3fdbfd3c3c93e546cf2f90438076", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.0" + }, + "shared_preferences_foundation": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_foundation", + "sha256": "f39696b83e844923b642ce9dd4bd31736c17e697f6731a5adf445b1274cf3cd4", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.2" + }, + "shared_preferences_linux": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_linux", + "sha256": "71d6806d1449b0a9d4e85e0c7a917771e672a3d5dc61149cc9fac871115018e1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.0" + }, + "shared_preferences_platform_interface": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_platform_interface", + "sha256": "23b052f17a25b90ff2b61aad4cc962154da76fb62848a9ce088efe30d7c50ab1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.0" + }, + "shared_preferences_web": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_web", + "sha256": "7347b194fb0bbeb4058e6a4e87ee70350b6b2b90f8ac5f8bd5b3a01548f6d33a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.0" + }, + "shared_preferences_windows": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_windows", + "sha256": "f95e6a43162bce43c9c3405f3eb6f39e5b5d11f65fab19196cf8225e2777624d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.0" + }, + "sky_engine": { + "dependency": "transitive", + "description": "flutter", + "source": "sdk", + "version": "0.0.99" + }, + "source_span": { + "dependency": "transitive", + "description": { + "name": "source_span", + "sha256": "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.10.0" + }, + "stack_trace": { + "dependency": "transitive", + "description": { + "name": "stack_trace", + "sha256": "c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.11.0" + }, + "stream_channel": { + "dependency": "transitive", + "description": { + "name": "stream_channel", + "sha256": "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "string_scanner": { + "dependency": "transitive", + "description": { + "name": "string_scanner", + "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "term_glyph": { + "dependency": "transitive", + "description": { + "name": "term_glyph", + "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.1" + }, + "test_api": { + "dependency": "transitive", + "description": { + "name": "test_api", + "sha256": "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.6.0" + }, + "typed_data": { + "dependency": "transitive", + "description": { + "name": "typed_data", + "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.2" + }, + "udisks": { + "dependency": "direct main", + "description": { + "name": "udisks", + "sha256": "847144fb868b9e3602895e89f438f77c2a4fda9e4b02f7d368dc1d2c6a40b475", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.0" + }, + "uri": { + "dependency": "transitive", + "description": { + "name": "uri", + "sha256": "889eea21e953187c6099802b7b4cf5219ba8f3518f604a1033064d45b1b8268a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0" + }, + "url_launcher": { + "dependency": "direct main", + "description": { + "name": "url_launcher", + "sha256": "781bd58a1eb16069412365c98597726cd8810ae27435f04b3b4d3a470bacd61e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.1.12" + }, + "url_launcher_android": { + "dependency": "transitive", + "description": { + "name": "url_launcher_android", + "sha256": "3dd2388cc0c42912eee04434531a26a82512b9cb1827e0214430c9bcbddfe025", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.0.38" + }, + "url_launcher_ios": { + "dependency": "transitive", + "description": { + "name": "url_launcher_ios", + "sha256": "9af7ea73259886b92199f9e42c116072f05ff9bea2dcb339ab935dfc957392c2", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.1.4" + }, + "url_launcher_linux": { + "dependency": "transitive", + "description": { + "name": "url_launcher_linux", + "sha256": "207f4ddda99b95b4d4868320a352d374b0b7e05eefad95a4a26f57da413443f5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.5" + }, + "url_launcher_macos": { + "dependency": "transitive", + "description": { + "name": "url_launcher_macos", + "sha256": "1c4fdc0bfea61a70792ce97157e5cc17260f61abbe4f39354513f39ec6fd73b1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.6" + }, + "url_launcher_platform_interface": { + "dependency": "transitive", + "description": { + "name": "url_launcher_platform_interface", + "sha256": "bfdfa402f1f3298637d71ca8ecfe840b4696698213d5346e9d12d4ab647ee2ea", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.3" + }, + "url_launcher_web": { + "dependency": "transitive", + "description": { + "name": "url_launcher_web", + "sha256": "cc26720eefe98c1b71d85f9dc7ef0cada5132617046369d9dc296b3ecaa5cbb4", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.18" + }, + "url_launcher_windows": { + "dependency": "transitive", + "description": { + "name": "url_launcher_windows", + "sha256": "7967065dd2b5fccc18c653b97958fdf839c5478c28e767c61ee879f4e7882422", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.7" + }, + "uuid": { + "dependency": "transitive", + "description": { + "name": "uuid", + "sha256": "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.7" + }, + "vector_math": { + "dependency": "transitive", + "description": { + "name": "vector_math", + "sha256": "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.4" + }, + "web": { + "dependency": "transitive", + "description": { + "name": "web", + "sha256": "dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.4-beta" + }, + "win32": { + "dependency": "direct main", + "description": { + "name": "win32", + "sha256": "a6f0236dbda0f63aa9a25ad1ff9a9d8a4eaaa5012da0dc59d21afdb1dc361ca4", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.4" + }, + "xdg_directories": { + "dependency": "direct main", + "description": { + "name": "xdg_directories", + "sha256": "f0c26453a2d47aa4c2570c6a033246a3fc62da2fe23c7ffdd0a7495086dc0247", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.2" + }, + "xml": { + "dependency": "transitive", + "description": { + "name": "xml", + "sha256": "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.3.0" + }, + "yaml": { + "dependency": "transitive", + "description": { + "name": "yaml", + "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.2" + } + }, + "sdks": { + "dart": ">=3.1.0-185.0.dev <4.0.0", + "flutter": ">=3.10.0" + } +} diff --git a/pkgs/development/compilers/dart/source/default.nix b/pkgs/development/compilers/dart/source/default.nix index 1f272165fe31..3637ad19e52c 100644 --- a/pkgs/development/compilers/dart/source/default.nix +++ b/pkgs/development/compilers/dart/source/default.nix @@ -1,7 +1,7 @@ { bintools, buildPackages, - flutter, + callPackage, cacert, curlMinimal, dart-bin, @@ -22,7 +22,6 @@ samurai, stdenv, versionCheckHook, - writableTmpDirAsHomeHook, writeShellScript, writeText, zlib, @@ -31,6 +30,8 @@ let version = "3.11.4"; + tools = callPackage ../../flutter/engine/tools.nix { inherit (stdenv) hostPlatform buildPlatform; }; + getArchInfo = platform: let @@ -52,75 +53,78 @@ let ] ); - src = stdenv.mkDerivation (finalAttrs: { - pname = "dart-source-deps"; - inherit version; + src = + runCommand "dart-source-deps" + { + pname = "dart-source-deps"; + inherit version; - nativeBuildInputs = [ - cacert - curlMinimal - flutter.scope.cipd - gitMinimal - pax-utils - python3 - writableTmpDirAsHomeHook - ]; + nativeBuildInputs = [ + cacert + curlMinimal + gitMinimal + pax-utils + python3 + tools.cipd + ]; - env = { - NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - DEPOT_TOOLS_UPDATE = "0"; - DEPOT_TOOLS_COLLECT_METRICS = "0"; - PYTHONDONTWRITEBYTECODE = "1"; - CIPD_HTTP_USER_AGENT = "standard-nix-build"; - }; + env = { + NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + DEPOT_TOOLS_UPDATE = "0"; + DEPOT_TOOLS_COLLECT_METRICS = "0"; + PYTHONDONTWRITEBYTECODE = "1"; + CIPD_HTTP_USER_AGENT = "standard-nix-build"; + }; - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = "sha256-y2F+wB0M5dq6koxGpCs9BExGU7p8tFOIiRqfdf8ip+8="; - - buildCommand = '' - mkdir source - cd source - cp ${writeText ".gclient" '' - solutions = [{ - 'name': 'sdk', - 'url': 'https://dart.googlesource.com/sdk.git@${finalAttrs.version}', - }] - target_os = ['linux'] - target_cpu = ['x64', 'arm64', 'riscv64'] - target_cpu_only = True - ''} .gclient - export PATH=${python3}/bin:$PATH:${flutter.scope.depot_tools} - python3 ${flutter.scope.depot_tools}/gclient.py sync --no-history --nohooks --noprehooks - find sdk -name ".versions" -type d -exec rm -rf {} + - rm --recursive --force sdk/buildtools/sysroot - rm --recursive --force sdk/buildtools/linux-arm64 - rm --recursive --force sdk/buildtools/reclient - rm --recursive --force sdk/buildtools/*/clang - find sdk -type f \( -name "*.snapshot" -o -name "*.dill" -o -name "*.sym" \) -delete - rm --recursive --force sdk/tools/sdks/dart-sdk - find . -type l ! -exec test -e {} \; -delete - find . -name "ChangeLog*" -delete - rm --force .gclient .gclient_entries .gclient_previous_sync_commits .last_sync_hashes - rm --recursive --force .cipd .cipd_cache - find . -name ".git" -type d -prune -exec rm --recursive --force {} + - find . -name ".git*" -exec rm --recursive --force {} + - find . \( \ - -name ".build-id" -o \ - -name ".svn" -o \ - -name "*~" -o \ - -name "#*#" \ - \) -exec rm --recursive --force {} + - for elf in $(scanelf --recursive --all --format "%F" sdk | sort); do - rm --force "$elf" - done - find . -name "__pycache__" -type d -exec rm --recursive --force {} + - find . -name "*.pyc" -delete - cp --recursive sdk $out - ''; - }); + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "sha256-y2F+wB0M5dq6koxGpCs9BExGU7p8tFOIiRqfdf8ip+8="; + } + '' + mkdir source + cd source + source ${../../../../build-support/fetchgit/deterministic-git} + export -f clean_git + export -f make_deterministic_repo + cp ${writeText ".gclient" '' + solutions = [{ + 'name': 'sdk', + 'url': 'https://dart.googlesource.com/sdk.git@${version}', + }] + target_os = ['linux'] + target_cpu = ['x64', 'arm64', 'riscv64'] + target_cpu_only = True + ''} .gclient + export PATH=${python3}/bin:$PATH:${tools.depot_tools} + python3 ${tools.depot_tools}/gclient.py sync --no-history --nohooks --noprehooks + find sdk -name ".versions" -type d -exec rm -rf {} + + rm --recursive --force sdk/buildtools/sysroot + rm --recursive --force sdk/buildtools/linux-arm64 + rm --recursive --force sdk/buildtools/reclient + rm --recursive --force sdk/buildtools/*/clang + find sdk -type f \( -name "*.snapshot" -o -name "*.dill" -o -name "*.sym" \) -delete + rm --recursive --force sdk/tools/sdks/dart-sdk + find . -type l ! -exec test -e {} \; -delete + find . -name "ChangeLog*" -delete + rm --force .gclient .gclient_entries .gclient_previous_sync_commits .last_sync_hashes + rm --recursive --force .cipd .cipd_cache + find . -name ".git" -type d -prune -exec rm --recursive --force {} + + find . -name ".git*" -exec rm --recursive --force {} + + find . \( \ + -name ".build-id" -o \ + -name ".svn" -o \ + -name "*~" -o \ + -name "#*#" \ + \) -exec rm --recursive --force {} + + for elf in $(scanelf --recursive --all --format "%F" sdk | sort); do + rm --force "$elf" + done + find . -name "__pycache__" -type d -exec rm --recursive --force {} + + find . -name "*.pyc" -delete + cp --recursive sdk $out + ''; in dart-bin.overrideAttrs (oldAttrs: { inherit version src; diff --git a/pkgs/development/compilers/flutter/all-artifacts.nix b/pkgs/development/compilers/flutter/all-artifacts.nix deleted file mode 100644 index 7e2132f52f4f..000000000000 --- a/pkgs/development/compilers/flutter/all-artifacts.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ lib, callPackage }: - -let - oss = [ - { - name = "linux"; - isLinux = true; - isWindows = false; - isDarwin = false; - } - { - name = "windows"; - isLinux = false; - isWindows = true; - isDarwin = false; - } - { - name = "darwin"; - isLinux = false; - isWindows = false; - isDarwin = true; - } - ]; - - archs = [ - { - name = "x86_64"; - isx86_64 = true; - isAarch64 = false; - isRiscV64 = false; - } - { - name = "aarch64"; - isx86_64 = false; - isAarch64 = true; - isRiscV64 = false; - } - ]; - - hostPlatforms = ( - map - (p: { - inherit (p.os) isLinux isWindows isDarwin; - inherit (p.cpu) isx86_64 isAarch64 isRiscV64; - - parsed = { - kernel = { - name = p.os.name; - }; - cpu = { - name = p.cpu.name; - }; - }; - }) - ( - lib.cartesianProduct { - os = oss; - cpu = archs; - } - ) - ); -in -(lib.unique ( - lib.concatMap ( - hostPlatform: - callPackage ./host-artifacts.nix { - inherit hostPlatform; - supportedTargetFlutterPlatforms = [ - "universal" - "web" - "android" - "linux" - "macos" - "ios" - "windows" - ]; - } - ) hostPlatforms -)) diff --git a/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix b/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix new file mode 100644 index 000000000000..a425f8fce636 --- /dev/null +++ b/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix @@ -0,0 +1,102 @@ +# Schema: +# ${flutterVersion}.${targetPlatform}.${hostPlatform} +# +# aarch64-darwin as a host is not yet supported. +# https://github.com/flutter/flutter/issues/60118 +{ + lib, + runCommand, + lndir, + cacert, + unzip, + + flutterPlatform, + systemPlatform, + flutter, + hash, +}: + +let + flutterPlatforms = [ + "android" + "ios" + "web" + "linux" + "windows" + "macos" + "fuchsia" + "universal" + ]; + + flutter' = flutter.override { + # Use a version of Flutter with just enough capabilities to download + # artifacts. + 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-${flutterPlatform}-${systemPlatform}" + { + nativeBuildInputs = [ + 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 flutterPlatform; + }; + } + ( + '' + export FLUTTER_ROOT="$NIX_BUILD_TOP" + lndir -silent '${flutter'}' "$FLUTTER_ROOT" + rm --recursive --force "$FLUTTER_ROOT/bin/cache" + mkdir "$FLUTTER_ROOT/bin/cache" + mkdir "$FLUTTER_ROOT/bin/cache/dart-sdk" + lndir -silent '${flutter'}/bin/cache/dart-sdk' "$FLUTTER_ROOT/bin/cache/dart-sdk" + '' + # Could not determine engine revision + + lib.optionalString (lib.versionAtLeast flutter'.version "3.32") '' + cp '${flutter'}/bin/internal/engine.version' "$FLUTTER_ROOT/bin/cache/engine.stamp" + '' + + '' + + HOME="$(mktemp -d)" flutter precache ${ + lib.optionalString ( + flutter ? engine && flutter.engine.meta.available + ) "--local-engine ${flutter.engine.outName}" + } \ + --verbose '--${flutterPlatform}' ${ + builtins.concatStringsSep " " (map (p: "'--no-${p}'") (lib.remove flutterPlatform flutterPlatforms)) + } + + rm --recursive --force "$FLUTTER_ROOT/bin/cache/lockfile" + rm --recursive --force "$FLUTTER_ROOT/bin/cache/dart-sdk" + '' + + '' + find "$FLUTTER_ROOT" -type l -lname '${flutter'}/*' -delete + + cp --recursive bin/cache "$out" + '' + ) diff --git a/pkgs/development/compilers/flutter/artifacts/overrides/darwin.nix b/pkgs/development/compilers/flutter/artifacts/overrides/darwin.nix new file mode 100644 index 000000000000..dbdd81ba596a --- /dev/null +++ b/pkgs/development/compilers/flutter/artifacts/overrides/darwin.nix @@ -0,0 +1,14 @@ +{ }: +{ + buildInputs ? [ ], + ... +}: +{ + # Use arm64 instead of arm64e. + postPatch = '' + if [ "$pname" == "flutter-tools" ]; then + substituteInPlace lib/src/ios/xcodeproj.dart \ + --replace-fail arm64e arm64 + fi + ''; +} diff --git a/pkgs/development/compilers/flutter/artifacts/overrides/linux.nix b/pkgs/development/compilers/flutter/artifacts/overrides/linux.nix new file mode 100644 index 000000000000..a06188f98e3a --- /dev/null +++ b/pkgs/development/compilers/flutter/artifacts/overrides/linux.nix @@ -0,0 +1,12 @@ +{ + gtk3, +}: + +{ + buildInputs ? [ ], + ... +}: + +{ + buildInputs = buildInputs ++ [ gtk3 ]; +} diff --git a/pkgs/development/compilers/flutter/artifacts/prepare-artifacts.nix b/pkgs/development/compilers/flutter/artifacts/prepare-artifacts.nix new file mode 100644 index 000000000000..64eb4072d24e --- /dev/null +++ b/pkgs/development/compilers/flutter/artifacts/prepare-artifacts.nix @@ -0,0 +1,30 @@ +{ + lib, + stdenv, + callPackage, + autoPatchelfHook, + src, +}: + +(stdenv.mkDerivation { + inherit (src) name; + inherit src; + + nativeBuildInputs = lib.optional stdenv.hostPlatform.isLinux autoPatchelfHook; + + installPhase = '' + runHook preInstall + + mkdir --parents "$out/bin" + cp --recursive . "$out/bin/cache" + rm --force "$out/bin/cache/flutter.version.json" + + runHook postInstall + ''; +}).overrideAttrs + ( + if builtins.pathExists (./overrides + "/${src.flutterPlatform}.nix") then + callPackage (./overrides + "/${src.flutterPlatform}.nix") { } + else + ({ ... }: { }) + ) diff --git a/pkgs/development/compilers/flutter/build-support/build-flutter-application.nix b/pkgs/development/compilers/flutter/build-support/build-flutter-application.nix index 94cf1f9fbd33..a2adc097947e 100644 --- a/pkgs/development/compilers/flutter/build-support/build-flutter-application.nix +++ b/pkgs/development/compilers/flutter/build-support/build-flutter-application.nix @@ -54,32 +54,39 @@ lib.extendMkDerivation { ... }: let - flutterMode' = args.flutterMode or "release"; + hasEngine = flutter ? engine && flutter.engine != null && flutter.engine.meta.available; + flutterMode' = args.flutterMode or (if hasEngine then flutter.engine.runtimeMode else "release"); + + flutterFlags = lib.optional hasEngine "--local-engine host_${flutterMode'}${ + lib.optionalString (!flutter.engine.isOptimized) "_unopt" + }"; flutterBuildFlags' = [ "--${flutterMode'}" ] - ++ (args.flutterBuildFlags or [ ]); + ++ (args.flutterBuildFlags or [ ]) + ++ flutterFlags; universal = args // { flutterMode = flutterMode'; + flutterFlags = flutterFlags; flutterBuildFlags = flutterBuildFlags'; - # Pub needs SSL certificates. Dart normally looks in a hardcoded path. - # https://github.com/dart-lang/sdk/blob/3.1.0/runtime/bin/security_context_linux.cc#L48 - # - # Dart does not respect SSL_CERT_FILE... - # https://github.com/dart-lang/sdk/issues/48506 - # ...and Flutter does not support --root-certs-file, so the path cannot be manually set. - # https://github.com/flutter/flutter/issues/56607 - # https://github.com/flutter/flutter/issues/113594 - # - # libredirect is of no use either, as Flutter does not pass any - # environment variables (including LD_PRELOAD) to the Pub process. - # - # Instead, Flutter is patched to allow the path to the Dart binary used for - # Pub commands to be overriden. sdkSetupScript = '' + # Pub needs SSL certificates. Dart normally looks in a hardcoded path. + # https://github.com/dart-lang/sdk/blob/3.1.0/runtime/bin/security_context_linux.cc#L48 + # + # Dart does not respect SSL_CERT_FILE... + # https://github.com/dart-lang/sdk/issues/48506 + # ...and Flutter does not support --root-certs-file, so the path cannot be manually set. + # https://github.com/flutter/flutter/issues/56607 + # https://github.com/flutter/flutter/issues/113594 + # + # libredirect is of no use either, as Flutter does not pass any + # environment variables (including LD_PRELOAD) to the Pub process. + # + # Instead, Flutter is patched to allow the path to the Dart binary used for + # Pub commands to be overriden. export NIX_FLUTTER_PUB_DART="${ runCommand "dart-with-certs" { nativeBuildInputs = [ makeWrapper ]; } '' mkdir -p "$out/bin" @@ -89,11 +96,13 @@ lib.extendMkDerivation { }/bin/dart" export HOME="$NIX_BUILD_TOP" - # flutter config --no-analytics &>/dev/null # mute first-run - flutter config --enable-linux-desktop >/dev/null + flutter config $flutterFlags --no-analytics &>/dev/null # mute first-run + flutter config $flutterFlags --enable-linux-desktop >/dev/null ''; - pubGetScript = args.pubGetScript or "flutter pub get"; + pubGetScript = + args.pubGetScript + or "flutter${lib.optionalString hasEngine " --local-engine $flutterMode"} pub get"; sdkSourceBuilders = { # https://github.com/dart-lang/pub/blob/68dc2f547d0a264955c1fa551fa0a0e158046494/lib/src/sdk/flutter.dart#L81 diff --git a/pkgs/development/compilers/flutter/cipd.nix b/pkgs/development/compilers/flutter/cipd.nix deleted file mode 100644 index c5997d1d8a29..000000000000 --- a/pkgs/development/compilers/flutter/cipd.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ - constants, - fetchurl, - writeShellScriptBin, -}: - -let - cipdBin = fetchurl { - url = "https://chrome-infra-packages.appspot.com/client?platform=${constants.hostConstants.alt-os}-${constants.hostConstants.arch}&version=git_revision:927335d3d594ba6b46a8c3f2d64fade13c22075b"; - executable = true; - hash = - { - "linux-amd64" = "sha256-CP3AbEJm9vbyYfEnF9eD/vZwWK8Ps7kqQjZPY+HTuSQ="; - "linux-arm64" = "sha256-C97vamQ/+/0aaro+idwogtamQUfeVAopHQ1mdID2Utc="; - "mac-amd64" = "sha256-oyxJAG2Xg7m6w/IYrFgEPw0qLCTjL3/XB/3npod2Xsg="; - "mac-arm64" = "sha256-a0bD+qSn34Edn63o7rmQ4v4IVWnETIgWbxDZ1igNbP4="; - } - ."${constants.hostConstants.alt-os}-${constants.hostConstants.arch}"; - }; -in -writeShellScriptBin "cipd" '' - if [[ "$1" == "ensure" ]]; then - for arg in "$@"; do - if [[ "$prev" == "-ensure-file" ]]; then - sed --in-place \ - --expression='s/''${platform}/${constants.hostConstants.platform}/g' \ - --expression='s|gn/gn/${constants.hostConstants.platform}|gn/gn/${constants.buildConstants.platform}|g' \ - --expression='\|src/flutter/third_party/java/openjdk|,+2 d' \ - "$arg" - break - fi - prev="$arg" - done - fi - - exec ${cipdBin} "$@" -'' diff --git a/pkgs/development/compilers/flutter/constants.nix b/pkgs/development/compilers/flutter/constants.nix deleted file mode 100644 index d900122ea6f7..000000000000 --- a/pkgs/development/compilers/flutter/constants.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib, stdenv }: - -let - makeConstants = - platform: - let - os = - { - linux = "linux"; - darwin = "macos"; - windows = "windows"; - } - .${platform.parsed.kernel.name} or (throw "Unsupported OS: ${platform.parsed.kernel.name}"); - - arch = - { - x86_64 = "amd64"; - aarch64 = "arm64"; - riscv64 = "riscv64"; - } - .${platform.parsed.cpu.name} or (throw "Unsupported CPU: ${platform.parsed.cpu.name}"); - alt-os = if platform.isDarwin then "mac" else os; - alt-arch = if platform.isx86_64 then "x64" else arch; - in - { - inherit - os - arch - alt-os - alt-arch - ; - platform = "${os}-${arch}"; - alt-platform = "${alt-os}-${alt-arch}"; - }; -in -{ - inherit makeConstants; - buildConstants = makeConstants stdenv.buildPlatform; - targetConstants = makeConstants stdenv.targetPlatform; - hostConstants = makeConstants stdenv.hostPlatform; -} diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix index 27e12e586b53..2c886bf529fc 100644 --- a/pkgs/development/compilers/flutter/default.nix +++ b/pkgs/development/compilers/flutter/default.nix @@ -1,51 +1,146 @@ { - callPackage, - lib, useNixpkgsEngine ? false, + callPackage, + fetchzip, + fetchFromGitHub, + dart, + dart-bin, + lib, + stdenv, + runCommand, }: - let + mkCustomFlutter = args: callPackage ./flutter.nix args; + wrapFlutter = flutter: callPackage ./wrapper.nix { inherit flutter; }; getPatches = dir: - if builtins.pathExists dir then - map (fileName: dir + "/${fileName}") (builtins.attrNames (builtins.readDir dir)) - else - [ ]; - - makeFlutterScope = callPackage ./scope.nix { }; - - allVersions = lib.mapAttrs' (versionName: _: { - name = "v${versionName}"; - value = - let - versionDir = ./versions + "/${versionName}"; - versionData = lib.importJSON (versionDir + "/data.json"); - globalPatches = getPatches ./patches; - versionPatches = getPatches (versionDir + "/patches"); - globalEnginePatches = getPatches ./engine/patches; - versionEnginePatches = getPatches (versionDir + "/engine/patches"); - in - makeFlutterScope ( - versionData - // { - inherit useNixpkgsEngine; - patches = globalPatches ++ versionPatches; - enginePatches = globalEnginePatches ++ versionEnginePatches; - } - ); - }) (builtins.readDir ./versions); - - getLatestForChannel = - channel: let - channelVersions = lib.filterAttrs (_: scope: scope.channel == channel) allVersions; - sortedNames = lib.naturalSort (builtins.attrNames channelVersions); + files = builtins.attrNames (builtins.readDir dir); in - if sortedNames == [ ] then null else channelVersions.${lib.last sortedNames}.flutter; + if (builtins.pathExists dir) then map (f: dir + ("/" + f)) files else [ ]; + mkFlutter = + { + version, + engineVersion, + engineSwiftShaderHash, + engineSwiftShaderRev, + engineHashes, + enginePatches, + dartVersion, + flutterHash, + dartHash, + patches, + pubspecLock, + artifactHashes, + channel, + }: + let + args = { + inherit + version + engineVersion + engineSwiftShaderRev + engineSwiftShaderHash + engineHashes + enginePatches + patches + pubspecLock + artifactHashes + useNixpkgsEngine + channel + ; - stable = getLatestForChannel "stable"; - beta = getLatestForChannel "beta"; + dart = + let + hash = + dartHash.${stdenv.hostPlatform.system} + or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + in + ( + if lib.versionAtLeast version "3.41" then + (dart-bin.overrideAttrs (oldAttrs: { + version = dartVersion; + src = oldAttrs.src.overrideAttrs (_: { + inherit hash; + }); + })) + else + (dart-bin.overrideAttrs (_: { + # This overrideAttrs is used to replace the version in src.url + version = dartVersion; + __intentionallyOverridingVersion = true; + })).overrideAttrs + (oldAttrs: { + src = fetchzip { + inherit (oldAttrs.src) url; + inherit hash; + }; + }) + ); + src = + let + source = fetchFromGitHub { + owner = "flutter"; + repo = "flutter"; + tag = version; + hash = flutterHash; + }; + in + ( + if lib.versionAtLeast version "3.32" then + # # Could not determine engine revision + (runCommand source.name { } '' + cp --recursive ${source} $out + chmod +w $out/bin + mkdir $out/bin/cache + cp $out/bin/internal/engine.version $out/bin/cache/engine.stamp + touch $out/bin/cache/engine.realm + '') + else + source + ); + }; + in + (mkCustomFlutter args).overrideAttrs ( + prev: next: { + passthru = next.passthru // { + inherit wrapFlutter mkCustomFlutter mkFlutter; + buildFlutterApplication = callPackage ./build-support/build-flutter-application.nix { + flutter = wrapFlutter (mkCustomFlutter args); + }; + }; + } + ); + + 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")); + enginePatches = (getPatches ./engine/patches) ++ (getPatches (versionDir + "/engine/patches")); + } + // data + ) + ) + ) + ) (builtins.readDir ./versions); + + stableFlutterVersions = lib.attrsets.filterAttrs (_: v: v.channel == "stable") flutterVersions; + betaFlutterVersions = lib.attrsets.filterAttrs (_: v: v.channel == "beta") flutterVersions; in -(lib.mapAttrs (_: scope: scope.flutter) allVersions) -// lib.optionalAttrs (stable != null) { inherit stable; } -// lib.optionalAttrs (beta != null) { inherit beta; } +flutterVersions +// { + inherit wrapFlutter mkFlutter; +} +// lib.optionalAttrs (betaFlutterVersions != { }) { + beta = flutterVersions.${lib.last (lib.naturalSort (builtins.attrNames betaFlutterVersions))}; +} +// lib.optionalAttrs (stableFlutterVersions != { }) { + stable = flutterVersions.${lib.last (lib.naturalSort (builtins.attrNames stableFlutterVersions))}; +} diff --git a/pkgs/development/compilers/flutter/engine/constants.nix b/pkgs/development/compilers/flutter/engine/constants.nix new file mode 100644 index 000000000000..768f103e849f --- /dev/null +++ b/pkgs/development/compilers/flutter/engine/constants.nix @@ -0,0 +1,48 @@ +{ lib, platform }: +let + self = { + os = + if platform.isLinux then + "linux" + else if platform.isDarwin then + "macos" + else if platform.isWindows then + "windows" + else + throw "Unsupported OS \"${platform.parsed.kernel.name}\""; + + alt-os = if platform.isDarwin then "mac" else self.os; + + arch = + if platform.isx86_64 then + "amd64" + else if platform.isx86 && platform.is32bit then + "386" + else if platform.isAarch64 then + "arm64" + else if platform.isMips && platform.parsed.cpu.significantByte == "littleEndian" then + "mipsle" + else if platform.isMips64 then + "mips64${lib.optionalString (platform.parsed.cpu.significantByte == "littleEndian") "le"}" + else if platform.isPower64 then + "ppc64${lib.optionalString (platform.parsed.cpu.significantByte == "littleEndian") "le"}" + else if platform.isS390x then + "s390x" + else if platform.isRiscV64 then + "riscv64" + else + throw "Unsupported CPU \"${platform.parsed.cpu.name}\""; + + alt-arch = + if platform.isx86_64 then + "x64" + else if platform.isAarch64 then + "arm64" + else + platform.parsed.cpu.name; + + platform = "${self.os}-${self.arch}"; + alt-platform = "${self.os}-${self.alt-arch}"; + }; +in +self diff --git a/pkgs/development/compilers/flutter/engine/dart.nix b/pkgs/development/compilers/flutter/engine/dart.nix new file mode 100644 index 000000000000..4846392aa8ba --- /dev/null +++ b/pkgs/development/compilers/flutter/engine/dart.nix @@ -0,0 +1,12 @@ +{ engine, runCommand }: +runCommand "flutter-engine-${engine.version}-dart" + { + version = engine.dartSdkVersion; + + meta = engine.meta // { + description = "Dart SDK compiled from the Flutter Engine"; + }; + } + '' + ln --symbolic ${engine}/out/${engine.outName}/dart-sdk $out + '' diff --git a/pkgs/development/compilers/flutter/engine/default.nix b/pkgs/development/compilers/flutter/engine/default.nix index defb8d99bc6a..0821bce822a5 100644 --- a/pkgs/development/compilers/flutter/engine/default.nix +++ b/pkgs/development/compilers/flutter/engine/default.nix @@ -1,317 +1,78 @@ { callPackage, - constants, - dart, - depot_tools, - dos2unix, - enginePatches, - freetype, - gn, - gtk3, - harfbuzz, - lib, - libepoxy, - libjpeg, - libpng, - libwebp, - libx11, - libxxf86vm, - llvmPackages, - ninja, - patches, - pkg-config, - python312, - sqlite, - stdenv, - symlinkJoin, + dartSdkVersion, + flutterVersion, + swiftshaderHash, + swiftshaderRev, version, - zlib, - runtimeMode ? "release", -}: - + hashes, + url, + patches, + runtimeModes, + lib, + stdenv, + ... +}@args: let - python3 = python312; + mainRuntimeMode = args.mainRuntimeMode or builtins.elemAt runtimeModes 0; + altRuntimeMode = args.altRuntimeMode or builtins.elemAt runtimeModes 1; - llvm = symlinkJoin { - name = "llvm"; - paths = [ - llvmPackages.clang - llvmPackages.llvm - ]; - }; - - outputAttrs = { - flutter-gtk = - lib.replaceStrings [ "-" "/" ] [ "_M_" "_S_" ] - "${constants.hostConstants.alt-platform}-${runtimeMode}/${constants.hostConstants.alt-platform}-flutter-gtk"; - flutter-glfw = - lib.replaceStrings [ "-" "/" ] [ "_M_" "_S_" ] - "${constants.hostConstants.alt-platform}-${runtimeMode}/${constants.hostConstants.alt-platform}-flutter-glfw"; - font-subset = - lib.replaceStrings [ "-" "/" ] [ "_M_" "_S_" ] - "${constants.hostConstants.alt-platform}/font-subset"; - artifacts = - lib.replaceStrings [ "-" "/" ] [ "_M_" "_S_" ] - "${constants.hostConstants.alt-platform}/artifacts"; - flutter_patched_sdk = "flutter_patched_sdk"; - }; + runtimeModesBuilds = lib.genAttrs runtimeModes ( + runtimeMode: + callPackage ./package.nix { + inherit + dartSdkVersion + flutterVersion + swiftshaderHash + swiftshaderRev + version + hashes + url + patches + runtimeMode + ; + isOptimized = args.isOptimized or runtimeMode != "debug"; + } + ); in -stdenv.mkDerivation (finalAttrs: { - __structuredAttrs = true; - strictDeps = true; - pname = "flutter-engine-linux-${runtimeMode}"; - inherit version; +stdenv.mkDerivation ( + { + pname = "flutter-engine"; + inherit url runtimeModes altRuntimeMode; + inherit (runtimeModesBuilds.${mainRuntimeMode}) version src meta; - src = callPackage ./source.nix { }; + dontUnpack = true; + dontBuild = true; - sourceRoot = "${finalAttrs.src.name}/engine/src"; + installPhase = '' + runHook preInstall - prePatch = '' - pushd ../.. - chmod --recursive +w . - ''; - - patches = patches ++ enginePatches; - - postPatch = '' - popd - dos2unix flutter/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h - patchShebangs ../../bin/internal/content_aware_hash.sh - mkdir --parents flutter/third_party/dart/tools/sdks/dart-sdk/ flutter/prebuilts/${constants.hostConstants.alt-platform}/dart-sdk - ln --symbolic ${dart}/bin flutter/third_party/dart/tools/sdks/dart-sdk/bin - ln --symbolic ${dart}/bin flutter/prebuilts/${constants.hostConstants.alt-platform}/dart-sdk/bin - echo "${dart.version}" > flutter/third_party/dart/sdk/version - mkdir --parents flutter/third_party/gn/ - ln --symbolic ${lib.getExe gn} flutter/third_party/gn/gn - mkdir --parents flutter/third_party/swiftshader/third_party - ln --symbolic ${llvmPackages.llvm.monorepoSrc} flutter/third_party/swiftshader/third_party/llvm-project - mkdir --parents flutter/buildtools/${constants.hostConstants.alt-platform} - ln --symbolic ${llvm} flutter/buildtools/${constants.hostConstants.alt-platform}/clang - '' - # https://github.com/dart-lang/sdk/issues/52295 - + '' - mkdir --parents flutter/third_party/dart/.git/logs - touch flutter/third_party/dart/.git/logs/HEAD - '' - # DEPS hooks - + '' - python3 flutter/third_party/dart/tools/generate_package_config.py - python3 flutter/third_party/dart/tools/generate_sdk_version_file.py - python3 flutter/tools/pub_get_offline.py - '' - # reusable system library settings - + '' - local use_system=" - freetype2 - harfbuzz - libjpeg-turbo - libpng - libwebp - sqlite - zlib - " - for _lib in $use_system; do - echo "Removing buildscripts for system provided $_lib" - find . -type f -path "*third_party/$_lib/*" \ - \! -path "*third_party/$_lib/chromium/*" \ - \! -path "*third_party/$_lib/google/*" \ - \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ - -delete - done - echo "Replacing gn files" - python3 build/linux/unbundle/replace_gn_files.py --system-libraries $use_system - '' - # ValueError: ZIP does not support timestamps before 1980 - + '' - substituteInPlace flutter/build/zip.py \ - --replace-fail "zipfile.ZipFile(args.output, 'w', zipfile.ZIP_DEFLATED)" "zipfile.ZipFile(args.output, 'w', zipfile.ZIP_DEFLATED, strict_timestamps=False)" - '' - + '' - sed --in-place '5i #include ' flutter/display_list/dl_storage.cc - sed --in-place '5i #include ' flutter/display_list/dl_vertices.cc - sed --in-place '5i #include ' flutter/display_list/effects/color_filters/dl_matrix_color_filter.h - sed --in-place '5i #include ' flutter/display_list/geometry/dl_region.cc - sed --in-place '5i #include ' flutter/display_list/effects/dl_color_source.cc - sed --in-place '5i #include ' flutter/display_list/dl_builder.cc - sed --in-place '5i #include ' flutter/display_list/display_list.cc - sed --in-place '5i #include ' flutter/vulkan/vulkan_application.cc - sed --in-place '5i #include ' flutter/runtime/dart_vm.cc - sed --in-place '5i #include ' flutter/runtime/dart_isolate.cc - sed --in-place '5i #include ' flutter/shell/platform/android/android_surface_gl_skia.cc - sed --in-place '5i #include ' flutter/shell/platform/glfw/platform_handler.cc - sed --in-place '5i #include ' flutter/shell/platform/linux/fl_accessibility_channel.cc - sed --in-place '5i #include ' flutter/shell/platform/linux/fl_text_input_handler.cc - sed --in-place '5i #include ' flutter/shell/platform/linux/fl_application.cc - sed --in-place '5i #include ' flutter/shell/platform/linux/fl_event_channel.cc - sed --in-place '5i #include ' flutter/shell/platform/linux/fl_keyboard_channel.cc - sed --in-place '5i #include ' flutter/impeller/renderer/backend/vulkan/debug_report_vk.cc - sed --in-place '5i #include ' flutter/shell/platform/linux/fl_text_input_channel.cc - sed --in-place '5i #include ' flutter/shell/platform/linux/fl_settings_portal.cc - sed --in-place '5i #include ' flutter/shell/platform/linux/fl_gnome_settings.cc - sed --in-place '5i #include ' flutter/impeller/toolkit/glvk/trampoline.cc - sed --in-place '5i #include ' flutter/shell/platform/android/android_context_dynamic_impeller.cc - sed --in-place '5i #include ' flutter/shell/platform/fuchsia/dart_runner/builtin_libraries.cc - sed --in-place '5i #include ' flutter/shell/platform/fuchsia/flutter/text_delegate.cc - sed --in-place '5i #include ' flutter/third_party/accessibility/ax/ax_enum_util.cc - sed --in-place '5i #include ' flutter/examples/vulkan_glfw/src/main.cc - sed --in-place '5i #include ' flutter/shell/platform/linux/public/flutter_linux/fl_method_channel.h - sed --in-place '5i #include ' flutter/shell/platform/linux/fl_accessible_text_field.cc - substituteInPlace flutter/shell/platform/linux/fl_view_accessible.cc \ - --replace-fail "// Workaround missing C code compatibility in ATK header." "#include " - ''; - - nativeBuildInputs = [ - (python3.withPackages (ps: with ps; [ pyyaml ])) - dart - depot_tools - dos2unix - ninja - pkg-config - ]; - - buildInputs = [ - freetype - gtk3 - harfbuzz - libepoxy - libjpeg - libpng - libwebp - libx11 - libxxf86vm - sqlite - zlib - ]; - - env = { - NIX_CFLAGS_COMPILE = toString ( - [ - "-O2" - "-Wno-error" - "-Wno-unused-command-line-argument" - "-Wno-absolute-value" - "-Wno-implicit-float-conversion" - "-Wno-error=unused-command-line-argument" - "-D_GLIBCXX_DEBUG=0" - ] - ++ (lib.optionals stdenv.hostPlatform.isLinux [ "-U_FORTIFY_SOURCE" ]) - ); - TERM = "dumb"; - }; - - configurePhase = - let - gnFlags = lib.concatStringsSep " " ( - [ - "--no-goma" - "--no-dart-version-git-info" - "--linux" - "--linux-cpu=${constants.hostConstants.alt-arch}" - "--runtime-mode=${runtimeMode}" - "--no-rbe" - "--prebuilt-dart-sdk" - "--build-glfw-shell" - "--build-engine-artifacts" - "--no-enable-unittests" - "--enable-fontconfig" - ''--gn-args="use_default_linux_sysroot=false"'' - ] - ++ (lib.optionals (runtimeMode == "release") [ "--no-backtrace" ]) - ++ ( - if (runtimeMode == "debug") then - [ - "--unoptimized" - "--no-stripped" - ] - else - [ "--no-lto" ] - ) - ); - in + mkdir --parents $out/out '' - runHook preConfigure - - python3 flutter/tools/gn ${gnFlags} --target-dir="${constants.hostConstants.alt-platform}-${runtimeMode}" - - runHook postConfigure + + lib.concatMapStrings ( + runtimeMode: + let + runtimeModeBuild = runtimeModesBuilds.${runtimeMode}; + runtimeModeOut = runtimeModeBuild.outName; + in + '' + ln --symbolic --force ${runtimeModeBuild}/out/${runtimeModeOut} $out/out/${runtimeModeOut} + '' + ) runtimeModes + + '' + runHook postInstall ''; - buildPhase = '' - runHook preBuild - - ninja -C out/${constants.hostConstants.alt-platform}-${runtimeMode} -j $NIX_BUILD_CORES - - runHook postBuild - ''; - - outputs = [ "out" ] ++ builtins.attrValues outputAttrs; - - installPhase = '' - runHook preInstall - - pushd out/${constants.hostConstants.alt-platform}-${runtimeMode} - '' - # flutter-gtk - + '' - install -D --mode=0644 libflutter_linux_gtk.so --target-directory=''$${outputAttrs.flutter-gtk} - install -D --mode=0755 gen_snapshot --target-directory=''$${outputAttrs.flutter-gtk} - cp --recursive flutter_linux ''$${outputAttrs.flutter-gtk}/flutter_linux - '' - # flutter-glfw - + '' - install -D --mode=0644 flutter_export.h --target-directory=''$${outputAttrs.flutter-glfw} - install -D --mode=0644 flutter_glfw.h --target-directory=''$${outputAttrs.flutter-glfw} - install -D --mode=0644 flutter_messenger.h --target-directory=''$${outputAttrs.flutter-glfw} - install -D --mode=0644 flutter_plugin_registrar.h --target-directory=''$${outputAttrs.flutter-glfw} - install -D --mode=0755 gen_snapshot --target-directory=''$${outputAttrs.flutter-glfw} - install -D --mode=0644 libflutter_linux_glfw.so --target-directory=''$${outputAttrs.flutter-glfw} - '' - # font-subset - + '' - install -D --mode=0644 font-subset --target-directory=''$${outputAttrs.font-subset} - install -D --mode=0644 gen/const_finder.dart.snapshot --target-directory=''$${outputAttrs.font-subset} - '' - # flutter_patched_sdk - + '' - install -D --mode=0644 gen/flutter/build/archives/LICENSE.flutter_patched_sdk.md ''$${outputAttrs.flutter_patched_sdk}/LICENSE.flutter_patched_sdk.md - install -D --mode=0644 flutter_patched_sdk/platform_strong.dill --target-directory=''$${outputAttrs.flutter_patched_sdk}/flutter_patched_sdk/ - install -D --mode=0644 flutter_patched_sdk/vm_outline_strong.dill --target-directory=''$${outputAttrs.flutter_patched_sdk}/flutter_patched_sdk/ - '' - # artifacts - + '' - install -D --mode=0644 gen/flutter/lib/snapshot/vm_isolate_snapshot.bin --target-directory=''$${outputAttrs.artifacts} - install -D --mode=0644 gen/flutter/lib/snapshot/isolate_snapshot.bin --target-directory=''$${outputAttrs.artifacts} - install -D --mode=0644 icudtl.dat --target-directory=''$${outputAttrs.artifacts} - install -D --mode=0644 flutter_tester --target-directory=''$${outputAttrs.artifacts} - install -D --mode=0644 gen/frontend_server_aot.dart.snapshot --target-directory=''$${outputAttrs.artifacts}/frontend_server.dart.snapshot - install -D --mode=0644 gen/flutter/build/archives/LICENSE.artifacts.md --target-directory=''$${outputAttrs.artifacts} - install -D --mode=0644 gen/flutter/lib/snapshot/vm_isolate_snapshot.bin --target-directory=''$${outputAttrs.artifacts} - install -D --mode=0644 libtessellator.so --target-directory=''$${outputAttrs.artifacts} - install -D --mode=0644 libpath_ops.so --target-directory=''$${outputAttrs.artifacts} - install -D --mode=0644 gen/flutter/lib/snapshot/isolate_snapshot.bin --target-directory=''$${outputAttrs.artifacts} - install -D --mode=0644 libimpeller.so --target-directory=''$${outputAttrs.artifacts} - install -D --mode=0755 gen_snapshot --target-directory=''$${outputAttrs.artifacts} - install -D --mode=0755 impellerc --target-directory=''$${outputAttrs.artifacts} - cp --recursive shader_lib ''$${outputAttrs.artifacts}/shader_lib - '' - # others - + '' - install -D --mode=0644 libflutter_engine.so --target-directory=$out - install -D --mode=0755 analyze_snapshot --target-directory=$out - popd - - runHook postInstall - ''; - - dontStrip = (runtimeMode != "release"); - - meta = { - broken = stdenv.hostPlatform.isDarwin || (lib.versionOlder version "3.41"); - maintainers = with lib.maintainers; [ RossComputerGuy ]; - license = lib.licenses.bsd3; - platforms = [ - "x86_64-linux" - "aarch64-linux" - ]; - }; -}) + passthru = { + inherit (runtimeModesBuilds.${mainRuntimeMode}) + dartSdkVersion + isOptimized + runtimeMode + outName + dart + swiftshader + ; + }; + } + // runtimeModesBuilds +) diff --git a/pkgs/development/compilers/flutter/engine/package.nix b/pkgs/development/compilers/flutter/engine/package.nix new file mode 100644 index 000000000000..7d79b09e8662 --- /dev/null +++ b/pkgs/development/compilers/flutter/engine/package.nix @@ -0,0 +1,390 @@ +{ + lib, + callPackage, + fetchurl, + bash, + symlinkJoin, + darwin, + clang, + tools ? callPackage ./tools.nix { + inherit (stdenv) + hostPlatform + buildPlatform + ; + }, + stdenv, + dart, + fetchgit, + llvmPackages, + patchelf, + gn, + openbox, + xorg-server, + libxxf86vm, + libxrender, + libxrandr, + libxi, + libxinerama, + libxfixes, + libxext, + libxcursor, + libx11, + xorgproto, + libxcb, + libglvnd, + libepoxy, + wayland, + freetype, + pango, + glib, + harfbuzz, + cairo, + gdk-pixbuf, + at-spi2-atk, + zlib, + gtk3, + pkg-config, + ninja, + python312, + gitMinimal, + version, + flutterVersion, + dartSdkVersion, + swiftshaderHash, + swiftshaderRev, + hashes, + patches, + url, + runtimeMode ? "release", + isOptimized ? runtimeMode != "debug", +}: +let + constants = callPackage ./constants.nix { platform = stdenv.targetPlatform; }; + + python3 = python312; + + src = callPackage ./source.nix { + inherit + flutterVersion + version + hashes + url + ; + inherit (stdenv) + hostPlatform + buildPlatform + targetPlatform + ; + }; + + swiftshader = fetchgit { + url = "https://swiftshader.googlesource.com/SwiftShader.git"; + hash = swiftshaderHash; + rev = swiftshaderRev; + + postFetch = '' + rm --recursive --force $out/third_party/llvm-project + ''; + }; + + llvm = symlinkJoin { + name = "llvm"; + paths = [ + clang + llvmPackages.llvm + ]; + }; + + outName = "host_${runtimeMode}${lib.optionalString (!isOptimized) "_unopt"}"; + + dartPath = "flutter/third_party/dart"; +in +stdenv.mkDerivation (finalAttrs: { + pname = "flutter-engine-${runtimeMode}${lib.optionalString (!isOptimized) "-unopt"}"; + inherit version src patches; + + setOutputFlags = false; + doStrip = isOptimized; + + toolchain = symlinkJoin { + name = "flutter-engine-toolchain-${version}"; + + paths = + lib.flatten ( + map (dep: lib.optionals (lib.isDerivation dep) ([ dep ] ++ map (output: dep.${output}) dep.outputs)) + ( + lib.optionals (stdenv.hostPlatform.isLinux) [ + gtk3 + wayland + libepoxy + libglvnd + freetype + at-spi2-atk + glib + gdk-pixbuf + harfbuzz + pango + cairo + libxcb + libx11 + libxcursor + libxrandr + libxrender + libxinerama + libxi + libxext + libxfixes + libxxf86vm + xorgproto + zlib + ] + ++ lib.optionals (stdenv.hostPlatform.isDarwin) [ + clang + llvm + ] + ) + ) + ++ [ + stdenv.cc.libc_dev + stdenv.cc.libc_lib + ]; + + # Needed due to Flutter expecting everything to be relative to $out + # and not true absolute path (ie relative to "/"). + postBuild = '' + mkdir --parents $(dirname $(dirname "$out/$out")) + ln --symbolic $(dirname "$out") $out/$(dirname "$out") + ''; + }; + + NIX_CFLAGS_COMPILE = [ + "-I${finalAttrs.toolchain}/include" + "-O2" + "-Wno-error" + "-Wno-absolute-value" + "-Wno-implicit-float-conversion" + ] + ++ lib.optional (!isOptimized) "-U_FORTIFY_SOURCE"; + + nativeCheckInputs = lib.optionals stdenv.hostPlatform.isLinux [ + xorg-server + openbox + ]; + + nativeBuildInputs = [ + (python3.withPackages ( + ps: with ps; [ + pyyaml + ] + )) + (tools.vpython python3) + gitMinimal + pkg-config + ninja + dart + ] + ++ lib.optionals (stdenv.hostPlatform.isLinux) [ patchelf ] + ++ lib.optionals (stdenv.hostPlatform.isDarwin) [ + darwin.system_cmds + darwin.xcode + tools.xcode-select + ] + ++ lib.optionals (stdenv.cc.libc ? bin) [ stdenv.cc.libc.bin ]; + + buildInputs = [ + gtk3 + libepoxy + ] + ++ lib.optionals (lib.versionAtLeast flutterVersion "3.41") [ + at-spi2-atk + glib + ]; + + dontPatch = true; + + env.patchgit = toString [ + dartPath + "flutter" + "." + "flutter/third_party/skia" + ]; + + postUnpack = + lib.optionalString (lib.versionAtLeast flutterVersion "3.38") '' + chmod +w . + mkdir --parents bin/internal + echo '#!${lib.getExe bash}' > bin/internal/content_aware_hash.sh + echo 'echo 1111111111111111111111111111111111111111' >> bin/internal/content_aware_hash.sh + chmod +x bin/internal/content_aware_hash.sh + '' + + '' + pushd ${finalAttrs.src.name} + + cp ${ + fetchurl { + url = "https://raw.githubusercontent.com/chromium/chromium/631a813125b886a52274653144019fd1681a0e97/build/config/linux/pkg-config.py"; + hash = "sha256-9coRpgCewlkFXSGrMVkudaZUll0IFc9jDRBP+2PloOI="; + } + } src/build/config/linux/pkg-config.py + + cp --preserve=mode,ownership,timestamps --recursive --reflink=auto ${swiftshader} src/flutter/third_party/swiftshader + chmod --recursive u+w -- src/flutter/third_party/swiftshader + + ln --symbolic ${llvmPackages.llvm.monorepoSrc} src/flutter/third_party/swiftshader/third_party/llvm-project + + mkdir --parents src/flutter/buildtools/${constants.alt-platform} + ln --symbolic ${llvm} src/flutter/buildtools/${constants.alt-platform}/clang + + mkdir --parents src/buildtools/${constants.alt-platform} + ln --symbolic ${llvm} src/buildtools/${constants.alt-platform}/clang + + mkdir --parents src/${dartPath}/tools/sdks + ln --symbolic ${dart} src/${dartPath}/tools/sdks/dart-sdk + + mkdir --parents src/flutter/third_party/gn/ + ln --symbolic --force ${lib.getExe gn} src/flutter/third_party/gn/gn + + for dir in ''${patchgit[@]}; do + pushd src/$dir + rm --recursive --force .git + git init + git add . + git config user.name "nobody" + git config user.email "nobody@local.host" + git commit --all --message="$dir" --quiet + popd + done + + dart src/${dartPath}/tools/generate_package_config.dart + echo "${dartSdkVersion}" >src/${dartPath}/sdk/version + python3 src/flutter/third_party/dart/tools/generate_sdk_version_file.py + rm --recursive --force src/third_party/angle/.git + python3 src/flutter/tools/pub_get_offline.py + + pushd src/flutter + + for p in ''${patches[@]}; do + patch -p1 -i $p + done + + popd + '' + # error: 'close_range' is missing exception specification 'noexcept(true)' + + lib.optionalString (lib.versionAtLeast flutterVersion "3.35") '' + substituteInPlace src/flutter/third_party/dart/runtime/bin/process_linux.cc \ + --replace-fail "(unsigned int first, unsigned int last, int flags)" "(unsigned int first, unsigned int last, int flags) noexcept(true)" + '' + # src/flutter/third_party/libcxx/include/__type_traits/is_referenceable.h:33:1: error: templates must have C++ linkage + + lib.optionalString (lib.versionAtLeast flutterVersion "3.41") '' + substituteInPlace src/flutter/shell/platform/linux/fl_view_accessible.cc \ + --replace-fail "// Workaround missing C code compatibility in ATK header." "#include " + '' + + '' + popd + ''; + + configureFlags = [ + "--no-prebuilt-dart-sdk" + "--embedder-for-target" + "--no-goma" + "--no-dart-version-git-info" + ] + ++ lib.optionals (stdenv.targetPlatform.isx86_64 == false) [ + "--linux" + "--linux-cpu ${constants.alt-arch}" + ] + ++ lib.optional (!isOptimized) "--unoptimized" + ++ lib.optional (runtimeMode == "debug") "--no-stripped" + ++ lib.optional finalAttrs.finalPackage.doCheck "--enable-unittests" + ++ lib.optional (!finalAttrs.finalPackage.doCheck) "--no-enable-unittests"; + + configurePhase = '' + runHook preConfigure + + export PYTHONPATH=$src/src/build + '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' + export PATH=${darwin.xcode}/Contents/Developer/usr/bin/:$PATH + '' + + '' + python3 ./src/flutter/tools/gn $configureFlags \ + --runtime-mode ${runtimeMode} \ + --out-dir $out \ + --target-sysroot ${finalAttrs.toolchain} \ + --target-dir ${outName} \ + --target-triple ${stdenv.targetPlatform.config} \ + --enable-fontconfig + + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + + export TERM=dumb + '' + # ValueError: ZIP does not support timestamps before 1980 + + '' + substituteInPlace src/flutter/build/zip.py \ + --replace-fail "zipfile.ZipFile(args.output, 'w', zipfile.ZIP_DEFLATED)" "zipfile.ZipFile(args.output, 'w', zipfile.ZIP_DEFLATED, strict_timestamps=False)" + '' + + '' + ninja -C $out/out/${outName} -j$NIX_BUILD_CORES + + runHook postBuild + ''; + + # Tests are broken + doCheck = false; + checkPhase = '' + runHook preCheck + + ln --symbolic $out/out src/out + touch src/out/run_tests.log + sh src/flutter/testing/run_tests.sh ${outName} + rm src/out/run_tests.log + + runHook postCheck + ''; + + installPhase = '' + runHook preInstall + + rm --recursive --force $out/out/${outName}/{obj,exe.unstripped,lib.unstripped,zip_archives} + rm $out/out/${outName}/{args.gn,build.ninja,build.ninja.d,compile_commands.json,toolchain.ninja} + find $out/out/${outName} -name '*_unittests' -delete + find $out/out/${outName} -name '*_benchmarks' -delete + '' + + lib.optionalString (finalAttrs.finalPackage.doCheck) '' + rm $out/out/${outName}/{display_list_rendertests,flutter_tester} + '' + + '' + runHook postInstall + ''; + + passthru = { + inherit + dartSdkVersion + isOptimized + runtimeMode + outName + swiftshader + ; + dart = callPackage ./dart.nix { engine = finalAttrs.finalPackage; }; + }; + + meta = { + # Very broken on Darwin + broken = stdenv.hostPlatform.isDarwin; + description = "Flutter engine"; + homepage = "https://flutter.dev"; + maintainers = with lib.maintainers; [ RossComputerGuy ]; + license = lib.licenses.bsd3; + platforms = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + }; +}) diff --git a/pkgs/development/compilers/flutter/engine/patches/git-revision.patch b/pkgs/development/compilers/flutter/engine/patches/git-revision.patch deleted file mode 100644 index ad2c22ddf694..000000000000 --- a/pkgs/development/compilers/flutter/engine/patches/git-revision.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- a/engine/src/flutter/build/git_revision.py -+++ b/engine/src/flutter/build/git_revision.py -@@ -22,18 +22,7 @@ - if not os.path.exists(repository): - raise IOError('path does not exist') - -- git = 'git' -- if is_windows(): -- git = 'git.bat' -- version = subprocess.check_output([ -- git, -- '-C', -- repository, -- 'rev-parse', -- 'HEAD', -- ]) -- -- return str(version.strip(), 'utf-8') -+ return '0' * 41 - - - def main(): ---- a/engine/src/flutter/tools/gn -+++ b/engine/src/flutter/tools/gn -@@ -286,18 +286,7 @@ - if not os.path.exists(repository): - raise IOError('path does not exist') - -- git = 'git' -- if sys.platform.startswith(('cygwin', 'win')): -- git = 'git.bat' -- version = subprocess.check_output([ -- git, -- '-C', -- repository, -- 'rev-parse', -- 'HEAD', -- ]) -- -- return str(version.strip(), 'utf-8') -+ return '0' * 41 - - - def setup_git_versions(): diff --git a/pkgs/development/compilers/flutter/engine/patches/no-vpython.patch b/pkgs/development/compilers/flutter/engine/patches/no-vpython.patch deleted file mode 100644 index 8b162f653919..000000000000 --- a/pkgs/development/compilers/flutter/engine/patches/no-vpython.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/engine/src/.gn -+++ b/engine/src/.gn -@@ -3,7 +3,7 @@ - - # Use vpython3 from depot_tools for exec_script() calls. - # See `gn help dotfile` for details. --script_executable = "vpython3" -+script_executable = "python3" - - # The location of the build configuration file. - buildconfig = "//build/config/BUILDCONFIG.gn" diff --git a/pkgs/development/compilers/flutter/engine/patches/not-in-git.patch b/pkgs/development/compilers/flutter/engine/patches/not-in-git.patch deleted file mode 100644 index b67b7b2f6fa9..000000000000 --- a/pkgs/development/compilers/flutter/engine/patches/not-in-git.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/engine/src/flutter/tools/pub_get_offline.py -+++ b/engine/src/flutter/tools/pub_get_offline.py -@@ -148,10 +148,6 @@ - SRC_ROOT, 'flutter', 'third_party', 'dart', 'tools', 'sdks', 'dart-sdk', 'bin' - ) - -- # Delete all package_config.json files. These may be stale. -- # Required ones will be regenerated fresh below. -- delete_config_files() -- - # Ensure all relevant packages are listed in ALL_PACKAGES. - unlisted = find_unlisted_packages() - if len(unlisted) > 0: diff --git a/pkgs/development/compilers/flutter/engine/patches/shared-libcxx.patch b/pkgs/development/compilers/flutter/engine/patches/shared-libcxx.patch deleted file mode 100644 index e93ffce50471..000000000000 --- a/pkgs/development/compilers/flutter/engine/patches/shared-libcxx.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/engine/src/flutter/third_party/flatbuffers/include/flatbuffers/util.h -+++ b/engine/src/flutter/third_party/flatbuffers/include/flatbuffers/util.h -@@ -202,7 +202,7 @@ - - // clang-format off - // Use locale independent functions {strtod_l, strtof_l, strtoll_l, strtoull_l}. --#if defined(FLATBUFFERS_LOCALE_INDEPENDENT) && (FLATBUFFERS_LOCALE_INDEPENDENT > 0) -+#if defined(__GLIBC__) && defined(FLATBUFFERS_LOCALE_INDEPENDENT) && (FLATBUFFERS_LOCALE_INDEPENDENT > 0) - class ClassicLocale { - #ifdef _MSC_VER - typedef _locale_t locale_type; ---- a/engine/src/flutter/third_party/flatbuffers/src/util.cpp -+++ b/engine/src/flutter/third_party/flatbuffers/src/util.cpp -@@ -252,7 +252,7 @@ - } - - // Locale-independent code. --#if defined(FLATBUFFERS_LOCALE_INDEPENDENT) && \ -+#if defined(__GLIBC__) && defined(FLATBUFFERS_LOCALE_INDEPENDENT) && \ - (FLATBUFFERS_LOCALE_INDEPENDENT > 0) - - // clang-format off diff --git a/pkgs/development/compilers/flutter/engine/patches/unbundle-engine.patch b/pkgs/development/compilers/flutter/engine/patches/unbundle-engine.patch deleted file mode 100644 index 1a0077ad5315..000000000000 --- a/pkgs/development/compilers/flutter/engine/patches/unbundle-engine.patch +++ /dev/null @@ -1,933 +0,0 @@ -diff --git a/engine/src/build/linux/unbundle/freetype2.gn b/engine/src/build/linux/unbundle/freetype2.gn -new file mode 100644 -index 0000000..3b8cafb ---- /dev/null -+++ b/engine/src/build/linux/unbundle/freetype2.gn -@@ -0,0 +1,35 @@ -+# Copyright 2013 The Flutter Authors. All rights reserved. -+# Use of this source code is governed by a BSD-style license that can be -+# found in the LICENSE file. -+ -+import("//build/config/linux/pkg_config.gni") -+import("//build/shim_headers.gni") -+ -+config("freetype_config") { -+ include_dirs = [ "include/freetype-flutter-config" ] -+ -+ cflags = [] -+ -+ if (is_clang) { -+ cflags += [ -+ "-Wno-unused-function", -+ "-Wno-unused-variable", -+ ] -+ } -+} -+ -+pkg_config("system_freetype2") { -+ packages = [ "freetype2" ] -+} -+ -+source_set("freetype2") { -+ output_name = "freetype2" -+ deps = [ -+ "//third_party/libpng", -+ "//third_party/zlib", -+ ] -+ public_configs = [ -+ ":freetype_config", -+ ":system_freetype2", -+ ] -+} -diff --git a/engine/src/build/linux/unbundle/harfbuzz.gn b/engine/src/build/linux/unbundle/harfbuzz.gn -new file mode 100644 -index 0000000..72d3e06 ---- /dev/null -+++ b/engine/src/build/linux/unbundle/harfbuzz.gn -@@ -0,0 +1,31 @@ -+# Copyright 2013 The Flutter Authors. All rights reserved. -+# Use of this source code is governed by a BSD-style license that can be -+# found in the LICENSE file. -+ -+import("//build/config/linux/pkg_config.gni") -+ -+pkg_config("system_harfbuzz") { -+ packages = [ "harfbuzz" ] -+} -+ -+pkg_config("system_harfbuzz_subset") { -+ packages = [ "harfbuzz-subset" ] -+} -+ -+source_set("harfbuzz") { -+ output_name = "harfbuzz" -+ deps = [ -+ "//third_party/freetype2", -+ "//third_party/icu:icuuc", -+ ] -+ public_configs = [ ":system_harfbuzz" ] -+} -+ -+source_set("harfbuzz_subset") { -+ output_name = "harfbuzz_subset" -+ deps = [ -+ "//third_party/freetype2", -+ "//third_party/icu:icuuc", -+ ] -+ public_configs = [ ":system_harfbuzz_subset" ] -+} -diff --git a/engine/src/build/linux/unbundle/icu.gn b/engine/src/build/linux/unbundle/icu.gn -new file mode 100644 -index 0000000..9e54d4e ---- /dev/null -+++ b/engine/src/build/linux/unbundle/icu.gn -@@ -0,0 +1,264 @@ -+# Copyright 2016 The Chromium Authors -+# Use of this source code is governed by a BSD-style license that can be -+# found in the LICENSE file. -+ -+import("//build/config/linux/pkg_config.gni") -+import("//build/shim_headers.gni") -+ -+group("icu") { -+ public_deps = [ -+ ":icui18n", -+ ":icuuc", -+ ] -+} -+ -+config("icu_config") { -+ defines = [ -+ "USING_SYSTEM_ICU=1", -+ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC", -+ -+ # U_EXPORT (defined in unicode/platform.h) is used to set public visibility -+ # on classes through the U_COMMON_API and U_I18N_API macros (among others). -+ # When linking against the system ICU library, we want its symbols to have -+ # public LTO visibility. This disables CFI checks for the ICU classes and -+ # allows whole-program optimization to be applied to the rest of Chromium. -+ # -+ # Both U_COMMON_API and U_I18N_API macros would be defined to U_EXPORT only -+ # when U_COMBINED_IMPLEMENTATION is defined (see unicode/utypes.h). Because -+ # we override the default system UCHAR_TYPE (char16_t), it is not possible -+ # to use U_COMBINED_IMPLEMENTATION at this moment, meaning the U_COMMON_API -+ # and U_I18N_API macros are set to U_IMPORT which is an empty definition. -+ # -+ # Until building with UCHAR_TYPE=char16_t is supported, one way to apply -+ # public visibility (and thus public LTO visibility) to all ICU classes is -+ # to define U_IMPORT to have the same value as U_EXPORT. For more details, -+ # please see: https://crbug.com/822820 -+ "U_IMPORT=U_EXPORT", -+ ] -+} -+ -+pkg_config("system_icui18n") { -+ packages = [ "icu-i18n" ] -+} -+ -+pkg_config("system_icuuc") { -+ packages = [ "icu-uc" ] -+} -+ -+source_set("icui18n") { -+ public_deps = [ ":icui18n_shim" ] -+ public_configs = [ -+ ":icu_config", -+ ":system_icui18n", -+ ] -+} -+ -+source_set("icuuc") { -+ public_deps = [ ":icuuc_shim" ] -+ public_configs = [ -+ ":icu_config", -+ ":system_icuuc", -+ ] -+} -+ -+group("icui18n_hidden_visibility") { -+ public_deps = [ ":icui18n" ] -+} -+ -+group("icuuc_hidden_visibility") { -+ public_deps = [ ":icuuc" ] -+} -+ -+shim_headers("icui18n_shim") { -+ root_path = "source/i18n" -+ headers = [ -+ # This list can easily be updated using the commands below: -+ # cd third_party/icu/source/i18n -+ # find unicode -iname '*.h' -printf ' "%p",\n' | LC_ALL=C sort -u -+ "unicode/alphaindex.h", -+ "unicode/basictz.h", -+ "unicode/calendar.h", -+ "unicode/choicfmt.h", -+ "unicode/coleitr.h", -+ "unicode/coll.h", -+ "unicode/compactdecimalformat.h", -+ "unicode/curramt.h", -+ "unicode/currpinf.h", -+ "unicode/currunit.h", -+ "unicode/datefmt.h", -+ "unicode/dcfmtsym.h", -+ "unicode/decimfmt.h", -+ "unicode/dtfmtsym.h", -+ "unicode/dtitvfmt.h", -+ "unicode/dtitvinf.h", -+ "unicode/dtptngen.h", -+ "unicode/dtrule.h", -+ "unicode/fieldpos.h", -+ "unicode/fmtable.h", -+ "unicode/format.h", -+ "unicode/fpositer.h", -+ "unicode/gender.h", -+ "unicode/gregocal.h", -+ "unicode/listformatter.h", -+ "unicode/measfmt.h", -+ "unicode/measunit.h", -+ "unicode/measure.h", -+ "unicode/msgfmt.h", -+ "unicode/numfmt.h", -+ "unicode/numsys.h", -+ "unicode/plurfmt.h", -+ "unicode/plurrule.h", -+ "unicode/rbnf.h", -+ "unicode/rbtz.h", -+ "unicode/regex.h", -+ "unicode/region.h", -+ "unicode/reldatefmt.h", -+ "unicode/scientificnumberformatter.h", -+ "unicode/search.h", -+ "unicode/selfmt.h", -+ "unicode/simpletz.h", -+ "unicode/smpdtfmt.h", -+ "unicode/sortkey.h", -+ "unicode/stsearch.h", -+ "unicode/tblcoll.h", -+ "unicode/timezone.h", -+ "unicode/tmunit.h", -+ "unicode/tmutamt.h", -+ "unicode/tmutfmt.h", -+ "unicode/translit.h", -+ "unicode/tzfmt.h", -+ "unicode/tznames.h", -+ "unicode/tzrule.h", -+ "unicode/tztrans.h", -+ "unicode/ucal.h", -+ "unicode/ucol.h", -+ "unicode/ucoleitr.h", -+ "unicode/ucsdet.h", -+ "unicode/udat.h", -+ "unicode/udateintervalformat.h", -+ "unicode/udatpg.h", -+ "unicode/ufieldpositer.h", -+ "unicode/uformattable.h", -+ "unicode/ugender.h", -+ "unicode/ulocdata.h", -+ "unicode/umsg.h", -+ "unicode/unirepl.h", -+ "unicode/unum.h", -+ "unicode/unumsys.h", -+ "unicode/upluralrules.h", -+ "unicode/uregex.h", -+ "unicode/uregion.h", -+ "unicode/ureldatefmt.h", -+ "unicode/usearch.h", -+ "unicode/uspoof.h", -+ "unicode/utmscale.h", -+ "unicode/utrans.h", -+ "unicode/vtzone.h", -+ ] -+ additional_includes = [ "flutter" ] -+} -+ -+shim_headers("icuuc_shim") { -+ root_path = "source/common" -+ headers = [ -+ # This list can easily be updated using the commands below: -+ # cd third_party/icu/source/common -+ # find unicode -iname '*.h' -printf ' "%p",\n' | LC_ALL=C sort -u -+ "unicode/appendable.h", -+ "unicode/brkiter.h", -+ "unicode/bytestream.h", -+ "unicode/bytestrie.h", -+ "unicode/bytestriebuilder.h", -+ "unicode/caniter.h", -+ "unicode/casemap.h", -+ "unicode/char16ptr.h", -+ "unicode/chariter.h", -+ "unicode/dbbi.h", -+ "unicode/docmain.h", -+ "unicode/dtintrv.h", -+ "unicode/edits.h", -+ "unicode/enumset.h", -+ "unicode/errorcode.h", -+ "unicode/filteredbrk.h", -+ "unicode/icudataver.h", -+ "unicode/icuplug.h", -+ "unicode/idna.h", -+ "unicode/localematcher.h", -+ "unicode/localpointer.h", -+ "unicode/locdspnm.h", -+ "unicode/locid.h", -+ "unicode/messagepattern.h", -+ "unicode/normalizer2.h", -+ "unicode/normlzr.h", -+ "unicode/parseerr.h", -+ "unicode/parsepos.h", -+ "unicode/platform.h", -+ "unicode/ptypes.h", -+ "unicode/putil.h", -+ "unicode/rbbi.h", -+ "unicode/rep.h", -+ "unicode/resbund.h", -+ "unicode/schriter.h", -+ "unicode/simpleformatter.h", -+ "unicode/std_string.h", -+ "unicode/strenum.h", -+ "unicode/stringpiece.h", -+ "unicode/stringtriebuilder.h", -+ "unicode/symtable.h", -+ "unicode/ubidi.h", -+ "unicode/ubiditransform.h", -+ "unicode/ubrk.h", -+ "unicode/ucasemap.h", -+ "unicode/ucat.h", -+ "unicode/uchar.h", -+ "unicode/ucharstrie.h", -+ "unicode/ucharstriebuilder.h", -+ "unicode/uchriter.h", -+ "unicode/uclean.h", -+ "unicode/ucnv.h", -+ "unicode/ucnv_cb.h", -+ "unicode/ucnv_err.h", -+ "unicode/ucnvsel.h", -+ "unicode/uconfig.h", -+ "unicode/ucurr.h", -+ "unicode/udata.h", -+ "unicode/udisplaycontext.h", -+ "unicode/uenum.h", -+ "unicode/uidna.h", -+ "unicode/uiter.h", -+ "unicode/uldnames.h", -+ "unicode/ulistformatter.h", -+ "unicode/uloc.h", -+ "unicode/umachine.h", -+ "unicode/umisc.h", -+ "unicode/unifilt.h", -+ "unicode/unifunct.h", -+ "unicode/unimatch.h", -+ "unicode/uniset.h", -+ "unicode/unistr.h", -+ "unicode/unorm.h", -+ "unicode/unorm2.h", -+ "unicode/uobject.h", -+ "unicode/urename.h", -+ "unicode/urep.h", -+ "unicode/ures.h", -+ "unicode/uscript.h", -+ "unicode/uset.h", -+ "unicode/usetiter.h", -+ "unicode/ushape.h", -+ "unicode/usprep.h", -+ "unicode/ustring.h", -+ "unicode/ustringtrie.h", -+ "unicode/utext.h", -+ "unicode/utf.h", -+ "unicode/utf16.h", -+ "unicode/utf32.h", -+ "unicode/utf8.h", -+ "unicode/utf_old.h", -+ "unicode/utrace.h", -+ "unicode/utypes.h", -+ "unicode/uvernum.h", -+ "unicode/uversion.h", -+ ] -+ additional_includes = [ "flutter" ] -+} -diff --git a/engine/src/build/linux/unbundle/libjpeg-turbo.gn b/engine/src/build/linux/unbundle/libjpeg-turbo.gn -new file mode 100644 -index 0000000..be0c674 ---- /dev/null -+++ b/engine/src/build/linux/unbundle/libjpeg-turbo.gn -@@ -0,0 +1,11 @@ -+# Copyright 2013 The Flutter Authors. All rights reserved. -+# Use of this source code is governed by a BSD-style license that can be -+# found in the LICENSE file. -+ -+config("libjpeg_config") { -+ libs = [ "jpeg" ] -+} -+ -+group("libjpeg") { -+ public_configs = [ ":libjpeg_config" ] -+} -diff --git a/engine/src/build/linux/unbundle/libpng.gn b/engine/src/build/linux/unbundle/libpng.gn -new file mode 100644 -index 0000000..91e0ee4 ---- /dev/null -+++ b/engine/src/build/linux/unbundle/libpng.gn -@@ -0,0 +1,23 @@ -+# Copyright 2016 The Chromium Authors -+# Use of this source code is governed by a BSD-style license that can be -+# found in the LICENSE file. -+ -+import("//build/config/linux/pkg_config.gni") -+import("//build/shim_headers.gni") -+ -+pkg_config("libpng_config") { -+ packages = [ "libpng" ] -+} -+ -+shim_headers("libpng_shim") { -+ root_path = "." -+ headers = [ -+ "png.h", -+ "pngconf.h", -+ ] -+} -+ -+source_set("libpng") { -+ deps = [ ":libpng_shim" ] -+ public_configs = [ ":libpng_config" ] -+} -diff --git a/engine/src/build/linux/unbundle/libwebp.gn b/engine/src/build/linux/unbundle/libwebp.gn -new file mode 100644 -index 0000000..708cc9c ---- /dev/null -+++ b/engine/src/build/linux/unbundle/libwebp.gn -@@ -0,0 +1,35 @@ -+# Copyright 2016 The Chromium Authors -+# Use of this source code is governed by a BSD-style license that can be -+# found in the LICENSE file. -+ -+import("//build/config/linux/pkg_config.gni") -+import("//build/shim_headers.gni") -+ -+pkg_config("system_libwebp") { -+ packages = [ -+ "libwebp", -+ "libwebpdemux", -+ "libwebpmux", -+ ] -+} -+ -+shim_headers("libwebp_shim") { -+ root_path = "src/src" -+ headers = [ -+ "webp/decode.h", -+ "webp/demux.h", -+ "webp/encode.h", -+ "webp/mux.h", -+ "webp/mux_types.h", -+ "webp/types.h", -+ ] -+} -+ -+source_set("libwebp_webp") { -+ deps = [ ":libwebp_shim" ] -+ public_configs = [ ":system_libwebp" ] -+} -+ -+group("libwebp") { -+ deps = [ ":libwebp_webp" ] -+} -diff --git a/engine/src/build/linux/unbundle/libxml.gn b/engine/src/build/linux/unbundle/libxml.gn -new file mode 100644 -index 0000000..b42d044 ---- /dev/null -+++ b/engine/src/build/linux/unbundle/libxml.gn -@@ -0,0 +1,13 @@ -+# Copyright 2016 The Chromium Authors -+# Use of this source code is governed by a BSD-style license that can be -+# found in the LICENSE file. -+ -+import("//build/config/linux/pkg_config.gni") -+ -+pkg_config("system_libxml") { -+ packages = [ "libxml-2.0" ] -+} -+ -+source_set("libxml") { -+ public_configs = [ ":system_libxml" ] -+} -diff --git a/engine/src/build/linux/unbundle/replace_gn_files.py b/engine/src/build/linux/unbundle/replace_gn_files.py -new file mode 100755 -index 0000000..b8b24c6 ---- /dev/null -+++ b/engine/src/build/linux/unbundle/replace_gn_files.py -@@ -0,0 +1,101 @@ -+#!/usr/bin/env python3 -+# Copyright 2016 The Chromium Authors -+# Use of this source code is governed by a BSD-style license that can be -+# found in the LICENSE file. -+ -+""" -+Replaces GN files in tree with files from here that -+make the build use system libraries. -+""" -+ -+import argparse -+import os -+import shutil -+import sys -+ -+ -+REPLACEMENTS = { -+ # Use system libabsl_2xxx. These 18 shims MUST be used together. -+ 'absl_algorithm': 'flutter/third_party/abseil-cpp/absl/algorithm/BUILD.gn', -+ 'absl_base': 'flutter/third_party/abseil-cpp/absl/base/BUILD.gn', -+ 'absl_cleanup': 'flutter/third_party/abseil-cpp/absl/cleanup/BUILD.gn', -+ 'absl_container': 'flutter/third_party/abseil-cpp/absl/container/BUILD.gn', -+ 'absl_debugging': 'flutter/third_party/abseil-cpp/absl/debugging/BUILD.gn', -+ 'absl_flags': 'flutter/third_party/abseil-cpp/absl/flags/BUILD.gn', -+ 'absl_functional': 'flutter/third_party/abseil-cpp/absl/functional/BUILD.gn', -+ 'absl_hash': 'flutter/third_party/abseil-cpp/absl/hash/BUILD.gn', -+ 'absl_memory': 'flutter/third_party/abseil-cpp/absl/memory/BUILD.gn', -+ 'absl_meta': 'flutter/third_party/abseil-cpp/absl/meta/BUILD.gn', -+ 'absl_numeric': 'flutter/third_party/abseil-cpp/absl/numeric/BUILD.gn', -+ 'absl_random': 'flutter/third_party/abseil-cpp/absl/random/BUILD.gn', -+ 'absl_status': 'flutter/third_party/abseil-cpp/absl/status/BUILD.gn', -+ 'absl_strings': 'flutter/third_party/abseil-cpp/absl/strings/BUILD.gn', -+ 'absl_synchronization': 'flutter/third_party/abseil-cpp/absl/synchronization/BUILD.gn', -+ 'absl_time': 'flutter/third_party/abseil-cpp/absl/time/BUILD.gn', -+ 'absl_types': 'flutter/third_party/abseil-cpp/absl/types/BUILD.gn', -+ 'absl_utility': 'flutter/third_party/abseil-cpp/absl/utility/BUILD.gn', -+ # -+ 'fontconfig': 'third_party/fontconfig/BUILD.gn', -+ 'freetype2': 'flutter/third_party/freetype2/BUILD.gn', -+ 'harfbuzz': 'flutter/build/secondary/flutter/third_party/harfbuzz/BUILD.gn', -+ 'icu': 'flutter/third_party/icu/BUILD.gn', -+ 'libjpeg-turbo': 'flutter/third_party/libjpeg-turbo/BUILD.gn', -+ 'libpng': 'flutter/third_party/libpng/BUILD.gn', -+ 'libwebp': 'flutter/build/secondary/flutter/third_party/libwebp/BUILD.gn', -+ 'libxml': 'third_party/libxml/BUILD.gn', -+ 'libXNVCtrl': 'flutter/third_party/angle/src/third_party/libXNVCtrl/BUILD.gn', -+ 'sqlite': 'flutter/third_party/sqlite/BUILD.gn', -+ # Use system libSPIRV-Tools in Swiftshader. These two shims MUST be used together. -+ 'swiftshader-SPIRV-Headers': 'flutter/third_party/swiftshader/third_party/SPIRV-Headers/BUILD.gn', -+ 'swiftshader-SPIRV-Tools': 'flutter/third_party/swiftshader/third_party/SPIRV-Tools/BUILD.gn', -+ # Use system libSPIRV-Tools inside ANGLE. These two shims MUST be used together -+ # and can only be used if WebGPU is not compiled (use_dawn=false) -+ 'vulkan-SPIRV-Headers': 'flutter/third_party/vulkan-deps/spirv-headers/src/BUILD.gn', -+ 'vulkan-SPIRV-Tools': 'flutter/third_party/vulkan-deps/spirv-tools/src/BUILD.gn', -+ # -+ 'zlib': 'flutter/third_party/zlib/BUILD.gn', -+} -+ -+ -+def DoMain(argv): -+ my_dirname = os.path.dirname(__file__) -+ source_tree_root = os.path.abspath( -+ os.path.join(my_dirname, '..', '..', '..')) -+ -+ parser = argparse.ArgumentParser() -+ parser.add_argument('--system-libraries', nargs='*', default=[]) -+ parser.add_argument('--undo', action='store_true') -+ -+ args = parser.parse_args(argv) -+ -+ handled_libraries = set() -+ for lib, path in REPLACEMENTS.items(): -+ if lib not in args.system_libraries: -+ continue -+ handled_libraries.add(lib) -+ -+ if args.undo: -+ # Restore original file, and also remove the backup. -+ # This is meant to restore the source tree to its original state. -+ os.rename(os.path.join(source_tree_root, path + '.bak'), -+ os.path.join(source_tree_root, path)) -+ else: -+ # Create a backup copy for --undo. -+ shutil.copyfile(os.path.join(source_tree_root, path), -+ os.path.join(source_tree_root, path + '.bak')) -+ -+ # Copy the GN file from directory of this script to target path. -+ shutil.copyfile(os.path.join(my_dirname, '%s.gn' % lib), -+ os.path.join(source_tree_root, path)) -+ -+ unhandled_libraries = set(args.system_libraries) - handled_libraries -+ if unhandled_libraries: -+ print('Unrecognized system libraries requested: %s' % ', '.join( -+ sorted(unhandled_libraries)), file=sys.stderr) -+ return 1 -+ -+ return 0 -+ -+ -+if __name__ == '__main__': -+ sys.exit(DoMain(sys.argv[1:])) -diff --git a/engine/src/build/linux/unbundle/sqlite.gn b/engine/src/build/linux/unbundle/sqlite.gn -new file mode 100644 -index 0000000..e6c653d ---- /dev/null -+++ b/engine/src/build/linux/unbundle/sqlite.gn -@@ -0,0 +1,20 @@ -+# Copyright 2013 The Flutter Authors. All rights reserved. -+# Use of this source code is governed by a BSD-style license that can be -+# found in the LICENSE file. -+ -+import("//build/config/linux/pkg_config.gni") -+import("//build/shim_headers.gni") -+ -+pkg_config("system_sqlite") { -+ packages = [ "sqlite3" ] -+} -+ -+shim_headers("sqlite_shim") { -+ root_path = "//third_party/sqlite" -+ headers = [ "sqlite3.h" ] -+} -+ -+source_set("sqlite") { -+ public_deps = [ ":sqlite_shim" ] -+ public_configs = [ ":system_sqlite" ] -+} -diff --git a/engine/src/build/linux/unbundle/zlib.gn b/engine/src/build/linux/unbundle/zlib.gn -new file mode 100644 -index 0000000..6daf3c6 ---- /dev/null -+++ b/engine/src/build/linux/unbundle/zlib.gn -@@ -0,0 +1,72 @@ -+# Copyright 2016 The Chromium Authors -+# Use of this source code is governed by a BSD-style license that can be -+# found in the LICENSE file. -+ -+import("//build/shim_headers.gni") -+ -+declare_args() { -+ use_zlib_ng = false -+} -+ -+if (use_zlib_ng) { -+ _suffix = "-ng" -+} else { -+ _suffix = "" -+} -+ -+shim_headers("zlib_shim") { -+ root_path = "." -+ headers = [ "zlib.h%zlib$_suffix.h" ] -+ additional_includes = [ "flutter", "flutter/third_party" ] -+} -+ -+config("system_zlib") { -+ defines = [ "USE_SYSTEM_ZLIB=1" ] -+} -+ -+config("zlib_config") { -+ configs = [ ":system_zlib" ] -+} -+ -+source_set("zlib") { -+ public_deps = [ ":zlib_shim" ] -+ libs = [ "z$_suffix" ] -+ public_configs = [ ":system_zlib" ] -+} -+ -+shim_headers("minizip_shim") { -+ root_path = "contrib" -+ headers = [ -+ "minizip/crypt.h", -+ "minizip/ioapi.h", -+ "minizip/iowin32.h", -+ "minizip/mztools.h", -+ "minizip/unzip.h", -+ "minizip/zip.h", -+ ] -+} -+ -+source_set("minizip") { -+ deps = [ ":minizip_shim" ] -+ libs = [ "minizip" ] -+} -+ -+static_library("zip") { -+ sources = [ -+ "google/zip.cc", -+ "google/zip.h", -+ "google/zip_internal.cc", -+ "google/zip_internal.h", -+ "google/zip_reader.cc", -+ "google/zip_reader.h", -+ ] -+ deps = [ ":minizip" ] -+} -+ -+static_library("compression_utils") { -+ sources = [ -+ "google/compression_utils.cc", -+ "google/compression_utils.h", -+ ] -+ deps = [ ":zlib" ] -+} -diff --git a/engine/src/build/shim_headers.gni b/engine/src/build/shim_headers.gni -new file mode 100644 -index 0000000..1d24e0a ---- /dev/null -+++ b/engine/src/build/shim_headers.gni -@@ -0,0 +1,42 @@ -+# Copyright 2016 The Chromium Authors -+# Use of this source code is governed by a BSD-style license that can be -+# found in the LICENSE file. -+template("shim_headers") { -+ action_name = "gen_${target_name}" -+ config_name = "${target_name}_config" -+ shim_headers_path = "${root_gen_dir}/shim_headers/${target_name}" -+ config(config_name) { -+ include_dirs = [ shim_headers_path ] -+ if (defined(invoker.additional_includes)) { -+ foreach(i, invoker.additional_includes) { -+ include_dirs += [ shim_headers_path + "/" + i ] -+ } -+ } -+ } -+ action(action_name) { -+ script = "//tools/generate_shim_headers.py" -+ args = [ -+ "--generate", -+ "--headers-root", -+ rebase_path(invoker.root_path), -+ "--output-directory", -+ rebase_path(shim_headers_path), -+ ] -+ if (defined(invoker.prefix)) { -+ args += [ -+ "--prefix", -+ invoker.prefix, -+ ] -+ } -+ args += invoker.headers -+ outputs = [] -+ foreach(h, invoker.headers) { -+ outputs += [ shim_headers_path + "/" + -+ rebase_path(invoker.root_path, "//") + "/" + h ] -+ } -+ } -+ group(target_name) { -+ public_deps = [ ":${action_name}" ] -+ all_dependent_configs = [ ":${config_name}" ] -+ } -+} -diff --git a/engine/src/tools/generate_shim_headers.py b/engine/src/tools/generate_shim_headers.py -new file mode 100644 -index 0000000..aaa16f8 ---- /dev/null -+++ b/engine/src/tools/generate_shim_headers.py -@@ -0,0 +1,116 @@ -+#!/usr/bin/env python -+# Copyright 2012 The Chromium Authors -+# Use of this source code is governed by a BSD-style license that can be -+# found in the LICENSE file. -+ -+""" -+Generates shim headers that mirror the directory structure of bundled headers, -+but just forward to the system ones. -+ -+This allows seamless compilation against system headers with no changes -+to our source code. -+""" -+ -+ -+import optparse -+import os.path -+import sys -+ -+ -+SHIM_TEMPLATE = """ -+#if defined(OFFICIAL_BUILD) -+#error shim headers must not be used in official builds! -+#endif -+""" -+ -+ -+def GeneratorMain(argv): -+ parser = optparse.OptionParser() -+ parser.add_option('--headers-root', action='append') -+ parser.add_option('--define', action='append') -+ parser.add_option('--output-directory') -+ parser.add_option('--prefix', default='') -+ parser.add_option('--use-include-next', action='store_true') -+ parser.add_option('--outputs', action='store_true') -+ parser.add_option('--generate', action='store_true') -+ -+ options, args = parser.parse_args(argv) -+ -+ if not options.headers_root: -+ parser.error('Missing --headers-root parameter.') -+ if not options.output_directory: -+ parser.error('Missing --output-directory parameter.') -+ if not args: -+ parser.error('Missing arguments - header file names.') -+ -+ source_tree_root = os.path.abspath( -+ os.path.join(os.path.dirname(__file__), '..')) -+ -+ for root in options.headers_root: -+ target_directory = os.path.join( -+ options.output_directory, -+ os.path.relpath(root, source_tree_root)) -+ if options.generate and not os.path.exists(target_directory): -+ os.makedirs(target_directory) -+ -+ for header_spec in args: -+ if ';' in header_spec: -+ (header_filename, -+ include_before, -+ include_after) = header_spec.split(';', 2) -+ else: -+ header_filename = header_spec -+ include_before = '' -+ include_after = '' -+ if '%' in header_filename: -+ (header_filename, -+ upstream_header_filename) = header_filename.split('%', 1) -+ else: -+ upstream_header_filename = header_filename -+ if options.outputs: -+ yield os.path.join(target_directory, header_filename) -+ if options.generate: -+ header_path = os.path.join(target_directory, header_filename) -+ header_dir = os.path.dirname(header_path) -+ if not os.path.exists(header_dir): -+ os.makedirs(header_dir) -+ with open(header_path, 'w') as f: -+ f.write(SHIM_TEMPLATE) -+ -+ if options.define: -+ for define in options.define: -+ key, value = define.split('=', 1) -+ # This non-standard push_macro extension is supported -+ # by compilers we support (GCC, clang). -+ f.write('#pragma push_macro("%s")\n' % key) -+ f.write('#undef %s\n' % key) -+ f.write('#define %s %s\n' % (key, value)) -+ -+ if include_before: -+ for header in include_before.split(':'): -+ f.write('#include %s\n' % header) -+ -+ include_target = options.prefix + upstream_header_filename -+ if options.use_include_next: -+ f.write('#include_next <%s>\n' % include_target) -+ else: -+ f.write('#include <%s>\n' % include_target) -+ -+ if include_after: -+ for header in include_after.split(':'): -+ f.write('#include %s\n' % header) -+ -+ if options.define: -+ for define in options.define: -+ key, value = define.split('=', 1) -+ # This non-standard pop_macro extension is supported -+ # by compilers we support (GCC, clang). -+ f.write('#pragma pop_macro("%s")\n' % key) -+ -+ -+def DoMain(argv): -+ return '\n'.join(GeneratorMain(argv)) -+ -+ -+if __name__ == '__main__': -+ DoMain(sys.argv[1:]) ---- /dev/null -+++ b/engine/src/build/linux/unbundle/vulkan-SPIRV-Headers.gn -@@ -0,0 +1,19 @@ -+# This shim can only be used if you build Chromium without DAWN -+ -+import("//build/shim_headers.gni") -+ -+shim_headers("vulkan-SPIRV-Headers_shim") { -+ root_path = "include" -+ headers = [ -+ "spirv/unified1/GLSL.std.450.h", -+ "spirv/unified1/NonSemanticClspvReflection.h", -+ "spirv/unified1/NonSemanticDebugPrintf.h", -+ "spirv/unified1/OpenCL.std.h", -+ "spirv/unified1/spirv.h", -+ "spirv/unified1/spirv.hpp", -+ ] -+} -+ -+source_set("spv_headers") { -+ deps = [ ":vulkan-SPIRV-Headers_shim" ] -+} ---- /dev/null -+++ b/engine/src/build/linux/unbundle/vulkan-SPIRV-Tools.gn -@@ -0,0 +1,73 @@ -+# This shim can only be used if you build Chromium without DAWN -+ -+import("//build/config/linux/pkg_config.gni") -+import("//build/shim_headers.gni") -+ -+pkg_config("spvtools_internal_config") { -+ packages = [ "SPIRV-Tools" ] -+} -+ -+shim_headers("vulkan-SPIRV-Tools_shim") { -+ root_path = "include" -+ headers = [ -+ "spirv-tools/instrument.hpp", -+ "spirv-tools/libspirv.h", -+ "spirv-tools/libspirv.hpp", -+ "spirv-tools/linker.hpp", -+ "spirv-tools/optimizer.hpp", -+ ] -+} -+ -+source_set("SPIRV-Tools") { -+ deps = [ ":vulkan-SPIRV-Tools_shim" ] -+ public_configs = [ ":spvtools_internal_config" ] -+} -+ -+source_set("spvtools") { -+ deps = [ ":vulkan-SPIRV-Tools_shim" ] -+ public_configs = [ ":spvtools_internal_config" ] -+} -+ -+source_set("spvtools_core_enums_unified1") { -+ deps = [ ":vulkan-SPIRV-Tools_shim" ] -+ public_configs = [ ":spvtools_internal_config" ] -+} -+ -+source_set("spvtools_core_tables_unified1") { -+ deps = [ ":vulkan-SPIRV-Tools_shim" ] -+ public_configs = [ ":spvtools_internal_config" ] -+} -+ -+source_set("spvtools_headers") { -+ deps = [ ":vulkan-SPIRV-Tools_shim" ] -+ public_configs = [ ":spvtools_internal_config" ] -+} -+ -+source_set("spvtools_language_header_cldebuginfo100") { -+ deps = [ ":vulkan-SPIRV-Tools_shim" ] -+ public_configs = [ ":spvtools_internal_config" ] -+} -+ -+source_set("spvtools_language_header_debuginfo") { -+ deps = [ ":vulkan-SPIRV-Tools_shim" ] -+ public_configs = [ ":spvtools_internal_config" ] -+} -+ -+source_set("spvtools_language_header_vkdebuginfo100") { -+ deps = [ ":vulkan-SPIRV-Tools_shim" ] -+ public_configs = [ ":spvtools_internal_config" ] -+} -+ -+source_set("spvtools_opt") { -+ deps = [ ":vulkan-SPIRV-Tools_shim" ] -+ public_configs = [ ":spvtools_internal_config" ] -+} -+ -+config("spvtools_public_config") { -+ configs = [ ":spvtools_internal_config" ] -+} -+ -+source_set("spvtools_val") { -+ deps = [ ":vulkan-SPIRV-Tools_shim" ] -+ public_configs = [ ":spvtools_internal_config" ] -+} diff --git a/pkgs/development/compilers/flutter/engine/source.nix b/pkgs/development/compilers/flutter/engine/source.nix index 81fe84f21225..e95828c0b8ab 100644 --- a/pkgs/development/compilers/flutter/engine/source.nix +++ b/pkgs/development/compilers/flutter/engine/source.nix @@ -1,60 +1,73 @@ { + lib, + callPackage, curlMinimal, + pkg-config, gitMinimal, python312, - depot_tools, runCommand, writeText, cacert, + flutterVersion, version, - engineHash ? "", - cipd, - writableTmpDirAsHomeHook, -}: - + hashes, + url, + hostPlatform, + targetPlatform, + buildPlatform, + ... +}@pkgs: let - gclient = writeText ".gclient" '' - solutions = [ - { - "name": ".", - "url": "https://github.com/flutter/flutter.git@${version}", - "managed": False, - "custom_vars": { - "download_dart_sdk": False, - "download_esbuild": False, - "download_android_deps": False, - "download_jdk": False, - "download_linux_deps": False, - "download_windows_deps": False, - "download_fuchsia_deps": False, - "checkout_llvm": False, - "setup_githooks": False, - "release_candidate": True, - }, - } - ] - target_os = [ "linux" ] - target_cpu = [ "x64", "arm64", "riscv64" ] + target-constants = callPackage ./constants.nix { platform = targetPlatform; }; + build-constants = callPackage ./constants.nix { platform = buildPlatform; }; + tools = pkgs.tools or (callPackage ./tools.nix { inherit hostPlatform buildPlatform; }); + + boolOption = value: if value then "True" else "False"; + + gclient = writeText "flutter-${version}.gclient" '' + solutions = [{ + "managed": False, + "name": ".", + "url": "${url}", + "custom_vars": { + "download_fuchsia_deps": False, + "download_android_deps": False, + "download_linux_deps": ${boolOption targetPlatform.isLinux}, + "setup_githooks": False, + "download_esbuild": False, + "download_dart_sdk": True, + "host_cpu": "${build-constants.alt-arch}", + "host_os": "${build-constants.alt-os}", + }, + }] + target_os_only = True + target_os = [ + "${target-constants.alt-os}" + ] + target_cpu_only = True + target_cpu = [ + "${target-constants.alt-arch}" + ] ''; in -runCommand "flutter-engine-source-${version}" +runCommand "flutter-engine-source-${version}-${buildPlatform.system}-${targetPlatform.system}" { pname = "flutter-engine-source"; inherit version; nativeBuildInputs = [ curlMinimal + pkg-config gitMinimal - cipd + tools.cipd (python312.withPackages ( ps: with ps; [ httplib2 six ] )) - writableTmpDirAsHomeHook ]; env = { @@ -68,26 +81,23 @@ runCommand "flutter-engine-source-${version}" outputHashAlgo = "sha256"; outputHashMode = "recursive"; - outputHash = engineHash; + outputHash = + (hashes."${buildPlatform.system}" or { })."${targetPlatform.system}" + or (throw "Hash not set for ${targetPlatform.system} on ${buildPlatform.system}"); } '' - mkdir --parents source - cd source - cp ${gclient} .gclient - export PATH=$PATH:${depot_tools} - python3 ${depot_tools}/gclient.py sync --no-history --shallow --nohooks --jobs=$NIX_BUILD_CORES - rm --recursive --force engine/src/flutter/buildtools engine/src/flutter/third_party/dart/tools/sdks/dart-sdk engine/src/flutter/third_party/gn third_party/ninja - rm --recursive --force engine/src/flutter/third_party/swiftshader/.git - rm --recursive --force engine/src/flutter/third_party/swiftshader/tests - rm --recursive --force engine/src/flutter/third_party/swiftshader/docs - rm --recursive --force engine/src/flutter/third_party/swiftshader/infra - rm --recursive --force engine/src/flutter/third_party/swiftshader/.vscode - rm --recursive --force engine/src/flutter/third_party/swiftshader/llvm-16.0 - rm --recursive --force engine/src/flutter/third_party/swiftshader/llvm-10.0 - rm --recursive --force engine/src/flutter/third_party/llvm-project - find engine/src/flutter/third_party/swiftshader/third_party -type d \( -name "test" -o -name "tests" -o -name "unittests" \) -prune -exec rm --recursive --force {} + - find engine/src/flutter/third_party/swiftshader -type f \( -name "*.o" -o -name "*.a" -o -name "*.so" \) -delete - find . -type d \( -name ".git" -o -name ".cipd" \) -prune -exec rm --recursive --force {} + - find . -type f -name ".gclient*" -delete - cp --recursive . $out + source ${../../../../build-support/fetchgit/deterministic-git} + export -f clean_git + export -f make_deterministic_repo + + mkdir --parents flutter + cp ${gclient} flutter/.gclient + cd flutter + export PATH=$PATH:${tools.depot_tools} + python3 ${tools.depot_tools}/gclient.py sync --no-history --shallow --nohooks -j $NIX_BUILD_CORES + mv engine $out + + find $out -name '.git' -exec rm --recursive --force {} \; || true + + rm --recursive $out/src/flutter/{buildtools,prebuilts,third_party/swiftshader,third_party/gn/.versions,third_party/dart/tools/sdks/dart-sdk} '' diff --git a/pkgs/development/compilers/flutter/engine/tools.nix b/pkgs/development/compilers/flutter/engine/tools.nix new file mode 100644 index 000000000000..fcc841eaae47 --- /dev/null +++ b/pkgs/development/compilers/flutter/engine/tools.nix @@ -0,0 +1,103 @@ +{ + stdenv, + buildPlatform, + hostPlatform, + callPackage, + fetchgit, + fetchurl, + writeText, + runCommand, + darwin, + writeShellScriptBin, + depot_toolsCommit ? "580b4ff3f5cd0dcaa2eacda28cefe0f45320e8f7", + depot_toolsHash ? "sha256-k+XQSYJQYc9vAUjwrRxaAlX/sK74W45m5byS31hSpwc=", + cipdCommit ? "7120a6a515089a3ff5d1f61ff4ee17750dc038af", + cipdHashes ? { + "linux-386" = "sha256-CshLfw49uglvWNwWE4K7ucBUF+IZlXDaIQsTXtFEJ8U="; + "linux-amd64" = "sha256-rxpI+HqfZiOYvzyyQ9P93s70feDmrLgbm4Xh3o88LwQ="; + "linux-arm64" = "sha256-XTTKbw1Q2lin+pf7VADalpBy3AWMTEd7yItsE/pePxw="; + "linux-armv6l" = "sha256-e5qe2KcguRLPuAq6wOG7A3YghHHon+oHY3fRLhU+e9E="; + "linux-loong64" = "sha256-LPTK4Ly173jac+cSGrsWw0ajrWEYepeJDGtP/7Xh528="; + "linux-mips" = "sha256-nR5khvHbAijs0MEr8+UgbuHTRNQAsMOyGTU/DI3K5Os="; + "linux-mips64" = "sha256-4a/zD1CrC/sxtBHqSRpom0SYVoN38bz3FAM40OSdVI0="; + "linux-mips64le" = "sha256-JnfKuBGLHYNLnRieS0KV8sYaTjh2rbp1yijvNOrU0FE="; + "linux-mipsle" = "sha256-nWqoay8c4faRk2+G5TvwbsbnndjTU4oglOTfhSC+TLQ="; + "linux-ppc64" = "sha256-pjeI/bx0i+QchQLhNB88ACPI34SrFvvFA01F5Nb16Ys="; + "linux-ppc64le" = "sha256-ZDMDwrP1zYlOI1hdbd3iZwKr59v/8CWj2sZ1RdosAiE="; + "linux-riscv64" = "sha256-O2EvOnjwbNssB7FtbK44yFcXfkrh9HOsPs/HF+uD2m8="; + "linux-s390x" = "sha256-BKeNDtuc9IkmV4GpuZcdsGc2F039KQeLdozxh7u+FDw="; + "macos-amd64" = "sha256-ZKBm8PbKjg4t0jIBPRKAv85L8eZOwJ1wBvh3cRSqHOI="; + "macos-arm64" = "sha256-AvjJp7JF05CetYDnwNJneAsotm1vBHWqB/vCdcIohoU="; + "windows-386" = "sha256-AVLbWh+WtJKynFDS6IfhuvYudw4Ow9s6w2JyDWG/2CI="; + "windows-amd64" = "sha256-puAQhiPGuwzkElWiBdTRGWOaUR2AIP7Qv9S3pwEY74E="; + "windows-arm64" = "sha256-4wxOMG+zvkM7gjhAiQvvNqNS0AamKKJdaBM/+rRxgXk="; + }, +}: +let + constants = callPackage ./constants.nix { platform = buildPlatform; }; + host-constants = callPackage ./constants.nix { platform = hostPlatform; }; + stdenv-constants = callPackage ./constants.nix { platform = stdenv.hostPlatform; }; +in +{ + depot_tools = fetchgit { + url = "https://chromium.googlesource.com/chromium/tools/depot_tools.git"; + rev = depot_toolsCommit; + hash = depot_toolsHash; + }; + + cipd = + let + unwrapped = + runCommand "cipd-${cipdCommit}" + { + src = fetchurl { + name = "cipd-${cipdCommit}-unwrapped"; + url = "https://chrome-infra-packages.appspot.com/client?platform=${stdenv-constants.platform}&version=git_revision:${cipdCommit}"; + hash = cipdHashes.${stdenv-constants.platform}; + }; + } + '' + mkdir --parents $out/bin + install --mode=0755 $src $out/bin/cipd + ''; + in + writeShellScriptBin "cipd" '' + params=$@ + + if [[ "$1" == "ensure" ]]; then + shift 1 + params="ensure" + + while [ "$#" -ne 0 ]; do + if [[ "$1" == "-ensure-file" ]]; then + ensureFile="$2" + shift 2 + params="$params -ensure-file $ensureFile" + + sed -i 's/''${platform}/${host-constants.platform}/g' "$ensureFile" + sed -i 's/gn\/gn\/${stdenv-constants.platform}/gn\/gn\/${constants.platform}/g' "$ensureFile" + + if grep flutter/java/openjdk "$ensureFile" >/dev/null; then + sed -i '/src\/flutter\/third_party\/java\/openjdk/,+2 d' "$ensureFile" + fi + else + params="$params $1" + shift 1 + fi + done + fi + + exec ${unwrapped}/bin/cipd $params + ''; + + vpython = + pythonPkg: + runCommand "vpython3" { } '' + mkdir --parents $out/bin + ln --symbolic ${pythonPkg}/bin/python $out/bin/vpython3 + ''; + + xcode-select = writeShellScriptBin "xcode-select" '' + echo ${darwin.xcode}/Contents/Developer + ''; +} diff --git a/pkgs/development/compilers/flutter/flutter-tools.nix b/pkgs/development/compilers/flutter/flutter-tools.nix index 4c40870dbf6a..e99b347c69af 100644 --- a/pkgs/development/compilers/flutter/flutter-tools.nix +++ b/pkgs/development/compilers/flutter/flutter-tools.nix @@ -1,74 +1,86 @@ { - buildDartApplication, - dart, - flutterSource, lib, - patches, - pubspecLock, - runCommand, stdenv, - version, + systemPlatform, + buildDartApplication, + runCommand, + writeTextFile, + git, which, - writableTmpDirAsHomeHook, + dart, + version, + flutterSrc, + patches ? [ ], + pubspecLock, + engineVersion, }: let - dartEntryPoints = { - "flutter_tools.snapshot" = "bin/flutter_tools.dart"; + # https://github.com/flutter/flutter/blob/17c92b7ba68ea609f4eb3405211d019c9dbc4d27/engine/src/flutter/tools/engine_tool/test/commands/stamp_command_test.dart#L125 + engine_stamp = writeTextFile { + name = "engine_stamp"; + text = builtins.toJSON { + build_date = "2025-06-27T12:30:00.000Z"; + build_time_ms = 1751027400000; + git_revision = engineVersion; + git_revision_date = "2025-06-27T17:11:53-07:00"; + content_hash = "1111111111111111111111111111111111111111"; + }; }; + + dartEntryPoints."flutter_tools.snapshot" = "bin/flutter_tools.dart"; in -buildDartApplication.override { inherit dart; } (finalAttrs: { - __structuredAttrs = true; - strictDeps = true; +buildDartApplication.override { inherit dart; } { pname = "flutter-tools"; - inherit - version - patches - pubspecLock - dartEntryPoints - ; - - src = flutterSource; - - sourceRoot = "${finalAttrs.src.name}/packages/flutter_tools"; - + inherit version dartEntryPoints; dartOutputType = "jit-snapshot"; - dartCompileFlags = [ "--define=NIX_FLUTTER_HOST_PLATFORM=${stdenv.hostPlatform.system}" ]; + src = flutterSrc; + sourceRoot = "${flutterSrc.name}/packages/flutter_tools"; + inherit patches; # The given patches are made for the entire SDK source tree. prePatch = '' chmod --recursive u+w "../.." pushd "../.." ''; - postPatch = '' - echo -n "${version}" > version popd '' + # Use arm64 instead of arm64e. + lib.optionalString stdenv.hostPlatform.isDarwin '' substituteInPlace lib/src/ios/xcodeproj.dart \ - --replace-fail "arm64e" "arm64" + --replace-fail arm64e arm64 + '' + # need network + + lib.optionalString (lib.versionAtLeast version "3.35.0") '' + cp ${engine_stamp} ../../bin/cache/engine_stamp.json + substituteInPlace lib/src/flutter_cache.dart \ + --replace-fail "registerArtifact(FlutterEngineStamp(this, logger));" "" ''; # When the JIT snapshot is being built, the application needs to run. # It attempts to generate configuration files, and relies on a few external # tools. nativeBuildInputs = [ + git which - writableTmpDirAsHomeHook ]; - preConfigure = '' - export FLUTTER_ROOT=$(realpath ../../) + export HOME=. + export FLUTTER_ROOT="$(realpath ../../)" mkdir --parents "$FLUTTER_ROOT/bin/cache" - ln --symbolic "${dart}" "$FLUTTER_ROOT/bin/cache/dart-sdk" + ln --symbolic '${dart}' "$FLUTTER_ROOT/bin/cache/dart-sdk" ''; + 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. postInstall = '' - rm "$out"/${builtins.concatStringsSep " " (builtins.attrNames dartEntryPoints)} + pushd "$out" + rm ${builtins.concatStringsSep " " (builtins.attrNames dartEntryPoints)} + popd ''; sdkSourceBuilders = { @@ -78,7 +90,7 @@ buildDartApplication.override { inherit dart; } (finalAttrs: { runCommand "dart-sdk-${name}" { passthru.packageRoot = "."; } '' for path in '${dart}/pkg/${name}'; do if [ -d "$path" ]; then - ln --symbolic "$path" "$out" + ln -s "$path" "$out" break fi done @@ -89,4 +101,6 @@ buildDartApplication.override { inherit dart; } (finalAttrs: { fi ''; }; -}) + + inherit pubspecLock; +} diff --git a/pkgs/development/compilers/flutter/flutter.nix b/pkgs/development/compilers/flutter/flutter.nix index eaa6ef2f5bf3..80bc56cd149d 100644 --- a/pkgs/development/compilers/flutter/flutter.nix +++ b/pkgs/development/compilers/flutter/flutter.nix @@ -1,358 +1,221 @@ { - scope, - lib, - stdenv, - dart, - autoPatchelfHook, - flutterSource, - flutter-tools, - callPackage, - host-artifacts, - artifacts ? host-artifacts, + useNixpkgsEngine ? false, version, engineVersion, - channel, - dartVersion, + engineHashes ? { }, + engineUrl ? "https://github.com/flutter/flutter.git@${engineVersion}", + enginePatches ? [ ], + engineRuntimeModes ? [ + "release" + "debug" + ], + engineSwiftShaderHash, + engineSwiftShaderRev, patches, + channel, + dart, + src, + pubspecLock, + artifactHashes ? null, + lib, + stdenv, + callPackage, makeWrapper, + darwin, gitMinimal, which, jq, - unzip, - gnutar, - pkg-config, - atk, - cairo, - gdk-pixbuf, - glib, - gtk3, - harfbuzz, - libepoxy, - pango, - libx11, - xorgproto, - libdeflate, - zlib, - cmake, - ninja, - clang, - darwin, - cipd, - depot_tools, - wrapGAppsHook3, writableTmpDirAsHomeHook, - fd, - cacert, - moreutils, - writeTextFile, - supportedTargetFlutterPlatforms, - extraPkgConfigPackages ? [ ], - extraLibraries ? [ ], - extraIncludes ? [ ], - extraCxxFlags ? [ ], - extraCFlags ? [ ], - extraLinkerFlags ? [ ], -}: + flutterTools ? null, +}@args: let - appRuntimeDeps = - lib.optionals - (stdenv.hostPlatform.isLinux && (builtins.elem "linux" supportedTargetFlutterPlatforms)) - [ - atk - cairo - gdk-pixbuf - glib - gtk3 - harfbuzz - libepoxy - pango - libx11 - libdeflate - ]; - - # Development packages required for compilation. - appBuildDeps = - let - # https://discourse.nixos.org/t/handling-transitive-c-dependencies/5942/3 - deps = - pkg: lib.filter lib.isDerivation ((pkg.buildInputs or [ ]) ++ (pkg.propagatedBuildInputs or [ ])); - withKey = pkg: { - key = pkg.outPath; - val = pkg; - }; - collect = pkg: lib.map withKey ([ pkg ] ++ deps pkg); - in - lib.map (e: e.val) ( - lib.genericClosure { - startSet = lib.map withKey appRuntimeDeps; - operator = item: collect item.val; + engine = + if args.useNixpkgsEngine or false then + callPackage ./engine/default.nix { + inherit (args) dart; + dartSdkVersion = args.dart.version; + flutterVersion = version; + swiftshaderRev = engineSwiftShaderRev; + swiftshaderHash = engineSwiftShaderHash; + version = engineVersion; + hashes = engineHashes; + url = engineUrl; + patches = enginePatches; + runtimeModes = engineRuntimeModes; } - ); + else + null; - appStaticBuildDeps = - (lib.optionals - (stdenv.hostPlatform.isLinux && (builtins.elem "linux" supportedTargetFlutterPlatforms)) - [ - libx11 - xorgproto - zlib - ] - ) - ++ extraLibraries; + dart = if args.useNixpkgsEngine or false then engine.dart else args.dart; - # Tools used by the Flutter SDK to compile applications. - buildTools = - lib.optionals - (stdenv.hostPlatform.isLinux && (builtins.elem "linux" supportedTargetFlutterPlatforms)) - [ - pkg-config - cmake - ninja - clang - ]; + flutterTools = + args.flutterTools or (callPackage ./flutter-tools.nix { + inherit + dart + engineVersion + patches + pubspecLock + version + ; + flutterSrc = src; + systemPlatform = stdenv.hostPlatform.system; + }); - # Nix-specific compiler configuration. - pkgConfigPackages = map (lib.getOutput "dev") (appBuildDeps ++ extraPkgConfigPackages); + unwrapped = stdenv.mkDerivation { + name = "flutter-${version}-unwrapped"; + inherit src patches version; - includeFlags = map (pkg: "-isystem ${lib.getOutput "dev" pkg}/include") ( - appStaticBuildDeps ++ extraIncludes - ); + nativeBuildInputs = [ + makeWrapper + jq + gitMinimal + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ]; + strictDeps = true; - linkerFlags = - (map (pkg: "-rpath,${lib.getOutput "lib" pkg}/lib") appRuntimeDeps) ++ extraLinkerFlags; -in -stdenv.mkDerivation (finalAttrs: { - __structuredAttrs = true; - strictDeps = true; - pname = "flutter"; - inherit version patches; - - src = flutterSource; - - nativeBuildInputs = [ - moreutils - makeWrapper - jq - unzip - gnutar - ] - ++ - lib.optionals - (stdenv.hostPlatform.isLinux && (builtins.elem "linux" supportedTargetFlutterPlatforms)) - [ - wrapGAppsHook3 - autoPatchelfHook - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ]; - - buildInputs = appRuntimeDeps; - - postPatch = '' - patchShebangs --build ./bin/ - patchShebangs packages/flutter_tools/bin - ''; - - preConfigure = '' - if [ "$(< bin/internal/engine.version)" != '${engineVersion}' ]; then - echo 1>&2 "The given engine version (${engineVersion}) does not match the version required by the Flutter SDK ($(< bin/internal/engine.version))." - exit 1 - fi - ''; - - buildPhase = '' - runHook preBuild - - mkdir --parents bin/cache - '' - # Add a flutter_tools artifact stamp, and build a snapshot. - # This is the Flutter CLI application. - + '' - echo "nixpkgs000000000000000000000000000000000" > bin/cache/flutter_tools.stamp - ln --symbolic ${flutter-tools}/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 --parents packages/flutter_tools/.dart_tool - ln --symbolic ${flutter-tools.pubcache}/package_config.json packages/flutter_tools/.dart_tool/package_config.json - '' - + lib.optionalString (lib.versionOlder version "3.33") '' - echo -n "${version}" > version - '' - + '' - cp ${ - writeTextFile { - name = "flutter.version.json"; - text = builtins.toJSON { - flutterVersion = version; - frameworkVersion = version; - channel = channel; - repositoryUrl = "https://github.com/flutter/flutter.git"; - frameworkRevision = "nixpkgs000000000000000000000000000000000"; - frameworkCommitDate = "1970-01-01 00:00:00"; - engineRevision = engineVersion; - dartSdkVersion = dartVersion; - }; - } - } bin/cache/flutter.version.json - jq --arg version "$(jq --raw-output .version ${dart}/bin/resources/devtools/version.json)" '. + {devToolsVersion: $version}' bin/cache/flutter.version.json | sponge bin/cache/flutter.version.json - echo "${engineVersion}" > bin/cache/engine.stamp - '' - # Suppress a small error now that `.gradle`'s location changed. - # Location changed because of the patch "gradle-flutter-tools-wrapper.patch". - + '' - mkdir --parents packages/flutter_tools/gradle/.gradle - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - ${lib.concatMapStrings (artifact: '' - ${lib.optionalString ( - artifact.target == "bin/cache/flutter_web_sdk" - ) ''rm --recursive --force "$out/${artifact.target}"''} - ${ - if - ( - (lib.hasSuffix ".zip" artifact.path) - || (lib.hasSuffix ".tar.gz" artifact.path) - || (lib.hasSuffix ".tgz" artifact.path) - ) - then - '' - temp_path=$(mktemp -d) - ${lib.optionalString (lib.hasSuffix ".zip" artifact.path) ''unzip -o "${artifact.path}" -d "$temp_path"''} - ${lib.optionalString ( - (lib.hasSuffix ".tar.gz" artifact.path) || (lib.hasSuffix ".tgz" artifact.path) - ) ''tar --extract --gzip --file "${artifact.path}" --directory "$temp_path"''} - '' - else - '' - temp_path="${artifact.path}" - '' - } - content_count=$(ls --almost-all "$temp_path" | wc --lines) - target_path="$out/${artifact.target}" - if [ "$content_count" -eq 1 ] && [ ! -e "$target_path" ]; then - mkdir --parents "$(dirname "$target_path")" - cp --recursive --no-target-directory "$temp_path"/* "$target_path" - else - mkdir --parents "$target_path" - cp --recursive "$temp_path"/* "$target_path"/ + preConfigure = '' + if [ "$(< bin/internal/engine.version)" != '${engineVersion}' ]; then + echo 1>&2 "The given engine version (${engineVersion}) does not match the version required by the Flutter SDK ($(< bin/internal/engine.version))." + exit 1 fi - chmod --recursive +w "$target_path" - if [ "${artifact.path}" != "$temp_path" ]; then - rm --recursive --force "$temp_path" - fi - '') artifacts} - - cp --recursive . $out - ln --symbolic --force ${dart} $out/bin/cache/dart-sdk - '' - # The regular launchers are designed to download/build/update SDK - # components, and are not very useful in Nix. - # Replace them with simple links and wrappers. - + '' - rm $out/bin/{dart,flutter} - ln --symbolic ${lib.getExe dart} $out/bin/dart - - for path in ${ - builtins.concatStringsSep " " ( - builtins.foldl' ( - paths: pkg: - paths - ++ (map (directory: "'${pkg}/${directory}/pkgconfig'") [ - "lib" - "share" - ]) - ) [ ] pkgConfigPackages - ) - }; do - addToSearchPath FLUTTER_PKG_CONFIG_PATH "$path" - done - - makeWrapper ${lib.getExe dart} $out/bin/flutter \ - --set-default FLUTTER_ROOT $out \ - --set-default ANDROID_EMULATOR_USE_SYSTEM_LIBS 1 \ - --set FLUTTER_ALREADY_LOCKED true \ - --suffix PATH : '${ - lib.makeBinPath ( - [ - depot_tools - cipd - which - ] - ++ buildTools - ) - }' \ - --suffix PKG_CONFIG_PATH : "$FLUTTER_PKG_CONFIG_PATH" \ - --suffix LIBRARY_PATH : '${lib.makeLibraryPath appStaticBuildDeps}' \ - --prefix CXXFLAGS "''\t" '${builtins.concatStringsSep " " (includeFlags ++ extraCxxFlags)}' \ - --prefix CFLAGS "''\t" '${builtins.concatStringsSep " " (includeFlags ++ extraCFlags)}' \ - --prefix LDFLAGS "''\t" '${ - builtins.concatStringsSep " " (map (flag: "-Wl,${flag}") linkerFlags) - }' \ - ''${gappsWrapperArgs[@]} \ - --add-flags "--disable-dart-dev --packages='${flutter-tools.pubcache}/package_config.json' --root-certs-file='${cacert}/etc/ssl/certs/ca-bundle.crt' $out/bin/cache/flutter_tools.snapshot" - - runHook postInstall - ''; - - doInstallCheck = true; - - nativeInstallCheckInputs = [ - which - writableTmpDirAsHomeHook - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ]; - - installCheckPhase = '' - runHook preInstallCheck - - $out/bin/flutter config --android-studio-dir $HOME - $out/bin/flutter config --android-sdk $HOME - $out/bin/flutter --version | fgrep --quiet '${builtins.substring 0 10 engineVersion}' - - runHook postInstallCheck - ''; - - dontWrapGApps = true; - - # https://github.com/flutter/engine/pull/28525 - appendRunpaths = lib.optionals ( - stdenv.hostPlatform.isLinux && (builtins.elem "linux" supportedTargetFlutterPlatforms) - ) [ "$ORIGIN" ]; - - passthru = { - buildFlutterApplication = callPackage ./build-support/build-flutter-application.nix { - flutter = scope.flutter; - }; - updateScript = ./update.py; - inherit scope; - inherit (scope) dart; - }; - - meta = { - description = "Makes it easy and fast to build beautiful apps for mobile and beyond"; - longDescription = '' - Flutter is Google's SDK for crafting beautiful, - fast user experiences for mobile, web, and desktop from a single codebase. ''; - homepage = "https://flutter.dev"; - license = lib.licenses.bsd3; - sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; - platforms = [ - "x86_64-linux" - "aarch64-linux" - "x86_64-darwin" - "aarch64-darwin" - ]; - mainProgram = "flutter"; - maintainers = with lib.maintainers; [ ericdallo ]; - teams = [ lib.teams.flutter ]; + + postPatch = '' + patchShebangs --build ./bin/ + patchShebangs packages/flutter_tools/bin + ''; + + buildPhase = '' + runHook preBuild + '' + # The flutter_tools package tries to run many Git commands. In most + # cases, unexpected output is handled gracefully, but commands are never + # expected to fail completely. A blank repository needs to be created. + + '' + rm --recursive --force .git # Remove any existing Git directory + git init --initial-branch=nixpkgs + GIT_AUTHOR_NAME=Nixpkgs GIT_COMMITTER_NAME=Nixpkgs \ + GIT_AUTHOR_EMAIL= GIT_COMMITTER_EMAIL= \ + GIT_AUTHOR_DATE='1/1/1970 00:00:00 +0000' GIT_COMMITTER_DATE='1/1/1970 00:00:00 +0000' \ + git commit --allow-empty --message="Initial commit" + (. '${../../../build-support/fetchgit/deterministic-git}'; make_deterministic_repo .) + '' + + '' + mkdir --parents bin/cache + + # 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 --symbolic '${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 --parents packages/flutter_tools/.dart_tool + ln --symbolic '${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 --raw-output .version)", + "flutterVersion": "${version}", + "frameworkVersion": "${version}", + "channel": "${channel}", + "repositoryUrl": "https://github.com/flutter/flutter.git", + "frameworkRevision": "nixpkgs000000000000000000000000000000000", + "frameworkCommitDate": "1970-01-01 00:00:00", + "engineRevision": "${engineVersion}", + "dartSdkVersion": "${dart.version}" + } + EOF + + # Suppress a small error now that `.gradle`'s location changed. + # Location changed because of the patch "gradle-flutter-tools-wrapper.patch". + mkdir --parents "$out/packages/flutter_tools/gradle/.gradle" + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir --parents $out + cp --recursive . $out + rm --recursive --force $out/bin/cache/dart-sdk + ln --symbolic --force ${dart} $out/bin/cache/dart-sdk + + # The regular launchers are designed to download/build/update SDK + # components, and are not very useful in Nix. + # Replace them with simple links and wrappers. + rm "$out/bin"/{dart,flutter} + ln --symbolic "$out/bin/cache/dart-sdk/bin/dart" "$out/bin/dart" + makeShellWrapper "$out/bin/dart" "$out/bin/flutter" \ + --set-default FLUTTER_ROOT "$out" \ + --set FLUTTER_ALREADY_LOCKED true \ + --add-flags "--disable-dart-dev --packages='${flutterTools.pubcache}/package_config.json' \$NIX_FLUTTER_TOOLS_VM_OPTIONS $out/bin/cache/flutter_tools.snapshot" + + runHook postInstall + ''; + + doInstallCheck = true; + nativeInstallCheckInputs = [ + which + writableTmpDirAsHomeHook + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ]; + installCheckPhase = '' + runHook preInstallCheck + + $out/bin/flutter config --android-studio-dir $HOME + $out/bin/flutter config --android-sdk $HOME + $out/bin/flutter --version | fgrep --quiet '${builtins.substring 0 10 engineVersion}' + + runHook postInstallCheck + ''; + + passthru = { + # TODO: rely on engine.version instead of engineVersion + inherit + dart + engineVersion + artifactHashes + channel + ; + 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. + sdk = unwrapped; + } + // lib.optionalAttrs (engine != null) { + inherit engine; + }; + + meta = { + broken = (lib.versionOlder version "3.32") && useNixpkgsEngine; + description = "Makes it easy and fast to build beautiful apps for mobile and beyond"; + longDescription = '' + Flutter is Google's SDK for crafting beautiful, + fast user experiences for mobile, web, and desktop from a single codebase. + ''; + homepage = "https://flutter.dev"; + license = lib.licenses.bsd3; + sourceProvenance = + with lib.sourceTypes; + if useNixpkgsEngine then [ fromSource ] else [ binaryNativeCode ]; + platforms = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + mainProgram = "flutter"; + maintainers = with lib.maintainers; [ + ericdallo + ]; + teams = [ lib.teams.flutter ]; + }; }; -}) +in +unwrapped diff --git a/pkgs/development/compilers/flutter/host-artifacts.nix b/pkgs/development/compilers/flutter/host-artifacts.nix deleted file mode 100644 index 444e5cabd764..000000000000 --- a/pkgs/development/compilers/flutter/host-artifacts.nix +++ /dev/null @@ -1,302 +0,0 @@ -{ - lib, - stdenv, - constants, - engineVersion, - artifactHashes, - useNixpkgsEngine, - engines, - fetchurl, - hostPlatform ? stdenv.hostPlatform, - supportedTargetFlutterPlatforms, -}: - -let - hostConstants = constants.makeConstants hostPlatform; - - engineBaseUrl = "https://storage.googleapis.com/flutter_infra_release/flutter/${engineVersion}/"; - baseUrl = "https://storage.googleapis.com/flutter_infra_release/"; - - getUrl = - path: - if - ( - lib.hasPrefix "flutter/" path - || lib.hasPrefix "gradle-" path - || lib.hasPrefix "ios-usb-dependencies" path - ) - then - baseUrl + path - else - engineBaseUrl + path; - - artifacts = { - universal = [ - { - path = "flutter/fonts/3012db47f3130e62f7cc0beabff968a33cbec8d8/fonts.zip"; - target = "bin/cache/artifacts/material_fonts"; - hash = "sha256-5W+o6btFif3pZL495FHz5bJR5KHq+x3JjZSt0DTdWoY="; - } - { - path = "gradle-wrapper/fd5c1f2c013565a3bea56ada6df9d2b8e96d56aa/gradle-wrapper.tgz"; - target = "bin/cache/artifacts/gradle_wrapper"; - hash = "sha256-MelCi68aKy9IXxEQxYmfhSZJsz1Goumwf50XdS1QGQo="; - } - { - path = "sky_engine.zip"; - target = "bin/cache/pkg"; - } - { - path = "flutter_gpu.zip"; - target = "bin/cache/pkg"; - } - { - path = "flutter_patched_sdk.zip"; - target = "bin/cache/artifacts/engine/common"; - } - { - path = "flutter_patched_sdk_product.zip"; - target = "bin/cache/artifacts/engine/common"; - } - { - path = "${hostPlatform.parsed.kernel.name}-${ - if hostPlatform.isWindows then "x64" else hostConstants.alt-arch - }/artifacts.zip"; - target = "bin/cache/artifacts/engine/${hostPlatform.parsed.kernel.name}-${ - if (hostPlatform.isDarwin || hostPlatform.isWindows) then "x64" else hostConstants.alt-arch - }"; - } - { - path = "${hostPlatform.parsed.kernel.name}-${ - if hostPlatform.isWindows then "x64" else hostConstants.alt-arch - }/font-subset.zip"; - target = "bin/cache/artifacts/engine/${hostPlatform.parsed.kernel.name}-${ - if (hostPlatform.isDarwin || hostPlatform.isWindows) then "x64" else hostConstants.alt-arch - }"; - } - ]; - - web = [ - { - path = "flutter-web-sdk.zip"; - target = "bin/cache/flutter_web_sdk"; - } - ]; - - linux = [ - { - path = "linux-${hostConstants.alt-arch}/artifacts.zip"; - target = "bin/cache/artifacts/engine/linux-${hostConstants.alt-arch}"; - } - { - path = "linux-${hostConstants.alt-arch}-debug/linux-${hostConstants.alt-arch}-flutter-gtk.zip"; - target = "bin/cache/artifacts/engine/linux-${hostConstants.alt-arch}"; - } - { - path = "linux-${hostConstants.alt-arch}-profile/linux-${hostConstants.alt-arch}-flutter-gtk.zip"; - target = "bin/cache/artifacts/engine/linux-${hostConstants.alt-arch}-profile"; - } - { - path = "linux-${hostConstants.alt-arch}-release/linux-${hostConstants.alt-arch}-flutter-gtk.zip"; - target = "bin/cache/artifacts/engine/linux-${hostConstants.alt-arch}-release"; - } - ]; - - # arm64? - windows = [ - { - path = "windows-x64/artifacts.zip"; - target = "bin/cache/artifacts/engine/windows-x64"; - } - { - path = "windows-x64-debug/windows-x64-flutter.zip"; - target = "bin/cache/artifacts/engine/windows-x64"; - } - { - path = "windows-x64/flutter-cpp-client-wrapper.zip"; - target = "bin/cache/artifacts/engine/windows-x64"; - } - { - path = "windows-x64-profile/windows-x64-flutter.zip"; - target = "bin/cache/artifacts/engine/windows-x64-profile"; - } - { - path = "windows-x64-release/windows-x64-flutter.zip"; - target = "bin/cache/artifacts/engine/windows-x64-release"; - } - ]; - - macos = [ - { - path = "darwin-x64/framework.zip"; - target = "bin/cache/artifacts/engine/darwin-x64"; - } - { - path = "darwin-x64/gen_snapshot.zip"; - target = "bin/cache/artifacts/engine/darwin-x64"; - } - { - path = "darwin-x64-profile/artifacts.zip"; - target = "bin/cache/artifacts/engine/darwin-x64-profile"; - } - { - path = "darwin-x64-profile/framework.zip"; - target = "bin/cache/artifacts/engine/darwin-x64-profile"; - } - { - path = "darwin-x64-profile/gen_snapshot.zip"; - target = "bin/cache/artifacts/engine/darwin-x64-profile"; - } - { - path = "darwin-x64-release/artifacts.zip"; - target = "bin/cache/artifacts/engine/darwin-x64-release"; - } - { - path = "darwin-x64-release/framework.zip"; - target = "bin/cache/artifacts/engine/darwin-x64-release"; - } - { - path = "darwin-x64-release/gen_snapshot.zip"; - target = "bin/cache/artifacts/engine/darwin-x64-release"; - } - { - path = "darwin-${hostConstants.alt-arch}/artifacts.zip"; - target = "bin/cache/artifacts/engine/darwin-x64"; - } - ]; - - ios = [ - { - path = "ios/artifacts.zip"; - target = "bin/cache/artifacts/engine/ios"; - } - { - path = "ios-profile/artifacts.zip"; - target = "bin/cache/artifacts/engine/ios-profile"; - } - { - path = "ios-release/artifacts.zip"; - target = "bin/cache/artifacts/engine/ios-release"; - } - { - path = "ios-usb-dependencies/libimobiledevice/0bf0f9e941c85d06ce4b5909d7a61b3a4f2a6a05/libimobiledevice.zip"; - target = "bin/cache/artifacts/libimobiledevice"; - hash = "sha256-EPzWDY5SYegep6DB9ESd/ApklzLtE8reEllMUPzmkLg="; - } - { - path = "ios-usb-dependencies/libusbmuxd/19d6bec393c9f9b31ccb090059f59268da32e281/libusbmuxd.zip"; - target = "bin/cache/artifacts/libusbmuxd"; - hash = "sha256-RQT0Kq8rKKgokp1haASMZ8K84+M2ZbaJcs/MunZ7/L0="; - } - { - path = "ios-usb-dependencies/libplist/cf5897a71ea412ea2aeb1e2f6b5ea74d4fabfd8c/libplist.zip"; - target = "bin/cache/artifacts/libplist"; - hash = "sha256-cx5758EQb/0SkrVusXGFzH2dUChzFd5dFpMKxlxKbS8="; - } - { - path = "ios-usb-dependencies/openssl/22dbb176deef7d9a80f5c94f57a4b518ea935f50/openssl.zip"; - target = "bin/cache/artifacts/openssl"; - hash = "sha256-erz3j0oIZm2IqvFD41APkTgz7YZaaDReokMwGhFCsmA="; - } - { - path = "ios-usb-dependencies/libimobiledeviceglue/050ff3bf8fdab6ce53a2ddc6ae49b11b1c02a168/libimobiledeviceglue.zip"; - target = "bin/cache/artifacts/libimobiledeviceglue"; - hash = "sha256-4rXsfBxIaByVcIuzs05G5RergFZrgaBs1XBmu7ibwAA="; - } - { - path = "ios-usb-dependencies/ios-deploy/7a29ab0b6d611f2bf5de4b6f929a82a091866307/ios-deploy.zip"; - target = "bin/cache/artifacts/ios-deploy"; - hash = "sha256-1p6agbzur4xFai4ZzzjHp4ZvRv+VWcPygBgBYQdQ2Vw="; - } - ]; - - android = [ - { - path = "android-x86/artifacts.zip"; - target = "bin/cache/artifacts/engine/android-x86"; - } - { - path = "android-x64/artifacts.zip"; - target = "bin/cache/artifacts/engine/android-x64"; - } - { - path = "android-arm/artifacts.zip"; - target = "bin/cache/artifacts/engine/android-arm"; - } - { - path = "android-arm-profile/artifacts.zip"; - target = "bin/cache/artifacts/engine/android-arm-profile"; - } - { - path = "android-arm-release/artifacts.zip"; - target = "bin/cache/artifacts/engine/android-arm-release"; - } - { - path = "android-arm64/artifacts.zip"; - target = "bin/cache/artifacts/engine/android-arm64"; - } - { - path = "android-arm64-profile/artifacts.zip"; - target = "bin/cache/artifacts/engine/android-arm64-profile"; - } - { - path = "android-arm64-release/artifacts.zip"; - target = "bin/cache/artifacts/engine/android-arm64-release"; - } - { - path = "android-x64-profile/artifacts.zip"; - target = "bin/cache/artifacts/engine/android-x64-profile"; - } - { - path = "android-x64-release/artifacts.zip"; - target = "bin/cache/artifacts/engine/android-x64-release"; - } - { - path = "android-arm-profile/${hostPlatform.parsed.kernel.name}-x64.zip"; - target = "bin/cache/artifacts/engine/android-arm-profile/${hostPlatform.parsed.kernel.name}-x64"; - } - { - path = "android-arm-release/${hostPlatform.parsed.kernel.name}-x64.zip"; - target = "bin/cache/artifacts/engine/android-arm-release/${hostPlatform.parsed.kernel.name}-x64"; - } - { - path = "android-arm64-profile/${hostPlatform.parsed.kernel.name}-x64.zip"; - target = "bin/cache/artifacts/engine/android-arm64-profile/${hostPlatform.parsed.kernel.name}-x64"; - } - { - path = "android-arm64-release/${hostPlatform.parsed.kernel.name}-x64.zip"; - target = "bin/cache/artifacts/engine/android-arm64-release/${hostPlatform.parsed.kernel.name}-x64"; - } - { - path = "android-x64-profile/${hostPlatform.parsed.kernel.name}-x64.zip"; - target = "bin/cache/artifacts/engine/android-x64-profile/${hostPlatform.parsed.kernel.name}-x64"; - } - { - path = "android-x64-release/${hostPlatform.parsed.kernel.name}-x64.zip"; - target = "bin/cache/artifacts/engine/android-x64-release/${hostPlatform.parsed.kernel.name}-x64"; - } - ]; - }; -in -(lib.unique ( - lib.map ( - artifact: - let - artifactName = lib.removeSuffix ".${lib.last (lib.splitString "." artifact.path)}" artifact.path; - artifactNameUnderscore = lib.replaceStrings [ "-" "/" ] [ "_M_" "_S_" ] artifactName; - useEngineOutput = useNixpkgsEngine && (builtins.elem artifactNameUnderscore engines.outputs); - in - { - path = - if useEngineOutput then - engines.${artifactNameUnderscore} - else - fetchurl { - url = getUrl artifact.path; - hash = artifactHashes.${artifact.path} or artifact.hash or ""; - }; - target = artifact.target; - id = artifact.path; - } - ) (lib.concatMap (x: artifacts.${x}) supportedTargetFlutterPlatforms) -)) diff --git a/pkgs/development/compilers/flutter/patches/opt-in-analytics.patch b/pkgs/development/compilers/flutter/patches/opt-in-analytics.patch deleted file mode 100644 index 036958c47f3b..000000000000 --- a/pkgs/development/compilers/flutter/patches/opt-in-analytics.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/packages/flutter_tools/lib/src/reporting/usage.dart -+++ b/packages/flutter_tools/lib/src/reporting/usage.dart -@@ -218,7 +218,7 @@ - if (globals.platform.environment.containsKey('FLUTTER_HOST')) { - analytics.setSessionValue('aiid', globals.platform.environment['FLUTTER_HOST']); - } -- analytics.analyticsOpt = AnalyticsOpt.optOut; -+ analytics.analyticsOpt = AnalyticsOpt.optIn; - } - - return _DefaultUsage._( ---- a/packages/flutter_tools/lib/src/reporting/first_run.dart -+++ b/packages/flutter_tools/lib/src/reporting/first_run.dart -@@ -37,6 +37,8 @@ - ║ See Google's privacy policy: ║ - ║ https://policies.google.com/privacy ║ - ╚════════════════════════════════════════════════════════════════════════════╝ -+nixpkgs overrides: reporting is disabled by default. Opt-out is not a sent event. -+Run 'flutter config --analytics' to opt in to reports. - '''; - - /// The first run messenger determines whether the first run license terms diff --git a/pkgs/development/compilers/flutter/patches/pmos-if-touch-is-a-mouse-then-mouse-is-touch.patch b/pkgs/development/compilers/flutter/patches/pmos-if-touch-is-a-mouse-then-mouse-is-touch.patch deleted file mode 100644 index 8abd25546790..000000000000 --- a/pkgs/development/compilers/flutter/patches/pmos-if-touch-is-a-mouse-then-mouse-is-touch.patch +++ /dev/null @@ -1,18 +0,0 @@ -flutter defines a list of pointer kinds that can scroll the screen. -however, it does not bother recognizing the pointer kind on linux, -so every pointer is set to be recognized as mouse. effectively, touch -can't scroll anything. this workarounds the issue by making mouse -one of the "touch-like device types". - -Bug: https://github.com/flutter/flutter/issues/63209 - ---- a/packages/flutter/lib/src/widgets/scroll_configuration.dart -+++ b/packages/flutter/lib/src/widgets/scroll_configuration.dart -@@ -25,6 +25,7 @@ - // The VoiceAccess sends pointer events with unknown type when scrolling - // scrollables. - PointerDeviceKind.unknown, -+ PointerDeviceKind.mouse, - }; - - /// The default overscroll indicator applied on [TargetPlatform.android]. diff --git a/pkgs/development/compilers/flutter/scope.nix b/pkgs/development/compilers/flutter/scope.nix deleted file mode 100644 index ab7369a5513d..000000000000 --- a/pkgs/development/compilers/flutter/scope.nix +++ /dev/null @@ -1,105 +0,0 @@ -{ - dart, - dart-bin, - fetchFromGitHub, - fetchgit, - lib, - newScope, - stdenv, - engineRuntimeModes ? [ - "release" - "debug" - "profile" - ], - supportedTargetFlutterPlatforms ? [ - "universal" - "web" - ] - ++ (lib.optionals (stdenv.hostPlatform.isLinux) [ "linux" ]) - ++ (lib.optionals (stdenv.hostPlatform.isx86_64) [ "android" ]) - ++ (lib.optionals stdenv.hostPlatform.isDarwin [ - "macos" - "ios" - ]), -}: - -versionData: -lib.makeScope newScope ( - self: - versionData - // { - inherit supportedTargetFlutterPlatforms; - - constants = self.callPackage ./constants.nix { }; - - depot_tools = fetchgit { - url = "https://chromium.googlesource.com/chromium/tools/depot_tools.git"; - rev = "a0e694f18f15b364d2f9c23c4dde396bfc973fd1"; - postFetch = '' - substituteInPlace $out/gerrit_util.py \ - --replace-fail "import httplib2.socks" "httplib2.socks = None" - substituteInPlace $out/gerrit_util.py \ - --replace-fail "httplib2.socks.socksocket._socksocket__rewriteproxy = __fixed_rewrite_proxy" "pass" - substituteInPlace $out/gerrit_util.py \ - --replace-fail "httplib2.socks.PROXY_TYPE_HTTP_NO_TUNNEL" "3" - ''; - hash = "sha256-N9xBfLS8DnBjOD149EOu5pr8ffBOb39vebhFUwPBllc="; - }; - - flutterSource = fetchFromGitHub { - owner = "flutter"; - repo = "flutter"; - tag = self.version; - hash = self.flutterHash; - }; - - dart = - let - hash = - self.dartHash.${ - if (stdenv.hostPlatform.isLinux && (lib.versionAtLeast self.version "3.41")) then - "linux" - else - stdenv.hostPlatform.system - } or (throw "No dart hash for ${stdenv.hostPlatform.system}"); - in - (if (lib.versionAtLeast self.version "3.41") then dart else dart-bin).overrideAttrs (oldAttrs: { - version = self.dartVersion; - src = oldAttrs.src.overrideAttrs (_: { - version = self.dartVersion; - outputHash = hash; - }); - }); - - cipd = self.callPackage ./cipd.nix { }; - - engine = self.callPackage ./engine/default.nix { }; - - engines = - let - enginePackages = map ( - runtimeMode: self.callPackage ./engine/default.nix { runtimeMode = runtimeMode; } - ) engineRuntimeModes; - outputs = lib.unique (builtins.concatMap (e: e.outputs) enginePackages); - mergedOutputs = lib.genAttrs outputs ( - outputName: - let - found = lib.findFirst (e: e ? ${outputName}) null enginePackages; - in - found.${outputName} - ); - in - mergedOutputs - // { - inherit outputs; - }; - - host-artifacts = self.callPackage ./host-artifacts.nix { }; - - all-artifacts = self.callPackage ./all-artifacts.nix { }; - - flutter-tools = self.callPackage ./flutter-tools.nix { }; - - flutter = self.callPackage ./flutter.nix { scope = self; }; - } -) diff --git a/pkgs/development/compilers/flutter/sdk-symlink.nix b/pkgs/development/compilers/flutter/sdk-symlink.nix new file mode 100644 index 000000000000..d8ddd9bd0c2e --- /dev/null +++ b/pkgs/development/compilers/flutter/sdk-symlink.nix @@ -0,0 +1,65 @@ +{ + symlinkJoin, + makeWrapper, +}: +flutter: + +let + self = symlinkJoin { + inherit (flutter) pname; + name = "${flutter.name}-sdk-links"; + paths = [ + flutter + flutter.cacheDir + flutter.sdk + ]; + + nativeBuildInputs = [ makeWrapper ]; + postBuild = '' + wrapProgram "$out/bin/flutter" \ + --set-default FLUTTER_ROOT "$out" + + # symlinkJoin seems to be missing the .git directory for some reason. + if [ -d '${flutter.sdk}/.git' ]; then + ln --symbolic '${flutter.sdk}/.git' "$out" + fi + + # For iOS/macOS builds, *.xcframework/'s from the pre-built + # artifacts are copied into each built app. However, the symlinkJoin + # means that the *.xcframework's contain symlinks into the nix store, + # which causes issues when actually running the apps. + # + # We'll fix this by only linking to an outer *.xcframework dir instead + # of trying to symlinkJoin the files inside the *.xcframework. + artifactsDir="$out/bin/cache/artifacts/engine" + shopt -s globstar + for file in "$artifactsDir"/**/*.xcframework/Info.plist; do + # Get the unwrapped path from the Info.plist inside each .xcframework + origFile="$(readlink -f "$file")" + origFrameworkDir="$(dirname "$origFile")" + + # Remove the symlinkJoin .xcframework dir and replace it with a symlink + # to the unwrapped .xcframework dir. + frameworkDir="$(dirname "$file")" + rm --recursive "$frameworkDir" + ln --symbolic "$origFrameworkDir" "$frameworkDir" + done + shopt -u globstar + ''; + + passthru = flutter.passthru // { + # Update the SDK attribute. + # This allows any modified SDK files to be included + # in future invocations. + sdk = self; + }; + + meta = flutter.meta // { + longDescription = '' + ${flutter.meta.longDescription} + Modified binaries are linked into the original SDK directory for use with tools that use the whole SDK. + ''; + }; + }; +in +self diff --git a/pkgs/development/compilers/flutter/update.py b/pkgs/development/compilers/flutter/update.py deleted file mode 100755 index c2e6ae6f20e8..000000000000 --- a/pkgs/development/compilers/flutter/update.py +++ /dev/null @@ -1,358 +0,0 @@ -#!/usr/bin/env nix-shell -# !nix-shell -i python3 -p python3Packages.pyyaml nix-update dart - -import argparse -import json -import logging -import shutil -import stat -import subprocess -import sys -import tempfile -import urllib.request -from pathlib import Path -from typing import Any, NoReturn - -import yaml - -FLUTTER_RELEASES_URL = ( - "https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json" -) - -logging.basicConfig( - level=logging.INFO, - format="%(levelname)s: %(message)s", - stream=sys.stderr, -) -logger = logging.getLogger(__name__) - - -def fatal_error(msg: str) -> NoReturn: - logger.error(msg) - sys.exit(1) - - -def run_command(cmd: list[str], cwd: Path | None = None) -> str: - try: - result = subprocess.run( - cmd, - capture_output=True, - text=True, - cwd=cwd, - check=True, - ) - return result.stdout.strip() - except subprocess.CalledProcessError as e: - fatal_error(f"Command failed: {' '.join(cmd)}\n{e.stderr.strip()}") - - -def fetch_url(url: str) -> bytes: - with urllib.request.urlopen(url, timeout=30) as response: - return response.read() - - -def get_nixpkgs_root() -> Path: - return Path(run_command(["git", "rev-parse", "--show-toplevel"])) - - -def run_nix_eval(cmds: list[str]) -> str: - return run_command(["nix", "eval", "--json", "--impure", *cmds]) - - -def run_nix_prefetch(url: str, unpack: bool = False) -> str: - args = ["nix", "store", "prefetch-file", "--json"] - if unpack: - args.append("--unpack") - args.append(url) - - output = run_command(args) - - hash_value = json.loads(output).get("hash") - if not hash_value: - fatal_error(f"No hash in prefetch output: {output}") - return hash_value - - -def get_version_str(flutter_version: str) -> str: - return "_".join(flutter_version.split(".")[:2]) - - -def requires_engine_hash(flutter_version: str) -> bool: - parts = flutter_version.split(".") - if len(parts) < 2: - return False - major, minor = int(parts[0]), int(parts[1]) - return major > 3 or (major == 3 and minor >= 41) - - -def get_version_data( - target_version: str | None = None, channel: str | None = None -) -> tuple[str, str, str, str]: - channel = channel or "stable" - releases_data = json.loads(fetch_url(FLUTTER_RELEASES_URL).decode("utf-8")) - - if not target_version: - release_hash = releases_data["current_release"].get(channel) - if not release_hash: - fatal_error(f"Channel '{channel}' not found in current releases") - release = next( - (r for r in releases_data["releases"] if r["hash"] == release_hash), - None, - ) - else: - release = next( - (r for r in releases_data["releases"] if r["version"] == target_version), - None, - ) - - if not release: - fatal_error(f"Version {target_version or 'latest'} not found in '{channel}'") - - target_version = release["version"] - release_hash = release["hash"] - dart_version = release.get("dart_sdk_version") - - if not dart_version: - fatal_error(f"No dart_sdk_version found for {target_version}") - - if " " in dart_version: - dart_version = dart_version.split(" ")[2].strip("()") - - engine_url = f"https://github.com/flutter/flutter/raw/{release_hash}/bin/internal/engine.version" - engine_version = fetch_url(engine_url).decode("utf-8").strip() - - return target_version, engine_version, dart_version, channel - - -def extract_nix_url(output: str) -> str: - try: - urls = json.loads(output) - return urls[0] if isinstance(urls, list) and urls else "" - except json.JSONDecodeError: - return output.strip('[]"').replace("\\", "") - - -def get_dart_hashes(flutter_version: str) -> dict[str, str]: - version_str = get_version_str(flutter_version) - platforms = ["x86_64-darwin", "aarch64-darwin"] - if not requires_engine_hash(flutter_version): - platforms += ["x86_64-linux", "aarch64-linux"] - dart_hashes = {} - - for system in platforms: - cmds = [ - "--file", - ".", - f"flutterPackages-bin.v{version_str}.passthru.scope.dart.src.drvAttrs.urls", - "--system", - system, - ] - output = run_nix_eval(cmds) - url = extract_nix_url(output) - - if not url: - fatal_error(f"No Dart SDK URL found for {system}") - - dart_hashes[system] = run_nix_prefetch(url) - - return dart_hashes - - -def get_flutter_hash(flutter_version: str) -> str: - version_str = get_version_str(flutter_version) - cmds = [ - "--file", - ".", - f"flutterPackages-bin.v{version_str}.passthru.scope.flutterSource.drvAttrs.urls", - ] - output = run_nix_eval(cmds) - url = extract_nix_url(output) - - if not url: - fatal_error(f"No Flutter source URL found for {flutter_version}") - - return run_nix_prefetch(url, unpack=True) - - -def get_artifact_hashes(flutter_version: str, engine_version: str) -> dict[str, str]: - version_str = get_version_str(flutter_version) - nixpkgs_root = get_nixpkgs_root() - - expr = ( - f"let pkgs = import {nixpkgs_root} {{ }}; " - "in (builtins.map (x: x.path.url) " - f'pkgs.flutterPackages-bin."v{version_str}".passthru.scope.all-artifacts)' - ) - - output = run_nix_eval(["--expr", expr]) - - artifacts = json.loads(output) - - if not isinstance(artifacts, list): - fatal_error("Artifacts is not a list") - - artifact_hashes = {} - for url in artifacts: - if engine_version not in url: - continue - - path_parts = url.split("/") - - hash_idx = path_parts.index(engine_version) - path_key = "/".join(path_parts[hash_idx + 1 :]) - - if path_key not in artifact_hashes: - artifact_hashes[path_key] = run_nix_prefetch(url) - - return artifact_hashes - - -def get_pubspec_lock(flutter_version: str) -> dict[str, Any]: - version_str = get_version_str(flutter_version) - target = f".#flutterPackages-bin.v{version_str}.scope.flutterSource" - - flutter_src_str = run_command([ - "nix", - "build", - "--no-link", - "--print-out-paths", - target, - ]) - if not flutter_src_str: - fatal_error(f"No Flutter source path found for {flutter_version}") - - flutter_src = Path(flutter_src_str) - - with tempfile.TemporaryDirectory(prefix="flutter_src_") as temp_dir_name: - temp_dir = Path(temp_dir_name) - flutter_copy = temp_dir / "flutter" - - shutil.copytree(flutter_src, flutter_copy, symlinks=False) - - for path_item in flutter_copy.rglob("*"): - path_item.chmod(path_item.stat().st_mode | stat.S_IWUSR) - flutter_copy.chmod(flutter_copy.stat().st_mode | stat.S_IWUSR) - - flutter_tools_path = flutter_copy / "packages" / "flutter_tools" - if not flutter_tools_path.exists(): - fatal_error(f"flutter_tools not found at {flutter_tools_path}") - - run_command(["dart", "pub", "get"], cwd=flutter_tools_path) - - pubspec_lock_path = flutter_tools_path / "pubspec.lock" - if not pubspec_lock_path.exists(): - fatal_error(f"pubspec.lock not found at {pubspec_lock_path}") - - with pubspec_lock_path.open("r", encoding="utf-8") as f: - return yaml.safe_load(f) - - -def save_json(data: dict[str, Any], output_path: Path) -> None: - output_path.parent.mkdir(parents=True, exist_ok=True) - with output_path.open("w", encoding="utf-8") as f: - json.dump(data, f, indent=2, sort_keys=True) - f.write("\n") - - -def main() -> None: - parser = argparse.ArgumentParser( - description="Update Flutter data.json for nixpkgs", - formatter_class=argparse.RawDescriptionHelpFormatter, - ) - parser.add_argument( - "--version", - type=str, - help="Specific Flutter version (e.g., 3.41.4). Uses latest from channel if omitted.", - ) - parser.add_argument( - "--channel", - type=str, - default="stable", - choices=["stable", "beta"], - help="Release channel (default: stable)", - ) - - args = parser.parse_args() - - logger.info("Fetching version data...") - flutter_version, engine_version, dart_version, channel = get_version_data( - args.version, args.channel - ) - - logger.info(f"Target Flutter Version: {flutter_version}") - logger.info(f"Engine Version (commit): {engine_version}") - logger.info(f"Dart Version: {dart_version}") - - version_str = get_version_str(flutter_version) - version_dir = Path(__file__).resolve().parent / "versions" / version_str - output_path = version_dir / "data.json" - - has_engine_hash = requires_engine_hash(flutter_version) - - data = { - "version": flutter_version, - "engineVersion": engine_version, - "channel": channel, - "dartVersion": dart_version, - "dartHash": {}, - "flutterHash": "", - "artifactHashes": {}, - "pubspecLock": {}, - } - - save_json(data, output_path) - - logger.info("Fetching Dart hashes...") - data["dartHash"] = get_dart_hashes(flutter_version) - - if has_engine_hash: - data["dartHash"]["linux"] = ( - "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" - ) - save_json(data, output_path) - logger.info("Running nix-update for dart hash...") - run_command([ - "nix-update", - "--version", - "skip", - "--override-filename", - str(output_path), - f"flutterPackages-source.v{version_str}.passthru.scope.dart", - ]) - with output_path.open("r", encoding="utf-8") as f: - updated_data = json.load(f) - data["dartHash"]["linux"] = updated_data.get("dartHash")["linux"] - - data["engineHash"] = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" - save_json(data, output_path) - logger.info("Running nix-update for engine hash...") - run_command([ - "nix-update", - "--version", - "skip", - "--override-filename", - str(output_path), - f"flutterPackages-source.v{version_str}.passthru.scope.engine", - ]) - with output_path.open("r", encoding="utf-8") as f: - updated_data = json.load(f) - data["engineHash"] = updated_data.get("engineHash") - - logger.info("Fetching Flutter source hash...") - data["flutterHash"] = get_flutter_hash(flutter_version) - - logger.info("Fetching artifact hashes...") - data["artifactHashes"] = get_artifact_hashes(flutter_version, engine_version) - - save_json(data, output_path) - - logger.info("Generating pubspec.lock...") - data["pubspecLock"] = get_pubspec_lock(flutter_version) - - save_json(data, output_path) - - logger.info(f"Update complete. Data written to {output_path}") - - -if __name__ == "__main__": - main() diff --git a/pkgs/development/compilers/flutter/update/get-artifact-hashes.nix.in b/pkgs/development/compilers/flutter/update/get-artifact-hashes.nix.in new file mode 100644 index 000000000000..8edff6a2e876 --- /dev/null +++ b/pkgs/development/compilers/flutter/update/get-artifact-hashes.nix.in @@ -0,0 +1,44 @@ +{ + 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" + "aarch64-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 systemPlatform; + hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; + } + ) systemPlatforms) + ) [ ] flutterPlatforms; +in +symlinkJoin { + name = "evaluate-derivations"; + paths = derivations; +} diff --git a/pkgs/development/compilers/flutter/update/get-dart-hashes.nix.in b/pkgs/development/compilers/flutter/update/get-dart-hashes.nix.in new file mode 100644 index 000000000000..0972a3578b52 --- /dev/null +++ b/pkgs/development/compilers/flutter/update/get-dart-hashes.nix.in @@ -0,0 +1,22 @@ +{ + lib, + fetchurl, +}: + +let + dartVersion = "@dart_version@"; + system = + { + x86_64-linux = "linux-x64"; + aarch64-linux = "linux-arm64"; + x86_64-darwin = "macos-x64"; + aarch64-darwin = "macos-arm64"; + } + ."@platform@"; +in +fetchurl { + url = "https://storage.googleapis.com/dart-archive/channels/${ + if lib.strings.hasSuffix ".beta" dartVersion then "beta" else "stable" + }/release/${dartVersion}/sdk/dartsdk-${system}-release.zip"; + hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; +} diff --git a/pkgs/development/compilers/flutter/update/get-engine-hashes.nix.in b/pkgs/development/compilers/flutter/update/get-engine-hashes.nix.in new file mode 100644 index 000000000000..c96a7b9adad2 --- /dev/null +++ b/pkgs/development/compilers/flutter/update/get-engine-hashes.nix.in @@ -0,0 +1,36 @@ +{ + callPackage, + symlinkJoin, + lib, +}: +let + nixpkgsRoot = "@nixpkgs_root@"; + version = "@flutter_version@"; + engineVersion = "@engine_version@"; + + systemPlatforms = [ + "x86_64-linux" + "aarch64-linux" + ]; + + derivations = lib.foldl' ( + acc: buildPlatform: + acc + ++ (map ( + targetPlatform: + callPackage "${nixpkgsRoot}/pkgs/development/compilers/flutter/engine/source.nix" { + targetPlatform = lib.systems.elaborate targetPlatform; + hostPlatform = lib.systems.elaborate buildPlatform; + buildPlatform = lib.systems.elaborate buildPlatform; + flutterVersion = version; + version = engineVersion; + url = "https://github.com/flutter/flutter.git@${engineVersion}"; + hashes."${buildPlatform}"."${targetPlatform}" = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; + } + ) systemPlatforms) + ) [ ] systemPlatforms; +in +symlinkJoin { + name = "evaluate-derivations"; + paths = derivations; +} diff --git a/pkgs/development/compilers/flutter/update/get-engine-swiftshader.nix.in b/pkgs/development/compilers/flutter/update/get-engine-swiftshader.nix.in new file mode 100644 index 000000000000..aa71f8ae2ad3 --- /dev/null +++ b/pkgs/development/compilers/flutter/update/get-engine-swiftshader.nix.in @@ -0,0 +1,10 @@ +{ fetchgit }: +fetchgit { + url = "https://swiftshader.googlesource.com/SwiftShader.git"; + rev = "@engine_swiftshader_rev@"; + + # Keep with in sync of pkgs/development/compilers/flutter/engine/package.nix + postFetch = '' + rm -rf $out/third_party/llvm-project + ''; +} diff --git a/pkgs/development/compilers/flutter/update/get-flutter.nix.in b/pkgs/development/compilers/flutter/update/get-flutter.nix.in new file mode 100644 index 000000000000..02d802e026f0 --- /dev/null +++ b/pkgs/development/compilers/flutter/update/get-flutter.nix.in @@ -0,0 +1,7 @@ +{ fetchFromGitHub }: +fetchFromGitHub { + owner = "flutter"; + repo = "flutter"; + tag = "@flutter_version@"; + hash = "@hash@"; +} diff --git a/pkgs/development/compilers/flutter/update/get-pubspec-lock.nix.in b/pkgs/development/compilers/flutter/update/get-pubspec-lock.nix.in new file mode 100644 index 000000000000..3d87a69815e7 --- /dev/null +++ b/pkgs/development/compilers/flutter/update/get-pubspec-lock.nix.in @@ -0,0 +1,40 @@ +{ + flutterPackages, + stdenv, + cacert, + writableTmpDirAsHomeHook, +}: +let + flutterCompactVersion = "@flutter_compact_version@"; + inherit (flutterPackages."v${flutterCompactVersion}") dart; +in +stdenv.mkDerivation (finalAttrs: { + name = "pubspec-lock"; + src = @flutter_src@; + + nativeBuildInputs = [ + dart + writableTmpDirAsHomeHook + ]; + + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "@hash@"; + + buildPhase = '' + runHook preBuild + + cd packages/flutter_tools + dart --root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt pub get + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + cp pubspec.lock $out + + runHook postInstall + ''; +}) diff --git a/pkgs/development/compilers/flutter/update/update.py b/pkgs/development/compilers/flutter/update/update.py new file mode 100755 index 000000000000..7a28cc46d949 --- /dev/null +++ b/pkgs/development/compilers/flutter/update/update.py @@ -0,0 +1,501 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i python3 -p python3Packages.pyyaml + +import argparse +import json +import os +import re +import subprocess +import sys +import tempfile +import urllib.request +from pathlib import Path + +import yaml + +FAKE_HASH = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" + +NIXPKGS_ROOT = ( + subprocess.Popen( + ["git", "rev-parse", "--show-toplevel"], stdout=subprocess.PIPE, text=True + ) + .communicate()[0] + .strip() +) + + +def load_code(name, **kwargs): + with Path( + f"{NIXPKGS_ROOT}/pkgs/development/compilers/flutter/update/{name}.in" + ).open("r", encoding="utf-8") 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): + with tempfile.NamedTemporaryFile(mode="w", encoding="utf-8", delete=False) as temp: + temp.write(code) + temp.flush() + os.fsync(temp.fileno()) + temp_name = temp.name + + 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() + Path(temp_name).unlink() # Clean up the temporary file + return process.stdout.read().strip().splitlines()[0] + + +# Return errors +def nix_build_to_fail(code): + with tempfile.NamedTemporaryFile(mode="w", encoding="utf-8", delete=False) as temp: + temp.write(code) + temp.flush() + os.fsync(temp.fileno()) + temp_name = temp.name + + 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() + Path(temp_name).unlink() # Clean up the temporary file + return stderr + + +def get_engine_hashes(engine_version, flutter_version): + code = load_code( + "get-engine-hashes.nix", + nixpkgs_root=NIXPKGS_ROOT, + flutter_version=flutter_version, + engine_version=engine_version, + ) + + stderr = nix_build_to_fail(code) + + pattern = re.compile( + rf"/nix/store/.*-flutter-engine-source-{engine_version}-(.+?-.+?)-(.+?-.+?).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()) + } + + return sort_dict_recursive(result_dict) + + +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()) + } + + return sort_dict_recursive(result_dict) + + +def get_dart_hashes(dart_version, channel): + 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") + flutter_hash_value = pattern.findall(stderr)[0] + + code = load_code( + "get-flutter.nix", flutter_version=flutter_version, hash=flutter_hash_value + ) + + return (flutter_hash_value, 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") + pubspec_lock_hash = pattern.findall(stderr)[0] + + code = load_code( + "get-pubspec-lock.nix", + flutter_compact_version=flutter_compact_version, + flutter_src=flutter_src, + hash=pubspec_lock_hash, + ) + + pubspec_lock_file = nix_build(code) + + with Path(pubspec_lock_file).open("r", encoding="utf-8") as f: + pubspec_lock_yaml = f.read() + + return yaml.safe_load(pubspec_lock_yaml) + + +def get_engine_swiftshader_rev(engine_version): + with urllib.request.urlopen( + f"https://github.com/flutter/flutter/raw/{engine_version}/DEPS" + ) as f: + deps = f.read().decode("utf-8") + pattern = re.compile( + r"Var\('swiftshader_git'\) \+ '\/SwiftShader\.git' \+ '@' \+ \'([0-9a-fA-F]{40})\'\," + ) + return pattern.findall(deps)[0] + + +def get_engine_swiftshader_hash(engine_swiftshader_rev): + code = load_code( + "get-engine-swiftshader.nix", + engine_swiftshader_rev=engine_swiftshader_rev, + hash="", + ) + + stderr = nix_build_to_fail(code) + pattern = re.compile(r"got:\s+(.+?)\n") + return pattern.findall(stderr)[0] + + +def write_data( + nixpkgs_flutter_version_directory, + flutter_version, + channel, + engine_hash, + engine_hashes, + engine_swiftshader_hash, + engine_swiftshader_rev, + dart_version, + dart_hash, + flutter_hash, + artifact_hashes, + pubspec_lock, +): + with Path(f"{nixpkgs_flutter_version_directory}/data.json").open( + "w", encoding="utf-8" + ) as f: + f.write( + json.dumps( + { + "version": flutter_version, + "engineVersion": engine_hash, + "engineSwiftShaderHash": engine_swiftshader_hash, + "engineSwiftShaderRev": engine_swiftshader_rev, + "channel": channel, + "engineHashes": engine_hashes, + "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 = [d.name for d in Path(versions_directory).iterdir()] + versions = sorted( + versions, + key=lambda x: (int(x.split("_")[0]), int(x.split("_")[1])), + reverse=True, + ) + + new_content = [ + "flutterPackages-bin = recurseIntoAttrs (callPackage ../development/compilers/flutter { });", + "flutterPackages-source = recurseIntoAttrs (", + " callPackage ../development/compilers/flutter { useNixpkgsEngine = true; }", + ");", + "flutterPackages = flutterPackages-bin;", + "flutter = flutterPackages.stable;", + ] + [ + f"flutter{version.replace('_', '')} = flutterPackages.v{version};" + for version in versions + ] + + with Path(f"{NIXPKGS_ROOT}/pkgs/top-level/all-packages.nix").open( + "r", encoding="utf-8" + ) as file: + lines = file.read().splitlines(keepends=True) + + start = -1 + end = -1 + for i, line in enumerate(lines): + if ( + "flutterPackages-bin = 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" {line}\n" for line in new_content] + + with Path(f"{NIXPKGS_ROOT}/pkgs/top-level/all-packages.nix").open( + "w", encoding="utf-8" + ) 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, channel=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 channel: + channel = "stable" + + if not flutter_version: + release_hash = releases["current_release"][channel] + release = next( + filter( + lambda release: release["hash"] == release_hash, releases["releases"] + ) + ) + flutter_version = release["version"] + + tags = ( + subprocess.Popen( + ["git", "ls-remote", "--tags", "https://github.com/flutter/flutter.git"], + stdout=subprocess.PIPE, + text=True, + ) + .communicate()[0] + .strip() + ) + + try: + flutter_hash = ( + next( + filter( + lambda line: line.endswith(f"refs/tags/{flutter_version}"), + tags.splitlines(), + ) + ) + .split("refs")[0] + .strip() + ) + + engine_hash = ( + urllib.request.urlopen( + f"https://github.com/flutter/flutter/raw/{flutter_hash}/bin/internal/engine.version" + ) + .read() + .decode("utf-8") + .strip() + ) + except StopIteration: + sys.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"] + + if " " in dart_version: + dart_version = dart_version.split(" ")[2][:-1] + except StopIteration: + sys.exit(f"Couldn't find Dart version for Flutter version: {flutter_version}") + + return (flutter_version, engine_hash, dart_version, channel) + + +def main(): + parser = argparse.ArgumentParser(description="Update Flutter in Nixpkgs") + parser.add_argument("--version", type=str, help="Specify Flutter version") + parser.add_argument("--channel", type=str, help="Specify Flutter release channel") + parser.add_argument( + "--artifact-hashes", action="store_true", help="Whether to get artifact hashes" + ) + args = parser.parse_args() + + (flutter_version, engine_hash, dart_version, channel) = find_versions( + args.version, args.channel + ) + + 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}) on ({channel})" + ) + print(f"Engine hash: {engine_hash}") + print(f"Dart version: {dart_version}") + + dart_hash = get_dart_hashes(dart_version, channel) + (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 Path(f"{nixpkgs_flutter_version_directory}/data.json").exists(): + Path(f"{nixpkgs_flutter_version_directory}/data.json").unlink() + Path(nixpkgs_flutter_version_directory).mkdir(parents=True, exist_ok=True) + + update_all_packages() + + common_data_args = { + "nixpkgs_flutter_version_directory": nixpkgs_flutter_version_directory, + "flutter_version": flutter_version, + "channel": channel, + "dart_version": dart_version, + "engine_hash": engine_hash, + "flutter_hash": flutter_hash, + "dart_hash": dart_hash, + } + + write_data( + pubspec_lock={}, + artifact_hashes={}, + engine_hashes={}, + engine_swiftshader_hash=FAKE_HASH, + engine_swiftshader_rev="0", + **common_data_args, + ) + + pubspec_lock = get_pubspec_lock(flutter_compact_version, flutter_src) + + write_data( + pubspec_lock=pubspec_lock, + artifact_hashes={}, + engine_hashes={}, + engine_swiftshader_hash=FAKE_HASH, + engine_swiftshader_rev="0", + **common_data_args, + ) + + artifact_hashes = get_artifact_hashes(flutter_compact_version) + + write_data( + pubspec_lock=pubspec_lock, + artifact_hashes=artifact_hashes, + engine_hashes={}, + engine_swiftshader_hash=FAKE_HASH, + engine_swiftshader_rev="0", + **common_data_args, + ) + + engine_hashes = get_engine_hashes(engine_hash, flutter_version) + + write_data( + pubspec_lock=pubspec_lock, + artifact_hashes=artifact_hashes, + engine_hashes=engine_hashes, + engine_swiftshader_hash=FAKE_HASH, + engine_swiftshader_rev="0", + **common_data_args, + ) + + engine_swiftshader_rev = get_engine_swiftshader_rev(engine_hash) + engine_swiftshader_hash = get_engine_swiftshader_hash(engine_swiftshader_rev) + + write_data( + pubspec_lock=pubspec_lock, + artifact_hashes=artifact_hashes, + engine_hashes=engine_hashes, + engine_swiftshader_hash=engine_swiftshader_hash, + engine_swiftshader_rev=engine_swiftshader_rev, + **common_data_args, + ) + + +if __name__ == "__main__": + main() diff --git a/pkgs/development/compilers/flutter/versions/3_29/data.json b/pkgs/development/compilers/flutter/versions/3_29/data.json index 295ee16b5fcb..a3c5323a3aef 100644 --- a/pkgs/development/compilers/flutter/versions/3_29/data.json +++ b/pkgs/development/compilers/flutter/versions/3_29/data.json @@ -1,80 +1,75 @@ { - "artifactHashes": { - "android-arm-profile/artifacts.zip": "sha256-5YqQUqktJUztmJ8BKIgms1THk4ZJ7Gn1fOy4nzILnXc=", - "android-arm-profile/darwin-x64.zip": "sha256-OEDxV6NyfUu87O1b4rs7ZMEx4tcTKHN4+HtkxDG93QA=", - "android-arm-profile/linux-x64.zip": "sha256-EEw/zY2eCeHXYoKp0lPCQEa3WQ44Ac6ETHF8a+ZWO+c=", - "android-arm-profile/windows-x64.zip": "sha256-mPcL6iOno0XAeAUcoXyPkLy4DQBMPQkHRXLWBiyBs5o=", - "android-arm-release/artifacts.zip": "sha256-YsmAQyVS5nvINOzwIEzjlhN0JX7l9RrfLOai+SOcbTo=", - "android-arm-release/darwin-x64.zip": "sha256-z71217SH8gpnGss3h6Dmga5vFydwhBo+eghFvc6cD4U=", - "android-arm-release/linux-x64.zip": "sha256-TgUJ9TBQurr1M5TmYvmUuAe2fsCKRTrq2I9MdJ+DN4U=", - "android-arm-release/windows-x64.zip": "sha256-j8LOfJ5XyO8PIwF8ZnvVekWAG1PNgCCcSYFAbiESUsM=", - "android-arm/artifacts.zip": "sha256-XDQvEKs/uYpOckInNFDJduuOmRZAepHGdOiGVZ1Gqgo=", - "android-arm64-profile/artifacts.zip": "sha256-KGyCUre2r1BR1QnkIEZrdruLA56zKc4DOMIKCV8tMKk=", - "android-arm64-profile/darwin-x64.zip": "sha256-hoO1FlgNxQKC2RXDdIbHdgrrXAnpXVF6tYBhWYA0vAs=", - "android-arm64-profile/linux-x64.zip": "sha256-lZxErv1Dw5HDWDRAOuGGkd6G5JPvgPHSDAdYa02Fn7I=", - "android-arm64-profile/windows-x64.zip": "sha256-Or9sFk9wgnu6mpV3L4CU3w+DeOldsF+dGXgLGMyIJQk=", - "android-arm64-release/artifacts.zip": "sha256-NcKkplrWu2A5e+3Xd2rDCd54lrO0JckqIDlxgwaflIc=", - "android-arm64-release/darwin-x64.zip": "sha256-2HwoWjucRwA2MWYuOqEOdcGsMsFPNtna1dUgHDHQvMc=", - "android-arm64-release/linux-x64.zip": "sha256-SlEhHUhr8dTM8ykXarlA3fZBEiY4UVOwuJW54M7mu8g=", - "android-arm64-release/windows-x64.zip": "sha256-s/jwY4XLQkANEHac1D05xNTmOQ+ee/XmCJmu75zq9DY=", - "android-arm64/artifacts.zip": "sha256-dcN5d1AbWZKsEytj1IHzzo71Q8oKyMBjfGNiMMwBGqs=", - "android-x64-profile/artifacts.zip": "sha256-/j00KLxumCl0YeJXllXs7cTGteW/zgUaOWobuRMOEiQ=", - "android-x64-profile/darwin-x64.zip": "sha256-FOoJI/SYMWv+I308L9mzOfjb6YWRHFsExwWwiaszbE8=", - "android-x64-profile/linux-x64.zip": "sha256-SjnWs/ahkTCqq8XazWxr3KT6YErT1d1+puHCT/AevGM=", - "android-x64-profile/windows-x64.zip": "sha256-zc2EHmeLx383uUsVE1Tqr4Y4oMOPPnyb1vP6NWtSIXs=", - "android-x64-release/artifacts.zip": "sha256-ERy3zRJfQgenp5yrB2yLlcbBJCMjgCoDljRXSmtUcMc=", - "android-x64-release/darwin-x64.zip": "sha256-hngQzsx28eSKZPmSIGdDiwB6ACxWFb19Hoxbgs9De1o=", - "android-x64-release/linux-x64.zip": "sha256-/qK/lM4nOStr+uhCfyhczbKZShOyrlSEl8QtCecGlSk=", - "android-x64-release/windows-x64.zip": "sha256-hYIPyGDtK0ovpXPlVyGIxIK4YaBinzhMfYBga6UWxNE=", - "android-x64/artifacts.zip": "sha256-uKXp/pL8aq++kwNwltjH3cN1/+N78nAZKQy97KSC+Fw=", - "android-x86/artifacts.zip": "sha256-IgotpG/va94e0ZWRc9PFkZBxT5JXuWk+5Mk5n10y1yw=", - "darwin-arm64/artifacts.zip": "sha256-vrxj4NezowGxLaYCdbDPXiCHZsqbv1bTkxOX3qzJv+w=", - "darwin-arm64/font-subset.zip": "sha256-4wlQrcmx450Vg7ShtcoKuJ5YtGkTitdHZ/fsRtEDJWw=", - "darwin-x64-profile/artifacts.zip": "sha256-g22kEEy8AIbVA6qZAcQLX9BB6ifafzL9xNCug+IaeAo=", - "darwin-x64-profile/framework.zip": "sha256-vEYX6NavbMoT+u97wr7K0b4NMal1yO9/M4bFWuZHapY=", - "darwin-x64-profile/gen_snapshot.zip": "sha256-j/kdHmCoC1JdycTT0FpoQ7f/VX1ZTUSKWmKsqI/CkKs=", - "darwin-x64-release/artifacts.zip": "sha256-NGMfznwDSIIYNuGbjDojfoprfTk71xP0mhXmp6hyo4g=", - "darwin-x64-release/framework.zip": "sha256-iYq0LTZb9D77Zd6PCfPk8cwEBUMj7ImV3648qNFkNfs=", - "darwin-x64-release/gen_snapshot.zip": "sha256-zj/+5Ox40f/FDYHH1h5QL3CAYf72IJwwKO5pVZ0MefE=", - "darwin-x64/artifacts.zip": "sha256-DgUPPScyhCox1CpeqrNuj93e64fGwmUzCRrFuPd3Mjo=", - "darwin-x64/font-subset.zip": "sha256-kBPObRjfcyt/qN689Wyj1P0FkRdNlzUTVuLZ+MchaxE=", - "darwin-x64/framework.zip": "sha256-AJKtDRsrW44P42zwFNepUHHPg5ZBNXlqnkYipGFYvbg=", - "darwin-x64/gen_snapshot.zip": "sha256-oH3sRPVJRPTagJCpEJ6sJj99ScIt9whgFwQnZuLvQx4=", - "flutter-web-sdk.zip": "sha256-5fcBtu5xh73o34UNgKl852HOpyu2iwk2KNzVHCgfO84=", - "flutter_gpu.zip": "sha256-ZUldHLUkF8nFaAdzB6e6SEfjwHf9s1NV+pafhs8Jj1E=", - "flutter_patched_sdk.zip": "sha256-7uxxBt/ubgVg+15d/o/UOnWAG69yx34psG7f4S3lvJw=", - "flutter_patched_sdk_product.zip": "sha256-jE2H3RD1mHFUWi+T2oLxaE8j+Pg8O9MbLc3C1636XsQ=", - "ios-profile/artifacts.zip": "sha256-hSW6t3ZwvQ9MpAv+sA1ymvF8eISViWb9OiflOZH1aDo=", - "ios-release/artifacts.zip": "sha256-L6xse/UqQMTtPNi/b6fYjj/RR+uLCd372sQsNRlyo1Q=", - "ios/artifacts.zip": "sha256-FJUsbkiq9ZW9CiriRzUL7Be8fChRgGnM0FJ/HeWlks8=", - "linux-arm64-debug/linux-arm64-flutter-gtk.zip": "sha256-eThLDiCqnewYjHNCnZM0COS9Cr5D9XjC+mtaUk0lcOA=", - "linux-arm64-profile/linux-arm64-flutter-gtk.zip": "sha256-YpQwuVqRJHY/DtR18nJucOvC9/hweQMBLt4BTCbHWWE=", - "linux-arm64-release/linux-arm64-flutter-gtk.zip": "sha256-/1OssZKRXtO5V6zLog5jv+H4nal3ied8kldMUGlISD8=", - "linux-arm64/artifacts.zip": "sha256-mkJdwu5KahaMU+lDtqhgFVcaYAZC4BZjYZ4RdMCgmHM=", - "linux-arm64/font-subset.zip": "sha256-n51PYirH0ZuM5z16re+XGxrntTpvFUUVfrP4KiBvbZ4=", - "linux-x64-debug/linux-x64-flutter-gtk.zip": "sha256-ESZ6xJR14JFfQ8PYJBdb8HA1V37ODpJHt0rLF8CanVA=", - "linux-x64-profile/linux-x64-flutter-gtk.zip": "sha256-VDXUMsTaAbpTDj+1xnQ+UhA9upWgpGG+n4XgBWLbhhM=", - "linux-x64-release/linux-x64-flutter-gtk.zip": "sha256-gtGWH+EhGLpk5NkGorhcIQSNX4TVg7F7+7blY5s4NrM=", - "linux-x64/artifacts.zip": "sha256-sFklXc5SwJTlQtaHNHD5sye+9xWRrLmng2LsNI5QhHk=", - "linux-x64/font-subset.zip": "sha256-cQbvsbn13uhWnx4tZPEJnVBaubv/lhYn1ethyhhgHds=", - "sky_engine.zip": "sha256-R2mm5f0qkn5ziknBT+XV0PwarRaCtwo9lTdD6mk2Kig=", - "windows-x64-debug/windows-x64-flutter.zip": "sha256-TxOA/F2oxNoOy7mUZfy/MsnVyGw64kFy2WV88Y5FVVw=", - "windows-x64-profile/windows-x64-flutter.zip": "sha256-osnuasxTGq3OqxYqSMlYSC/K1V4RXJDWuY6H9oJQnc4=", - "windows-x64-release/windows-x64-flutter.zip": "sha256-dLGNkXp51LusJquBM9UrL92WFUDDC5G0K0DDRd04iAU=", - "windows-x64/artifacts.zip": "sha256-XkzPHFwQsuNLIMn62VG9u6fQp2ABSXEtaf7oq7MM+J8=", - "windows-x64/flutter-cpp-client-wrapper.zip": "sha256-gdLKahdiHCths6t7Iy+YwapgBga0yhDxktVtO43jHkY=", - "windows-x64/font-subset.zip": "sha256-k3ke2TlZiuSQYQEp2WshLccGotJpHYBfnTQJQK4Wg4o=" - }, + "version": "3.29.3", + "engineVersion": "cf56914b326edb0ccb123ffdc60f00060bd513fa", + "engineSwiftShaderHash": "sha256-mRLCvhNkmHz7Rv6GzXkY7OB1opBSq+ATWZ466qZdgto=", + "engineSwiftShaderRev": "2fa7e9b99ae4e70ea5ae2cc9c8d3afb43391384f", "channel": "stable", - "dartHash": { - "aarch64-darwin": "sha256-EG5j2VkAkJk6le5R5ocp3i0Jyit7e9FsC1+1emCzZXw=", - "aarch64-linux": "sha256-NFLMrWHgV+t/oX6F7RqgNdRMNuM9rAdlVxd5j0fmTKg=", - "x86_64-darwin": "sha256-BgiG0riugy+Jzn25ce62IYpQfjcHEVJIfdUuslakSa4=", - "x86_64-linux": "sha256-whb91w9lbFDHjcag/65uXO16mnzO3qPkAvprXr4keIw=" + "engineHashes": { + "aarch64-linux": { + "aarch64-linux": "sha256-3BIBG9z433CDsBqX1T6K2y5kUI5ZTqXBBXLoCrX/f2A=", + "x86_64-linux": "sha256-3BIBG9z433CDsBqX1T6K2y5kUI5ZTqXBBXLoCrX/f2A=" + }, + "x86_64-linux": { + "aarch64-linux": "sha256-+4CswkW7+0gBcZKrLjugTIG5NWAxCB8y39iUxdND2I4=", + "x86_64-linux": "sha256-+4CswkW7+0gBcZKrLjugTIG5NWAxCB8y39iUxdND2I4=" + } }, "dartVersion": "3.7.2", - "engineVersion": "cf56914b326edb0ccb123ffdc60f00060bd513fa", + "dartHash": { + "x86_64-linux": "sha256-ClgSWEu0+lLcPIlabVvBY197/c/kyio6Zoq3KppbW3Y=", + "aarch64-linux": "sha256-NACnkq/pVMiWxfAt4+bkUjM0ZLwBWk5GQrbc9HGFE4k=", + "x86_64-darwin": "sha256-liZz9Bj1RFH7vmEpdMiJ9/h3Yut/o0qEBvydq8dGdKs=", + "aarch64-darwin": "sha256-544u8sIlQudxjBCSZlnQESLsOOdWp5h4lVTaY9P+pRQ=" + }, "flutterHash": "sha256-VWmKhxjerGKmw9fXhrRRVcKpUhefmJ2agRkIyWeAOO4=", + "artifactHashes": { + "android": { + "aarch64-darwin": "sha256-xWeagoJGFkHKW0oT5FSJCy254qemp5jZq/zXpadOrVY=", + "aarch64-linux": "sha256-2z7PgRGqUlFQZHJ53EdDT4p5Vk6OT2BJKx2QwSF7/QI=", + "x86_64-darwin": "sha256-xWeagoJGFkHKW0oT5FSJCy254qemp5jZq/zXpadOrVY=", + "x86_64-linux": "sha256-2z7PgRGqUlFQZHJ53EdDT4p5Vk6OT2BJKx2QwSF7/QI=" + }, + "fuchsia": { + "aarch64-darwin": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=", + "aarch64-linux": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=", + "x86_64-darwin": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=", + "x86_64-linux": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=" + }, + "ios": { + "aarch64-darwin": "sha256-mKrkm+Sio/SUPoivJNh+Kg4iZ6o/7P2Wsqi1ys5i6/k=", + "aarch64-linux": "sha256-mKrkm+Sio/SUPoivJNh+Kg4iZ6o/7P2Wsqi1ys5i6/k=", + "x86_64-darwin": "sha256-mKrkm+Sio/SUPoivJNh+Kg4iZ6o/7P2Wsqi1ys5i6/k=", + "x86_64-linux": "sha256-mKrkm+Sio/SUPoivJNh+Kg4iZ6o/7P2Wsqi1ys5i6/k=" + }, + "linux": { + "aarch64-darwin": "sha256-W8usesonlRBxd5CFQyQAyVfx4yMkd2UcZWbhVlB8Jwc=", + "aarch64-linux": "sha256-W8usesonlRBxd5CFQyQAyVfx4yMkd2UcZWbhVlB8Jwc=", + "x86_64-darwin": "sha256-RxNVQpRR4EWbK0WD+d6tZbweW3QE7Z3fipKFpf4YyG8=", + "x86_64-linux": "sha256-RxNVQpRR4EWbK0WD+d6tZbweW3QE7Z3fipKFpf4YyG8=" + }, + "macos": { + "aarch64-darwin": "sha256-WGm1+0IY5FMyXt5TSXcwrEw/u72lmc+2H7NR66uvxrE=", + "aarch64-linux": "sha256-WGm1+0IY5FMyXt5TSXcwrEw/u72lmc+2H7NR66uvxrE=", + "x86_64-darwin": "sha256-WGm1+0IY5FMyXt5TSXcwrEw/u72lmc+2H7NR66uvxrE=", + "x86_64-linux": "sha256-WGm1+0IY5FMyXt5TSXcwrEw/u72lmc+2H7NR66uvxrE=" + }, + "universal": { + "aarch64-darwin": "sha256-MxtHKccpQfurtKumtp00CRqB/riU5+wiHsuUh4sCXVY=", + "aarch64-linux": "sha256-w2onIP0zkg8N/vsnC9DKCrG4iIUvRiBhbHvSJYzW/fQ=", + "x86_64-darwin": "sha256-vq4/tCBQQtmJarcnrrL+saCUKS/xCoFHmKAxBSn1edI=", + "x86_64-linux": "sha256-TglGaiwmbxCYJ6bk1zJwhIYlPf3+VVTO5zCMpzyu/JY=" + }, + "web": { + "aarch64-darwin": "sha256-yN5ElLmpNG71yY9Egye8uXgHwiL8xRwNCkczElLf27Q=", + "aarch64-linux": "sha256-yN5ElLmpNG71yY9Egye8uXgHwiL8xRwNCkczElLf27Q=", + "x86_64-darwin": "sha256-yN5ElLmpNG71yY9Egye8uXgHwiL8xRwNCkczElLf27Q=", + "x86_64-linux": "sha256-yN5ElLmpNG71yY9Egye8uXgHwiL8xRwNCkczElLf27Q=" + }, + "windows": { + "x86_64-darwin": "sha256-l9rG2aRTrN26QFnLvbeGiUvMz8+faCo3byIbz33DWpY=", + "x86_64-linux": "sha256-l9rG2aRTrN26QFnLvbeGiUvMz8+faCo3byIbz33DWpY=" + } + }, "pubspecLock": { "packages": { "_fe_analyzer_shared": { @@ -1047,6 +1042,5 @@ "sdks": { "dart": ">=3.7.0-0 <4.0.0" } - }, - "version": "3.29.3" + } } diff --git a/pkgs/development/compilers/flutter/versions/3_29/patches/no-cache.patch b/pkgs/development/compilers/flutter/versions/3_29/patches/no-cache.patch deleted file mode 100644 index 74d15f724325..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_29/patches/no-cache.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- a/packages/flutter_tools/lib/src/cache.dart -+++ b/packages/flutter_tools/lib/src/cache.dart -@@ -321,7 +321,7 @@ - bool fatalStorageWarning = true; - - static RandomAccessFile? _lock; -- static bool _lockEnabled = true; -+ static bool _lockEnabled = false; - - /// Turn off the [lock]/[releaseLock] mechanism. - /// -@@ -725,7 +725,6 @@ - } - - void setStampFor(String artifactName, String version) { -- getStampFileFor(artifactName).writeAsStringSync(version); - } - - File getStampFileFor(String artifactName) { -@@ -1010,31 +1009,6 @@ - } - - Future checkForArtifacts(String? engineVersion) async { -- engineVersion ??= version; -- final String url = '${cache.storageBaseUrl}/flutter_infra_release/flutter/$engineVersion/'; -- -- bool exists = false; -- for (final String pkgName in getPackageDirs()) { -- exists = await cache.doesRemoteExist( -- 'Checking package $pkgName is available...', -- Uri.parse('$url$pkgName.zip'), -- ); -- if (!exists) { -- return false; -- } -- } -- -- for (final List toolsDir in getBinaryDirs()) { -- final String cacheDir = toolsDir[0]; -- final String urlPath = toolsDir[1]; -- exists = await cache.doesRemoteExist( -- 'Checking $cacheDir tools are available...', -- Uri.parse(url + urlPath), -- ); -- if (!exists) { -- return false; -- } -- } - return true; - } - diff --git a/pkgs/development/compilers/flutter/versions/3_29/patches/version.patch b/pkgs/development/compilers/flutter/versions/3_29/patches/version.patch deleted file mode 100644 index 40cfcda6a011..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_29/patches/version.patch +++ /dev/null @@ -1,126 +0,0 @@ ---- a/packages/flutter_tools/lib/src/version.dart -+++ b/packages/flutter_tools/lib/src/version.dart -@@ -95,11 +95,7 @@ - } - } - -- final String frameworkRevision = _runGit( -- gitLog(['-n', '1', '--pretty=format:%H']).join(' '), -- globals.processUtils, -- flutterRoot, -- ); -+ final String frameworkRevision = 'nixpkgs000000000000000000000000000000000'; - - return FlutterVersion.fromRevision( - clock: clock, -@@ -192,11 +188,7 @@ - // TODO(fujino): calculate this relative to frameworkCommitDate for - // _FlutterVersionFromFile so we don't need a git call. - String get frameworkAge { -- return _frameworkAge ??= _runGit( -- FlutterVersion.gitLog(['-n', '1', '--pretty=format:%ar']).join(' '), -- globals.processUtils, -- flutterRoot, -- ); -+ return 'unknown'; - } - - void ensureVersionFile(); -@@ -327,9 +319,7 @@ - /// remote git repository is not reachable due to a network issue. - static Future fetchRemoteFrameworkCommitDate() async { - try { -- // Fetch upstream branch's commit and tags -- await _run(['git', 'fetch', '--tags']); -- return _gitCommitDate(gitRef: kGitTrackingUpstream, workingDirectory: Cache.flutterRoot); -+ return 'unknown'; - } on VersionCheckError catch (error) { - globals.printError(error.message); - rethrow; -@@ -354,14 +344,7 @@ - /// If [redactUnknownBranches] is true and the branch is unknown, - /// the branch name will be returned as `'[user-branch]'` ([kUserBranch]). - String getBranchName({bool redactUnknownBranches = false}) { -- _branch ??= () { -- final String branch = _runGit( -- 'git symbolic-ref --short HEAD', -- globals.processUtils, -- flutterRoot, -- ); -- return branch == 'HEAD' ? '' : branch; -- }(); -+ _branch ??= 'stable'; - if (redactUnknownBranches || _branch!.isEmpty) { - // Only return the branch names we know about; arbitrary branch names might contain PII. - if (!kOfficialChannels.contains(_branch) && !kObsoleteBranches.containsKey(_branch)) { -@@ -404,30 +387,7 @@ - bool lenient = false, - required String? workingDirectory, - }) { -- final List args = FlutterVersion.gitLog([ -- gitRef, -- '-n', -- '1', -- '--pretty=format:%ad', -- '--date=iso', -- ]); -- try { -- // Don't plumb 'lenient' through directly so that we can print an error -- // if something goes wrong. -- return _runSync(args, lenient: false, workingDirectory: workingDirectory); -- } on VersionCheckError catch (e) { -- if (lenient) { -- final DateTime dummyDate = DateTime.fromMillisecondsSinceEpoch(0); -- globals.printError( -- 'Failed to find the latest git commit date: $e\n' -- 'Returning $dummyDate instead.', -- ); -- // Return something that DateTime.parse() can parse. -- return dummyDate.toString(); -- } else { -- rethrow; -- } -- } -+ return 'unknown'; - } - - class _FlutterVersionFromFile extends FlutterVersion { -@@ -541,20 +501,7 @@ - @override - String? get repositoryUrl { - if (_repositoryUrl == null) { -- final String gitChannel = _runGit( -- 'git rev-parse --abbrev-ref --symbolic $kGitTrackingUpstream', -- globals.processUtils, -- flutterRoot, -- ); -- final int slash = gitChannel.indexOf('/'); -- if (slash != -1) { -- final String remote = gitChannel.substring(0, slash); -- _repositoryUrl = _runGit( -- 'git ls-remote --get-url $remote', -- globals.processUtils, -- flutterRoot, -- ); -- } -+ _repositoryUrl = 'https://github.com/flutter/flutter.git'; - } - return _repositoryUrl; - } -@@ -926,6 +873,16 @@ - final String? gitTag; - - static GitTagVersion determine( -+ ProcessUtils processUtils, -+ Platform platform, { -+ String? workingDirectory, -+ bool fetchTags = false, -+ String gitRef = 'HEAD', -+ }) { -+ return GitTagVersion.unknown(); -+ } -+ -+ static GitTagVersion determine_orig( - ProcessUtils processUtils, - Platform platform, { - String? workingDirectory, diff --git a/pkgs/development/compilers/flutter/versions/3_32/data.json b/pkgs/development/compilers/flutter/versions/3_32/data.json index 323b74eb9900..078a4c8a8d51 100644 --- a/pkgs/development/compilers/flutter/versions/3_32/data.json +++ b/pkgs/development/compilers/flutter/versions/3_32/data.json @@ -1,80 +1,75 @@ { - "artifactHashes": { - "android-arm-profile/artifacts.zip": "sha256-zDWexI+zuOfmJc4EnnANllZAyNbp0mb82EOIPmech3A=", - "android-arm-profile/darwin-x64.zip": "sha256-hbt0aCFcEl6Wk44k9hezrq6QFrtk07JFjci5MamePts=", - "android-arm-profile/linux-x64.zip": "sha256-lmoROV2f0iHLxvVclpOkXCSN/pS5LDz3LvVTJBsxtd8=", - "android-arm-profile/windows-x64.zip": "sha256-a4p6exLes0AfkTHVd80zk81JP9WwpdkYXMdyo6JhQ2E=", - "android-arm-release/artifacts.zip": "sha256-mjylyqqCjshOuhJ5Os7fxAnWdBz0oY4cE4YKLxmVhpk=", - "android-arm-release/darwin-x64.zip": "sha256-LASl5TmDLj0Qy+UrgtzSOijpT7Oz4rMiNmC5wMXZ5Os=", - "android-arm-release/linux-x64.zip": "sha256-lUDZI1/kiAdd3sI/aswsbIjYg6iePXfuhRPYzQNmnJo=", - "android-arm-release/windows-x64.zip": "sha256-4DH2j5MrPwi3Zn4tmsO8yohANQ0nC1nNjEWFhYGS5e8=", - "android-arm/artifacts.zip": "sha256-/0wqrYzhP4LSZuV8o01TaCHgON94JaE9yva78nr8NRs=", - "android-arm64-profile/artifacts.zip": "sha256-1VsImF6T00WlnJrOjdste1Ct0DYmOKWdjaWyjWPQUv4=", - "android-arm64-profile/darwin-x64.zip": "sha256-nF98oM6jmI1DPrdvqFjjX3HzilqsKxelj3sMQD/sV9s=", - "android-arm64-profile/linux-x64.zip": "sha256-qe3G57ww/H7PoK4Y6CEVjl5LVTecxTvia1fLJgprWUw=", - "android-arm64-profile/windows-x64.zip": "sha256-y9bnrKnX1w0RpYZ8gcShWUMACZCP2vdVWteFy47mTJo=", - "android-arm64-release/artifacts.zip": "sha256-rYRDJNgNjWHS5vxmq60+lafR02vfdyiRDcy5WbzCjzA=", - "android-arm64-release/darwin-x64.zip": "sha256-GQZR3p1OnI/cYw+GMawOId/FPpCCWbwDASTN0hKUXjQ=", - "android-arm64-release/linux-x64.zip": "sha256-ByMH2CSI3eOzYMeM9Kvpi3eljYtybkIpXqE0iJ+p4zk=", - "android-arm64-release/windows-x64.zip": "sha256-pR/QMQzn3KbjZFPBysQ5kAfkcC3Vdqx97jLMQ2iL2Cs=", - "android-arm64/artifacts.zip": "sha256-OxhJ9s1O6O5jLI6rKiisEiHaWvumYgVJLozJEnfjP1A=", - "android-x64-profile/artifacts.zip": "sha256-OS/wqrZK/IcvI1795TdVnlYqsyki8SBNFI34rQeT58U=", - "android-x64-profile/darwin-x64.zip": "sha256-YniOHobbhrxHTSrt4hYNhrz0xpvWIusg19qe5MRbJUk=", - "android-x64-profile/linux-x64.zip": "sha256-9/S7Q5djz2e6TU/NI6N2Y24hsamky4XD+djkCX5JwAg=", - "android-x64-profile/windows-x64.zip": "sha256-wf4CZhFv25svHTbY8cB2v0YyB2EwZqB+wLZf3XQHd50=", - "android-x64-release/artifacts.zip": "sha256-zpNIFJxQuJsEntQDvJgrPUFxaP06skS6T6N8eEW5H6M=", - "android-x64-release/darwin-x64.zip": "sha256-uh2tqQac85zgUH/I9ACUSsdqL46BfPvgosuyECO5j6k=", - "android-x64-release/linux-x64.zip": "sha256-WYK27e9gpn6cZOBVca/6drLH18kE7qZVQu2rKiYhkV0=", - "android-x64-release/windows-x64.zip": "sha256-3gah7k9T9JNUHeKgHy/v4l9O7A6BZrnVtwVbALx4dVg=", - "android-x64/artifacts.zip": "sha256-jrPwJSXQQ2dH7h/HtRJmTvL/uqy9moG5FR2Y6M+6y1M=", - "android-x86/artifacts.zip": "sha256-iGlh72so0ieVraCU77Xix9g2CWfmF1wpjsH2A/eIz/w=", - "darwin-arm64/artifacts.zip": "sha256-BSFNTVaNXE8178rjKiXHU4KZXyGk1pcbnBlDe3AjdGI=", - "darwin-arm64/font-subset.zip": "sha256-uNjn2tEUGrgIFId+4m03Aj7ABcx5w5TJB0aVL0xL2G4=", - "darwin-x64-profile/artifacts.zip": "sha256-G8v4R0bvByd3ek93nDxF16KIdcDaGIUhtMoJAMwzGko=", - "darwin-x64-profile/framework.zip": "sha256-/XY/Ta1sEM3iCZ2qnIGWskHrrzhAIQTnN4x+aRtqOUo=", - "darwin-x64-profile/gen_snapshot.zip": "sha256-eUxbCo8TvFdxz4KoMGHi2IT7kq5WL51ZHFrIUb+7FG4=", - "darwin-x64-release/artifacts.zip": "sha256-N14BAWCnMU9Ezuj/VRbmthxiHP7dtr6YlUG8b2XT37o=", - "darwin-x64-release/framework.zip": "sha256-Q/17YSyMKU0+iObwV7SvyKODI+P7a3ErXlNm4HidHAQ=", - "darwin-x64-release/gen_snapshot.zip": "sha256-rRCTkI5qXMFviMxeTush2t+RSdvP1HxgF2ovGQHDMHI=", - "darwin-x64/artifacts.zip": "sha256-Gt46l5s1lHHTwHxTVRO0W2+ymG/SsuWS6Ee56EUWwCs=", - "darwin-x64/font-subset.zip": "sha256-fDTfVUQp/PayjqEbj5HOkfZEcnMePtrE36tXbpRFaHw=", - "darwin-x64/framework.zip": "sha256-b2q5XpSGV3HvNZc72/6OlfcpxfDoC0MyS7UsCIVa2I8=", - "darwin-x64/gen_snapshot.zip": "sha256-MvJcufyFXJNMwPU80qkU2YyPy28o4D4HWJoII2pjiXs=", - "flutter-web-sdk.zip": "sha256-u+lbjL8mEuaUEZZZ7sXa5w+MQXWFGns7uNxhzaw53O4=", - "flutter_gpu.zip": "sha256-WwtMMiFP+Pi9TQbacTGPBtR80afaqioPgBZOK34YtWk=", - "flutter_patched_sdk.zip": "sha256-SoQomgnpZFSgI4a9eh+7teVZ+KTTqYm3Uyh+99IwVVM=", - "flutter_patched_sdk_product.zip": "sha256-QhDNJ7DkFAWqZG4XLKOB7Nyqg/Tc7bH4e4xUZrJqXGQ=", - "ios-profile/artifacts.zip": "sha256-TWN5VVlzZw0K3dXsS1gyLnvvRGNC9mXlMS4U+52qIOI=", - "ios-release/artifacts.zip": "sha256-I0OY5WGKF3HH66K8MlHrIDsTS9HxBYmBe9uLeLjkjbc=", - "ios/artifacts.zip": "sha256-uO1HQFIswJbiCkY4OSexNI92KPmG90sP7zavjxUmZ3g=", - "linux-arm64-debug/linux-arm64-flutter-gtk.zip": "sha256-ky/wf3lIwViqWuDgcXAdH7r8SdpDaE55nIu2dMMk9g0=", - "linux-arm64-profile/linux-arm64-flutter-gtk.zip": "sha256-HSzTOa0HetnobXfTenrE60kUul/Riy8C5AsyIOaQd2o=", - "linux-arm64-release/linux-arm64-flutter-gtk.zip": "sha256-+hBJ1ELS2rsCcvbYTGllCMkYroLFeWncXaYusfFS+pw=", - "linux-arm64/artifacts.zip": "sha256-J13A0cMXbb7BfIOI8wT4/d2/el4KjmRcz0+azy/sM7A=", - "linux-arm64/font-subset.zip": "sha256-nWwP3VI15gLPN/FRqN5TJ74l2ojbbe3bHhXVdEGztuM=", - "linux-x64-debug/linux-x64-flutter-gtk.zip": "sha256-mPmS92NUxaUrIUtH0BVZKSOYGwYXeLr3qg9YdkjjFYQ=", - "linux-x64-profile/linux-x64-flutter-gtk.zip": "sha256-48SB0A+sKiR55BMt+ZqAxRSxr3ikf/vJTFhnrWSMPk0=", - "linux-x64-release/linux-x64-flutter-gtk.zip": "sha256-WxqyHrIEyjgH/p9AjLqkOSHIsRZFEHNb5XYtAS9BP88=", - "linux-x64/artifacts.zip": "sha256-2jFV0xPe3trdEmC+ApWJfbz1v7T6ZkY3Iq+TmRgmpd4=", - "linux-x64/font-subset.zip": "sha256-eHAeGxsVWtKZhT/7W0TyOY5lMoIkl//rjWAxp0OVZWA=", - "sky_engine.zip": "sha256-t72yVeV6QYQtfIwiJNoL96gSvQD0DJW7wE6k7Ut9RaU=", - "windows-x64-debug/windows-x64-flutter.zip": "sha256-HNpEBvJ4wnCTa50JSxk6PmDaOex+kxPg24U3eq/BGbQ=", - "windows-x64-profile/windows-x64-flutter.zip": "sha256-2DwFbYQgZUjnBn6Zt6mUC1R39Xi0jR+9OeGerD2y4mw=", - "windows-x64-release/windows-x64-flutter.zip": "sha256-DcU909remUeNvvCRym0vGjDjUoJ0tTCALTPGJi8Omcs=", - "windows-x64/artifacts.zip": "sha256-Jvn4GYQPI4HIdxrzIDHssnRUdJ9t5Hmg1ii8T+uSoeY=", - "windows-x64/flutter-cpp-client-wrapper.zip": "sha256-cBNZivR/2ZK70ZJwOUiV9X7f6yuqtJmrYuupOfP4HFk=", - "windows-x64/font-subset.zip": "sha256-NN6mjRubl5SPNvFGHE8fKBn++NWfDYqca5wuquc0uow=" - }, + "version": "3.32.8", + "engineVersion": "ef0cd000916d64fa0c5d09cc809fa7ad244a5767", + "engineSwiftShaderHash": "sha256-ATVcuxqPHqHOWYyO7DoX9LdgUiO3INUi7m9Mc6ccc1M=", + "engineSwiftShaderRev": "d040a5bab638bf7c226235c95787ba6288bb6416", "channel": "stable", - "dartHash": { - "aarch64-darwin": "sha256-UIC8b0p4zM4OOOceRkdsCNYeCBRTZGlI8/DHcXepKPg=", - "aarch64-linux": "sha256-eKMkAJe+47ebAJxp6tIuGq7e3ty+CT6qmACExWYQlsg=", - "x86_64-darwin": "sha256-OTcd89ZPlPWz2cERnD9UkWTFYoxqE7lFG3tEhZ8fkRQ=", - "x86_64-linux": "sha256-DVjAEKNh8/FYixwvV5QvfMr3t6u+A0BP73oQLrY48J0=" + "engineHashes": { + "aarch64-linux": { + "aarch64-linux": "sha256-JrbIMYwdfe36y6bHj1eAjYOKPGGp7mfWxWDCoCm7wiQ=", + "x86_64-linux": "sha256-JrbIMYwdfe36y6bHj1eAjYOKPGGp7mfWxWDCoCm7wiQ=" + }, + "x86_64-linux": { + "aarch64-linux": "sha256-R0ut5hzzBgfjbZFB1ofK4jEmr3CcBKHFJUl3c7nmn0E=", + "x86_64-linux": "sha256-R0ut5hzzBgfjbZFB1ofK4jEmr3CcBKHFJUl3c7nmn0E=" + } }, "dartVersion": "3.8.1", - "engineVersion": "ef0cd000916d64fa0c5d09cc809fa7ad244a5767", + "dartHash": { + "x86_64-linux": "sha256-3eE40VMwrPFD502lIaz+CkD7mBnSI/WqJ3C4DVQ01Z4=", + "aarch64-linux": "sha256-0GXCO00ar5532h+cXBEIe8BhGVKOuGuoPzr1M00muh4=", + "x86_64-darwin": "sha256-S3iGDVLollApke2SnXAcV919qsDTVmz5Gf9fTletr00=", + "aarch64-darwin": "sha256-haHQks9N1mBIqRsYg9sOLw7ra7gC708gsTWfKxvIK1c=" + }, "flutterHash": "sha256-s5T16+cMmL2ustJQjwFbfS8G+/TJW/WCEF1IO4WgbXQ=", + "artifactHashes": { + "android": { + "aarch64-darwin": "sha256-hswA4YkMM3uur0F2KuA32g+EXtCPH7SYVZkjr2EFV7o=", + "aarch64-linux": "sha256-1V8hfmK2q2QgbIT+YC/WtFZmkG7xcvrJYPeiN0o4fhY=", + "x86_64-darwin": "sha256-hswA4YkMM3uur0F2KuA32g+EXtCPH7SYVZkjr2EFV7o=", + "x86_64-linux": "sha256-1V8hfmK2q2QgbIT+YC/WtFZmkG7xcvrJYPeiN0o4fhY=" + }, + "fuchsia": { + "aarch64-darwin": "sha256-WkWLbIpEyrwyB9mcA3ElNecRmCVt8+6y3qKi9zFRR9I=", + "aarch64-linux": "sha256-WkWLbIpEyrwyB9mcA3ElNecRmCVt8+6y3qKi9zFRR9I=", + "x86_64-darwin": "sha256-WkWLbIpEyrwyB9mcA3ElNecRmCVt8+6y3qKi9zFRR9I=", + "x86_64-linux": "sha256-WkWLbIpEyrwyB9mcA3ElNecRmCVt8+6y3qKi9zFRR9I=" + }, + "ios": { + "aarch64-darwin": "sha256-obbmFnObjvQH6sLL0MsRrFtA0x8yCOo7clMqQzteWGY=", + "aarch64-linux": "sha256-obbmFnObjvQH6sLL0MsRrFtA0x8yCOo7clMqQzteWGY=", + "x86_64-darwin": "sha256-obbmFnObjvQH6sLL0MsRrFtA0x8yCOo7clMqQzteWGY=", + "x86_64-linux": "sha256-obbmFnObjvQH6sLL0MsRrFtA0x8yCOo7clMqQzteWGY=" + }, + "linux": { + "aarch64-darwin": "sha256-LID4h0JABLwjmrv3XS1MEWTYn/7GmBtybqiLbErfgWA=", + "aarch64-linux": "sha256-LID4h0JABLwjmrv3XS1MEWTYn/7GmBtybqiLbErfgWA=", + "x86_64-darwin": "sha256-k8fVg13YXFFBAI0OKph1DqzfmNk1PYAyy/PVuma2hlM=", + "x86_64-linux": "sha256-k8fVg13YXFFBAI0OKph1DqzfmNk1PYAyy/PVuma2hlM=" + }, + "macos": { + "aarch64-darwin": "sha256-Y+T2SuM4D8Du/MAQR9DScU8ObPPE7WGxxvC5Km2YmHg=", + "aarch64-linux": "sha256-Y+T2SuM4D8Du/MAQR9DScU8ObPPE7WGxxvC5Km2YmHg=", + "x86_64-darwin": "sha256-Y+T2SuM4D8Du/MAQR9DScU8ObPPE7WGxxvC5Km2YmHg=", + "x86_64-linux": "sha256-Y+T2SuM4D8Du/MAQR9DScU8ObPPE7WGxxvC5Km2YmHg=" + }, + "universal": { + "aarch64-darwin": "sha256-h4v8Pyw7VqFDWh+VCcz12bgd1o5FIb+cpomR0k570f4=", + "aarch64-linux": "sha256-ZBDA3tS2GwnubeIuXhZ7Zxc75KNim5OCYkkn03KMYGs=", + "x86_64-darwin": "sha256-USoiNw8AUinCwMvrpOTmhSDq/TP1f0N9ZT8l8ZILzOo=", + "x86_64-linux": "sha256-OfSxYyyaRxaUCDR8ZjTdIBQ3PFpRXoA1YHIIooXAKKY=" + }, + "web": { + "aarch64-darwin": "sha256-jaDnIyn0uwLOblQ1IqU0TlsgBrXyk8wXhlRzAwXLo50=", + "aarch64-linux": "sha256-jaDnIyn0uwLOblQ1IqU0TlsgBrXyk8wXhlRzAwXLo50=", + "x86_64-darwin": "sha256-jaDnIyn0uwLOblQ1IqU0TlsgBrXyk8wXhlRzAwXLo50=", + "x86_64-linux": "sha256-jaDnIyn0uwLOblQ1IqU0TlsgBrXyk8wXhlRzAwXLo50=" + }, + "windows": { + "x86_64-darwin": "sha256-zJrruuMcgtOXRrkRPoGHovyjABDck0Dzjrz7bCtx4C4=", + "x86_64-linux": "sha256-zJrruuMcgtOXRrkRPoGHovyjABDck0Dzjrz7bCtx4C4=" + } + }, "pubspecLock": { "packages": { "_fe_analyzer_shared": { @@ -1051,6 +1046,5 @@ "sdks": { "dart": ">=3.7.0 <4.0.0" } - }, - "version": "3.32.8" + } } diff --git a/pkgs/development/compilers/flutter/versions/3_32/patches/no-cache.patch b/pkgs/development/compilers/flutter/versions/3_32/patches/no-cache.patch deleted file mode 100644 index d596d6c64322..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_32/patches/no-cache.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- a/packages/flutter_tools/lib/src/cache.dart -+++ b/packages/flutter_tools/lib/src/cache.dart -@@ -321,7 +321,7 @@ - bool fatalStorageWarning = true; - - static RandomAccessFile? _lock; -- static bool _lockEnabled = true; -+ static bool _lockEnabled = false; - - /// Turn off the [lock]/[releaseLock] mechanism. - /// -@@ -727,7 +727,6 @@ - } - - void setStampFor(String artifactName, String version) { -- getStampFileFor(artifactName).writeAsStringSync(version); - } - - File getStampFileFor(String artifactName) { -@@ -1015,31 +1014,6 @@ - } - - Future checkForArtifacts(String? engineVersion) async { -- engineVersion ??= version; -- final String url = '${cache.storageBaseUrl}/flutter_infra_release/flutter/$engineVersion/'; -- -- bool exists = false; -- for (final String pkgName in getPackageDirs()) { -- exists = await cache.doesRemoteExist( -- 'Checking package $pkgName is available...', -- Uri.parse('$url$pkgName.zip'), -- ); -- if (!exists) { -- return false; -- } -- } -- -- for (final List toolsDir in getBinaryDirs()) { -- final String cacheDir = toolsDir[0]; -- final String urlPath = toolsDir[1]; -- exists = await cache.doesRemoteExist( -- 'Checking $cacheDir tools are available...', -- Uri.parse(url + urlPath), -- ); -- if (!exists) { -- return false; -- } -- } - return true; - } - diff --git a/pkgs/development/compilers/flutter/versions/3_32/patches/version.patch b/pkgs/development/compilers/flutter/versions/3_32/patches/version.patch deleted file mode 100644 index 61e6cd40ddff..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_32/patches/version.patch +++ /dev/null @@ -1,131 +0,0 @@ ---- a/packages/flutter_tools/lib/src/version.dart -+++ b/packages/flutter_tools/lib/src/version.dart -@@ -95,11 +95,7 @@ - } - } - -- final String frameworkRevision = _runGit( -- gitLog(['-n', '1', '--pretty=format:%H']).join(' '), -- globals.processUtils, -- flutterRoot, -- ); -+ final String frameworkRevision = 'nixpkgs000000000000000000000000000000000'; - - return FlutterVersion.fromRevision( - clock: clock, -@@ -198,16 +194,7 @@ - final String flutterRoot; - - String _getTimeSinceCommit({String? revision}) { -- return _runGit( -- FlutterVersion.gitLog([ -- '-n', -- '1', -- '--pretty=format:%ar', -- if (revision != null) revision, -- ]).join(' '), -- globals.processUtils, -- flutterRoot, -- ); -+ return 'unknown'; - } - - // TODO(fujino): calculate this relative to frameworkCommitDate for -@@ -356,9 +343,7 @@ - /// remote git repository is not reachable due to a network issue. - static Future fetchRemoteFrameworkCommitDate() async { - try { -- // Fetch upstream branch's commit and tags -- await _run(['git', 'fetch', '--tags']); -- return _gitCommitDate(gitRef: kGitTrackingUpstream, workingDirectory: Cache.flutterRoot); -+ return 'unknown'; - } on VersionCheckError catch (error) { - globals.printError(error.message); - rethrow; -@@ -383,14 +368,7 @@ - /// If [redactUnknownBranches] is true and the branch is unknown, - /// the branch name will be returned as `'[user-branch]'` ([kUserBranch]). - String getBranchName({bool redactUnknownBranches = false}) { -- _branch ??= () { -- final String branch = _runGit( -- 'git symbolic-ref --short HEAD', -- globals.processUtils, -- flutterRoot, -- ); -- return branch == 'HEAD' ? '' : branch; -- }(); -+ _branch ??= 'stable'; - if (redactUnknownBranches || _branch!.isEmpty) { - // Only return the branch names we know about; arbitrary branch names might contain PII. - if (!kOfficialChannels.contains(_branch) && !kObsoleteBranches.containsKey(_branch)) { -@@ -433,30 +411,7 @@ - bool lenient = false, - required String? workingDirectory, - }) { -- final List args = FlutterVersion.gitLog([ -- gitRef, -- '-n', -- '1', -- '--pretty=format:%ad', -- '--date=iso', -- ]); -- try { -- // Don't plumb 'lenient' through directly so that we can print an error -- // if something goes wrong. -- return _runSync(args, lenient: false, workingDirectory: workingDirectory); -- } on VersionCheckError catch (e) { -- if (lenient) { -- final DateTime dummyDate = DateTime.fromMillisecondsSinceEpoch(0); -- globals.printError( -- 'Failed to find the latest git commit date: $e\n' -- 'Returning $dummyDate instead.', -- ); -- // Return something that DateTime.parse() can parse. -- return dummyDate.toString(); -- } else { -- rethrow; -- } -- } -+ return 'unknown'; - } - - class _FlutterVersionFromFile extends FlutterVersion { -@@ -585,20 +540,7 @@ - @override - String? get repositoryUrl { - if (_repositoryUrl == null) { -- final String gitChannel = _runGit( -- 'git rev-parse --abbrev-ref --symbolic $kGitTrackingUpstream', -- globals.processUtils, -- flutterRoot, -- ); -- final int slash = gitChannel.indexOf('/'); -- if (slash != -1) { -- final String remote = gitChannel.substring(0, slash); -- _repositoryUrl = _runGit( -- 'git ls-remote --get-url $remote', -- globals.processUtils, -- flutterRoot, -- ); -- } -+ _repositoryUrl = 'https://github.com/flutter/flutter.git'; - } - return _repositoryUrl; - } -@@ -970,6 +912,16 @@ - final String? gitTag; - - static GitTagVersion determine( -+ ProcessUtils processUtils, -+ Platform platform, { -+ String? workingDirectory, -+ bool fetchTags = false, -+ String gitRef = 'HEAD', -+ }) { -+ return GitTagVersion.unknown(); -+ } -+ -+ static GitTagVersion determine_orig( - ProcessUtils processUtils, - Platform platform, { - String? workingDirectory, diff --git a/pkgs/development/compilers/flutter/versions/3_35/data.json b/pkgs/development/compilers/flutter/versions/3_35/data.json index 187a2f4b3263..6d04fcf6b864 100644 --- a/pkgs/development/compilers/flutter/versions/3_35/data.json +++ b/pkgs/development/compilers/flutter/versions/3_35/data.json @@ -1,80 +1,75 @@ { - "artifactHashes": { - "android-arm-profile/artifacts.zip": "sha256-tkMKTImxVqFBQhJDVD2NB0thlB/A1NFRekV1ScYLwVM=", - "android-arm-profile/darwin-x64.zip": "sha256-ktPTy7G41qtJ5oOeE6mfKK3IQQlBAmIBtFm7cUEOkxQ=", - "android-arm-profile/linux-x64.zip": "sha256-3Imdiu+I4WmOqsYmJjnyRFkOOfgIJjPbDUba6V08VmQ=", - "android-arm-profile/windows-x64.zip": "sha256-jJEhtr8Jvuak7n5Wq0t2wMMk2J6Vpmu5WlbXl3zN1AE=", - "android-arm-release/artifacts.zip": "sha256-WxypxJNW28+v88bGjfksIYSiCVdDkOnqzlBOJSPxwGQ=", - "android-arm-release/darwin-x64.zip": "sha256-J17mW6Xfbd+YT5N7n1Y+QTRK9DVk8l1ai37UDdt3rEY=", - "android-arm-release/linux-x64.zip": "sha256-gs/SzGsz9cjp6qM2Izqg0CbfX5WWFE1Cgy3X8mIB5Mc=", - "android-arm-release/windows-x64.zip": "sha256-ON/g8l1MlXB53CDjF8fZgOJ69l32WGhMnD5Bnxn7nys=", - "android-arm/artifacts.zip": "sha256-/1CR0aybIBZGopc0O5A9jG9Sn0MWlPts2WkhFva+72c=", - "android-arm64-profile/artifacts.zip": "sha256-geB9xlwjS+TDcE2CabNwX4R3gLwLmELO3OvJLMhaCG8=", - "android-arm64-profile/darwin-x64.zip": "sha256-cx8D1W5ezsf0DoWTU4nQycFtER59uSu5T8Mbrq7F4mc=", - "android-arm64-profile/linux-x64.zip": "sha256-bp3WdqCC0uD3gcbtcTpe0Bk28Co75PEjlYunN0nAGR0=", - "android-arm64-profile/windows-x64.zip": "sha256-bVDWw5Z7MHUqezYVdO5wZT7mnTSzmBoI/4PAFopsOyw=", - "android-arm64-release/artifacts.zip": "sha256-0/Q7w98SG69nEd2S2pp8djnk7zmC1YfLIW126tQtooc=", - "android-arm64-release/darwin-x64.zip": "sha256-9kcha9KcoHsEgY6jSdP92ETk+BqFeQ7LsgD0ubHkNLE=", - "android-arm64-release/linux-x64.zip": "sha256-JqVh/V7HBzbsa/9iacL2RZFf3X9GFs2llsDaTbOQdsU=", - "android-arm64-release/windows-x64.zip": "sha256-Xrtl3WBXvzLnn/I1vCsGIS+DyTCE9gJYBLDucn/H8u4=", - "android-arm64/artifacts.zip": "sha256-e3+ybL9AG3xN559EcWBtBxitudQd9HUluEHB15IX7ps=", - "android-x64-profile/artifacts.zip": "sha256-5bvosBPGtU2T1GGLGkPmyTVJ90JBdrGK+8C79mgSRSA=", - "android-x64-profile/darwin-x64.zip": "sha256-7vIRNLkQmVGhc48GtdYfC4oA3d35kPQtj3vcIKBchJc=", - "android-x64-profile/linux-x64.zip": "sha256-wYYyhpVXNjUPmoSbarHkTv2xSPUkmnSSVaDaYGNSTJM=", - "android-x64-profile/windows-x64.zip": "sha256-1FXPNfRQjncl5Pyg5x4TslWeCOIyrKBhjVBFkGLzHeM=", - "android-x64-release/artifacts.zip": "sha256-mRoPNcpq5hBL/AxskFK8ccbvKwzgb2vEUVJ9WtgUlH0=", - "android-x64-release/darwin-x64.zip": "sha256-AfWv2mUDxFzwDK/dGl/TrrkP2YyyOGNmfde6bj06AtE=", - "android-x64-release/linux-x64.zip": "sha256-4demp82PCXeOje3l+qOc/Eq+ngY8QybWE4iFGVK6lNc=", - "android-x64-release/windows-x64.zip": "sha256-3mQXqHuOhwDTRlsknFA8R/27luOzs28glJVD+3G/5EI=", - "android-x64/artifacts.zip": "sha256-BheP9zRanNkBOVzPwQvYp4jd9l/MIcnbmkshlwfT6Dc=", - "android-x86/artifacts.zip": "sha256-vXZo+hOtp1hRDvBBJfNmqlE6/ettAB9iEGdJZ/AeYKg=", - "darwin-arm64/artifacts.zip": "sha256-4CqgWDqeTGgNfmllemwbK692tRJ6y6O0/S8WdHPr2cI=", - "darwin-arm64/font-subset.zip": "sha256-gyTIBlcwE0UZZ/zVZIK2CkIoqQlbixcp54RBmyCgiJ4=", - "darwin-x64-profile/artifacts.zip": "sha256-Q7vaWylDWDSi8Fm2rnjX2OZrg9suz/oZIMLG+L8LPfg=", - "darwin-x64-profile/framework.zip": "sha256-t1FS8OI8Ptxpfker8th1KkWlKDb7lvd76o3vT5zLSos=", - "darwin-x64-profile/gen_snapshot.zip": "sha256-lzPl2i1XCdzmpV5Si5R/xju7JnmXz5N3MuTOWQHo6UY=", - "darwin-x64-release/artifacts.zip": "sha256-BXxo25VzpbNGsedjuXgOqnhDo1iOpDdXZ8ECYcCcgSY=", - "darwin-x64-release/framework.zip": "sha256-S22KfsuOjv9b4A/6F9cj47E4gGo1SYlP6xCRqV4D3iY=", - "darwin-x64-release/gen_snapshot.zip": "sha256-YR1Mqh3xMvlrLBaBC8q9TAloYWmBng15LdIDYq6JBMk=", - "darwin-x64/artifacts.zip": "sha256-eL9Y7UHaso/MKN0mSx8W4OqxwzDn/csuX8M8UwAjFWA=", - "darwin-x64/font-subset.zip": "sha256-vBUjrHafLzmJR13cFWr46flx4A9HE9p72DDfGIXHEcc=", - "darwin-x64/framework.zip": "sha256-oBeGU6XuQrXmF4z7ln7mUMsJMHg5XDjikxXgBKMJQ28=", - "darwin-x64/gen_snapshot.zip": "sha256-b9FUB6TQmGw5k+M2Z3y56CvInw/LTrPL9YyG5D4Uqoc=", - "flutter-web-sdk.zip": "sha256-0LQD3PWbBXc34qhxAHB/ESYjvpKndFheDYtMFxW6V2I=", - "flutter_gpu.zip": "sha256-b7GxH12dA1rGr1TUMFAm0R2xCGTwUIYHr0/Pktck+Rg=", - "flutter_patched_sdk.zip": "sha256-qiZzEVkaRfD3ELEmsQQrN9tvF9MMiEsRioGcaT6qW5E=", - "flutter_patched_sdk_product.zip": "sha256-jAD6sghpvJb/WUuPaT8SQGWnNCBE82qAOF41E8gE/LE=", - "ios-profile/artifacts.zip": "sha256-c8UEecqig9GwF3p+rS+KoCSieN1bfxX4vbL3RnNa9qU=", - "ios-release/artifacts.zip": "sha256-nfQ8YxiKXY4LYjiSfDGub6afhlnSPDIZ2+9wYrWkpsI=", - "ios/artifacts.zip": "sha256-63HYgql1rNuOqZtyCDyThXzFiE5YCLGqCw5XFtZfEn0=", - "linux-arm64-debug/linux-arm64-flutter-gtk.zip": "sha256-/bTubsiLpGYDywasjZxIylUitAQDFe83MQbC1E/PXLo=", - "linux-arm64-profile/linux-arm64-flutter-gtk.zip": "sha256-K7RhTflYahi7rQ9V4vhoHgG7iUkyUMx1BgdVKcayxuw=", - "linux-arm64-release/linux-arm64-flutter-gtk.zip": "sha256-m06sitBb919gU4G4g0hE0pCxW36H+d15NRQNCLvW3v4=", - "linux-arm64/artifacts.zip": "sha256-Sn3DR+eIvjae5SS7sX60IaFLDsEXOLBSxtKE4pTj6mM=", - "linux-arm64/font-subset.zip": "sha256-lGHk7ac3yS1Q51qRP5pj5y626TJzz3AzQTlx38N1hLI=", - "linux-x64-debug/linux-x64-flutter-gtk.zip": "sha256-ntz4GCTMutdQgqSxdC69YtIZFct4UkvYz5AbJT/6rVQ=", - "linux-x64-profile/linux-x64-flutter-gtk.zip": "sha256-kKePD4dJdAIBiEL2rBqGZCzP7PRlukEVq+yoTvW2p94=", - "linux-x64-release/linux-x64-flutter-gtk.zip": "sha256-oftxkU+eDRLWggV+EAymWk0pWsz3K5VaL6so9KpZAJo=", - "linux-x64/artifacts.zip": "sha256-NjqBtYiJahp52E7V7Px/wnGZVWjsFmPKxAbMIYL4kGg=", - "linux-x64/font-subset.zip": "sha256-dZXC7iFVzb/V8QTbfscdkdtjTzdMy7ce0Z1GlX+jm9E=", - "sky_engine.zip": "sha256-Zq7h04ARytTgc3yBUHNeUw50dzOPquZaiXtEC62RCFU=", - "windows-x64-debug/windows-x64-flutter.zip": "sha256-NhJsnViwfq+PGeCEqLNnx2lHDQgUptsRun3RStkbeCI=", - "windows-x64-profile/windows-x64-flutter.zip": "sha256-m07X3s+PYps2GzHNt4HfuRiJjXQse6v14GGwjh9yqiE=", - "windows-x64-release/windows-x64-flutter.zip": "sha256-PY5eIoQdDN58L41mnfk3LImf8FlRsp5ue9nbnYouvM4=", - "windows-x64/artifacts.zip": "sha256-eDq8AoAXetZoMM1Zovw1Jm2mGFHWWbmg2XzsSb558Rk=", - "windows-x64/flutter-cpp-client-wrapper.zip": "sha256-nqgeZnzp7dKgs+lp2jVrRgvvRD+MGi2NceqivM6Qk0I=", - "windows-x64/font-subset.zip": "sha256-1WbKyP4By37Tci6nQ2S7OsCKnWScflYk7T5L0P0DGuQ=" - }, + "version": "3.35.7", + "engineVersion": "035316565ad77281a75305515e4682e6c4c6f7ca", + "engineSwiftShaderHash": "sha256-ATVcuxqPHqHOWYyO7DoX9LdgUiO3INUi7m9Mc6ccc1M=", + "engineSwiftShaderRev": "d040a5bab638bf7c226235c95787ba6288bb6416", "channel": "stable", - "dartHash": { - "aarch64-darwin": "sha256-AdBnLbgmZvcvlFLfOO4VFqcs2bwpgYvT6t34LkBVYVI=", - "aarch64-linux": "sha256-1i918/G/tEoi+9XPCltHx1hRbOyl3Me87IiJbiWD57o=", - "x86_64-darwin": "sha256-TGel6P9oew5ao8DAMS5kCxLl1eknjZG7Jc7A32YofXk=", - "x86_64-linux": "sha256-7CLoEnFYLe+B0+EOKlVa5dPYHGlRRlo9Fs/EeTjp+So=" + "engineHashes": { + "aarch64-linux": { + "aarch64-linux": "sha256-v2L0MQRTXvWngb8fu/AR9iofq2CDq1HFedXE8cSzOws=", + "x86_64-linux": "sha256-v2L0MQRTXvWngb8fu/AR9iofq2CDq1HFedXE8cSzOws=" + }, + "x86_64-linux": { + "aarch64-linux": "sha256-RKfKhFwlwVEguWqI6OinTqdCM3yNTP/5PwevREmS4Nk=", + "x86_64-linux": "sha256-RKfKhFwlwVEguWqI6OinTqdCM3yNTP/5PwevREmS4Nk=" + } }, "dartVersion": "3.9.2", - "engineVersion": "035316565ad77281a75305515e4682e6c4c6f7ca", + "dartHash": { + "x86_64-linux": "sha256-ZJcii2WBCE4PNt5+S2nH4hj+WoZuhRLFkzMlSZEa01Y=", + "aarch64-linux": "sha256-EzNApYsHor1suB9dFgJuewMqa0v7cADKLUzLym5GLOY=", + "x86_64-darwin": "sha256-mjWHCF5voWLKlqBKYhl2OKg2aDx0pyIQ1TlF6k4MQz0=", + "aarch64-darwin": "sha256-1rAfqatlOdphdi6dZSfUfKywAbdwRn6ijo60isjV3Lw=" + }, "flutterHash": "sha256-0GI3P11vys6JU+H5MXKznHTItOXZwap7bxHzgj6umc4=", + "artifactHashes": { + "android": { + "aarch64-darwin": "sha256-BbwfmKPmxZUPVoZEE687vudBCBPzVM/C9ehPEAPr6Jw=", + "aarch64-linux": "sha256-Pgc/ybLcRFJkbGUI2eY689yxOv2VyKdO/F5vGkTg/tM=", + "x86_64-darwin": "sha256-BbwfmKPmxZUPVoZEE687vudBCBPzVM/C9ehPEAPr6Jw=", + "x86_64-linux": "sha256-Pgc/ybLcRFJkbGUI2eY689yxOv2VyKdO/F5vGkTg/tM=" + }, + "fuchsia": { + "aarch64-darwin": "sha256-qpHjEpuIK1hI6ga1qr0Q/t5S2Jjk8oUpnkeXsIeu7UM=", + "aarch64-linux": "sha256-qpHjEpuIK1hI6ga1qr0Q/t5S2Jjk8oUpnkeXsIeu7UM=", + "x86_64-darwin": "sha256-qpHjEpuIK1hI6ga1qr0Q/t5S2Jjk8oUpnkeXsIeu7UM=", + "x86_64-linux": "sha256-qpHjEpuIK1hI6ga1qr0Q/t5S2Jjk8oUpnkeXsIeu7UM=" + }, + "ios": { + "aarch64-darwin": "sha256-ZjNJhDXqv9dg9Gn62TRYX1Vb4Qn0adS5nxxpYZOGsgY=", + "aarch64-linux": "sha256-ZjNJhDXqv9dg9Gn62TRYX1Vb4Qn0adS5nxxpYZOGsgY=", + "x86_64-darwin": "sha256-ZjNJhDXqv9dg9Gn62TRYX1Vb4Qn0adS5nxxpYZOGsgY=", + "x86_64-linux": "sha256-ZjNJhDXqv9dg9Gn62TRYX1Vb4Qn0adS5nxxpYZOGsgY=" + }, + "linux": { + "aarch64-darwin": "sha256-TB9BOiV1Z1cKJKusNW4O0oJEJCt9XmWN+g4yCXtyepc=", + "aarch64-linux": "sha256-TB9BOiV1Z1cKJKusNW4O0oJEJCt9XmWN+g4yCXtyepc=", + "x86_64-darwin": "sha256-7BocNpo89xSXNy6yob+EESVfalm2olwR/knVfq9I1VA=", + "x86_64-linux": "sha256-7BocNpo89xSXNy6yob+EESVfalm2olwR/knVfq9I1VA=" + }, + "macos": { + "aarch64-darwin": "sha256-vnV12shNi630OuyWTey/31vsmAcF7UMEgfdBZBXWc4c=", + "aarch64-linux": "sha256-vnV12shNi630OuyWTey/31vsmAcF7UMEgfdBZBXWc4c=", + "x86_64-darwin": "sha256-vnV12shNi630OuyWTey/31vsmAcF7UMEgfdBZBXWc4c=", + "x86_64-linux": "sha256-vnV12shNi630OuyWTey/31vsmAcF7UMEgfdBZBXWc4c=" + }, + "universal": { + "aarch64-darwin": "sha256-oPUDsJxKbbWEH1XgxOFoBnVYJAjgeCBKIrYtBafWtWU=", + "aarch64-linux": "sha256-ae6UH4K09lcl7UZzD/WKFxWUKEZQsLmizODs/RMKcis=", + "x86_64-darwin": "sha256-wxDWrT35CUIEQaKeIK0adr0oPfv6to60Z6R+8zrwhmU=", + "x86_64-linux": "sha256-CxvOlq8nxeY5esRanl2N7oO4RFgBTwQcRdS7Pp/5tt8=" + }, + "web": { + "aarch64-darwin": "sha256-T+LR7Yo2hEy24u3aS+ehp9nyRBB+3dNDyF6jw1oOd1o=", + "aarch64-linux": "sha256-T+LR7Yo2hEy24u3aS+ehp9nyRBB+3dNDyF6jw1oOd1o=", + "x86_64-darwin": "sha256-T+LR7Yo2hEy24u3aS+ehp9nyRBB+3dNDyF6jw1oOd1o=", + "x86_64-linux": "sha256-T+LR7Yo2hEy24u3aS+ehp9nyRBB+3dNDyF6jw1oOd1o=" + }, + "windows": { + "x86_64-darwin": "sha256-xTWgw8JE/4R9UcdZmLEbMk+yL2V3zfAIXDRli9XYe5k=", + "x86_64-linux": "sha256-xTWgw8JE/4R9UcdZmLEbMk+yL2V3zfAIXDRli9XYe5k=" + } + }, "pubspecLock": { "packages": { "_fe_analyzer_shared": { @@ -1081,6 +1076,5 @@ "sdks": { "dart": ">=3.9.0-21.0.dev <4.0.0" } - }, - "version": "3.35.7" + } } diff --git a/pkgs/development/compilers/flutter/versions/3_35/patches/content-unaware-hash.patch b/pkgs/development/compilers/flutter/versions/3_35/patches/content-unaware-hash.patch deleted file mode 100644 index d912db5c15cc..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_35/patches/content-unaware-hash.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/bin/internal/content_aware_hash.sh -+++ b/bin/internal/content_aware_hash.sh -@@ -13,6 +13,9 @@ - - set -e - -+echo '0000000000000000000000000000000000000000' -+exit 0 -+ - FLUTTER_ROOT="$(dirname "$(dirname "$(dirname "${BASH_SOURCE[0]}")")")" - - unset GIT_DIR diff --git a/pkgs/development/compilers/flutter/versions/3_35/patches/no-cache.patch b/pkgs/development/compilers/flutter/versions/3_35/patches/no-cache.patch deleted file mode 100644 index e0cdb21fd030..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_35/patches/no-cache.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- a/packages/flutter_tools/lib/src/cache.dart -+++ b/packages/flutter_tools/lib/src/cache.dart -@@ -318,7 +318,7 @@ - var fatalStorageWarning = true; - - static RandomAccessFile? _lock; -- static var _lockEnabled = true; -+ static var _lockEnabled = false; - - /// Turn off the [lock]/[releaseLock] mechanism. - /// -@@ -721,7 +721,6 @@ - } - - void setStampFor(String artifactName, String version) { -- getStampFileFor(artifactName).writeAsStringSync(version); - } - - File getStampFileFor(String artifactName) { -@@ -1010,31 +1009,6 @@ - } - - Future checkForArtifacts(String? engineVersion) async { -- engineVersion ??= version; -- final url = '${cache.storageBaseUrl}/flutter_infra_release/flutter/$engineVersion/'; -- -- var exists = false; -- for (final String pkgName in getPackageDirs()) { -- exists = await cache.doesRemoteExist( -- 'Checking package $pkgName is available...', -- Uri.parse('$url$pkgName.zip'), -- ); -- if (!exists) { -- return false; -- } -- } -- -- for (final List toolsDir in getBinaryDirs()) { -- final String cacheDir = toolsDir[0]; -- final String urlPath = toolsDir[1]; -- exists = await cache.doesRemoteExist( -- 'Checking $cacheDir tools are available...', -- Uri.parse(url + urlPath), -- ); -- if (!exists) { -- return false; -- } -- } - return true; - } - diff --git a/pkgs/development/compilers/flutter/versions/3_35/patches/version.patch b/pkgs/development/compilers/flutter/versions/3_35/patches/version.patch deleted file mode 100644 index 60a8c7d05738..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_35/patches/version.patch +++ /dev/null @@ -1,131 +0,0 @@ ---- a/packages/flutter_tools/lib/src/version.dart -+++ b/packages/flutter_tools/lib/src/version.dart -@@ -97,11 +97,7 @@ - } - } - -- final String frameworkRevision = _runGit( -- gitLog(['-n', '1', '--pretty=format:%H']).join(' '), -- globals.processUtils, -- flutterRoot, -- ); -+ final String frameworkRevision = 'nixpkgs000000000000000000000000000000000'; - - return FlutterVersion.fromRevision( - clock: clock, -@@ -207,16 +203,7 @@ - final String flutterRoot; - - String _getTimeSinceCommit({String? revision}) { -- return _runGit( -- FlutterVersion.gitLog([ -- '-n', -- '1', -- '--pretty=format:%ar', -- if (revision != null) revision, -- ]).join(' '), -- globals.processUtils, -- flutterRoot, -- ); -+ return 'unknown'; - } - - // TODO(fujino): calculate this relative to frameworkCommitDate for -@@ -380,9 +367,7 @@ - /// remote git repository is not reachable due to a network issue. - static Future fetchRemoteFrameworkCommitDate() async { - try { -- // Fetch upstream branch's commit and tags -- await _run(['git', 'fetch', '--tags']); -- return _gitCommitDate(gitRef: kGitTrackingUpstream, workingDirectory: Cache.flutterRoot); -+ return 'unknown'; - } on VersionCheckError catch (error) { - globals.printError(error.message); - rethrow; -@@ -407,14 +392,7 @@ - /// If [redactUnknownBranches] is true and the branch is unknown, - /// the branch name will be returned as `'[user-branch]'` ([kUserBranch]). - String getBranchName({bool redactUnknownBranches = false}) { -- _branch ??= () { -- final String branch = _runGit( -- 'git symbolic-ref --short HEAD', -- globals.processUtils, -- flutterRoot, -- ); -- return branch == 'HEAD' ? '' : branch; -- }(); -+ _branch ??= 'stable'; - if (redactUnknownBranches || _branch!.isEmpty) { - // Only return the branch names we know about; arbitrary branch names might contain PII. - if (!kOfficialChannels.contains(_branch) && !kObsoleteBranches.containsKey(_branch)) { -@@ -457,30 +435,7 @@ - bool lenient = false, - required String? workingDirectory, - }) { -- final List args = FlutterVersion.gitLog([ -- gitRef, -- '-n', -- '1', -- '--pretty=format:%ad', -- '--date=iso', -- ]); -- try { -- // Don't plumb 'lenient' through directly so that we can print an error -- // if something goes wrong. -- return _runSync(args, lenient: false, workingDirectory: workingDirectory); -- } on VersionCheckError catch (e) { -- if (lenient) { -- final dummyDate = DateTime.fromMillisecondsSinceEpoch(0); -- globals.printError( -- 'Failed to find the latest git commit date: $e\n' -- 'Returning $dummyDate instead.', -- ); -- // Return something that DateTime.parse() can parse. -- return dummyDate.toString(); -- } else { -- rethrow; -- } -- } -+ return 'unknown'; - } - - class _FlutterVersionFromFile extends FlutterVersion { -@@ -621,20 +576,7 @@ - @override - String? get repositoryUrl { - if (_repositoryUrl == null) { -- final String gitChannel = _runGit( -- 'git rev-parse --abbrev-ref --symbolic $kGitTrackingUpstream', -- globals.processUtils, -- flutterRoot, -- ); -- final int slash = gitChannel.indexOf('/'); -- if (slash != -1) { -- final String remote = gitChannel.substring(0, slash); -- _repositoryUrl = _runGit( -- 'git ls-remote --get-url $remote', -- globals.processUtils, -- flutterRoot, -- ); -- } -+ _repositoryUrl = 'https://github.com/flutter/flutter.git'; - } - return _repositoryUrl; - } -@@ -1015,6 +957,16 @@ - final String gitTag; - - static GitTagVersion determine( -+ ProcessUtils processUtils, -+ Platform platform, { -+ String? workingDirectory, -+ bool fetchTags = false, -+ String gitRef = 'HEAD', -+ }) { -+ return GitTagVersion.unknown(); -+ } -+ -+ static GitTagVersion determine_orig( - ProcessUtils processUtils, - Platform platform, { - String? workingDirectory, diff --git a/pkgs/development/compilers/flutter/versions/3_38/data.json b/pkgs/development/compilers/flutter/versions/3_38/data.json index b9b0ae6820a0..88baf3ba0ece 100644 --- a/pkgs/development/compilers/flutter/versions/3_38/data.json +++ b/pkgs/development/compilers/flutter/versions/3_38/data.json @@ -1,80 +1,75 @@ { - "artifactHashes": { - "android-arm-profile/artifacts.zip": "sha256-SszXOMnso0LzdaOUl5I2v9Kfx+xFfrssoB6d5wk8IQ8=", - "android-arm-profile/darwin-x64.zip": "sha256-eEmHXcgcsNt5AXoV/g876veTV4hGTHFx8KPs/pB1h44=", - "android-arm-profile/linux-x64.zip": "sha256-UStYtnQ2bO0QYwsLYlvDcAxd02kauagXAndHERlXhYE=", - "android-arm-profile/windows-x64.zip": "sha256-QzhKpS9nPLfcxUHipL9emSROXxAukOOOy/4Bv9g4UFg=", - "android-arm-release/artifacts.zip": "sha256-DOn06RWlhwJDeVqr6slARQywnbLdRHp45UXA8ek0xTA=", - "android-arm-release/darwin-x64.zip": "sha256-hWULmwI30CgXHBr/DPuQwsUWdEYcEb1zu2wDrlQ8dbI=", - "android-arm-release/linux-x64.zip": "sha256-7Pkw0ahZkFT/CM0xdJPGqfjFgg8UcSoPfKawMlI7uSo=", - "android-arm-release/windows-x64.zip": "sha256-Kq6EURxjwsnzwaFziy3wshrgr14+Nz50Mug6gHGKByk=", - "android-arm/artifacts.zip": "sha256-PDy8hUidPU/KhQ7jzv3scnquh8W1Lu2N/DzrC2xjyhw=", - "android-arm64-profile/artifacts.zip": "sha256-8v9xjQQ9sCdIJc9m3gfb5GikjTnMLOZNhqV4HuyxjKM=", - "android-arm64-profile/darwin-x64.zip": "sha256-0DWhGSixA3wBMk4cy14JnyGs9qz9MXbGAVLQdHtltqI=", - "android-arm64-profile/linux-x64.zip": "sha256-muSzoz1hv1/itvt9RE2PoJtPGLWP6vTTOX1Mzz+H4kU=", - "android-arm64-profile/windows-x64.zip": "sha256-vxLVdkEJL3eriZDIKgoUoaTRgEwxGh+/8LLpeRSPc1g=", - "android-arm64-release/artifacts.zip": "sha256-T00v6QgwlD8yeb+KZaq5Oze7BNi7QVk2umouGMxzcDk=", - "android-arm64-release/darwin-x64.zip": "sha256-jONivWNSZxD3ZdhNA0+3UBsI5SBr6Ghxgub34vDj66w=", - "android-arm64-release/linux-x64.zip": "sha256-DHxJksRVK4dYoxI3mb7MfQrTki8CrTFurjtgj9f+7cg=", - "android-arm64-release/windows-x64.zip": "sha256-r0B8VB16L/zGyEopOUoFJj+Pb9WgfG0Iv+U5z8d6PK4=", - "android-arm64/artifacts.zip": "sha256-hfxdM6OoWyqh5iwyXNo5qXLvvIONhdA/60g1SsPOjZU=", - "android-x64-profile/artifacts.zip": "sha256-h+Lhj5j9CzLGUu9f3oX8kZ75B0s7iehmr/D7uv3t5yk=", - "android-x64-profile/darwin-x64.zip": "sha256-cHGALDMpEuzlW8kW+kB5H1Tk8E4KrTiiclj5ZmOcMp4=", - "android-x64-profile/linux-x64.zip": "sha256-cta/XKPOwgyIJUR3l1Qdmaexh60WQ3RiBlCwM4hc0Q0=", - "android-x64-profile/windows-x64.zip": "sha256-h6CPE4lPvSxCziroNuRYtSPqEmMfDeau/7MW7F4Ne5E=", - "android-x64-release/artifacts.zip": "sha256-cyGK3qsmfnK1kD+kD23PUy6EeJOz4eGqQlRnQcY1K7Y=", - "android-x64-release/darwin-x64.zip": "sha256-gImreJnjCb+OF3dXQE4WE1S0h13Z/5xFmVuBcUJvGrY=", - "android-x64-release/linux-x64.zip": "sha256-43NlGPjZK8V2i6Tv5rRhZBI3ItpSSIXrke13/uAGct8=", - "android-x64-release/windows-x64.zip": "sha256-CcLvO3w1LLlMTVQ5TR8sTL5sCMZXsGVa5u5j1fh/mSs=", - "android-x64/artifacts.zip": "sha256-ALbGKIFJ9n+cvE4+00doce+0LenwbOUyQtiflC2GJ7M=", - "android-x86/artifacts.zip": "sha256-ovnEERQizyUxcucOxLqxrK1dBO5IqKHsI7ob94w8G4o=", - "darwin-arm64/artifacts.zip": "sha256-+yIE6rmPxgTv8Uuhi8lzyMTG5zpb0R2Li7P/xhkvRSA=", - "darwin-arm64/font-subset.zip": "sha256-5yR3y+FYn2Fkudqe9QiLWDbCE811Ds9hac4jTCLiW1w=", - "darwin-x64-profile/artifacts.zip": "sha256-jD4X0HBjJIbuBsamH8bexBWGcMqhyk3hSOMKtempgPQ=", - "darwin-x64-profile/framework.zip": "sha256-NNDGYSL7/9841I2siCzFwjRaZu8Td4c+f/JF1Q2IenE=", - "darwin-x64-profile/gen_snapshot.zip": "sha256-CBGLnupxRxFk16ww97RC3XZRr53pKYQX6PtMfM+53sk=", - "darwin-x64-release/artifacts.zip": "sha256-4dA2edSUJHJfdGb9JwfkBe60R2TuENN3R8RlwUEh1Hk=", - "darwin-x64-release/framework.zip": "sha256-QiQwwJtwYutkbAhF0YtWuBP3mMRJ+4W0Kns//sXzpzU=", - "darwin-x64-release/gen_snapshot.zip": "sha256-a1ajKvgccl/745zxbGPNtqBIzNrkuHWNh9DNxS1Gn8U=", - "darwin-x64/artifacts.zip": "sha256-qVdAKm7Crnm0DEkw9PTf4KBA45PdoGZdsr5F5BWXtLw=", - "darwin-x64/font-subset.zip": "sha256-hLgb0BCZXwOlch1nD8SK7Bf2ao9gE1IUjlThRYxg/8c=", - "darwin-x64/framework.zip": "sha256-wLWLQpjFCitYNUJpMNsH3kCKRe+ADQixrEWSrKgK/w0=", - "darwin-x64/gen_snapshot.zip": "sha256-gbxqc2Rr0ftDftiV5l8FG3oFtpJ1fkB+TzQXCyiMEqk=", - "flutter-web-sdk.zip": "sha256-2mtnmqOWwnHd6wLyxEpaTCzSAMSXxLaBSgZBetum3N0=", - "flutter_gpu.zip": "sha256-+4BSuZJDwZoUMnd99U2FJa9A6+1ZsR4gpGyjfNszVlU=", - "flutter_patched_sdk.zip": "sha256-0IJy6Rhm41zE4uanx0KClZ2C3YOaKrT34ZmIgkyyFbs=", - "flutter_patched_sdk_product.zip": "sha256-XJtmN6N3RMJRJA78xHg5wsfXrcoKXelC4CJXVOUhyCw=", - "ios-profile/artifacts.zip": "sha256-65Qje/KLH0Y/r1iowRiTdXHOPX+4TNXkxRtA2T9pyP8=", - "ios-release/artifacts.zip": "sha256-tfYI/LC3GyjVOxvuAWbWq9/oYuHLl2iZxZ9CFTWwzoI=", - "ios/artifacts.zip": "sha256-njLT9/SY6fhqZYdBlF7LruNG40y+0CxmCeTd9HGoURk=", - "linux-arm64-debug/linux-arm64-flutter-gtk.zip": "sha256-SZ5o61Wz4DUFiLPDwR4BE2c/Ppm9wU9zqpO4cVg6sjk=", - "linux-arm64-profile/linux-arm64-flutter-gtk.zip": "sha256-TEY+99KUeI8sLWNGcG3bAAhbhhXDPl+jKzQMq9XO6N0=", - "linux-arm64-release/linux-arm64-flutter-gtk.zip": "sha256-pWknANDo3Jb0ctSAE8gBAwpjEPfxoXhBzu98BsQrLPI=", - "linux-arm64/artifacts.zip": "sha256-u/wxbplJm8pEGiZ4PM8apWcYwSXrV85JbfVqtn8MQXc=", - "linux-arm64/font-subset.zip": "sha256-S2SY5yXZht/Wj3GF4t+VPdJDNxe4q8aeiFvRboJDevk=", - "linux-x64-debug/linux-x64-flutter-gtk.zip": "sha256-3DiNbB+xSa/bYqoi/29JdGaIv+fIzrpfKFH1toQQo/M=", - "linux-x64-profile/linux-x64-flutter-gtk.zip": "sha256-m2h6C1ApGqIBfZ01agnzngbuhzAapmzrpc4FzwjjlN0=", - "linux-x64-release/linux-x64-flutter-gtk.zip": "sha256-Mcb7/sF0bc4L0T73iuUWou/OOlcuOuwQrRfqLQMrCO4=", - "linux-x64/artifacts.zip": "sha256-ie03ozwWndpB3ztxugUY4v0gCHav2chK6PbgxheKI/k=", - "linux-x64/font-subset.zip": "sha256-NKJnqJsOGO6Gh0/GJ/kLOhncmYIwRHSP6tx5fm909Wc=", - "sky_engine.zip": "sha256-nz7bVhV2odmt16WL4yp4eMa1/ecg1IGTewEvgPagIsY=", - "windows-x64-debug/windows-x64-flutter.zip": "sha256-bG/Yv0yrNMTH8aBgRQBTaG6Wo2KsUYUAccjWhWY+FW4=", - "windows-x64-profile/windows-x64-flutter.zip": "sha256-2/3kncn1RB1U41T83xudVsRqXhD3kGiiPbbAixeyQA0=", - "windows-x64-release/windows-x64-flutter.zip": "sha256-NL1801xcnuJ60D/KF8A0F8gEJ9TGFhnR8+mwKFnC4V4=", - "windows-x64/artifacts.zip": "sha256-rXQrattA8ykNsOzQlcaKX7EJt43gfOBtXyg9r2/Voq4=", - "windows-x64/flutter-cpp-client-wrapper.zip": "sha256-Qg4orxxNDofGOb9iiEapIjXh5aRdAewft7XZn/jw1FM=", - "windows-x64/font-subset.zip": "sha256-bVoEA88BeTe0zqjQEKzXgG4xfamSXv1oUdSqPwoB3pQ=" - }, + "version": "3.38.10", + "engineVersion": "cafcda5721a78a7884db92f13c5e89f7643d52dd", + "engineSwiftShaderHash": "sha256-ATVcuxqPHqHOWYyO7DoX9LdgUiO3INUi7m9Mc6ccc1M=", + "engineSwiftShaderRev": "d040a5bab638bf7c226235c95787ba6288bb6416", "channel": "stable", - "dartHash": { - "aarch64-darwin": "sha256-99gMhvkzSJmYEsGuD3kBN1e3l685Xyy6cNICegC+Vk4=", - "aarch64-linux": "sha256-Z8mPnmppTtPLNiY0Ny1pRzBAs3EoNtQsr82zxWwKBOs=", - "x86_64-darwin": "sha256-pd37vWDOIKGdek/CuUSH7sVyiKqlLOW6GLT4IkzkwYA=", - "x86_64-linux": "sha256-1DudOiG4LvKjfTGUW5nmuI9fjcROwZG0c/1inXjQuZQ=" + "engineHashes": { + "aarch64-linux": { + "aarch64-linux": "sha256-qhOj6VT1aKhBApEr5R10NwalozUPMQKuUXfhcscTDTs=", + "x86_64-linux": "sha256-qhOj6VT1aKhBApEr5R10NwalozUPMQKuUXfhcscTDTs=" + }, + "x86_64-linux": { + "aarch64-linux": "sha256-VriQI7YmeM/HrZvLPRllxn5D/0r5xJiCzsn4XeBXO+A=", + "x86_64-linux": "sha256-VriQI7YmeM/HrZvLPRllxn5D/0r5xJiCzsn4XeBXO+A=" + } }, "dartVersion": "3.10.9", - "engineVersion": "cafcda5721a78a7884db92f13c5e89f7643d52dd", + "dartHash": { + "x86_64-linux": "sha256-Js8cesRAseVfa5CCQSmnJJVBYl+S7Zy7ax/vNbWMjQ0=", + "aarch64-linux": "sha256-Ba7CCHPzor8H6ksrQUqDnx82i92OSE4qiihMaDKNexI=", + "x86_64-darwin": "sha256-btQavXZ3CVM0ByGlZJ5z2TUfXsPljY4iFeU1rgf4KQE=", + "aarch64-darwin": "sha256-zmEK01ooqIKtVlw+7JlDAVvviFOcaqOrbGPkdirst6A=" + }, "flutterHash": "sha256-dFVejSD3l2C6FM3/vimOId5Nklctv7ISO9uDhLTNf80=", + "artifactHashes": { + "android": { + "aarch64-darwin": "sha256-NFvkU3aDAmCAuO+ZrNaY5CJpPyioc6eB6cFZfziXEQU=", + "aarch64-linux": "sha256-eHu5nWrxht1O6dP6LQ2UHNpPMNaRt/vL+cY2Okhtn0g=", + "x86_64-darwin": "sha256-NFvkU3aDAmCAuO+ZrNaY5CJpPyioc6eB6cFZfziXEQU=", + "x86_64-linux": "sha256-eHu5nWrxht1O6dP6LQ2UHNpPMNaRt/vL+cY2Okhtn0g=" + }, + "fuchsia": { + "aarch64-darwin": "sha256-DUlLvOGzLasLtZgndXew3l6w7VLDnrE5NqN3em1MVXE=", + "aarch64-linux": "sha256-DUlLvOGzLasLtZgndXew3l6w7VLDnrE5NqN3em1MVXE=", + "x86_64-darwin": "sha256-DUlLvOGzLasLtZgndXew3l6w7VLDnrE5NqN3em1MVXE=", + "x86_64-linux": "sha256-DUlLvOGzLasLtZgndXew3l6w7VLDnrE5NqN3em1MVXE=" + }, + "ios": { + "aarch64-darwin": "sha256-+aKuaOXWEzDXWG2tMz7u3MLuiHSa3XyYHrfBGwRxUHI=", + "aarch64-linux": "sha256-+aKuaOXWEzDXWG2tMz7u3MLuiHSa3XyYHrfBGwRxUHI=", + "x86_64-darwin": "sha256-+aKuaOXWEzDXWG2tMz7u3MLuiHSa3XyYHrfBGwRxUHI=", + "x86_64-linux": "sha256-+aKuaOXWEzDXWG2tMz7u3MLuiHSa3XyYHrfBGwRxUHI=" + }, + "linux": { + "aarch64-darwin": "sha256-IMa7QTMRYoWlJcI/SCO6aBtmKtIozQAcAgeQFWCFgb4=", + "aarch64-linux": "sha256-IMa7QTMRYoWlJcI/SCO6aBtmKtIozQAcAgeQFWCFgb4=", + "x86_64-darwin": "sha256-nmLLXotJuHrFrpRMjdb/38l/rPRDiFvFf0BwfVvs9V8=", + "x86_64-linux": "sha256-nmLLXotJuHrFrpRMjdb/38l/rPRDiFvFf0BwfVvs9V8=" + }, + "macos": { + "aarch64-darwin": "sha256-p/ysd+1EOSaKmHRWYr/lYCo8H1oty4GC0Moaw+PC72A=", + "aarch64-linux": "sha256-p/ysd+1EOSaKmHRWYr/lYCo8H1oty4GC0Moaw+PC72A=", + "x86_64-darwin": "sha256-p/ysd+1EOSaKmHRWYr/lYCo8H1oty4GC0Moaw+PC72A=", + "x86_64-linux": "sha256-p/ysd+1EOSaKmHRWYr/lYCo8H1oty4GC0Moaw+PC72A=" + }, + "universal": { + "aarch64-darwin": "sha256-viiNdnQKAaTO91yNwGrSwr5jT2Zm+38rLNCyb7N3faw=", + "aarch64-linux": "sha256-u9qKNkrdxkIVP4+rn0vzDSY37twJ/TLV7nfX6IqRj+4=", + "x86_64-darwin": "sha256-ztUb0vhegvskVdXcIi6xQtfJdIZTCWQB8zfR0CTLD54=", + "x86_64-linux": "sha256-Xlm/ds/m0nm2cAXszCxCCjMNDyyK4AcldrvnwYImxSE=" + }, + "web": { + "aarch64-darwin": "sha256-CkFJ96IWOk3q+VjPzpieyp8IMiTaTKgnAQpyltHeMnw=", + "aarch64-linux": "sha256-CkFJ96IWOk3q+VjPzpieyp8IMiTaTKgnAQpyltHeMnw=", + "x86_64-darwin": "sha256-CkFJ96IWOk3q+VjPzpieyp8IMiTaTKgnAQpyltHeMnw=", + "x86_64-linux": "sha256-CkFJ96IWOk3q+VjPzpieyp8IMiTaTKgnAQpyltHeMnw=" + }, + "windows": { + "x86_64-darwin": "sha256-HId39NR+rbe1fqEssNb7gD6bvmeLj1N9UJYV8hxJFt0=", + "x86_64-linux": "sha256-HId39NR+rbe1fqEssNb7gD6bvmeLj1N9UJYV8hxJFt0=" + } + }, "pubspecLock": { "packages": { "_fe_analyzer_shared": { @@ -1091,6 +1086,5 @@ "sdks": { "dart": ">=3.9.0 <4.0.0" } - }, - "version": "3.38.10" + } } diff --git a/pkgs/development/compilers/flutter/versions/3_38/patches/content-unaware-hash.patch b/pkgs/development/compilers/flutter/versions/3_38/patches/content-unaware-hash.patch deleted file mode 100644 index d912db5c15cc..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_38/patches/content-unaware-hash.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/bin/internal/content_aware_hash.sh -+++ b/bin/internal/content_aware_hash.sh -@@ -13,6 +13,9 @@ - - set -e - -+echo '0000000000000000000000000000000000000000' -+exit 0 -+ - FLUTTER_ROOT="$(dirname "$(dirname "$(dirname "${BASH_SOURCE[0]}")")")" - - unset GIT_DIR diff --git a/pkgs/development/compilers/flutter/versions/3_38/patches/no-cache.patch b/pkgs/development/compilers/flutter/versions/3_38/patches/no-cache.patch deleted file mode 100644 index e0cdb21fd030..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_38/patches/no-cache.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- a/packages/flutter_tools/lib/src/cache.dart -+++ b/packages/flutter_tools/lib/src/cache.dart -@@ -318,7 +318,7 @@ - var fatalStorageWarning = true; - - static RandomAccessFile? _lock; -- static var _lockEnabled = true; -+ static var _lockEnabled = false; - - /// Turn off the [lock]/[releaseLock] mechanism. - /// -@@ -721,7 +721,6 @@ - } - - void setStampFor(String artifactName, String version) { -- getStampFileFor(artifactName).writeAsStringSync(version); - } - - File getStampFileFor(String artifactName) { -@@ -1010,31 +1009,6 @@ - } - - Future checkForArtifacts(String? engineVersion) async { -- engineVersion ??= version; -- final url = '${cache.storageBaseUrl}/flutter_infra_release/flutter/$engineVersion/'; -- -- var exists = false; -- for (final String pkgName in getPackageDirs()) { -- exists = await cache.doesRemoteExist( -- 'Checking package $pkgName is available...', -- Uri.parse('$url$pkgName.zip'), -- ); -- if (!exists) { -- return false; -- } -- } -- -- for (final List toolsDir in getBinaryDirs()) { -- final String cacheDir = toolsDir[0]; -- final String urlPath = toolsDir[1]; -- exists = await cache.doesRemoteExist( -- 'Checking $cacheDir tools are available...', -- Uri.parse(url + urlPath), -- ); -- if (!exists) { -- return false; -- } -- } - return true; - } - diff --git a/pkgs/development/compilers/flutter/versions/3_38/patches/version.patch b/pkgs/development/compilers/flutter/versions/3_38/patches/version.patch deleted file mode 100644 index 49f2c5294d51..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_38/patches/version.patch +++ /dev/null @@ -1,131 +0,0 @@ ---- a/packages/flutter_tools/lib/src/version.dart -+++ b/packages/flutter_tools/lib/src/version.dart -@@ -99,10 +99,7 @@ - } - } - -- final String frameworkRevision = git -- .logSync(['-n', '1', '--pretty=format:%H'], workingDirectory: flutterRoot) -- .stdout -- .trim(); -+ final String frameworkRevision = 'nixpkgs000000000000000000000000000000000'; - - return FlutterVersion.fromRevision( - clock: clock, -@@ -222,10 +219,7 @@ - final String flutterRoot; - - String _getTimeSinceCommit({String? revision}) { -- return _git -- .logSync(['-n', '1', '--pretty=format:%ar', ?revision], workingDirectory: flutterRoot) -- .stdout -- .trim(); -+ return 'unknown'; - } - - // TODO(fujino): calculate this relative to frameworkCommitDate for -@@ -391,13 +385,7 @@ - /// remote git repository is not reachable due to a network issue. - Future _fetchRemoteFrameworkCommitDate() async { - try { -- // Fetch upstream branch's commit and tags -- await _run(_git, ['fetch', '--tags']); -- return _gitCommitDate( -- git: _git, -- gitRef: kGitTrackingUpstream, -- workingDirectory: Cache.flutterRoot, -- ); -+ return 'unknown'; - } on VersionCheckError catch (error) { - globals.printError(error.message); - rethrow; -@@ -422,13 +410,7 @@ - /// If [redactUnknownBranches] is true and the branch is unknown, - /// the branch name will be returned as `'[user-branch]'` ([kUserBranch]). - String getBranchName({bool redactUnknownBranches = false}) { -- _branch ??= () { -- final String branch = _git -- .runSync(['symbolic-ref', '--short', 'HEAD'], workingDirectory: flutterRoot) -- .stdout -- .trim(); -- return branch == 'HEAD' ? '' : branch; -- }(); -+ _branch ??= 'stable'; - if (redactUnknownBranches || _branch!.isEmpty) { - // Only return the branch names we know about; arbitrary branch names might contain PII. - if (!kOfficialChannels.contains(_branch) && !kObsoleteBranches.containsKey(_branch)) { -@@ -464,31 +446,7 @@ - required Git git, - required String? workingDirectory, - }) { -- final RunResult result = git.logSync([ -- gitRef, -- '-n', -- '1', -- '--pretty=format:%ad', -- '--date=iso', -- ], workingDirectory: workingDirectory); -- if (result.exitCode == 0) { -- return result.stdout.trim(); -- } -- final error = VersionCheckError( -- 'Command exited with code ${result.exitCode}: ${result.command.join(' ')}\n' -- 'Standard out: ${result.stdout}\n' -- 'Standard error: ${result.stderr}', -- ); -- if (lenient) { -- final dummyDate = DateTime.fromMillisecondsSinceEpoch(0); -- globals.printError( -- 'Failed to find the latest git commit date: $error\n' -- 'Returning $dummyDate instead.', -- ); -- // Return something that DateTime.parse() can parse. -- return dummyDate.toString(); -- } -- throw error; -+ return 'unknown'; - } - - class _FlutterVersionFromFile extends FlutterVersion { -@@ -639,23 +597,7 @@ - @override - String? get repositoryUrl { - if (_repositoryUrl == null) { -- final String gitChannel = _git -- .runSync([ -- 'rev-parse', -- '--abbrev-ref', -- '--symbolic', -- kGitTrackingUpstream, -- ], workingDirectory: flutterRoot) -- .stdout -- .trim(); -- final int slash = gitChannel.indexOf('/'); -- if (slash != -1) { -- final String remote = gitChannel.substring(0, slash); -- _repositoryUrl = _git -- .runSync(['ls-remote', '--get-url', remote], workingDirectory: flutterRoot) -- .stdout -- .trim(); -- } -+ _repositoryUrl = 'https://github.com/flutter/flutter.git'; - } - return _repositoryUrl; - } -@@ -1005,6 +947,16 @@ - final String gitTag; - - static GitTagVersion determine( -+ Platform platform, { -+ required Git git, -+ String? workingDirectory, -+ bool fetchTags = false, -+ String gitRef = 'HEAD', -+ }) { -+ return GitTagVersion.unknown(); -+ } -+ -+ static GitTagVersion determine_orig( - Platform platform, { - required Git git, - String? workingDirectory, diff --git a/pkgs/development/compilers/flutter/versions/3_41/data.json b/pkgs/development/compilers/flutter/versions/3_41/data.json index 2a11cfc9cd13..0159af0063c2 100644 --- a/pkgs/development/compilers/flutter/versions/3_41/data.json +++ b/pkgs/development/compilers/flutter/versions/3_41/data.json @@ -1,80 +1,75 @@ { - "artifactHashes": { - "android-arm-profile/artifacts.zip": "sha256-plu68ELMftDhiYcgkJBaE8asLzo2ctLl/2ba4efaBlg=", - "android-arm-profile/darwin-x64.zip": "sha256-YqIngn4CqUWFTw7DJ0uzQbTC5LPXy/eMS7j3fpdk0Zs=", - "android-arm-profile/linux-x64.zip": "sha256-mysciyN6YhdyMU1eJuGbVVNWF65NiPn9hLv0TdYYIZ0=", - "android-arm-profile/windows-x64.zip": "sha256-OHZ0sgA1cY4PA9W2Ih8sSTeM+DKMZUtYl7wUVcFZiOw=", - "android-arm-release/artifacts.zip": "sha256-TYHND/VUpanPdCII9d9Db66M4U3Lsu3/Pbol8UNBCMk=", - "android-arm-release/darwin-x64.zip": "sha256-sEPX65dQSMVliEnYTCxN06ZKjp1RwhMeoSuhH/LZNS0=", - "android-arm-release/linux-x64.zip": "sha256-tP3BZFvzhIK5CawnU+ubmq+GRFqfPJ5POoaoHG+RdD4=", - "android-arm-release/windows-x64.zip": "sha256-Y3sDe7MtG0NRHvnLLIjUIXOsXXrRclhexta41SUa9Qs=", - "android-arm/artifacts.zip": "sha256-Y4ocz8l+LI1ojslfOloU3KgCC2i8etsEmZY99UnoAI4=", - "android-arm64-profile/artifacts.zip": "sha256-VAocgCx7m8pM8PXK/mLzqNaJBzRfg3cCl45uVT7KdQU=", - "android-arm64-profile/darwin-x64.zip": "sha256-UXz/SAQstAtTmjdSdxql7OUlqsnkzr56vwnMkToeObk=", - "android-arm64-profile/linux-x64.zip": "sha256-iprtcLB/sCngKjPcN3lHaqLL2QndGo3KbQIsdnqtlKE=", - "android-arm64-profile/windows-x64.zip": "sha256-x5RmwOpJ+O77IxhTJ2+wXlMqgaNdT9dCV6p1aMooSl0=", - "android-arm64-release/artifacts.zip": "sha256-oQI+gLEf0NsWYVH/9124njBEctiBUKvuNWnghaaLO9s=", - "android-arm64-release/darwin-x64.zip": "sha256-wWjvqLRtsm+0SDYYg8lw+vCBNBDKzcJpzOkmEuSdEls=", - "android-arm64-release/linux-x64.zip": "sha256-YmrheUHylvRK/FlOZkRMD9i47K5U8obOraRFsXKhwhs=", - "android-arm64-release/windows-x64.zip": "sha256-riqR9TEIb9f/QaWcPbhkNUIEdJ5ZQIKKxoD5KlCB5yc=", - "android-arm64/artifacts.zip": "sha256-UZUCwJxdjiZy4UZz6xCyuWsSmequIptaPxCIeczw8Vg=", - "android-x64-profile/artifacts.zip": "sha256-+mbN3pO70AcmEJZYOb4or2BV8p9yYjZYHxZaNSb5QPk=", - "android-x64-profile/darwin-x64.zip": "sha256-w2ggxB3eSCwvKCohnJlbX258nQUMjK8s4jXkr74m4aw=", - "android-x64-profile/linux-x64.zip": "sha256-Vggd6cRe2d3zFSG570+TZUoHNPJuVHjleSQnDfqKsxQ=", - "android-x64-profile/windows-x64.zip": "sha256-4zguzW7Tm7nscfApeeaHbYPy9+Jw3o22gRxXZZ79ae8=", - "android-x64-release/artifacts.zip": "sha256-DfdyXrqSGxemAlvF/nwjcWkjo2d/fwWOyVWGPiM3Ff8=", - "android-x64-release/darwin-x64.zip": "sha256-H8r9NtoVKfI0Y09HKBA2TzjPZhBTktUrJyZsXJL1Z+Y=", - "android-x64-release/linux-x64.zip": "sha256-HZEh7f0vWDPtqYAqJ5CdgAhpUJW5RWLg25yyDpM3rX4=", - "android-x64-release/windows-x64.zip": "sha256-5zNvcGkL9ArsrZ+PHvWi97kUc6h+EWckIUGM/KDz1Qw=", - "android-x64/artifacts.zip": "sha256-O+3ykJd+Z7ZB2sZbwe+KtdP2JiatnI4di0l8DsuUofc=", - "android-x86/artifacts.zip": "sha256-iLM7ZfYMPM3Lmbvo7XDJW0zFqu1tS7NxmbImq8Ke9hU=", - "darwin-arm64/artifacts.zip": "sha256-MVnRN8HvmsLqnsiBpNvbEvgGg4ino7SWgp+9Y/Kq76M=", - "darwin-arm64/font-subset.zip": "sha256-capuWYsdAFYRZGeSGoRpLfw116GMXTZQn18VTYRk7ss=", - "darwin-x64-profile/artifacts.zip": "sha256-UEVqrW7LcDMNe7vLnul9qnyvfA7bXULxv7FDRUzXhpU=", - "darwin-x64-profile/framework.zip": "sha256-+kxuSBSFLPAjcBee7DEupLnJP0HW5yzXF78MGLsur9o=", - "darwin-x64-profile/gen_snapshot.zip": "sha256-Q8mHzXPiAx2HReJHaYnWVLbf2PiuK5f0GFtT2Y+jqTA=", - "darwin-x64-release/artifacts.zip": "sha256-J+2vH/MLJ61kvVkIXxx1NGl2kSDPC8xFEvqeoopxwW4=", - "darwin-x64-release/framework.zip": "sha256-MsqwiLv7oTySmkeibNBQvmT63Fh5c8bGtexWRnWhIT8=", - "darwin-x64-release/gen_snapshot.zip": "sha256-ZvzW84hd3dyhsJLNw3bGUDH1vjuLzd6bFh+LY70NDLQ=", - "darwin-x64/artifacts.zip": "sha256-Ovq1yaTvYQjyr1ZYtdC/ngeQvvCOTBAjE7IV0wYCCE4=", - "darwin-x64/font-subset.zip": "sha256-IHLrPa4fAqPrdeHYdsIz93BHO0Np+2MSCbk7C2sgwwk=", - "darwin-x64/framework.zip": "sha256-EQjB10gVKzjdmaiIOf46U6YbAHaCVmdzHXPc6Ds8KcE=", - "darwin-x64/gen_snapshot.zip": "sha256-4+J8H82bxIFviUvvthyBZGrBwYO11mFJErL2whooZFY=", - "flutter-web-sdk.zip": "sha256-7rZynFWlGy0SJ2wCRlItpvwEBK2bIUqsm+f97FF5js4=", - "flutter_gpu.zip": "sha256-+xx4iFMM6cm4eYJUqp2iq/UWCSjtmn22RNEG8z6stvQ=", - "flutter_patched_sdk.zip": "sha256-SwWY3Gxv3hYZAzmVAJwwLl51CFdC4Pfgq8+VLsVHarY=", - "flutter_patched_sdk_product.zip": "sha256-nxOERMQz0qq7EFVm6OWpl8BR6E+20xLG0du5Jj+YHbE=", - "ios-profile/artifacts.zip": "sha256-RL1GqX0/6fv+SeUW3FNyfKQl/bpTM84STQSzHLCSh7E=", - "ios-release/artifacts.zip": "sha256-gnRjcv8bz1du/w9T8bZBaspUqIkeKxPB0BqPsbofq34=", - "ios/artifacts.zip": "sha256-qjr2yU4XsbdiyJwAK6v7bINiALIIOFyUmWpKFhaDou0=", - "linux-arm64-debug/linux-arm64-flutter-gtk.zip": "sha256-WmN2CNXlSslMxwQO8siUbvOL1C2B7DyAiubOpof0hps=", - "linux-arm64-profile/linux-arm64-flutter-gtk.zip": "sha256-RZJOPNYA/TuoLGQfpOveJ0dhBs4xKf4Iy3MmCLBoBE8=", - "linux-arm64-release/linux-arm64-flutter-gtk.zip": "sha256-qQFBvIOsQwLEnsSlfV+r9yK/3rBQyyIQZayJzarO9iI=", - "linux-arm64/artifacts.zip": "sha256-JnPSiHx6hYCK2kx/zQqxvjbIGZPwH5UDI4dZyJ5kPIU=", - "linux-arm64/font-subset.zip": "sha256-9TcFWpN3suISmjNgje7WSqygiWbu9Q5t6SAfhqZlF00=", - "linux-x64-debug/linux-x64-flutter-gtk.zip": "sha256-og0JAIZL/Arklv4cpeOMhqhN+n2VcVWJg6T0G3hb1sQ=", - "linux-x64-profile/linux-x64-flutter-gtk.zip": "sha256-LXOooWgdQcjm4rc7RXi8765snfvovIxXDVfCaOSBc/o=", - "linux-x64-release/linux-x64-flutter-gtk.zip": "sha256-ICePn3G3SngJ5O78B0YvUf0lspWXJBRi3ESUOmRhtzI=", - "linux-x64/artifacts.zip": "sha256-15A66Yj0IUzvmXcijWIFFaYGuXccJp0L1rqg7APkwiM=", - "linux-x64/font-subset.zip": "sha256-YcYgMtvtIJekxpAByUkF8OViQxe1+EBczpKer15meeA=", - "sky_engine.zip": "sha256-qIs/zBZ9VvCU4PUNrmJRPvF0UsEZ6fe4HVIGoYEYdhs=", - "windows-x64-debug/windows-x64-flutter.zip": "sha256-4QYdKTF2GipzX+KS0FkEwQV9MBEkKUjUi7Nav21bv2k=", - "windows-x64-profile/windows-x64-flutter.zip": "sha256-a7ANXvvQ2nawAdPOxOuTgrQMgFSihCtQhzAiOQJtOLE=", - "windows-x64-release/windows-x64-flutter.zip": "sha256-qLG8IChKep+nwYcogcM5JOGP0wZwdUPdjf4mg8TPmVU=", - "windows-x64/artifacts.zip": "sha256-2GZ4oVJ/XjiNDs0goanWPbmhkiwARGU+GsrhZnTdzd0=", - "windows-x64/flutter-cpp-client-wrapper.zip": "sha256-lqxP9xCNa7ClZyNIaxnZv/MorPFmV8haDde/Sm2DG4Q=", - "windows-x64/font-subset.zip": "sha256-t0hARPeFDhVqad2H1dlhvkf6l3a4EcsoVHotageUghA=" - }, + "version": "3.41.6", + "engineVersion": "425cfb54d01a9472b3e81d9e76fd63a4a44cfbcb", + "engineSwiftShaderHash": "sha256-qbtCl2nTpmtp9dnaoXc7rF3RqLnAZEmzw1BzPoCRWrc=", + "engineSwiftShaderRev": "794b0cfce1d828d187637e6d932bae484fbe0976", "channel": "stable", - "dartHash": { - "aarch64-darwin": "sha256-DwyZtAeZLuaX2MFVPzhERiFeX45wI9sTc4Y2SVopRE8=", - "linux": "sha256-y2F+wB0M5dq6koxGpCs9BExGU7p8tFOIiRqfdf8ip+8=", - "x86_64-darwin": "sha256-GHTjTHJmbIPfsAbF4AmxjDETSw9YD04/6lGecoe1xrA=" + "engineHashes": { + "aarch64-linux": { + "aarch64-linux": "sha256-MDmnLj7uUgAQ3UIgU4XU8r57TMv50tFdfmYYcFhcsxM=", + "x86_64-linux": "sha256-MDmnLj7uUgAQ3UIgU4XU8r57TMv50tFdfmYYcFhcsxM=" + }, + "x86_64-linux": { + "aarch64-linux": "sha256-93ut4VKfLefvB/dNAlf7MrfchM8dS4uhvyhM0Lt94jQ=", + "x86_64-linux": "sha256-93ut4VKfLefvB/dNAlf7MrfchM8dS4uhvyhM0Lt94jQ=" + } }, "dartVersion": "3.11.4", - "engineHash": "sha256-DJwtw5yJsTou6mXb5lSjP1two72rRqdO2Q/+WkhWGS8=", - "engineVersion": "425cfb54d01a9472b3e81d9e76fd63a4a44cfbcb", + "dartHash": { + "x86_64-linux": "sha256-UtYvBbAHzLcRfPQcGb7aHIfBRLJ+pgCxa0ycjqj8j9Q=", + "aarch64-linux": "sha256-w1um8N4fXrvyNQZhK//DR8e6lMOkx1EQyrEVeJIWbTw=", + "x86_64-darwin": "sha256-GHTjTHJmbIPfsAbF4AmxjDETSw9YD04/6lGecoe1xrA=", + "aarch64-darwin": "sha256-DwyZtAeZLuaX2MFVPzhERiFeX45wI9sTc4Y2SVopRE8=" + }, "flutterHash": "sha256-oI/Ml2gT1jStnpAwS/SBant3ja8d7hSEZ74kin8kENk=", + "artifactHashes": { + "android": { + "aarch64-darwin": "sha256-XqHuTqBB5htEaOXwBWW2JE7KIHfQ4AnyTVTu6ekrL34=", + "aarch64-linux": "sha256-+0pmhXISuitKlG94LraIAr0qDu7ob4DrefMiBcZBbRU=", + "x86_64-darwin": "sha256-XqHuTqBB5htEaOXwBWW2JE7KIHfQ4AnyTVTu6ekrL34=", + "x86_64-linux": "sha256-+0pmhXISuitKlG94LraIAr0qDu7ob4DrefMiBcZBbRU=" + }, + "fuchsia": { + "aarch64-darwin": "sha256-CZpjr9MPSxKW37Mz3/E11drpCQRKVHrG8VDU0qVl45E=", + "aarch64-linux": "sha256-CZpjr9MPSxKW37Mz3/E11drpCQRKVHrG8VDU0qVl45E=", + "x86_64-darwin": "sha256-CZpjr9MPSxKW37Mz3/E11drpCQRKVHrG8VDU0qVl45E=", + "x86_64-linux": "sha256-CZpjr9MPSxKW37Mz3/E11drpCQRKVHrG8VDU0qVl45E=" + }, + "ios": { + "aarch64-darwin": "sha256-GFDc9AwM9WCO8Y0KUclhQwSsHBz6KVuFFx6OtbHAPy4=", + "aarch64-linux": "sha256-GFDc9AwM9WCO8Y0KUclhQwSsHBz6KVuFFx6OtbHAPy4=", + "x86_64-darwin": "sha256-GFDc9AwM9WCO8Y0KUclhQwSsHBz6KVuFFx6OtbHAPy4=", + "x86_64-linux": "sha256-GFDc9AwM9WCO8Y0KUclhQwSsHBz6KVuFFx6OtbHAPy4=" + }, + "linux": { + "aarch64-darwin": "sha256-/rAQETXAXGblIinEfTmwV29lFfHj4Ws9BvD1MZ/bnqM=", + "aarch64-linux": "sha256-/rAQETXAXGblIinEfTmwV29lFfHj4Ws9BvD1MZ/bnqM=", + "x86_64-darwin": "sha256-Q/3ba2UhzMaJrOAFz6HaHAbgcTHEztMUPg+SEAt0PAM=", + "x86_64-linux": "sha256-Q/3ba2UhzMaJrOAFz6HaHAbgcTHEztMUPg+SEAt0PAM=" + }, + "macos": { + "aarch64-darwin": "sha256-HPLmvF32alDhh1jRigp/zJU77nLueDFEsDmM4eBIdos=", + "aarch64-linux": "sha256-HPLmvF32alDhh1jRigp/zJU77nLueDFEsDmM4eBIdos=", + "x86_64-darwin": "sha256-HPLmvF32alDhh1jRigp/zJU77nLueDFEsDmM4eBIdos=", + "x86_64-linux": "sha256-HPLmvF32alDhh1jRigp/zJU77nLueDFEsDmM4eBIdos=" + }, + "universal": { + "aarch64-darwin": "sha256-kJv9nhT15oWafKEjahk0Dlh8sko6DGvrfpBowlDKps4=", + "aarch64-linux": "sha256-XVUgeHwC0BgqeMWvkhMwi8k2yrcWNbUPTMw7F++UkV4=", + "x86_64-darwin": "sha256-9xkjn2IOfOIy4xtUO43YfJwwYXcL7LHvJ3FVTa7jt5w=", + "x86_64-linux": "sha256-l56TIx2e3hCxMzyhzZLE8vo4H59XWnSofyPfa1i5Oyo=" + }, + "web": { + "aarch64-darwin": "sha256-oJQjHSkQS+P2jNEr1GAJp61bNk05579okyGK5BovjRA=", + "aarch64-linux": "sha256-oJQjHSkQS+P2jNEr1GAJp61bNk05579okyGK5BovjRA=", + "x86_64-darwin": "sha256-oJQjHSkQS+P2jNEr1GAJp61bNk05579okyGK5BovjRA=", + "x86_64-linux": "sha256-oJQjHSkQS+P2jNEr1GAJp61bNk05579okyGK5BovjRA=" + }, + "windows": { + "x86_64-darwin": "sha256-rDuCsweWYvlT6Z8kGr1AK0UMzRUpn8MYscdF7qqmbnc=", + "x86_64-linux": "sha256-rDuCsweWYvlT6Z8kGr1AK0UMzRUpn8MYscdF7qqmbnc=" + } + }, "pubspecLock": { "packages": { "_fe_analyzer_shared": { @@ -1091,7 +1086,5 @@ "sdks": { "dart": ">=3.10.0-0.0.dev <4.0.0" } - }, - "version": "3.41.6" + } } - diff --git a/pkgs/development/compilers/flutter/versions/3_41/patches/content-unaware-hash.patch b/pkgs/development/compilers/flutter/versions/3_41/patches/content-unaware-hash.patch deleted file mode 100644 index 461dc7f171f6..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_41/patches/content-unaware-hash.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/bin/internal/content_aware_hash.sh -+++ b/bin/internal/content_aware_hash.sh -@@ -13,6 +13,9 @@ - - set -e - -+echo '0000000000000000000000000000000000000000' -+exit 0 -+ - FLUTTER_ROOT="$(dirname "$(dirname "$(dirname "${BASH_SOURCE[0]}")")")" - - unset GIT_DIR diff --git a/pkgs/development/compilers/flutter/versions/3_41/patches/no-cache.patch b/pkgs/development/compilers/flutter/versions/3_41/patches/no-cache.patch deleted file mode 100644 index 83b347dc01b7..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_41/patches/no-cache.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- a/packages/flutter_tools/lib/src/cache.dart -+++ b/packages/flutter_tools/lib/src/cache.dart -@@ -318,7 +319,7 @@ - var fatalStorageWarning = true; - - static RandomAccessFile? _lock; -- static var _lockEnabled = true; -+ static var _lockEnabled = false; - - /// Turn off the [lock]/[releaseLock] mechanism. - /// -@@ -721,7 +722,6 @@ - } - - void setStampFor(String artifactName, String version) { -- getStampFileFor(artifactName).writeAsStringSync(version); - } - - File getStampFileFor(String artifactName) { -@@ -1010,31 +1010,6 @@ - } - - Future checkForArtifacts(String? engineVersion) async { -- engineVersion ??= version; -- final url = '${cache.storageBaseUrl}/flutter_infra_release/flutter/$engineVersion/'; -- -- var exists = false; -- for (final String pkgName in getPackageDirs()) { -- exists = await cache.doesRemoteExist( -- 'Checking package $pkgName is available...', -- Uri.parse('$url$pkgName.zip'), -- ); -- if (!exists) { -- return false; -- } -- } -- -- for (final List toolsDir in getBinaryDirs()) { -- final String cacheDir = toolsDir[0]; -- final String urlPath = toolsDir[1]; -- exists = await cache.doesRemoteExist( -- 'Checking $cacheDir tools are available...', -- Uri.parse(url + urlPath), -- ); -- if (!exists) { -- return false; -- } -- } - return true; - } - diff --git a/pkgs/development/compilers/flutter/versions/3_41/patches/version.patch b/pkgs/development/compilers/flutter/versions/3_41/patches/version.patch deleted file mode 100644 index 92c8b8e50db9..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_41/patches/version.patch +++ /dev/null @@ -1,131 +0,0 @@ ---- a/packages/flutter_tools/lib/src/version.dart -+++ b/packages/flutter_tools/lib/src/version.dart -@@ -99,10 +99,7 @@ abstract class FlutterVersion { - } - } - -- final String frameworkRevision = git -- .logSync(['-n', '1', '--pretty=format:%H'], workingDirectory: flutterRoot) -- .stdout -- .trim(); -+ final String frameworkRevision = 'nixpkgs000000000000000000000000000000000'; - - return FlutterVersion.fromRevision( - clock: clock, -@@ -222,10 +219,7 @@ abstract class FlutterVersion { - final String flutterRoot; - - String _getTimeSinceCommit({String? revision}) { -- return _git -- .logSync(['-n', '1', '--pretty=format:%ar', ?revision], workingDirectory: flutterRoot) -- .stdout -- .trim(); -+ return 'unknown'; - } - - // TODO(fujino): calculate this relative to frameworkCommitDate for -@@ -391,13 +385,7 @@ abstract class FlutterVersion { - /// remote git repository is not reachable due to a network issue. - Future _fetchRemoteFrameworkCommitDate() async { - try { -- // Fetch upstream branch's commit and tags -- await _run(_git, ['fetch', '--tags']); -- return _gitCommitDate( -- git: _git, -- gitRef: kGitTrackingUpstream, -- workingDirectory: Cache.flutterRoot, -- ); -+ return 'unknown'; - } on VersionCheckError catch (error) { - globals.printError(error.message); - rethrow; -@@ -422,13 +410,7 @@ abstract class FlutterVersion { - /// If [redactUnknownBranches] is true and the branch is unknown, - /// the branch name will be returned as `'[user-branch]'` ([kUserBranch]). - String getBranchName({bool redactUnknownBranches = false}) { -- _branch ??= () { -- final String branch = _git -- .runSync(['symbolic-ref', '--short', 'HEAD'], workingDirectory: flutterRoot) -- .stdout -- .trim(); -- return branch == 'HEAD' ? '' : branch; -- }(); -+ _branch ??= 'stable'; - if (redactUnknownBranches || _branch!.isEmpty) { - // Only return the branch names we know about; arbitrary branch names might contain PII. - if (!kOfficialChannels.contains(_branch) && !kObsoleteBranches.containsKey(_branch)) { -@@ -464,31 +446,7 @@ String _gitCommitDate({ - required Git git, - required String? workingDirectory, - }) { -- final RunResult result = git.logSync([ -- gitRef, -- '-n', -- '1', -- '--pretty=format:%ad', -- '--date=iso', -- ], workingDirectory: workingDirectory); -- if (result.exitCode == 0) { -- return result.stdout.trim(); -- } -- final error = VersionCheckError( -- 'Command exited with code ${result.exitCode}: ${result.command.join(' ')}\n' -- 'Standard out: ${result.stdout}\n' -- 'Standard error: ${result.stderr}', -- ); -- if (lenient) { -- final dummyDate = DateTime.fromMillisecondsSinceEpoch(0); -- globals.printError( -- 'Failed to find the latest git commit date: $error\n' -- 'Returning $dummyDate instead.', -- ); -- // Return something that DateTime.parse() can parse. -- return dummyDate.toString(); -- } -- throw error; -+ return 'unknown'; - } - - class _FlutterVersionFromFile extends FlutterVersion { -@@ -639,23 +597,7 @@ class _FlutterVersionGit extends FlutterVersion { - @override - String? get repositoryUrl { - if (_repositoryUrl == null) { -- final String gitChannel = _git -- .runSync([ -- 'rev-parse', -- '--abbrev-ref', -- '--symbolic', -- kGitTrackingUpstream, -- ], workingDirectory: flutterRoot) -- .stdout -- .trim(); -- final int slash = gitChannel.indexOf('/'); -- if (slash != -1) { -- final String remote = gitChannel.substring(0, slash); -- _repositoryUrl = _git -- .runSync(['ls-remote', '--get-url', remote], workingDirectory: flutterRoot) -- .stdout -- .trim(); -- } -+ _repositoryUrl = 'https://github.com/flutter/flutter.git'; - } - return _repositoryUrl; - } -@@ -1010,6 +952,16 @@ class GitTagVersion { - String? workingDirectory, - bool fetchTags = false, - String gitRef = 'HEAD', -+ }) { -+ return GitTagVersion.unknown(); -+ } -+ -+ static GitTagVersion determine_orig( -+ Platform platform, { -+ required Git git, -+ String? workingDirectory, -+ bool fetchTags = false, -+ String gitRef = 'HEAD', - }) { - if (fetchTags) { - final String channel = git diff --git a/pkgs/development/compilers/flutter/wrapper.nix b/pkgs/development/compilers/flutter/wrapper.nix new file mode 100644 index 000000000000..f9009186364f --- /dev/null +++ b/pkgs/development/compilers/flutter/wrapper.nix @@ -0,0 +1,211 @@ +{ + lib, + stdenv, + darwin, + callPackage, + flutter, + supportedTargetFlutterPlatforms ? [ + "universal" + "web" + ] + ++ lib.optional (stdenv.hostPlatform.isLinux && !(flutter ? engine)) "linux" + ++ lib.optional (stdenv.hostPlatform.isx86_64 || stdenv.hostPlatform.isDarwin) "android" + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + "macos" + "ios" + ], + artifactHashes ? flutter.artifactHashes, + extraPkgConfigPackages ? [ ], + extraLibraries ? [ ], + extraIncludes ? [ ], + extraCxxFlags ? [ ], + extraCFlags ? [ ], + extraLinkerFlags ? [ ], + makeWrapper, + writeShellScript, + wrapGAppsHook3, + gitMinimal, + which, + pkg-config, + atk, + cairo, + gdk-pixbuf, + glib, + gtk3, + harfbuzz, + libepoxy, + pango, + libx11, + xorgproto, + libdeflate, + zlib, + cmake, + ninja, + clang, + symlinkJoin, +}: + +let + supportsLinuxDesktopTarget = builtins.elem "linux" supportedTargetFlutterPlatforms; + + flutterPlatformArtifacts = lib.genAttrs supportedTargetFlutterPlatforms ( + flutterPlatform: + (callPackage ./artifacts/prepare-artifacts.nix { + src = callPackage ./artifacts/fetch-artifacts.nix { + inherit flutterPlatform; + systemPlatform = stdenv.hostPlatform.system; + flutter = callPackage ./wrapper.nix { inherit flutter; }; + hash = artifactHashes.${flutterPlatform}.${stdenv.hostPlatform.system} or ""; + }; + }) + ); + + cacheDir = symlinkJoin { + name = "flutter-cache-dir"; + paths = builtins.attrValues flutterPlatformArtifacts; + postBuild = '' + mkdir --parents "$out/bin/cache" + ln --symbolic '${flutter}/bin/cache/dart-sdk' "$out/bin/cache" + ''; + passthru.flutterPlatform = flutterPlatformArtifacts; + }; + + # By default, Flutter stores downloaded files (such as the Pub cache) in the SDK directory. + # Wrap it to ensure that it does not do that, preferring home directories instead. + immutableFlutter = writeShellScript "flutter_immutable" '' + export PUB_CACHE=''${PUB_CACHE:-"$HOME/.pub-cache"} + ${flutter}/bin/flutter "$@" + ''; + + # Tools that the Flutter tool depends on. + tools = [ + gitMinimal + which + ]; + + # Libraries that Flutter apps depend on at runtime. + appRuntimeDeps = lib.optionals supportsLinuxDesktopTarget [ + atk + cairo + gdk-pixbuf + glib + gtk3 + harfbuzz + libepoxy + pango + libx11 + libdeflate + ]; + + # Development packages required for compilation. + appBuildDeps = + let + # https://discourse.nixos.org/t/handling-transitive-c-dependencies/5942/3 + deps = + pkg: lib.filter lib.isDerivation ((pkg.buildInputs or [ ]) ++ (pkg.propagatedBuildInputs or [ ])); + withKey = pkg: { + key = pkg.outPath; + val = pkg; + }; + collect = pkg: lib.map withKey ([ pkg ] ++ deps pkg); + in + lib.map (e: e.val) ( + lib.genericClosure { + startSet = lib.map withKey appRuntimeDeps; + operator = item: collect item.val; + } + ); + + # Some header files and libraries are not properly located by the Flutter SDK. + # They must be manually included. + appStaticBuildDeps = + (lib.optionals supportsLinuxDesktopTarget [ + libx11 + xorgproto + zlib + ]) + ++ extraLibraries; + + # Tools used by the Flutter SDK to compile applications. + buildTools = lib.optionals supportsLinuxDesktopTarget [ + pkg-config + cmake + ninja + clang + ]; + + # Nix-specific compiler configuration. + pkgConfigPackages = map (lib.getOutput "dev") (appBuildDeps ++ extraPkgConfigPackages); + includeFlags = map (pkg: "-isystem ${lib.getOutput "dev" pkg}/include") ( + appStaticBuildDeps ++ extraIncludes + ); + linkerFlags = + (map (pkg: "-rpath,${lib.getOutput "lib" pkg}/lib") appRuntimeDeps) ++ extraLinkerFlags; +in +(callPackage ./sdk-symlink.nix { }) ( + stdenv.mkDerivation { + pname = "flutter-wrapped"; + inherit (flutter) version; + + nativeBuildInputs = [ + makeWrapper + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ] + ++ lib.optionals supportsLinuxDesktopTarget [ + glib + wrapGAppsHook3 + ]; + + passthru = flutter.passthru // { + inherit (flutter) version; + unwrapped = flutter; + updateScript = ./update/update.py; + inherit cacheDir; + }; + + dontUnpack = true; + dontWrapGApps = true; + + installPhase = '' + runHook preInstall + + for path in ${ + builtins.concatStringsSep " " ( + builtins.foldl' ( + paths: pkg: + paths + ++ (map (directory: "'${pkg}/${directory}/pkgconfig'") [ + "lib" + "share" + ]) + ) [ ] pkgConfigPackages + ) + }; do + addToSearchPath FLUTTER_PKG_CONFIG_PATH "$path" + done + + mkdir --parents $out/bin + makeWrapper '${immutableFlutter}' $out/bin/flutter \ + --set-default ANDROID_EMULATOR_USE_SYSTEM_LIBS 1 \ + '' + + lib.optionalString (flutter ? engine && flutter.engine.meta.available) '' + --set-default FLUTTER_ENGINE "${flutter.engine}" \ + --add-flags "--local-engine-host ${flutter.engine.outName}" \ + '' + + '' + --suffix PATH : '${lib.makeBinPath (tools ++ buildTools)}' \ + --suffix PKG_CONFIG_PATH : "$FLUTTER_PKG_CONFIG_PATH" \ + --suffix LIBRARY_PATH : '${lib.makeLibraryPath appStaticBuildDeps}' \ + --prefix CXXFLAGS "''\t" '${builtins.concatStringsSep " " (includeFlags ++ extraCxxFlags)}' \ + --prefix CFLAGS "''\t" '${builtins.concatStringsSep " " (includeFlags ++ extraCFlags)}' \ + --prefix LDFLAGS "''\t" '${ + builtins.concatStringsSep " " (map (flag: "-Wl,${flag}") linkerFlags) + }' \ + ''${gappsWrapperArgs[@]} + + runHook postInstall + ''; + + inherit (flutter) meta; + } +) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 8b99d451c4b7..a84773b93168 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -675,7 +675,6 @@ mapAliases { eureka-ideas = throw "'eureka-ideas' has been removed as it has been unmaintained upstream since April 2023"; # Added 2026-02-07 evolve-core = throw "'evolve-core' has been removed, as it hindered the removal of flutter329"; # Added 2026-01-25 eww-wayland = throw "'eww-wayland' has been renamed to/replaced by 'eww'"; # Converted to throw 2025-10-27 - expidus = throw "'expidus' has been removed from nixpkgs due to it not being maintained"; # Added 2026-03-17 f3d_egl = warnAlias "'f3d' now build with egl support by default, so `f3d_egl` is deprecated, consider using 'f3d' instead." f3d; # Added 2025-07-18 fabs = throw "'fabs' has been removed due to being broken for more than a year; see RFC 180"; # Added 2026-02-05 fast-cli = throw "'fast-cli' has been removed because it was unmaintainable in nixpkgs"; # Added 2025-11-17 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f7253d25f4f8..675fc6ac777c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3811,14 +3811,13 @@ with pkgs; flutterPackages-source = recurseIntoAttrs ( callPackage ../development/compilers/flutter { useNixpkgsEngine = true; } ); - flutterPackages = - if stdenv.hostPlatform.isLinux then flutterPackages-source else flutterPackages-bin; + flutterPackages = flutterPackages-bin; flutter = flutterPackages.stable; flutter341 = flutterPackages.v3_41; - flutter338 = flutterPackages-bin.v3_38; - flutter335 = flutterPackages-bin.v3_35; - flutter332 = flutterPackages-bin.v3_32; - flutter329 = flutterPackages-bin.v3_29; + flutter338 = flutterPackages.v3_38; + flutter335 = flutterPackages.v3_35; + flutter332 = flutterPackages.v3_32; + flutter329 = flutterPackages.v3_29; fpc = callPackage ../development/compilers/fpc { }; @@ -11379,6 +11378,14 @@ with pkgs; enlightenment = recurseIntoAttrs (callPackage ../desktops/enlightenment { }); + expidus = recurseIntoAttrs ( + callPackages ../desktops/expidus { + # Use the Nix built Flutter Engine for testing. + # Also needed when we eventually package Genesis Shell. + flutterPackages = flutterPackages-source; + } + ); + gnome2 = recurseIntoAttrs (callPackage ../desktops/gnome-2 { }); gnome = recurseIntoAttrs (callPackage ../desktops/gnome { }); From a0e383d071aea21a943f6d12d5d2ecf07a370473 Mon Sep 17 00:00:00 2001 From: Ben Siraphob Date: Sun, 12 Apr 2026 19:48:09 -0700 Subject: [PATCH 010/110] python3Packages.colcon: 0.19.0 -> 0.20.1 --- pkgs/development/python-modules/colcon/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/colcon/default.nix b/pkgs/development/python-modules/colcon/default.nix index 8c53dc78bfed..b1d355ddf6a0 100644 --- a/pkgs/development/python-modules/colcon/default.nix +++ b/pkgs/development/python-modules/colcon/default.nix @@ -21,14 +21,14 @@ buildPythonPackage rec { pname = "colcon-core"; - version = "0.19.0"; + version = "0.20.1"; pyproject = true; src = fetchFromGitHub { owner = "colcon"; repo = "colcon-core"; tag = version; - hash = "sha256-R/TVHPT305PwaVSisP0TtbgjCFBwCZkXOAgkYhCKpyY="; + hash = "sha256-FV/G2FcnBgr7mUY/Jr+bVAdEfhHL9qAnpc92hpTfy7Y="; }; build-system = [ setuptools ]; @@ -62,6 +62,8 @@ buildPythonPackage rec { pythonRemoveDeps = [ # We use pytest-cov-stub instead (and it is not a runtime dependency anyways) "pytest-cov" + # Upper bound on setuptools is too strict for nixpkgs + "setuptools" ]; meta = { From 4cf02f827ecc043c8775af5aa339a8cfe055877e Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Thu, 16 Apr 2026 18:56:48 -0400 Subject: [PATCH 011/110] telegram-desktop: 6.7.5 -> 6.7.6 Diff: https://github.com/telegramdesktop/tdesktop/compare/v6.7.5...v6.7.6 Changelog: https://github.com/telegramdesktop/tdesktop/releases/tag/v6.7.6 --- .../telegram/telegram-desktop/unwrapped.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix index e1c442e386bf..1f3c199a9134 100644 --- a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix +++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix @@ -45,14 +45,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "telegram-desktop-unwrapped"; - version = "6.7.5"; + version = "6.7.6"; src = fetchFromGitHub { owner = "telegramdesktop"; repo = "tdesktop"; rev = "v${finalAttrs.version}"; fetchSubmodules = true; - hash = "sha256-HsXNTZY/+Xz7pIT7durOd5T/u7jML0rVBOPb4pnIXow="; + hash = "sha256-TGI1SLtzjjDaodQc+JIVRRiwCy9PCO3MuPfv2DpDFxo="; }; nativeBuildInputs = [ From 050acbc2639c662b5dfc7d2434e0377a343bccca Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Thu, 16 Apr 2026 18:57:37 -0400 Subject: [PATCH 012/110] telegram-desktop.tg_owt: 0-unstable-2026-03-09 -> 0-unstable-2026-04-09 Diff: https://github.com/desktop-app/tg_owt/compare/26068e29bfa8d74a9dc9c8f7f94172fafbc262b8...89df288dd6ba5b2ec95b3c5eaf1e7e0c3a870fc4 --- .../instant-messengers/telegram/telegram-desktop/tg_owt.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix index 4bf284d1c750..73038a5e3242 100644 --- a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix +++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix @@ -33,13 +33,13 @@ stdenv.mkDerivation { pname = "tg_owt"; - version = "0-unstable-2026-03-09"; + version = "0-unstable-2026-04-09"; src = fetchFromGitHub { owner = "desktop-app"; repo = "tg_owt"; - rev = "26068e29bfa8d74a9dc9c8f7f94172fafbc262b8"; - hash = "sha256-/9uJMm54LC9ZeDwmursdyGeR81vBVTpjGdRUTOX0gV0="; + rev = "89df288dd6ba5b2ec95b3c5eaf1e7e0c3a870fc4"; + hash = "sha256-wdO3AACCEN3IDYWt5a+f7zrcPFoqz+c7vLpo6LZk29w="; fetchSubmodules = true; }; From 03b63da6808bf1b497dec1ac7bf6f9f01c412bee Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Thu, 16 Apr 2026 18:58:50 -0400 Subject: [PATCH 013/110] _64gram: 1.1.99 -> 1.2.0 Diff: https://github.com/TDesktop-x64/tdesktop/compare/v1.1.99...v1.2.0 Changelog: https://github.com/TDesktop-x64/tdesktop/releases/tag/v1.2.0 --- pkgs/by-name/_6/_64gram/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/_6/_64gram/package.nix b/pkgs/by-name/_6/_64gram/package.nix index 18968647d9e8..f3c071bd8f12 100644 --- a/pkgs/by-name/_6/_64gram/package.nix +++ b/pkgs/by-name/_6/_64gram/package.nix @@ -10,13 +10,13 @@ telegram-desktop.override { inherit withWebkit; unwrapped = telegram-desktop.unwrapped.overrideAttrs (old: rec { pname = "64gram-unwrapped"; - version = "1.1.99"; + version = "1.2.0"; src = fetchFromGitHub { owner = "TDesktop-x64"; repo = "tdesktop"; tag = "v${version}"; - hash = "sha256-p1mdNoTjftbAeoWJ+AKVPFr87BoxOLIT5fDzWY3VXMQ="; + hash = "sha256-Xhyk/rCb4EakU0Nc80U1QN3PyMqlLBtcYb+zGjllhDM="; fetchSubmodules = true; }; From 54b77da60af78910b84e1ef3233d0241371b9ff7 Mon Sep 17 00:00:00 2001 From: Aaron Jheng Date: Fri, 17 Apr 2026 22:47:04 +0800 Subject: [PATCH 014/110] owncast: 0.2.4 -> 0.2.5 --- pkgs/by-name/ow/owncast/fix-go.sum.diff | 128 ------------------------ pkgs/by-name/ow/owncast/package.nix | 10 +- 2 files changed, 4 insertions(+), 134 deletions(-) delete mode 100644 pkgs/by-name/ow/owncast/fix-go.sum.diff diff --git a/pkgs/by-name/ow/owncast/fix-go.sum.diff b/pkgs/by-name/ow/owncast/fix-go.sum.diff deleted file mode 100644 index 46cd99d2d32d..000000000000 --- a/pkgs/by-name/ow/owncast/fix-go.sum.diff +++ /dev/null @@ -1,128 +0,0 @@ -diff --git a/go.mod b/go.mod -index 7c512f8f22..4b702c6048 100644 ---- a/go.mod -+++ b/go.mod -@@ -45,6 +45,7 @@ require ( - 4d63.com/gochecknoglobals v0.2.2 // indirect - cel.dev/expr v0.24.0 // indirect - codeberg.org/chavacava/garif v0.2.0 // indirect -+ codeberg.org/polyfloyd/go-errorlint v1.9.0 // indirect - dev.gaijin.team/go/exhaustruct/v4 v4.0.0 // indirect - dev.gaijin.team/go/golib v0.6.0 // indirect - filippo.io/edwards25519 v1.1.0 // indirect -@@ -194,6 +195,7 @@ require ( - github.com/ldez/exptostd v0.4.5 // indirect - github.com/ldez/gomoddirectives v0.8.0 // indirect - github.com/ldez/grignotin v0.10.1 // indirect -+ github.com/ldez/structtags v0.6.1 // indirect - github.com/ldez/tagliatelle v0.7.2 // indirect - github.com/ldez/usetesting v0.5.0 // indirect - github.com/leonklingele/grouper v1.1.2 // indirect -diff --git a/go.sum b/go.sum -index 61f1d39577..8818677916 100644 ---- a/go.sum -+++ b/go.sum -@@ -6,6 +6,8 @@ cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY= - cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= - codeberg.org/chavacava/garif v0.2.0 h1:F0tVjhYbuOCnvNcU3YSpO6b3Waw6Bimy4K0mM8y6MfY= - codeberg.org/chavacava/garif v0.2.0/go.mod h1:P2BPbVbT4QcvLZrORc2T29szK3xEOlnl0GiPTJmEqBQ= -+codeberg.org/polyfloyd/go-errorlint v1.9.0 h1:VkdEEmA1VBpH6ecQoMR4LdphVI3fA4RrCh2an7YmodI= -+codeberg.org/polyfloyd/go-errorlint v1.9.0/go.mod h1:GPRRu2LzVijNn4YkrZYJfatQIdS+TrcK8rL5Xs24qw8= - dev.gaijin.team/go/exhaustruct/v4 v4.0.0 h1:873r7aNneqoBB3IaFIzhvt2RFYTuHgmMjoKfwODoI1Y= - dev.gaijin.team/go/exhaustruct/v4 v4.0.0/go.mod h1:aZ/k2o4Y05aMJtiux15x8iXaumE88YdiB0Ai4fXOzPI= - dev.gaijin.team/go/golib v0.6.0 h1:v6nnznFTs4bppib/NyU1PQxobwDHwCXXl15P7DV5Zgo= -@@ -29,6 +31,7 @@ github.com/Antonboom/testifylint v1.6.4/go.mod h1:YO33FROXX2OoUfwjz8g+gUxQXio5i9 - github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= - github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= - github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= -+github.com/BurntSushi/toml v1.6.0 h1:dRaEfpa2VI55EwlIW72hMRHdWouJeRF7TPYhI+AUQjk= - github.com/BurntSushi/toml v1.6.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= - github.com/CAFxX/httpcompression v0.0.9 h1:0ue2X8dOLEpxTm8tt+OdHcgA+gbDge0OqFQWGKSqgrg= - github.com/CAFxX/httpcompression v0.0.9/go.mod h1:XX8oPZA+4IDcfZ0A71Hz0mZsv/YJOgYygkFhizVPilM= -@@ -40,6 +43,7 @@ github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1 - github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= - github.com/MirrexOne/unqueryvet v1.3.0 h1:5slWSomgqpYU4zFuZ3NNOfOUxVPlXFDBPAVasZOGlAY= - github.com/MirrexOne/unqueryvet v1.3.0/go.mod h1:IWwCwMQlSWjAIteW0t+28Q5vouyktfujzYznSIWiuOg= -+github.com/MirrexOne/unqueryvet v1.4.0 h1:6KAkqqW2KUnkl9Z0VuTphC3IXRPoFqEkJEtyxxHj5eQ= - github.com/MirrexOne/unqueryvet v1.4.0/go.mod h1:IWwCwMQlSWjAIteW0t+28Q5vouyktfujzYznSIWiuOg= - github.com/OpenPeeDeeP/depguard/v2 v2.2.1 h1:vckeWVESWp6Qog7UZSARNqfu/cZqvki8zsuj3piCMx4= - github.com/OpenPeeDeeP/depguard/v2 v2.2.1/go.mod h1:q4DKzC4UcVaAvcfd41CZh0PWpGgzrVxUYBlgKNGquUo= -@@ -52,6 +56,7 @@ github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8v - github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k= - github.com/alecthomas/chroma/v2 v2.20.0 h1:sfIHpxPyR07/Oylvmcai3X/exDlE8+FA820NTz+9sGw= - github.com/alecthomas/chroma/v2 v2.20.0/go.mod h1:e7tViK0xh/Nf4BYHl00ycY6rV7b8iXBksI9E359yNmA= -+github.com/alecthomas/chroma/v2 v2.21.1 h1:FaSDrp6N+3pphkNKU6HPCiYLgm8dbe5UXIXcoBhZSWA= - github.com/alecthomas/chroma/v2 v2.21.1/go.mod h1:NqVhfBR0lte5Ouh3DcthuUCTUpDC9cxBOfyMbMQPs3o= - github.com/alecthomas/go-check-sumtype v0.3.1 h1:u9aUvbGINJxLVXiFvHUlPEaD7VDULsrxJb4Aq31NLkU= - github.com/alecthomas/go-check-sumtype v0.3.1/go.mod h1:A8TSiN3UPRw3laIgWEUOHHLPa6/r9MtoigdlP5h3K/E= -@@ -63,6 +68,7 @@ github.com/alexkohler/nakedret/v2 v2.0.6 h1:ME3Qef1/KIKr3kWX3nti3hhgNxw6aqN5pZmQ - github.com/alexkohler/nakedret/v2 v2.0.6/go.mod h1:l3RKju/IzOMQHmsEvXwkqMDzHHvurNQfAgE1eVmT40Q= - github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw= - github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= -+github.com/alexkohler/prealloc v1.0.1 h1:A9P1haqowqUxWvU9nk6tQ7YktXIHf+LQM9wPRhuteEE= - github.com/alexkohler/prealloc v1.0.1/go.mod h1:fT39Jge3bQrfA7nPMDngUfvUbQGQeJyGQnR+913SCig= - github.com/alfatraining/structtag v1.0.0 h1:2qmcUqNcCoyVJ0up879K614L9PazjBSFruTB0GOFjCc= - github.com/alfatraining/structtag v1.0.0/go.mod h1:p3Xi5SwzTi+Ryj64DqjLWz7XurHxbGsq6y3ubePJPus= -@@ -188,11 +194,13 @@ github.com/getkin/kin-openapi v0.133.0 h1:pJdmNohVIJ97r4AUFtEXRXwESr8b0bD721u/Tz - github.com/getkin/kin-openapi v0.133.0/go.mod h1:boAciF6cXk5FhPqe/NQeBTeenbjqU4LhWBf09ILVvWE= - github.com/ghostiam/protogetter v0.3.17 h1:sjGPErP9o7i2Ym+z3LsQzBdLCNaqbYy2iJQPxGXg04Q= - github.com/ghostiam/protogetter v0.3.17/go.mod h1:AivIX1eKA/TcUmzZdzbl+Tb8tjIe8FcyG6JFyemQAH4= -+github.com/ghostiam/protogetter v0.3.18 h1:yEpghRGtP9PjKvVXtEzGpYfQj1Wl/ZehAfU6fr62Lfo= - github.com/ghostiam/protogetter v0.3.18/go.mod h1:FjIu5Yfs6FT391m+Fjp3fbAYJ6rkL/J6ySpZBfnODuI= - github.com/go-chi/chi/v5 v5.2.3 h1:WQIt9uxdsAbgIYgid+BpYc+liqQZGMHRaUwp0JUcvdE= - github.com/go-chi/chi/v5 v5.2.3/go.mod h1:L2yAIGWB3H+phAw1NxKwWM+7eUH/lU8pOMm5hHcoops= - github.com/go-critic/go-critic v0.14.2 h1:PMvP5f+LdR8p6B29npvChUXbD1vrNlKDf60NJtgMBOo= - github.com/go-critic/go-critic v0.14.2/go.mod h1:xwntfW6SYAd7h1OqDzmN6hBX/JxsEKl5up/Y2bsxgVQ= -+github.com/go-critic/go-critic v0.14.3 h1:5R1qH2iFeo4I/RJU8vTezdqs08Egi4u5p6vOESA0pog= - github.com/go-critic/go-critic v0.14.3/go.mod h1:xwntfW6SYAd7h1OqDzmN6hBX/JxsEKl5up/Y2bsxgVQ= - github.com/go-fed/httpsig v0.1.1-0.20190914113940-c2de3672e5b5/go.mod h1:T56HUNYZUQ1AGUzhAYPugZfp36sKApVnGBgKlIY+aIE= - github.com/go-fed/httpsig v1.1.0 h1:9M+hb0jkEICD8/cAiNqEB66R87tTINszBRTjwjQzWcI= -@@ -251,6 +259,7 @@ github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw= - github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= - github.com/godoc-lint/godoc-lint v0.10.2 h1:dksNgK+zebnVlj4Fx83CRnCmPO0qRat/9xfFsir1nfg= - github.com/godoc-lint/godoc-lint v0.10.2/go.mod h1:KleLcHu/CGSvkjUH2RvZyoK1MBC7pDQg4NxMYLcBBsw= -+github.com/godoc-lint/godoc-lint v0.11.1 h1:z9as8Qjiy6miRIa3VRymTa+Gt2RLnGICVikcvlUVOaA= - github.com/godoc-lint/godoc-lint v0.11.1/go.mod h1:BAqayheFSuZrEAqCRxgw9MyvsM+S/hZwJbU1s/ejRj8= - github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= - github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= -@@ -279,9 +288,11 @@ github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d h1:viFft9sS/dxoYY0a - github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d/go.mod h1:ivJ9QDg0XucIkmwhzCDsqcnxxlDStoTl89jDMIoNxKY= - github.com/golangci/golangci-lint/v2 v2.7.2 h1:AhBC+YeEueec4AGlIbvPym5C70Thx0JykIqXbdIXWx0= - github.com/golangci/golangci-lint/v2 v2.7.2/go.mod h1:pDijleoBu7e8sejMqyZ3L5n6geqe+cVvOAz2QImqqVc= -+github.com/golangci/golangci-lint/v2 v2.8.0 h1:wJnr3hJWY3eVzOUcfwbDc2qbi2RDEpvLmQeNFaPSNYA= - github.com/golangci/golangci-lint/v2 v2.8.0/go.mod h1:xl+HafQ9xoP8rzw0z5AwnO5kynxtb80e8u02Ej/47RI= - github.com/golangci/golines v0.0.0-20250217134842-442fd0091d95 h1:AkK+w9FZBXlU/xUmBtSJN1+tAI4FIvy5WtnUnY8e4p8= - github.com/golangci/golines v0.0.0-20250217134842-442fd0091d95/go.mod h1:k9mmcyWKSTMcPPvQUCfRWWQ9VHJ1U9Dc0R7kaXAgtnQ= -+github.com/golangci/golines v0.14.0 h1:xt9d3RKBjhasA3qpoXs99J2xN2t6eBlpLHt0TrgyyXc= - github.com/golangci/golines v0.14.0/go.mod h1:gf555vPG2Ia7mmy2mzmhVQbVjuK8Orw0maR1G4vVAAQ= - github.com/golangci/misspell v0.7.0 h1:4GOHr/T1lTW0hhR4tgaaV1WS/lJ+ncvYCoFKmqJsj0c= - github.com/golangci/misspell v0.7.0/go.mod h1:WZyyI2P3hxPY2UVHs3cS8YcllAeyfquQcKfdeE9AFVg= -@@ -424,9 +435,12 @@ github.com/ldez/exptostd v0.4.5 h1:kv2ZGUVI6VwRfp/+bcQ6Nbx0ghFWcGIKInkG/oFn1aQ= - github.com/ldez/exptostd v0.4.5/go.mod h1:QRjHRMXJrCTIm9WxVNH6VW7oN7KrGSht69bIRwvdFsM= - github.com/ldez/gomoddirectives v0.7.1 h1:FaULkvUIG36hj6chpwa+FdCNGZBsD7/fO+p7CCsM6pE= - github.com/ldez/gomoddirectives v0.7.1/go.mod h1:auDNtakWJR1rC+YX7ar+HmveqXATBAyEK1KYpsIRW/8= -+github.com/ldez/gomoddirectives v0.8.0 h1:JqIuTtgvFC2RdH1s357vrE23WJF2cpDCPFgA/TWDGpk= - github.com/ldez/gomoddirectives v0.8.0/go.mod h1:jutzamvZR4XYJLr0d5Honycp4Gy6GEg2mS9+2YX3F1Q= - github.com/ldez/grignotin v0.10.1 h1:keYi9rYsgbvqAZGI1liek5c+jv9UUjbvdj3Tbn5fn4o= - github.com/ldez/grignotin v0.10.1/go.mod h1:UlDbXFCARrXbWGNGP3S5vsysNXAPhnSuBufpTEbwOas= -+github.com/ldez/structtags v0.6.1 h1:bUooFLbXx41tW8SvkfwfFkkjPYvFFs59AAMgVg6DUBk= -+github.com/ldez/structtags v0.6.1/go.mod h1:YDxVSgDy/MON6ariaxLF2X09bh19qL7MtGBN5MrvbdY= - github.com/ldez/tagliatelle v0.7.2 h1:KuOlL70/fu9paxuxbeqlicJnCspCRjH0x8FW+NfgYUk= - github.com/ldez/tagliatelle v0.7.2/go.mod h1:PtGgm163ZplJfZMZ2sf5nhUT170rSuPgBimoyYtdaSI= - github.com/ldez/usetesting v0.5.0 h1:3/QtzZObBKLy1F4F8jLuKJiKBjjVFi1IavpoWbmqLwc= -@@ -630,6 +644,7 @@ github.com/schollz/sqlite3dump v1.3.1 h1:QXizJ7XEJ7hggjqjZ3YRtF3+javm8zKtzNByYtE - github.com/schollz/sqlite3dump v1.3.1/go.mod h1:mzSTjZpJH4zAb1FN3iNlhWPbbdyeBpOaTW0hukyMHyI= - github.com/securego/gosec/v2 v2.22.11-0.20251204091113-daccba6b93d7 h1:rZg6IGn0ySYZwCX8LHwZoYm03JhG/cVAJJ3O+u3Vclo= - github.com/securego/gosec/v2 v2.22.11-0.20251204091113-daccba6b93d7/go.mod h1:9sr22NZO5Kfh7unW/xZxkGYTmj2484/fCiE54gw7UTY= -+github.com/securego/gosec/v2 v2.22.11 h1:tW+weM/hCM/GX3iaCV91d5I6hqaRT2TPsFM1+USPXwg= - github.com/securego/gosec/v2 v2.22.11/go.mod h1:KE4MW/eH0GLWztkbt4/7XpyH0zJBBnu7sYB4l6Wn7Mw= - github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= - github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= -@@ -964,6 +979,7 @@ golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg - golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= - golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ= - golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ= -+golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA= - golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc= - golang.org/x/tools/go/expect v0.1.1-deprecated h1:jpBZDwmgPhXsKZC6WhL20P4b/wmnpsEAGHaNy0n/rJM= - golang.org/x/tools/go/expect v0.1.1-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY= diff --git a/pkgs/by-name/ow/owncast/package.nix b/pkgs/by-name/ow/owncast/package.nix index db5c523b0900..4d9cdde6e826 100644 --- a/pkgs/by-name/ow/owncast/package.nix +++ b/pkgs/by-name/ow/owncast/package.nix @@ -9,7 +9,7 @@ makeBinaryWrapper, }: let - version = "0.2.4"; + version = "0.2.5"; in buildGoModule { pname = "owncast"; @@ -19,14 +19,12 @@ buildGoModule { owner = "owncast"; repo = "owncast"; tag = "v${version}"; - hash = "sha256-euqmAsGLh7enMbRKeGS7pB3L+12uAHFM2mqahst/bww="; + hash = "sha256-REgo9RC1izb9vJ6ae66Wti9yfP8DrCGetf6O4rX3DPY="; }; - patches = [ - ./fix-go.sum.diff - ]; + vendorHash = "sha256-T4nr4lNUEq6grZ21qumaOjIDIDoJK7Ql8j8WbCy2u3g=n"; - vendorHash = "sha256-XQXv1XeedHQozB56+boi32jsXQoCtD2XIg3deDvXIfw="; + subPackages = [ "." ]; propagatedBuildInputs = [ ffmpeg ]; From ee7720b24b366708a25f022695daa0b995546a89 Mon Sep 17 00:00:00 2001 From: Cameron Brown Date: Sat, 18 Apr 2026 21:48:31 -0400 Subject: [PATCH 015/110] xorgxrdp: 0.10.4 -> 0.10.5, xrdp: 0.10.4.1 -> 0.10.6 --- pkgs/by-name/xr/xrdp/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/xr/xrdp/package.nix b/pkgs/by-name/xr/xrdp/package.nix index 6009ad304576..922867b7a7a4 100644 --- a/pkgs/by-name/xr/xrdp/package.nix +++ b/pkgs/by-name/xr/xrdp/package.nix @@ -33,13 +33,13 @@ let xorgxrdp = stdenv.mkDerivation rec { pname = "xorgxrdp"; - version = "0.10.4"; + version = "0.10.5"; src = fetchFromGitHub { owner = "neutrinolabs"; repo = "xorgxrdp"; rev = "v${version}"; - hash = "sha256-TuzUerfOn8+3YfueG00IBP9sMpvy2deyL16mWQ8cRHg="; + hash = "sha256-P7mgdHIq7/Vkk5CR4mUYtQ0xBjh3J2QrYAobKbw1KXM="; }; nativeBuildInputs = [ @@ -78,7 +78,7 @@ let xrdp = stdenv.mkDerivation rec { pname = "xrdp"; - version = "0.10.4.1"; + version = "0.10.6"; src = applyPatches { inherit version; @@ -89,7 +89,7 @@ let repo = "xrdp"; rev = "v${version}"; fetchSubmodules = true; - hash = "sha256-ula1B9/eriJ+0r6d9r2LAzh7J3s6/uvAiTKeRzLuVL0="; + hash = "sha256-BoIpWafUWznRHN8BaZmld8vVbZtywaGiooGPnDtDCjM="; }; }; From 4b067448c5c130df0d3af50809510e50718f3a70 Mon Sep 17 00:00:00 2001 From: Harinn Date: Fri, 10 Apr 2026 14:01:28 +0700 Subject: [PATCH 016/110] goofcord: 1.7.1 -> 2.2.0 --- pkgs/by-name/go/goofcord/node-modules.nix | 65 +++++++++++++++ pkgs/by-name/go/goofcord/package.nix | 87 +++++++++++++------- pkgs/by-name/go/goofcord/patchcord-addon.nix | 27 ++++++ pkgs/by-name/go/goofcord/venbind-addon.nix | 56 +++++++++++++ 4 files changed, 203 insertions(+), 32 deletions(-) create mode 100644 pkgs/by-name/go/goofcord/node-modules.nix create mode 100644 pkgs/by-name/go/goofcord/patchcord-addon.nix create mode 100644 pkgs/by-name/go/goofcord/venbind-addon.nix diff --git a/pkgs/by-name/go/goofcord/node-modules.nix b/pkgs/by-name/go/goofcord/node-modules.nix new file mode 100644 index 000000000000..d75d177312dd --- /dev/null +++ b/pkgs/by-name/go/goofcord/node-modules.nix @@ -0,0 +1,65 @@ +# fixed output derivation for node_modules +{ + lib, + stdenv, + goofcord, + bun, + nodejs, + writableTmpDirAsHomeHook, +}: +stdenv.mkDerivation { + inherit (goofcord) version src; + pname = goofcord.pname + "-modules"; + + impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [ + "GIT_PROXY_COMMAND" + "SOCKS_SERVER" + ]; + + nativeBuildInputs = [ + bun + nodejs + writableTmpDirAsHomeHook + ]; + + dontConfigure = true; + dontFixup = true; + + buildPhase = '' + runHook preBuild + + export BUN_INSTALL_CACHE_DIR=$(mktemp -d) + export npm_config_build_from_source=true + export ELECTRON_SKIP_BINARY_DOWNLOAD=1 + + bun install \ + --frozen-lockfile \ + --linker=hoisted \ + --no-progress + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + cp -R ./node_modules $out + + runHook postInstall + ''; + + outputHash = + { + x86_64-linux = "sha256-EEl+hrdMR6z1PAy+uIhl2UYtajXWiUQMQxIfYpMRw6Y="; + aarch64-linux = "sha256-ba+j8FGKNH3Mpql7xvLgHHuJxDGVlZ+TeZ3Oxsw3ot4="; + } + .${stdenv.hostPlatform.system} or (throw "Unsupported system ${stdenv.hostPlatform.system}"); + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + + meta = { + description = "Node modules for GoofCord"; + license = lib.licenses.osl3; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/by-name/go/goofcord/package.nix b/pkgs/by-name/go/goofcord/package.nix index 1e53cb891323..f94367eedfe0 100644 --- a/pkgs/by-name/go/goofcord/package.nix +++ b/pkgs/by-name/go/goofcord/package.nix @@ -1,68 +1,84 @@ { lib, stdenv, + callPackage, fetchFromGitHub, - pnpm_9, - fetchPnpmDeps, - pnpmConfigHook, - nodejs_22, - nix-update-script, + bun, + nodejs_24, electron, - pipewire, - libpulseaudio, + nix-update-script, + libxkbcommon, + libx11, + libxcb, + libxtst, makeShellWrapper, makeDesktopItem, copyDesktopItems, }: - let - pnpm = pnpm_9.override { nodejs = nodejs_22; }; + patchcordAddon = callPackage ./patchcord-addon.nix { }; + venbindAddon = callPackage ./venbind-addon.nix { }; in stdenv.mkDerivation (finalAttrs: { pname = "goofcord"; - version = "1.7.1"; + version = "2.2.0"; src = fetchFromGitHub { owner = "Milkshiift"; repo = "GoofCord"; - rev = "v${finalAttrs.version}"; - hash = "sha256-fx/RKnUhXhaWVd/KYPVxr19/Q8o1ovm2TgMTcTYjE3Q="; + tag = "v${finalAttrs.version}"; + hash = "sha256-BnaPw9edaI1nKAu421JBkI9dAV3Xu3Yr5VQILN0QUTM="; }; nativeBuildInputs = [ - pnpmConfigHook - pnpm - nodejs_22 + bun + nodejs_24 makeShellWrapper copyDesktopItems ]; buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ - libpulseaudio - pipewire + libxkbcommon + libx11 + libxcb + libxtst (lib.getLib stdenv.cc.cc) ]; - pnpmDeps = fetchPnpmDeps { - inherit (finalAttrs) pname version src; - inherit pnpm; - fetcherVersion = 3; - hash = "sha256-NKind57XDW7I5XNmjAu4cqkK5UVNAaKewpfOTNzF2BM="; - }; + node-modules = callPackage ./node-modules.nix { nodejs = nodejs_24; }; env = { ELECTRON_SKIP_BINARY_DOWNLOAD = 1; + GOOFCORD_PATCHCORD_PATH = "${patchcordAddon}/bin/patchcord"; + GOOFCORD_VENBIND_PATH = "${venbindAddon}/lib/libvenbind.so"; }; + configurePhase = '' + runHook preConfigure + + cp -R ${finalAttrs.node-modules} node_modules + chmod -R u+w node_modules + patchShebangs node_modules/.bin + patchShebangs node_modules/@typescript/native-preview/bin + + runHook postConfigure + ''; + + preBuild = lib.optionalString stdenv.hostPlatform.isLinux '' + cp -r ${electron.dist} electron-dist + chmod -R u+w electron-dist + ''; + buildPhase = '' runHook preBuild - pnpm build + bun run build -- --skipTypecheck - npm exec electron-builder -- \ + node node_modules/electron-builder/out/cli/cli.js \ --dir \ - -c.electronDist="${electron.dist}" \ - -c.electronVersion="${electron.version}" + -c.electronDist="${if stdenv.hostPlatform.isLinux then "electron-dist" else electron.dist}" \ + -c.electronVersion="${electron.version}" \ + -c.npmRebuild=false runHook postBuild ''; @@ -73,13 +89,21 @@ stdenv.mkDerivation (finalAttrs: { mkdir -p "$out/share/lib/goofcord" cp -r ./dist/*-unpacked/{locales,resources{,.pak}} "$out/share/lib/goofcord" - install -Dm644 "build/icon.png" "$out/share/icons/hicolor/256x256/apps/goofcord.png" + install -Dm644 "assets/gf_icon.png" "$out/share/icons/hicolor/256x256/apps/goofcord.png" # use makeShellWrapper (instead of the makeBinaryWrapper provided by wrapGAppsHook3) for proper shell variable expansion # see https://github.com/NixOS/nixpkgs/issues/172583 makeShellWrapper "${lib.getExe electron}" "$out/bin/goofcord" \ --add-flags "$out/share/lib/goofcord/resources/app.asar" \ "''${gappsWrapperArgs[@]}" \ + --prefix LD_LIBRARY_PATH : "${ + lib.makeLibraryPath [ + libxkbcommon + libx11 + libxcb + libxtst + ] + }" \ --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=UseOzonePlatform,WaylandWindowDecorations,WebRTCPipeWireCapturer --enable-wayland-ime=true}}" \ --set-default ELECTRON_IS_DEV 0 \ --inherit-argv0 @@ -120,11 +144,10 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://github.com/Milkshiift/GoofCord"; downloadPage = "https://github.com/Milkshiift/GoofCord"; license = lib.licenses.osl3; - maintainers = with lib.maintainers; [ nyabinary ]; - platforms = [ - "x86_64-linux" - "aarch64-linux" + maintainers = with lib.maintainers; [ + nyabinary ]; + platforms = lib.platforms.linux; mainProgram = "goofcord"; }; }) diff --git a/pkgs/by-name/go/goofcord/patchcord-addon.nix b/pkgs/by-name/go/goofcord/patchcord-addon.nix new file mode 100644 index 000000000000..a78dcd221439 --- /dev/null +++ b/pkgs/by-name/go/goofcord/patchcord-addon.nix @@ -0,0 +1,27 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, +}: +rustPlatform.buildRustPackage { + pname = "patchcord"; + version = "0-unstable-2026-03-29"; + + src = fetchFromGitHub { + owner = "Milkshiift"; + repo = "patchcord"; + rev = "f2611630f143a53b46514d4916af0971d7aab2b5"; + hash = "sha256-VTHS5psVqg4RjSrAs9vPkixsVwwIYE2E4o0vXVN58tE="; + }; + + cargoHash = "sha256-/IbHvs9SEuulNcWkihwFwaFcqMM0rdFBVjCWgUu7dys="; + + doCheck = false; + + meta = { + description = "Patcher for GoofCord"; + homepage = "https://github.com/Milkshiift/patchcord"; + license = lib.licenses.osl3; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/by-name/go/goofcord/venbind-addon.nix b/pkgs/by-name/go/goofcord/venbind-addon.nix new file mode 100644 index 000000000000..91be6a072bb5 --- /dev/null +++ b/pkgs/by-name/go/goofcord/venbind-addon.nix @@ -0,0 +1,56 @@ +{ + lib, + stdenv, + rustPlatform, + fetchFromGitHub, + cmake, + pkg-config, + libx11, + libxtst, + libxdmcp, + libxkbfile, + libxkbcommon, + libxcb, + wayland, + xorgproto, +}: +rustPlatform.buildRustPackage (finalAttrs: { + pname = "venbind"; + version = "0.1.7"; + + src = fetchFromGitHub { + owner = "tuxinal"; + repo = "venbind"; + tag = "v${finalAttrs.version}"; + hash = "sha256-6gPyQ6JjqvM2AUuIxCfO0nOLJfyQTX5bbsbKDzlNSqo="; + fetchSubmodules = true; + }; + + cargoHash = "sha256-FZTXj8f+ezRhElovKhF3khWc5SqC+22tDHlFe9IHuwo="; + + nativeBuildInputs = [ + rustPlatform.bindgenHook + pkg-config + cmake + ]; + + buildInputs = [ + libx11 + libxtst + libxdmcp + libxkbfile + libxkbcommon + libxcb + wayland + xorgproto + ]; + + doCheck = false; + + meta = { + description = "Native module for Vencord"; + homepage = "https://github.com/tuxinal/venbind"; + license = lib.licenses.gpl3Only; + platforms = lib.platforms.linux; + }; +}) From 26b6641ec424196c0bc463596919b1b471fcb0af Mon Sep 17 00:00:00 2001 From: Harinn Date: Thu, 19 Feb 2026 23:54:19 +0700 Subject: [PATCH 017/110] goofcord: add miniharinn as maintainer --- pkgs/by-name/go/goofcord/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/go/goofcord/package.nix b/pkgs/by-name/go/goofcord/package.nix index f94367eedfe0..f80c809b4b3b 100644 --- a/pkgs/by-name/go/goofcord/package.nix +++ b/pkgs/by-name/go/goofcord/package.nix @@ -146,6 +146,7 @@ stdenv.mkDerivation (finalAttrs: { license = lib.licenses.osl3; maintainers = with lib.maintainers; [ nyabinary + miniharinn ]; platforms = lib.platforms.linux; mainProgram = "goofcord"; From 8fbdabd0a6ae2a1ff0a7bfb764cffcda9730bbf9 Mon Sep 17 00:00:00 2001 From: Hythera <87016780+Hythera@users.noreply.github.com> Date: Sun, 19 Apr 2026 19:56:55 +0200 Subject: [PATCH 018/110] firebird_3: 3.0.13 -> 3.0.14 changelog: https://github.com/FirebirdSQL/firebird/releases/tag/v3.0.14 diff: https://github.com/FirebirdSQL/firebird/compare/v3.0.13...v3.0.14 --- pkgs/servers/firebird/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/firebird/default.nix b/pkgs/servers/firebird/default.nix index 064edf0fb575..ee36d3ac8cfb 100644 --- a/pkgs/servers/firebird/default.nix +++ b/pkgs/servers/firebird/default.nix @@ -62,13 +62,13 @@ rec { firebird_3 = stdenv.mkDerivation ( base // rec { - version = "3.0.13"; + version = "3.0.14"; src = fetchFromGitHub { owner = "FirebirdSQL"; repo = "firebird"; rev = "v${version}"; - hash = "sha256-ti3cFfByM2wxOLkAebwtFe25B5W7jOwi3f7MPYo/yUA="; + hash = "sha256-X6Jv32VniAefIWjLTPwEipsQVRl7HBb4EKyi2IL1VWM="; }; patches = [ From acc082165dd22d81042c9ee66be96bdab803f7a2 Mon Sep 17 00:00:00 2001 From: Hythera <87016780+Hythera@users.noreply.github.com> Date: Sun, 19 Apr 2026 20:00:32 +0200 Subject: [PATCH 019/110] firebird_4: 4.0.6 -> 4.0.7 changelog: https://github.com/FirebirdSQL/firebird/releases/tag/v4.0.7 diff: https://github.com/FirebirdSQL/firebird/compare/v4.0.6...v4.0.7 --- pkgs/servers/firebird/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/firebird/default.nix b/pkgs/servers/firebird/default.nix index ee36d3ac8cfb..f8d890d22297 100644 --- a/pkgs/servers/firebird/default.nix +++ b/pkgs/servers/firebird/default.nix @@ -95,13 +95,13 @@ rec { firebird_4 = stdenv.mkDerivation ( base // rec { - version = "4.0.6"; + version = "4.0.7"; src = fetchFromGitHub { owner = "FirebirdSQL"; repo = "firebird"; rev = "v${version}"; - hash = "sha256-65wfG6huDzvG/tEVllA58OfZqoL4U/ilw5YIDqQywTs="; + hash = "sha256-EnD0cTQSOh1fARjKdoOCR5UjpvVA96EZVVWfqlH+m48="; }; nativeBuildInputs = base.nativeBuildInputs ++ [ unzip ]; From 64984288bc490d8ddffd8cbf3a91943b9c50e227 Mon Sep 17 00:00:00 2001 From: Hythera <87016780+Hythera@users.noreply.github.com> Date: Sun, 19 Apr 2026 20:37:27 +0200 Subject: [PATCH 020/110] firebird_5: init at 5.0.4 Having strictDeps and __structuredAttrs set to true is now required by nixpkgs-vet for new packages. Setting this for all packages for less hastle. --- pkgs/servers/firebird/default.nix | 33 ++++++++++++++++++++++++++++++- pkgs/top-level/all-packages.nix | 1 + 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/pkgs/servers/firebird/default.nix b/pkgs/servers/firebird/default.nix index f8d890d22297..e90ec51768f9 100644 --- a/pkgs/servers/firebird/default.nix +++ b/pkgs/servers/firebird/default.nix @@ -5,6 +5,7 @@ fetchDebianPatch, libedit, autoreconfHook, + cmake, zlib, unzip, libtommath, @@ -48,6 +49,9 @@ let enableParallelBuilding = true; + __structuredAttrs = true; + strictDeps = true; + installPhase = '' runHook preInstall mkdir -p $out @@ -113,5 +117,32 @@ rec { } ); - firebird = firebird_4; + firebird_5 = stdenv.mkDerivation ( + base + // rec { + version = "5.0.4"; + + src = fetchFromGitHub { + owner = "FirebirdSQL"; + repo = "firebird"; + rev = "v${version}"; + hash = "sha256-wAiOyCVS7fjVqrDlJJwDFxw5ZD5spnXlYKCAQ8gctHI="; + }; + + # CMake is just used for libcds + dontUseCmakeConfigure = true; + + nativeBuildInputs = base.nativeBuildInputs ++ [ + cmake + unzip + ]; + buildInputs = base.buildInputs ++ [ + zlib + libtommath + libtomcrypt + ]; + } + ); + + firebird = firebird_5; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4e6cc40f54d9..48ca4b76b64b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8009,6 +8009,7 @@ with pkgs; dovecot_pigeonhole_2_4 = dovecot_pigeonhole; inherit (callPackages ../servers/firebird { }) + firebird_5 firebird_4 firebird_3 firebird From cf3e31dcf0e0c753560a8ecc29782f3d9762f5f9 Mon Sep 17 00:00:00 2001 From: Ameer Taweel Date: Sun, 19 Apr 2026 01:11:44 +0300 Subject: [PATCH 021/110] nixos/prometheus: remove absolute path literals --- .../services/monitoring/prometheus/exporters.nix | 2 +- .../monitoring/prometheus/exporters/blackbox.nix | 11 ++++------- .../monitoring/prometheus/exporters/ecoflow.nix | 12 ++++++------ .../monitoring/prometheus/exporters/snmp.nix | 11 ++++------- 4 files changed, 15 insertions(+), 21 deletions(-) diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix index a6317a032235..0d184c3e6e8e 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters.nix @@ -386,7 +386,7 @@ let after = [ "network.target" ]; serviceConfig.Restart = mkDefault "always"; serviceConfig.PrivateTmp = mkDefault true; - serviceConfig.WorkingDirectory = mkDefault /tmp; + serviceConfig.WorkingDirectory = mkDefault "/tmp"; serviceConfig.DynamicUser = mkDefault enableDynamicUser; serviceConfig.User = mkDefault conf.user; serviceConfig.Group = conf.group; diff --git a/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix b/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix index c053fc5417c1..55847902aa05 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix @@ -23,13 +23,10 @@ let if (builtins.isPath file) || (lib.isStorePath file) then file else - ( - lib.warn '' - ${logPrefix}: configuration file "${file}" is being copied to the nix-store. - If you would like to avoid that, please set enableConfigCheck to false. - '' /. - + file - ); + (lib.warn '' + ${logPrefix}: configuration file "${file}" is being copied to the nix-store. + If you would like to avoid that, please set enableConfigCheck to false. + '' (builtins.toFile (builtins.baseNameOf file) (builtins.readFile file))); checkConfigLocation = file: if lib.hasPrefix "/tmp/" file then diff --git a/nixos/modules/services/monitoring/prometheus/exporters/ecoflow.nix b/nixos/modules/services/monitoring/prometheus/exporters/ecoflow.nix index d95a3867fdcc..22cc859013f6 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters/ecoflow.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters/ecoflow.nix @@ -27,7 +27,7 @@ in }; ecoflowAccessKeyFile = mkOption { type = types.path; - default = /etc/ecoflow-access-key; + default = "/etc/ecoflow-access-key"; description = '' Path to the file with your personal api access string from the Ecoflow development website . Do to share or commit your plaintext scecrets to a public repo use: agenix or soaps. @@ -35,7 +35,7 @@ in }; ecoflowSecretKeyFile = mkOption { type = types.path; - default = /etc/ecoflow-secret-key; + default = "/etc/ecoflow-secret-key"; description = '' Path to the file with your personal api secret string from the Ecoflow development website . Do to share or commit your plaintext scecrets to a public repo use: agenix or soaps. @@ -43,7 +43,7 @@ in }; ecoflowEmailFile = mkOption { type = types.path; - default = /etc/ecoflow-email; + default = "/etc/ecoflow-email"; description = '' Path to the file with your personal ecoflow app login email address. Do to share or commit your plaintext scecrets to a public repo use: agenix or soaps. @@ -51,7 +51,7 @@ in }; ecoflowPasswordFile = mkOption { type = types.path; - default = /etc/ecoflow-password; + default = "/etc/ecoflow-password"; description = '' Path to the file with your personal ecoflow app login email password. Do to share or commit your plaintext passwords to a public repo use: agenix or soaps here! @@ -59,7 +59,7 @@ in }; ecoflowDevicesFile = mkOption { type = types.path; - default = /etc/ecoflow-devices; + default = "/etc/ecoflow-devices"; description = '' File must contain one line, example: R3300000,R3400000,NC430000,.... The list of devices serial numbers separated by comma. For instance: SN1,SN2,SN3. @@ -69,7 +69,7 @@ in }; ecoflowDevicesPrettyNamesFile = mkOption { type = types.path; - default = /etc/ecoflow-devices-pretty-names; + default = "/etc/ecoflow-devices-pretty-names"; description = '' File must contain one line, example: {"R3300000":"Delta 2","R3400000":"Delta Pro",...} The key/value map of custom names for your devices. Key is a serial number, value is a device name you want diff --git a/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix b/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix index b65c73d2dec7..768d27b0fdeb 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix @@ -24,13 +24,10 @@ let if (builtins.isPath file) || (lib.isStorePath file) then file else - ( - lib.warn '' - ${logPrefix}: configuration file "${file}" is being copied to the nix-store. - If you would like to avoid that, please set enableConfigCheck to false. - '' /. - + file - ); + (lib.warn '' + ${logPrefix}: configuration file "${file}" is being copied to the nix-store. + If you would like to avoid that, please set enableConfigCheck to false. + '' (builtins.toFile (builtins.baseNameOf file) (builtins.readFile file))); checkConfig = file: From de234af4cd6f0064e1da77ea7378b21ecc895acb Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 20 Apr 2026 15:43:24 +0000 Subject: [PATCH 022/110] sing-box: 1.13.5 -> 1.13.9 --- pkgs/by-name/si/sing-box/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/si/sing-box/package.nix b/pkgs/by-name/si/sing-box/package.nix index 3c8132773e1b..4790d96c0355 100644 --- a/pkgs/by-name/si/sing-box/package.nix +++ b/pkgs/by-name/si/sing-box/package.nix @@ -10,16 +10,16 @@ buildGoModule (finalAttrs: { pname = "sing-box"; - version = "1.13.5"; + version = "1.13.9"; src = fetchFromGitHub { owner = "SagerNet"; repo = "sing-box"; tag = "v${finalAttrs.version}"; - hash = "sha256-vHc3j96e5KGGMcTJFaUKSC4dQWlNThRZKirZ/waIYUM="; + hash = "sha256-mEvvFSIK2U/IZ8VGGwe3aipnko6dW8DRvjdKPXTrdoo="; }; - vendorHash = "sha256-LgwU4l4JvgLcdj8FBazzaJcKIa3X/Poe1+GjE+GTrHw="; + vendorHash = "sha256-Wk72wVRKoJZ7nEiiQZZ8w2hKiuanYFnLFWlFxj6cZBA="; tags = [ "with_gvisor" From 9b38600a4269616d694e4485fa1300d1afa10b43 Mon Sep 17 00:00:00 2001 From: Ben Siraphob Date: Fri, 10 Apr 2026 21:12:13 -0700 Subject: [PATCH 023/110] tilem: fix build with GCC 15 --- pkgs/by-name/ti/tilem/gcc15-fix.patch | 12 ++++++++++++ pkgs/by-name/ti/tilem/package.nix | 5 ++++- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 pkgs/by-name/ti/tilem/gcc15-fix.patch diff --git a/pkgs/by-name/ti/tilem/gcc15-fix.patch b/pkgs/by-name/ti/tilem/gcc15-fix.patch new file mode 100644 index 000000000000..6a76170739cf --- /dev/null +++ b/pkgs/by-name/ti/tilem/gcc15-fix.patch @@ -0,0 +1,12 @@ +Fix call to zero-argument tilem_macro_new(), which GCC 15 rejects because the declaration takes no parameters. +--- a/gui/macro.c ++++ b/gui/macro.c +@@ -70,7 +70,7 @@ + tilem_macro_finalize(emu->macro); + + /* Then allocate a new one */ +- emu->macro = tilem_macro_new(emu); ++ emu->macro = tilem_macro_new(); + } + + /* Add an action to the macro. The action could be : diff --git a/pkgs/by-name/ti/tilem/package.nix b/pkgs/by-name/ti/tilem/package.nix index eed7018514df..5bc6a6468d19 100644 --- a/pkgs/by-name/ti/tilem/package.nix +++ b/pkgs/by-name/ti/tilem/package.nix @@ -27,7 +27,10 @@ stdenv.mkDerivation (finalAttrs: { libticables2 libticalcs2 ]; - patches = [ ./gcc14-fix.patch ]; + patches = [ + ./gcc14-fix.patch + ./gcc15-fix.patch + ]; env.NIX_CFLAGS_COMPILE = toString [ "-lm" ]; meta = { homepage = "http://lpg.ticalc.org/prj_tilem/"; From 0ad98ccec10e4a6a9b318dbea500f31bef8a9cb0 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 21 Apr 2026 01:51:37 +0000 Subject: [PATCH 024/110] ocamlPackages.ocaml-version: 4.0.4 -> 4.1.0 --- pkgs/development/ocaml-modules/ocaml-version/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/ocaml-modules/ocaml-version/default.nix b/pkgs/development/ocaml-modules/ocaml-version/default.nix index c72a4528bb87..02824128b6bb 100644 --- a/pkgs/development/ocaml-modules/ocaml-version/default.nix +++ b/pkgs/development/ocaml-modules/ocaml-version/default.nix @@ -7,11 +7,11 @@ buildDunePackage rec { pname = "ocaml-version"; - version = "4.0.4"; + version = "4.1.0"; src = fetchurl { url = "https://github.com/ocurrent/ocaml-version/releases/download/v${version}/ocaml-version-${version}.tbz"; - hash = "sha256-6sviBLiEjcCtLcnk74vGy4ZTALVd1Rd5INUzAzn+HO4="; + hash = "sha256-QTfVH6kNu4SkjAylM3ySyIkOYAXQFrffSFkZ2FojjgY="; }; checkInputs = [ alcotest ]; From 4eedcfa72df6150b2199b8308ab4fca3a901b9e4 Mon Sep 17 00:00:00 2001 From: imcvampire Date: Tue, 21 Apr 2026 12:05:35 +0300 Subject: [PATCH 025/110] ghost-complete: init at 0.9.1 --- pkgs/by-name/gh/ghost-complete/package.nix | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 pkgs/by-name/gh/ghost-complete/package.nix diff --git a/pkgs/by-name/gh/ghost-complete/package.nix b/pkgs/by-name/gh/ghost-complete/package.nix new file mode 100644 index 000000000000..6dc779457419 --- /dev/null +++ b/pkgs/by-name/gh/ghost-complete/package.nix @@ -0,0 +1,61 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + nix-update-script, + versionCheckHook, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "ghost-complete"; + version = "0.9.1"; + + src = fetchFromGitHub { + owner = "StanMarek"; + repo = "ghost-complete"; + tag = "v${finalAttrs.version}"; + hash = "sha256-fsGrhQK28YFksI2pNiZ6fI6KjZOXxXxrhWjxOmBNk08="; + }; + + __structuredAttrs = true; + + cargoHash = "sha256-kiYdMczvnauhu/2ryO0NcK3PAI1P+xmYV8nRrIWaEB8="; + + cargoBuildFlags = [ "--package=ghost-complete" ]; + + # Integration tests in crates/ghost-complete/tests/smoke.rs spawn a real + # PTY + shell and exercise terminal I/O, which isn't available in the + # Nix build sandbox. + doCheck = false; + + # `ghost-complete install` imperatively copies these scripts into the + # user's `~/.config/ghost-complete/shell/` and edits `~/.zshrc` to source + # them. In a Nix world we instead expose them here so users can source + # them declaratively from their shell configuration (e.g. home-manager + # `programs.zsh.initContent` or NixOS `programs.zsh.interactiveShellInit`). + # The 709 completion specs are already embedded in the binary and used + # as an automatic fallback when no on-disk spec directory is present, so + # they don't need to be copied out. + postInstall = '' + install -Dm644 -t $out/share/ghost-complete/shell \ + shell/init.zsh \ + shell/ghost-complete.zsh \ + shell/ghost-complete.bash \ + shell/ghost-complete.fish + ''; + + nativeInstallCheckInputs = [ versionCheckHook ]; + doInstallCheck = true; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Terminal-native autocomplete engine using PTY proxying for macOS terminals"; + homepage = "https://github.com/StanMarek/ghost-complete"; + changelog = "https://github.com/StanMarek/ghost-complete/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ imcvampire ]; + mainProgram = "ghost-complete"; + platforms = lib.platforms.darwin; + }; +}) From 538f739cf1e74672ff5aa6fedce9ee3f6ac4b000 Mon Sep 17 00:00:00 2001 From: yaya Date: Tue, 21 Apr 2026 13:05:18 +0200 Subject: [PATCH 026/110] gitlab-runner: 18.10.1 -> 18.11.1 Changelog: https://gitlab.com/gitlab-org/gitlab-runner/blob/v18.11.1/CHANGELOG.md --- pkgs/by-name/gi/gitlab-runner/package.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/gi/gitlab-runner/package.nix b/pkgs/by-name/gi/gitlab-runner/package.nix index de61b497e4e3..848e71afce19 100644 --- a/pkgs/by-name/gi/gitlab-runner/package.nix +++ b/pkgs/by-name/gi/gitlab-runner/package.nix @@ -4,6 +4,7 @@ bash, buildGoModule, fetchFromGitLab, + gitMinimal, nix-update-script, versionCheckHook, writableTmpDirAsHomeHook, @@ -11,16 +12,16 @@ buildGoModule (finalAttrs: { pname = "gitlab-runner"; - version = "18.10.1"; + version = "18.11.1"; src = fetchFromGitLab { owner = "gitlab-org"; repo = "gitlab-runner"; tag = "v${finalAttrs.version}"; - hash = "sha256-qwEzcZuyPqjuGDxNKCHc6AfBgS+Pp/PV1tK/qfofwtA="; + hash = "sha256-O/vaodFMt1HgGi4OVjVIfhie0j0bhbRQl1iEMrYfmn0="; }; - vendorHash = "sha256-iO5xZAdQPmUpgUGe5CjMHOfzWVXT+eukJ/zLw5BE0NE="; + vendorHash = "sha256-xEvvYAVIwHwQDd38P2i6GcgFqf8FPnflWh5IEqmWQdE="; # For patchShebangs buildInputs = [ bash ]; @@ -86,7 +87,10 @@ buildGoModule (finalAttrs: { "-X ${ldflagsPackageVariablePrefix}.REVISION=v${finalAttrs.version}" ]; - nativeCheckInputs = [ writableTmpDirAsHomeHook ]; + nativeCheckInputs = [ + gitMinimal + writableTmpDirAsHomeHook + ]; preCheck = '' # Make the tests pass outside of GitLab CI From d2e7973179a72325cf9b78e5a97da88818033285 Mon Sep 17 00:00:00 2001 From: Robert Cambridge Date: Wed, 22 Apr 2026 08:26:15 +0200 Subject: [PATCH 027/110] nixos: fix pkgs used for netcat when qemu-vm.nix does guestfwd --- nixos/modules/virtualisation/qemu-vm.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix index 2a528b036404..b58cdd8ac5f7 100644 --- a/nixos/modules/virtualisation/qemu-vm.nix +++ b/nixos/modules/virtualisation/qemu-vm.nix @@ -1362,7 +1362,7 @@ in + "${guest.address}:${toString guest.port}," else "'guestfwd=${proto}:${guest.address}:${toString guest.port}-" - + "cmd:${pkgs.netcat}/bin/nc ${host.address} ${toString host.port}'," + + "cmd:${hostPkgs.netcat}/bin/nc ${host.address} ${toString host.port}'," ); restrictNetworkOption = lib.optionalString cfg.restrictNetwork "restrict=on,"; in From 1f14a3ea895cd7b7ec77640c1f101af4b84b650a Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Fri, 20 Mar 2026 08:41:15 +0000 Subject: [PATCH 028/110] taskflow: add pkg-config config file --- .../ta/taskflow/add-pkg-config-support.patch | 31 +++++++++++++++++++ pkgs/by-name/ta/taskflow/package.nix | 14 +++++++++ 2 files changed, 45 insertions(+) create mode 100644 pkgs/by-name/ta/taskflow/add-pkg-config-support.patch diff --git a/pkgs/by-name/ta/taskflow/add-pkg-config-support.patch b/pkgs/by-name/ta/taskflow/add-pkg-config-support.patch new file mode 100644 index 000000000000..3eb447d6d3bb --- /dev/null +++ b/pkgs/by-name/ta/taskflow/add-pkg-config-support.patch @@ -0,0 +1,31 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 063fd793..99998a6b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -377,3 +377,13 @@ install( + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} + ) + ++ ++# ----------------------------------------------------------------------------- ++# pkg-config ++# ----------------------------------------------------------------------------- ++ ++configure_file(taskflow.pc.in taskflow.pc @ONLY) ++install( ++ FILES ${CMAKE_CURRENT_BINARY_DIR}/taskflow.pc ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ++) +diff --git a/taskflow.pc.in b/taskflow.pc.in +new file mode 100644 +index 00000000..fc649288 +--- /dev/null ++++ b/taskflow.pc.in +@@ -0,0 +1,7 @@ ++prefix=@CMAKE_INSTALL_PREFIX@ ++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ ++ ++Name: Taskflow ++Description: A General-purpose Task-parallel Programming System ++Version: @PROJECT_VERSION@ ++Cflags: -I${includedir} diff --git a/pkgs/by-name/ta/taskflow/package.nix b/pkgs/by-name/ta/taskflow/package.nix index 14e3cb8176e2..65471bef8a46 100644 --- a/pkgs/by-name/ta/taskflow/package.nix +++ b/pkgs/by-name/ta/taskflow/package.nix @@ -2,6 +2,7 @@ cmake, doctest, fetchFromGitHub, + fetchpatch, lib, replaceVars, stdenv, @@ -22,6 +23,19 @@ stdenv.mkDerivation (finalAttrs: { (replaceVars ./unvendor-doctest.patch { inherit doctest; }) + + # https://github.com/taskflow/taskflow/pull/785 + # TODO: remove when updating to the next release + (fetchpatch { + name = "fix-brace-init-with-explicit-constructor-for-GCC-15"; + url = "https://github.com/taskflow/taskflow/commit/de7dfe30594cd1f98398095b970a8320734a2382.patch"; + hash = "sha256-Ecl7dFvf2HDslv/5IHR5J2PYcRCN3EA4GahxOzcUS4g="; + }) + + # Vendored from #786 as it does not apply cleanly on top of v0.4.0 + # https://github.com/taskflow/taskflow/pull/786 + # TODO: remove when updating to the next release + ./add-pkg-config-support.patch ]; postPatch = '' From 84243cf155bb00c50add124c8b89c853b6033c41 Mon Sep 17 00:00:00 2001 From: bitbloxhub <45184892+bitbloxhub@users.noreply.github.com> Date: Wed, 22 Apr 2026 17:41:21 +0000 Subject: [PATCH 029/110] reframe: init at 1.15.1 --- pkgs/by-name/re/reframe/package.nix | 93 +++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 pkgs/by-name/re/reframe/package.nix diff --git a/pkgs/by-name/re/reframe/package.nix b/pkgs/by-name/re/reframe/package.nix new file mode 100644 index 000000000000..04c49bd6953d --- /dev/null +++ b/pkgs/by-name/re/reframe/package.nix @@ -0,0 +1,93 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkg-config, + meson, + ninja, + cmake, + systemd, + glib, + gtk4, + libdrm, + libepoxy, + libxkbcommon, + libvncserver, + neatvnc, + aml, + pixman, + zlib, + ffmpeg, + nix-update-script, + + withNeatVNC ? true, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "reframe"; + version = "1.15.1"; + + src = fetchFromGitHub { + owner = "AlynxZhou"; + repo = "reframe"; + tag = "v${finalAttrs.version}"; + hash = "sha256-3ZCLnmu5Idn4RsypJr+JNqIhT13/pq1Xi4wTidUgCqQ="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + meson + ninja + cmake + pkg-config + ]; + + buildInputs = [ + systemd + glib + gtk4 + libdrm + libepoxy + libxkbcommon + libvncserver + ] + ++ lib.optionals withNeatVNC [ + neatvnc + aml + pixman + zlib + ffmpeg + ]; + + passthru = { + updateScript = nix-update-script { }; + }; + + mesonFlags = [ + (lib.mesonOption "systemunitdir" "${placeholder "out"}/lib/systemd/system") + (lib.mesonOption "sysusersdir" "${placeholder "out"}/lib/sysusers.d") + (lib.mesonOption "tmpfilesdir" "${placeholder "out"}/lib/tmpfiles.d") + ] + ++ lib.optionals withNeatVNC [ (lib.mesonOption "neatvnc" "true") ]; + + postPatch = '' + chmod +x meson_post_install.sh + patchShebangs meson_post_install.sh + + # Comment out all commands, all systemd reloading + sed -i '1,2! s/^/# /' meson_post_install.sh + ''; + + strictDeps = true; + __structuredAttrs = true; + + meta = { + homepage = "https://reframe.alynx.one/"; + description = "DRM/KMS based remote desktop for Linux that supports Wayland/NVIDIA/headless/login…"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ + bitbloxhub + ]; + platforms = lib.platforms.linux; + }; +}) From 98831cfb6d67d9e11dbf89b7ab573f75fc906e6e Mon Sep 17 00:00:00 2001 From: bitbloxhub <45184892+bitbloxhub@users.noreply.github.com> Date: Wed, 22 Apr 2026 17:39:12 +0000 Subject: [PATCH 030/110] nixos/reframe: init --- .../manual/release-notes/rl-2605.section.md | 2 + nixos/modules/services/networking/reframe.nix | 190 ++++++++++++++++++ 2 files changed, 192 insertions(+) create mode 100644 nixos/modules/services/networking/reframe.nix diff --git a/nixos/doc/manual/release-notes/rl-2605.section.md b/nixos/doc/manual/release-notes/rl-2605.section.md index f883372fd450..c56c16c4db99 100644 --- a/nixos/doc/manual/release-notes/rl-2605.section.md +++ b/nixos/doc/manual/release-notes/rl-2605.section.md @@ -116,6 +116,8 @@ - [RSSHub](https://github.com/DIYgod/RSSHub), a service to convert many sources into rss. Available as `services.rsshub`. +- [ReFrame](https://github.com/AlynxZhou/reframe), a DRM/KMS based remote desktop for Linux that supports Wayland/NVIDIA/headless/login. + - [Komodo Periphery](https://github.com/moghtech/komodo), a multi-server Docker and Git deployment agent by Komodo. Available as [services.komodo-periphery](#opt-services.komodo-periphery.enable). - [Shoko](https://shokoanime.com), an anime management system. Available as [services.shoko](#opt-services.shoko.enable). diff --git a/nixos/modules/services/networking/reframe.nix b/nixos/modules/services/networking/reframe.nix new file mode 100644 index 000000000000..b05f33772eaa --- /dev/null +++ b/nixos/modules/services/networking/reframe.nix @@ -0,0 +1,190 @@ +{ + lib, + pkgs, + config, + ... +}: +let + cfg = config.services.reframe; + iniFmt = pkgs.formats.ini { }; +in +{ + options.programs.reframe = { + enable = lib.mkEnableOption "DRM/KMS based remote desktop for Linux that supports Wayland/NVIDIA/headless/login…"; + package = lib.mkPackageOption pkgs "reframe" { }; + configs = lib.mkOption { + type = lib.types.attrsOf ( + lib.types.submodule { + options = { + reframe = { + card = lib.mkOption { + type = lib.types.str; + default = ""; + description = "Select monitor via DRM card. All available cards and connectors can be found in `/sys/class/drm/`."; + example = "card0"; + }; + connector = lib.mkOption { + type = lib.types.str; + default = ""; + description = "Select monitor via connector. All available cards and connectors can be found in `/sys/class/drm/`."; + example = "eDP-1"; + }; + rotation = lib.mkOption { + type = lib.types.enum [ + 0 + 90 + 180 + 270 + ]; + default = 0; + description = '' + This is the angle you rotate the monitor, not the angle of display content relative to the monitor! + Valid angles are clockwise `0`, `90`, `180`, `270`. + ''; + }; + desktop-width = lib.mkOption { + type = lib.types.int; + default = 0; + description = '' + If you have more than 1 monitor, set those values to the logical size of the whole virtual desktop. + You can get those value by finding the pointer position of the right most and bottom most border of your monitors. + ''; + }; + desktop-height = lib.mkOption { + type = lib.types.int; + default = 0; + description = '' + If you have more than 1 monitor, set those values to the logical size of the whole virtual desktop. + You can get those value by finding the pointer position of the right most and bottom most border of your monitors. + ''; + }; + monitor-x = lib.mkOption { + type = lib.types.int; + default = 0; + description = '' + If you have more than 1 monitor, set those values to the logical position of the top left corner of your selected monitor. + ''; + }; + monitor-y = lib.mkOption { + type = lib.types.int; + default = 0; + description = '' + If you have more than 1 monitor, set those values to the logical position of the top left corner of your selected monitor. + ''; + }; + default-width = lib.mkOption { + type = lib.types.int; + default = 0; + description = '' + If your client does not support resizing, use those to force a size. Empty or `0` means monitor size. + ''; + }; + default-height = lib.mkOption { + type = lib.types.int; + default = 0; + description = '' + If your client does not support resizing, use those to force a size. Empty or `0` means monitor size. + ''; + }; + resize = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Set to `false` to prohibit client resizing. + ''; + }; + cursor = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Set to `false` to ignore DRM cursor plane. + ''; + }; + wakeup = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Set to `false` if you already disabled automatic screen blank. + ''; + }; + damage = lib.mkOption { + type = lib.types.enum [ + "" + "cpu" + "gpu" + ]; + default = true; + description = '' + Set to `gpu` to use GPU damage region detection, which may be more efficiency but may cause artifacts depending on GPU vendors. + Set to `cpu` to use CPU damage region detection if you get bugs with `gpu`. + Empty to disable damage region detection, which may require higher network bandwidth. + ''; + }; + fps = lib.mkOption { + type = lib.types.int; + default = 30; + }; + }; + vnc = { + ip = lib.mkOption { + type = lib.types.str; + default = ""; + description = '' + Empty means accept all incoming connections. + ''; + }; + port = lib.mkOption { + type = lib.types.port; + default = 5933; + }; + password = lib.mkOption { + type = lib.types.str; + default = ""; + description = '' + Empty means no password. + ''; + }; + type = lib.mkOption { + type = lib.types.enum [ + "libvncserver" + "neatvnc" + ]; + default = "libvncserver"; + description = '' + Set to `neatvnc` to prefer neatvnc, which provides more efficient encoding methods but maybe more unstable. + ''; + }; + }; + }; + } + ); + default = { }; + description = "Configurations for ReFrame"; + }; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + systemd.packages = [ cfg.package ]; + systemd.tmpfiles.packages = [ cfg.package ]; + users.users.reframe = { + isSystemUser = true; + group = "reframe"; + description = "ReFrame Remote Desktop"; + }; + users.groups.reframe = { }; + environment.etc = builtins.mapAttrs' ( + name: value: + lib.nameValuePair "reframe/${name}.conf" { + mode = "0644"; + user = "root"; + group = "root"; + source = iniFmt.generate "${name}.conf" value; + } + ) cfg.configs; + }; + + meta.maintainers = with lib.maintainers; [ + bitbloxhub + ]; +} From 6ce3ac9e27a1a9c8d1e355de86ed2d25a13b381c Mon Sep 17 00:00:00 2001 From: Ephemeral Date: Wed, 22 Apr 2026 23:56:38 +0600 Subject: [PATCH 031/110] waybar-lyric: 0.15.0 -> 0.16.0 --- pkgs/by-name/wa/waybar-lyric/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/wa/waybar-lyric/package.nix b/pkgs/by-name/wa/waybar-lyric/package.nix index 777715da4497..94f9bc36a9fe 100644 --- a/pkgs/by-name/wa/waybar-lyric/package.nix +++ b/pkgs/by-name/wa/waybar-lyric/package.nix @@ -9,16 +9,16 @@ }: buildGoModule (finalAttrs: { pname = "waybar-lyric"; - version = "0.15.0"; + version = "0.16.0"; src = fetchFromGitHub { owner = "Nadim147c"; repo = "waybar-lyric"; tag = "v${finalAttrs.version}"; - hash = "sha256-2zK0dQtqjbZJYqTOnDtTxnoXeW+zOhWK7RcinhZ5ob4="; + hash = "sha256-1kUAOR7p27pLMH7zlbj+tTlIh0f8JQuWhzQVWvOyKoo="; }; - vendorHash = "sha256-TeAZDSiww9/v3uQl8THJZdN/Ffp+FsZ3TsRStE3ndKA="; + vendorHash = "sha256-pzHNa/55n84VSFaWmgOtwWmmDLoNE6o8mgpFCz7r8FQ="; ldflags = [ "-s" From 6ed1f93e7668f4316b161148171164ede49adc65 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 18:56:55 +0000 Subject: [PATCH 032/110] cosmic-reader: 0-unstable-2026-04-14 -> 0-unstable-2026-04-16 --- pkgs/by-name/co/cosmic-reader/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/co/cosmic-reader/package.nix b/pkgs/by-name/co/cosmic-reader/package.nix index b73fa7e4eb20..bac6723ecb09 100644 --- a/pkgs/by-name/co/cosmic-reader/package.nix +++ b/pkgs/by-name/co/cosmic-reader/package.nix @@ -19,13 +19,13 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "cosmic-reader"; - version = "0-unstable-2026-04-14"; + version = "0-unstable-2026-04-16"; src = fetchFromGitHub { owner = "pop-os"; repo = "cosmic-reader"; - rev = "34108afa746d7388e94a89ebfb9801395ae1f98e"; - hash = "sha256-h5joBcL49Kegwfci1OBENEclFn2/8n1KFaF4r3DcuLc="; + rev = "ebea761ab6853a9ac15b1bfc90b040d620d1d00f"; + hash = "sha256-t2UKLip5SrKG4a3Eaqf8lS2hNtrqgz8eYpSTRCbrpfM="; }; cargoHash = "sha256-p0dg5RNXkzbi+/RB5k+jr34RNOp+Irahj0BiFUddfnk="; From 26176a7795f30daa7f6c4a3fafc1b941d354cd4c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 19:06:48 +0000 Subject: [PATCH 033/110] snapper: 0.13.0 -> 0.13.1 --- pkgs/by-name/sn/snapper/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sn/snapper/package.nix b/pkgs/by-name/sn/snapper/package.nix index 6ba1469b2ca1..9a8e8f6bcbbf 100644 --- a/pkgs/by-name/sn/snapper/package.nix +++ b/pkgs/by-name/sn/snapper/package.nix @@ -27,13 +27,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "snapper"; - version = "0.13.0"; + version = "0.13.1"; src = fetchFromGitHub { owner = "openSUSE"; repo = "snapper"; tag = "v${finalAttrs.version}"; - hash = "sha256-8rIjfulMuh4HzZv08bX7gveJAo2X2GvswmBD3Ziu0NM="; + hash = "sha256-oPIIEReHWkWSj4K/mi1VD3Ukaltquzqh8UVBPc4q+vw="; }; strictDeps = true; From 82068b0d0102c33e549088d52550c9c40da4527b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 19:50:53 +0000 Subject: [PATCH 034/110] marmite: 0.2.7 -> 0.3.0 --- pkgs/by-name/ma/marmite/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ma/marmite/package.nix b/pkgs/by-name/ma/marmite/package.nix index 1863ae4d247d..4cbdb2463861 100644 --- a/pkgs/by-name/ma/marmite/package.nix +++ b/pkgs/by-name/ma/marmite/package.nix @@ -10,16 +10,16 @@ rustPlatform.buildRustPackage rec { pname = "marmite"; - version = "0.2.7"; + version = "0.3.0"; src = fetchFromGitHub { owner = "rochacbruno"; repo = "marmite"; tag = version; - hash = "sha256-EPoBNfKkefOe82jXE3c6Y59iP2N6lLIbRvu65fcIcLg="; + hash = "sha256-Q07xA/TYI2O+8C0/3cTpZx0bt47lS+ilhxck18hzzCw="; }; - cargoHash = "sha256-ec9X4cR3sI1LW9680LB2dPeXQ6fmO/2fmsJmc7s/nxI="; + cargoHash = "sha256-yWl8AWond03tT1CsyCrX72AX5ysow6jPgEtFonpLSyc="; nativeBuildInputs = [ pkg-config From 31bfe8581e4882c7035a4c609ae84d7675ee1d49 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 19:52:03 +0000 Subject: [PATCH 035/110] kubedb-cli: 0.63.0 -> 0.64.0 --- pkgs/by-name/ku/kubedb-cli/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ku/kubedb-cli/package.nix b/pkgs/by-name/ku/kubedb-cli/package.nix index 4e868bb1146e..ca2a58e0e2c9 100644 --- a/pkgs/by-name/ku/kubedb-cli/package.nix +++ b/pkgs/by-name/ku/kubedb-cli/package.nix @@ -6,13 +6,13 @@ buildGoModule rec { pname = "kubedb-cli"; - version = "0.63.0"; + version = "0.64.0"; src = fetchFromGitHub { owner = "kubedb"; repo = "cli"; tag = "v${version}"; - hash = "sha256-RhRpKUBlsswPStUoZQ9mFkMst77t4t7OodILaC4tHV0="; + hash = "sha256-BkXUkL3bZg5g0ufGqL+QZ44ZXKMp5O8Ib9TjkBoQaaM="; }; vendorHash = null; From ca89f4e47fd3218271fa45250b0b787c3c104428 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 20:15:14 +0000 Subject: [PATCH 036/110] python3Packages.pysunspec2: 1.3.3 -> 1.3.5 --- pkgs/development/python-modules/pysunspec2/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pysunspec2/default.nix b/pkgs/development/python-modules/pysunspec2/default.nix index dc9e1ae24419..460ca4ea3f97 100644 --- a/pkgs/development/python-modules/pysunspec2/default.nix +++ b/pkgs/development/python-modules/pysunspec2/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "pysunspec2"; - version = "1.3.3"; + version = "1.3.5"; pyproject = true; src = fetchFromGitHub { owner = "sunspec"; repo = "pysunspec2"; tag = "v${version}"; - hash = "sha256-mVx8Rt5GLyQ2ss0iJPi32Fhl9pD7hsXxW94p+8ri+w4="; + hash = "sha256-5iexVb6qXHmVczLydjXu+blGm9zwKGqUBLDUwl8HBrs="; fetchSubmodules = true; }; From 31d122f0f26d5b162f380c2da346cbdf729aba90 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 20:18:43 +0000 Subject: [PATCH 037/110] nfpm: 2.46.1 -> 2.46.3 --- pkgs/by-name/nf/nfpm/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/nf/nfpm/package.nix b/pkgs/by-name/nf/nfpm/package.nix index fe5a418ee95d..65647d437442 100644 --- a/pkgs/by-name/nf/nfpm/package.nix +++ b/pkgs/by-name/nf/nfpm/package.nix @@ -9,16 +9,16 @@ buildGoModule (finalAttrs: { pname = "nfpm"; - version = "2.46.1"; + version = "2.46.3"; src = fetchFromGitHub { owner = "goreleaser"; repo = "nfpm"; rev = "v${finalAttrs.version}"; - hash = "sha256-lwIPwX/2rAOFbzEnEJT8KDzhPOa4I2eirWf8LtQXy7w="; + hash = "sha256-BdiBEYCO8+YDFI4jKjRBaXtR/XutgBIzJA1xERRtE0U="; }; - vendorHash = "sha256-1rtkkIMlaeFih0ZR8YEZMgbAnvoBQgY00p3QML8qVAc="; + vendorHash = "sha256-cDl/vdnklQJQpSrDHDrC2+K7YiBqPOY3Mv5ApOc63Cw="; ldflags = [ "-s" From d61b78b61b49c7bd913d0d1489b10de30cca6b1b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 20:30:25 +0000 Subject: [PATCH 038/110] python3Packages.uritools: 6.0.1 -> 6.0.2 --- pkgs/development/python-modules/uritools/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/uritools/default.nix b/pkgs/development/python-modules/uritools/default.nix index fe37b4ad0c47..4c6de860c585 100644 --- a/pkgs/development/python-modules/uritools/default.nix +++ b/pkgs/development/python-modules/uritools/default.nix @@ -7,12 +7,12 @@ buildPythonPackage rec { pname = "uritools"; - version = "6.0.1"; + version = "6.0.2"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-L56cuVTnh3Iysshj9ySkSgbrmNnH691pkUh26Uh7lPg="; + hash = "sha256-TWccO4yiMKXUfvpfimk/PQFTHzj09SMXApm+c0zJhRs="; }; build-system = [ setuptools ]; From 192593b216cc4c43b733aac6c4420af90a2c0af1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Wed, 22 Apr 2026 13:43:36 -0700 Subject: [PATCH 039/110] python3Packages.netbox-qrcode: fix build failure netbox-qrcode depends on psycopg2, not the latest psycopg --- pkgs/development/python-modules/netbox-qrcode/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/netbox-qrcode/default.nix b/pkgs/development/python-modules/netbox-qrcode/default.nix index 1b68bb95ccd8..24932bcc2a64 100644 --- a/pkgs/development/python-modules/netbox-qrcode/default.nix +++ b/pkgs/development/python-modules/netbox-qrcode/default.nix @@ -9,7 +9,7 @@ # dependencies pillow, qrcode, - psycopg, + psycopg2, # nativeCheckInputs django, @@ -40,7 +40,7 @@ buildPythonPackage (finalAttrs: { django netaddr netbox - psycopg # not specified in pyproject.toml, but required at import time + psycopg2 # not specified in pyproject.toml, but required at import time ]; preFixup = '' From 52fa04e6a200e5ee4bbb465212bbd90e40f03ccc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 21:29:53 +0000 Subject: [PATCH 040/110] otus-lisp: 2.6 -> 2.7 --- pkgs/by-name/ot/otus-lisp/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ot/otus-lisp/package.nix b/pkgs/by-name/ot/otus-lisp/package.nix index 1de3f09f8f05..bf5d62c0f378 100644 --- a/pkgs/by-name/ot/otus-lisp/package.nix +++ b/pkgs/by-name/ot/otus-lisp/package.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "otus-lisp"; - version = "2.6"; + version = "2.7"; src = fetchFromGitHub { owner = "yuriy-chumak"; repo = "ol"; rev = finalAttrs.version; - hash = "sha256-5ixpTTXwJbLM2mJ/nwzjz0aKG/QGVLPScY8EaG7swGU="; + hash = "sha256-7QUyfA9aEZ0VJO4Un2jCyXIxl98tsW4/KjW7LWDnMtU="; }; nativeBuildInputs = [ xxd ]; From 5f6d92f6d795f880c49b5dcd62c6d19c3a0c6808 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 21:31:38 +0000 Subject: [PATCH 041/110] oxipng: 10.1.0 -> 10.1.1 --- pkgs/by-name/ox/oxipng/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ox/oxipng/package.nix b/pkgs/by-name/ox/oxipng/package.nix index 47cce6215b2a..8465b485d793 100644 --- a/pkgs/by-name/ox/oxipng/package.nix +++ b/pkgs/by-name/ox/oxipng/package.nix @@ -5,7 +5,7 @@ }: rustPlatform.buildRustPackage (finalAttrs: { - version = "10.1.0"; + version = "10.1.1"; pname = "oxipng"; # do not use fetchCrate (only repository includes tests) @@ -13,10 +13,10 @@ rustPlatform.buildRustPackage (finalAttrs: { owner = "shssoichiro"; repo = "oxipng"; tag = "v${finalAttrs.version}"; - hash = "sha256-fPzdko8qcg9zcr79SrEakLqTFj9hDCakl6hTVpW9al8="; + hash = "sha256-G06GAlxEVOqt2xHq+JOLSYbsa++aArbu+sb0ypQn9u4="; }; - cargoHash = "sha256-P8PT75TwdYeS9xJ7EEdIhlgHfd0VlIPUaLkM0SfRPq0="; + cargoHash = "sha256-gRWDpxZGy01lWgCIse4Tf7gjwxzosozONB3LD5pX5KQ="; # don't require qemu for aarch64-linux tests # error: linker `aarch64-linux-gnu-gcc` not found From 2705dd941ed18201b539a0865bdd6eae67535e58 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 21:37:29 +0000 Subject: [PATCH 042/110] noxdir: 1.1.0 -> 1.2.0 --- pkgs/by-name/no/noxdir/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/no/noxdir/package.nix b/pkgs/by-name/no/noxdir/package.nix index a0aee71d00aa..57f8daa9de4e 100644 --- a/pkgs/by-name/no/noxdir/package.nix +++ b/pkgs/by-name/no/noxdir/package.nix @@ -6,16 +6,16 @@ buildGoModule (finalAttrs: { pname = "noxdir"; - version = "1.1.0"; + version = "1.2.0"; src = fetchFromGitHub { owner = "crumbyte"; repo = "noxdir"; tag = "v${finalAttrs.version}"; - hash = "sha256-Dq8u2h5l95ZQ7DEi60G8IAeF9kwYQY0KUxq3lq9e3Tk="; + hash = "sha256-xq0oXMsJlhstiLK0VIYqwg7fK1ERwzOGtV8McqCX9G8="; }; - vendorHash = "sha256-Wg1v2oAbaj7gWgj2AgDPZHdsDebgDs8Xcyvo3QYZ1dU="; + vendorHash = "sha256-citZvLDKdhkWma3XKSfMvPOTo1xEpZhovkWTsMTyO+k="; checkPhase = '' runHook preCheck From ea8537d7e2bdec508eeb8b190a65ad9b843e97a1 Mon Sep 17 00:00:00 2001 From: Michael Daniels Date: Wed, 22 Apr 2026 17:48:52 -0400 Subject: [PATCH 043/110] google-chrome: remove meta.changelog It's useless to link to the main page, and there's no good way to link the appropriate post automatically based on the version number. So I unset this. --- pkgs/by-name/go/google-chrome/package.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/by-name/go/google-chrome/package.nix b/pkgs/by-name/go/google-chrome/package.nix index 72ab1cbfee21..aaae75769c2a 100644 --- a/pkgs/by-name/go/google-chrome/package.nix +++ b/pkgs/by-name/go/google-chrome/package.nix @@ -344,7 +344,6 @@ let passthru.updateScript = ./update.sh; meta = { - changelog = "https://chromereleases.googleblog.com/"; description = "Freeware web browser developed by Google"; homepage = "https://www.google.com/chrome/browser/"; license = lib.licenses.unfree; From 00ab84ebc2f92c7221dced19b2a83203a0440b04 Mon Sep 17 00:00:00 2001 From: Xiangyan Sun Date: Wed, 22 Apr 2026 15:21:39 -0700 Subject: [PATCH 044/110] wcc: fix build with gcc15 --- pkgs/by-name/wc/wcc/package.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/by-name/wc/wcc/package.nix b/pkgs/by-name/wc/wcc/package.nix index a4a49c179ba8..7f81b18f57a0 100644 --- a/pkgs/by-name/wc/wcc/package.nix +++ b/pkgs/by-name/wc/wcc/package.nix @@ -46,6 +46,11 @@ stdenv.mkDerivation (finalAttrs: { url = "https://github.com/endrazine/wcc/commit/4bea2dac8b49d82e4f72e42027d74fc654380f7b.patch?full_index=1"; hash = "sha256-RK0ue8hdK/G+njwGmWpaewclRHprO8aBdZ9vBGQIQOc="; }) + # Fix build with gcc 15: function pointer requires explicit arguments + (fetchpatch2 { + url = "https://github.com/endrazine/wcc/commit/3dfd28cb53b4766032e1113cf508bf2f5dce87d5.patch?full_index=1"; + hash = "sha256-7RsU3XJvJ2gvNsB1O/pvOrmd+3/wNfoOZj0JVlgJA8o="; + }) ]; postPatch = '' From 2449164f6ae6775abd2c5c1206520503253b854e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 22:23:21 +0000 Subject: [PATCH 045/110] infrastructure-agent: 1.73.1 -> 1.74.1 --- pkgs/by-name/in/infrastructure-agent/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/in/infrastructure-agent/package.nix b/pkgs/by-name/in/infrastructure-agent/package.nix index c4ef3a8518fe..38babc30309b 100644 --- a/pkgs/by-name/in/infrastructure-agent/package.nix +++ b/pkgs/by-name/in/infrastructure-agent/package.nix @@ -6,13 +6,13 @@ }: buildGoModule (finalAttrs: { pname = "infrastructure-agent"; - version = "1.73.1"; + version = "1.74.1"; src = fetchFromGitHub { owner = "newrelic"; repo = "infrastructure-agent"; rev = finalAttrs.version; - hash = "sha256-fxOvtMAwCR5Y9VhUsR8BF76+REH39+pyGyjxLXwRx1k="; + hash = "sha256-btvhrVt6xU1IMEyjs873EeErtRKzoD/PvfTRHzBw0UI="; }; vendorHash = "sha256-xkoNVXRm8OkVd2f3cSFE1QIF6EHhh8AQh/YZYt22+MU="; From 2d0f40fcbbfa2d7865a3b6f813a0e4d8145439ea Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 22:24:38 +0000 Subject: [PATCH 046/110] ddns-go: 6.16.6 -> 6.16.10 --- pkgs/by-name/dd/ddns-go/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/dd/ddns-go/package.nix b/pkgs/by-name/dd/ddns-go/package.nix index 72f3fe621af5..57732a549b22 100644 --- a/pkgs/by-name/dd/ddns-go/package.nix +++ b/pkgs/by-name/dd/ddns-go/package.nix @@ -6,13 +6,13 @@ buildGoModule (finalAttrs: { pname = "ddns-go"; - version = "6.16.6"; + version = "6.16.10"; src = fetchFromGitHub { owner = "jeessy2"; repo = "ddns-go"; rev = "v${finalAttrs.version}"; - hash = "sha256-t6sxGucolqjDGSkzJUqO0NDeK4oRqq7oG+WD/brh4NA="; + hash = "sha256-P9jc3MSMzHWQSi5rqaqAlX5/lgF8cNvvZXnsZ/yo5Fk="; }; vendorHash = "sha256-MbITJ2MxyTNE6LS9rQZ10IVgQuXpmbPf5HQgoy2OuOc="; From 322743d7829ba49914ac039e2a3e66a106cf7b0a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 22:45:58 +0000 Subject: [PATCH 047/110] doppler: 3.75.3 -> 3.76.0 --- pkgs/by-name/do/doppler/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/do/doppler/package.nix b/pkgs/by-name/do/doppler/package.nix index f9fa4e7930ac..d142a1a53a14 100644 --- a/pkgs/by-name/do/doppler/package.nix +++ b/pkgs/by-name/do/doppler/package.nix @@ -10,13 +10,13 @@ buildGoModule (finalAttrs: { pname = "doppler"; - version = "3.75.3"; + version = "3.76.0"; src = fetchFromGitHub { owner = "dopplerhq"; repo = "cli"; rev = finalAttrs.version; - hash = "sha256-4OvU0Hy2uBjeyQibODi9WqdM0adUW2vTS9SCL+O2RFA="; + hash = "sha256-CmNSn4WRWMP07qC5APw8PTouCUOHJrz1ZYqpKhdiIDM="; }; vendorHash = "sha256-u6SB3SXCqu7Y2aUoTAJ01mtDCxMofVQLAde1jDxVvks="; From 64a28f1ea1bf2cddb443ad3ced0f5e3c64a4f3c2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 22:47:03 +0000 Subject: [PATCH 048/110] devspace: 6.3.20 -> 6.3.21 --- pkgs/by-name/de/devspace/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/de/devspace/package.nix b/pkgs/by-name/de/devspace/package.nix index e67f2a657b0e..7a125f24f200 100644 --- a/pkgs/by-name/de/devspace/package.nix +++ b/pkgs/by-name/de/devspace/package.nix @@ -8,13 +8,13 @@ buildGoModule (finalAttrs: { pname = "devspace"; - version = "6.3.20"; + version = "6.3.21"; src = fetchFromGitHub { owner = "devspace-sh"; repo = "devspace"; rev = "v${finalAttrs.version}"; - hash = "sha256-z1wKjEKr2SyLe5bp08g8rzpDxQenvrTjVWjjGO6N7ys="; + hash = "sha256-QCO1faP4V0fqznPyMFnmAI+N0VE9tECwSXdg6xowocM="; }; vendorHash = null; From 823a465f312bcdf0bb5ce30b38f138ed28fa80a3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 22:59:51 +0000 Subject: [PATCH 049/110] clash-rs: 0.9.7 -> 0.10.0 --- pkgs/by-name/cl/clash-rs/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/cl/clash-rs/package.nix b/pkgs/by-name/cl/clash-rs/package.nix index 8ee2eb6fd68f..de5edae3fcab 100644 --- a/pkgs/by-name/cl/clash-rs/package.nix +++ b/pkgs/by-name/cl/clash-rs/package.nix @@ -10,16 +10,16 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "clash-rs"; - version = "0.9.7"; + version = "0.10.0"; src = fetchFromGitHub { owner = "Watfaq"; repo = "clash-rs"; tag = "v${finalAttrs.version}"; - hash = "sha256-26OoAy/IiTEqESABqjLMI9zsmHgBbwmIazzoP8Au4nM="; + hash = "sha256-r+9tFw4B/7g/4EEYnX0Zcv4jPeGbcVgdtpAcSyk/cxA="; }; - cargoHash = "sha256-UPCXc0uB0pg4ioBIpYQKwtyTWsMH/248WDyO9qB2jwA="; + cargoHash = "sha256-D/TalJ0fBD4ZoHwU6uj5P0O6xFwinL9hE91bQhxC7s8="; nativeBuildInputs = [ cmake From 0c551bb83211a65d36426ac736a0496c46e71493 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 23:02:13 +0000 Subject: [PATCH 050/110] grafanaPlugins.grafana-pyroscope-app: 2.0.1 -> 2.0.4 --- .../grafana/plugins/grafana-pyroscope-app/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/monitoring/grafana/plugins/grafana-pyroscope-app/default.nix b/pkgs/servers/monitoring/grafana/plugins/grafana-pyroscope-app/default.nix index b722a269985c..699e6b6661e4 100644 --- a/pkgs/servers/monitoring/grafana/plugins/grafana-pyroscope-app/default.nix +++ b/pkgs/servers/monitoring/grafana/plugins/grafana-pyroscope-app/default.nix @@ -2,8 +2,8 @@ grafanaPlugin { pname = "grafana-pyroscope-app"; - version = "2.0.1"; - zipHash = "sha256-ws/gYJnq2BQHeaPezGFsEgmvbURRo1kCI8yRO5X6588="; + version = "2.0.4"; + zipHash = "sha256-merfONOOSaD3KOQkRP7v8J18pemW3dLBf3bz3QpEpiQ="; meta = { description = "Integrate seamlessly with Pyroscope, the open-source continuous profiling platform, providing a smooth, query-less experience for browsing and analyzing profiling data"; license = lib.licenses.agpl3Only; From eefd1bf9e78c24dbbb5cc0306952ddc28be65042 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 23:11:13 +0000 Subject: [PATCH 051/110] kubectl-rabbitmq: 2.20.0 -> 2.20.1 --- pkgs/by-name/ku/kubectl-rabbitmq/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ku/kubectl-rabbitmq/package.nix b/pkgs/by-name/ku/kubectl-rabbitmq/package.nix index f64018d6c49f..49a34fe93d7c 100644 --- a/pkgs/by-name/ku/kubectl-rabbitmq/package.nix +++ b/pkgs/by-name/ku/kubectl-rabbitmq/package.nix @@ -7,18 +7,18 @@ buildGoModule (finalAttrs: { pname = "kubectl-rabbitmq"; - version = "2.20.0"; + version = "2.20.1"; src = fetchFromGitHub { owner = "rabbitmq"; repo = "cluster-operator"; tag = "v${finalAttrs.version}"; - hash = "sha256-anJZy0XUEJ0j912g7+ltq2bMVE/KPpyBWuh7AqGgx30="; + hash = "sha256-84rcffEG2+AxtCbOo7KnT6mQFOMpeWJyA0HgDxjmlyc="; }; modRoot = "kubectl-rabbitmq"; - vendorHash = "sha256-UnZ47TUarqZNYrvpfNJy5tm9Yq5/eFrkMSLRqjqM9PU="; + vendorHash = "sha256-+++RbYcQ3qrdWeBUjd50RuCuvpSbDrTycCR7mptvhoc="; ldflags = [ "-s" From aff219d084a450d2f12fb2ee802c6f6c4934804a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 00:25:01 +0000 Subject: [PATCH 052/110] treemd: 0.5.9 -> 0.5.10 --- pkgs/by-name/tr/treemd/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/tr/treemd/package.nix b/pkgs/by-name/tr/treemd/package.nix index 4a9368f2f993..0107e3a55e9a 100644 --- a/pkgs/by-name/tr/treemd/package.nix +++ b/pkgs/by-name/tr/treemd/package.nix @@ -8,16 +8,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "treemd"; - version = "0.5.9"; + version = "0.5.10"; src = fetchFromGitHub { owner = "Epistates"; repo = "treemd"; tag = "v${finalAttrs.version}"; - hash = "sha256-ImzHTdL1bKMV4mfl5tiTSQ89f3iUZZeFWmR74xMvP24="; + hash = "sha256-lt1dZW8na89wAcYkkoiNigGz8sh5dcuqoRmdV4M6fCk="; }; - cargoHash = "sha256-KxIsZNDKgYWEdrDiwTHjORg44T3gc2hJSJe05H/Qavw="; + cargoHash = "sha256-mRHB/hJmpjMNrPeqz2ec78AIDvCQ1mbmfAkI+VoSqd0="; doInstallCheck = true; nativeInstallCheckInputs = [ versionCheckHook ]; From 87dc05a85785e59bc1cc629627605c758ff40c33 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 00:56:48 +0000 Subject: [PATCH 053/110] nexttrace: 1.6.2 -> 1.6.4 --- pkgs/by-name/ne/nexttrace/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ne/nexttrace/package.nix b/pkgs/by-name/ne/nexttrace/package.nix index 185db073aabe..31becd409076 100644 --- a/pkgs/by-name/ne/nexttrace/package.nix +++ b/pkgs/by-name/ne/nexttrace/package.nix @@ -7,15 +7,15 @@ buildGoModule (finalAttrs: { pname = "nexttrace"; - version = "1.6.2"; + version = "1.6.4"; src = fetchFromGitHub { owner = "nxtrace"; repo = "NTrace-core"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-SJjWDnbHXuokNFErMdnwxzBRgIyfuxmZ5j3IisgG93I="; + sha256 = "sha256-atouv41R49HVJui60ivh1OPIDFwtILdu4BU+x0cLVQ4="; }; - vendorHash = "sha256-4MunvXclgbjnd4ZHLey79GFOH9gDbzqXx1UViUEGL9k="; + vendorHash = "sha256-U0OXsZ9eME2paV8+DuPGYuNdaPnfmc4AdaT6cri3Nlw="; buildInputs = [ libpcap ]; From a5c9511ae29946211edb4ba6010316962a6f9221 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 01:38:57 +0000 Subject: [PATCH 054/110] mage: 1.17.1 -> 1.17.2 --- pkgs/by-name/ma/mage/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ma/mage/package.nix b/pkgs/by-name/ma/mage/package.nix index 193fb03ffea6..11a406e19142 100644 --- a/pkgs/by-name/ma/mage/package.nix +++ b/pkgs/by-name/ma/mage/package.nix @@ -6,13 +6,13 @@ buildGoModule (finalAttrs: { pname = "mage"; - version = "1.17.1"; + version = "1.17.2"; src = fetchFromGitHub { owner = "magefile"; repo = "mage"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-PoZqVUT+sKr9UY8OaWjYxaqTSYItOkOdi1FnmGJ1K78="; + sha256 = "sha256-QYvgKq7I+YGoDbECFGtQHPPP/z8oo5n3BT4LoShrEPc="; }; vendorHash = null; From a6c45d8d50cc5509a2fe729dfe2524caae579733 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 16 Apr 2026 17:57:24 +0000 Subject: [PATCH 055/110] python3Packages.cohere: 5.21.1 -> 6.1.0 --- .../python-modules/cohere/default.nix | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/cohere/default.nix b/pkgs/development/python-modules/cohere/default.nix index f08907499408..c1d4d8d169d2 100644 --- a/pkgs/development/python-modules/cohere/default.nix +++ b/pkgs/development/python-modules/cohere/default.nix @@ -9,25 +9,29 @@ # dependencies fastavro, httpx, - httpx-sse, pydantic, pydantic-core, requests, tokenizers, types-requests, typing-extensions, + + # optional-dependencies + aiohttp, + httpx-aiohttp, + oci, }: buildPythonPackage rec { pname = "cohere"; - version = "5.21.1"; + version = "6.1.0"; pyproject = true; src = fetchFromGitHub { owner = "cohere-ai"; repo = "cohere-python"; tag = version; - hash = "sha256-RT4Sxk9fKunuyEXl2pvKgS6U82fPKjMPmSl9jwm+GBk="; + hash = "sha256-be6vhTGXnf1/iaD13VYjey/to+HX28VfmYlUPE2eFT4="; }; build-system = [ poetry-core ]; @@ -35,7 +39,6 @@ buildPythonPackage rec { dependencies = [ fastavro httpx - httpx-sse pydantic pydantic-core requests @@ -44,7 +47,13 @@ buildPythonPackage rec { typing-extensions ]; - pythonRelaxDeps = [ "httpx-sse" ]; + optional-dependencies = { + aiohttp = [ + aiohttp + httpx-aiohttp + ]; + oci = [ oci ]; + }; # tests require CO_API_KEY doCheck = false; From a5d435c5a237a7e75c3850e2e8fa804b3fb7e6cc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 02:28:03 +0000 Subject: [PATCH 056/110] velocity: 3.5.0-unstable-2026-04-13 -> 3.5.0-unstable-2026-04-17 --- pkgs/by-name/ve/velocity/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ve/velocity/package.nix b/pkgs/by-name/ve/velocity/package.nix index db653817c754..9268e0098951 100644 --- a/pkgs/by-name/ve/velocity/package.nix +++ b/pkgs/by-name/ve/velocity/package.nix @@ -34,13 +34,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "velocity"; - version = "3.5.0-unstable-2026-04-13"; + version = "3.5.0-unstable-2026-04-17"; src = fetchFromGitHub { owner = "PaperMC"; repo = "Velocity"; - rev = "a6d97e28adb1b0cd6464bab78ed4e2c14835868f"; - hash = "sha256-CfYZgiYqH+M8t3CmPx3B3CIkudxPKHbtuysewqhE/B0="; + rev = "f712997dd7f243cb3a0e55ec3f6277a10b6b1d69"; + hash = "sha256-gGS05w92lNKVJRwz30SQDSC/HHxZJGaxFggK1MaN3vE="; }; nativeBuildInputs = [ From 4d840aed1ac8453c825da481f9270e4108a0a7ea Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 03:11:10 +0000 Subject: [PATCH 057/110] python3Packages.dicomweb-client: 0.60.1 -> 0.61.0 --- pkgs/development/python-modules/dicomweb-client/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/dicomweb-client/default.nix b/pkgs/development/python-modules/dicomweb-client/default.nix index 85b467c426bf..a4064bec4720 100644 --- a/pkgs/development/python-modules/dicomweb-client/default.nix +++ b/pkgs/development/python-modules/dicomweb-client/default.nix @@ -15,14 +15,14 @@ buildPythonPackage (finalAttrs: { pname = "dicomweb-client"; - version = "0.60.1"; + version = "0.61.0"; pyproject = true; src = fetchFromGitHub { owner = "ImagingDataCommons"; repo = "dicomweb-client"; tag = "v${finalAttrs.version}"; - hash = "sha256-ZxeZiCw8I5+Bf266PQ6WQA8mBRC7K3/kZrmuW4l6kQU="; + hash = "sha256-uCImuJDZr2gyWnLCU2JCmkGO/EloRty1fIRujwzYzAg="; }; build-system = [ From 64b8e41f48aaee2ac3aebe607a2aeb346a757731 Mon Sep 17 00:00:00 2001 From: Xiangyan Sun Date: Wed, 22 Apr 2026 23:12:26 -0700 Subject: [PATCH 058/110] ucblogo: 6.2.4 -> 6.2.5 --- pkgs/by-name/uc/ucblogo/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/uc/ucblogo/package.nix b/pkgs/by-name/uc/ucblogo/package.nix index 53c2893ccfc9..dd64a4581d8b 100644 --- a/pkgs/by-name/uc/ucblogo/package.nix +++ b/pkgs/by-name/uc/ucblogo/package.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "ucblogo-code"; - version = "6.2.4"; + version = "6.2.5"; src = fetchFromGitHub { owner = "jrincayc"; repo = "ucblogo-code"; - rev = "ca23b30a62eaaf03ea203ae71d00dc45a046514e"; - hash = "sha256-BVNKkT0YUqI/z5W6Y/u3WbrHmaw7Z165vFt/mlzjd+8="; + tag = "version_${finalAttrs.version}"; + hash = "sha256-QofC7G6IS5TNxwRm23uhuThLou05etGuG/S3Wm29yUI="; }; nativeBuildInputs = [ From fed14375d22729c4472f19ad475f18fa1a76fe61 Mon Sep 17 00:00:00 2001 From: DarkOnion0 Date: Thu, 23 Apr 2026 08:53:09 +0200 Subject: [PATCH 059/110] appflowy: 0.11.5 -> 0.11.7 https://github.com/AppFlowy-IO/AppFlowy/releases/tag/0.11.6 https://github.com/AppFlowy-IO/AppFlowy/releases/tag/0.11.7 --- pkgs/by-name/ap/appflowy/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ap/appflowy/package.nix b/pkgs/by-name/ap/appflowy/package.nix index 91917fc8b34a..c4ae41f31586 100644 --- a/pkgs/by-name/ap/appflowy/package.nix +++ b/pkgs/by-name/ap/appflowy/package.nix @@ -27,11 +27,11 @@ let rec { x86_64-linux = { urlSuffix = "linux-x86_64.tar.gz"; - hash = "sha256-zr84SNbUuVWlLzYjQt1ZK2yk1sDgva3jzDUHsS1/7aM="; + hash = "sha256-aG3Avp9LP2b7Q4RGg8gL3QsbOfUUTWCojAmYpdjleoc="; }; x86_64-darwin = { urlSuffix = "macos-universal.zip"; - hash = "sha256-m303tVHbyUUibBfyi8svpbbhgv/msBfh1WVIZl96XvQ="; + hash = "sha256-gDL0Y3v1lHBtDUjn4VM5YLKAzxh1NvrePGZrPiD9H6M="; }; aarch64-darwin = x86_64-darwin; } @@ -40,7 +40,7 @@ let in stdenvNoCC.mkDerivation (finalAttrs: { pname = "appflowy"; - version = "0.11.5"; + version = "0.11.7"; src = fetchzip { url = "https://github.com/AppFlowy-IO/appflowy/releases/download/${finalAttrs.version}/AppFlowy-${finalAttrs.version}-${dist.urlSuffix}"; From b5d3a53de1d91dad2c9267f843d587db8b841855 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Wed, 25 Mar 2026 14:38:31 +0100 Subject: [PATCH 060/110] nodejs: provide fallback passthru values on the symlink variant Follow-up on dbcb81f67b5f1b652931c2aa7925f6b4f6837204 Derivations are recommended to replace `nodejs` with `nodejs-slim`. --- pkgs/development/web/nodejs/symlink.nix | 40 +++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/pkgs/development/web/nodejs/symlink.nix b/pkgs/development/web/nodejs/symlink.nix index 87bbdbec6314..d2b0e6e19151 100644 --- a/pkgs/development/web/nodejs/symlink.nix +++ b/pkgs/development/web/nodejs/symlink.nix @@ -3,7 +3,7 @@ nodejs-slim, symlinkJoin, }: -symlinkJoin { +(symlinkJoin { pname = "nodejs"; inherit (nodejs-slim) version passthru meta; paths = [ @@ -11,4 +11,40 @@ symlinkJoin { nodejs-slim.npm ] ++ lib.optional (builtins.hasAttr "corepack" nodejs-slim) nodejs-slim.corepack; -} +}).overrideAttrs + (nodejs: { + passthru = + (builtins.listToAttrs ( + map + (name: { + inherit name; + value = lib.warn "Use nodejs-slim.${name} instead of nodejs.${name}" nodejs-slim.${name}; + }) + ( + builtins.filter ( + name: + !lib.strings.hasPrefix "__" name + && !(builtins.elem name [ + "override" + "overrideAttrs" + "overrideDerivation" + "outputs" + "outputName" + "system" + "type" + + # Filter out arguments of `getOutput` + "bin" + "dev" + "include" + "lib" + "man" + "out" + "static" + ]) + && !(builtins.hasAttr name nodejs) + ) (builtins.attrNames nodejs-slim) + ) + )) + // nodejs.passthru; + }) From ee33d8465da947a29d3a3dc148b26df67892867a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 07:48:23 +0000 Subject: [PATCH 061/110] kubectl-view-secret: 0.15.1 -> 0.16.0 --- pkgs/by-name/ku/kubectl-view-secret/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ku/kubectl-view-secret/package.nix b/pkgs/by-name/ku/kubectl-view-secret/package.nix index df3531c7e1c5..77840712ca35 100644 --- a/pkgs/by-name/ku/kubectl-view-secret/package.nix +++ b/pkgs/by-name/ku/kubectl-view-secret/package.nix @@ -6,16 +6,16 @@ buildGoModule (finalAttrs: { pname = "kubectl-view-secret"; - version = "0.15.1"; + version = "0.16.0"; src = fetchFromGitHub { owner = "elsesiy"; repo = "kubectl-view-secret"; rev = "v${finalAttrs.version}"; - hash = "sha256-JFVW/k+TMsIo24zBqjtpoei6YRW/rgwu0qFEHvZbc1c="; + hash = "sha256-U030TzoYoSjJpohv/yeR8MVrpfIwO578I/KCIPxBj5k="; }; - vendorHash = "sha256-WgIDyj3zZK1scXarlVA82FP3FdJs5jSR88OBJhyeWls="; + vendorHash = "sha256-EiSqk957zurwlL0qhvRAHKQCVpmmZhDFbdplWfRg2Ec="; subPackages = [ "./cmd/" ]; From a37c00f048c6f84e77eb6bdd96a088e5eef8eb52 Mon Sep 17 00:00:00 2001 From: jaredmontoya <49511278+jaredmontoya@users.noreply.github.com> Date: Mon, 16 Mar 2026 15:17:43 +0100 Subject: [PATCH 062/110] lmms: 1.2.2 -> 1.2.2-unstable-2026-04-21 LMMS 1.2.2 is 6 years old and the software has undergone many changes since then, unfortunately however, no branches or tags are being made as the software progresses so we stay as close to git as possible. Co-authored-by: Alexandre Cavalheiro S. Tiago da Silva --- pkgs/applications/audio/lmms/default.nix | 99 --------- pkgs/by-name/lm/lmms-full/package.nix | 8 + ...tring-to-FindWine-for-replacement-in.patch | 38 ++++ .../lm/lmms/0002-fix-gigplayer-linking.patch | 49 +++++ pkgs/by-name/lm/lmms/package.nix | 190 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 6 - 6 files changed, 285 insertions(+), 105 deletions(-) delete mode 100644 pkgs/applications/audio/lmms/default.nix create mode 100644 pkgs/by-name/lm/lmms-full/package.nix create mode 100644 pkgs/by-name/lm/lmms/0001-fix-add-unique-string-to-FindWine-for-replacement-in.patch create mode 100644 pkgs/by-name/lm/lmms/0002-fix-gigplayer-linking.patch create mode 100644 pkgs/by-name/lm/lmms/package.nix diff --git a/pkgs/applications/audio/lmms/default.nix b/pkgs/applications/audio/lmms/default.nix deleted file mode 100644 index f8e9cb71366c..000000000000 --- a/pkgs/applications/audio/lmms/default.nix +++ /dev/null @@ -1,99 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - fetchpatch, - cmake, - pkg-config, - wrapQtAppsHook, - alsa-lib ? null, - carla ? null, - fftwFloat, - fltk_1_3, - fluidsynth ? null, - lame ? null, - libgig ? null, - libjack2 ? null, - libpulseaudio ? null, - libsamplerate, - libsoundio ? null, - libsndfile, - libvorbis ? null, - portaudio ? null, - qtbase, - qtx11extras, - qttools, - SDL ? null, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "lmms"; - version = "1.2.2"; - - src = fetchFromGitHub { - owner = "LMMS"; - repo = "lmms"; - rev = "v${finalAttrs.version}"; - sha256 = "006hwv1pbh3y5whsxkjk20hsbgwkzr4dawz43afq1gil69y7xpda"; - fetchSubmodules = true; - }; - - nativeBuildInputs = [ - cmake - qttools - pkg-config - wrapQtAppsHook - ]; - - buildInputs = [ - carla - alsa-lib - fftwFloat - fltk_1_3 - fluidsynth - lame - libgig - libjack2 - libpulseaudio - libsamplerate - libsndfile - libsoundio - libvorbis - portaudio - qtbase - qtx11extras - SDL # TODO: switch to SDL2 in the next version - ]; - - patches = [ - (fetchpatch { - url = "https://raw.githubusercontent.com/archlinux/svntogit-community/cf64acc45e3264c6923885867e2dbf8b7586a36b/trunk/lmms-carla-export.patch"; - sha256 = "sha256-wlSewo93DYBN2PvrcV58dC9kpoo9Y587eCeya5OX+j4="; - }) - ]; - - prePatch = '' - # Update CMake minimum required version and policies - substituteInPlace CMakeLists.txt --replace 'CMAKE_MINIMUM_REQUIRED(VERSION 2.8.7)' 'CMAKE_MINIMUM_REQUIRED(VERSION 3.10)' - substituteInPlace CMakeLists.txt --replace 'CMAKE_POLICY(SET CMP0026 OLD)' 'CMAKE_POLICY(SET CMP0026 NEW)' - substituteInPlace CMakeLists.txt --replace 'CMAKE_POLICY(SET CMP0050 OLD)' 'CMAKE_POLICY(SET CMP0050 NEW)' - substituteInPlace CMakeLists.txt --replace 'GET_TARGET_PROPERTY(BIN2RES bin2res LOCATION)' 'SET(BIN2RES $)' - ''; - - cmakeFlags = [ - "-DWANT_QT5=ON" - ] - ++ lib.optionals (lib.versionOlder finalAttrs.version "11.4") [ - # Fix the build with CMake 4. - "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" - ]; - - meta = { - description = "DAW similar to FL Studio (music production software)"; - mainProgram = "lmms"; - homepage = "https://lmms.io"; - license = lib.licenses.gpl2Plus; - platforms = lib.platforms.linux; - maintainers = [ ]; - }; -}) diff --git a/pkgs/by-name/lm/lmms-full/package.nix b/pkgs/by-name/lm/lmms-full/package.nix new file mode 100644 index 000000000000..20ba81e4a1ac --- /dev/null +++ b/pkgs/by-name/lm/lmms-full/package.nix @@ -0,0 +1,8 @@ +{ lmms }: + +lmms.override { + withSoundio = true; + withPortAudio = true; + withSndio = true; + withWine = true; +} diff --git a/pkgs/by-name/lm/lmms/0001-fix-add-unique-string-to-FindWine-for-replacement-in.patch b/pkgs/by-name/lm/lmms/0001-fix-add-unique-string-to-FindWine-for-replacement-in.patch new file mode 100644 index 000000000000..50683962ef4b --- /dev/null +++ b/pkgs/by-name/lm/lmms/0001-fix-add-unique-string-to-FindWine-for-replacement-in.patch @@ -0,0 +1,38 @@ +From 9d05021c4e9370f7e1b8c7595a18ae2b98895a60 Mon Sep 17 00:00:00 2001 +From: "Alexandre Cavalheiro S. Tiago da Silva" +Date: Tue, 28 Jan 2025 18:36:47 -0300 +Subject: [PATCH] fix!: add unique string to FindWine for replacement in nixos + +--- + cmake/modules/FindWine.cmake | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/cmake/modules/FindWine.cmake b/cmake/modules/FindWine.cmake +index eeef8d9c2..c04ee4a35 100644 +--- a/cmake/modules/FindWine.cmake ++++ b/cmake/modules/FindWine.cmake +@@ -13,6 +13,13 @@ + # WINE_64_FLAGS - 64-bit linker flags + # + ++set(WINE_INCLUDE_DIR @WINE_LOCATION@/include) ++set(WINE_BUILD @WINE_LOCATION@/bin/winebuild) ++set(WINE_CXX @WINE_LOCATION@/bin/wineg++) ++set(WINE_GCC @WINE_LOCATION@/bin/winegcc) ++set(WINE_32_LIBRARY_DIRS @WINE_LOCATION@/lib/wine/i386-unix) ++set(WINE_64_LIBRARY_DIRS @WINE_LOCATION@/lib/wine/x86_64-unix) ++ + MACRO(_findwine_find_flags output expression result) + STRING(REPLACE " " ";" WINEBUILD_FLAGS "${output}") + FOREACH(FLAG ${WINEBUILD_FLAGS}) +@@ -32,6 +39,7 @@ ENDMACRO() + + # Prefer newest wine first + list(APPEND WINE_LOCATIONS ++ @WINE_LOCATION@ + /opt/wine-staging + /opt/wine-devel + /opt/wine-stable +-- +2.47.1 + diff --git a/pkgs/by-name/lm/lmms/0002-fix-gigplayer-linking.patch b/pkgs/by-name/lm/lmms/0002-fix-gigplayer-linking.patch new file mode 100644 index 000000000000..6276f0d3b4db --- /dev/null +++ b/pkgs/by-name/lm/lmms/0002-fix-gigplayer-linking.patch @@ -0,0 +1,49 @@ +Use modern CMake imported target for libgig to ensure proper RPATH propagation. + +The old-style link_directories()/link_libraries() pattern does not propagate +library paths to the install RPATH, causing libgig.so to not be found at +runtime when it is installed in a non-standard directory (e.g. lib/libgig/). + +Using IMPORTED_TARGET with pkg_check_modules creates a PkgConfig::GIG target +that carries include dirs, library paths, and link flags, and CMake correctly +propagates these to the install RPATH via target_link_libraries(). + +Also set CMAKE_INSTALL_RPATH_USE_LINK_PATH in the GigPlayer scope, since the +upstream code only sets it in src/CMakeLists.txt which does not apply to the +sibling plugins/ directory. + +diff -ruN a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -550,7 +550,7 @@ + + # check for libgig + If(WANT_GIG) +- PKG_CHECK_MODULES(GIG gig) ++ PKG_CHECK_MODULES(GIG IMPORTED_TARGET gig) + IF(GIG_FOUND) + SET(LMMS_HAVE_GIG TRUE) + SET(STATUS_GIG "OK") +diff -ruN a/plugins/GigPlayer/CMakeLists.txt b/plugins/GigPlayer/CMakeLists.txt +--- a/plugins/GigPlayer/CMakeLists.txt ++++ b/plugins/GigPlayer/CMakeLists.txt +@@ -1,17 +1,16 @@ + if(LMMS_HAVE_GIG) + INCLUDE(BuildPlugin) +- include_directories(SYSTEM ${GIG_INCLUDE_DIRS}) + SET(CMAKE_AUTOUIC ON) ++ SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + + # Required for not crashing loading files with libgig + add_compile_options("-fexceptions") + +- link_directories(${GIG_LIBRARY_DIRS}) +- link_libraries(${GIG_LIBRARIES}) + build_plugin(gigplayer + GigPlayer.cpp GigPlayer.h PatchesDialog.cpp PatchesDialog.h PatchesDialog.ui + MOCFILES GigPlayer.h PatchesDialog.h + EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png" + ) ++ target_link_libraries(gigplayer PkgConfig::GIG) + target_link_libraries(gigplayer SampleRate::samplerate) + endif(LMMS_HAVE_GIG) diff --git a/pkgs/by-name/lm/lmms/package.nix b/pkgs/by-name/lm/lmms/package.nix new file mode 100644 index 000000000000..ecc8e43fadf1 --- /dev/null +++ b/pkgs/by-name/lm/lmms/package.nix @@ -0,0 +1,190 @@ +{ + lib, + stdenv, + fetchFromGitHub, + replaceVars, + unstableGitUpdater, + cmake, + pkg-config, + alsa-lib, + carla, + fftwFloat, + fltk, + fluidsynth, + glibc_multi, + lame, + libgig, + libjack2, + libogg, + libpulseaudio, + libsForQt5, + libsamplerate, + libsoundio, + libsndfile, + libvorbis, + lilv, + lv2, + perl5, + perl5Packages, + portaudio, + qt5, + sndio, + SDL2, + suil, + wineWow64Packages, + withALSA ? true, + withPulseAudio ? true, + withSoundio ? false, + withPortAudio ? false, + withSndio ? false, + withJACK ? true, + withSDL ? true, + withOggVorbis ? true, + withMP3Lame ? true, + withSoundFont ? true, + withZyn ? true, + withSWH ? true, + withSID ? true, + withGIG ? true, + withLV2 ? true, + withVST ? true, + withCarla ? true, + withWine ? false, +}: + +let + winePackages = + if lib.isDerivation wineWow64Packages then wineWow64Packages else wineWow64Packages.minimal; +in +stdenv.mkDerivation (finalAttrs: { + pname = "lmms"; + version = "1.2.2-unstable-2026-04-21"; + + src = fetchFromGitHub { + owner = "LMMS"; + repo = "lmms"; + rev = "fc3dfda961a7923326d2b0d5747e5d8fd941af98"; + hash = "sha256-q8w1CgM2QnkCIOUJlv8r+2zMKl+brbNKoAkhDJEhaN0="; + fetchSubmodules = true; + }; + + strictDeps = true; + __structuredAttrs = true; + + nativeBuildInputs = [ + cmake + libsForQt5.qt5.qttools + pkg-config + qt5.wrapQtAppsHook + ]; + + buildInputs = [ + fftwFloat + libsForQt5.qt5.qtbase + libsForQt5.qt5.qtsvg + libsForQt5.qt5.qtx11extras + libsamplerate + libsndfile + ] + ++ lib.optionals withALSA [ + alsa-lib + ] + ++ lib.optionals withPulseAudio [ + libpulseaudio + ] + ++ lib.optionals withSoundio [ + libsoundio + ] + ++ lib.optionals withPortAudio [ + portaudio + ] + ++ lib.optionals withSndio [ + sndio + ] + ++ lib.optionals withJACK [ + libjack2 + ] + ++ lib.optionals withSDL [ + SDL2 + ] + ++ lib.optionals withOggVorbis [ + libogg + libvorbis + ] + ++ lib.optionals withMP3Lame [ + lame + ] + ++ lib.optionals withSoundFont [ + fluidsynth + ] + ++ lib.optionals withZyn [ + fltk + ] + ++ lib.optionals (withSWH || withSID) [ + perl5 + perl5Packages.ListMoreUtils + perl5Packages.XMLParser + ] + ++ lib.optionals withGIG [ + libgig + ] + ++ lib.optionals withLV2 [ + lilv + lv2 + suil + ] + ++ lib.optionals withCarla [ + carla + ] + ++ lib.optionals withWine [ + glibc_multi + winePackages + ]; + + patches = [ + # Use modern CMake imported target for libgig so that its non-standard + # library path (lib/libgig/) is properly propagated to the install RPATH. + ./0002-fix-gigplayer-linking.patch + ] + ++ lib.optionals withWine [ + (replaceVars ./0001-fix-add-unique-string-to-FindWine-for-replacement-in.patch { + WINE_LOCATION = winePackages; + }) + ]; + + cmakeFlags = [ + # Fix the build with CMake 4. + "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" + (lib.cmakeBool "WANT_ALSA" withALSA) + (lib.cmakeBool "WANT_PULSEAUDIO" withPulseAudio) + (lib.cmakeBool "WANT_SOUNDIO" withSoundio) + (lib.cmakeBool "WANT_PORTAUDIO" withPortAudio) + (lib.cmakeBool "WANT_SNDIO" withSndio) + (lib.cmakeBool "WANT_JACK" withJACK) + (lib.cmakeBool "WANT_WEAKJACK" withJACK) + (lib.cmakeBool "WANT_SDL" withSDL) + (lib.cmakeBool "WANT_OGGVORBIS" withOggVorbis) + (lib.cmakeBool "WANT_MP3LAME" withMP3Lame) + (lib.cmakeBool "WANT_SF2" withSoundFont) + (lib.cmakeBool "WANT_GIG" withGIG) + (lib.cmakeBool "WANT_SID" withSID) + (lib.cmakeBool "WANT_SWH" withSWH) + (lib.cmakeBool "WANT_LV2" withLV2) + (lib.cmakeBool "WANT_VST" withVST) + (lib.cmakeBool "WANT_CARLA" withCarla) + ]; + + passthru.updateScript = unstableGitUpdater { }; + + meta = { + description = "DAW similar to FL Studio (music production software)"; + mainProgram = "lmms"; + homepage = "https://lmms.io"; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ + wizardlink + jaredmontoya + ]; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1a09c77b2e54..cd6d40c0f81e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9885,12 +9885,6 @@ with pkgs; withFonts = true; }; - lmms = libsForQt5.callPackage ../applications/audio/lmms { - lame = null; - libsoundio = null; - portaudio = null; - }; - luminanceHDR = callPackage ../applications/graphics/luminance-hdr { openexr = openexr_2; }; From 2a1d1900c5d04afe589da7ed16111a7418bcaf04 Mon Sep 17 00:00:00 2001 From: Markus Hauck Date: Sat, 18 Apr 2026 11:35:39 +0200 Subject: [PATCH 063/110] claude-code: replace npm source package with native binary dist - changed the update script to use BASH_SOURCE and optional VERSION arg --- .../anthropic.claude-code/default.nix | 2 +- pkgs/by-name/cl/claude-code-bin/package.nix | 104 ------ pkgs/by-name/cl/claude-code-bin/update.sh | 10 - .../manifest.json | 0 pkgs/by-name/cl/claude-code/package-lock.json | 334 ------------------ pkgs/by-name/cl/claude-code/package.nix | 82 +++-- pkgs/by-name/cl/claude-code/update.sh | 15 +- pkgs/top-level/aliases.nix | 1 + 8 files changed, 60 insertions(+), 488 deletions(-) delete mode 100644 pkgs/by-name/cl/claude-code-bin/package.nix delete mode 100755 pkgs/by-name/cl/claude-code-bin/update.sh rename pkgs/by-name/cl/{claude-code-bin => claude-code}/manifest.json (100%) delete mode 100644 pkgs/by-name/cl/claude-code/package-lock.json diff --git a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix index 4d2438e9d58a..e45e15ed0a41 100644 --- a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix +++ b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix @@ -9,7 +9,7 @@ vscode-utils.buildVscodeMarketplaceExtension { name = "claude-code"; publisher = "anthropic"; version = "2.1.114"; - hash = "sha256-rcEbeYsyhbhh5wj6Mo3kz2+K3uZe5XMBKpwmSaB9Pgc="; + hash = "sha256-TfVradC9ZjfLBp8QvZ0AptCS9j2ogzSlsRXxksp+N9I="; }; postInstall = '' diff --git a/pkgs/by-name/cl/claude-code-bin/package.nix b/pkgs/by-name/cl/claude-code-bin/package.nix deleted file mode 100644 index bd80643754fb..000000000000 --- a/pkgs/by-name/cl/claude-code-bin/package.nix +++ /dev/null @@ -1,104 +0,0 @@ -{ - lib, - stdenvNoCC, - fetchurl, - installShellFiles, - makeBinaryWrapper, - autoPatchelfHook, - procps, - ripgrep, - bubblewrap, - socat, - versionCheckHook, - writableTmpDirAsHomeHook, -}: -let - stdenv = stdenvNoCC; - baseUrl = "https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases"; - manifest = lib.importJSON ./manifest.json; - platformKey = "${stdenv.hostPlatform.node.platform}-${stdenv.hostPlatform.node.arch}"; - platformManifestEntry = manifest.platforms.${platformKey}; -in -stdenv.mkDerivation (finalAttrs: { - pname = "claude-code-bin"; - inherit (manifest) version; - - src = fetchurl { - url = "${baseUrl}/${finalAttrs.version}/${platformKey}/claude"; - sha256 = platformManifestEntry.checksum; - }; - - dontUnpack = true; - dontBuild = true; - __noChroot = stdenv.hostPlatform.isDarwin; - # otherwise the bun runtime is executed instead of the binary - dontStrip = true; - - nativeBuildInputs = [ - installShellFiles - makeBinaryWrapper - ] - ++ lib.optionals stdenv.hostPlatform.isElf [ autoPatchelfHook ]; - - strictDeps = true; - - installPhase = '' - runHook preInstall - - installBin $src - - wrapProgram $out/bin/claude \ - --set DISABLE_AUTOUPDATER 1 \ - --set-default FORCE_AUTOUPDATE_PLUGINS 1 \ - --set DISABLE_INSTALLATION_CHECKS 1 \ - --set USE_BUILTIN_RIPGREP 0 \ - --prefix PATH : ${ - lib.makeBinPath ( - [ - # claude-code uses [node-tree-kill](https://github.com/pkrumins/node-tree-kill) which requires procps's pgrep(darwin) or ps(linux) - procps - # https://code.claude.com/docs/en/troubleshooting#search-and-discovery-issues - ripgrep - ] - # the following packages are required for the sandbox to work (Linux only) - ++ lib.optionals stdenv.hostPlatform.isLinux [ - bubblewrap - socat - ] - ) - } - - runHook postInstall - ''; - - doInstallCheck = true; - nativeInstallCheckInputs = [ - writableTmpDirAsHomeHook - versionCheckHook - ]; - versionCheckKeepEnvironment = [ "HOME" ]; - versionCheckProgramArg = "--version"; - - passthru.updateScript = ./update.sh; - - meta = { - description = "Agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster"; - homepage = "https://github.com/anthropics/claude-code"; - downloadPage = "https://claude.com/product/claude-code"; - changelog = "https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md"; - license = lib.licenses.unfree; - sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; - platforms = [ - "aarch64-darwin" - "x86_64-darwin" - "aarch64-linux" - "x86_64-linux" - ]; - maintainers = with lib.maintainers; [ - mirkolenz - oskarwires - xiaoxiangmoe - ]; - mainProgram = "claude"; - }; -}) diff --git a/pkgs/by-name/cl/claude-code-bin/update.sh b/pkgs/by-name/cl/claude-code-bin/update.sh deleted file mode 100755 index e60893c580f1..000000000000 --- a/pkgs/by-name/cl/claude-code-bin/update.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env nix -#!nix shell --ignore-environment .#cacert .#curl .#bash --command bash - -set -euo pipefail - -BASE_URL="https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases" - -VERSION=$(curl -fsSL "$BASE_URL/latest") - -curl -fsSL "$BASE_URL/$VERSION/manifest.json" --output pkgs/by-name/cl/claude-code-bin/manifest.json diff --git a/pkgs/by-name/cl/claude-code-bin/manifest.json b/pkgs/by-name/cl/claude-code/manifest.json similarity index 100% rename from pkgs/by-name/cl/claude-code-bin/manifest.json rename to pkgs/by-name/cl/claude-code/manifest.json diff --git a/pkgs/by-name/cl/claude-code/package-lock.json b/pkgs/by-name/cl/claude-code/package-lock.json deleted file mode 100644 index 96083b99beec..000000000000 --- a/pkgs/by-name/cl/claude-code/package-lock.json +++ /dev/null @@ -1,334 +0,0 @@ -{ - "name": "@anthropic-ai/claude-code", - "version": "2.1.112", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@anthropic-ai/claude-code", - "version": "2.1.112", - "license": "SEE LICENSE IN README.md", - "bin": { - "claude": "cli.js" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "@img/sharp-darwin-arm64": "^0.34.2", - "@img/sharp-darwin-x64": "^0.34.2", - "@img/sharp-linux-arm": "^0.34.2", - "@img/sharp-linux-arm64": "^0.34.2", - "@img/sharp-linux-x64": "^0.34.2", - "@img/sharp-linuxmusl-arm64": "^0.34.2", - "@img/sharp-linuxmusl-x64": "^0.34.2", - "@img/sharp-win32-arm64": "^0.34.2", - "@img/sharp-win32-x64": "^0.34.2" - } - }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", - "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", - "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", - "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", - "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", - "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", - "cpu": [ - "arm" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", - "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", - "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", - "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", - "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", - "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", - "cpu": [ - "arm" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", - "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", - "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", - "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", - "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-win32-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", - "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", - "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - } - } -} diff --git a/pkgs/by-name/cl/claude-code/package.nix b/pkgs/by-name/cl/claude-code/package.nix index 89dc381fe00f..ace41055c5f9 100644 --- a/pkgs/by-name/cl/claude-code/package.nix +++ b/pkgs/by-name/cl/claude-code/package.nix @@ -1,57 +1,68 @@ # NOTE: Use the following command to update the package # ```sh -# nix-shell maintainers/scripts/update.nix --argstr commit true --arg predicate '(path: pkg: builtins.elem path [["claude-code"] ["claude-code-bin"] ["vscode-extensions" "anthropic" "claude-code"]])' +# nix-shell maintainers/scripts/update.nix --argstr commit true --arg predicate '(path: pkg: builtins.elem path [["claude-code"] ["vscode-extensions" "anthropic" "claude-code"]])' # ``` { lib, - stdenv, - buildNpmPackage, - fetchzip, + stdenvNoCC, + fetchurl, + installShellFiles, + makeBinaryWrapper, + autoPatchelfHook, + procps, + ripgrep, + bubblewrap, + socat, versionCheckHook, writableTmpDirAsHomeHook, - bubblewrap, - procps, - socat, }: -buildNpmPackage (finalAttrs: { +let + stdenv = stdenvNoCC; + baseUrl = "https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases"; + manifest = lib.importJSON ./manifest.json; + platformKey = "${stdenv.hostPlatform.node.platform}-${stdenv.hostPlatform.node.arch}"; + platformManifestEntry = manifest.platforms.${platformKey}; +in +stdenv.mkDerivation (finalAttrs: { pname = "claude-code"; - version = "2.1.112"; + inherit (manifest) version; - src = fetchzip { - url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${finalAttrs.version}.tgz"; - hash = "sha256-SJJqU7XHbu9IRGPMJNUg6oaMZiQUKqJhI2wm7BnR1gs="; + src = fetchurl { + url = "${baseUrl}/${finalAttrs.version}/${platformKey}/claude"; + sha256 = platformManifestEntry.checksum; }; - npmDepsHash = "sha256-bdkej9Z41GLew9wi1zdNX+Asauki3nT1+SHmBmaUIBU="; + dontUnpack = true; + dontBuild = true; + __noChroot = stdenv.hostPlatform.isDarwin; + # otherwise the bun runtime is executed instead of the binary + dontStrip = true; + + nativeBuildInputs = [ + installShellFiles + makeBinaryWrapper + ] + ++ lib.optionals stdenv.hostPlatform.isElf [ autoPatchelfHook ]; strictDeps = true; - postPatch = '' - cp ${./package-lock.json} package-lock.json + installPhase = '' + runHook preInstall - # https://github.com/anthropics/claude-code/issues/15195 - substituteInPlace cli.js \ - --replace-fail '#!/bin/sh' '#!/usr/bin/env sh' - ''; + installBin $src - dontNpmBuild = true; - - env.AUTHORIZED = "1"; - - # `claude-code` tries to auto-update by default, this disables that functionality. - # https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview#environment-variables - # The DEV=true env var causes claude to crash with `TypeError: window.WebSocket is not a constructor` - postInstall = '' wrapProgram $out/bin/claude \ --set DISABLE_AUTOUPDATER 1 \ --set-default FORCE_AUTOUPDATE_PLUGINS 1 \ --set DISABLE_INSTALLATION_CHECKS 1 \ - --unset DEV \ + --set USE_BUILTIN_RIPGREP 0 \ --prefix PATH : ${ lib.makeBinPath ( [ # claude-code uses [node-tree-kill](https://github.com/pkrumins/node-tree-kill) which requires procps's pgrep(darwin) or ps(linux) procps + # https://code.claude.com/docs/en/troubleshooting#search-and-discovery-issues + ripgrep ] # the following packages are required for the sandbox to work (Linux only) ++ lib.optionals stdenv.hostPlatform.isLinux [ @@ -60,6 +71,8 @@ buildNpmPackage (finalAttrs: { ] ) } + + runHook postInstall ''; doInstallCheck = true; @@ -68,23 +81,32 @@ buildNpmPackage (finalAttrs: { versionCheckHook ]; versionCheckKeepEnvironment = [ "HOME" ]; + versionCheckProgramArg = "--version"; passthru.updateScript = ./update.sh; meta = { description = "Agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster"; homepage = "https://github.com/anthropics/claude-code"; - downloadPage = "https://www.npmjs.com/package/@anthropic-ai/claude-code"; + downloadPage = "https://claude.com/product/claude-code"; + changelog = "https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md"; license = lib.licenses.unfree; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + platforms = [ + "aarch64-darwin" + "x86_64-darwin" + "aarch64-linux" + "x86_64-linux" + ]; maintainers = with lib.maintainers; [ adeci malo markus1189 + mirkolenz omarjatoi oskarwires xiaoxiangmoe ]; mainProgram = "claude"; - sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; }; }) diff --git a/pkgs/by-name/cl/claude-code/update.sh b/pkgs/by-name/cl/claude-code/update.sh index 870f73308600..1e2125a74625 100755 --- a/pkgs/by-name/cl/claude-code/update.sh +++ b/pkgs/by-name/cl/claude-code/update.sh @@ -1,15 +1,12 @@ #!/usr/bin/env nix -#!nix shell --ignore-environment .#cacert .#nodejs .#git .#nix-update .#nix .#gnused .#findutils .#bash --command bash +#!nix shell --ignore-environment .#cacert .#coreutils .#curl .#bash --command bash set -euo pipefail -version=$(npm view @anthropic-ai/claude-code version) +cd "$(dirname "${BASH_SOURCE[0]}")" -# Update version and hashes -AUTHORIZED=1 NIXPKGS_ALLOW_UNFREE=1 nix-update claude-code --version="$version" --generate-lockfile +BASE_URL="https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases" -# nix-update can't update package-lock.json along with npmDepsHash -# TODO: Remove this workaround if nix-update can update package-lock.json along with npmDepsHash. -(nix-build --expr '((import ./.) { system = builtins.currentSystem; }).claude-code.npmDeps.overrideAttrs { outputHash = ""; outputHashAlgo = "sha256"; }' 2>&1 || true) \ -| sed -nE '$s/ *got: *(sha256-[A-Za-z0-9+/=-]+).*/\1/p' \ -| xargs -I{} sed -i 's|npmDepsHash = "sha256-[^"]*";|npmDepsHash = "{}";|' pkgs/by-name/cl/claude-code/package.nix +VERSION="${1:-$(curl -fsSL "$BASE_URL/latest")}" + +curl -fsSL "$BASE_URL/$VERSION/manifest.json" --output manifest.json diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index dd1cbe95997e..39756b71c1f3 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -501,6 +501,7 @@ mapAliases { clashmi = throw "'clashmi' has been removed, as it is unmaintained in nixpkgs"; # Added 2026-01-31 clasp = throw "'clasp' has been renamed to/replaced by 'clingo'"; # Converted to throw 2025-10-27 claude-code-acp = warnAlias "'claude-code-acp' has been renamed to 'claude-agent-acp'" claude-agent-acp; # Added 2026-03-31 + claude-code-bin = warnAlias "'claude-code-bin' has been merged into 'claude-code'" claude-code; # Added 2026-04-18 clearlyU = clearly-u; # Added 2026-02-08 cli-visualizer = throw "'cli-visualizer' has been removed as the upstream repository is gone"; # Added 2025-06-05 clima = throw "'clima' has been removed, as it has been unmaintained upstream since December 2024, use glow instead"; # Added 2026-01-01 From 82c55bd23c5c87e4fc971d50a56a5a1fd5be5443 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 08:36:46 +0000 Subject: [PATCH 064/110] go-grip: 0.9.0 -> 0.9.1 --- pkgs/by-name/go/go-grip/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/go/go-grip/package.nix b/pkgs/by-name/go/go-grip/package.nix index 32d1738e88f7..ee2ad4a08459 100644 --- a/pkgs/by-name/go/go-grip/package.nix +++ b/pkgs/by-name/go/go-grip/package.nix @@ -5,13 +5,13 @@ }: buildGoModule (finalAttrs: { pname = "go-grip"; - version = "0.9.0"; + version = "0.9.1"; src = fetchFromGitHub { owner = "chrishrb"; repo = "go-grip"; tag = "v${finalAttrs.version}"; - hash = "sha256-HwD/pdWEEU+Hoo4HUJeK8y40jp1byNhw/TSpa5SNRak="; + hash = "sha256-uDDzkkCX/tUKRCJYt/3Qsh4qObaCNaW9I801jQphM4A="; }; vendorHash = "sha256-QsLiCsFY6nI85jsEZtAgmObEKpBSZWhzZk+TlukM8JU="; From 34fe1677478e3fdbfed267a899cecb874f1199ac Mon Sep 17 00:00:00 2001 From: Sefa Eyeoglu Date: Thu, 23 Apr 2026 08:37:59 +0200 Subject: [PATCH 065/110] packagekit: 1.3.3 -> 1.3.5 https://github.com/PackageKit/PackageKit/blob/36c89f22add88f6c051d85f2fda9abbec830d5ab/NEWS#L1-L87 Fixes high severity GHSA-f55j-vvr9-69xv See https://www.openwall.com/lists/oss-security/2026/04/22/6 Signed-off-by: Sefa Eyeoglu --- pkgs/tools/package-management/packagekit/default.nix | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/package-management/packagekit/default.nix b/pkgs/tools/package-management/packagekit/default.nix index 8839deada685..45a37d4762ca 100644 --- a/pkgs/tools/package-management/packagekit/default.nix +++ b/pkgs/tools/package-management/packagekit/default.nix @@ -10,6 +10,8 @@ sqlite, gobject-introspection, vala, + jansson, + docbook_xsl_ns, gtk-doc, boost, meson, @@ -30,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "packagekit"; - version = "1.3.3"; + version = "1.3.5"; outputs = [ "out" @@ -42,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "PackageKit"; repo = "PackageKit"; rev = "v${finalAttrs.version}"; - hash = "sha256-BgVfM2EtuvV9qTFSy+WW5Ny1QrHIj3t2Royrn7ZHAA8="; + hash = "sha256-aKucwqwNyZWyHfNu9ntzSwD+eQy8KjCt6RVMjjjZmZg="; }; buildInputs = [ @@ -52,6 +54,7 @@ stdenv.mkDerivation (finalAttrs: { gst_all_1.gstreamer gst_all_1.gst-plugins-base gtk3 + jansson sqlite boost ] @@ -97,6 +100,9 @@ stdenv.mkDerivation (finalAttrs: { --replace-fail "install_dir: join_paths(get_option('sysconfdir'), 'PackageKit')" "install_dir: join_paths('$out', 'etc', 'PackageKit')" substituteInPlace data/meson.build \ --replace-fail "install_dir: join_paths(get_option('localstatedir'), 'lib', 'PackageKit')," "install_dir: join_paths('$out', 'var', 'lib', 'PackageKit')," + substituteInPlace client/meson.build \ + --replace-fail http://docbook.sourceforge.net/release/xsl-ns/current ${docbook_xsl_ns}/share/xml/docbook-xsl-ns + ''; passthru.tests = { From 8bf20ec3a44534624ed838dea7d27972e560080b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Romildo?= Date: Thu, 23 Apr 2026 07:19:15 -0300 Subject: [PATCH 066/110] labwc: 0.9.6 -> 0.9.7 Diff: https://github.com/labwc/labwc/compare/0.9.6...0.9.7 Changelog: https://github.com/labwc/labwc/blob/master/NEWS.md --- pkgs/by-name/la/labwc/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/la/labwc/package.nix b/pkgs/by-name/la/labwc/package.nix index 6727660b7701..a3386c574a6c 100644 --- a/pkgs/by-name/la/labwc/package.nix +++ b/pkgs/by-name/la/labwc/package.nix @@ -29,13 +29,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "labwc"; - version = "0.9.6"; + version = "0.9.7"; src = fetchFromGitHub { owner = "labwc"; repo = "labwc"; tag = finalAttrs.version; - hash = "sha256-3svQnSFdzKTfGLSjiNjswb4B5n0htQTltxhRmUbZD20="; + hash = "sha256-7lq/lcaYSc+mJOTkjtwF0LjOAg4Uck3BwAc+2RIntYo="; }; outputs = [ From 89162396120247922b7bef13bbfeb6c026dd7265 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 10:34:28 +0000 Subject: [PATCH 067/110] ultralytics: 8.4.37 -> 8.4.41 --- pkgs/development/python-modules/ultralytics/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/ultralytics/default.nix b/pkgs/development/python-modules/ultralytics/default.nix index 7588932abd70..c792c463d625 100644 --- a/pkgs/development/python-modules/ultralytics/default.nix +++ b/pkgs/development/python-modules/ultralytics/default.nix @@ -34,14 +34,14 @@ buildPythonPackage (finalAttrs: { pname = "ultralytics"; - version = "8.4.37"; + version = "8.4.41"; pyproject = true; src = fetchFromGitHub { owner = "ultralytics"; repo = "ultralytics"; tag = "v${finalAttrs.version}"; - hash = "sha256-b6omoISVn/mwwq/GIm2M3B70tO6DanucbcTPitRYRS0="; + hash = "sha256-Ad8GuxPhpCRFOz6/0LiDjkqPMq7ooPRLJ6GKDLCfaKc="; }; build-system = [ setuptools ]; From 6b1285b43379190b7b56b7643280ce10ba4262cc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 10:49:38 +0000 Subject: [PATCH 068/110] lsh: 1.5.7 -> 1.5.8 --- pkgs/by-name/ls/lsh/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ls/lsh/package.nix b/pkgs/by-name/ls/lsh/package.nix index bd91034f697a..a24c9bbe8b7c 100644 --- a/pkgs/by-name/ls/lsh/package.nix +++ b/pkgs/by-name/ls/lsh/package.nix @@ -5,14 +5,14 @@ }: buildGoModule (finalAttrs: { pname = "lsh"; - version = "1.5.7"; + version = "1.5.8"; src = fetchFromGitHub { owner = "latitudesh"; repo = "lsh"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-OG1JjQ33BtsALG1CVO+N4N1Q7+6SW99U43lh1+cekDA="; + sha256 = "sha256-BFhVCrl2LS5s38WBtkTjZ+IYCO9VQgIVmel3xwzaBI8="; }; - vendorHash = "sha256-SvbrrunOkJhIB5AlsCY7WrtE+Na/ExEJmVWqfjHNvx4="; + vendorHash = "sha256-vAZYd4fbXsZRqDvSQ1Y+lk3RVY06PqxdJF9DofTa6sQ="; subPackages = [ "." ]; meta = { changelog = "https://github.com/latitudesh/lsh/releases/tag/v${finalAttrs.version}"; From 120a4dd47e902f71990496f218e88ae34a36a9c2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 11:18:19 +0000 Subject: [PATCH 069/110] vscode-extensions.illixion.vscode-vibrancy-continued: 1.1.75 -> 1.1.76 --- pkgs/applications/editors/vscode/extensions/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index 1f9433c8a46f..4eda31aa11bc 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -2324,8 +2324,8 @@ let mktplcRef = { name = "vscode-vibrancy-continued"; publisher = "illixion"; - version = "1.1.75"; - hash = "sha256-49svwafMoAErwX3K/37IJ8fKx+9FgSpOqj6QPc7jpKs="; + version = "1.1.76"; + hash = "sha256-QMKEFoqOzlSduwjefou1ozt3WbSbeXfxEGj6KMqR3eY="; }; meta = { downloadPage = "https://marketplace.visualstudio.com/items?itemName=illixion.vscode-vibrancy-continued"; From d0825c445bc12f4522ac04a1022f0eafac7a5555 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 12:32:29 +0000 Subject: [PATCH 070/110] oci-cli: 3.79.0 -> 3.80.0 --- pkgs/by-name/oc/oci-cli/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/oc/oci-cli/package.nix b/pkgs/by-name/oc/oci-cli/package.nix index 0e8ae3f64604..a393bb78e132 100644 --- a/pkgs/by-name/oc/oci-cli/package.nix +++ b/pkgs/by-name/oc/oci-cli/package.nix @@ -26,14 +26,14 @@ in py.pkgs.buildPythonApplication (finalAttrs: { pname = "oci-cli"; - version = "3.79.0"; + version = "3.80.0"; pyproject = true; src = fetchFromGitHub { owner = "oracle"; repo = "oci-cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-VEGfIIUZj8Ee6XZMzKxltPczFBoC6bg1U+06vMhkGpg="; + hash = "sha256-ss7nKT4dIyJxJNBK8HgAPXG0lS5MMZw7sw8hPjLqYUQ="; }; nativeBuildInputs = [ installShellFiles ]; From 0dd9404ae734e0b8c7da8bf3a14d7a822cfea1cd Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 12:40:55 +0000 Subject: [PATCH 071/110] papeer: 0.8.7 -> 0.8.8 --- pkgs/by-name/pa/papeer/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/pa/papeer/package.nix b/pkgs/by-name/pa/papeer/package.nix index 03154dfd36dc..33a9b4c51bc4 100644 --- a/pkgs/by-name/pa/papeer/package.nix +++ b/pkgs/by-name/pa/papeer/package.nix @@ -6,16 +6,16 @@ buildGoModule (finalAttrs: { pname = "papeer"; - version = "0.8.7"; + version = "0.8.8"; src = fetchFromGitHub { owner = "lapwat"; repo = "papeer"; rev = "v${finalAttrs.version}"; - hash = "sha256-Qe+3rHEV+Env5sr9acdDqEzAi3PeN8/7fLoDz/B6GWo="; + hash = "sha256-ZfJ8ABdp5G4j/FQCJwDz0O+CCbV2rn8e7Rhwj699h+I="; }; - vendorHash = "sha256-yGoRvPwlXA6FN67nQH/b0QpGQ2xXTCmXWNLInlcVk7k="; + vendorHash = "sha256-PlpulU0nlZA3Vmiqn/rqAS73yJniTECje7uc7kjE6aw="; doCheck = false; # uses network From efdddd78459932a9ac43bc052293301ba7d7d980 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 12:43:20 +0000 Subject: [PATCH 072/110] do-agent: 3.18.10 -> 3.18.12 --- pkgs/by-name/do/do-agent/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/do/do-agent/package.nix b/pkgs/by-name/do/do-agent/package.nix index 18e8779676c0..b8e86264b4ed 100644 --- a/pkgs/by-name/do/do-agent/package.nix +++ b/pkgs/by-name/do/do-agent/package.nix @@ -6,13 +6,13 @@ buildGoModule (finalAttrs: { pname = "do-agent"; - version = "3.18.10"; + version = "3.18.12"; src = fetchFromGitHub { owner = "digitalocean"; repo = "do-agent"; rev = finalAttrs.version; - sha256 = "sha256-2EL+dmI97d4cjb0ZVnXbmHp0m2dGcUu3xFtOXMruUE0="; + sha256 = "sha256-nSRvNUWauZb8KifY9Xe7yDSvL0EREYTVzqVA5+oLhjo="; }; ldflags = [ From 7dc6307540d1d8b3c85e647d68e4468780edc7e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw=20Pitucha?= Date: Thu, 23 Apr 2026 22:47:19 +1000 Subject: [PATCH 073/110] actool: 1.6.0 -> 2.0.0 --- pkgs/by-name/ac/actool/package.nix | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/pkgs/by-name/ac/actool/package.nix b/pkgs/by-name/ac/actool/package.nix index f611e06428b6..d9812655e1cd 100644 --- a/pkgs/by-name/ac/actool/package.nix +++ b/pkgs/by-name/ac/actool/package.nix @@ -1,30 +1,21 @@ { lib, fetchFromGitHub, - python3Packages, + rustPlatform, icu, }: -python3Packages.buildPythonApplication (finalAttrs: { +rustPlatform.buildRustPackage (finalAttrs: { pname = "actool"; - version = "1.6.0"; - pyproject = true; + version = "2.0.0"; src = fetchFromGitHub { owner = "viraptor"; repo = "actool"; tag = finalAttrs.version; - hash = "sha256-OJJwEZEz+nNq3W1SDXt76Vx9qvEFUUL4dyem/oc2RA4="; + hash = "sha256-TRxA9c6q66Gso/ziqvly8IJR2AEHMc197gC9cUSuwAw="; }; - build-system = with python3Packages; [ - setuptools - ]; - - dependencies = with python3Packages; [ - pillow - liblzfse - icu - ]; + cargoHash = "sha256-BhR5gwIrFE0OuSAxVTY5kMfmMlPfIABfOgmX/rOvpug="; meta = { description = "Apple's actool reimplementation"; From 366433215c68f84f7a45101cc2850e457cebeb50 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 23 Apr 2026 15:20:16 +0200 Subject: [PATCH 074/110] python3Packages.iamdata: 0.1.202604221 -> 0.1.202604231 Diff: https://github.com/cloud-copilot/iam-data-python/compare/v0.1.202604221...v0.1.202604231 Changelog: https://github.com/cloud-copilot/iam-data-python/releases/tag/v0.1.202604231 --- pkgs/development/python-modules/iamdata/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/iamdata/default.nix b/pkgs/development/python-modules/iamdata/default.nix index 7fa783abbdfe..936167bbbca2 100644 --- a/pkgs/development/python-modules/iamdata/default.nix +++ b/pkgs/development/python-modules/iamdata/default.nix @@ -8,14 +8,14 @@ buildPythonPackage (finalAttrs: { pname = "iamdata"; - version = "0.1.202604221"; + version = "0.1.202604231"; pyproject = true; src = fetchFromGitHub { owner = "cloud-copilot"; repo = "iam-data-python"; tag = "v${finalAttrs.version}"; - hash = "sha256-p6Ai2TBCcO9Jx9MmwqUJLDWT3jMrdvM/NNum8O3gDos="; + hash = "sha256-tnPOYhbUmsdT5z7spF6AHhVAW6yNvFSWGBWbo5l/510="; }; __darwinAllowLocalNetworking = true; From bbf1b567b2cf2d1ac037c557ca2e64dd5e3cebe9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 13:32:12 +0000 Subject: [PATCH 075/110] grafanaPlugins.victoriametrics-metrics-datasource: 0.23.4 -> 0.24.0 --- .../plugins/victoriametrics-metrics-datasource/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/monitoring/grafana/plugins/victoriametrics-metrics-datasource/default.nix b/pkgs/servers/monitoring/grafana/plugins/victoriametrics-metrics-datasource/default.nix index 6a026ceadd90..8bcc2e23b9c5 100644 --- a/pkgs/servers/monitoring/grafana/plugins/victoriametrics-metrics-datasource/default.nix +++ b/pkgs/servers/monitoring/grafana/plugins/victoriametrics-metrics-datasource/default.nix @@ -2,8 +2,8 @@ grafanaPlugin { pname = "victoriametrics-metrics-datasource"; - version = "0.23.4"; - zipHash = "sha256-a0EJB+A+Rlfrpd2m1HZ2nw2sh4QuWe1O2oueVi4xPZE="; + version = "0.24.0"; + zipHash = "sha256-NR5mUC5ctByObxRb+wJw7lRxuXbC4jgNjaIUXY0Y/94="; meta = { description = "VictoriaMetrics metrics datasource for Grafana"; license = lib.licenses.agpl3Only; From b7b3d854312ec2232eef48d3ade980b95aad1041 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 13:33:44 +0000 Subject: [PATCH 076/110] supercronic: 0.2.44 -> 0.2.45 --- pkgs/by-name/su/supercronic/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/su/supercronic/package.nix b/pkgs/by-name/su/supercronic/package.nix index 221077f0aea8..1776735f3e91 100644 --- a/pkgs/by-name/su/supercronic/package.nix +++ b/pkgs/by-name/su/supercronic/package.nix @@ -9,16 +9,16 @@ buildGoModule (finalAttrs: { pname = "supercronic"; - version = "0.2.44"; + version = "0.2.45"; src = fetchFromGitHub { owner = "aptible"; repo = "supercronic"; rev = "v${finalAttrs.version}"; - hash = "sha256-xtTQ5T+/kVnh4sjIN/N9HN9MeEd2ekAzSkvYdei0dKA="; + hash = "sha256-QOWNC9RZb5FmCChcs8DvgbrW8F66IG9nteR997n0B7k="; }; - vendorHash = "sha256-azjkMzmAhAKyHx/43cP0kpgo0mKM8Yh+LWHiR7audQw="; + vendorHash = "sha256-x/OSHI5HIG8Bo0FV+TzJ1o7d6+1gXida23dSxi5QiQQ="; excludedPackages = [ "cronexpr/cronexpr" ]; From aa8a52406bccb92b8bd6ea6becf0d8b2b32c4b17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw=20Pitucha?= Date: Thu, 23 Apr 2026 23:41:00 +1000 Subject: [PATCH 077/110] ibtool: 1.1.4 -> 1.2.0 --- pkgs/by-name/ib/ibtool/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ib/ibtool/package.nix b/pkgs/by-name/ib/ibtool/package.nix index 9441b257e37c..7729742bf4c5 100644 --- a/pkgs/by-name/ib/ibtool/package.nix +++ b/pkgs/by-name/ib/ibtool/package.nix @@ -6,14 +6,14 @@ }: python3Packages.buildPythonApplication (finalAttrs: { pname = "ibtool"; - version = "1.1.4"; + version = "1.2.0"; pyproject = true; src = fetchFromGitHub { owner = "viraptor"; repo = "ibtool"; tag = finalAttrs.version; - hash = "sha256-D0AzcLBmcqdEZy1Td96CnJGgRID7FnbNeqKJ7xQUvlE="; + hash = "sha256-vFjB+eDw8RP28UGzmc2Sbes8/qNEj1W5fzB6Lnjx6ZI="; }; build-system = with python3Packages; [ From 186edde046d674fa330202ab3cee0220e5669b7a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 14:36:08 +0000 Subject: [PATCH 078/110] inframap: 0.8.0 -> 0.8.1 --- pkgs/by-name/in/inframap/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/in/inframap/package.nix b/pkgs/by-name/in/inframap/package.nix index b45fa964374a..eba8500a5fed 100644 --- a/pkgs/by-name/in/inframap/package.nix +++ b/pkgs/by-name/in/inframap/package.nix @@ -6,13 +6,13 @@ buildGoModule (finalAttrs: { pname = "inframap"; - version = "0.8.0"; + version = "0.8.1"; src = fetchFromGitHub { owner = "cycloidio"; repo = "inframap"; tag = "v${finalAttrs.version}"; - hash = "sha256-IdXP/gw81rQsaHz+uwEB9ThtHlbPYLXcYTYdwJynpVU="; + hash = "sha256-SH72GmEzHNF26TNCctBglSvtYXVFf6fIBmg8L74OiZg="; }; ldflags = [ From 1963376e688115a5564d09a1ac2f605274f4b0a5 Mon Sep 17 00:00:00 2001 From: Defelo Date: Thu, 23 Apr 2026 14:38:37 +0000 Subject: [PATCH 079/110] radicle-httpd: 0.24.0 -> 0.25.0 Changelog: https://radicle.network/nodes/seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5/tree/radicle-httpd/CHANGELOG.md --- pkgs/by-name/ra/radicle-explorer/package.nix | 4 ++-- pkgs/by-name/ra/radicle-httpd/package.nix | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/ra/radicle-explorer/package.nix b/pkgs/by-name/ra/radicle-explorer/package.nix index f11e26d9af52..8eb318f90ad6 100644 --- a/pkgs/by-name/ra/radicle-explorer/package.nix +++ b/pkgs/by-name/ra/radicle-explorer/package.nix @@ -62,7 +62,7 @@ lib.fix ( self: lib.makeOverridable ( { - npmDepsHash ? "sha256-nVfFeJXSPO1GVkBkWflARZl2Geyt5ARTn0HVglnPlc0=", + npmDepsHash ? "sha256-8vmAs788PjdUTaQ5E8YLX0KiIPymJbH51oNaGZACe6I=", patches ? [ ], }@args: buildNpmPackage { @@ -75,7 +75,7 @@ lib.fix ( # radicle-httpd using a more limited sparse checkout we need to carry a # separate hash. src = radicle-httpd.src.override { - hash = "sha256-8lMUPt2eVlspMlRxUjOvjtCsd/EXg0IDSVjXxMVzbe4="; + hash = "sha256-cnQsPWkRChC8yPrICRoUpGW2GGLB2TK9+3v8ZRGe3x0="; sparseCheckout = [ ]; }; diff --git a/pkgs/by-name/ra/radicle-httpd/package.nix b/pkgs/by-name/ra/radicle-httpd/package.nix index 852e76731b55..f248387f5b9c 100644 --- a/pkgs/by-name/ra/radicle-httpd/package.nix +++ b/pkgs/by-name/ra/radicle-httpd/package.nix @@ -15,7 +15,7 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "radicle-httpd"; - version = "0.24.0"; + version = "0.25.0"; env.RADICLE_VERSION = finalAttrs.version; @@ -25,12 +25,12 @@ rustPlatform.buildRustPackage (finalAttrs: { repo = "z4V1sjrXqjvFdnCUbxPFqd5p4DtH5"; tag = "releases/${finalAttrs.version}"; sparseCheckout = [ "radicle-httpd" ]; - hash = "sha256-749hFe7GJz/YUmocW5MO7uKWLTo3W4wJYSXdIURcRtg="; + hash = "sha256-gejNiCQ511OGGItmqXoyB+TmsUw+ozoEmOWooBXBkQ8="; }; sourceRoot = "${finalAttrs.src.name}/radicle-httpd"; - cargoHash = "sha256-6uHukSsNnnk11tudFnNvNd+ZXmwGxMSYArsiaCaabWk="; + cargoHash = "sha256-Oawin/2R5dZ46pf3SarwNgILF9dXSkw02Z4gYQ4HtzE="; nativeBuildInputs = [ asciidoctor From 1690a4fc8f3b005d482e60e2dd3c92ea9dbf5555 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Thu, 23 Apr 2026 22:43:18 +0800 Subject: [PATCH 080/110] emacs: add myself (linj) to meta.maintainers --- pkgs/applications/editors/emacs/sources.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/applications/editors/emacs/sources.nix b/pkgs/applications/editors/emacs/sources.nix index 3ebc5c550e25..213e9c006e8c 100644 --- a/pkgs/applications/editors/emacs/sources.nix +++ b/pkgs/applications/editors/emacs/sources.nix @@ -85,6 +85,7 @@ let AndersonTorres adisbladis jwiegley + linj panchoh ]; "macport" = with lib.maintainers; [ From 9d37d398af72c4b2ab0448703c6b1b4bcdd7fbb5 Mon Sep 17 00:00:00 2001 From: Lynilia <89228568+Lynilia@users.noreply.github.com> Date: Thu, 23 Apr 2026 16:51:02 +0200 Subject: [PATCH 081/110] python3Packages.pylitterbot: fix src tag --- pkgs/development/python-modules/pylitterbot/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/pylitterbot/default.nix b/pkgs/development/python-modules/pylitterbot/default.nix index a31cc9615899..b86433052bec 100644 --- a/pkgs/development/python-modules/pylitterbot/default.nix +++ b/pkgs/development/python-modules/pylitterbot/default.nix @@ -24,7 +24,7 @@ buildPythonPackage (finalAttrs: { src = fetchFromGitHub { owner = "natekspencer"; repo = "pylitterbot"; - tag = "v${finalAttrs.version}"; + tag = finalAttrs.version; hash = "sha256-bFJ6v27yfzMPqZijWCOlgdVS19IKIMqZcq2FjAyMnqo="; }; From d7223af207bd69eda4016f9d657e694b899d3e81 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 15:04:35 +0000 Subject: [PATCH 082/110] notesnook: 3.3.14 -> 3.3.15 --- pkgs/by-name/no/notesnook/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/no/notesnook/package.nix b/pkgs/by-name/no/notesnook/package.nix index 2c1973f7c623..df3f9b4b74c4 100644 --- a/pkgs/by-name/no/notesnook/package.nix +++ b/pkgs/by-name/no/notesnook/package.nix @@ -9,7 +9,7 @@ let pname = "notesnook"; - version = "3.3.14"; + version = "3.3.15"; inherit (stdenv.hostPlatform) system; throwSystem = throw "Unsupported system: ${system}"; @@ -27,10 +27,10 @@ let url = "https://github.com/streetwriters/notesnook/releases/download/v${version}/notesnook_${suffix}"; hash = { - x86_64-linux = "sha256-fI9EI+XltHztwqVLLzHW49NqXNrxw4xZ1nxjEoz3D2o="; - aarch64-linux = "sha256-efg+g2ROR7rlWrcmeqL4y+YgbrOP/9Ylr5RqiLtMCNY="; - x86_64-darwin = "sha256-+cbrTM1w2nOROJvJOr4NBYyXw583aa3xOwYZVf10BCs="; - aarch64-darwin = "sha256-70EB93WXp8ds3izCvaAetmZgIq1PMNCTXXAgBcH1DSM="; + x86_64-linux = "sha256-CGFLiDxhr9VC9U1fppjJX/x0ZWgDWKPymLY4LJAnGxY="; + aarch64-linux = "sha256-dqpYjvxjSb/rSJ4wLJsPGPzdPPOxzpa8LUsdqlPzT/M="; + x86_64-darwin = "sha256-hLKA3z1HDhPzMCBVxDl05DsDexG73rcKHhR5ERQCgJo="; + aarch64-darwin = "sha256-j1SQ/hn/IZ7aZQiIx6UgkOSxs6vqPGS0y4AXkXWcFGM="; } .${system} or throwSystem; }; From e6a3538124c6ff1d7d8850216426dc39da759f9b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 15:14:36 +0000 Subject: [PATCH 083/110] prek: 0.3.9 -> 0.3.10 --- pkgs/by-name/pr/prek/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/pr/prek/package.nix b/pkgs/by-name/pr/prek/package.nix index 40e728c575dc..a9343a1cb203 100644 --- a/pkgs/by-name/pr/prek/package.nix +++ b/pkgs/by-name/pr/prek/package.nix @@ -13,16 +13,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "prek"; - version = "0.3.9"; + version = "0.3.10"; src = fetchFromGitHub { owner = "j178"; repo = "prek"; tag = "v${finalAttrs.version}"; - hash = "sha256-gfWaJxcT44+yEkZtDSQwKP1oILMUsF4apYeety+XESM="; + hash = "sha256-boyeL8JIEahDh7veCb/h0YZj7IwVrraXjQZul459sMM="; }; - cargoHash = "sha256-dKSsH4IUWLdlthvAmS+MmuAVicCCKefy1D4YleRO0fI="; + cargoHash = "sha256-hmaZP6tZpBH1MsgO/WIt75/98E4cHfdpLTfhEgP8Rvw="; nativeBuildInputs = [ installShellFiles From 9108f3d8eae462d5f3c29793d38a11db2d1e0d48 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 15:29:06 +0000 Subject: [PATCH 084/110] crowdin-cli: 4.14.1 -> 4.14.2 --- pkgs/by-name/cr/crowdin-cli/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/cr/crowdin-cli/package.nix b/pkgs/by-name/cr/crowdin-cli/package.nix index 7012377ac761..9338c89d5d95 100644 --- a/pkgs/by-name/cr/crowdin-cli/package.nix +++ b/pkgs/by-name/cr/crowdin-cli/package.nix @@ -14,11 +14,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "crowdin-cli"; - version = "4.14.1"; + version = "4.14.2"; src = fetchurl { url = "https://github.com/crowdin/crowdin-cli/releases/download/${finalAttrs.version}/crowdin-cli.zip"; - hash = "sha256-zlouZc7DtMYTHiDOLSCtawEKTMOKgqJe01gieRxeiFI="; + hash = "sha256-XfOBmMkbi3XrjRBfDrJ86y1+BuJIcvhJ1tULQDsGCqE="; }; nativeBuildInputs = [ From 919d3ba9e853a3e86a7d3728e262ab3ccc48fc92 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 16:03:48 +0000 Subject: [PATCH 085/110] parca-agent: 0.47.0 -> 0.47.1 --- pkgs/by-name/pa/parca-agent/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/pa/parca-agent/package.nix b/pkgs/by-name/pa/parca-agent/package.nix index bf4ec227d0eb..8ea5cbcba8a8 100644 --- a/pkgs/by-name/pa/parca-agent/package.nix +++ b/pkgs/by-name/pa/parca-agent/package.nix @@ -8,18 +8,18 @@ buildGoModule (finalAttrs: { pname = "parca-agent"; - version = "0.47.0"; + version = "0.47.1"; src = fetchFromGitHub { owner = "parca-dev"; repo = "parca-agent"; tag = "v${finalAttrs.version}"; - hash = "sha256-jnlynhwvjQRatx+0MO9EDA0q1TqmuDeeTdD7L6HzVi0="; + hash = "sha256-wIM5LZ6GwvGc0WobMtMe7nc8VyAH4XA056JBovwhSqo="; fetchSubmodules = true; }; proxyVendor = true; - vendorHash = "sha256-W6m8L3dsqaHycSrvqY6mmpCHW4cSM+uGKei2JtjRc/Y="; + vendorHash = "sha256-j35dXQ7SG+nT6UGFZE8NafmqlwKP8D5QOLG+PT4qxyo="; buildInputs = [ stdenv.cc.libc.static From 85b5eb97a69750e5e0c8edd38a78d2a0eabe3cfe Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 16:24:16 +0000 Subject: [PATCH 086/110] exploitdb: 2026-04-11 -> 2026-04-23 --- pkgs/by-name/ex/exploitdb/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ex/exploitdb/package.nix b/pkgs/by-name/ex/exploitdb/package.nix index 26f51f32f3a9..1730284fd303 100644 --- a/pkgs/by-name/ex/exploitdb/package.nix +++ b/pkgs/by-name/ex/exploitdb/package.nix @@ -6,13 +6,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "exploitdb"; - version = "2026-04-11"; + version = "2026-04-23"; src = fetchFromGitLab { owner = "exploit-database"; repo = "exploitdb"; tag = finalAttrs.version; - hash = "sha256-Gxi+gb9PbjF2QYDYClSBqru8pebf8ay0AvJnCEYbaSc="; + hash = "sha256-Acf4GF7r58r0cCUmm5U+X3vmn496/NcSCsFtFqjxUXU="; }; nativeBuildInputs = [ makeWrapper ]; From 9eee0c43c83130594314e3e4017786030ab4bc81 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 16:30:42 +0000 Subject: [PATCH 087/110] vacuum-go: 0.25.8 -> 0.26.1 --- pkgs/by-name/va/vacuum-go/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/va/vacuum-go/package.nix b/pkgs/by-name/va/vacuum-go/package.nix index 1c4ea9a3dc8d..86d0298d9ea1 100644 --- a/pkgs/by-name/va/vacuum-go/package.nix +++ b/pkgs/by-name/va/vacuum-go/package.nix @@ -7,16 +7,16 @@ buildGoModule (finalAttrs: { pname = "vacuum-go"; - version = "0.25.8"; + version = "0.26.1"; src = fetchFromGitHub { owner = "daveshanley"; repo = "vacuum"; tag = "v${finalAttrs.version}"; - hash = "sha256-q3IPA212G7Iu2x9l73Pqa7Y9QzvsMR4IWjpUsvjroP0="; + hash = "sha256-UUHOlZuMnL4fAcocmi6rdOQvxl3oNrZMgnad/0z2+oA="; }; - vendorHash = "sha256-R5CuUIn/nHbGSvNQxPrAmVK3z4Nr7fMbss0MCidmYjQ="; + vendorHash = "sha256-zPlhjHfwFrhpYAKcgVi1II0hR3fOFItegt9SZoei1SQ="; env.CGO_ENABLED = 0; ldflags = [ From 11e9e632a662e638d458e462ba845940935f1ed1 Mon Sep 17 00:00:00 2001 From: Kieran Klukas Date: Thu, 23 Apr 2026 12:01:10 -0400 Subject: [PATCH 088/110] rapidraw: 1.5.3 -> 1.5.4 --- pkgs/by-name/ra/rapidraw/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ra/rapidraw/package.nix b/pkgs/by-name/ra/rapidraw/package.nix index 50018378b463..28369cea433c 100644 --- a/pkgs/by-name/ra/rapidraw/package.nix +++ b/pkgs/by-name/ra/rapidraw/package.nix @@ -42,20 +42,20 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "rapidraw"; - version = "1.5.3"; + version = "1.5.4"; src = fetchFromGitHub { owner = "CyberTimon"; repo = "RapidRAW"; tag = "v${finalAttrs.version}"; - hash = "sha256-NYns/hpa8E4oko3qxyrJaTpgH5b+dwr0dTFw+K3IBDo="; + hash = "sha256-T7qBa0CEVfvc6qWxdJe0pbJAN3VNrpP9EKaX2R+PtUw="; }; - cargoHash = "sha256-wuTbUPkPJTg6WZYrffrfPm+Asr0PuL5UAsZL+qWM4Oo="; + cargoHash = "sha256-kyJIHfrb3Tlm3IYQxU6N9mB9JxZWmMcBsPXHQmTwxAg="; npmDeps = fetchNpmDeps { inherit (finalAttrs) src; - hash = "sha256-CBCj1R6ClnRh5Y4liKNiewRPb2lIb17TSB9eumVcKkY="; + hash = "sha256-1A6b63FjNvkAbu62dRXfMjTL1y2wr2gEsZkLqYvTk0w="; }; nativeBuildInputs = [ From 372ff84d1b7c2f6d2c1f89bbfc84a14f68317625 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20Schwarz=C3=A4ugl?= Date: Thu, 23 Apr 2026 19:02:07 +0200 Subject: [PATCH 089/110] _1password-gui-beta: 8.12.0-11.BETA -> 8.12.12-43.BETA --- pkgs/by-name/_1/_1password-gui/sources.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/_1/_1password-gui/sources.json b/pkgs/by-name/_1/_1password-gui/sources.json index 2b5b9184a60e..e70bce1ed0e2 100644 --- a/pkgs/by-name/_1/_1password-gui/sources.json +++ b/pkgs/by-name/_1/_1password-gui/sources.json @@ -29,15 +29,15 @@ }, "beta": { "linux": { - "version": "8.12.0-11.BETA", + "version": "8.12.12-43.BETA", "sources": { "x86_64": { - "url": "https://downloads.1password.com/linux/tar/beta/x86_64/1password-8.12.0-11.BETA.x64.tar.gz", - "hash": "sha256-0PDkZAqlY/afocvc/rcly/nwZeSSbXdRyXH57aVPUoQ=" + "url": "https://downloads.1password.com/linux/tar/beta/x86_64/1password-8.12.12-43.BETA.x64.tar.gz", + "hash": "sha256-dMnYMw+egxZZXR03EBhOyL3mdRjp0nyuxL78eVKklHs=" }, "aarch64": { - "url": "https://downloads.1password.com/linux/tar/beta/aarch64/1password-8.12.0-11.BETA.arm64.tar.gz", - "hash": "sha256-0YDJKexCdOeU0/KPsJzI5rBUlbDEFW5N33LFXtDo3tg=" + "url": "https://downloads.1password.com/linux/tar/beta/aarch64/1password-8.12.12-43.BETA.arm64.tar.gz", + "hash": "sha256-nge4jT8M8X2LR18vHfZTRnIEcfxVgnbcHvvAJcveZxI=" } } }, From a3367e7766815fb794f087a8a38b2893ac69aada Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 18:13:46 +0000 Subject: [PATCH 090/110] libretro.fuse: 0-unstable-2026-03-31 -> 0-unstable-2026-04-20 --- pkgs/applications/emulators/libretro/cores/fuse.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/emulators/libretro/cores/fuse.nix b/pkgs/applications/emulators/libretro/cores/fuse.nix index e98166a4d03e..08302882813c 100644 --- a/pkgs/applications/emulators/libretro/cores/fuse.nix +++ b/pkgs/applications/emulators/libretro/cores/fuse.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "fuse"; - version = "0-unstable-2026-03-31"; + version = "0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "libretro"; repo = "fuse-libretro"; - rev = "b5f44e3a20a0f189e8fb999cd5cde223a0f588a6"; - hash = "sha256-ZYk9qe+9yJmi+zsKT3IDvyiPCxivwghT68ku6WfaVa8="; + rev = "bce196fb774835fe65b3e5b821887a4ccf657167"; + hash = "sha256-N66LaveZ4P66LRYpP1KwkLKT1dvG/s7JPfDyRraVkc8="; }; meta = { From bceeed48dfda3fd61006c5eb01e5a121f90500cd Mon Sep 17 00:00:00 2001 From: Tom Hunze Date: Thu, 23 Apr 2026 20:45:09 +0200 Subject: [PATCH 091/110] python3Packages.idna-ssl: drop idna-ssl was archived upstream in October 2020 [1] and has no reverse dependencies in nixpkgs anymore. [1] https://github.com/aio-libs/idna-ssl --- .../python-modules/idna-ssl/default.nix | 29 ------------------- pkgs/top-level/python-aliases.nix | 1 + pkgs/top-level/python-packages.nix | 2 -- 3 files changed, 1 insertion(+), 31 deletions(-) delete mode 100644 pkgs/development/python-modules/idna-ssl/default.nix diff --git a/pkgs/development/python-modules/idna-ssl/default.nix b/pkgs/development/python-modules/idna-ssl/default.nix deleted file mode 100644 index 84c89aa5258f..000000000000 --- a/pkgs/development/python-modules/idna-ssl/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - idna, -}: - -buildPythonPackage rec { - pname = "idna-ssl"; - version = "1.1.0"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - sha256 = "a933e3bb13da54383f9e8f35dc4f9cb9eb9b3b78c6b36f311254d6d0d92c6c7c"; - }; - - propagatedBuildInputs = [ idna ]; - - # Infinite recursion: tests require aiohttp, aiohttp requires idna-ssl - doCheck = false; - - meta = { - description = "Patch ssl.match_hostname for Unicode(idna) domains support"; - homepage = "https://github.com/aio-libs/idna-ssl"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ dotlambda ]; - }; -} diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index fb3f176925e1..e38f275c7331 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -258,6 +258,7 @@ mapAliases { homepluscontrol = throw "'homepluscontrol' has been removed as it was unmaintained upstream"; # Added 2026-03-22 howdoi = throw "'howdoi' has been removed as it was unmaintained upstream"; # Added 2026-04-19 HTSeq = throw "'HTSeq' has been renamed to/replaced by 'htseq'"; # Converted to throw 2025-10-29 + idna-ssl = throw "'idna-ssl' has been removed as it was archived upstream"; # Added 2026-04-23 IMAPClient = throw "'IMAPClient' has been renamed to/replaced by 'imapclient'"; # Converted to throw 2025-10-29 inlinestyler = throw "inlinestyler has been removed because it is no longer maintained"; # added 2025-08-09 ionhash = throw "ionhash has been removed due to being unmaintained upstream"; # added 2025-07-30 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 95d6df7f8401..c14b91280b61 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7404,8 +7404,6 @@ self: super: with self; { idna = callPackage ../development/python-modules/idna { }; - idna-ssl = callPackage ../development/python-modules/idna-ssl { }; - idrive-e2-client = callPackage ../development/python-modules/idrive-e2-client { }; idstools = callPackage ../development/python-modules/idstools { }; From fc06d6a1fd12c7e69b9fa12d8395a57c6102153e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 18:53:03 +0000 Subject: [PATCH 092/110] vscode-extensions.github.codespaces: 1.18.12 -> 1.18.13 --- pkgs/applications/editors/vscode/extensions/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index 1f9433c8a46f..5244b1e0cd64 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -1933,8 +1933,8 @@ let mktplcRef = { publisher = "github"; name = "codespaces"; - version = "1.18.12"; - hash = "sha256-A/ORfMybSCm90SFg8hRx/N0Vq9XMtTjMPVzCIoG938g="; + version = "1.18.13"; + hash = "sha256-tvs35GA3bZ4jExiAe0NeHx/vQV/+2zio2Q0813/MAMU="; }; meta = { From e3f710b84313c209f47eb909a94219bf4223bd75 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Thu, 23 Apr 2026 13:55:28 -0500 Subject: [PATCH 093/110] vimPlugins.async-nvim: init at 0-unstable-2026-04-18 https://github.com/lewis6991/async.nvim --- pkgs/applications/editors/vim/plugins/generated.nix | 13 +++++++++++++ pkgs/applications/editors/vim/plugins/overrides.nix | 6 ++++++ .../editors/vim/plugins/vim-plugin-names | 1 + 3 files changed, 20 insertions(+) diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index 43c68227e7c7..d116ea2f2758 100644 --- a/pkgs/applications/editors/vim/plugins/generated.nix +++ b/pkgs/applications/editors/vim/plugins/generated.nix @@ -1036,6 +1036,19 @@ final: prev: { meta.hydraPlatforms = [ ]; }; + async-nvim = buildVimPlugin { + pname = "async.nvim"; + version = "0-unstable-2026-04-18"; + src = fetchFromGitHub { + owner = "lewis6991"; + repo = "async.nvim"; + rev = "7a1d7d49933fbe902b84b55f352a3b10fd587331"; + hash = "sha256-uyUvZVN7L7SqPAE1woc1T8dlhpH24FBj3/WD4VMwWF8="; + }; + meta.homepage = "https://github.com/lewis6991/async.nvim/"; + meta.hydraPlatforms = [ ]; + }; + async-vim = buildVimPlugin { pname = "async.vim"; version = "0-unstable-2022-04-04"; diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix index b50e26315a48..c761dbd99377 100644 --- a/pkgs/applications/editors/vim/plugins/overrides.nix +++ b/pkgs/applications/editors/vim/plugins/overrides.nix @@ -227,6 +227,12 @@ assertNoAdditions { checkInputs = [ self.astrocore ]; }; + async-nvim = super.async-nvim.overrideAttrs { + nvimSkipModules = [ + "docgen" + ]; + }; + asyncrun-vim = super.asyncrun-vim.overrideAttrs { # Optional toggleterm integration checkInputs = [ self.toggleterm-nvim ]; diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names index 92a88315a710..c3843fe549fb 100644 --- a/pkgs/applications/editors/vim/plugins/vim-plugin-names +++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names @@ -78,6 +78,7 @@ https://github.com/AstroNvim/astrocore/,, https://github.com/AstroNvim/astrolsp/,, https://github.com/AstroNvim/astrotheme/,, https://github.com/AstroNvim/astroui/,, +https://github.com/lewis6991/async.nvim/,, https://github.com/prabirshrestha/async.vim/,, https://github.com/prabirshrestha/asyncomplete-buffer.vim/,, https://github.com/prabirshrestha/asyncomplete-file.vim/,, From 58211c22891a5b437f39974c301f811391a14db6 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Thu, 23 Apr 2026 10:03:27 -0500 Subject: [PATCH 094/110] vimPlugins: update on 2026-04-23 --- .../editors/vim/plugins/generated.nix | 286 +++++++++--------- .../editors/vim/plugins/overrides.nix | 2 +- 2 files changed, 144 insertions(+), 144 deletions(-) diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index d116ea2f2758..3212b46ebfa2 100644 --- a/pkgs/applications/editors/vim/plugins/generated.nix +++ b/pkgs/applications/editors/vim/plugins/generated.nix @@ -412,12 +412,12 @@ final: prev: { SchemaStore-nvim = buildVimPlugin { pname = "SchemaStore.nvim"; - version = "0-unstable-2026-04-17"; + version = "0-unstable-2026-04-23"; src = fetchFromGitHub { owner = "b0o"; repo = "SchemaStore.nvim"; - rev = "250aed7415ddd6cb3ea321490c7b35094ed9148d"; - hash = "sha256-UQ+6s4tMJ8z+UJ41ZX1HJTiDsbkYFEUSDb+N8jVBAeY="; + rev = "d09eb13366fe95deeecf3deba7a4639f0c82fcdc"; + hash = "sha256-6JLdNKPtRpjS2XKc6gs2I51AUeyiaidYBj7bO3S4F0Y="; }; meta.homepage = "https://github.com/b0o/SchemaStore.nvim/"; meta.hydraPlatforms = [ ]; @@ -660,12 +660,12 @@ final: prev: { actions-preview-nvim = buildVimPlugin { pname = "actions-preview.nvim"; - version = "0-unstable-2026-04-09"; + version = "0-unstable-2026-04-22"; src = fetchFromGitHub { owner = "aznhe21"; repo = "actions-preview.nvim"; - rev = "2b604b2e8e662c03b716436f6ffebcb19663e66a"; - hash = "sha256-FG2QxBZTtyRyzK1T2rUtmyK+Z2kt/Ot/vSDQ6JEVwBs="; + rev = "0ac9c2aa3cfc8c885321c0862b50b6b1c3392405"; + hash = "sha256-ibzfF/Ebm5+1EgZ05NQCTRDB+Q7ymyRy2fZpjvwv8EA="; }; meta.homepage = "https://github.com/aznhe21/actions-preview.nvim/"; meta.hydraPlatforms = [ ]; @@ -986,12 +986,12 @@ final: prev: { astrocore = buildVimPlugin { pname = "astrocore"; - version = "3.0.2"; + version = "3.0.3"; src = fetchFromGitHub { owner = "AstroNvim"; repo = "astrocore"; - tag = "v3.0.2"; - hash = "sha256-4yf49at22utcEVrLftI8X0iBrcbfVqlZpreXkM0q63E="; + tag = "v3.0.3"; + hash = "sha256-EQG6jOH/US/0T4iIwPv58FC4P7k3W7jTBdfRVbqFQi8="; }; meta.homepage = "https://github.com/AstroNvim/astrocore/"; meta.hydraPlatforms = [ ]; @@ -1571,12 +1571,12 @@ final: prev: { better-escape-nvim = buildVimPlugin { pname = "better-escape.nvim"; - version = "2.3.3-unstable-2025-04-29"; + version = "2.3.3-unstable-2026-04-22"; src = fetchFromGitHub { owner = "max397574"; repo = "better-escape.nvim"; - rev = "19a38aab94961016430905ebec30d272a01e9742"; - hash = "sha256-OmCZQN9qMSSEBmZaRR5QoJ+RRm13pnu+0uAUoz6X7oA="; + rev = "3f4bc0b326606264ff75967f59091b5ddada0554"; + hash = "sha256-h7Xa8McjnCOOP8WbqbmmJn9jjBMvk89Tvh0Qt1stEVU="; }; meta.homepage = "https://github.com/max397574/better-escape.nvim/"; meta.hydraPlatforms = [ ]; @@ -1649,12 +1649,12 @@ final: prev: { blink-cmp-conventional-commits = buildVimPlugin { pname = "blink-cmp-conventional-commits"; - version = "0-unstable-2026-02-04"; + version = "0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "disrupted"; repo = "blink-cmp-conventional-commits"; - rev = "faa45344aab97aa33ece53938c4c3379760e61bd"; - hash = "sha256-nbulCccWnugVodwm6C7Xlf9D/0cpKEBL3tmnH3S15WY="; + rev = "28f46593ef5e03ba7525bdf6075be0c56c6ceb55"; + hash = "sha256-eRGq2bjr6kqFoT1s4P1MIA7nIEvRTYw4OFIJbS/JD60="; }; meta.homepage = "https://github.com/disrupted/blink-cmp-conventional-commits/"; meta.hydraPlatforms = [ ]; @@ -1909,12 +1909,12 @@ final: prev: { bluloco-nvim = buildVimPlugin { pname = "bluloco.nvim"; - version = "1.4.0-unstable-2026-04-04"; + version = "1.4.0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "uloco"; repo = "bluloco.nvim"; - rev = "f1a6cb87e55cd377002f1648163f434fd9837ef5"; - hash = "sha256-5atqaCBSn/pTjoCoi10L9MgpgozMqXb0qU3BME9UPpc="; + rev = "4daabf6a9e6b9ecdcb19e7c78e888be0bacd866c"; + hash = "sha256-qmVneHlI7XKTyXrSJu+lWaX6YmGQero7nTKrWR/i99c="; }; meta.homepage = "https://github.com/uloco/bluloco.nvim/"; meta.hydraPlatforms = [ ]; @@ -3597,12 +3597,12 @@ final: prev: { conform-nvim = buildVimPlugin { pname = "conform.nvim"; - version = "9.1.0-unstable-2026-03-10"; + version = "9.1.0-unstable-2026-04-23"; src = fetchFromGitHub { owner = "stevearc"; repo = "conform.nvim"; - rev = "086a40dc7ed8242c03be9f47fbcee68699cc2395"; - hash = "sha256-aJIUkAcFdaOWBQ3HNLLvhqALzch0BqPUZPtb2cmIeCE="; + rev = "dca1a190aa85f9065979ef35802fb77131911106"; + hash = "sha256-pV7Yr2LSBDqKGeYoS4CWHGUSs8Yx4wsVXCXySt9yz0M="; fetchSubmodules = true; }; meta.homepage = "https://github.com/stevearc/conform.nvim/"; @@ -4874,12 +4874,12 @@ final: prev: { dracula-vim = buildVimPlugin { pname = "dracula-vim"; - version = "2.0.0-unstable-2026-04-13"; + version = "2.0.0-unstable-2026-04-22"; src = fetchFromGitHub { owner = "dracula"; repo = "vim"; - rev = "07b144414730cc4cf4405ab840bf46c5fa12704b"; - hash = "sha256-RWavKi3KvQI7N+qNks3EVUSmwCY73QvGNTpZElCxdkE="; + rev = "e7b91facff94bdf3a248df9b683119b84672256a"; + hash = "sha256-OkLtrd6Cq7ZwF5r5/SBc9Uyp26q/gIgHLrVKLxboLCA="; }; meta.homepage = "https://github.com/dracula/vim/"; meta.hydraPlatforms = [ ]; @@ -4939,12 +4939,12 @@ final: prev: { easy-dotnet-nvim = buildVimPlugin { pname = "easy-dotnet.nvim"; - version = "0-unstable-2026-04-18"; + version = "0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "GustavEikaas"; repo = "easy-dotnet.nvim"; - rev = "06cc3c7ffd02ef6c62dffea46d4f6e53f1962ef2"; - hash = "sha256-+f1RvmFUWPpvw6EqOKmS0NBCwRgMX3mzPdF/DFUnEWM="; + rev = "1e6b569af3818a1665f14115aea7b0a920b179f6"; + hash = "sha256-EkJoifIH8PtiXUSFpWQtQgP6a1LuWLbvwHBYH/80Qik="; }; meta.homepage = "https://github.com/GustavEikaas/easy-dotnet.nvim/"; meta.hydraPlatforms = [ ]; @@ -5408,12 +5408,12 @@ final: prev: { firenvim = buildVimPlugin { pname = "firenvim"; - version = "0.2.16-unstable-2026-04-16"; + version = "0.2.16-unstable-2026-04-23"; src = fetchFromGitHub { owner = "glacambre"; repo = "firenvim"; - rev = "b68449b92dfea73a54e4c8f2307fc244a3a574bd"; - hash = "sha256-XjpCYydSFSTw0sDwVHS7paDejaP2JafOWrupuurfFgE="; + rev = "69d3411d08d35bb9b3e84b9deaff4b9b078a30e3"; + hash = "sha256-j1M41XD8gLMqXJK5Pk+yu6IbsUnRagyzlKM9nQ1ozp0="; }; meta.homepage = "https://github.com/glacambre/firenvim/"; meta.hydraPlatforms = [ ]; @@ -6384,12 +6384,12 @@ final: prev: { gruvbox-material-nvim = buildVimPlugin { pname = "gruvbox-material.nvim"; - version = "1.8.1"; + version = "1.8.2"; src = fetchFromGitHub { owner = "f4z3r"; repo = "gruvbox-material.nvim"; - tag = "v1.8.1"; - hash = "sha256-nNBV66GHG3Km92aWhFeo3HgjWQNdMQpIl4Kq08rEmPs="; + tag = "v1.8.2"; + hash = "sha256-MTOAc4Z8wvAGz99dJy5181R/Uf7G/qToyPFYNDJHjB0="; }; meta.homepage = "https://github.com/f4z3r/gruvbox-material.nvim/"; meta.hydraPlatforms = [ ]; @@ -6579,12 +6579,12 @@ final: prev: { haskell-snippets-nvim = buildVimPlugin { pname = "haskell-snippets.nvim"; - version = "1.5.0-unstable-2026-04-13"; + version = "1.5.0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "mrcjkb"; repo = "haskell-snippets.nvim"; - rev = "7a29db90a8803d937f2122efbff696d0f290b379"; - hash = "sha256-OR7Fibl05kk6/2LsAoxya00TW0scgh3Uc4eSw5TaH58="; + rev = "11868addce601fdeed56097d48ff42abeec3dfe8"; + hash = "sha256-Y4ZNYNb7shMQ8lTAx2/8De9KgbYq8Pf+6yQhHX6a4Ck="; }; meta.homepage = "https://github.com/mrcjkb/haskell-snippets.nvim/"; meta.hydraPlatforms = [ ]; @@ -7477,12 +7477,12 @@ final: prev: { kanagawa-nvim = buildVimPlugin { pname = "kanagawa.nvim"; - version = "0-unstable-2025-10-15"; + version = "0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "rebelot"; repo = "kanagawa.nvim"; - rev = "aef7f5cec0a40dbe7f3304214850c472e2264b10"; - hash = "sha256-nHcQWTX4x4ala6+fvh4EWRVcZMNk5jZiZAwWhw03ExE="; + rev = "8ad3b4cdcc804b332c32db8f9743667e1bb82b99"; + hash = "sha256-vAq9ZiG3s4x/xFSKt9/o40pptj2y7S8DQqs1dJEdhVU="; }; meta.homepage = "https://github.com/rebelot/kanagawa.nvim/"; meta.hydraPlatforms = [ ]; @@ -7790,12 +7790,12 @@ final: prev: { lean-nvim = buildVimPlugin { pname = "lean.nvim"; - version = "2025.10.1-unstable-2026-04-19"; + version = "2026.4.1"; src = fetchFromGitHub { owner = "Julian"; repo = "lean.nvim"; - rev = "1be79c2c60c24bc5e4ac31d4c25bbae533a8bc8f"; - hash = "sha256-UwVXVulNayx9vJijgFQullXM9JUjUCXtNd7EKp1P9u4="; + tag = "v2026.4.1"; + hash = "sha256-AYClc7+z+0h5QfVGPGr7ZrzPuaD+IAMtHT/3ZnbSVLE="; }; meta.homepage = "https://github.com/Julian/lean.nvim/"; meta.hydraPlatforms = [ ]; @@ -7829,11 +7829,11 @@ final: prev: { leap-nvim = buildVimPlugin { pname = "leap.nvim"; - version = "0-unstable-2026-03-31"; + version = "0-unstable-2026-04-20"; src = fetchgit { url = "https://codeberg.org/andyg/leap.nvim/"; - rev = "b960d5038c5c505c52e56a54490f9bbb1f0e6ef6"; - hash = "sha256-3xL4cwZdrRX0pCu/oqk0hz8zOeg/VRwn5cB9I9cG4DI="; + rev = "ce3cf75200ae148d75563088f435389f9e4100fd"; + hash = "sha256-f3LwrPetVujz/ji1kWwOGuYjNiii/+E68I6RPnzXAIY="; }; meta.homepage = "https://codeberg.org/andyg/leap.nvim/"; meta.hydraPlatforms = [ ]; @@ -8075,12 +8075,12 @@ final: prev: { linediff-vim = buildVimPlugin { pname = "linediff.vim"; - version = "0.3.0-unstable-2025-11-28"; + version = "0.3.0-unstable-2026-04-17"; src = fetchFromGitHub { owner = "AndrewRadev"; repo = "linediff.vim"; - rev = "29fa617fc10307a1e0ae82a8761114e465d17b06"; - hash = "sha256-53WWr63+89BYsE8Tyj216msCCRiitcnp7aYH+hUvQyI="; + rev = "c3780609769a93f4f59421b6324355f37e0ee6c5"; + hash = "sha256-27Lu2U+/XELoT7yV4r0wqsFW/w8Z1BA4UDQslq1dOg4="; }; meta.homepage = "https://github.com/AndrewRadev/linediff.vim/"; meta.hydraPlatforms = [ ]; @@ -8218,12 +8218,12 @@ final: prev: { live-share-nvim = buildVimPlugin { pname = "live-share.nvim"; - version = "2.1.0"; + version = "2.1.3"; src = fetchFromGitHub { owner = "azratul"; repo = "live-share.nvim"; - tag = "v2.1.0"; - hash = "sha256-TxjS68iaat+zgpF4L7Wp7y7PgW4mrc6MrvxxQBK3zsk="; + tag = "v2.1.3"; + hash = "sha256-EXVnUcutSz3xfjTHjYr45nBWm6JP68PoGE07ooYsywA="; }; meta.homepage = "https://github.com/azratul/live-share.nvim/"; meta.hydraPlatforms = [ ]; @@ -8438,12 +8438,12 @@ final: prev: { lspsaga-nvim = buildVimPlugin { pname = "lspsaga.nvim"; - version = "0-unstable-2026-03-03"; + version = "0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "nvimdev"; repo = "lspsaga.nvim"; - rev = "562d9724e3869ffd1801c572dd149cc9f8d0cc36"; - hash = "sha256-5jqMObzXwveN4+p4qf/kZJcUlM964rtS3yX8nndMQzk="; + rev = "c532fb86c3d211c5829ad58d2a0783012739bb65"; + hash = "sha256-oFzbEkY/WKT7jbwGxeKnbQXgnY8kSmH/UsjljXozBWU="; }; meta.homepage = "https://github.com/nvimdev/lspsaga.nvim/"; meta.hydraPlatforms = [ ]; @@ -8699,12 +8699,12 @@ final: prev: { mason-nvim = buildVimPlugin { pname = "mason.nvim"; - version = "2.2.1-unstable-2026-04-06"; + version = "2.2.1-unstable-2026-04-21"; src = fetchFromGitHub { owner = "mason-org"; repo = "mason.nvim"; - rev = "b03fb0f20bc1d43daf558cda981a2be22e73ac42"; - hash = "sha256-2R31RsqYChWW8nyu0ovryFd8sO9iWeqBnydL6NhRpQ0="; + rev = "12ddd182d9efbdc848b540f16484a583d52da0fb"; + hash = "sha256-Oq93aLhK/fowReSAeg9nnXnLrpTpBek0j5uNX1FW1Vs="; }; meta.homepage = "https://github.com/mason-org/mason.nvim/"; meta.hydraPlatforms = [ ]; @@ -9050,12 +9050,12 @@ final: prev: { mini-completion = buildVimPlugin { pname = "mini.completion"; - version = "0.17.0-unstable-2026-04-17"; + version = "0.17.0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "nvim-mini"; repo = "mini.completion"; - rev = "e934b46f6471a3bd0cd37fc06d0df198b9711882"; - hash = "sha256-h7IUnYdqjVHldagQXCmC7UI8oO4+2fmtFfdCln1pa6A="; + rev = "667d94669be66043123cac44e7c5d65a31657732"; + hash = "sha256-Y2cYv06QUvKWRoF/05+ajJ41z/4D6QZAuxjNCFAtu5E="; }; meta.homepage = "https://github.com/nvim-mini/mini.completion/"; meta.hydraPlatforms = [ ]; @@ -9310,12 +9310,12 @@ final: prev: { mini-nvim = buildVimPlugin { pname = "mini.nvim"; - version = "0.17.0-unstable-2026-04-17"; + version = "0.17.0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "nvim-mini"; repo = "mini.nvim"; - rev = "418ef4930ddabe80f449c6f1323f8b6abb172d1c"; - hash = "sha256-bHEFu4XZI9QHP41h11sSNgRG43PDSkdgTyzmJt64gLk="; + rev = "5849ef04c32a6a8e55957b946c0a275801d87530"; + hash = "sha256-itvNBJwakDOeIUaEZS5qSeI3L//kve3ub7r16EUvgi0="; }; meta.homepage = "https://github.com/nvim-mini/mini.nvim/"; meta.hydraPlatforms = [ ]; @@ -9492,12 +9492,12 @@ final: prev: { minuet-ai-nvim = buildVimPlugin { pname = "minuet-ai.nvim"; - version = "0.8.0-unstable-2026-04-18"; + version = "0.8.0-unstable-2026-04-23"; src = fetchFromGitHub { owner = "milanglacier"; repo = "minuet-ai.nvim"; - rev = "ee03326381c93f6417fa66aeb2ca85a26c0706e7"; - hash = "sha256-41vUpNnyKdc4MvOyFVSAgR1/EEjHgKNixAWXaLdMbsQ="; + rev = "173d8c9451504cdf93ce172f710487d3c6191ce8"; + hash = "sha256-4tBdnziMUCL8Cgq5LFO5LSbWB8Kk5Brq9vKRgq38jOw="; }; meta.homepage = "https://github.com/milanglacier/minuet-ai.nvim/"; meta.hydraPlatforms = [ ]; @@ -9986,12 +9986,12 @@ final: prev: { neo-tree-nvim = buildVimPlugin { pname = "neo-tree.nvim"; - version = "2.71"; + version = "3.40.0"; src = fetchFromGitHub { owner = "nvim-neo-tree"; repo = "neo-tree.nvim"; - tag = "v2.71"; - hash = "sha256-w4D+iq1/su5LtCsknvGB6wDlohx2WVm0iRvKagL4H5E="; + tag = "3.40.0"; + hash = "sha256-/TNl/IX81qr7Mcoy0dhF3bcsewXEnPSy2n+dm31eyyw="; }; meta.homepage = "https://github.com/nvim-neo-tree/neo-tree.nvim/"; meta.hydraPlatforms = [ ]; @@ -10012,12 +10012,12 @@ final: prev: { neoconf-nvim = buildVimPlugin { pname = "neoconf.nvim"; - version = "1.4.0-unstable-2026-04-15"; + version = "1.4.0-unstable-2026-04-23"; src = fetchFromGitHub { owner = "folke"; repo = "neoconf.nvim"; - rev = "ecdb0c9bc3f3373e11be4c97e461d16b52d532d0"; - hash = "sha256-F3ui8hSN/UPt4UjDUziXyVYUEtFVaTVETjOn/xRm7nU="; + rev = "751c246c6c1780b94b063918759f352480e3db21"; + hash = "sha256-XuWMVLu1FFmcGnmDuomKYSSBD/yOUa6Za5UE7O52y2w="; }; meta.homepage = "https://github.com/folke/neoconf.nvim/"; meta.hydraPlatforms = [ ]; @@ -10090,12 +10090,12 @@ final: prev: { neogit = buildVimPlugin { pname = "neogit"; - version = "3.0.0-unstable-2026-04-17"; + version = "3.0.0-unstable-2026-04-23"; src = fetchFromGitHub { owner = "NeogitOrg"; repo = "neogit"; - rev = "e906fce7e44ae562f06345be99a7db02f8315236"; - hash = "sha256-/uIp7X8drHFQT8DNuiSxFGga71HUY59PCSTguyJvaeo="; + rev = "2d94da0032e201865a5b65a6bc008dd6fce8f52e"; + hash = "sha256-dCndB3pvCU7D80aU/5nOloxH2lYgGdC0Qtei8cRf7RU="; }; meta.homepage = "https://github.com/NeogitOrg/neogit/"; meta.hydraPlatforms = [ ]; @@ -10405,12 +10405,12 @@ final: prev: { neotest-haskell = buildVimPlugin { pname = "neotest-haskell"; - version = "3.0.1-unstable-2026-04-13"; + version = "3.0.1-unstable-2026-04-21"; src = fetchFromGitHub { owner = "MrcJkb"; repo = "neotest-haskell"; - rev = "84650446b9207ef5e19d2ade50fcda278bdfbae7"; - hash = "sha256-/GDhQhMCOUq0um9BPdDIfxIXUonV5DdyMKCn+JpaAAc="; + rev = "cf7816eb183c8333b58abb63fd4cc156401d9d31"; + hash = "sha256-/rqau8v3CWaPjCMQjWB4bWCeqOaBHdAn05Nlw3w1WSc="; }; meta.homepage = "https://github.com/MrcJkb/neotest-haskell/"; meta.hydraPlatforms = [ ]; @@ -10418,12 +10418,12 @@ final: prev: { neotest-java = buildVimPlugin { pname = "neotest-java"; - version = "0.37.0"; + version = "0.37.1"; src = fetchFromGitHub { owner = "rcasia"; repo = "neotest-java"; - tag = "v0.37.0"; - hash = "sha256-PuXYAKkg+KM9dkSk/br7GDjXzmgqhteJepjbt9ZJGO8="; + tag = "v0.37.1"; + hash = "sha256-t+nqylLLHITU8li1cOl97jFKkZRmvmDbSAwvmv1yk+M="; }; meta.homepage = "https://github.com/rcasia/neotest-java/"; meta.hydraPlatforms = [ ]; @@ -10846,12 +10846,12 @@ final: prev: { nightfly = buildVimPlugin { pname = "nightfly"; - version = "0-unstable-2026-04-02"; + version = "0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "bluz71"; repo = "vim-nightfly-colors"; - rev = "250ee0eb4975e59a277f50cc03c980eef27fb483"; - hash = "sha256-FkyUVuOydxBWRqBUb2JZrHmFL5epDG2U3BSqd865wcE="; + rev = "caaba387a4a50cf08791395acc4a5b7363367cff"; + hash = "sha256-zHT0Py7dePXfZ8duOfLxh/3K0ZaCrrB60uJ+asC/rII="; }; meta.homepage = "https://github.com/bluz71/vim-nightfly-colors/"; meta.hydraPlatforms = [ ]; @@ -11985,12 +11985,12 @@ final: prev: { nvim-metals = buildVimPlugin { pname = "nvim-metals"; - version = "0.10.x-unstable-2026-04-10"; + version = "0.10.x-unstable-2026-04-22"; src = fetchFromGitHub { owner = "scalameta"; repo = "nvim-metals"; - rev = "6970d6036218db6545f3c295d0106cc8de6d7161"; - hash = "sha256-RY+UhnwIjWuMU9WOG4a1JvBiJ9RWZ2fUxFDnuzDR+jw="; + rev = "3c6ef5114fd46127c517e58d7e8e4dfc1f78dac3"; + hash = "sha256-9ZernsWN0j185b2KeMvV+CAaN4+NgUfocUG8Ot1fo/4="; }; meta.homepage = "https://github.com/scalameta/nvim-metals/"; meta.hydraPlatforms = [ ]; @@ -12427,12 +12427,12 @@ final: prev: { nvim-tinygit = buildVimPlugin { pname = "nvim-tinygit"; - version = "1.0-unstable-2026-04-13"; + version = "1.0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "chrisgrieser"; repo = "nvim-tinygit"; - rev = "59b9a750a7a0710552829d2a1dfcaa5304433359"; - hash = "sha256-/1NCsig8s554HtcSAdsfmPj+KkNNnIVNu7iBN8Vm04Q="; + rev = "f12990601dfa63c623049b470dc306ca905064c8"; + hash = "sha256-NNdwBJjVlCwR3VzN7JRMhRRNHENRO9SXNnUUr4zZ8Eg="; }; meta.homepage = "https://github.com/chrisgrieser/nvim-tinygit/"; meta.hydraPlatforms = [ ]; @@ -12830,12 +12830,12 @@ final: prev: { obsidian-nvim = buildVimPlugin { pname = "obsidian.nvim"; - version = "3.16.2-unstable-2026-04-18"; + version = "3.16.2-unstable-2026-04-22"; src = fetchFromGitHub { owner = "obsidian-nvim"; repo = "obsidian.nvim"; - rev = "d6c0e5bc30937df0657c9953d135d0ebb3af7e00"; - hash = "sha256-ZFFtVH/NswfManJ+o5x3oLhy/foQzmVj29O7UEBVkMs="; + rev = "af9857e4993e0adddb897f09c2805b44a0d913ea"; + hash = "sha256-zajt8vt/bLMCqgSgjMj/MiUFTU3TNAnr25YM+J+qg2M="; }; meta.homepage = "https://github.com/obsidian-nvim/obsidian.nvim/"; meta.hydraPlatforms = [ ]; @@ -12882,12 +12882,12 @@ final: prev: { octo-nvim = buildVimPlugin { pname = "octo.nvim"; - version = "0-unstable-2026-04-16"; + version = "0-unstable-2026-04-22"; src = fetchFromGitHub { owner = "pwntester"; repo = "octo.nvim"; - rev = "65550fa020775fb18e6eacab86b80145560bfd9c"; - hash = "sha256-VUm7BQ5g4VyKWAZTOhxt19JAea+DLrMltt01jbO6LUg="; + rev = "a8ad0646e6f9d01ad0a6fbd3ddca0fd715067d34"; + hash = "sha256-oEiQyABAJhF6vgOU2PPPILqioaVF95gMJaQlxCtYEXM="; }; meta.homepage = "https://github.com/pwntester/octo.nvim/"; meta.hydraPlatforms = [ ]; @@ -13520,12 +13520,12 @@ final: prev: { pi-nvim = buildVimPlugin { pname = "pi.nvim"; - version = "0-unstable-2026-03-26"; + version = "0-unstable-2026-04-22"; src = fetchFromGitHub { owner = "pablopunk"; repo = "pi.nvim"; - rev = "cc2377f88c99871bc44b45490ef9d91a5d1c31e1"; - hash = "sha256-xguHPNrQ16ddWbnxR38Zm6gtDP63b93pxR4bsbN9YZE="; + rev = "9a4425e3e601e7387b32065d78b812bc7d5603ad"; + hash = "sha256-e5LLscgEBuZHIfi+clojp9vfiofvXdU5C7BuhQB7vfw="; }; meta.homepage = "https://github.com/pablopunk/pi.nvim/"; meta.hydraPlatforms = [ ]; @@ -13729,12 +13729,12 @@ final: prev: { project-nvim = buildVimPlugin { pname = "project.nvim"; - version = "3.1.0-1"; + version = "3.2.1-1"; src = fetchFromGitHub { owner = "DrKJeff16"; repo = "project.nvim"; - tag = "v3.1.0-1"; - hash = "sha256-i3nGUb/tULq28MmiYk3C4P+FoVFSZaaO5XWx4kuTa0I="; + tag = "v3.2.1-1"; + hash = "sha256-vZWOH2fFmwdlU/rdnLWywx+XsuuH+X5x0DN8OHjZd6c="; }; meta.homepage = "https://github.com/DrKJeff16/project.nvim/"; meta.hydraPlatforms = [ ]; @@ -13873,12 +13873,12 @@ final: prev: { quarto-nvim = buildVimPlugin { pname = "quarto-nvim"; - version = "2.0.1-unstable-2026-01-29"; + version = "2.1.0"; src = fetchFromGitHub { owner = "quarto-dev"; repo = "quarto-nvim"; - rev = "d923bb7cfc2bde41143e1c531c28190f0fade3a2"; - hash = "sha256-UGrbQtmJIQsOb37/IcrFxGnAfIiCHGsmMFFSkitNK9o="; + tag = "v2.1.0"; + hash = "sha256-YgRiUnZ1MH5uuwNC3V9ZntphuKH3rIOlcdp+5C4zonk="; }; meta.homepage = "https://github.com/quarto-dev/quarto-nvim/"; meta.hydraPlatforms = [ ]; @@ -14080,12 +14080,12 @@ final: prev: { refactoring-nvim = buildVimPlugin { pname = "refactoring.nvim"; - version = "0-unstable-2025-10-21"; + version = "0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "theprimeagen"; repo = "refactoring.nvim"; - rev = "6784b54587e6d8a6b9ea199318512170ffb9e418"; - hash = "sha256-KFn1f0Va6eFbeOYxc40lN1iWL8WAwnm/H5l46o4JgvI="; + rev = "f06ac3d457128f9d512103399b367c4be49a2421"; + hash = "sha256-mZC2N8Udvep75/FeSRn2ZmEmE2/SNxFHw+W5QJHduLw="; }; meta.homepage = "https://github.com/theprimeagen/refactoring.nvim/"; meta.hydraPlatforms = [ ]; @@ -14171,12 +14171,12 @@ final: prev: { render-markdown-nvim = buildVimPlugin { pname = "render-markdown.nvim"; - version = "8.12.0-unstable-2026-04-12"; + version = "8.12.0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "MeanderingProgrammer"; repo = "render-markdown.nvim"; - rev = "0fd43fb4b1f073931c4b481f5f3b7cea3749e190"; - hash = "sha256-wCzOiTKJ8F2Fj82LYRSoG1Ix0KDBSdQokzNGVmbu2oo="; + rev = "d67113f11384c0dad96fced2f7b91f1fc811e97f"; + hash = "sha256-c+2KzCACUnb/RkkLsI9uxvJNLP0PDgmuPSUlO/XgGBw="; }; meta.homepage = "https://github.com/MeanderingProgrammer/render-markdown.nvim/"; meta.hydraPlatforms = [ ]; @@ -14302,12 +14302,12 @@ final: prev: { roslyn-nvim = buildVimPlugin { pname = "roslyn.nvim"; - version = "0-unstable-2026-04-16"; + version = "0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "seblyng"; repo = "roslyn.nvim"; - rev = "6a5e60a7c25d9ce0835aa9c69379f1c92e0a9d56"; - hash = "sha256-Zoi5RxWJY96C4D3k9iwU2XJb8LKUFCdq5SDHWrfa5vw="; + rev = "b62d1a588765f0aa1b46ed260252c9e456408835"; + hash = "sha256-j5+Kg4B1flk4TwkZKRDW7tHbaoUyE5dKGypXsd9+qSw="; }; meta.homepage = "https://github.com/seblyng/roslyn.nvim/"; meta.hydraPlatforms = [ ]; @@ -14458,12 +14458,12 @@ final: prev: { scnvim = buildVimPlugin { pname = "scnvim"; - version = "0-unstable-2026-04-13"; + version = "0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "davidgranstrom"; repo = "scnvim"; - rev = "7e0ff9ed57c58dfde0341d1e695fe54a0904e2d8"; - hash = "sha256-PaIYXaPtwen/SWdLADsJDx7NI/OoTAjUa24AZYJyNBA="; + rev = "ec347b24168ac922de4dcddc181efd2fcdcfa0d0"; + hash = "sha256-cqZF3b+DkOQUOSU502vGQx8RNzH4b97B9zqHO9v8IBI="; }; meta.homepage = "https://github.com/davidgranstrom/scnvim/"; meta.hydraPlatforms = [ ]; @@ -14653,12 +14653,12 @@ final: prev: { sidekick-nvim = buildVimPlugin { pname = "sidekick.nvim"; - version = "2.3.0-unstable-2026-03-24"; + version = "2.3.0-unstable-2026-04-22"; src = fetchFromGitHub { owner = "folke"; repo = "sidekick.nvim"; - rev = "17447a05f9385e5f8372b61530f6f9329cb82421"; - hash = "sha256-scCYymquGaT9/e7nU2kuyiwFutKfAq8pGQQsOWK+7rM="; + rev = "208e1c5b8170c01fd1d07df0139322a76479b235"; + hash = "sha256-I1YuIXJHP7JfETwOer6B7QDLMZGG/X59zXopb4nPel4="; }; meta.homepage = "https://github.com/folke/sidekick.nvim/"; meta.hydraPlatforms = [ ]; @@ -14862,12 +14862,12 @@ final: prev: { solarized-osaka-nvim = buildVimPlugin { pname = "solarized-osaka.nvim"; - version = "0-unstable-2026-02-04"; + version = "0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "craftzdog"; repo = "solarized-osaka.nvim"; - rev = "f0c2f0ba0bd56108d53c9bfae4bb28ff6c67bbdb"; - hash = "sha256-0AB2+ZuhlpuBFF5xmYXr1sIOIctY4b8jgcghqXZSc70="; + rev = "a261ee90fb3e5e82660567e4874d384e996afa4f"; + hash = "sha256-b8gZM9/HFi4q+mWpEijO8fCBuu1eslGSNPgZOyjXMmc="; }; meta.homepage = "https://github.com/craftzdog/solarized-osaka.nvim/"; meta.hydraPlatforms = [ ]; @@ -16375,12 +16375,12 @@ final: prev: { tiny-inline-diagnostic-nvim = buildVimPlugin { pname = "tiny-inline-diagnostic.nvim"; - version = "0-unstable-2026-04-17"; + version = "0-unstable-2026-04-22"; src = fetchFromGitHub { owner = "rachartier"; repo = "tiny-inline-diagnostic.nvim"; - rev = "b3b91e086795c036ecfe70429b72b26bcb302c91"; - hash = "sha256-yYxwyXuOIb+Ac5f8OonwsJny00bqfL7cWDtcjsVtP5o="; + rev = "147af4e49f51dd48f41972de26552872b8ba7b25"; + hash = "sha256-LpZuRNGSK8AHLTIPIWoQlGot89qubFRL/RZ+EMs4bnQ="; }; meta.homepage = "https://github.com/rachartier/tiny-inline-diagnostic.nvim/"; meta.hydraPlatforms = [ ]; @@ -16912,12 +16912,12 @@ final: prev: { ultisnips = buildVimPlugin { pname = "ultisnips"; - version = "3.2-unstable-2026-04-18"; + version = "3.2-unstable-2026-04-19"; src = fetchFromGitHub { owner = "SirVer"; repo = "ultisnips"; - rev = "724e506c6c852ea9bd60720d878a09a55eb3eb74"; - hash = "sha256-HhTFCWpE5ljk2M4z9/XHBobLMIW6DO9mpVF5BEfY624="; + rev = "10fc6cb2a48aa24d72894f71fceaa43a0432f287"; + hash = "sha256-mSifyCvjefyl0snph+NAdI8alU2MeB5BozWHvmgpqVo="; }; meta.homepage = "https://github.com/SirVer/ultisnips/"; meta.hydraPlatforms = [ ]; @@ -17107,12 +17107,12 @@ final: prev: { vague-nvim = buildVimPlugin { pname = "vague.nvim"; - version = "2.0.0-unstable-2026-04-09"; + version = "2.0.0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "vague-theme"; repo = "vague.nvim"; - rev = "8751181a1aa431b4e8983b0a183afef5cbc08381"; - hash = "sha256-89Z6MzAFcZeUhMfU1amR4sxakcpsxlJxT3s6XateaBo="; + rev = "fd58046b9d64259d9785e4aeb6d6f494c6943cad"; + hash = "sha256-wAjzCkTMoxEP6Xc38I5lY3tSwEgU67w/bYPYxmaGaZA="; }; meta.homepage = "https://github.com/vague-theme/vague.nvim/"; meta.hydraPlatforms = [ ]; @@ -17562,12 +17562,12 @@ final: prev: { vim-airline = buildVimPlugin { pname = "vim-airline"; - version = "0.11-unstable-2026-04-13"; + version = "0.11-unstable-2026-04-22"; src = fetchFromGitHub { owner = "vim-airline"; repo = "vim-airline"; - rev = "609e5c0ee171c370ad727b0b833e66fd34772aeb"; - hash = "sha256-PgS2m3vqncalNNSeXpYb0x2MfEdM7eUh6uGWyM6yHsA="; + rev = "f6d9cc6b4a1f0a4f7a1c33bc7997cf446b6d77ba"; + hash = "sha256-gHdp2+Vd0AITx/0LSrwPRM6zOhhCyl0uMe8hS2IHnRc="; }; meta.homepage = "https://github.com/vim-airline/vim-airline/"; meta.hydraPlatforms = [ ]; @@ -20385,11 +20385,11 @@ final: prev: { vim-markbar = buildVimPlugin { pname = "vim-markbar"; - version = "0-unstable-2024-05-10"; + version = "0-unstable-2026-04-22"; src = fetchFromGitHub { owner = "Yilin-Yang"; repo = "vim-markbar"; - rev = "9f5a948d44652074bf2b90d3da6a400d8a369ba5"; + rev = "54cd772352b4da4506ce23e971f46f78446f0b6c"; hash = "sha256-dGMO0vbi4LMQeMvA/NI98S/CsDT7LKDPrLP9NFkMZOQ="; }; meta.homepage = "https://github.com/Yilin-Yang/vim-markbar/"; @@ -20567,12 +20567,12 @@ final: prev: { vim-moonfly-colors = buildVimPlugin { pname = "vim-moonfly-colors"; - version = "0-unstable-2026-04-02"; + version = "0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "bluz71"; repo = "vim-moonfly-colors"; - rev = "43d8eb9dd2a1154dd8259ee3ce37cbbdb28c405c"; - hash = "sha256-jyZKY2N0ix53x5xhYo+B31G02fKcxhYkSGlJ3VFA2Ng="; + rev = "ed33cb0e0edfced6e86e782d51f23e67232ad4a9"; + hash = "sha256-xFEI7cn5X3E90X3Z7njTg5/nFXXECJxPYmitfr+29VA="; }; meta.homepage = "https://github.com/bluz71/vim-moonfly-colors/"; meta.hydraPlatforms = [ ]; @@ -23740,12 +23740,12 @@ final: prev: { yazi-nvim = buildVimPlugin { pname = "yazi.nvim"; - version = "13.1.5-unstable-2026-04-19"; + version = "13.1.5-unstable-2026-04-22"; src = fetchFromGitHub { owner = "mikavilpas"; repo = "yazi.nvim"; - rev = "bb69f7fc634a9566edba5fc0da3a2025d7ffbae0"; - hash = "sha256-WHp/HM4AN2kZiPs7sOIAlBWM1H7KUgFGPEEioWlxFQE="; + rev = "d34b366517a21fb2366e8ac393fc903008345173"; + hash = "sha256-SjWgNlb8raCDQ7E3lgHnTwl0wFTibxxKV4YcCeX0qPE="; }; meta.homepage = "https://github.com/mikavilpas/yazi.nvim/"; meta.hydraPlatforms = [ ]; diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix index c761dbd99377..cd0e77e2e95c 100644 --- a/pkgs/applications/editors/vim/plugins/overrides.nix +++ b/pkgs/applications/editors/vim/plugins/overrides.nix @@ -3234,7 +3234,7 @@ assertNoAdditions { refactoring-nvim = super.refactoring-nvim.overrideAttrs { dependencies = with self; [ - plenary-nvim + async-nvim ]; }; From 283f61e60eec7c2a9a16633d15297c87259c3296 Mon Sep 17 00:00:00 2001 From: Markus Hauck Date: Thu, 23 Apr 2026 08:12:59 +0200 Subject: [PATCH 095/110] claude-code: 2.1.114 -> 2.1.118 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md --- pkgs/by-name/cl/claude-code/manifest.json | 37 ++++++++++++----------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/pkgs/by-name/cl/claude-code/manifest.json b/pkgs/by-name/cl/claude-code/manifest.json index 5ec1c5fd1bfd..a24f8d502f63 100644 --- a/pkgs/by-name/cl/claude-code/manifest.json +++ b/pkgs/by-name/cl/claude-code/manifest.json @@ -1,46 +1,47 @@ { - "version": "2.1.114", - "buildDate": "2026-04-17T22:43:08Z", + "version": "2.1.118", + "commit": "ef88b5f0a79aac989f53fd18178939a54a48624a", + "buildDate": "2026-04-22T22:43:30Z", "platforms": { "darwin-arm64": { "binary": "claude", - "checksum": "bf1b4da368da7970f0d1d4a1675acea99b6f2ad94f24e9f8ccfcc7940ac67894", - "size": 204534752 + "checksum": "54e5d3f65109b89c6046f47440944d52906c662d1e51748f620a430d26ad3665", + "size": 207690848 }, "darwin-x64": { "binary": "claude", - "checksum": "1a30360b6240056a58ba9187c8f9d2e88e949e0f970d5cf81f8d69bc65568f6a", - "size": 206004048 + "checksum": "2cd554070f0588de05e9efd88c1f073770cb620ed3e5f45ba7df833fc3414c1b", + "size": 209238608 }, "linux-arm64": { "binary": "claude", - "checksum": "9556b74e2c912e7dcaef90c91fd0dd5095364f8a9d71398de3c5c669612b828a", - "size": 236653120 + "checksum": "b77b22fe93c15409f3c64be67950fe11e5fc17d1cd327891596cb87dd9be0492", + "size": 239798848 }, "linux-x64": { "binary": "claude", - "checksum": "12bd4b0916deb06be17ffc7b2f0485e140bf00b2db3dcb78469d66723d73c27f", - "size": 236411520 + "checksum": "ba363b2410a47120d2d4b8ece2e11fe0bbc5d59adb1329e8fb87ea0f370f4e46", + "size": 239573632 }, "linux-arm64-musl": { "binary": "claude", - "checksum": "20c68c312e76fb81f52cd2006b1461a0eedd470798f44b9b4a833ad583ccc05b", - "size": 229378496 + "checksum": "dcb27938ed10b7da586b6f7ba0dde768980b5e3d38b258c1f4e9a94e7b3dd6d2", + "size": 232524224 }, "linux-x64-musl": { "binary": "claude", - "checksum": "fbbcfa225e948d9263c39f8be29a956ea4bd3a445f79aa9396cdc3263ea05690", - "size": 230676928 + "checksum": "bd05142de3e3ead48313d4215577c9a9c89f05ca286d771cdff025544c52ae29", + "size": 233839040 }, "win32-x64": { "binary": "claude.exe", - "checksum": "6f4a961ea8a1d656c41dd71cbef202cb71d13c443f86818c721167c33f8a51fd", - "size": 245966496 + "checksum": "5a05b03b880de26bb78fb9824bacf08e99dcf05c02e3c66546cccaf2f2930b2e", + "size": 249035936 }, "win32-arm64": { "binary": "claude.exe", - "checksum": "acdc5b7004491662f10622124c509b018a6a6c5566adf3e217f2dd4dad64ef34", - "size": 242697888 + "checksum": "b3d8942b49f672ef2e1394e004f0f53e197caefe30890620b6974a3e8dba63ec", + "size": 245760672 } } } From 291438f1c4e30e30e876a697eeb71dca9cf902f3 Mon Sep 17 00:00:00 2001 From: Markus Hauck Date: Thu, 23 Apr 2026 08:12:59 +0200 Subject: [PATCH 096/110] vscode-extensions.anthropic.claude-code: 2.1.114 -> 2.1.118 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md --- .../vscode/extensions/anthropic.claude-code/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix index e45e15ed0a41..b2a096fc5c34 100644 --- a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix +++ b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix @@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { name = "claude-code"; publisher = "anthropic"; - version = "2.1.114"; - hash = "sha256-TfVradC9ZjfLBp8QvZ0AptCS9j2ogzSlsRXxksp+N9I="; + version = "2.1.118"; + hash = "sha256-ic7GcsVcmy1pbiqn5mzdoak9sUqHTCotjOjw7NVfsjQ="; }; postInstall = '' From 6c6e575888f3bfadcba95874205d25d5c400203b Mon Sep 17 00:00:00 2001 From: Xiangyan Sun Date: Thu, 23 Apr 2026 12:11:31 -0700 Subject: [PATCH 097/110] stacktile: fix build with gcc15 --- pkgs/by-name/st/stacktile/package.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/by-name/st/stacktile/package.nix b/pkgs/by-name/st/stacktile/package.nix index d51cfcb08b1e..7796617df9cb 100644 --- a/pkgs/by-name/st/stacktile/package.nix +++ b/pkgs/by-name/st/stacktile/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromSourcehut, + fetchpatch, wayland, wayland-scanner, }: @@ -17,6 +18,13 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-IOFxgYMjh92jx2CPfBRZDL/1ucgfHtUyAL5rS2EG+Gc="; }; + patches = [ + (fetchpatch { + url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-compilation.patch?h=stacktile&id=388a522b69e34c01cc5d57341d8578470a7dccfb"; + hash = "sha256-y5ArQyjIqT2ICmm8ZYDHZ04DwGgw2d7wsgoH5XJPZf0="; + }) + ]; + outputs = [ "out" "man" From 972ddb37b0c51fecffd2c653dabdd0d51b89d877 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 19:30:56 +0000 Subject: [PATCH 098/110] terraform-providers.hashicorp_google: 7.28.0 -> 7.29.0 --- .../networking/cluster/terraform-providers/providers.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 19565598aa5b..7ed19826dd1f 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -571,13 +571,13 @@ "vendorHash": "sha256-xIagZvWtlNpz5SQfxbA7r9ojAeS3CW2pwV337ObKOwU=" }, "hashicorp_google": { - "hash": "sha256-NEPyqlxtpxfpMCygkcN9d/vo/4rwKLJ7qx4WAxgdVPA=", + "hash": "sha256-cgIFxWNm42hKPt9J7qzkcIou736dbLX/adX+R4Y5vIY=", "homepage": "https://registry.terraform.io/providers/hashicorp/google", "owner": "hashicorp", "repo": "terraform-provider-google", - "rev": "v7.28.0", + "rev": "v7.29.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-39r9+dFJYJrzL0EOK3vXLcftOSqyw/pR5q+zm2lipYY=" + "vendorHash": "sha256-mk+fmLdbDBAqwLjQd4xZNW+DK6EDwJYnAMVSSTs2jQM=" }, "hashicorp_google-beta": { "hash": "sha256-iEAe+eRMRSnsxS8CtmF/vr1PwGcMvhnba/eedx+hS6w=", From 7c95d4eff318787775a2e1e4524a5627daf136ec Mon Sep 17 00:00:00 2001 From: Bad3r <25513724+Bad3r@users.noreply.github.com> Date: Thu, 23 Apr 2026 22:30:58 +0300 Subject: [PATCH 099/110] python3Packages.proton-vpn-api-core: 4.19.1 -> 5.0.1 Required by proton-vpn-gtk-app 4.15.3 and proton-vpn-cli 1.0.1, which pin api-core (>= 5.0.0) in debian/control. 5.0.0 is upstream's breaking release ("Packet capture groundwork"); 5.0.1 is the stabilising patch. install_requires and the killswitch_connection_handler postPatch target are unchanged from 4.19.x. --- .../python-modules/proton-vpn-api-core/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/proton-vpn-api-core/default.nix b/pkgs/development/python-modules/proton-vpn-api-core/default.nix index 67a4266df83d..cfc137558050 100644 --- a/pkgs/development/python-modules/proton-vpn-api-core/default.nix +++ b/pkgs/development/python-modules/proton-vpn-api-core/default.nix @@ -27,14 +27,14 @@ buildPythonPackage rec { pname = "proton-vpn-api-core"; - version = "4.19.1"; + version = "5.0.1"; pyproject = true; src = fetchFromGitHub { owner = "ProtonVPN"; repo = "python-proton-vpn-api-core"; rev = "v${version}"; - hash = "sha256-PD/UQ+BoDO6firhlBJDRNrtiHgnp+4uIb8j+egXqxPA="; + hash = "sha256-XdQLgHKNqBNwY51niSiE1HHxLJ3efipS03IUiyHQCiY="; }; postPatch = '' From 6dc9509e9b6cc5f08e6447f971082cb16d57cccf Mon Sep 17 00:00:00 2001 From: Bad3r <25513724+Bad3r@users.noreply.github.com> Date: Thu, 23 Apr 2026 22:31:12 +0300 Subject: [PATCH 100/110] proton-vpn-cli: 1.0.0 -> 1.0.1 1.0.1 is the cli side of upstream's breaking api-core 5.x line ("Pcap groundwork"); its debian/control raises the build-time api-core pin to (>= 5.0.0). --- pkgs/by-name/pr/proton-vpn-cli/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pr/proton-vpn-cli/package.nix b/pkgs/by-name/pr/proton-vpn-cli/package.nix index f937c1a2f31c..c8a05a6faba6 100644 --- a/pkgs/by-name/pr/proton-vpn-cli/package.nix +++ b/pkgs/by-name/pr/proton-vpn-cli/package.nix @@ -9,14 +9,14 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "proton-vpn-cli"; - version = "1.0.0"; + version = "1.0.1"; pyproject = true; src = fetchFromGitHub { owner = "ProtonVPN"; repo = "proton-vpn-cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-TIS1vhiOaX0ADKD1WRiPv+WYj0LwHmUuqyctygpaBho="; + hash = "sha256-CkkytFC3Zr/l2EV5W70kssN1v11F23oZpDvf7JWqmvQ="; }; nativeBuildInputs = [ From aa5d57ddb9203e330ee5f56aba9c35c2b0f2fa08 Mon Sep 17 00:00:00 2001 From: Bad3r <25513724+Bad3r@users.noreply.github.com> Date: Thu, 23 Apr 2026 22:31:25 +0300 Subject: [PATCH 101/110] proton-vpn: 4.15.2 -> 4.15.3 4.15.3 moves the GTK app to the proton-vpn-api-core 5.x line (debian/control: python3-proton-vpn-api-core (>= 5.0.0)). --- pkgs/by-name/pr/proton-vpn/linux.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pr/proton-vpn/linux.nix b/pkgs/by-name/pr/proton-vpn/linux.nix index d14ed210c869..a593f473279f 100644 --- a/pkgs/by-name/pr/proton-vpn/linux.nix +++ b/pkgs/by-name/pr/proton-vpn/linux.nix @@ -14,14 +14,14 @@ }: python3Packages.buildPythonApplication (finalAttrs: { pname = "proton-vpn"; - version = "4.15.2"; + version = "4.15.3"; pyproject = true; src = fetchFromGitHub { owner = "ProtonVPN"; repo = "proton-vpn-gtk-app"; tag = "v${finalAttrs.version}"; - hash = "sha256-spxlYITDo2TZp4Qv47/HmiIaGU07THZXLG5cFIFZrow="; + hash = "sha256-2v8BckNmm7Ecw+uAgOyfofHDPWgXkJJ8DmhMszb0tg0="; }; nativeBuildInputs = [ From 07a3eef24e8c4eb1d83231092eaf4bf0bd285dd6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 19:48:49 +0000 Subject: [PATCH 102/110] kubectl-klock: 0.8.4 -> 0.9.0 --- pkgs/by-name/ku/kubectl-klock/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ku/kubectl-klock/package.nix b/pkgs/by-name/ku/kubectl-klock/package.nix index 213fa45cbf69..c7981dbad5ac 100644 --- a/pkgs/by-name/ku/kubectl-klock/package.nix +++ b/pkgs/by-name/ku/kubectl-klock/package.nix @@ -7,7 +7,7 @@ buildGoModule (finalAttrs: { pname = "kubectl-klock"; - version = "0.8.4"; + version = "0.9.0"; nativeBuildInputs = [ makeWrapper ]; @@ -15,7 +15,7 @@ buildGoModule (finalAttrs: { owner = "applejag"; repo = "kubectl-klock"; rev = "v${finalAttrs.version}"; - hash = "sha256-xfoYK8Ex+gdWPJVARYlGRtZl1Yi63h72bLDJgqUJe3Q="; + hash = "sha256-omnDAhLhI8UoqZtY2d0cjhH38V57tcOIePGKOM+HzHI="; }; ldflags = [ @@ -24,7 +24,7 @@ buildGoModule (finalAttrs: { "-X main.version=${finalAttrs.version}" ]; - vendorHash = "sha256-WiVwRc92xYhk8dBNmYDfrZF0bP61dJJbqWFTFQV7lwg="; + vendorHash = "sha256-f9qru/YrtCP+B43/gwMx4WmiqhuK9weKqj3aAt72yBw="; postInstall = '' makeWrapper $out/bin/kubectl-klock $out/bin/kubectl_complete-klock --add-flags __complete From f3215626e2ab2b3eabaf3b283f62db44630f08fc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 19:54:45 +0000 Subject: [PATCH 103/110] libretro.atari800: 0-unstable-2026-03-31 -> 0-unstable-2026-04-20 --- pkgs/applications/emulators/libretro/cores/atari800.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/emulators/libretro/cores/atari800.nix b/pkgs/applications/emulators/libretro/cores/atari800.nix index 0c25ee669c5d..f70bf7cc8411 100644 --- a/pkgs/applications/emulators/libretro/cores/atari800.nix +++ b/pkgs/applications/emulators/libretro/cores/atari800.nix @@ -5,13 +5,13 @@ }: mkLibretroCore rec { core = "atari800"; - version = "0-unstable-2026-03-31"; + version = "0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "libretro"; repo = "libretro-atari800"; - rev = "a9b9c433d8cb6c8e8eb08d14d3e95b430549723a"; - hash = "sha256-vPv6D+y+n9gMgC78cLBVeNLg3nGEAsTeBGFv+SWgH0A="; + rev = "7f3456f16109c34915d0bad7393b6c4df66c3850"; + hash = "sha256-7C/0i7LUGHY8bz5wp9ut+5EtvLrAUasn0xQzslQQ1fM="; }; makefile = "Makefile"; From 2061a6107e8dadb722eee7f7c7b3463be25a4ab7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 20:06:29 +0000 Subject: [PATCH 104/110] gpg-tui: 0.11.1 -> 0.11.2 --- pkgs/by-name/gp/gpg-tui/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/gp/gpg-tui/package.nix b/pkgs/by-name/gp/gpg-tui/package.nix index e9873c763f32..a54e3c03ed16 100644 --- a/pkgs/by-name/gp/gpg-tui/package.nix +++ b/pkgs/by-name/gp/gpg-tui/package.nix @@ -16,16 +16,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "gpg-tui"; - version = "0.11.1"; + version = "0.11.2"; src = fetchFromGitHub { owner = "orhun"; repo = "gpg-tui"; tag = "v${finalAttrs.version}"; - hash = "sha256-qGm0eHpVFGn8tNdEnmQ4oIfjCxyixMFYdxih7pHvGH0="; + hash = "sha256-DTVtMwKAZjPwT6c7FYoaT12Axoz3j1cMFKjDDsaHyjk="; }; - cargoHash = "sha256-XdT/6N7CJJ8LY0KmkO6PuRdnq1FZvbZrGhky1hmyr2Y="; + cargoHash = "sha256-d2PYJajDKukwDERSjQcPSJaYbZDftNLBYEXq+7ZdlKw="; nativeBuildInputs = [ gpgme # for gpgme-config From 173b57c1215911ec50b5e5f7cf3b4c41f1d3be83 Mon Sep 17 00:00:00 2001 From: Xiangyan Sun Date: Thu, 23 Apr 2026 13:14:11 -0700 Subject: [PATCH 105/110] tengine: fix build with gcc15 --- pkgs/servers/http/tengine/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/http/tengine/default.nix b/pkgs/servers/http/tengine/default.nix index 6c7f37612f9e..7ccd89fef7e0 100644 --- a/pkgs/servers/http/tengine/default.nix +++ b/pkgs/servers/http/tengine/default.nix @@ -132,8 +132,8 @@ stdenv.mkDerivation rec { ++ map (mod: "--add-module=${mod.src}") modules; env.NIX_CFLAGS_COMPILE = - "-I${libxml2.dev}/include/libxml2 -Wno-error=implicit-fallthrough" - + optionalString stdenv.hostPlatform.isDarwin " -Wno-error=deprecated-declarations"; + "-I${libxml2.dev}/include/libxml2 -Wno-error=implicit-fallthrough -Wno-unterminated-string-initialization" + + optionalString stdenv.hostPlatform.isDarwin " -Wno-error=deprecated-declarations -Wno-unused-but-set-variable"; preConfigure = (lib.concatMapStringsSep "\n" (mod: mod.preConfigure or "") modules); From ff92c65bc485d8d43139154d5ba5f88bae70d65f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 23 Apr 2026 21:12:11 +0000 Subject: [PATCH 106/110] python3Packages.docformatter: 1.7.7 -> 1.7.8 --- pkgs/development/python-modules/docformatter/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/docformatter/default.nix b/pkgs/development/python-modules/docformatter/default.nix index 8a912144d29f..8a1ab1cf8dab 100644 --- a/pkgs/development/python-modules/docformatter/default.nix +++ b/pkgs/development/python-modules/docformatter/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "docformatter"; - version = "1.7.7"; + version = "1.7.8"; pyproject = true; src = fetchFromGitHub { owner = "PyCQA"; repo = "docformatter"; tag = "v${version}"; - hash = "sha256-eLjaHso1p/nD9K0E+HkeBbnCnvjZ1sdpfww9tzBh0TI="; + hash = "sha256-Z1ZW5ljWRDnS2mlAmbQyAcE97nU+PrpKaP1aox3VQtQ="; }; patches = [ ./test-path.patch ]; From 83e9800ae7d21482dbeaad5bdfad9533e3125dfe Mon Sep 17 00:00:00 2001 From: Jhony Elmer Angulo Fabian Date: Thu, 23 Apr 2026 16:30:25 -0500 Subject: [PATCH 107/110] codex: 0.122.0 -> 0.124.0 --- pkgs/by-name/co/codex/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/co/codex/package.nix b/pkgs/by-name/co/codex/package.nix index dd9ddcb0d582..191d1c1dac3e 100644 --- a/pkgs/by-name/co/codex/package.nix +++ b/pkgs/by-name/co/codex/package.nix @@ -25,18 +25,18 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "codex"; - version = "0.122.0"; + version = "0.124.0"; src = fetchFromGitHub { owner = "openai"; repo = "codex"; tag = "rust-v${finalAttrs.version}"; - hash = "sha256-CpXWP64URsgt/PhQrUkrT87KG633hxRUIY0wWrTFmjk="; + hash = "sha256-YFnzzwCm9/b30qLDMbkf/rEizuTjeqdCgoBZeS0wNBo="; }; sourceRoot = "${finalAttrs.src.name}/codex-rs"; - cargoHash = "sha256-2qtMLWSdYWJ+blNfCHXtgmzizuM1HgpTGa5RQ3U/AEM="; + cargoHash = "sha256-tuUY+Mg7DwYnYLt1zfqo0rrz5ip0fukxj947yBJAyks="; # Match upstream's release build (codex only) and drop the expensive # release profile tweaks that dominate cold build time in nixpkgs. From 744cbc105fcaf72f784c9aa6f3e66ba42ad8435e Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 24 Apr 2026 00:17:36 +0200 Subject: [PATCH 108/110] python3Packages.genai-prices: 0.0.56 -> 0.0.57 https://github.com/pydantic/genai-prices/compare/v0.0.56...v0.0.57 --- pkgs/development/python-modules/genai-prices/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/genai-prices/default.nix b/pkgs/development/python-modules/genai-prices/default.nix index 2b0168e61040..0169ef60cdf8 100644 --- a/pkgs/development/python-modules/genai-prices/default.nix +++ b/pkgs/development/python-modules/genai-prices/default.nix @@ -13,14 +13,14 @@ buildPythonPackage (finalAttrs: { pname = "genai-prices"; - version = "0.0.56"; + version = "0.0.57"; pyproject = true; src = fetchFromGitHub { owner = "pydantic"; repo = "genai-prices"; tag = "v${finalAttrs.version}"; - hash = "sha256-xiyYK+Dzx4aI9pFpO6mWf860br//PBeIl2N4xRuNQPk="; + hash = "sha256-gEviMu89IL4qSU4/wjGhLo8l1kA5N2alGp+/VcQpEHM="; }; sourceRoot = "${finalAttrs.src.name}/packages/python"; From df356804c4b541336b4be5d59770e7320bb3d1fb Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Thu, 23 Apr 2026 16:24:12 +0000 Subject: [PATCH 109/110] python3Packages.cuda-bindings: fix lib lookups --- .../python-modules/cuda-bindings/default.nix | 56 +++++- .../patch-nvidia-libs-paths.patch | 178 ++++++++++++++++++ 2 files changed, 227 insertions(+), 7 deletions(-) create mode 100644 pkgs/development/python-modules/cuda-bindings/patch-nvidia-libs-paths.patch diff --git a/pkgs/development/python-modules/cuda-bindings/default.nix b/pkgs/development/python-modules/cuda-bindings/default.nix index 69fd864aa433..94fb27fc5182 100644 --- a/pkgs/development/python-modules/cuda-bindings/default.nix +++ b/pkgs/development/python-modules/cuda-bindings/default.nix @@ -3,6 +3,7 @@ buildPythonPackage, fetchFromGitHub, cudaPackages, + replaceVars, addDriverRunpath, # build-system @@ -15,10 +16,9 @@ symlinkJoin, # dependencies - cuda-pathfinder, + numpy, # tests - numpy, pytestCheckHook, # passthru @@ -38,6 +38,21 @@ buildPythonPackage (finalAttrs: { hash = "sha256-uRv27h2b6wXC8oOf5k2KxZ0bUFNvNu6XO05FBbJcU1k="; }; + # Apply patch relative to cuda_bindings + patchFlags = [ "-p2" ]; + + patches = [ + (replaceVars ./patch-nvidia-libs-paths.patch { + libcudart = lib.getLib cudaPackages.cuda_cudart; + libcufile = lib.getLib cudaPackages.libcufile; + libnvfatbin = lib.getLib cudaPackages.libnvfatbin; + libnvjitlink = lib.getLib cudaPackages.libnvjitlink; + libnvml = addDriverRunpath.driverLink; + libnvrtc = lib.getLib cudaPackages.cuda_nvrtc; + libnvvm = "${cudaPackages.cuda_nvcc}/nvvm"; + }) + ]; + sourceRoot = "${finalAttrs.src.name}/cuda_bindings"; postPatch = @@ -90,15 +105,25 @@ buildPythonPackage (finalAttrs: { cudaPackages.libcufile # cufile.h ]; + pythonRemoveDeps = [ + # We circumvent cuda_pathfinder to localize nvidia libs with patches + "cuda-pathfinder" + ]; dependencies = [ - cuda-pathfinder + # Not explicitly listed as a dependency, but is required at import time + numpy ]; pythonImportsCheck = [ "cuda" - "cuda.cuda" - "cuda.cudart" - "cuda.nvrtc" + "cuda.bindings.cufile" + "cuda.bindings.driver" + "cuda.bindings.nvfatbin" + "cuda.bindings.nvjitlink" + "cuda.bindings.nvml" + "cuda.bindings.nvrtc" + "cuda.bindings.nvvm" + "cuda.bindings.runtime" ]; preCheck = '' @@ -106,7 +131,6 @@ buildPythonPackage (finalAttrs: { ''; nativeCheckInputs = [ - numpy pytestCheckHook ]; @@ -123,6 +147,24 @@ buildPythonPackage (finalAttrs: { "tests/test_nvjitlink.py" ]; + disabledTests = [ + # sysfs cpu topology is not available in the sandbox, causing: + # cuda.bindings.nvml.UnknownError: Unknown Error + # hwloc/linux: failed to find sysfs cpu topology directory, aborting linux discovery. + "test_device_get_cpu_affinity_within_scope" + "test_device_get_memory_affinity" + + # Requires the nvidia_fs kernel module (GPUDirect Storage), causing: + # cuda.bindings.cufile.cuFileError: NVFS_SETUP_ERROR (5033): NVFS driver initialization error + "test_buf_register_already_registered" + "test_buf_register_host_memory" + "test_buf_register_invalid_flags" + "test_buf_register_large_buffer" + "test_buf_register_multiple_buffers" + "test_buf_register_simple" + "test_driver_open" + ]; + # Tests need access to a GPU doCheck = false; passthru.gpuCheck = cuda-bindings.overridePythonAttrs { diff --git a/pkgs/development/python-modules/cuda-bindings/patch-nvidia-libs-paths.patch b/pkgs/development/python-modules/cuda-bindings/patch-nvidia-libs-paths.patch new file mode 100644 index 000000000000..abfdf8f5aa4e --- /dev/null +++ b/pkgs/development/python-modules/cuda-bindings/patch-nvidia-libs-paths.patch @@ -0,0 +1,178 @@ +diff --git a/cuda_bindings/cuda/bindings/_bindings/cynvrtc.pyx.in b/cuda_bindings/cuda/bindings/_bindings/cynvrtc.pyx.in +index f684be6870..9437de642b 100644 +--- a/cuda_bindings/cuda/bindings/_bindings/cynvrtc.pyx.in ++++ b/cuda_bindings/cuda/bindings/_bindings/cynvrtc.pyx.in +@@ -8,7 +8,7 @@ cimport cuda.bindings._lib.windll as windll + {{else}} + cimport cuda.bindings._lib.dlfcn as dlfcn + {{endif}} +-from cuda.pathfinder import load_nvidia_dynamic_lib ++from ctypes import CDLL + from libc.stdint cimport intptr_t, uintptr_t + import threading + +@@ -47,7 +47,7 @@ cdef int _cuPythonInit() except -1 nogil: + # Load library + with gil, __symbol_lock: + {{if 'Windows' == platform.system()}} +- handle = load_nvidia_dynamic_lib("nvrtc")._handle_uint ++ handle = CDLL("@libnvrtc@/lib/libnvrtc.so")._handle + + # Load function + {{if 'nvrtcGetErrorString' in found_functions}} +@@ -156,7 +156,7 @@ cdef int _cuPythonInit() except -1 nogil: + {{endif}} + + {{else}} +- handle = (load_nvidia_dynamic_lib("nvrtc")._handle_uint) ++ handle = (CDLL("@libnvrtc@/lib/libnvrtc.so")._handle) + + # Load function + {{if 'nvrtcGetErrorString' in found_functions}} +diff --git a/cuda_bindings/cuda/bindings/_internal/cufile_linux.pyx b/cuda_bindings/cuda/bindings/_internal/cufile_linux.pyx +index 78ea77b283..0b875a6cd3 100644 +--- a/cuda_bindings/cuda/bindings/_internal/cufile_linux.pyx ++++ b/cuda_bindings/cuda/bindings/_internal/cufile_linux.pyx +@@ -9,7 +9,7 @@ import threading + + from .utils import FunctionNotFoundError, NotSupportedError + +-from cuda.pathfinder import load_nvidia_dynamic_lib ++from ctypes import CDLL + + import cython + +@@ -95,7 +95,7 @@ cdef void* __cuFileSetParameterString = NULL + + + cdef void* load_library() except* with gil: +- cdef uintptr_t handle = load_nvidia_dynamic_lib("cufile")._handle_uint ++ cdef uintptr_t handle = CDLL("@libcufile@/lib/libcufile.so")._handle + return handle + + +diff --git a/cuda_bindings/cuda/bindings/_internal/nvfatbin_linux.pyx b/cuda_bindings/cuda/bindings/_internal/nvfatbin_linux.pyx +index f5a9bbd218..8271f7aa20 100644 +--- a/cuda_bindings/cuda/bindings/_internal/nvfatbin_linux.pyx ++++ b/cuda_bindings/cuda/bindings/_internal/nvfatbin_linux.pyx +@@ -9,7 +9,7 @@ from libc.stdint cimport intptr_t, uintptr_t + import threading + from .utils import FunctionNotFoundError, NotSupportedError + +-from cuda.pathfinder import load_nvidia_dynamic_lib ++from ctypes import CDLL + + + ############################################################################### +@@ -73,7 +73,7 @@ cdef void* __nvFatbinAddTileIR = NULL + + + cdef void* load_library() except* with gil: +- cdef uintptr_t handle = load_nvidia_dynamic_lib("nvfatbin")._handle_uint ++ cdef uintptr_t handle = CDLL("@libnvfatbin@/lib/libnvfatbin.so")._handle + return handle + + +diff --git a/cuda_bindings/cuda/bindings/_internal/nvjitlink_linux.pyx b/cuda_bindings/cuda/bindings/_internal/nvjitlink_linux.pyx +index d676aac372..ed3c000566 100644 +--- a/cuda_bindings/cuda/bindings/_internal/nvjitlink_linux.pyx ++++ b/cuda_bindings/cuda/bindings/_internal/nvjitlink_linux.pyx +@@ -9,7 +9,7 @@ from libc.stdint cimport intptr_t, uintptr_t + import threading + from .utils import FunctionNotFoundError, NotSupportedError + +-from cuda.pathfinder import load_nvidia_dynamic_lib ++from ctypes import CDLL + + + ############################################################################### +@@ -76,7 +76,7 @@ cdef void* __nvJitLinkVersion = NULL + + + cdef void* load_library() except* with gil: +- cdef uintptr_t handle = load_nvidia_dynamic_lib("nvJitLink")._handle_uint ++ cdef uintptr_t handle = CDLL("@libnvjitlink@/lib/libnvJitLink.so")._handle + return handle + + +diff --git a/cuda_bindings/cuda/bindings/_internal/nvml_linux.pyx b/cuda_bindings/cuda/bindings/_internal/nvml_linux.pyx +index 28f0919423..852f75e46d 100644 +--- a/cuda_bindings/cuda/bindings/_internal/nvml_linux.pyx ++++ b/cuda_bindings/cuda/bindings/_internal/nvml_linux.pyx +@@ -10,7 +10,7 @@ import threading + + from .utils import FunctionNotFoundError, NotSupportedError + +-from cuda.pathfinder import load_nvidia_dynamic_lib ++from ctypes import CDLL + + + ############################################################################### +@@ -406,7 +406,7 @@ cdef void* __nvmlDeviceSetRusdSettings_v1 = NULL + + + cdef void* load_library() except* with gil: +- cdef uintptr_t handle = load_nvidia_dynamic_lib("nvml")._handle_uint ++ cdef uintptr_t handle = CDLL("@libnvml@/lib/libnvidia-ml.so")._handle + return handle + + +diff --git a/cuda_bindings/cuda/bindings/_internal/nvvm_linux.pyx b/cuda_bindings/cuda/bindings/_internal/nvvm_linux.pyx +index 8a84834a9a..a3ced66807 100644 +--- a/cuda_bindings/cuda/bindings/_internal/nvvm_linux.pyx ++++ b/cuda_bindings/cuda/bindings/_internal/nvvm_linux.pyx +@@ -9,7 +9,7 @@ from libc.stdint cimport intptr_t, uintptr_t + import threading + from .utils import FunctionNotFoundError, NotSupportedError + +-from cuda.pathfinder import load_nvidia_dynamic_lib ++from ctypes import CDLL + + + ############################################################################### +@@ -75,7 +75,7 @@ cdef void* __nvvmGetProgramLog = NULL + + + cdef void* load_library() except* with gil: +- cdef uintptr_t handle = load_nvidia_dynamic_lib("nvvm")._handle_uint ++ cdef uintptr_t handle = CDLL("@libnvvm@/lib/libnvvm.so")._handle + return handle + + +diff --git a/cuda_bindings/cuda/bindings/cyruntime.pyx.in b/cuda_bindings/cuda/bindings/cyruntime.pyx.in +index 5cd65fbd96..fbbcffbbb7 100644 +--- a/cuda_bindings/cuda/bindings/cyruntime.pyx.in ++++ b/cuda_bindings/cuda/bindings/cyruntime.pyx.in +@@ -1874,7 +1874,7 @@ cdef cudaError_t cudaGraphicsVDPAURegisterOutputSurface(cudaGraphicsResource** r + {{if True}} + + from libc.stdint cimport uintptr_t +-from cuda.pathfinder import load_nvidia_dynamic_lib ++from ctypes import CDLL + {{if 'Windows' == platform.system()}} + cimport cuda.bindings._lib.windll as windll + {{else}} +@@ -1884,11 +1884,11 @@ cimport cuda.bindings._lib.dlfcn as dlfcn + cdef cudaError_t getLocalRuntimeVersion(int* runtimeVersion) except ?cudaErrorCallRequiresNewerDriver nogil: + # Load + with gil: +- loaded_dl = load_nvidia_dynamic_lib("cudart") ++ loaded_dl = CDLL("@libcudart@/lib/libcudart.so") + {{if 'Windows' == platform.system()}} +- handle = loaded_dl._handle_uint ++ handle = loaded_dl._handle + {{else}} +- handle = loaded_dl._handle_uint ++ handle = loaded_dl._handle + {{endif}} + + {{if 'Windows' == platform.system()}} +diff --git a/cuda_bindings/cuda/bindings/nvml.pyx b/cuda_bindings/cuda/bindings/nvml.pyx +index 42c9fdcc87..0661379a68 100644 +--- a/cuda_bindings/cuda/bindings/nvml.pyx ++++ b/cuda_bindings/cuda/bindings/nvml.pyx +@@ -27471,4 +27471,3 @@ cpdef str vgpu_type_get_name(unsigned int vgpu_type_id): + __status__ = nvmlVgpuTypeGetName(vgpu_type_id, vgpu_type_name, size) + check_status(__status__) + return cpython.PyUnicode_FromStringAndSize(vgpu_type_name, size[0]) +- From dc1941b1f868396d9a25f56e2a46a7f0c36d3880 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Thu, 23 Apr 2026 23:01:13 +0000 Subject: [PATCH 110/110] python3Packages.wandb: 0.26.0 -> 0.26.1 Diff: https://github.com/wandb/wandb/compare/v0.26.0...v0.26.1 Changelog: https://github.com/wandb/wandb/raw/0.26.1/CHANGELOG.md --- pkgs/development/python-modules/wandb/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/wandb/default.nix b/pkgs/development/python-modules/wandb/default.nix index 4e2612aa225c..2bbc8c5923ec 100644 --- a/pkgs/development/python-modules/wandb/default.nix +++ b/pkgs/development/python-modules/wandb/default.nix @@ -75,12 +75,12 @@ }: let - version = "0.26.0"; + version = "0.26.1"; src = fetchFromGitHub { owner = "wandb"; repo = "wandb"; tag = "v${version}"; - hash = "sha256-pN2vfrexu87202WLes4eIbkU1aVuLpqR676f7AxokT8="; + hash = "sha256-QtMjiRqE9ZhA1S8gHt1F8NBXTq7QQ3ENhk02Lry80F4="; }; wandb-xpu = rustPlatform.buildRustPackage { @@ -90,7 +90,7 @@ let sourceRoot = "${src.name}/xpu"; - cargoHash = "sha256-h5kttUU1KsP+IaXTfqfgRf+7cooRZQzi5i5NmQ9YEA0="; + cargoHash = "sha256-RPvtMV9Mrzb6lJhMR+fi58h/ncvbNkbIjAP35sdaOO0="; checkFlags = [ # fails in sandbox @@ -120,7 +120,7 @@ let sourceRoot = "${src.name}/parquet-rust-wrapper"; - cargoHash = "sha256-fOq1KoWJEDZnchE6ooTmUQZ3DLdlbr2/aYl1qbF2GH4="; + cargoHash = "sha256-w98wliTcVJr4IlmKFVU+glmawMJl5qVCSUSJ8LeceJ8="; # The original build script renames the library: # https://github.com/wandb/wandb/blob/v0.26.0/parquet-rust-wrapper/build.sh#L37-L68