From be32978058f024f0d5bb329a0e0831ea75992e1f Mon Sep 17 00:00:00 2001 From: Francesco Gazzetta Date: Thu, 2 Apr 2026 07:45:37 +0200 Subject: [PATCH 01/49] organicmaps: 2026.01.26-11 -> 2026.05.27-11, devendor dependencies --- .../organicmaps/force-vendored-protobuf.patch | 24 +++++++++ pkgs/by-name/or/organicmaps/package.nix | 54 +++++++++---------- 2 files changed, 50 insertions(+), 28 deletions(-) create mode 100644 pkgs/by-name/or/organicmaps/force-vendored-protobuf.patch 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 { From ad845e4f3d3db0da0e324b40f1f2ca7dd0b5639f Mon Sep 17 00:00:00 2001 From: Ryan Omasta Date: Thu, 18 Jun 2026 17:04:04 -0600 Subject: [PATCH 02/49] veracrypt: modernize, build with fuse3 --- pkgs/by-name/ve/veracrypt/package.nix | 28 ++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) 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; }; From 020480e61ecf8ed7e683d9e3a689c2dee96d2827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 19 Jun 2026 11:25:51 -0700 Subject: [PATCH 03/49] lyx: 2.4.4 -> 2.5.1 Changelog: https://www.lyx.org/announce/2_5_0.txt https://www.lyx.org/announce/2_5_1.txt --- pkgs/by-name/ly/lyx/package.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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; From cef2ac97db72a1f0261377a47c792bf6cb54a5c2 Mon Sep 17 00:00:00 2001 From: Thomas Butter Date: Sun, 21 Jun 2026 20:31:26 +0000 Subject: [PATCH 04/49] ticker: 5.2.1 -> 5.3.0 --- pkgs/by-name/ti/ticker/package.nix | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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" From c930c98d263bc5f4a4162c2152987b31cee06e2e Mon Sep 17 00:00:00 2001 From: yvnth Date: Tue, 23 Jun 2026 13:39:13 +0530 Subject: [PATCH 05/49] mango: rename from mangowc --- pkgs/by-name/ma/{mangowc => mango}/package.nix | 4 +++- pkgs/top-level/aliases.nix | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) rename pkgs/by-name/ma/{mangowc => mango}/package.nix (95%) 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/top-level/aliases.nix b/pkgs/top-level/aliases.nix index b31726dc2518..54300b0c53c8 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1463,6 +1463,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 From a443ef4a46d192adf6ea3018753926bf7aca250e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 23 Jun 2026 23:10:33 +0000 Subject: [PATCH 06/49] urbit: 4.3 -> 4.5 --- pkgs/by-name/ur/urbit/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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}"); }; From d7666725fbe73e30c573087c112e6c987f5341f6 Mon Sep 17 00:00:00 2001 From: gitmpr <89863774+gitmpr@users.noreply.github.com> Date: Wed, 24 Jun 2026 22:55:37 +0200 Subject: [PATCH 07/49] neovim-remote: add patch to use importlib.metadata --- .../use-importlib-metadata.patch | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 pkgs/by-name/ne/neovim-remote/use-importlib-metadata.patch 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]) From 1dc6a05f19df6fdddc5e8515c91e8c943044a90b Mon Sep 17 00:00:00 2001 From: gitmpr <89863774+gitmpr@users.noreply.github.com> Date: Wed, 24 Jun 2026 22:56:05 +0200 Subject: [PATCH 08/49] neovim-remote: fix --version by replacing pkg_resources with importlib.metadata --- pkgs/by-name/ne/neovim-remote/package.nix | 4 ++++ 1 file changed, 4 insertions(+) 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 ]; From a76e01549aa2aceab67cc62144ecc4cb14745909 Mon Sep 17 00:00:00 2001 From: pancho horrillo Date: Thu, 25 Jun 2026 20:40:20 +0200 Subject: [PATCH 09/49] transmission_4-qt*: update aliases transmission_4-qt: dropped as alias, replaced by bona-fide package transmission_4-qt5: dropped, redirect to transmission_4-qt transmission_4-qt6: renamed, redirect to transmission_4-qt --- pkgs/top-level/aliases.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index b31726dc2518..6a870aea21ef 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -2233,7 +2233,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 From 463548ce29755ce844621ba393d8254df1d1f448 Mon Sep 17 00:00:00 2001 From: pancho horrillo Date: Thu, 25 Jun 2026 20:45:48 +0200 Subject: [PATCH 10/49] transmission_4-qt6: rename to transmission_4-qt, drop -qt5 --- pkgs/by-name/tr/transmission_4-qt/package.nix | 3 +++ .../by-name/tr/transmission_4-qt5/package.nix | 3 --- .../by-name/tr/transmission_4-qt6/package.nix | 3 --- pkgs/by-name/tr/transmission_4/package.nix | 22 +++++-------------- 4 files changed, 9 insertions(+), 22 deletions(-) create mode 100644 pkgs/by-name/tr/transmission_4-qt/package.nix delete mode 100644 pkgs/by-name/tr/transmission_4-qt5/package.nix delete mode 100644 pkgs/by-name/tr/transmission_4-qt6/package.nix 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..d7c171a163cb 100644 --- a/pkgs/by-name/tr/transmission_4/package.nix +++ b/pkgs/by-name/tr/transmission_4/package.nix @@ -29,10 +29,8 @@ libpthread-stubs, libayatana-appindicator, wrapGAppsHook4, - enableQt5 ? false, - enableQt6 ? false, + enableQt ? false, enableMac ? false, - qt5, qt6Packages, nixosTests, enableSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, @@ -100,7 +98,7 @@ stdenv.mkDerivation (finalAttrs: { (cmakeBool "ENABLE_DAEMON" enableDaemon) (cmakeBool "ENABLE_GTK" enableGTK4) (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)' \ @@ -145,8 +143,7 @@ stdenv.mkDerivation (finalAttrs: { python3 ] ++ optionals enableGTK4 [ wrapGAppsHook4 ] - ++ optionals enableQt5 [ qt5.wrapQtAppsHook ] - ++ optionals enableQt6 [ qt6Packages.wrapQtAppsHook ] + ++ 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 @@ -230,7 +220,7 @@ 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 "transmission-gtk" From f79bbbb1b3526d215f5033d837b0c181856651c3 Mon Sep 17 00:00:00 2001 From: pancho horrillo Date: Thu, 25 Jun 2026 20:54:08 +0200 Subject: [PATCH 11/49] transmission_4: drop numerical suffix from enableGTK attr Since we are going to maintain only one major version of the graphic libraries from now on, simplify naming for consistency. --- pkgs/by-name/tr/transmission_4-gtk/package.nix | 2 +- pkgs/by-name/tr/transmission_4/package.nix | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) 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/package.nix b/pkgs/by-name/tr/transmission_4/package.nix index d7c171a163cb..96a9b6da8a43 100644 --- a/pkgs/by-name/tr/transmission_4/package.nix +++ b/pkgs/by-name/tr/transmission_4/package.nix @@ -24,7 +24,7 @@ dht, libnatpmp, # Build options - enableGTK4 ? false, + enableGTK ? false, gtkmm4, libpthread-stubs, libayatana-appindicator, @@ -96,7 +96,7 @@ 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" enableQt) (cmakeBool "INSTALL_LIB" installLib) @@ -142,7 +142,7 @@ stdenv.mkDerivation (finalAttrs: { cmake python3 ] - ++ optionals enableGTK4 [ wrapGAppsHook4 ] + ++ optionals enableGTK [ wrapGAppsHook4 ] ++ optionals enableQt [ qt6Packages.wrapQtAppsHook ] ++ optionals enableMac [ ibtool @@ -176,7 +176,7 @@ stdenv.mkDerivation (finalAttrs: { qtsvg ] ) - ++ optionals enableGTK4 [ + ++ optionals enableGTK [ gtkmm4 libpthread-stubs libayatana-appindicator @@ -222,7 +222,7 @@ stdenv.mkDerivation (finalAttrs: { mainProgram = if enableQt then "transmission-qt" - else if enableGTK4 then + else if enableGTK then "transmission-gtk" else if enableMac then "transmission-mac" From abdef5e83babf1d1f2716dae64ebbfa40ba27e84 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 26 Jun 2026 17:36:45 +0000 Subject: [PATCH 12/49] beeper: 4.2.936 -> 4.2.948 --- pkgs/by-name/be/beeper/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; From 2e64b7222e7a78c92fdc1cfd039417f4779b23fd Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 27 Jun 2026 14:50:28 +0000 Subject: [PATCH 13/49] cook-cli: 0.32.0 -> 0.32.1 --- pkgs/by-name/co/cook-cli/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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; From 6a1cf0002f26ed023cc44c5f216050bfc7308ce5 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 28 Jun 2026 00:15:46 +0000 Subject: [PATCH 14/49] grafana-loki: 3.7.2 -> 3.7.3 --- pkgs/by-name/gr/grafana-loki/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; From 3da1aa5aea00d02e6519f58d013f8a186f4a3e1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Sat, 27 Jun 2026 21:08:56 -0700 Subject: [PATCH 15/49] libnfs: 5.0.3 -> 6.0.2 Diff: https://github.com/sahlberg/libnfs/compare/libnfs-5.0.3...libnfs-6.0.2 --- pkgs/by-name/li/libnfs/package.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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; From 7c68582546513a7f5d0c022f1ba08369745af8b4 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sat, 27 Jun 2026 16:29:46 +0200 Subject: [PATCH 16/49] musl: backport stuff needed by systemd These are in musl 1.2.6, but I'm not ready to do that update with all the appropriate testing right now. These should be safe to backport since they're just additions. --- pkgs/by-name/mu/musl/package.nix | 8 +++ pkgs/by-name/mu/musl/renameat2.patch | 55 +++++++++++++++++++++ pkgs/by-name/mu/musl/statx-attr.patch | 35 +++++++++++++ pkgs/by-name/mu/musl/statx-linux-6.11.patch | 49 ++++++++++++++++++ pkgs/by-name/mu/musl/statx.patch | 39 +++++++++++++++ 5 files changed, 186 insertions(+) create mode 100644 pkgs/by-name/mu/musl/renameat2.patch create mode 100644 pkgs/by-name/mu/musl/statx-attr.patch create mode 100644 pkgs/by-name/mu/musl/statx-linux-6.11.patch create mode 100644 pkgs/by-name/mu/musl/statx.patch diff --git a/pkgs/by-name/mu/musl/package.nix b/pkgs/by-name/mu/musl/package.nix index b13ea98e18b7..4e9ce959c31e 100644 --- a/pkgs/by-name/mu/musl/package.nix +++ b/pkgs/by-name/mu/musl/package.nix @@ -98,6 +98,14 @@ stdenv.mkDerivation (finalAttrs: { # drop next release # https://git.musl-libc.org/cgit/musl/commit/?id=fde29c04adbab9d5b081bf6717b5458188647f1c ./stdio-skip-empty-iovec-when-buffering-is-disabled.patch + # Backport addition of statx fields needed by systemd + ./statx.patch + # Backport addition of statx attrs needed by systemd + ./statx-attr.patch + # Backport even more statx stuff for systemd + ./statx-linux-6.11.patch + # Backport addition of renameat2 syscall wrapper needed by systemd + ./renameat2.patch ]; env = { diff --git a/pkgs/by-name/mu/musl/renameat2.patch b/pkgs/by-name/mu/musl/renameat2.patch new file mode 100644 index 000000000000..22416191d20c --- /dev/null +++ b/pkgs/by-name/mu/musl/renameat2.patch @@ -0,0 +1,55 @@ +From 05ce67fea99ca09cd4b6625cff7aec9cc222dd5a Mon Sep 17 00:00:00 2001 +From: Tony Ambardar +Date: Mon, 6 May 2024 20:28:32 -0700 +Subject: add renameat2 linux syscall wrapper + +This syscall is available since Linux 3.15 and also implemented in +glibc from version 2.28. It is commonly used in filesystem or security +contexts. + +Constants RENAME_NOREPLACE, RENAME_EXCHANGE, RENAME_WHITEOUT are +guarded by _GNU_SOURCE as with glibc. +--- + include/stdio.h | 7 +++++++ + src/linux/renameat2.c | 11 +++++++++++ + 2 files changed, 18 insertions(+) + create mode 100644 src/linux/renameat2.c + +diff --git a/include/stdio.h b/include/stdio.h +index cb858618..4ea4c170 100644 +--- a/include/stdio.h ++++ b/include/stdio.h +@@ -158,6 +158,13 @@ char *ctermid(char *); + #define L_ctermid 20 + #endif + ++#if defined(_GNU_SOURCE) ++#define RENAME_NOREPLACE (1 << 0) ++#define RENAME_EXCHANGE (1 << 1) ++#define RENAME_WHITEOUT (1 << 2) ++ ++int renameat2(int, const char *, int, const char *, unsigned); ++#endif + + #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ + || defined(_BSD_SOURCE) +diff --git a/src/linux/renameat2.c b/src/linux/renameat2.c +new file mode 100644 +index 00000000..b8060388 +--- /dev/null ++++ b/src/linux/renameat2.c +@@ -0,0 +1,11 @@ ++#define _GNU_SOURCE ++#include ++#include "syscall.h" ++ ++int renameat2(int oldfd, const char *old, int newfd, const char *new, unsigned flags) ++{ ++#ifdef SYS_renameat ++ if (!flags) return syscall(SYS_renameat, oldfd, old, newfd, new); ++#endif ++ return syscall(SYS_renameat2, oldfd, old, newfd, new, flags); ++} +-- +cgit v1.2.1 + diff --git a/pkgs/by-name/mu/musl/statx-attr.patch b/pkgs/by-name/mu/musl/statx-attr.patch new file mode 100644 index 000000000000..50c2a16d433c --- /dev/null +++ b/pkgs/by-name/mu/musl/statx-attr.patch @@ -0,0 +1,35 @@ +From cbf1c7b605d979bb7fdde8b8e6a66acdba18c6b0 Mon Sep 17 00:00:00 2001 +From: Rich Felker +Date: Wed, 24 Apr 2024 13:26:03 -0400 +Subject: add missing STATX_ATTR_* macros omitted when statx was added + +commit b817541f1cfd38e4b81257b3215e276ea9d0fc61 added statx and the +mask constant macros, but not the stx_attributes[_mask] ones. +--- + include/sys/stat.h | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/include/sys/stat.h b/include/sys/stat.h +index 6690192d..57d640d7 100644 +--- a/include/sys/stat.h ++++ b/include/sys/stat.h +@@ -121,6 +121,16 @@ int lchmod(const char *, mode_t); + #define STATX_BTIME 0x800U + #define STATX_ALL 0xfffU + ++#define STATX_ATTR_COMPRESSED 0x4 ++#define STATX_ATTR_IMMUTABLE 0x10 ++#define STATX_ATTR_APPEND 0x20 ++#define STATX_ATTR_NODUMP 0x40 ++#define STATX_ATTR_ENCRYPTED 0x800 ++#define STATX_ATTR_AUTOMOUNT 0x1000 ++#define STATX_ATTR_MOUNT_ROOT 0x2000 ++#define STATX_ATTR_VERITY 0x100000 ++#define STATX_ATTR_DAX 0x200000 ++ + struct statx_timestamp { + int64_t tv_sec; + uint32_t tv_nsec, __pad; +-- +cgit v1.2.1 + diff --git a/pkgs/by-name/mu/musl/statx-linux-6.11.patch b/pkgs/by-name/mu/musl/statx-linux-6.11.patch new file mode 100644 index 000000000000..6e5564a06ef9 --- /dev/null +++ b/pkgs/by-name/mu/musl/statx-linux-6.11.patch @@ -0,0 +1,49 @@ +From fcdff46a3203400e08a2264c34b3c7fb62bf6969 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= +Date: Thu, 24 Oct 2024 01:19:30 +0200 +Subject: statx: add Linux 6.11 fields/constants + +As of Linux 6.11, these fields and mask macros have been added to +include/uapi/linux/stat.h. +--- + include/sys/stat.h | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/include/sys/stat.h b/include/sys/stat.h +index c924ce2f..4f7dc2b1 100644 +--- a/include/sys/stat.h ++++ b/include/sys/stat.h +@@ -123,6 +123,8 @@ int lchmod(const char *, mode_t); + #define STATX_MNT_ID 0x1000U + #define STATX_DIOALIGN 0x2000U + #define STATX_MNT_ID_UNIQUE 0x4000U ++#define STATX_SUBVOL 0x8000U ++#define STATX_WRITE_ATOMIC 0x10000U + + #define STATX_ATTR_COMPRESSED 0x4 + #define STATX_ATTR_IMMUTABLE 0x10 +@@ -133,6 +135,7 @@ int lchmod(const char *, mode_t); + #define STATX_ATTR_MOUNT_ROOT 0x2000 + #define STATX_ATTR_VERITY 0x100000 + #define STATX_ATTR_DAX 0x200000 ++#define STATX_ATTR_WRITE_ATOMIC 0x400000 + + struct statx_timestamp { + int64_t tv_sec; +@@ -164,7 +167,12 @@ struct statx { + uint32_t stx_dio_mem_align; + uint32_t stx_dio_offset_align; + uint64_t stx_subvol; +- uint64_t __pad1[11]; ++ uint32_t stx_atomic_write_unit_min; ++ uint32_t stx_atomic_write_unit_max; ++ uint32_t stx_atomic_write_segments_max; ++ uint32_t __pad1[1]; ++ uint64_t __pad2[9]; ++ + }; + + int statx(int, const char *__restrict, int, unsigned, struct statx *__restrict); +-- +cgit v1.2.1 + diff --git a/pkgs/by-name/mu/musl/statx.patch b/pkgs/by-name/mu/musl/statx.patch new file mode 100644 index 000000000000..fd08b5303cbb --- /dev/null +++ b/pkgs/by-name/mu/musl/statx.patch @@ -0,0 +1,39 @@ +From 23ab04a8630225371455d5f4538fd078665bb646 Mon Sep 17 00:00:00 2001 +From: Rich Felker +Date: Fri, 13 Sep 2024 17:21:17 -0400 +Subject: statx: add new struct statx fields and corresponding mask macros + +--- + include/sys/stat.h | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/include/sys/stat.h b/include/sys/stat.h +index 57d640d7..0c10dc21 100644 +--- a/include/sys/stat.h ++++ b/include/sys/stat.h +@@ -120,6 +120,9 @@ int lchmod(const char *, mode_t); + #define STATX_BASIC_STATS 0x7ffU + #define STATX_BTIME 0x800U + #define STATX_ALL 0xfffU ++#define STATX_MNT_ID 0x1000U ++#define STATX_DIOALIGN 0x2000U ++#define STATX_MNT_ID_UNIQUE 0x4000U + + #define STATX_ATTR_COMPRESSED 0x4 + #define STATX_ATTR_IMMUTABLE 0x10 +@@ -157,7 +160,11 @@ struct statx { + uint32_t stx_rdev_minor; + uint32_t stx_dev_major; + uint32_t stx_dev_minor; +- uint64_t __pad1[14]; ++ uint64_t stx_mnt_id; ++ uint32_t stx_dio_mem_align; ++ uint32_t stx_dio_offet_align; ++ uint64_t stx_subvol; ++ uint64_t __pad1[11]; + }; + + int statx(int, const char *__restrict, int, unsigned, struct statx *__restrict); +-- +cgit v1.2.1 + From 9ea284ac3f6c383c37bba25c57a74c117a3b7a6c Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sat, 27 Jun 2026 16:30:22 +0200 Subject: [PATCH 17/49] systemd: add libucontext dependency for musl Required for musl, unused otherwise. Fixes: ccc474fdb400 ("systemd: v260.2 -> v261") --- pkgs/os-specific/linux/systemd/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index 4652d2cf8d11..fd0c8cc9da44 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -34,6 +34,7 @@ acl, lz4, openssl, + libucontext, libgcrypt, libidn2, curl, @@ -325,7 +326,9 @@ stdenv.mkDerivation (finalAttrs: { libuuid linuxHeaders ] - + ++ lib.optionals stdenv.hostPlatform.isMusl [ + libucontext + ] ++ lib.optionals withGcrypt [ libgcrypt ] From f352780c96819972b5f87ce0c7487c242f0ec5b4 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sat, 27 Jun 2026 22:56:38 +0200 Subject: [PATCH 18/49] systemd: don't try to dlopen libintl.so.8 on musl --- pkgs/os-specific/linux/systemd/default.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index fd0c8cc9da44..eab1a27055ec 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -319,7 +319,14 @@ stdenv.mkDerivation (finalAttrs: { buildPackages.llvmPackages.libllvm ]; - autoPatchelfFlags = [ "--keep-libc" ]; + autoPatchelfFlags = [ + "--keep-libc" + ] + ++ lib.optionals stdenv.hostPlatform.isMusl [ + # TODO: can be unconditionalized on staging. + # Nixpkgs does not rely on gettext for libintl for musl. + "--ignore-missing=libintl.so.8" + ]; buildInputs = [ libxcrypt From 558a94c5ce9af0e0e5900bc270b2366c9b33f305 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 28 Jun 2026 12:24:57 +0000 Subject: [PATCH 19/49] mpvScripts.manga-reader: 0-unstable-2026-03-03 -> 0-unstable-2026-06-23 --- pkgs/by-name/mp/mpv/scripts/manga-reader.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 { }; From e973b969852edb6ff232f7e80cbf94704cd30554 Mon Sep 17 00:00:00 2001 From: ivann Date: Mon, 8 Jun 2026 16:03:50 +0200 Subject: [PATCH 20/49] koito: init at 0.3.2 --- pkgs/by-name/ko/koito/client.nix | 47 +++++++++ pkgs/by-name/ko/koito/missing-hashes.json | 117 ++++++++++++++++++++++ pkgs/by-name/ko/koito/package.nix | 60 +++++++++++ pkgs/by-name/ko/koito/update.sh | 32 ++++++ 4 files changed, 256 insertions(+) create mode 100644 pkgs/by-name/ko/koito/client.nix create mode 100644 pkgs/by-name/ko/koito/missing-hashes.json create mode 100644 pkgs/by-name/ko/koito/package.nix create mode 100755 pkgs/by-name/ko/koito/update.sh 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..a95823d4b7c7 --- /dev/null +++ b/pkgs/by-name/ko/koito/package.nix @@ -0,0 +1,60 @@ +{ + lib, + buildGoModule, + fetchFromGitHub, + callPackage, + pkg-config, + vips, + makeWrapper, +}: +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 = { + updateScript = ./update.sh; + client = callPackage ./client.nix { + inherit (finalAttrs) src version; + }; + }; + + 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." From 25851326c15e01d67ced855bb39f4175efd20dee Mon Sep 17 00:00:00 2001 From: ivann Date: Mon, 8 Jun 2026 17:00:39 +0200 Subject: [PATCH 21/49] nixos/koito: init module --- .../manual/release-notes/rl-2611.section.md | 2 + nixos/modules/module-list.nix | 1 + nixos/modules/services/web-apps/koito.nix | 140 ++++++++++++++++++ nixos/tests/all-tests.nix | 1 + nixos/tests/web-apps/koito.nix | 20 +++ pkgs/by-name/ko/koito/package.nix | 8 +- 6 files changed, 171 insertions(+), 1 deletion(-) create mode 100644 nixos/modules/services/web-apps/koito.nix create mode 100644 nixos/tests/web-apps/koito.nix diff --git a/nixos/doc/manual/release-notes/rl-2611.section.md b/nixos/doc/manual/release-notes/rl-2611.section.md index 32f2bab23a62..b8a10ea95106 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 6c9f8c03dc5e..9431d4f768e0 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/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 6a1c6f8e1065..5b3601d1822e 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -889,6 +889,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/by-name/ko/koito/package.nix b/pkgs/by-name/ko/koito/package.nix index a95823d4b7c7..1b088365b8f8 100644 --- a/pkgs/by-name/ko/koito/package.nix +++ b/pkgs/by-name/ko/koito/package.nix @@ -6,6 +6,7 @@ pkg-config, vips, makeWrapper, + nixosTests, }: buildGoModule (finalAttrs: { pname = "koito"; @@ -44,10 +45,15 @@ buildGoModule (finalAttrs: { ''; passthru = { - updateScript = ./update.sh; client = callPackage ./client.nix { inherit (finalAttrs) src version; }; + + tests = { + inherit (nixosTests) koito; + }; + + updateScript = ./update.sh; }; meta = { From 8aab6a219f92d3bc97d6f17c24f488bba1bc46c0 Mon Sep 17 00:00:00 2001 From: SandaruKasa Date: Fri, 26 Jun 2026 20:50:01 +0300 Subject: [PATCH 22/49] SDL2_image: split `dev` output output size changes: out: 312K -> 220K dev: 0 -> 96K --- pkgs/by-name/sd/SDL2_image/package.nix | 5 +++++ 1 file changed, 5 insertions(+) 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 From 7eb5bba1b99672aad856202acd21508ae3649847 Mon Sep 17 00:00:00 2001 From: SandaruKasa Date: Fri, 26 Jun 2026 20:50:01 +0300 Subject: [PATCH 23/49] SDL2_ttf: split `dev` output output size changes: out: 200K -> 100K dev: 0 -> 104K --- pkgs/by-name/sd/SDL2_ttf/package.nix | 5 +++++ 1 file changed, 5 insertions(+) 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 From f012cc4b6840f0338ce15532157591faa874179e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 29 Jun 2026 14:15:37 +0200 Subject: [PATCH 24/49] senv: unmark broken on darwin Tested and works on aarch64-darwin now. --- pkgs/by-name/se/senv/package.nix | 1 - 1 file changed, 1 deletion(-) 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"; }; }) From 9dc9790f04858007a9fceea76349e3aa31b27c33 Mon Sep 17 00:00:00 2001 From: Gavin John Date: Fri, 6 Sep 2024 22:13:36 -0700 Subject: [PATCH 25/49] graphlan: init at 0-unstable-2024-08-07 --- pkgs/by-name/gr/graphlan/package.nix | 44 ++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 pkgs/by-name/gr/graphlan/package.nix 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"; + }; +} From 40e8e7a4671f3bdb9d7168d30c472f8c13b093b2 Mon Sep 17 00:00:00 2001 From: Gavin John Date: Sun, 27 Oct 2024 19:51:57 -0700 Subject: [PATCH 26/49] python3Packages.hebi: init at 2.7.9 --- .../python-modules/hebi-py/default.nix | 54 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 56 insertions(+) create mode 100644 pkgs/development/python-modules/hebi-py/default.nix 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/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 03d1906efcd4..a323a7f0c47a 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7192,6 +7192,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 { }; From 0d3874f7cfe5a11be13ff323df5e92a741cbcd0a Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Mon, 29 Jun 2026 03:03:31 -0500 Subject: [PATCH 27/49] vimPlugins: update on 2026-06-29 --- .../editors/vim/plugins/generated.nix | 526 +++++++++--------- .../editors/vim/plugins/overrides.nix | 12 + 2 files changed, 275 insertions(+), 263 deletions(-) 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. From 6199143cefa5635d39e550681cd673349ca81829 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 29 Jun 2026 14:11:29 +0000 Subject: [PATCH 28/49] pgcenter: 0.10.1 -> 0.11.0 --- pkgs/by-name/pg/pgcenter/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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="; From 0ab7cd972d82041ba5162137f5ff4d1256fe8771 Mon Sep 17 00:00:00 2001 From: isabel Date: Mon, 29 Jun 2026 16:19:08 +0100 Subject: [PATCH 29/49] locker: init at 4.0.1 --- pkgs/by-name/lo/locker/package.nix | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 pkgs/by-name/lo/locker/package.nix 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"; + }; +}) From aa6a7306cf203805f1fdb50081408da2bcb5a27f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Sat, 23 May 2026 00:29:20 +0200 Subject: [PATCH 30/49] cliairplay: 1.1-unstable-2026-03-16 -> 1.5-unstable-2026-05-03 --- pkgs/by-name/cl/cliairplay/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 = [ From 2dd4de66564cee1f1d6867139e8b2a79213e54e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Fri, 22 May 2026 01:40:49 +0200 Subject: [PATCH 31/49] python314Packages.aiosendspin: 4.4.0 -> 6.0.5 Diff: https://github.com/Sendspin/aiosendspin/compare/4.4.0...6.0.5 Changelog: https://github.com/Sendspin/aiosendspin/releases/tag/5.0.0 Changelog: https://github.com/Sendspin/aiosendspin/releases/tag/5.1.0 Changelog: https://github.com/Sendspin/aiosendspin/releases/tag/5.1.1 Changelog: https://github.com/Sendspin/aiosendspin/releases/tag/5.1.2 Changelog: https://github.com/Sendspin/aiosendspin/releases/tag/5.2.0 Changelog: https://github.com/Sendspin/aiosendspin/releases/tag/5.3.0 Changelog: https://github.com/Sendspin/aiosendspin/releases/tag/6.0.0 Changelog: https://github.com/Sendspin/aiosendspin/releases/tag/6.0.1 Changelog: https://github.com/Sendspin/aiosendspin/releases/tag/6.0.2 Changelog: https://github.com/Sendspin/aiosendspin/releases/tag/6.0.3 Changelog: https://github.com/Sendspin/aiosendspin/releases/tag/6.0.4 Changelog: https://github.com/Sendspin/aiosendspin/releases/tag/6.0.5 --- .../python-modules/aiosendspin/default.nix | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) 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" From 4f1def1558f94029e0723c7539451a1a0dfa0036 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Fri, 22 May 2026 01:16:31 +0200 Subject: [PATCH 32/49] python314Packages.aiovban: 0.7.0 -> 1.1.0 Diff: https://github.com/wmbest2/aiovban/compare/v0.7.0...v1.1.0 Changelog: https://github.com/wmbest2/aiovban/releases/tag/v0.8.0 Changelog: https://github.com/wmbest2/aiovban/releases/tag/v1.0.2 Changelog: https://github.com/wmbest2/aiovban/releases/tag/v1.0.3 Changelog: https://github.com/wmbest2/aiovban/releases/tag/v1.0.4 Changelog: https://github.com/wmbest2/aiovban/releases/tag/v1.0.5 Changelog: https://github.com/wmbest2/aiovban/releases/tag/v1.0.6 Changelog: https://github.com/wmbest2/aiovban/releases/tag/v1.0.7 Changelog: https://github.com/wmbest2/aiovban/releases/tag/v1.1.0 --- .../python-modules/aiovban/default.nix | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) 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"; From d155d8ea719f2023d4efd072f3286a7457ba4b1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Fri, 22 May 2026 01:38:09 +0200 Subject: [PATCH 33/49] python314Packages.aiovban-pyaudio: init at 1.1.0 --- .../aiovban-pyaudio/default.nix | 44 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + pkgs/top-level/python-packages.nix | 2 + 3 files changed, 48 insertions(+) create mode 100644 pkgs/development/python-modules/aiovban-pyaudio/default.nix 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cdbd50d537e5..5be68bdc26a1 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-packages.nix b/pkgs/top-level/python-packages.nix index 30560967024b..d03e71bd3826 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 { }; From f23faf05018370d08ae790e982e1e3c86260d4a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Fri, 22 May 2026 04:09:16 +0200 Subject: [PATCH 34/49] python314Packages.beat-this: init at 1.1.0 --- .../python-modules/beat-this/default.nix | 73 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 75 insertions(+) create mode 100644 pkgs/development/python-modules/beat-this/default.nix 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/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index d03e71bd3826..1eb593023500 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2032,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 { }; From 071b79e61d475447b2938d06817356274e32e402 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Sun, 14 Jun 2026 02:25:42 +0200 Subject: [PATCH 35/49] python314Packages.fastmcp: 3.2.4 -> 3.3.1, python3Packages.fastmcp-slim: init at 3.3.1 Changelog: https://github.com/PrefectHQ/fastmcp/releases/tag/v3.3.0 Changelog: https://github.com/PrefectHQ/fastmcp/releases/tag/v3.3.1 --- .../python-modules/fastmcp-slim/default.nix | 132 ++++++++++++++ .../python-modules/fastmcp/default.nix | 162 ++++-------------- pkgs/top-level/python-packages.nix | 2 + 3 files changed, 166 insertions(+), 130 deletions(-) create mode 100644 pkgs/development/python-modules/fastmcp-slim/default.nix 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/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 1eb593023500..c2522ca5f542 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5593,6 +5593,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 ( From fa2a788af85583544407ed69911051cc158d60dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Fri, 22 May 2026 05:55:42 +0200 Subject: [PATCH 36/49] python314Packages.nnaudio: init at 0.3.4 --- .../python-modules/nnaudio/default.nix | 80 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 82 insertions(+) create mode 100644 pkgs/development/python-modules/nnaudio/default.nix 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/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index c2522ca5f542..858c3ad155e8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -11467,6 +11467,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 { }; From 897cdc7821880ee12ad72f2ba4c576e15c11895a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 27 May 2026 00:15:29 +0200 Subject: [PATCH 37/49] python314Packages.py-opensonic: 9.1.0 -> 10.0.0, enable tests Diff: https://github.com/khers/py-opensonic/compare/v9.1.0...v10.0.0 Changelog: https://github.com/khers/py-opensonic/blob/refs/tags/v10.0.0/CHANGELOG.md --- .../python-modules/py-opensonic/default.nix | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) 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" From e19d11fbc238cd47980bc5376f452e29a5922f9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Fri, 5 Jun 2026 14:00:17 +0200 Subject: [PATCH 38/49] python314Packages.pyblu: 2.0.6 -> 2.0.8 Diff: https://github.com/LouisChrist/pyblu/compare/v2.0.6...v2.0.8 Changelog: https://github.com/LouisChrist/pyblu/releases/tag/v2.0.7 Changelog: https://github.com/LouisChrist/pyblu/releases/tag/v2.0.8 --- pkgs/development/python-modules/pyblu/default.nix | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) 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"; From ccf8acd1b5114c658661bebe8006f2f4bdfa20d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Sun, 14 Jun 2026 04:37:16 +0200 Subject: [PATCH 39/49] python314Packages.python-mpd2: rename from mpd2 --- pkgs/by-name/au/autosuspend/package.nix | 2 +- pkgs/by-name/hi/high-tide/package.nix | 2 +- pkgs/by-name/mi/miniplayer/package.nix | 2 +- pkgs/by-name/mp/mpdris2/package.nix | 2 +- pkgs/by-name/pl/plattenalbum/package.nix | 2 +- pkgs/by-name/ro/rofi-mpd/package.nix | 2 +- pkgs/by-name/so/sonata/package.nix | 4 ++-- pkgs/by-name/ya/yams/package.nix | 2 +- pkgs/development/python-modules/beets/default.nix | 6 +++--- .../python-modules/{mpd2 => python-mpd2}/default.nix | 0 pkgs/development/python-modules/qtile/default.nix | 4 ++-- pkgs/servers/home-assistant/component-packages.nix | 2 +- pkgs/top-level/python-aliases.nix | 1 + pkgs/top-level/python-packages.nix | 4 ++-- 14 files changed, 18 insertions(+), 17 deletions(-) rename pkgs/development/python-modules/{mpd2 => python-mpd2}/default.nix (100%) 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/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/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/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/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/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/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/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/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/python-aliases.nix b/pkgs/top-level/python-aliases.nix index a8ef3de01e12..f0816d0bb495 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -368,6 +368,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 858c3ad155e8..5967288848fe 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10551,8 +10551,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 { }; @@ -16305,6 +16303,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 { }; From 5744bb6c6a80472b89356cb7658962340c1bc3d0 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Sat, 23 May 2026 19:45:00 +0200 Subject: [PATCH 40/49] python314Packages.sendspin: 5.9.0 -> 7.4.0 Diff: https://github.com/Sendspin/sendspin-cli/compare/5.9.0...7.4.0 Changelog: https://github.com/Sendspin/sendspin-cli/releases/tag/6.0.0 Changelog: https://github.com/Sendspin/sendspin-cli/releases/tag/7.0.0 Changelog: https://github.com/Sendspin/sendspin-cli/releases/tag/7.1.0 Changelog: https://github.com/Sendspin/sendspin-cli/releases/tag/7.2.0 Changelog: https://github.com/Sendspin/sendspin-cli/releases/tag/7.3.0 Changelog: https://github.com/Sendspin/sendspin-cli/releases/tag/7.3.1 Changelog: https://github.com/Sendspin/sendspin-cli/releases/tag/7.4.0 --- .../python-modules/sendspin/default.nix | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) 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 = { From 653d787cc3c9f0fbd48b381df46a4ed41f215ffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Fri, 22 May 2026 01:08:15 +0200 Subject: [PATCH 41/49] python314Packages.sounddevice: 0.5.3 -> 0.5.5 --- .../python-modules/sounddevice/default.nix | 13 ++++++--- .../fix-portaudio-library-path.patch | 28 +++++++++++-------- 2 files changed, 25 insertions(+), 16 deletions(-) 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, From fd0187856307762d13c64e070b2811b85ec65676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 3 Jun 2026 08:29:03 +0200 Subject: [PATCH 42/49] music-assistant: fix update script after reworking music-assistant to no longer use python.pkgs --- pkgs/by-name/mu/music-assistant/update-providers.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/mu/music-assistant/update-providers.py b/pkgs/by-name/mu/music-assistant/update-providers.py index c464fc1cd5b1..1e29491f471c 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 @@ -50,7 +50,7 @@ ROOT: Final = ( .strip() ) -PACKAGE_SET = "music-assistant.python.pkgs" +PACKAGE_SET = "music-assistant.pythonPackages" PACKAGE_MAP = { "git+https://github.com/MarvinSchenkel/pytube.git": "pytube", } @@ -143,7 +143,7 @@ def packageset_attributes(): ROOT, "-qa", "-A", - "music-assistant.python.pkgs", + "music-assistant.pythonPackages", "--arg", "config", "{ allowAliases = false; }", @@ -162,7 +162,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(): From 6d15905968f799db54f20928297bc03d43e5eba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 25 May 2026 03:38:48 +0200 Subject: [PATCH 43/49] music-assistant: track builtin providers to provide a smoother out of the box experience Also see https://github.com/music-assistant/models/blob/1.1.119/music_assistant_models/provider.py#L35 --- .../services/audio/music-assistant.nix | 14 +++++++----- pkgs/by-name/mu/music-assistant/package.nix | 4 +++- .../mu/music-assistant/update-providers.py | 22 ++++++++++++++----- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/nixos/modules/services/audio/music-assistant.nix b/nixos/modules/services/audio/music-assistant.nix index 6ff098a67723..505e57c163e9 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 = { diff --git a/pkgs/by-name/mu/music-assistant/package.nix b/pkgs/by-name/mu/music-assistant/package.nix index 1adda47f84a0..3494bc89cdce 100644 --- a/pkgs/by-name/mu/music-assistant/package.nix +++ b/pkgs/by-name/mu/music-assistant/package.nix @@ -24,7 +24,8 @@ let } ); - providerPackages = (import ./providers.nix).providers; + providersMeta = import ./providers.nix; + providerPackages = providersMeta.providers; providerNames = lib.attrNames providerPackages; providerDependencies = lib.concatMap ( provider: (providerPackages.${provider} pythonPackages) @@ -210,6 +211,7 @@ pythonPackages.buildPythonApplication rec { providerPackages providerNames ; + providersBuiltins = providersMeta.builtins; tests = nixosTests.music-assistant; }; diff --git a/pkgs/by-name/mu/music-assistant/update-providers.py b/pkgs/by-name/mu/music-assistant/update-providers.py index 1e29491f471c..c90eae86df44 100755 --- a/pkgs/by-name/mu/music-assistant/update-providers.py +++ b/pkgs/by-name/mu/music-assistant/update-providers.py @@ -24,6 +24,11 @@ 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 %} [ @@ -197,7 +202,7 @@ 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: @@ -227,22 +232,27 @@ async def resolve_providers(manifests) -> Set: 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]) From 932c63b704f7c63a58eed94c726006b3973fed83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Thu, 21 May 2026 23:44:16 +0200 Subject: [PATCH 44/49] music-assistant: 2.8.7 -> 2.9.4 something tried to use sched_setscheduler on startup, so @resources must be allowed. Could be torch but since that is a general requirement we cannot make this conditional. Changelog: https://github.com/music-assistant/server/releases/tag/2.9.0 Changelog: https://github.com/music-assistant/server/releases/tag/2.9.1 Changelog: https://github.com/music-assistant/server/releases/tag/2.9.2 Changelog: https://github.com/music-assistant/server/releases/tag/2.9.3 Changelog: https://github.com/music-assistant/server/releases/tag/2.9.4 Diff: https://github.com/music-assistant/server/compare/2.8.7...2.9.4 --- .../services/audio/music-assistant.nix | 3 +- .../music-assistant/dont-install-deps.patch | 2 +- pkgs/by-name/mu/music-assistant/frontend.nix | 4 +- pkgs/by-name/mu/music-assistant/package.nix | 41 ++++++- pkgs/by-name/mu/music-assistant/providers.nix | 109 ++++++++++++++++-- .../mu/music-assistant/update-providers.py | 25 +++- 6 files changed, 165 insertions(+), 19 deletions(-) diff --git a/nixos/modules/services/audio/music-assistant.nix b/nixos/modules/services/audio/music-assistant.nix index 505e57c163e9..8397c85592ba 100644 --- a/nixos/modules/services/audio/music-assistant.nix +++ b/nixos/modules/services/audio/music-assistant.nix @@ -171,6 +171,7 @@ 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"; ProtectClock = true; @@ -194,7 +195,7 @@ in SystemCallArchitectures = "native"; SystemCallFilter = [ "@system-service" - "~@privileged @resources" + "~@privileged" "mbind" ] ++ lib.optionals useYTMusic [ 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 3494bc89cdce..ce6c3ad5ac4f 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,10 +16,10 @@ 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="; }; }); } @@ -39,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 = [ @@ -82,6 +83,11 @@ pythonPackages.buildPythonApplication rec { ]; 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 "==" ">=" @@ -110,6 +116,7 @@ pythonPackages.buildPythonApplication rec { "mashumaro" "orjson" "xmltodict" + "zeroconf" ]; pythonRemoveDeps = [ @@ -140,6 +147,7 @@ pythonPackages.buildPythonApplication rec { ifaddr librosa mashumaro + modern-colorthief music-assistant-frontend music-assistant-models mutagen @@ -151,6 +159,8 @@ pythonPackages.buildPythonApplication rec { pyjwt python-slugify shortuuid + torch + torchaudio unidecode xmltodict zeroconf @@ -175,18 +185,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" @@ -194,9 +222,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" 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 c90eae86df44..b9273f4280b7 100755 --- a/pkgs/by-name/mu/music-assistant/update-providers.py +++ b/pkgs/by-name/mu/music-assistant/update-providers.py @@ -33,9 +33,13 @@ TEMPLATE = """# Do not edit manually, run ./update-providers.py {%- 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 %} }; } @@ -62,6 +66,9 @@ PACKAGE_MAP = { 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", @@ -70,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) @@ -194,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 @@ -207,7 +220,7 @@ async def resolve_providers(manifests) -> tuple[Set, Set]: 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: @@ -228,6 +241,12 @@ async def resolve_providers(manifests) -> tuple[Set, 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="") From 44a1f74259647917ed880ec9be38effc791e4e7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 25 May 2026 04:32:28 +0200 Subject: [PATCH 45/49] nixos/music-assistant: allow to access /proc/cpuinfo which is required for torch to function Also to display a warning but that is not that important. --- nixos/modules/services/audio/music-assistant.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/audio/music-assistant.nix b/nixos/modules/services/audio/music-assistant.nix index 8397c85592ba..8be485f1ec76 100644 --- a/nixos/modules/services/audio/music-assistant.nix +++ b/nixos/modules/services/audio/music-assistant.nix @@ -173,7 +173,10 @@ in # 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; From e21205445368867f6c0c32a8a17515ddfa85dc94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 15 Jun 2026 02:49:59 +0200 Subject: [PATCH 46/49] music-assistant: disable default providers --- .../mu/music-assistant/disable-default-provider.diff | 12 ++++++++++++ pkgs/by-name/mu/music-assistant/package.nix | 4 ++++ 2 files changed, 16 insertions(+) create mode 100644 pkgs/by-name/mu/music-assistant/disable-default-provider.diff 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/package.nix b/pkgs/by-name/mu/music-assistant/package.nix index ce6c3ad5ac4f..c66e51117c4d 100644 --- a/pkgs/by-name/mu/music-assistant/package.nix +++ b/pkgs/by-name/mu/music-assistant/package.nix @@ -80,6 +80,10 @@ 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 = '' From 4b3d28a42057784ce6513bdd37694f91857b2e6e Mon Sep 17 00:00:00 2001 From: Diffumist Date: Tue, 30 Jun 2026 00:32:23 +0800 Subject: [PATCH 47/49] vesktop: switch to pnpm_10 --- pkgs/by-name/ve/vesktop/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 [ From 60f9d957a3d1cbe546ad58e08393c5ee04f8fe76 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 29 Jun 2026 17:32:57 +0000 Subject: [PATCH 48/49] nats-server: 2.14.2 -> 2.14.3 --- pkgs/by-name/na/nats-server/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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; From f27ed93faa96aeffc6eb7e47f99467c81fe2fa30 Mon Sep 17 00:00:00 2001 From: K900 Date: Mon, 29 Jun 2026 21:37:49 +0300 Subject: [PATCH 49/49] python3Packages.redis: 8.0.0 -> 8.0.1 Diff: https://github.com/redis/redis-py/compare/v8.0.0...v8.0.1 Changelog: https://github.com/redis/redis-py/releases/tag/v8.0.1 --- pkgs/development/python-modules/redis/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/redis/default.nix b/pkgs/development/python-modules/redis/default.nix index 0800bfe085c3..2e92150b8f9e 100644 --- a/pkgs/development/python-modules/redis/default.nix +++ b/pkgs/development/python-modules/redis/default.nix @@ -41,14 +41,14 @@ buildPythonPackage (finalAttrs: { pname = "redis"; - version = "8.0.0"; + version = "8.0.1"; pyproject = true; src = fetchFromGitHub { owner = "redis"; repo = "redis-py"; tag = "v${finalAttrs.version}"; - hash = "sha256-ze9Q8IfSWDAEH0sR+ql0tOu7ajeXF78AKYD6SHpZqRU="; + hash = "sha256-41i4oZmbWi87KBSaAAaZe2gPlCpgw6kEPne1IA3PHQM="; }; build-system = [ hatchling ];