about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--maintainers/team-list.nix1
-rw-r--r--nixos/doc/manual/release-notes/rl-2405.section.md2
-rw-r--r--nixos/modules/services/databases/redis.nix5
-rw-r--r--nixos/tests/redis.nix117
-rw-r--r--nixos/tests/unifi.nix4
-rw-r--r--pkgs/applications/audio/cardinal/default.nix4
-rw-r--r--pkgs/applications/blockchains/optimism/default.nix6
-rw-r--r--pkgs/applications/editors/android-studio/common.nix23
-rw-r--r--pkgs/applications/editors/vscode/extensions/default.nix21
-rw-r--r--pkgs/applications/emulators/dosbox-x/default.nix32
-rw-r--r--pkgs/applications/misc/josm/default.nix10
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubeseal/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix6
-rw-r--r--pkgs/applications/office/morgen/default.nix2
-rw-r--r--pkgs/applications/office/qownnotes/default.nix19
-rw-r--r--pkgs/applications/office/treesheets/default.nix6
-rw-r--r--pkgs/applications/radio/cloudlog/default.nix4
-rw-r--r--pkgs/applications/science/biology/minimap2/default.nix4
-rw-r--r--pkgs/applications/terminal-emulators/foot/default.nix4
-rw-r--r--pkgs/applications/version-management/commitizen/default.nix4
-rw-r--r--pkgs/applications/video/flowblade/default.nix6
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland/default.nix6
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix6
-rw-r--r--pkgs/by-name/au/audiness/package.nix36
-rw-r--r--pkgs/by-name/co/corrscope/package.nix (renamed from pkgs/applications/video/corrscope/default.nix)34
-rw-r--r--pkgs/by-name/cr/crossplane-cli/package.nix6
-rw-r--r--pkgs/by-name/dy/dyalog/dyalogscript.patch20
-rw-r--r--pkgs/by-name/dy/dyalog/mapl.patch31
-rw-r--r--pkgs/by-name/dy/dyalog/package.nix128
-rw-r--r--pkgs/by-name/hy/hyprcursor/package.nix11
-rw-r--r--pkgs/by-name/im/imhex/package.nix18
-rw-r--r--pkgs/by-name/in/insync-nautilus/package.nix48
-rw-r--r--pkgs/by-name/in/insync/package.nix73
-rw-r--r--pkgs/by-name/ke/keydb/package.nix106
-rw-r--r--pkgs/by-name/ko/kokkos/package.nix4
-rw-r--r--pkgs/by-name/li/limine/package.nix4
-rw-r--r--pkgs/by-name/lo/local-ai/package.nix178
-rw-r--r--pkgs/by-name/lo/local-ai/tests.nix160
-rw-r--r--pkgs/by-name/lo/loksh/package.nix4
-rw-r--r--pkgs/by-name/ni/nix-inspect/package.nix60
-rw-r--r--pkgs/by-name/nu/nuclei-templates/package.nix13
-rw-r--r--pkgs/by-name/ob/obs-cmd/package.nix6
-rw-r--r--pkgs/by-name/oc/ocis-bin/package.nix8
-rw-r--r--pkgs/by-name/pa/pacu/package.nix74
-rw-r--r--pkgs/by-name/se/sesh/package.nix4
-rw-r--r--pkgs/by-name/sn/snippetexpander/package.nix21
-rw-r--r--pkgs/by-name/sn/snippetexpanderd/package.nix34
-rw-r--r--pkgs/by-name/sn/snippetexpandergui/package.nix26
-rw-r--r--pkgs/by-name/sn/snippetexpanderx/package.nix10
-rw-r--r--pkgs/by-name/so/solo5/package.nix (renamed from pkgs/os-specific/solo5/default.nix)12
-rw-r--r--pkgs/by-name/st/stackit-cli/package.nix6
-rw-r--r--pkgs/by-name/te/tenki/package.nix6
-rw-r--r--pkgs/data/themes/dracula-theme/default.nix6
-rw-r--r--pkgs/development/php-packages/opentelemetry/default.nix4
-rw-r--r--pkgs/development/python-modules/aioopenexchangerates/default.nix4
-rw-r--r--pkgs/development/python-modules/aiortm/default.nix45
-rw-r--r--pkgs/development/python-modules/asf-search/default.nix55
-rw-r--r--pkgs/development/python-modules/azure-eventgrid/default.nix8
-rw-r--r--pkgs/development/python-modules/boto3-stubs/default.nix4
-rw-r--r--pkgs/development/python-modules/bring-api/default.nix48
-rw-r--r--pkgs/development/python-modules/cwl-utils/default.nix46
-rw-r--r--pkgs/development/python-modules/dsnap/default.nix52
-rw-r--r--pkgs/development/python-modules/exchangelib/default.nix73
-rw-r--r--pkgs/development/python-modules/flask-paginate/default.nix38
-rw-r--r--pkgs/development/python-modules/gekko/default.nix38
-rw-r--r--pkgs/development/python-modules/hahomematic/default.nix20
-rw-r--r--pkgs/development/python-modules/homeassistant-bring-api/default.nix45
-rw-r--r--pkgs/development/python-modules/htmldate/default.nix77
-rw-r--r--pkgs/development/python-modules/jenkins-job-builder/default.nix4
-rw-r--r--pkgs/development/python-modules/junos-eznc/default.nix61
-rw-r--r--pkgs/development/python-modules/langchain-core/default.nix4
-rw-r--r--pkgs/development/python-modules/langchain/default.nix4
-rw-r--r--pkgs/development/python-modules/litellm/default.nix4
-rw-r--r--pkgs/development/python-modules/mypy-boto3/default.nix20
-rw-r--r--pkgs/development/python-modules/publicsuffixlist/default.nix4
-rw-r--r--pkgs/development/python-modules/pyftdi/default.nix32
-rw-r--r--pkgs/development/python-modules/pylitterbot/default.nix4
-rw-r--r--pkgs/development/python-modules/python-roborock/default.nix6
-rw-r--r--pkgs/development/python-modules/qtile/default.nix2
-rw-r--r--pkgs/development/python-modules/sievelib/default.nix32
-rw-r--r--pkgs/development/python-modules/std-uritemplate/default.nix23
-rw-r--r--pkgs/development/tools/check-jsonschema/default.nix4
-rw-r--r--pkgs/development/tools/database/liquibase/default.nix4
-rw-r--r--pkgs/development/tools/melange/default.nix6
-rw-r--r--pkgs/development/tools/misc/blackfire/default.nix12
-rw-r--r--pkgs/development/tools/misc/pest-ide-tools/default.nix6
-rw-r--r--pkgs/kde/gear/akonadi-search/default.nix2
-rw-r--r--pkgs/kde/gear/angelfish/default.nix2
-rw-r--r--pkgs/kde/gear/kdepim-addons/default.nix2
-rw-r--r--pkgs/kde/generated/sources/gear.json1476
-rw-r--r--pkgs/servers/bird/default.nix2
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix6
-rw-r--r--pkgs/servers/home-assistant/custom-components/homematicip_local/default.nix4
-rw-r--r--pkgs/servers/home-assistant/default.nix24
-rw-r--r--pkgs/servers/home-assistant/stubs.nix4
-rw-r--r--pkgs/servers/jackett/default.nix4
-rw-r--r--pkgs/servers/monitoring/vmagent/default.nix4
-rw-r--r--pkgs/servers/nats-server/default.nix6
-rw-r--r--pkgs/servers/nosql/redis/default.nix1
-rw-r--r--pkgs/servers/sonarr/default.nix10
-rw-r--r--pkgs/servers/unifi/default.nix20
-rw-r--r--pkgs/servers/web-apps/bookstack/default.nix4
-rw-r--r--pkgs/servers/web-apps/wordpress/default.nix6
-rw-r--r--pkgs/servers/web-apps/wordpress/packages/languages.json18
-rw-r--r--pkgs/servers/web-apps/wordpress/packages/plugins.json172
-rw-r--r--pkgs/servers/web-apps/wordpress/packages/themes.json40
-rw-r--r--pkgs/tools/admin/auth0-cli/default.nix18
-rw-r--r--pkgs/tools/admin/mycli/default.nix4
-rw-r--r--pkgs/tools/audio/whisper-ctranslate2/default.nix4
-rw-r--r--pkgs/tools/misc/daktilo/default.nix6
-rw-r--r--pkgs/tools/misc/grizzly/default.nix6
-rw-r--r--pkgs/tools/security/enum4linux-ng/default.nix31
-rw-r--r--pkgs/tools/security/gallia/default.nix35
-rw-r--r--pkgs/top-level/aliases.nix5
-rw-r--r--pkgs/top-level/all-packages.nix11
-rw-r--r--pkgs/top-level/python-aliases.nix1
-rw-r--r--pkgs/top-level/python-packages.nix4
118 files changed, 2267 insertions, 1905 deletions
diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index 5a627d45c4ab5..7fcfef5546e26 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -451,6 +451,7 @@ with lib.maintainers; {
     # Verify additions to this team with at least one already existing member of the team.
     members = [
       das_j
+      conni2461
     ];
     scope = "Group registration for packages maintained by Helsinki Systems";
     shortName = "Helsinki Systems employees";
diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md
index 0a044bfc5d1fd..7b315157494fe 100644
--- a/nixos/doc/manual/release-notes/rl-2405.section.md
+++ b/nixos/doc/manual/release-notes/rl-2405.section.md
@@ -217,6 +217,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `services.neo4j.allowUpgrade` was removed and no longer has any effect. Neo4j 5 supports automatic rolling upgrades.
 
+- `unifiLTS`, `unifi5` and `unifi6` have been removed, as they require MongoDB versions which are end-of-life. All these versions can be upgraded to `unifi7` directly.
+
 - `nitter` requires a `guest_accounts.jsonl` to be provided as a path or loaded into the default location at `/var/lib/nitter/guest_accounts.jsonl`. See [Guest Account Branch Deployment](https://github.com/zedeus/nitter/wiki/Guest-Account-Branch-Deployment) for details.
 
 - `boot.supportedFilesystems` and `boot.initrd.supportedFilesystems` are now attribute sets instead of lists. Assignment from lists as done previously is still supported, but checking whether a filesystem is enabled must now by done using `supportedFilesystems.fs or false` instead of using `lib.elem "fs" supportedFilesystems` as was done previously.
diff --git a/nixos/modules/services/databases/redis.nix b/nixos/modules/services/databases/redis.nix
index 2e644895a2602..fe2d75fc53a96 100644
--- a/nixos/modules/services/databases/redis.nix
+++ b/nixos/modules/services/databases/redis.nix
@@ -338,7 +338,7 @@ in {
       after = [ "network.target" ];
 
       serviceConfig = {
-        ExecStart = "${cfg.package}/bin/redis-server /var/lib/${redisName name}/redis.conf ${escapeShellArgs conf.extraParams}";
+        ExecStart = "${cfg.package}/bin/${cfg.package.serverBin or "redis-server"} /var/lib/${redisName name}/redis.conf ${escapeShellArgs conf.extraParams}";
         ExecStartPre = "+"+pkgs.writeShellScript "${redisName name}-prep-conf" (let
           redisConfVar = "/var/lib/${redisName name}/redis.conf";
           redisConfRun = "/run/${redisName name}/nixos.conf";
@@ -391,7 +391,8 @@ in {
         RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ];
         RestrictNamespaces = true;
         LockPersonality = true;
-        MemoryDenyWriteExecute = true;
+        # we need to disable MemoryDenyWriteExecute for keydb
+        MemoryDenyWriteExecute = cfg.package.pname != "keydb";
         RestrictRealtime = true;
         RestrictSUIDSGID = true;
         PrivateMounts = true;
diff --git a/nixos/tests/redis.nix b/nixos/tests/redis.nix
index 94b50d07be6dc..6c84701c9c0a9 100644
--- a/nixos/tests/redis.nix
+++ b/nixos/tests/redis.nix
@@ -1,44 +1,87 @@
-import ./make-test-python.nix ({ pkgs, lib, ... }:
 {
-  name = "redis";
-  meta.maintainers = with lib.maintainers; [ flokli ];
-
-  nodes = {
-    machine =
-      { pkgs, lib, ... }:
-
-      {
-        services.redis.servers."".enable = true;
-        services.redis.servers."test".enable = true;
-
-        users.users = lib.listToAttrs (map (suffix: lib.nameValuePair "member${suffix}" {
-          createHome = false;
-          description = "A member of the redis${suffix} group";
-          isNormalUser = true;
-          extraGroups = [ "redis${suffix}" ];
-        }) ["" "-test"]);
-      };
+  system ? builtins.currentSystem,
+  config ? { },
+  pkgs ? import ../../.. { inherit system config; },
+
+  lib ? pkgs.lib,
+}:
+let
+  makeTest = import ./make-test-python.nix;
+  mkTestName =
+    pkg: "${pkg.pname}_${builtins.replaceStrings [ "." ] [ "" ] (lib.versions.majorMinor pkg.version)}";
+  redisPackages = {
+    inherit (pkgs) redis keydb;
   };
+  makeRedisTest =
+    {
+      package,
+      name ? mkTestName package,
+    }:
+    makeTest {
+      inherit name;
+      meta.maintainers = [
+        lib.maintainers.flokli
+        lib.teams.helsinki-systems.members
+      ];
+
+      nodes = {
+        machine =
+          { lib, ... }:
+
+          {
+            services = {
+              redis = {
+                inherit package;
+                servers."".enable = true;
+                servers."test".enable = true;
+              };
+            };
+
+            users.users = lib.listToAttrs (
+              map
+                (
+                  suffix:
+                  lib.nameValuePair "member${suffix}" {
+                    createHome = false;
+                    description = "A member of the redis${suffix} group";
+                    isNormalUser = true;
+                    extraGroups = [ "redis${suffix}" ];
+                  }
+                )
+                [
+                  ""
+                  "-test"
+                ]
+            );
+          };
+      };
 
-  testScript = { nodes, ... }: let
-    inherit (nodes.machine.config.services) redis;
-    in ''
-    start_all()
-    machine.wait_for_unit("redis")
-    machine.wait_for_unit("redis-test")
+      testScript =
+        { nodes, ... }:
+        let
+          inherit (nodes.machine.services) redis;
+        in
+        ''
+          start_all()
+          machine.wait_for_unit("redis")
+          machine.wait_for_unit("redis-test")
 
-    # The unnamed Redis server still opens a port for backward-compatibility
-    machine.wait_for_open_port(6379)
+          # The unnamed Redis server still opens a port for backward-compatibility
+          machine.wait_for_open_port(6379)
 
-    machine.wait_for_file("${redis.servers."".unixSocket}")
-    machine.wait_for_file("${redis.servers."test".unixSocket}")
+          machine.wait_for_file("${redis.servers."".unixSocket}")
+          machine.wait_for_file("${redis.servers."test".unixSocket}")
 
-    # The unix socket is accessible to the redis group
-    machine.succeed('su member -c "redis-cli ping | grep PONG"')
-    machine.succeed('su member-test -c "redis-cli ping | grep PONG"')
+          # The unix socket is accessible to the redis group
+          machine.succeed('su member -c "${pkgs.redis}/bin/redis-cli ping | grep PONG"')
+          machine.succeed('su member-test -c "${pkgs.redis}/bin/redis-cli ping | grep PONG"')
 
-    machine.succeed("redis-cli ping | grep PONG")
-    machine.succeed("redis-cli -s ${redis.servers."".unixSocket} ping | grep PONG")
-    machine.succeed("redis-cli -s ${redis.servers."test".unixSocket} ping | grep PONG")
-  '';
-})
+          machine.succeed("${pkgs.redis}/bin/redis-cli ping | grep PONG")
+          machine.succeed("${pkgs.redis}/bin/redis-cli -s ${redis.servers."".unixSocket} ping | grep PONG")
+          machine.succeed("${pkgs.redis}/bin/redis-cli -s ${
+            redis.servers."test".unixSocket
+          } ping | grep PONG")
+        '';
+    };
+in
+lib.mapAttrs (_: package: makeRedisTest { inherit package; }) redisPackages
diff --git a/nixos/tests/unifi.nix b/nixos/tests/unifi.nix
index d371bafd69652..789b11b55985c 100644
--- a/nixos/tests/unifi.nix
+++ b/nixos/tests/unifi.nix
@@ -31,8 +31,6 @@ let
     '';
   };
 in with pkgs; {
-  unifiLTS = makeAppTest unifiLTS;
-  unifi5 = makeAppTest unifi5;
-  unifi6 = makeAppTest unifi6;
   unifi7 = makeAppTest unifi7;
+  unifi8 = makeAppTest unifi8;
 }
diff --git a/pkgs/applications/audio/cardinal/default.nix b/pkgs/applications/audio/cardinal/default.nix
index 70d199d43b11e..33ad843db529d 100644
--- a/pkgs/applications/audio/cardinal/default.nix
+++ b/pkgs/applications/audio/cardinal/default.nix
@@ -27,11 +27,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cardinal";
-  version = "23.10";
+  version = "24.04";
 
   src = fetchurl {
     url = "https://github.com/DISTRHO/Cardinal/releases/download/${version}/cardinal+deps-${version}.tar.xz";
-    hash = "sha256-6Wt2sC7vdrz2Fkl08bNLfnGu+pAV7b5lZUmsx1wtJRE=";
+    hash = "sha256-vowDdHAXVZ+HSMoQsvJdzghsJzH+OrSpx6MxPRAgtJA=";
   };
 
   prePatch = ''
diff --git a/pkgs/applications/blockchains/optimism/default.nix b/pkgs/applications/blockchains/optimism/default.nix
index 02ec6b101cc54..7e368b3e686a7 100644
--- a/pkgs/applications/blockchains/optimism/default.nix
+++ b/pkgs/applications/blockchains/optimism/default.nix
@@ -6,19 +6,19 @@
 
 buildGoModule rec {
   pname = "optimism";
-  version = "1.7.2";
+  version = "1.7.3";
 
   src = fetchFromGitHub {
     owner = "ethereum-optimism";
     repo = "optimism";
     rev = "op-node/v${version}";
-    hash = "sha256-p3dbyszUeknAXrI1WqN9WS6AkEYQdVfMP90Kk/L41vM=";
+    hash = "sha256-KKCVjGBQeO5K6wq3GV3f7qaGY1uXNPI27w4DEC31pzU=";
     fetchSubmodules = true;
   };
 
   subPackages = [ "op-node/cmd" "op-proposer/cmd" "op-batcher/cmd" ];
 
-  vendorHash = "sha256-24zj480UU9SYqr2mV6rCJ46gwLgzilLuhqrkNKHVR28=";
+  vendorHash = "sha256-pQhNXOYohBoV5QsBnNpNjFg+Vvk5jK1zvSKkolp4yiQ=";
 
   buildInputs = [
     libpcap
diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix
index 2cd1dff33c729..72814c5edda6f 100644
--- a/pkgs/applications/editors/android-studio/common.nix
+++ b/pkgs/applications/editors/android-studio/common.nix
@@ -21,11 +21,21 @@
 , gzip
 , fontconfig
 , freetype
+, libbsd
 , libpulseaudio
 , libGL
+, libdrm
+, libpng
 , libuuid
 , libX11
 , libxcb
+, libxkbcommon
+, xcbutilwm
+, xcbutilrenderutil
+, xcbutilkeysyms
+, xcbutilimage
+, xcbutilcursor
+, libxkbfile
 , libXcomposite
 , libXcursor
 , libXdamage
@@ -51,6 +61,7 @@
 , which
 , runCommand
 , xkeyboard_config
+, xorg
 , zlib
 , makeDesktopItem
 , tiling_wm # if we are using a tiling wm, need to set _JAVA_AWT_WM_NONREPARENTING in wrapper
@@ -136,15 +147,27 @@ let
           alsa-lib
           dbus
           expat
+          libbsd
           libpulseaudio
           libuuid
           libX11
           libxcb
+          libxkbcommon
+          xcbutilwm
+          xcbutilrenderutil
+          xcbutilkeysyms
+          xcbutilimage
+          xcbutilcursor
+          xorg.libICE
+          xorg.libSM
+          libxkbfile
           libXcomposite
           libXcursor
           libXdamage
           libXfixes
           libGL
+          libdrm
+          libpng
           nspr
           nss_latest
           systemd
diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix
index c23bbd719fe96..6171fd701b34b 100644
--- a/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/default.nix
@@ -4099,6 +4099,27 @@ let
 
       sumneko.lua = callPackage ./sumneko.lua { };
 
+      supermaven.supermaven = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          hash = "sha256-O3AN8fy28ZSun+k6MJnJdFcmwDDE21ib+I9HtDE0JwU=";
+          name = "supermaven";
+          publisher = "supermaven";
+          version = "0.1.42";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/supermaven.supermaven/changelog";
+          description = "A Visual Studio Code extension for code completion suggestions";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=supermaven.supermaven";
+          homepage = "https://supermaven.com/";
+          license = lib.licenses.unfree;
+          longDescription = ''
+            Supermaven uses a 300,000 token context window to provide you the best code completion suggestions and the lowest latency.
+            With our extension you will get the fastest and best completions of any tool on the market.
+          '';
+          maintainers = [ lib.maintainers.msanft ];
+        };
+      };
+
       svelte.svelte-vscode = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "svelte-vscode";
diff --git a/pkgs/applications/emulators/dosbox-x/default.nix b/pkgs/applications/emulators/dosbox-x/default.nix
index c499c69e54421..7ec2b8df3b715 100644
--- a/pkgs/applications/emulators/dosbox-x/default.nix
+++ b/pkgs/applications/emulators/dosbox-x/default.nix
@@ -10,6 +10,7 @@
 , fluidsynth
 , freetype
 , glib
+, libicns
 , libpcap
 , libpng
 , libslirp
@@ -18,6 +19,7 @@
 , makeWrapper
 , ncurses
 , pkg-config
+, python3
 , SDL2
 , SDL2_net
 , testers
@@ -36,12 +38,29 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-EcAp7KyqXdBACEbPgkM1INoKeGVo7hMDUx97y2RcX+k=";
   };
 
+  # sips is unavailable in sandbox, replacing with imagemagick breaks build due to wrong Foundation propagation(?) so don't generate resolution variants
+  # iconutil is unavailable, replace with png2icns from libicns
+  # Patch bad hardcoded compiler
+  # Don't mess with codesign, doesn't seem to work?
+  postPatch = ''
+    substituteInPlace Makefile.am \
+      --replace-fail 'sips' '## sips' \
+      --replace-fail 'iconutil -c icns -o contrib/macos/dosbox.icns src/dosbox.iconset' 'png2icns contrib/macos/dosbox.icns contrib/macos/dosbox-x.png' \
+      --replace-fail 'g++' "$CXX" \
+      --replace-fail 'codesign' '## codesign'
+  '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
+    patchShebangs appbundledeps.py
+  '';
+
   strictDeps = true;
 
   nativeBuildInputs = [
     autoreconfHook
     makeWrapper
     pkg-config
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    libicns
+    python3
   ];
 
   buildInputs = [
@@ -75,9 +94,22 @@ stdenv.mkDerivation (finalAttrs: {
 
   hardeningDisable = [ "format" ]; # https://github.com/joncampbell123/dosbox-x/issues/4436
 
+  # Build optional App Bundle target, which needs at least one arch-suffixed binary
+  postBuild = lib.optionalString stdenv.hostPlatform.isDarwin ''
+    cp src/dosbox-x src/dosbox-x-$(uname -m)
+    make dosbox-x.app
+  '';
+
   postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
     wrapProgram $out/bin/dosbox-x \
       --prefix PATH : ${lib.makeBinPath [ yad ]}
+  ''
+  # Install App Bundle, wrap regular binary into bundle's binary to get the icon working
+  + lib.optionalString stdenv.hostPlatform.isDarwin ''
+    mkdir $out/Applications
+    mv dosbox-x.app $out/Applications/
+    mv $out/bin/dosbox-x $out/Applications/dosbox-x.app/Contents/MacOS/dosbox-x
+    makeWrapper $out/Applications/dosbox-x.app/Contents/MacOS/dosbox-x $out/bin/dosbox-x
   '';
 
   passthru.tests.version = testers.testVersion {
diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix
index 6b5ce0b3c44db..4283d9d92abe1 100644
--- a/pkgs/applications/misc/josm/default.nix
+++ b/pkgs/applications/misc/josm/default.nix
@@ -3,20 +3,20 @@
 }:
 let
   pname = "josm";
-  version = "19017";
+  version = "19039";
   srcs = {
     jar = fetchurl {
       url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
-      hash = "sha256-+PSsvauVe+e+qB7sz9AFmC/dZhWHFHe0zWYPEhgvRIQ=";
+      hash = "sha256-iH6g18lJrvfAvtkAaVPSK7vhgdU6oI7X10GkFcwpsBs=";
     };
     macosx = fetchurl {
-      url = "https://josm.openstreetmap.de/download/macosx/josm-macos-${version}-java17.zip";
-      hash = "sha256-QYvAC+W7gHC5unwfcbQ0sz5U1VkMwIIUkDWQK9vDe2A=";
+      url = "https://josm.openstreetmap.de/download/macosx/josm-macos-${version}-java21.zip";
+      hash = "sha256-yA+Qf76MbouiLdH9o1Ri8ptbG70YZoI13pBA9Ki61/0=";
     };
     pkg = fetchsvn {
       url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
       rev = version;
-      sha256 = "sha256-Pb4EAyvERz6kP3EmkgmUy/58KQHhBJmZJvpAj72GCIk=";
+      sha256 = "sha256-L7P6FtqKLB4e+ezPzXePM33qj5esNoRlTFXi0/GhdsA=";
     };
   };
 
diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix
index 4dd1251c09115..7abf83219becf 100644
--- a/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -24,7 +24,7 @@ let
   vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
 in stdenv.mkDerivation rec {
   pname = "vivaldi";
-  version = "6.6.3271.55";
+  version = "6.6.3271.57";
 
   suffix = {
     aarch64-linux = "arm64";
@@ -34,8 +34,8 @@ in stdenv.mkDerivation rec {
   src = fetchurl {
     url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}-1_${suffix}.deb";
     hash = {
-      aarch64-linux = "sha256-IqCmDqcZDLT1abx67gAsGHR8DVVIAGZ/sifZi8bxUNc=";
-      x86_64-linux = "sha256-n0CHm1Dtd2QhGNhI/9WzQ6CeCyMAHkBpOMC2w3ylk2g=";
+      aarch64-linux = "sha256-v/UG4eL/66i/0sSqN8JmJJIEjHzJjTTDZLRzLMJpJMA=";
+      x86_64-linux = "sha256-uVrEVf9mePqalU2OJRMj0Zy9d7jDXwsdMwEQhn9uUh8=";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
diff --git a/pkgs/applications/networking/cluster/kubeseal/default.nix b/pkgs/applications/networking/cluster/kubeseal/default.nix
index ed5db3c9485da..d6a3f9826dff5 100644
--- a/pkgs/applications/networking/cluster/kubeseal/default.nix
+++ b/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubeseal";
-  version = "0.26.0";
+  version = "0.26.2";
 
   src = fetchFromGitHub {
     owner = "bitnami-labs";
     repo = "sealed-secrets";
     rev = "v${version}";
-    sha256 = "sha256-rOaczDGjocGpYEPJpMiveWE7sHU9L0Csx2nX0Z3IrBs=";
+    sha256 = "sha256-96yaWHRfEHjXYZ9Hsh9bXk5O5viSOYhmwJ18JCbtv2U=";
   };
 
-  vendorHash = "sha256-UicMiSSSQzquNAHFpnWKbybimz3jjbBgWykhyRSU7ZI=";
+  vendorHash = "sha256-91GKy7tNKSOiJmpArgp56RXegYP7sdGpaRAxS9xwTXA=";
 
   subPackages = [ "cmd/kubeseal" ];
 
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index f32df7ccf8683..73d1a85251319 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -167,9 +167,9 @@ rec {
   mkTerraform = attrs: pluggable (generic attrs);
 
   terraform_1 = mkTerraform {
-    version = "1.7.5";
-    hash = "sha256-k/ugXlHK7lEKfOpSBXQNUdcq26rVVdjo53U+7ChJLIc=";
-    vendorHash = "sha256-5sCf65gFpI3y+qwDYvD08OZHNsDMg2IuDL65NMsLQ4Y=";
+    version = "1.8.0";
+    hash = "sha256-An/ElR1tXQSb9x26R5o9gcb4XKTeVxlv+72Whcrdeoc=";
+    vendorHash = "sha256-xpgGceAA+kvwUp4T0m9rnbPoZ3uJHU2KIRsrcGr8dRo=";
     patches = [ ./provider-path-0_15.patch ];
     passthru = {
       inherit plugins;
diff --git a/pkgs/applications/office/morgen/default.nix b/pkgs/applications/office/morgen/default.nix
index 41cae1da04e3b..a77655588464b 100644
--- a/pkgs/applications/office/morgen/default.nix
+++ b/pkgs/applications/office/morgen/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
       --replace '/opt/Morgen' $out/bin
 
     makeWrapper ${electron}/bin/electron $out/bin/morgen \
-      --add-flags $out/opt/Morgen/resources/app.asar
+      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations,WebRTCPipeWireCapturer}} $out/opt/Morgen/resources/app.asar"
 
     runHook postInstall
   '';
diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix
index eb5fde0a3e0d6..d002cf5dffbc6 100644
--- a/pkgs/applications/office/qownnotes/default.nix
+++ b/pkgs/applications/office/qownnotes/default.nix
@@ -14,19 +14,21 @@
 , botan2
 , pkg-config
 , nixosTests
+, installShellFiles
+, xvfb-run
 }:
 
 let
   pname = "qownnotes";
   appname = "QOwnNotes";
-  version = "24.4.0";
+  version = "24.4.1";
 in
 stdenv.mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/pbek/QOwnNotes/releases/download/v${version}/qownnotes-${version}.tar.xz";
-    hash = "sha256-SxoZD5DYuPAJZwBiw38jZYI+e9FExj+TiUlczvbXkWA=";
+    hash = "sha256-E4tLlzjIOElsZr2jcbsnge5jJqKQ0kWf86tFonZ1+Zs=";
   };
 
   nativeBuildInputs = [
@@ -34,6 +36,8 @@ stdenv.mkDerivation {
     qttools
     wrapQtAppsHook
     pkg-config
+    installShellFiles
+    xvfb-run
   ] ++ lib.optionals stdenv.isDarwin [ makeWrapper ];
 
   buildInputs = [
@@ -49,9 +53,16 @@ stdenv.mkDerivation {
     "USE_SYSTEM_BOTAN=1"
   ];
 
-  postInstall =
+  postInstall = ''
+    installShellCompletion --cmd ${appname} \
+      --bash <(xvfb-run $out/bin/${appname} --completion bash --allow-multiple-instances) \
+      --fish <(xvfb-run $out/bin/${appname} --completion fish --allow-multiple-instances)
+    installShellCompletion --cmd ${pname} \
+      --bash <(xvfb-run $out/bin/${appname} --completion bash --allow-multiple-instances) \
+      --fish <(xvfb-run $out/bin/${appname} --completion fish --allow-multiple-instances)
+  ''
   # Create a lowercase symlink for Linux
-  lib.optionalString stdenv.isLinux ''
+  + lib.optionalString stdenv.isLinux ''
     ln -s $out/bin/${appname} $out/bin/${pname}
   ''
   # Wrap application for macOS as lowercase binary
diff --git a/pkgs/applications/office/treesheets/default.nix b/pkgs/applications/office/treesheets/default.nix
index ce728ce2fd75c..c67f53949ce72 100644
--- a/pkgs/applications/office/treesheets/default.nix
+++ b/pkgs/applications/office/treesheets/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "treesheets";
-  version = "unstable-2024-03-30";
+  version = "unstable-2024-04-11";
 
   src = fetchFromGitHub {
     owner = "aardappel";
     repo = "treesheets";
-    rev = "f5b13ed93eacdd62851081d0730ec5f8b306c1e6";
-    sha256 = "CoIvJzfVmblMPH0J45ykpRF7CDLj/Dx+8MpkjiQkMkM=";
+    rev = "5e9e95a34221d4bda584d2130586177e29ee8fe7";
+    sha256 = "X0aB0rJZd9G8S+QWviSAdB/YQMT4lVV3yiELzZs+P3g=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/radio/cloudlog/default.nix b/pkgs/applications/radio/cloudlog/default.nix
index 862bbcdb5e5b2..c7154e8fd3d6f 100644
--- a/pkgs/applications/radio/cloudlog/default.nix
+++ b/pkgs/applications/radio/cloudlog/default.nix
@@ -8,13 +8,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "cloudlog";
-  version = "2.6.7";
+  version = "2.6.8";
 
   src = fetchFromGitHub {
     owner = "magicbug";
     repo = "Cloudlog";
     rev = version;
-    hash = "sha256-blWMfe/eqeccGE5dWVJWV7L1akWnhO3t5n8HbjlJIcA=";
+    hash = "sha256-8D8owjONUMpRpFqKvmxKERCprvHQ1DCavNfqW9VTKAE=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/science/biology/minimap2/default.nix b/pkgs/applications/science/biology/minimap2/default.nix
index eeb31dee0538a..923d72f7fb387 100644
--- a/pkgs/applications/science/biology/minimap2/default.nix
+++ b/pkgs/applications/science/biology/minimap2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "minimap2";
-  version = "2.27";
+  version = "2.28";
 
   src = fetchFromGitHub {
     repo = pname;
     owner = "lh3";
     rev = "v${version}";
-    sha256 = "sha256-F6IJrYD2dk+5bKKVIahLiNnD/Hd/CjNQQd9zz0Gkans=";
+    sha256 = "sha256-cBl2BKgPCP/xHZW6fTH51cY9/lV/1HVLsN7a1R1Blv4=";
   };
 
   buildInputs = [ zlib ];
diff --git a/pkgs/applications/terminal-emulators/foot/default.nix b/pkgs/applications/terminal-emulators/foot/default.nix
index 4c264b751e02a..58f38ec1d5340 100644
--- a/pkgs/applications/terminal-emulators/foot/default.nix
+++ b/pkgs/applications/terminal-emulators/foot/default.nix
@@ -27,7 +27,7 @@
 }:
 
 let
-  version = "1.17.0";
+  version = "1.17.1";
 
   # build stimuli file for PGO build and the script to generate it
   # independently of the foot's build, so we can cache the result
@@ -99,7 +99,7 @@ stdenv.mkDerivation {
     owner = "dnkl";
     repo = "foot";
     rev = version;
-    hash = "sha256-H4a9WQox7vD5HsY9PP0nrNDZtyaRFpsphsv8/qstNH8=";
+    hash = "sha256-B6RhzsOPwczPLJRx3gBFZZvklwx9IwqplRG2vsAPIlg=";
   };
 
   separateDebugInfo = true;
diff --git a/pkgs/applications/version-management/commitizen/default.nix b/pkgs/applications/version-management/commitizen/default.nix
index 714ff6b6c2c7a..454de78abc42a 100644
--- a/pkgs/applications/version-management/commitizen/default.nix
+++ b/pkgs/applications/version-management/commitizen/default.nix
@@ -11,7 +11,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "commitizen";
-  version = "3.21.3";
+  version = "3.22.0";
   format = "pyproject";
 
   disabled = python3.pythonOlder "3.8";
@@ -20,7 +20,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "commitizen-tools";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-4Wz7PRAdsBZ0nX0hxu1XB5Uc13oP1wl86j5V0iHPBoA=";
+    hash = "sha256-wDxhhPYElNPimVa+wX6AnTZrZOhWjuMzNJ6urn0wruk=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/applications/video/flowblade/default.nix b/pkgs/applications/video/flowblade/default.nix
index 004601163190f..4e558d335e03f 100644
--- a/pkgs/applications/video/flowblade/default.nix
+++ b/pkgs/applications/video/flowblade/default.nix
@@ -5,18 +5,18 @@
 
 stdenv.mkDerivation rec {
   pname = "flowblade";
-  version = "2.12.0.2";
+  version = "2.14.0.1";
 
   src = fetchFromGitHub {
     owner = "jliljebl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-SZ/J03PYeAbqQlNQXdqLSduo/5VjQ7VH4eErJqO3Ua0=";
+    sha256 = "sha256-kyW/vYKGy/tgHmev8LgJbGugfKkzKFwLZStQQfWYPuQ=";
   };
 
   buildInputs = [
     ffmpeg frei0r sox gtk3 ladspaPlugins
-    (python3.withPackages (ps: with ps; [ mlt pygobject3 dbus-python numpy pillow ]))
+    (python3.withPackages (ps: with ps; [ mlt pygobject3 dbus-python numpy pillow libusb1 ]))
   ];
 
   nativeBuildInputs = [ gobject-introspection makeWrapper wrapGAppsHook ];
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland/default.nix b/pkgs/applications/window-managers/hyprwm/hyprland/default.nix
index a9d1764eaf1f3..e8da21dba912b 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprland/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprland/default.nix
@@ -49,13 +49,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprland" + lib.optionalString debug "-debug";
-  version = "0.37.1";
+  version = "0.38.1";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
-    hash = "sha256-W+34KhCnqscRXN/IkvuJMiVx0Fa64RcYn8H4sZjzceI=";
+    hash = "sha256-6y422rx8ScSkjR1dNYGYUxBmFewRYlCz9XZZ+XrVZng=";
   };
 
   patches = [
@@ -73,7 +73,7 @@ stdenv.mkDerivation (finalAttrs: {
       --replace "@HASH@" '${finalAttrs.src.rev}' \
       --replace "@BRANCH@" "" \
       --replace "@MESSAGE@" "" \
-      --replace "@DATE@" "2024-03-16" \
+      --replace "@DATE@" "2024-04-06" \
       --replace "@TAG@" "" \
       --replace "@DIRTY@" ""
   '';
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix b/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix
index ddbd6d9fb4db0..53113b3e8bffd 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix
@@ -24,13 +24,13 @@ let
     hy3 = { fetchFromGitHub, cmake, hyprland }:
       mkHyprlandPlugin hyprland {
         pluginName = "hy3";
-        version = "0.36.0-unstable-2024-03-06";
+        version = "0.38.0";
 
         src = fetchFromGitHub {
           owner = "outfoxxed";
           repo = "hy3";
-          rev = "a392bfd13caf865ccf6b9df6917b67cc3a054b82";
-          hash = "sha256-QuapQR9DJI9+vt7xqULYIXx2QCCX1I/YB50c+7ReexU=";
+          rev = "hl0.38.0";
+          hash = "sha256-ZVwX5yM97R6MLk64dQG5KqYOR4L4HxEEV+xzQi+NGrk=";
         };
 
         nativeBuildInputs = [ cmake ];
diff --git a/pkgs/by-name/au/audiness/package.nix b/pkgs/by-name/au/audiness/package.nix
index 1909d5411e624..06d3e4c49a947 100644
--- a/pkgs/by-name/au/audiness/package.nix
+++ b/pkgs/by-name/au/audiness/package.nix
@@ -1,33 +1,37 @@
-{ lib
-, fetchFromGitHub
-, python3
+{
+  lib,
+  fetchFromGitHub,
+  python3,
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "audiness";
-  version = "0.3.1";
+  version = "0.3.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "audiusGmbH";
     repo = "audiness";
     rev = "refs/tags/${version}";
-    hash = "sha256-r+xWwXRKuTp5ifUUlF1K6BIVWh67hNLMBKBB7wnLLAM=";
+    hash = "sha256-vc2k3oEMTgzm/C6z6BieRrT3cSP0IkY+D3RXkNGaZTE=";
   };
 
-  nativeBuildInputs = with python3.pkgs; [
-    poetry-core
-  ];
+  pythonRelaxDeps = [ "validators" ];
 
-  propagatedBuildInputs = with python3.pkgs; [
-    pytenable
-    typer
-    validators
-  ] ++ typer.optional-dependencies.all;
+  build-system = with python3.pkgs; [ poetry-core ];
 
-  pythonImportsCheck = [
-    "audiness"
-  ];
+  nativeBuildInputs = with python3.pkgs; [ pythonRelaxDepsHook ];
+
+  dependencies =
+    with python3.pkgs;
+    [
+      pytenable
+      typer
+      validators
+    ]
+    ++ typer.optional-dependencies.all;
+
+  pythonImportsCheck = [ "audiness" ];
 
   meta = with lib; {
     description = "CLI tool to interact with Nessus";
diff --git a/pkgs/applications/video/corrscope/default.nix b/pkgs/by-name/co/corrscope/package.nix
index 8bd17d2f785e6..a9d83f1a22241 100644
--- a/pkgs/applications/video/corrscope/default.nix
+++ b/pkgs/by-name/co/corrscope/package.nix
@@ -1,49 +1,41 @@
-{ lib
-, mkDerivationWith
+{ stdenv
+, lib
 , python3Packages
 , fetchFromGitHub
-, fetchpatch
-, wrapQtAppsHook
 , ffmpeg
-, qtbase
+, libsForQt5
 , testers
 , corrscope
 }:
 
-mkDerivationWith python3Packages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "corrscope";
-  version = "0.8.1";
-  format = "pyproject";
+  version = "0.9.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "corrscope";
     repo = "corrscope";
     rev = version;
-    hash = "sha256-pS7upOYZAjgR3lWxny8TNZEj3Rrbg+L90ANZWFO9UPQ=";
+    hash = "sha256-kOPhVm4epIhBSsgQVKNCoQ7DZcMG/b3sapxwwKo/V+U=";
   };
 
-  patches = [
-    # https://github.com/corrscope/corrscope/pull/446
-    (fetchpatch {
-      name = "remove-setuptools-dependency.patch";
-      url = "https://github.com/corrscope/corrscope/commit/70b123173a7a012d9f29d6d3a8960b85caf6cc79.patch";
-      hash = "sha256-YCtb7v8cGP0pdceAKeoempnRzw+LRKQqDb3AfN0z/9s=";
-    })
-  ];
-
   pythonRelaxDeps = [ "attrs" "ruamel.yaml" ];
 
-  nativeBuildInputs = [
+  nativeBuildInputs = (with libsForQt5; [
     wrapQtAppsHook
-  ] ++ (with python3Packages; [
+  ]) ++ (with python3Packages; [
     poetry-core
     pythonRelaxDepsHook
   ]);
 
   buildInputs = [
     ffmpeg
+  ] ++ (with libsForQt5; [
     qtbase
-  ];
+  ] ++ lib.optionals stdenv.hostPlatform.isLinux [
+    qtwayland
+  ]);
 
   propagatedBuildInputs = with python3Packages; [
     appdirs
diff --git a/pkgs/by-name/cr/crossplane-cli/package.nix b/pkgs/by-name/cr/crossplane-cli/package.nix
index db921e806f293..c97d2080a28b0 100644
--- a/pkgs/by-name/cr/crossplane-cli/package.nix
+++ b/pkgs/by-name/cr/crossplane-cli/package.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "crossplane-cli";
-  version = "1.15.1";
+  version = "1.15.2";
 
   src = fetchFromGitHub {
     owner = "crossplane";
     repo = "crossplane";
     rev = "v${version}";
-    hash = "sha256-MuPJjVM8Nxm9PLTE3+7KGwmvXJTLfNj5RCh+/kHR0GM=";
+    hash = "sha256-jNaWedK9h4pP+0u1UDHoZ/7l6kVXA2g9Vs0036itk9Q=";
   };
 
-  vendorHash = "sha256-+e3NuSCvUgZANDB9LsvlQn3h9+L1NeQeURKDZd21reo=";
+  vendorHash = "sha256-vYbTkdX3L/AZN9vWUw8NzkPk16BwUzP8zJb22fnsoRo=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/by-name/dy/dyalog/dyalogscript.patch b/pkgs/by-name/dy/dyalog/dyalogscript.patch
index a65878b7adec5..3b15aa5141121 100644
--- a/pkgs/by-name/dy/dyalog/dyalogscript.patch
+++ b/pkgs/by-name/dy/dyalog/dyalogscript.patch
@@ -1,8 +1,22 @@
+diff --git a/scriptbin/dyalogscript b/scriptbin/dyalogscript
+index c99912738ec2..adeda1fe964e 100755
 --- a/scriptbin/dyalogscript
 +++ b/scriptbin/dyalogscript
-@@ -5,1 +5,1 @@
--INSTALLDIR="/opt/mdyalog/18.2/64/unicode"
+@@ -2,7 +2,7 @@
+ #set -x
+ ## DO NOT CHANGE THIS FILE
+ 
+-INSTALLDIR="/opt/mdyalog/19.0/64/unicode"
 +INSTALLDIR="@installdir@"
-@@ -40,1 +40,1 @@
+ EXE="dyalog"
+ 
+ ARGS=""
+@@ -46,7 +46,7 @@ fi
+ #	OPTS="$OPTS RIDE_INIT=$RIDE_INIT"
+ #fi
+ 
 -: ${SCRIPTDIR:=$INSTALLDIR}
 +SCRIPTDIR="@scriptdir@"
+ export LD_LIBRARY_PATH=${SCRIPTDIR}:${LD_LIBRARY_PATH}					
+ 
+ eval "${SCRIPTDIR}/${EXE}" APLKEYS=\"$INSTALLDIR/aplkeys\" APLTRANS=\"$INSTALLDIR/apltrans\" ${APLT} ${APLK} $OPTS -script \"$SCRIPT\" "$ARGS"
diff --git a/pkgs/by-name/dy/dyalog/mapl.patch b/pkgs/by-name/dy/dyalog/mapl.patch
deleted file mode 100644
index 32424bea124ef..0000000000000
--- a/pkgs/by-name/dy/dyalog/mapl.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/mapl b/mapl
-index c9d3727..de24c77 100755
---- a/mapl
-+++ b/mapl
-@@ -20,26 +20,8 @@ SHORTVERSION=182U64
- LONGVERSION="18.2 64-bit Unicode"
- REL="`echo "${LONGVERSION}" | sed 's/ .*$//'`"
- 
--# Find the Dyalog installation directory
--if [ "$(uname)" = Linux ]; then
--	# this script location, canonical.
--	THIS="$(readlink -f $0)"
--else
--	# this script location.
--	THIS="$0"
--fi
--export DYALOG=$(cd $(dirname $THIS) && pwd)
--
- export APL_LANGUAGE_BAR_FILE=${DYALOG}/languagebar.json
- 
--if [ "$(uname)" = Linux ]; then
--	if [ "x" = "x${LD_LIBRARY_PATH}" ]; then
--		export LD_LIBRARY_PATH="${DYALOG}"
--	else
--		export LD_LIBRARY_PATH="${DYALOG}:${LD_LIBRARY_PATH}"
--	fi
--fi
--
- # Setup the configuration directory
- MYCONFIGDIR=${HOME}/.dyalog
- if [ ! -d "${MYCONFIGDIR}" ] ; then
diff --git a/pkgs/by-name/dy/dyalog/package.nix b/pkgs/by-name/dy/dyalog/package.nix
index c8786d5d6baae..fc4b6696c26ba 100644
--- a/pkgs/by-name/dy/dyalog/package.nix
+++ b/pkgs/by-name/dy/dyalog/package.nix
@@ -1,6 +1,5 @@
 { lib
 , stdenv
-, fetchFromGitHub
 , fetchurl
 
 , config
@@ -9,28 +8,19 @@
 , autoPatchelfHook
 , dpkg
 , makeWrapper
-
-, copyDesktopItems
-, makeDesktopItem
-
-, glib
 , ncurses5
 
-, dotnet-sdk_6
+, dotnet-sdk_8
 , dotnetSupport ? false
 
 , alsa-lib
-, gtk2
-, libXdamage
-, libXtst
-, libXScrnSaver
+, gtk3
+, libdrm
+, libGL
+, mesa
 , nss
 , htmlRendererSupport ? false
 
-, R
-, rPackages
-, rSupport ? false
-
 , unixODBC
 , sqaplSupport ? false
 
@@ -42,37 +32,7 @@
 let
   dyalogHome = "$out/lib/dyalog";
 
-  rscproxy = rPackages.buildRPackage {
-    name = "rscproxy";
-    src = fetchFromGitHub {
-      owner = "Dyalog";
-      repo = "rscproxy";
-      rev = "31de3323fb8596ff5ecbf4bacd030e542cfd8133";
-      hash = "sha256-SVoBoAWUmQ+jWaTG7hdmyRq6By4RnmmgWZXoua19/Kg=";
-    };
-  };
-
-  makeWrapperArgs = [
-    "--set DYALOG ${dyalogHome}"
-    # also needs to be set when the `-script` flag is used
-    "--add-flags DYALOG=${dyalogHome}"
-    # needed for default user commands to work
-    "--add-flags SESSION_FILE=${dyalogHome}/default.dse"
-  ]
-  ++ lib.optionals dotnetSupport [
-    # needs to be set to run .NET Bridge
-    "--set DOTNET_ROOT ${dotnet-sdk_6}"
-    # .NET Bridge files are runtime dependencies, but cannot be patchelf'd
-    "--prefix LD_LIBRARY_PATH : ${dyalogHome}"
-  ]
-  ++ lib.optionals rSupport [
-    # RConnect resolves R from PATH
-    "--prefix PATH : ${R}/bin"
-    # RConnect uses `ldd` to find `libR.so`
-    "--prefix LD_LIBRARY_PATH : ${R}/lib/R/lib"
-    # RConnect uses `rscproxy` to communicate with R
-    "--prefix R_LIBS_SITE : ${rscproxy}/library"
-  ];
+  makeWrapperArgs = lib.optional dotnetSupport "--set DOTNET_ROOT ${dotnet-sdk_8}";
 
   licenseUrl = "https://www.dyalog.com/uploads/documents/Developer_Software_Licence.pdf";
 
@@ -91,14 +51,14 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "dyalog";
-  version = "18.2.45405";
+  version = "19.0.48958";
   shortVersion = lib.versions.majorMinor finalAttrs.version;
 
   src =
     assert !acceptLicense -> throw licenseDisclaimer;
     fetchurl {
       url = "https://download.dyalog.com/download.php?file=${finalAttrs.shortVersion}/linux_64_${finalAttrs.version}_unicode.x86_64.deb";
-      sha256 = "sha256-pA/WGTA6YvwG4MgqbiPBLKSKPtLGQM7BzK6Bmyz5pmM=";
+      hash = "sha256-+L9XI7Knt91sG/0E3GFSeqjD9Zs+1n72MDfvsXnr77M=";
     };
 
   outputs = [ "out" ] ++ lib.optional enableDocs "doc";
@@ -107,64 +67,54 @@ stdenv.mkDerivation (finalAttrs: {
     sourceRoot=$sourceRoot/opt/mdyalog/${finalAttrs.shortVersion}/64/unicode
   '';
 
-  patches = [ ./dyalogscript.patch ./mapl.patch ];
-
-  postPatch = lib.optionalString dotnetSupport ''
-    # Patch to use .NET 6.0 instead of .NET Core 3.1 (can be removed when Dyalog 19.0 releases)
-    substituteInPlace Dyalog.Net.Bridge.*.json --replace "3.1" "6.0"
-  '';
+  patches = [ ./dyalogscript.patch ];
 
   nativeBuildInputs = [
     autoPatchelfHook
-    copyDesktopItems
     dpkg
     makeWrapper
   ];
 
   buildInputs = [
-    glib # Used by Conga and .NET Bridge
-    ncurses5 # Used by the dyalog binary
+    stdenv.cc.cc.lib # Used by Conga and .NET Bridge
+    ncurses5 # Used by the dyalog binary to correctly display in the terminal
   ]
   ++ lib.optionals htmlRendererSupport [
     alsa-lib
-    gtk2
-    libXdamage
-    libXtst
-    libXScrnSaver
+    gtk3
+    libdrm
+    libGL
+    mesa
     nss
   ]
-  ++ lib.optionals sqaplSupport [
-    unixODBC
-  ];
+  ++ lib.optional sqaplSupport unixODBC;
 
   # See which files are not really important: `https://github.com/Dyalog/DyalogDocker/blob/master/rmfiles.sh`
   installPhase = ''
     runHook preInstall
 
     mkdir -p ${dyalogHome}
-    cp -r aplfmt aplkeys apltrans fonts Library PublicCACerts SALT StartupSession ${dyalogHome}
-    cp aplkeys.sh default.dse dyalog dyalog.rt dyalog.dcfg.template dyalog.ver.dcfg.template languagebar.json mapl startup.dyalog ${dyalogHome}
+    cp -r aplfmt aplkeys apltrans Experimental fonts Library PublicCACerts SALT StartupSession ${dyalogHome}
+    cp aplkeys.sh default.dse dyalog dyalogc dyalog.rt dyalog.dcfg.template dyalog.ver.dcfg.template languagebar.json mapl StartupSession.aplf ${dyalogHome}
 
     mkdir ${dyalogHome}/lib
-    cp lib/{conga34_64.so,dyalog64.so,libconga34ssl64.so} ${dyalogHome}/lib
+    cp lib/{conga35_64.so,dyalog64.so,libconga35ssl64.so} ${dyalogHome}/lib
 
     # Only keep the most useful workspaces
     mkdir ${dyalogHome}/ws
     cp ws/{conga,dfns,isolate,loaddata,salt,sharpplot,util}.dws ${dyalogHome}/ws
   ''
   + lib.optionalString dotnetSupport ''
-    cp libnethost.so Dyalog.Net.Bridge.* ${dyalogHome}
+    cp libnethost.so Dyalog.Net.Bridge.* Lokad.ILPack.dll ${dyalogHome}
   ''
   + lib.optionalString htmlRendererSupport ''
-    cp -r locales swiftshader ${dyalogHome}
-    cp libcef.so libEGL.so libGLESv2.so chrome-sandbox natives_blob.bin snapshot_blob.bin icudtl.dat v8_context_snapshot.bin *.pak ${dyalogHome}
+    cp -r locales ${dyalogHome}
+    cp libcef.so libEGL.so libGLESv2.so libvk_swiftshader.so libvulkan.so.1 ${dyalogHome}
+    cp chrome-sandbox icudtl.dat snapshot_blob.bin v8_context_snapshot.bin vk_swiftshader_icd.json *.pak ${dyalogHome}
     cp lib/htmlrenderer.so ${dyalogHome}/lib
   ''
-  + lib.optionalString rSupport ''
-    cp ws/rconnect.dws ${dyalogHome}/ws
-  ''
   + lib.optionalString sqaplSupport ''
-    cp lib/cxdya64u64u.so ${dyalogHome}/lib
+    cp lib/cxdya65u64u.so ${dyalogHome}/lib
     cp ws/sqapl.dws ${dyalogHome}/ws
     cp odbc.ini.sample sqapl.err sqapl.ini ${dyalogHome}
   ''
@@ -177,10 +127,12 @@ stdenv.mkDerivation (finalAttrs: {
     ln -s $doc/share/doc/dyalog ${dyalogHome}/help
   ''
   + ''
-    install -Dm644 dyalog.svg $out/share/icons/hicolor/scalable/apps/dyalog.svg
+    install -Dm644 dyalog.svg -t $out/share/icons/hicolor/scalable/apps
+    install -Dm644 dyalog.desktop -t $out/share/applications
 
-    makeWrapper ${dyalogHome}/dyalog $out/bin/dyalog ${lib.concatStringsSep " " makeWrapperArgs}
-    makeWrapper ${dyalogHome}/mapl $out/bin/mapl ${lib.concatStringsSep " " makeWrapperArgs}
+    for exec in "dyalog" "mapl"; do
+        makeWrapper ${dyalogHome}/$exec $out/bin/$exec ${toString makeWrapperArgs}
+    done
 
     install -Dm755 scriptbin/dyalogscript $out/bin/dyalogscript
     substituteInPlace $out/bin/dyalogscript \
@@ -190,24 +142,14 @@ stdenv.mkDerivation (finalAttrs: {
     runHook postInstall
   '';
 
-  preFixup = lib.optionalString htmlRendererSupport ''
-    # `libudev.so` is a runtime dependency of CEF
-    patchelf ${dyalogHome}/libcef.so --add-needed libudev.so
+  # Register some undeclared runtime dependencies to be patched in by autoPatchelfHook
+  preFixup = ''
+    patchelf ${dyalogHome}/dyalog --add-needed libncurses.so
+  ''
+  + lib.optionalString htmlRendererSupport ''
+    patchelf ${dyalogHome}/libcef.so --add-needed libudev.so --add-needed libGL.so
   '';
 
-  desktopItems = [
-    (makeDesktopItem {
-      name = "dyalog";
-      desktopName = "Dyalog";
-      exec = finalAttrs.meta.mainProgram;
-      comment = finalAttrs.meta.description;
-      icon = "dyalog";
-      categories = [ "Development" ];
-      genericName = "APL interpreter";
-      terminal = true;
-    })
-  ];
-
   meta = {
     changelog = "https://dyalog.com/dyalog/dyalog-versions/${lib.replaceStrings [ "." ] [ "" ] finalAttrs.shortVersion}.htm";
     description = "The Dyalog APL interpreter";
diff --git a/pkgs/by-name/hy/hyprcursor/package.nix b/pkgs/by-name/hy/hyprcursor/package.nix
index fa86f0f0f2f20..144c2d71df140 100644
--- a/pkgs/by-name/hy/hyprcursor/package.nix
+++ b/pkgs/by-name/hy/hyprcursor/package.nix
@@ -7,19 +7,25 @@
 , hyprlang
 , librsvg
 , libzip
+, tomlplusplus
 , nix-update-script
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprcursor";
-  version = "0.1.5";
+  version = "0.1.7";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = "hyprcursor";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-e6+fu30inlTIdflotS6l7qYusslKMNkhZVNLn9ZSogg=";
+    hash = "sha256-T0lV+xA07RzroRLwZsGbF9bWZNHInXS+oB0RJ6YdvWg=";
   };
 
+  patches = [
+    # fix icon directories system search path
+    "${finalAttrs.src}/nix/dirs.patch"
+  ];
+
   nativeBuildInputs = [
     cmake
     pkg-config
@@ -30,6 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
     hyprlang
     librsvg
     libzip
+    tomlplusplus
   ];
 
   outputs = [
diff --git a/pkgs/by-name/im/imhex/package.nix b/pkgs/by-name/im/imhex/package.nix
index 7ee075ae18884..a92530f662c9f 100644
--- a/pkgs/by-name/im/imhex/package.nix
+++ b/pkgs/by-name/im/imhex/package.nix
@@ -23,14 +23,14 @@
 }:
 
 let
-  version = "1.32.2";
-  patterns_version = "1.32.2";
+  version = "1.33.2";
+  patterns_version = "1.33.2";
 
   patterns_src = fetchFromGitHub {
     owner = "WerWolv";
     repo = "ImHex-Patterns";
     rev = "ImHex-v${patterns_version}";
-    hash = "sha256-K+LiQvykCrOwhEVy37lh7VSf5YJyBQtLz8AGFsuRznQ=";
+    hash = "sha256-5a6aFT8R8vMzPS+Y+fcDV5+olhioEpLjdMqa7qOyGsw=";
   };
 
 in
@@ -43,19 +43,9 @@ stdenv.mkDerivation rec {
     owner = "WerWolv";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-MYOZHQMYbbP01z0FyoCgTzwY1/71eUCmJYYfYvN9+so=";
+    hash = "sha256-8Ehpk0TjE4itQ7D9Nx74plYwABVufuYmxfxyuSqak1c=";
   };
 
-  patches = [
-    # Backport fixes (and fix to fix) for default plugin not being loaded.
-    (fetchpatch {
-      url = "https://github.com/WerWolv/PatternLanguage/compare/ImHex-v1.32.2..1adcdd358d3772681242267ddd3459c9d0913796.patch";
-      stripLen = 1;
-      extraPrefix = "lib/external/pattern_language/";
-      hash = "sha256-aGvt7vQ6PtFE3sw4rAXUP7Pq8cL29LEKyC0rJKkxOZI=";
-    })
-  ];
-
   nativeBuildInputs = [ cmake llvm python3 perl pkg-config rsync ];
 
   buildInputs = [
diff --git a/pkgs/by-name/in/insync-nautilus/package.nix b/pkgs/by-name/in/insync-nautilus/package.nix
new file mode 100644
index 0000000000000..98079f1a2e88b
--- /dev/null
+++ b/pkgs/by-name/in/insync-nautilus/package.nix
@@ -0,0 +1,48 @@
+{ stdenv,
+  fetchurl,
+  lib,
+  dpkg,
+  gnome,
+  insync
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "insync-nautilus";
+  version = lib.getVersion insync;
+  pyproject = true;
+
+  # Download latest from: https://www.insynchq.com/downloads/linux#nautilus
+
+  src = fetchurl {
+    urls = [
+      "https://cdn.insynchq.com/builds/linux/insync-nautilus_${finalAttrs.version}_all.deb"
+      "https://web.archive.org/web/20240409080611/https://cdn.insynchq.com/builds/linux/insync-nautilus_${finalAttrs.version}_all.deb"
+    ];
+    hash = "sha256-aB1/ZzcQH3T1lviMZO8jXbtdbe4TW20f0TAcv4HDOGI=";
+  };
+
+  nativeBuildInputs = [
+    dpkg
+  ];
+
+  buildInputs = [
+    gnome.nautilus-python
+    insync
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out
+    cp -R usr/share $out/
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    platforms = [ "x86_64-linux" ];
+    sourceProvenance = with lib.sourceTypes; [ fromSource ];
+    license = licenses.unfree;
+    maintainers = with maintainers; [ hellwolf ];
+    homepage = "https://www.insynchq.com";
+    description = "This package contains the Python extension and icons for integrating Insync with Nautilus";
+  };
+})
diff --git a/pkgs/by-name/in/insync/package.nix b/pkgs/by-name/in/insync/package.nix
index b8206c38ce907..7ec64182f9477 100644
--- a/pkgs/by-name/in/insync/package.nix
+++ b/pkgs/by-name/in/insync/package.nix
@@ -6,7 +6,6 @@
 , autoPatchelfHook
 , dpkg
 , nss
-, cacert
 , alsa-lib
 , libvorbis
 , libdrm
@@ -22,36 +21,24 @@ let
   # Find a binary from https://www.insynchq.com/downloads/linux#ubuntu.
   version = "3.8.7.50516";
   ubuntu-dist = "mantic_amd64";
-  meta = with lib; {
-    platforms = ["x86_64-linux"];
-    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
-    license = licenses.unfree;
-    maintainers = with maintainers; [ hellwolf ];
-    homepage = "https://www.insynchq.com";
-    description = "Google Drive sync and backup with multiple account support";
-    longDescription = ''
-     Insync is a commercial application that syncs your Drive files to your
-     computer.  It has more advanced features than Google's official client
-     such as multiple account support, Google Doc conversion, symlink support,
-     and built in sharing.
-
-     There is a 15-day free trial, and it is a paid application after that.
-
-     Known bug(s):
-
-     1) Currently the system try icon does not render correctly.
-    '';
-    mainProgram = "insync";
-  };
-
+  insyncDeb = (fetchurl {
+    urls = [
+      "https://cdn.insynchq.com/builds/linux/insync_${version}-${ubuntu-dist}.deb"
+      "https://web.archive.org/web/20240409080945/https://cdn.insynchq.com/builds/linux/insync_${version}-${ubuntu-dist}.deb"
+    ];
+    hash = "sha256-U7BcgghbdR7r9WiZpEOka+BzXwnxrzL6p4imGESuB/k=";
+  });
+  insyncEmblemIconsDeb = (fetchurl {
+    urls = [
+      "https://cdn.insynchq.com/builds/linux/insync-emblem-icons_${version}_all.deb"
+      "https://web.archive.org/web/20240409081214/https://cdn.insynchq.com/builds/linux/insync-emblem-icons_${version}_all.deb"
+    ];
+    hash = "sha256-uALaIxETEEkjDTx331uIsb4VswWk2K0dGuDMYH8v5U8=";
+  });
   insync-pkg = stdenvNoCC.mkDerivation {
     name = "${pname}-pkg-${version}";
-    inherit version meta;
 
-    src = fetchurl {
-      url = "https://cdn.insynchq.com/builds/linux/insync_${version}-${ubuntu-dist}.deb";
-      sha256 = "sha256-U7BcgghbdR7r9WiZpEOka+BzXwnxrzL6p4imGESuB/k=";
-    };
+    srcs = [ insyncDeb insyncEmblemIconsDeb ];
 
     nativeBuildInputs = [
       dpkg
@@ -71,7 +58,8 @@ let
     ];
 
     unpackPhase = ''
-      dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner
+      dpkg-deb --fsys-tarfile ${insyncDeb} | tar -x --no-same-permissions --no-same-owner
+      dpkg-deb --fsys-tarfile ${insyncEmblemIconsDeb} | tar -x --no-same-permissions --no-same-owner
     '';
 
     installPhase = ''
@@ -88,8 +76,7 @@ let
   };
 
 in buildFHSEnv {
-  name = pname;
-  inherit meta;
+  inherit pname version;
 
   targetPkgs = pkgs: with pkgs; [
     libudev0-shim
@@ -97,7 +84,7 @@ in buildFHSEnv {
   ];
 
   extraInstallCommands = ''
-    cp -rsHf "${insync-pkg}"/share $out
+    cp -rsHf "${insync-pkg}"/share $out/
   '';
 
   runScript = writeShellScript "insync-wrapper.sh" ''
@@ -119,4 +106,26 @@ in buildFHSEnv {
   unshareCgroup = false;
 
   dieWithParent = true;
+
+  meta = with lib; {
+    platforms = [ "x86_64-linux" ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    license = licenses.unfree;
+    maintainers = with maintainers; [ hellwolf ];
+    homepage = "https://www.insynchq.com";
+    description = "Google Drive sync and backup with multiple account support";
+    longDescription = ''
+     Insync is a commercial application that syncs your Drive files to your
+     computer.  It has more advanced features than Google's official client
+     such as multiple account support, Google Doc conversion, symlink support,
+     and built in sharing.
+
+     There is a 15-day free trial, and it is a paid application after that.
+
+     Known bug(s):
+
+     1) Currently the system try icon does not render correctly.
+    '';
+    mainProgram = "insync";
+  };
 }
diff --git a/pkgs/by-name/ke/keydb/package.nix b/pkgs/by-name/ke/keydb/package.nix
new file mode 100644
index 0000000000000..3fc085b40ad9f
--- /dev/null
+++ b/pkgs/by-name/ke/keydb/package.nix
@@ -0,0 +1,106 @@
+{
+  stdenv,
+  lib,
+  fetchFromGitHub,
+  libuuid,
+  curl,
+  pkg-config,
+  withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd,
+  systemd,
+  tlsSupport ? !stdenv.hostPlatform.isStatic,
+  openssl,
+  jemalloc,
+  which,
+  tcl,
+  tcltls,
+  ps,
+  getconf,
+  nixosTests,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "keydb";
+  version = "6.3.4";
+
+  src = fetchFromGitHub {
+    owner = "snapchat";
+    repo = "keydb";
+    rev = "v${version}";
+    hash = "sha256-j6qgK6P3Fv+b6k9jwKQ5zW7XLkKbXXcmHKBCQYvwEIU=";
+  };
+
+  postPatch = ''
+    substituteInPlace deps/lua/src/Makefile \
+      --replace-fail "ar rcu" "${stdenv.cc.targetPrefix}ar rcu"
+    substituteInPlace src/Makefile \
+      --replace-fail "as --64 -g" "${stdenv.cc.targetPrefix}as --64 -g"
+  '';
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [
+    jemalloc
+    curl
+    libuuid
+  ] ++ lib.optionals tlsSupport [ openssl ] ++ lib.optionals withSystemd [ systemd ];
+
+  makeFlags =
+    [
+      "PREFIX=${placeholder "out"}"
+      "AR=${stdenv.cc.targetPrefix}ar"
+      "RANLIB=${stdenv.cc.targetPrefix}ranlib"
+      "USEASM=${if stdenv.isx86_64 then "true" else "false"}"
+    ]
+    ++ lib.optionals (!tlsSupport) [ "BUILD_TLS=no" ]
+    ++ lib.optionals withSystemd [ "USE_SYSTEMD=yes" ]
+    ++ lib.optionals (!stdenv.isx86_64) [ "MALLOC=libc" ];
+
+  enableParallelBuilding = true;
+
+  hardeningEnable = lib.optionals (!stdenv.isDarwin) [ "pie" ];
+
+  # darwin currently lacks a pure `pgrep` which is extensively used here
+  doCheck = !stdenv.isDarwin;
+  nativeCheckInputs = [
+    which
+    tcl
+    ps
+  ] ++ lib.optionals stdenv.hostPlatform.isStatic [ getconf ] ++ lib.optionals tlsSupport [ tcltls ];
+  checkPhase = ''
+    runHook preCheck
+
+    # disable test "Connect multiple replicas at the same time": even
+    # upstream find this test too timing-sensitive
+    substituteInPlace tests/integration/replication.tcl \
+      --replace-fail 'foreach mdl {no yes}' 'foreach mdl {}'
+
+    substituteInPlace tests/support/server.tcl \
+      --replace-fail 'exec /usr/bin/env' 'exec env'
+
+    sed -i '/^proc wait_load_handlers_disconnected/{n ; s/wait_for_condition 50 100/wait_for_condition 50 500/; }' \
+      tests/support/util.tcl
+
+    patchShebangs ./utils/gen-test-certs.sh
+    ${if tlsSupport then "./utils/gen-test-certs.sh" else ""}
+
+    ./runtest \
+      --no-latency \
+      --timeout 2000 \
+      --clients $NIX_BUILD_CORES \
+      --tags -leaks ${if tlsSupport then "--tls" else ""}
+
+    runHook postCheck
+  '';
+
+  passthru.tests.redis = nixosTests.redis;
+  passthru.serverBin = "keydb-server";
+
+  meta = with lib; {
+    homepage = "https://keydb.dev";
+    description = "A Multithreaded Fork of Redis";
+    license = licenses.bsd3;
+    platforms = platforms.all;
+    changelog = "https://github.com/Snapchat/KeyDB/raw/v${version}/00-RELEASENOTES";
+    maintainers = teams.helsinki-systems.members;
+    mainProgram = "keydb-cli";
+  };
+}
diff --git a/pkgs/by-name/ko/kokkos/package.nix b/pkgs/by-name/ko/kokkos/package.nix
index 09dc6fc4edd02..33634ddfaca9e 100644
--- a/pkgs/by-name/ko/kokkos/package.nix
+++ b/pkgs/by-name/ko/kokkos/package.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "kokkos";
-  version = "4.2.01";
+  version = "4.3.00";
 
   src = fetchFromGitHub {
     owner = "kokkos";
     repo = "kokkos";
     rev = finalAttrs.version;
-    hash = "sha256-d8GB7+hHqpD5KPeYmiXmT5+6W64j3bbTs2hoFYJnfa8=";
+    hash = "sha256-0MMztgw+okZM/xr2vQucwkkT04iueQSlSQJ6MN/756I=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/li/limine/package.nix b/pkgs/by-name/li/limine/package.nix
index cb1beb378a7bf..52a6ba51c2f49 100644
--- a/pkgs/by-name/li/limine/package.nix
+++ b/pkgs/by-name/li/limine/package.nix
@@ -12,7 +12,7 @@
 }:
 
 let
-  version = "7.3.0";
+  version = "7.3.1";
 in
 # The output of the derivation is a tool to create bootable images using Limine
 # as bootloader for various platforms and corresponding binary and helper files.
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   # Packaging that in Nix is very cumbersome.
   src = fetchurl {
     url = "https://github.com/limine-bootloader/limine/releases/download/v${version}/limine-${version}.tar.gz";
-    sha256 = "sha256-iPi6u3iZOJfVRERrJVgH6q16aANnSGgBL5AtNuANrao=";
+    sha256 = "sha256-xlOBBb281W9QT5Fv2Hgw/eyh7K3oyaNY1yU6WktbFro=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/lo/local-ai/package.nix b/pkgs/by-name/lo/local-ai/package.nix
index aadca32a3198d..7142a529b4865 100644
--- a/pkgs/by-name/lo/local-ai/package.nix
+++ b/pkgs/by-name/lo/local-ai/package.nix
@@ -1,4 +1,5 @@
 { config
+, callPackages
 , stdenv
 , lib
 , addDriverRunpath
@@ -14,8 +15,6 @@
 , pkg-config
 , buildGoModule
 , makeWrapper
-, runCommand
-, testers
 
   # apply feature parameter names according to
   # https://github.com/NixOS/rfcs/pull/169
@@ -27,9 +26,6 @@
 , enable_f16c ? true
 , enable_fma ? true
 
-, with_tinydream ? false
-, ncnn
-
 , with_openblas ? false
 , openblas
 
@@ -41,24 +37,19 @@
 , ocl-icd
 , opencl-headers
 
-, with_stablediffusion ? false
+, with_tinydream ? false # do not compile with cublas
+, ncnn
+
+, with_stablediffusion ? true
 , opencv
 
-, with_tts ? false
+, with_tts ? true
 , onnxruntime
 , sonic
 , spdlog
 , fmt
 , espeak-ng
 , piper-tts
-
-  # tests
-, fetchzip
-, fetchurl
-, writeText
-, symlinkJoin
-, linkFarmFromDrvs
-, jq
 }:
 let
   BUILD_TYPE =
@@ -68,21 +59,7 @@ let
     else if with_clblas then "clblas"
     else "";
 
-  inherit (cudaPackages) libcublas cuda_nvcc cuda_cccl cuda_cudart;
-
-  typedBuiltInputs =
-    lib.optionals with_cublas
-      [
-        cuda_nvcc # should be part of nativeBuildInputs
-        cuda_cudart
-        cuda_cccl
-        (lib.getDev libcublas)
-        (lib.getLib libcublas)
-      ]
-    ++ lib.optionals with_clblas
-      [ clblast ocl-icd opencl-headers ]
-    ++ lib.optionals with_openblas
-      [ openblas.dev ];
+  inherit (cudaPackages) libcublas cuda_nvcc cuda_cccl cuda_cudart cudatoolkit;
 
   go-llama-ggml = effectiveStdenv.mkDerivation {
     name = "go-llama-ggml";
@@ -97,9 +74,18 @@ let
       "libbinding.a"
       "BUILD_TYPE=${BUILD_TYPE}"
     ];
-    buildInputs = typedBuiltInputs;
+
+    buildInputs = [ ]
+      ++ lib.optionals with_clblas [ clblast ocl-icd opencl-headers ]
+      ++ lib.optionals with_openblas [ openblas.dev ];
+
+    nativeBuildInputs = [ cmake ]
+      # backward compatiblity with nixos-23.11
+      # use cuda_nvcc after release of nixos-24.05
+      ++ lib.optionals with_cublas [ cudatoolkit ];
+
     dontUseCmakeConfigure = true;
-    nativeBuildInputs = [ cmake ];
+
     installPhase = ''
       mkdir $out
       tar cf - --exclude=build --exclude=CMakeFiles --exclude="*.o" . \
@@ -112,8 +98,8 @@ let
     src = fetchFromGitHub {
       owner = "ggerganov";
       repo = "llama.cpp";
-      rev = "b06c16ef9f81d84da520232c125d4d8a1d273736";
-      hash = "sha256-t1AIx/Ir5RhasjblH4BSpGOXVvO84SJPSqa7rXWj6b4=";
+      rev = "1b67731e184e27a465b8c5476061294a4af668ea";
+      hash = "sha256-0WWbsklpW6HhFRkvWpYh8Lhi8VIansS/zmyIKNQRkIs=";
       fetchSubmodules = true;
     };
     postPatch = prev.postPatch + ''
@@ -266,13 +252,20 @@ let
     src = fetchFromGitHub {
       owner = "ggerganov";
       repo = "whisper.cpp";
-      rev = "1558ec5a16cb2b2a0bf54815df1d41f83dc3815b";
-      hash = "sha256-UAqWU3kvkHM+fV+T6gFVsAKuOG6N4FoFgTKGUptwjmE=";
+      rev = "8f253ef3af1c62c04316ba4afa7145fc4d701a8c";
+      hash = "sha256-yHHjhpQIn99A/hqFwAb7TfTf4Q9KnKat93zyXS70bT8=";
     };
-    nativeBuildInputs = [ cmake pkg-config ];
-    buildInputs = typedBuiltInputs;
+
+    nativeBuildInputs = [ cmake pkg-config ]
+      ++ lib.optionals with_cublas [ cuda_nvcc ];
+
+    buildInputs = [ ]
+      ++ lib.optionals with_cublas [ cuda_cccl cuda_cudart libcublas ]
+      ++ lib.optionals with_clblas [ clblast ocl-icd opencl-headers ]
+      ++ lib.optionals with_openblas [ openblas.dev ];
+
     cmakeFlags = [
-      (lib.cmakeBool "WHISPER_CUBLAS" with_cublas)
+      (lib.cmakeBool "WHISPER_CUDA" with_cublas)
       (lib.cmakeBool "WHISPER_CLBLAST" with_clblas)
       (lib.cmakeBool "WHISPER_OPENBLAS" with_openblas)
       (lib.cmakeBool "WHISPER_NO_AVX" (!enable_avx))
@@ -342,19 +335,19 @@ let
     ];
   });
 
-  go-tiny-dream = stdenv.mkDerivation {
+  go-tiny-dream = effectiveStdenv.mkDerivation {
     name = "go-tiny-dream";
     src = fetchFromGitHub {
       owner = "M0Rf30";
       repo = "go-tiny-dream";
-      rev = "772a9c0d9aaf768290e63cca3c904fe69faf677a";
-      hash = "sha256-r+wzFIjaI6cxAm/eXN3q8LRZZz+lE5EA4lCTk5+ZnIY=";
+      rev = "22a12a4bc0ac5455856f28f3b771331a551a4293";
+      hash = "sha256-DAVHD6E0OKHf4C2ldoI0Mm7813DIrmWFONUhSCQPCfc=";
       fetchSubmodules = true;
     };
     postUnpack = ''
       rm -rf source/ncnn
-      mkdir -p source/ncnn/build
-      cp -r --no-preserve=mode ${go-tiny-dream-ncnn} source/ncnn/build/install
+      mkdir -p source/ncnn/build/src
+      cp -r --no-preserve=mode ${go-tiny-dream-ncnn}/lib/. ${go-tiny-dream-ncnn}/include/. source/ncnn/build/src
     '';
     buildFlags = [ "libtinydream.a" ];
     installPhase = ''
@@ -378,18 +371,18 @@ let
       stdenv;
 
   pname = "local-ai";
-  version = "2.11.0";
+  version = "2.12.3";
   src = fetchFromGitHub {
     owner = "go-skynet";
     repo = "LocalAI";
     rev = "v${version}";
-    hash = "sha256-Sqo4NOggUNb1ZemT9TRknBmz8dThe/X43R+4JFfQJ4M=";
+    hash = "sha256-/Q0t5OozpgqmjUOYHvVAj1k7VnIixfOS8gNAguuu6p0=";
   };
 
   self = buildGoModule.override { stdenv = effectiveStdenv; } {
     inherit pname version src;
 
-    vendorHash = "sha256-3bOr8DnAjTzOpVDB5wmlPxECNteWw3tI0yc1f2Wt4y0=";
+    vendorHash = "sha256-8Hu1y/PK21twnB7D22ltslFFzRrsB8d1R2hkgIFB/XY=";
 
     env.NIX_CFLAGS_COMPILE = lib.optionalString with_stablediffusion " -isystem ${opencv}/include/opencv4";
 
@@ -415,11 +408,15 @@ let
       ''
     ;
 
-    buildInputs = typedBuiltInputs
-      ++ lib.optional with_stablediffusion go-stable-diffusion.buildInputs
-      ++ lib.optional with_tts go-piper.buildInputs;
+    buildInputs = [ ]
+      ++ lib.optionals with_cublas [ libcublas ]
+      ++ lib.optionals with_clblas [ clblast ocl-icd opencl-headers ]
+      ++ lib.optionals with_openblas [ openblas.dev ]
+      ++ lib.optionals with_stablediffusion go-stable-diffusion.buildInputs
+      ++ lib.optionals with_tts go-piper.buildInputs;
 
-    nativeBuildInputs = [ makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ]
+      ++ lib.optionals with_cublas [ cuda_nvcc ];
 
     enableParallelBuilding = false;
 
@@ -500,84 +497,7 @@ let
         with_tinydream with_clblas;
     };
 
-    passthru.tests = {
-      version = testers.testVersion {
-        package = self;
-        version = "v" + version;
-      };
-      health =
-        let
-          port = "8080";
-        in
-        testers.runNixOSTest {
-          name = pname + "-health";
-          nodes.machine = {
-            systemd.services.local-ai = {
-              wantedBy = [ "multi-user.target" ];
-              serviceConfig.ExecStart = "${self}/bin/local-ai --debug --localai-config-dir . --address :${port}";
-            };
-          };
-          testScript = ''
-            machine.wait_for_open_port(${port})
-            machine.succeed("curl -f http://localhost:${port}/readyz")
-          '';
-        };
-    }
-    // lib.optionalAttrs with_tts {
-      # https://localai.io/features/text-to-audio/#piper
-      tts =
-        let
-          port = "8080";
-          voice-en-us = fetchzip {
-            url = "https://github.com/rhasspy/piper/releases/download/v0.0.2/voice-en-us-danny-low.tar.gz";
-            hash = "sha256-5wf+6H5HeQY0qgdqnAG1vSqtjIFM9lXH53OgouuPm0M=";
-            stripRoot = false;
-          };
-          ggml-tiny-en = fetchurl {
-            url = "https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-tiny.en-q5_1.bin";
-            hash = "sha256-x3xXZvHO8JtrfUfyG1Rsvd1BV4hrO11tT3CekeZsfCs=";
-          };
-          whisper-en = {
-            name = "whisper-en";
-            backend = "whisper";
-            parameters.model = ggml-tiny-en.name;
-          };
-          models = symlinkJoin {
-            name = "models";
-            paths = [
-              voice-en-us
-              (linkFarmFromDrvs "whisper-en" [
-                (writeText "whisper-en.yaml" (builtins.toJSON whisper-en))
-                ggml-tiny-en
-              ])
-            ];
-          };
-        in
-        testers.runNixOSTest {
-          name = pname + "-tts";
-          nodes.machine = {
-            systemd.services.local-ai = {
-              wantedBy = [ "multi-user.target" ];
-              serviceConfig.ExecStart = "${self}/bin/local-ai --debug --models-path ${models} --localai-config-dir . --address :${port}";
-            };
-          };
-          testScript =
-            let
-              request = {
-                model = "en-us-danny-low.onnx";
-                backend = "piper";
-                input = "Hello, how are you?";
-              };
-            in
-            ''
-              machine.wait_for_open_port(${port})
-              machine.succeed("curl -f http://localhost:${port}/readyz")
-              machine.succeed("curl -f http://localhost:${port}/tts --json @${writeText "request.json" (builtins.toJSON request)} --output out.wav")
-              machine.succeed("curl -f http://localhost:${port}/v1/audio/transcriptions --header 'Content-Type: multipart/form-data' --form file=@out.wav --form model=${whisper-en.name} --output transcription.json")
-              machine.succeed("${jq}/bin/jq --exit-status 'debug | .segments | first.text == \"${request.input}\"' transcription.json")
-            '';
-        };
-    };
+    passthru.tests = callPackages ./tests.nix { inherit self; };
 
     meta = with lib; {
       description = "OpenAI alternative to run local LLMs, image and audio generation";
diff --git a/pkgs/by-name/lo/local-ai/tests.nix b/pkgs/by-name/lo/local-ai/tests.nix
new file mode 100644
index 0000000000000..82d1b775dab82
--- /dev/null
+++ b/pkgs/by-name/lo/local-ai/tests.nix
@@ -0,0 +1,160 @@
+{ self
+, lib
+, testers
+, fetchzip
+, fetchurl
+, writers
+, symlinkJoin
+, linkFarmFromDrvs
+, jq
+}:
+{
+  version = testers.testVersion {
+    package = self;
+    version = "v" + self.version;
+  };
+
+  health =
+    let
+      port = "8080";
+    in
+    testers.runNixOSTest {
+      name = self.name + "-health";
+      nodes.machine = {
+        systemd.services.local-ai = {
+          wantedBy = [ "multi-user.target" ];
+          serviceConfig.ExecStart = "${self}/bin/local-ai --debug --localai-config-dir . --address :${port}";
+        };
+      };
+      testScript = ''
+        machine.wait_for_open_port(${port})
+        machine.succeed("curl -f http://localhost:${port}/readyz")
+      '';
+    };
+
+  # https://localai.io/docs/getting-started/manual/
+  llama =
+    let
+      port = "8080";
+      gguf = fetchurl {
+        url = "https://huggingface.co/TheBloke/Luna-AI-Llama2-Uncensored-GGUF/resolve/main/luna-ai-llama2-uncensored.Q4_K_M.gguf";
+        sha256 = "6a9dc401c84f0d48996eaa405174999c3a33bf12c2bfd8ea4a1e98f376de1f15";
+      };
+      models = linkFarmFromDrvs "models" [
+        gguf
+      ];
+    in
+    testers.runNixOSTest {
+      name = self.name + "-llama";
+      nodes.machine =
+        let
+          cores = 4;
+        in
+        {
+          virtualisation = {
+            inherit cores;
+            memorySize = 8192;
+          };
+          systemd.services.local-ai = {
+            wantedBy = [ "multi-user.target" ];
+            serviceConfig.ExecStart = "${self}/bin/local-ai --debug --threads ${toString cores} --models-path ${models} --localai-config-dir . --address :${port}";
+          };
+        };
+      testScript =
+        let
+          # https://localai.io/features/text-generation/#chat-completions
+          request-chat-completions = {
+            model = gguf.name;
+            messages = [{ role = "user"; content = "Say this is a test!"; }];
+            temperature = 0.7;
+          };
+          # https://localai.io/features/text-generation/#edit-completions
+          request-edit-completions = {
+            model = gguf.name;
+            instruction = "rephrase";
+            input = "Black cat jumped out of the window";
+            temperature = 0.7;
+          };
+          # https://localai.io/features/text-generation/#completions
+          request-completions = {
+            model = gguf.name;
+            prompt = "A long time ago in a galaxy far, far away";
+            temperature = 0.7;
+          };
+        in
+        ''
+          machine.wait_for_open_port(${port})
+          machine.succeed("curl -f http://localhost:${port}/readyz")
+          machine.succeed("curl -f http://localhost:${port}/v1/models --output models.json")
+          machine.succeed("${jq}/bin/jq --exit-status 'debug | .data[].id == \"${gguf.name}\"' models.json")
+          machine.succeed("curl -f http://localhost:${port}/v1/chat/completions --json @${writers.writeJSON "request-chat-completions.json" request-chat-completions} --output chat-completions.json")
+          machine.succeed("${jq}/bin/jq --exit-status 'debug | .object == \"chat.completion\"' chat-completions.json")
+          machine.succeed("curl -f http://localhost:${port}/v1/edits --json @${writers.writeJSON "request-edit-completions.json" request-edit-completions} --output edit-completions.json")
+          machine.succeed("${jq}/bin/jq --exit-status 'debug | .object == \"edit\"' edit-completions.json")
+          machine.succeed("curl -f http://localhost:${port}/v1/completions --json @${writers.writeJSON "request-completions.json" request-completions} --output completions.json")
+          machine.succeed("${jq}/bin/jq --exit-status 'debug | .object ==\"text_completion\"' completions.json")
+        '';
+    };
+
+} // lib.optionalAttrs self.features.with_tts {
+  # https://localai.io/features/text-to-audio/#piper
+  tts =
+    let
+      port = "8080";
+      voice-en-us = fetchzip {
+        url = "https://github.com/rhasspy/piper/releases/download/v0.0.2/voice-en-us-danny-low.tar.gz";
+        hash = "sha256-5wf+6H5HeQY0qgdqnAG1vSqtjIFM9lXH53OgouuPm0M=";
+        stripRoot = false;
+      };
+      ggml-tiny-en = fetchurl {
+        url = "https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-tiny.en-q5_1.bin";
+        hash = "sha256-x3xXZvHO8JtrfUfyG1Rsvd1BV4hrO11tT3CekeZsfCs=";
+      };
+      whisper-en = {
+        name = "whisper-en";
+        backend = "whisper";
+        parameters.model = ggml-tiny-en.name;
+      };
+      models = symlinkJoin {
+        name = "models";
+        paths = [
+          voice-en-us
+          (linkFarmFromDrvs "whisper-en" [
+            (writers.writeYAML "whisper-en.yaml" whisper-en)
+            ggml-tiny-en
+          ])
+        ];
+      };
+    in
+    testers.runNixOSTest {
+      name = self.name + "-tts";
+      nodes.machine =
+        let
+          cores = 2;
+        in
+        {
+          virtualisation = {
+            inherit cores;
+          };
+          systemd.services.local-ai = {
+            wantedBy = [ "multi-user.target" ];
+            serviceConfig.ExecStart = "${self}/bin/local-ai --debug --threads ${toString cores} --models-path ${models} --localai-config-dir . --address :${port}";
+          };
+        };
+      testScript =
+        let
+          request = {
+            model = "en-us-danny-low.onnx";
+            backend = "piper";
+            input = "Hello, how are you?";
+          };
+        in
+        ''
+          machine.wait_for_open_port(${port})
+          machine.succeed("curl -f http://localhost:${port}/readyz")
+          machine.succeed("curl -f http://localhost:${port}/tts --json @${writers.writeJSON "request.json" request} --output out.wav")
+          machine.succeed("curl -f http://localhost:${port}/v1/audio/transcriptions --header 'Content-Type: multipart/form-data' --form file=@out.wav --form model=${whisper-en.name} --output transcription.json")
+          machine.succeed("${jq}/bin/jq --exit-status 'debug | .segments | first.text == \"${request.input}\"' transcription.json")
+        '';
+    };
+}
diff --git a/pkgs/by-name/lo/loksh/package.nix b/pkgs/by-name/lo/loksh/package.nix
index 01143fae7b525..f397ac95a8507 100644
--- a/pkgs/by-name/lo/loksh/package.nix
+++ b/pkgs/by-name/lo/loksh/package.nix
@@ -9,14 +9,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "loksh";
-  version = "7.4";
+  version = "7.5";
 
   src = fetchFromGitHub {
     owner = "dimkr";
     repo = "loksh";
     rev = finalAttrs.version;
     fetchSubmodules = true;
-    hash = "sha256-gQK9gq6MsKVyOikOW0sW/SbIM1K/3I8pn58P/SqzKys=";
+    hash = "sha256-4cBO1FXUnN/swwEeM2lq5RJJGmLKInMLZkz942EKy6k=";
   };
 
   outputs = [ "out" "doc" "man" ];
diff --git a/pkgs/by-name/ni/nix-inspect/package.nix b/pkgs/by-name/ni/nix-inspect/package.nix
new file mode 100644
index 0000000000000..8d7d39a40b6a8
--- /dev/null
+++ b/pkgs/by-name/ni/nix-inspect/package.nix
@@ -0,0 +1,60 @@
+{
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+  boost,
+  nlohmann_json,
+  nixVersions,
+  pkg-config,
+  meson,
+  ninja,
+  stdenv,
+}: let
+  src = fetchFromGitHub {
+    owner = "bluskript";
+    repo = "nix-inspect";
+    rev = "3d0fea2bb246130825548fce331093ee9cc9c20b";
+    hash = "sha256-JichXRSfTLfy+7fhbTvA89rQLkqsY2eHgEAeAHWbA9s=";
+  };
+
+  workerPackage = stdenv.mkDerivation {
+    inherit src;
+
+    pname = "nix-inspect-worker";
+    version = "0.1.0";
+    sourceRoot = "source/worker";
+
+    nativeBuildInputs = [meson ninja pkg-config];
+
+    buildInputs = [
+      boost
+      nlohmann_json
+      nixVersions.nix_2_19.dev
+    ];
+
+    mesonBuildType = "release";
+  };
+in
+  rustPlatform.buildRustPackage {
+    inherit src;
+    pname = "nix-inspect";
+    version = "0.1.0";
+
+    cargoHash = "sha256-FdpHdw7bg/nEG4GjYhrdIDB4MJ4n5LoWnW4mTG2Lh5I=";
+
+    buildInputs = [workerPackage];
+
+    postPatch = ''
+      substituteInPlace src/workers.rs \
+        --replace-fail 'env!("WORKER_BINARY_PATH")' '"${workerPackage}/bin/nix-inspect"'
+    '';
+
+    meta = with lib; {
+      description = "A Rust package for inspecting Nix expressions";
+      homepage = "https://github.com/bluskript/nix-inspect";
+      license = licenses.mit;
+      maintainers = with maintainers; [blusk];
+      platforms = platforms.unix;
+      mainProgram = "nix-inspect";
+    };
+  }
diff --git a/pkgs/by-name/nu/nuclei-templates/package.nix b/pkgs/by-name/nu/nuclei-templates/package.nix
index 1d0c1c6c90bbf..989a97f0c5f89 100644
--- a/pkgs/by-name/nu/nuclei-templates/package.nix
+++ b/pkgs/by-name/nu/nuclei-templates/package.nix
@@ -1,24 +1,25 @@
-{ lib
-, stdenvNoCC
-, fetchFromGitHub
+{
+  lib,
+  stdenvNoCC,
+  fetchFromGitHub,
 }:
 
 stdenvNoCC.mkDerivation rec {
   pname = "nuclei-templates";
-  version = "9.8.0";
+  version = "9.8.1";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "nuclei-templates";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1aLy8wNWMFouZRjhCSiwSq1uo20C9wN7LPxyBqK6K0k=";
+    hash = "sha256-g1MwzJK9a8bpbbP9EoUi0UBR54nfnyg3RDi9qwIKlH0=";
   };
 
   installPhase = ''
     runHook preInstall
 
     mkdir -p $out/share/nuclei-templates
-    cp -R cloud code config dns file headless helpers http javascript network ssl \
+    cp -R cloud code dast dns file headless helpers http javascript network profiles ssl \
       $out/share/nuclei-templates/
 
     runHook postInstall
diff --git a/pkgs/by-name/ob/obs-cmd/package.nix b/pkgs/by-name/ob/obs-cmd/package.nix
index 6d9f2763591a7..f3db656267934 100644
--- a/pkgs/by-name/ob/obs-cmd/package.nix
+++ b/pkgs/by-name/ob/obs-cmd/package.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "obs-cmd";
-  version = "0.17.5";
+  version = "0.17.6";
 
   src = fetchFromGitHub {
     owner = "grigio";
     repo = "obs-cmd";
     rev = "v${version}";
-    hash = "sha256-AphpIehFHZwcZ7vO5FV6PBZSO3y6oLhH/kQhJjr34VY=";
+    hash = "sha256-bZ3N0wCTXyCv6iBQDlieMDFa80yNu1XrI4W5EaN5y/I=";
   };
 
-  cargoHash = "sha256-s/nWJ/8JnZwmROFSd2y6btopk2Cxp0zkMdy7mxVxr6k=";
+  cargoHash = "sha256-gIJOkWlBD1rv6bKf++v/pyI8/awdnZBo/U/5PFnEcvg=";
 
   meta = with lib; {
     description = "Minimal CLI to control OBS Studio via obs-websocket";
diff --git a/pkgs/by-name/oc/ocis-bin/package.nix b/pkgs/by-name/oc/ocis-bin/package.nix
index 3b6988f078ea9..6e7abc30ac05c 100644
--- a/pkgs/by-name/oc/ocis-bin/package.nix
+++ b/pkgs/by-name/oc/ocis-bin/package.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "ocis-bin";
-  version = "5.0.0";
+  version = "5.0.1";
   system =
     if stdenv.isLinux && stdenv.isx86_64 then
       "linux-amd64"
@@ -21,9 +21,9 @@ stdenv.mkDerivation (finalAttrs: {
 
     hash =
       if stdenv.isLinux && stdenv.isAarch64 then
-        "sha256-xRgDNwmRovXbyGQ5sTUw5srsXMBDYyBFMpB9MoXoo+w="
+        "sha256-8AEXuwTodhqF0LF1duYItntgp9mxoIdHChbtAnnnaQg="
       else if stdenv.isLinux && stdenv.isx86_64 then
-        "sha256-0lgDIHldW67OwinfYPATXkWUZVnR3PoXC4XLM1KkKmY="
+        "sha256-Fz0ee0Lu0CL3xJbsp1CCl0rsN/p48BdOj8oVOf0QSh4="
       else
         builtins.throw "Unsupported platform, please contact Nixpkgs maintainers for ocis package";
   };
@@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://owncloud.dev/ocis/";
     changelog = "https://github.com/owncloud/ocis/releases/tag/v${version}";
     # oCIS is licensed under non-free EULA which can be found here :
-    # https://github.com/owncloud/ocis/releases/download/v5.0.0/End-User-License-Agreement-for-ownCloud-Infinite-Scale.pdf
+    # https://github.com/owncloud/ocis/releases/download/v5.0.1/End-User-License-Agreement-for-ownCloud-Infinite-Scale.pdf
     license = licenses.unfree;
     maintainers = with maintainers; [
       ramblurr
diff --git a/pkgs/by-name/pa/pacu/package.nix b/pkgs/by-name/pa/pacu/package.nix
index 91122b15a79d6..78491c24c6973 100644
--- a/pkgs/by-name/pa/pacu/package.nix
+++ b/pkgs/by-name/pa/pacu/package.nix
@@ -1,17 +1,16 @@
-{ lib
-, awscli
-, fetchFromGitHub
-, python3
+{
+  lib,
+  awscli,
+  fetchFromGitHub,
+  python3,
 }:
 
-
 let
   python = python3.override {
-    packageOverrides = self: super: {
-      sqlalchemy = super.sqlalchemy_1_4;
-    };
+    packageOverrides = self: super: { sqlalchemy = super.sqlalchemy_1_4; };
   };
-in python.pkgs.buildPythonApplication rec {
+in
+python.pkgs.buildPythonApplication rec {
   pname = "pacu";
   version = "1.5.2";
   pyproject = true;
@@ -27,34 +26,34 @@ in python.pkgs.buildPythonApplication rec {
     "dsnap"
     "sqlalchemy-utils"
     "sqlalchemy"
+    "pycognito"
     "urllib3"
   ];
 
-  nativeBuildInputs = with python.pkgs; [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  build-system = with python.pkgs; [ poetry-core ];
 
-  propagatedBuildInputs = [
-    awscli
-  ] ++ (with python.pkgs; [
-    awscli
-    boto3
-    botocore
-    chalice
-    dsnap
-    jq
-    policyuniverse
-    pycognito
-    pyyaml
-    qrcode
-    requests
-    sqlalchemy
-    sqlalchemy-utils
-    toml
-    typing-extensions
-    urllib3
-  ]);
+  nativeBuildInputs = with python.pkgs; [ pythonRelaxDepsHook ];
+
+  dependencies =
+    [ awscli ]
+    ++ (with python.pkgs; [
+      awscli
+      boto3
+      botocore
+      chalice
+      dsnap
+      jq
+      policyuniverse
+      pycognito
+      pyyaml
+      qrcode
+      requests
+      sqlalchemy
+      sqlalchemy-utils
+      toml
+      typing-extensions
+      urllib3
+    ]);
 
   nativeCheckInputs = with python.pkgs; [
     moto
@@ -65,13 +64,12 @@ in python.pkgs.buildPythonApplication rec {
     export HOME=$(mktemp -d)
   '';
 
-  pythonImportsCheck = [
-    "pacu"
-  ];
+  pythonImportsCheck = [ "pacu" ];
 
   disabledTests = [
-    # sqlalchemy.exc.ArgumentError: Textual SQL expression
-    #"test_migrations"
+    # sAttributeError: module 'moto' has no attribute 'mock_s3'
+    "test_update"
+    "test_update_second_time"
   ];
 
   meta = with lib; {
diff --git a/pkgs/by-name/se/sesh/package.nix b/pkgs/by-name/se/sesh/package.nix
index 919bc5e6a047e..88bb8c54f8ddd 100644
--- a/pkgs/by-name/se/sesh/package.nix
+++ b/pkgs/by-name/se/sesh/package.nix
@@ -5,13 +5,13 @@
 }:
 buildGoModule rec {
   pname = "sesh";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "joshmedeski";
     repo = "sesh";
     rev = "v${version}";
-    hash = "sha256-eFqqiGIbS9HW7czAtSIPmvbynvg2gsu4luKsL25vxn4=";
+    hash = "sha256-4p3Pqts6GSyUGX9hCQS/vTZiHbi5UQkrzzIA1Fheamc=";
   };
 
   vendorHash = "sha256-zt1/gE4bVj+3yr9n0kT2FMYMEmiooy3k1lQ77rN6sTk=";
diff --git a/pkgs/by-name/sn/snippetexpander/package.nix b/pkgs/by-name/sn/snippetexpander/package.nix
index 1f5f3a954ec03..2d50515c5026b 100644
--- a/pkgs/by-name/sn/snippetexpander/package.nix
+++ b/pkgs/by-name/sn/snippetexpander/package.nix
@@ -1,9 +1,11 @@
 { lib
 , buildGoModule
 , fetchFromSourcehut
+, makeWrapper
 , scdoc
 , installShellFiles
 , snippetexpanderd
+, snippetexpanderx
 }:
 
 buildGoModule rec {
@@ -11,24 +13,27 @@ buildGoModule rec {
 
   pname = "snippetexpander";
 
-  vendorHash = "sha256-wSAho59yxcXTu1zQ5x783HT4gtfSM4GdsOEeC1wfHhE=";
+  vendorHash = "sha256-W9NkENdZRzqSAONI9QS2EI5aERK+AaPqwYwITKLwXQE=";
 
   proxyVendor = true;
 
   modRoot = "cmd/snippetexpander";
 
   nativeBuildInputs = [
+    makeWrapper
     scdoc
     installShellFiles
   ];
 
   buildInputs = [
     snippetexpanderd
+    snippetexpanderx
   ];
 
   ldflags = [
     "-s"
     "-w"
+    "-X 'main.version=${src.rev}'"
   ];
 
   postInstall = ''
@@ -36,12 +41,18 @@ buildGoModule rec {
     installManPage snippetexpander.1
   '';
 
-  meta = with lib; {
+  postFixup = ''
+    # Ensure snippetexpanderd and snippetexpanderx are available to start/stop.
+    wrapProgram $out/bin/snippetexpander \
+      --prefix PATH : ${lib.makeBinPath [ snippetexpanderd snippetexpanderx ]}
+  '';
+
+  meta = {
     description = "Your little expandable text snippet helper CLI";
     homepage = "https://snippetexpander.org";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ianmjones ];
-    platforms = platforms.linux;
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ ianmjones ];
+    platforms = lib.platforms.linux;
     mainProgram = "snippetexpander";
   };
 }
diff --git a/pkgs/by-name/sn/snippetexpanderd/package.nix b/pkgs/by-name/sn/snippetexpanderd/package.nix
index 308803ad9eec4..7cde3eaf527a5 100644
--- a/pkgs/by-name/sn/snippetexpanderd/package.nix
+++ b/pkgs/by-name/sn/snippetexpanderd/package.nix
@@ -2,44 +2,49 @@
 , stdenv
 , buildGoModule
 , fetchFromSourcehut
-, pkg-config
 , makeWrapper
 , scdoc
 , installShellFiles
-, xorg
-, gtk3
+, xclip
+, wl-clipboard
+, xdotool
+, wtype
 }:
 
 buildGoModule rec {
   pname = "snippetexpanderd";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromSourcehut {
     owner = "~ianmjones";
     repo = "snippetexpander";
     rev = "v${version}";
-    hash = "sha256-y3TJ+L3kXYfZFzAD1vmhvP6Yarctu5LHq/74005h8sI=";
+    hash = "sha256-iEoBri+NuFfLkARUBA+D/Fe9xk6PPV62N/YRqPv9C/A=";
   };
 
-  vendorHash = "sha256-QX8HI8I1ZJI6HJ1sl86OiJ4nxwFAjHH8h1zB9ASJaQs=";
+  vendorHash = "sha256-W9NkENdZRzqSAONI9QS2EI5aERK+AaPqwYwITKLwXQE=";
+
+  proxyVendor = true;
 
   modRoot = "cmd/snippetexpanderd";
 
   nativeBuildInputs = [
-    pkg-config
     makeWrapper
     scdoc
     installShellFiles
   ];
 
   buildInputs = [
-    xorg.libX11
-    gtk3
+    xclip
+    wl-clipboard
+    xdotool
+    wtype
   ];
 
   ldflags = [
     "-s"
     "-w"
+    "-X 'main.version=${src.rev}'"
   ];
 
   postInstall = ''
@@ -48,16 +53,17 @@ buildGoModule rec {
   '';
 
   postFixup = ''
+    # Ensure xclip/wcopy and xdotool/wtype are available for copy and paste duties.
     wrapProgram $out/bin/snippetexpanderd \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ xorg.libX11 ]}
+      --prefix PATH : ${lib.makeBinPath [ xclip wl-clipboard xdotool wtype ]}
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Your little expandable text snippet helper daemon";
     homepage = "https://snippetexpander.org";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ianmjones ];
-    platforms = platforms.linux;
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ ianmjones ];
+    platforms = lib.platforms.linux;
     mainProgram = "snippetexpanderd";
   };
 }
diff --git a/pkgs/by-name/sn/snippetexpandergui/package.nix b/pkgs/by-name/sn/snippetexpandergui/package.nix
index 1ce5f5d9cbe5e..c43ce82c5ea77 100644
--- a/pkgs/by-name/sn/snippetexpandergui/package.nix
+++ b/pkgs/by-name/sn/snippetexpandergui/package.nix
@@ -1,7 +1,7 @@
 { lib
 , buildGoModule
 , fetchFromSourcehut
-, makeWrapper
+, wrapGAppsHook
 , wails
 , scdoc
 , installShellFiles
@@ -10,6 +10,7 @@
 , webkitgtk
 , gsettings-desktop-schemas
 , snippetexpanderd
+, snippetexpanderx
 }:
 
 buildGoModule rec {
@@ -17,30 +18,31 @@ buildGoModule rec {
 
   pname = "snippetexpandergui";
 
-  vendorHash = "sha256-iZfZdT8KlfZMVLQcYmo6EooIdsSGrpO/ojwT9Ft1GQI=";
+  vendorHash = "sha256-W9NkENdZRzqSAONI9QS2EI5aERK+AaPqwYwITKLwXQE=";
 
   proxyVendor = true;
 
   modRoot = "cmd/snippetexpandergui";
 
   nativeBuildInputs = [
-    makeWrapper
     wails
     scdoc
     installShellFiles
+    wrapGAppsHook
   ];
 
   buildInputs = [
     xorg.libX11
     gtk3
     webkitgtk
-    gsettings-desktop-schemas
     snippetexpanderd
+    snippetexpanderx
   ];
 
   ldflags = [
     "-s"
     "-w"
+    "-X 'main.version=${src.rev}'"
   ];
 
   tags = [
@@ -54,17 +56,19 @@ buildGoModule rec {
     installManPage snippetexpandergui.1
   '';
 
-  postFixup = ''
-    wrapProgram $out/bin/snippetexpandergui \
-      --prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}
+  preFixup = ''
+    gappsWrapperArgs+=(
+      # Ensure snippetexpanderd and snippetexpanderx are available to start/stop.
+      --prefix PATH : ${lib.makeBinPath [ snippetexpanderd snippetexpanderx ]}
+    )
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Your little expandable text snippet helper GUI";
     homepage = "https://snippetexpander.org";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ianmjones ];
-    platforms = platforms.linux;
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ ianmjones ];
+    platforms = lib.platforms.linux;
     mainProgram = "snippetexpandergui";
   };
 }
diff --git a/pkgs/by-name/sn/snippetexpanderx/package.nix b/pkgs/by-name/sn/snippetexpanderx/package.nix
index bb7ad94f51c9f..50da8f05503fe 100644
--- a/pkgs/by-name/sn/snippetexpanderx/package.nix
+++ b/pkgs/by-name/sn/snippetexpanderx/package.nix
@@ -42,6 +42,8 @@ stdenv.mkDerivation rec {
     snippetexpanderd
   ];
 
+  makeFlags = [ "VERSION=${src.rev}" ];
+
   installPhase = ''
     runHook preInstall
     mkdir -p $out/bin
@@ -53,12 +55,12 @@ stdenv.mkDerivation rec {
   # There are no tests.
   doCheck = false;
 
-  meta = with lib; {
+  meta = {
     description = "Your little expandable text snippet helper auto expander daemon";
     homepage = "https://snippetexpander.org";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ianmjones ];
-    platforms = platforms.linux;
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ ianmjones ];
+    platforms = lib.platforms.linux;
     mainProgram = "snippetexpanderx";
   };
 }
diff --git a/pkgs/os-specific/solo5/default.nix b/pkgs/by-name/so/solo5/package.nix
index f235902a91cd6..240c69a40a0f8 100644
--- a/pkgs/os-specific/solo5/default.nix
+++ b/pkgs/by-name/so/solo5/package.nix
@@ -2,7 +2,7 @@
 , pkg-config, qemu, syslinux, util-linux }:
 
 let
-  version = "0.8.0";
+  version = "0.8.1";
   # list of all theoretically available targets
   targets = [
     "genode"
@@ -21,7 +21,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://github.com/Solo5/solo5/releases/download/v${version}/solo5-v${version}.tar.gz";
-    sha256 = "sha256-t80VOZ8Tr1Dq+mJfRPVLGqYprCaqegcQtDqdoHaSXW0=";
+    sha256 = "sha256-J1xcL/AdcLQ7Ph3TFwEaS9l4cWjDQsTaXTdBDcT7p6E=";
   };
 
   hardeningEnable = [ "pie" ];
@@ -63,13 +63,13 @@ in stdenv.mkDerivation {
     runHook postCheck
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Sandboxed execution environment";
     homepage = "https://github.com/solo5/solo5";
-    license = licenses.isc;
-    maintainers = [ maintainers.ehmry ];
+    license = lib.licenses.isc;
+    maintainers = with lib.maintainers; [ ehmry ];
     platforms = builtins.map ({arch, os}: "${arch}-${os}")
-      (cartesianProductOfSets {
+      (lib.cartesianProductOfSets {
         arch = [ "aarch64" "x86_64" ];
         os = [ "freebsd" "genode" "linux" "openbsd" ];
       });
diff --git a/pkgs/by-name/st/stackit-cli/package.nix b/pkgs/by-name/st/stackit-cli/package.nix
index 22b80895df3fb..badf0e86b7e8f 100644
--- a/pkgs/by-name/st/stackit-cli/package.nix
+++ b/pkgs/by-name/st/stackit-cli/package.nix
@@ -12,16 +12,16 @@
 
 buildGoModule rec {
   pname = "stackit-cli";
-  version = "0.1.0";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "stackitcloud";
     repo = "stackit-cli";
     rev = "v${version}";
-    hash = "sha256-EozgdlxCfWciFg7XPDbn2vztwoAKnuQBwyg/ufGRZQ0=";
+    hash = "sha256-eAJe/AlYxp0v2LifXdlSxeZL+qwKf2wj+tnNJ2Y8LcQ=";
   };
 
-  vendorHash = "sha256-6WbY8t7Qjxq8oBF+r2rZVgAa6ZNzjHs7Nh16zJQBRdg=";
+  vendorHash = "sha256-gir3RtIdQ/xDVL050kH8OxFuHoBOD2weeyRjguhubV0=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/by-name/te/tenki/package.nix b/pkgs/by-name/te/tenki/package.nix
index 35ee53a413761..cf276d6a43d2c 100644
--- a/pkgs/by-name/te/tenki/package.nix
+++ b/pkgs/by-name/te/tenki/package.nix
@@ -4,16 +4,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "tenki";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "ckaznable";
     repo = "tenki";
     rev = "v${version}";
-    hash = "sha256-X/GnOgxwBhkrdhUmEhyxdgk5ElayMOAmtDxR2cqRJc8=";
+    hash = "sha256-l2MDO0LIL+uSPiXA3+WVpan43lWJbaY9XSdQbwacRqQ=";
   };
 
-  cargoHash = "sha256-rmMUVZwNouUvFFPgZfbR4sgtig5zx1WC3bxnfPPT3yQ=";
+  cargoHash = "sha256-8tabXFijgq+E6YVY1J2nAhDHFahWx7QC8S401KNy2Jc=";
 
   meta = with lib; {
     description = "tty-clock with weather effect";
diff --git a/pkgs/data/themes/dracula-theme/default.nix b/pkgs/data/themes/dracula-theme/default.nix
index 2e7ed4757a580..db1ef4da0b1e3 100644
--- a/pkgs/data/themes/dracula-theme/default.nix
+++ b/pkgs/data/themes/dracula-theme/default.nix
@@ -2,7 +2,7 @@
 
 let
   themeName = "Dracula";
-  version = "unstable-2024-03-31";
+  version = "unstable-2024-04-08";
 in
 stdenvNoCC.mkDerivation {
   pname = "dracula-theme";
@@ -11,8 +11,8 @@ stdenvNoCC.mkDerivation {
   src = fetchFromGitHub {
     owner = "dracula";
     repo = "gtk";
-    rev = "c21f12be904fe55336397fc80feb1a8c8216dca2";
-    hash = "sha256-UbipHarnLkCDpUhQOP/uJlXSJ5zHptpNpLPgYwDz+1A=";
+    rev = "18350cafd8e9c775737f97fb5acf0890e29bc47a";
+    hash = "sha256-uhcRV7E7GDjWjetUHcz/E/g36m/yYTg3c9WJo6gYTJA=";
   };
 
   propagatedUserEnvPkgs = [
diff --git a/pkgs/development/php-packages/opentelemetry/default.nix b/pkgs/development/php-packages/opentelemetry/default.nix
index 06bbe263860f6..360f4cc43841f 100644
--- a/pkgs/development/php-packages/opentelemetry/default.nix
+++ b/pkgs/development/php-packages/opentelemetry/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPecl, fetchFromGitHub }:
 
 let
-  version = "1.0.1";
+  version = "1.0.2";
 in buildPecl rec {
   inherit version;
   pname = "opentelemetry";
@@ -10,7 +10,7 @@ in buildPecl rec {
     owner = "open-telemetry";
     repo = "opentelemetry-php-instrumentation";
     rev = version;
-    hash = "sha256-VHUzRhTtHygHoW+poItaphV+mxe4rmmSfGgesUgPz8Q=";
+    hash = "sha256-w6Gkjh9+I6KlQyztv4o1XZ6nJ+Yn4wXXN6nma8/dLTU=";
   };
 
   sourceRoot = "${src.name}/ext";
diff --git a/pkgs/development/python-modules/aioopenexchangerates/default.nix b/pkgs/development/python-modules/aioopenexchangerates/default.nix
index 34948ce7b78df..8b67a007b6b55 100644
--- a/pkgs/development/python-modules/aioopenexchangerates/default.nix
+++ b/pkgs/development/python-modules/aioopenexchangerates/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "aioopenexchangerates";
-  version = "0.4.9";
+  version = "0.4.10";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "MartinHjelmare";
     repo = "aioopenexchangerates";
     rev = "refs/tags/v${version}";
-    hash = "sha256-goOzp5nPkQCtGV7U71ek1LQ93Ko5BdEvawYb/feGRQQ=";
+    hash = "sha256-keZebaqIs+xaGy5O1551w05fV301XHzJpPDwvY4Tjnk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aiortm/default.nix b/pkgs/development/python-modules/aiortm/default.nix
index 89ffdf6827cb2..f9776a0cb6f1c 100644
--- a/pkgs/development/python-modules/aiortm/default.nix
+++ b/pkgs/development/python-modules/aiortm/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, ciso8601
-, click
-, fetchFromGitHub
-, mashumaro
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  ciso8601,
+  click,
+  fetchFromGitHub,
+  mashumaro,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
   pname = "aiortm";
-  version = "0.8.10";
+  version = "0.8.11";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -24,19 +25,17 @@ buildPythonPackage rec {
     owner = "MartinHjelmare";
     repo = "aiortm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WkVuuvWWdj2McdXl+XwYukUcloehelFIi6QL5LSkfLk=";
+    hash = "sha256-VvpdeupBW8wZyNnAx9cvp0Li5z3D/AnqipTEGTsd2IE=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace-warn " --cov=aiortm --cov-report=term-missing:skip-covered" ""
+      --replace-fail " --cov=aiortm --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     ciso8601
     click
@@ -50,16 +49,14 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiortm"
-  ];
+  pythonImportsCheck = [ "aiortm" ];
 
   meta = with lib; {
     description = "Library for the Remember the Milk API";
-    mainProgram = "aiortm";
     homepage = "https://github.com/MartinHjelmare/aiortm";
     changelog = "https://github.com/MartinHjelmare/aiortm/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "aiortm";
   };
 }
diff --git a/pkgs/development/python-modules/asf-search/default.nix b/pkgs/development/python-modules/asf-search/default.nix
index cffe2c0646227..f4e06bb8af8da 100644
--- a/pkgs/development/python-modules/asf-search/default.nix
+++ b/pkgs/development/python-modules/asf-search/default.nix
@@ -1,25 +1,28 @@
-{ lib
-, buildPythonPackage
-, dateparser
-, defusedxml
-, fetchFromGitHub
-, importlib-metadata
-, numpy
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pytz
-, remotezip
-, requests
-, requests-mock
-, shapely
-, tenacity
+{
+  lib,
+  buildPythonPackage,
+  dateparser,
+  defusedxml,
+  fetchFromGitHub,
+  importlib-metadata,
+  numpy,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  pytz,
+  remotezip,
+  requests-mock,
+  requests,
+  setuptools-scm,
+  shapely,
+  tenacity,
 }:
 
 buildPythonPackage rec {
   pname = "asf-search";
-  version = "7.0.8";
-  format = "setuptools";
+  version = "7.0.9";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -27,10 +30,16 @@ buildPythonPackage rec {
     owner = "asfadmin";
     repo = "Discovery-asf_search";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wmTt6JFuigpFo/0s9DmKfAZT0dPPyoNeVRlh8vz/jkY=";
+    hash = "sha256-CD9Up4h23dplTt51zif+4ZdW0qczRUz2hCOwUOOlS24=";
   };
 
-  propagatedBuildInputs = [
+  pythonRelaxDeps = [ "tenacity" ];
+
+  build-system = [ setuptools-scm ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
+  dependencies = [
     dateparser
     importlib-metadata
     numpy
@@ -48,14 +57,12 @@ buildPythonPackage rec {
     tenacity
   ];
 
-  pythonImportsCheck = [
-    "asf_search"
-  ];
+  pythonImportsCheck = [ "asf_search" ];
 
   meta = with lib; {
-    changelog = "https://github.com/asfadmin/Discovery-asf_search/blob/${src.rev}/CHANGELOG.md";
     description = "Python wrapper for the ASF SearchAPI";
     homepage = "https://github.com/asfadmin/Discovery-asf_search";
+    changelog = "https://github.com/asfadmin/Discovery-asf_search/blob/${version}/CHANGELOG.md";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bzizou ];
   };
diff --git a/pkgs/development/python-modules/azure-eventgrid/default.nix b/pkgs/development/python-modules/azure-eventgrid/default.nix
index 91c140dc7fb87..c7246ffe9d850 100644
--- a/pkgs/development/python-modules/azure-eventgrid/default.nix
+++ b/pkgs/development/python-modules/azure-eventgrid/default.nix
@@ -10,21 +10,21 @@
 
 buildPythonPackage rec {
   pname = "azure-eventgrid";
-  version = "4.18.0";
+  version = "4.19.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-OQ6Aet78NorIz1TlPdv5pW5ImDINLwH+ZQCk52Y+tJM=";
+    hash = "sha256-a9fVQBbMo6Zwdp6WTYKiQBlqJcQRs+nxqKqBVcPbBew=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     azure-common
     azure-core
     isodate
diff --git a/pkgs/development/python-modules/boto3-stubs/default.nix b/pkgs/development/python-modules/boto3-stubs/default.nix
index 3276892c1f605..de2dd1733ac76 100644
--- a/pkgs/development/python-modules/boto3-stubs/default.nix
+++ b/pkgs/development/python-modules/boto3-stubs/default.nix
@@ -365,14 +365,14 @@
 
 buildPythonPackage rec {
   pname = "boto3-stubs";
-  version = "1.34.81";
+  version = "1.34.83";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ajcieN11ogwfWJgk4CcshHmuVay6KbRWMfG1h9pkoiM=";
+    hash = "sha256-ZY+uu/4yLBbK/YSAAyoZ19ZyPRUjR5Z4le1mRoytF4o=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/bring-api/default.nix b/pkgs/development/python-modules/bring-api/default.nix
new file mode 100644
index 0000000000000..720d06e55560e
--- /dev/null
+++ b/pkgs/development/python-modules/bring-api/default.nix
@@ -0,0 +1,48 @@
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  python-dotenv,
+  pythonOlder,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "bring-api";
+  version = "0.7.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "miaucl";
+    repo = "bring-api";
+    rev = "refs/tags/${version}";
+    hash = "sha256-fhZMn0v908VzV+JLuS8tM+BPKJBoj77vEh1pINL4Cco=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [ aiohttp ];
+
+  nativeCheckInputs = [
+    aioresponses
+    pytest-asyncio
+    pytestCheckHook
+    python-dotenv
+  ];
+
+  pythonImportsCheck = [ "bring_api" ];
+
+  meta = with lib; {
+    description = "Module to access the Bring! shopping lists API";
+    homepage = "https://github.com/miaucl/bring-api";
+    changelog = "https://github.com/miaucl/bring-api/blob/${version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/cwl-utils/default.nix b/pkgs/development/python-modules/cwl-utils/default.nix
index aaa57e86ae00d..fe6c94829e0e4 100644
--- a/pkgs/development/python-modules/cwl-utils/default.nix
+++ b/pkgs/development/python-modules/cwl-utils/default.nix
@@ -1,34 +1,38 @@
-{ lib
-, buildPythonPackage
-, cwl-upgrader
-, cwlformat
-, fetchFromGitHub
-, packaging
-, pytest-mock
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, rdflib
-, requests
-, ruamel-yaml
-, schema-salad
+{
+  lib,
+  buildPythonPackage,
+  cwl-upgrader,
+  cwlformat,
+  fetchFromGitHub,
+  packaging,
+  pytest-mock,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  rdflib,
+  requests,
+  ruamel-yaml,
+  schema-salad,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "cwl-utils";
-  version = "0.32";
-  format = "setuptools";
+  version = "0.33";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "common-workflow-language";
-    repo = pname;
+    repo = "cwl-utils";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CM2UlJ86FcjsOm0msBNpY2li8bhm5T/aMD1q292HpLM=";
+    hash = "sha256-+GvG5Uu2nQWYCcuAkBkegsmMCWhf269jH6Zcex99I4M=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     cwl-upgrader
     packaging
     rdflib
@@ -44,9 +48,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "cwl_utils"
-  ];
+  pythonImportsCheck = [ "cwl_utils" ];
 
   disabledTests = [
     # Don't run tests which require Node.js
diff --git a/pkgs/development/python-modules/dsnap/default.nix b/pkgs/development/python-modules/dsnap/default.nix
index d67cb02aa1123..f14636df06547 100644
--- a/pkgs/development/python-modules/dsnap/default.nix
+++ b/pkgs/development/python-modules/dsnap/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, aws-sam-cli
-, boto3
-, buildPythonPackage
-, cfn-lint
-, fetchFromGitHub
-, mock
-, moto
-, mypy-boto3-ebs
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, typer
-, urllib3
+{
+  lib,
+  aws-sam-cli,
+  boto3,
+  buildPythonPackage,
+  cfn-lint,
+  fetchFromGitHub,
+  mock,
+  moto,
+  mypy-boto3-ebs,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  typer,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -31,22 +32,18 @@ buildPythonPackage rec {
   postPatch = ''
     # Is no direct dependency
     substituteInPlace pyproject.toml \
-      --replace 'urllib3 = "^1.26.4"' 'urllib3 = "*"'
+      --replace-fail 'urllib3 = "^1.26.4"' 'urllib3 = "*"'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     boto3
     urllib3
   ];
 
   passthru.optional-dependencies = {
-    cli = [
-      typer
-    ];
+    cli = [ typer ];
     scannerd = [
       aws-sam-cli
       cfn-lint
@@ -60,17 +57,18 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "dsnap"
-  ];
+  # https://github.com/RhinoSecurityLabs/dsnap/issues/26
+  # ImportError: cannot import name 'mock_iam' from 'moto'
+  doCheck = false;
+
+  pythonImportsCheck = [ "dsnap" ];
 
   meta = with lib; {
     description = "Utility for downloading and mounting EBS snapshots using the EBS Direct API's";
-    mainProgram = "dsnap";
     homepage = "https://github.com/RhinoSecurityLabs/dsnap";
     changelog = "https://github.com/RhinoSecurityLabs/dsnap/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "dsnap";
   };
 }
-
diff --git a/pkgs/development/python-modules/exchangelib/default.nix b/pkgs/development/python-modules/exchangelib/default.nix
index 20e3cc1433a42..b61753c6fe492 100644
--- a/pkgs/development/python-modules/exchangelib/default.nix
+++ b/pkgs/development/python-modules/exchangelib/default.nix
@@ -1,34 +1,35 @@
-{ lib
-, backports-zoneinfo
-, buildPythonPackage
-, cached-property
-, defusedxml
-, dnspython
-, fetchFromGitHub
-, flake8
-, isodate
-, lxml
-, oauthlib
-, psutil
-, pygments
-, python-dateutil
-, pythonOlder
-, pytz
-, pyyaml
-, requests
-, requests-ntlm
-, requests-gssapi
-, requests-oauthlib
-, requests-kerberos
-, requests-mock
-, setuptools
-, tzdata
-, tzlocal
+{
+  lib,
+  backports-zoneinfo,
+  buildPythonPackage,
+  cached-property,
+  defusedxml,
+  dnspython,
+  fetchFromGitHub,
+  flake8,
+  isodate,
+  lxml,
+  oauthlib,
+  psutil,
+  pygments,
+  python-dateutil,
+  pythonOlder,
+  pytz,
+  pyyaml,
+  requests,
+  requests-ntlm,
+  requests-gssapi,
+  requests-oauthlib,
+  requests-kerberos,
+  requests-mock,
+  setuptools,
+  tzdata,
+  tzlocal,
 }:
 
 buildPythonPackage rec {
   pname = "exchangelib";
-  version = "5.2.0";
+  version = "5.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -37,12 +38,10 @@ buildPythonPackage rec {
     owner = "ecederstrand";
     repo = "exchangelib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-q45aYVyp75PUiqYSMSvSFMy3vaclv93QVkjKWVrxWc4=";
+    hash = "sha256-4XcJNbnBCaSrGwfgDAlo4wCOjlwq2rLjSxRXniuzdzk=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     cached-property
@@ -58,18 +57,14 @@ buildPythonPackage rec {
     requests-kerberos
     tzdata
     tzlocal
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    backports-zoneinfo
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ];
 
   passthru.optional-dependencies = {
     complete = [
       requests-gssapi
       # requests-negotiate-sspi
     ];
-    kerberos = [
-      requests-gssapi
-    ];
+    kerberos = [ requests-gssapi ];
     # sspi = [
     #   requests-negotiate-sspi
     # ];
@@ -84,9 +79,7 @@ buildPythonPackage rec {
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "exchangelib"
-  ];
+  pythonImportsCheck = [ "exchangelib" ];
 
   meta = with lib; {
     description = "Client for Microsoft Exchange Web Services (EWS)";
diff --git a/pkgs/development/python-modules/flask-paginate/default.nix b/pkgs/development/python-modules/flask-paginate/default.nix
index ec2082b0ec188..ee15641a9d5cb 100644
--- a/pkgs/development/python-modules/flask-paginate/default.nix
+++ b/pkgs/development/python-modules/flask-paginate/default.nix
@@ -1,15 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "flask-paginate";
-  version = "2024.3.28";
-  format = "setuptools";
+  version = "2024.4.12";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -17,24 +19,18 @@ buildPythonPackage rec {
     owner = "lixxu";
     repo = "flask-paginate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-HqjgmqRH83N+CbTnkkEJnuo+c+n5wLwdsPXyY2i5XRg=";
+    hash = "sha256-YaAgl+iuoXB0eWVzhmNq2UTOpM/tHfDISIb9CyaXiuA=";
   };
 
-  propagatedBuildInputs = [
-    flask
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  dependencies = [ flask ];
 
-  pythonImportsCheck = [
-    "flask_paginate"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests/tests.py"
-  ];
+  pythonImportsCheck = [ "flask_paginate" ];
+
+  pytestFlagsArray = [ "tests/tests.py" ];
 
   meta = with lib; {
     description = "Pagination support for Flask";
diff --git a/pkgs/development/python-modules/gekko/default.nix b/pkgs/development/python-modules/gekko/default.nix
index 94d07a88b5951..24fd7423b8c39 100644
--- a/pkgs/development/python-modules/gekko/default.nix
+++ b/pkgs/development/python-modules/gekko/default.nix
@@ -1,35 +1,37 @@
-{ fetchPypi
-, lib
-, buildPythonPackage
-, setuptools
-, numpy
-, wheel
-,
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  pythonOlder,
+  setuptools,
 }:
+
 buildPythonPackage rec {
   pname = "gekko";
-  version = "1.1.0";
+  version = "1.1.1";
   pyproject = true;
 
+  disabled = pythonOlder "3.7";
+
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dImIf5zR6SCztgrFbaRrz4nLl1ZzJIyPLDNGIVLoOdg=";
+    hash = "sha256-xc6NfPCvkEYjUG82QmFqDuu02QNwKfoS6DDpkdaMWJ8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-    wheel
-  ];
+  build-system = [ setuptools ];
 
-  pythonImportsCheck = [ "gekko" ];
+  dependencies = [ numpy ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  # Module has no tests
+  doCHeck = false;
+
+  pythonImportsCheck = [ "gekko" ];
 
   meta = with lib; {
+    description = "Module for machine learning and optimization";
     homepage = "https://github.com/BYU-PRISM/GEKKO";
-    description = "A Python package for machine learning and optimization";
+    changelog = "https://github.com/BYU-PRISM/GEKKO/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ayes-web ];
   };
diff --git a/pkgs/development/python-modules/hahomematic/default.nix b/pkgs/development/python-modules/hahomematic/default.nix
index 1ff20bf488738..dc31b0a9af321 100644
--- a/pkgs/development/python-modules/hahomematic/default.nix
+++ b/pkgs/development/python-modules/hahomematic/default.nix
@@ -13,37 +13,35 @@
 , voluptuous
 , websocket-client
 , xmltodict
-, wheel
 }:
 
 buildPythonPackage rec {
   pname = "hahomematic";
-  version = "2024.3.1";
+  version = "2024.4.6";
   pyproject = true;
 
-  disabled = pythonOlder "3.11";
+  disabled = pythonOlder "3.12";
 
   src = fetchFromGitHub {
     owner = "danielperna84";
     repo = "hahomematic";
     rev = "refs/tags/${version}";
-    hash = "sha256-/ulqUyplNu8YTHJKcfNPYzyzPvGkLFtoJDu5SqvfQrs=";
+    hash = "sha256-w+sSaadbbfc1cNCTx5YYIm8eAKRQxyqZZKK2QPFZv7Y=";
   };
 
   __darwinAllowLocalNetworking = true;
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace-fail "setuptools~=69.1.0" "setuptools" \
-      --replace-fail "wheel~=0.42.0" "wheel"
+      --replace-fail "setuptools~=69.2.0" "setuptools" \
+      --replace-fail "wheel~=0.43.0" "wheel"
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
-    wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     orjson
     python-slugify
@@ -64,8 +62,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python module to interact with HomeMatic devices";
     homepage = "https://github.com/danielperna84/hahomematic";
-    changelog = "https://github.com/danielperna84/hahomematic/releases/tag/${version}";
-    license = with licenses; [ mit ];
+    changelog = "https://github.com/danielperna84/hahomematic/blob/${src.rev}/changelog.md";
+    license = licenses.mit;
     maintainers = with maintainers; [ dotlambda fab ];
   };
 }
diff --git a/pkgs/development/python-modules/homeassistant-bring-api/default.nix b/pkgs/development/python-modules/homeassistant-bring-api/default.nix
deleted file mode 100644
index 2912e26f5c80c..0000000000000
--- a/pkgs/development/python-modules/homeassistant-bring-api/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pythonOlder
-}:
-
-buildPythonPackage rec {
-  pname = "homeassistant-bring-api";
-  version = "0.5.6";
-  pyproject = true;
-
-  disabled = pythonOlder "3.8";
-
-  src = fetchFromGitHub {
-    owner = "miaucl";
-    repo = "homeassistant-bring-api";
-    rev = "refs/tags/${version}";
-    hash = "sha256-vfc4xKLeGF2FuBFwqU99qbkUDBK5Uz66S4F2ODRDPa8=";
-  };
-
-  nativeBuildInputs = [
-    setuptools
-  ];
-
-  propagatedBuildInputs = [
-    aiohttp
-  ];
-
-  # Module has no tests
-  doCheck = false;
-
-  pythonImportsCheck = [
-    "homeassistant_bring_api"
-  ];
-
-  meta = with lib; {
-    description = "Module to access the Bring! shopping lists API with Home Assistant";
-    homepage = "https://github.com/miaucl/homeassistant-bring-api";
-    changelog = "https://github.com/miaucl/homeassistant-bring-api/blob/${version}/CHANGELOG.md";
-    license = licenses.mit;
-    maintainers = with maintainers; [ fab ];
-  };
-}
diff --git a/pkgs/development/python-modules/htmldate/default.nix b/pkgs/development/python-modules/htmldate/default.nix
index 68602cb2cdc9f..7ba14ca5e7147 100644
--- a/pkgs/development/python-modules/htmldate/default.nix
+++ b/pkgs/development/python-modules/htmldate/default.nix
@@ -1,62 +1,59 @@
-{ lib
-, backports-datetime-fromisoformat
-, buildPythonPackage
-, charset-normalizer
-, dateparser
-, faust-cchardet
-, fetchPypi
-, lxml
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, setuptools
-, urllib3
+{
+  lib,
+  backports-datetime-fromisoformat,
+  buildPythonPackage,
+  charset-normalizer,
+  dateparser,
+  faust-cchardet,
+  fetchPypi,
+  lxml,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  setuptools,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "htmldate";
-  version = "1.8.0";
+  version = "1.8.1";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+Ux9AX9Coc9CLlp8XvEMrLridohjFPJ6mGRkYn8wuxU=";
+    hash = "sha256-yvFobPdcYd0fBh7eXXpG51mxXV+Zh82OE8jEI3URJj0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     charset-normalizer
     dateparser
     lxml
     python-dateutil
     urllib3
-  ] ++ lib.optionals (pythonOlder "3.7") [
-    backports-datetime-fromisoformat
-  ];
+  ] ++ lib.optionals (pythonOlder "3.7") [ backports-datetime-fromisoformat ];
 
   passthru.optional-dependencies = {
-    speed = [
-      faust-cchardet
-      urllib3
-    ] ++ lib.optionals (pythonOlder "3.11") [
-      backports-datetime-fromisoformat
-    ] ++ urllib3.optional-dependencies.brotli;
-    all = [
-      faust-cchardet
-      urllib3
-    ] ++ lib.optionals (pythonOlder "3.11") [
-      backports-datetime-fromisoformat
-    ] ++ urllib3.optional-dependencies.brotli;
+    speed =
+      [
+        faust-cchardet
+        urllib3
+      ]
+      ++ lib.optionals (pythonOlder "3.11") [ backports-datetime-fromisoformat ]
+      ++ urllib3.optional-dependencies.brotli;
+    all =
+      [
+        faust-cchardet
+        urllib3
+      ]
+      ++ lib.optionals (pythonOlder "3.11") [ backports-datetime-fromisoformat ]
+      ++ urllib3.optional-dependencies.brotli;
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # disable tests that require an internet connection
   disabledTests = [
@@ -65,15 +62,13 @@ buildPythonPackage rec {
     "test_download"
   ];
 
-  pythonImportsCheck = [
-    "htmldate"
-  ];
+  pythonImportsCheck = [ "htmldate" ];
 
   meta = with lib; {
     description = "Module for the extraction of original and updated publication dates from URLs and web pages";
     homepage = "https://htmldate.readthedocs.io";
     changelog = "https://github.com/adbar/htmldate/blob/v${version}/CHANGELOG.md";
-    license = licenses.gpl3Plus;
+    license = licenses.asl20;
     maintainers = with maintainers; [ jokatzke ];
     mainProgram = "htmldate";
   };
diff --git a/pkgs/development/python-modules/jenkins-job-builder/default.nix b/pkgs/development/python-modules/jenkins-job-builder/default.nix
index 47734c8a89736..852b529e8bcc1 100644
--- a/pkgs/development/python-modules/jenkins-job-builder/default.nix
+++ b/pkgs/development/python-modules/jenkins-job-builder/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "jenkins-job-builder";
-  version = "6.1.0";
+  version = "6.2.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9IXhzdXVEk0M2O01eHysiDziZWmEy6Ehb7nHC6OHCwc=";
+    hash = "sha256-kV2g1qbS5L7bEqfPijj60eK+pbTc8SAs/tctpNv0PFs=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/junos-eznc/default.nix b/pkgs/development/python-modules/junos-eznc/default.nix
index 35a8e38ec0f0d..55e34c9e30aa4 100644
--- a/pkgs/development/python-modules/junos-eznc/default.nix
+++ b/pkgs/development/python-modules/junos-eznc/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, jinja2
-, lxml
-, mock
-, ncclient
-, netaddr
-, nose2
-, ntc-templates
-, paramiko
-, pyparsing
-, pyserial
-, pythonOlder
-, pyyaml
-, scp
-, setuptools
-, pytestCheckHook
-, six
-, transitions
-, yamlordereddictloader
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jinja2,
+  lxml,
+  mock,
+  ncclient,
+  netaddr,
+  nose2,
+  ntc-templates,
+  paramiko,
+  pyparsing,
+  pyserial,
+  pythonOlder,
+  pyyaml,
+  scp,
+  setuptools,
+  pytestCheckHook,
+  six,
+  transitions,
+  yamlordereddictloader,
 }:
 
 buildPythonPackage rec {
   pname = "junos-eznc";
-  version = "2.7.0";
+  version = "2.7.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -32,14 +33,12 @@ buildPythonPackage rec {
     owner = "Juniper";
     repo = "py-junos-eznc";
     rev = "refs/tags/${version}";
-    hash = "sha256-06OV6UrF2i4SxL5dCvVxsEX2e8ef8UBFx/oMbvCZDaM=";
+    hash = "sha256-aoi+in5A8qSdQNY3V4S4wBBfPchR1an7G6GQHDhgxpQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     jinja2
     lxml
     ncclient
@@ -61,9 +60,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-   "tests/unit"
-  ];
+  pytestFlagsArray = [ "tests/unit" ];
 
   disabledTests = [
     # jnpr.junos.exception.FactLoopError: A loop was detected while gathering the...
@@ -76,9 +73,7 @@ buildPythonPackage rec {
     "test_domain_fact_from_config"
   ];
 
-  pythonImportsCheck = [
-    "jnpr.junos"
-  ];
+  pythonImportsCheck = [ "jnpr.junos" ];
 
   meta = with lib; {
     description = "Junos 'EZ' automation for non-programmers";
diff --git a/pkgs/development/python-modules/langchain-core/default.nix b/pkgs/development/python-modules/langchain-core/default.nix
index 0ad445301cc6e..e7c3361e7158f 100644
--- a/pkgs/development/python-modules/langchain-core/default.nix
+++ b/pkgs/development/python-modules/langchain-core/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "langchain-core";
-  version = "0.1.41";
+  version = "0.1.42";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "langchain_core";
     inherit version;
-    hash = "sha256-QAIwSIOyUa+Mt4HwHFn1au7li+Qsll273soKO/uPlq8=";
+    hash = "sha256-QHUb9g6l2OKy7+ZSkNtDRxfuODSHDAAuQOKBHwnYFOY=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/langchain/default.nix b/pkgs/development/python-modules/langchain/default.nix
index cd629d56f3da2..48c2c0db93a1b 100644
--- a/pkgs/development/python-modules/langchain/default.nix
+++ b/pkgs/development/python-modules/langchain/default.nix
@@ -51,7 +51,7 @@
 
 buildPythonPackage rec {
   pname = "langchain";
-  version = "0.1.15";
+  version = "0.1.16";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -60,7 +60,7 @@ buildPythonPackage rec {
     owner = "langchain-ai";
     repo = "langchain";
     rev = "refs/tags/v${version}";
-    hash = "sha256-SjuIt3pyFOqBlWObs/sHeWvwKs1wkZsowKd74HXLiAo=";
+    hash = "sha256-Xv8juma/1qGC2Rb659dJBvRzRh5W+zU+O8W6peElFGc=";
   };
 
   sourceRoot = "${src.name}/libs/langchain";
diff --git a/pkgs/development/python-modules/litellm/default.nix b/pkgs/development/python-modules/litellm/default.nix
index 45b9975c6c607..6fc8f23d754fe 100644
--- a/pkgs/development/python-modules/litellm/default.nix
+++ b/pkgs/development/python-modules/litellm/default.nix
@@ -33,7 +33,7 @@
 
 buildPythonPackage rec {
   pname = "litellm";
-  version = "1.34.29";
+  version = "1.35.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     owner = "BerriAI";
     repo = "litellm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pY9O+zQZulI53DHbSpkjfNp09JMA4gUt6MjTg0x1ScE=";
+    hash = "sha256-bFAoaKH1y+Q5JE7OEY8w5hX3+6LAgswaCx1bKYmLZX0=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix
index 3cbee2e10dfa8..f37179b9d192c 100644
--- a/pkgs/development/python-modules/mypy-boto3/default.nix
+++ b/pkgs/development/python-modules/mypy-boto3/default.nix
@@ -111,7 +111,7 @@ rec {
 
   mypy-boto3-backupstorage = buildMypyBoto3Package "backupstorage" "1.34.0" "sha256-Y8kjZ+ov8OsiJ8Sm1LlvP8YbgVc+AkLkbZIhOh4y7ZY=";
 
-  mypy-boto3-batch = buildMypyBoto3Package "batch" "1.34.72" "sha256-ha5OZVVcO/+slxQOPIrd+D1Ehaw6YpGqCWofSgFj5JI=";
+  mypy-boto3-batch = buildMypyBoto3Package "batch" "1.34.83" "sha256-mJ6t+8ov7x8tfJNavY6qZpHxwenVGhTXy6NRlD7muPc=";
 
   mypy-boto3-billingconductor = buildMypyBoto3Package "billingconductor" "1.34.1" "sha256-uXxQkoe2u3idcYta9YFbjxoK8HsvUiRQSyYrYhVi1kU=";
 
@@ -143,7 +143,7 @@ rec {
 
   mypy-boto3-cloudformation = buildMypyBoto3Package "cloudformation" "1.34.77" "sha256-mQAUGCaB+d8iV/GFBWEmwNswvxJg9s09Rs7bPPRn8K0=";
 
-  mypy-boto3-cloudfront = buildMypyBoto3Package "cloudfront" "1.34.0" "sha256-3n/WEiQdcE253J+CFsskoYlNMXASdzkhPTWneSHDKoM=";
+  mypy-boto3-cloudfront = buildMypyBoto3Package "cloudfront" "1.34.83" "sha256-glPRMg4IS/5Mz6ckyQWgZuu9G3IlPsfA97fx41YpSw0=";
 
   mypy-boto3-cloudhsm = buildMypyBoto3Package "cloudhsm" "1.34.0" "sha256-Sd/YlKNm/1VRoJ+e+3YlOf4jKoewYVGM4FNYlST+9AY=";
 
@@ -157,11 +157,11 @@ rec {
 
   mypy-boto3-cloudtrail-data = buildMypyBoto3Package "cloudtrail-data" "1.34.0" "sha256-ACiJrI+VTHr06i8PKgDY/K8houFUZQNS1lluouadCTQ=";
 
-  mypy-boto3-cloudwatch = buildMypyBoto3Package "cloudwatch" "1.34.75" "sha256-Q0Qz809o6FcN5OVotLLF3fgebt+2mbFnhfBCKTZO0aU=";
+  mypy-boto3-cloudwatch = buildMypyBoto3Package "cloudwatch" "1.34.83" "sha256-dm4WbFtGPZiFpZKdwWu1kuD6fXvq9WmqT1AdhahIvBM=";
 
   mypy-boto3-codeartifact = buildMypyBoto3Package "codeartifact" "1.34.68" "sha256-Ey0cmx0OxN1/VXIyvn0EOBP9qYIuc/XyFVZniHLaNEY=";
 
-  mypy-boto3-codebuild = buildMypyBoto3Package "codebuild" "1.34.81" "sha256-vpRS/1dBgUo34GX/6t2TiNsiNIudktpMKueTqZqNJhA=";
+  mypy-boto3-codebuild = buildMypyBoto3Package "codebuild" "1.34.83" "sha256-nf1rO/BmEFenb/Z/bWKHRDpZVG3WZb9OPIsxcKOdATo=";
 
   mypy-boto3-codecatalyst = buildMypyBoto3Package "codecatalyst" "1.34.73" "sha256-jQ/DIoWXQWo1oVWi4Gn88cxr78QCs45EVtgfc6fZkFk=";
 
@@ -335,7 +335,7 @@ rec {
 
   mypy-boto3-honeycode = buildMypyBoto3Package "honeycode" "1.34.0" "sha256-HNp/STFuMLoO4qyL0iaYeiPpnMV3uzNBNFUDgzrHt9s=";
 
-  mypy-boto3-iam = buildMypyBoto3Package "iam" "1.34.8" "sha256-b69oz4ABgpJGh7ZxGz+a+o2UCtmT8lmjuR5V6CiS1kE=";
+  mypy-boto3-iam = buildMypyBoto3Package "iam" "1.34.83" "sha256-cmExVhZ1fr91Cd8OmwkdWULkcOtRxLI8ZioGhzqajso=";
 
   mypy-boto3-identitystore = buildMypyBoto3Package "identitystore" "1.34.0" "sha256-OdJsMjraTe4qhpblBOuwr++4QfiMXtaaMHDAEOTBII4=";
 
@@ -469,7 +469,7 @@ rec {
 
   mypy-boto3-mediaconvert = buildMypyBoto3Package "mediaconvert" "1.34.81" "sha256-MGULtrMziQpOXF4eNZabcu83rR13AHBMZrN5RgkqATk=";
 
-  mypy-boto3-medialive = buildMypyBoto3Package "medialive" "1.34.77" "sha256-2SRqRzh96HS6KKN0Xpbf8xq2XedS1etMm316rnIpu9k=";
+  mypy-boto3-medialive = buildMypyBoto3Package "medialive" "1.34.83" "sha256-VFyz2fNgx2fFFsU3843vwpZBQxGrVzNbyZWF1kv6KaY=";
 
   mypy-boto3-mediapackage = buildMypyBoto3Package "mediapackage" "1.34.0" "sha256-4DJ2zVk0satmVn+TZdDExx/+ClJpc1bdmbvl72Joe5U=";
 
@@ -521,7 +521,7 @@ rec {
 
   mypy-boto3-oam = buildMypyBoto3Package "oam" "1.34.73" "sha256-MAnS/E6BKcaubeOdblitGzS7y7YUZr35M4679iJL6lE=";
 
-  mypy-boto3-omics = buildMypyBoto3Package "omics" "1.34.7" "sha256-Mtb11Oe2j28u+MFaycvMMNiqi7ZdVDcKQV/X/7npze4=";
+  mypy-boto3-omics = buildMypyBoto3Package "omics" "1.34.83" "sha256-66IykobW8D/oemTVIGf0xw7H+mb4yNzXMQHv/dnzqGg=";
 
   mypy-boto3-opensearch = buildMypyBoto3Package "opensearch" "1.34.43" "sha256-EOl56YqzuIUWlSewnVCtEdzt3Ei5yueP4emtTQq3QrA=";
 
@@ -561,7 +561,7 @@ rec {
 
   mypy-boto3-pinpoint-sms-voice-v2 = buildMypyBoto3Package "pinpoint-sms-voice-v2" "1.34.0" "sha256-Ci/nnvgq6YbVPHLZVmLDHjF8GHpViVP7mfUJREFKndg=";
 
-  mypy-boto3-pipes = buildMypyBoto3Package "pipes" "1.34.0" "sha256-c/N5SaT4BS0Ldv/P6yi43gB4LzDeqB9y1Xx1UAHf6dU=";
+  mypy-boto3-pipes = buildMypyBoto3Package "pipes" "1.34.83" "sha256-Z//eO1IEEolh+5loNBmS5R5W5sdyGt/0T88kI726PKA=";
 
   mypy-boto3-polly = buildMypyBoto3Package "polly" "1.34.43" "sha256-rx5sW32N6H47fpy5yGvwlKKVKS/uIKOtLfsjoGoNPJg=";
 
@@ -581,7 +581,7 @@ rec {
 
   mypy-boto3-rbin = buildMypyBoto3Package "rbin" "1.34.0" "sha256-Y+a/p3r5IgWk4oH6MOeq0e7rMiNvLCqoz1ZE+xXNtOw=";
 
-  mypy-boto3-rds = buildMypyBoto3Package "rds" "1.34.81" "sha256-hpbczX8dM2lSVU0k4tNYIwYh/nlnM2FiBqE8ccg5Xf4=";
+  mypy-boto3-rds = buildMypyBoto3Package "rds" "1.34.83" "sha256-/H99xDRpX9egs39pRaYkvJ3GM6syh+famJmTTRsCgYs=";
 
   mypy-boto3-rds-data = buildMypyBoto3Package "rds-data" "1.34.6" "sha256-d+WXt3cSUe5ZxynSjPSJxXgv6evP/rhZrX1ua9rtSx8=";
 
@@ -621,7 +621,7 @@ rec {
 
   mypy-boto3-s3 = buildMypyBoto3Package "s3" "1.34.65" "sha256-L830Es4pJLLws021mr8GqcC75M0zYfFPDSweIRwPfd0=";
 
-  mypy-boto3-s3control = buildMypyBoto3Package "s3control" "1.34.18" "sha256-53s5ii1gFX9toigiazEtS5Jogg3VFFr+1/uiLzoU7Uo=";
+  mypy-boto3-s3control = buildMypyBoto3Package "s3control" "1.34.83" "sha256-A0P6rAebwt9IUKTderlE8tWQJexUjthpO6KClrDbNyc=";
 
   mypy-boto3-s3outposts = buildMypyBoto3Package "s3outposts" "1.34.0" "sha256-xLuGP9Fe0S7zRimt1AKd9KOrytmNd/GTRg5OVi5Xpos=";
 
diff --git a/pkgs/development/python-modules/publicsuffixlist/default.nix b/pkgs/development/python-modules/publicsuffixlist/default.nix
index d30f8f1bca698..3732d79c56a68 100644
--- a/pkgs/development/python-modules/publicsuffixlist/default.nix
+++ b/pkgs/development/python-modules/publicsuffixlist/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "publicsuffixlist";
-  version = "0.10.0.20240403";
+  version = "0.10.0.20240411";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-DQgjgr35l5I33BWLaOQTUnQpFhBMXUB0Jx4jQXbeBZU=";
+    hash = "sha256-x6GOS3sqH+1ijCgovoj6ckW3aidVeXtHsGEnH/mLrHo=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pyftdi/default.nix b/pkgs/development/python-modules/pyftdi/default.nix
index f004ac7c88c4d..009d0fab1d809 100644
--- a/pkgs/development/python-modules/pyftdi/default.nix
+++ b/pkgs/development/python-modules/pyftdi/default.nix
@@ -1,26 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyserial
-, pythonOlder
-, pyusb
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyserial,
+  pythonOlder,
+  pyusb,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyftdi";
-  version = "0.55.0";
-  format = "setuptools";
+  version = "0.55.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "eblot";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-EEMHY5EKftci72huF5UmJyh2wJAc8uNh/QhGSSAVXIU=";
+    repo = "pyftdi";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-InJJnbAPYlV071EkEWECJC79HLZ6SWo2VP7PqMgOGow=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     pyserial
     pyusb
   ];
@@ -28,9 +32,7 @@ buildPythonPackage rec {
   # Tests require access to the serial port
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyftdi"
-  ];
+  pythonImportsCheck = [ "pyftdi" ];
 
   meta = with lib; {
     description = "User-space driver for modern FTDI devices";
diff --git a/pkgs/development/python-modules/pylitterbot/default.nix b/pkgs/development/python-modules/pylitterbot/default.nix
index 65a519f0bdffd..0c33c0b2cdf58 100644
--- a/pkgs/development/python-modules/pylitterbot/default.nix
+++ b/pkgs/development/python-modules/pylitterbot/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pylitterbot";
-  version = "2023.4.9";
+  version = "2023.4.11";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "natekspencer";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-QsxzwmAdhx0diPJ/bT+DgJSs70YQ77M76rq2opMq/Ew=";
+    hash = "sha256-OTyQgcGGNktCgYJN33SZn7La7ec+gwR/yVDuH7kcEh4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-roborock/default.nix b/pkgs/development/python-modules/python-roborock/default.nix
index 0f82455c12669..49ea2cc277d38 100644
--- a/pkgs/development/python-modules/python-roborock/default.nix
+++ b/pkgs/development/python-modules/python-roborock/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "python-roborock";
-  version = "1.0.0";
+  version = "2.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -29,12 +29,12 @@ buildPythonPackage rec {
     owner = "humbertogontijo";
     repo = "python-roborock";
     rev = "refs/tags/v${version}";
-    hash = "sha256-izstUq7ICFNJ9v8+uB7JeMuzmOazP22As5VKDinXemU=";
+    hash = "sha256-vtT6hsyiP1FxWo5PezcjJACknCT9JEhqSQ6C4FpU+Jg=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "poetry-core==1.8.0" "poetry-core"
+      --replace-fail "poetry-core==1.8.0" "poetry-core"
   '';
 
   pythonRelaxDeps = [ "pycryptodome" ];
diff --git a/pkgs/development/python-modules/qtile/default.nix b/pkgs/development/python-modules/qtile/default.nix
index 09a0c21a1f88a..9a3ecbafc049e 100644
--- a/pkgs/development/python-modules/qtile/default.nix
+++ b/pkgs/development/python-modules/qtile/default.nix
@@ -97,6 +97,6 @@ buildPythonPackage rec {
     description = "A small, flexible, scriptable tiling window manager written in Python";
     mainProgram = "qtile";
     platforms = platforms.linux;
-    maintainers = with maintainers; [ kamilchm arjan-s ];
+    maintainers = with maintainers; [ arjan-s ];
   };
 }
diff --git a/pkgs/development/python-modules/sievelib/default.nix b/pkgs/development/python-modules/sievelib/default.nix
index 082aa5db01cab..4d4e15659c55e 100644
--- a/pkgs/development/python-modules/sievelib/default.nix
+++ b/pkgs/development/python-modules/sievelib/default.nix
@@ -1,36 +1,36 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mock
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "sievelib";
-  version = "1.3.0";
-  format = "setuptools";
+  version = "1.4.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MxPX8fP4Mkq2qOISnknXbuCN8NQ+L1UOaBuPEuP0TNE=";
+    hash = "sha256-eM8es/WZENFBASjOk1KVbbwkmzxTr7NirOiSLt7F3N8=";
   };
 
-  build-system = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
+
+  dependencies = [ typing-extensions ];
 
   nativeCheckInputs = [
     mock
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "sievelib"
-  ];
+  pythonImportsCheck = [ "sievelib" ];
 
   meta = with lib; {
     description = "Client-side Sieve and Managesieve library";
diff --git a/pkgs/development/python-modules/std-uritemplate/default.nix b/pkgs/development/python-modules/std-uritemplate/default.nix
index bc265fea72a3c..0c26a135d0ef1 100644
--- a/pkgs/development/python-modules/std-uritemplate/default.nix
+++ b/pkgs/development/python-modules/std-uritemplate/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "std-uritemplate";
-  version = "0.0.55";
+  version = "0.0.56";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -15,19 +16,15 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "std_uritemplate";
     inherit version;
-    hash = "sha256-kHP1anfkTQWD+2ZFw35KZAo08iolXQDjeTzT8w2limg=";
+    hash = "sha256-85dldY+2WB+Hn6fBBHoKJ7fIe7fDyddYxAjDD83lHGc=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   # Module doesn't have unittest, only functional tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "stduritemplate"
-  ];
+  pythonImportsCheck = [ "stduritemplate" ];
 
   meta = with lib; {
     description = "Std-uritemplate implementation for Python";
diff --git a/pkgs/development/tools/check-jsonschema/default.nix b/pkgs/development/tools/check-jsonschema/default.nix
index 2c811ed89b970..c75ca6e41b4b0 100644
--- a/pkgs/development/tools/check-jsonschema/default.nix
+++ b/pkgs/development/tools/check-jsonschema/default.nix
@@ -4,7 +4,7 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "check-jsonschema";
-  version = "0.28.1";
+  version = "0.28.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -13,7 +13,7 @@ buildPythonApplication rec {
     owner = "python-jsonschema";
     repo = "check-jsonschema";
     rev = "refs/tags/${version}";
-    hash = "sha256-JUb6jrbO1dylqOiDUDgYpMsXtMw7vErw6NJNyvfJIoM=";
+    hash = "sha256-QHcpcpICYqQUUCkLAV4BpDYn7Te/TGbXFPgr8Emp0ew=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/tools/database/liquibase/default.nix b/pkgs/development/tools/database/liquibase/default.nix
index 94f0d4c79fce9..7e6a8334cff40 100644
--- a/pkgs/development/tools/database/liquibase/default.nix
+++ b/pkgs/development/tools/database/liquibase/default.nix
@@ -25,11 +25,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "liquibase";
-  version = "4.26.0";
+  version = "4.27.0";
 
   src = fetchurl {
     url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz";
-    hash = "sha256-RoULX9IcVI+WklPLvJfcbIRhmKgiVYHjr1NGrIqn2/I=";
+    hash = "sha256-UNieH8ECSb8ZjxqP8tgf0LaObKCAXbKKlNOGSXhNgvA=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/melange/default.nix b/pkgs/development/tools/melange/default.nix
index 40f4fa5987317..24e7584b76d3f 100644
--- a/pkgs/development/tools/melange/default.nix
+++ b/pkgs/development/tools/melange/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "melange";
-  version = "0.6.9";
+  version = "0.6.11";
 
   src = fetchFromGitHub {
     owner = "chainguard-dev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-txyfoGl0MPMHQFOhdCQPVSLveYBVFIiDxJct1W6xYKM=";
+    hash = "sha256-/P85vrcKWZHXNUIlzLpc9v0I5KEL7HUyr1SM2207l7o=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -25,7 +25,7 @@ buildGoModule rec {
     '';
   };
 
-  vendorHash = "sha256-uMdphe78cEwypVZOyIvFgUJQuVQ3scd6SQc8y5Sqjdo=";
+  vendorHash = "sha256-R1Fo4N5q00ePkddOJKauC6iDPGMYk15FIKEXqWy6ifQ=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/misc/blackfire/default.nix b/pkgs/development/tools/misc/blackfire/default.nix
index a1bc14653478b..013e517bb52b3 100644
--- a/pkgs/development/tools/misc/blackfire/default.nix
+++ b/pkgs/development/tools/misc/blackfire/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "blackfire";
-  version = "2.26.1";
+  version = "2.26.3";
 
   src = passthru.sources.${stdenv.hostPlatform.system} or (throw "Unsupported platform for blackfire: ${stdenv.hostPlatform.system}");
 
@@ -57,23 +57,23 @@ stdenv.mkDerivation rec {
     sources = {
       "x86_64-linux" = fetchurl {
         url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_amd64.deb";
-        sha256 = "Ujl9Uicz3erD6+eerlyk7JU07X9gkqVTAgEZipwWPLQ=";
+        sha256 = "/U45R5eBRl+uPu7nVj4GYrJERaYEPQtBezTKXn/Np5g=";
       };
       "i686-linux" = fetchurl {
         url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_i386.deb";
-        sha256 = "aVXxPvS8ZbMYFVg5IlUwNCJTh3mPpG/r71mHvKw/tuQ=";
+        sha256 = "J77nEV6BWgu0SOexsTUN03k2ZKnPSUCFgd8+zHN55E0=";
       };
       "aarch64-linux" = fetchurl {
         url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_arm64.deb";
-        sha256 = "I82I9+0IFPLkyfQJM1q/yYtX1QQhxPK0ZMm2tJaeDA8=";
+        sha256 = "Wt5TOKKjGDp8ZUFC9Ml9EeafIVcM3eubbjiRE7A8uns=";
       };
       "aarch64-darwin" = fetchurl {
         url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_arm64.pkg.tar.gz";
-        sha256 = "yT3zZqtP7mInyjnfaalONvMNGywGylXsmReE3kzgKVg=";
+        sha256 = "7Hlw0WvIEBLl7Ft9o7jhbB8Fyi0abymUonMhZAcU0rk=";
       };
       "x86_64-darwin" = fetchurl {
         url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_amd64.pkg.tar.gz";
-        sha256 = "TlOa7/W1ChHV4Wwu6jEp9Jxl+PA/l48Te1H+u9sfiWc=";
+        sha256 = "Y/2QXiyYnT+uqy8rWGd9BesXft1hjMPlcMpkYw4qO+k=";
       };
     };
 
diff --git a/pkgs/development/tools/misc/pest-ide-tools/default.nix b/pkgs/development/tools/misc/pest-ide-tools/default.nix
index 162817c683579..c228508e4a60d 100644
--- a/pkgs/development/tools/misc/pest-ide-tools/default.nix
+++ b/pkgs/development/tools/misc/pest-ide-tools/default.nix
@@ -10,14 +10,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pest-ide-tools";
-  version = "0.3.6";
-  cargoSha256 = "sha256-uFcEE5Hlb0fhOH0birqeH+hOuAyZVjQOYFhoMdR8czM=";
+  version = "0.3.9";
+  cargoSha256 = "sha256-kFLVzsk2ML78zWoLVX/tPz+rwBPziXmfGAcVSA7GiTA=";
 
   src = fetchFromGitHub {
     owner = "pest-parser";
     repo = "pest-ide-tools";
     rev = "v${version}";
-    sha256 = "sha256-SymtMdj7QVOEiSeTjmVidejFeGK8swnM6nfT7u18URs=";
+    sha256 = "sha256-6051J3DQjI+Wp3iLn65GRmMnwOjGEtcWyXEKsT9k9fE=";
   };
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
diff --git a/pkgs/kde/gear/akonadi-search/default.nix b/pkgs/kde/gear/akonadi-search/default.nix
index 7e3527f9e41f4..6e89f0b685ff7 100644
--- a/pkgs/kde/gear/akonadi-search/default.nix
+++ b/pkgs/kde/gear/akonadi-search/default.nix
@@ -7,7 +7,7 @@
   cargo,
   rustc,
   # provided as callPackage input to enable easier overrides through overlays
-  cargoHash ? "sha256-Mo94kfA4w280YdazhuVaS/vw7B0y9W/LYaHLLnV/3IE=",
+  cargoHash ? "sha256-fY0mQiYS/CMThOVsWp8NgxpWfUph2dZ7hj7W5JUJ2J4=",
 }:
 mkKdeDerivation rec {
   pname = "akonadi-search";
diff --git a/pkgs/kde/gear/angelfish/default.nix b/pkgs/kde/gear/angelfish/default.nix
index a682d3589540a..2250b5db6a43b 100644
--- a/pkgs/kde/gear/angelfish/default.nix
+++ b/pkgs/kde/gear/angelfish/default.nix
@@ -8,7 +8,7 @@
   cargo,
   rustc,
   # provided as callPackage input to enable easier overrides through overlays
-  cargoHash ? "sha256-9l28C8rcUAro/o9SY3rA6xRsman3SrfFLjhPJhiiWfc=",
+  cargoHash ? "sha256-QJZJqdixPThgiKnruKetmzhbvtY/MsGy4v+OdQiEFR8=",
   qcoro,
 }:
 mkKdeDerivation rec {
diff --git a/pkgs/kde/gear/kdepim-addons/default.nix b/pkgs/kde/gear/kdepim-addons/default.nix
index 781d71671446e..e256ee8fdf1dc 100644
--- a/pkgs/kde/gear/kdepim-addons/default.nix
+++ b/pkgs/kde/gear/kdepim-addons/default.nix
@@ -8,7 +8,7 @@
   discount,
   alpaka,
   # provided as callPackage input to enable easier overrides through overlays
-  cargoHash ? "sha256-MMCDfCtGDJ+yrfdpZEMxlSh7yWU6de/Pggw7Op7VxQI=",
+  cargoHash ? "sha256-Yt1Gxw9Q1Q108YRJoUIpeNZlGjZ7yabLW3bRO4+x6Vo=",
 }:
 mkKdeDerivation rec {
   pname = "kdepim-addons";
diff --git a/pkgs/kde/generated/sources/gear.json b/pkgs/kde/generated/sources/gear.json
index 392a9c2db4144..96499269a4d1c 100644
--- a/pkgs/kde/generated/sources/gear.json
+++ b/pkgs/kde/generated/sources/gear.json
@@ -1,1232 +1,1232 @@
 {
   "akonadi": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadi-24.02.1.tar.xz",
-    "hash": "sha256-ACW6ZEOazIZBZImCxuyKdm4tKeikmTUERr5ZfIgMccA="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-24.02.2.tar.xz",
+    "hash": "sha256-G3kjaVbz10BL0j3JBz4RK1NWpkFW5PvDJMQJwTJb80M="
   },
   "akonadi-calendar": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadi-calendar-24.02.1.tar.xz",
-    "hash": "sha256-Av2ZpYjIDe0wTocbH/lm91t9drrAu0fmbsYMxvM31f0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-calendar-24.02.2.tar.xz",
+    "hash": "sha256-kwGV5yLPJowUZa41Nmq+++bw02o/cnCNDLAi5iiK6Fk="
   },
   "akonadi-calendar-tools": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadi-calendar-tools-24.02.1.tar.xz",
-    "hash": "sha256-ZKKFXfEmtk+901SH5Q8hlnNV4BxeFIm8bOocTWaHRDI="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-calendar-tools-24.02.2.tar.xz",
+    "hash": "sha256-dbbLxrznmjtUpdLJR6FNWR6BIgpey8QpTo5JMOYJsDc="
   },
   "akonadiconsole": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadiconsole-24.02.1.tar.xz",
-    "hash": "sha256-JMTa5yfF05CwZ7xz2BjVAwNNE9iCBKtgqNWEXTN1P1o="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadiconsole-24.02.2.tar.xz",
+    "hash": "sha256-6KXlu1fRMkX8pLxr8b3f8ZJDb/7+gjUfSVb317l8ObQ="
   },
   "akonadi-contacts": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadi-contacts-24.02.1.tar.xz",
-    "hash": "sha256-LvKss2DcbUMrj4vpQI+bQYJNZSrrxj4LayM6bjVcacc="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-contacts-24.02.2.tar.xz",
+    "hash": "sha256-7/C8KnAVgEE32cMvTCAQDKEeX5SosRkVPNBi67BW9R8="
   },
   "akonadi-import-wizard": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadi-import-wizard-24.02.1.tar.xz",
-    "hash": "sha256-rXuSdjQOUFUwgL4rZ2ADM1tFLxhN3fEMqOIs3jRDuwE="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-import-wizard-24.02.2.tar.xz",
+    "hash": "sha256-+VCKPaYySF9mM4fP2DKtanZ+r/IIa6Y+AQowNE+dXxU="
   },
   "akonadi-mime": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadi-mime-24.02.1.tar.xz",
-    "hash": "sha256-GC6GK0jMGH8eKb+cAGNztoi7PVd00GQdcAvP6Yg4DkE="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-mime-24.02.2.tar.xz",
+    "hash": "sha256-sGUWJr2lOgujbIBE0RRyOcxVHvAO7R3/+DiKFm0c5BM="
   },
   "akonadi-notes": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadi-notes-24.02.1.tar.xz",
-    "hash": "sha256-CzNK9ydi4Qc55O2DXC4J2digGMyCEjWggq5ZmlwV1ZM="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-notes-24.02.2.tar.xz",
+    "hash": "sha256-BATXrYrse4g4s5CdnPIi0mf01vO1Hya9jsyjmn2LWFU="
   },
   "akonadi-search": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadi-search-24.02.1.tar.xz",
-    "hash": "sha256-kqpvnensD1/3jS120r+yzXwh1GURF6Gaqld/4o/2ENg="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-search-24.02.2.tar.xz",
+    "hash": "sha256-bPrMpULzFzrS+TuqCPu3ddE5AqG6UAV+Ex9IZr6mK54="
   },
   "akregator": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/akregator-24.02.1.tar.xz",
-    "hash": "sha256-CpAp3MFPP9xuAQdSXUVFIZxIW0kkNwCWHAdXVeHey1I="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/akregator-24.02.2.tar.xz",
+    "hash": "sha256-lGd55Rup4KrkF6DXTCmFXWfUYVCKejSyZOpY1zdqymo="
   },
   "alligator": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/alligator-24.02.1.tar.xz",
-    "hash": "sha256-N8Q4EofbrRLZ3dYh9SHO/T+i/msA184AmxulBghsfZU="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/alligator-24.02.2.tar.xz",
+    "hash": "sha256-ridOcusOuZdfGTyCNUQkQW58yeLZ/Xe1efVPsqs/7VU="
   },
   "analitza": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/analitza-24.02.1.tar.xz",
-    "hash": "sha256-UQJFTDDzarfcGYfddrzvxNV9hjrO9wSQyUB6BjL4mU8="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/analitza-24.02.2.tar.xz",
+    "hash": "sha256-SdYM5D277bBHooHdLfaigY2Ok0B3R0nQeqelYj9szJs="
   },
   "angelfish": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/angelfish-24.02.1.tar.xz",
-    "hash": "sha256-duoPmm2k+T9LESWY6lFRSDq6RxfiTOdm1IClXlNLUBQ="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/angelfish-24.02.2.tar.xz",
+    "hash": "sha256-XTqwdHOUKLbTD2oS1oOgXxDf9h9UOwU59aGaFfxMg/E="
   },
   "arianna": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/arianna-24.02.1.tar.xz",
-    "hash": "sha256-YC1pp6/aKNJhOsBTPFXxXUhJp+aRevpGeOlc+mOzWWg="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/arianna-24.02.2.tar.xz",
+    "hash": "sha256-NymiP5TSN5+1h/6QBDb/uSygOuMClu6le5YlqbS+uz4="
   },
   "ark": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/ark-24.02.1.tar.xz",
-    "hash": "sha256-h0DluVd8xfTriJ2IClan0e54xCK/PjCwDB+qheQUj2Q="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/ark-24.02.2.tar.xz",
+    "hash": "sha256-BjdPXHwq7nqTwEv9e2s7quqzli6Cd8kIf+pUupgFvc4="
   },
   "artikulate": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/artikulate-24.02.1.tar.xz",
-    "hash": "sha256-S0QbrR2YEVHAEa3e5IeLNFp4JL8xLVgrAAVxBCyC0M8="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/artikulate-24.02.2.tar.xz",
+    "hash": "sha256-di0yr7ij+PilNs4zpyCIjr2ZZ7T7/qineSWj7QBDuzo="
   },
   "audiocd-kio": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/audiocd-kio-24.02.1.tar.xz",
-    "hash": "sha256-LBrYOxFNF18NuN7w4LsaJS8/hMia+vQZmIH4NtNkJuY="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/audiocd-kio-24.02.2.tar.xz",
+    "hash": "sha256-ig/BKoaU7MiSO1RcXKsgYgQEvXe4SoDkt0yAq05XWho="
   },
   "audiotube": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/audiotube-24.02.1.tar.xz",
-    "hash": "sha256-Wf4yFQWlvhrKkAMpCk4BJ19FT9n1O23Cuhi5jwrSzpk="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/audiotube-24.02.2.tar.xz",
+    "hash": "sha256-/XIaC46IllW6tZBmtygIBxt2Dr7P8b5H9a36dDqqXjI="
   },
   "baloo-widgets": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/baloo-widgets-24.02.1.tar.xz",
-    "hash": "sha256-t94o5H1HD6uohAzAKHMYgoTDcHVyF2qguCHM9G+24+8="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/baloo-widgets-24.02.2.tar.xz",
+    "hash": "sha256-J2tVfDY9o2fRxpUOsOGrLK44mqt7U9r2qeJDH4fe6hU="
   },
   "blinken": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/blinken-24.02.1.tar.xz",
-    "hash": "sha256-Fcvs7wjLe+i4N2yivpjGvayghlGXievK0EGty3xNDhc="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/blinken-24.02.2.tar.xz",
+    "hash": "sha256-hdwL/bbA2n7/s2q2QS8OvTzLndjn53X0y0HAC2/4VmY="
   },
   "bomber": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/bomber-24.02.1.tar.xz",
-    "hash": "sha256-xepCm6PEOL0x56bvytyNysUo8If6Mes0ehLuwPvrdpY="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/bomber-24.02.2.tar.xz",
+    "hash": "sha256-uhke2hB/YF+j7IvjEZtrPQcqV2EBJ5xPa0vg0Be4l1c="
   },
   "bovo": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/bovo-24.02.1.tar.xz",
-    "hash": "sha256-L+Nsa2HjMihoNSOHkHlncW0Vn92w+zcTXpLL2oh/jY0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/bovo-24.02.2.tar.xz",
+    "hash": "sha256-oFIrL6rOogHqfpDFrarfNE8lf13s/EQUBwhIrLeKx4g="
   },
   "calendarsupport": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/calendarsupport-24.02.1.tar.xz",
-    "hash": "sha256-+k4xpqH6cO4Lr2d4okMJM8Rqk4kysrUx9ex7bL+4gs0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/calendarsupport-24.02.2.tar.xz",
+    "hash": "sha256-kGZxMgtfMr2e3PIS5moWxUbRlhUL0zMKr4qwkxsLBzE="
   },
   "calindori": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/calindori-24.02.1.tar.xz",
-    "hash": "sha256-xOl/NExr7+S4R/EWJ3mukUpA7qlPdIfnyH2g7MiG7AU="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/calindori-24.02.2.tar.xz",
+    "hash": "sha256-oPvoWm2TPJ0HlLVWzzdlGTlCS4+7bdMwjHNrqAcx5H8="
   },
   "cantor": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/cantor-24.02.1.tar.xz",
-    "hash": "sha256-VeQu+Ug3obXOQTma6S6GY2b4yElr9gyAs1kZ6U2JZ3g="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/cantor-24.02.2.tar.xz",
+    "hash": "sha256-HNY0Thm1fsmMEDUGkg3kEqVUG2E3fEPctRYq45wrm/U="
   },
   "cervisia": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/cervisia-24.02.1.tar.xz",
-    "hash": "sha256-qwpJzKV21zH3IvEKYy9amAwhVx+9wP5T5fJg9XJKBz4="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/cervisia-24.02.2.tar.xz",
+    "hash": "sha256-+pGS/G/ZtLqH/8mlzF8n3+7+1/OuZ6DYoyRYBdTw5Cs="
   },
   "colord-kde": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/colord-kde-24.02.1.tar.xz",
-    "hash": "sha256-ne0O+XzY/YIAtmd0z9nls7CohSOprptlJHpyK0mHI9A="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/colord-kde-24.02.2.tar.xz",
+    "hash": "sha256-wzuEuILOv3pzm/R7J4+QLhRFBHDTCpYJGJfH1Hh1eEA="
   },
   "dolphin": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/dolphin-24.02.1.tar.xz",
-    "hash": "sha256-WXuxLFOYS65zEM2l4G2+2DH9rhpucx9Vu8ZgtKWD2g4="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/dolphin-24.02.2.tar.xz",
+    "hash": "sha256-UIREkNRRWcoWwdjZ9fBwHxGHcuSwmtrScINbZ7smpwE="
   },
   "dolphin-plugins": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/dolphin-plugins-24.02.1.tar.xz",
-    "hash": "sha256-aOZBKa+BqILPbcGEMp7WuW8yfHj4QLXjlEBtv+F8/qw="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/dolphin-plugins-24.02.2.tar.xz",
+    "hash": "sha256-FLqewFaFXgEMzpzYyxTieIKHGZ8cyPUugKLUpLjFCw0="
   },
   "dragon": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/dragon-24.02.1.tar.xz",
-    "hash": "sha256-hRfiNTrDFxDIw12N4afzcMs9UPjyePf1kdDiTYxMDTg="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/dragon-24.02.2.tar.xz",
+    "hash": "sha256-L/hf4lWnbUmCWSUSkDaQ4W5FLdzWSbbccCScBV9Nz5g="
   },
   "elisa": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/elisa-24.02.1.tar.xz",
-    "hash": "sha256-WYXRta6FCieaYDp9OulyTkqLabEdExeQFU4BbmknqA4="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/elisa-24.02.2.tar.xz",
+    "hash": "sha256-CCGLpznqCs6Cu6aqmFdYFNz99p/rYVljmPXTN8KVbA8="
   },
   "eventviews": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/eventviews-24.02.1.tar.xz",
-    "hash": "sha256-Ge8W9VBcoUqBFt7Y6n0ysT5LYCxy/EY6XRrfYFOiUrY="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/eventviews-24.02.2.tar.xz",
+    "hash": "sha256-UqyX3NJw4uDBOJtx+XRXSSMw1Mn15GpNi3ZbaV6PVe0="
   },
   "falkon": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/falkon-24.02.1.tar.xz",
-    "hash": "sha256-cmvSrXk7+pPvAUNKJW4tGrgQMbpj5istI4J95i8u+L0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/falkon-24.02.2.tar.xz",
+    "hash": "sha256-+GB4MNmXWfVTNq19jo87+d+WlstWMqTjCFhuiSDX6cs="
   },
   "ffmpegthumbs": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/ffmpegthumbs-24.02.1.tar.xz",
-    "hash": "sha256-lPhtbpsyxQVPfGzlRJ18amKPCoP7ELU3354Ev5Maoog="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/ffmpegthumbs-24.02.2.tar.xz",
+    "hash": "sha256-COjDKHOkm25liGrVAdMl+AUyQMZojAg1NIKDE/YMJFo="
   },
   "filelight": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/filelight-24.02.1.tar.xz",
-    "hash": "sha256-nTJvc7jslG1n2guEEoSEcZf20JnoUZaNcKuozhiHt3c="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/filelight-24.02.2.tar.xz",
+    "hash": "sha256-FVG9/ef8fkI0xmU9WmE4+e/vyei97aqqaDNUcoNou44="
   },
   "ghostwriter": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/ghostwriter-24.02.1.tar.xz",
-    "hash": "sha256-HwOef0LGwgTwG+0UprNl+q/ML8RUMwJY/lImVASnknQ="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/ghostwriter-24.02.2.tar.xz",
+    "hash": "sha256-Ct8M7/UWNvXnM5H+MzXiY8Whdw68hmLxSgNGpm26F04="
   },
   "granatier": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/granatier-24.02.1.tar.xz",
-    "hash": "sha256-r+bAlAVDh/xqy54mx0BlLLQDW40GbKaiKWI7hI/cv4Q="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/granatier-24.02.2.tar.xz",
+    "hash": "sha256-H2wCX633JVAYC8Nrv4E1sHJGaIkEv9ehxm+QCDLSvck="
   },
   "grantlee-editor": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/grantlee-editor-24.02.1.tar.xz",
-    "hash": "sha256-qx9KHDp1OBinXdicgfA9nkLkTVi3Gvh3YI1B13zDr6o="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/grantlee-editor-24.02.2.tar.xz",
+    "hash": "sha256-M1l1Rt2dTwnPDq1Oy04SaT9qg71CTjB2g+THRBL1JnA="
   },
   "grantleetheme": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/grantleetheme-24.02.1.tar.xz",
-    "hash": "sha256-oAIXmh6KXQZ+tICYFQTNLEzysvcnLGZstLOZeHYKS78="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/grantleetheme-24.02.2.tar.xz",
+    "hash": "sha256-VIlfJVFtJ0xL/PfPWRCdXNLj9602GZaKflSnOn61qVg="
   },
   "gwenview": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/gwenview-24.02.1.tar.xz",
-    "hash": "sha256-N2YUJq1VB6jrRENA7XyyiqGYPKUrNHH/8dKThe279sw="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/gwenview-24.02.2.tar.xz",
+    "hash": "sha256-XxhgQHb+4pfnIutd1PRZafDgDGXs6TnnsSRj9X33i54="
   },
   "incidenceeditor": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/incidenceeditor-24.02.1.tar.xz",
-    "hash": "sha256-MFvxp4yUEEttrmmStC8XZUSbceeaye5mHhtPsXyFIKM="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/incidenceeditor-24.02.2.tar.xz",
+    "hash": "sha256-L+I9hvAy5ZyXolpEPmzwpe3hNGnKGcbI1TMFjeZUJRc="
   },
   "isoimagewriter": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/isoimagewriter-24.02.1.tar.xz",
-    "hash": "sha256-X6e0h5LuPkm1fmdhmfLy0iRAfDQtS50/jrZskGaKlmE="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/isoimagewriter-24.02.2.tar.xz",
+    "hash": "sha256-lsddWNFO9ySQ2tSrYrcr9aedXNkCns+noonfGoP4sYY="
   },
   "itinerary": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/itinerary-24.02.1.tar.xz",
-    "hash": "sha256-MxXLjWKkWsqBaiBNT/7oJuSJ9zyLY5hFgLfghY9VUYY="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/itinerary-24.02.2.tar.xz",
+    "hash": "sha256-eCGsmCUwFlshH0633jIl3rdn7TVrxQUXbcNkDoVMOxw="
   },
   "juk": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/juk-24.02.1.tar.xz",
-    "hash": "sha256-xsBd/xGDy7bd1zBIIaHLeEvjehaqVizBbKBwu4N4m0U="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/juk-24.02.2.tar.xz",
+    "hash": "sha256-5XHlttb7Jz9Ar+8bX7KTO2OtuRcNEoI9EXWHn/sr+oM="
   },
   "k3b": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/k3b-24.02.1.tar.xz",
-    "hash": "sha256-DFIJiptgT1kK6w1gdIioF3y/zIwr/4TO4qEYhtgk+bY="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/k3b-24.02.2.tar.xz",
+    "hash": "sha256-YEfZQZO6FlDOcfQQC7oHhgI0VfTGoS4UydVDBYpOjkU="
   },
   "kaccounts-integration": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kaccounts-integration-24.02.1.tar.xz",
-    "hash": "sha256-5WjxGpeRnG7dMR3pOyAbFTKAOT7Re45aGIbpq/DG5ow="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kaccounts-integration-24.02.2.tar.xz",
+    "hash": "sha256-1Qs9eQ2N9qJNGv52YPp8bmHDgVnXdzgPh7gTyR0G0wc="
   },
   "kaccounts-providers": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kaccounts-providers-24.02.1.tar.xz",
-    "hash": "sha256-LTJQuEMXQd05p6NfqQxnqY0SLBHeq8QKzG+sRonTJak="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kaccounts-providers-24.02.2.tar.xz",
+    "hash": "sha256-Ti9uioVPthqxnwD4/2dsj9l7GhK3BIXmZSt0r6N0nBg="
   },
   "kaddressbook": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kaddressbook-24.02.1.tar.xz",
-    "hash": "sha256-vQAs0OMNryyfN9vrIw2qVr93jEiYdjtdhe02Vq/9Rcc="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kaddressbook-24.02.2.tar.xz",
+    "hash": "sha256-9ujQeY+Wf0XpJ5j2iUQ3XY0IjajDP2UAyk6mCxdH76M="
   },
   "kajongg": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kajongg-24.02.1.tar.xz",
-    "hash": "sha256-3drKhXpjfmZLYWKdlEKbBF2YwjreZQ2mEReln6vH4FE="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kajongg-24.02.2.tar.xz",
+    "hash": "sha256-wj6afAznRNhX5W5GtoVqyDRF9yzLYYPo6Xfw5aOCRT8="
   },
   "kalarm": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kalarm-24.02.1.tar.xz",
-    "hash": "sha256-PilL0nOvkRrbeQwU7p5/mXimsTmlTXab6/DTba2VV9k="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kalarm-24.02.2.tar.xz",
+    "hash": "sha256-LrlXBP+sQ6O96UISGmOm/zp/We54P8YU6w0CFuV4b/4="
   },
   "kalgebra": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kalgebra-24.02.1.tar.xz",
-    "hash": "sha256-Kz/FUDjtTC+ORzKVaBmWJo+793OOboE2A4Qnqz+CAng="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kalgebra-24.02.2.tar.xz",
+    "hash": "sha256-oFvJWvkuRduH56GKkH5H9WsbiRtb2C9h7QFVs9rzTug="
   },
   "kalk": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kalk-24.02.1.tar.xz",
-    "hash": "sha256-1vhwf/coKYE+f2HD2AK63wWnqshaHaKPPUX9SASXvi4="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kalk-24.02.2.tar.xz",
+    "hash": "sha256-i85J/DofNyYDlroZfA0K/6YMIFFiSwVbRzakfmcJUWM="
   },
   "kalzium": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kalzium-24.02.1.tar.xz",
-    "hash": "sha256-1MZNdbwbpJBt6RDTaxer6sWx48768qCmYAnQsIQchMg="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kalzium-24.02.2.tar.xz",
+    "hash": "sha256-TGwX7FhH23FMEaJJ3kWZ1B3In8BLo4E53JCn/hX/Fqs="
   },
   "kamera": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kamera-24.02.1.tar.xz",
-    "hash": "sha256-y2suGBR+WwIw4yn+oxPCm7uramx5Prvq6uRjt7gvBJM="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kamera-24.02.2.tar.xz",
+    "hash": "sha256-5ZTVkaqrHz3V+uzwJtd8DX7gJcNmL3xV50NGCM7bVNQ="
   },
   "kamoso": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kamoso-24.02.1.tar.xz",
-    "hash": "sha256-r38iH4VMzMr88L2oidf3I0+j3rZQTZzQoUAFJGGXeCk="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kamoso-24.02.2.tar.xz",
+    "hash": "sha256-f9cuA5hFh9mKGGeWCtqcOkTnyWjFSG/HdWP507tdCWs="
   },
   "kanagram": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kanagram-24.02.1.tar.xz",
-    "hash": "sha256-iVIkBFT9j1ZVTNQEIjWQII3eXhpqPB/88Ej6XEI7jJo="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kanagram-24.02.2.tar.xz",
+    "hash": "sha256-s5rbg39f78IFPRocFfpVHgVOohR6AVxGGRTZyvyeR1w="
   },
   "kapman": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kapman-24.02.1.tar.xz",
-    "hash": "sha256-NBv611cCzlXRrP+yg0JMr78chI9woLveHnBFCYF19Vo="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kapman-24.02.2.tar.xz",
+    "hash": "sha256-3j0LLttJQQXXOdR9eCUkJSO36M2M5VGpUNQDfm4+eeo="
   },
   "kapptemplate": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kapptemplate-24.02.1.tar.xz",
-    "hash": "sha256-8pdu/O5XCAJqrcLTstBfsB6QVRmhnvr8L2NbLzvCYq4="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kapptemplate-24.02.2.tar.xz",
+    "hash": "sha256-wrv56L0aZjynOEffETrZVQu4QT5MCBO1B54Bp0hjo1o="
   },
   "kasts": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kasts-24.02.1.tar.xz",
-    "hash": "sha256-AebMpVbJpnzPl+S1xlCxrDjfvVcFeY1Rx89tPz7gf0w="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kasts-24.02.2.tar.xz",
+    "hash": "sha256-Tcf2XvflSBY9V6vAfRSStu0ca2RQgKJoYUsEjIICCN8="
   },
   "kate": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kate-24.02.1.tar.xz",
-    "hash": "sha256-y3h/fUm7D5ubUL+A2DurGnE9MlqWvwnhBvY3IfwbAS0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kate-24.02.2.tar.xz",
+    "hash": "sha256-HdrLCTmDGkPiucGr2Nflr+/nZ4mEIzMmNlU3Dpn1Q00="
   },
   "katomic": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/katomic-24.02.1.tar.xz",
-    "hash": "sha256-7QFXSPHe/FYsjWoruEpok4F+0OGK8vFAlAD/4H8G+zs="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/katomic-24.02.2.tar.xz",
+    "hash": "sha256-5tIIENASeTWZtY6FCzZKgl6R1nnOb28xwPX+4+ar2aA="
   },
   "kbackup": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kbackup-24.02.1.tar.xz",
-    "hash": "sha256-q1r+bz9oU3zPDILId9Kizm0na90a0wNRH3J/Cq8vS34="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kbackup-24.02.2.tar.xz",
+    "hash": "sha256-Amcdci6yJESCj3qZNqtEmdavnaS8ea6zOHAR3TclcVg="
   },
   "kblackbox": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kblackbox-24.02.1.tar.xz",
-    "hash": "sha256-nMiV7Sk18WJasbnRrrsZxNpmpBHULXkUXUk2ZdPqgOQ="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kblackbox-24.02.2.tar.xz",
+    "hash": "sha256-NTTlrAQPxCf/PlBF8ZkAPDpDq7H7YZfRnvsPblAgAPY="
   },
   "kblocks": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kblocks-24.02.1.tar.xz",
-    "hash": "sha256-StHJx7ALrk+fgwkwxFQThR6jTlPnHnnScvQB1UMfBh8="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kblocks-24.02.2.tar.xz",
+    "hash": "sha256-rOcasBtCOHtrxJhypwg9c4pvHAhMeli1c6Tx8ZCKkGM="
   },
   "kbounce": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kbounce-24.02.1.tar.xz",
-    "hash": "sha256-1hxzgufyV2qsjBl8Wi9uPi/kNVULpRdiwebE+wTPflw="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kbounce-24.02.2.tar.xz",
+    "hash": "sha256-g9AImDCZw2BwG7EJ3/myZAsQ3KQfhk6CD1nvX3C9qqY="
   },
   "kbreakout": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kbreakout-24.02.1.tar.xz",
-    "hash": "sha256-7hoh48B2wh8Jg2r55GY8yFOp3XXMad0pbd77OLPcn6o="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kbreakout-24.02.2.tar.xz",
+    "hash": "sha256-lEMvZ0NGPhx06rZr1+kaKDs1xHGi0DwOtLYZz95Y21M="
   },
   "kbruch": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kbruch-24.02.1.tar.xz",
