diff --git a/nixos/doc/manual/release-notes/rl-2611.section.md b/nixos/doc/manual/release-notes/rl-2611.section.md
index c6bc6f513d30..6f486e80a65e 100644
--- a/nixos/doc/manual/release-notes/rl-2611.section.md
+++ b/nixos/doc/manual/release-notes/rl-2611.section.md
@@ -24,6 +24,8 @@
- [Freescout](https://freescout.net/), a free, open source Helpdesk and shared mailbox. Available as [services.freescout](#opt-services.freescout.enable).
+- [Koito](https://koito.io/), a modern, themeable scrobbler that you can use with any program that scrobbles to a custom ListenBrainz URL. Available as [services.koito](#opt-services.koito.enable).
+
- [FlapAlerted](https://github.com/Kioubit/FlapAlerted), detects BGP flapping events and provides statistics based on BGP update messages. Available as [services.flap-alerted](#opt-services.flap-alerted.enable).
- [Unpackerr](https://unpackerr.zip), extracts downloads for Radarr, Sonarr, Lidarr, Readarr, and/or a Watch folder. Available as [services.unpackerr](#opt-services.unpackerr.enable).
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index a889f8cabc1f..2535896d4790 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -1707,6 +1707,7 @@
./services/web-apps/kavita.nix
./services/web-apps/keycloak.nix
./services/web-apps/kimai.nix
+ ./services/web-apps/koito.nix
./services/web-apps/komga.nix
./services/web-apps/lanraragi.nix
./services/web-apps/lasuite-docs.nix
diff --git a/nixos/modules/services/audio/music-assistant.nix b/nixos/modules/services/audio/music-assistant.nix
index 6ff098a67723..8be485f1ec76 100644
--- a/nixos/modules/services/audio/music-assistant.nix
+++ b/nixos/modules/services/audio/music-assistant.nix
@@ -107,13 +107,17 @@ in
];
};
- services.avahi = lib.mkIf (lib.elem "airplay_receiver" cfg.providers) {
- enable = true;
- openFirewall = lib.mkIf cfg.openFirewall true;
- publish = {
+ services = {
+ avahi = lib.mkIf (lib.elem "airplay_receiver" cfg.providers) {
enable = true;
- userServices = true;
+ openFirewall = lib.mkIf cfg.openFirewall true;
+ publish = {
+ enable = true;
+ userServices = true;
+ };
};
+
+ music-assistant.providers = cfg.package.providersBuiltins;
};
systemd.services.music-assistant = {
@@ -167,8 +171,12 @@ in
DevicePolicy = "closed";
LockPersonality = true;
# breaks pyopenssl's cffi calls, used in remote access feature
+ # not compatible with llvmlite which is required by numba -> librosa
MemoryDenyWriteExecute = false;
- ProcSubset = "pid";
+ # required for torch to properly detect the supported engines
+ # allows Music-Assistant to warn, if x86_64-v2 cpu features are missing
+ BindReadOnlyPaths = [ "/proc/cpuinfo" ];
+ ProcSubset = "all";
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
@@ -190,7 +198,7 @@ in
SystemCallArchitectures = "native";
SystemCallFilter = [
"@system-service"
- "~@privileged @resources"
+ "~@privileged"
"mbind"
]
++ lib.optionals useYTMusic [
diff --git a/nixos/modules/services/web-apps/koito.nix b/nixos/modules/services/web-apps/koito.nix
new file mode 100644
index 000000000000..f4b78770aed5
--- /dev/null
+++ b/nixos/modules/services/web-apps/koito.nix
@@ -0,0 +1,140 @@
+{
+ lib,
+ config,
+ pkgs,
+ ...
+}:
+let
+ cfg = config.services.koito;
+
+ inherit (lib)
+ getExe
+ mkEnableOption
+ mkIf
+ mkOption
+ mkPackageOption
+ types
+ ;
+in
+{
+ options.services.koito = {
+ enable = mkEnableOption "koito";
+
+ package = mkPackageOption pkgs "koito" { };
+
+ openFirewall = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Open the appropriate ports in the firewall for Koito.";
+ };
+
+ environment = mkOption {
+ type = types.submodule {
+ freeformType = types.attrsOf types.str;
+ options = {
+ KOITO_BIND_ADDR = mkOption {
+ type = types.str;
+ default = "127.0.0.1";
+ example = "0.0.0.0";
+ description = "The IP address to bind the Koito server to.";
+ };
+ KOITO_LISTEN_PORT = mkOption {
+ type = types.port;
+ default = 4110;
+ description = "TCP port for the Koito server.";
+ };
+ KOITO_CONFIG_DIR = mkOption {
+ type = types.path;
+ default = "/var/lib/koito";
+ description = "Directory for Koito import folders and image caches.";
+ };
+ };
+ };
+ default = { };
+ example = {
+ KOITO_DEFAULT_THEME = "black";
+ KOITO_LOGIN_GATE = "true";
+ };
+ description = ''
+ Environment variables to pass to the Koito service.
+ See for available options.
+ '';
+ };
+
+ environmentFile = mkOption {
+ type = types.nullOr types.path;
+ example = "/run/secrets/koito";
+ default = null;
+ description = ''
+ Path of a file with extra environment variables to be loaded from disk.
+ This file is not added to the nix store, so it can be used to pass secrets to Koito.
+ See for available options.
+ '';
+ };
+ };
+
+ config = mkIf cfg.enable {
+ systemd.services.koito = {
+ description = "Koito - modern scrobbler";
+ after = [ "network-online.target" ];
+ wants = [ "network-online.target" ];
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ Environment = lib.mapAttrsToList (k: v: "${k}=${if builtins.isInt v then toString v else v}") (
+ lib.filterAttrs (_: v: v != null) cfg.environment
+ );
+ DynamicUser = true;
+ ExecStart = getExe cfg.package;
+ StateDirectory = "koito";
+ EnvironmentFile = cfg.environmentFile;
+
+ ProtectSystem = "strict";
+ ProtectHome = true;
+ PrivateTmp = true;
+ PrivateDevices = true;
+ PrivateMounts = true;
+ ProtectControlGroups = true;
+ ProtectKernelTunables = true;
+ RestrictSUIDSGID = true;
+ RemoveIPC = true;
+ UMask = "0077";
+
+ CapabilityBoundingSet = [ "" ];
+ NoNewPrivileges = true;
+
+ ProtectKernelModules = true;
+ ProtectKernelLogs = true;
+ ProtectClock = true;
+ SystemCallArchitectures = "native";
+ SystemCallFilter = [
+ "@system-service"
+ "~@privileged"
+ "~@resources"
+ ];
+
+ RestrictAddressFamilies = [
+ "AF_INET"
+ "AF_INET6"
+ "AF_UNIX"
+ ];
+
+ PrivateUsers = true;
+
+ LockPersonality = true;
+ ProtectHostname = true;
+ RestrictRealtime = true;
+ RestrictNamespaces = true;
+ ProtectProc = "invisible";
+ ProcSubset = "pid";
+ DeviceAllow = [ "" ];
+ };
+ };
+ networking.firewall = lib.mkIf cfg.openFirewall {
+ allowedTCPPorts = [ cfg.environment.KOITO_LISTEN_PORT ];
+ };
+ };
+
+ meta = {
+ maintainers = with lib.maintainers; [ iv-nn ];
+ };
+}
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index fb62daf02797..5edcd7350e50 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -890,6 +890,7 @@ in
kmonad = runTest ./kmonad.nix;
kmscon = runTest ./kmscon.nix;
knot = runTest ./knot.nix;
+ koito = runTest ./web-apps/koito.nix;
komga = runTest ./komga.nix;
komodo-periphery = runTest ./komodo-periphery.nix;
krb5 = discoverTests (import ./krb5);
diff --git a/nixos/tests/web-apps/koito.nix b/nixos/tests/web-apps/koito.nix
new file mode 100644
index 000000000000..8839d4bfc57f
--- /dev/null
+++ b/nixos/tests/web-apps/koito.nix
@@ -0,0 +1,20 @@
+{ ... }:
+{
+ name = "koito";
+
+ nodes.machine = {
+ services.koito.enable = true;
+ };
+
+ testScript =
+ { nodes, ... }:
+ let
+ port = toString nodes.machine.services.koito.environment.KOITO_LISTEN_PORT;
+ in
+ ''
+ machine.wait_for_unit('koito.service')
+
+ machine.wait_for_open_port(${port})
+ machine.succeed('curl --fail http://localhost:${port}')
+ '';
+}
diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix
index 3f970303d764..9b08c6a7f926 100644
--- a/pkgs/applications/editors/vim/plugins/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/generated.nix
@@ -446,12 +446,12 @@ final: prev: {
SchemaStore-nvim = buildVimPlugin {
pname = "SchemaStore.nvim";
- version = "0-unstable-2026-06-18";
+ version = "0-unstable-2026-06-26";
src = fetchFromGitHub {
owner = "b0o";
repo = "SchemaStore.nvim";
- rev = "c73e2b170a4927d1dc1b48e878bba6cf0ed9b07c";
- hash = "sha256-C5RIJHqT55QByx02erUkoi2rFUDh/LivP4MIFbRSArI=";
+ rev = "490afbd7fd3b316330550405ac74758a971104a4";
+ hash = "sha256-jdH0D+L3Y+5NJXoIik5Ao18dHRKc3dN3ZmKVUH+R9/4=";
};
meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
meta.license = getLicenseFromSpdxId "Apache-2.0";
@@ -868,12 +868,12 @@ final: prev: {
ale = buildVimPlugin {
pname = "ale";
- version = "4.0.0-unstable-2026-06-01";
+ version = "4.0.0-unstable-2026-06-21";
src = fetchFromGitHub {
owner = "dense-analysis";
repo = "ale";
- rev = "178fe113564d31cba304263765aeb21e7ed23a7e";
- hash = "sha256-9O1LLT4l+bxfCcYTLpazhEQsNGaAfueaIlQarbF0GjA=";
+ rev = "d0ea94323207abcdee717d76bb57b38d46055664";
+ hash = "sha256-m8ztWD74kc3Pd5dDDAJcAcC6tH2EHOp4ZHp3tvYEGZw=";
};
meta.homepage = "https://github.com/dense-analysis/ale/";
meta.license = getLicenseFromSpdxId "BSD-2-Clause";
@@ -1050,12 +1050,12 @@ final: prev: {
artio-nvim = buildVimPlugin {
pname = "artio.nvim";
- version = "0-unstable-2026-06-14";
+ version = "0-unstable-2026-06-23";
src = fetchFromGitHub {
owner = "comfysage";
repo = "artio.nvim";
- rev = "ff2b4351004f3b512525276d554dc6f0cd412a14";
- hash = "sha256-6wEtjgF36RfaHBanNp49Nb/+WR/b9qElUpV7SNbpESU=";
+ rev = "52a074e6a15780df350c03b5c7ab47f706fe6da8";
+ hash = "sha256-8hbFtJXpkH1L2ZI6Rv9HTQcseog77yf78Wc/9WsvzPA=";
};
meta.homepage = "https://github.com/comfysage/artio.nvim/";
meta.license = getLicenseFromSpdxId "EUPL-1.2";
@@ -1610,12 +1610,12 @@ final: prev: {
base16-nvim = buildVimPlugin {
pname = "base16-nvim";
- version = "0-unstable-2026-06-19";
+ version = "0-unstable-2026-06-21";
src = fetchFromGitHub {
owner = "RRethy";
repo = "base16-nvim";
- rev = "7d7a00013066f8ab41be28bd43136d5ca8d0fabd";
- hash = "sha256-wwKPgnkGEP4ztW/31M6+nRnOVHkzGrmm6ElNMul0Buo=";
+ rev = "21233d5fd574439ae1e2f5e4bfbc574214f4ab3d";
+ hash = "sha256-Dizi44p6XYaQlXEL5qnfJFX44nXKIAkZAZvQ5QH11eA=";
};
meta.homepage = "https://github.com/RRethy/base16-nvim/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -1792,12 +1792,12 @@ final: prev: {
blink-calc = buildVimPlugin {
pname = "blink-calc";
- version = "0-unstable-2025-10-06";
+ version = "0-unstable-2026-06-22";
src = fetchFromGitHub {
owner = "joelazar";
repo = "blink-calc";
- rev = "199e8a5fe356d553d33a3511ca28e625dac5c470";
- hash = "sha256-3w+vQf3N6+umBUF+PkCbPXggn53rNekxHgR2y+ICwHw=";
+ rev = "1b75c20cbb21c95bf08694eed605fa0bdbbe5ca2";
+ hash = "sha256-hWPRXBIQ2uaoWNSXFQ1OGcWLbfE9nCmX/Q6Zs5JCjqE=";
};
meta.homepage = "https://github.com/joelazar/blink-calc/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -2547,12 +2547,12 @@ final: prev: {
claudecode-nvim = buildVimPlugin {
pname = "claudecode.nvim";
- version = "0.3.0-unstable-2026-06-18";
+ version = "0.3.0-unstable-2026-06-25";
src = fetchFromGitHub {
owner = "coder";
repo = "claudecode.nvim";
- rev = "bcb3fe205efe88771e8801d0a99b6fcb0a982bbb";
- hash = "sha256-pJtrh/3pGvALhQheB3LMB01IahTSYvxfCUNdiMvq8L0=";
+ rev = "2390c6e45c4789072c293ac69de051d169668b29";
+ hash = "sha256-oMBPSRQFDmJ9Lq+ZP8vFMHaocm4sPX3D/orVMNwVXuM=";
};
meta.homepage = "https://github.com/coder/claudecode.nvim/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -3484,12 +3484,12 @@ final: prev: {
coc-nvim = buildVimPlugin {
pname = "coc.nvim";
- version = "0.0.82-unstable-2026-06-16";
+ version = "0.0.82-unstable-2026-06-26";
src = fetchFromGitHub {
owner = "neoclide";
repo = "coc.nvim";
- rev = "6535506db1d0f8462ba668b5ca27e15e7f406598";
- hash = "sha256-KG9vSlp6qM3mldJb9xHXYBUrd4Sm8ihAYU2ICf3LTF4=";
+ rev = "4783286c40bcced33e2755f41a338bacc8232f90";
+ hash = "sha256-ardShVUN0QYzBtb8QWPsOQYw6NDjAmlBJVNsSFTe5Wc=";
};
meta.homepage = "https://github.com/neoclide/coc.nvim/";
meta.license = unfree;
@@ -3568,12 +3568,12 @@ final: prev: {
codecompanion-nvim = buildVimPlugin {
pname = "codecompanion.nvim";
- version = "19.16.0";
+ version = "19.17.0";
src = fetchFromGitHub {
owner = "olimorris";
repo = "codecompanion.nvim";
- tag = "v19.16.0";
- hash = "sha256-EUzpQYHEtIP5pVdhsUNWF0Gv7PegMVd25j9WC3Knsq4=";
+ tag = "v19.17.0";
+ hash = "sha256-/1XlRYSEucUMJAllX27OJNbydgLyzbWS+SXhyNXj4QU=";
};
meta.homepage = "https://github.com/olimorris/codecompanion.nvim/";
meta.license = getLicenseFromSpdxId "Apache-2.0";
@@ -4157,12 +4157,12 @@ final: prev: {
coq-thirdparty = buildVimPlugin {
pname = "coq.thirdparty";
- version = "0-unstable-2025-10-29";
+ version = "0-unstable-2026-06-21";
src = fetchFromGitHub {
owner = "ms-jpq";
repo = "coq.thirdparty";
- rev = "2bd969a2bcd2624f9c260b1000957c7e665e308e";
- hash = "sha256-l+wMABt0lnKn1V6d7uhe6rUjfKsZw9XcO6RHwEVrZSI=";
+ rev = "a021e24f1ff538d339aece0de80d621b68862701";
+ hash = "sha256-x08Ggz/maGv1tUY0P0ITFym+4W8vg6sXPLgGo6kXFNQ=";
};
meta.homepage = "https://github.com/ms-jpq/coq.thirdparty/";
meta.license = unfree;
@@ -4185,12 +4185,12 @@ final: prev: {
coq_nvim = buildVimPlugin {
pname = "coq_nvim";
- version = "0-unstable-2026-06-18";
+ version = "0-unstable-2026-06-29";
src = fetchFromGitHub {
owner = "ms-jpq";
repo = "coq_nvim";
- rev = "51660094e77742fd13bf98719fa90fdb5490a599";
- hash = "sha256-5MeBi/lBaQ1oln90hwMg9pwBQbfyt1tziaNRn6QurvU=";
+ rev = "6b2ba42652d935b4bc70707b9addb37e2d38ef20";
+ hash = "sha256-PKqpmhVez3M5+kuoLzMZS1GjAoQMjvLiAUDmlI0daEA=";
};
meta.homepage = "https://github.com/ms-jpq/coq_nvim/";
meta.license = getLicenseFromSpdxId "GPL-3.0-only";
@@ -4395,12 +4395,12 @@ final: prev: {
cyberdream-nvim = buildVimPlugin {
pname = "cyberdream.nvim";
- version = "5.4.0";
+ version = "5.5.0";
src = fetchFromGitHub {
owner = "scottmckendry";
repo = "cyberdream.nvim";
- tag = "v5.4.0";
- hash = "sha256-lz9TlZRhJIUnv/4qTT8SoimRiY/vGFlrOKT3xc3FtoQ=";
+ tag = "v5.5.0";
+ hash = "sha256-iLdBf66y5nZgSj3OJWjjv07vBOMMRxx0ncSH477eXIg=";
};
meta.homepage = "https://github.com/scottmckendry/cyberdream.nvim/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -4535,12 +4535,12 @@ final: prev: {
ddc-filter-matcher_head = buildVimPlugin {
pname = "ddc-filter-matcher_head";
- version = "0-unstable-2025-09-02";
+ version = "0-unstable-2026-06-23";
src = fetchFromGitHub {
owner = "Shougo";
repo = "ddc-filter-matcher_head";
- rev = "7a955d2f6a44e39687459f8f3a22f4daa063a981";
- hash = "sha256-VYNjVH1OtmSyvBoFxF5WBf150GwoIpjTe0Y0oK8Hp8A=";
+ rev = "7a52b2facb97a352fcd900baca1b4efa7b652176";
+ hash = "sha256-toNCobCS9NiLQewXZpKyZvuA3AZ83v/rhUbMkV1WOOQ=";
};
meta.homepage = "https://github.com/Shougo/ddc-filter-matcher_head/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -4549,12 +4549,12 @@ final: prev: {
ddc-filter-sorter_rank = buildVimPlugin {
pname = "ddc-filter-sorter_rank";
- version = "0-unstable-2025-09-02";
+ version = "0-unstable-2026-06-29";
src = fetchFromGitHub {
owner = "Shougo";
repo = "ddc-filter-sorter_rank";
- rev = "eed3cb33b3ae3f9128257fcfb95e0511d1b13891";
- hash = "sha256-8zoRsX7ZNCNkokku0TW0LNkjXmBL8UCu8h3EAe4KQ+g=";
+ rev = "69a1109addf0e639811ec9a4a81bc09f09357c2a";
+ hash = "sha256-H2Bh9aIMzMvE+Hz6Fqq5Ztt9004JYjzUAgaFcOJh1Os=";
};
meta.homepage = "https://github.com/Shougo/ddc-filter-sorter_rank/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -4577,12 +4577,12 @@ final: prev: {
ddc-source-around = buildVimPlugin {
pname = "ddc-source-around";
- version = "0-unstable-2025-09-03";
+ version = "0-unstable-2026-06-29";
src = fetchFromGitHub {
owner = "Shougo";
repo = "ddc-source-around";
- rev = "68e679ca0b989cfe3300acac9099b893d0675063";
- hash = "sha256-wLQ9vpKgl4fyjLEWo1XIElw8CbFjpBkvYMFoMPrQTxM=";
+ rev = "c4268422e397ffea86fc1b2bda8ec9bb088c9771";
+ hash = "sha256-q8N4bmL6D9lE1kh2ZOv6ITBhkudJF6fOR8vlBUhZMEY=";
};
meta.homepage = "https://github.com/Shougo/ddc-source-around/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -4759,12 +4759,12 @@ final: prev: {
demicolon-nvim = buildVimPlugin {
pname = "demicolon.nvim";
- version = "2.0-unstable-2026-01-25";
+ version = "2.0-unstable-2026-06-20";
src = fetchFromGitHub {
owner = "mawkler";
repo = "demicolon.nvim";
- rev = "a9ca137474b3a02e1d6ac48bfdb1985172e2ec9a";
- hash = "sha256-jDvdyAT2lngYDSDw4c+zziUYUuNeET0FBWJA+IeD2Ts=";
+ rev = "153444f17494e2ff6ab7d226e6173c1841b1130a";
+ hash = "sha256-gBGJphvT1AXN/UImrSWiWhhzcQt4i68Vbwtr9jXipwo=";
};
meta.homepage = "https://github.com/mawkler/demicolon.nvim/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -5433,12 +5433,12 @@ final: prev: {
easy-dotnet-nvim = buildVimPlugin {
pname = "easy-dotnet.nvim";
- version = "0-unstable-2026-06-19";
+ version = "0-unstable-2026-06-25";
src = fetchFromGitHub {
owner = "GustavEikaas";
repo = "easy-dotnet.nvim";
- rev = "4a4a12add28922e5e22d9cfdeda88194f487a8e2";
- hash = "sha256-rWAxDFuqatT3UTPMxn7JhzVCflCpOoxSZagVqaSY5dg=";
+ rev = "07a41015af3bcbad7dff94191d5ad4b8a67fd202";
+ hash = "sha256-/XQu9ywd4AK8sD7AIRdPJYjrPqM5ZorZv266tJViz/M=";
};
meta.homepage = "https://github.com/GustavEikaas/easy-dotnet.nvim/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -6346,12 +6346,12 @@ final: prev: {
fyler-nvim = buildVimPlugin {
pname = "fyler.nvim";
- version = "2.0.0-unstable-2025-11-23";
+ version = "2.0.0-unstable-2026-06-28";
src = fetchFromGitHub {
owner = "FylerOrg";
repo = "fyler.nvim";
- rev = "bb8b9f30c652c948d35211958b0deec3496bcc08";
- hash = "sha256-Caf1dJiIATbs0PNjSANjA3QgHg7PdeMz9Pjoc0Ti7G4=";
+ rev = "70e1202434a21b45649dd59ec82dc3330f79125e";
+ hash = "sha256-va0a+y6fjut99A7MBjKYvfmhQUDp/zyD/65neYWVHE8=";
};
meta.homepage = "https://github.com/FylerOrg/fyler.nvim/";
meta.license = getLicenseFromSpdxId "Apache-2.0";
@@ -6696,11 +6696,11 @@ final: prev: {
gitlab-vim = buildVimPlugin {
pname = "gitlab.vim";
- version = "1.1.0-unstable-2026-06-10";
+ version = "1.1.0-unstable-2026-06-24";
src = fetchgit {
url = "https://gitlab.com/gitlab-org/editor-extensions/gitlab.vim";
- rev = "eaddfb6717d7d1118b40403dd8ae76b79e28eb33";
- hash = "sha256-RSPu9WhHfb5JyaYYZGJ4tYe0USOQ4ap68Z27ZhkA5Vc=";
+ rev = "94cadd5075cfefadd5dcfe8a820313a3fb99465e";
+ hash = "sha256-awuHlEw7jV7gBMVi57MOYDowexdtqLyQCUljV0mYlCg=";
};
meta.homepage = "https://gitlab.com/gitlab-org/editor-extensions/gitlab.vim";
meta.license = unfree;
@@ -7087,12 +7087,12 @@ final: prev: {
guh-nvim = buildVimPlugin {
pname = "guh.nvim";
- version = "0.0.1-unstable-2026-06-19";
+ version = "0.0.1-unstable-2026-06-24";
src = fetchFromGitHub {
owner = "justinmk";
repo = "guh.nvim";
- rev = "ebe54715626173abba55e17282c60561bcfbfb6c";
- hash = "sha256-v6N+Y86heqpt46qOJwpzXs2yGamM6sxd9DJDzo8nm4g=";
+ rev = "943779f7cdb0acee203985ad531fb53ff95d9c8e";
+ hash = "sha256-IfcrDH4B5J4aeV/Ff8mZ93nh3TNNoX/miZRWn6uMcu0=";
};
meta.homepage = "https://github.com/justinmk/guh.nvim/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -7255,12 +7255,12 @@ final: prev: {
haskell-snippets-nvim = buildVimPlugin {
pname = "haskell-snippets.nvim";
- version = "1.5.0-unstable-2026-05-11";
+ version = "1.5.0-unstable-2026-06-22";
src = fetchFromGitHub {
owner = "mrcjkb";
repo = "haskell-snippets.nvim";
- rev = "f7482c1097007e8bac0502c0644e375a12ae72ba";
- hash = "sha256-BygC8L0Jau5/7ljHfD9LJO18jhXvIq1SSvtyb7bNv40=";
+ rev = "5be33b79f0320ad9ef7f558507f2e365deebef4f";
+ hash = "sha256-/xJ1Wx6Y24NvrbX4+v2lF+anEhP14p+N9jc2/p859LU=";
};
meta.homepage = "https://github.com/mrcjkb/haskell-snippets.nvim/";
meta.license = getLicenseFromSpdxId "GPL-2.0-only";
@@ -9817,11 +9817,11 @@ final: prev: {
mini-ai = buildVimPlugin {
pname = "mini.ai";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.ai";
- rev = "d73c36349aa7b0bab5f77ad71701a1d42211a1df";
+ tag = "v0.18.0";
hash = "sha256-5lmxcbEwlUcV3D4Zw93dLH2onFdpGMEAhul51lbxFIg=";
};
meta.homepage = "https://github.com/nvim-mini/mini.ai/";
@@ -9831,11 +9831,11 @@ final: prev: {
mini-align = buildVimPlugin {
pname = "mini.align";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.align";
- rev = "8cebe89d82f20e6d21b27346bcde4b4b6244a9f1";
+ tag = "v0.18.0";
hash = "sha256-0YVTahHSbzhEEpw9zYfGljxx+ufsuZ0qWiu2SZzTD9U=";
};
meta.homepage = "https://github.com/nvim-mini/mini.align/";
@@ -9845,11 +9845,11 @@ final: prev: {
mini-animate = buildVimPlugin {
pname = "mini.animate";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.animate";
- rev = "1c243baec3a308ea3552fbbd2f5d24ed804bf17d";
+ tag = "v0.18.0";
hash = "sha256-xxEoAH267h7oEMaMtv9YRsJRL5X1pWbAeCy/U+i33gs=";
};
meta.homepage = "https://github.com/nvim-mini/mini.animate/";
@@ -9859,11 +9859,11 @@ final: prev: {
mini-base16 = buildVimPlugin {
pname = "mini.base16";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.base16";
- rev = "ecbcb4e363169a663ece476f35fd87870c6d6a8b";
+ tag = "v0.18.0";
hash = "sha256-Q038ztqiCjX9WAqlcKC4auNNeRtC+hOV6BvMml/Tdp8=";
};
meta.homepage = "https://github.com/nvim-mini/mini.base16/";
@@ -9873,11 +9873,11 @@ final: prev: {
mini-basics = buildVimPlugin {
pname = "mini.basics";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.basics";
- rev = "b5be271ebe862ca0570e450976799554e585d16e";
+ tag = "v0.18.0";
hash = "sha256-/H9/3JkZigApufNvWMtOFbsrHuG4cwPuY+fKmklWkU8=";
};
meta.homepage = "https://github.com/nvim-mini/mini.basics/";
@@ -9887,11 +9887,11 @@ final: prev: {
mini-bracketed = buildVimPlugin {
pname = "mini.bracketed";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.bracketed";
- rev = "7662c280946faf573c4eabf307d78406ad0783e4";
+ tag = "v0.18.0";
hash = "sha256-vsj7cf6deB9o0UkFN/ewk/kxKooC0lB7txRpbbNnaLc=";
};
meta.homepage = "https://github.com/nvim-mini/mini.bracketed/";
@@ -9901,11 +9901,11 @@ final: prev: {
mini-bufremove = buildVimPlugin {
pname = "mini.bufremove";
- version = "0.17.0-unstable-2026-05-12";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.bufremove";
- rev = "4cfbb201b2760da79ca6e1a00e9f67cbc99cbb8f";
+ tag = "v0.18.0";
hash = "sha256-TVae69MHavTTgBCWpIbQk0L3EgLlRQgqXZlotSbG8bk=";
};
meta.homepage = "https://github.com/nvim-mini/mini.bufremove/";
@@ -9915,11 +9915,11 @@ final: prev: {
mini-clue = buildVimPlugin {
pname = "mini.clue";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.clue";
- rev = "62e9e38c3dc4b7d429f1b6e28d96f96cdff71132";
+ tag = "v0.18.0";
hash = "sha256-ivDrHCyW7YaaEtUwkmqRKwT4bYnvy3Nn3fH//STYsPA=";
};
meta.homepage = "https://github.com/nvim-mini/mini.clue/";
@@ -9929,11 +9929,11 @@ final: prev: {
mini-cmdline = buildVimPlugin {
pname = "mini.cmdline";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.cmdline";
- rev = "8e3fe6ee41a960226bc0dc663120363a40bc18bd";
+ tag = "v0.18.0";
hash = "sha256-WCsFDbk4/Cql9kJ44m++YlanasLE7ptYaaGrLoSpxYw=";
};
meta.homepage = "https://github.com/nvim-mini/mini.cmdline/";
@@ -9943,11 +9943,11 @@ final: prev: {
mini-colors = buildVimPlugin {
pname = "mini.colors";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.colors";
- rev = "3c67f88070edb27035ae10c4fd094650a7a8efc7";
+ tag = "v0.18.0";
hash = "sha256-YMBNhdIRSAKhTA3h0K1jKAW4+z/+Nj6kApMAHxkIUaE=";
};
meta.homepage = "https://github.com/nvim-mini/mini.colors/";
@@ -9957,11 +9957,11 @@ final: prev: {
mini-comment = buildVimPlugin {
pname = "mini.comment";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.comment";
- rev = "4677392f091e8b5c18d4b535130220a6d1da4aca";
+ tag = "v0.18.0";
hash = "sha256-14YdoEPMudcfYWrb62Fv2GuoWW85v2F9s3/yKxbFN88=";
};
meta.homepage = "https://github.com/nvim-mini/mini.comment/";
@@ -9971,11 +9971,11 @@ final: prev: {
mini-completion = buildVimPlugin {
pname = "mini.completion";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.completion";
- rev = "0aeee1231b90d70563e24facc238ab4359b8d5fc";
+ tag = "v0.18.0";
hash = "sha256-GD6s5qDvKrGk3qM+rk5L8fp7SmvhfKrZO+B6h7cwpAg=";
};
meta.homepage = "https://github.com/nvim-mini/mini.completion/";
@@ -9985,11 +9985,11 @@ final: prev: {
mini-cursorword = buildVimPlugin {
pname = "mini.cursorword";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.cursorword";
- rev = "331bc17172e41343d39d91a4ab571d510766812e";
+ tag = "v0.18.0";
hash = "sha256-FHD3fBCmYpw3P/o//CocQNSBoElOr7EleIdiSKM7c8E=";
};
meta.homepage = "https://github.com/nvim-mini/mini.cursorword/";
@@ -9999,11 +9999,11 @@ final: prev: {
mini-deps = buildVimPlugin {
pname = "mini.deps";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.deps";
- rev = "75a5568a36dfb15cf2f459bca30120335bf91ec7";
+ tag = "v0.18.0";
hash = "sha256-nbtOiQAgUfgoLzjXVb/SKPVRBp7bdYLBvYPg4CvchsI=";
};
meta.homepage = "https://github.com/nvim-mini/mini.deps/";
@@ -10013,11 +10013,11 @@ final: prev: {
mini-diff = buildVimPlugin {
pname = "mini.diff";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.diff";
- rev = "0743d26bd858ebe32efcf5c86a91a422a000f273";
+ tag = "v0.18.0";
hash = "sha256-ZhCsTAzuVRMbVSWWepsA8qrS1GTPNokm0NxXn3hYEoM=";
};
meta.homepage = "https://github.com/nvim-mini/mini.diff/";
@@ -10027,11 +10027,11 @@ final: prev: {
mini-doc = buildVimPlugin {
pname = "mini.doc";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.doc";
- rev = "54bb11880f2208a059a8d2564c3f4b586b78e044";
+ tag = "v0.18.0";
hash = "sha256-g1JvCOxQY5oFEr2Q5l8e31gC0O5VvIP9ZuHncK83QSE=";
};
meta.homepage = "https://github.com/nvim-mini/mini.doc/";
@@ -10041,11 +10041,11 @@ final: prev: {
mini-extra = buildVimPlugin {
pname = "mini.extra";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.extra";
- rev = "e5ecf197f8954d002cb9e85b3715851e2c8d3cd5";
+ tag = "v0.18.0";
hash = "sha256-QjA7O9AXfRWgsq3ma2Q0eonD66WRvd4qT3Jk61PgfG0=";
};
meta.homepage = "https://github.com/nvim-mini/mini.extra/";
@@ -10055,11 +10055,11 @@ final: prev: {
mini-files = buildVimPlugin {
pname = "mini.files";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.files";
- rev = "a5689dae6b732955e33eec225b798d6815063179";
+ tag = "v0.18.0";
hash = "sha256-RhD0kEdJL47nSDjrKzuN+l5+65gJ/7w+eqtP3zLVln8=";
};
meta.homepage = "https://github.com/nvim-mini/mini.files/";
@@ -10069,11 +10069,11 @@ final: prev: {
mini-fuzzy = buildVimPlugin {
pname = "mini.fuzzy";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.fuzzy";
- rev = "016c90a5e2c7235c26684dc0e13f6f019e1dcd84";
+ tag = "v0.18.0";
hash = "sha256-xk7PqaKzvUXl7v2DSRD3xu6aV1lrHB0GtbGOaoSRyZc=";
};
meta.homepage = "https://github.com/nvim-mini/mini.fuzzy/";
@@ -10083,11 +10083,11 @@ final: prev: {
mini-git = buildVimPlugin {
pname = "mini-git";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini-git";
- rev = "96db7676696e53add56726e9e80f92dff9f63d17";
+ tag = "v0.18.0";
hash = "sha256-Xu3yiQU1ibvq1skFiyie5IkHWGU7UQ46jChyO3hrgZw=";
};
meta.homepage = "https://github.com/nvim-mini/mini-git/";
@@ -10097,11 +10097,11 @@ final: prev: {
mini-hipatterns = buildVimPlugin {
pname = "mini.hipatterns";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.hipatterns";
- rev = "607d604e650cdf21d71f863d040c496a1d0cb320";
+ tag = "v0.18.0";
hash = "sha256-7ydDX9dKXFKg4o9omp+ZZfC3DLjQoIDC6n+iAYoH2ug=";
};
meta.homepage = "https://github.com/nvim-mini/mini.hipatterns/";
@@ -10111,11 +10111,11 @@ final: prev: {
mini-hues = buildVimPlugin {
pname = "mini.hues";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.hues";
- rev = "38e6aec74052818aef0ed4b8a24ea7113125f9ad";
+ tag = "v0.18.0";
hash = "sha256-x//2b2QUSmHP7HgjG1Ri31vwJ0acDkI6Pr75927wNrI=";
};
meta.homepage = "https://github.com/nvim-mini/mini.hues/";
@@ -10125,11 +10125,11 @@ final: prev: {
mini-icons = buildVimPlugin {
pname = "mini.icons";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.icons";
- rev = "e56797f90192d81f1fda02e662fc3e8e3d775027";
+ tag = "v0.18.0";
hash = "sha256-Lr5/aHSnwfDAidvGTIOfEvp0lNpnp5kFNnIUSssnaOw=";
};
meta.homepage = "https://github.com/nvim-mini/mini.icons/";
@@ -10139,11 +10139,11 @@ final: prev: {
mini-indentscope = buildVimPlugin {
pname = "mini.indentscope";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.indentscope";
- rev = "d3f955f09b1a05d25d5a7740338fba2baaee41a3";
+ tag = "v0.18.0";
hash = "sha256-ahA7Ud+f55wpEK7Lp0Zuf1djB8NcIpqmvwFPO2r6EPs=";
};
meta.homepage = "https://github.com/nvim-mini/mini.indentscope/";
@@ -10153,12 +10153,12 @@ final: prev: {
mini-input = buildVimPlugin {
pname = "mini.input";
- version = "0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.input";
- rev = "906dfc354e8c5f9925e019612d042efe1c2c3bf3";
- hash = "sha256-sKWRtSEWqKOaMLiemYiOyRgIWYsaLgycRmyYDKd389k=";
+ tag = "v0.18.0";
+ hash = "sha256-lATmLit9sU/7xcoEz4gD277hoDbPuifGGIwlbWKNrjg=";
};
meta.homepage = "https://github.com/nvim-mini/mini.input/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -10167,11 +10167,11 @@ final: prev: {
mini-jump = buildVimPlugin {
pname = "mini.jump";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.jump";
- rev = "7dc394e21a59ecfd786242314dc4a68619de216d";
+ tag = "v0.18.0";
hash = "sha256-AsrwzaOsh+c3BtN4knD6FvLvQl0JwQ8kPi6c/8KZGSw=";
};
meta.homepage = "https://github.com/nvim-mini/mini.jump/";
@@ -10181,11 +10181,11 @@ final: prev: {
mini-jump2d = buildVimPlugin {
pname = "mini.jump2d";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.jump2d";
- rev = "ef08ddb40e04657b9439427f276b0546a8837c04";
+ tag = "v0.18.0";
hash = "sha256-tEYxxutbVzMg2nthOVvMUQFW9MZDLlTTB9HRMS2Y62M=";
};
meta.homepage = "https://github.com/nvim-mini/mini.jump2d/";
@@ -10195,11 +10195,11 @@ final: prev: {
mini-keymap = buildVimPlugin {
pname = "mini.keymap";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.keymap";
- rev = "2779b4a5d21ddd738b4c4c4b2347da6c89c62713";
+ tag = "v0.18.0";
hash = "sha256-hAkaV2IXBYhoObNOZO2JOxYC+0f2dY090x+d91B0MCg=";
};
meta.homepage = "https://github.com/nvim-mini/mini.keymap/";
@@ -10209,11 +10209,11 @@ final: prev: {
mini-map = buildVimPlugin {
pname = "mini.map";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.map";
- rev = "7e836e3679387012f84f2a389ace740d57a93a37";
+ tag = "v0.18.0";
hash = "sha256-c80XxN/jrC9qqCWmERaRrpNOrkDadcXuy02zr7ffvlI=";
};
meta.homepage = "https://github.com/nvim-mini/mini.map/";
@@ -10223,11 +10223,11 @@ final: prev: {
mini-misc = buildVimPlugin {
pname = "mini.misc";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.misc";
- rev = "29e2b6838b3f1399d5062f6d735ebc79eb8765f4";
+ tag = "v0.18.0";
hash = "sha256-m5jbhTNVT2A9lQhwEVGay3hJD7SkFc+az6DwfishVj0=";
};
meta.homepage = "https://github.com/nvim-mini/mini.misc/";
@@ -10237,11 +10237,11 @@ final: prev: {
mini-move = buildVimPlugin {
pname = "mini.move";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.move";
- rev = "b9e452f9c83565a1520e14f7531632160f3b0170";
+ tag = "v0.18.0";
hash = "sha256-HVTI8k5KJeULmW6AC1qgCUXF5lHDcCzzp1aaI4H1PgU=";
};
meta.homepage = "https://github.com/nvim-mini/mini.move/";
@@ -10251,12 +10251,12 @@ final: prev: {
mini-notify = buildVimPlugin {
pname = "mini.notify";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.notify";
- rev = "7d3832e369853eaf1a2d25dede9db34ae5a809e9";
- hash = "sha256-6oggS2HesLCUmWOybpyKYF/19b3RXChxn/dDTbo4L0g=";
+ tag = "v0.18.0";
+ hash = "sha256-5qd0Kg7HCYHlgMjCiDRgqCXuqrlM2VuwpSjWXXVazN4=";
};
meta.homepage = "https://github.com/nvim-mini/mini.notify/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -10265,12 +10265,12 @@ final: prev: {
mini-nvim = buildVimPlugin {
pname = "mini.nvim";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.nvim";
- rev = "ecb05c524a99490c95a8862eb5cb09b1e629ed42";
- hash = "sha256-n5xBMzebGmiIsL26jTKy+YfccRQ1iwvvMAnqc7bxFwo=";
+ tag = "v0.18.0";
+ hash = "sha256-kCcyl4KUEY51UeGYmvuLD1hswWbwKhHGUt/0XLbPuUw=";
};
meta.homepage = "https://github.com/nvim-mini/mini.nvim/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -10279,11 +10279,11 @@ final: prev: {
mini-operators = buildVimPlugin {
pname = "mini.operators";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.operators";
- rev = "59c7f7362461a5db830a5752b22ce9f5cd25a966";
+ tag = "v0.18.0";
hash = "sha256-9RVfrlRd8THUJb8nJKqTbUPQKPwN8xyKzqZvr0oGQk0=";
};
meta.homepage = "https://github.com/nvim-mini/mini.operators/";
@@ -10293,11 +10293,11 @@ final: prev: {
mini-pairs = buildVimPlugin {
pname = "mini.pairs";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.pairs";
- rev = "4a014143fcb4e9df26198ccb3ecff3b9e77a048c";
+ tag = "v0.18.0";
hash = "sha256-35ewaDXW5RoQUHns0hVXMw6OTf/BTvKXLd1u/warDSE=";
};
meta.homepage = "https://github.com/nvim-mini/mini.pairs/";
@@ -10307,11 +10307,11 @@ final: prev: {
mini-pick = buildVimPlugin {
pname = "mini.pick";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.pick";
- rev = "8c1f75f8ddd8c9f75d07ed2ab5718d2c3cb65a66";
+ tag = "v0.18.0";
hash = "sha256-ebjHOQpHWsOdAIdJjimCJqXOmKCZnLobLOF8JroRRxk=";
};
meta.homepage = "https://github.com/nvim-mini/mini.pick/";
@@ -10321,11 +10321,11 @@ final: prev: {
mini-sessions = buildVimPlugin {
pname = "mini.sessions";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.sessions";
- rev = "7cb2945ccc11323b7ca19796eb42618493e1dc12";
+ tag = "v0.18.0";
hash = "sha256-hXdpKozw9ZFkrIe/wGxEJR8j02EAPnB5txq+NtrjHgI=";
};
meta.homepage = "https://github.com/nvim-mini/mini.sessions/";
@@ -10335,11 +10335,11 @@ final: prev: {
mini-snippets = buildVimPlugin {
pname = "mini.snippets";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.snippets";
- rev = "cf5607c66571d130663fd20761d7cbebdbbf713d";
+ tag = "v0.18.0";
hash = "sha256-AoSGqdCBdcCwZdwjhgSU3ACvE40FlrZARN/Lp1aZg54=";
};
meta.homepage = "https://github.com/nvim-mini/mini.snippets/";
@@ -10349,11 +10349,11 @@ final: prev: {
mini-splitjoin = buildVimPlugin {
pname = "mini.splitjoin";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.splitjoin";
- rev = "4a0e6f5ea83148f6884eed03f287f94c3f22915d";
+ tag = "v0.18.0";
hash = "sha256-/3S6D+kuSXgmf3dlCRcABnFpNY6eaFUbEDxGHduh1Es=";
};
meta.homepage = "https://github.com/nvim-mini/mini.splitjoin/";
@@ -10363,11 +10363,11 @@ final: prev: {
mini-starter = buildVimPlugin {
pname = "mini.starter";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.starter";
- rev = "0575c96206d63fd98d7f786df78dc225bf847d95";
+ tag = "v0.18.0";
hash = "sha256-4oaQrsp5f2NqxiiMEzHel0U/onctfnbCBKVTJqhQUPM=";
};
meta.homepage = "https://github.com/nvim-mini/mini.starter/";
@@ -10377,11 +10377,11 @@ final: prev: {
mini-statusline = buildVimPlugin {
pname = "mini.statusline";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.statusline";
- rev = "b5547f44560dae3ccd81f914256fa6f705837022";
+ tag = "v0.18.0";
hash = "sha256-CVebe3F7o7o+qXiEQkngfvmgtGF7dt1u7ALh1bgedzw=";
};
meta.homepage = "https://github.com/nvim-mini/mini.statusline/";
@@ -10391,11 +10391,11 @@ final: prev: {
mini-surround = buildVimPlugin {
pname = "mini.surround";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.surround";
- rev = "580e4cb98c5900d9fe743865fb5a5b2178b4ab18";
+ tag = "v0.18.0";
hash = "sha256-ILKwZ1+Dh4HH5DNnNwqH7xnDyCIEnxPRjLDCwqWOeXY=";
};
meta.homepage = "https://github.com/nvim-mini/mini.surround/";
@@ -10405,11 +10405,11 @@ final: prev: {
mini-tabline = buildVimPlugin {
pname = "mini.tabline";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.tabline";
- rev = "7e8584a06b86902c64227e4abd0c39ae74061101";
+ tag = "v0.18.0";
hash = "sha256-6vLYDvQWbI6xILsdedJCU7G129TzcMJdwC0xB50Gw8Y=";
};
meta.homepage = "https://github.com/nvim-mini/mini.tabline/";
@@ -10419,11 +10419,11 @@ final: prev: {
mini-trailspace = buildVimPlugin {
pname = "mini.trailspace";
- version = "0.17.0-unstable-2026-05-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.trailspace";
- rev = "22653218f1aedc9bf306c8b4e8ec2c8a575f6fae";
+ tag = "v0.18.0";
hash = "sha256-7qPgRedHWA3IQhshOGjENDBztJA+Q/j+ASpLdf9BQwM=";
};
meta.homepage = "https://github.com/nvim-mini/mini.trailspace/";
@@ -10433,11 +10433,11 @@ final: prev: {
mini-visits = buildVimPlugin {
pname = "mini.visits";
- version = "0.17.0-unstable-2026-06-19";
+ version = "0.18.0";
src = fetchFromGitHub {
owner = "nvim-mini";
repo = "mini.visits";
- rev = "848858d4141f1cc6f98de79212a63270b09191a1";
+ tag = "v0.18.0";
hash = "sha256-rDVKgX2T85i8b29QI8549RaHoEWhUQmxi++hwDR9mZk=";
};
meta.homepage = "https://github.com/nvim-mini/mini.visits/";
@@ -11035,12 +11035,12 @@ final: prev: {
neoconf-nvim = buildVimPlugin {
pname = "neoconf.nvim";
- version = "1.4.0-unstable-2026-06-19";
+ version = "1.4.0-unstable-2026-06-26";
src = fetchFromGitHub {
owner = "folke";
repo = "neoconf.nvim";
- rev = "5eeb19f80e04d86e76abefb3204bd1aab009a9b2";
- hash = "sha256-ExcjOnKkfMIjxyeea5jnEcZEybe8uxopIgM75UXItnY=";
+ rev = "21fe7bede81cabd3281825c445a0b76b1279e840";
+ hash = "sha256-odhIicmF3HEUyWCNXV+0u4MhU3sSoFAw6LbfMZqYJVs=";
};
meta.homepage = "https://github.com/folke/neoconf.nvim/";
meta.license = getLicenseFromSpdxId "Apache-2.0";
@@ -11119,12 +11119,12 @@ final: prev: {
neogit = buildVimPlugin {
pname = "neogit";
- version = "3.0.0-unstable-2026-06-19";
+ version = "3.0.0-unstable-2026-06-23";
src = fetchFromGitHub {
owner = "NeogitOrg";
repo = "neogit";
- rev = "828dd073e6ad180fdb5c1603c7ad7f68a384c40b";
- hash = "sha256-oai8d/Zin+7jsrde4wGN2x/2vI3dH/Hs4raV/h2lrIA=";
+ rev = "43ea1a0854052e583f647e0b35879f0158a70a78";
+ hash = "sha256-WTnQnnOP98ZGnVRoQyhai0Bot4kQi6tGjWE7t4gSwdc=";
};
meta.homepage = "https://github.com/NeogitOrg/neogit/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -11682,12 +11682,12 @@ final: prev: {
neotest-vitest = buildVimPlugin {
pname = "neotest-vitest";
- version = "0.2.0-unstable-2026-05-28";
+ version = "0.2.0-unstable-2026-06-29";
src = fetchFromGitHub {
owner = "marilari88";
repo = "neotest-vitest";
- rev = "2f19d215d7d4d7f121826f99f6f35a81e2c18a6f";
- hash = "sha256-QvtaCUno7/8pU32f5YLWrlYAzjDhBTmCtgxweIUFAow=";
+ rev = "ab5a73d6ec9d33e807d6c67ce5169c4ca4a5d7f3";
+ hash = "sha256-daeDCN58hMAesXEBhc4gbN2ISGQ0orIUNhL2ApB3E+s=";
};
meta.homepage = "https://github.com/marilari88/neotest-vitest/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -12493,11 +12493,11 @@ final: prev: {
nvim-dap = buildVimPlugin {
pname = "nvim-dap";
- version = "0.10.0-unstable-2026-05-20";
+ version = "0.10.0-unstable-2026-06-19";
src = fetchgit {
url = "https://codeberg.org/mfussenegger/nvim-dap/";
- rev = "531771530d4f82ad2d21e436e3cc052d68d7aebb";
- hash = "sha256-pgD51NWFyjK1FrXZ8MFFIM9DX2OBxL7cd7JlST2Twvc=";
+ rev = "9e848e09a697ee95302a3ef2dd43fd6eb709e570";
+ hash = "sha256-IHm3CwO7qUTtOZqhljDjSzz4WbaAJ4kPY384MyZZ9ac=";
};
meta.homepage = "https://codeberg.org/mfussenegger/nvim-dap/";
meta.license = unfree;
@@ -12700,12 +12700,12 @@ final: prev: {
nvim-early-retirement = buildVimPlugin {
pname = "nvim-early-retirement";
- version = "0-unstable-2026-04-06";
+ version = "0-unstable-2026-06-22";
src = fetchFromGitHub {
owner = "chrisgrieser";
repo = "nvim-early-retirement";
- rev = "3b05315a61c8f01bb893249f9e044fc359122c9d";
- hash = "sha256-vc2Q2iiyx6WcEr4RYtvr4s5yYSYKst+DpNG1WNKLQCI=";
+ rev = "dee05ab8d105d091faa4aad5659348f0e9734628";
+ hash = "sha256-FteHivPNYlBbu6xyVFTNMnxNfHe2wN3qb/xBwT4T9c4=";
};
meta.homepage = "https://github.com/chrisgrieser/nvim-early-retirement/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -12770,12 +12770,12 @@ final: prev: {
nvim-genghis = buildVimPlugin {
pname = "nvim-genghis";
- version = "0-unstable-2026-06-05";
+ version = "0-unstable-2026-06-22";
src = fetchFromGitHub {
owner = "chrisgrieser";
repo = "nvim-genghis";
- rev = "e6fd1f42736b15e63c0c703457c5ca162228a2f3";
- hash = "sha256-UG3yDZJ/j4Z+fDm5/qrVuUUA8rU4oc4chqFJK25jjYw=";
+ rev = "12100e3fe7fa863f60b5b81a3587c8c9d5a5b2ff";
+ hash = "sha256-z4VSvOWY85W6A9jiZkAgY/ezvxSXKBJdgjGXC0Thud0=";
};
meta.homepage = "https://github.com/chrisgrieser/nvim-genghis/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -12854,12 +12854,12 @@ final: prev: {
nvim-impairative = buildVimPlugin {
pname = "nvim-impairative";
- version = "0.6.0";
+ version = "0.6.1";
src = fetchFromGitHub {
owner = "idanarye";
repo = "nvim-impairative";
- tag = "v0.6.0";
- hash = "sha256-xl33sp/+wjH8Y8Uoa7j7kaQIgcMXUWYlGfCDKkZQNLk=";
+ tag = "v0.6.1";
+ hash = "sha256-rQGtfLCCICUtkhTp4/r0KLCouxOtP8XEvWJDWRpVw0I=";
};
meta.homepage = "https://github.com/idanarye/nvim-impairative/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -12992,12 +12992,12 @@ final: prev: {
nvim-justice = buildVimPlugin {
pname = "nvim-justice";
- version = "0-unstable-2026-04-13";
+ version = "0-unstable-2026-06-22";
src = fetchFromGitHub {
owner = "chrisgrieser";
repo = "nvim-justice";
- rev = "a3e0d2d73d1748d1bed45e6b1797fbc73961e53f";
- hash = "sha256-gT+vPt9BWe1AylFqbZsoEXL8cXSpMjRdiY44Cxalwcg=";
+ rev = "11e4deec4c00d07b48d5b5008ab53bba267e71f5";
+ hash = "sha256-VorppQ/Xs4vKzzSX5NXgtR2RQB2JBUjwgzbUbbwtVRQ=";
};
meta.homepage = "https://github.com/chrisgrieser/nvim-justice/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -13076,11 +13076,11 @@ final: prev: {
nvim-lint = buildVimPlugin {
pname = "nvim-lint";
- version = "05-unstable-2026-06-17";
+ version = "05-unstable-2026-06-25";
src = fetchgit {
url = "https://codeberg.org/mfussenegger/nvim-lint/";
- rev = "4b7957daf4b81eb578114bd6fcf20b6f5a2b59e8";
- hash = "sha256-5df927RmgLzj2oOsQRrv7KRMOpTD59R4g22p94/6k7g=";
+ rev = "a219b2c9e5b4765e5c845aba119dad55806fcaf1";
+ hash = "sha256-pABhzTRkcxAT/ELeltz47eCAKCnzdoCtc2QRu3wm0xU=";
};
meta.homepage = "https://codeberg.org/mfussenegger/nvim-lint/";
meta.license = unfree;
@@ -13327,12 +13327,12 @@ final: prev: {
nvim-origami = buildVimPlugin {
pname = "nvim-origami";
- version = "1.9-unstable-2026-05-27";
+ version = "1.9-unstable-2026-06-22";
src = fetchFromGitHub {
owner = "chrisgrieser";
repo = "nvim-origami";
- rev = "47be2209d09755c0202da1e22a8d67af8f5ae178";
- hash = "sha256-Pg6pwiB8mEQfMDv5aLZKx06EEZuaVN1xtuVBOpd4iWo=";
+ rev = "f15aad8c58ef24b98ffe241ff52f9dfd74cff591";
+ hash = "sha256-XDLiO1PxxdKzC2YPhMKwM6NK76SWe2933CXMjH9eHZs=";
};
meta.homepage = "https://github.com/chrisgrieser/nvim-origami/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -13453,12 +13453,12 @@ final: prev: {
nvim-rip-substitute = buildVimPlugin {
pname = "nvim-rip-substitute";
- version = "0-unstable-2026-05-19";
+ version = "0-unstable-2026-06-22";
src = fetchFromGitHub {
owner = "chrisgrieser";
repo = "nvim-rip-substitute";
- rev = "c65592d88f0fa00396e260da99d9e419f4891e3b";
- hash = "sha256-sKfxZxB2b2jUNEc/EvCd81s9FMZqBdiMZXJJKkOUyz4=";
+ rev = "5aafa8e31971d2fb1dbb207f1ecd3b12b1ba0f88";
+ hash = "sha256-U1/whBLVdHiS+ykAdOVdY+bIVcP/+kDE/rN2uM/D/vY=";
};
meta.homepage = "https://github.com/chrisgrieser/nvim-rip-substitute/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -13467,12 +13467,12 @@ final: prev: {
nvim-scissors = buildVimPlugin {
pname = "nvim-scissors";
- version = "0-unstable-2026-04-13";
+ version = "0-unstable-2026-06-22";
src = fetchFromGitHub {
owner = "chrisgrieser";
repo = "nvim-scissors";
- rev = "9cc1ba06afa8b23b0d30cadc02c40940df1d701e";
- hash = "sha256-uhNlLndXpLiU0qYvnnCepqqCp5eA+GRxq/aWJcRts+U=";
+ rev = "4abd0dc9510599d90d871d112f01924ef7171705";
+ hash = "sha256-JM9+rn64kWqvKFac8qHmCPEecRY+dj9AC7BSarMYNHs=";
};
meta.homepage = "https://github.com/chrisgrieser/nvim-scissors/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -13537,12 +13537,12 @@ final: prev: {
nvim-sioyek-highlights = buildVimPlugin {
pname = "nvim-sioyek-highlights";
- version = "0-unstable-2026-05-20";
+ version = "0-unstable-2026-06-27";
src = fetchFromGitHub {
owner = "jbuck95";
repo = "nvim-sioyek-highlights";
- rev = "753f5d309d08229325134e5992cd032d06f72ee8";
- hash = "sha256-JiHBw/3LqYW4oxT+ObvU3IsDU1Q5JaKr4TDBZautNV0=";
+ rev = "ed275e3766d9055503b4ad1aebb9fde75e81b80a";
+ hash = "sha256-RRVUG6OMjhQy2mw8LjFUSkoZd2u1FzdJlbZiXq/vwMU=";
};
meta.homepage = "https://github.com/jbuck95/nvim-sioyek-highlights/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -13607,12 +13607,12 @@ final: prev: {
nvim-spider = buildVimPlugin {
pname = "nvim-spider";
- version = "0-unstable-2026-04-13";
+ version = "0-unstable-2026-06-22";
src = fetchFromGitHub {
owner = "chrisgrieser";
repo = "nvim-spider";
- rev = "4fdd56a4f45bca13a607632e15a6f9f8d1b1f99e";
- hash = "sha256-2ZJV23CZ8B3x4DPHGuWnq84Jp3gLvyCARuyqtrZEOos=";
+ rev = "7f021426d4a615ea8f11cabed434b1f20376abae";
+ hash = "sha256-r9b0dB2lzSUDWiPiclnjk7wOrLscTkd3UxFo0ZCBcek=";
};
meta.homepage = "https://github.com/chrisgrieser/nvim-spider/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -13677,12 +13677,12 @@ final: prev: {
nvim-tinygit = buildVimPlugin {
pname = "nvim-tinygit";
- version = "1.0-unstable-2026-04-20";
+ version = "1.0-unstable-2026-06-22";
src = fetchFromGitHub {
owner = "chrisgrieser";
repo = "nvim-tinygit";
- rev = "f12990601dfa63c623049b470dc306ca905064c8";
- hash = "sha256-NNdwBJjVlCwR3VzN7JRMhRRNHENRO9SXNnUUr4zZ8Eg=";
+ rev = "7cc03bfd73863fc24e1a07e9465d3dba32336b74";
+ hash = "sha256-2P8C0A2zPxlyGnex0yiKlpXUS1RpXHKZGuRDToieqXM=";
};
meta.homepage = "https://github.com/chrisgrieser/nvim-tinygit/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -13691,12 +13691,12 @@ final: prev: {
nvim-tree-lua = buildVimPlugin {
pname = "nvim-tree.lua";
- version = "1.17.0-unstable-2026-06-15";
+ version = "1.17.0-unstable-2026-06-20";
src = fetchFromGitHub {
owner = "nvim-tree";
repo = "nvim-tree.lua";
- rev = "fb343438d49fba8c35ecc4829d66fca7a1f0ed3d";
- hash = "sha256-JhLDjrRqY/vWN+R6suVvMZLkZQkLq5IpSFwPojkYYqg=";
+ rev = "8e8be709c9a93e1ebefde7964884a8b564bfd3e0";
+ hash = "sha256-GAxve+xgXntwJ4B/WdNUiDwE3kgMRz8fKfOlJYp1Zg8=";
};
meta.homepage = "https://github.com/nvim-tree/nvim-tree.lua/";
meta.license = unfree;
@@ -13943,12 +13943,12 @@ final: prev: {
nvim-various-textobjs = buildVimPlugin {
pname = "nvim-various-textobjs";
- version = "0-unstable-2026-04-13";
+ version = "0-unstable-2026-06-22";
src = fetchFromGitHub {
owner = "chrisgrieser";
repo = "nvim-various-textobjs";
- rev = "ad78e9d925c95d675b32dd7ba6d253f96ce063fe";
- hash = "sha256-FZKW7/9Y6MRxEbd00HBt9eGpJWbAP8GNM6p8M9s/3ts=";
+ rev = "fed132a88454e52c9691f4751090031944af4a7e";
+ hash = "sha256-eYHMSng5gnnD6X71GlfUWbeX74z5CcXr35JLJZeiOCg=";
};
meta.homepage = "https://github.com/chrisgrieser/nvim-various-textobjs/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -14111,12 +14111,12 @@ final: prev: {
obsidian-nvim = buildVimPlugin {
pname = "obsidian.nvim";
- version = "3.16.4";
+ version = "3.16.5";
src = fetchFromGitHub {
owner = "obsidian-nvim";
repo = "obsidian.nvim";
- tag = "v3.16.4";
- hash = "sha256-9Su5t8cJAHlXV+EE4GLa1+BhezfHZIZgl2P6kBrkX8E=";
+ tag = "v3.16.5";
+ hash = "sha256-jSaAT7DCGsgzNJCd+ey3My2zqQ7kDcRm5ALDTOJKmJM=";
};
meta.homepage = "https://github.com/obsidian-nvim/obsidian.nvim/";
meta.license = getLicenseFromSpdxId "Apache-2.0";
@@ -14419,12 +14419,12 @@ final: prev: {
opencode-nvim = buildVimPlugin {
pname = "opencode.nvim";
- version = "0.13.2";
+ version = "0.13.3";
src = fetchFromGitHub {
owner = "nickjvandyke";
repo = "opencode.nvim";
- tag = "v0.13.2";
- hash = "sha256-2+i0pA2Xn8OalHQ4yEnwLUnklT10r8rgE5qkc8k9754=";
+ tag = "v0.13.3";
+ hash = "sha256-9pg1IRnDwQbPDSBZj9mLWW6jcQsIfubx+t3gb3I/JrU=";
};
meta.homepage = "https://github.com/nickjvandyke/opencode.nvim/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -14588,12 +14588,12 @@ final: prev: {
palenight-vim = buildVimPlugin {
pname = "palenight.vim";
- version = "0-unstable-2023-04-27";
+ version = "0-unstable-2026-06-20";
src = fetchFromGitHub {
owner = "drewtempelmeyer";
repo = "palenight.vim";
- rev = "5552a6349bcd927df9f17db34f017b77b963e503";
- hash = "sha256-3zgTux85/9lttmIik+IVUJhXbwJCo4SRJDAD8g6tv1U=";
+ rev = "9e9b102c54b830b72f51917b6b86c3b3b02dcea2";
+ hash = "sha256-WRe+PZdfbo0DyOwrtPCh1pi6NZoaTGx8uiEzN8mOmEw=";
};
meta.homepage = "https://github.com/drewtempelmeyer/palenight.vim/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -14868,12 +14868,12 @@ final: prev: {
pi-nvim = buildVimPlugin {
pname = "pi.nvim";
- version = "0-unstable-2026-05-18";
+ version = "0-unstable-2026-06-21";
src = fetchFromGitHub {
owner = "pablopunk";
repo = "pi.nvim";
- rev = "4ba6db0dd30406995a2e46e4f1ae39377e66e733";
- hash = "sha256-z1gN1TKQKrM8dMh8rQMaAtGgi4ELV21WgswJBVyXulE=";
+ rev = "4458f7cef8923ba396728e7218d66002fa07426e";
+ hash = "sha256-uG3QFdpziSkesPdUx8rllI9hDg14NeZQtSU22CaGqhQ=";
};
meta.homepage = "https://github.com/pablopunk/pi.nvim/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -15989,12 +15989,12 @@ final: prev: {
searchbox-nvim = buildVimPlugin {
pname = "searchbox.nvim";
- version = "0-unstable-2026-06-19";
+ version = "0-unstable-2026-06-20";
src = fetchFromGitHub {
owner = "VonHeikemen";
repo = "searchbox.nvim";
- rev = "c43e52a4ba50981e77334d676173e0e52dc99b28";
- hash = "sha256-Yygm/AsNrAlvwPb6SQKUdxVTNLVYDh7FJTitAfsYu7E=";
+ rev = "f86a9f7943ffa4dd5829ef0fc7c55fa2f95729ba";
+ hash = "sha256-aLyflmkPj9aaqDeShyelD9NYwDl4V2MNY7W/KP47P7M=";
};
meta.homepage = "https://github.com/VonHeikemen/searchbox.nvim/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -16200,12 +16200,12 @@ final: prev: {
smart-splits-nvim = buildVimPlugin {
pname = "smart-splits.nvim";
- version = "2.1.0-unstable-2026-06-19";
+ version = "2.1.0-unstable-2026-06-26";
src = fetchFromGitHub {
owner = "mrjones2014";
repo = "smart-splits.nvim";
- rev = "c02d70257e5d6065d4154acd596ec8054a725724";
- hash = "sha256-Pv1pVWOk7lKX3R71qFbR6Hk44CjdMdQ1vQPrYegSo5w=";
+ rev = "0e5bc00d2a32e6c782cd279cb96ab6c7ae49cd94";
+ hash = "sha256-e3gTt/d6mpTNdQcsBUNN/B4WzDFp3Qj4//vTRaTgTB0=";
};
meta.homepage = "https://github.com/mrjones2014/smart-splits.nvim/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -17899,12 +17899,12 @@ final: prev: {
tinted-nvim = buildVimPlugin {
pname = "tinted-nvim";
- version = "1.0.0-unstable-2026-06-18";
+ version = "1.0.0-unstable-2026-06-27";
src = fetchFromGitHub {
owner = "tinted-theming";
repo = "tinted-nvim";
- rev = "2ce11a2b73c61054ea47a9e5b8a6c537f517ab9f";
- hash = "sha256-fLOPbvsY2yvaCIshcLlq+6qMbnd0hXtZkUnXdQcp/Lg=";
+ rev = "f72f46057151de65ece4c280f67db84c63d64c76";
+ hash = "sha256-U9SSaB68n/rDaeyQfRk0SnEwKW7MKG9gUaFG0ivt70A=";
};
meta.homepage = "https://github.com/tinted-theming/tinted-nvim/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -17913,12 +17913,12 @@ final: prev: {
tinted-vim = buildVimPlugin {
pname = "tinted-vim";
- version = "01-unstable-2026-06-18";
+ version = "01-unstable-2026-06-21";
src = fetchFromGitHub {
owner = "tinted-theming";
repo = "tinted-vim";
- rev = "e89c8ca390bbbb21f875b457b1f2e6d5d1950ca2";
- hash = "sha256-T4rXBjwhvYhoQvqdXbDQdojgf/Jf9sIo3WYP+hQtKQY=";
+ rev = "65a386074124f211536dc04f7427cbcbd80ee183";
+ hash = "sha256-hRgKzVnFtpAsI4dxmOTdSdi02+VEvTydbdTU+HqyhzI=";
};
meta.homepage = "https://github.com/tinted-theming/tinted-vim/";
meta.license = unfree;
@@ -17927,12 +17927,12 @@ final: prev: {
tiny-cmdline-nvim = buildVimPlugin {
pname = "tiny-cmdline.nvim";
- version = "0-unstable-2026-05-31";
+ version = "0-unstable-2026-06-23";
src = fetchFromGitHub {
owner = "rachartier";
repo = "tiny-cmdline.nvim";
- rev = "b1db8607a78f0c23b3bae08e079b1b7f147619d7";
- hash = "sha256-O2j7KGqlFGl1oHW/0yRmDDTGIHn4hnpShgHcX++KWz4=";
+ rev = "e247d9ee4c980734f8f8bf616d31e0ab7c27485d";
+ hash = "sha256-DEfoqGFoGdybgZyO+Jqxz4gYkrgoek4cQYulLEsvnU8=";
};
meta.homepage = "https://github.com/rachartier/tiny-cmdline.nvim/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -18209,12 +18209,12 @@ final: prev: {
treewalker-nvim = buildVimPlugin {
pname = "treewalker.nvim";
- version = "0-unstable-2026-06-04";
+ version = "0-unstable-2026-06-23";
src = fetchFromGitHub {
owner = "aaronik";
repo = "treewalker.nvim";
- rev = "e1779657d41df2fdf8fd825712051f90e7c9c836";
- hash = "sha256-Byg5O1AndhqoBpv8VyGrGaiNsq4mGy57yoV3lFJDH2c=";
+ rev = "cfe3c69396233ddbbd6b581b00868985f78ffd9e";
+ hash = "sha256-8ZkgoFcFym7gXnB/k9yY94wKEkgNSlUNROIsUxTqr1s=";
};
meta.homepage = "https://github.com/aaronik/treewalker.nvim/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -18308,12 +18308,12 @@ final: prev: {
ts-autotag-nvim = buildVimPlugin {
pname = "ts-autotag.nvim";
- version = "0-unstable-2026-06-10";
+ version = "0-unstable-2026-06-25";
src = fetchFromGitHub {
owner = "tronikelis";
repo = "ts-autotag.nvim";
- rev = "b1d0dd4fe5e63e9a744595bdfd41b74c3dea2e88";
- hash = "sha256-lGDnNpG5kcKOI2AlVovuuTHx+AntKagw9c9e1Eg4T2M=";
+ rev = "6178353d9003e91eb053d69cf9a4d72e28137daa";
+ hash = "sha256-JM6r91+3ehAk24kDt0O9iZhTPfXYt+zx5+86Ihh+fOU=";
};
meta.homepage = "https://github.com/tronikelis/ts-autotag.nvim/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -18575,12 +18575,12 @@ final: prev: {
unicode-vim = buildVimPlugin {
pname = "unicode.vim";
- version = "21-unstable-2025-09-22";
+ version = "21-unstable-2026-06-24";
src = fetchFromGitHub {
owner = "chrisbra";
repo = "unicode.vim";
- rev = "902cd2b0a41a38528d080f8dd7a16ec5a865ebdd";
- hash = "sha256-Cv1ETqnqbVQgKrXTMDA1JgcqQSIzK6S7i9pZHDNI4BU=";
+ rev = "762993f8a8070c3126323a076510cf10de2ff3ce";
+ hash = "sha256-Pc5tGq6DoiZUK98PbJrI7AKFjw6koGaPgiw2BbCb3cs=";
};
meta.homepage = "https://github.com/chrisbra/unicode.vim/";
meta.license = unfree;
@@ -19443,12 +19443,12 @@ final: prev: {
vim-autoformat = buildVimPlugin {
pname = "vim-autoformat";
- version = "0-unstable-2026-01-15";
+ version = "0-unstable-2026-06-25";
src = fetchFromGitHub {
owner = "vim-autoformat";
repo = "vim-autoformat";
- rev = "34c5309ab11d175c73d8ab7195a4d831b9f502c4";
- hash = "sha256-LQVXUmrNOvJr78ULU9/8SRtHec6p9iNUT1YBDuxFYVQ=";
+ rev = "38161c4e875cf198789f32e0f773039696a431f0";
+ hash = "sha256-V1tun/l0bVgsT0jqdRF3Iqr5CtllQyX+gJY27aDf5xw=";
};
meta.homepage = "https://github.com/vim-autoformat/vim-autoformat/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -20283,12 +20283,12 @@ final: prev: {
vim-dirvish = buildVimPlugin {
pname = "vim-dirvish";
- version = "1.0-unstable-2026-06-02";
+ version = "1.0-unstable-2026-06-22";
src = fetchFromGitHub {
owner = "justinmk";
repo = "vim-dirvish";
- rev = "ad478b4ac86484edc525bfc5379f261204dfbf4c";
- hash = "sha256-D76E8Wnl3x9RMUkpG7/izFLSTtuhp0/TMX/ZWP4TvD4=";
+ rev = "09c60f20ddc248fa2955c58b3183d44e1885f151";
+ hash = "sha256-j/LFQjpXTuH13KbbrSGjZ8uv7FYqZpR7e9g5vgFGD7g=";
};
meta.homepage = "https://github.com/justinmk/vim-dirvish/";
meta.license = unfree;
@@ -21123,11 +21123,11 @@ final: prev: {
vim-graphql = buildVimPlugin {
pname = "vim-graphql";
- version = "1.6-unstable-2026-04-14";
+ version = "1.6-unstable-2026-06-20";
src = fetchFromGitHub {
owner = "jparise";
repo = "vim-graphql";
- rev = "640d32063cd2526e2395db1b67fcd733524099e2";
+ rev = "d6c0991b70c0d6f4b3fa3283a2838d2ce47635d0";
hash = "sha256-hN+YE6PQnApdK5dKERJBVpKepicYIgsfY5mpZiiOcfE=";
};
meta.homepage = "https://github.com/jparise/vim-graphql/";
@@ -22315,12 +22315,12 @@ final: prev: {
vim-matchup = buildVimPlugin {
pname = "vim-matchup";
- version = "0.8.0-unstable-2026-05-19";
+ version = "0.8.0-unstable-2026-06-27";
src = fetchFromGitHub {
owner = "andymass";
repo = "vim-matchup";
- rev = "a2d618496223386844acb5a6763cfc3cc1357af1";
- hash = "sha256-6v4kWrOxGvrtSkL7itcxXgOarKWmb0y++8mLnyc1XRI=";
+ rev = "055881643e1b37038a572c883de7b1969716db77";
+ hash = "sha256-8PmYDrvUzUdg/ErnIGPdK8eZH7EvZezfpsjAjy/sAbw=";
};
meta.homepage = "https://github.com/andymass/vim-matchup/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -25226,12 +25226,12 @@ final: prev: {
vimtex = buildVimPlugin {
pname = "vimtex";
- version = "2.17-unstable-2026-06-13";
+ version = "2.17-unstable-2026-06-28";
src = fetchFromGitHub {
owner = "lervag";
repo = "vimtex";
- rev = "fedb7ffc1bebf254cc74e7419c3a5930b6719065";
- hash = "sha256-h1GZnhQrm8c+e/vbecBwWbFj4QOX3TbagYp3Ea3tk/Q=";
+ rev = "5e6a06f5cec5ede3dc6ba045ef6eda13b6dccb1f";
+ hash = "sha256-VFFsnjboIU/rvIDukClePaY2zsqgO+M1YkGTlq/Y5eU=";
};
meta.homepage = "https://github.com/lervag/vimtex/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -25871,12 +25871,12 @@ final: prev: {
yazi-nvim = buildVimPlugin {
pname = "yazi.nvim";
- version = "13.1.7";
+ version = "13.1.8";
src = fetchFromGitHub {
owner = "mikavilpas";
repo = "yazi.nvim";
- tag = "v13.1.7";
- hash = "sha256-hPmdkCz/XTujUllBPfK7kjCrJA2rQQOBINczaGF3DKM=";
+ tag = "v13.1.8";
+ hash = "sha256-fRKPfXAWAXlf9N5Z6DhYPCN8ygm3vRxvTp6HyYi4Uhw=";
};
meta.homepage = "https://github.com/mikavilpas/yazi.nvim/";
meta.license = getLicenseFromSpdxId "MIT";
@@ -26052,12 +26052,12 @@ final: prev: {
zk-nvim = buildVimPlugin {
pname = "zk-nvim";
- version = "0.4.8";
+ version = "0.4.9";
src = fetchFromGitHub {
owner = "zk-org";
repo = "zk-nvim";
- tag = "v0.4.8";
- hash = "sha256-cq76bVNyoK1Oi0d61Wa3B3iFvLzboozZaZlWBTJik5U=";
+ tag = "v0.4.9";
+ hash = "sha256-82MgzF6GCaOupMJ2+m6fHJmHUcTq5V/IdTFoIfXqx1I=";
};
meta.homepage = "https://github.com/zk-org/zk-nvim/";
meta.license = getLicenseFromSpdxId "GPL-3.0-only";
@@ -26080,12 +26080,12 @@ final: prev: {
zotcite = buildVimPlugin {
pname = "zotcite";
- version = "0.7-unstable-2026-05-18";
+ version = "0.7-unstable-2026-06-27";
src = fetchFromGitHub {
owner = "jalvesaq";
repo = "zotcite";
- rev = "49e5fb6012077d2fe60681da3d8ff71e4c2a1c12";
- hash = "sha256-G/JnH9zF9m06Al8lzda6/P4K3S7iChaIzvZjKGLghAc=";
+ rev = "a58ac3cf19c2139b4a08d00c042746a81a884825";
+ hash = "sha256-SyPg375RBK1uKJGBe+ckMoAA0ozG/LyvkXS4vuicXQk=";
};
meta.homepage = "https://github.com/jalvesaq/zotcite/";
meta.license = getLicenseFromSpdxId "GPL-3.0-only";
diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix
index 048136405dff..908c0606ca88 100644
--- a/pkgs/applications/editors/vim/plugins/overrides.nix
+++ b/pkgs/applications/editors/vim/plugins/overrides.nix
@@ -1551,6 +1551,18 @@ assertNoAdditions {
];
};
+ fyler-nvim = super.fyler-nvim.overrideAttrs {
+ nvimSkipModules = [
+ # Requires setup
+ "fyler.extensions.trash"
+ "fyler.finder"
+ "fyler.integrations.icon"
+ "fyler.integrations.window_picker"
+ "fyler.schemes.file"
+ "fyler.state"
+ ];
+ };
+
fzf-checkout-vim = super.fzf-checkout-vim.overrideAttrs {
# The plugin has a makefile which tries to run tests in a docker container.
# This prevents it.
diff --git a/pkgs/by-name/au/autosuspend/package.nix b/pkgs/by-name/au/autosuspend/package.nix
index fe75c939e0d2..3ba6de8a854c 100644
--- a/pkgs/by-name/au/autosuspend/package.nix
+++ b/pkgs/by-name/au/autosuspend/package.nix
@@ -51,10 +51,10 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
icalendar
jsonpath-ng
lxml
- mpd2
psutil
pygobject3
python-dateutil
+ python-mpd2
requests
requests-file
tzdata
diff --git a/pkgs/by-name/be/beeper/package.nix b/pkgs/by-name/be/beeper/package.nix
index 362e9db0fd59..043748aee6b2 100644
--- a/pkgs/by-name/be/beeper/package.nix
+++ b/pkgs/by-name/be/beeper/package.nix
@@ -10,10 +10,10 @@
}:
let
pname = "beeper";
- version = "4.2.936";
+ version = "4.2.948";
src = fetchurl {
url = "https://beeper-desktop.download.beeper.com/builds/Beeper-${version}-x86_64.AppImage";
- hash = "sha256-/9IHHE4qeygvPHFRz3EoejkQml6WdebdeUR0Y6afP5I=";
+ hash = "sha256-MvfQSCV8b5aOeOSlTnRlOupzg+wmHhG0hGWznwCx0Yc=";
};
appimageContents = appimageTools.extract {
inherit pname version src;
diff --git a/pkgs/by-name/cl/cliairplay/package.nix b/pkgs/by-name/cl/cliairplay/package.nix
index 389e973e6cb6..c357c16d8284 100644
--- a/pkgs/by-name/cl/cliairplay/package.nix
+++ b/pkgs/by-name/cl/cliairplay/package.nix
@@ -25,16 +25,16 @@
stdenv.mkDerivation {
pname = "cliairplay";
# see the beginning of configure.ac for the upstream version number
- version = "1.1-unstable-2026-03-16";
+ version = "1.5-unstable-2026-05-03";
src = fetchFromGitHub {
owner = "music-assistant";
repo = "cliairplay";
# we try to closely match the commit used in the last music-assistant release from
# https://github.com/music-assistant/server/tree/stable/music_assistant/providers/airplay/bin
- rev = "991c65acc2afa17ffe32e279dbc585b0b7f530f8";
+ rev = "6aeceb49e4e37d044f09be9369b082fc26bcfa19";
fetchSubmodules = true;
- hash = "sha256-m1O4l6gFEGNAyskYcRHcA15cubZnNgkaYjdVThRRX7w=";
+ hash = "sha256-Z2LzRhtQpuXPK6KibnxCqP0V6CulzkwNVHX1V7AFnDA=";
};
nativeBuildInputs = [
diff --git a/pkgs/by-name/co/cook-cli/package.nix b/pkgs/by-name/co/cook-cli/package.nix
index 45b16aa6fd80..b71119b5aee7 100644
--- a/pkgs/by-name/co/cook-cli/package.nix
+++ b/pkgs/by-name/co/cook-cli/package.nix
@@ -10,16 +10,16 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cook-cli";
- version = "0.32.0";
+ version = "0.32.1";
src = fetchFromGitHub {
owner = "cooklang";
repo = "cookcli";
rev = "v${finalAttrs.version}";
- hash = "sha256-Lft44tBo8l+EhqEHuq6mKBVTjgpewd34SPtloVwkmGc=";
+ hash = "sha256-r6h7IHYvy3/3OS+6aueHj9ONXSYJ1K7gq7pcNTqN8wY=";
};
- cargoHash = "sha256-pSvf3xW5UJWc6Z39w2FI5yoZS8KJpQj04LcTrNFrtGk=";
+ cargoHash = "sha256-agUqBXhLsjS1nVRwzuiUZomhcYdiXBLU1xX9xh8zN+c=";
# Build without the self-updating feature
buildNoDefaultFeatures = true;
diff --git a/pkgs/by-name/gr/grafana-loki/package.nix b/pkgs/by-name/gr/grafana-loki/package.nix
index c712c39e49eb..f8cb2576672d 100644
--- a/pkgs/by-name/gr/grafana-loki/package.nix
+++ b/pkgs/by-name/gr/grafana-loki/package.nix
@@ -9,14 +9,14 @@
}:
buildGoModule (finalAttrs: {
- version = "3.7.2";
+ version = "3.7.3";
pname = "grafana-loki";
src = fetchFromGitHub {
owner = "grafana";
repo = "loki";
rev = "v${finalAttrs.version}";
- hash = "sha256-2VM5/SMgjxHraP+7H+AmDor9g4r+xglhqd/cVL7mCgQ=";
+ hash = "sha256-2dqwnM2+9+P/ZIiz5Z9JPN9WicHLRzq9xn6jG1OBqLs=";
};
vendorHash = null;
diff --git a/pkgs/by-name/gr/graphlan/package.nix b/pkgs/by-name/gr/graphlan/package.nix
new file mode 100644
index 000000000000..1a09c13a91ce
--- /dev/null
+++ b/pkgs/by-name/gr/graphlan/package.nix
@@ -0,0 +1,44 @@
+{
+ lib,
+ python3Packages,
+ fetchFromGitHub,
+ nix-update-script,
+}:
+
+python3Packages.buildPythonApplication {
+ pname = "graphlan";
+ version = "0-unstable-2024-08-07";
+ pyproject = true;
+
+ src = fetchFromGitHub {
+ owner = "biobakery";
+ repo = "graphlan";
+ rev = "dc97f4feb0bb0bf3fa210e2699a86c5e476a647e";
+ hash = "sha256-sBVlBu6RSs7dXQbxJrIQHWaDNliurY9UguzNeKj40gY=";
+ };
+
+ patchPhase = ''
+ sed -i 's|biopython==|biopython>=|' setup.py
+ '';
+
+ __structuredAttrs = true;
+ strictDeps = true;
+ build-system = with python3Packages; [ setuptools ];
+ dependencies = with python3Packages; [
+ biopython
+ matplotlib
+ scipy
+ ];
+
+ passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
+
+ meta = {
+ description = "Quality control tool for metagenomic and metatranscriptomic sequencing data";
+ homepage = "https://github.com/biobakery/graphlan";
+ changelog = "https://github.com/biobakery/graphlan/releases";
+ license = lib.licenses.mit;
+ platforms = lib.platforms.all;
+ maintainers = with lib.maintainers; [ pandapip1 ];
+ mainProgram = "graphlan.py";
+ };
+}
diff --git a/pkgs/by-name/hi/high-tide/package.nix b/pkgs/by-name/hi/high-tide/package.nix
index d0a6c34b1026..2d5230fb3a88 100644
--- a/pkgs/by-name/hi/high-tide/package.nix
+++ b/pkgs/by-name/hi/high-tide/package.nix
@@ -60,7 +60,7 @@ python313Packages.buildPythonApplication (finalAttrs: {
pygobject3
tidalapi
requests
- mpd2
+ python-mpd2
pypresence
]);
diff --git a/pkgs/by-name/ko/koito/client.nix b/pkgs/by-name/ko/koito/client.nix
new file mode 100644
index 000000000000..d696189f04a2
--- /dev/null
+++ b/pkgs/by-name/ko/koito/client.nix
@@ -0,0 +1,47 @@
+{
+ src,
+ version,
+ stdenv,
+ yarn-berry_4,
+ nodejs,
+ gzip,
+}:
+let
+ yarn = yarn-berry_4;
+in
+stdenv.mkDerivation (finalAttrs: {
+ pname = "koito-frontend";
+ inherit src version;
+ sourceRoot = "${finalAttrs.src.name}/client";
+
+ missingHashes = ./missing-hashes.json;
+ offlineCache = yarn.fetchYarnBerryDeps {
+ inherit (finalAttrs) src sourceRoot missingHashes;
+ hash = "sha256-VIlWld21GScJ/2UUkKQISM9jyU9wCVwwDNKkge+K044=";
+ };
+
+ nativeBuildInputs = [
+ nodejs
+ yarn.yarnBerryConfigHook
+ yarn
+ gzip
+ ];
+
+ buildPhase = ''
+ runHook preBuild
+ export VITE_KOITO_VERSION=${version}
+ yarn run build
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/client
+ cp -r build $out/client
+
+ find $out/client/build -type f \( -name "*.js" -o -name "*.css" -o -name "*.html" -o -name "*.svg" \) -exec gzip -k -9 {} \;
+
+ runHook postInstall
+ '';
+})
diff --git a/pkgs/by-name/ko/koito/missing-hashes.json b/pkgs/by-name/ko/koito/missing-hashes.json
new file mode 100644
index 000000000000..482796c9c463
--- /dev/null
+++ b/pkgs/by-name/ko/koito/missing-hashes.json
@@ -0,0 +1,117 @@
+{
+ "@esbuild/aix-ppc64@npm:0.27.7": "ff8c15b43770c8df995a7274efdb1df5553a3264bff0a42a66bc96a07fc0733a6825b4a339972d2d49fc9be9bec4ac2f4f3f072730fdedc879ce4f9cbf0b242d",
+ "@esbuild/aix-ppc64@npm:0.28.0": "bedc005d10511c3ee50a02edbb380d3134d34f038cb2638257cb9344aa399276e672c44f7e7eb395a96ccc843e0a5903eb0349f22be30af49ae338ed222d5662",
+ "@esbuild/android-arm64@npm:0.27.7": "c340fffda73dfcdf3513f900403d582cbcd8a5fc4cf7abd71aa0d4945391b4c0289e4389f51616cebaac63ec652457941e3e2eefe408230521227ae128c35c9f",
+ "@esbuild/android-arm64@npm:0.28.0": "76fa5b984e742b96e427749530e4e973b8da60950163c2dbd766c75ed4f616b7f06d08f01d5b6bd06b6a25cf59b27c3519a4ba343792003b5fcadf463b3d6575",
+ "@esbuild/android-arm@npm:0.27.7": "4abbbcb6b0f38d345b530148ebf883d3b1b7321a5c31f9c492bf645813e85afb8984c9d75295d779dbe602807b85995d9ff47ab8e8b22fa1bc67b1cbab9c45db",
+ "@esbuild/android-arm@npm:0.28.0": "b1e649f838c94ebac74e1c10561f010608f7226c0e444b4e178546cf6295bd46d691c52542bbe01598004e638bf9d75ed688b85b6ae31df55f2e2194482733ff",
+ "@esbuild/android-x64@npm:0.27.7": "719956b9b7eb922a2bf92cc3df93f7f476ae37ad2976bc2185c97b93d63bd1f17b031aec41e9d9a7c3d75c83d6df8daa68191bdfa0d02f4dc39b6fafa6999fd7",
+ "@esbuild/android-x64@npm:0.28.0": "9b611b9099d552e755d7b6b28dc39c26aad759ceb9379761a0bf2dfe6077c2437aea784152aefc711166b55c4159f03e6e2f39c1c71ffb923c5ef75c93f7282b",
+ "@esbuild/darwin-arm64@npm:0.27.7": "aefb157b95bb749ebf0cd70dd39d20c00825565a0fcc248b775b4cce6252adf694bf3e4894b25368652252139bfdc0d08b75d1139a78f197ee58ed8972cdb28d",
+ "@esbuild/darwin-arm64@npm:0.28.0": "09ecf7709c8d86f35624fa9d3475ccb3d1beb9704ddfd71b71adcefc23c3aa8ab95263542bbca52cb0d50f23cf831f468968978969184e1da00dc84cd8c61953",
+ "@esbuild/darwin-x64@npm:0.27.7": "898b6b02589dccb0a51655c57c407866bdb2ae5202dacce33e7d9b2f35dd117b3245f6393ffd6726373616147c3d12a462830f51da2a5cfd06e0f60cc252373e",
+ "@esbuild/darwin-x64@npm:0.28.0": "ba5ab146a8542f093bbe752fe85402894da18b304ae1f08eb455a864f124c61e1e03f8ad18c28eb2b9c1bd930c54dc773ad32b7ab4c7d7eb31f7be04451e74f4",
+ "@esbuild/freebsd-arm64@npm:0.27.7": "aaf8ebcd359f1228f5dd9d90ceca51eaa06d91570b27fa8be9da858ee124e37d45a5fed2aa4849320eb256215acf39b98623cf770ae87f0a0d50323d1acc7fbc",
+ "@esbuild/freebsd-arm64@npm:0.28.0": "8c05cebfefb0c9f481b52ce8b0290d0e5f6fda17939e27d60d6440c00312a5a10b82ca6e8ddbc19c9a1a2973282c9393958b8ace0512741d76429465d3bdb415",
+ "@esbuild/freebsd-x64@npm:0.27.7": "cc7fa741cebc7041643f1fbfe45d99ce870b8ea42e9a67f4d1cf2fddeb991623619d00865427b3d6aa63ae7618f10c5635c4d047859eaba8d5c7f317d7138d44",
+ "@esbuild/freebsd-x64@npm:0.28.0": "da4a620d46b73b610dccfa8c80d110175bb207e0a6bd1bfa96f98d427b3d14bbe54096ccdabaf10fb189a21f6555f7721737106d30ff12933c08ef1aee7adac0",
+ "@esbuild/linux-arm64@npm:0.27.7": "b1aea26033d1de82966141b350405e1205ea04fa24707084b50992bfc9d0fbf99e0ad83a31ecd8f8cbc01101f3d92f648ce2cc24273c1e8ced573726393f9c68",
+ "@esbuild/linux-arm64@npm:0.28.0": "589f88f21542ff9822fee3f6130051f19e19ec6714abc48d39795b201585c4f0e8dac42ec10a3e61521a4ad499abad5b3a8a8424d871ff5f464b86ba1bae8a65",
+ "@esbuild/linux-arm@npm:0.27.7": "0950f67b72af73de69483363f046d6a50fc85f6491adcfeadcb6014bdc8a1731e2575fc58d6c68d6834cd6be45e0b247a23f128162864e7686accda1ada3a9d6",
+ "@esbuild/linux-arm@npm:0.28.0": "429f4d7b938f2b72884f472bd9288c91899cacb4bf9c61df293dbe9e3c0368cc1700171cf86c3051df9e6ebdc8c1366db6a573995d327f156de63fd28a23e3a7",
+ "@esbuild/linux-ia32@npm:0.27.7": "6247a3b2658de166c69099208c72ba65d8ddc5ce1575f5e8fd05d4570f3a59bfbd6a5570cfbd890e19a24258edd1b7e91cebe75e2acf182c6087297f26bba29c",
+ "@esbuild/linux-ia32@npm:0.28.0": "45fcf60da75745f20ec6d98914de1dbb6bd97231a3d9fa1861a47ae43eb7db23780696530d17d68ee55693d189672b763cbdb9d0ad1ee5429ee9c7168a23dce8",
+ "@esbuild/linux-loong64@npm:0.27.7": "0d7f9b60a46e95d09889365b54ea0e2fd6e471e9ceeef27a0cc6b77616b1abe275456b50eae94bed3322dc6ee17fedebc3258dcc88a5522bd5318f6def0d0642",
+ "@esbuild/linux-loong64@npm:0.28.0": "d7a5710068e5909661f48c276d82c836b9b6131076e550c83d83e63db3f2538ecd3a3694dcbf8129bb773f7ca580b2fbef38ec15b9028d246cbc0e77a1a5946c",
+ "@esbuild/linux-mips64el@npm:0.27.7": "f3732fa442590b2219d2ec7de1d5086cd31682831dfc25516f2805326b4bd9f68a9fdbf3cce876ee764bf47765b85fdf22290b6a09f87a29c9d0c2d4af0a83c3",
+ "@esbuild/linux-mips64el@npm:0.28.0": "1aa72c485a56cf432748b8e0527e86a88deda0574e13d914dbe657dc2878ecc8b441783bd6c1582c0359b5a33d30216c0c94b3c9c17e5ca975fe6aa4b80aaa2c",
+ "@esbuild/linux-ppc64@npm:0.27.7": "df156f801042116c438c9259451e716533adec6b7d7af5c75cf27feec09ee4d941281049bf979dc0bb7a5b73b955d3974ecac4391a97600a4440a4a003b820e4",
+ "@esbuild/linux-ppc64@npm:0.28.0": "306bf03b0f6fd738bf74d9dfb23b8937227521b832fd901994600691b1f1fadb698a67a9990713b72ca1114715f82f0df35877281945e81b824ed437bf432742",
+ "@esbuild/linux-riscv64@npm:0.27.7": "76eccec1c7f047075353ef1f908998a0723f367a39aae39608f7978e5e231ea51ae25fd5258d16345567b94b77e28524cba45bc76afa5eda350adc5bda672142",
+ "@esbuild/linux-riscv64@npm:0.28.0": "c09c0f0ada23a3e55767586f3a341958c071d0b9adfe5460986e5e69f7397dfe2e37e2896a1c61092cececa929241d37f19b75ed608f5f00d535cd3b24c4ef1f",
+ "@esbuild/linux-s390x@npm:0.27.7": "788799f3e6e61efe6ec0a4a5e2d413dcfe57b27518d679a3d5f82265672fe53604a348658bc09b958cedaead008b63ef02e700469aed2a725e79361458901808",
+ "@esbuild/linux-s390x@npm:0.28.0": "40a939574f16362a5c9f1f82c20a8d82686efcf5f77e4b6c7e5c05bdcc596d8ce2ca188e6e7fa4772d4167bd18da630a3a3b3b70aa28308d3a9d1d48ff112feb",
+ "@esbuild/linux-x64@npm:0.27.7": "77c8cc00c2f647f5a04ca6640711c6e83214a8c619aeb3de52fee36c51709d5f44becaff095ffa2d1d40d53d1a792e80a1702193c155614350cc14de23a48e81",
+ "@esbuild/linux-x64@npm:0.28.0": "cde673ae0b9945bdc665c68b2df7ebe39d37bcd388c8e607ed4d369e7b6123ecdf3d1feb097ae13403d83c15952cb952d16f96146fa1a52405f09ec0e438d0f6",
+ "@esbuild/netbsd-arm64@npm:0.27.7": "cffa469f49165446e82f3031d6601e977131fcf619204370b3fad1b2a4a7dbf57d52e26e146cd1550c80af27470fb016d4b519fb74e3e6947a50391f84b87935",
+ "@esbuild/netbsd-arm64@npm:0.28.0": "c9738a8c3cfb817d9fbb46aa52fa532a0a74dc6d7d4e260e1eb8fd0acf729208932ce7f43e2c2dbf6cb1ca21f5db55f329936f81ae871953ff0e67e42d8eb362",
+ "@esbuild/netbsd-x64@npm:0.27.7": "123b51f84b61f13ae916c0d7b1fa057181ded0e510f762acca178fe7fb679041a30df4f740db381afe8919d41877630ccef0a16ded46248820da0af4b967c29d",
+ "@esbuild/netbsd-x64@npm:0.28.0": "c0be9ca72b5c18279e02e63a17a7fef428395f48fc1e0e251622c3cfe8a70b15cfb0bb814d355318917461a4e20d11723b837f6e4d1f1c0ce44e915ff80b3047",
+ "@esbuild/openbsd-arm64@npm:0.27.7": "cca5a166f47d125703451c4369bd337f08516e17aa69db17ff6822c229fcd9beb9bd29b2856c0f13d9d441178011e8c081879418f376c002f72c6aeab83576ed",
+ "@esbuild/openbsd-arm64@npm:0.28.0": "fda84f2526cb29d943047f68e725c688e4a89ebcbc224e19ddc3479509783cd254e581b19c8fad1a28e55e193512f37842252f36b06b3df2c005a0dbca0a0d84",
+ "@esbuild/openbsd-x64@npm:0.27.7": "d9c2ca562e27331124fcddb230f5b204adfadfd87b746d8369c1c3a72fc6f6e7375684cded7ffadab6f785228d80c4a4ff2c6f593f7ce354f6d57f5b4e43c3c3",
+ "@esbuild/openbsd-x64@npm:0.28.0": "7a67881986611c0b851c246c2ccdb445ecc5e587c70efae0165cd963d149ebfec3a7b6820338cf38dc70cee95fbd17e80dcb636c7f1de113c9a85dfe867a0d97",
+ "@esbuild/openharmony-arm64@npm:0.27.7": "6566b08b37e3faee6577ae43253f163ce5af22e872e30a93c08fc41e5b3525d742366b1049ba87de16c75c77abd6fce002b49b52a5a1898efb8be5eb18d8dcf3",
+ "@esbuild/openharmony-arm64@npm:0.28.0": "8cd175332efcedc6b69a980410426cbb7c76ed264f28cbf16cc807938e29f39c03353901179a88655377c39db1860d9df5c76294f2624a2db75b387334e9baa3",
+ "@esbuild/sunos-x64@npm:0.27.7": "589389cd4be3de5c24bb5820e4fd1f15f665b3be6b0ab6167f435776bb367e32209d6bf477bdba481195fbe515e1999c1e73adf321a8fb8400fe72052a4aef48",
+ "@esbuild/sunos-x64@npm:0.28.0": "99820c945c05651182afe4ec5a1bad80790775acefa403f25ad48ed9638efc573f3bf6fabdd273556854c609990a8a0c8fda7b140edabe3322d6a3ea77734d9c",
+ "@esbuild/win32-arm64@npm:0.27.7": "519a2c68186c2cd9f548d89f00f5aa3b5f2fa481fd03908d7b1c922de03bf20236d9fc21a3b4e83915d3611471843b41536c97d74273fb3369b2525767c278be",
+ "@esbuild/win32-arm64@npm:0.28.0": "84314f636841e4568e4960e4ee50e66c5d4d74fc274d256f3c903904186014bed197316c8bedb3c38f9855ca8ad9c4ecc1c6e64df4c40ea6cd5f4cb7739ab66c",
+ "@esbuild/win32-ia32@npm:0.27.7": "76470f36efe5290ac694e675a799a46a364aeba9a734cf10869769094b8b9022adc51fdea5869c45a8fdbfcb60ef8d787ae652c264468cdc0f4afb3869157b9c",
+ "@esbuild/win32-ia32@npm:0.28.0": "41296dae0b5e74ca689460cd510cb88df7b92d0c027130c373138e09847dd48eb685c2c825f36337a7bff7c6eceba2cb75b7f4f76d78e140504159a59e2feb89",
+ "@esbuild/win32-x64@npm:0.27.7": "b4df3d0c4024f0daf0891075822718dc31d35aeb91c18c4e8ee750be69f35ebd840d184006746dd88eca0e44574e438d5ab81c614605cc707fb79cf45cf76cba",
+ "@esbuild/win32-x64@npm:0.28.0": "f2d53b57cb338ddf0bbfb5eb64dc95bd0b686817eee8ab2307085c04f18e1d9d5b27e1b74f327cd46a8f246e3df9fc6ee9158ab9977255b7d4a511d438e411de",
+ "@rolldown/binding-android-arm64@npm:1.0.0-rc.18": "bd5c11810a9a4e450277fc59f6b5ce2d2bfe97e663714e922bfae65d12b2bed41f097f4cef1001bf8c3ed42e639cc1be9c6fa4708f01e472b7bf4f67c81a6b6e",
+ "@rolldown/binding-darwin-arm64@npm:1.0.0-rc.18": "fb96ff29b508ad304fece44de5be3ece019093d097d48e3ced9977baa10d6e7601e0684774c46e7c82cba6204c10afe307626a77990f12bf693ba5dce27b81f4",
+ "@rolldown/binding-darwin-x64@npm:1.0.0-rc.18": "e6392296c0c7c10fcdf4bc91937d4de3c53522215059347d49259e14dcf31f6955f596a734aee7eb3e9c68e43af9ac9b7f0e806188fbbda8b1be9155ebc15880",
+ "@rolldown/binding-freebsd-x64@npm:1.0.0-rc.18": "23ff9940c19013961c5fe3e6ae1534d4c9663aca7d7c7904e996001cd7ceb7abd7e5181a232cf8989d5b48bfa0c686c2e278f0f65b8d7a735783bdc4f5c6628f",
+ "@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.18": "ce1d652b54747ceee65911b751d9a726da30c2fd45398898db2600c0353715ea952f9b4769b76fa271a1f70b2a7eee6e6d514af8edf31d037892ef42e725168e",
+ "@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.18": "59d1457922e400cb74d4777a584505c9eeb72d9628282b418a1698c56498155736718b1fb4aaa063a12b74cc91ffb6e49bc37bab1f49118b2585bdd45a070b79",
+ "@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.18": "f0a4a160a63c5511e32ec654f64617c341a283b121492991f07e3ec286cca94c64e5caa854f85119c0d66fbe2cf672440fbaed116d15a557235bc69a2d0f5464",
+ "@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.18": "638edd82a2e751dcd450cd1ada7f28573bbf1e986129620284bd92e1a4e29cdb99c422f1b8c244672413cda916d74a3da39c92294b6b356aff0f79ac1abdafa7",
+ "@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.18": "f2d685d32cfeaf4b6ded07c6f890bb431e8303de9916d053fc57fd23832747c5aa515971cd39f82643b1005abef813ab075eb04d34fd74553e6711525b23b1f7",
+ "@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.18": "32680fe23669e9513dd9192420b8e2b9ca35a202942ac74aa399239902ae11d15c75cd9a9f73d2c2c484011cdb75adfb08ffb64075b4a4fd2e213e007955ae36",
+ "@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.18": "936a6ba7cda7d1454b3d3917337bbabba9eaf6ee1b0b713d1ecd19799feaa108b4d2e33ca2b6683e930de7ab5c4201029293370a71790303a70a8add011acfc6",
+ "@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.18": "99daa2b391ac36c63413a698413de0392a7e8316d4df9e8f3c652eead0173bfe289dcb351a9c47ab8143c7541c91b4321dbbdced18b606afe7800935bc147ae7",
+ "@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.18": "4a92446817179ea1d9f98f80f5b19217f72015d94fe04875cbc9e4f9e88e5de42efdca7bd8d25706ee322ee7edbd1289a7390eb14bca905f3295dcc6fc5c9b5f",
+ "@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.18": "446b6c6980839ca089b72ccd943cb5cac789197c969a963059c78b5b9bd8351cbf05cb489f7b46876c2e6bdfb28f48cb2bb7f6c124204dc4704e5c08347d27a9",
+ "@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.18": "405c63338f7164b78666b45d4a8844f97594877677a14fe812f750296c15a3c22592050e5c8df5e67ef573146a2ea754ec9bbb90e6893ae90e75a2784a392525",
+ "@rollup/rollup-android-arm-eabi@npm:4.60.3": "17aa353e3527f39dda3c5165f5182e83b705cc98fd6e349b6f71a38f3e31084ddcc089bd92611049689ff782f8c303de1fcfc3ae3e469846c59fdb502de3150f",
+ "@rollup/rollup-android-arm64@npm:4.60.3": "043fbe640414cd4ee48a791835aab00759297b2ab5f810ba3d3aca3ca416a713c0d749cf2b5866ba95319f2aff7be0508eecdc0745abf5a1a8eabeef67591c56",
+ "@rollup/rollup-darwin-arm64@npm:4.60.3": "8869930149fa4a1c2b3a1fdfb782ba3f3b28efc523027a5275772ca7e804d88d3c4bed44d575a450d0ed84ab304f263720e09781fa2b390e17f4c5c0a1febf92",
+ "@rollup/rollup-darwin-x64@npm:4.60.3": "71089410f74facf224fd39c7d6a96fc3bb587afb5851b3094be5c7030eba600acc1c175613bd1a5c7be8c94217e94a3fb7f4d7b18643e4fabf483c68862881cd",
+ "@rollup/rollup-freebsd-arm64@npm:4.60.3": "4c36273bf2250bb3291042e16ce3fe77b0423cf65420546b546036f773259339896656d51aa09182387b9468c7c3c8b738ae632fed103d18d5910059009ac897",
+ "@rollup/rollup-freebsd-x64@npm:4.60.3": "b3d3b26fde4665c5512fc2d0233fdee2bc7d1bc891d80faf146bf799241d397b29d7859d2e3820cac35a49228adca25f7ccee305fae242414b6ba22fbe74e6d9",
+ "@rollup/rollup-linux-arm-gnueabihf@npm:4.60.3": "ddc1212e3b7143ed51700375644227ccfb42d619bd04b8cde6a844258105a7217a832efd15bd296dabf4ab6a7d958f91a76a56a918b72dfb978bc783d31b53e1",
+ "@rollup/rollup-linux-arm-musleabihf@npm:4.60.3": "2fc53ec264c1bc2fc6ef31b5254343961aa571795544481d64065f7070752d8aa2776c3d352ead112870382d9a74c0e6a421fe271d8efaeb7a5f4d3f879cd092",
+ "@rollup/rollup-linux-arm64-gnu@npm:4.60.3": "3fa392f7136ebe742ee24ff71513bda01a4f494f9c41b3185d7c19a621ab56ab7471250a287e7745475105a26e1a5b82c90626bab5095818cce544dae8fc1f0a",
+ "@rollup/rollup-linux-arm64-musl@npm:4.60.3": "82cb64d456d5a6c27cc1bb4c78233ca5692152b838ee97f22bf2319db9f6abdf7af6b12418c1eecfef173b03acf06b04d556854874ca7dbed6eb69a7219b7025",
+ "@rollup/rollup-linux-loong64-gnu@npm:4.60.3": "0e5ecd83672bc7df3a64c536ad37e7021138f1b729d09820307db49ddb2eef9f33387e0455ca62a28592deb264e28e7b3364a2b6d011016eb7b107dadcd4d00a",
+ "@rollup/rollup-linux-loong64-musl@npm:4.60.3": "ce424a66d497b376d8bc69ba8ff500cf7b8ab32432254f1921653a421bfdd58489354c626950cb14eed53e56f99fe896af98a3cf9f275861e60ee8bacef5de65",
+ "@rollup/rollup-linux-ppc64-gnu@npm:4.60.3": "b4cffd1305c1d2ad9b5af0488fb1809b20111b17e07a36081bd0fb8fd05cef917bbc49ee8392f89850f633f0a2fde2f8a959077c81577ef4b5466a0c06b87b7d",
+ "@rollup/rollup-linux-ppc64-musl@npm:4.60.3": "db107b5139caa39915df56dc4d0244cd4ed650cb74450b5cb04ddec6d15c9c7a2b5ef831ed3af731a471518ba6463e577ad38165abf349f31ea3959daf050572",
+ "@rollup/rollup-linux-riscv64-gnu@npm:4.60.3": "5abfd50e21ca6da0ef060ee2863e0c4e7d0629e2d9b5b0d1cf3c38659e5b475ceeb22c14bb05eb450fd6cc06df61293bd276f3a932b3aca16a72dea8486c6ef1",
+ "@rollup/rollup-linux-riscv64-musl@npm:4.60.3": "70e620271513fa67369eb1d3afbaaa520f624187febb34763cba5fc968468cd48e8b366710d34c3f8ca9ae10cc26476270cd017424148394c36e305da59cdba4",
+ "@rollup/rollup-linux-s390x-gnu@npm:4.60.3": "44b8787091403559b648dc4b416df3914d22bd2e71c3fed5418f2469bea45abb1b1d846c86d05ef9e98096eb5d15d7336a30c09ff83147af31d08a0a68028f97",
+ "@rollup/rollup-linux-x64-gnu@npm:4.60.3": "d3044ce18567e39467409a124bba0e5c0987e6a32afb32c4e216b40a841cf2ed88aa51782ee49381f2d4f5c38534ff4de455181ddc2438f770eb6e79d57ee4f4",
+ "@rollup/rollup-linux-x64-musl@npm:4.60.3": "5a2ea801bf4ecac23f2050e153b8ea242308f34f2a24f0e55e5cde9d88bffb9badb489b342b2892a077402273b2623aefc376c7b45ba6b0aface4fb784b32255",
+ "@rollup/rollup-openbsd-x64@npm:4.60.3": "281535d6ba7cae7292f6081cf983be2a574479f5f0523bba53250982421dffea8e54c5ad5915ae0c09a3df6de36eb181f815118e1cb64616ffae3ee7ebacb6cf",
+ "@rollup/rollup-openharmony-arm64@npm:4.60.3": "5b5ba8fbe2c12276b89c3ac53ee27c125bda4857a69872a0670c9e785b58ba2003135222ec8d7628e3b4eddc898cce58b941a4ee33fac6a24ea019af25e74079",
+ "@rollup/rollup-win32-arm64-msvc@npm:4.60.3": "5021cfd286de0d282fb553b6d0c5fe4e4810f02ea4131634db80c29dcf93203f3eee6995e2a7c2c3b2a7edc60ab95a108f1c1e2890a4d1d9cf985febc16257c3",
+ "@rollup/rollup-win32-ia32-msvc@npm:4.60.3": "1d5f9ff21955657c4045044ead2845c8cd3c7cbc72e8bc2353bef4d79302680a5000793fbc9b85502682292bd28f5c8d026245ea8d6bfe4f3574576cb32e64c2",
+ "@rollup/rollup-win32-x64-gnu@npm:4.60.3": "b2a9c131a563939feb4f1fa1301e2c9178212431b6b2e8558745bebb1ebed22ed5ab29443c492fc2c6cc67d97af86c73e37c232f35159045422114dd72211eaa",
+ "@rollup/rollup-win32-x64-msvc@npm:4.60.3": "a62845765830efae8b738cd01412d5a427bc9cc91db7c410a308f0a0d5c0d406f4a31260935836f57fecc23645b365e155a1d3e151fe3d1a98a49f3fc8a8df8d",
+ "@tailwindcss/oxide-android-arm64@npm:4.3.0": "4ff1b0c205a905253dd7e4287d22e3ee0ef2dcb2a1bc82482a64a81ec443e0f011ccd677db34913a953774e3fa016386269c29e7b33ccc25b355295d1639b24c",
+ "@tailwindcss/oxide-darwin-arm64@npm:4.3.0": "16899c458e60e7b81021d6cf8b367bd7b9b42e5b6a071f237c16cf8f5adacb0e7de8bb8ed531eb5d397c971e235b74be22be4873b8d35d95e2236d2eec583020",
+ "@tailwindcss/oxide-darwin-x64@npm:4.3.0": "273443e9b888ba1f2bb27ba81d7b3591356d9215b9bd3351aae3a252e34ae096a49c1e1e7a40e1edff01348233ecf3cff2f95f772155baa2bac94349f445af0a",
+ "@tailwindcss/oxide-freebsd-x64@npm:4.3.0": "19e9ac688462aebd2a20683eea3d651be9fd6b42f90104e2bdd76d3d91fa3a1fdbc84e68a62777cf4544a9de0dfb3689f6bab31e475d64b114c0573c8fa31769",
+ "@tailwindcss/oxide-linux-arm-gnueabihf@npm:4.3.0": "f4171517c70ca18c560746febe99ee580e0b647e6555e8052fc28ea29cc09e8aec9b2f4ba25d4a5477e86ffdcf445c4e40e97a82419f54a262988d3b41f4f457",
+ "@tailwindcss/oxide-linux-arm64-gnu@npm:4.3.0": "8d50a0392266022dd3cca25620941f7cb48398536c8839ad7b4fc3da5cb85140c54c001a431c436c7eb7c4b01576fb32a04299e3ab93f0f9f3036b799502fb27",
+ "@tailwindcss/oxide-linux-arm64-musl@npm:4.3.0": "6743633b11429b80404405dff5940c98f011ba0897480ab2c24cf8059258e2333463157874382f5610edfaf67970671b68396a3783fdf6bd04b9a4f83afb75ab",
+ "@tailwindcss/oxide-linux-x64-gnu@npm:4.3.0": "830fde5deff303d1dd9c57a2b00ab02b088bdcb62103b4dca47a520fe76c1d6a1cf29c02ab4fc2bf3a209f9f94b209a217ba3057a9d35f0077cee94b9fcf9bb7",
+ "@tailwindcss/oxide-linux-x64-musl@npm:4.3.0": "f360e5074810e7bbe906b35f5aed3b0d044318adba50081cbd60483552782b8c9e56502635cd36c3db23a0afed64131902da164b8a43d9a93918648dda7231b4",
+ "@tailwindcss/oxide-wasm32-wasi@npm:4.3.0": "ec47c4ec6fe61afc14da01b276e0431ff2d986b8fa71aa85a359105dfb79833deb0ad545872a6d6314995206ebf45f1be6b3b0fa01df045460cb9fc7ea74844b",
+ "@tailwindcss/oxide-win32-arm64-msvc@npm:4.3.0": "2d35fe2b97422ad33d0e1e7bbb61e65e2d9050a5a778cd8792ba1e4d0693015e3d85f964a34a73cd8ccf4ba8694b51b924bad79ccdc600b8a4b7da2bdb897787",
+ "@tailwindcss/oxide-win32-x64-msvc@npm:4.3.0": "154b40ea54aca2f479f4fe7ff29a20d3f4efaf962f34517d330f220abc8bb4867bc1e3b29fcf8b4b2a52b091b835f7392fb777dfc9024513329f9e54c2bac5bf",
+ "lightningcss-android-arm64@npm:1.32.0": "1cb326ad39dcb02cf9f45025c167b6900e3a04b08f5149d3c5ee26054b00d08db3736fb69183a6c3ed1cb32dddd148608c784b6631b4777623f7dd0c032c392d",
+ "lightningcss-darwin-arm64@npm:1.32.0": "da954d0c215d0e95f15a92c8717f871017586e1332b98fd40e96196571d2fd3d51a727dc530768afee9f6a04da210510740574dd0c8dbf2ecced79e5996f1a06",
+ "lightningcss-darwin-x64@npm:1.32.0": "b1d298c9173f839e8447d1917ed8bc5ab098ed0fc4e4b419d36ac5afe8b27bf21cb47d00a35c3d2edadcac598086e9b4f26c992a809d79f9681d6865a230d79e",
+ "lightningcss-freebsd-x64@npm:1.32.0": "0eb59f6acf2fcdc944c921b0ac2a16ee803452b9438f573ad6bc41be00040b791ed698698ed5c06f98ef43a6fed0a54987ba3a88da204de9978db2fca96a4a65",
+ "lightningcss-linux-arm-gnueabihf@npm:1.32.0": "7d1ea43986d2370a90cefc920dac3e041e0d19445cc4fdaf244644b57b6937588d7c3a464c31440617231f55a6dad79744cf707912e05f3b46a1694abb5b4e00",
+ "lightningcss-linux-arm64-gnu@npm:1.32.0": "f01ede75f41480a164d18338fa46d9fccdb4a821717174ce848ff8b2aa4badba4f1d331deb3ebec3ee2f0eb95bfa2e35f54877f371427b04e6f36a4783aa1414",
+ "lightningcss-linux-arm64-musl@npm:1.32.0": "38d373f99768f1c5ab6a9c87e1c0ec45eccdb3fe4d216dd5cd06629648c4b0689570ad4e89285d490662cde1790cd36e6b3d176c14e5e31f6869c604aa2df820",
+ "lightningcss-linux-x64-gnu@npm:1.32.0": "0a1433d46a4a010f87b615c3fa43725a456bae259858a2c927899cbf93074f0ae40f49901bf6af6daa30a4d169c86f594f6341fd775bf7b59293b8d7947b81c5",
+ "lightningcss-linux-x64-musl@npm:1.32.0": "a6f48ccc30a73d30563c7b61856d1fd6a8812ce62b1bee797f227e06612df70aab4ccd1908552952f77ca7ff2a51019f62d14ae5310ca67311635eeec55d3a9e",
+ "lightningcss-win32-arm64-msvc@npm:1.32.0": "a919be7fb298c1102bccf18b6f83d54946adfac70ab2ac9c95e4ae38ded76d8f530215b0bcda4d38df4ffc40a70abe3afd91d01d35fd122e7d119ed0e46972d0",
+ "lightningcss-win32-x64-msvc@npm:1.32.0": "5b8d3431aadbdc40a0a7eae32f2415e4f28b547af1a1cd5b35a35d67f772a89492c7fa03e9fc88ce804b14f5f88e412e49fff40d1b0aad67177de815c434207e"
+}
diff --git a/pkgs/by-name/ko/koito/package.nix b/pkgs/by-name/ko/koito/package.nix
new file mode 100644
index 000000000000..1b088365b8f8
--- /dev/null
+++ b/pkgs/by-name/ko/koito/package.nix
@@ -0,0 +1,66 @@
+{
+ lib,
+ buildGoModule,
+ fetchFromGitHub,
+ callPackage,
+ pkg-config,
+ vips,
+ makeWrapper,
+ nixosTests,
+}:
+buildGoModule (finalAttrs: {
+ pname = "koito";
+ version = "0.3.2";
+ src = fetchFromGitHub {
+ owner = "gabehf";
+ repo = "koito";
+ rev = "v${finalAttrs.version}";
+ hash = "sha256-68+Z4Alzu+4v/PxU1IOboqZkF1pO+y6gswuO+HPS7dk=";
+ };
+ __structuredAttrs = true;
+
+ vendorHash = "sha256-W/+ByBlEPd4yIUD/E28q93fz6wYgvhwyBvJL8Fm1lNY=";
+
+ nativeBuildInputs = [
+ pkg-config
+ makeWrapper
+ ];
+
+ buildInputs = [ vips ];
+
+ ldflags = [
+ "-s"
+ "-w"
+ "-X main.Version=${finalAttrs.version}"
+ ];
+
+ postInstall = ''
+ mv $out/bin/api $out/bin/.koito-wrapped
+
+ mkdir -p $out/share
+ cp -r --no-preserve=mode ${finalAttrs.passthru.client}/client $out/share/client
+
+ makeWrapper $out/bin/.koito-wrapped $out/bin/koito \
+ --run "cd $out/share"
+ '';
+
+ passthru = {
+ client = callPackage ./client.nix {
+ inherit (finalAttrs) src version;
+ };
+
+ tests = {
+ inherit (nixosTests) koito;
+ };
+
+ updateScript = ./update.sh;
+ };
+
+ meta = {
+ description = "Modern, themeable scrobbler that you can use with any program that scrobbles to a custom ListenBrainz URL";
+ homepage = "https://koito.io";
+ license = lib.licenses.mit;
+ maintainers = with lib.maintainers; [ iv-nn ];
+ mainProgram = "koito";
+ };
+})
diff --git a/pkgs/by-name/ko/koito/update.sh b/pkgs/by-name/ko/koito/update.sh
new file mode 100755
index 000000000000..526510085521
--- /dev/null
+++ b/pkgs/by-name/ko/koito/update.sh
@@ -0,0 +1,32 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused jq nix coreutils nix-update yarn-berry_4.yarn-berry-fetcher
+
+set -euo pipefail
+
+owner="gabehf"
+repo="koito"
+package_dir="$(realpath "$(dirname "$0")")"
+
+latest_tag=$(curl ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} -sL "https://api.github.com/repos/${owner}/${repo}/releases/latest" | jq -r .tag_name)
+latest_version="${latest_tag#v}"
+
+if [[ "${UPDATE_NIX_OLD_VERSION}" == "${latest_version}" ]]; then
+ echo "koito is up to date: ${UPDATE_NIX_OLD_VERSION}"
+ exit 0
+fi
+
+echo "Updating koito from ${UPDATE_NIX_OLD_VERSION} to ${latest_version}…"
+
+nix-update koito --version "${latest_version}"
+
+src_path=$(nix-build --no-out-link -A koito.src)
+
+echo "Regenerating missing-hashes.json…"
+yarn-berry-fetcher missing-hashes "${src_path}/client/yarn.lock" >"${package_dir}/missing-hashes.json"
+
+echo "Updating offline cache hash…"
+offline_cache_hash=$(yarn-berry-fetcher prefetch "${src_path}/client/yarn.lock" "${package_dir}/missing-hashes.json")
+old_hash=$(nix-instantiate --eval --expr "with import ./. {}; koito.client.offlineCache.outputHash" --raw)
+sed -i "s|${old_hash}|${offline_cache_hash}|" "${package_dir}/client.nix"
+
+echo "Done."
diff --git a/pkgs/by-name/li/libnfs/package.nix b/pkgs/by-name/li/libnfs/package.nix
index ef8e36e810a9..60c527970028 100644
--- a/pkgs/by-name/li/libnfs/package.nix
+++ b/pkgs/by-name/li/libnfs/package.nix
@@ -2,24 +2,24 @@
lib,
stdenv,
fetchFromGitHub,
- autoreconfHook,
+ cmake,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libnfs";
- version = "5.0.3";
+ version = "6.0.2";
src = fetchFromGitHub {
owner = "sahlberg";
repo = "libnfs";
tag = "libnfs-${finalAttrs.version}";
- hash = "sha256-OFzoDCDBo+O7PtUKcyKnUJJ9TrALrkvk5Yo0zn08Q6w=";
+ hash = "sha256-uD7PtW2rcpGVzqD6U0DXK1gUaCKlKh+p+i6CW6jLGdw=";
};
- nativeBuildInputs = [ autoreconfHook ];
+ nativeBuildInputs = [ cmake ];
- configureFlags = [
- "--enable-pthread"
+ cmakeFlags = [
+ "-DENABLE_MULTITHREADING=ON"
];
enableParallelBuilding = true;
diff --git a/pkgs/by-name/lo/locker/package.nix b/pkgs/by-name/lo/locker/package.nix
new file mode 100644
index 000000000000..1d5f474146b6
--- /dev/null
+++ b/pkgs/by-name/lo/locker/package.nix
@@ -0,0 +1,31 @@
+{
+ lib,
+ rustPlatform,
+ fetchFromGitHub,
+ nix-update-script,
+}:
+
+rustPlatform.buildRustPackage (finalAttrs: {
+ pname = "locker";
+ version = "4.0.1";
+ __structuredAttrs = true;
+
+ src = fetchFromGitHub {
+ owner = "tgirlcloud";
+ repo = "locker";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-rVW2OcRG2h5G46UdRLYeZ5A0Gmca2fj5rRbZzMeDqqc=";
+ };
+
+ cargoHash = "sha256-gfhOOgZ8wkqbcghcCGCBMtImLfZazR2Dg/FgnjbofAg=";
+
+ passthru.updateScript = nix-update-script { };
+
+ meta = {
+ description = "A linter for your flake.lock file";
+ homepage = "https://github.com/tgirlcloud/locker";
+ license = lib.licenses.eupl12;
+ maintainers = with lib.maintainers; [ isabelroses ];
+ mainProgram = "locker";
+ };
+})
diff --git a/pkgs/by-name/ly/lyx/package.nix b/pkgs/by-name/ly/lyx/package.nix
index a766d92207a1..a76a7b6d0966 100644
--- a/pkgs/by-name/ly/lyx/package.nix
+++ b/pkgs/by-name/ly/lyx/package.nix
@@ -12,12 +12,12 @@
}:
stdenv.mkDerivation rec {
- version = "2.4.4";
+ version = "2.5.1";
pname = "lyx";
src = fetchurl {
- url = "ftp://ftp.lyx.org/pub/lyx/stable/2.4.x/${pname}-${version}.tar.xz";
- hash = "sha256-/6zTdIDzIPPz+PMERf5AiX6d9EyU7oe6BBPjZAhvS5A=";
+ url = "ftp://ftp.lyx.org/pub/lyx/stable/2.5.x/lyx-${version}.tar.xz";
+ hash = "sha256-8qI4e8s/L1RsH8E+THTLT4qmSHBs5XiO9wXdUTRNLP0=";
};
# LaTeX is used from $PATH, as people often want to have it with extra pkgs
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
qtWrapperArgs = [ " --prefix PATH : ${python3}/bin" ];
meta = {
+ changelog = "https://www.lyx.org/announce/${lib.replaceString "." "_" version}.txt";
description = "WYSIWYM frontend for LaTeX, DocBook";
homepage = "https://www.lyx.org";
license = lib.licenses.gpl2Plus;
diff --git a/pkgs/by-name/ma/mangowc/package.nix b/pkgs/by-name/ma/mango/package.nix
similarity index 95%
rename from pkgs/by-name/ma/mangowc/package.nix
rename to pkgs/by-name/ma/mango/package.nix
index b691f96d8ed0..775bf111216a 100644
--- a/pkgs/by-name/ma/mangowc/package.nix
+++ b/pkgs/by-name/ma/mango/package.nix
@@ -23,7 +23,9 @@
libGL,
}:
stdenv.mkDerivation (finalAttrs: {
- pname = "mangowc";
+ __structuredAttrs = true;
+ strictDeps = true;
+ pname = "mango";
version = "0.14.4";
src = fetchFromGitHub {
diff --git a/pkgs/by-name/mi/miniplayer/package.nix b/pkgs/by-name/mi/miniplayer/package.nix
index 4d374d5187b7..bccb55faaa34 100644
--- a/pkgs/by-name/mi/miniplayer/package.nix
+++ b/pkgs/by-name/mi/miniplayer/package.nix
@@ -23,7 +23,7 @@ buildPythonApplication (finalAttrs: {
dependencies = [
colorthief
ffmpeg-python
- mpd2
+ python-mpd2
pillow
pixcat
requests
diff --git a/pkgs/by-name/mp/mpdris2/package.nix b/pkgs/by-name/mp/mpdris2/package.nix
index bb1f9cca323c..8cccd6c2fba1 100644
--- a/pkgs/by-name/mp/mpdris2/package.nix
+++ b/pkgs/by-name/mp/mpdris2/package.nix
@@ -42,7 +42,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
dependencies = with python3Packages; [
dbus-python
- mpd2
+ python-mpd2
mutagen
pygobject3
];
diff --git a/pkgs/by-name/mp/mpv/scripts/manga-reader.nix b/pkgs/by-name/mp/mpv/scripts/manga-reader.nix
index 7a892438aed6..2b820ee39b35 100644
--- a/pkgs/by-name/mp/mpv/scripts/manga-reader.nix
+++ b/pkgs/by-name/mp/mpv/scripts/manga-reader.nix
@@ -8,12 +8,12 @@
buildLua {
pname = "manga-reader";
- version = "0-unstable-2026-03-03";
+ version = "0-unstable-2026-06-23";
src = fetchFromGitHub {
owner = "Dudemanguy";
repo = "mpv-manga-reader";
- rev = "2e8c21a82eb5fbe0b6feb64375e396d27bd8d5fa";
- hash = "sha256-Q6ekBvGsHSiZtO9QYnv5zAoAdkqrcFvmSJQsjVTuwSg=";
+ rev = "0551b033ac22b97298d94e480216748f68786b9f";
+ hash = "sha256-TmRWBKgTlgOszOI1CLHveGMNH23UHSvbijz8wC4M/mM=";
};
passthru.updateScript = unstableGitUpdater { };
diff --git a/pkgs/by-name/mu/music-assistant/disable-default-provider.diff b/pkgs/by-name/mu/music-assistant/disable-default-provider.diff
new file mode 100644
index 000000000000..a86aa4175cb7
--- /dev/null
+++ b/pkgs/by-name/mu/music-assistant/disable-default-provider.diff
@@ -0,0 +1,12 @@
+diff --git a/music_assistant/mass.py b/music_assistant/mass.py
+index 752f9e0af..9d7b3a521 100644
+--- a/music_assistant/mass.py
++++ b/music_assistant/mass.py
+@@ -923,6 +923,7 @@ async def _load_providers(self) -> None:
+ changes_made = False
+ newly_created_defaults: set[str] = set()
+ for default_provider, require_mdns in DEFAULT_PROVIDERS:
++ continue
+ if default_provider in default_providers_setup:
+ # already processed/setup before, skip
+ continue
diff --git a/pkgs/by-name/mu/music-assistant/dont-install-deps.patch b/pkgs/by-name/mu/music-assistant/dont-install-deps.patch
index d074e18fa67c..0df4cf58b369 100644
--- a/pkgs/by-name/mu/music-assistant/dont-install-deps.patch
+++ b/pkgs/by-name/mu/music-assistant/dont-install-deps.patch
@@ -43,7 +43,7 @@ index 0ac8a70f..5d74e25b 100644
"""Set up the YTMusic provider."""
logging.getLogger("yt_dlp").setLevel(self.logger.level + 10)
- await self._install_packages()
- self._cookie = self.config.get_value(CONF_COOKIE)
+ self._cookie = str(self.config.get_value(CONF_COOKIE))
self._po_token_server_url = (
self.config.get_value(CONF_PO_TOKEN_SERVER_URL) or DEFAULT_PO_TOKEN_SERVER_URL
@@ -1103,8 +1102,6 @@ async def _install_packages(self) -> None:
diff --git a/pkgs/by-name/mu/music-assistant/frontend.nix b/pkgs/by-name/mu/music-assistant/frontend.nix
index ab091182c71e..e6cf66afac4d 100644
--- a/pkgs/by-name/mu/music-assistant/frontend.nix
+++ b/pkgs/by-name/mu/music-assistant/frontend.nix
@@ -8,13 +8,13 @@
buildPythonPackage rec {
pname = "music-assistant-frontend";
- version = "2.17.146";
+ version = "2.17.186";
pyproject = true;
src = fetchPypi {
pname = "music_assistant_frontend";
inherit version;
- hash = "sha256-VU2SXL6SLFiKntmJJtCabBOYOeImYFPHYxvMPmnhmEc=";
+ hash = "sha256-dNGzXDRZuQLRkMY0erjJZE4h26yFP4Fdn9a3K6T0RvM=";
};
build-system = [ setuptools ];
diff --git a/pkgs/by-name/mu/music-assistant/package.nix b/pkgs/by-name/mu/music-assistant/package.nix
index 1adda47f84a0..c66e51117c4d 100644
--- a/pkgs/by-name/mu/music-assistant/package.nix
+++ b/pkgs/by-name/mu/music-assistant/package.nix
@@ -6,6 +6,7 @@
ffmpeg_7-headless,
nixosTests,
replaceVars,
+ writableTmpDirAsHomeHook,
providers ? [ ],
}:
@@ -15,16 +16,17 @@ let
music-assistant-frontend = prev.callPackage ./frontend.nix { };
music-assistant-models = final.music-assistant-models.overridePythonAttrs (oldAttrs: {
- version = "1.1.115";
+ version = "1.1.129";
src = oldAttrs.src.override {
- hash = "sha256-oEXL0B8JNH4PcltpES375ov7QGs+gtYKlMGr1B7BlKY=";
+ hash = "sha256-6gVHlFTt/bsj4nUGPS6HDUQ7zczpfos75U6l4Yk9W6k=";
};
});
}
);
- providerPackages = (import ./providers.nix).providers;
+ providersMeta = import ./providers.nix;
+ providerPackages = providersMeta.providers;
providerNames = lib.attrNames providerPackages;
providerDependencies = lib.concatMap (
provider: (providerPackages.${provider} pythonPackages)
@@ -38,14 +40,14 @@ assert
pythonPackages.buildPythonApplication rec {
pname = "music-assistant";
- version = "2.8.7";
+ version = "2.9.4";
pyproject = true;
src = fetchFromGitHub {
owner = "music-assistant";
repo = "server";
tag = version;
- hash = "sha256-m91q/8XYoZ5Azu79fKD0euRCuf29w3vj5cxdFheDsmI=";
+ hash = "sha256-PiSBghhlxknijRqghkO8wn1CB2XqaJrjrvGNvZUlNbo=";
};
patches = [
@@ -78,9 +80,18 @@ pythonPackages.buildPythonApplication rec {
# ^^^^^^^^^^^^^^^
# E IndexError: tuple index out of range
./fix-webserver-tests-in-sandbox.patch
+
+ # As providers must be configured through the nixos module, there is no gain
+ # if Music Assistant tries to enable some of them without the proper dependencies.
+ ./disable-default-provider.diff
];
postPatch = ''
+ # Undo Python 3.14 only syntax
+ substituteInPlace music_assistant/controllers/streams/controller.py \
+ --replace-fail "except BrokenPipeError, ConnectionResetError, ConnectionError:" "except (BrokenPipeError, ConnectionResetError, ConnectionError):" \
+ --replace-fail "except BrokenPipeError, ConnectionResetError:" "except (BrokenPipeError, ConnectionResetError):"
+
substituteInPlace pyproject.toml \
--replace-fail "0.0.0" "${version}" \
--replace-fail "==" ">="
@@ -109,6 +120,7 @@ pythonPackages.buildPythonApplication rec {
"mashumaro"
"orjson"
"xmltodict"
+ "zeroconf"
];
pythonRemoveDeps = [
@@ -139,6 +151,7 @@ pythonPackages.buildPythonApplication rec {
ifaddr
librosa
mashumaro
+ modern-colorthief
music-assistant-frontend
music-assistant-models
mutagen
@@ -150,6 +163,8 @@ pythonPackages.buildPythonApplication rec {
pyjwt
python-slugify
shortuuid
+ torch
+ torchaudio
unidecode
xmltodict
zeroconf
@@ -174,18 +189,36 @@ pythonPackages.buildPythonApplication rec {
with pythonPackages;
[
pytestCheckHook
+ writableTmpDirAsHomeHook
]
++ lib.concatAttrValues optional-dependencies
- ++ (lib.concatMap (provider: providerPackages.${provider} python.pkgs) [
+ ++ (lib.concatMap (provider: providerPackages.${provider} pythonPackages) [
+ "acoustid_lookup"
"audible"
"dlna"
+ "fastmcp_server"
"jellyfin"
+ "mpd"
+ "msx_bridge"
"opensubsonic"
"sendspin"
+ "smart_fades"
"snapcast"
+ "sonic_analysis"
+ "sonic_similarity"
"tidal"
+ "wiim"
+ "ytmusic"
]);
+ preCheck = ''
+ export NUMBA_CACHE_DIR=$(mktemp -d)
+
+ # required for smart_fades tests
+ mkdir -p $HOME/.cache/torch/hub/checkpoints/
+ cp ${pythonPackages.beat-this.passthru.small0Ckpt} $HOME/.cache/torch/hub/checkpoints/beat_this-small0.ckpt
+ '';
+
disabledTestPaths = [
# no multicast support in build sandbox:
# "OSError: [Errno 19] No such device"
@@ -193,9 +226,12 @@ pythonPackages.buildPythonApplication rec {
# provider is missing dependencies
"tests/providers/apple_music"
"tests/providers/bandcamp"
+ "tests/providers/hue_entertainment"
"tests/providers/kion_music"
"tests/providers/nicovideo"
+ "tests/providers/qqmusic"
"tests/providers/yandex_music"
+ "tests/providers/yandex_ynison"
"tests/providers/zvuk_music"
# mocking music_assistant.providers.airplay.pairing.AirPlayPairing does not work
"tests/providers/airplay/test_player.py::test_start_pairing__pin_decision"
@@ -210,6 +246,7 @@ pythonPackages.buildPythonApplication rec {
providerPackages
providerNames
;
+ providersBuiltins = providersMeta.builtins;
tests = nixosTests.music-assistant;
};
diff --git a/pkgs/by-name/mu/music-assistant/providers.nix b/pkgs/by-name/mu/music-assistant/providers.nix
index 4acb6678c682..8c75a4f5c2c2 100644
--- a/pkgs/by-name/mu/music-assistant/providers.nix
+++ b/pkgs/by-name/mu/music-assistant/providers.nix
@@ -1,8 +1,27 @@
# Do not edit manually, run ./update-providers.py
{
- version = "2.8.7";
+ version = "2.9.4";
+ builtins = [
+ "builtin"
+ "coverartarchive"
+ "fanarttv"
+ "itunes_artwork"
+ "local_audio"
+ "loudness_analysis"
+ "lrclib"
+ "musicbrainz"
+ "sendspin"
+ "sync_group"
+ "theaudiodb"
+ "universal_player"
+ "wikipedia"
+ ];
providers = {
+ acoustid_lookup =
+ ps: with ps; [
+ pyacoustid
+ ];
airplay =
ps: with ps; [
srptools
@@ -65,6 +84,10 @@
];
fanarttv = ps: [
];
+ fastmcp_server =
+ ps: with ps; [
+ fastmcp
+ ];
filesystem_local = ps: [
];
filesystem_nfs = ps: [
@@ -89,10 +112,14 @@
ps: with ps; [
pyheos
];
+ hue_entertainment = ps: [
+ ]; # missing hue-entertainment
ibroadcast = ps: [
]; # missing ibroadcastaio
internet_archive = ps: [
];
+ itunes_artwork = ps: [
+ ];
itunes_podcasts = ps: [
];
jellyfin =
@@ -101,6 +128,8 @@
];
kion_music = ps: [
]; # missing yandex-music
+ lastfm_recommendations = ps: [
+ ];
lastfm_scrobble =
ps: with ps; [
pylast
@@ -109,16 +138,40 @@
ps: with ps; [
liblistenbrainz
];
+ local_audio =
+ ps: with ps; [
+ sounddevice
+ ];
+ loudness_analysis = ps: [
+ ];
lrclib = ps: [
];
+ motherearthradio = ps: [
+ ];
+ mpd =
+ ps: with ps; [
+ python-mpd2
+ ];
+ msx_bridge =
+ ps: with ps; [
+ pydantic
+ ];
musicbrainz = ps: [
];
musiccast =
ps: with ps; [
aiomusiccast
];
- nicovideo = ps: [
- ]; # missing niconico.py-ma
+ musicme = ps: [
+ ];
+ neteasecloudmusic = ps: [
+ ];
+ nicovideo =
+ ps: with ps; [
+ pydantic
+ ]; # missing niconico.py-ma
+ nts = ps: [
+ ];
nugs = ps: [
];
opensubsonic =
@@ -147,6 +200,8 @@
];
qobuz = ps: [
];
+ qqmusic = ps: [
+ ]; # missing qqmusic-api-python
radiobrowser =
ps: with ps; [
radios
@@ -158,13 +213,26 @@
async-upnp-client
rokuecp
];
+ samsung_wam = ps: [
+ ]; # missing pywam
sendspin =
- ps: with ps; [
+ ps:
+ with ps;
+ [
aiosendspin
av
- ];
+ ]
+ ++ aiosendspin.optional-dependencies.server;
siriusxm = ps: [
]; # missing sxm
+ smart_fades =
+ ps: with ps; [
+ beat-this
+ nnaudio
+ threadpoolctl
+ ];
+ smart_playlist = ps: [
+ ];
snapcast =
ps: with ps; [
bidict
@@ -173,6 +241,20 @@
];
somafm = ps: [
];
+ sonic_analysis =
+ ps: with ps; [
+ huggingface-hub
+ pyyaml
+ threadpoolctl
+ torchlibrosa
+ transformers
+ ];
+ sonic_similarity =
+ ps: with ps; [
+ huggingface-hub
+ transformers
+ usearch
+ ];
sonos =
ps: with ps; [
aiosonos
@@ -220,8 +302,20 @@
ps: with ps; [
aiovban
];
+ webdav = ps: [
+ ];
+ wiim =
+ ps: with ps; [
+ wiim
+ ];
+ wikipedia = ps: [
+ ];
yandex_music = ps: [
- ]; # missing yandex-music
+ ]; # missing yandex-music, ya-passport-auth
+ yandex_smarthome = ps: [
+ ]; # missing ya-passport-auth
+ yandex_ynison = ps: [
+ ]; # missing ya-passport-auth
yousee = ps: [
];
ytmusic =
@@ -232,6 +326,7 @@
ytmusicapi
]; # missing deno
zvuk_music = ps: [
- ]; # missing zvuk-music
+ ];
+ # missing zvuk-music
};
}
diff --git a/pkgs/by-name/mu/music-assistant/update-providers.py b/pkgs/by-name/mu/music-assistant/update-providers.py
index c464fc1cd5b1..b9273f4280b7 100755
--- a/pkgs/by-name/mu/music-assistant/update-providers.py
+++ b/pkgs/by-name/mu/music-assistant/update-providers.py
@@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
-#!nix-shell -I nixpkgs=./. -i python3 -p "music-assistant.python.withPackages (ps: music-assistant.dependencies ++ (with ps; [ jinja2 packaging ]))" -p nixfmt pyright ruff isort
+#!nix-shell -I nixpkgs=./. -i python3 -p "music-assistant.pythonPackages.python.withPackages (ps: music-assistant.dependencies ++ (with ps; [ jinja2 packaging ]))" -p nixfmt pyright ruff isort
import asyncio
import json
import os.path
@@ -24,13 +24,22 @@ TEMPLATE = """# Do not edit manually, run ./update-providers.py
{
version = "{{ version }}";
+ builtins = [
+{%- for builtin in builtins | sort %}
+ "{{ builtin }}"
+{%- endfor %}
+ ];
providers = {
{%- for provider in providers | sort(attribute='domain') %}
{{ provider.domain }} = {% if provider.available %}ps: with ps;{% else %}ps:{% endif %} [
{%- for requirement in provider.available | sort %}
- {{ requirement }}
+ {{ requirement }}
{%- endfor %}
- ];{% if provider.missing %} # missing {{ ", ".join(provider.missing) }}{% endif %}
+ ]
+{%- for requirement in provider.extra_list_deps | sort %}
+ ++ {{ requirement }}
+{%- endfor %}
+;{% if provider.missing %} # missing {{ ", ".join(provider.missing) }}{% endif %}
{%- endfor %}
};
}
@@ -50,13 +59,16 @@ ROOT: Final = (
.strip()
)
-PACKAGE_SET = "music-assistant.python.pkgs"
+PACKAGE_SET = "music-assistant.pythonPackages"
PACKAGE_MAP = {
"git+https://github.com/MarvinSchenkel/pytube.git": "pytube",
}
EXTRA_DEPS = {
+ # Those providers cannot guard pydantic behind TYPE_CHECKING
+ "msx_bridge": ["pydantic"],
+ "nicovideo": ["pydantic"],
"ytmusic": [
# https://github.com/music-assistant/server/blob/2.5.8/music_assistant/providers/ytmusic/__init__.py#L120
"bgutil-ytdlp-pot-provider",
@@ -65,6 +77,11 @@ EXTRA_DEPS = {
}
+EXTRA_LIST_DEPS = {
+ "sendspin": ["aiosendspin.optional-dependencies.server"],
+}
+
+
def run_sync(cmd: List[str]) -> None:
print(f"$ {' '.join(cmd)}")
process = run(cmd)
@@ -143,7 +160,7 @@ def packageset_attributes():
ROOT,
"-qa",
"-A",
- "music-assistant.python.pkgs",
+ "music-assistant.pythonPackages",
"--arg",
"config",
"{ allowAliases = false; }",
@@ -162,7 +179,7 @@ class NoMatch(Exception):
def resolve_package_attribute(package: str) -> str:
- pattern = re.compile(rf"^music-assistant\.python\.pkgs\.{package}$", re.I)
+ pattern = re.compile(rf"^music-assistant\.pythonPackages\.{package}$", re.I)
packages = packageset_attributes()
matches = []
for attr in packages.keys():
@@ -189,6 +206,7 @@ class Provider:
domain: str
available: list[str] = field(default_factory=list)
missing: list[str] = field(default_factory=list)
+ extra_list_deps: list[str] = field(default_factory=list)
def __eq__(self, other):
return self.domain == other.domain
@@ -197,12 +215,12 @@ class Provider:
return hash(self.domain)
-async def resolve_providers(manifests) -> Set:
+async def resolve_providers(manifests) -> tuple[Set, Set]:
errors = []
providers = set()
for manifest in manifests:
provider = Provider(manifest.domain)
- requirements = manifest.requirements + EXTRA_DEPS.get(manifest.domain, [])
+ requirements = manifest.requirements
for requirement in requirements:
# allow substituting requirement specifications that packaging cannot parse
if requirement in PACKAGE_MAP:
@@ -223,26 +241,37 @@ async def resolve_providers(manifests) -> Set:
version = await get_package_version(attr)
if version not in requirement.specifier:
errors.append(f"{requirement} not satisfied by version {version}")
+ if manifest.domain in EXTRA_DEPS:
+ for requirement in EXTRA_DEPS[manifest.domain]:
+ provider.available.append(requirement)
+ if manifest.domain in EXTRA_LIST_DEPS:
+ for requirement in EXTRA_LIST_DEPS[manifest.domain]:
+ provider.extra_list_deps.append(requirement)
providers.add(provider)
if errors:
print("\n - ", end="")
print("\n - ".join(errors))
- return providers
+
+ builtins = {manifest.domain for manifest in manifests if manifest.builtin}
+
+ return providers, builtins
-def render(outpath: str, version: str, providers: Set):
+def render(outpath: str, version: str, providers: Set, builtins: Set):
env = Environment()
template = env.from_string(TEMPLATE)
- template.stream(version=version, providers=providers).dump(outpath)
+ template.stream(version=version, providers=providers, builtins=builtins).dump(
+ outpath
+ )
async def main():
version: str = cast(str, await Nix.eval("music-assistant.version"))
manifests = await get_provider_manifests(version)
- providers = await resolve_providers(manifests)
+ providers, builtins = await resolve_providers(manifests)
outpath = os.path.join(ROOT, "pkgs/by-name/mu/music-assistant/providers.nix")
- render(outpath, version, providers)
+ render(outpath, version, providers, builtins)
run_sync(["nixfmt", outpath])
diff --git a/pkgs/by-name/na/nats-server/package.nix b/pkgs/by-name/na/nats-server/package.nix
index 8b1b47de2a4a..c35933178c98 100644
--- a/pkgs/by-name/na/nats-server/package.nix
+++ b/pkgs/by-name/na/nats-server/package.nix
@@ -7,16 +7,16 @@
buildGoModule (finalAttrs: {
pname = "nats-server";
- version = "2.14.2";
+ version = "2.14.3";
src = fetchFromGitHub {
owner = "nats-io";
repo = "nats-server";
rev = "v${finalAttrs.version}";
- hash = "sha256-XK+Yu1DGmS8F0Sbi3Y6KrGtOw63JzJ1ax5LjoZWCkcY=";
+ hash = "sha256-139eSr6ECC1vThHbdnDPg8wJS0FJuwDKpm4BupRdjSk=";
};
- vendorHash = "sha256-q52NL8I/7xkLb6qeDyv8vTuW0C3CRFuyc6UIPw92uD4=";
+ vendorHash = "sha256-F7XKN/MMX8FOiRY8gugrKU2j+RQE/vY3eTV7ORVRc2U=";
doCheck = false;
diff --git a/pkgs/by-name/ne/neovim-remote/package.nix b/pkgs/by-name/ne/neovim-remote/package.nix
index b59e027d1c6c..da9599188336 100644
--- a/pkgs/by-name/ne/neovim-remote/package.nix
+++ b/pkgs/by-name/ne/neovim-remote/package.nix
@@ -25,6 +25,10 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
url = "https://github.com/mhinz/neovim-remote/commit/56d2a4097f4b639a16902390d9bdd8d1350f948c.patch";
hash = "sha256-/PjE+9yfHtOUEp3xBaobzRM8Eo2wqOhnF1Es7SIdxvM=";
})
+ # Fix nvr --version: replace deprecated pkg_resources with importlib.metadata
+ # (stdlib since Python 3.8). setuptools was correctly kept in build-system
+ # only; this avoids adding it as a spurious runtime dependency.
+ ./use-importlib-metadata.patch
];
build-system = with python3.pkgs; [ setuptools ];
diff --git a/pkgs/by-name/ne/neovim-remote/use-importlib-metadata.patch b/pkgs/by-name/ne/neovim-remote/use-importlib-metadata.patch
new file mode 100644
index 000000000000..dd197b1e8d34
--- /dev/null
+++ b/pkgs/by-name/ne/neovim-remote/use-importlib-metadata.patch
@@ -0,0 +1,20 @@
+Use importlib.metadata instead of pkg_resources for version queries.
+
+pkg_resources is a legacy setuptools API. importlib.metadata (stdlib since
+Python 3.8) is the correct replacement and requires no extra runtime dependency.
+
+--- a/nvr/nvr.py
++++ b/nvr/nvr.py
+@@ -360,10 +360,10 @@
+
+
+ def print_versions():
+- import pkg_resources
+- print('nvr ' + pkg_resources.require("neovim-remote")[0].version)
+- print('pynvim ' + pkg_resources.require('pynvim')[0].version)
+- print('psutil ' + pkg_resources.require('psutil')[0].version)
++ from importlib.metadata import version
++ print('nvr ' + version("neovim-remote"))
++ print('pynvim ' + version('pynvim'))
++ print('psutil ' + version('psutil'))
+ print('Python ' + sys.version.split('\n')[0])
diff --git a/pkgs/by-name/or/organicmaps/force-vendored-protobuf.patch b/pkgs/by-name/or/organicmaps/force-vendored-protobuf.patch
new file mode 100644
index 000000000000..61f7c6cb7b9e
--- /dev/null
+++ b/pkgs/by-name/or/organicmaps/force-vendored-protobuf.patch
@@ -0,0 +1,24 @@
+diff --git a/3party/CMakeLists.txt b/3party/CMakeLists.txt
+index c802251db8..314f4d4543 100644
+--- a/3party/CMakeLists.txt
++++ b/3party/CMakeLists.txt
+@@ -33,9 +33,6 @@ if (NOT WITH_SYSTEM_PROVIDED_3PARTY)
+ # Add pugixml library.
+ add_subdirectory(pugixml)
+
+- # Add protobuf library.
+- add_subdirectory(protobuf)
+-
+ add_subdirectory(freetype)
+ add_subdirectory(icu)
+ add_subdirectory(harfbuzz)
+@@ -45,6 +42,9 @@ if (NOT WITH_SYSTEM_PROVIDED_3PARTY)
+ target_include_directories(utf8cpp SYSTEM INTERFACE "${OMIM_ROOT}/3party/utfcpp/source")
+ endif()
+
++# Add protobuf library.
++add_subdirectory(protobuf)
++
+ add_subdirectory(agg)
+ add_subdirectory(bsdiff-courgette)
+ add_subdirectory(glaze)
diff --git a/pkgs/by-name/or/organicmaps/package.nix b/pkgs/by-name/or/organicmaps/package.nix
index c797594b6fb2..a94a7935227b 100644
--- a/pkgs/by-name/or/organicmaps/package.nix
+++ b/pkgs/by-name/or/organicmaps/package.nix
@@ -18,42 +18,32 @@
libxrandr,
libxinerama,
libxcursor,
+ gflags,
+ expat,
+ jansson,
+ boost,
+ fast-float,
+ utf8cpp,
nix-update-script,
}:
-let
- world_feed_integration_tests_data = fetchFromGitHub {
- owner = "organicmaps";
- repo = "world_feed_integration_tests_data";
- rev = "30ecb0b3fe694a582edfacc2a7425b6f01f9fec6";
- hash = "sha256-1FF658OhKg8a5kKX/7TVmsxZ9amimn4lB6bX9i7pnI4=";
- };
-in
stdenv.mkDerivation (finalAttrs: {
pname = "organicmaps";
- version = "2026.01.26-11";
+ version = "2026.05.27-11";
src = fetchFromGitHub {
owner = "organicmaps";
repo = "organicmaps";
tag = "${finalAttrs.version}-android";
- hash = "sha256-EsVPzibUta0cmKA6bYLqCKKij5FWbwPHgMmIs2THpL0=";
+ hash = "sha256-zLNQk9CCCk3linmAyAT5qsS5GhrOrlSVOdDf5koBwrc=";
fetchSubmodules = true;
};
- postPatch = ''
- # Disable certificate check. It's dependent on time
- echo "exit 0" > tools/unix/check_cert.sh
-
- # crude fix for https://github.com/organicmaps/organicmaps/issues/1862
- echo "echo ${lib.replaceStrings [ "." "-" ] [ "" "" ] finalAttrs.version}" > tools/unix/version.sh
-
- # TODO use system boost instead, see https://github.com/organicmaps/organicmaps/issues/5345
- patchShebangs 3party/boost/tools/build/src/engine/build.sh
-
- # Prefetch test data, or the build system will try to fetch it with git.
- ln -s ${world_feed_integration_tests_data} data/test_data/world_feed_integration_tests_data
- '';
+ patches = [
+ # Needs the very old protobuf 3.3, so we use the vendored one
+ # https://github.com/organicmaps/organicmaps/pull/6310
+ ./force-vendored-protobuf.patch
+ ];
nativeBuildInputs = [
cmake
@@ -65,7 +55,6 @@ stdenv.mkDerivation (finalAttrs: {
qt6.wrapQtAppsHook
];
- # Most dependencies are vendored
buildInputs = [
qt6.qtbase
qt6.qtpositioning
@@ -80,12 +69,21 @@ stdenv.mkDerivation (finalAttrs: {
libxrandr
libxinerama
libxcursor
+ gflags
+ expat
+ jansson
+ boost
+ fast-float
+ utf8cpp
];
- # Yes, this is PRE configure. The configure phase uses cmake
- preConfigure = ''
- bash ./configure.sh
- '';
+ cmakeFlags = [
+ (lib.cmakeBool "WITH_SYSTEM_PROVIDED_3PARTY" true)
+ (lib.cmakeBool "SKIP_TESTS" true)
+ (lib.cmakeBool "SKIP_TOOLS" true)
+ ];
+
+ env.NIX_CFLAGS_COMPILE = "-I${lib.getDev utf8cpp}/include/utf8cpp";
passthru = {
updateScript = nix-update-script {
diff --git a/pkgs/by-name/pg/pgcenter/package.nix b/pkgs/by-name/pg/pgcenter/package.nix
index 0b39185b3276..e84db93fb5fa 100644
--- a/pkgs/by-name/pg/pgcenter/package.nix
+++ b/pkgs/by-name/pg/pgcenter/package.nix
@@ -6,13 +6,13 @@
buildGoModule (finalAttrs: {
pname = "pgcenter";
- version = "0.10.1";
+ version = "0.11.0";
src = fetchFromGitHub {
owner = "lesovsky";
repo = "pgcenter";
rev = "v${finalAttrs.version}";
- sha256 = "sha256-HSSHRMkzb0WkRAPEtG654ngnJw9rjkBq/v2Su4bUO8Y=";
+ sha256 = "sha256-sIdCcle7s9ZL8XlEd09yGgq/gC5YDVONzm5Fj9z0lLw=";
};
vendorHash = "sha256-nHPS/iLHQwM39UYpajQRAbZcK7PxTPU0mO2HapDRFDU=";
diff --git a/pkgs/by-name/pl/plattenalbum/package.nix b/pkgs/by-name/pl/plattenalbum/package.nix
index c2933b59180c..8eb024408df8 100644
--- a/pkgs/by-name/pl/plattenalbum/package.nix
+++ b/pkgs/by-name/pl/plattenalbum/package.nix
@@ -36,7 +36,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
dependencies = with python3Packages; [
pygobject3
- mpd2
+ python-mpd2
];
dontWrapGApps = true;
diff --git a/pkgs/by-name/ro/rofi-mpd/package.nix b/pkgs/by-name/ro/rofi-mpd/package.nix
index 32a26f44c668..7ad80a7b09b0 100644
--- a/pkgs/by-name/ro/rofi-mpd/package.nix
+++ b/pkgs/by-name/ro/rofi-mpd/package.nix
@@ -20,7 +20,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
dependencies = with python3Packages; [
mutagen
- mpd2
+ python-mpd2
toml
appdirs
];
diff --git a/pkgs/by-name/sd/SDL2_image/package.nix b/pkgs/by-name/sd/SDL2_image/package.nix
index 401f1191aeff..cecad747879a 100644
--- a/pkgs/by-name/sd/SDL2_image/package.nix
+++ b/pkgs/by-name/sd/SDL2_image/package.nix
@@ -25,6 +25,11 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-OT9e+1BTbsE8pPSv+2nMmWbTw/lp5sXnAfrd+fl4U4E=";
};
+ outputs = [
+ "out"
+ "dev"
+ ];
+
nativeBuildInputs = [
SDL2
autoreconfHook
diff --git a/pkgs/by-name/sd/SDL2_ttf/package.nix b/pkgs/by-name/sd/SDL2_ttf/package.nix
index fe27887ddfbb..ac53f4a4860c 100644
--- a/pkgs/by-name/sd/SDL2_ttf/package.nix
+++ b/pkgs/by-name/sd/SDL2_ttf/package.nix
@@ -21,6 +21,11 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-Cyvx57ZWitvbybuSRkP3nZ3tr+Bh+h7Wh9HZrE5FO/0=";
};
+ outputs = [
+ "out"
+ "dev"
+ ];
+
nativeBuildInputs = [
SDL2
pkg-config
diff --git a/pkgs/by-name/se/senv/package.nix b/pkgs/by-name/se/senv/package.nix
index a930f35ca51f..0ab9db48c73a 100644
--- a/pkgs/by-name/se/senv/package.nix
+++ b/pkgs/by-name/se/senv/package.nix
@@ -25,7 +25,6 @@ buildGoModule (finalAttrs: {
homepage = "https://github.com/SpectralOps/senv";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ SuperSandro2000 ];
- broken = stdenv.hostPlatform.isDarwin; # needs golang.org/x/sys bump
mainProgram = "senv";
};
})
diff --git a/pkgs/by-name/so/sonata/package.nix b/pkgs/by-name/so/sonata/package.nix
index 0d755644ef25..5200dcc04c02 100644
--- a/pkgs/by-name/so/sonata/package.nix
+++ b/pkgs/by-name/so/sonata/package.nix
@@ -17,7 +17,7 @@ let
buildPythonApplication
dbus-python
pygobject3
- mpd2
+ python-mpd2
setuptools
;
in
@@ -53,7 +53,7 @@ buildPythonApplication (finalAttrs: {
# included because it's difficult to build.
pythonPath = [
dbus-python
- mpd2
+ python-mpd2
pygobject3
setuptools # pkg_resources is imported during runtime
];
diff --git a/pkgs/by-name/ti/ticker/package.nix b/pkgs/by-name/ti/ticker/package.nix
index 3cd184d25c83..a8a38292e487 100644
--- a/pkgs/by-name/ti/ticker/package.nix
+++ b/pkgs/by-name/ti/ticker/package.nix
@@ -8,16 +8,21 @@
buildGoModule (finalAttrs: {
pname = "ticker";
- version = "5.2.1";
+ version = "5.3.0";
src = fetchFromGitHub {
owner = "achannarasappa";
repo = "ticker";
tag = "v${finalAttrs.version}";
- hash = "sha256-1q+TMCYPp9AicWJZzWrrr5ukj6AcckNkp2yP4NyOm5g=";
+ hash = "sha256-DXaW1pL0MDM6GTm1i7ns94OgBqSsR94wFYoumOZsnXo=";
};
- vendorHash = "sha256-kEyZMFW1ex45yC4G9qZUOeXVdQKjcExG7hKvN8lxrDI=";
+ postPatch = ''
+ substituteInPlace go.mod \
+ --replace-fail "go 1.26.4" "go 1.26.3"
+ '';
+
+ vendorHash = "sha256-ulAmWbsLp5oiIRJNyI0jRXBGUnjRzkZt3zHdbxkCLV0=";
ldflags = [
"-s"
diff --git a/pkgs/by-name/tr/transmission_4-gtk/package.nix b/pkgs/by-name/tr/transmission_4-gtk/package.nix
index 697c50dbf572..d4840aca93a8 100644
--- a/pkgs/by-name/tr/transmission_4-gtk/package.nix
+++ b/pkgs/by-name/tr/transmission_4-gtk/package.nix
@@ -1,3 +1,3 @@
{ transmission_4 }:
-transmission_4.override { enableGTK4 = true; }
+transmission_4.override { enableGTK = true; }
diff --git a/pkgs/by-name/tr/transmission_4-qt/package.nix b/pkgs/by-name/tr/transmission_4-qt/package.nix
new file mode 100644
index 000000000000..daccb10ce1ab
--- /dev/null
+++ b/pkgs/by-name/tr/transmission_4-qt/package.nix
@@ -0,0 +1,3 @@
+{ transmission_4 }:
+
+transmission_4.override { enableQt = true; }
diff --git a/pkgs/by-name/tr/transmission_4-qt5/package.nix b/pkgs/by-name/tr/transmission_4-qt5/package.nix
deleted file mode 100644
index e3352cf2d08c..000000000000
--- a/pkgs/by-name/tr/transmission_4-qt5/package.nix
+++ /dev/null
@@ -1,3 +0,0 @@
-{ transmission_4 }:
-
-transmission_4.override { enableQt5 = true; }
diff --git a/pkgs/by-name/tr/transmission_4-qt6/package.nix b/pkgs/by-name/tr/transmission_4-qt6/package.nix
deleted file mode 100644
index bee8183b5abe..000000000000
--- a/pkgs/by-name/tr/transmission_4-qt6/package.nix
+++ /dev/null
@@ -1,3 +0,0 @@
-{ transmission_4 }:
-
-transmission_4.override { enableQt6 = true; }
diff --git a/pkgs/by-name/tr/transmission_4/package.nix b/pkgs/by-name/tr/transmission_4/package.nix
index cf520ab7091b..96a9b6da8a43 100644
--- a/pkgs/by-name/tr/transmission_4/package.nix
+++ b/pkgs/by-name/tr/transmission_4/package.nix
@@ -24,15 +24,13 @@
dht,
libnatpmp,
# Build options
- enableGTK4 ? false,
+ enableGTK ? false,
gtkmm4,
libpthread-stubs,
libayatana-appindicator,
wrapGAppsHook4,
- enableQt5 ? false,
- enableQt6 ? false,
+ enableQt ? false,
enableMac ? false,
- qt5,
qt6Packages,
nixosTests,
enableSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd,
@@ -98,9 +96,9 @@ stdenv.mkDerivation (finalAttrs: {
cmakeFlags = [
(cmakeBool "ENABLE_CLI" enableCli)
(cmakeBool "ENABLE_DAEMON" enableDaemon)
- (cmakeBool "ENABLE_GTK" enableGTK4)
+ (cmakeBool "ENABLE_GTK" enableGTK)
(cmakeBool "ENABLE_MAC" enableMac)
- (cmakeBool "ENABLE_QT" (enableQt5 || enableQt6))
+ (cmakeBool "ENABLE_QT" enableQt)
(cmakeBool "INSTALL_LIB" installLib)
(cmakeBool "RUN_CLANG_TIDY" false)
]
@@ -132,7 +130,7 @@ stdenv.mkDerivation (finalAttrs: {
substituteInPlace CMakeLists.txt \
--replace-fail 'find_package(UtfCpp)' 'find_package(utf8cpp)'
''
- + optionalString (stdenv.hostPlatform.isDarwin && (enableQt5 || enableQt6)) ''
+ + optionalString (stdenv.hostPlatform.isDarwin && enableQt) ''
substituteInPlace qt/CMakeLists.txt \
--replace-fail \
'transmission::qt_impl)' \
@@ -144,9 +142,8 @@ stdenv.mkDerivation (finalAttrs: {
cmake
python3
]
- ++ optionals enableGTK4 [ wrapGAppsHook4 ]
- ++ optionals enableQt5 [ qt5.wrapQtAppsHook ]
- ++ optionals enableQt6 [ qt6Packages.wrapQtAppsHook ]
+ ++ optionals enableGTK [ wrapGAppsHook4 ]
+ ++ optionals enableQt [ qt6Packages.wrapQtAppsHook ]
++ optionals enableMac [
ibtool
actool
@@ -171,14 +168,7 @@ stdenv.mkDerivation (finalAttrs: {
utf8cpp
zlib
]
- ++ optionals enableQt5 (
- with qt5;
- [
- qttools
- qtbase
- ]
- )
- ++ optionals enableQt6 (
+ ++ optionals enableQt (
with qt6Packages;
[
qttools
@@ -186,7 +176,7 @@ stdenv.mkDerivation (finalAttrs: {
qtsvg
]
)
- ++ optionals enableGTK4 [
+ ++ optionals enableGTK [
gtkmm4
libpthread-stubs
libayatana-appindicator
@@ -230,9 +220,9 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Fast, easy and free BitTorrent client";
mainProgram =
- if (enableQt5 || enableQt6) then
+ if enableQt then
"transmission-qt"
- else if enableGTK4 then
+ else if enableGTK then
"transmission-gtk"
else if enableMac then
"transmission-mac"
diff --git a/pkgs/by-name/ur/urbit/package.nix b/pkgs/by-name/ur/urbit/package.nix
index 5a900a6e50d7..8bc85a12e162 100644
--- a/pkgs/by-name/ur/urbit/package.nix
+++ b/pkgs/by-name/ur/urbit/package.nix
@@ -11,16 +11,16 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "urbit";
- version = "4.3";
+ version = "4.5";
src = fetchurl {
url = "https://github.com/urbit/vere/releases/download/vere-v${finalAttrs.version}/${platform}.tgz";
sha256 =
{
- x86_64-linux = "14svyh258iqw8zrbf6nmsc1rfhrsyp6wb2a84fc72lsh28jm7fm0";
- aarch64-linux = "0gbpfsysmag9wnka9lgd812wsgrp78fr5l5nwin524zx47cq0fdm";
- x86_64-darwin = "0ff77jpsblgbsx03w0yqqsnyrw6g6c90bcj4bvm6idjdxknfnpfv";
- aarch64-darwin = "037860zqp9l9gzr3s0d8pbis3xsd26f3a6k63rpvjn76bpwy6swb";
+ x86_64-linux = "1vbyh6glh4fqcx8d8x2jp88nzl9922dj709zgwhvy858s2m30ymz";
+ aarch64-linux = "18gc1kyxj4j6vikxpif4a1b6l629m0lnhdzmlwx5i2v0l18drvbp";
+ x86_64-darwin = "02g431xgjw8gwa823kkxnzhg1cgswi3nlkv54mzkjxbhw856qa4z";
+ aarch64-darwin = "06x8mdxmbmhg78jzsf0n83cwmp2czp74ssh616ikqf1r8v5l0h2p";
}
.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}");
};
diff --git a/pkgs/by-name/ve/veracrypt/package.nix b/pkgs/by-name/ve/veracrypt/package.nix
index 25bfcf8663b8..4ed9843fc890 100644
--- a/pkgs/by-name/ve/veracrypt/package.nix
+++ b/pkgs/by-name/ve/veracrypt/package.nix
@@ -1,11 +1,11 @@
{
lib,
stdenv,
- fetchurl,
+ fetchFromGitHub,
pkg-config,
makeself,
yasm,
- fuse,
+ fuse3,
wxwidgets_3_2,
lvm2,
replaceVars,
@@ -21,9 +21,11 @@ stdenv.mkDerivation (finalAttrs: {
pname = "veracrypt";
version = "1.26.29";
- src = fetchurl {
- url = "https://launchpad.net/veracrypt/trunk/${finalAttrs.version}/+download/VeraCrypt_${finalAttrs.version}_Source.tar.bz2";
- hash = "sha256-YIJnMeKYK0vSMeOTDoWkQ5EWljhnGhsgDFGPjItGyyo=";
+ src = fetchFromGitHub {
+ owner = "veracrypt";
+ repo = "VeraCrypt";
+ tag = "VeraCrypt_${finalAttrs.version}";
+ hash = "sha256-Q+WUz8F63cP9/KlZUn9xLu2V9wO4FeY7AtErE1T9Km4=";
};
patches = [
@@ -40,7 +42,9 @@ stdenv.mkDerivation (finalAttrs: {
./nix-system-paths.patch
];
- sourceRoot = "src";
+ sourceRoot = "${finalAttrs.src.name}/src";
+
+ buildFlags = [ "WITHFUSE3=1" ];
nativeBuildInputs = [
makeself
@@ -49,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
wrapGAppsHook3
];
buildInputs = [
- fuse
+ fuse3
lvm2
wxwidgets_3_2
pcsclite
@@ -70,10 +74,12 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Free Open-Source filesystem on-the-fly encryption";
homepage = "https://www.veracrypt.fr/";
- license = with lib.licenses; [
- asl20 # and
- unfree # TrueCrypt License version 3.0
- ];
+ license =
+ with lib.licenses;
+ AND [
+ asl20 # and
+ unfree # TrueCrypt License version 3.0
+ ];
maintainers = [ lib.maintainers.ryand56 ];
platforms = lib.platforms.linux;
};
diff --git a/pkgs/by-name/ve/vesktop/package.nix b/pkgs/by-name/ve/vesktop/package.nix
index 5bde8c1f72f8..daddf229bc5a 100644
--- a/pkgs/by-name/ve/vesktop/package.nix
+++ b/pkgs/by-name/ve/vesktop/package.nix
@@ -13,7 +13,7 @@
pipewire,
libpulseaudio,
autoPatchelfHook,
- pnpm_10_29_2,
+ pnpm_10,
fetchPnpmDeps,
pnpmConfigHook,
nodejs,
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
src
patches
;
- pnpm = pnpm_10_29_2;
+ pnpm = pnpm_10;
fetcherVersion = 3;
hash = "sha256-Ue1K1KmRi4gF7E519deVY7QH+22dqlECMjdA7Z7qDCA=";
};
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
nodejs
pnpmConfigHook
- pnpm_10_29_2
+ pnpm_10
jq
]
++ lib.optionals stdenv.hostPlatform.isLinux [
diff --git a/pkgs/by-name/ya/yams/package.nix b/pkgs/by-name/ya/yams/package.nix
index c5b84b0bb80a..4cb3a31b01b8 100644
--- a/pkgs/by-name/ya/yams/package.nix
+++ b/pkgs/by-name/ya/yams/package.nix
@@ -22,7 +22,7 @@ python3Packages.buildPythonPackage rec {
dependencies = with python3Packages; [
pyyaml
psutil
- mpd2
+ python-mpd2
requests
];
diff --git a/pkgs/development/python-modules/aiosendspin/default.nix b/pkgs/development/python-modules/aiosendspin/default.nix
index c56e51a03d3f..3f661ddceaa2 100644
--- a/pkgs/development/python-modules/aiosendspin/default.nix
+++ b/pkgs/development/python-modules/aiosendspin/default.nix
@@ -29,17 +29,17 @@
buildPythonPackage (finalAttrs: {
pname = "aiosendspin";
- version = "4.4.0";
+ version = "6.0.5";
pyproject = true;
src = fetchFromGitHub {
owner = "Sendspin";
repo = "aiosendspin";
tag = finalAttrs.version;
- hash = "sha256-7edFCGNbECW5rrTbF7vJ4lJUc2IrQZD9VTR3IxJRP08=";
+ hash = "sha256-veX6MZSqEQb+tEqZTEgdCObLdaVPJEdTFW5Ivmb0TNQ=";
};
- # https://github.com/Sendspin/aiosendspin/blob/4.4.0/pyproject.toml#L7
+ # https://github.com/Sendspin/aiosendspin/blob/5.3.0/pyproject.toml#L27
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'version = "0.0.0"' 'version = "${finalAttrs.version}"'
@@ -54,20 +54,26 @@ buildPythonPackage (finalAttrs: {
dependencies = [
aiohttp
- av
mashumaro
- numpy
orjson
- pillow
zeroconf
];
+ optional-dependencies = {
+ server = [
+ av
+ numpy
+ pillow
+ ];
+ };
+
nativeCheckInputs = [
pytest-aiohttp
pytest-cov-stub
pytest-xdist
pytestCheckHook
- ];
+ ]
+ ++ finalAttrs.passthru.optional-dependencies.server;
pythonImportsCheck = [
"aiosendspin"
diff --git a/pkgs/development/python-modules/aiovban-pyaudio/default.nix b/pkgs/development/python-modules/aiovban-pyaudio/default.nix
new file mode 100644
index 000000000000..d4d74d872661
--- /dev/null
+++ b/pkgs/development/python-modules/aiovban-pyaudio/default.nix
@@ -0,0 +1,44 @@
+{
+ lib,
+ setproctitle,
+ uvloop,
+ aiovban,
+ buildPythonPackage,
+ pyaudio,
+ setuptools,
+}:
+
+buildPythonPackage (finalAttrs: {
+ pname = "aiovban-pyaudio";
+ inherit (aiovban) version pyproject src;
+
+ sourceRoot = "${aiovban.src.name}/aiovban_pyaudio";
+
+ build-system = [ setuptools ];
+
+ dependencies = [
+ aiovban
+ pyaudio
+ ];
+
+ pythonImportsCheck = [
+ "aiovban_pyaudio"
+ ];
+
+ optional-dependencies = {
+ cli = [
+ setproctitle
+ uvloop
+ ];
+ };
+
+ __structuredAttrs = true;
+
+ meta = {
+ changelog = "https://github.com/wmbest2/aiovban/releases/tag/${finalAttrs.src.tag}";
+ description = "PyAudio wrapper for aiovban";
+ homepage = "https://github.com/wmbest2/aiovban/tree/main/aiovban_pyaudio";
+ license = lib.licenses.mit;
+ inherit (aiovban.meta) maintainers;
+ };
+})
diff --git a/pkgs/development/python-modules/aiovban/default.nix b/pkgs/development/python-modules/aiovban/default.nix
index 67440599968d..5f56f697b3e9 100644
--- a/pkgs/development/python-modules/aiovban/default.nix
+++ b/pkgs/development/python-modules/aiovban/default.nix
@@ -1,32 +1,52 @@
{
lib,
+ aiovban-pyaudio,
buildPythonPackage,
fetchFromGitHub,
- setuptools,
pytestCheckHook,
+ textual,
+ uv-build,
music-assistant,
}:
buildPythonPackage (finalAttrs: {
pname = "aiovban";
- version = "0.7.0";
+ version = "1.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "wmbest2";
repo = "aiovban";
tag = "v${finalAttrs.version}";
- hash = "sha256-0mhpmpsV0zSOWbhrPF9bfR9xAtJe6X57guWDZWMH6f0=";
+ hash = "sha256-yPp4+aQGJISTIFI/OoO7+mAR8daEytxrQn21SsFWEyc=";
};
- build-system = [ setuptools ];
+ postPatch = ''
+ substituteInPlace pyproject.toml \
+ --replace-fail "uv_build>=0.10.0,<0.11.0" "uv_build"
+ '';
- nativeCheckInputs = [ pytestCheckHook ];
+ build-system = [ uv-build ];
+
+ dependencies = [ textual ];
+
+ # avoid infinite recursion with aiovban-pyaudio
+ doCheck = false;
+
+ nativeCheckInputs = [
+ aiovban-pyaudio
+ pytestCheckHook
+ ]
+ ++ aiovban-pyaudio.optional-dependencies.cli;
pythonImportsCheck = [
"aiovban"
];
+ passthru.tests = finalAttrs.finalPackage.overrideAttrs (_: {
+ doInstallCheck = true;
+ });
+
meta = {
changelog = "https://github.com/wmbest2/aiovban/releases/tag/${finalAttrs.src.tag}";
description = "Asyncio VBAN Protocol Wrapper";
diff --git a/pkgs/development/python-modules/beat-this/default.nix b/pkgs/development/python-modules/beat-this/default.nix
new file mode 100644
index 000000000000..09211960cf3a
--- /dev/null
+++ b/pkgs/development/python-modules/beat-this/default.nix
@@ -0,0 +1,73 @@
+{
+ lib,
+ buildPythonPackage,
+ einops,
+ fetchFromGitHub,
+ fetchurl,
+ numpy,
+ pytestCheckHook,
+ rotary-embedding-torch,
+ setuptools,
+ soundfile,
+ soxr,
+ torch,
+ torchaudio,
+ writableTmpDirAsHomeHook,
+}:
+
+buildPythonPackage (finalAttrs: {
+ pname = "beat-this";
+ version = "1.1.0";
+ pyproject = true;
+
+ src = fetchFromGitHub {
+ owner = "CPJKU";
+ repo = "beat_this";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-AEcDptPn5FUBb8+FuYSKjd00sFY5z6bS2iEOU64jido=";
+ };
+
+ build-system = [ setuptools ];
+
+ dependencies = [
+ einops
+ numpy
+ rotary-embedding-torch
+ soxr
+ torch
+ torchaudio
+ ];
+
+ nativeCheckInputs = [
+ pytestCheckHook
+ soundfile
+ writableTmpDirAsHomeHook
+ ];
+
+ preCheck = ''
+ mkdir -p $HOME/.cache/torch/hub/checkpoints/
+ cp ${finalAttrs.passthru.final0Ckpt} $HOME/.cache/torch/hub/checkpoints/beat_this-final0.ckpt
+ '';
+
+ pythonImportsCheck = [ "beat_this" ];
+
+ passthru = {
+ # The program prints the download URLs in the error message when it cannot download things in the nix sandbox
+ final0Ckpt = fetchurl {
+ url = "https://cloud.cp.jku.at/public.php/dav/files/7ik4RrBKTS273gp/final0.ckpt";
+ hash = "sha256-jDKLRfWdjdPf8hklP/ao1kgr5X0BM6KRQOL+u/jrgzE=";
+ };
+ small0Ckpt = fetchurl {
+ url = "https://cloud.cp.jku.at/public.php/dav/files/7ik4RrBKTS273gp/small0.ckpt";
+ hash = "sha256-YHS+LE1JDF9hAfzDdKHscq6TRW4ju2AZeDuEn13H1Hs=";
+ };
+ };
+
+ meta = {
+ description = "Accurate and general beat tracker";
+ homepage = "https://github.com/CPJKU/beat_this";
+ changelog = "https://github.com/CPJKU/beat_this/blob/main/CHANGELOG.md";
+ license = lib.licenses.mit;
+ maintainers = with lib.maintainers; [ SuperSandro2000 ];
+ };
+})
diff --git a/pkgs/development/python-modules/beets/default.nix b/pkgs/development/python-modules/beets/default.nix
index 6507544714d6..80bdd408fb56 100644
--- a/pkgs/development/python-modules/beets/default.nix
+++ b/pkgs/development/python-modules/beets/default.nix
@@ -70,7 +70,7 @@
librosa,
mp3gain,
mp3val,
- mpd2,
+ python-mpd2,
pyacoustid,
pylast,
pyxdg,
@@ -350,9 +350,9 @@ buildPythonPackage (finalAttrs: {
mbpseudo = { };
metasync.testPaths = [ ];
missing.testPaths = [ ];
- mpdstats.propagatedBuildInputs = [ mpd2 ];
+ mpdstats.propagatedBuildInputs = [ python-mpd2 ];
mpdupdate = {
- propagatedBuildInputs = [ mpd2 ];
+ propagatedBuildInputs = [ python-mpd2 ];
testPaths = [ ];
};
musicbrainz = { };
diff --git a/pkgs/development/python-modules/fastmcp-slim/default.nix b/pkgs/development/python-modules/fastmcp-slim/default.nix
new file mode 100644
index 000000000000..6eb705b108ba
--- /dev/null
+++ b/pkgs/development/python-modules/fastmcp-slim/default.nix
@@ -0,0 +1,132 @@
+{
+ lib,
+ buildPythonPackage,
+ fastmcp,
+
+ # build-system
+ hatchling,
+ uv-dynamic-versioning,
+
+ # dependencies
+ anthropic,
+ authlib,
+ azure-identity,
+ cyclopts,
+ exceptiongroup,
+ google-genai,
+ griffelib,
+ httpx,
+ jsonref,
+ jsonschema-path,
+ mcp,
+ openai,
+ openapi-pydantic,
+ opentelemetry-api,
+ packaging,
+ platformdirs,
+ py-key-value-aio,
+ pydantic,
+ pydantic-monty,
+ pydantic-settings,
+ pydocket,
+ pyjwt,
+ pyperclip,
+ python-dotenv,
+ python-multipart,
+ pyyaml,
+ rich,
+ typing-extensions,
+ uncalled-for,
+ uvicorn,
+ watchfiles,
+ websockets,
+}:
+
+buildPythonPackage (finalAttrs: {
+ pname = "fastmcp-slim";
+ inherit (fastmcp) version src;
+ sourceRoot = "${finalAttrs.src.name}/fastmcp_slim";
+ pyproject = true;
+
+ build-system = [
+ hatchling
+ uv-dynamic-versioning
+ ];
+
+ dependencies = [
+ platformdirs
+ pydantic
+ pydantic-settings
+ python-dotenv
+ rich
+ typing-extensions
+ ]
+ ++ pydantic.optional-dependencies.email;
+
+ optional-dependencies = {
+ anthropic = [ anthropic ];
+ apps = [
+ # unpackaged prefab-ui
+ ];
+ azure = [
+ azure-identity
+ pyjwt
+ ];
+ client = [
+ authlib
+ ]
+ ++ finalAttrs.passthru.optional-dependencies.mcp
+ ++ py-key-value-aio.optional-dependencies.filetree
+ ++ py-key-value-aio.optional-dependencies.keyring
+ ++ py-key-value-aio.optional-dependencies.memory;
+ code-mode = [ pydantic-monty ];
+ gemini = [
+ google-genai
+ jsonref
+ ];
+ mcp = [
+ exceptiongroup
+ httpx
+ mcp
+ opentelemetry-api
+ ];
+ openai = [ openai ];
+ server = [
+ authlib
+ cyclopts
+ griffelib
+ jsonref
+ jsonschema-path
+ openapi-pydantic
+ packaging
+ py-key-value-aio
+ pyperclip
+ python-multipart
+ pyyaml
+ uncalled-for
+ uvicorn
+ watchfiles
+ websockets
+ ]
+ ++ finalAttrs.passthru.optional-dependencies.mcp
+ ++ py-key-value-aio.optional-dependencies.filetree
+ ++ py-key-value-aio.optional-dependencies.keyring
+ ++ py-key-value-aio.optional-dependencies.memory;
+ tasks = [
+ pydocket
+ ];
+ };
+
+ pythonImportsCheck = [ "fastmcp" ];
+
+ # tests are done in fastmcp package
+ doCheck = false;
+
+ meta = {
+ description = "Dependency-slim FastMCP package";
+ changelog = "https://github.com/jlowin/fastmcp/releases/tag/${finalAttrs.src.tag}";
+ homepage = "https://github.com/PrefectHQ/fastmcp/tree/main/fastmcp_slim";
+ license = lib.licenses.asl20;
+ maintainers = with lib.maintainers; [ GaetanLepage ];
+ };
+})
diff --git a/pkgs/development/python-modules/fastmcp/default.nix b/pkgs/development/python-modules/fastmcp/default.nix
index 531d87fdfc38..3879e40bb830 100644
--- a/pkgs/development/python-modules/fastmcp/default.nix
+++ b/pkgs/development/python-modules/fastmcp/default.nix
@@ -10,54 +10,26 @@
uv-dynamic-versioning,
# dependencies
- anthropic,
- authlib,
- azure-identity,
- cyclopts,
- exceptiongroup,
- griffelib,
- httpx,
- jsonref,
- jsonschema-path,
- mcp,
- fakeredis,
- google-genai,
- openai,
- openapi-pydantic,
- opentelemetry-api,
- packaging,
- platformdirs,
- py-key-value-aio,
- pydantic,
- pydantic-monty,
- pydocket,
- pyjwt,
- pyperclip,
- python-dotenv,
- pyyaml,
- rich,
- uncalled-for,
- uvicorn,
- watchfiles,
- websockets,
+ fastmcp-slim,
# tests
dirty-equals,
- email-validator,
fastapi,
inline-snapshot,
- lupa,
opentelemetry-sdk,
psutil,
pytest-asyncio,
pytest-examples,
pytest-httpx,
+ pytest-rerunfailures,
+ pytest-timeout,
+ pytest-xdist,
pytestCheckHook,
}:
buildPythonPackage (finalAttrs: {
pname = "fastmcp";
- version = "3.2.4";
+ version = "3.3.1";
pyproject = true;
__structuredAttrs = true;
@@ -65,7 +37,7 @@ buildPythonPackage (finalAttrs: {
owner = "PrefectHQ";
repo = "fastmcp";
tag = "v${finalAttrs.version}";
- hash = "sha256-rJpxPvqAaa6/vXhG1+R9dI32cY/54e6I+F/zyBVoqBM=";
+ hash = "sha256-1W5NbWIULxFXGSozZEeITcPt1EbY6IsJLQdyevcn9BI=";
};
build-system = [
@@ -73,121 +45,66 @@ buildPythonPackage (finalAttrs: {
uv-dynamic-versioning
];
- pythonRelaxDeps = [
- "py-key-value-aio"
- "pydocket"
- ];
dependencies = [
- authlib
- cyclopts
- exceptiongroup
- griffelib
- httpx
- jsonref
- jsonschema-path
- mcp
- openapi-pydantic
- opentelemetry-api
- packaging
- platformdirs
- py-key-value-aio
- pydantic
- pyperclip
- python-dotenv
- pyyaml
- rich
- uncalled-for
- uvicorn
- watchfiles
- websockets
+ fastmcp-slim
]
- ++ py-key-value-aio.optional-dependencies.filetree
- ++ py-key-value-aio.optional-dependencies.keyring
- ++ py-key-value-aio.optional-dependencies.memory
- ++ pydantic.optional-dependencies.email;
+ ++ fastmcp-slim.optional-dependencies.client
+ ++ fastmcp-slim.optional-dependencies.server;
optional-dependencies = {
- anthropic = [ anthropic ];
- azure = [
- azure-identity
- pyjwt
- ];
- code-mode = [ pydantic-monty ];
- gemini = [ google-genai ];
- openai = [ openai ];
- tasks = [
- pydocket
- fakeredis
- ]
- ++ fakeredis.optional-dependencies.lua;
+ anthropic = fastmcp-slim.optional-dependencies.anthropic;
+ apps = fastmcp-slim.optional-dependencies.apps;
+ azure = fastmcp-slim.optional-dependencies.azure;
+ code-mode = fastmcp-slim.optional-dependencies.code-mode;
+ gemini = fastmcp-slim.optional-dependencies.gemini;
+ openai = fastmcp-slim.optional-dependencies.openai;
+ tasks = fastmcp-slim.optional-dependencies.tasks;
};
pythonImportsCheck = [ "fastmcp" ];
nativeCheckInputs = [
dirty-equals
- email-validator
fastapi
inline-snapshot
- lupa
opentelemetry-sdk
psutil
pytest-asyncio
pytest-examples
pytest-httpx
+ pytest-rerunfailures
+ pytest-timeout
+ pytest-xdist
pytestCheckHook
writableTmpDirAsHomeHook
]
++ finalAttrs.passthru.optional-dependencies.anthropic
+ ++ finalAttrs.passthru.optional-dependencies.apps
++ finalAttrs.passthru.optional-dependencies.azure
++ finalAttrs.passthru.optional-dependencies.code-mode
++ finalAttrs.passthru.optional-dependencies.gemini
++ finalAttrs.passthru.optional-dependencies.openai
+ ++ finalAttrs.passthru.optional-dependencies.tasks
++ inline-snapshot.optional-dependencies.dirty-equals;
disabledTests = [
+ # requires internet
+ "test_github_api_schema_performance"
+
# RuntimeError: Client failed to connect: Connection closed
- "test_keep_alive_maintains_session_across_multiple_calls"
- "test_keep_alive_false_starts_new_session_across_multiple_calls"
- "test_keep_alive_false_exit_scope_kills_server"
- "test_keep_alive_starts_new_session_if_manually_closed"
- "test_keep_alive_true_exit_scope_kills_client"
- "test_keep_alive_maintains_session_if_reentered"
- "test_close_session_and_try_to_use_client_raises_error"
- "test_parallel_calls"
+ "test_single_server_config_include_tags_filtering"
"test_run_mcp_config"
- "test_settings_from_environment_issue_1749"
+
+ # requires uv
"test_uv_transport"
"test_uv_transport_module"
- "test_github_api_schema_performance"
# Hang forever
"test_nested_streamable_http_server_resolves_correctly"
- # RuntimeError: Client failed to connect: Timed out while waiting for response
- "test_timeout"
- "test_timeout_tool_call_overrides_client_timeout_even_if_lower"
-
# Requires prefab-ui (optional dependency)
- "test_auto_registers_renderer_resource"
- "test_auto_synthesizes_renderer_resource"
- "test_equivalent_to_app_true"
-
- # Requires pydocket (tasks optional dependency, not in test inputs)
- "test_mounted_server_does_not_have_docket"
- "test_get_tasks_returns_task_eligible_tools"
- "test_task_teardown_does_not_hang"
- "test_background_task_can_read_snapshotted_request_headers"
- "test_background_task_current_http_dependencies_restore_headers"
- "test_task_execution_auto_populated_for_task_enabled_tool"
- "test_function_tool_task_config_still_works"
- "test_async_partial_with_task_true_does_not_raise"
- "test_sync_partial_with_task_true_raises"
- "test_is_docket_available"
- "test_require_docket_passes_when_installed"
-
- # Shared dependency caching differs in sandbox
- "TestSharedDependencies"
+ "TestPrefabAppConfig"
+ "test_doc_examples_quality"
# AssertionError: assert 'INFO' == 'DEBUG'
"test_temporary_settings"
@@ -195,36 +112,21 @@ buildPythonPackage (finalAttrs: {
# Subprocess-based multi-client tests fail in sandbox
"test_multi_client"
"test_multi_server"
- "test_single_server_config_include_tags_filtering"
"test_server_starts_without_auth"
"test_canonical_multi_client_with_transforms"
]
- ++ lib.optionals stdenv.hostPlatform.isDarwin [
- # RuntimeError: Server failed to start after 10 attempts
- "test_unauthorized_access"
- "test_stateless_proxy"
+ ++ lib.optionals stdenv.hostPlatform.isAarch64 [
+ # floating point error
+ "test_index_retrieval[float32-quantization1-1-metric0-3]"
];
disabledTestPaths = [
# Requires prefab-ui (optional dependency)
"tests/apps"
- "tests/docs/test_doc_examples.py"
"tests/test_apps_prefab.py"
"tests/test_fastmcp_app.py"
# Subprocess crash recovery tests are flaky in sandbox
"tests/client/test_stdio.py"
- # Requires pydocket/fakeredis (tasks optional dependency, not in test inputs)
- "tests/server/tasks"
- "tests/server/test_server_docket.py"
- "tests/client/tasks"
- ]
- ++ lib.optionals stdenv.hostPlatform.isDarwin [
- # RuntimeError: Server failed to start after 10 attempts
- "tests/client/auth/test_oauth_client.py"
- "tests/client/test_sse.py"
- "tests/client/test_streamable_http.py"
- "tests/server/auth/test_jwt_provider.py"
- "tests/server/http/test_http_dependencies.py"
];
__darwinAllowLocalNetworking = true;
diff --git a/pkgs/development/python-modules/hebi-py/default.nix b/pkgs/development/python-modules/hebi-py/default.nix
new file mode 100644
index 000000000000..1a499724a11a
--- /dev/null
+++ b/pkgs/development/python-modules/hebi-py/default.nix
@@ -0,0 +1,54 @@
+{
+ lib,
+ python,
+ buildPythonPackage,
+ fetchPypi,
+ setuptools,
+ numpy,
+ patchelfUnstable,
+ pyyaml,
+ nix-update-script,
+}:
+
+buildPythonPackage (finalAttrs: {
+ pname = "hebi-py";
+ version = "2.7.9";
+ pyproject = true;
+
+ src = fetchPypi {
+ pname = "hebi-py";
+ inherit (finalAttrs) version;
+ hash = "sha256-7B0oxG1CVDTUVDFTJpuYvaCj+HnCL/2zmsD33W4nTLs=";
+ };
+
+ __structuredAttrs = true;
+ strictDeps = true;
+ build-system = [
+ setuptools
+ patchelfUnstable # Depends on --clear-execstack which is not in any tagged release yet
+ ];
+ dependencies = [
+ numpy
+ pyyaml
+ ];
+
+ doCheck = false; # no tests
+
+ postFixup = ''
+ for lib in $out/${python.sitePackages}/hebi/lib/linux_x86_64/libhebi.so*; do
+ patchelf --clear-execstack "$lib"
+ done
+ '';
+
+ pythonImportsCheck = [ "hebi" ];
+
+ passthru.updateScript = nix-update-script { };
+
+ meta = {
+ description = "Python library for the Hebi Robotics API";
+ homepage = "https://docs.hebi.us/";
+ license = lib.licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with lib.maintainers; [ pandapip1 ];
+ };
+})
diff --git a/pkgs/development/python-modules/nnaudio/default.nix b/pkgs/development/python-modules/nnaudio/default.nix
new file mode 100644
index 000000000000..3d54bcdf3d40
--- /dev/null
+++ b/pkgs/development/python-modules/nnaudio/default.nix
@@ -0,0 +1,80 @@
+{
+ lib,
+ buildPythonPackage,
+ fetchFromGitHub,
+ fetchurl,
+ librosa,
+ numpy,
+ pytestCheckHook,
+ setuptools,
+ scipy,
+ stdenv,
+ torch,
+ writableTmpDirAsHomeHook,
+}:
+let
+ choice = fetchurl {
+ url = "https://librosa.org/data/audio/admiralbob77_-_Choice_-_Drum-bass.ogg";
+ hash = "sha256-rGRPlkXnwVF05KT4Vh5NFEjX9uWf9rBVazEOu87Yebw=";
+ };
+ vibeace = fetchurl {
+ url = "https://librosa.org/data/audio/Kevin_MacLeod_-_Vibe_Ace.ogg";
+ hash = "sha256-bCOu091apX8rFlLsq2jRXZuCrSV/VOY56yiAygm8EYo=";
+ };
+in
+buildPythonPackage (finalAttrs: {
+ pname = "nnaudio";
+ version = "0.3.4";
+ pyproject = true;
+
+ src = fetchFromGitHub {
+ owner = "KinWaiCheuk";
+ repo = "nnAudio";
+ rev = "e77d9f874cf37b273f44f68aefbd32fb0b979912";
+ hash = "sha256-uJySa2A7IbuY/9Wq/w9gRkBk1NhMrhipyclOWO5koHE=";
+ };
+
+ sourceRoot = "${finalAttrs.src.name}/Installation";
+
+ build-system = [ setuptools ];
+
+ dependencies = [
+ numpy
+ scipy
+ torch
+ ];
+
+ nativeCheckInputs = [
+ librosa
+ pytestCheckHook
+ writableTmpDirAsHomeHook
+ ];
+
+ preCheck = ''
+ mkdir -p $HOME/.cache/librosa/
+ cp ${choice} $HOME/.cache/librosa/admiralbob77_-_Choice_-_Drum-bass.ogg
+ cp ${vibeace} $HOME/.cache/librosa/Kevin_MacLeod_-_Vibe_Ace.ogg
+ export NUMBA_CACHE_DIR=$(mktemp -d)
+ '';
+
+ disabledTests = [
+ # AttributeError: module 'scipy.signal' has no attribute 'blackmanharris'
+ "test_cfp_original[cpu]"
+ "test_cfp_new[cpu]"
+ # Test fixture matrix has other values
+ "test_vqt_gamma_zero[cpu]"
+ ]
+ ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
+ # Test fixture matrix has other values
+ "test_cqt_1992_v2_log[cpu]"
+ ];
+
+ pythonImportsCheck = [ "nnAudio" ];
+
+ meta = {
+ description = "Fast GPU audio processing toolbox with 1D convolutional neural network";
+ homepage = "https://github.com/KinWaiCheuk/nnAudio";
+ license = lib.licenses.mit;
+ maintainers = with lib.maintainers; [ SuperSandro2000 ];
+ };
+})
diff --git a/pkgs/development/python-modules/py-opensonic/default.nix b/pkgs/development/python-modules/py-opensonic/default.nix
index 831ae47316b9..1df9023f1d9f 100644
--- a/pkgs/development/python-modules/py-opensonic/default.nix
+++ b/pkgs/development/python-modules/py-opensonic/default.nix
@@ -1,23 +1,24 @@
{
lib,
+ aiohttp,
buildPythonPackage,
fetchFromGitHub,
- setuptools,
- aiohttp,
mashumaro,
- requests,
+ pytest-asyncio,
+ pytestCheckHook,
+ setuptools,
}:
buildPythonPackage rec {
pname = "py-opensonic";
- version = "9.1.0";
+ version = "10.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "khers";
repo = "py-opensonic";
tag = "v${version}";
- hash = "sha256-xZHlI62QoKkR4sZf0GUEzUGMpG2urHooPs8GvVyqpIQ=";
+ hash = "sha256-LT6pTtXCUMhk6uV9Y2inlAuP8osWUwsWOH7/yOW2OXI=";
};
build-system = [ setuptools ];
@@ -25,10 +26,16 @@ buildPythonPackage rec {
dependencies = [
aiohttp
mashumaro
- requests
];
- doCheck = false; # no tests
+ pythonRelaxDeps = [
+ "mashumaro"
+ ];
+
+ nativeCheckInputs = [
+ pytest-asyncio
+ pytestCheckHook
+ ];
pythonImportsCheck = [
"libopensonic"
diff --git a/pkgs/development/python-modules/pyblu/default.nix b/pkgs/development/python-modules/pyblu/default.nix
index baa7ff79bd63..6c2cea7a524f 100644
--- a/pkgs/development/python-modules/pyblu/default.nix
+++ b/pkgs/development/python-modules/pyblu/default.nix
@@ -1,25 +1,25 @@
{
aiohttp,
- aioresponses,
buildPythonPackage,
fetchFromGitHub,
hatchling,
lib,
lxml,
+ mocket,
pytest-asyncio,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "pyblu";
- version = "2.0.6";
+ version = "2.0.8";
pyproject = true;
src = fetchFromGitHub {
owner = "LouisChrist";
repo = "pyblu";
tag = "v${version}";
- hash = "sha256-qLB9o40tRYgmbYJEEx8r3SodH1hB8MM4yLXbdKIs/xA=";
+ hash = "sha256-uYYiu0V491eHg47Rc9HGEiddONnFqGuPj34Mkfk5Gnk=";
};
pythonRelaxDeps = [ "aiohttp" ];
@@ -34,11 +34,17 @@ buildPythonPackage rec {
pythonImportsCheck = [ "pyblu" ];
nativeCheckInputs = [
- aioresponses
+ mocket
pytest-asyncio
pytestCheckHook
];
+ disabledTestPaths = [
+ # all tests fail with:
+ # aiohttp.client_exceptions.ClientConnectorDNSError: Cannot connect to host node:11000 ssl:default [Could not contact DNS servers]
+ "tests/test_player.py"
+ ];
+
meta = {
changelog = "https://github.com/LouisChrist/pyblu/releases/tag/${src.tag}";
description = "BluOS API client";
diff --git a/pkgs/development/python-modules/mpd2/default.nix b/pkgs/development/python-modules/python-mpd2/default.nix
similarity index 100%
rename from pkgs/development/python-modules/mpd2/default.nix
rename to pkgs/development/python-modules/python-mpd2/default.nix
diff --git a/pkgs/development/python-modules/qtile/default.nix b/pkgs/development/python-modules/qtile/default.nix
index d096c7a57165..3dfedfa3eb98 100644
--- a/pkgs/development/python-modules/qtile/default.nix
+++ b/pkgs/development/python-modules/qtile/default.nix
@@ -16,7 +16,7 @@
dbus-fast,
iwlib,
libcst,
- mpd2,
+ python-mpd2,
prompt-toolkit,
psutil,
pulsectl-asyncio,
@@ -118,7 +118,7 @@ buildPythonPackage (finalAttrs: {
dbus-fast
iwlib
libcst
- mpd2
+ python-mpd2
# prompt-toolkit used for qtile repl
# see https://github.com/qtile/qtile/blob/master/libqtile/scripts/repl.py
prompt-toolkit
diff --git a/pkgs/development/python-modules/sendspin/default.nix b/pkgs/development/python-modules/sendspin/default.nix
index 67e7bf4a0e44..64c212f41054 100644
--- a/pkgs/development/python-modules/sendspin/default.nix
+++ b/pkgs/development/python-modules/sendspin/default.nix
@@ -8,6 +8,7 @@
numpy,
pulsectl-asyncio,
pychromecast,
+ pytest-asyncio,
pytestCheckHook,
qrcode,
readchar,
@@ -18,14 +19,14 @@
buildPythonPackage (finalAttrs: {
pname = "sendspin";
- version = "5.9.0";
+ version = "7.4.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Sendspin";
repo = "sendspin-cli";
tag = finalAttrs.version;
- hash = "sha256-g+qw3mDHij50CEDKGjltMGNZoI6/HeJQ8zq8NSvD3Ls=";
+ hash = "sha256-B375jsOik0IdLtozH3t3hZKqoO+dtqkzX2bk5YuoO9Y=";
};
postPatch = ''
@@ -45,20 +46,23 @@ buildPythonPackage (finalAttrs: {
readchar
rich
sounddevice
- ];
+ ]
+ ++ aiosendspin.optional-dependencies.server;
optional-dependencies = {
cast = [ pychromecast ];
};
- nativeCheckInputs = [ pytestCheckHook ];
+ nativeCheckInputs = [
+ pytest-asyncio
+ pytestCheckHook
+ ];
pythonImportsCheck = [ "sendspin" ];
disabledTests = [
- # AssertionError: assert None == (1, 'Digital')
- "test_alsa_available_for_hw_device_with_mixer"
- "test_hifiberry_dac_discovery"
+ # requires internet
+ "test_multi_worker_starts_and_serves_status"
];
meta = {
diff --git a/pkgs/development/python-modules/sounddevice/default.nix b/pkgs/development/python-modules/sounddevice/default.nix
index 3f3fdb55ad07..3ac147f224e8 100644
--- a/pkgs/development/python-modules/sounddevice/default.nix
+++ b/pkgs/development/python-modules/sounddevice/default.nix
@@ -4,6 +4,7 @@
buildPythonPackage,
fetchPypi,
setuptools,
+ setuptools-scm,
cffi,
numpy,
portaudio,
@@ -12,15 +13,18 @@
buildPythonPackage rec {
pname = "sounddevice";
- version = "0.5.3";
+ version = "0.5.5";
pyproject = true;
src = fetchPypi {
inherit pname version;
- hash = "sha256-y6wrYBmPurhFM2l+fEkEzIlexp1fs5c1VsnrdKRimyw=";
+ hash = "sha256-Ikh7ZRmMtb8iCHVRBbUk94rRc+Wra0Rb2rHJifZpjfM=";
};
- build-system = [ setuptools ];
+ build-system = [
+ setuptools
+ setuptools-scm
+ ];
dependencies = [
cffi
@@ -43,7 +47,8 @@ buildPythonPackage rec {
meta = {
description = "Play and Record Sound with Python";
- homepage = "http://python-sounddevice.rtfd.org/";
+ homepage = "https://python-sounddevice.readthedocs.io/";
+ changelog = "https://github.com/spatialaudio/python-sounddevice/releases/tag/${version}";
license = with lib.licenses; [ mit ];
};
}
diff --git a/pkgs/development/python-modules/sounddevice/fix-portaudio-library-path.patch b/pkgs/development/python-modules/sounddevice/fix-portaudio-library-path.patch
index 6ec399e25d5f..89f19cdfe528 100644
--- a/pkgs/development/python-modules/sounddevice/fix-portaudio-library-path.patch
+++ b/pkgs/development/python-modules/sounddevice/fix-portaudio-library-path.patch
@@ -1,8 +1,8 @@
-diff --git a/sounddevice.py b/sounddevice.py
-index 0974289..2d56c28 100644
---- a/sounddevice.py
-+++ b/sounddevice.py
-@@ -58,32 +58,7 @@ from ctypes.util import find_library as _find_library
+diff --git a/src/sounddevice.py b/src/sounddevice.py
+index 00fc6f8..72abede 100644
+--- a/src/sounddevice.py
++++ b/src/sounddevice.py
+@@ -59,36 +59,7 @@
from _sounddevice import ffi as _ffi
@@ -17,22 +17,26 @@ index 0974289..2d56c28 100644
- break
- else:
- raise OSError('PortAudio library not found')
-- _lib = _ffi.dlopen(_libname)
+- _lib: ... = _ffi.dlopen(_libname)
-except OSError:
- if _platform.system() == 'Darwin':
- _libname = 'libportaudio.dylib'
- elif _platform.system() == 'Windows':
-- if 'SD_ENABLE_ASIO' in _os.environ:
-- _libname = 'libportaudio' + _platform.architecture()[0] + '-asio.dll'
+- if _platform.machine().lower() in ('arm64', 'aarch64'):
+- _platform_suffix = 'arm64'
- else:
-- _libname = 'libportaudio' + _platform.architecture()[0] + '.dll'
+- _platform_suffix = _platform.architecture()[0]
+- if 'SD_ENABLE_ASIO' in _os.environ:
+- _libname = 'libportaudio' + _platform_suffix + '-asio.dll'
+- else:
+- _libname = 'libportaudio' + _platform_suffix + '.dll'
- else:
- raise
- import _sounddevice_data
- _libname = _os.path.join(
- next(iter(_sounddevice_data.__path__)), 'portaudio-binaries', _libname)
-- _lib = _ffi.dlopen(_libname)
-+_lib = _ffi.dlopen('@portaudio@')
+- _lib: ... = _ffi.dlopen(_libname)
++_lib: ... = _ffi.dlopen('@portaudio@')
- _sampleformats = {
+ _sampleformats: ... = {
'float32': _lib.paFloat32,
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 9a95fa154501..ee46cfa8c7c5 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -4245,7 +4245,7 @@
];
"mpd" =
ps: with ps; [
- mpd2
+ python-mpd2
];
"mqtt" =
ps: with ps; [
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 5e95fa15ab10..cb5c04222cd6 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -1470,6 +1470,7 @@ mapAliases {
mailnagWithPlugins = throw "mailnagWithPlugins has been removed because mailnag has been marked as broken since 2022."; # Added 2025-10-12
makeOverridable = warnAlias "'makeOverridable' has been removed from pkgs, use `lib.makeOverridable` instead" lib.makeOverridable; # Added 2025-10-30
manaplus = throw "manaplus has been removed, as it was broken"; # Added 2025-08-25
+ mangowc = throw "'mangowc' has been renamed to 'mango'"; # Added 2026-06-23
manrope = throw "'manrope' has been removed because its source has been pulled"; # Added 2025-12-20
mariadb-client = throw "mariadb-client has been renamed to mariadb.client"; # Converted to throw 2025-10-26
marwaita-manjaro = throw "'marwaita-manjaro' has been renamed to/replaced by 'marwaita-teal'"; # Converted to throw 2025-10-27
@@ -2245,7 +2246,8 @@ mapAliases {
transmission_3-gtk = throw "transmission_3-gtk has been removed in favour of transmission_4-gtk. Note that upgrade caused data loss for some users so backup is recommended (see NixOS 24.11 release notes for details)"; # Added 2025-10-26
transmission_3-qt = throw "transmission_3-qt has been removed in favour of transmission_4-qt. Note that upgrade caused data loss for some users so backup is recommended (see NixOS 24.11 release notes for details)"; # Added 2025-10-26
transmission_3_noSystemd = throw "transmission_3_noSystemd has been removed in favour of transmission_4. Note that upgrade caused data loss for some users so backup is recommended (see NixOS 24.11 release notes for details)"; # Added 2025-10-26
- transmission_4-qt = transmission_4-qt5; # Added 2026-06-05
+ transmission_4-qt5 = lib.warnOnInstantiate "'transmission_4-qt5' has been removed in favour of 'transmission_4-qt'" transmission_4-qt; # Added 2026-06-25
+ transmission_4-qt6 = lib.warnOnInstantiate "'transmission_4-qt6' has been renamed to 'transmission_4-qt'" transmission_4-qt; # Added 2026-06-25
travis = throw "'travis' has been removed because upstream has stopped maintaining it, and it contains dependencies with security vulnerabilities."; # Added 2026-02-14
treefmt2 = throw "'treefmt2' has been renamed to/replaced by 'treefmt'"; # Converted to throw 2025-10-27
tremor-language-server = throw "'tremor-language-server' has been removed because it is unmaintained"; # Added 2025-11-17
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index b477f4ce4269..bd5f15a42713 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1855,6 +1855,8 @@ with pkgs;
cffconvert = python3Packages.toPythonApplication python3Packages.cffconvert;
+ aiovban-pyaudio = python3Packages.toPythonApplication python3Packages.aiovban-pyaudio;
+
clickhouse-lts = callPackage ../by-name/cl/clickhouse/lts.nix { };
cmdpack = callPackages ../tools/misc/cmdpack { };
diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix
index ad1f9a67a80a..2d86b5780d55 100644
--- a/pkgs/top-level/python-aliases.nix
+++ b/pkgs/top-level/python-aliases.nix
@@ -371,6 +371,7 @@ mapAliases {
monarchmoney = throw "'monarchmoney' has been renamed to/replaced by 'monarchmoneycommunity'"; # Added 2026-03-05
monkeytype = throw "'monkeytype' has been removed as it was unmaintained upstream"; # Added 2026-04-19
moretools = "'moretools' has been removed because it is unmaintained"; # Added 2026-01-19
+ mpd2 = warnAlias "'mpd2' has been renamed to 'python-mpd2'"; # Added 2026-06-14
mpire = throw "'mpire' has been removed because it is unused in Nixpkgs"; # Added 2026-06-22
msldap-bad = throw "'msldap-bad' has been renamed to/replaced by 'badldap'"; # added 2025-11-06
mullvad-closest = throw "'mullvad-closest' has been removed as it was unmaintained. Consider using 'mullvad-compass' instead."; # Added 2026-01-13
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 4666c70de2f0..f9b1c6175496 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -578,6 +578,8 @@ self: super: with self; {
aiovban = callPackage ../development/python-modules/aiovban { };
+ aiovban-pyaudio = callPackage ../development/python-modules/aiovban-pyaudio { };
+
aiovlc = callPackage ../development/python-modules/aiovlc { };
aiovodafone = callPackage ../development/python-modules/aiovodafone { };
@@ -2030,6 +2032,8 @@ self: super: with self; {
beartype = callPackage ../development/python-modules/beartype { };
+ beat-this = callPackage ../development/python-modules/beat-this { };
+
beaupy = callPackage ../development/python-modules/beaupy { };
beautiful-date = callPackage ../development/python-modules/beautiful-date { };
@@ -5596,6 +5600,8 @@ self: super: with self; {
fastmcp = callPackage ../development/python-modules/fastmcp { };
+ fastmcp-slim = callPackage ../development/python-modules/fastmcp-slim { };
+
fastmri = callPackage ../development/python-modules/fastmri { };
fastnlo-toolkit = toPythonModule (
@@ -7199,6 +7205,8 @@ self: super: with self; {
hebg = callPackage ../development/python-modules/hebg { };
+ hebi-py = callPackage ../development/python-modules/hebi-py { };
+
hegel-ip-client = callPackage ../development/python-modules/hegel-ip-client { };
helion = callPackage ../development/python-modules/helion { };
@@ -10550,8 +10558,6 @@ self: super: with self; {
callPackage ../development/python-modules/mozjpeg_lossless_optimization
{ };
- mpd2 = callPackage ../development/python-modules/mpd2 { };
-
mpegdash = callPackage ../development/python-modules/mpegdash { };
mpi-pytest = callPackage ../development/python-modules/mpi-pytest { };
@@ -11466,6 +11472,8 @@ self: super: with self; {
nmcli = callPackage ../development/python-modules/nmcli { };
+ nnaudio = callPackage ../development/python-modules/nnaudio { };
+
nnpdf = toPythonModule (pkgs.nnpdf.override { python3 = python; });
noaa-coops = callPackage ../development/python-modules/noaa-coops { };
@@ -16308,6 +16316,8 @@ self: super: with self; {
python-motionmount = callPackage ../development/python-modules/python-motionmount { };
+ python-mpd2 = callPackage ../development/python-modules/python-mpd2 { };
+
python-mpv-jsonipc = callPackage ../development/python-modules/python-mpv-jsonipc { };
python-multipart = callPackage ../development/python-modules/python-multipart { };