From 0f9989d81486ebcd64e853c619d4ddcd15d91ed4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Sat, 24 Jan 2026 21:47:59 -0800 Subject: [PATCH 01/48] python3Packages.cucumber-tag-expressions: 7.0.0 -> 8.1.0 Diff: https://github.com/cucumber/tag-expressions/compare/v7.0.0...v8.1.0 Changelog: https://github.com/cucumber/tag-expressions/blob/v8.1.0/CHANGELOG.md --- .../cucumber-tag-expressions/default.nix | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/pkgs/development/python-modules/cucumber-tag-expressions/default.nix b/pkgs/development/python-modules/cucumber-tag-expressions/default.nix index c470b58b890b..dc11e4570d3f 100644 --- a/pkgs/development/python-modules/cucumber-tag-expressions/default.nix +++ b/pkgs/development/python-modules/cucumber-tag-expressions/default.nix @@ -5,27 +5,25 @@ pytestCheckHook, pytest-html, pyyaml, - setuptools, - setuptools-scm, + uv-build, }: buildPythonPackage rec { pname = "cucumber-tag-expressions"; - version = "7.0.0"; + version = "8.1.0"; pyproject = true; src = fetchFromGitHub { owner = "cucumber"; repo = "tag-expressions"; tag = "v${version}"; - hash = "sha256-U8x7c4NeP9GdwormQD79RWcAA2B39Yvrf/Zk0xTUtNA="; + hash = "sha256-3uePEu+4StDP2IV3u/AUZLxxbVVegW7ZSUllWnXU8w0="; }; sourceRoot = "${src.name}/python"; build-system = [ - setuptools - setuptools-scm + uv-build ]; nativeCheckInputs = [ @@ -35,6 +33,7 @@ buildPythonPackage rec { ]; meta = { + changelog = "https://github.com/cucumber/tag-expressions/blob/${src.tag}/CHANGELOG.md"; homepage = "https://github.com/cucumber/tag-expressions"; description = "Provides tag-expression parser for cucumber/behave"; license = lib.licenses.mit; From 8c69b9851d49131e83f4125bbf2447ef98f4eb33 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 19 Feb 2026 00:45:13 +0100 Subject: [PATCH 02/48] syncthing: move env variables into env for structuredAttrs --- pkgs/applications/networking/syncthing/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix index 8e68c1e9f0a7..f41cd2b75748 100644 --- a/pkgs/applications/networking/syncthing/default.nix +++ b/pkgs/applications/networking/syncthing/default.nix @@ -41,8 +41,10 @@ let doCheck = false; - BUILD_USER = "nix"; - BUILD_HOST = "nix"; + env = { + BUILD_USER = "nix"; + BUILD_HOST = "nix"; + }; buildPhase = '' runHook preBuild From ca91bce7a767ea266726b5f79bcb63bb51c379c8 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 19 Feb 2026 18:02:11 +0100 Subject: [PATCH 03/48] aprutil: move NIX_CFLAGS_LINK vars into env for structuredAttrs --- pkgs/by-name/ap/aprutil/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ap/aprutil/package.nix b/pkgs/by-name/ap/aprutil/package.nix index 66c9d3af92dc..f140e7a61493 100644 --- a/pkgs/by-name/ap/aprutil/package.nix +++ b/pkgs/by-name/ap/aprutil/package.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optional stdenv.hostPlatform.isFreeBSD ./include-static-dependencies.patch; - NIX_CFLAGS_LINK = [ "-lcrypt" ]; + env.NIX_CFLAGS_LINK = toString [ "-lcrypt" ]; outputs = [ "out" From 7799e84d4c26413e6ad4c96ce027439088b0f448 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 19 Feb 2026 18:02:22 +0100 Subject: [PATCH 04/48] dsniff: move NIX_CFLAGS_LINK vars into env for structuredAttrs --- pkgs/by-name/ds/dsniff/package.nix | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ds/dsniff/package.nix b/pkgs/by-name/ds/dsniff/package.nix index 22069f210ab6..8d935d49f6f2 100644 --- a/pkgs/by-name/ds/dsniff/package.nix +++ b/pkgs/by-name/ds/dsniff/package.nix @@ -103,8 +103,19 @@ stdenv.mkDerivation (finalAttrs: { libnsl libnl ]; - NIX_CFLAGS_LINK = "-lglib-2.0 -lpthread -ltirpc -lnl-3 -lnl-genl-3"; - env.NIX_CFLAGS_COMPILE = toString [ "-I${libtirpc.dev}/include/tirpc" ]; + + env = { + NIX_CFLAGS_LINK = toString [ + "-lglib-2.0" + "-lpthread" + "-ltirpc" + "-lnl-3" + "-lnl-genl-3" + ]; + NIX_CFLAGS_COMPILE = toString [ + "-I${libtirpc.dev}/include/tirpc" + ]; + }; postPatch = '' for patch in debian/patches/*.patch; do patch < $patch From 4a3323dde789f77843275d6497792d6c5eee137f Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 19 Feb 2026 18:02:22 +0100 Subject: [PATCH 05/48] hebbot: move NIX_CFLAGS_LINK vars into env for structuredAttrs --- pkgs/by-name/he/hebbot/package.nix | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/he/hebbot/package.nix b/pkgs/by-name/he/hebbot/package.nix index ce1a2b6f57e9..8981a5d90c3a 100644 --- a/pkgs/by-name/he/hebbot/package.nix +++ b/pkgs/by-name/he/hebbot/package.nix @@ -40,13 +40,12 @@ rustPlatform.buildRustPackage (finalAttrs: { env = { OPENSSL_NO_VENDOR = 1; + NIX_CFLAGS_LINK = toString [ + "-L${lib.getLib openssl}/lib" + "-L${lib.getLib sqlite}/lib" + ]; }; - NIX_CFLAGS_LINK = [ - "-L${lib.getLib openssl}/lib" - "-L${lib.getLib sqlite}/lib" - ]; - passthru.updateScript = unstableGitUpdater { }; meta = { From b3e1a803ea014abeb5053cf45c9bd07e69915946 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 19 Feb 2026 18:02:22 +0100 Subject: [PATCH 06/48] iortcw: move NIX_CFLAGS_LINK vars into env for structuredAttrs --- pkgs/by-name/io/iortcw/sp.nix | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/io/iortcw/sp.nix b/pkgs/by-name/io/iortcw/sp.nix index 863f61dafdc2..7876192f0660 100644 --- a/pkgs/by-name/io/iortcw/sp.nix +++ b/pkgs/by-name/io/iortcw/sp.nix @@ -47,11 +47,15 @@ stdenv.mkDerivation (finalAttrs: { ]; nativeBuildInputs = [ makeWrapper ]; - env.NIX_CFLAGS_COMPILE = toString [ - "-I${lib.getInclude SDL2}/include/SDL2" - "-I${opusfile.dev}/include/opus" - ]; - NIX_CFLAGS_LINK = [ "-lSDL2" ]; + env = { + NIX_CFLAGS_COMPILE = toString [ + "-I${lib.getInclude SDL2}/include/SDL2" + "-I${opusfile.dev}/include/opus" + ]; + NIX_CFLAGS_LINK = toString [ + "-lSDL2" + ]; + }; postInstall = '' for i in `find $out/opt/iortcw -maxdepth 1 -type f -executable`; do From 2f47d8d196b47555aa510d0037f3f11c2dc18d98 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 19 Feb 2026 18:02:22 +0100 Subject: [PATCH 07/48] tor: move NIX_CFLAGS_LINK vars into env for structuredAttrs --- pkgs/by-name/to/tor/package.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/to/tor/package.nix b/pkgs/by-name/to/tor/package.nix index 1e15bd851875..b647d206d8c3 100644 --- a/pkgs/by-name/to/tor/package.nix +++ b/pkgs/by-name/to/tor/package.nix @@ -85,7 +85,9 @@ stdenv.mkDerivation (finalAttrs: { # cross compiles correctly but needs the following lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "--disable-tool-name-check" ]; - NIX_CFLAGS_LINK = lib.optionalString stdenv.cc.isGNU "-lgcc_s"; + env = lib.optionalAttrs stdenv.cc.isGNU { + NIX_CFLAGS_LINK = "-lgcc_s"; + }; postPatch = '' substituteInPlace contrib/client-tools/torify \ From 56504e71d1937ac65643c49b66acca5d4e36168b Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 19 Feb 2026 18:02:23 +0100 Subject: [PATCH 08/48] ufoai: move NIX_CFLAGS_LINK vars into env for structuredAttrs --- pkgs/by-name/uf/ufoai/package.nix | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/pkgs/by-name/uf/ufoai/package.nix b/pkgs/by-name/uf/ufoai/package.nix index 751fccaaab98..b245e5c92b77 100644 --- a/pkgs/by-name/uf/ufoai/package.nix +++ b/pkgs/by-name/uf/ufoai/package.nix @@ -30,12 +30,21 @@ stdenv.mkDerivation (finalAttrs: { sha256 = "1drhh08cqqkwv1yz3z4ngkplr23pqqrdx6cp8c3isy320gy25cvb"; }; - # Workaround build failure on -fno-common toolchains: - # ld: r_gl.h:52: multiple definition of `qglGenBuffers'; - # r_gl.h:52: first defined here - # TODO: drop once release contains upstream fix: - # https://github.com/ufoai/ufoai/commit/8a3075fffdad294e - env.NIX_CFLAGS_COMPILE = "-fcommon"; + env = { + # Workaround build failure on -fno-common toolchains: + # ld: r_gl.h:52: multiple definition of `qglGenBuffers'; + # r_gl.h:52: first defined here + # TODO: drop once release contains upstream fix: + # https://github.com/ufoai/ufoai/commit/8a3075fffdad294e + NIX_CFLAGS_COMPILE = "-fcommon"; + NIX_CFLAGS_LINK = toString [ + # to avoid occasional runtime error in finding libgcc_s.so.1 + "-lgcc_s" + # tests are underlinked against libm: + # ld: release-linux-x86_64/testall/client/sound/s_mix.c.o: undefined reference to symbol 'acos@@GLIBC_2.2.5' + "-lm" + ]; + }; preConfigure = ''tar xvf "${finalAttrs.srcData}"''; @@ -60,14 +69,6 @@ stdenv.mkDerivation (finalAttrs: { cunit ]; - NIX_CFLAGS_LINK = [ - # to avoid occasional runtime error in finding libgcc_s.so.1 - "-lgcc_s" - # tests are underlinked against libm: - # ld: release-linux-x86_64/testall/client/sound/s_mix.c.o: undefined reference to symbol 'acos@@GLIBC_2.2.5' - "-lm" - ]; - meta = { homepage = "http://ufoai.org"; description = "Squad-based tactical strategy game in the tradition of X-Com"; From 9817b20b4c82533fb3a56e56b6377624f83136cd Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 19 Feb 2026 18:02:23 +0100 Subject: [PATCH 09/48] xbill: move NIX_CFLAGS_LINK vars into env for structuredAttrs --- pkgs/by-name/xb/xbill/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/xb/xbill/package.nix b/pkgs/by-name/xb/xbill/package.nix index a8c1ba2c4aa2..20185d4007aa 100644 --- a/pkgs/by-name/xb/xbill/package.nix +++ b/pkgs/by-name/xb/xbill/package.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: { motif ]; - NIX_CFLAGS_LINK = "-lXpm"; + env.NIX_CFLAGS_LINK = "-lXpm"; configureFlags = [ "--with-x" From 7809d7d18fc804db1226598967a26afb11b744f3 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 19 Feb 2026 18:02:23 +0100 Subject: [PATCH 10/48] zdoom: move NIX_CFLAGS_LINK vars into env for structuredAttrs --- pkgs/by-name/zd/zdoom/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/zd/zdoom/package.nix b/pkgs/by-name/zd/zdoom/package.nix index 44994bececb1..395b59635d4c 100644 --- a/pkgs/by-name/zd/zdoom/package.nix +++ b/pkgs/by-name/zd/zdoom/package.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { sourceRoot = "."; - NIX_CFLAGS_LINK = [ + env.NIX_CFLAGS_LINK = toString [ "-lopenal" "-lfluidsynth" ]; From 3042c2a9f042e83a33bd9e0b57a8f364252e38bc Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 19 Feb 2026 18:02:23 +0100 Subject: [PATCH 11/48] zeroad-unwrapped: move NIX_CFLAGS_LINK vars into env for structuredAttrs --- pkgs/by-name/ze/zeroad-unwrapped/package.nix | 24 +++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/pkgs/by-name/ze/zeroad-unwrapped/package.nix b/pkgs/by-name/ze/zeroad-unwrapped/package.nix index 6e4a62bbbb37..e21726f93b96 100644 --- a/pkgs/by-name/ze/zeroad-unwrapped/package.nix +++ b/pkgs/by-name/ze/zeroad-unwrapped/package.nix @@ -87,18 +87,20 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optional withEditor wxGTK32; - env.NIX_CFLAGS_COMPILE = toString [ - "-I${xorgproto}/include" - "-I${libx11.dev}/include" - "-I${libxcursor.dev}/include" - "-I${SDL2}/include/SDL2" - "-I${fmt_9.dev}/include" - "-I${nvidia-texture-tools.dev}/include" - ]; + env = { + NIX_CFLAGS_COMPILE = toString [ + "-I${xorgproto}/include" + "-I${libx11.dev}/include" + "-I${libxcursor.dev}/include" + "-I${SDL2}/include/SDL2" + "-I${fmt_9.dev}/include" + "-I${nvidia-texture-tools.dev}/include" + ]; - NIX_CFLAGS_LINK = toString [ - "-L${nvidia-texture-tools.lib}/lib/static" - ]; + NIX_CFLAGS_LINK = toString [ + "-L${nvidia-texture-tools.lib}/lib/static" + ]; + }; patches = [ ./rootdir_env.patch From 4bf8d15b6912b90b1fd6b11c86386db89f67b0b8 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 19 Feb 2026 18:03:24 +0100 Subject: [PATCH 12/48] apngasm_2: move NIX_CFLAGS_LINK vars into env for structuredAttrs --- pkgs/applications/graphics/apngasm/2.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/graphics/apngasm/2.nix b/pkgs/applications/graphics/apngasm/2.nix index cd518f5df658..0435ec6236a8 100644 --- a/pkgs/applications/graphics/apngasm/2.nix +++ b/pkgs/applications/graphics/apngasm/2.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { rm -rf libpng zlib zopfli ''; - NIX_CFLAGS_LINK = "-lzopfli"; + env.NIX_CFLAGS_LINK = "-lzopfli"; installPhase = '' install -Dt $out/bin apngasm From 6c2f47af5ec9c99ebad623d7c5a80e97c586a8e2 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 19 Feb 2026 18:03:51 +0100 Subject: [PATCH 13/48] librdf_redland: move NIX_CFLAGS_LINK vars into env for structuredAttrs --- pkgs/development/libraries/librdf/redland.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/librdf/redland.nix b/pkgs/development/libraries/librdf/redland.nix index 25e5492ef71a..9420a6a203ab 100644 --- a/pkgs/development/libraries/librdf/redland.nix +++ b/pkgs/development/libraries/librdf/redland.nix @@ -60,7 +60,7 @@ stdenv.mkDerivation rec { ]; # Fix broken DT_NEEDED in lib/redland/librdf_storage_sqlite.so. - NIX_CFLAGS_LINK = "-lraptor2"; + env.NIX_CFLAGS_LINK = "-lraptor2"; doCheck = false; # fails 1 out of 17 tests with a segmentation fault From 2acdad7b27b16854ce19028b4ff94bb63403bf4f Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 19 Feb 2026 18:13:25 +0100 Subject: [PATCH 14/48] libsndfile: move NIX_CFLAGS_LINK vars into env for structuredAttrs --- pkgs/by-name/li/libsndfile/package.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/li/libsndfile/package.nix b/pkgs/by-name/li/libsndfile/package.nix index a8e74d8884ac..f388a935cfb7 100644 --- a/pkgs/by-name/li/libsndfile/package.nix +++ b/pkgs/by-name/li/libsndfile/package.nix @@ -78,7 +78,10 @@ stdenv.mkDerivation (finalAttrs: { ''; # Needed on Darwin. - NIX_CFLAGS_LINK = "-logg -lvorbis"; + env.NIX_CFLAGS_LINK = toString [ + "-logg" + "-lvorbis" + ]; doCheck = true; preCheck = '' From 87d79ab310b1f73c74c55c833a51a28461654cc5 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 19 Feb 2026 18:13:26 +0100 Subject: [PATCH 15/48] openspades: move NIX_CFLAGS_LINK vars into env for structuredAttrs --- pkgs/by-name/op/openspades/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/op/openspades/package.nix b/pkgs/by-name/op/openspades/package.nix index 4379fbe12e2c..6eebb66c8429 100644 --- a/pkgs/by-name/op/openspades/package.nix +++ b/pkgs/by-name/op/openspades/package.nix @@ -93,7 +93,7 @@ stdenv.mkDerivation rec { cp $notoFont $out/share/games/openspades/Resources/ ''; - NIX_CFLAGS_LINK = "-lopenal"; + env.NIX_CFLAGS_LINK = "-lopenal"; meta = { description = "Compatible client of Ace of Spades 0.75"; From 11f165a094d7d3a5e4cc0c39ff9e36ef1548edeb Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Wed, 25 Feb 2026 09:59:29 -0800 Subject: [PATCH 16/48] nixos/xserver: inform xserver about externally configured drivers This commit adds a new (internal) option to let the xserver module know about externally configured drivers (i.e., drivers that this module should treat as "configured" but otherwise ignore). Without this, the xserver module will think the driver hasn't been configured and throw an error. This commit also expands the documentation to explain when to choose `drivers` versus `externallyConfiguredDrivers`. --- nixos/modules/services/x11/xserver.nix | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index fd52b0023d94..b33e6f4ddda1 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -497,7 +497,25 @@ in internal = true; description = '' A list of attribute sets specifying drivers to be loaded by - the X11 server. + the X11 server. This module will create a Device section in + the Xorg config for every driver listed here, along with a + Screen section if the driver's {option}`display` attribute is + `true`. If such configuration sections should not be created, + use {options}`services.xserver.externallyConfiguredDrivers` + instead. + + Users should not add drivers to this option but should instead + add drivers to {option}`services.xserver.videoDrivers`. + ''; + }; + + externallyConfiguredDrivers = mkOption { + type = types.listOf types.str; + internal = true; + description = '' + A list of externally configured drivers (by name). Modules that + manually configure their drivers should add said drivers to this + list to let this module know that the driver has been configured. ''; }; @@ -865,7 +883,9 @@ in } ] ++ map (driver: { - assertion = builtins.elem driver (builtins.catAttrs "name" cfg.drivers); + assertion = builtins.elem driver ( + (builtins.catAttrs "name" cfg.drivers) ++ cfg.externallyConfiguredDrivers + ); message = "Unknown X11 driver ‘${driver}’ specified in `services.xserver.videoDrivers`."; }) cfg.videoDrivers; From 71f94c224a0f1bf22121b75fe95087174fbc4e28 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Wed, 25 Feb 2026 10:03:05 -0800 Subject: [PATCH 17/48] nixos/hardware.displaylink: add displaylink to xserver.externallyConfiguredDrivers Add "displaylink" to `services.xserver.externallyConfiguredDrivers` to let the xserver module know that said driver has already been configured out-of-band. Fixes #491861 --- nixos/modules/hardware/video/displaylink.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/modules/hardware/video/displaylink.nix b/nixos/modules/hardware/video/displaylink.nix index d8284e85ae45..bee931da1806 100644 --- a/nixos/modules/hardware/video/displaylink.nix +++ b/nixos/modules/hardware/video/displaylink.nix @@ -23,6 +23,8 @@ in boot.extraModulePackages = [ evdi ]; boot.kernelModules = [ "evdi" ]; + services.xserver.externallyConfiguredDrivers = [ "displaylink" ]; + environment.etc."X11/xorg.conf.d/40-displaylink.conf".text = '' Section "OutputClass" Identifier "DisplayLink" From dfa475a8fbe72b38f83ba10883971ceeaa5eb4fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Thu, 26 Feb 2026 21:44:30 -0800 Subject: [PATCH 18/48] rss-glx: drop --- pkgs/by-name/rs/rss-glx/cstddef.patch | 12 ------ pkgs/by-name/rs/rss-glx/package.nix | 54 --------------------------- pkgs/top-level/aliases.nix | 1 + 3 files changed, 1 insertion(+), 66 deletions(-) delete mode 100644 pkgs/by-name/rs/rss-glx/cstddef.patch delete mode 100644 pkgs/by-name/rs/rss-glx/package.nix diff --git a/pkgs/by-name/rs/rss-glx/cstddef.patch b/pkgs/by-name/rs/rss-glx/cstddef.patch deleted file mode 100644 index 8bec510b0405..000000000000 --- a/pkgs/by-name/rs/rss-glx/cstddef.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git i/src/Implicit/impSurface.h w/src/Implicit/impSurface.h -index 41fab81..027587f 100644 ---- i/src/Implicit/impSurface.h -+++ w/src/Implicit/impSurface.h -@@ -25,6 +25,7 @@ - #ifdef WIN32 - #include - #endif -+#include - #include - #include - diff --git a/pkgs/by-name/rs/rss-glx/package.nix b/pkgs/by-name/rs/rss-glx/package.nix deleted file mode 100644 index 251ee7607aa1..000000000000 --- a/pkgs/by-name/rs/rss-glx/package.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ - lib, - stdenv, - fetchurl, - autoconf, - pkg-config, - libx11, - libxext, - libGLU, - libGL, - imagemagick6, - libtiff, - bzip2, -}: - -stdenv.mkDerivation rec { - version = "0.9.1"; - pname = "rss-glx"; - - src = fetchurl { - url = "mirror://sourceforge/rss-glx/rss-glx_${version}.tar.bz2"; - sha256 = "1aikafjqrfmv23jnrrm5d56dg6injh4l67zjdxzdapv9chw7g3cg"; - }; - - nativeBuildInputs = [ - autoconf - pkg-config - ]; - buildInputs = [ - libGLU - libGL - libx11 - libxext - imagemagick6 - libtiff - bzip2 - ]; - - patches = [ - ./cstddef.patch - ]; - - env.NIX_CFLAGS_COMPILE = "-I${imagemagick6.dev}/include/ImageMagick"; - - meta = { - description = "Really Slick Screensavers Port to GLX"; - longDescription = '' - This package currently contains all of the screensavers from the - original collection, plus a few others. - ''; - license = lib.licenses.gpl2Only; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 4a0bd82326c2..3969453e3414 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1714,6 +1714,7 @@ mapAliases { rpPPPoE = warnAlias "'rpPPPoE' has been renamed to 'rp-pppoe'" rp-pppoe; # Added 2026-02-12 rquickshare-legacy = throw "The legacy version depends on insecure package libsoup2, please use the main version"; # Added 2025-10-09 rr-unstable = throw "'rr-unstable' has been renamed to/replaced by 'rr'"; # Converted to throw 2025-10-27 + rss-glx = throw "'rss-glx' has been removed because it was broken and depends on an outdated version of ImageMagick"; # added 2026-02-26 rtx = throw "'rtx' has been renamed to/replaced by 'mise'"; # Converted to throw 2025-10-27 ruby-zoom = throw "'ruby-zoom' has been removed due to lack of maintaince and had not been updated since 2020"; # Added 2025-08-24 ruby_3_1 = throw "ruby_3_1 has been removed, as it is has reached end‐of‐life upstream"; # Added 2025-10-12 From 4d6557cdf0be403979a7ad85a4aaeaf9263ad02c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Thu, 26 Feb 2026 21:38:11 -0800 Subject: [PATCH 19/48] pfstools: drop --- .../haskell-modules/hackage-packages.nix | 2 +- pkgs/tools/graphics/pfstools/default.nix | 91 ------------------- pkgs/tools/graphics/pfstools/glut.patch | 12 --- pkgs/tools/graphics/pfstools/pfsalign.patch | 12 --- pkgs/tools/graphics/pfstools/pfstools.patch | 21 ----- pkgs/tools/graphics/pfstools/threads.patch | 20 ---- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 - 8 files changed, 2 insertions(+), 159 deletions(-) delete mode 100644 pkgs/tools/graphics/pfstools/default.nix delete mode 100644 pkgs/tools/graphics/pfstools/glut.patch delete mode 100644 pkgs/tools/graphics/pfstools/pfsalign.patch delete mode 100644 pkgs/tools/graphics/pfstools/pfstools.patch delete mode 100644 pkgs/tools/graphics/pfstools/threads.patch diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index c9844fc81fdb..b7b9353f9ea8 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -17855,7 +17855,7 @@ self: { badPlatforms = lib.platforms.darwin; hydraPlatforms = lib.platforms.none; } - ) { inherit (pkgs) pfstools; }; + ) { pfstools = null; }; HERA = callPackage ( { diff --git a/pkgs/tools/graphics/pfstools/default.nix b/pkgs/tools/graphics/pfstools/default.nix deleted file mode 100644 index a5ffd9d2d859..000000000000 --- a/pkgs/tools/graphics/pfstools/default.nix +++ /dev/null @@ -1,91 +0,0 @@ -{ - lib, - stdenv, - fetchurl, - cmake, - pkg-config, - wrapQtAppsHook, - openexr, - zlib, - imagemagick6, - libGLU, - libGL, - libglut, - fftwFloat, - fftw, - gsl, - libexif, - perl, - qtbase, - netpbm, - enableUnfree ? false, - opencv, -}: - -stdenv.mkDerivation rec { - pname = "pfstools"; - version = "2.2.0"; - - src = fetchurl { - url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tgz"; - sha256 = "sha256-m/aESYVmMibCGZjutDwmGsuOSziRuakbcpVUQGKJ18o="; - }; - - outputs = [ - "out" - "dev" - "man" - ]; - - cmakeFlags = [ "-DWITH_MATLAB=false" ]; - - preConfigure = '' - sed -e 's|#include( ''${PROJECT_SRC_DIR}/cmake/FindNETPBM.cmake )|include( ''${PROJECT_SOURCE_DIR}/cmake/FindNETPBM.cmake )|' -i CMakeLists.txt - - rm cmake/FindNETPBM.cmake - echo "SET(NETPBM_LIBRARY `find ${lib.getLib netpbm} -name "*${stdenv.hostPlatform.extensions.sharedLibrary}*" -type f`)" >> cmake/FindNETPBM.cmake - echo "SET(NETPBM_LIBRARIES `find ${lib.getLib netpbm} -name "*${stdenv.hostPlatform.extensions.sharedLibrary}*" -type f`)" >> cmake/FindNETPBM.cmake - echo "SET(NETPBM_INCLUDE_DIR ${lib.getDev netpbm}/include/netpbm)" >> cmake/FindNETPBM.cmake - echo "INCLUDE(FindPackageHandleStandardArgs)" >> cmake/FindNETPBM.cmake - echo "FIND_PACKAGE_HANDLE_STANDARD_ARGS(NETPBM DEFAULT_MSG NETPBM_LIBRARY NETPBM_INCLUDE_DIR)" >> cmake/FindNETPBM.cmake - ''; - - nativeBuildInputs = [ - cmake - pkg-config - wrapQtAppsHook - ]; - buildInputs = [ - openexr - zlib - imagemagick6 - fftwFloat - fftw - gsl - libexif - perl - qtbase - netpbm - ] - ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ - libGLU - libGL - libglut - ] - ++ lib.optional enableUnfree (opencv.override { enableUnfree = true; }); - - patches = [ - ./glut.patch - ./threads.patch - ./pfstools.patch - ./pfsalign.patch - ]; - - meta = { - homepage = "https://pfstools.sourceforge.net/"; - description = "Toolkit for manipulation of HDR images"; - platforms = lib.platforms.linux; - license = lib.licenses.lgpl2; - maintainers = [ lib.maintainers.juliendehos ]; - }; -} diff --git a/pkgs/tools/graphics/pfstools/glut.patch b/pkgs/tools/graphics/pfstools/glut.patch deleted file mode 100644 index b540b5ebc6a6..000000000000 --- a/pkgs/tools/graphics/pfstools/glut.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/src/pfsglview/CMakeLists.txt 2022-04-04 23:21:11.164016369 +0300 -+++ b/src/pfsglview/CMakeLists.txt 2022-04-04 23:21:32.757878750 +0300 -@@ -11,8 +11,7 @@ - - add_executable(pfsglview pfsglview.cpp picture_io.cpp module.cpp m_histogram.cpp m_status.cpp m_on_screen_display.cpp) - --# TODO: Use ${GLUT_LIBRARY} instead. --target_link_libraries(pfsglview ${OPENGL_LIBRARIES} ${GLUT_glut_LIBRARY} pfs) -+target_link_libraries(pfsglview ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} pfs) - - install (TARGETS pfsglview DESTINATION bin) - install (FILES pfsglview.1 DESTINATION ${MAN_DIR}) diff --git a/pkgs/tools/graphics/pfstools/pfsalign.patch b/pkgs/tools/graphics/pfstools/pfsalign.patch deleted file mode 100644 index f079415ddcba..000000000000 --- a/pkgs/tools/graphics/pfstools/pfsalign.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/src/camera/CMakeLists.txt 2017-11-13 18:38:27.000000000 +0100 -+++ b/src/camera/CMakeLists.txt 2018-12-30 14:55:30.235571520 +0100 -@@ -9,7 +9,7 @@ target_link_libraries(${TRG} pfs) - install (TARGETS ${TRG} DESTINATION bin) - install (FILES ${TRG}.1 DESTINATION ${MAN_DIR}) - --if( OpenCV_FOUND AND EXIF_FOUND ) -+if( OpenCV_FOUND AND MYPKG_FOUND ) - - set(TRG pfsalign) - add_executable(${TRG} ${TRG}.cpp "${GETOPT_OBJECT}") - diff --git a/pkgs/tools/graphics/pfstools/pfstools.patch b/pkgs/tools/graphics/pfstools/pfstools.patch deleted file mode 100644 index c678a25b01bd..000000000000 --- a/pkgs/tools/graphics/pfstools/pfstools.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- a/CMakeLists.txt 2016-05-26 11:31:16.000000000 +0200 -+++ b/CMakeLists.txt 2016-07-22 19:07:22.074669909 +0200 -@@ -320,12 +320,12 @@ - - # ======== libexif ========== - --find_package(EXIF) --if( NOT EXIF_FOUND ) -- message( "EXIF library (libexif) not found. 'pfsalign' will not be compiled" ) --else( NOT EXIF_FOUND ) -- message(STATUS "libexif library found.") --endif( NOT EXIF_FOUND ) -+find_package( PkgConfig REQUIRED ) -+pkg_check_modules( MYPKG REQUIRED libexif IlmBase ) -+if( MYPKG_FOUND ) -+ message( STATUS "libexif and IlmBase found." ) -+endif( MYPKG_FOUND ) -+include_directories( ${MYPKG_INCLUDE_DIRS} ) - - # ======== Config and sub dirs =========== - diff --git a/pkgs/tools/graphics/pfstools/threads.patch b/pkgs/tools/graphics/pfstools/threads.patch deleted file mode 100644 index e3f61db60899..000000000000 --- a/pkgs/tools/graphics/pfstools/threads.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/src/fileformat/CMakeLists.txt 2016-05-26 11:31:23.000000000 +0200 -+++ b/src/fileformat/CMakeLists.txt 2016-07-21 23:19:56.510958771 +0200 -@@ -53,13 +53,15 @@ - if( OPENEXR_FOUND ) - include_directories("${OPENEXR_INCLUDE_DIR}") - -+ find_package (Threads) -+ - add_executable(pfsinexr pfsinexr.cpp "${GETOPT_OBJECT}") -- target_link_libraries(pfsinexr pfs ${OPENEXR_LIBRARIES}) -+ target_link_libraries(pfsinexr pfs ${OPENEXR_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) - install (TARGETS pfsinexr DESTINATION bin) - install (FILES pfsinexr.1 DESTINATION ${MAN_DIR}) - - add_executable(pfsoutexr pfsoutexr.cpp "${GETOPT_OBJECT}") -- target_link_libraries(pfsoutexr pfs ${OPENEXR_LIBRARIES}) -+ target_link_libraries(pfsoutexr pfs ${OPENEXR_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) - install (TARGETS pfsoutexr DESTINATION bin) - install (FILES pfsoutexr.1 DESTINATION ${MAN_DIR}) - endif( OPENEXR_FOUND ) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 4a0bd82326c2..f18b4ac2e2a3 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1534,6 +1534,7 @@ mapAliases { percona-xtrabackup_lts = throw "'percona-xtrabackup_lts' has been renamed to/replaced by 'percona-xtrabackup'"; # Converted to throw 2025-10-27 peruse = throw "'peruse' has been removed as it depends on KDE Gear 5, which has reached EOL"; # Added 2025-08-20 petrifoo = throw "'petrifoo' was remove due to lack of maintenance and relying on gtk2"; # Added 2025-12-02 + pfstools = throw "'pfstools' was removed because it was broken and depends on an old version of ImageMagick"; # added 2026-02-26 pg_cron = throw "'pg_cron' has been removed. Use 'postgresqlPackages.pg_cron' instead."; # Added 2025-07-19 pg_hll = throw "'pg_hll' has been removed. Use 'postgresqlPackages.pg_hll' instead."; # Added 2025-07-19 pg_repack = throw "'pg_repack' has been removed. Use 'postgresqlPackages.pg_repack' instead."; # Added 2025-07-19 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b0bec92c53e1..a6101ced494c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3232,8 +3232,6 @@ with pkgs; ssh = openssh; }; - pfstools = libsForQt5.callPackage ../tools/graphics/pfstools { }; - phosh = callPackage ../applications/window-managers/phosh { }; phosh-mobile-settings = From f461776ceffa0132a3fdbbcc5a1fa9f8dff665ea Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 27 Feb 2026 11:02:08 +0000 Subject: [PATCH 20/48] homebridge-config-ui-x: 5.17.0 -> 5.18.0 --- pkgs/by-name/ho/homebridge-config-ui-x/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ho/homebridge-config-ui-x/package.nix b/pkgs/by-name/ho/homebridge-config-ui-x/package.nix index d3e3dbcde2a3..94bb3693acc1 100644 --- a/pkgs/by-name/ho/homebridge-config-ui-x/package.nix +++ b/pkgs/by-name/ho/homebridge-config-ui-x/package.nix @@ -13,23 +13,23 @@ buildNpmPackage.override { nodejs = nodejs_22; } (finalAttrs: { pname = "homebridge-config-ui-x"; - version = "5.17.0"; + version = "5.18.0"; src = fetchFromGitHub { owner = "homebridge"; repo = "homebridge-config-ui-x"; tag = "v${finalAttrs.version}"; - hash = "sha256-6s3Ia9vWuYJjNnE4iQz8jbOKjcn5dGe8DjpGcsrSwEc="; + hash = "sha256-bdE/uu3uh3qgPNaDKU47wD1LtER/wJfLmwp2J624rK4="; }; # Deps hash for the root package - npmDepsHash = "sha256-HrTnzoN/Mku60U84bh0I+ImlyCLVcfMlOAfjkezHErE="; + npmDepsHash = "sha256-pbmnAAQs6RVwklAoKY4LY0k+nheX2BeAgkQEFNVDofc="; # Deps src and hash for ui subdirectory npmDeps_ui = fetchNpmDeps { name = "npm-deps-ui"; src = "${finalAttrs.src}/ui"; - hash = "sha256-RNzPrSdHYEd8U3FD9h7DiLCWVuRojZgL+Q5mmsPm9wc="; + hash = "sha256-uBB2WxbCXJL2Ys6sMFcLUlh88TLAz3U+XMhvDc8yFPk="; }; # Need to also run npm ci in the ui subdirectory From 031515821995b3e3fee0b8064ade2d7da26495f6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 27 Feb 2026 11:30:30 +0000 Subject: [PATCH 21/48] tempo: 2.10.0 -> 2.10.1 --- pkgs/by-name/te/tempo/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/te/tempo/package.nix b/pkgs/by-name/te/tempo/package.nix index bf05e44aca2a..a47afa496694 100644 --- a/pkgs/by-name/te/tempo/package.nix +++ b/pkgs/by-name/te/tempo/package.nix @@ -7,14 +7,14 @@ buildGoModule (finalAttrs: { pname = "tempo"; - version = "2.10.0"; + version = "2.10.1"; src = fetchFromGitHub { owner = "grafana"; repo = "tempo"; tag = "v${finalAttrs.version}"; fetchSubmodules = true; - hash = "sha256-ciiJg8PdvifYGalfo/V8RFTKkZ8pHM9RlwfGRKeRAhU="; + hash = "sha256-XhtG3+0Xy7Bi3RuY5MNcHB7Hp6lXjzksdGu7eztXmnU="; }; vendorHash = null; From b98c7ea4af439e436b768a599be065c128af5036 Mon Sep 17 00:00:00 2001 From: Sarah Clark Date: Mon, 23 Feb 2026 13:11:04 -0800 Subject: [PATCH 22/48] python3Packages.langgraph-checkpoint: 3.0.1 -> 4.0.0 --- .../python-modules/langgraph-checkpoint/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/langgraph-checkpoint/default.nix b/pkgs/development/python-modules/langgraph-checkpoint/default.nix index a2b12587dc51..4d1eb363635c 100644 --- a/pkgs/development/python-modules/langgraph-checkpoint/default.nix +++ b/pkgs/development/python-modules/langgraph-checkpoint/default.nix @@ -26,14 +26,14 @@ buildPythonPackage rec { pname = "langgraph-checkpoint"; - version = "3.0.1"; + version = "4.0.0"; pyproject = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langgraph"; tag = "checkpoint==${version}"; - hash = "sha256-3hh1KyEIsp9JzhaJW1ycp179FGpggPYzg6OwnD/cTBM="; + hash = "sha256-IE9Y+kFkDN49SuwvTNwa2kK+Hig18sJPZmZCqHUP3DM="; }; sourceRoot = "${src.name}/libs/checkpoint"; From 6a8c9fb83fc8e6360fa68d81b280577b48a4c36d Mon Sep 17 00:00:00 2001 From: Sarah Clark Date: Mon, 23 Feb 2026 13:24:40 -0800 Subject: [PATCH 23/48] python3Packages.langgraph-checkpoint-mongodb: apply correction after python-updater-script --- .../langgraph-checkpoint-mongodb/default.nix | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/langgraph-checkpoint-mongodb/default.nix b/pkgs/development/python-modules/langgraph-checkpoint-mongodb/default.nix index db21b3b8fad7..2fbe14a3c830 100644 --- a/pkgs/development/python-modules/langgraph-checkpoint-mongodb/default.nix +++ b/pkgs/development/python-modules/langgraph-checkpoint-mongodb/default.nix @@ -2,6 +2,7 @@ lib, buildPythonPackage, fetchFromGitHub, + gitUpdater, # build-system hatchling, @@ -14,14 +15,14 @@ buildPythonPackage rec { pname = "langgraph-checkpoint-mongodb"; - version = "0.11.0"; + version = "0.3.1"; pyproject = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain-mongodb"; - tag = "libs/langchain-mongodb/v${version}"; - hash = "sha256-dO0dASjyNMxnbxZ/ry8lcJxedPdrv6coYiTjOcaT8/0="; + tag = "libs/langgraph-checkpoint-mongodb/v${version}"; + hash = "sha256-vCiZ6Mp6aHmSEkLbeM6qTLJaxH0uoAdq80olTT5saX0="; }; sourceRoot = "${src.name}/libs/langgraph-checkpoint-mongodb"; @@ -30,6 +31,10 @@ buildPythonPackage rec { hatchling ]; + pythonRelaxDeps = [ + "pymongo" + ]; + dependencies = [ langgraph-checkpoint langchain-mongodb @@ -41,6 +46,14 @@ buildPythonPackage rec { # Connection refused (to localhost:27017) for all tests doCheck = false; + passthru = { + # python updater script sets the wrong tag + skipBulkUpdate = true; + updateScript = gitUpdater { + rev-prefix = "libs/langgraph-checkpoint-mongodb/v"; + }; + }; + # no pythonImportsCheck as this package does not provide any direct imports pythonImportsCheck = [ "langgraph.checkpoint.mongodb" ]; From 4d7e5d825b33c04c5abe399df834d41e12cb8342 Mon Sep 17 00:00:00 2001 From: Sarah Clark Date: Mon, 23 Feb 2026 13:24:40 -0800 Subject: [PATCH 24/48] python3Packages.langgraph-checkpoint-mongodb: migrate to finalAttrs --- .../langgraph-checkpoint-mongodb/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/langgraph-checkpoint-mongodb/default.nix b/pkgs/development/python-modules/langgraph-checkpoint-mongodb/default.nix index 2fbe14a3c830..f16e5a605c15 100644 --- a/pkgs/development/python-modules/langgraph-checkpoint-mongodb/default.nix +++ b/pkgs/development/python-modules/langgraph-checkpoint-mongodb/default.nix @@ -13,7 +13,7 @@ pymongo, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "langgraph-checkpoint-mongodb"; version = "0.3.1"; pyproject = true; @@ -21,11 +21,11 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain-mongodb"; - tag = "libs/langgraph-checkpoint-mongodb/v${version}"; + tag = "libs/langgraph-checkpoint-mongodb/v${finalAttrs.version}"; hash = "sha256-vCiZ6Mp6aHmSEkLbeM6qTLJaxH0uoAdq80olTT5saX0="; }; - sourceRoot = "${src.name}/libs/langgraph-checkpoint-mongodb"; + sourceRoot = "${finalAttrs.src.name}/libs/langgraph-checkpoint-mongodb"; build-system = [ hatchling @@ -60,8 +60,8 @@ buildPythonPackage rec { meta = { description = "Integrations between MongoDB, Atlas, LangChain, and LangGraph"; homepage = "https://github.com/langchain-ai/langchain-mongodb/tree/main/libs/langgraph-checkpoint-mongodb"; - changelog = "https://github.com/langchain-ai/langchain-mongodb/releases/tag/${src.tag}"; + changelog = "https://github.com/langchain-ai/langchain-mongodb/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ sarahec ]; }; -} +}) From d821d0ba4b20ba659771469487e136263e7a68bb Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 27 Feb 2026 21:09:13 +0000 Subject: [PATCH 25/48] tombi: 0.7.31 -> 0.7.33 --- pkgs/by-name/to/tombi/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/to/tombi/package.nix b/pkgs/by-name/to/tombi/package.nix index fb55ddd68a45..690726f692ef 100644 --- a/pkgs/by-name/to/tombi/package.nix +++ b/pkgs/by-name/to/tombi/package.nix @@ -9,19 +9,19 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "tombi"; - version = "0.7.31"; + version = "0.7.33"; src = fetchFromGitHub { owner = "tombi-toml"; repo = "tombi"; tag = "v${finalAttrs.version}"; - hash = "sha256-1md4NoDoqTcIPXzMK9IdYk8PCf0jcZIUcOViAm7N+90="; + hash = "sha256-MNzz4mgHiKdmrkKwh2E6XlQK2jelEnjoFHolpZJxjw0="; }; # Tests relies on the presence of network doCheck = false; cargoBuildFlags = [ "--package tombi-cli" ]; - cargoHash = "sha256-a7+M+KOYD3SboIzg1kmNV+kehHsae0/+C6hneBeRFGo="; + cargoHash = "sha256-5EZNL5aBdS+1TI4Gx2AQw6Di+5rYQBR3ukexSnFFIcs="; postPatch = '' substituteInPlace Cargo.toml \ From fa991e91f53335630c2243273b9f38a854f4f637 Mon Sep 17 00:00:00 2001 From: emilylange Date: Fri, 27 Feb 2026 22:55:09 +0100 Subject: [PATCH 26/48] music-assistant: 2.7.8 -> 2.7.9 https://github.com/music-assistant/server/releases/tag/2.7.9 diff: https://github.com/music-assistant/server/compare/2.7.8...2.7.9 --- pkgs/by-name/mu/music-assistant/package.nix | 4 ++-- pkgs/by-name/mu/music-assistant/providers.nix | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/mu/music-assistant/package.nix b/pkgs/by-name/mu/music-assistant/package.nix index 4affc2ae99f0..1d486ac6cfc2 100644 --- a/pkgs/by-name/mu/music-assistant/package.nix +++ b/pkgs/by-name/mu/music-assistant/package.nix @@ -47,14 +47,14 @@ assert python.pkgs.buildPythonApplication rec { pname = "music-assistant"; - version = "2.7.8"; + version = "2.7.9"; pyproject = true; src = fetchFromGitHub { owner = "music-assistant"; repo = "server"; tag = version; - hash = "sha256-o17H8cmMC8szh/hfgdq0JWCPh45TkrhuXOikr+DcBw8="; + hash = "sha256-c6WTalpjaZcUvppyYaTP03ErX5b+k7fUbphj58FVBS8="; }; patches = [ diff --git a/pkgs/by-name/mu/music-assistant/providers.nix b/pkgs/by-name/mu/music-assistant/providers.nix index acf13b443f90..c101c6dc22c4 100644 --- a/pkgs/by-name/mu/music-assistant/providers.nix +++ b/pkgs/by-name/mu/music-assistant/providers.nix @@ -1,7 +1,7 @@ # Do not edit manually, run ./update-providers.py { - version = "2.7.8"; + version = "2.7.9"; providers = { airplay = ps: with ps; [ From cc638722b931f8f6444570a78383fd41d58afdb2 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Sat, 31 Jan 2026 23:35:03 +0000 Subject: [PATCH 27/48] dawarich: 0.37.3 -> 1.3.1 --- pkgs/by-name/da/dawarich/gemset.nix | 122 +++++++++++++++----------- pkgs/by-name/da/dawarich/sources.json | 6 +- 2 files changed, 74 insertions(+), 54 deletions(-) diff --git a/pkgs/by-name/da/dawarich/gemset.nix b/pkgs/by-name/da/dawarich/gemset.nix index fdcca67bb9bd..d0fe707b3d25 100644 --- a/pkgs/by-name/da/dawarich/gemset.nix +++ b/pkgs/by-name/da/dawarich/gemset.nix @@ -431,10 +431,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "003xl226y120cbq1n99805jw6w75gcz1gs941yz3h7li3qy3kqha"; + sha256 = "14qb2gy6ypnqri92v9x8szbq7fzw27pc1z5cl367n5f5cpd2rmks"; type = "gem"; }; - version = "1.18.6"; + version = "1.20.1"; }; brakeman = { dependencies = [ "racc" ]; @@ -469,15 +469,16 @@ dependencies = [ "thor" ]; groups = [ "development" + "staging" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0j0h5cgnzk0ms17ssjkzfzwz65ggrs3lsp53a1j46p4616m1s1bk"; + sha256 = "1sdlr4rj7x5nbrl8zkd3dqdg4fc50bnpx37rl0l0szg4f5n7dj41"; type = "gem"; }; - version = "0.9.2"; + version = "0.9.3"; }; byebug = { groups = [ @@ -690,10 +691,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1rbfqkzr6i8b6538z16chvrkgywf5p5vafsgmnbmvrmh0ingsx2y"; + sha256 = "1h0db8r2v5llxdbzkzyllkfniqw9gm092qn7cbaib73v9lw0c3bm"; type = "gem"; }; - version = "3.5.0"; + version = "3.5.1"; }; debug = { dependencies = [ @@ -773,15 +774,16 @@ groups = [ "default" "development" + "staging" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1hwjsddv666wpp42bip3fqx7c5qq6s8lwf74dj71yn7d1h37c4cy"; + sha256 = "17b1zr9kih0i3wb7h4yq9i8vi6hjfq07857j437a8z7a44qvhxg3"; type = "gem"; }; - version = "3.1.8"; + version = "3.2.0"; }; dotenv-rails = { dependencies = [ @@ -790,15 +792,16 @@ ]; groups = [ "development" + "staging" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1i40g6kzwp8yxsxzpzgsq2hww9gxryl5lck1bwxshn4bd8id3ja6"; + sha256 = "1axy0frn3xn3jf1gdafx5rzz843551q1ckwcbp4zy8m69dajazk5"; type = "gem"; }; - version = "3.1.8"; + version = "3.2.0"; }; drb = { groups = [ @@ -848,10 +851,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0y95ynlfngs0s5x1w6mwralszhbi9d75lcdbdkqk75wcklzqjc17"; + sha256 = "1rcpq49pyaiclpjp3c3qjl25r95hqvin2q2dczaynaj7qncxvv18"; type = "gem"; }; - version = "6.0.0"; + version = "6.0.1"; }; erubi = { groups = [ @@ -1090,14 +1093,15 @@ version = "1.2.1"; }; hashie = { + dependencies = [ "logger" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1nh3arcrbz1rc1cr59qm53sdhqm137b258y8rcb4cvd3y98lwv4x"; + sha256 = "0w1qrab701d3a63aj2qavwc2fpcqmkzzh1w2x93c88zkjqc4frn2"; type = "gem"; }; - version = "5.0.0"; + version = "5.1.0"; }; httparty = { dependencies = [ @@ -1149,6 +1153,7 @@ groups = [ "default" "development" + "staging" "test" ]; platforms = [ @@ -1167,10 +1172,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1jszj95hazqqpnrjjzr326nn1j32xmsc9xvd97mbcrrgdc54858y"; + sha256 = "1k0lk3pwadm2myvpg893n8jshmrf2sigrd4ki15lymy7gixaxqyn"; type = "gem"; }; - version = "0.8.1"; + version = "0.8.2"; }; irb = { dependencies = [ @@ -1200,10 +1205,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1aja320qnimlnfc80wf2i2x8i99kl5sdzfacsfzzfzzs3vzysja3"; + sha256 = "01h8bdksg0cr8bw5dhlhr29ix33rp822jmshy6rdqz4lmk4mdgia"; type = "gem"; }; - version = "1.15.3"; + version = "1.16.0"; }; jmespath = { groups = [ "default" ]; @@ -1390,15 +1395,16 @@ groups = [ "default" "development" + "staging" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0dx316q03x6rpdbl610rdaj2vfd5s8fanixk21j4gv3h5f230nk5"; + sha256 = "1rk0n13c9nmk8di2x5gqk5r04vf8bkp7ff6z0b44wsmc7fndfpnz"; type = "gem"; }; - version = "2.24.1"; + version = "2.25.0"; }; mail = { dependencies = [ @@ -1502,10 +1508,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "04ihgnwp2ka68v82a6jpk9yqmazfwnbk3vsz6sb040kq6gf53dzd"; + sha256 = "0cnpnbn2yivj9gxkh8mjklbgnpx6nf7b8j2hky01dl0040hy0k76"; type = "gem"; }; - version = "1.7.3"; + version = "1.8.0"; }; multi_json = { groups = [ "default" ]; @@ -1610,10 +1616,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1hcwwr2h8jnqqxmf8mfb52b0dchr7pm064ingflb78wa00qhgk6m"; + sha256 = "15anyh2ir3kdji93kw770xxwm5rspn9rzx9b9zh1h9gnclcd4173"; type = "gem"; }; - version = "1.18.10"; + version = "1.19.0"; }; oauth2 = { dependencies = [ @@ -1717,10 +1723,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1q2zvkw34vk1vyhn5kp30783w1wzam9i9g5ygsdjn2gz59kzsw0i"; + sha256 = "0bf3m2ds78scmgacb1wx38zjj1czzkym0bdmgi9vn99rgr6j1qy6"; type = "gem"; }; - version = "1.0.2"; + version = "2.0.1"; }; omniauth_openid_connect = { dependencies = [ @@ -1937,10 +1943,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "00silqnlzzm97gn21lm39q95hjn058waqky44j25r67p9drjy1hh"; + sha256 = "11ggfikcs1lv17nhmhqyyp6z8nq5pkfcj6a904047hljkxm0qlvv"; type = "gem"; }; - version = "1.7.0"; + version = "1.9.0"; }; prometheus_exporter = { dependencies = [ "webrick" ]; @@ -2010,6 +2016,7 @@ groups = [ "default" "development" + "staging" "test" ]; platforms = [ @@ -2028,10 +2035,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0vii1xc7x81hicdbp7dlllhmbw5w3jy20shj696n0vfbbnm2hhw1"; + sha256 = "0x0r3gc66abv8i4dw0x0370b5hrshjfp6kpp7wbp178cy775fypb"; type = "gem"; }; - version = "5.2.6"; + version = "5.3.1"; }; public_suffix = { groups = [ @@ -2180,15 +2187,16 @@ groups = [ "default" "development" + "staging" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "13brkq5xkj6lcdxj3f0k7v28hgrqhqxjlhd4y2vlicy5slgijdzp"; + sha256 = "0s48d2a0z5f0cg4npvzznf933vipi6j7gmk16yc913kpadkw4ybc"; type = "gem"; }; - version = "2.2.1"; + version = "2.3.1"; }; rails = { dependencies = [ @@ -2380,10 +2388,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0p4z1cs2zvkkvl0xiiy76ys1ipbhx0df15241jx7gnp61317qdbi"; + sha256 = "0qvky4s2fx5xbaz1brxanalqbcky3c7xbqd6dicpih860zgrjj29"; type = "gem"; }; - version = "6.16.1"; + version = "7.1.0"; }; redis = { dependencies = [ "redis-client" ]; @@ -2461,6 +2469,27 @@ }; version = "1.7.0"; }; + resolv = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1bc3n2h2dpalms230rsh1zw0jr8nnpcm53x97b8in78y1p0f4372"; + type = "gem"; + }; + version = "0.7.0"; + }; + resolv-replace = { + dependencies = [ "resolv" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0c1vb75a6wjn6cijlrpndqn2xia1nri1jpcigbibji57qqnwklkn"; + type = "gem"; + }; + version = "0.2.0"; + }; responders = { dependencies = [ "actionpack" @@ -3015,21 +3044,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1v74k5yw7ndikr53wgbjn6j51p83qnzqbn9z4b53r102jcx3ri4r"; + sha256 = "1q92y9627yisykyscv0bdsrrgyaajc2qr56dwlzx7ysgigjv4z63"; type = "gem"; }; - version = "3.1.8"; - }; - strong_migrations = { - dependencies = [ "activerecord" ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "09llhlw9ddsjyv6c59z3yjwdhrxc2q60a60wjvqhrhhy96dkmjlb"; - type = "gem"; - }; - version = "2.5.1"; + version = "3.2.0"; }; super_diff = { dependencies = [ @@ -3090,15 +3108,16 @@ groups = [ "default" "development" + "staging" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0gcarlmpfbmqnjvwfz44gdjhcmm634di7plcx2zdgwdhrhifhqw7"; + sha256 = "0wsy88vg2mazl039392hqrcwvs5nb9kq8jhhrrclir2px1gybag3"; type = "gem"; }; - version = "1.4.0"; + version = "1.5.0"; }; timeout = { groups = [ @@ -3377,14 +3396,15 @@ groups = [ "default" "development" + "staging" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "119ypabas886gd0n9kiid3q41w76gz60s8qmiak6pljpkd56ps5j"; + sha256 = "12zcvhzfnlghzw03czy2ifdlyfpq0kcbqcmxqakfkbxxavrr1vrb"; type = "gem"; }; - version = "2.7.3"; + version = "2.7.4"; }; } diff --git a/pkgs/by-name/da/dawarich/sources.json b/pkgs/by-name/da/dawarich/sources.json index f67649193411..88268ba1d56b 100644 --- a/pkgs/by-name/da/dawarich/sources.json +++ b/pkgs/by-name/da/dawarich/sources.json @@ -1,5 +1,5 @@ { - "version": "0.37.3", - "hash": "sha256-cZBT3ek5mzHbPr4aVHU47SNstEuBnpBNaCfaAe/IAEw=", - "npmHash": "sha256-wDe1Zx9HyheS76ltLtDQ+f4M7ohu/pyRuRaGGCnhkQI=" + "version": "1.3.1", + "hash": "sha256-ziOp6R00uaWdv7KHHPe+2H5bX5fRtHmwhfoiQSSqEn4=", + "npmHash": "sha256-Y6tEaApfGXAtmy0W85+4qGbrEkUkrKXTssl7wXeVnQY=" } From 9c5a22f426cdefae0c3dbbd4f8059cdf4e2e8a3a Mon Sep 17 00:00:00 2001 From: emilylange Date: Sat, 28 Feb 2026 00:42:20 +0100 Subject: [PATCH 28/48] Revert "python3Packages.aiosendspin: 2.1.0 -> 3.0.1" This reverts commit 59270f98a872986e40a8fee85240d97651085edb because it broke its only consumer (music-assistant) at runtime. --- pkgs/development/python-modules/aiosendspin/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/aiosendspin/default.nix b/pkgs/development/python-modules/aiosendspin/default.nix index 2a07a632890f..aba70a364c09 100644 --- a/pkgs/development/python-modules/aiosendspin/default.nix +++ b/pkgs/development/python-modules/aiosendspin/default.nix @@ -20,14 +20,14 @@ buildPythonPackage rec { pname = "aiosendspin"; - version = "3.0.1"; + version = "2.1.0"; pyproject = true; src = fetchFromGitHub { owner = "Sendspin"; repo = "aiosendspin"; tag = version; - hash = "sha256-Z0hQyJayA/8OR6nkKxd1HfjskX+WBBkBl7l8rleV+fo="; + hash = "sha256-9VhNtfXH2r/cGkscz51PIK2/66pPOGv0S0IpO0wFvO4="; }; # https://github.com/Sendspin/aiosendspin/blob/1.2.0/pyproject.toml#L7 From 5669fa7f120a2051dd77d3aa03d5491813f75a7d Mon Sep 17 00:00:00 2001 From: emilylange Date: Sat, 28 Feb 2026 00:42:23 +0100 Subject: [PATCH 29/48] python3Packages.aiosendspin: exclude from automatic updates To prevent 9c5a22f426cdefae0c3dbbd4f8059cdf4e2e8a3a from happening again. Co-authored-by: Martin Weinelt --- pkgs/development/python-modules/aiosendspin/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/python-modules/aiosendspin/default.nix b/pkgs/development/python-modules/aiosendspin/default.nix index aba70a364c09..f9c5f4a92c0f 100644 --- a/pkgs/development/python-modules/aiosendspin/default.nix +++ b/pkgs/development/python-modules/aiosendspin/default.nix @@ -55,6 +55,9 @@ buildPythonPackage rec { "aiosendspin" ]; + # needs manual compat testing with music-assistant (sendspin provider) + passthru.skipBulkUpdate = true; # nixpkgs-update: no auto update + meta = { changelog = "https://github.com/Sendspin/aiosendspin/releases/tag/${src.tag}"; description = "Async Python library implementing the Sendspin Protocol"; From 816af80754cc55981ba6b6a1c154026f870b48fb Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 26 Feb 2026 16:04:49 +0100 Subject: [PATCH 30/48] frigate: 0.16.4 -> 0.17.0 https://github.com/blakeblackshear/frigate/releases/tag/v0.17.0 --- nixos/modules/services/video/frigate.nix | 28 +++++++++ pkgs/by-name/fr/frigate/ai-edge-litert.patch | 58 ++++++++++++++---- pkgs/by-name/fr/frigate/constants.patch | 22 ------- pkgs/by-name/fr/frigate/ffmpeg.patch | 8 +-- .../frigate/libteflon-driverlink-path.patch | 13 ++++ .../fr/frigate/onnxruntime-compat.patch | 31 ++++------ pkgs/by-name/fr/frigate/package.nix | 61 +++++++++++-------- .../fr/frigate/proc-cmdline-strip.patch | 11 +--- pkgs/by-name/fr/frigate/web.nix | 9 ++- 9 files changed, 146 insertions(+), 95 deletions(-) delete mode 100644 pkgs/by-name/fr/frigate/constants.patch create mode 100644 pkgs/by-name/fr/frigate/libteflon-driverlink-path.patch diff --git a/nixos/modules/services/video/frigate.nix b/nixos/modules/services/video/frigate.nix index 56c50afb0463..cd2c151e4fdd 100644 --- a/nixos/modules/services/video/frigate.nix +++ b/nixos/modules/services/video/frigate.nix @@ -348,6 +348,10 @@ in proxy_set_header X-Forwarded-Groups $http_x_forwarded_groups; proxy_set_header X-Forwarded-Email $http_x_forwarded_email; proxy_set_header X-Forwarded-Preferred-Username $http_x_forwarded_preferred_username; + proxy_set_header X-Auth-Request-User $http_x_auth_request_user; + proxy_set_header X-Auth-Request-Groups $http_x_auth_request_groups; + proxy_set_header X-Auth-Request-Email $http_x_auth_request_email; + proxy_set_header X-Auth-Request-Preferred-Username $http_x_auth_request_preferred_username; proxy_set_header X-authentik-username $http_x_authentik_username; proxy_set_header X-authentik-groups $http_x_authentik_groups; proxy_set_header X-authentik-email $http_x_authentik_email; @@ -362,6 +366,10 @@ in aio threads; vod hls; + # Use fMP4 (fragmented MP4) instead of MPEG-TS for better performance + # Smaller segments, faster generation, better browser compatibility + vod_hls_container_format fmp4; + secure_token $args; secure_token_types application/vnd.apple.mpegurl; @@ -555,6 +563,16 @@ in ${nginxProxySettings} } + location /api/auth/first_time_login { + auth_request off; + limit_except GET { + deny all; + } + rewrite ^/api(/.*)$ $1 break; + proxy_pass http://frigate-api; + ${nginxProxySettings} + } + location /api/stats { ${nginxAuthRequest} access_log off; @@ -582,6 +600,14 @@ in add_header Cache-Control "public"; ''; }; + "/fonts" = { + root = cfg.package.web; + extraConfig = '' + access_log off; + expires 1y; + add_header Cache-Control "public"; + ''; + }; "/locales/" = { root = cfg.package.web; extraConfig = '' @@ -623,6 +649,8 @@ in vod_manifest_segment_durations_mode accurate; vod_ignore_edit_list on; vod_segment_duration 10000; + + # MPEG-TS settings (not used when fMP4 is enabled, kept for reference) vod_hls_mpegts_align_frames off; vod_hls_mpegts_interleave_frames on; diff --git a/pkgs/by-name/fr/frigate/ai-edge-litert.patch b/pkgs/by-name/fr/frigate/ai-edge-litert.patch index 95a63781ccef..3a8c3f8a566f 100644 --- a/pkgs/by-name/fr/frigate/ai-edge-litert.patch +++ b/pkgs/by-name/fr/frigate/ai-edge-litert.patch @@ -1,8 +1,8 @@ diff --git a/frigate/data_processing/real_time/bird.py b/frigate/data_processing/real_time/bird.py -index d547f2dd..402876b7 100644 +index 7851c0997..520440005 100644 --- a/frigate/data_processing/real_time/bird.py +++ b/frigate/data_processing/real_time/bird.py -@@ -21,7 +21,7 @@ from .api import RealTimeProcessorApi +@@ -22,7 +22,7 @@ from .api import RealTimeProcessorApi try: from tflite_runtime.interpreter import Interpreter except ModuleNotFoundError: @@ -11,11 +11,46 @@ index d547f2dd..402876b7 100644 logger = logging.getLogger(__name__) +diff --git a/frigate/data_processing/real_time/custom_classification.py b/frigate/data_processing/real_time/custom_classification.py +index 229383d9f..2c74a6575 100644 +--- a/frigate/data_processing/real_time/custom_classification.py ++++ b/frigate/data_processing/real_time/custom_classification.py +@@ -32,7 +32,7 @@ from .api import RealTimeProcessorApi + try: + from tflite_runtime.interpreter import Interpreter + except ModuleNotFoundError: +- from tensorflow.lite.python.interpreter import Interpreter ++ from ai_edge_litert.interpreter import Interpreter + + logger = logging.getLogger(__name__) + +@@ -76,7 +76,7 @@ class CustomStateClassificationProcessor(RealTimeProcessorApi): + try: + from tflite_runtime.interpreter import Interpreter + except ModuleNotFoundError: +- from tensorflow.lite.python.interpreter import Interpreter ++ from ai_edge_litert.interpreter import Interpreter + + model_path = os.path.join(self.model_dir, "model.tflite") + labelmap_path = os.path.join(self.model_dir, "labelmap.txt") +diff --git a/frigate/detectors/detector_utils.py b/frigate/detectors/detector_utils.py +index d732de871..d8930b2ae 100644 +--- a/frigate/detectors/detector_utils.py ++++ b/frigate/detectors/detector_utils.py +@@ -6,7 +6,7 @@ import numpy as np + try: + from tflite_runtime.interpreter import Interpreter, load_delegate + except ModuleNotFoundError: +- from tensorflow.lite.python.interpreter import Interpreter, load_delegate ++ from ai_edge_litert.interpreter import Interpreter, load_delegate + + + logger = logging.getLogger(__name__) diff --git a/frigate/detectors/plugins/cpu_tfl.py b/frigate/detectors/plugins/cpu_tfl.py -index 8a54363e..68ae558b 100644 +index 00351f519..6d336bb6b 100644 --- a/frigate/detectors/plugins/cpu_tfl.py +++ b/frigate/detectors/plugins/cpu_tfl.py -@@ -10,7 +10,7 @@ from frigate.detectors.detector_config import BaseDetectorConfig +@@ -12,7 +12,7 @@ from ..detector_utils import tflite_detect_raw, tflite_init try: from tflite_runtime.interpreter import Interpreter except ModuleNotFoundError: @@ -25,23 +60,23 @@ index 8a54363e..68ae558b 100644 logger = logging.getLogger(__name__) diff --git a/frigate/detectors/plugins/edgetpu_tfl.py b/frigate/detectors/plugins/edgetpu_tfl.py -index 246d2dd4..e855bf87 100644 +index 2b94fde39..36c769b4b 100644 --- a/frigate/detectors/plugins/edgetpu_tfl.py +++ b/frigate/detectors/plugins/edgetpu_tfl.py -@@ -11,7 +11,7 @@ from frigate.detectors.detector_config import BaseDetectorConfig +@@ -13,7 +13,7 @@ from frigate.detectors.detector_config import BaseDetectorConfig, ModelTypeEnum try: from tflite_runtime.interpreter import Interpreter, load_delegate except ModuleNotFoundError: - from tensorflow.lite.python.interpreter import Interpreter, load_delegate + from ai_edge_litert.interpreter import Interpreter, load_delegate - logger = logging.getLogger(__name__) + diff --git a/frigate/embeddings/onnx/face_embedding.py b/frigate/embeddings/onnx/face_embedding.py -index eb04b43b..0c6c26fc 100644 +index 04d756897..75dfedc94 100644 --- a/frigate/embeddings/onnx/face_embedding.py +++ b/frigate/embeddings/onnx/face_embedding.py -@@ -14,7 +14,7 @@ from .runner import ONNXModelRunner +@@ -17,7 +17,7 @@ from .base_embedding import BaseEmbedding try: from tflite_runtime.interpreter import Interpreter except ModuleNotFoundError: @@ -51,10 +86,10 @@ index eb04b43b..0c6c26fc 100644 logger = logging.getLogger(__name__) diff --git a/frigate/events/audio.py b/frigate/events/audio.py -index f2a217fd..82206b5a 100644 +index e88f2ae71..ad87d19c1 100644 --- a/frigate/events/audio.py +++ b/frigate/events/audio.py -@@ -36,7 +36,7 @@ from frigate.video import start_or_restart_ffmpeg, stop_ffmpeg +@@ -43,7 +43,7 @@ from frigate.video import start_or_restart_ffmpeg, stop_ffmpeg try: from tflite_runtime.interpreter import Interpreter except ModuleNotFoundError: @@ -62,3 +97,4 @@ index f2a217fd..82206b5a 100644 + from ai_edge_litert.interpreter import Interpreter + logger = logging.getLogger(__name__) diff --git a/pkgs/by-name/fr/frigate/constants.patch b/pkgs/by-name/fr/frigate/constants.patch deleted file mode 100644 index 943e49353c01..000000000000 --- a/pkgs/by-name/fr/frigate/constants.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/frigate/comms/webpush.py b/frigate/comms/webpush.py -index c5986d45..b767e19e 100644 ---- a/frigate/comms/webpush.py -+++ b/frigate/comms/webpush.py -@@ -17,7 +17,7 @@ from titlecase import titlecase - from frigate.comms.base_communicator import Communicator - from frigate.comms.config_updater import ConfigSubscriber - from frigate.config import FrigateConfig --from frigate.const import CONFIG_DIR -+from frigate.const import BASE_DIR, CONFIG_DIR - from frigate.models import User - - logger = logging.getLogger(__name__) -@@ -333,7 +333,7 @@ class WebPushClient(Communicator): # type: ignore[misc] - - title = f"{titlecase(', '.join(sorted_objects).replace('_', ' '))}{' was' if state == 'end' else ''} detected in {titlecase(', '.join(payload['after']['data']['zones']).replace('_', ' '))}" - message = f"Detected on {titlecase(camera.replace('_', ' '))}" -- image = f"{payload['after']['thumb_path'].replace('/media/frigate', '')}" -+ image = f"{payload['after']['thumb_path'].replace(BASE_DIR, '')}" - - # if event is ongoing open to live view otherwise open to recordings view - direct_url = f"/review?id={reviewId}" if state == "end" else f"/#{camera}" diff --git a/pkgs/by-name/fr/frigate/ffmpeg.patch b/pkgs/by-name/fr/frigate/ffmpeg.patch index e5e7c44121ae..2b9d08cf2d06 100644 --- a/pkgs/by-name/fr/frigate/ffmpeg.patch +++ b/pkgs/by-name/fr/frigate/ffmpeg.patch @@ -1,5 +1,5 @@ diff --git a/frigate/config/camera/ffmpeg.py b/frigate/config/camera/ffmpeg.py -index 04bbfac7..396bcc4b 100644 +index 2c1e4cdca..d1a1f7065 100644 --- a/frigate/config/camera/ffmpeg.py +++ b/frigate/config/camera/ffmpeg.py @@ -1,4 +1,5 @@ @@ -8,7 +8,7 @@ index 04bbfac7..396bcc4b 100644 from typing import Union from pydantic import Field, field_validator -@@ -69,21 +70,11 @@ class FfmpegConfig(FrigateBaseModel): +@@ -71,21 +72,11 @@ class FfmpegConfig(FrigateBaseModel): @property def ffmpeg_path(self) -> str: @@ -33,10 +33,10 @@ index 04bbfac7..396bcc4b 100644 class CameraRoleEnum(str, Enum): diff --git a/frigate/record/export.py b/frigate/record/export.py -index 0d3f96da..463bcff4 100644 +index d4b49bb4b..bbcccff61 100644 --- a/frigate/record/export.py +++ b/frigate/record/export.py -@@ -126,7 +126,7 @@ class RecordingExporter(threading.Thread): +@@ -127,7 +127,7 @@ class RecordingExporter(threading.Thread): minutes = int(diff / 60) seconds = int(diff % 60) ffmpeg_cmd = [ diff --git a/pkgs/by-name/fr/frigate/libteflon-driverlink-path.patch b/pkgs/by-name/fr/frigate/libteflon-driverlink-path.patch new file mode 100644 index 000000000000..5adf8d0b26d5 --- /dev/null +++ b/pkgs/by-name/fr/frigate/libteflon-driverlink-path.patch @@ -0,0 +1,13 @@ +diff --git a/frigate/detectors/plugins/teflon_tfl.py b/frigate/detectors/plugins/teflon_tfl.py +index 7e29d6630..98e446d84 100644 +--- a/frigate/detectors/plugins/teflon_tfl.py ++++ b/frigate/detectors/plugins/teflon_tfl.py +@@ -26,7 +26,7 @@ class TeflonTfl(DetectionApi): + + def __init__(self, detector_config: TeflonDetectorConfig): + # Location in Debian's mesa-teflon-delegate +- delegate_library = "/usr/lib/teflon/libteflon.so" ++ delegate_library = "@driverLink@/lib/libteflon.so" + device_config = {} + + interpreter = tflite_load_delegate_interpreter( diff --git a/pkgs/by-name/fr/frigate/onnxruntime-compat.patch b/pkgs/by-name/fr/frigate/onnxruntime-compat.patch index 145c6e6722dc..fca2e6572ab1 100644 --- a/pkgs/by-name/fr/frigate/onnxruntime-compat.patch +++ b/pkgs/by-name/fr/frigate/onnxruntime-compat.patch @@ -1,19 +1,12 @@ -Disable the SimplifedLayerNormFusion optimization for onnxruntime embedding -models to prevent a crash when using FP16 models (like jinna-clip-v1) with newer -onnxruntime versions. - -https://github.com/microsoft/onnxruntime/issues/26717#issuecomment-3800462654 - - -diff --git a/frigate/embeddings/onnx/runner.py b/frigate/embeddings/onnx/runner.py -index c34c97a8d..dca91daae 100644 ---- a/frigate/embeddings/onnx/runner.py -+++ b/frigate/embeddings/onnx/runner.py -@@ -52,6 +52,7 @@ class ONNXModelRunner: - model_path, - providers=providers, - provider_options=options, -+ disabled_optimizers=["SimplifiedLayerNormFusion"], - ) - - def get_input_names(self) -> list[str]: +diff --git a/frigate/detectors/detection_runners.py b/frigate/detectors/detection_runners.py +index fcbb41e66..5b4d3f310 100644 +--- a/frigate/detectors/detection_runners.py ++++ b/frigate/detectors/detection_runners.py +@@ -603,6 +603,7 @@ def get_optimized_runner( + ), + providers=providers, + provider_options=options, ++ disabled_optimizers=["SimplifiedLayerNormFusion"], + ), + model_type=model_type, + ) diff --git a/pkgs/by-name/fr/frigate/package.nix b/pkgs/by-name/fr/frigate/package.nix index ca26f3f83c8b..48eab52aea68 100644 --- a/pkgs/by-name/fr/frigate/package.nix +++ b/pkgs/by-name/fr/frigate/package.nix @@ -1,6 +1,8 @@ { lib, stdenv, + replaceVars, + addDriverRunpath, callPackage, python313Packages, fetchFromGitHub, @@ -9,18 +11,17 @@ sqlite-vec, frigate, nixosTests, - fetchpatch, }: let - version = "0.16.4"; + version = "0.17.0"; src = fetchFromGitHub { name = "frigate-${version}-source"; owner = "blakeblackshear"; repo = "frigate"; tag = "v${version}"; - hash = "sha256-TPiCT/z0YuoQkQsxyZsRMQa0XwqMLCgwMbrASOKrMjA="; + hash = "sha256-K41tWnj0u+Fw+G++aPFfMa0uFYEvvZ0r6xNPQ7J1cYs="; }; frigate-web = callPackage ./web.nix { @@ -77,27 +78,23 @@ python3Packages.buildPythonApplication rec { inherit src; patches = [ - ./constants.patch - # Fixes hardcoded path /media/frigate/clips/faces. Remove in next version. - (fetchpatch { - url = "https://github.com/blakeblackshear/frigate/commit/b86e6e484f64bd43b64d7adebe78671a7a426edb.patch"; - hash = "sha256-1+n0n0yCtjfAHkXzsZdIF0iCVdPGmsG7l8/VTqBVEjU="; - }) + # Always lookup ffmpeg from config setting ./ffmpeg.patch + + # Adjust libteflon.so location + (replaceVars ./libteflon-driverlink-path.patch { + inherit (addDriverRunpath) driverLink; + }) + + # Use ai-edge-litert as tensorflow interpreter # https://github.com/blakeblackshear/frigate/pull/21876 ./ai-edge-litert.patch - (fetchpatch { - # peewee-migrate 0.14.x compat - url = "https://github.com/blakeblackshear/frigate/commit/dde02cadb2168c44e9eb395ddfbb7b169096bd15.patch"; - excludes = [ - "docker/main/requirements-wheels.txt" - "migrations/031_create_trigger_table.py" - "migrations/032_add_password_changed_at.py" - ]; - hash = "sha256-RrmwjE4SHJIUOYfqcCtMy9Pht7UXhHcoAZlFQv9aQFw="; - }) + + # Disable failing optimization in onnxruntime # https://github.com/microsoft/onnxruntime/issues/26717 ./onnxruntime-compat.patch + + # Fix excessive trailing whitespaces in process commandlines # https://github.com/blakeblackshear/frigate/pull/22089 ./proc-cmdline-strip.patch ]; @@ -107,7 +104,7 @@ python3Packages.buildPythonApplication rec { substituteInPlace \ frigate/app.py \ - frigate/test/test_{http,storage}.py \ + frigate/test/test_storage.py \ frigate/test/http_api/base_http_test.py \ --replace-fail "Router(migrate_db)" 'Router(migrate_db, "${placeholder "out"}/share/frigate/migrations")' @@ -118,7 +115,13 @@ python3Packages.buildPythonApplication rec { --replace-fail "/config" "/var/lib/frigate" \ --replace-fail "{CONFIG_DIR}/model_cache" "/var/cache/frigate/model_cache" - substituteInPlace frigate/comms/{config,embeddings}_updater.py frigate/comms/{zmq_proxy,inter_process}.py \ + substituteInPlace \ + frigate/comms/config_updater.py \ + frigate/comms/embeddings_updater.py \ + frigate/comms/inter_process.py \ + frigate/comms/object_detector_signaler.py \ + frigate/comms/zmq_proxy.py \ + frigate/detectors/plugins/zmq_ipc.py \ --replace-fail "ipc:///tmp/cache" "ipc:///run/frigate" substituteInPlace frigate/db/sqlitevecq.py \ @@ -140,25 +143,27 @@ python3Packages.buildPythonApplication rec { dontBuild = true; dependencies = with python3Packages; [ - # docker/main/requirements.txt - scikit-build # docker/main/requirements-wheel.txt + # TODO: degirum (no source repo, binary wheels only) ai-edge-litert aiofiles aiohttp appdirs argcomplete - contextlib2 click + contextlib2 + cryptography distlib fastapi + faster-whisper filelock + google-genai importlib-metadata importlib-resources - google-generativeai joserfc - levenshtein + librosa markupsafe + memray netaddr netifaces norfair @@ -184,14 +189,18 @@ python3Packages.buildPythonApplication rec { py-vapid pywebpush pyzmq + rapidfuzz requests ruamel-yaml scipy setproctitle shapely + sherpa-onnx slowapi + soundfile starlette starlette-context + tensorflow titlecase transformers tzlocal diff --git a/pkgs/by-name/fr/frigate/proc-cmdline-strip.patch b/pkgs/by-name/fr/frigate/proc-cmdline-strip.patch index 426dd20ae266..2dd131ebf419 100644 --- a/pkgs/by-name/fr/frigate/proc-cmdline-strip.patch +++ b/pkgs/by-name/fr/frigate/proc-cmdline-strip.patch @@ -1,13 +1,8 @@ -Strip trailing whitespace from process commandlines. This is annoying for exact -process matches against Prometheus labels. - -https://github.com/blakeblackshear/frigate/pull/22089 - diff --git a/frigate/util/services.py b/frigate/util/services.py -index b31a7eea3..f1e8f0f5f 100644 +index 64d83833d..912ce67bd 100644 --- a/frigate/util/services.py +++ b/frigate/util/services.py -@@ -118,7 +118,7 @@ def get_cpu_stats() -> dict[str, dict]: +@@ -121,7 +121,7 @@ def get_cpu_stats() -> dict[str, dict]: pid = str(process.info["pid"]) try: cpu_percent = process.info["cpu_percent"] @@ -16,7 +11,7 @@ index b31a7eea3..f1e8f0f5f 100644 with open(f"/proc/{pid}/stat", "r") as f: stats = f.readline().split() -@@ -152,7 +152,7 @@ def get_cpu_stats() -> dict[str, dict]: +@@ -155,7 +155,7 @@ def get_cpu_stats() -> dict[str, dict]: "cpu": str(cpu_percent), "cpu_average": str(round(cpu_average_usage, 2)), "mem": f"{mem_pct}", diff --git a/pkgs/by-name/fr/frigate/web.nix b/pkgs/by-name/fr/frigate/web.nix index b6f6e48b4260..7e284818b975 100644 --- a/pkgs/by-name/fr/frigate/web.nix +++ b/pkgs/by-name/fr/frigate/web.nix @@ -18,21 +18,20 @@ buildNpmPackage { --replace-fail '/BASE_PATH/' '/' substituteInPlace \ - src/pages/Exports.tsx \ - src/components/preview/ScrubbablePreview.tsx \ + src/components/card/AnimatedEventCard.tsx \ src/components/card/ExportCard.tsx \ src/components/card/ReviewCard.tsx \ - src/components/card/AnimatedEventCard.tsx \ src/components/player/PreviewThumbnailPlayer.tsx \ + src/components/preview/ScrubbablePreview.tsx \ + src/pages/Exports.tsx \ src/views/system/StorageMetrics.tsx \ - src/components/timeline/EventSegment.tsx \ --replace-fail "/media/frigate" "/var/lib/frigate" \ substituteInPlace src/views/system/StorageMetrics.tsx \ --replace-fail "/tmp/cache" "/var/cache/frigate" ''; - npmDepsHash = "sha256-CrK/6BaKmKIxlohEZdGEEKJkioszBUupyKQx4nBeLqI="; + npmDepsHash = "sha256-iIqP3pspkDbaXZkZ5MIT/GVGiKBJCkFXQ7Av5h1rWKk="; installPhase = '' cp -rv dist/ $out From fe689974f042923beedd73e11f1d4eb10ecad055 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 28 Feb 2026 00:40:24 +0100 Subject: [PATCH 31/48] python3Packages.huggingface: reintroduce at 0.36.2 --- .../python-modules/huggingface-hub/0.nix | 124 ++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 126 insertions(+) create mode 100644 pkgs/development/python-modules/huggingface-hub/0.nix diff --git a/pkgs/development/python-modules/huggingface-hub/0.nix b/pkgs/development/python-modules/huggingface-hub/0.nix new file mode 100644 index 000000000000..1ca7b24da37f --- /dev/null +++ b/pkgs/development/python-modules/huggingface-hub/0.nix @@ -0,0 +1,124 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + filelock, + fsspec, + hf-xet, + packaging, + pyyaml, + requests, + tqdm, + typing-extensions, + + # optional-dependencies + # cli + inquirerpy, + # inference + aiohttp, + # torch + torch, + safetensors, + # hf_transfer + hf-transfer, + # fastai + toml, + fastai, + fastcore, + # tensorflow + tensorflow, + pydot, + graphviz, + # tensorflow-testing + keras, + + # tests + versionCheckHook, +}: + +buildPythonPackage rec { + pname = "huggingface-hub"; + version = "0.36.2"; + pyproject = true; + + src = fetchFromGitHub { + owner = "huggingface"; + repo = "huggingface_hub"; + tag = "v${version}"; + hash = "sha256-cUp5Mm8vgJI/0N/9inQVedGWRde8lioduFoccq6b7UE="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + filelock + fsspec + hf-xet + packaging + pyyaml + requests + tqdm + typing-extensions + ]; + + optional-dependencies = { + all = [ + + ]; + cli = [ + inquirerpy + ]; + inference = [ + aiohttp + ]; + torch = [ + torch + safetensors + ] + ++ safetensors.optional-dependencies.torch; + hf_transfer = [ + hf-transfer + ]; + fastai = [ + toml + fastai + fastcore + ]; + tensorflow = [ + tensorflow + pydot + graphviz + ]; + tensorflow-testing = [ + tensorflow + keras + ]; + hf_xet = [ + hf-xet + ]; + }; + + nativeCheckInputs = [ + versionCheckHook + ]; + versionCheckProgramArg = "version"; + + pythonImportsCheck = [ "huggingface_hub" ]; + + meta = { + description = "Download and publish models and other files on the huggingface.co hub"; + mainProgram = "hf"; + homepage = "https://github.com/huggingface/huggingface_hub"; + changelog = "https://github.com/huggingface/huggingface_hub/releases/tag/v${version}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ + GaetanLepage + osbm + ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e707fbef7e0e..72a6c4eb265d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7184,6 +7184,8 @@ self: super: with self; { huggingface-hub = callPackage ../development/python-modules/huggingface-hub { }; + huggingface-hub_0 = callPackage ../development/python-modules/huggingface-hub/0.nix { }; + human-readable = callPackage ../development/python-modules/human-readable { }; humanfriendly = callPackage ../development/python-modules/humanfriendly { }; From 23bfb601c00bab046ee5a483267ad4b7ce1fcfac Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 28 Feb 2026 00:43:58 +0100 Subject: [PATCH 32/48] python3Packages.transformers_4: reintroduce at 4.57.6 --- .../python-modules/transformers/4.nix | 208 ++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 210 insertions(+) create mode 100644 pkgs/development/python-modules/transformers/4.nix diff --git a/pkgs/development/python-modules/transformers/4.nix b/pkgs/development/python-modules/transformers/4.nix new file mode 100644 index 000000000000..273c3d60fb75 --- /dev/null +++ b/pkgs/development/python-modules/transformers/4.nix @@ -0,0 +1,208 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + filelock, + huggingface-hub, + numpy, + protobuf, + packaging, + pyyaml, + regex, + requests, + tokenizers, + safetensors, + tqdm, + + # optional-dependencies + diffusers, + scikit-learn, + tensorflow, + onnxconverter-common, + opencv4, + tf2onnx, + torch, + accelerate, + faiss, + datasets, + jax, + jaxlib, + flax, + optax, + ftfy, + onnxruntime, + onnxruntime-tools, + cookiecutter, + sagemaker, + fairscale, + optuna, + ray, + pydantic, + uvicorn, + fastapi, + starlette, + librosa, + phonemizer, + torchaudio, + pillow, + timm, + torchvision, + av, + sentencepiece, + hf-xet, +}: + +buildPythonPackage (finalAttrs: { + pname = "transformers"; + version = "4.57.6"; + pyproject = true; + + src = fetchFromGitHub { + owner = "huggingface"; + repo = "transformers"; + tag = "v${finalAttrs.version}"; + hash = "sha256-a78ornUAYlOpr30iFdq1oUiWQTm6GeT0iq8ras5i3DQ="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + filelock + huggingface-hub + numpy + packaging + pyyaml + regex + requests + tokenizers + safetensors + tqdm + ]; + + pythonRelaxDeps = [ "huggingface-hub" ]; + + optional-dependencies = + let + audio = [ + librosa + # pyctcdecode + phonemizer + # kenlm + ]; + vision = [ pillow ]; + in + { + agents = [ + diffusers + accelerate + datasets + torch + sentencepiece + opencv4 + pillow + ]; + ja = [ + # fugashi + # ipadic + # rhoknp + # sudachidict_core + # sudachipy + # unidic + # unidic_lite + ]; + sklearn = [ scikit-learn ]; + tf = [ + tensorflow + onnxconverter-common + tf2onnx + # tensorflow-text + # keras-nlp + ]; + torch = [ + torch + accelerate + ]; + retrieval = [ + faiss + datasets + ]; + flax = [ + jax + jaxlib + flax + optax + ]; + hf_xet = [ + hf-xet + ]; + tokenizers = [ tokenizers ]; + ftfy = [ ftfy ]; + onnxruntime = [ + onnxruntime + onnxruntime-tools + ]; + onnx = [ + onnxconverter-common + tf2onnx + onnxruntime + onnxruntime-tools + ]; + modelcreation = [ cookiecutter ]; + sagemaker = [ sagemaker ]; + deepspeed = [ + # deepspeed + accelerate + ]; + fairscale = [ fairscale ]; + optuna = [ optuna ]; + ray = [ ray ] ++ ray.optional-dependencies.tune; + # sigopt = [ sigopt ]; + # integrations = ray ++ optuna ++ sigopt; + serving = [ + pydantic + uvicorn + fastapi + starlette + ]; + audio = audio; + speech = [ torchaudio ] ++ audio; + torch-speech = [ torchaudio ] ++ audio; + tf-speech = audio; + flax-speech = audio; + timm = [ timm ]; + torch-vision = [ torchvision ] ++ vision; + # natten = [ natten ]; + # codecarbon = [ codecarbon ]; + video = [ + av + ]; + sentencepiece = [ + sentencepiece + protobuf + ]; + }; + + # Many tests require internet access. + doCheck = false; + + pythonImportsCheck = [ "transformers" ]; + + meta = { + broken = lib.versionAtLeast huggingface-hub.version "1.0"; + homepage = "https://github.com/huggingface/transformers"; + description = "Natural Language Processing for TensorFlow 2.0 and PyTorch"; + mainProgram = "transformers-cli"; + changelog = "https://github.com/huggingface/transformers/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.asl20; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ + pashashocky + happysalada + ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 72a6c4eb265d..15d499c9bd01 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -19397,6 +19397,8 @@ self: super: with self; { transformers = callPackage ../development/python-modules/transformers { }; + transformers_4 = callPackage ../development/python-modules/transformers/4.nix { }; + transforms3d = callPackage ../development/python-modules/transforms3d { }; transitions = callPackage ../development/python-modules/transitions { }; From 4c9be371f2a82af24471803518a61be5ca0b671a Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 28 Feb 2026 00:50:01 +0100 Subject: [PATCH 33/48] frigate: pin transformers 4.x to support older hugginggface models The huggingface-hub pin is required for transformers 4.x support. --- pkgs/by-name/fr/frigate/package.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/fr/frigate/package.nix b/pkgs/by-name/fr/frigate/package.nix index 48eab52aea68..7dc8a3620169 100644 --- a/pkgs/by-name/fr/frigate/package.nix +++ b/pkgs/by-name/fr/frigate/package.nix @@ -39,6 +39,9 @@ let hash = "sha256-95xtUzzIxxvDtpHX/5uCHnTQTB8Fc08DZGUOR/SdKLs="; }; }); + + huggingface-hub = super.huggingface-hub_0; + transformers = super.transformers_4; }; }; python3Packages = python.pkgs; From 967403879c125c0ee0796c6a525a220c4606a4cd Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 28 Feb 2026 00:13:49 +0000 Subject: [PATCH 34/48] s7: 11.7-unstable-2026-02-20 -> 11.7-unstable-2026-02-27 --- pkgs/by-name/s7/s7/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/s7/s7/package.nix b/pkgs/by-name/s7/s7/package.nix index 1f6f75f1a1db..a0b8cc669ff3 100644 --- a/pkgs/by-name/s7/s7/package.nix +++ b/pkgs/by-name/s7/s7/package.nix @@ -26,14 +26,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "s7"; - version = "11.7-unstable-2026-02-20"; + version = "11.7-unstable-2026-02-27"; src = fetchFromGitLab { domain = "cm-gitlab.stanford.edu"; owner = "bil"; repo = "s7"; - rev = "d4abc485036d30b65bc80ef041690a1d1fc371c8"; - hash = "sha256-nJskuS4WM58na0ohsNppqKiOLa98TInXkaWvPzhctoY="; + rev = "762eed4ddfc1134f8b18b74a0cc39434a65bc64c"; + hash = "sha256-3ww14LOWres0HA/4TRNMmNFkaFVqXBOrpsJgFv6qaYY="; }; buildInputs = From 7580b8997cf924f4e83832643c9120cde742207c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 28 Feb 2026 00:38:09 +0000 Subject: [PATCH 35/48] xv: 6.1.0 -> 6.2.0 --- pkgs/by-name/xv/xv/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/xv/xv/package.nix b/pkgs/by-name/xv/xv/package.nix index 3902d3f52657..bf7257646780 100644 --- a/pkgs/by-name/xv/xv/package.nix +++ b/pkgs/by-name/xv/xv/package.nix @@ -16,13 +16,13 @@ stdenv.mkDerivation rec { pname = "xv"; - version = "6.1.0"; + version = "6.2.0"; src = fetchFromGitHub { owner = "jasper-software"; repo = "xv"; rev = "v${version}"; - sha256 = "sha256-bq9xEGQRzWZ3/Unu49q6EW9/XSCgpalyXn4l4Mg255g="; + sha256 = "sha256-LylTpHTifH/n2vAPlLQooVM3Oox2BJ9eoQYx3USQ/No="; }; nativeBuildInputs = [ cmake ]; From e868ffccbdfa1286304c7cd6695e65af82a0158c Mon Sep 17 00:00:00 2001 From: sarahec Date: Fri, 27 Feb 2026 17:15:45 -0800 Subject: [PATCH 36/48] Revert "python3Packages.langgraph-store-mongodb: 0.1.1 -> 0.11.0" This reverts commit c0a47d26057583443d8e0e698f6731495936874b. --- .../python-modules/langgraph-store-mongodb/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/langgraph-store-mongodb/default.nix b/pkgs/development/python-modules/langgraph-store-mongodb/default.nix index cda323bee18d..1ec43c58a853 100644 --- a/pkgs/development/python-modules/langgraph-store-mongodb/default.nix +++ b/pkgs/development/python-modules/langgraph-store-mongodb/default.nix @@ -13,14 +13,14 @@ buildPythonPackage rec { pname = "langgraph-store-mongodb"; - version = "0.11.0"; + version = "0.1.1"; pyproject = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain-mongodb"; - tag = "libs/langchain-mongodb/v${version}"; - hash = "sha256-dO0dASjyNMxnbxZ/ry8lcJxedPdrv6coYiTjOcaT8/0="; + tag = "libs/langgraph-store-mongodb/v${version}"; + hash = "sha256-/dafQK6iy85rMt7FMVb3ssaIop9JjjrwajaHAfBUp7g="; }; sourceRoot = "${src.name}/libs/langgraph-store-mongodb"; From 90155e3ef3f1a0267a4811a069af9f9fdec0d3e3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 28 Feb 2026 01:48:15 +0000 Subject: [PATCH 37/48] terraform-providers.terraform-lxd_lxd: 2.6.2 -> 2.7.0 --- .../networking/cluster/terraform-providers/providers.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 7aacc3628cc0..c152b9aac185 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -1337,13 +1337,13 @@ "vendorHash": "sha256-SF11E60OQiRdf+Pf6XyJg60yGRnGOcSzhrYccrWaeYE=" }, "terraform-lxd_lxd": { - "hash": "sha256-6dLtlUIFyP2cW1V6/M6z/uAFLVHKi9cJCQhb4cFJdkA=", + "hash": "sha256-Vjvj/zcs/EyGsQWOFGOcDWnmPv1ZxaLzs18GDvCccSA=", "homepage": "https://registry.terraform.io/providers/terraform-lxd/lxd", "owner": "terraform-lxd", "repo": "terraform-provider-lxd", - "rev": "v2.6.2", + "rev": "v2.7.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-3UzczIdB7Uns0X6ywSCoSWQcYhxSg43u95GEDQz2d28=" + "vendorHash": "sha256-bcynhUj61VrSooyZ+oF0gWpAA+FtsYHXUpV/hTMyl7Q=" }, "terraform-provider-openstack_openstack": { "hash": "sha256-6TcyPUacJNfGsaevg1DQ+WJrMFvGeo2mmsE2+P3RAZM=", From 94a5a6d01b0294c97b6ffa1e682cf39b49e3b5ce Mon Sep 17 00:00:00 2001 From: Sarah Clark Date: Fri, 27 Feb 2026 17:16:06 -0800 Subject: [PATCH 38/48] python3Packages.langgraph-store-mongodb: 0.1.1 -> 0.2.0 --- .../langgraph-store-mongodb/default.nix | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/langgraph-store-mongodb/default.nix b/pkgs/development/python-modules/langgraph-store-mongodb/default.nix index 1ec43c58a853..d2d457453d5b 100644 --- a/pkgs/development/python-modules/langgraph-store-mongodb/default.nix +++ b/pkgs/development/python-modules/langgraph-store-mongodb/default.nix @@ -2,6 +2,7 @@ lib, buildPythonPackage, fetchFromGitHub, + nix-update-script, # build-system hatchling, @@ -13,14 +14,14 @@ buildPythonPackage rec { pname = "langgraph-store-mongodb"; - version = "0.1.1"; + version = "0.2.0"; pyproject = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain-mongodb"; tag = "libs/langgraph-store-mongodb/v${version}"; - hash = "sha256-/dafQK6iy85rMt7FMVb3ssaIop9JjjrwajaHAfBUp7g="; + hash = "sha256-IXISxo3mC0/FkjGdHTmin6z/fk71ecto+L+VZ6VFdeE="; }; sourceRoot = "${src.name}/libs/langgraph-store-mongodb"; @@ -40,6 +41,17 @@ buildPythonPackage rec { pythonImportsCheck = [ "langgraph.store.mongodb" ]; + # updater script selects wrong tag + passthru = { + skipBulkUpdate = true; + updateScript = nix-update-script { + extraArgs = [ + "-vr" + "libs/langgraph-store-mongodb/v(.*)" + ]; + }; + }; + meta = { description = "Integrations between MongoDB, Atlas, LangChain, and LangGraph"; homepage = "https://github.com/langchain-ai/langchain-mongodb/tree/main/libs/langgraph-store-mongodb"; From 00614791221a6b34d9b6e6db57455d772e811def Mon Sep 17 00:00:00 2001 From: Sarah Clark Date: Fri, 27 Feb 2026 17:25:47 -0800 Subject: [PATCH 39/48] python3Packages.langgraph-store-mongodb: migrate to finalAttrs --- .../python-modules/langgraph-store-mongodb/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/langgraph-store-mongodb/default.nix b/pkgs/development/python-modules/langgraph-store-mongodb/default.nix index d2d457453d5b..953906a2e0a9 100644 --- a/pkgs/development/python-modules/langgraph-store-mongodb/default.nix +++ b/pkgs/development/python-modules/langgraph-store-mongodb/default.nix @@ -12,7 +12,7 @@ langchain-mongodb, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "langgraph-store-mongodb"; version = "0.2.0"; pyproject = true; @@ -20,11 +20,11 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain-mongodb"; - tag = "libs/langgraph-store-mongodb/v${version}"; + tag = "libs/langgraph-store-mongodb/v${finalAttrs.version}"; hash = "sha256-IXISxo3mC0/FkjGdHTmin6z/fk71ecto+L+VZ6VFdeE="; }; - sourceRoot = "${src.name}/libs/langgraph-store-mongodb"; + sourceRoot = "${finalAttrs.src.name}/libs/langgraph-store-mongodb"; build-system = [ hatchling @@ -55,8 +55,8 @@ buildPythonPackage rec { meta = { description = "Integrations between MongoDB, Atlas, LangChain, and LangGraph"; homepage = "https://github.com/langchain-ai/langchain-mongodb/tree/main/libs/langgraph-store-mongodb"; - changelog = "https://github.com/langchain-ai/langchain-mongodb/releases/tag/${src.tag}"; + changelog = "https://github.com/langchain-ai/langchain-mongodb/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ sarahec ]; }; -} +}) From 5c072d4dc670750b8cbdcc6c3280ceea943053f7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 28 Feb 2026 02:03:15 +0000 Subject: [PATCH 40/48] changedetection-io: 0.53.5 -> 0.54.2 --- pkgs/by-name/ch/changedetection-io/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ch/changedetection-io/package.nix b/pkgs/by-name/ch/changedetection-io/package.nix index 785cd7d5807d..62db8cd39712 100644 --- a/pkgs/by-name/ch/changedetection-io/package.nix +++ b/pkgs/by-name/ch/changedetection-io/package.nix @@ -7,14 +7,14 @@ python3.pkgs.buildPythonApplication rec { pname = "changedetection-io"; - version = "0.53.5"; + version = "0.54.2"; format = "setuptools"; src = fetchFromGitHub { owner = "dgtlmoon"; repo = "changedetection.io"; tag = version; - hash = "sha256-B5T9M4JpNn4hUeV8rR1SIJobLKnuMkr4Se8d+Zu/xxY="; + hash = "sha256-EOvZdPMfGfllM57hbc/HMHw1rh9n9uwlA4VSkoY0MWY="; }; pythonRelaxDeps = true; From dcbe848f6d98dc3e82c91a3a8b815dbc2a2009c8 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Wed, 25 Feb 2026 02:15:32 +0100 Subject: [PATCH 41/48] wyoming-faster-whisper: 2.5.0 -> 3.1.0 https://github.com/rhasspy/wyoming-faster-whisper/releases/tag/v3.0.0 https://github.com/rhasspy/wyoming-faster-whisper/releases/tag/v3.0.1 https://github.com/rhasspy/wyoming-faster-whisper/releases/tag/v3.0.2 https://github.com/rhasspy/wyoming-faster-whisper/releases/tag/v3.1.0 --- .../wyoming/faster-whisper.nix | 484 ++++++++++-------- .../wy/wyoming-faster-whisper/package.nix | 33 +- 2 files changed, 286 insertions(+), 231 deletions(-) diff --git a/nixos/modules/services/home-automation/wyoming/faster-whisper.nix b/nixos/modules/services/home-automation/wyoming/faster-whisper.nix index 928104c497e5..2d67bf8c8e5e 100644 --- a/nixos/modules/services/home-automation/wyoming/faster-whisper.nix +++ b/nixos/modules/services/home-automation/wyoming/faster-whisper.nix @@ -18,10 +18,6 @@ let types ; - inherit (builtins) - toString - ; - inherit (utils) escapeSystemdExecArgs ; @@ -36,230 +32,261 @@ in description = '' Attribute set of wyoming-faster-whisper instances to spawn. ''; - type = attrsOf (submodule { - options = { - enable = mkEnableOption "Wyoming faster-whisper server"; + type = attrsOf ( + submodule ( + { name, ... }: + { + options = { + enable = mkEnableOption "Wyoming faster-whisper server"; - model = mkOption { - type = str; - default = "tiny-int8"; - example = "Systran/faster-distil-whisper-small.en"; - # https://github.com/home-assistant/addons/blob/master/whisper/DOCS.md#option-model - description = '' - Name of the voice model to use. Can also be a HuggingFace model ID or a path to - a custom model directory. + zeroconf = { + enable = mkEnableOption "zeroconf discovery" // { + default = true; + }; - With {option}`useTranformers` enabled, a HuggingFace transformers Whisper model - ID from HuggingFace like `openai/whisper-tiny.en` must be used. + name = mkOption { + type = str; + default = "faster-whisper-${name}"; + description = '' + The advertised name for zeroconf discovery. + ''; + }; + }; - Compressed models (`int8`) are slightly less accurate, but smaller and faster. - Distilled models are uncompressed and faster and smaller than non-distilled models. + sttLibrary = mkOption { + type = enum [ + "auto" + "faster-whisper" + "onnx-asr" + "sherpa" + "transformers" + ]; + default = "auto"; + example = "sherpa"; + description = '' + Library used for speech-to-text process. - Available models: - - `tiny-int8` (compressed) - - `tiny` - - `tiny.en` (English only) - - `base-int8` (compressed) - - `base` - - `base.en` (English only) - - `small-int8` (compressed) - - `distil-small.en` (distilled, English only) - - `small` - - `small.en` (English only) - - `medium-int8` (compressed) - - `distil-medium.en` (distilled, English only) - - `medium` - - `medium.en` (English only) - - `large` - - `large-v1` - - `distil-large-v2` (distilled, English only) - - `large-v2` - - `distil-large-v3` (distilled, English only) - - `large-v3` - - `turbo` (faster than large-v3) - ''; - }; + When set to `auto` picks a default based on the {option}`language`. + ''; + }; - useTransformers = mkOption { - type = bool; - default = false; - description = '' - Whether to provide the dependencies to allow using transformer models. - ''; - }; + model = mkOption { + type = str; + default = "auto"; + example = "sherpa-onnx-nemo-parakeet-tdt-0.6b-v3-int8"; + # https://github.com/home-assistant/addons/blob/master/whisper/DOCS.md#option-model + description = '' + Name of the voice model to use. Can also be a HuggingFace model ID or a path to + a custom model directory. - uri = mkOption { - type = strMatching "^(tcp|unix)://.*$"; - example = "tcp://0.0.0.0:10300"; - description = '' - URI to bind the wyoming server to. - ''; - }; + When set to `auto` picks a default based on the {option}`language`, - device = mkOption { - # https://opennmt.net/CTranslate2/python/ctranslate2.models.Whisper.html# - type = enum [ - "cpu" - "cuda" - "auto" - ]; - default = "cpu"; - description = '' - Determines the platform faster-whisper is run on. CPU works everywhere, CUDA requires a compatible NVIDIA GPU. - ''; - }; + With {option}`sttLibrary` set to `transformers`, a HuggingFace transformers Whisper model + ID from HuggingFace like `openai/whisper-tiny` or `openai/whisper-base` must be used. - language = mkOption { - type = enum [ - # https://github.com/home-assistant/addons/blob/master/whisper/config.yaml#L20 - "auto" - "af" - "am" - "ar" - "as" - "az" - "ba" - "be" - "bg" - "bn" - "bo" - "br" - "bs" - "ca" - "cs" - "cy" - "da" - "de" - "el" - "en" - "es" - "et" - "eu" - "fa" - "fi" - "fo" - "fr" - "gl" - "gu" - "ha" - "haw" - "he" - "hi" - "hr" - "ht" - "hu" - "hy" - "id" - "is" - "it" - "ja" - "jw" - "ka" - "kk" - "km" - "kn" - "ko" - "la" - "lb" - "ln" - "lo" - "lt" - "lv" - "mg" - "mi" - "mk" - "ml" - "mn" - "mr" - "ms" - "mt" - "my" - "ne" - "nl" - "nn" - "no" - "oc" - "pa" - "pl" - "ps" - "pt" - "ro" - "ru" - "sa" - "sd" - "si" - "sk" - "sl" - "sn" - "so" - "sq" - "sr" - "su" - "sv" - "sw" - "ta" - "te" - "tg" - "th" - "tk" - "tl" - "tr" - "tt" - "uk" - "ur" - "uz" - "vi" - "yi" - "yue" - "yo" - "zh" - ]; - example = "en"; - description = '' - The language used to to parse words and sentences. - ''; - }; + Compressed models (`int8`) are slightly less accurate, but smaller and faster. + Distilled models are uncompressed and faster and smaller than non-distilled models. - initialPrompt = mkOption { - type = nullOr str; - default = null; - # https://github.com/home-assistant/addons/blob/master/whisper/DOCS.md#option-custom_model_type - example = '' - The following conversation takes place in the universe of - Wizard of Oz. Key terms include 'Yellow Brick Road' (the path - to follow), 'Emerald City' (the ultimate goal), and 'Ruby - Slippers' (the magical tools to succeed). Keep these in mind as - they guide the journey. - ''; - description = '' - Optional text to provide as a prompt for the first window. This can be used to provide, or - "prompt-engineer" a context for transcription, e.g. custom vocabularies or proper nouns - to make it more likely to predict those word correctly. + Available models for faster-whisper: + - `tiny-int8` (compressed) + - `tiny` + - `tiny.en` (English only) + - `base-int8` (compressed) + - `base` + - `base.en` (English only) + - `small-int8` (compressed) + - `distil-small.en` (distilled, English only) + - `small` + - `small.en` (English only) + - `medium-int8` (compressed) + - `distil-medium.en` (distilled, English only) + - `medium` + - `medium.en` (English only) + - `large` + - `large-v1` + - `distil-large-v2` (distilled, English only) + - `large-v2` + - `distil-large-v3` (distilled, English only) + - `large-v3` + - `turbo` (faster than large-v3) + ''; + }; - Not supported when the {option}`customModelType` is `transformers`. - ''; - }; + uri = mkOption { + type = strMatching "^(tcp|unix)://.*$"; + example = "tcp://0.0.0.0:10300"; + description = '' + URI to bind the wyoming server to. + ''; + }; - beamSize = mkOption { - type = ints.unsigned; - default = 0; - example = 5; - description = '' - The number of beams to use in beam search. - Use `0` to automatically select a value based on the CPU. - ''; - apply = toString; - }; + device = mkOption { + # https://opennmt.net/CTranslate2/python/ctranslate2.models.Whisper.html# + type = enum [ + "cpu" + "cuda" + "auto" + ]; + default = "cpu"; + description = '' + Determines the platform faster-whisper is run on. CPU works everywhere, CUDA requires a compatible NVIDIA GPU. + ''; + }; - extraArgs = mkOption { - type = listOf str; - default = [ ]; - description = '' - Extra arguments to pass to the server commandline. - ''; - }; - }; - }); + language = mkOption { + type = enum [ + # https://github.com/home-assistant/addons/blob/master/whisper/config.yaml#L20 + "auto" + "af" + "am" + "ar" + "as" + "az" + "ba" + "be" + "bg" + "bn" + "bo" + "br" + "bs" + "ca" + "cs" + "cy" + "da" + "de" + "el" + "en" + "es" + "et" + "eu" + "fa" + "fi" + "fo" + "fr" + "gl" + "gu" + "ha" + "haw" + "he" + "hi" + "hr" + "ht" + "hu" + "hy" + "id" + "is" + "it" + "ja" + "jw" + "ka" + "kk" + "km" + "kn" + "ko" + "la" + "lb" + "ln" + "lo" + "lt" + "lv" + "mg" + "mi" + "mk" + "ml" + "mn" + "mr" + "ms" + "mt" + "my" + "ne" + "nl" + "nn" + "no" + "oc" + "pa" + "pl" + "ps" + "pt" + "ro" + "ru" + "sa" + "sd" + "si" + "sk" + "sl" + "sn" + "so" + "sq" + "sr" + "su" + "sv" + "sw" + "ta" + "te" + "tg" + "th" + "tk" + "tl" + "tr" + "tt" + "uk" + "ur" + "uz" + "vi" + "yi" + "yue" + "yo" + "zh" + ]; + example = "en"; + description = '' + The language used to to parse words and sentences. + ''; + }; + + initialPrompt = mkOption { + type = nullOr str; + default = null; + # https://github.com/home-assistant/addons/blob/master/whisper/DOCS.md#option-custom_model_type + example = '' + The following conversation takes place in the universe of + Wizard of Oz. Key terms include 'Yellow Brick Road' (the path + to follow), 'Emerald City' (the ultimate goal), and 'Ruby + Slippers' (the magical tools to succeed). Keep these in mind as + they guide the journey. + ''; + description = '' + Optional text to provide as a prompt for the first window. This can be used to provide, or + "prompt-engineer" a context for transcription, e.g. custom vocabularies or proper nouns + to make it more likely to predict those word correctly. + + Only supported when the {option}`sttLibrary` is `faster-whisper`. + ''; + }; + + beamSize = mkOption { + type = ints.unsigned; + default = 0; + example = 5; + description = '' + The number of beams to use in beam search. + + The default (`0`) will use 1 beam on ARM systems (assumes an ARM SBC) and 5 everywhere else. + ''; + apply = toString; + }; + + extraArgs = mkOption { + type = listOf str; + default = [ ]; + description = '' + Extra arguments to pass to the server commandline. + ''; + }; + }; + } + ) + ); }; }; @@ -273,8 +300,8 @@ in in mkIf (cfg.servers != { }) { assertions = mapAttrsToList (server: options: { - assertion = options.useTransformers -> options.initialPrompt == null; - message = "wyoming-faster-whisper/${server}: Transformer models (`useTransformers`) do not currently support an `initialPrompt`."; + assertion = options.sttLibrary != "faster-whisper" -> options.initialPrompt == null; + message = "wyoming-faster-whisper/${server}: Initial prompt is only supported when using `faster-whisper` as `sttLibrary`."; }) cfg.servers; systemd.services = mapAttrs' ( @@ -283,8 +310,14 @@ in finalPackage = cfg.package.overridePythonAttrs (oldAttrs: { dependencies = oldAttrs.dependencies - # for transformer model support - ++ optionals options.useTransformers oldAttrs.optional-dependencies.transformers; + ++ optionals options.zeroconf.enable oldAttrs.optional-dependencies.zeroconf + ++ optionals ( + options.sttLibrary == "onnx-asr" || options.sttLibrary == "auto" && options.language == "ru" + ) oldAttrs.optional-dependencies.onnx_asr + ++ optionals ( + options.sttLibrary == "sherpa-onnx" || options.sttLibrary == "auto" && options.language == "en" + ) oldAttrs.optional-dependencies.sherpa + ++ optionals (options.sttLibrary == "transformers") oldAttrs.optional-dependencies.transformers; }); in nameValuePair "wyoming-faster-whisper-${server}" { @@ -316,6 +349,8 @@ in options.uri "--device" options.device + "--stt-library" + options.sttLibrary "--model" options.model "--language" @@ -323,8 +358,9 @@ in "--beam-size" options.beamSize ] - ++ lib.optionals options.useTransformers [ - "--use-transformers" + ++ lib.optionals options.zeroconf.enable [ + "--zeroconf" + options.zeroconf.name ] ++ lib.optionals (options.initialPrompt != null) [ "--initial-prompt" @@ -366,6 +402,10 @@ in "AF_INET" "AF_INET6" "AF_UNIX" + ] + ++ lib.optionals options.zeroconf.enable [ + # Zeroconf support require network interface enumeration + "AF_NETLINK" ]; RestrictNamespaces = true; RestrictRealtime = true; diff --git a/pkgs/by-name/wy/wyoming-faster-whisper/package.nix b/pkgs/by-name/wy/wyoming-faster-whisper/package.nix index 47447bc6bccd..65ddaad79125 100644 --- a/pkgs/by-name/wy/wyoming-faster-whisper/package.nix +++ b/pkgs/by-name/wy/wyoming-faster-whisper/package.nix @@ -6,14 +6,14 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "wyoming-faster-whisper"; - version = "2.5.0"; + version = "3.1.0"; pyproject = true; src = fetchFromGitHub { owner = "rhasspy"; repo = "wyoming-faster-whisper"; tag = "v${finalAttrs.version}"; - hash = "sha256-MKB6gZdGdAYoNK8SRiDHG8xtMZ5mXdaSn+bH4T6o/K4="; + hash = "sha256-p1FCyj/D7ndKJD1/V5YzhT0xlkg61DSx2m3DCELmPO8="; }; build-system = with python3Packages; [ @@ -25,18 +25,33 @@ python3Packages.buildPythonApplication (finalAttrs: { "wyoming" ]; + pythonRemoveDeps = [ + # https://github.com/rhasspy/wyoming-faster-whisper/pull/81 + "requests" + ]; + dependencies = with python3Packages; [ faster-whisper wyoming ]; - optional-dependencies = { - transformers = - with python3Packages; - [ - transformers - ] - ++ transformers.optional-dependencies.torch; + optional-dependencies = with python3Packages; { + transformers = [ + transformers + ] + ++ transformers.optional-dependencies.torch; + sherpa = [ + sherpa-onnx + ]; + onnx_asr = [ + onnx-asr + ] + ++ onnx-asr.optional-dependencies.cpu + ++ onnx-asr.optional-dependencies.hub; + zeroconf = [ + wyoming + ] + ++ wyoming.optional-dependencies.zeroconf; }; pythonImportsCheck = [ From 4e807c814a0328a1a7f5ec61f2fae35808676b6c Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 28 Feb 2026 03:22:32 +0100 Subject: [PATCH 42/48] nixos/wyoming-piper: zeroconf improvements --- nixos/modules/services/home-automation/wyoming/piper.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/home-automation/wyoming/piper.nix b/nixos/modules/services/home-automation/wyoming/piper.nix index 2252772d9f68..e4c1971830f3 100644 --- a/nixos/modules/services/home-automation/wyoming/piper.nix +++ b/nixos/modules/services/home-automation/wyoming/piper.nix @@ -37,7 +37,7 @@ in ''; type = types.attrsOf ( types.submodule ( - { ... }: + { name, ... }: { options = { enable = mkEnableOption "Wyoming Piper server"; @@ -49,7 +49,7 @@ in name = mkOption { type = str; - default = "piper"; + default = "piper-${name}"; description = '' The advertised name for zeroconf discovery. ''; @@ -205,8 +205,11 @@ in RestrictAddressFamilies = [ "AF_INET" "AF_INET6" - "AF_NETLINK" "AF_UNIX" + ] + ++ lib.optionals options.zeroconf.enable [ + # Zeroconf support require network interface enumeration + "AF_NETLINK" ]; RestrictNamespaces = true; RestrictRealtime = true; From 3a5fd74e730b6f0232eef1524065afe3dfd93007 Mon Sep 17 00:00:00 2001 From: Sizhe Zhao Date: Sat, 28 Feb 2026 11:23:06 +0800 Subject: [PATCH 43/48] nixos/xserver: set default for externallyConfiguredDrivers --- nixos/modules/services/x11/xserver.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index b33e6f4ddda1..e939931f8139 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -512,6 +512,7 @@ in externallyConfiguredDrivers = mkOption { type = types.listOf types.str; internal = true; + default = [ ]; description = '' A list of externally configured drivers (by name). Modules that manually configure their drivers should add said drivers to this From 0dbd34ef98e9cd2d92fb8c49bdb54631b0059ec6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 28 Feb 2026 03:37:54 +0000 Subject: [PATCH 44/48] terraform-providers.metio_migadu: 2026.2.12 -> 2026.2.26 --- .../networking/cluster/terraform-providers/providers.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 7aacc3628cc0..c2c0e02c891e 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -896,13 +896,13 @@ "vendorHash": "sha256-2IlD9IdiN+TBk/Eng2K4jZD8GB91IvQPeVAKhxI/6aY=" }, "metio_migadu": { - "hash": "sha256-K1wvS8rKetDuEdcommxdw07BkWJoSiZJ4sB3EfJ3uaI=", + "hash": "sha256-FPUWuQnklyy66SXUY3QpCHza5f0oVMrticd+j/YwKNc=", "homepage": "https://registry.terraform.io/providers/metio/migadu", "owner": "metio", "repo": "terraform-provider-migadu", - "rev": "2026.2.12", + "rev": "2026.2.26", "spdx": "0BSD", - "vendorHash": "sha256-Kag6QOY+ek9XIhvSJbzk+HGa9NxXh8MTMmoMXbFZxgI=" + "vendorHash": "sha256-sxOopd49N1ABIZkp9XpP03N2BMIA5FO9reZPl8aSomU=" }, "mongey_kafka": { "hash": "sha256-rTa6c7jAMH027V7h/yUGVGz6TS0PDdObilxU0Vpr6FI=", From 67ed87f988b219319079c79190bb50b678afe492 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 27 Feb 2026 20:14:45 -0800 Subject: [PATCH 45/48] python3Packages.cucumber-expressions: 18.1.0 -> 19.0.0 Diff: https://github.com/cucumber/cucumber-expressions/compare/v18.1.0...v19.0.0 Changelog: https://github.com/cucumber/cucumber-expressions/blob/v19.0.0/CHANGELOG.md --- .../python-modules/cucumber-expressions/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/cucumber-expressions/default.nix b/pkgs/development/python-modules/cucumber-expressions/default.nix index 1624c6f45fd2..757b5eded4bd 100644 --- a/pkgs/development/python-modules/cucumber-expressions/default.nix +++ b/pkgs/development/python-modules/cucumber-expressions/default.nix @@ -9,18 +9,23 @@ buildPythonPackage rec { pname = "cucumber-expressions"; - version = "18.1.0"; + version = "19.0.0"; pyproject = true; src = fetchFromGitHub { owner = "cucumber"; repo = "cucumber-expressions"; tag = "v${version}"; - hash = "sha256-X/ukgf5+Tn0G9E40W8KsVfo3f0NYEOnYWag4IXmHjY8="; + hash = "sha256-0KuHvByHYx7/mjySfWIKp1+ZYw+XNO25eoo5DhPcUsY="; }; sourceRoot = "${src.name}/python"; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "uv_build>=0.9.0,<0.10.0" uv_build + ''; + build-system = [ uv-build ]; pythonImportsCheck = [ "cucumber_expressions" ]; From b932fc8ec58e9491ed7fe54a40bcc037794e5bbf Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 28 Feb 2026 04:55:57 +0000 Subject: [PATCH 46/48] terraform-providers.gitlabhq_gitlab: 18.8.0 -> 18.9.0 --- .../networking/cluster/terraform-providers/providers.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 7aacc3628cc0..c45a3ac6a326 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -436,13 +436,13 @@ "vendorHash": "sha256-FcxAh8EOvnT8r1GHu0Oj2C5Jgbr2WPwD7/vY4/qIvTA=" }, "gitlabhq_gitlab": { - "hash": "sha256-iBgACKVMJmfDLlIU6TZZiED+eEG7c4CMSkfEjU1Dmiw=", + "hash": "sha256-qsETOpigad1T2Zc2zQ3gs4AW3rrGsqt5Bse85QfGZkA=", "homepage": "https://registry.terraform.io/providers/gitlabhq/gitlab", "owner": "gitlabhq", "repo": "terraform-provider-gitlab", - "rev": "v18.8.0", + "rev": "v18.9.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-a2y8bnbQr8RNN3hJZFupUHvrIrV8HkAvZQn+7MIod0U=" + "vendorHash": "sha256-Yy7yF0x8AtXTP7EMCbrZUTAO317VDyktGbHN+iSuQkg=" }, "go-gandi_gandi": { "hash": "sha256-fsCtmwyxkXfOtiZG27VEb010jglK35yr4EynnUWlFog=", From 0f0210d123422e6c8b6e176ce46870699d73ff09 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 28 Feb 2026 05:07:02 +0000 Subject: [PATCH 47/48] terraform-providers.jianyuan_sentry: 0.14.9 -> 0.14.10 --- .../networking/cluster/terraform-providers/providers.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 7aacc3628cc0..f56dba2e84d9 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -778,13 +778,13 @@ "vendorHash": "sha256-mnKXYT0GfIS+ODzBCS9l4rLF1ugadesmpgdOgj74nLg=" }, "jianyuan_sentry": { - "hash": "sha256-J8hINbcBEdukkSLw+nKwbln9EfNh4sIb5F7FPLmXLE4=", + "hash": "sha256-sZdF4YnrsjTt8wsgdDdocHciRZbv2+l+b8zOr/WZYiQ=", "homepage": "https://registry.terraform.io/providers/jianyuan/sentry", "owner": "jianyuan", "repo": "terraform-provider-sentry", - "rev": "v0.14.9", + "rev": "v0.14.10", "spdx": "MIT", - "vendorHash": "sha256-ILb6eUVt961ZBcEVKT324OXMxF/d+Wx9tzA3PDTe5iU=" + "vendorHash": "sha256-vJmzsdY2Yt09X2ZQgC5SA0mntjH/rIanaxQfBuivE7M=" }, "joneshf_openwrt": { "hash": "sha256-z78IceF2VJtiQpVqC+rTUDsph73LZawIK+az3rEhljA=", From 3e694e83449140b7decdc01ceafdf3037b81cdcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 27 Feb 2026 21:35:33 -0800 Subject: [PATCH 48/48] python3Packages.cucumber-tag-expressions: 8.1.0 -> 9.1.0 Diff: https://github.com/cucumber/tag-expressions/compare/v8.1.0...v9.1.0 Changelog: https://github.com/cucumber/tag-expressions/blob/v9.1.0/CHANGELOG.md --- .../python-modules/cucumber-tag-expressions/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/cucumber-tag-expressions/default.nix b/pkgs/development/python-modules/cucumber-tag-expressions/default.nix index dc11e4570d3f..745250882b32 100644 --- a/pkgs/development/python-modules/cucumber-tag-expressions/default.nix +++ b/pkgs/development/python-modules/cucumber-tag-expressions/default.nix @@ -10,18 +10,23 @@ buildPythonPackage rec { pname = "cucumber-tag-expressions"; - version = "8.1.0"; + version = "9.1.0"; pyproject = true; src = fetchFromGitHub { owner = "cucumber"; repo = "tag-expressions"; tag = "v${version}"; - hash = "sha256-3uePEu+4StDP2IV3u/AUZLxxbVVegW7ZSUllWnXU8w0="; + hash = "sha256-jkuez7C3YDGmv484Lmc5PszVbnVXkcC12RryvTJkxxg="; }; sourceRoot = "${src.name}/python"; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "uv_build>=0.10.0,<0.11.0" uv_build + ''; + build-system = [ uv-build ];