-    "hash": "sha256-3MVi4m1fRdJWcNM+4LaU6ufv6rqwi4kzBzW3O9b9LAU="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kbruch-24.02.2.tar.xz",
+    "hash": "sha256-mwAEF9T5epRyDKzaKrffIAAEv4LggtPUB83DvYeKd+I="
   },
   "kcachegrind": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kcachegrind-24.02.1.tar.xz",
-    "hash": "sha256-dN2VjEOSSbv7PmqPCCEHM4h6b5gVftMv5sJv1AL3EBU="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kcachegrind-24.02.2.tar.xz",
+    "hash": "sha256-HEMJn6QqOJ6f+SYTtVDmYGqd6dW1ehCksIq1E+Wme5w="
   },
   "kcalc": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kcalc-24.02.1.tar.xz",
-    "hash": "sha256-38lcv0vVrLBgCs6tpL9hNrC+YfPOU9KzXsKxSnjhrK8="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kcalc-24.02.2.tar.xz",
+    "hash": "sha256-nMLSdjX4WK+3vzD55+m+8sBN6mU+4zuqQxZdo+V5e50="
   },
   "kcalutils": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kcalutils-24.02.1.tar.xz",
-    "hash": "sha256-Q+2OQnGYKfDri64BexbADMLiEErmMcDBumuArKtT8bY="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kcalutils-24.02.2.tar.xz",
+    "hash": "sha256-ikf/BefvIY4qSDbY2xYoDvYx6bkNm13/jFakzK6NHI0="
   },
   "kcharselect": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kcharselect-24.02.1.tar.xz",
-    "hash": "sha256-EfUYASrSHsT+9a7FV59b8pEqFaMEWoKfp2o54b6t5qE="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kcharselect-24.02.2.tar.xz",
+    "hash": "sha256-oYVEVRN8xl9518cQJGwWv9DdVYMbocH88hRuiR4p/SU="
   },
   "kclock": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kclock-24.02.1.tar.xz",
-    "hash": "sha256-r4ILyI1KJrI19WCDp0cEkfto/RfDaC3zQi8Q0jYj6Fg="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kclock-24.02.2.tar.xz",
+    "hash": "sha256-mumHKzXstbCLnonGe42zi+qYVJT0YC6Y7j90AQbtYFo="
   },
   "kcolorchooser": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kcolorchooser-24.02.1.tar.xz",
-    "hash": "sha256-/Bh1XVUd2YrALSrefK4XEqJsnuRZ49XvvDSkR0SUAs4="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kcolorchooser-24.02.2.tar.xz",
+    "hash": "sha256-fx18e/2oDPYnpyvrYtCUTgUoc/SIBO6ZquwTORmABaw="
   },
   "kcron": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kcron-24.02.1.tar.xz",
-    "hash": "sha256-Cjx+APBWa98vPPbFdAHveMw8fipluaBV3akHVmCUdoM="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kcron-24.02.2.tar.xz",
+    "hash": "sha256-LFWHivRYz8e4PM9ZLaVxc2kywn2CQSBDMZtx7rrXELU="
   },
   "kdebugsettings": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kdebugsettings-24.02.1.tar.xz",
-    "hash": "sha256-CyRldtyEjsf8Ltj+Kk1KisZxRbZ79A/c/xXvEJwzzzo="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kdebugsettings-24.02.2.tar.xz",
+    "hash": "sha256-D/ClEQy1i4EhaMtit5+2bj60W9iLfKWBEdXjhk7PukA="
   },
   "kdeconnect-kde": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kdeconnect-kde-24.02.1.tar.xz",
-    "hash": "sha256-tbmGuvBKUculcFEJrzQaGOz6FO7aZV7wgd5GzJDr7OI="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kdeconnect-kde-24.02.2.tar.xz",
+    "hash": "sha256-6ASRDSse1PX2zjaRXHnRHFW+bO4PJl2SNNlqLCcADa0="
   },
   "kde-dev-scripts": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kde-dev-scripts-24.02.1.tar.xz",
-    "hash": "sha256-/yL24UopmlijxngpHG32JGZ1t1H9dz57wPONX/hpY44="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kde-dev-scripts-24.02.2.tar.xz",
+    "hash": "sha256-/pmwM1oKsrD/CbMx/CQD+tpm5jfv1RV3rSGgpAEJGd8="
   },
   "kde-dev-utils": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kde-dev-utils-24.02.1.tar.xz",
-    "hash": "sha256-K+/xZoe65DtnczsXmz89DQiBCtnIwslq3fEKXeb136A="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kde-dev-utils-24.02.2.tar.xz",
+    "hash": "sha256-qmb4jZJxiqcpxkStN8aS4AWmMZBSihQgGRUhMpvb3U4="
   },
   "kdeedu-data": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kdeedu-data-24.02.1.tar.xz",
-    "hash": "sha256-FHoiFRO4qzNGCLOPrcgzagFJJdo9urw6PDePgxd7EBU="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kdeedu-data-24.02.2.tar.xz",
+    "hash": "sha256-Vr/rOVLH2SF/q9iT/y/ae/JZq+FYMQWGxugSsIu4tJc="
   },
   "kdegraphics-mobipocket": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kdegraphics-mobipocket-24.02.1.tar.xz",
-    "hash": "sha256-eT3rVPR8V8s8+aQXSFzfvTF4K+UZu94vWyIGqwLXE6g="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kdegraphics-mobipocket-24.02.2.tar.xz",
+    "hash": "sha256-kRFWFg5KwC8wJhGN4/MAiWIw+OCmvXp/z1yVvEFsvSo="
   },
   "kdegraphics-thumbnailers": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kdegraphics-thumbnailers-24.02.1.tar.xz",
-    "hash": "sha256-qaoCAV9OOBYU/+RHANJ5Q0TngI0kVLs80QSjNb6BiXE="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kdegraphics-thumbnailers-24.02.2.tar.xz",
+    "hash": "sha256-uWkSy0maO1FOF1X5ILeqJRsVQhL8PD+JS4SrQJ+68wo="
   },
   "kde-inotify-survey": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kde-inotify-survey-24.02.1.tar.xz",
-    "hash": "sha256-NHjq4xJnIm3K357flSvR+fQIESxDTzhTg6zK0c3yl3w="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kde-inotify-survey-24.02.2.tar.xz",
+    "hash": "sha256-UG1tomYst8jhNduD/xH+TlaW3SWKnTohK11K0oiTCKw="
   },
   "kdenetwork-filesharing": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kdenetwork-filesharing-24.02.1.tar.xz",
-    "hash": "sha256-Hw6RdVS/bIup/CxwQ+TRH1wLvwMCU9VD8FjZ/45subc="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kdenetwork-filesharing-24.02.2.tar.xz",
+    "hash": "sha256-tRZnIIALHodp0heF6DreLmcw5y/6HMPZMN9kVyLAing="
   },
   "kdenlive": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kdenlive-24.02.1.tar.xz",
-    "hash": "sha256-H3dHUlmoLFui2U7pdfSuqpsMDbElUEwT73GLFAhXUFY="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kdenlive-24.02.2.tar.xz",
+    "hash": "sha256-yEtiZK7y6nlOAwGCf0bAHhK22VkhWJN+GE3dxMOUbuM="
   },
   "kdepim-addons": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kdepim-addons-24.02.1.tar.xz",
-    "hash": "sha256-svL5Zz5fbHvc8eoG3RGQvBDLot/55qyHqgubGRuhrcU="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kdepim-addons-24.02.2.tar.xz",
+    "hash": "sha256-sdnub88kEAlOH+R9j4OQ6SCVNwuoJhEZP8PmH1qwST8="
   },
   "kdepim-runtime": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kdepim-runtime-24.02.1.tar.xz",
-    "hash": "sha256-ryPUPhEt6uXGLr+EEXlhRjFvfC5L0vIQGiRqGe3lhVg="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kdepim-runtime-24.02.2.tar.xz",
+    "hash": "sha256-7DAF62M58uU+iSaKXh1Mn3azM/CyrQyH54I9GEbtDcw="
   },
   "kdesdk-kio": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kdesdk-kio-24.02.1.tar.xz",
-    "hash": "sha256-AskK0wqOfEd7FNgwF666l9kEGvZOVZu44oe4Eyw6JEU="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kdesdk-kio-24.02.2.tar.xz",
+    "hash": "sha256-IjdMcwnu4O3gJCDLzmoXC2lnoi1NdfIKqeO7GRyq230="
   },
   "kdesdk-thumbnailers": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kdesdk-thumbnailers-24.02.1.tar.xz",
-    "hash": "sha256-k9f7/AoAWhStHwk6IPuWOT2erCVSMXbpqpdfxFg+K4M="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kdesdk-thumbnailers-24.02.2.tar.xz",
+    "hash": "sha256-uifW3KPs6UAUBuoDH38I6Fs1/snWu0hRLLYz3tXEBvI="
   },
   "kdevelop": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kdevelop-24.02.1.tar.xz",
-    "hash": "sha256-X8ySelNvTx5IrvvmMwNZPoix9mV+WItiQOlhazNKno8="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kdevelop-24.02.2.tar.xz",
+    "hash": "sha256-M54jhw7jKHNvatPxcTxyqEr00VZSm/KUfxEz+tekirc="
   },
   "kdev-php": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kdev-php-24.02.1.tar.xz",
-    "hash": "sha256-FaJvtKymwgrB4AN3MWLbIlGnBzIuQ+8dZDQewsnT+Hs="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kdev-php-24.02.2.tar.xz",
+    "hash": "sha256-wDw2DGP/hoynhisDYsbGaTw2fAdpDMXlqJSrQ1BWKoo="
   },
   "kdev-python": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kdev-python-24.02.1.tar.xz",
-    "hash": "sha256-ZisKfm1q/LGiDQNqe2Q7gXdEqW5Qz9bbLq8WxV4gUhk="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kdev-python-24.02.2.tar.xz",
+    "hash": "sha256-+Px+89s8x02OxzP+Tm1jifgYfIp/plhXcrWGox5KjWo="
   },
   "kdf": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kdf-24.02.1.tar.xz",
-    "hash": "sha256-OGla8UQrbjUS3F7xekOun8zrLKsvOeLijqlypOwI2kg="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kdf-24.02.2.tar.xz",
+    "hash": "sha256-K1ouYilOXTewDdoZeuXiJYBrz6jdGXXY8VEG2XM2Odc="
   },
   "kdialog": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kdialog-24.02.1.tar.xz",
-    "hash": "sha256-GwPx/cJcCT6sXAjSWAYYu7L/r47xADr7ROaw7J9+Bwg="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kdialog-24.02.2.tar.xz",
+    "hash": "sha256-8d+N1LY/tO+/nbgDJquvfi99uDEo/kfShMbffYEucdk="
   },
   "kdiamond": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kdiamond-24.02.1.tar.xz",
-    "hash": "sha256-6jCltKvGAn2CCUyYPy6tIh0sMsgctESARL6s+Rnc/gg="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kdiamond-24.02.2.tar.xz",
+    "hash": "sha256-DnX4x2wnaGIzr7vR+DrwNDAj1ocLeI6g88H+QxnVyJw="
   },
   "keditbookmarks": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/keditbookmarks-24.02.1.tar.xz",
-    "hash": "sha256-dO9GQSe91o8og0MEbVcvOEsiyg/qAEROqEMbcg7bc+A="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/keditbookmarks-24.02.2.tar.xz",
+    "hash": "sha256-vHSvzQFkt6zf/fMj/bR7KDtbCWClZ8B6AQI4oMCMayY="
   },
   "keysmith": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/keysmith-24.02.1.tar.xz",
-    "hash": "sha256-9lSvHpgX1olv72bkVSbyimahE6kycsibnb0tF/jjHGo="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/keysmith-24.02.2.tar.xz",
+    "hash": "sha256-8WwhWSYQRNG/+T0bkOoPUI40xhukkmi1ysD7VyTbByw="
   },
   "kfind": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kfind-24.02.1.tar.xz",
-    "hash": "sha256-MFXVeG+XsxqetpS0AdgxiSLm979QyJS7KohOWUj/gPQ="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kfind-24.02.2.tar.xz",
+    "hash": "sha256-rg8fsCnEtLhRIszXH0wdGGkp7xkFfdrztyyhsyUsmK0="
   },
   "kfourinline": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kfourinline-24.02.1.tar.xz",
-    "hash": "sha256-OGAJRLhtB5tOGKpAbBo3c+gPpk/RpmRSvMXJoFBLZps="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kfourinline-24.02.2.tar.xz",
+    "hash": "sha256-R+fYzLd/df4yjW1URKIY+cPb4T4dHc6EIql2U4nMwy0="
   },
   "kgeography": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kgeography-24.02.1.tar.xz",
-    "hash": "sha256-cMjrZ8cY6QHV0alE4iS8e3M2cOm9IrbRkLZ/JQJwd9s="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kgeography-24.02.2.tar.xz",
+    "hash": "sha256-DyQkUzTnW7j3uGzYlLVMsAuMtCGSgnPCy934KXWOdgo="
   },
   "kget": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kget-24.02.1.tar.xz",
-    "hash": "sha256-kavgEdXSwPZX1Z0gVw6apmEmDQ0fEIG/70nlPS0Cc7c="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kget-24.02.2.tar.xz",
+    "hash": "sha256-4PkVdtAFGUdwAyEjufHEDSUKvMBWQEGkRZzvtzsDK2Q="
   },
   "kgoldrunner": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kgoldrunner-24.02.1.tar.xz",
-    "hash": "sha256-ihBI+OwqJl6OV03acT4cidobbTHVW250igvG4jLodoM="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kgoldrunner-24.02.2.tar.xz",
+    "hash": "sha256-0WcnGBJopqW9PuKy1TmDCePLOqwOi3AwB22mjlOzv3M="
   },
   "kgpg": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kgpg-24.02.1.tar.xz",
-    "hash": "sha256-lXOR7KtG0HC/vL6wwmiHRhrH2hFKziJqXWdxqJZDBGM="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kgpg-24.02.2.tar.xz",
+    "hash": "sha256-2XraIbCCSMjkTZGLR9pg8o+kpbksYVJzPzE36aLvBes="
   },
   "khangman": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/khangman-24.02.1.tar.xz",
-    "hash": "sha256-CRb2ZXqcDII2SvUgiGXEoBFoDyNw5tmPb2hHyHvW5Gc="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/khangman-24.02.2.tar.xz",
+    "hash": "sha256-unFszlJqp8KI7K/CEV1BszbSaI4ogYzFI1OSWiz8SCw="
   },
   "khealthcertificate": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/khealthcertificate-24.02.1.tar.xz",
-    "hash": "sha256-e6O8EK39YcwJNuQpMGMppymzSPVvFQd2il2dzp5eLAA="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/khealthcertificate-24.02.2.tar.xz",
+    "hash": "sha256-llBNAYqMwXmB/f2R0lElXpUbTiR4GTlohHLefXRhxy0="
   },
   "khelpcenter": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/khelpcenter-24.02.1.tar.xz",
-    "hash": "sha256-+UZLX3+obVIFY0bfAni2lGEVEp19X/quyB/seE3W0RQ="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/khelpcenter-24.02.2.tar.xz",
+    "hash": "sha256-UghQIcT3Qr8oSQEDI7BD7RIaosyJ4H4sgV2JGoG95js="
   },
   "kidentitymanagement": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kidentitymanagement-24.02.1.tar.xz",
-    "hash": "sha256-yuz+AH6ypNSJE93/6KHvBQVqayWTAcgBKAUiU0DkZj0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kidentitymanagement-24.02.2.tar.xz",
+    "hash": "sha256-nfCo7FkpgVkAdwZ+e+ed8YiUr060HylFHpPqduQIH0E="
   },
   "kig": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kig-24.02.1.tar.xz",
-    "hash": "sha256-AAy4xamCvZc65VqfJ1AuMDWahT7BB88UGlaH3atn03k="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kig-24.02.2.tar.xz",
+    "hash": "sha256-k85+krHu+LZpUFskjEShugmLEXQ4xzNL/86bWm14tOs="
   },
   "kigo": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kigo-24.02.1.tar.xz",
-    "hash": "sha256-meIDrWp+qdOWt0OAw8l0f+feZAcSLbsWkNuwMw2vS54="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kigo-24.02.2.tar.xz",
+    "hash": "sha256-AMYnWg5IdTFMWnNfIPVChuInKP7U1k5k9U0KDFKwaBY="
   },
   "killbots": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/killbots-24.02.1.tar.xz",
-    "hash": "sha256-xHrFUsD0MMgxTPVw0LpsOh+LJFQydYgyr88+iuKN1to="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/killbots-24.02.2.tar.xz",
+    "hash": "sha256-idjc/On0HquWg13tJIdkdE/FM1fYvU9Rc2tQGaK6xIE="
   },
   "kimagemapeditor": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kimagemapeditor-24.02.1.tar.xz",
-    "hash": "sha256-z2Zp7Bu2w7vrj2eHg8keERYIDio1R8qV/nhhdjCKPEw="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kimagemapeditor-24.02.2.tar.xz",
+    "hash": "sha256-RD7rYeNFiYE4L4ogHa9QKfnHlSXmB5njU/POoIVhMr8="
   },
   "kimap": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kimap-24.02.1.tar.xz",
-    "hash": "sha256-VUKXCdOYElGWvD6RWO32yfdVznFKs8/13zmPO7F5sO4="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kimap-24.02.2.tar.xz",
+    "hash": "sha256-YX9P//jQEHirTd66ibXCxE8tw5b96W/uRv6XSbMjM2A="
   },
   "kio-admin": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kio-admin-24.02.1.tar.xz",
-    "hash": "sha256-xFObulemM3xn7Zg431fCShW4izNObBG1uiTz2WO9czI="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kio-admin-24.02.2.tar.xz",
+    "hash": "sha256-JAgogPCAj7mzyPWDlHFZAtvHMWeveuLtl/Lk4oTKCbc="
   },
   "kio-extras": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kio-extras-24.02.1.tar.xz",
-    "hash": "sha256-f3CKF0U5k9t5ffeNU7aK81hsuhXg24iCjamsuDIKDMA="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kio-extras-24.02.2.tar.xz",
+    "hash": "sha256-+nph9GHBYcNtX6RR0HDmllPyNAYgZI+BO0wry3mUQ8c="
   },
   "kio-extras-kf5": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kio-extras-kf5-24.02.1.tar.xz",
-    "hash": "sha256-9bpXRQKYgyksaHli0CVJUQ2rR3TocMaePWi4oy+z1gk="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kio-extras-kf5-24.02.2.tar.xz",
+    "hash": "sha256-qar1jzuALINBu6HOuVBU+RUFnqRH9Z/8e5M8ynGxKsk="
   },
   "kio-gdrive": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kio-gdrive-24.02.1.tar.xz",
-    "hash": "sha256-rA4vcxKhr3QVMnSXddTsrifrr2HhUp7CXfao2k2zVd8="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kio-gdrive-24.02.2.tar.xz",
+    "hash": "sha256-Ejv0tSgW3QasBFXBsKzS9oTK1zUHX/btIkTvHjqSOSM="
   },
   "kio-zeroconf": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kio-zeroconf-24.02.1.tar.xz",
-    "hash": "sha256-+WychaU9d7PnW4G9sIBKozcXbK4QOhZMFMi3Xdn4k1U="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kio-zeroconf-24.02.2.tar.xz",
+    "hash": "sha256-pnhOiXHJ7aRe4nGSj9wL/ytu4O0TTdtkiNqvHohqFE8="
   },
   "kipi-plugins": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kipi-plugins-24.02.1.tar.xz",
-    "hash": "sha256-PvquTKHj4eKhwuHhYzm4Fr+f/OBPVZRMFrEF+iZlIz0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kipi-plugins-24.02.2.tar.xz",
+    "hash": "sha256-VQShO1Jx8IQYoXui2HX95LI3PKlT/lZLMJFI0eyw6G0="
   },
   "kirigami-gallery": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kirigami-gallery-24.02.1.tar.xz",
-    "hash": "sha256-o6rFvbPcYvVFMJBVqzo3KNpJRbBQeMpQrdOecYPSqG0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kirigami-gallery-24.02.2.tar.xz",
+    "hash": "sha256-cLt1nGKg5NFpeBwzTM21ZPTN4Kv1EJEL3oITNc53it0="
   },
   "kiriki": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kiriki-24.02.1.tar.xz",
-    "hash": "sha256-N97jHeNyHseLr34xI4EV804yaJsDfan0Vuw37cFZ0hA="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kiriki-24.02.2.tar.xz",
+    "hash": "sha256-BsMqgpi6ysmJHrkVURJC+A2r82aB3LEZNPdGKQUEdRc="
   },
   "kiten": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kiten-24.02.1.tar.xz",
-    "hash": "sha256-An2TME2mmk+hlGGiQ2u5WH3aYCa/TJFq3zvJeIcWoJk="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kiten-24.02.2.tar.xz",
+    "hash": "sha256-7d6RgHGcmk1DR/upIclTnaRoiiBNwSRqtrt1zuYM67w="
   },
   "kitinerary": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kitinerary-24.02.1.tar.xz",
-    "hash": "sha256-kDEuG3nNpcTEDQ/yjMViy+0syWHD1m64Kh70uvhLsVg="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kitinerary-24.02.2.tar.xz",
+    "hash": "sha256-cW5uYhdcorV3598YjJFDpS4plMdQBzR8DTisAQSeKvg="
   },
   "kjournald": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kjournald-24.02.1.tar.xz",
-    "hash": "sha256-FDF9ktlqZ0SNcq0M+psx/7dM0uPjFpnEu3XzR6wwYf4="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kjournald-24.02.2.tar.xz",
+    "hash": "sha256-OTE9s1JLRha846is7JxUvIOg07woNxYKwHQw0E0Mims="
   },
   "kjumpingcube": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kjumpingcube-24.02.1.tar.xz",
-    "hash": "sha256-VAhjxtdL+eX3Ipa8XP4GA6CgMxKKAtStsdzORyU96wU="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kjumpingcube-24.02.2.tar.xz",
+    "hash": "sha256-Jw0mjtZIvdgOok2odrl5v6ScMpqJ0jFZJYm+ufjqNw4="
   },
   "kldap": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kldap-24.02.1.tar.xz",
-    "hash": "sha256-YcToycp9CFxEPgxpJigLA9SfDlzjdKZKJDR9nVnsx6M="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kldap-24.02.2.tar.xz",
+    "hash": "sha256-lUb0yqIDQQCqtoyeiT/gMvk4IVFbvTGUMl3YQQ9OGFQ="
   },
   "kleopatra": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kleopatra-24.02.1.tar.xz",
-    "hash": "sha256-b4eQAX3mQyX/3vLij9VFC6ZRC1KXm0hrHbO/of3QK5U="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kleopatra-24.02.2.tar.xz",
+    "hash": "sha256-B3Q4U7sbZt3xwKP5hh/PIecWvF5Z2EB4wC/rnzXGQ8U="
   },
   "klettres": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/klettres-24.02.1.tar.xz",
-    "hash": "sha256-3gHuaRDld2u2vhwci6O6BMvIgjKiRTDXcZeMKdFaYLM="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/klettres-24.02.2.tar.xz",
+    "hash": "sha256-eH/tX6Hv/uVs6WmPKL7aa4eWn42sTzN3j9Kbf0RIuwc="
   },
   "klickety": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/klickety-24.02.1.tar.xz",
-    "hash": "sha256-EREo5aYkjqCldP0pr1rKdL6QfGGjABFaOoIR2hbTk1w="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/klickety-24.02.2.tar.xz",
+    "hash": "sha256-S4zFnyrghWPvF6mdOzrtL/zs8zWD50PUJovHO1F6tlQ="
   },
   "klines": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/klines-24.02.1.tar.xz",
-    "hash": "sha256-4kEckyk0Zm3Z08EjurtwoLBbI4lPGH9zF0ItFoR4J0Q="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/klines-24.02.2.tar.xz",
+    "hash": "sha256-ZQMF9WAqfckjh5qEz0796OdD2CYRu6b8QC4iyc7LCOY="
   },
   "kmag": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kmag-24.02.1.tar.xz",
-    "hash": "sha256-lMN4nlaxv05D2iXPS+oyL9Rn6tNJgZFRlXyAag6QSuA="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kmag-24.02.2.tar.xz",
+    "hash": "sha256-nDkcfm7gntmatD5enyt1WvWaoUShjojylTKFmfeC8CY="
   },
   "kmahjongg": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kmahjongg-24.02.1.tar.xz",
-    "hash": "sha256-3FlxIZIXOMEn7yj0NBSldr0JBKQlKQL2OmUTbS0aKEE="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kmahjongg-24.02.2.tar.xz",
+    "hash": "sha256-T3RMz/vQVyu2FgdoiNcZmhxxBur3DZAGJEEAnPG6UhI="
   },
   "kmail": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kmail-24.02.1.tar.xz",
-    "hash": "sha256-yK7BFWRCqrP8l/iHWposWCW9Eg0hcho3reIrqsyOBdE="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kmail-24.02.2.tar.xz",
+    "hash": "sha256-8AVx6obaeDqueB8fHTmO3yn1nSi0F1dQNVtzyhlyGCY="
   },
   "kmail-account-wizard": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kmail-account-wizard-24.02.1.tar.xz",
-    "hash": "sha256-1OeMfxGjKjI85Hw/ew4+N7g8mAivTxxMar5rqZw+ekY="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kmail-account-wizard-24.02.2.tar.xz",
+    "hash": "sha256-va6vyIgl4UMX3NKQhZJcDW780fCYX0gSY1OSGWdH8fc="
   },
   "kmailtransport": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kmailtransport-24.02.1.tar.xz",
-    "hash": "sha256-Vk1q7+VVk0nV3IUTzbVx7Sx0jCoN0YXfycdb3BMadLs="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kmailtransport-24.02.2.tar.xz",
+    "hash": "sha256-KK86kGlccotCWEt/rjSPlmxx+LaI+dN5L2RrVdZgxlw="
   },
   "kmbox": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kmbox-24.02.1.tar.xz",
-    "hash": "sha256-fx5uxNwNi6Hmpb88ml0tMUvj0CfgrG74Pwf2elm+pNo="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kmbox-24.02.2.tar.xz",
+    "hash": "sha256-b6z07FzQU83j4tNHmepydqZI4QdjXg/AohtB6uZcPo8="
   },
   "kmime": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kmime-24.02.1.tar.xz",
-    "hash": "sha256-OQSnGenx2F+ozgueZ2PZvu+BOsR3kGMCh8SiMTn6cdY="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kmime-24.02.2.tar.xz",
+    "hash": "sha256-Q03G9tI9Zog2t5TmNmCk2/PpOZ6E/OodGVd6SgnmSuI="
   },
   "kmines": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kmines-24.02.1.tar.xz",
-    "hash": "sha256-KovvXvynhZhrfzwaFeNt/HT6mZKfZk3Ji773mmYyBGg="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kmines-24.02.2.tar.xz",
+    "hash": "sha256-jAR6f0ykQhknrER4Uyi4z7eyz21J0Te5wnrtUkF60Q8="
   },
   "kmix": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kmix-24.02.1.tar.xz",
-    "hash": "sha256-8yN9RuxRgRIdnQ15qRjBKiPEaqUSEggOnzbtJV8jFj0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kmix-24.02.2.tar.xz",
+    "hash": "sha256-g4QRJujC/1YDgoLd78IA97rHDrYHpWqXEVX0L1q4VrA="
   },
   "kmousetool": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kmousetool-24.02.1.tar.xz",
-    "hash": "sha256-mFG4cm89fTqmok5Lt8ef2+pSF0hemVinpT5toPd4fJ0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kmousetool-24.02.2.tar.xz",
+    "hash": "sha256-Wja9ym8V1IPVZ8sW0Fu6CF8w2pNvX/3ONR95vj5DnEM="
   },
   "kmouth": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kmouth-24.02.1.tar.xz",
-    "hash": "sha256-cCYOYk3jij58Wfv1cAmRg2xrkW/1pU0c41w+2Zby03s="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kmouth-24.02.2.tar.xz",
+    "hash": "sha256-XcgN2soQftHjqmTjn14cBDiIoWaCzW/U5PSRyu4MxJI="
   },
   "kmplot": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kmplot-24.02.1.tar.xz",
-    "hash": "sha256-GQkcr4PdUG2bJK6kSilOwbCdWa2RCh7U6V4oWC9hTdA="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kmplot-24.02.2.tar.xz",
+    "hash": "sha256-HzUY0azJytTeSWEFYS7l5r0+gYWYTWDValfnRptQAoI="
   },
   "knavalbattle": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/knavalbattle-24.02.1.tar.xz",
-    "hash": "sha256-07heKsP8WAzOEuYtXWkkuKjZEW17o+ghYrnltcEW00g="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/knavalbattle-24.02.2.tar.xz",
+    "hash": "sha256-uXiV2i2mnzCaB+o9LM8Iu7CF2cocpTjDVG74AtJPh6E="
   },
   "knetwalk": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/knetwalk-24.02.1.tar.xz",
-    "hash": "sha256-WIQhgzMMzxOeIJLeVNo9biFXUB0496lWnb5HyZv/BbQ="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/knetwalk-24.02.2.tar.xz",
+    "hash": "sha256-omYtJDKvpqMD2cu8Xqh4U2HVU6ZRvJcyaktTnKydyzE="
   },
   "knights": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/knights-24.02.1.tar.xz",
-    "hash": "sha256-GEuoqesR0hU0ks4Z6nPmD9tR5G0ToTwPOxx9l8eqIGI="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/knights-24.02.2.tar.xz",
+    "hash": "sha256-D+yDyGK0jYkP39vgTvM35ohV2NxSvouhuZ0wsW8Z4P4="
   },
   "knotes": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/knotes-24.02.1.tar.xz",
-    "hash": "sha256-k4ViH8ymUbSrO2Hb6XoY9AT+T4Pbc3A0IX9cdnjIZaY="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/knotes-24.02.2.tar.xz",
+    "hash": "sha256-kKszYhuQD2kWxIZItIF85GhObcyOWxmVVUt+JXSInHM="
   },
   "koko": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/koko-24.02.1.tar.xz",
-    "hash": "sha256-n88NiQIYRwWnT5hQX/ekQhrQbk0VrPUrM+FZNwajSzo="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/koko-24.02.2.tar.xz",
+    "hash": "sha256-c2SD1NLraPGvoK0YKr2JcwSVcJgjytn9cngE4fSFMVg="
   },
   "kolf": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kolf-24.02.1.tar.xz",
-    "hash": "sha256-QyWutEJOqz9bJMS6+1QcC9XFH83v36lMVPsOcoVTfkk="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kolf-24.02.2.tar.xz",
+    "hash": "sha256-Cyy/w7UJwJMFwCGf8mZ6EM7uXozqIvUbwLqf/Tei61E="
   },
   "kollision": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kollision-24.02.1.tar.xz",
-    "hash": "sha256-pmpnATag0bz8jBwwz0pObDEwcDIxO7w14Ac3xlsbERM="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kollision-24.02.2.tar.xz",
+    "hash": "sha256-pb3AEFqTAlfJgdiWv3cy0d+vnd3isEVsi0/l9Ccd7cg="
   },
   "kolourpaint": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kolourpaint-24.02.1.tar.xz",
-    "hash": "sha256-eFXnoqPx5n6ctlAXsPzK5f+KvJ3M/DaeUeiEdaVNsdk="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kolourpaint-24.02.2.tar.xz",
+    "hash": "sha256-ABn+QdloID2+XGwBZoWOxTkV4tZ+AH7xZonkDtGbnoQ="
   },
   "kompare": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kompare-24.02.1.tar.xz",
-    "hash": "sha256-S+U1U7/uwi5LP6AyNiGOkgY+ZAzlxIcUEJmIjzlURyo="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kompare-24.02.2.tar.xz",
+    "hash": "sha256-tASJrlYEAfUuUaMJpxqxEdVMTvJLMAbmsu8V1XXyh0E="
   },
   "kongress": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kongress-24.02.1.tar.xz",
-    "hash": "sha256-gKFwPMNBZL6clFdoJXEeVjqlakFqMMmLMwzWdj0k6lc="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kongress-24.02.2.tar.xz",
+    "hash": "sha256-t21I/7esniEZCt/1Yvn5ejczDw/6n45FmVD2yFqP+Kw="
   },
   "konqueror": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/konqueror-24.02.1.tar.xz",
-    "hash": "sha256-FQXVzeZEgBtOWKw30VLgWLDXdTA5YsBPnFmuMYFE84U="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/konqueror-24.02.2.tar.xz",
+    "hash": "sha256-Bk8fBm391PdP8cnkdXXIukfeR91tX13RhWUA702bxjI="
   },
   "konquest": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/konquest-24.02.1.tar.xz",
-    "hash": "sha256-Ar0nrb4VPXVKte89amcXbgQdLQ7wvyF6yVwxJPTZQns="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/konquest-24.02.2.tar.xz",
+    "hash": "sha256-41BXstbTrQ08J0CZ3Nk3Qwq0KlsHoYUuF+4oANM67Cw="
   },
   "konsole": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/konsole-24.02.1.tar.xz",
-    "hash": "sha256-xaJ324Si9hdRJQuJx/mE39t3UNntX2ik+uIo2JrnLIU="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/konsole-24.02.2.tar.xz",
+    "hash": "sha256-ZkZ+M2U2199cErytMaPvCiFQxANR2HZ3BHpA6uRA7i8="
   },
   "kontact": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kontact-24.02.1.tar.xz",
-    "hash": "sha256-9/0jDEBVJzawVUclfHN8Lk+4oI1uHuIRagt9WxN9As8="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kontact-24.02.2.tar.xz",
+    "hash": "sha256-vXEUyrfFucXNNuxEgofIX2HZQySjNbIbO7+AJSDWH7Y="
   },
   "kontactinterface": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kontactinterface-24.02.1.tar.xz",
-    "hash": "sha256-0rUauivPPGTeBP70fTgJcFVLrt6dIwQ3dhXVf0Frblg="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kontactinterface-24.02.2.tar.xz",
+    "hash": "sha256-cg4U708BtnCQvNfHQHYBa/GTdrC2woEK4eQ1Tk1la7E="
   },
   "kontrast": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kontrast-24.02.1.tar.xz",
-    "hash": "sha256-jUbETKPfPYNTQhSVNclH2nTQu+kOOx/6tm4/gYsn5Yw="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kontrast-24.02.2.tar.xz",
+    "hash": "sha256-C2etCsl1TVS2ycSSoB2f2JMq3XGY7DIVY2mBCiWlutc="
   },
   "konversation": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/konversation-24.02.1.tar.xz",
-    "hash": "sha256-zGHf0FZoDD4GoNp03ALTGdEty60cLHg14AQV6TiGbA0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/konversation-24.02.2.tar.xz",
+    "hash": "sha256-uBZ7BUZbDEt8ukJjarW0DrzNmPCIkjRR00sDn/sV4kk="
   },
   "kopeninghours": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kopeninghours-24.02.1.tar.xz",
-    "hash": "sha256-3uYpi5DcWS4qo4qc15rIpSGMCcm/5pL33X6pSXrQBqs="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kopeninghours-24.02.2.tar.xz",
+    "hash": "sha256-yty1NgsYW6Zt4hOBpvlpCmhItL/mC/QMKvvW1QlWcIQ="
   },
   "korganizer": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/korganizer-24.02.1.tar.xz",
-    "hash": "sha256-7mkERr791pON8F0yOSqIVMbvU6seiHoUfUb67mkOLzE="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/korganizer-24.02.2.tar.xz",
+    "hash": "sha256-N0osNS9MZF9e/xXTsWWnpZZkdTe1lsHu5J3tITQXBBc="
   },
   "kosmindoormap": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kosmindoormap-24.02.1.tar.xz",
-    "hash": "sha256-ZYxKngOYxe2F+sIwIlag3DiwXyCMJkPCF2oV5kfu+BM="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kosmindoormap-24.02.2.tar.xz",
+    "hash": "sha256-+TM+Woo8aWp+tMNH4lrqnaVQyVeoGfLA9cgkYcLnLhQ="
   },
   "kpat": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kpat-24.02.1.tar.xz",
-    "hash": "sha256-wgJzlfiX5fYzNfMlr8CiwUdke4wKltkwuYKH4RQmNSs="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kpat-24.02.2.tar.xz",
+    "hash": "sha256-+5+beBUHIL/s1GT0RTHxAeOmzd/jcDLjkrco+CGkFVo="
   },
   "kpimtextedit": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kpimtextedit-24.02.1.tar.xz",
-    "hash": "sha256-bVVlBuUI6CXX6lxsDOyP4Lue8ozLXjRthW2+HsNhmpc="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kpimtextedit-24.02.2.tar.xz",
+    "hash": "sha256-Vzi9SEiOrwOHCkZGsQkdYjjXQh4saTyFPCBeGpy+ECA="
   },
   "kpkpass": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kpkpass-24.02.1.tar.xz",
-    "hash": "sha256-g5w+snfXxDb2s4/cp3YPuIkH8tKQMJW+0ICONCGEJqM="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kpkpass-24.02.2.tar.xz",
+    "hash": "sha256-V5dueLjQwPXipAHLm9RMmGNC9O2yWJeOa9om+eyjJa8="
   },
   "kpmcore": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kpmcore-24.02.1.tar.xz",
-    "hash": "sha256-hzWLOUD3Jbt+7XzyiVu7r0C7fKnOS/6DM1tkgLvqVXg="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kpmcore-24.02.2.tar.xz",
+    "hash": "sha256-KdOQmtXLv6HlvXcsl75IJUB65uXv61pt3uWwBcmWVL8="
   },
   "kpublictransport": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kpublictransport-24.02.1.tar.xz",
-    "hash": "sha256-ybOXJqJKVaY6mqVe7/lUezbcvzVaIm28fs7GWJTjlww="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kpublictransport-24.02.2.tar.xz",
+    "hash": "sha256-fZOd/G7PrXX263sjS2Txq29S/A6Yi6XmZi6VxS4auyY="
   },
   "kqtquickcharts": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kqtquickcharts-24.02.1.tar.xz",
-    "hash": "sha256-URO0ju6e2dgW+/vorgMQnNG08AZ9GXtUyPwx6LMzweY="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kqtquickcharts-24.02.2.tar.xz",
+    "hash": "sha256-L0mAg8QmnGk/+/wweS2hQ4PGMfm52Q+rRK7HaLdI1b8="
   },
   "krdc": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/krdc-24.02.1.tar.xz",
-    "hash": "sha256-LXpCIKSHMq8auNbHfbqe+vyLzyuX5Yk+qYfTa4xa3Hs="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/krdc-24.02.2.tar.xz",
+    "hash": "sha256-qk6HhkgNzLWEBTL+jJGIiBQ32MpZqYz/z/ZoXlV5r/k="
   },
   "krecorder": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/krecorder-24.02.1.tar.xz",
-    "hash": "sha256-1paQ9V3Phg+vOgCxoUfE6oZfzvjiqJFScpja0KM2BE8="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/krecorder-24.02.2.tar.xz",
+    "hash": "sha256-CYK209/BEP6UaOZ/0VfwNoOq5CQ7bqAddKGZQ8a8gtI="
   },
   "kreversi": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kreversi-24.02.1.tar.xz",
-    "hash": "sha256-O6ObAxrms3bqY6IQVgbN6YzMus4jrQVw50AtMMjFTAY="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kreversi-24.02.2.tar.xz",
+    "hash": "sha256-0cBXOF7xZ9NcBQ0ARNCsxA2l2f5McwA0OG94+er4vLQ="
   },
   "krfb": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/krfb-24.02.1.tar.xz",
-    "hash": "sha256-gOcU6c7u7EWAo33CIA8VU2pN5rnIvmFqrL+qk5y16PE="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/krfb-24.02.2.tar.xz",
+    "hash": "sha256-z5Lfx4Z+M2BHV6Wf+NKIaTu/X7sM8Lw3nD+XXQ5OmOQ="
   },
   "kross-interpreters": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kross-interpreters-24.02.1.tar.xz",
-    "hash": "sha256-a16KfyAcdQy16vEXiCQL/y/KnhRdDyD+IAnZAFWpxWM="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kross-interpreters-24.02.2.tar.xz",
+    "hash": "sha256-9qWZL9xdSEw1jzrNMBiQAlOmgmPYm0wzvoU1SYFOhrs="
   },
   "kruler": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kruler-24.02.1.tar.xz",
-    "hash": "sha256-GlKxCBdiWi+Vq8tpNAhFwBfuh3IYXATmPYeoH57W0ZE="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kruler-24.02.2.tar.xz",
+    "hash": "sha256-EkTdt+ynfPWpVQEdGRaYYBb/8SsJNn+6Bd6b6EGVRQQ="
   },
   "ksanecore": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/ksanecore-24.02.1.tar.xz",
-    "hash": "sha256-tP5YVU/i49afOZ1nTZR4yg6N6GXd+70Y+OaWY4Ryc3M="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/ksanecore-24.02.2.tar.xz",
+    "hash": "sha256-GGNiZAlbtW7mQYW0GJ1+oU8zpp45K4GLuw3m/8G7gXA="
   },
   "kshisen": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kshisen-24.02.1.tar.xz",
-    "hash": "sha256-G7qxIYVx9qjamvdJAGka/VJNF+Z4c5MjzdivU8Tcb7E="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kshisen-24.02.2.tar.xz",
+    "hash": "sha256-/BPyAKjRTfLOWX80E82Ar6NHSvArARE9+jB0hnjRHFQ="
   },
   "ksirk": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/ksirk-24.02.1.tar.xz",
-    "hash": "sha256-q1JPsk3JOtlCQhaa8XWq2ryIK+J//vLN7K/2POVGbGs="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/ksirk-24.02.2.tar.xz",
+    "hash": "sha256-n78THAngDNSQJV93n2a3HzEtMxpaBrk9Jj6x2J53EcI="
   },
   "ksmtp": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/ksmtp-24.02.1.tar.xz",
-    "hash": "sha256-+l9FJKNt+DK7FMQxYTMnUb9XaFCUpON+N45pQz+yA00="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/ksmtp-24.02.2.tar.xz",
+    "hash": "sha256-tSLg5bcoh3fM71oVUCdueC+k1N4NTf1w86zOS3d4NZg="
   },
   "ksnakeduel": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/ksnakeduel-24.02.1.tar.xz",
-    "hash": "sha256-1pZ0QcR04K/gSwSYJYwBs9lzWJ801wng2ZEp3qHAQfU="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/ksnakeduel-24.02.2.tar.xz",
+    "hash": "sha256-QLUOa6+y1mK2tMXGzshFDylv+7FR/9rzcSAgLyxZ0wE="
   },
   "kspaceduel": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kspaceduel-24.02.1.tar.xz",
-    "hash": "sha256-h0vf8JMJrn/naMulfWohKtP5SCvOGsIkL+/q3eh9cTw="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kspaceduel-24.02.2.tar.xz",
+    "hash": "sha256-gNE4hXZinXdyYsq5Tjb0UX1B811FJgO5H6CM1oEqU64="
   },
   "ksquares": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/ksquares-24.02.1.tar.xz",
-    "hash": "sha256-DboQSbWFohEq3BEkKDYBKXDGxSH5cILkNnrzP7rbOLo="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/ksquares-24.02.2.tar.xz",
+    "hash": "sha256-nkiDNK/O4vyWvobTmk3a1rao62o9oVRXuSB4AzP0MKo="
   },
   "ksudoku": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/ksudoku-24.02.1.tar.xz",
-    "hash": "sha256-k6COovaysFQOE14ttgj4hupg48uochBJuxqm6BXrit0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/ksudoku-24.02.2.tar.xz",
+    "hash": "sha256-ICmFLSFllJ80uRKQJwRhPF1sRxxARhtkKMra9SmMSBY="
   },
   "ksystemlog": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/ksystemlog-24.02.1.tar.xz",
-    "hash": "sha256-gKmG+fARxOPqxfJ1KMnDix4UgmiHuEAJJREtqbQIgE4="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/ksystemlog-24.02.2.tar.xz",
+    "hash": "sha256-25Y7u7lMO3tfgTpTLwceyBoTvyt1ocfO1//yNB7rSjM="
   },
   "kteatime": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kteatime-24.02.1.tar.xz",
-    "hash": "sha256-Auys6i81t4EmW9ckGd3+5ZY8dNyUkP0KNeno7w6W0+4="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kteatime-24.02.2.tar.xz",
+    "hash": "sha256-3L1mdrKqCyElAot9Y52nLNDi/BY9r6D3Hu+Nj/+lfZI="
   },
   "ktimer": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/ktimer-24.02.1.tar.xz",
-    "hash": "sha256-WXT188ue5fVlIfKnyGsMK90zKtye4Fikxn2+s/cB+P0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/ktimer-24.02.2.tar.xz",
+    "hash": "sha256-SHKwC7OiqM1q9Gf2M0zP0Ely0AexRFmB8PsU162sCUI="
   },
   "ktnef": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/ktnef-24.02.1.tar.xz",
-    "hash": "sha256-DRR9P0qb1OzGBImvdMFCZeAFKQRz8szfWGrTiXgl7JU="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/ktnef-24.02.2.tar.xz",
+    "hash": "sha256-dMjcjurpj4/cZSlOPXdQKfGu9Kwm9AbIghk4F/bPnR4="
   },
   "ktorrent": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/ktorrent-24.02.1.tar.xz",
-    "hash": "sha256-KboMnk3IWJefLFjEPTkD+kQVrNWrhYh1ZsfBN5G2oG4="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/ktorrent-24.02.2.tar.xz",
+    "hash": "sha256-AYPGM+NQOG8xwudjsJSM2GYskQLIcX3S3mxPoAQs39k="
   },
   "ktouch": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/ktouch-24.02.1.tar.xz",
-    "hash": "sha256-X8rmkJGEKe2e+ctYjcGbQ7r5v/d9O82F3D9waNkPc3w="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/ktouch-24.02.2.tar.xz",
+    "hash": "sha256-U5EPl243QbL8++IzpVgvasyuUODiXxLV/bf+UxFNSOo="
   },
   "ktrip": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/ktrip-24.02.1.tar.xz",
-    "hash": "sha256-MXS0gGHzR+1DLr7rBinuWBaYc58abCCSB6iluA1VMYE="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/ktrip-24.02.2.tar.xz",
+    "hash": "sha256-CLaGGqmooL9GEWDoH+Udxp1kjZLldbzYLtyp3sS+sR4="
   },
   "ktuberling": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/ktuberling-24.02.1.tar.xz",
-    "hash": "sha256-biTtI8oPNVLGiEaTD44pmRqfQiaJAP90JOK7gF3tRns="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/ktuberling-24.02.2.tar.xz",
+    "hash": "sha256-6/cMKUOL5DEHM6nUwqgi0uWFvQGlkkyZ3CgSlWUASzU="
   },
   "kturtle": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kturtle-24.02.1.tar.xz",
-    "hash": "sha256-cDPogNA5A8PAZguFLXgy6olrFHzpC0Hxw32kgqNJqQA="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kturtle-24.02.2.tar.xz",
+    "hash": "sha256-BPE208EdQqWdNW4YU5KOwob42BHlJMwk2ae3E7j05hs="
   },
   "kubrick": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kubrick-24.02.1.tar.xz",
-    "hash": "sha256-A1yfttn8Uo9JKOZDKxNcrPcY375HAfANXmNUCpbFaAs="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kubrick-24.02.2.tar.xz",
+    "hash": "sha256-x4BOcm7XD1V1/S8QeFv7WbfcZ8xe4dImHrKKWxS/PrE="
   },
   "kwalletmanager": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kwalletmanager-24.02.1.tar.xz",
-    "hash": "sha256-1D4p9VpZxxDZ/3DX+Esz3qzUzFZJxV9Gs2INTZIntGI="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kwalletmanager-24.02.2.tar.xz",
+    "hash": "sha256-C2M4X59JMq8AQX6x6yhUje3MBQaREwS/LjRHmsD5t3M="
   },
   "kwave": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kwave-24.02.1.tar.xz",
-    "hash": "sha256-CdAEU+84sujvS5mFpk7SV2RizipPvswPG8l9xoRTCXs="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kwave-24.02.2.tar.xz",
+    "hash": "sha256-qi0Qdp26bNQ/qqme+binWIF3IifIaNfeUpM8zZHNkmw="
   },
   "kweather": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kweather-24.02.1.tar.xz",
-    "hash": "sha256-wjg5+Qc0Ud3rwvL9KzPFDBIrTV8ybUynUnBSEZ2kywY="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kweather-24.02.2.tar.xz",
+    "hash": "sha256-iXvKld4QqZ0yxt+xyZIioK38FIR29Owr6C7GKCjcamI="
   },
   "kwordquiz": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/kwordquiz-24.02.1.tar.xz",
-    "hash": "sha256-dCpCCaCCBX5pSRwN6PR8h1v4F4prvAxEN/0KtRzmU8M="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/kwordquiz-24.02.2.tar.xz",
+    "hash": "sha256-4yGwfUHHdHXCmZRA+MxLKRv0Xuu0O4iGqpRCReGuuuc="
   },
   "libgravatar": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/libgravatar-24.02.1.tar.xz",
-    "hash": "sha256-kfkI3LSBn11JNT/g3Yo7KaN5NyLt2CMFNLN/ym66sVA="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/libgravatar-24.02.2.tar.xz",
+    "hash": "sha256-t99V8Jsy3P5mjlSccay6d81iCXoYcTsxEr79b0o+UoU="
   },
   "libkcddb": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/libkcddb-24.02.1.tar.xz",
-    "hash": "sha256-+yjDcJh0nXjoBZnYCv/ruboS/7UoYJRGB15ffuj0Kh0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/libkcddb-24.02.2.tar.xz",
+    "hash": "sha256-YIqiEBvev4rhwjz5nPyYLE5jSUWpGzv0SZD4bgGp1cE="
   },
   "libkcompactdisc": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/libkcompactdisc-24.02.1.tar.xz",
-    "hash": "sha256-bwNpNFm8VvecUp8Fy/1wRSdbb87jPdosQhYwwgHNziI="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/libkcompactdisc-24.02.2.tar.xz",
+    "hash": "sha256-2jbvjdAukuQUMHu9NCpQLQ6StaqSrh4ktsXT8eGvC24="
   },
   "libkdcraw": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/libkdcraw-24.02.1.tar.xz",
-    "hash": "sha256-rUHiD1jCJnHWa96+G+kzYOhIInaJGGdDibhYcri1zCA="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/libkdcraw-24.02.2.tar.xz",
+    "hash": "sha256-fGtMsK+RCFf9vtTb+6b8xa7iaqMZk+6rMhm3NDwxktY="
   },
   "libkdegames": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/libkdegames-24.02.1.tar.xz",
-    "hash": "sha256-SUAXsGWJkoD1LpDwHH9QruqGNTKDa4SPpF93GiwUcQU="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/libkdegames-24.02.2.tar.xz",
+    "hash": "sha256-PGv3c2cORQm7xxYEvwoUkQ0HZDQyahV1bTxHsfWufhk="
   },
   "libkdepim": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/libkdepim-24.02.1.tar.xz",
-    "hash": "sha256-8wRBYTXytxVt6No2SQ1DfJjrPDCwOYXFj/GCTLUgKow="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/libkdepim-24.02.2.tar.xz",
+    "hash": "sha256-OwgxUW3mLSVIjpJ/x9mHSvsVke+99B3smQMJ9iJmdMA="
   },
   "libkeduvocdocument": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/libkeduvocdocument-24.02.1.tar.xz",
-    "hash": "sha256-fsFeQxE/oP+nTo6xWDfbqjPJttkztBOibVpqMGYuGKw="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/libkeduvocdocument-24.02.2.tar.xz",
+    "hash": "sha256-yvv+gkMvpOIGkE5+4AikFYwrp1UTTeO0X6JKQ+s8XO4="
   },
   "libkexiv2": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/libkexiv2-24.02.1.tar.xz",
-    "hash": "sha256-PNYSJSdLCWhpGr0p5nbj0xtvD0iAJOWnhSXcObpn9ug="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/libkexiv2-24.02.2.tar.xz",
+    "hash": "sha256-rmAib0iTlLI5FApCZqLbRwoLzBptd7A8ca4ePu/zCNw="
   },
   "libkgapi": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/libkgapi-24.02.1.tar.xz",
-    "hash": "sha256-cuuDG4EnEixzfILcnsSnMVgRKh22X9Oy26UpjfTSM5U="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/libkgapi-24.02.2.tar.xz",
+    "hash": "sha256-xDyEBSWDgMs8ZrkehZptmhlJUl0r5zHXA+ofS37DZ8A="
   },
   "libkipi": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/libkipi-24.02.1.tar.xz",
-    "hash": "sha256-9uaBdnTZTCrsK36ZGOedBNFWOYVK6YTNbRKr/bQ8wsI="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/libkipi-24.02.2.tar.xz",
+    "hash": "sha256-my4K50w3dmNhOUboLdTmM3T75SMYYyFm2hC19l1jAlw="
   },
   "libkleo": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/libkleo-24.02.1.tar.xz",
-    "hash": "sha256-CHHvP64rRPj+AS7cVZAv14SZcyg6/jf44IO/03Av+b0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/libkleo-24.02.2.tar.xz",
+    "hash": "sha256-L+OtUASsm0JhYTjvL8DSGyYoIZLQ14YY4SsGpfpz9Jk="
   },
   "libkmahjongg": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/libkmahjongg-24.02.1.tar.xz",
-    "hash": "sha256-FXSmx1kKoobanQlDoxQqKv7GaaTjiDme0zQCQVsks78="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/libkmahjongg-24.02.2.tar.xz",
+    "hash": "sha256-IiTZXCofO+Zw8FF/3tD14lxQ5JgnTN/gFz09GyXAU3w="
   },
   "libkomparediff2": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/libkomparediff2-24.02.1.tar.xz",
-    "hash": "sha256-Y0BqQpdEvAQx8rTijg1hS/LJJef7oPpmQC0C+DX30G4="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/libkomparediff2-24.02.2.tar.xz",
+    "hash": "sha256-32BysV5/yG+oYpg4L7MyrNRi7MWnKuQF/vdNXR3SctE="
   },
   "libksane": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/libksane-24.02.1.tar.xz",
-    "hash": "sha256-+AbdOzlqjjWDMgqKj6CBrBca43fAs3SP0eDorNrnG/8="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/libksane-24.02.2.tar.xz",
+    "hash": "sha256-L/x/3blT7w+cOOssK/QC3g+VIMNULTJH97XBnuGF2P8="
   },
   "libksieve": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/libksieve-24.02.1.tar.xz",
-    "hash": "sha256-Yo/c+kZlhq/9/TZXmUqG90WhHNTQpjCSObxPbftRIDg="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/libksieve-24.02.2.tar.xz",
+    "hash": "sha256-nQQKSswYDcBAsrM/wOFL3baPfvwq17PVVNyQM+xDZfI="
   },
   "libktorrent": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/libktorrent-24.02.1.tar.xz",
-    "hash": "sha256-kOR7wekWgRl6EI/pe9Q4W0E9mn+t9+DSBIzSyKdVvO4="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/libktorrent-24.02.2.tar.xz",
+    "hash": "sha256-ARbg//48qtlPryDnQMqyWBRSFYwuhCoEFMrMZaNOeGE="
   },
   "lokalize": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/lokalize-24.02.1.tar.xz",
-    "hash": "sha256-GknHgvarWlXRr78shAJpQ0PqtbzNURUbmY/+TAlSHB0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/lokalize-24.02.2.tar.xz",
+    "hash": "sha256-4ZuoMUr2N7yVc/mkAKqpLxNtvffzaH8bkg4NynHpr3w="
   },
   "lskat": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/lskat-24.02.1.tar.xz",
-    "hash": "sha256-osjLg3VOaHFDSpJI/5DsZmgcxn0tvUIveU9in16twvI="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/lskat-24.02.2.tar.xz",
+    "hash": "sha256-U/lZYMyrYyV5NGX/09W/kOnnT4xoqp77manwFci2J10="
   },
   "mailcommon": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/mailcommon-24.02.1.tar.xz",
-    "hash": "sha256-zTVEKUMxTeLbh3MVPFOIGZMSuBBGjMYEoGDTKGUK9sM="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/mailcommon-24.02.2.tar.xz",
+    "hash": "sha256-0uZCGDg3a1PX/KmqBmMIOzuU8CCesvxWAa1hK+5CFgQ="
   },
   "mailimporter": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/mailimporter-24.02.1.tar.xz",
-    "hash": "sha256-Oa0Ex/B5mBN8pg8QFJ6u4pJTfzU/XIrBoi/LxO5cwWc="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/mailimporter-24.02.2.tar.xz",
+    "hash": "sha256-YoC+/T5OZqjpgupixj4tGZ35ppjbPw3s5SaYp7lbEAY="
   },
   "marble": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/marble-24.02.1.tar.xz",
-    "hash": "sha256-3KeieLNTzgzp/fpkGgNiu3ExBVvrcfr+qvWsaQJrDZ0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/marble-24.02.2.tar.xz",
+    "hash": "sha256-idduAigL9MkhVVo4Pdl0n5GlNvX4MSTtdytvN59mS+U="
   },
   "markdownpart": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/markdownpart-24.02.1.tar.xz",
-    "hash": "sha256-+2lCSm0b9+nBlEZ66daHemCvrEhVifEkicinNcGHpBE="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/markdownpart-24.02.2.tar.xz",
+    "hash": "sha256-QcVLhmJ3V42hxecYENrnUPU2N2QKFL9Rhf9tPK7T/vQ="
   },
   "mbox-importer": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/mbox-importer-24.02.1.tar.xz",
-    "hash": "sha256-nTu+1QIMciFcuRsKmMyAswtpTWoY/XPAApiUIQmVPFo="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/mbox-importer-24.02.2.tar.xz",
+    "hash": "sha256-aJHBZE5pNTYVLdfVpM5fdicX/Ab6xWNtfnfJzJHg12c="
   },
   "merkuro": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/merkuro-24.02.1.tar.xz",
-    "hash": "sha256-X2Qcg2vJPmpEvfO/G+3Mt6I09dGHNo+VSyNBr3iE1xc="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/merkuro-24.02.2.tar.xz",
+    "hash": "sha256-Gvy3GGOYog7LJqg+ADOFKn+CwQwdIaykO5KE8VLdBjs="
   },
   "messagelib": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/messagelib-24.02.1.tar.xz",
-    "hash": "sha256-sBOBrv6jI+yTr164RbqLv9wDFMjQ7/5MsCNcTcqaFN4="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/messagelib-24.02.2.tar.xz",
+    "hash": "sha256-Ix2aemO2AYO9V60dNyWQ9FZUlniopKqx+Oaw2ET+7F0="
   },
   "mimetreeparser": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/mimetreeparser-24.02.1.tar.xz",
-    "hash": "sha256-vD9I5tjZdWB7c6G0XTEMy1hOjo9UcL1r9EOh+RTSoRs="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/mimetreeparser-24.02.2.tar.xz",
+    "hash": "sha256-G6iK0f9ESjLC6RlcHJF8HVFqi54DLkm36BAhs4QdPe0="
   },
   "minuet": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/minuet-24.02.1.tar.xz",
-    "hash": "sha256-pv4C4K9SM3TV8r5fAZq2IqvzmaJ5h4vZedi/Ssz/DlI="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/minuet-24.02.2.tar.xz",
+    "hash": "sha256-RSpwnDV9Ro8kIRbuNfFiZqy3+mYKPWT3ThadoVjEFHU="
   },
   "neochat": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/neochat-24.02.1.tar.xz",
-    "hash": "sha256-Bbbfokt5G7Ip8QinOCcHZIiKtYVBPf7Y8/o9MS+3/cY="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/neochat-24.02.2.tar.xz",
+    "hash": "sha256-ttzo+WvhK6sNdiaU9QxJzqGNYVXh5GVJ8L+XBG8EdB4="
   },
   "okular": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/okular-24.02.1.tar.xz",
-    "hash": "sha256-1T+wcRxRAUx7fz0GDRxlR8LXuOYUmiC73mwWNL9Dctk="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/okular-24.02.2.tar.xz",
+    "hash": "sha256-Qx02tyvsOVS1P2Jf+FB0Dp3/AIewO8e3FpnKRq7vBN4="
   },
   "palapeli": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/palapeli-24.02.1.tar.xz",
-    "hash": "sha256-3UKuXaAuUbElb6HnTDp+76MSzJ8l/MMD8cjL+FGzjhc="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/palapeli-24.02.2.tar.xz",
+    "hash": "sha256-0sV6qCFP5+SzuuO60XEup+101nUV4QqjvuEJwB90fK0="
   },
   "parley": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/parley-24.02.1.tar.xz",
-    "hash": "sha256-jX68fWi2rO8cyqxGY39RikqoxZBf9ms0acx6Snis0VQ="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/parley-24.02.2.tar.xz",
+    "hash": "sha256-uU48aURlDTvxGKv7xAK2u+VQGYfn+EHCdH6hEwkRGHo="
   },
   "partitionmanager": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/partitionmanager-24.02.1.tar.xz",
-    "hash": "sha256-i+xmaohjz4LNS4eex3A3OMQzGN2DpOHonLhYRngNGUY="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/partitionmanager-24.02.2.tar.xz",
+    "hash": "sha256-AstyAIyv3JnbV0LaoN9jS26gfc7z+kQKJD5WKKk49Qk="
   },
   "picmi": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/picmi-24.02.1.tar.xz",
-    "hash": "sha256-0Sy+KmqgkdlMTV5lMCqfrNQMKtqcVaGPhGOMzagDgAs="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/picmi-24.02.2.tar.xz",
+    "hash": "sha256-z25UFcpfH2VV0jHY8EFja34KdI1MFDqbbrvFc5E9IY0="
   },
   "pimcommon": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/pimcommon-24.02.1.tar.xz",
-    "hash": "sha256-5YSgPUp3dU8Qrz0Ds6fH6qtiUKI3czPVMX2nO7xeH0Q="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/pimcommon-24.02.2.tar.xz",
+    "hash": "sha256-RkDcJ2+aDmsMJeJYFdc7fMZYyNc91QTSlelqWDon13A="
   },
   "pim-data-exporter": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/pim-data-exporter-24.02.1.tar.xz",
-    "hash": "sha256-P6wJVBJmkAho9jS+CBV0nCpnXBGqh85YACMRS+VSakk="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/pim-data-exporter-24.02.2.tar.xz",
+    "hash": "sha256-DhLQWrX6E+idNjSbDXrtHH0yX/dLSAsCXtoHa5CmEH8="
   },
   "pim-sieve-editor": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/pim-sieve-editor-24.02.1.tar.xz",
-    "hash": "sha256-F8dHU0uA8x8RcGQcTJ173/zGX6omvdOMucAm5UwwTFs="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/pim-sieve-editor-24.02.2.tar.xz",
+    "hash": "sha256-yDZmqQPZKsTDdxzlWV+LuiHJwYVcuD9z6urg2Hu2fHg="
   },
   "plasmatube": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/plasmatube-24.02.1.tar.xz",
-    "hash": "sha256-kIpZ07T2OFKvcGr/ry020oATh+GuN+uxoHETgRzZXWo="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/plasmatube-24.02.2.tar.xz",
+    "hash": "sha256-r4qz1B0pArFnBcgrj0yidM8UVSDe7HR/i/tG5rTDOds="
   },
   "poxml": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/poxml-24.02.1.tar.xz",
-    "hash": "sha256-MB/yYDCoKK5+z5iCZGIczsaNJnZF+Fqwxv11JbGnxos="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/poxml-24.02.2.tar.xz",
+    "hash": "sha256-pWtION445HNcSuKDMWnL88lH8JPD6MDWISR/X5NqymU="
   },
   "qmlkonsole": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/qmlkonsole-24.02.1.tar.xz",
-    "hash": "sha256-DgQ2Q6vl1b9AHJMukXSC+swmRGxWb2hWU8YPc82aR08="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/qmlkonsole-24.02.2.tar.xz",
+    "hash": "sha256-zoGK52uRhbhEilGF8zCddqhejaWs9O6Iw8nEC4E8kVE="
   },
   "rocs": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/rocs-24.02.1.tar.xz",
-    "hash": "sha256-1dRiwZTIilT4ele9AphPRw8PxhSfRsmBNda9BUhKcJ0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/rocs-24.02.2.tar.xz",
+    "hash": "sha256-RKFjEH3xK1J0P0axjz4ZD+YqmwSQLTxEHdIDJzbEgws="
   },
   "signon-kwallet-extension": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/signon-kwallet-extension-24.02.1.tar.xz",
-    "hash": "sha256-R8z5F48N6xRE6rzUV3S1nbqV77ysFljvtHJnZNdc9FI="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/signon-kwallet-extension-24.02.2.tar.xz",
+    "hash": "sha256-NzJ14jnYh9WO1FAsLsBBexyhR1fpe8aCfcBjMyKpduI="
   },
   "skanlite": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/skanlite-24.02.1.tar.xz",
-    "hash": "sha256-SysKRweI2FR1r0ernVc326xsweXdLSX+lvDyZd+pcC4="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/skanlite-24.02.2.tar.xz",
+    "hash": "sha256-2avHcXkLtVWM195kU5d3QNaNnTCeTulj0qHCon/XY8A="
   },
   "skanpage": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/skanpage-24.02.1.tar.xz",
-    "hash": "sha256-MXU9s95pG/rEvp5wD9VHJvzj2vRfvPJhbkdhF5/cZaM="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/skanpage-24.02.2.tar.xz",
+    "hash": "sha256-pzYf6EbnjdrAKQ2Va08AM3S7s1SURtRahKYvP2pXMdo="
   },
   "spectacle": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/spectacle-24.02.1.tar.xz",
-    "hash": "sha256-V0a8AquJ3la6Pzu0rfcs2H0IsPtgA3CBSBtDp6Nk6lc="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/spectacle-24.02.2.tar.xz",
+    "hash": "sha256-QRj3NV6wWE3rKojORuznthaIA5fwqyuBDL5MvCF0IVI="
   },
   "step": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/step-24.02.1.tar.xz",
-    "hash": "sha256-kO2A/daKqhAoEjxx+N8N5oIcFUzLoljh9XKAcAlVtR0="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/step-24.02.2.tar.xz",
+    "hash": "sha256-KAp/Edl34wd4bnDDSiSdkHS7rdNpVlt1ZgbszPsMHsw="
   },
   "svgpart": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/svgpart-24.02.1.tar.xz",
-    "hash": "sha256-o2dq9PfsqOqy6MAtKz9XvoMVOW0eLSo+32WBrwktOM4="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/svgpart-24.02.2.tar.xz",
+    "hash": "sha256-T4YPwUGYT++ySdgFB8g65nFxmCyFJUXzOV8/lyMQLig="
   },
   "sweeper": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/sweeper-24.02.1.tar.xz",
-    "hash": "sha256-9zvu1+R6FlLN9aQArEVpJvFt2pVCY4kG5g93Fbcjz1Y="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/sweeper-24.02.2.tar.xz",
+    "hash": "sha256-E3VYgubBLoxXZVA1x+XzbQUsPAv8tAscBnvjuT99rd0="
   },
   "telly-skout": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/telly-skout-24.02.1.tar.xz",
-    "hash": "sha256-WKtAtUgjT6Pue3aH8CKScsseaIa0IT/HN/C4iy/n9Ng="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/telly-skout-24.02.2.tar.xz",
+    "hash": "sha256-Paq1Y+MXBylEky90HON3UIZ/5J8bFqu3DA7EoXPES6k="
   },
   "tokodon": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/tokodon-24.02.1.tar.xz",
-    "hash": "sha256-Pq9spIdTIzb28c7/RSgblllaBJOh+q7kP97+X5f2gO8="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/tokodon-24.02.2.tar.xz",
+    "hash": "sha256-DKM7AnT+GHyReYg2N1Opth1NOYO2+F8r4rJEA/nGkzs="
   },
   "umbrello": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/umbrello-24.02.1.tar.xz",
-    "hash": "sha256-Ub1NBse9SuGZBKheOHojXkJ2JkKcGYrrfPs7auuthNs="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/umbrello-24.02.2.tar.xz",
+    "hash": "sha256-iS0Lv2KkpD3SLWH4IHqsASu+sg2DAbfnBRaw2VYXVCw="
   },
   "yakuake": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/yakuake-24.02.1.tar.xz",
-    "hash": "sha256-aCTEHlOOWoxSphNli8dqa6KB/dueubT3AUFFM803QZw="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/yakuake-24.02.2.tar.xz",
+    "hash": "sha256-5F7g0F8iVD/UVl5C6MsgtQIIYte7pvM+ZFAH/GDWRlk="
   },
   "zanshin": {
-    "version": "24.02.1",
-    "url": "mirror://kde/stable/release-service/24.02.1/src/zanshin-24.02.1.tar.xz",
-    "hash": "sha256-plh2l/67sUzh36AI1rZHtHJj0BTaG1DDdNDT+ZePfjg="
+    "version": "24.02.2",
+    "url": "mirror://kde/stable/release-service/24.02.2/src/zanshin-24.02.2.tar.xz",
+    "hash": "sha256-S6kd+7DlivXsZPRpVjE1ZinwicIkG7ewxb3Bw7mqJ+E="
   }
 }
\ No newline at end of file
diff --git a/pkgs/servers/bird/default.nix b/pkgs/servers/bird/default.nix
index dbf480c401ddb..2c29a210f7a8a 100644
--- a/pkgs/servers/bird/default.nix
+++ b/pkgs/servers/bird/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     description = "BIRD Internet Routing Daemon";
     homepage = "http://bird.network.cz";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ globin ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 4db1bebad17c5..57b4b921de415 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -2,7 +2,7 @@
 # Do not edit!
 
 {
-  version = "2024.4.1";
+  version = "2024.4.2";
   components = {
     "3_day_blinds" = ps: with ps; [
     ];
@@ -570,7 +570,8 @@
     "brel_home" = ps: with ps; [
     ];
     "bring" = ps: with ps; [
-    ]; # missing inputs: bring-api
+      bring-api
+    ];
     "broadlink" = ps: with ps; [
       broadlink
     ];
@@ -6004,6 +6005,7 @@
     "bond"
     "bosch_shc"
     "braviatv"
+    "bring"
     "broadlink"
     "brother"
     "brottsplatskartan"
diff --git a/pkgs/servers/home-assistant/custom-components/homematicip_local/default.nix b/pkgs/servers/home-assistant/custom-components/homematicip_local/default.nix
index 26b9f85e1d790..26fed03c92756 100644
--- a/pkgs/servers/home-assistant/custom-components/homematicip_local/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/homematicip_local/default.nix
@@ -7,13 +7,13 @@
 buildHomeAssistantComponent rec {
   owner = "danielperna84";
   domain = "homematicip_local";
-  version = "1.58.0";
+  version = "1.59.0";
 
   src = fetchFromGitHub {
     owner = "danielperna84";
     repo = "custom_homematic";
     rev = "refs/tags/${version}";
-    hash = "sha256-ianM29eF2MN2THS3CTg4tBkd+8pV/m1fg8VvMDhhadg=";
+    hash = "sha256-fVOx/ONE+XXluXrImZWoD630EK/FOLb/Ft/L7t2Ua8o=";
   };
 
   dependencies = [
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index c6f3dd047b7bd..afcb2e2cd18a9 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -39,6 +39,15 @@ let
         };
       });
 
+      aioautomower = super.aioautomower.overridePythonAttrs (oldAttrs: rec {
+        version = "2024.3.4";
+        src = fetchFromGitHub {
+          inherit (oldAttrs.src) owner repo;
+          rev = "refs/tags/${version}";
+          hash = "sha256-dk8HfIiQOKq7Ky+vYa3wKmTS78gTw6J0yyQT2Folpp0=";
+        };
+      });
+
       aioelectricitymaps = super.aioelectricitymaps.overridePythonAttrs (oldAttrs: rec {
         version = "0.4.0";
         src = fetchFromGitHub {
@@ -222,6 +231,15 @@ let
         };
       });
 
+      jaraco-functools = super.jaraco-functools.overridePythonAttrs (oldAttrs: rec {
+        version = "3.9.0";
+        src = fetchPypi {
+          pname = "jaraco.functools";
+          inherit version;
+          hash = "sha256-ixN7D+rMF/70us7gTAEcnobyNBCZyHCh0S0743sypjg=";
+        };
+      });
+
       lmcloud = super.lmcloud.overridePythonAttrs (oldAttrs: rec {
         version = "0.4.35";
         src = fetchFromGitHub {
@@ -508,7 +526,7 @@ let
   extraBuildInputs = extraPackages python.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "2024.4.1";
+  hassVersion = "2024.4.2";
 
 in python.pkgs.buildPythonApplication rec {
   pname = "homeassistant";
@@ -526,13 +544,13 @@ in python.pkgs.buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = "refs/tags/${version}";
-    hash = "sha256-fVuScSfXFQJjHLBD7w1KsswZ4yebOzPTvXffeMlWrmo=";
+    hash = "sha256-V6qvpPrhfSLINH99hYkAjvG8pfIN8AXGO3HuwiKgMPo=";
   };
 
   # Secondary source is pypi sdist for translations
   sdist = fetchPypi {
     inherit pname version;
-    hash = "sha256-nMzB0qQrYRxJA1p4L4OZW25WRQBQ2hq/yZs5f3AcdAU=";
+    hash = "sha256-ZtTlLRDSXKUz+ZA+UctFL+d3wdKrcPdeROIUhS35qWU=";
   };
 
   nativeBuildInputs = with python.pkgs; [
diff --git a/pkgs/servers/home-assistant/stubs.nix b/pkgs/servers/home-assistant/stubs.nix
index 7154bb5bee349..b70aa8ed3d230 100644
--- a/pkgs/servers/home-assistant/stubs.nix
+++ b/pkgs/servers/home-assistant/stubs.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "homeassistant-stubs";
-  version = "2024.4.1";
+  version = "2024.4.2";
   format = "pyproject";
 
   disabled = python.version != home-assistant.python.version;
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "KapJI";
     repo = "homeassistant-stubs";
     rev = "refs/tags/${version}";
-    hash = "sha256-aEQgHs7ldYvTbR+OypQg9tLYyxLIPYWYEUnw+X027x8=";
+    hash = "sha256-qt7NBbjjeiNcHOM6wKI7Y3+L579xBQJD48hU89BB+ss=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/jackett/default.nix b/pkgs/servers/jackett/default.nix
index 110e9c8545351..ada510938cf8a 100644
--- a/pkgs/servers/jackett/default.nix
+++ b/pkgs/servers/jackett/default.nix
@@ -9,13 +9,13 @@
 
 buildDotnetModule rec {
   pname = "jackett";
-  version = "0.21.2134";
+  version = "0.21.2342";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha512-kaqHa7uvlD0twqU6/ZEp1u2OZh4v4gPi2n4lh2SXewEDHo2ffX8K91UYzphKu0aQAfIq0abDu8TlSR8JwE89lQ==";
+    hash = "sha512-F1fmDe3ucnjlluyhoUhqrzO15FCvLkYJOAErgUsuIJd9Lw5v5cSANLa9ebuVzSTRscEAVwt7fRRXiJaWJInI/Q==";
   };
 
   projectFile = "src/Jackett.Server/Jackett.Server.csproj";
diff --git a/pkgs/servers/monitoring/vmagent/default.nix b/pkgs/servers/monitoring/vmagent/default.nix
index 7c979f009cd70..9989a8971ffd2 100644
--- a/pkgs/servers/monitoring/vmagent/default.nix
+++ b/pkgs/servers/monitoring/vmagent/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchFromGitHub, buildGoModule }:
 buildGoModule rec {
   pname = "vmagent";
-  version = "1.99.0";
+  version = "1.100.0";
 
   src = fetchFromGitHub {
     owner = "VictoriaMetrics";
     repo = "VictoriaMetrics";
     rev = "v${version}";
-    sha256 = "sha256-IHUmxdCOzvA2JL06k/ei6/OTVWHTL1TiKKYZB1hgqyA=";
+    sha256 = "sha256-jrKTic80y8r/1wOR8Prqe9PG57yo8qQIGsobu0I4kTY=";
   };
 
   ldflags = [ "-s" "-w" "-X github.com/VictoriaMetrics/VictoriaMetrics/lib/buildinfo.Version=${version}" ];
diff --git a/pkgs/servers/nats-server/default.nix b/pkgs/servers/nats-server/default.nix
index a1014b44ab66a..440d0e1d81af6 100644
--- a/pkgs/servers/nats-server/default.nix
+++ b/pkgs/servers/nats-server/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "nats-server";
-  version = "2.10.12";
+  version = "2.10.14";
 
   src = fetchFromGitHub {
     owner = "nats-io";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-T0rwSa1xTPUZHkFDu9hnD2Kk1ME/vMUa4iK+Zbic6PM=";
+    hash = "sha256-+DdhdW8CCMprjR2XcOntkTDh5CHtEFHYFz7Htdptw3s=";
   };
 
-  vendorHash = "sha256-pSjtUSbJPclsd30KLhLOkN4u6pSn307s3RohroxmExc=";
+  vendorHash = "sha256-4kBXVsKf1jD3zvaAy6Rb7zmIK1WPbi31GRvRghdEC/s=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/nosql/redis/default.nix b/pkgs/servers/nosql/redis/default.nix
index 923de9126b5f0..750b943eff0bf 100644
--- a/pkgs/servers/nosql/redis/default.nix
+++ b/pkgs/servers/nosql/redis/default.nix
@@ -85,6 +85,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   passthru.tests.redis = nixosTests.redis;
+  passthru.serverBin = "redis-server";
 
   meta = with lib; {
     homepage = "https://redis.io";
diff --git a/pkgs/servers/sonarr/default.nix b/pkgs/servers/sonarr/default.nix
index f0a85b251db03..a19dc71491141 100644
--- a/pkgs/servers/sonarr/default.nix
+++ b/pkgs/servers/sonarr/default.nix
@@ -10,15 +10,15 @@ let
   }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   hash = {
-    x64-linux_hash = "sha256-S9j6zXEJM963tki88awPW0uK0fQd1bBwBcsHBlDSg/E=";
-    arm64-linux_hash = "sha256-73FkmdliX5SNrQRRZeAkU0G96ehCd9mT8NVyJoZiA38=";
-    x64-osx_hash = "sha256-XZ4ITJtc2ENw7IAYrBZF0N/NCjUVve+SkWhu6kfQIQA=";
-    arm64-osx_hash = "sha256-2tA17mDuCX5X0U96Rp6QUQOVWvu9sPMOimD6kks+S00=";
+    x64-linux_hash = "sha256-xGaPNEPSpUr9sv4DTK8oDHzmLytp3Tp+cp45Q1TKYrc=";
+    arm64-linux_hash = "sha256-YeHXIyocRgaHmKrE9K9E3+xZyS2MDnsxmSIJB7dAQLU=";
+    x64-osx_hash = "sha256-8/YEKfSldXBtnkWBEXmCWYIJ2ePJj1aMDpBO3+cDcDk=";
+    arm64-osx_hash = "sha256-3aA8SlhNLOBAZIcsnjfl0ninsDej+KqTTwmm+rLYRFk=";
   }."${arch}-${os}_hash";
 in
 stdenv.mkDerivation rec {
   pname = "sonarr";
-  version = "4.0.2.1183";
+  version = "4.0.3.1413";
 
   src = fetchurl {
     url = "https://github.com/Sonarr/Sonarr/releases/download/v${version}/Sonarr.main.${version}.${os}-${arch}.tar.gz";
diff --git a/pkgs/servers/unifi/default.nix b/pkgs/servers/unifi/default.nix
index 766b9cc19be40..8eba1a4953b22 100644
--- a/pkgs/servers/unifi/default.nix
+++ b/pkgs/servers/unifi/default.nix
@@ -45,26 +45,6 @@ let
 in rec {
   # see https://community.ui.com/releases / https://www.ui.com/download/unifi
 
-  unifiLTS = generic {
-    version = "5.6.42";
-    sha256 = "0wxkv774pw43c15jk0sg534l5za4j067nr85r5fw58iar3w2l84x";
-  };
-
-  unifi5 = generic {
-    version = "5.14.23";
-    sha256 = "1aar05yjm3z5a30x505w4kakbyz35i7mk7xyg0wm4ml6h94d84pv";
-
-    postInstall = ''
-      # Remove when log4j is updated to 2.12.2 or 2.16.0.
-      ${zip}/bin/zip -q -d $out/lib/log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
-    '';
-  };
-
-  unifi6 = generic {
-    version = "6.5.55";
-    sha256 = "sha256-NUGRO+f6JzWvYPwiitZsgp+LQwnGSncnost03mgNVxA=";
-  };
-
   unifi7 = generic {
     version = "7.5.187";
     suffix = "-f57f5bf7ab";
diff --git a/pkgs/servers/web-apps/bookstack/default.nix b/pkgs/servers/web-apps/bookstack/default.nix
index 227d4185baf80..c9ef56c67582c 100644
--- a/pkgs/servers/web-apps/bookstack/default.nix
+++ b/pkgs/servers/web-apps/bookstack/default.nix
@@ -16,13 +16,13 @@ let
 
 in package.override rec {
   pname = "bookstack";
-  version = "24.02.2";
+  version = "24.02.3";
 
   src = fetchFromGitHub {
     owner = "bookstackapp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1b4166vd3ribs69ad5ljp71im0fh0n0m5c5l04i3l44a5bw25b2h";
+    sha256 = "sha256-+8J7dB666KZSJbvnmJl/PivtMQ6Hlz3AAy6E1xpRRmU=";
   };
 
   meta = with lib; {
diff --git a/pkgs/servers/web-apps/wordpress/default.nix b/pkgs/servers/web-apps/wordpress/default.nix
index f1a73feab8651..52f2345b64d0d 100644
--- a/pkgs/servers/web-apps/wordpress/default.nix
+++ b/pkgs/servers/web-apps/wordpress/default.nix
@@ -1,5 +1,5 @@
 { callPackage }: builtins.mapAttrs (_: callPackage ./generic.nix) rec {
-  wordpress = wordpress6_4;
+  wordpress = wordpress6_5;
   wordpress6_3 = {
     version = "6.3.2";
     hash = "sha256-Jo2/Vlm4Ml24ucPI6ZHs2mkbpY2rZB1dofmGXNPweA8=";
@@ -8,4 +8,8 @@
     version = "6.4.3";
     hash = "sha256-PwjHHRlwhEH9q94bPq34NnQv3uhm1kOpjRAu0/ECaYY=";
   };
+  wordpress6_5 = {
+    version = "6.5";
+    hash = "sha256-NCRWKIrhSMC6itw2y/WJUd2LSRtnVWkmVO/b2nEJK58=";
+  };
 }
diff --git a/pkgs/servers/web-apps/wordpress/packages/languages.json b/pkgs/servers/web-apps/wordpress/packages/languages.json
index 6a9d4361f2260..ee7b57912cc5a 100644
--- a/pkgs/servers/web-apps/wordpress/packages/languages.json
+++ b/pkgs/servers/web-apps/wordpress/packages/languages.json
@@ -1,20 +1,20 @@
 {
   "de_DE": {
     "path": "de_DE",
-    "rev": "1286009",
-    "sha256": "1w6q2ja1y77yagg73zhrw94f2vpgd521zahwhvxqxa8isphbrybj",
-    "version": "6.4"
+    "rev": "1410426",
+    "sha256": "1h7nffn5lwvg1m1lv8sgwblzzbyx2ksrj55nlv9gj52qn4lv02f3",
+    "version": "6.5"
   },
   "fr_FR": {
     "path": "fr_FR",
-    "rev": "1285884",
-    "sha256": "1qlq7p9pmspizbgjp895jldb6cbsvfal6h02p44r87ag356cjk6j",
-    "version": "6.4"
+    "rev": "1410193",
+    "sha256": "1ka8z78ayfclnz8w4nc4sq8kp2ywnk63xcmc3pbzfilmf6sx2vss",
+    "version": "6.5"
   },
   "ro_RO": {
     "path": "ro_RO",
-    "rev": "1296680",
-    "sha256": "0m98iaai240yn4lx4lhqgzi2wlxkz67v1cg86jhfi72n0rhr4l46",
-    "version": "6.4"
+    "rev": "1410195",
+    "sha256": "01jhp0z1cb98mk5fh88b64fmmw112r73n34q44dp2rl2hi8wlrfg",
+    "version": "6.5"
   }
 }
diff --git a/pkgs/servers/web-apps/wordpress/packages/plugins.json b/pkgs/servers/web-apps/wordpress/packages/plugins.json
index e85bf69310c1c..3d5f69ccb9009 100644
--- a/pkgs/servers/web-apps/wordpress/packages/plugins.json
+++ b/pkgs/servers/web-apps/wordpress/packages/plugins.json
@@ -6,16 +6,16 @@
     "version": "2.4.6"
   },
   "akismet": {
-    "path": "akismet/tags/5.3",
-    "rev": "2991242",
-    "sha256": "1i7y09x2aikndf80wl7xv65m71nv5s0w6jcadpp0dsyzp2m3gjnn",
-    "version": "5.3"
+    "path": "akismet/tags/5.3.2",
+    "rev": "3055719",
+    "sha256": "1298r4mqv4ndyizgmsln06d4cgr04kw3wpdsl6y7ym7lriy207qw",
+    "version": "5.3.2"
   },
   "antispam-bee": {
-    "path": "antispam-bee/tags/2.11.5",
-    "rev": "2969611",
-    "sha256": "1pbigfchwkz9zks3vf1xd83d0aj4n1fmlimn8dpa5pw96687nc9d",
-    "version": "2.11.5"
+    "path": "antispam-bee/tags/2.11.6",
+    "rev": "3051694",
+    "sha256": "1nbfg7ksyh2mrlbk9p7czk6gv64gzxjd2lnsi5nyn90j2m8kw2kc",
+    "version": "2.11.6"
   },
   "async-javascript": {
     "path": "async-javascript/tags/2.21.08.31",
@@ -24,10 +24,10 @@
     "version": "2.21.08.31"
   },
   "breeze": {
-    "path": "breeze/tags/2.1.2",
-    "rev": "3011880",
-    "sha256": "164sf180j99icn39215s997qqmqddyqnkf7k29fwpkgz5ww0zkkd",
-    "version": "2.1.2"
+    "path": "breeze/tags/2.1.6",
+    "rev": "3051666",
+    "sha256": "0926fxbxkw06g6828s0yx017zp1sr60lh2b9cdgil0fxwc5ga26z",
+    "version": "2.1.6"
   },
   "co-authors-plus": {
     "path": "co-authors-plus/tags/3.5.15",
@@ -42,10 +42,10 @@
     "version": "3.1.1"
   },
   "cookie-notice": {
-    "path": "cookie-notice/tags/2.4.13",
-    "rev": "3002920",
-    "sha256": "0rw511zygmg1i8zp388s4fc526wr4pgszsqxw0bmwia6sjz0a9pn",
-    "version": "2.4.13"
+    "path": "cookie-notice/tags/2.4.16",
+    "rev": "3062780",
+    "sha256": "0fiskqj229r9ymnhr7h1z7snyhbv3ka3lp1ysbdyl631l992lwnc",
+    "version": "2.4.16"
   },
   "disable-xml-rpc": {
     "path": "disable-xml-rpc/tags/1.0.1",
@@ -60,10 +60,10 @@
     "version": "1.4.0"
   },
   "gutenberg": {
-    "path": "gutenberg/tags/17.3.0",
-    "rev": "3012944",
-    "sha256": "0n51lldbbk0sfzcjk8mcjnaj6dmhhbg45kc9a03igl6cnppw6g53",
-    "version": "17.3.0"
+    "path": "gutenberg/tags/18.0.1",
+    "rev": "3067379",
+    "sha256": "008kz282jmxiw7ayycl4a1dnwfvzna0dax1nydbm27sdj9nzqzak",
+    "version": "18.0.1"
   },
   "hello-dolly": {
     "path": "hello-dolly/tags/1.7.2",
@@ -73,15 +73,15 @@
   },
   "hkdev-maintenance-mode": {
     "path": "hkdev-maintenance-mode/trunk",
-    "rev": "3003933",
-    "sha256": "1mfn9njy7sp23hgpd597y74gs52gi9lm8qajv7xbgza82920mlgd",
-    "version": "2.5.0"
+    "rev": "3054874",
+    "sha256": "0p2qj6w0gy0pl0mq4x9f53r3y0rkr47039mb7l9rg6rgs41baa9m",
+    "version": "3.0.2"
   },
   "jetpack": {
-    "path": "jetpack/tags/12.9.3",
-    "rev": "3013460",
-    "sha256": "1lgkd3bgaqf155a39zfxx7ikmfxpzfsfak71mrlga12sfmyrrw74",
-    "version": "12.9.3"
+    "path": "jetpack/tags/13.3",
+    "rev": "3063825",
+    "sha256": "1fv3dr993smlb8yd2ca7cd4w67a2sn2vbkc53w6hcjggkjn8bkkv",
+    "version": "13.3"
   },
   "jetpack-lite": {
     "path": "jetpack-lite/tags/3.0.3",
@@ -90,22 +90,22 @@
     "version": "3.0.3"
   },
   "lightbox-photoswipe": {
-    "path": "lightbox-photoswipe/tags/5.1.0",
-    "rev": "3001652",
-    "sha256": "1mdrxc15skbg8gm18b88hj97mps668in7xvyvymfn5sgpf843glz",
-    "version": "5.1.0"
+    "path": "lightbox-photoswipe/tags/5.2.6",
+    "rev": "3065055",
+    "sha256": "1bhw5wvv722qm5a47ia2g5laj5fxr0yw61ajq03qbp0jpqry3slf",
+    "version": "5.2.6"
   },
   "login-lockdown": {
-    "path": "login-lockdown/tags/2.08",
-    "rev": "3007562",
-    "sha256": "0s9ahqbqcl0rlbbszrbdggyhnqw8k60xzlwq3nzsh2dxaphnmbi5",
-    "version": "2.08"
+    "path": "login-lockdown/tags/2.09",
+    "rev": "3059559",
+    "sha256": "0rvxzb1bfssfsngkf3mkqb0h3vivyjnsw822s7fwkavhklm6cfjx",
+    "version": "2.09"
   },
   "mailpoet": {
-    "path": "mailpoet/tags/4.40.0",
-    "rev": "3008786",
-    "sha256": "18604065zjwdrr63ad0a8zqy0cdfh8f5i3jyq5na5iayspgmy0lz",
-    "version": "4.40.0"
+    "path": "mailpoet/tags/4.48.2",
+    "rev": "3067726",
+    "sha256": "13brfys3xmpmw5yd1wn826mrzxvb6312177l7hmr6mhk0adp5lhz",
+    "version": "4.48.2"
   },
   "merge-minify-refresh": {
     "path": "merge-minify-refresh/trunk",
@@ -115,20 +115,20 @@
   },
   "opengraph": {
     "path": "opengraph/tags/1.11.2",
-    "rev": "2995321",
-    "sha256": "03cg7jm0g3rfwkvgjcg392mw09mlbmnvhw261rlldycfglmi270m",
+    "rev": "3065435",
+    "sha256": "1s78pf57s37rljd5qjddjyhbff2kw7h9y11k0nk9a6rj3l1zx9hl",
     "version": "1.11.2"
   },
   "simple-login-captcha": {
-    "path": "simple-login-captcha/tags/1.3.5",
-    "rev": "2988106",
-    "sha256": "1byq8f5qkxxnhjc4dk1ab7h8vzcr01y1nid81wwj2k1i03z9llqa",
-    "version": "1.3.5"
+    "path": "simple-login-captcha/tags/1.3.6",
+    "rev": "3061970",
+    "sha256": "0fxvx71ncxd2gypfcl86s56qy93npw2jmzl06f6zdvrk48644f0z",
+    "version": "1.3.6"
   },
   "simple-mastodon-verification": {
     "path": "simple-mastodon-verification/tags/1.1.3",
-    "rev": "2998678",
-    "sha256": "0ikymrf21l86gpdcjfawadqg1nbfsm6gggcc1g2g553pjg277grz",
+    "rev": "3044168",
+    "sha256": "1r0jfcy7qmrcclnhfqja6rixs3w3ipadblpgk54s36b11gnkfs9q",
     "version": "1.1.3"
   },
   "static-mail-sender-configurator": {
@@ -144,40 +144,40 @@
     "version": "1.2.3"
   },
   "webp-converter-for-media": {
-    "path": "webp-converter-for-media/tags/5.11.5",
-    "rev": "3006520",
-    "sha256": "1mkfki9148w43r3h8afp1j8vkrljsch68y8l4m6i8w5jsjvb5c18",
-    "version": "5.11.5"
+    "path": "webp-converter-for-media/tags/5.12.3",
+    "rev": "3054812",
+    "sha256": "16gfsx0378rhs133csyl1mblz4jvasjd146amrljgbrk9anj8cnx",
+    "version": "5.12.3"
   },
   "webp-express": {
-    "path": "webp-express/tags/0.25.8",
-    "rev": "2981697",
-    "sha256": "17v94im2cnvjiglfzbqq598blwn7m5j84sd8ysbq8lc60kwn0vi3",
-    "version": "0.25.8"
+    "path": "webp-express/tags/0.25.9",
+    "rev": "3066149",
+    "sha256": "1rcd6qxpq569w8hk01h2k807n9qwvz2qv4g33n7spzsxpgqiicgh",
+    "version": "0.25.9"
   },
   "wordpress-seo": {
-    "path": "wordpress-seo/tags/21.7",
-    "rev": "3008568",
-    "sha256": "1iigdycbxhdzrprnajw54b1jjmp8akig72z9v78infaf2sjawmgh",
-    "version": "21.7"
+    "path": "wordpress-seo/tags/22.4",
+    "rev": "3063381",
+    "sha256": "05p4i83q1w5gcp7ml08cihy50ksi4igpa7rrsfcr6pnid739s6lm",
+    "version": "22.4"
   },
   "worker": {
-    "path": "worker/tags/4.9.18",
-    "rev": "3010154",
-    "sha256": "1wkkabw0g2c9bfqwqddjqrc13wwf39h508bb25cxwz2yi5fdhp9v",
-    "version": "4.9.18"
+    "path": "worker/tags/4.9.19",
+    "rev": "3019262",
+    "sha256": "1pfn7bvdqv0cy10nbkdqw9m0b0nys6grw3jry41nr9ffbajbx4kx",
+    "version": "4.9.19"
   },
   "wp-change-email-sender": {
-    "path": "wp-change-email-sender/trunk",
-    "rev": "2812298",
-    "sha256": "1ibdj2yv572pk21pr313pdrqxi2f9vawwd0byb0s38224jjx4plh",
-    "version": "1.0"
+    "path": "wp-change-email-sender/tags/2.0",
+    "rev": "3055794",
+    "sha256": "06rq7axcyw5jrar5gzma61liwq0h0cc2c9b0zxcg3gyz9n1aj5zx",
+    "version": "2.0"
   },
   "wp-fastest-cache": {
-    "path": "wp-fastest-cache/tags/1.2.2",
-    "rev": "2994820",
-    "sha256": "1mj18yrljjdrd07b0yjkd9pwdciyn4jyrs6hgx6jcys0mc5p009v",
-    "version": "1.2.2"
+    "path": "wp-fastest-cache/tags/1.2.5",
+    "rev": "3065036",
+    "sha256": "0q3ra4xry8jbvnx7nxj6a8jjyrni6faa8ys0s2ikaf6jf3r9skqa",
+    "version": "1.2.5"
   },
   "wp-gdpr-compliance": {
     "path": "wp-gdpr-compliance/tags/2.0.22",
@@ -186,22 +186,22 @@
     "version": "2.0.22"
   },
   "wp-mail-smtp": {
-    "path": "wp-mail-smtp/tags/3.11.0",
-    "rev": "3009463",
-    "sha256": "1vk6bdchqka5nmiakq9s8kj7psk2nq2yxln377bidqyqj0q9kqmk",
-    "version": "3.11.0"
+    "path": "wp-mail-smtp/tags/4.0.1",
+    "rev": "3043224",
+    "sha256": "0hvcigsmlwgjnv7ha6zrj3n9yhxyak5r3937m3dp0whsl7ci0qw9",
+    "version": "4.0.1"
   },
   "wp-statistics": {
-    "path": "wp-statistics/tags/14.3.2",
-    "rev": "3013471",
-    "sha256": "03iahbjnyyy1lxvxmfgzzzin0sfng0dyagx0q0bvfa9bqx4pi37h",
-    "version": "14.3.2"
+    "path": "wp-statistics/tags/14.5.2",
+    "rev": "3049813",
+    "sha256": "1x136m26l8nnx355q68cpi971zz37mxjwi1i3vgwfsmphn1gynlb",
+    "version": "14.5.2"
   },
   "wp-swiper": {
     "path": "wp-swiper/trunk",
-    "rev": "3013138",
-    "sha256": "1h5l99m73z7fn0l5sa4qbdpi3r8nanvrbciix5756qj4qbzb51li",
-    "version": "1.1.0"
+    "rev": "3045384",
+    "sha256": "1m8gmab211pnhibpwviqsxm9pgzb2si2y41myksmxnbsvnnfmj7j",
+    "version": "1.1.6"
   },
   "wp-user-avatars": {
     "path": "wp-user-avatars/trunk",
@@ -210,9 +210,9 @@
     "version": "1.4.1"
   },
   "wpforms-lite": {
-    "path": "wpforms-lite/tags/1.8.5.3",
-    "rev": "3009465",
-    "sha256": "1xj4wn1zfdjqxh1h6k9xa316276k8n26nmgjfcapwss452qajwkm",
-    "version": "1.8.5.3"
+    "path": "wpforms-lite/tags/1.8.7.2",
+    "rev": "3043142",
+    "sha256": "1na6vlvnvni9vqg99i1ab49z5cyy6kyqf197ph8r79nc46lyxa5a",
+    "version": "1.8.7.2"
   }
 }
diff --git a/pkgs/servers/web-apps/wordpress/packages/themes.json b/pkgs/servers/web-apps/wordpress/packages/themes.json
index 92d09ef4ca97e..a9e5e53f14bb1 100644
--- a/pkgs/servers/web-apps/wordpress/packages/themes.json
+++ b/pkgs/servers/web-apps/wordpress/packages/themes.json
@@ -1,32 +1,32 @@
 {
   "twentynineteen": {
-    "path": "twentynineteen/2.7",
-    "rev": "207575",
-    "sha256": "19zbbpj1qxfz6599di2455qr97z5x4vrprf0bf20c8dq8n8lrh41",
-    "version": "2.7"
+    "path": "twentynineteen/2.8",
+    "rev": "223028",
+    "sha256": "0mw74ww2am6gi2m7vvn44g99y3l7scwahhdni6fh0m858r81fx09",
+    "version": "2.8"
   },
   "twentytwenty": {
-    "path": "twentytwenty/2.4",
-    "rev": "207576",
-    "sha256": "0xp2jcgsn16gv9ad8dirm7j24mi7633yrl524wi858l3m8dh4q4a",
-    "version": "2.4"
+    "path": "twentytwenty/2.6",
+    "rev": "223029",
+    "sha256": "063jcwb3c4qnwp6m0dw0wfvimxnj25xvfssvibhbjlby4ibdxa6k",
+    "version": "2.6"
   },
   "twentytwentyone": {
-    "path": "twentytwentyone/2.0",
-    "rev": "207577",
-    "sha256": "0ypdqxfd1va9m6f3zbc0281i69br5hpvvjdqb03kk2xnmam2hjaa",
-    "version": "2.0"
+    "path": "twentytwentyone/2.2",
+    "rev": "223030",
+    "sha256": "15z84ccabjxy88qpyrjb41f13xvgx27gyg0ivvfh468052jkwna9",
+    "version": "2.2"
   },
   "twentytwentythree": {
-    "path": "twentytwentythree/1.3",
-    "rev": "207579",
-    "sha256": "0r2k73yskqaxhl641ri1shy74rck5xvmfi7b562kz3j44hx0dz4f",
-    "version": "1.3"
+    "path": "twentytwentythree/1.4",
+    "rev": "223032",
+    "sha256": "12n50rffvrzl7vmcz3cbgh1i464hsp6yb9dr8p9000nf877pkq7b",
+    "version": "1.4"
   },
   "twentytwentytwo": {
-    "path": "twentytwentytwo/1.6",
-    "rev": "207578",
-    "sha256": "0ga1682a5sh038xfc7whvdws5vfy1g3qvvy13rm5dln79x022riq",
-    "version": "1.6"
+    "path": "twentytwentytwo/1.7",
+    "rev": "223031",
+    "sha256": "1irivpi4asd6gzqjc1fw4fmff7kf8fh2n118pjfr3v8mw5hmfssp",
+    "version": "1.7"
   }
 }
diff --git a/pkgs/tools/admin/auth0-cli/default.nix b/pkgs/tools/admin/auth0-cli/default.nix
index 44de0a5058b43..1328c478a7bbb 100644
--- a/pkgs/tools/admin/auth0-cli/default.nix
+++ b/pkgs/tools/admin/auth0-cli/default.nix
@@ -5,21 +5,22 @@
 
 buildGoModule rec {
   pname = "auth0-cli";
-  version = "1.1.2";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "auth0";
     repo = "auth0-cli";
-    rev = "v${version}";
-    hash = "sha256-EJH+Vn7wvrQ2umjmSXHjbgf2uf/kRbDoo0usTMqDFo4=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-j7HT57/4rrrVkx9Zz+XuWD6UL0spdej+U5gWtFo1FSI=";
   };
 
-  vendorHash = "sha256-T8y7MPFebDU6skfz4Rqo0ElRRaldtfexOl99D7h+orU=";
+  vendorHash = "sha256-bWAneCRsQbPRxEM/3jr1/Lov6NV67MRycOgrlj3bKF8=";
 
   ldflags = [
-    "-s" "-w"
-    "-X github.com/auth0/auth0-cli/internal/buildinfo.Version=v${version}"
-    "-X github.com/auth0/auth0-cli/internal/buildinfo.Revision=0000000"
+    "-s"
+    "-w"
+    "-X=github.com/auth0/auth0-cli/internal/buildinfo.Version=v${version}"
+    "-X=github.com/auth0/auth0-cli/internal/buildinfo.Revision=0000000"
   ];
 
   preCheck = ''
@@ -27,6 +28,9 @@ buildGoModule rec {
     # This is because subPackages above limits what is built to just what we
     # want but also limits the tests
     unset subPackages
+    # Test requires network access
+    substituteInPlace internal/cli/universal_login_customize_test.go \
+      --replace-fail "TestFetchUniversalLoginBrandingData" "SkipFetchUniversalLoginBrandingData"
   '';
 
   subPackages = [ "cmd/auth0" ];
diff --git a/pkgs/tools/admin/mycli/default.nix b/pkgs/tools/admin/mycli/default.nix
index b0ab1f890705b..36fc0ff4a3b39 100644
--- a/pkgs/tools/admin/mycli/default.nix
+++ b/pkgs/tools/admin/mycli/default.nix
@@ -8,11 +8,11 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "mycli";
-  version = "1.27.1";
+  version = "1.27.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-6fUno+YZLnuH/ntwiqO9Wx63rDSJwcFZVn5f9cmMqJk=";
+    sha256 = "sha256-0R2k5hRkAJbqgGZEPXWUb48oFxTKMKiQZckf3F+VC3I=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/tools/audio/whisper-ctranslate2/default.nix b/pkgs/tools/audio/whisper-ctranslate2/default.nix
index 7fd2959a9a791..ff74c8bffcb9f 100644
--- a/pkgs/tools/audio/whisper-ctranslate2/default.nix
+++ b/pkgs/tools/audio/whisper-ctranslate2/default.nix
@@ -5,7 +5,7 @@
 }:
 let
   pname = "whisper-ctranslate2";
-  version = "0.4.1";
+  version = "0.4.2";
 in
 python3.pkgs.buildPythonApplication {
   inherit pname version;
@@ -17,7 +17,7 @@ python3.pkgs.buildPythonApplication {
     owner = "Softcatala";
     repo = "whisper-ctranslate2";
     rev = version;
-    hash = "sha256-kFln/AqKjnEK5L9hOqGpyoRjNG+dagBIGrmq2C+OZOY=";
+    hash = "sha256-q8ofj/MVahBRmE9BSSN9EzadDqJVSxmdTMl53YhrKzY=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/misc/daktilo/default.nix b/pkgs/tools/misc/daktilo/default.nix
index b28f3b08f8cd9..e557862b67138 100644
--- a/pkgs/tools/misc/daktilo/default.nix
+++ b/pkgs/tools/misc/daktilo/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "daktilo";
-  version = "0.5.0";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "daktilo";
     rev = "v${version}";
-    hash = "sha256-kbJwBOUODtHdngbfa6HbbQJ0kgW6f64c0EG3y8wLymw=";
+    hash = "sha256-gIBWonJGX6IpxyBeMulcfQEExsG1GrBVQLZbBBA1ruc=";
   };
 
-  cargoHash = "sha256-u9vL2HAUgP43ZDwIEK2u/I+KUEjQsfXda03gnGJ1Krc=";
+  cargoHash = "sha256-lBlzXTkhsEboTby5tH7WfsvZxUwtw7sLYVJRozjI1D4=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/misc/grizzly/default.nix b/pkgs/tools/misc/grizzly/default.nix
index e523571e79f6f..ffe6a4352bc0d 100644
--- a/pkgs/tools/misc/grizzly/default.nix
+++ b/pkgs/tools/misc/grizzly/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "grizzly";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-c+QT3NwfnkVzAb1mqNIuNhSJJOnzME4e3ASawdNBFmg=";
+    hash = "sha256-IM7NrykF2Fiudijo5q0I/FewvS/rs3lzSpvzc6dl5Ds=";
   };
 
-  vendorHash = "sha256-EVP2w0mvzzBcrhohM2VmetK8UQu7fauelSa+C+q3n+g=";
+  vendorHash = "sha256-GrzMfOwNEjVQd1uCijcsfdIDO6UPzuHEDnJExupB9Jg=";
 
   subPackages = [ "cmd/grr" ];
 
diff --git a/pkgs/tools/security/enum4linux-ng/default.nix b/pkgs/tools/security/enum4linux-ng/default.nix
index 6c67773b6dd3d..956e71fed9230 100644
--- a/pkgs/tools/security/enum4linux-ng/default.nix
+++ b/pkgs/tools/security/enum4linux-ng/default.nix
@@ -1,32 +1,31 @@
-{ lib
-, fetchFromGitHub
-, python3
-, samba
+{
+  lib,
+  fetchFromGitHub,
+  python3,
+  samba,
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "enum4linux-ng";
-  version = "1.3.2";
+  version = "1.3.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "cddmp";
     repo = "enum4linux-ng";
     rev = "refs/tags/v${version}";
-    hash = "sha256-O3TZcCn2kRLrMjQPVg8F5Q2ri968xRbXrdnfytfMkYM=";
+    hash = "sha256-VpNYgdgvsQG5UcxoyyLCj5ijJdIKKhCSqnHTvTgD4lA=";
   };
 
-  build-system = with python3.pkgs; [
-    setuptools
-  ];
+  build-system = with python3.pkgs; [ setuptools ];
 
-  dependencies = [
-    samba
-  ] ++ (with python3.pkgs; [
-    impacket
-    ldap3
-    pyyaml
-  ]);
+  dependencies =
+    [ samba ]
+    ++ (with python3.pkgs; [
+      impacket
+      ldap3
+      pyyaml
+    ]);
 
   # It's only a script and not a Python module. Project has no tests
   doCheck = false;
diff --git a/pkgs/tools/security/gallia/default.nix b/pkgs/tools/security/gallia/default.nix
index 8279227f3d28b..be66306c331bb 100644
--- a/pkgs/tools/security/gallia/default.nix
+++ b/pkgs/tools/security/gallia/default.nix
@@ -1,31 +1,29 @@
-{ lib
-, fetchFromGitHub
-, python3
-, cacert
+{
+  lib,
+  fetchFromGitHub,
+  python3,
+  cacert,
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gallia";
-  version = "1.6.0";
+  version = "1.7.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Fraunhofer-AISEC";
     repo = "gallia";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LvzEyBkhji7ruVVO2EpqM8pKOcTX8Dnkqu/GtWOfMZs=";
+    hash = "sha256-hLGaImYkv6/1Wv1a+0tKmW4qmV4akNoyd0RXopJjetI=";
   };
 
-  nativeBuildInputs = with python3.pkgs; [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  pythonRelaxDeps = [ "httpx" ];
 
-  pythonRelaxDeps = [
-    "httpx"
-  ];
+  build-system = with python3.pkgs; [ poetry-core ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  nativeBuildInputs = with python3.pkgs; [ pythonRelaxDepsHook ];
+
+  dependencies = with python3.pkgs; [
     aiofiles
     aiohttp
     aiosqlite
@@ -51,9 +49,7 @@ python3.pkgs.buildPythonApplication rec {
     pytest-asyncio
   ];
 
-  pythonImportsCheck = [
-    "gallia"
-  ];
+  pythonImportsCheck = [ "gallia" ];
 
   preCheck = ''
     export PATH=$out/bin:$PATH
@@ -64,7 +60,10 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/Fraunhofer-AISEC/gallia";
     changelog = "https://github.com/Fraunhofer-AISEC/gallia/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
-    maintainers = with maintainers; [ fab rumpelsepp ];
+    maintainers = with maintainers; [
+      fab
+      rumpelsepp
+    ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index a4e66310e2ec0..ae25b6b53e690 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -1250,7 +1250,10 @@ mapAliases ({
   unicorn-emu = unicorn; # Added 2020-10-29
   uniffi-bindgen = throw "uniffi-bindgen has been removed since upstream no longer provides a standalone package for the CLI";
   unifi-poller = unpoller; # Added 2022-11-24
-  unifiStable = unifi6; # Added 2020-12-28
+  unifi5 = throw "'unifi5' has been removed since its required MongoDB version is EOL."; # Added 2024-04-11
+  unifi6 = throw "'unifi6' has been removed since its required MongoDB version is EOL."; # Added 2024-04-11
+  unifiLTS = throw "'unifiLTS' has been removed since UniFi no longer has LTS and stable releases. Use `pkgs.unifi` instead."; # Added 2024-04-11
+  unifiStable = throw "'unifiStable' has been removed since UniFi no longer has LTS and stable releases. Use `pkgs.unifi` instead."; # Converted to throw 2024-04-11
   untrunc = untrunc-anthwlock; # Added 2021-02-01
   urlview = throw "'urlview' has been dropped because it's unmaintained. Consider switching to an alternative such as `pkgs.extract_url` or `pkgs.urlscan`."; # Added 2023-12-14
   urxvt_autocomplete_all_the_things = rxvt-unicode-plugins.autocomplete-all-the-things; # Added 2020-02-02
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 6532b935381e3..45f166400973b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -26908,9 +26908,6 @@ with pkgs;
   axis2 = callPackage ../servers/http/tomcat/axis2 { };
 
   inherit (callPackages ../servers/unifi { })
-    unifiLTS
-    unifi5
-    unifi6
     unifi7
     unifi8;
 
@@ -28139,8 +28136,6 @@ with pkgs;
 
   smimesign = callPackage ../os-specific/darwin/smimesign { };
 
-  solo5 = callPackage ../os-specific/solo5 { };
-
   statik = callPackage ../development/tools/statik { };
 
   statifier = callPackage ../os-specific/linux/statifier { };
@@ -30381,10 +30376,6 @@ with pkgs;
     inherit (gnome2) libgnomeui GConf;
   };
 
-  corrscope = libsForQt5.callPackage ../applications/video/corrscope {
-    ffmpeg = ffmpeg-full;
-  };
-
   cpeditor = libsForQt5.callPackage ../applications/editors/cpeditor { };
 
   csa = callPackage ../applications/audio/csa { };
@@ -40709,7 +40700,7 @@ with pkgs;
   wmutils-opt = callPackage ../tools/X11/wmutils-opt { };
 
   inherit (callPackage ../servers/web-apps/wordpress {})
-    wordpress wordpress6_3 wordpress6_4;
+    wordpress wordpress6_3 wordpress6_4 wordpress6_5;
 
   wordpressPackages = ( callPackage ../servers/web-apps/wordpress/packages {
     plugins = lib.importJSON ../servers/web-apps/wordpress/packages/plugins.json;
diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix
index d6f6e358a7b96..00573f5cc226a 100644
--- a/pkgs/top-level/python-aliases.nix
+++ b/pkgs/top-level/python-aliases.nix
@@ -208,6 +208,7 @@ mapAliases ({
   hcs_utils = hcs-utils; # added 2024-01-06
   hdlparse = throw "hdlparse has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
   hglib = python-hglib; # added 2023-10-13
+  homeassistant-bring-api = bring-api; # added 2024-04-11
   homeassistant-pyozw = throw "homeassistant-pyozw has been removed, as it was packaged for home-assistant which has removed it as a dependency."; # added 2024-01-05
   HTSeq = htseq; # added 2023-02-19
   hyperkitty = throw "Please use pkgs.mailmanPackages.hyperkitty"; # added 2022-04-29
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index d9a6001945e97..2226189c08154 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1730,6 +1730,8 @@ self: super: with self; {
 
   brian2 = callPackage ../development/python-modules/brian2 { };
 
+  bring-api = callPackage ../development/python-modules/bring-api { };
+
   broadbean = callPackage ../development/python-modules/broadbean { };
 
   broadlink = callPackage ../development/python-modules/broadlink { };
@@ -5379,8 +5381,6 @@ self: super: with self; {
 
   home-assistant-bluetooth = callPackage ../development/python-modules/home-assistant-bluetooth { };
 
-  homeassistant-bring-api = callPackage ../development/python-modules/homeassistant-bring-api { };
-
   home-assistant-chip-clusters = callPackage ../development/python-modules/home-assistant-chip-clusters { };
 
   home-assistant-chip-core = callPackage ../development/python-modules/home-assistant-chip-core { };