From f923df9ae45a718a436c830611dd493c77ddede8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 23 Sep 2025 00:30:30 +0000 Subject: [PATCH 001/396] libvisio: 0.1.8 -> 0.1.9 --- pkgs/by-name/li/libvisio/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/li/libvisio/package.nix b/pkgs/by-name/li/libvisio/package.nix index 9987190dca26..00161c9180c4 100644 --- a/pkgs/by-name/li/libvisio/package.nix +++ b/pkgs/by-name/li/libvisio/package.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { pname = "libvisio"; - version = "0.1.8"; + version = "0.1.9"; outputs = [ "out" @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://dev-www.libreoffice.org/src/libvisio/${pname}-${version}.tar.xz"; - hash = "sha256-tAmP+/TcuecSE/oKzdvZKPJ77TDbLYAjSBOxXVPQQFs="; + hash = "sha256-SmHQhtqj9cnbij/Rttv8Kbp1YFeqazzCOHj9SFQ2Kvk="; }; strictDeps = true; From e3c200c57f11d0f7c2bc3d3c75a78573aba216f6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 24 Sep 2025 00:44:46 +0000 Subject: [PATCH 002/396] libwpe: 1.16.2 -> 1.16.3 --- pkgs/development/libraries/libwpe/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libwpe/default.nix b/pkgs/development/libraries/libwpe/default.nix index c17c804731d3..f346a8f714fa 100644 --- a/pkgs/development/libraries/libwpe/default.nix +++ b/pkgs/development/libraries/libwpe/default.nix @@ -12,11 +12,11 @@ stdenv.mkDerivation rec { pname = "libwpe"; - version = "1.16.2"; + version = "1.16.3"; src = fetchurl { url = "https://wpewebkit.org/releases/libwpe-${version}.tar.xz"; - sha256 = "sha256-lgvdEcPyz1vZFWlgPtbSqkL9QADtfKyTCoBOrDZ4iNc="; + sha256 = "sha256-yID6jWB7Kqbq3efW1jArE5brw4No/iMy+iDhk8fuFCA="; }; nativeBuildInputs = [ From c72ada6982b8153e7c6306da1135a1b649b19846 Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Wed, 24 Sep 2025 17:08:01 -0400 Subject: [PATCH 003/396] libvisio: 0.1.9 -> 0.1.10 --- pkgs/by-name/li/libvisio/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/li/libvisio/package.nix b/pkgs/by-name/li/libvisio/package.nix index 00161c9180c4..588c1a214f4a 100644 --- a/pkgs/by-name/li/libvisio/package.nix +++ b/pkgs/by-name/li/libvisio/package.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { pname = "libvisio"; - version = "0.1.9"; + version = "0.1.10"; outputs = [ "out" @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://dev-www.libreoffice.org/src/libvisio/${pname}-${version}.tar.xz"; - hash = "sha256-SmHQhtqj9cnbij/Rttv8Kbp1YFeqazzCOHj9SFQ2Kvk="; + hash = "sha256-np7/dREtTZLZImKtf8JZnCHib4/FulSQDv3IPAUB5HI="; }; strictDeps = true; From 4786eda0f3df6e39765ee616d1b35b176d42b66a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 13 Oct 2025 00:26:53 +0000 Subject: [PATCH 004/396] python3Packages.pwntools: 4.14.1 -> 4.15.0 --- pkgs/development/python-modules/pwntools/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pwntools/default.nix b/pkgs/development/python-modules/pwntools/default.nix index db47ca9e0e49..dc609bcfc06d 100644 --- a/pkgs/development/python-modules/pwntools/default.nix +++ b/pkgs/development/python-modules/pwntools/default.nix @@ -33,12 +33,12 @@ let in buildPythonPackage rec { pname = "pwntools"; - version = "4.14.1"; + version = "4.15.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-YPBJdtFyISDRi51QVTQIoCRmS1z4iPNvJYr8pL8DXKw="; + hash = "sha256-2ZqRcpjBynJBtRu6mtIhLyr0Qe9mSIBZskJlCOmip3Y="; }; postPatch = '' From e3d8bbfca514053007127db6dee1694bdc46e6e6 Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Sun, 12 Oct 2025 21:42:42 -0400 Subject: [PATCH 005/396] subtitleeditor: update URL Repository was moved, GitHub redirects. --- pkgs/by-name/su/subtitleeditor/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/su/subtitleeditor/package.nix b/pkgs/by-name/su/subtitleeditor/package.nix index eb4d1b777bb1..b2cf3e5b4da8 100644 --- a/pkgs/by-name/su/subtitleeditor/package.nix +++ b/pkgs/by-name/su/subtitleeditor/package.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation { version = "unstable-2019-11-30"; src = fetchFromGitHub { - owner = "kitone"; + owner = "subtitleeditor"; repo = "subtitleeditor"; rev = "4c215f4cff4483c44361a2f1d45efc4c6670787f"; sha256 = "sha256-1Q1nd3GJ6iDGQv4SM2S1ehVW6kPdbqTn8KTtTb0obiQ="; @@ -71,7 +71,7 @@ stdenv.mkDerivation { and refine existing subtitle. This program also shows sound waves, which makes it easier to synchronise subtitles to voices. ''; - homepage = "http://kitone.github.io/subtitleeditor/"; + homepage = "https://subtitleeditor.github.io/subtitleeditor/"; license = lib.licenses.gpl3Plus; platforms = lib.platforms.linux; maintainers = [ lib.maintainers.plcplc ]; From 84b078e51903fdb515ac821e0ffe2b22724b21ac Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Sun, 12 Oct 2025 21:43:10 -0400 Subject: [PATCH 006/396] subtitleeditor: unstable-2019-11-30 -> 0.55.0 First release in seven years, much more recent than the unstable. --- pkgs/by-name/su/subtitleeditor/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/su/subtitleeditor/package.nix b/pkgs/by-name/su/subtitleeditor/package.nix index b2cf3e5b4da8..7676ad413f57 100644 --- a/pkgs/by-name/su/subtitleeditor/package.nix +++ b/pkgs/by-name/su/subtitleeditor/package.nix @@ -19,15 +19,15 @@ wrapGAppsHook3, }: -stdenv.mkDerivation { +stdenv.mkDerivation (finalAttrs: { pname = "subtitleeditor"; - version = "unstable-2019-11-30"; + version = "0.55.0"; src = fetchFromGitHub { owner = "subtitleeditor"; repo = "subtitleeditor"; - rev = "4c215f4cff4483c44361a2f1d45efc4c6670787f"; - sha256 = "sha256-1Q1nd3GJ6iDGQv4SM2S1ehVW6kPdbqTn8KTtTb0obiQ="; + tag = finalAttrs.version; + hash = "sha256-jhKewfhJ97zxUPp1P2twmgNkMQa/hi2ZZZ8mOFcCOlQ="; }; nativeBuildInputs = [ @@ -77,4 +77,4 @@ stdenv.mkDerivation { maintainers = [ lib.maintainers.plcplc ]; mainProgram = "subtitleeditor"; }; -} +}) From 44ec40f6b2bc7efc576cfe93d1eb52429824b1b0 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 18 Nov 2025 00:39:46 +0000 Subject: [PATCH 007/396] libwpe-fdo: 1.16.0 -> 1.16.1 --- pkgs/development/libraries/libwpe/fdo.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libwpe/fdo.nix b/pkgs/development/libraries/libwpe/fdo.nix index 789c698216c1..2758afaa9e94 100644 --- a/pkgs/development/libraries/libwpe/fdo.nix +++ b/pkgs/development/libraries/libwpe/fdo.nix @@ -17,11 +17,11 @@ stdenv.mkDerivation rec { pname = "wpebackend-fdo"; - version = "1.16.0"; + version = "1.16.1"; src = fetchurl { url = "https://wpewebkit.org/releases/wpebackend-fdo-${version}.tar.xz"; - sha256 = "sha256-vt3zISMtW9CBBsF528YA+M6I6zYgtKWaYykGO3j2RjU="; + sha256 = "sha256-VErhQBL45+QmuMtSLrCqqsgxrXw1YB0c8x03Zw4Ouzs="; }; depsBuildBuild = [ From 20b41b2050bec6466bc0ad7fbb50be6bd3adb3ba Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 20 Nov 2025 06:10:34 +0000 Subject: [PATCH 008/396] udisks: 2.10.2 -> 2.11.0 --- pkgs/by-name/ud/udisks/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ud/udisks/package.nix b/pkgs/by-name/ud/udisks/package.nix index 0514dac00904..26312470acc6 100644 --- a/pkgs/by-name/ud/udisks/package.nix +++ b/pkgs/by-name/ud/udisks/package.nix @@ -42,13 +42,13 @@ stdenv.mkDerivation rec { pname = "udisks"; - version = "2.10.2"; + version = "2.11.0"; src = fetchFromGitHub { owner = "storaged-project"; repo = "udisks"; tag = "udisks-${version}"; - hash = "sha256-W0vZY6tYxAJbqxNF3F6F6J6h6XxLT+Fon+LqR6jwFUQ="; + hash = "sha256-G3qE4evcn5gtsd8Lrj6vjxCsAl/2LCdqdtaqLFFadMw="; }; outputs = [ From 7c7abab0c482a25e5edb4618602f6519b98f638e Mon Sep 17 00:00:00 2001 From: Luke Bailey Date: Sun, 7 Dec 2025 15:31:49 +0000 Subject: [PATCH 009/396] nixos-render-docs: tag `literalExpression` code blocks with `nix` correctly --- .../ni/nixos-render-docs/src/nixos_render_docs/options.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/options.py b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/options.py index 75fbeadce1d0..9e337e6b1082 100644 --- a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/options.py +++ b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/options.py @@ -97,7 +97,7 @@ class BaseConverter(Converter[md.TR], Generic[md.TR]): if lit := option_is(option, key, 'literalMD'): return [ self._render(f"*{key.capitalize()}:*\n{lit['text']}") ] elif lit := option_is(option, key, 'literalExpression'): - code = md_make_code(lit['text']) + code = md_make_code(lit['text'], info="nix") return [ self._render(f"*{key.capitalize()}:*\n{code}") ] elif key in option: raise Exception(f"{key} has unrecognized type", option[key]) From ac3caf6bd74c234579770e4e60af62f5940b802a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 13 Dec 2025 12:13:52 +0000 Subject: [PATCH 010/396] python3Packages.types-protobuf: 6.32.1.20251105 -> 6.32.1.20251210 --- pkgs/development/python-modules/types-protobuf/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/types-protobuf/default.nix b/pkgs/development/python-modules/types-protobuf/default.nix index 97c4ebd0b809..2a50446c1342 100644 --- a/pkgs/development/python-modules/types-protobuf/default.nix +++ b/pkgs/development/python-modules/types-protobuf/default.nix @@ -7,13 +7,13 @@ buildPythonPackage rec { pname = "types-protobuf"; - version = "6.32.1.20251105"; + version = "6.32.1.20251210"; format = "setuptools"; src = fetchPypi { pname = "types_protobuf"; inherit version; - hash = "sha256-ZBACYR/4fdn+3DijminKy5kHrlzmFIm1PpnKIHS+92Q="; + hash = "sha256-xpi7PwICdLGieYrgncdzcozj91IJo1GHvRGRbr/eZ2M="; }; propagatedBuildInputs = [ types-futures ]; From 4d2e351d55c47863fd4fadafb46f63a56472faaf Mon Sep 17 00:00:00 2001 From: Luke Bailey Date: Sun, 7 Dec 2025 15:43:03 +0000 Subject: [PATCH 011/396] lib.literalExpression: add example and properly describe function arg --- lib/options.nix | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/options.nix b/lib/options.nix index a36fc2220d21..42f451bd8674 100644 --- a/lib/options.nix +++ b/lib/options.nix @@ -672,11 +672,30 @@ rec { is necessary for complex values, e.g. functions, or values that depend on other values or packages. + # Examples + :::{.example} + ## `literalExpression` usage example + + ```nix + llvmPackages = mkOption { + type = types.str; + description = '' + Version of llvm packages to use for + this module + ''; + example = literalExpression '' + llvmPackages = pkgs.llvmPackages_20; + ''; + }; + ``` + + ::: + # Inputs `text` - : 1\. Function argument + : The text to render as a Nix expression */ literalExpression = text: From ff7438d5050890412c87c4ecb13d874b7c2f03be Mon Sep 17 00:00:00 2001 From: lenny Date: Mon, 15 Dec 2025 22:18:54 +0100 Subject: [PATCH 012/396] ycwd: init at 0-unstable-2025-07-09 --- pkgs/by-name/yc/ycwd/package.nix | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 pkgs/by-name/yc/ycwd/package.nix diff --git a/pkgs/by-name/yc/ycwd/package.nix b/pkgs/by-name/yc/ycwd/package.nix new file mode 100644 index 000000000000..34fbe73dd2ff --- /dev/null +++ b/pkgs/by-name/yc/ycwd/package.nix @@ -0,0 +1,28 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, +}: + +rustPlatform.buildRustPackage { + pname = "ycwd"; + version = "0-unstable-2025-07-09"; + + src = fetchFromGitHub { + owner = "blinry"; + repo = "ycwd"; + rev = "5676dafe3700ac76e071424a47407186a08d1c77"; + hash = "sha256-HFRS+cNHKloASKXB/Tlrvpsmbg78V4lrNx9WehyzMxE="; + }; + + cargoHash = "sha256-HTlIcrn/QtyY2vLxfeC2RXD1mniWYE7m/rV1QBI4PZc="; + + meta = { + description = "Helps replace xcwd on Wayland compositors"; + homepage = "https://github.com/blinry/ycwd"; + license = lib.licenses.gpl3Plus; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ lenny ]; + mainProgram = "ycwd"; + }; +} From c88c22e4c305821af1922f689998bf8d2f0d4d10 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 17 Dec 2025 15:19:07 +0000 Subject: [PATCH 013/396] python3Packages.pymupdf: 1.26.6 -> 1.26.7 --- pkgs/development/python-modules/pymupdf/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pymupdf/default.nix b/pkgs/development/python-modules/pymupdf/default.nix index c7eb2afb2c1d..589b57f819a3 100644 --- a/pkgs/development/python-modules/pymupdf/default.nix +++ b/pkgs/development/python-modules/pymupdf/default.nix @@ -44,14 +44,14 @@ let in buildPythonPackage rec { pname = "pymupdf"; - version = "1.26.6"; + version = "1.26.7"; pyproject = true; src = fetchFromGitHub { owner = "pymupdf"; repo = "PyMuPDF"; tag = version; - hash = "sha256-CYDgMhsOqqm9AscJxVcjU72P63gpJafj+2cj03RFGaw="; + hash = "sha256-7OidTOG3KAx7EaQ3Bu4i1Fw007oXVAipBHeYNkmbIcA="; }; patches = [ From ce6df26087840292dd825ef8f404131f8025f386 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 21 Dec 2025 13:58:25 +0000 Subject: [PATCH 014/396] haproxy: 3.3.0 -> 3.3.1 --- pkgs/by-name/ha/haproxy/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ha/haproxy/package.nix b/pkgs/by-name/ha/haproxy/package.nix index 672e5d52d391..8c0cf6428ad1 100644 --- a/pkgs/by-name/ha/haproxy/package.nix +++ b/pkgs/by-name/ha/haproxy/package.nix @@ -39,11 +39,11 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "haproxy"; - version = "3.3.0"; + version = "3.3.1"; src = fetchurl { url = "https://www.haproxy.org/download/${lib.versions.majorMinor finalAttrs.version}/src/haproxy-${finalAttrs.version}.tar.gz"; - hash = "sha256-vy2mtp+C17hVvpd6ueHUcE7vVim2V6xyr7WVioackC4="; + hash = "sha256-t3rNrop2ANuVdvx0kpJ0LBCRZ2SABVEwNd6nZ+RaAN8="; }; buildInputs = [ From 56cee4ffd37062d7598c36d064287ba86b2facd1 Mon Sep 17 00:00:00 2001 From: Luke Bailey Date: Sun, 7 Dec 2025 15:43:18 +0000 Subject: [PATCH 015/396] lib.literalCode: init --- lib/options.nix | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/lib/options.nix b/lib/options.nix index 42f451bd8674..e6b51fb0603e 100644 --- a/lib/options.nix +++ b/lib/options.nix @@ -707,6 +707,49 @@ rec { inherit text; }; + /** + For use in the `defaultText` and `example` option attributes. Causes the + given string to be rendered verbatim in the documentation as a code + block with the language bassed on the provided input tag. + + If you wish to render Nix code, please see `literalExpression`. + + # Examples + :::{.example} + ## `literalCode` usage example + + ```nix + myPythonScript = mkOption { + type = types.str; + description = '' + Example python script used by a module + ''; + example = literalCode "python" '' + print("Hello world!") + ''; + }; + ``` + + ::: + + # Inputs + + `languageTag` + + : The language tag to use when producing the code block (i.e. `js`, `rs`, etc). + + `text` + + : The text to render as a Nix expression + */ + literalCode = + languageTag: text: + lib.literalMD '' + ```${languageTag} + ${text} + ``` + ''; + /** For use in the `defaultText` and `example` option attributes. Causes the given MD text to be inserted verbatim in the documentation, for when From ce872cc2def718b01e51aafe30e78e51a6922589 Mon Sep 17 00:00:00 2001 From: Sefa Eyeoglu Date: Mon, 29 Dec 2025 14:15:01 +0100 Subject: [PATCH 016/396] xrizer: 0.3 -> 0.4 https://github.com/Supreeeme/xrizer/releases/tag/v0.4 Signed-off-by: Sefa Eyeoglu --- pkgs/by-name/xr/xrizer/package.nix | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/xr/xrizer/package.nix b/pkgs/by-name/xr/xrizer/package.nix index fc77532e1949..fd8cdf9a12fb 100644 --- a/pkgs/by-name/xr/xrizer/package.nix +++ b/pkgs/by-name/xr/xrizer/package.nix @@ -14,24 +14,25 @@ }: rustPlatform.buildRustPackage rec { pname = "xrizer"; - version = "0.3"; + version = "0.4"; src = fetchFromGitHub { owner = "Supreeeme"; repo = "xrizer"; tag = "v${version}"; - hash = "sha256-o6/uGbczYp5t6trjFIltZAMSM61adn+BvNb1fBhBSsk="; + hash = "sha256-IRhLWlGHywp0kZe5aGmMHAF1zZwva3sGg68eG1E2K9A="; }; patches = [ + # https://github.com/Supreeeme/xrizer/pull/262 (fetchpatch2 { - name = "xrizer-fix-flaky-tests.patch"; - url = "https://github.com/Supreeeme/xrizer/commit/f58d797e75a8d920982abeaeedee83877dd3c493.diff?full_index=1"; - hash = "sha256-TI++ZY7QX1iaj3WT0woXApSY2Tairraao5kzF77ewYY="; + name = "xrizer-fix-aarch64.patch"; + url = "https://github.com/Supreeeme/xrizer/commit/70ea6f616cd7608462cdf2f5bf76a85acf23fe33.patch?full_index=1"; + hash = "sha256-Bwu/GjsaoS1VqpXmijBuZcJFUf6kRYWYWpGxm40AWyc="; }) ]; - cargoHash = "sha256-kXcnD98ZaqRAA3jQvIoWSRC37Uq8l5PUYEzubxfMuUI="; + cargoHash = "sha256-orfK5pwWv91hA7Ra3Kk+isFTR+qMHSZ0EYZTVbf0fO0="; nativeBuildInputs = [ pkg-config From 842d69961fd3c79f8640a9d2c8a26f224b765860 Mon Sep 17 00:00:00 2001 From: Sefa Eyeoglu Date: Mon, 29 Dec 2025 14:16:06 +0100 Subject: [PATCH 017/396] xrizer: refactor platforms This avoids repeating the platform list Signed-off-by: Sefa Eyeoglu --- pkgs/by-name/xr/xrizer/package.nix | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/pkgs/by-name/xr/xrizer/package.nix b/pkgs/by-name/xr/xrizer/package.nix index fd8cdf9a12fb..4938567012b6 100644 --- a/pkgs/by-name/xr/xrizer/package.nix +++ b/pkgs/by-name/xr/xrizer/package.nix @@ -12,6 +12,13 @@ vulkan-loader, stdenv, }: +let + platformPaths = { + "aarch64-linux" = "bin/linuxarm64"; + "i686-linux" = "bin"; + "x86_64-linux" = "bin/linux64"; + }; +in rustPlatform.buildRustPackage rec { pname = "xrizer"; version = "0.4"; @@ -58,13 +65,7 @@ rustPlatform.buildRustPackage rec { mv "$out/lib/libxrizer.so" "$out/lib/xrizer/$platformPath/vrclient.so" ''; - platformPath = - { - "aarch64-linux" = "bin/linuxarm64"; - "i686-linux" = "bin"; - "x86_64-linux" = "bin/linux64"; - } - ."${stdenv.hostPlatform.system}"; + platformPath = platformPaths."${stdenv.hostPlatform.system}"; passthru.updateScript = nix-update-script { }; @@ -73,10 +74,6 @@ rustPlatform.buildRustPackage rec { homepage = "https://github.com/Supreeeme/xrizer"; license = lib.licenses.gpl3Only; maintainers = with lib.maintainers; [ Scrumplex ]; - platforms = [ - "x86_64-linux" - "i686-linux" - "aarch64-linux" - ]; + platforms = builtins.attrNames platformPaths; }; } From 9eb509053c338c6f440b4c2b261f355dfaff38f4 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Tue, 30 Dec 2025 14:08:17 +0100 Subject: [PATCH 018/396] lomiri.morph-browser: 1.99.1 -> 1.99.2 --- pkgs/desktops/lomiri/applications/morph-browser/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/lomiri/applications/morph-browser/default.nix b/pkgs/desktops/lomiri/applications/morph-browser/default.nix index e9be5b8ce1dd..2d596f2f2dcc 100644 --- a/pkgs/desktops/lomiri/applications/morph-browser/default.nix +++ b/pkgs/desktops/lomiri/applications/morph-browser/default.nix @@ -31,13 +31,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "morph-browser"; - version = "1.99.1"; + version = "1.99.2"; src = fetchFromGitLab { owner = "ubports"; repo = "development/core/morph-browser"; tag = finalAttrs.version; - hash = "sha256-RCyauz7qBNzq7Aqr22NBSAgVSBsFpXpNb+aVo73CBQU="; + hash = "sha256-pi9tot6F9Kfpv4AN2kDnkVZRo310w/iEWJ5f7aJl1iE="; }; outputs = [ From 298e637954708faa1b1c4c39d62af8538b27ed26 Mon Sep 17 00:00:00 2001 From: r-vdp Date: Thu, 1 Jan 2026 13:08:59 +0200 Subject: [PATCH 019/396] usb-modeswitch, usb-modeswitch-data: use https to download sources --- pkgs/by-name/us/usb-modeswitch/data.nix | 9 ++++----- pkgs/by-name/us/usb-modeswitch/package.nix | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/us/usb-modeswitch/data.nix b/pkgs/by-name/us/usb-modeswitch/data.nix index 347f19b48115..348ff4fa7fee 100644 --- a/pkgs/by-name/us/usb-modeswitch/data.nix +++ b/pkgs/by-name/us/usb-modeswitch/data.nix @@ -1,5 +1,4 @@ { - lib, stdenv, fetchurl, tcl, @@ -7,13 +6,13 @@ udevCheckHook, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "usb-modeswitch-data"; version = "20251207"; src = fetchurl { - url = "http://www.draisberghof.de/usb_modeswitch/${pname}-${version}.tar.bz2"; - sha256 = "sha256-C7EtZK7l5GfDGvYaU/uCj/eqWcVKgsqF7u3kxWkL+mY="; + url = "https://www.draisberghof.de/usb_modeswitch/${finalAttrs.pname}-${finalAttrs.version}.tar.bz2"; + hash = "sha256-C7EtZK7l5GfDGvYaU/uCj/eqWcVKgsqF7u3kxWkL+mY="; }; doInstallCheck = true; @@ -44,4 +43,4 @@ stdenv.mkDerivation rec { description = "Device database and the rules file for 'multi-mode' USB devices"; inherit (usb-modeswitch.meta) license maintainers platforms; }; -} +}) diff --git a/pkgs/by-name/us/usb-modeswitch/package.nix b/pkgs/by-name/us/usb-modeswitch/package.nix index 3dbcce763660..3fd460f0b7a0 100644 --- a/pkgs/by-name/us/usb-modeswitch/package.nix +++ b/pkgs/by-name/us/usb-modeswitch/package.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation (finalAttrs: { version = "2.6.2"; src = fetchurl { - url = "http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-${finalAttrs.version}.tar.bz2"; + url = "https://www.draisberghof.de/usb_modeswitch/usb-modeswitch-${finalAttrs.version}.tar.bz2"; hash = "sha256-96vTN3hKnRvTnLilh1GK/28qQ9kWFF6v2Asbi3FG22Y="; }; From a625f7052caac4eab41de76005b1f55af4bccecf Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 8 Jan 2026 15:05:25 +0000 Subject: [PATCH 020/396] python3Packages.google-auth-httplib2: 0.2.0 -> 0.3.0 --- .../python-modules/google-auth-httplib2/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/google-auth-httplib2/default.nix b/pkgs/development/python-modules/google-auth-httplib2/default.nix index 10df29e76d5c..16aa508c60e0 100644 --- a/pkgs/development/python-modules/google-auth-httplib2/default.nix +++ b/pkgs/development/python-modules/google-auth-httplib2/default.nix @@ -13,14 +13,14 @@ buildPythonPackage rec { pname = "google-auth-httplib2"; - version = "0.2.0"; + version = "0.3.0"; pyproject = true; src = fetchFromGitHub { owner = "googleapis"; repo = "google-auth-library-python-httplib2"; tag = "v${version}"; - sha256 = "sha256-qY00u1srwAw68VXewZDOsWZrtHpi5UoRZfesSY7mTk8="; + sha256 = "sha256-NXz2oqbNVGTWOECH+Ly9v/CMxbhygFZhlHRHrnYLhCg="; }; build-system = [ setuptools ]; From 1118754b6f338f641c4338f344bde3636cd527d7 Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Thu, 8 Jan 2026 17:09:39 +0100 Subject: [PATCH 021/396] nixos/apiserver: replace usage of lib.types.types by lib.types --- .../modules/services/cluster/kubernetes/apiserver.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nixos/modules/services/cluster/kubernetes/apiserver.nix b/nixos/modules/services/cluster/kubernetes/apiserver.nix index 3ab4dbeafdf5..55d0ab9b0044 100644 --- a/nixos/modules/services/cluster/kubernetes/apiserver.nix +++ b/nixos/modules/services/cluster/kubernetes/apiserver.nix @@ -49,7 +49,7 @@ in ]; ###### interface - options.services.kubernetes.apiserver = with lib.types; { + options.services.kubernetes.apiserver = let inherit (lib.types) nullOr str bool listOf enum attrs path separatedString attrsOf int; in { advertiseAddress = lib.mkOption { description = '' @@ -164,26 +164,26 @@ in servers = lib.mkOption { description = "List of etcd servers."; default = [ "http://127.0.0.1:2379" ]; - type = types.listOf types.str; + type = listOf str; }; keyFile = lib.mkOption { description = "Etcd key file."; default = null; - type = types.nullOr types.path; + type = nullOr path; }; certFile = lib.mkOption { description = "Etcd cert file."; default = null; - type = types.nullOr types.path; + type = nullOr path; }; caFile = lib.mkOption { description = "Etcd ca file."; default = top.caFile; defaultText = lib.literalExpression "config.${otop.caFile}"; - type = types.nullOr types.path; + type = nullOr path; }; }; From 9910a99ec28a5e433ad39be59fedcba72b12d1df Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Thu, 8 Jan 2026 17:21:43 +0100 Subject: [PATCH 022/396] nixos/apiserver: format file --- .../services/cluster/kubernetes/apiserver.nix | 555 +++++++++--------- 1 file changed, 285 insertions(+), 270 deletions(-) diff --git a/nixos/modules/services/cluster/kubernetes/apiserver.nix b/nixos/modules/services/cluster/kubernetes/apiserver.nix index 55d0ab9b0044..fc98a4867494 100644 --- a/nixos/modules/services/cluster/kubernetes/apiserver.nix +++ b/nixos/modules/services/cluster/kubernetes/apiserver.nix @@ -49,312 +49,327 @@ in ]; ###### interface - options.services.kubernetes.apiserver = let inherit (lib.types) nullOr str bool listOf enum attrs path separatedString attrsOf int; in { + options.services.kubernetes.apiserver = + let + inherit (lib.types) + nullOr + str + bool + listOf + enum + attrs + path + separatedString + attrsOf + int + ; + in + { - advertiseAddress = lib.mkOption { - description = '' - Kubernetes apiserver IP address on which to advertise the apiserver - to members of the cluster. This address must be reachable by the rest - of the cluster. - ''; - default = null; - type = nullOr str; - }; - - allowPrivileged = lib.mkOption { - description = "Whether to allow privileged containers on Kubernetes."; - default = false; - type = bool; - }; - - authorizationMode = lib.mkOption { - description = '' - Kubernetes apiserver authorization mode (AlwaysAllow/AlwaysDeny/ABAC/Webhook/RBAC/Node). See - - ''; - default = [ - "RBAC" - "Node" - ]; # Enabling RBAC by default, although kubernetes default is AllowAllow - type = listOf (enum [ - "AlwaysAllow" - "AlwaysDeny" - "ABAC" - "Webhook" - "RBAC" - "Node" - ]); - }; - - authorizationPolicy = lib.mkOption { - description = '' - Kubernetes apiserver authorization policy file. See - - ''; - default = [ ]; - type = listOf attrs; - }; - - basicAuthFile = lib.mkOption { - description = '' - Kubernetes apiserver basic authentication file. See - - ''; - default = null; - type = nullOr path; - }; - - bindAddress = lib.mkOption { - description = '' - The IP address on which to listen for the --secure-port port. - The associated interface(s) must be reachable by the rest - of the cluster, and by CLI/web clients. - ''; - default = "0.0.0.0"; - type = str; - }; - - clientCaFile = lib.mkOption { - description = "Kubernetes apiserver CA file for client auth."; - default = top.caFile; - defaultText = lib.literalExpression "config.${otop.caFile}"; - type = nullOr path; - }; - - disableAdmissionPlugins = lib.mkOption { - description = '' - Kubernetes admission control plugins to disable. See - - ''; - default = [ ]; - type = listOf str; - }; - - enable = lib.mkEnableOption "Kubernetes apiserver"; - - enableAdmissionPlugins = lib.mkOption { - description = '' - Kubernetes admission control plugins to enable. See - - ''; - default = [ - "NamespaceLifecycle" - "LimitRanger" - "ServiceAccount" - "ResourceQuota" - "DefaultStorageClass" - "DefaultTolerationSeconds" - "NodeRestriction" - ]; - example = [ - "NamespaceLifecycle" - "NamespaceExists" - "LimitRanger" - "SecurityContextDeny" - "ServiceAccount" - "ResourceQuota" - "PodSecurityPolicy" - "NodeRestriction" - "DefaultStorageClass" - ]; - type = listOf str; - }; - - etcd = { - servers = lib.mkOption { - description = "List of etcd servers."; - default = [ "http://127.0.0.1:2379" ]; - type = listOf str; + advertiseAddress = lib.mkOption { + description = '' + Kubernetes apiserver IP address on which to advertise the apiserver + to members of the cluster. This address must be reachable by the rest + of the cluster. + ''; + default = null; + type = nullOr str; }; - keyFile = lib.mkOption { - description = "Etcd key file."; + allowPrivileged = lib.mkOption { + description = "Whether to allow privileged containers on Kubernetes."; + default = false; + type = bool; + }; + + authorizationMode = lib.mkOption { + description = '' + Kubernetes apiserver authorization mode (AlwaysAllow/AlwaysDeny/ABAC/Webhook/RBAC/Node). See + + ''; + default = [ + "RBAC" + "Node" + ]; # Enabling RBAC by default, although kubernetes default is AllowAllow + type = listOf (enum [ + "AlwaysAllow" + "AlwaysDeny" + "ABAC" + "Webhook" + "RBAC" + "Node" + ]); + }; + + authorizationPolicy = lib.mkOption { + description = '' + Kubernetes apiserver authorization policy file. See + + ''; + default = [ ]; + type = listOf attrs; + }; + + basicAuthFile = lib.mkOption { + description = '' + Kubernetes apiserver basic authentication file. See + + ''; default = null; type = nullOr path; }; - certFile = lib.mkOption { - description = "Etcd cert file."; - default = null; - type = nullOr path; + bindAddress = lib.mkOption { + description = '' + The IP address on which to listen for the --secure-port port. + The associated interface(s) must be reachable by the rest + of the cluster, and by CLI/web clients. + ''; + default = "0.0.0.0"; + type = str; }; - caFile = lib.mkOption { - description = "Etcd ca file."; + clientCaFile = lib.mkOption { + description = "Kubernetes apiserver CA file for client auth."; default = top.caFile; defaultText = lib.literalExpression "config.${otop.caFile}"; type = nullOr path; }; - }; - extraOpts = lib.mkOption { - description = "Kubernetes apiserver extra command line options."; - default = ""; - type = separatedString " "; - }; + disableAdmissionPlugins = lib.mkOption { + description = '' + Kubernetes admission control plugins to disable. See + + ''; + default = [ ]; + type = listOf str; + }; - extraSANs = lib.mkOption { - description = "Extra x509 Subject Alternative Names to be added to the kubernetes apiserver tls cert."; - default = [ ]; - type = listOf str; - }; + enable = lib.mkEnableOption "Kubernetes apiserver"; - featureGates = lib.mkOption { - description = "Attribute set of feature gates."; - default = top.featureGates; - defaultText = lib.literalExpression "config.${otop.featureGates}"; - type = attrsOf bool; - }; + enableAdmissionPlugins = lib.mkOption { + description = '' + Kubernetes admission control plugins to enable. See + + ''; + default = [ + "NamespaceLifecycle" + "LimitRanger" + "ServiceAccount" + "ResourceQuota" + "DefaultStorageClass" + "DefaultTolerationSeconds" + "NodeRestriction" + ]; + example = [ + "NamespaceLifecycle" + "NamespaceExists" + "LimitRanger" + "SecurityContextDeny" + "ServiceAccount" + "ResourceQuota" + "PodSecurityPolicy" + "NodeRestriction" + "DefaultStorageClass" + ]; + type = listOf str; + }; - kubeletClientCaFile = lib.mkOption { - description = "Path to a cert file for connecting to kubelet."; - default = top.caFile; - defaultText = lib.literalExpression "config.${otop.caFile}"; - type = nullOr path; - }; + etcd = { + servers = lib.mkOption { + description = "List of etcd servers."; + default = [ "http://127.0.0.1:2379" ]; + type = listOf str; + }; - kubeletClientCertFile = lib.mkOption { - description = "Client certificate to use for connections to kubelet."; - default = null; - type = nullOr path; - }; + keyFile = lib.mkOption { + description = "Etcd key file."; + default = null; + type = nullOr path; + }; - kubeletClientKeyFile = lib.mkOption { - description = "Key to use for connections to kubelet."; - default = null; - type = nullOr path; - }; + certFile = lib.mkOption { + description = "Etcd cert file."; + default = null; + type = nullOr path; + }; - preferredAddressTypes = lib.mkOption { - description = "List of the preferred NodeAddressTypes to use for kubelet connections."; - type = nullOr str; - default = null; - }; + caFile = lib.mkOption { + description = "Etcd ca file."; + default = top.caFile; + defaultText = lib.literalExpression "config.${otop.caFile}"; + type = nullOr path; + }; + }; - proxyClientCertFile = lib.mkOption { - description = "Client certificate to use for connections to proxy."; - default = null; - type = nullOr path; - }; + extraOpts = lib.mkOption { + description = "Kubernetes apiserver extra command line options."; + default = ""; + type = separatedString " "; + }; - proxyClientKeyFile = lib.mkOption { - description = "Key to use for connections to proxy."; - default = null; - type = nullOr path; - }; + extraSANs = lib.mkOption { + description = "Extra x509 Subject Alternative Names to be added to the kubernetes apiserver tls cert."; + default = [ ]; + type = listOf str; + }; - runtimeConfig = lib.mkOption { - description = '' - Api runtime configuration. See - - ''; - default = "authentication.k8s.io/v1beta1=true"; - example = "api/all=false,api/v1=true"; - type = str; - }; + featureGates = lib.mkOption { + description = "Attribute set of feature gates."; + default = top.featureGates; + defaultText = lib.literalExpression "config.${otop.featureGates}"; + type = attrsOf bool; + }; - storageBackend = lib.mkOption { - description = '' - Kubernetes apiserver storage backend. - ''; - default = "etcd3"; - type = enum [ - "etcd2" - "etcd3" - ]; - }; + kubeletClientCaFile = lib.mkOption { + description = "Path to a cert file for connecting to kubelet."; + default = top.caFile; + defaultText = lib.literalExpression "config.${otop.caFile}"; + type = nullOr path; + }; - securePort = lib.mkOption { - description = "Kubernetes apiserver secure port."; - default = 6443; - type = int; - }; + kubeletClientCertFile = lib.mkOption { + description = "Client certificate to use for connections to kubelet."; + default = null; + type = nullOr path; + }; - apiAudiences = lib.mkOption { - description = '' - Kubernetes apiserver ServiceAccount issuer. - ''; - default = "api,https://kubernetes.default.svc"; - type = str; - }; + kubeletClientKeyFile = lib.mkOption { + description = "Key to use for connections to kubelet."; + default = null; + type = nullOr path; + }; - serviceAccountIssuer = lib.mkOption { - description = '' - Kubernetes apiserver ServiceAccount issuer. - ''; - default = "https://kubernetes.default.svc"; - type = str; - }; + preferredAddressTypes = lib.mkOption { + description = "List of the preferred NodeAddressTypes to use for kubelet connections."; + type = nullOr str; + default = null; + }; - serviceAccountSigningKeyFile = lib.mkOption { - description = '' - Path to the file that contains the current private key of the service - account token issuer. The issuer will sign issued ID tokens with this - private key. - ''; - type = path; - }; + proxyClientCertFile = lib.mkOption { + description = "Client certificate to use for connections to proxy."; + default = null; + type = nullOr path; + }; - serviceAccountKeyFile = lib.mkOption { - description = '' - File containing PEM-encoded x509 RSA or ECDSA private or public keys, - used to verify ServiceAccount tokens. The specified file can contain - multiple keys, and the flag can be specified multiple times with - different files. If unspecified, --tls-private-key-file is used. - Must be specified when --service-account-signing-key is provided - ''; - type = path; - }; + proxyClientKeyFile = lib.mkOption { + description = "Key to use for connections to proxy."; + default = null; + type = nullOr path; + }; - serviceClusterIpRange = lib.mkOption { - description = '' - A CIDR notation IP range from which to assign service cluster IPs. - This must not overlap with any IP ranges assigned to nodes for pods. - ''; - default = "10.0.0.0/24"; - type = str; - }; + runtimeConfig = lib.mkOption { + description = '' + Api runtime configuration. See + + ''; + default = "authentication.k8s.io/v1beta1=true"; + example = "api/all=false,api/v1=true"; + type = str; + }; - tlsCertFile = lib.mkOption { - description = "Kubernetes apiserver certificate file."; - default = null; - type = nullOr path; - }; + storageBackend = lib.mkOption { + description = '' + Kubernetes apiserver storage backend. + ''; + default = "etcd3"; + type = enum [ + "etcd2" + "etcd3" + ]; + }; - tlsKeyFile = lib.mkOption { - description = "Kubernetes apiserver private key file."; - default = null; - type = nullOr path; - }; + securePort = lib.mkOption { + description = "Kubernetes apiserver secure port."; + default = 6443; + type = int; + }; - tokenAuthFile = lib.mkOption { - description = '' - Kubernetes apiserver token authentication file. See - - ''; - default = null; - type = nullOr path; - }; + apiAudiences = lib.mkOption { + description = '' + Kubernetes apiserver ServiceAccount issuer. + ''; + default = "api,https://kubernetes.default.svc"; + type = str; + }; - verbosity = lib.mkOption { - description = '' - Optional glog verbosity level for logging statements. See - - ''; - default = null; - type = nullOr int; - }; + serviceAccountIssuer = lib.mkOption { + description = '' + Kubernetes apiserver ServiceAccount issuer. + ''; + default = "https://kubernetes.default.svc"; + type = str; + }; - webhookConfig = lib.mkOption { - description = '' - Kubernetes apiserver Webhook config file. It uses the kubeconfig file format. - See - ''; - default = null; - type = nullOr path; - }; + serviceAccountSigningKeyFile = lib.mkOption { + description = '' + Path to the file that contains the current private key of the service + account token issuer. The issuer will sign issued ID tokens with this + private key. + ''; + type = path; + }; - }; + serviceAccountKeyFile = lib.mkOption { + description = '' + File containing PEM-encoded x509 RSA or ECDSA private or public keys, + used to verify ServiceAccount tokens. The specified file can contain + multiple keys, and the flag can be specified multiple times with + different files. If unspecified, --tls-private-key-file is used. + Must be specified when --service-account-signing-key is provided + ''; + type = path; + }; + + serviceClusterIpRange = lib.mkOption { + description = '' + A CIDR notation IP range from which to assign service cluster IPs. + This must not overlap with any IP ranges assigned to nodes for pods. + ''; + default = "10.0.0.0/24"; + type = str; + }; + + tlsCertFile = lib.mkOption { + description = "Kubernetes apiserver certificate file."; + default = null; + type = nullOr path; + }; + + tlsKeyFile = lib.mkOption { + description = "Kubernetes apiserver private key file."; + default = null; + type = nullOr path; + }; + + tokenAuthFile = lib.mkOption { + description = '' + Kubernetes apiserver token authentication file. See + + ''; + default = null; + type = nullOr path; + }; + + verbosity = lib.mkOption { + description = '' + Optional glog verbosity level for logging statements. See + + ''; + default = null; + type = nullOr int; + }; + + webhookConfig = lib.mkOption { + description = '' + Kubernetes apiserver Webhook config file. It uses the kubeconfig file format. + See + ''; + default = null; + type = nullOr path; + }; + + }; ###### implementation config = lib.mkMerge [ From 306edd5dccfa6e3987c6690aa23339cdde336036 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 9 Jan 2026 16:41:49 +0000 Subject: [PATCH 023/396] python3Packages.auditwheel: 6.5.1 -> 6.6.0 --- pkgs/development/python-modules/auditwheel/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/auditwheel/default.nix b/pkgs/development/python-modules/auditwheel/default.nix index 5961559774f3..bc897e98f084 100644 --- a/pkgs/development/python-modules/auditwheel/default.nix +++ b/pkgs/development/python-modules/auditwheel/default.nix @@ -16,12 +16,12 @@ buildPythonPackage rec { pname = "auditwheel"; - version = "6.5.1"; + version = "6.6.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-EeYR9wkLbPQHVTW4j0NkgZuEnYJwLauwlHz3ycXVh6A="; + hash = "sha256-J387MVrQsE3wor4tEmw/05kwvCZd8PlYnXjJcP8G9Ss="; }; build-system = [ setuptools-scm ]; From ff56a9b9ba9e1bc7f3c9d6ea9d646f5e04c551cb Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Sat, 10 Jan 2026 00:32:15 +0100 Subject: [PATCH 024/396] nixosTests.lomiri-calendar-app: Look for more localised words --- nixos/tests/lomiri-calendar-app.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/tests/lomiri-calendar-app.nix b/nixos/tests/lomiri-calendar-app.nix index 5b18e7dd50b4..726b09eae2aa 100644 --- a/nixos/tests/lomiri-calendar-app.nix +++ b/nixos/tests/lomiri-calendar-app.nix @@ -91,7 +91,7 @@ machine.sleep(10) machine.send_key("alt-f10") machine.sleep(2) - machine.wait_for_text(r"(Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag|Sonntag)") + machine.wait_for_text(r"(Termine|Tag|Woche|Monat|Jahr|Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag|Sonntag)") machine.screenshot("lomiri-calendar_localised") ''; } From d0165e57ffdcfc50fba044b3d658020557f43b6a Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Sun, 11 Jan 2026 20:53:21 +0100 Subject: [PATCH 025/396] {pmars,pmars-x11}: 0.9.4 -> 0.9.5 --- .../pmars/0001-fix-round-redefinition.patch | 92 ------------------- .../pm/pmars/0002-fix-sighandler.patch | 52 ----------- .../0003-fix-ncurses-opaque-WINDOW.patch | 46 +++------- pkgs/by-name/pm/pmars/package.nix | 13 +-- 4 files changed, 19 insertions(+), 184 deletions(-) delete mode 100644 pkgs/by-name/pm/pmars/0001-fix-round-redefinition.patch delete mode 100644 pkgs/by-name/pm/pmars/0002-fix-sighandler.patch diff --git a/pkgs/by-name/pm/pmars/0001-fix-round-redefinition.patch b/pkgs/by-name/pm/pmars/0001-fix-round-redefinition.patch deleted file mode 100644 index 455514a26ef9..000000000000 --- a/pkgs/by-name/pm/pmars/0001-fix-round-redefinition.patch +++ /dev/null @@ -1,92 +0,0 @@ -diff '--color=auto' -ruN a/src/cdb.c b/src/cdb.c ---- a/src/cdb.c 1970-01-01 01:00:01.000000000 +0100 -+++ b/src/cdb.c 2024-10-08 11:28:57.892951658 +0200 -@@ -1564,7 +1564,7 @@ - (warriorsLeft ? warriorsLeft : 1)); - substitute(buf[bi1], "CYCLE", outs, buf[bi2]); - SWITCHBI; -- sprintf(outs, "%d", round); -+ sprintf(outs, "%d", roundCounter); - substitute(buf[bi1], "ROUND", outs, buf[bi2]); - - SWITCHBI; -@@ -1875,7 +1875,7 @@ - #endif - int nFuture, nPast, count, taskHalf = (coreSize <= 10000 ? 7 : 5); - -- sprintf(outs, roundOfCycle, round, rounds, -+ sprintf(outs, roundOfCycle, roundCounter, rounds, - (cycle + (warriorsLeft ? warriorsLeft : 1) - 1) / - (warriorsLeft ? warriorsLeft : 1)); - cdb_fputs(outs, COND); -diff '--color=auto' -ruN a/src/curdisp.c b/src/curdisp.c ---- a/src/curdisp.c 1970-01-01 01:00:01.000000000 +0100 -+++ b/src/curdisp.c 2024-10-08 11:29:52.129955266 +0200 -@@ -156,7 +156,7 @@ - wstandend(corewin); - if (!--refreshCounter) { - refreshCounter = refreshInterval; -- update_statusline(round); -+ update_statusline(roundCounter); - wrefresh(corewin); - } - } -@@ -542,7 +542,7 @@ - text_display_close() - { - if (displayLevel) { -- update_statusline(round - 1); -+ update_statusline(roundCounter - 1); - wstandout(corewin); - mvwaddstr(corewin, 0, 0, pressAnyKey); - wrefresh(corewin); -diff '--color=auto' -ruN a/src/sim.c b/src/sim.c ---- a/src/sim.c 1970-01-01 01:00:01.000000000 +0100 -+++ b/src/sim.c 2024-10-08 11:28:21.848284678 +0200 -@@ -173,7 +173,7 @@ - mem_struct FAR *memory; - - long cycle; --int round; -+int roundCounter; - - char alloc_p = 0; /* indicate whether memory has been allocated */ - int warriorsLeft; /* number of warriors still left in core */ -@@ -328,7 +328,7 @@ - #endif - - display_init(); -- round = 1; -+ roundCounter = 1; - do { /* each round */ - #if defined(DOS16) && !defined(SERVER) && !defined(DOSTXTGRAPHX) && !defined(DOSGRXGRAPHX) && !defined(DJGPP) - fputc('\r', stdout); /* enable interruption by Ctrl-C */ -@@ -1421,13 +1421,13 @@ - #ifndef SERVER - if (debugState == BREAK) { - if (warriorsLeft == 1 && warriors != 1) -- sprintf(outs, warriorTerminatedEndOfRound, W - warrior, W->name, round); -+ sprintf(outs, warriorTerminatedEndOfRound, W - warrior, W->name, roundCounter); - else -- sprintf(outs, endOfRound, round); -+ sprintf(outs, endOfRound, roundCounter); - debugState = cdb(outs); - } - #endif -- } while (++round <= rounds); -+ } while (++roundCounter <= rounds); - - display_close(); - #ifdef PERMUTATE -diff '--color=auto' -ruN a/src/sim.h b/src/sim.h ---- a/src/sim.h 1970-01-01 01:00:01.000000000 +0100 -+++ b/src/sim.h 2024-10-08 11:27:46.730634854 +0200 -@@ -89,7 +89,7 @@ - #define FAR - #endif - --extern int round; -+extern int roundCounter; - extern long cycle; - extern ADDR_T progCnt; /* program counter */ - extern warrior_struct *W; /* indicate which warrior is running */ diff --git a/pkgs/by-name/pm/pmars/0002-fix-sighandler.patch b/pkgs/by-name/pm/pmars/0002-fix-sighandler.patch deleted file mode 100644 index 82fb19fe7ba9..000000000000 --- a/pkgs/by-name/pm/pmars/0002-fix-sighandler.patch +++ /dev/null @@ -1,52 +0,0 @@ -diff '--color=auto' -ruN a/src/pmars.c b/src/pmars.c ---- a/src/pmars.c 2024-11-12 20:36:28.142766807 +0100 -+++ b/src/pmars.c 2024-11-12 20:39:48.096710063 +0100 -@@ -72,7 +72,7 @@ - #ifdef PSPACE - void pspace_init(void); - #endif --#if defined(unix) || defined(__MSDOS__) || defined(VMS) -+#if defined(unix) || defined(__MSDOS__) || defined(VMS) || defined(__MACH__) - void sighandler(int dummy); - #endif - #if defined(CURSESGRAPHX) -@@ -87,7 +87,7 @@ - #ifdef PSPACE - void pspace_init(); - #endif --#if defined(unix) || defined(__MSDOS__) -+#if defined(unix) || defined(__MSDOS__) || defined(__MACH__) - void sighandler(); - #endif - #if defined(CURSESGRAPHX) -@@ -224,7 +224,7 @@ - } - - /* called when ctrl-c is pressed; prepares for debugger entry */ --#if defined(unix) || defined(__MSDOS__) || defined (__OS2__) -+#if defined(unix) || defined(__MSDOS__) || defined (__OS2__) || defined(__MACH__) - void - #ifdef __OS2__ - _cdecl -@@ -290,7 +290,7 @@ - int argc; - char **argv; - { --#if defined(unix) && !defined(DJGPP) -+#if (defined(unix) && !defined(DJGPP)) || defined(__MACH__) - #ifdef SIGINT - signal(SIGINT, sighandler); - #endif -diff '--color=auto' -ruN a/src/xwindisp.c b/src/xwindisp.c ---- a/src/xwindisp.c 2024-11-12 20:36:28.143766827 +0100 -+++ b/src/xwindisp.c 2024-11-12 20:37:39.708178145 +0100 -@@ -61,6 +61,9 @@ - #define YELLOW 14 - #define WHITE 15 - -+/* defined in pmars.c */ -+extern void sighandler(int dummy); -+ - /* X names of the colors we allocate */ - static char *xColorNames[MAXXCOLOR] = { - "black", "blue3", "green3", "cyan3", diff --git a/pkgs/by-name/pm/pmars/0003-fix-ncurses-opaque-WINDOW.patch b/pkgs/by-name/pm/pmars/0003-fix-ncurses-opaque-WINDOW.patch index 04933f9718eb..3dd89db44758 100644 --- a/pkgs/by-name/pm/pmars/0003-fix-ncurses-opaque-WINDOW.patch +++ b/pkgs/by-name/pm/pmars/0003-fix-ncurses-opaque-WINDOW.patch @@ -1,9 +1,9 @@ diff '--color=auto' -ruN a/src/curdisp.c b/src/curdisp.c ---- a/src/curdisp.c 2025-05-08 23:23:48.070346219 +0200 -+++ b/src/curdisp.c 2025-05-08 23:29:33.851400436 +0200 -@@ -28,12 +28,6 @@ - #include "sim.h" - #endif +--- a/src/curdisp.c 2026-01-03 04:22:43.000000000 +0100 ++++ b/src/curdisp.c 2026-01-11 20:40:22.526484970 +0100 +@@ -33,12 +33,6 @@ + extern unsigned long loopDelayAr[SPEEDLEVELS]; + static int use_color; -/* For window structure in BSD 4.4/Curses 8.x library */ -#ifdef BSD44 @@ -14,44 +14,28 @@ diff '--color=auto' -ruN a/src/curdisp.c b/src/curdisp.c typedef struct win_st { WINDOW *win; int page; -@@ -428,18 +422,18 @@ +@@ -461,11 +455,11 @@ str--; maxchar++; leaveok(curwin, TRUE); - if (ox = curwin->_curx) { -+ if (ox = getcurx(curwin)) { - #if 0 - #ifdef ATTRIBUTE -- mvwaddch(curwin, curwin->_cury, --ox, ' ' | attr); -+ mvwaddch(curwin, getcury(curwin), --ox, ' ' | attr); - #else -- mvwaddch(curwin, curwin->_cury, --ox, ' '); -+ mvwaddch(curwin, getcury(curwin), --ox, ' '); - #endif - #endif /* 0 */ - mvwaddch(curwin, curwin->_cury, --ox, ' '); - wmove(curwin, curwin->_cury, ox); ++ if (ox = getcurx(curwin)) { + mvwaddch(curwin, getcury(curwin), --ox, ' '); + wmove(curwin, getcury(curwin), ox); } else { - oy = curwin->_cury - 1; + oy = getcury(curwin) - 1; - #if 0 - #ifdef ATTRIBUTE - mvwaddch(curwin, oy, COLS - 1, ' ' | attr); -@@ -470,12 +464,12 @@ + mvwaddch(curwin, oy, COLS - 1, ' '); + wmove(curwin, oy, COLS - 1); + } +@@ -477,7 +471,7 @@ + leaveok(curwin, TRUE); + for (getyx(curwin, oy, ox); str > ostr; str--, maxchar++) { if (ox--) - #if 0 - #ifdef ATTRIBUTE -- mvwaddch(curwin, curwin->_cury, ox, ' ' | attr); -+ mvwaddch(curwin, getcury(curwin), ox, ' ' | attr); - #else - mvwaddch(curwin, curwin->_cury, ox, ' '); + mvwaddch(curwin, getcury(curwin), ox, ' '); - #endif - #endif /* 0 */ -- mvwaddch(curwin, curwin->_cury, ox, ' '); -+ mvwaddch(curwin, getcury(curwin), ox, ' '); else - #if 0 - #ifdef ATTRIBUTE + mvwaddch(curwin, oy, ox = COLS, ' '); + } diff --git a/pkgs/by-name/pm/pmars/package.nix b/pkgs/by-name/pm/pmars/package.nix index cce56b0b1d89..2bb2830f97eb 100644 --- a/pkgs/by-name/pm/pmars/package.nix +++ b/pkgs/by-name/pm/pmars/package.nix @@ -21,20 +21,15 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "pmars"; - version = "0.9.4"; + version = "0.9.5"; src = fetchzip { url = "http://www.koth.org/pmars/pmars-${finalAttrs.version}.zip"; - hash = "sha256-68zsH9HWWp13pozjMajayS/VhY8iTosUp1CvcAmj/dE="; + stripRoot = false; + hash = "sha256-p6iZkb0Nrcj7LtAxtS6Ics5CS9taPHbsoIdE5C1QYnI="; }; patches = [ - # Error under Clang due to global "round" variable: redefinition of 'round' as different kind of symbol - ./0001-fix-round-redefinition.patch - - # call to undeclared function 'sighandler' & undefined sighandler on Darwin - ./0002-fix-sighandler.patch - # ncurses' WINDOW struct was turned opaque for outside code, use functions for accessing values instead ./0003-fix-ncurses-opaque-WINDOW.patch ]; @@ -43,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: { substituteInPlace src/Makefile \ --replace-fail 'CC = gcc' "CC = $CC" \ --replace-fail '@strip' "@$STRIP" \ - --replace-fail 'CFLAGS = -O -DEXT94 -DXWINGRAPHX -DPERMUTATE -DRWLIMIT' "CFLAGS = ${ + --replace-fail 'CFLAGS += -O -DEXT94 -DXWINGRAPHX -DPERMUTATE -DRWLIMIT' "CFLAGS += ${ lib.concatMapStringsSep " " (opt: "-D${opt}") options } ${ lib.optionalString ( From 3fd55724a0fcd5c93d5b703392c9315e34c09c49 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Tue, 18 Nov 2025 13:15:36 +0000 Subject: [PATCH 026/396] ruby-modules/gem-config: patch h3 gem to use h3 from nixpkgs --- .../ruby-modules/gem-config/default.nix | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix index bebf5ede6bec..d7675aa68318 100644 --- a/pkgs/development/ruby-modules/gem-config/default.nix +++ b/pkgs/development/ruby-modules/gem-config/default.nix @@ -91,6 +91,7 @@ fribidi, harfbuzz, bison, + h3_3, flex, pango, python3, @@ -639,6 +640,21 @@ in ''; }; + h3 = attrs: { + # This gem attempts to build h3 using cmake, but fails because that is not in the path + # Use h3 from nixpkgs instead, and reduce closure size by deleting the h3 source code + dontBuild = false; # allow applying patches + postPatch = '' + substituteInPlace ext/h3/Makefile \ + --replace-fail 'cd src; cmake . -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DBUILD_SHARED_LIBS=true -DBUILD_FILTERS=OFF -DBUILD_BENCHMARKS=OFF -DENABLE_LINTING=OFF; make' ':' + substituteInPlace lib/h3/bindings/base.rb \ + --replace-fail '__dir__ + "/../../../ext/h3/src/lib"' '"${h3_3}/lib"' + ''; + postInstall = '' + rm -rf $out/${ruby.gemPath}/gems/h3-${attrs.version}/ext/h3/src + ''; + }; + hiredis-client = attrs: { buildInputs = [ openssl From d6f3fdc6d921a15ab93042ce784829963822a5f7 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Wed, 9 Jul 2025 16:35:08 +0100 Subject: [PATCH 027/396] dawarich: init at 0.37.3 --- .../da/dawarich/0001-build-ffi-gem.diff | 18 + .../da/dawarich/0002-openssl-hotfix.diff | 32 + pkgs/by-name/da/dawarich/gemset.nix | 3390 +++++++++++++++++ pkgs/by-name/da/dawarich/package.nix | 139 + pkgs/by-name/da/dawarich/sources.json | 5 + pkgs/by-name/da/dawarich/update.sh | 40 + 6 files changed, 3624 insertions(+) create mode 100644 pkgs/by-name/da/dawarich/0001-build-ffi-gem.diff create mode 100644 pkgs/by-name/da/dawarich/0002-openssl-hotfix.diff create mode 100644 pkgs/by-name/da/dawarich/gemset.nix create mode 100644 pkgs/by-name/da/dawarich/package.nix create mode 100644 pkgs/by-name/da/dawarich/sources.json create mode 100755 pkgs/by-name/da/dawarich/update.sh diff --git a/pkgs/by-name/da/dawarich/0001-build-ffi-gem.diff b/pkgs/by-name/da/dawarich/0001-build-ffi-gem.diff new file mode 100644 index 000000000000..7d331f6a2797 --- /dev/null +++ b/pkgs/by-name/da/dawarich/0001-build-ffi-gem.diff @@ -0,0 +1,18 @@ +diff --git a/Gemfile.lock b/Gemfile.lock +index d45a7657..d0a7b750 100644 +--- a/Gemfile.lock ++++ b/Gemfile.lock +@@ -172,12 +172,7 @@ GEM + railties (>= 6.1.0) + fakeredis (0.1.4) + ffaker (2.25.0) +- ffi (1.17.2-aarch64-linux-gnu) +- ffi (1.17.2-arm-linux-gnu) +- ffi (1.17.2-arm64-darwin) +- ffi (1.17.2-x86-linux-gnu) +- ffi (1.17.2-x86_64-darwin) +- ffi (1.17.2-x86_64-linux-gnu) ++ ffi (1.17.2) + foreman (0.90.0) + thor (~> 1.4) + fugit (1.11.1) diff --git a/pkgs/by-name/da/dawarich/0002-openssl-hotfix.diff b/pkgs/by-name/da/dawarich/0002-openssl-hotfix.diff new file mode 100644 index 000000000000..a17bea34279e --- /dev/null +++ b/pkgs/by-name/da/dawarich/0002-openssl-hotfix.diff @@ -0,0 +1,32 @@ +diff --git a/Gemfile b/Gemfile +index 36cf0d9c..fc914849 100644 +--- a/Gemfile ++++ b/Gemfile +@@ -28,6 +28,7 @@ gem 'omniauth-github', '~> 2.0.0' + gem 'omniauth-google-oauth2' + gem 'omniauth_openid_connect' + gem 'omniauth-rails_csrf_protection' ++gem 'openssl' + gem 'parallel' + gem 'pg' + gem 'prometheus_exporter' +diff --git a/Gemfile.lock b/Gemfile.lock +index a32eb801..b2fc45bc 100644 +--- a/Gemfile.lock ++++ b/Gemfile.lock +@@ -348,6 +348,7 @@ GEM + tzinfo + validate_url + webfinger (~> 2.0) ++ openssl (3.3.1) + optimist (3.2.1) + orm_adapter (0.5.0) + ostruct (0.6.1) +@@ -665,6 +666,7 @@ DEPENDENCIES + omniauth-google-oauth2 + omniauth-rails_csrf_protection + omniauth_openid_connect ++ openssl + parallel + pg + prometheus_exporter diff --git a/pkgs/by-name/da/dawarich/gemset.nix b/pkgs/by-name/da/dawarich/gemset.nix new file mode 100644 index 000000000000..fdcca67bb9bd --- /dev/null +++ b/pkgs/by-name/da/dawarich/gemset.nix @@ -0,0 +1,3390 @@ +{ + actioncable = { + dependencies = [ + "actionpack" + "activesupport" + "nio4r" + "websocket-driver" + "zeitwerk" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "14vlhzrgfgmz0fvrvd81j9xfw8ig091yiwq496firapgxffd7jpq"; + type = "gem"; + }; + version = "8.0.3"; + }; + actionmailbox = { + dependencies = [ + "actionpack" + "activejob" + "activerecord" + "activestorage" + "activesupport" + "mail" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0bxxqqflmczwl4ivcqjwwsnrhljcalk1i2hj02qisr3wjgw4811a"; + type = "gem"; + }; + version = "8.0.3"; + }; + actionmailer = { + dependencies = [ + "actionpack" + "actionview" + "activejob" + "activesupport" + "mail" + "rails-dom-testing" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "08y7ihafq71879ncq963rwi541b0gafqx8h5ba26zab521qc7h3d"; + type = "gem"; + }; + version = "8.0.3"; + }; + actionpack = { + dependencies = [ + "actionview" + "activesupport" + "nokogiri" + "rack" + "rack-session" + "rack-test" + "rails-dom-testing" + "rails-html-sanitizer" + "useragent" + ]; + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1lsspr8nffzn8qpfmj654w1qja1915x6bnzzhpbjj1cy235j2g6n"; + type = "gem"; + }; + version = "8.0.3"; + }; + actiontext = { + dependencies = [ + "actionpack" + "activerecord" + "activestorage" + "activesupport" + "globalid" + "nokogiri" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1x4xd8h5sdwdm3rc8h2pxxmq4a0i0wa0gk6c56zq58pzc3xgsihw"; + type = "gem"; + }; + version = "8.0.3"; + }; + actionview = { + dependencies = [ + "activesupport" + "builder" + "erubi" + "rails-dom-testing" + "rails-html-sanitizer" + ]; + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0rnfn44g217n9hgvn4ga7l0hl149b91djnl07nzra7kxy1pr8wai"; + type = "gem"; + }; + version = "8.0.3"; + }; + activejob = { + dependencies = [ + "activesupport" + "globalid" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1dm1vc5vvk5pwq4x7sfh3g6qzzwbyac37ggh1mm1rzraharxv7j6"; + type = "gem"; + }; + version = "8.0.3"; + }; + activemodel = { + dependencies = [ "activesupport" ]; + groups = [ + "default" + "development" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0z565q17fmhj4b9j689r0xx1s26w1xcw8z0qyb6h8v0wb8j0fsa0"; + type = "gem"; + }; + version = "8.0.3"; + }; + activerecord = { + dependencies = [ + "activemodel" + "activesupport" + "timeout" + ]; + groups = [ + "default" + "development" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1a6fng58lria02wlwiqjgqway0nx1wq31dsxn5xvbk7958xwd5cv"; + type = "gem"; + }; + version = "8.0.3"; + }; + activerecord-postgis-adapter = { + dependencies = [ + "activerecord" + "rgeo-activerecord" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "06xp91kanz3w2s89wqb97fzzzcpy79rfjjs4zq85m402zg2fm08w"; + type = "gem"; + }; + version = "11.0.0"; + }; + activestorage = { + dependencies = [ + "actionpack" + "activejob" + "activerecord" + "activesupport" + "marcel" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0plck0b57b9ni8n52hj5slv5n8i7w3nfwq6r47nkb2hjbpmsskjg"; + type = "gem"; + }; + version = "8.0.3"; + }; + activesupport = { + dependencies = [ + "base64" + "benchmark" + "bigdecimal" + "concurrent-ruby" + "connection_pool" + "drb" + "i18n" + "logger" + "minitest" + "securerandom" + "tzinfo" + "uri" + ]; + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "08vqq5y6vniz30p747xa8yfqb3cz8scqd8r65wij62v661gcw4d7"; + type = "gem"; + }; + version = "8.0.3"; + }; + addressable = { + dependencies = [ "public_suffix" ]; + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0cl2qpvwiffym62z991ynks7imsm87qmgxf0yfsmlwzkgi9qcaa6"; + type = "gem"; + }; + version = "2.8.7"; + }; + aes_key_wrap = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "19bn0y70qm6mfj4y1m0j3s8ggh6dvxwrwrj5vfamhdrpddsz8ddr"; + type = "gem"; + }; + version = "1.1.0"; + }; + ast = { + groups = [ + "default" + "development" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "10yknjyn0728gjn6b5syynvrvrwm66bhssbxq8mkhshxghaiailm"; + type = "gem"; + }; + version = "2.4.3"; + }; + attr_extras = { + groups = [ + "default" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "09y83ygjsk4rva8bn9mfb4whjh7q2sl4093n6wnvm1axvnlwjvyr"; + type = "gem"; + }; + version = "7.1.0"; + }; + attr_required = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "16fbwr6nmsn97n0a6k1nwbpyz08zpinhd6g7196lz1syndbgrszh"; + type = "gem"; + }; + version = "1.0.2"; + }; + aws-eventstream = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1mvjjn8vh1c3nhibmjj9qcwxagj6m9yy961wblfqdmvhr9aklb3y"; + type = "gem"; + }; + version = "1.3.2"; + }; + aws-partitions = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "06y8bc0iasxm2m9l6yz84kp7d0nka52z6adz4ia09rv1ry1czrm6"; + type = "gem"; + }; + version = "1.1072.0"; + }; + aws-sdk-core = { + dependencies = [ + "aws-eventstream" + "aws-partitions" + "aws-sigv4" + "jmespath" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1vmi65a22dq0rhjiydr94zwpn9hx3vib7vp922ccjg0vrih7mlzy"; + type = "gem"; + }; + version = "3.215.1"; + }; + aws-sdk-kms = { + dependencies = [ + "aws-sdk-core" + "aws-sigv4" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0xd3ddd9jiapkgv8im4pl9dcdy2ps7qjsssf2nz3q6sd1ca8x0di"; + type = "gem"; + }; + version = "1.96.0"; + }; + aws-sdk-s3 = { + dependencies = [ + "aws-sdk-core" + "aws-sdk-kms" + "aws-sigv4" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "10ziy8zslfjs0ihls7wiq6zvsncq89azh36rshmlylry1hhxjbxz"; + type = "gem"; + }; + version = "1.177.0"; + }; + aws-sigv4 = { + dependencies = [ "aws-eventstream" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1nx1il781qg58nwjkkdn9fw741cjjnixfsh389234qm8j5lpka2h"; + type = "gem"; + }; + version = "1.11.0"; + }; + base64 = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0yx9yn47a8lkfcjmigk79fykxvr80r4m1i35q82sxzynpbm7lcr7"; + type = "gem"; + }; + version = "0.3.0"; + }; + bcrypt = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "16a0g2q40biv93i1hch3gw8rbmhp77qnnifj1k0a6m7dng3zh444"; + type = "gem"; + }; + version = "3.1.20"; + }; + benchmark = { + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0v1337j39w1z7x9zs4q7ag0nfv4vs4xlsjx2la0wpv8s6hig2pa6"; + type = "gem"; + }; + version = "0.5.0"; + }; + bigdecimal = { + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "19y406nx17arzsbc515mjmr6k5p59afprspa1k423yd9cp8d61wb"; + type = "gem"; + }; + version = "4.0.1"; + }; + bindata = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0n4ymlgik3xcg94h52dzmh583ss40rl3sn0kni63v56sq8g6l62k"; + type = "gem"; + }; + version = "2.5.1"; + }; + bootsnap = { + dependencies = [ "msgpack" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "003xl226y120cbq1n99805jw6w75gcz1gs941yz3h7li3qy3kqha"; + type = "gem"; + }; + version = "1.18.6"; + }; + brakeman = { + dependencies = [ "racc" ]; + groups = [ + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "164l8dh3c22c8448hgd0zqhsffxvn4d9wad2zzipav29sssjd532"; + type = "gem"; + }; + version = "7.1.1"; + }; + builder = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0pw3r2lyagsxkm71bf44v5b74f7l9r7di22brbyji9fwz791hya9"; + type = "gem"; + }; + version = "3.3.0"; + }; + bundler-audit = { + dependencies = [ "thor" ]; + groups = [ + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0j0h5cgnzk0ms17ssjkzfzwz65ggrs3lsp53a1j46p4616m1s1bk"; + type = "gem"; + }; + version = "0.9.2"; + }; + byebug = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "07hsr9zzl2mvf5gk65va4smdizlk9rsiz8wwxik0p96cj79518fl"; + type = "gem"; + }; + version = "12.0.0"; + }; + capybara = { + dependencies = [ + "addressable" + "matrix" + "mini_mime" + "nokogiri" + "rack" + "rack-test" + "regexp_parser" + "xpath" + ]; + groups = [ "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1vxfah83j6zpw3v5hic0j70h519nvmix2hbszmjwm8cfawhagns2"; + type = "gem"; + }; + version = "3.40.0"; + }; + chartkick = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0jcr6rjfb3q0jpnivpl1dw7iz2mwvsxv0zh7ipr317qqhzgdfj18"; + type = "gem"; + }; + version = "5.2.1"; + }; + chunky_png = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1znw5x86hmm9vfhidwdsijz8m38pqgmv98l9ryilvky0aldv7mc9"; + type = "gem"; + }; + version = "1.4.0"; + }; + coderay = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw"; + type = "gem"; + }; + version = "1.1.3"; + }; + concurrent-ruby = { + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1aymcakhzl83k77g2f2krz07bg1cbafbcd2ghvwr4lky3rz86mkb"; + type = "gem"; + }; + version = "1.3.6"; + }; + connection_pool = { + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1b8nlxr5z843ii7hfk6igpr5acw3k2ih9yjrgkyz2gbmallgjkz5"; + type = "gem"; + }; + version = "2.5.5"; + }; + crack = { + dependencies = [ + "bigdecimal" + "rexml" + ]; + groups = [ + "default" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0zjcdl5i6lw508r01dym05ibhkc784cfn93m1d26c7fk1hwi0jpz"; + type = "gem"; + }; + version = "1.0.1"; + }; + crass = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw"; + type = "gem"; + }; + version = "1.0.6"; + }; + cronex = { + dependencies = [ + "tzinfo" + "unicode" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "11i1psgzcqzj4a7p62vy56i5p8s00d29y9rf9wf9blpshph99ir1"; + type = "gem"; + }; + version = "0.15.0"; + }; + css-zero = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1jiihfxvfw0wl42m0jzpq94iqa2ra878dqllkk34w49pv0wsgrkz"; + type = "gem"; + }; + version = "1.1.15"; + }; + csv = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1kfqg0m6vqs6c67296f10cr07im5mffj90k2b5dsm51liidcsvp9"; + type = "gem"; + }; + version = "3.3.4"; + }; + data_migrate = { + dependencies = [ + "activerecord" + "railties" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1ywg2qvpf1yxfbcdwmw2pl274i4bicjc4gsz6gaq5r0mklcb5f8q"; + type = "gem"; + }; + version = "11.3.1"; + }; + database_consistency = { + dependencies = [ "activerecord" ]; + groups = [ "development" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "19yf280vw91ji4prrbk17qy336l1y1jqvwsnhf3fc7yscim431sj"; + type = "gem"; + }; + version = "2.0.6"; + }; + date = { + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ + { + engine = "maglev"; + } + { + engine = "mingw"; + } + { + engine = "mingw"; + } + { + engine = "ruby"; + } + ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1rbfqkzr6i8b6538z16chvrkgywf5p5vafsgmnbmvrmh0ingsx2y"; + type = "gem"; + }; + version = "3.5.0"; + }; + debug = { + dependencies = [ + "irb" + "reline" + ]; + groups = [ + "development" + "test" + ]; + platforms = [ + { + engine = "maglev"; + } + { + engine = "mingw"; + } + { + engine = "mingw"; + } + { + engine = "ruby"; + } + ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1wmfy5n5v2rzpr5vz698sqfj1gl596bxrqw44sahq4x0rxjdn98l"; + type = "gem"; + }; + version = "1.11.0"; + }; + devise = { + dependencies = [ + "bcrypt" + "orm_adapter" + "railties" + "responders" + "warden" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1y57fpcvy1kjd4nb7zk7mvzq62wqcpfynrgblj558k3hbvz4404j"; + type = "gem"; + }; + version = "4.9.4"; + }; + diff-lcs = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0qlrj2qyysc9avzlr4zs1py3x684hqm61n4czrsk1pyllz5x5q4s"; + type = "gem"; + }; + version = "1.6.2"; + }; + docile = { + groups = [ + "default" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "07pj4z3h8wk4fgdn6s62vw1lwvhj0ac0x10vfbdkr9xzk7krn5cn"; + type = "gem"; + }; + version = "1.4.1"; + }; + dotenv = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1hwjsddv666wpp42bip3fqx7c5qq6s8lwf74dj71yn7d1h37c4cy"; + type = "gem"; + }; + version = "3.1.8"; + }; + dotenv-rails = { + dependencies = [ + "dotenv" + "railties" + ]; + groups = [ + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1i40g6kzwp8yxsxzpzgsq2hww9gxryl5lck1bwxshn4bd8id3ja6"; + type = "gem"; + }; + version = "3.1.8"; + }; + drb = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0wrkl7yiix268s2md1h6wh91311w95ikd8fy8m5gx589npyxc00b"; + type = "gem"; + }; + version = "2.2.3"; + }; + email_validator = { + dependencies = [ "activemodel" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0106y8xakq6frv2xc68zz76q2l2cqvhfjc7ji69yyypcbc4kicjs"; + type = "gem"; + }; + version = "2.2.4"; + }; + erb = { + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ + { + engine = "maglev"; + } + { + engine = "mingw"; + } + { + engine = "mingw"; + } + { + engine = "ruby"; + } + ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0y95ynlfngs0s5x1w6mwralszhbi9d75lcdbdkqk75wcklzqjc17"; + type = "gem"; + }; + version = "6.0.0"; + }; + erubi = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1naaxsqkv5b3vklab5sbb9sdpszrjzlfsbqpy7ncbnw510xi10m0"; + type = "gem"; + }; + version = "1.13.1"; + }; + et-orbi = { + dependencies = [ "tzinfo" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1g785lz4z2k7jrdl7bnnjllzfrwpv9pyki94ngizj8cqfy83qzkc"; + type = "gem"; + }; + version = "1.4.0"; + }; + factory_bot = { + dependencies = [ "activesupport" ]; + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1gpgcr5dfrq7hs3wafxaqrkx84zm2rlfwbwamd6p1d71mrfjjnff"; + type = "gem"; + }; + version = "6.5.5"; + }; + factory_bot_rails = { + dependencies = [ + "factory_bot" + "railties" + ]; + groups = [ + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0s3dpi8x754bwv4mlasdal8ffiahi4b4ajpccnkaipp4x98lik6k"; + type = "gem"; + }; + version = "6.5.1"; + }; + fakeredis = { + groups = [ "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0xlkcavchj9l9457q4gfjynrzj3d9q9p8sxwclqrn4g2wjdc8vap"; + type = "gem"; + }; + version = "0.1.4"; + }; + faraday = { + dependencies = [ + "faraday-net_http" + "json" + "logger" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1ka175ci0q9ylpcy651pjj580diplkaskycn4n7jcmbyv7jwz6c6"; + type = "gem"; + }; + version = "2.14.0"; + }; + faraday-follow_redirects = { + dependencies = [ "faraday" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1nfmmnmqgbxci7dlca0qnwxn8j29yv7v8wm26m0f4l0kmcc13ynk"; + type = "gem"; + }; + version = "0.4.0"; + }; + faraday-net_http = { + dependencies = [ "net-http" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0fxbckg468dabkkznv48ss8zv14d9cd8mh1rr3m98aw7wzx5fmq9"; + type = "gem"; + }; + version = "3.4.1"; + }; + ffaker = { + groups = [ + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0h7crcdqddlds3kx0q3vsx3cm6s62psvfx98crasqnhrz2nwb1g4"; + type = "gem"; + }; + version = "2.25.0"; + }; + ffi = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "19kdyjg3kv7x0ad4xsd4swy5izsbb1vl1rpb6qqcqisr5s23awi9"; + type = "gem"; + }; + version = "1.17.2"; + }; + foreman = { + dependencies = [ "thor" ]; + groups = [ "development" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0z0i7wn1x5ii3i9q9c4d3ps0d3zfw71llvaaf5caq1xn8wnmwrzz"; + type = "gem"; + }; + version = "0.90.0"; + }; + fugit = { + dependencies = [ + "et-orbi" + "raabro" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0s5gg88f2d5wpppgrgzfhnyi9y2kzprvhhjfh3q1bd79xmwg962q"; + type = "gem"; + }; + version = "1.12.1"; + }; + geocoder = { + dependencies = [ + "base64" + "csv" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + fetchSubmodules = false; + rev = "12ac3e659fc5b57c1ffd12f04b8cad2f73d0939c"; + sha256 = "0k4wafl8f3v3vv3zzy1v9b4yiz3nz15zy41kg8j4fx1kbcvasgm1"; + type = "git"; + url = "https://github.com/Freika/geocoder.git"; + }; + version = "1.8.5"; + }; + globalid = { + dependencies = [ "activesupport" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "04gzhqvsm4z4l12r9dkac9a75ah45w186ydhl0i4andldsnkkih5"; + type = "gem"; + }; + version = "1.3.0"; + }; + gpx = { + dependencies = [ + "csv" + "nokogiri" + "rake" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1cgm6dzzpslhgxcqcgqnpvargrq9d3v2xhxgan1l1cayc33pn837"; + type = "gem"; + }; + version = "1.2.1"; + }; + groupdate = { + dependencies = [ "activesupport" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0xv7zdaw799fvhbh0pdq2hi6lhvp1sid988l35l18s45yddqvamy"; + type = "gem"; + }; + version = "6.7.0"; + }; + h3 = { + dependencies = [ + "ffi" + "rgeo-geojson" + "zeitwerk" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1vgy9d5pafk2lkb9r1w3d3y6wbzdkc7ls5k83rc6r307cinjblwr"; + type = "gem"; + }; + version = "3.7.4"; + }; + hashdiff = { + groups = [ + "default" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1lbw8lqzjv17vnwb9vy5ki4jiyihybcc5h2rmcrqiz1xa6y9s1ww"; + type = "gem"; + }; + version = "1.2.1"; + }; + hashie = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1nh3arcrbz1rc1cr59qm53sdhqm137b258y8rcb4cvd3y98lwv4x"; + type = "gem"; + }; + version = "5.0.0"; + }; + httparty = { + dependencies = [ + "csv" + "mini_mime" + "multi_xml" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0mbbjr774zxb2wcpbwc93l0i481bxk7ga5hpap76w3q1y9idvh9s"; + type = "gem"; + }; + version = "0.23.1"; + }; + i18n = { + dependencies = [ "concurrent-ruby" ]; + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1994i044vdmzzkyr76g8rpl1fq1532wf0sb21xg5r1ilj5iphmr8"; + type = "gem"; + }; + version = "1.14.8"; + }; + importmap-rails = { + dependencies = [ + "actionpack" + "activesupport" + "railties" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "05767zlpfafsairdl1kgalfdjlvydjsd1qdd5447hcpqj885p7vj"; + type = "gem"; + }; + version = "2.2.2"; + }; + io-console = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ + { + engine = "maglev"; + } + { + engine = "mingw"; + } + { + engine = "mingw"; + } + { + engine = "ruby"; + } + ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1jszj95hazqqpnrjjzr326nn1j32xmsc9xvd97mbcrrgdc54858y"; + type = "gem"; + }; + version = "0.8.1"; + }; + irb = { + dependencies = [ + "pp" + "rdoc" + "reline" + ]; + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ + { + engine = "maglev"; + } + { + engine = "mingw"; + } + { + engine = "mingw"; + } + { + engine = "ruby"; + } + ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1aja320qnimlnfc80wf2i2x8i99kl5sdzfacsfzzfzzs3vzysja3"; + type = "gem"; + }; + version = "1.15.3"; + }; + jmespath = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1cdw9vw2qly7q7r41s7phnac264rbsdqgj4l0h4nqgbjb157g393"; + type = "gem"; + }; + version = "1.6.2"; + }; + json = { + groups = [ + "default" + "development" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "01fmiz052cvnxgdnhb3qwcy88xbv7l3liz0fkvs5qgqqwjp0c1di"; + type = "gem"; + }; + version = "2.18.0"; + }; + json-jwt = { + dependencies = [ + "activesupport" + "aes_key_wrap" + "base64" + "bindata" + "faraday" + "faraday-follow_redirects" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1k64mp59jlbqd5hyy46pf93s3yl1xdngfy8i8flq2hn5nhk91ybg"; + type = "gem"; + }; + version = "1.17.0"; + }; + json-schema = { + dependencies = [ "addressable" ]; + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1abl1a92zv9xxw3xb3hrzjpk8xiz2hp54lqmj6a2b900qs11mxxy"; + type = "gem"; + }; + version = "5.0.1"; + }; + jwt = { + dependencies = [ "base64" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1i8wmzgb5nfhvkx1f6bhdwfm7v772172imh439v3xxhkv3hllhp6"; + type = "gem"; + }; + version = "2.10.1"; + }; + kaminari = { + dependencies = [ + "activesupport" + "kaminari-actionview" + "kaminari-activerecord" + "kaminari-core" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0gia8irryvfhcr6bsr64kpisbgdbqjsqfgrk12a11incmpwny1y4"; + type = "gem"; + }; + version = "1.2.2"; + }; + kaminari-actionview = { + dependencies = [ + "actionview" + "kaminari-core" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "02f9ghl3a9b5q7l079d3yzmqjwkr4jigi7sldbps992rigygcc0k"; + type = "gem"; + }; + version = "1.2.2"; + }; + kaminari-activerecord = { + dependencies = [ + "activerecord" + "kaminari-core" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0c148z97s1cqivzbwrak149z7kl1rdmj7dxk6rpkasimmdxsdlqd"; + type = "gem"; + }; + version = "1.2.2"; + }; + kaminari-core = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1zw3pg6kj39y7jxakbx7if59pl28lhk98fx71ks5lr3hfgn6zliv"; + type = "gem"; + }; + version = "1.2.2"; + }; + language_server-protocol = { + groups = [ + "default" + "development" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1k0311vah76kg5m6zr7wmkwyk5p2f9d9hyckjpn3xgr83ajkj7px"; + type = "gem"; + }; + version = "3.17.0.5"; + }; + lint_roller = { + groups = [ + "default" + "development" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "11yc0d84hsnlvx8cpk4cbj6a4dz9pk0r1k29p0n1fz9acddq831c"; + type = "gem"; + }; + version = "1.1.0"; + }; + logger = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "00q2zznygpbls8asz5knjvvj2brr3ghmqxgr83xnrdj4rk3xwvhr"; + type = "gem"; + }; + version = "1.7.0"; + }; + lograge = { + dependencies = [ + "actionpack" + "activesupport" + "railties" + "request_store" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1qcsvh9k4c0cp6agqm9a8m4x2gg7vifryqr7yxkg2x9ph9silds2"; + type = "gem"; + }; + version = "0.14.0"; + }; + loofah = { + dependencies = [ + "crass" + "nokogiri" + ]; + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0dx316q03x6rpdbl610rdaj2vfd5s8fanixk21j4gv3h5f230nk5"; + type = "gem"; + }; + version = "2.24.1"; + }; + mail = { + dependencies = [ + "logger" + "mini_mime" + "net-imap" + "net-pop" + "net-smtp" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0ha9sgkfqna62c1basc17dkx91yk7ppgjq32k4nhrikirlz6g9kg"; + type = "gem"; + }; + version = "2.9.0"; + }; + marcel = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1vhb1sbzlq42k2pzd9v0w5ws4kjx184y8h4d63296bn57jiwzkzx"; + type = "gem"; + }; + version = "1.1.0"; + }; + matrix = { + groups = [ + "default" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1h2cgkpzkh3dd0flnnwfq6f3nl2b1zff9lvqz8xs853ssv5kq23i"; + type = "gem"; + }; + version = "0.4.2"; + }; + method_source = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1igmc3sq9ay90f8xjvfnswd1dybj1s3fi0dwd53inwsvqk4h24qq"; + type = "gem"; + }; + version = "1.1.0"; + }; + mini_mime = { + groups = [ + "default" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1vycif7pjzkr29mfk4dlqv3disc5dn0va04lkwajlpr1wkibg0c6"; + type = "gem"; + }; + version = "1.1.5"; + }; + mini_portile2 = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "12f2830x7pq3kj0v8nz0zjvaw02sv01bqs1zwdrc04704kwcgmqc"; + type = "gem"; + }; + version = "2.8.9"; + }; + minitest = { + dependencies = [ "prism" ]; + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1fslin1vyh60snwygx8jnaj4kwhk83f3m0v2j2b7bsg2917wfm3q"; + type = "gem"; + }; + version = "6.0.1"; + }; + msgpack = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "04ihgnwp2ka68v82a6jpk9yqmazfwnbk3vsz6sb040kq6gf53dzd"; + type = "gem"; + }; + version = "1.7.3"; + }; + multi_json = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z"; + type = "gem"; + }; + version = "1.15.0"; + }; + multi_xml = { + dependencies = [ "bigdecimal" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0wyzwvch1a4c77g5zjwjhgf9z5inzngq42b197dm9qzqjb8dqjld"; + type = "gem"; + }; + version = "0.8.0"; + }; + net-http = { + dependencies = [ "uri" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1ysrwaabhf0sn24jrp0nnp51cdv0jf688mh5i6fsz63q2c6b48cn"; + type = "gem"; + }; + version = "0.6.0"; + }; + net-imap = { + dependencies = [ + "date" + "net-protocol" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0i24prs7yy1p1zdps2x1ksb7lmvbn2f0llxwdjdw3z2ksddx136b"; + type = "gem"; + }; + version = "0.5.12"; + }; + net-pop = { + dependencies = [ "net-protocol" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1wyz41jd4zpjn0v1xsf9j778qx1vfrl24yc20cpmph8k42c4x2w4"; + type = "gem"; + }; + version = "0.1.2"; + }; + net-protocol = { + dependencies = [ "timeout" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1a32l4x73hz200cm587bc29q8q9az278syw3x6fkc9d1lv5y0wxa"; + type = "gem"; + }; + version = "0.2.2"; + }; + net-smtp = { + dependencies = [ "net-protocol" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0dh7nzjp0fiaqq1jz90nv4nxhc2w359d7c199gmzq965cfps15pd"; + type = "gem"; + }; + version = "0.5.1"; + }; + nio4r = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1a9www524fl1ykspznz54i0phfqya4x45hqaz67in9dvw1lfwpfr"; + type = "gem"; + }; + version = "2.7.4"; + }; + nokogiri = { + dependencies = [ + "mini_portile2" + "racc" + ]; + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1hcwwr2h8jnqqxmf8mfb52b0dchr7pm064ingflb78wa00qhgk6m"; + type = "gem"; + }; + version = "1.18.10"; + }; + oauth2 = { + dependencies = [ + "faraday" + "jwt" + "logger" + "multi_xml" + "rack" + "snaky_hash" + "version_gem" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0dcqwwlm8afr97mg1i633yia3hzd61f0j5csrspzsvf0mfp85qf4"; + type = "gem"; + }; + version = "2.0.17"; + }; + oj = { + dependencies = [ + "bigdecimal" + "ostruct" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1cajn3ylwhby1x51d9hbchm964qwb5zp63f7sfdm55n85ffn1ara"; + type = "gem"; + }; + version = "3.16.11"; + }; + omniauth = { + dependencies = [ + "hashie" + "logger" + "rack" + "rack-protection" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0g3n12k5npmmgai2cs3snimy6r7h0bvalhjxv0fjxlphjq25p822"; + type = "gem"; + }; + version = "2.1.4"; + }; + omniauth-github = { + dependencies = [ + "omniauth" + "omniauth-oauth2" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1m6a7kg3lxz2nm96prln2ja8r4wlm37m5vsy9199vnynqq5fgy4g"; + type = "gem"; + }; + version = "2.0.1"; + }; + omniauth-google-oauth2 = { + dependencies = [ + "jwt" + "oauth2" + "omniauth" + "omniauth-oauth2" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1pdf3bx036l6ggz6lkkykv77m9k4jypwsiw1q7874czwh2v50768"; + type = "gem"; + }; + version = "1.2.1"; + }; + omniauth-oauth2 = { + dependencies = [ + "oauth2" + "omniauth" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0y4y122xm8zgrxn5nnzwg6w39dnjss8pcq2ppbpx9qn7kiayky5j"; + type = "gem"; + }; + version = "1.8.0"; + }; + omniauth-rails_csrf_protection = { + dependencies = [ + "actionpack" + "omniauth" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1q2zvkw34vk1vyhn5kp30783w1wzam9i9g5ygsdjn2gz59kzsw0i"; + type = "gem"; + }; + version = "1.0.2"; + }; + omniauth_openid_connect = { + dependencies = [ + "omniauth" + "openid_connect" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "099xg7s6450wlfzs77mbdx78g3dp0glx5q6f44i78akf7283hbqz"; + type = "gem"; + }; + version = "0.8.0"; + }; + openid_connect = { + dependencies = [ + "activemodel" + "attr_required" + "email_validator" + "faraday" + "faraday-follow_redirects" + "json-jwt" + "mail" + "rack-oauth2" + "swd" + "tzinfo" + "validate_url" + "webfinger" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "10i13cn40jiiw8lslkv7bj1isinnwbmzlk6msgiph3gqry08702x"; + type = "gem"; + }; + version = "2.3.1"; + }; + openssl = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0dzq3k5hmqlav2mwf7bc10mr1mlmlnpin498g7jhbhpdpa324s6n"; + type = "gem"; + }; + version = "3.3.1"; + }; + optimist = { + groups = [ + "default" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0kp3f8g7g7cbw5vfkmpdv71pphhpcxk3lpc892mj9apkd7ys1y4c"; + type = "gem"; + }; + version = "3.2.1"; + }; + orm_adapter = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda"; + type = "gem"; + }; + version = "0.5.0"; + }; + ostruct = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "05xqijcf80sza5pnlp1c8whdaay8x5dc13214ngh790zrizgp8q9"; + type = "gem"; + }; + version = "0.6.1"; + }; + pagy = { + dependencies = [ + "json" + "yaml" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "08pikkvj916fw75l7ycmzb3gf1w9cp3h1jphls0pnqbphf1v3r4g"; + type = "gem"; + }; + version = "43.2.2"; + }; + parallel = { + groups = [ + "default" + "development" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0c719bfgcszqvk9z47w2p8j2wkz5y35k48ywwas5yxbbh3hm3haa"; + type = "gem"; + }; + version = "1.27.0"; + }; + parser = { + dependencies = [ + "ast" + "racc" + ]; + groups = [ + "default" + "development" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1mmb59323ldv6vxfmy98azgsla9k3di3fasvpb28hnn5bkx8fdff"; + type = "gem"; + }; + version = "3.3.10.0"; + }; + patience_diff = { + dependencies = [ "optimist" ]; + groups = [ + "default" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0b42yr1yyph9knibnf7v896wzfqf9mmzlw00m3sgy0mghr20k4pl"; + type = "gem"; + }; + version = "1.2.0"; + }; + pg = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0xf8i58shwvwlka4ld12nxcgqv0d5r1yizsvw74w5jaw83yllqaq"; + type = "gem"; + }; + version = "1.6.2"; + }; + pp = { + dependencies = [ "prettyprint" ]; + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ + { + engine = "maglev"; + } + { + engine = "mingw"; + } + { + engine = "mingw"; + } + { + engine = "ruby"; + } + ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1xlxmg86k5kifci1xvlmgw56x88dmqf04zfzn7zcr4qb8ladal99"; + type = "gem"; + }; + version = "0.6.3"; + }; + prettyprint = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ + { + engine = "maglev"; + } + { + engine = "mingw"; + } + { + engine = "mingw"; + } + { + engine = "ruby"; + } + ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "14zicq3plqi217w6xahv7b8f7aj5kpxv1j1w98344ix9h5ay3j9b"; + type = "gem"; + }; + version = "0.2.0"; + }; + prism = { + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "00silqnlzzm97gn21lm39q95hjn058waqky44j25r67p9drjy1hh"; + type = "gem"; + }; + version = "1.7.0"; + }; + prometheus_exporter = { + dependencies = [ "webrick" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "15vl8fw8vjnaj9g129dzrwk9nlrdqgffaj3rys4ba9ns2bqim9rq"; + type = "gem"; + }; + version = "2.2.0"; + }; + pry = { + dependencies = [ + "coderay" + "method_source" + ]; + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0ssv704qg75mwlyagdfr9xxbzn1ziyqgzm0x474jkynk8234pm8j"; + type = "gem"; + }; + version = "0.15.2"; + }; + pry-byebug = { + dependencies = [ + "byebug" + "pry" + ]; + groups = [ + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0wpa3jd46h44rjz3hjwl5c0zfx3jav4a64nm8h0g1iwv61yvn2hb"; + type = "gem"; + }; + version = "3.11.0"; + }; + pry-rails = { + dependencies = [ "pry" ]; + groups = [ + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0garafb0lxbm3sx2r9pqgs7ky9al58cl3wmwc0gmvmrl9bi2i7m6"; + type = "gem"; + }; + version = "0.3.11"; + }; + psych = { + dependencies = [ + "date" + "stringio" + ]; + groups = [ + "default" + "development" + "test" + ]; + platforms = [ + { + engine = "maglev"; + } + { + engine = "mingw"; + } + { + engine = "mingw"; + } + { + engine = "ruby"; + } + ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0vii1xc7x81hicdbp7dlllhmbw5w3jy20shj696n0vfbbnm2hhw1"; + type = "gem"; + }; + version = "5.2.6"; + }; + public_suffix = { + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1543ap9w3ydhx39ljcd675cdz9cr948x9mp00ab8qvq6118wv9xz"; + type = "gem"; + }; + version = "6.0.2"; + }; + puma = { + dependencies = [ "nio4r" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1pa9zpr51kqnsq549p6apvnr95s9flx6bnwqii24s8jg2b5i0p74"; + type = "gem"; + }; + version = "7.1.0"; + }; + pundit = { + dependencies = [ "activesupport" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1gcb23749jwggmgic4607ky6hm2c9fpkya980iihpy94m8miax73"; + type = "gem"; + }; + version = "2.5.2"; + }; + raabro = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "10m8bln9d00dwzjil1k42i5r7l82x25ysbi45fwyv4932zsrzynl"; + type = "gem"; + }; + version = "1.4.0"; + }; + racc = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0byn0c9nkahsl93y9ln5bysq4j31q8xkf2ws42swighxd4lnjzsa"; + type = "gem"; + }; + version = "1.8.1"; + }; + rack = { + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1xmnrk076sqymilydqgyzhkma3hgqhcv8xhy7ks479l2a3vvcx2x"; + type = "gem"; + }; + version = "3.2.4"; + }; + rack-oauth2 = { + dependencies = [ + "activesupport" + "attr_required" + "faraday" + "faraday-follow_redirects" + "json-jwt" + "rack" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0cn6a9v8nry9fx4zrzp1xakfp2n5xv5075j90q56m20k7zvjrq23"; + type = "gem"; + }; + version = "2.3.0"; + }; + rack-protection = { + dependencies = [ + "base64" + "logger" + "rack" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1b4bamcbpk29i7jvly3i7ayfj69yc1g03gm4s7jgamccvx12hvng"; + type = "gem"; + }; + version = "4.2.1"; + }; + rack-session = { + dependencies = [ + "base64" + "rack" + ]; + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1sg4laz2qmllxh1c5sqlj9n1r7scdn08p3m4b0zmhjvyx9yw0v8b"; + type = "gem"; + }; + version = "2.1.1"; + }; + rack-test = { + dependencies = [ "rack" ]; + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0qy4ylhcfdn65a5mz2hly7g9vl0g13p5a0rmm6sc0sih5ilkcnh0"; + type = "gem"; + }; + version = "2.2.0"; + }; + rackup = { + dependencies = [ "rack" ]; + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "13brkq5xkj6lcdxj3f0k7v28hgrqhqxjlhd4y2vlicy5slgijdzp"; + type = "gem"; + }; + version = "2.2.1"; + }; + rails = { + dependencies = [ + "actioncable" + "actionmailbox" + "actionmailer" + "actionpack" + "actiontext" + "actionview" + "activejob" + "activemodel" + "activerecord" + "activestorage" + "activesupport" + "railties" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0igxnfy4xckvk2b6x17zrwa8xwnkxnpv36ca4wma7bhs5n1c10sx"; + type = "gem"; + }; + version = "8.0.3"; + }; + rails-dom-testing = { + dependencies = [ + "activesupport" + "minitest" + "nokogiri" + ]; + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "07awj8bp7jib54d0khqw391ryw8nphvqgw4bb12cl4drlx9pkk4a"; + type = "gem"; + }; + version = "2.3.0"; + }; + rails-html-sanitizer = { + dependencies = [ + "loofah" + "nokogiri" + ]; + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0q55i6mpad20m2x1lg5pkqfpbmmapk0sjsrvr1sqgnj2hb5f5z1m"; + type = "gem"; + }; + version = "1.6.2"; + }; + rails_icons = { + dependencies = [ + "nokogiri" + "rails" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0aixqyan3ik3z84135wn0zvvfb8krj4qxccsg9jbznjx0ywblhap"; + type = "gem"; + }; + version = "1.4.0"; + }; + rails_pulse = { + dependencies = [ + "css-zero" + "groupdate" + "pagy" + "rails" + "ransack" + "request_store" + "turbo-rails" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1mla44nhcpr57i4dqir173b3jyzfpvy9prnzyz5nlf0ny3hysk5s"; + type = "gem"; + }; + version = "0.2.4"; + }; + railties = { + dependencies = [ + "actionpack" + "activesupport" + "irb" + "rackup" + "rake" + "thor" + "tsort" + "zeitwerk" + ]; + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1lpiazaaq8di4lz9iqjqdrsnha6kfq6k35kd9nk9jhhksz51vqxc"; + type = "gem"; + }; + version = "8.0.3"; + }; + rainbow = { + groups = [ + "default" + "development" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0smwg4mii0fm38pyb5fddbmrdpifwv22zv3d3px2xx497am93503"; + type = "gem"; + }; + version = "3.1.1"; + }; + rake = { + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "175iisqb211n0qbfyqd8jz2g01q6xj038zjf4q0nm8k6kz88k7lc"; + type = "gem"; + }; + version = "13.3.1"; + }; + ransack = { + dependencies = [ + "activerecord" + "activesupport" + "i18n" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0gd6nwr0xlvgas21p1qgw90cg27xdi70988dw5q8a20rzhvarska"; + type = "gem"; + }; + version = "4.4.1"; + }; + rdoc = { + dependencies = [ + "erb" + "psych" + "tsort" + ]; + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ + { + engine = "maglev"; + } + { + engine = "mingw"; + } + { + engine = "mingw"; + } + { + engine = "ruby"; + } + ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0p4z1cs2zvkkvl0xiiy76ys1ipbhx0df15241jx7gnp61317qdbi"; + type = "gem"; + }; + version = "6.16.1"; + }; + redis = { + dependencies = [ "redis-client" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1bpsh5dbvybsa8qnv4dg11a6f2zn4sndarf7pk4iaayjgaspbrmm"; + type = "gem"; + }; + version = "5.4.1"; + }; + redis-client = { + dependencies = [ "connection_pool" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "16vplvxrsaq6as1hzw71mkfcpjdphk0m662k36vrilq2f9dgndhk"; + type = "gem"; + }; + version = "0.26.2"; + }; + regexp_parser = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "192mzi0wgwl024pwpbfa6c2a2xlvbh3mjd75a0sakdvkl60z64ya"; + type = "gem"; + }; + version = "2.11.3"; + }; + reline = { + dependencies = [ "io-console" ]; + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ + { + engine = "maglev"; + } + { + engine = "mingw"; + } + { + engine = "mingw"; + } + { + engine = "ruby"; + } + ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0d8q5c4nh2g9pp758kizh8sfrvngynrjlm0i1zn3cnsnfd4v160i"; + type = "gem"; + }; + version = "0.6.3"; + }; + request_store = { + dependencies = [ "rack" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1jw89j9s5p5cq2k7ffj5p4av4j4fxwvwjs1a4i9g85d38r9mvdz1"; + type = "gem"; + }; + version = "1.7.0"; + }; + responders = { + dependencies = [ + "actionpack" + "railties" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "06ilkbbwvc8d0vppf8ywn1f79ypyymlb9krrhqv4g0q215zaiwlj"; + type = "gem"; + }; + version = "3.1.1"; + }; + rexml = { + groups = [ + "default" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0hninnbvqd2pn40h863lbrn9p11gvdxp928izkag5ysx8b1s5q0r"; + type = "gem"; + }; + version = "3.4.4"; + }; + rgeo = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1mfxgxhsk4hpxh0ahk9yk593qiminv91gnfxkyixgm0nh6kn56ay"; + type = "gem"; + }; + version = "3.0.1"; + }; + rgeo-activerecord = { + dependencies = [ + "activerecord" + "rgeo" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "151hzz2amv4xn3ka5ab3rm3ghbyip8fqsa5m6jkpbf38qn6jz8n8"; + type = "gem"; + }; + version = "8.0.0"; + }; + rgeo-geojson = { + dependencies = [ + "multi_json" + "rgeo" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "045jf6v7zhnj0mc5whkkh11w33khr3zcd564zklyyhscpphjrvff"; + type = "gem"; + }; + version = "2.2.0"; + }; + rqrcode = { + dependencies = [ + "chunky_png" + "rqrcode_core" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1bwqy1iwbyn1091mg203is5ngsnvfparwa1wh89s1sgnfmirkmg2"; + type = "gem"; + }; + version = "3.1.0"; + }; + rqrcode_core = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1ayrj7pwbv1g6jg5vvx6rq05lr1kbkfzbzqplj169aapmcivhh0y"; + type = "gem"; + }; + version = "2.0.0"; + }; + rspec-core = { + dependencies = [ "rspec-support" ]; + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1r6zbis0hhbik1ck8kh58qb37d1qwij1x1d2fy4jxkzryh3na4r5"; + type = "gem"; + }; + version = "3.13.3"; + }; + rspec-expectations = { + dependencies = [ + "diff-lcs" + "rspec-support" + ]; + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0dl8npj0jfpy31bxi6syc7jymyd861q277sfr6jawq2hv6hx791k"; + type = "gem"; + }; + version = "3.13.5"; + }; + rspec-mocks = { + dependencies = [ + "diff-lcs" + "rspec-support" + ]; + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0klv9mibmnfqw92w5bc1bab1x4dai60xfh0xz0mhgicibsp3gcbq"; + type = "gem"; + }; + version = "3.13.6"; + }; + rspec-rails = { + dependencies = [ + "actionpack" + "activesupport" + "railties" + "rspec-core" + "rspec-expectations" + "rspec-mocks" + "rspec-support" + ]; + groups = [ + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1kis8dfxlvi6gdzrv9nsn3ckw0c2z7armhni917qs1jx7yjkjc8i"; + type = "gem"; + }; + version = "8.0.2"; + }; + rspec-support = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0hrzdcklbl8pv721cq906yfl38fmqmlnh33ff8l752z1ys9y6q9a"; + type = "gem"; + }; + version = "3.13.3"; + }; + rswag-api = { + dependencies = [ + "activesupport" + "railties" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "04ssahiw9fn3dvxzp7gbrlnc51dlcz9fbc14c2mvi2hncmmk72vj"; + type = "gem"; + }; + version = "2.17.0"; + }; + rswag-specs = { + dependencies = [ + "activesupport" + "json-schema" + "railties" + "rspec-core" + ]; + groups = [ + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1qx9mxhnwz8ia9ry1fwn3hzc2zg7n774gvm4whgp9y49vzvbvcm3"; + type = "gem"; + }; + version = "2.17.0"; + }; + rswag-ui = { + dependencies = [ + "actionpack" + "railties" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "04ij8kr28qg70f3511vks38rnhcyww0y9xhrypwxswc1bsdpnw2z"; + type = "gem"; + }; + version = "2.17.0"; + }; + rubocop = { + dependencies = [ + "json" + "language_server-protocol" + "lint_roller" + "parallel" + "parser" + "rainbow" + "regexp_parser" + "rubocop-ast" + "ruby-progressbar" + "unicode-display_width" + ]; + groups = [ + "default" + "development" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0wz2np5ck54vpwcz18y9x7w80c308wza7gmfcykysq59ajkadw89"; + type = "gem"; + }; + version = "1.82.1"; + }; + rubocop-ast = { + dependencies = [ + "parser" + "prism" + ]; + groups = [ + "default" + "development" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1zbikzd6237fvlzjfxdlhwi2vbmavg1cc81y6cyr581365nnghs9"; + type = "gem"; + }; + version = "1.49.0"; + }; + rubocop-rails = { + dependencies = [ + "activesupport" + "lint_roller" + "rack" + "rubocop" + "rubocop-ast" + ]; + groups = [ "development" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "08kf3nhhhxcwb9shb4bv7jxr1mjrs63fwpywppmgy9cbwip29zqh"; + type = "gem"; + }; + version = "2.34.2"; + }; + ruby-progressbar = { + groups = [ + "default" + "development" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0cwvyb7j47m7wihpfaq7rc47zwwx9k4v7iqd9s1xch5nm53rrz40"; + type = "gem"; + }; + version = "1.13.0"; + }; + rubyzip = { + groups = [ + "default" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0g2vx9bwl9lgn3w5zacl52ax57k4zqrsxg05ixf42986bww9kvf0"; + type = "gem"; + }; + version = "3.2.2"; + }; + securerandom = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1cd0iriqfsf1z91qg271sm88xjnfd92b832z49p1nd542ka96lfc"; + type = "gem"; + }; + version = "0.4.1"; + }; + selenium-webdriver = { + dependencies = [ + "base64" + "logger" + "rexml" + "rubyzip" + "websocket" + ]; + groups = [ "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "16rmdnc8c779gmphv7n4rcx8bc6yv24i555lzqx2drmrqk721jbg"; + type = "gem"; + }; + version = "4.35.0"; + }; + sentry-rails = { + dependencies = [ + "railties" + "sentry-ruby" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1rkp3wpikhwvypabw578rqk5660xkv741jl59dvk34h9b1z9g8g1"; + type = "gem"; + }; + version = "6.2.0"; + }; + sentry-ruby = { + dependencies = [ + "bigdecimal" + "concurrent-ruby" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "05xcf7dwqd59nklk29r4dmdjjpy8hb19rccls5mm7l50ldca7f6p"; + type = "gem"; + }; + version = "6.2.0"; + }; + shoulda-matchers = { + dependencies = [ "activesupport" ]; + groups = [ "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0i1zkr4rsvf8pz1x38wkb82nsjx28prmyb5blsmw86pd5cmmfszg"; + type = "gem"; + }; + version = "6.5.0"; + }; + sidekiq = { + dependencies = [ + "connection_pool" + "json" + "logger" + "rack" + "redis-client" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1mjcm3csall2idnza3w9gvayq3fbpz0k1jsmhsdpgxj6ipddik1p"; + type = "gem"; + }; + version = "8.0.10"; + }; + sidekiq-cron = { + dependencies = [ + "cronex" + "fugit" + "globalid" + "sidekiq" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1b2aqj17izziipb6wvsa8jr60ng8w8mal7acfkf316i8faikvawn"; + type = "gem"; + }; + version = "2.3.1"; + }; + sidekiq-limit_fetch = { + dependencies = [ "sidekiq" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "09wbzaa1sq2xxzm18f6xxj084m6g31bl9fx99kqw92fvs6sjy93x"; + type = "gem"; + }; + version = "4.4.1"; + }; + simplecov = { + dependencies = [ + "docile" + "simplecov-html" + "simplecov_json_formatter" + ]; + groups = [ "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "198kcbrjxhhzca19yrdcd6jjj9sb51aaic3b0sc3pwjghg3j49py"; + type = "gem"; + }; + version = "0.22.0"; + }; + simplecov-html = { + groups = [ + "default" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "02zi3rwihp7rlnp9x18c9idnkx7x68w6jmxdhyc0xrhjwrz0pasx"; + type = "gem"; + }; + version = "0.13.1"; + }; + simplecov_json_formatter = { + groups = [ + "default" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0a5l0733hj7sk51j81ykfmlk2vd5vaijlq9d5fn165yyx3xii52j"; + type = "gem"; + }; + version = "0.1.4"; + }; + snaky_hash = { + dependencies = [ + "hashie" + "version_gem" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0mnllrwhs7psw6xxs8x5yx85k12qjfdgs8zs0bxm70bfascx58r5"; + type = "gem"; + }; + version = "2.0.3"; + }; + sprockets = { + dependencies = [ + "concurrent-ruby" + "rack" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "15rzfzd9dca4v0mr0bbhsbwhygl0k9l24iqqlx0fijig5zfi66wm"; + type = "gem"; + }; + version = "4.2.1"; + }; + sprockets-rails = { + dependencies = [ + "actionpack" + "activesupport" + "sprockets" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "17hiqkdpcjyyhlm997mgdcr45v35j5802m5a979i5jgqx5n8xs59"; + type = "gem"; + }; + version = "3.5.2"; + }; + stackprof = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "03788mbipmihq2w7rznzvv0ks0s9z1321k1jyr6ffln8as3d5xmg"; + type = "gem"; + }; + version = "0.2.27"; + }; + stimulus-rails = { + dependencies = [ "railties" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "01nbcxyi1mhikq8yjl0g9swy1cpzx146pli6w16gcfpkl7zpcmkn"; + type = "gem"; + }; + version = "1.3.4"; + }; + stringio = { + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ + { + engine = "maglev"; + } + { + engine = "mingw"; + } + { + engine = "mingw"; + } + { + engine = "ruby"; + } + ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1v74k5yw7ndikr53wgbjn6j51p83qnzqbn9z4b53r102jcx3ri4r"; + 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"; + }; + super_diff = { + dependencies = [ + "attr_extras" + "diff-lcs" + "patience_diff" + ]; + groups = [ "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1qc3682i373ccml000xvi9pdksj3rb9v9znagjs762iypp3nwrkm"; + type = "gem"; + }; + version = "0.17.0"; + }; + swd = { + dependencies = [ + "activesupport" + "attr_required" + "faraday" + "faraday-follow_redirects" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0m86fzmwgw0vc8p6fwvnsdbldpgbqdz9cbp2zj9z06bc4jjf5nsc"; + type = "gem"; + }; + version = "2.0.3"; + }; + tailwindcss-rails = { + dependencies = [ + "railties" + "tailwindcss-ruby" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "02vg7lbb95ixx9m6bgm2x0nrcm4dxyl0dcsd7ygg6z7bamz32yg8"; + type = "gem"; + }; + version = "3.3.2"; + }; + tailwindcss-ruby = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "09y40d93pi8s5yp076yzj5sf1vjifq0a4mrlmx379ggi8p6bfks6"; + type = "gem"; + }; + version = "3.4.17"; + }; + thor = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0gcarlmpfbmqnjvwfz44gdjhcmm634di7plcx2zdgwdhrhifhqw7"; + type = "gem"; + }; + version = "1.4.0"; + }; + timeout = { + groups = [ + "default" + "development" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1nqf9rg974k4bjji7aggalg8pfvbkd9hys4hv5y450jb21qgkxph"; + type = "gem"; + }; + version = "0.4.4"; + }; + tsort = { + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "17q8h020dw73wjmql50lqw5ddsngg67jfw8ncjv476l5ys9sfl4n"; + type = "gem"; + }; + version = "0.2.0"; + }; + turbo-rails = { + dependencies = [ + "actionpack" + "railties" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "15gafkrlg8rdk2fra0w3rjc1jwicbdjv24grr5qn97z57kfv9jyb"; + type = "gem"; + }; + version = "2.0.20"; + }; + tzinfo = { + dependencies = [ "concurrent-ruby" ]; + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "16w2g84dzaf3z13gxyzlzbf748kylk5bdgg3n1ipvkvvqy685bwd"; + type = "gem"; + }; + version = "2.0.6"; + }; + unicode = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1mx9lwzy021lpcqql5kn4yi20njhf5h7c7wxm2fx51p1r2zr9wj2"; + type = "gem"; + }; + version = "0.4.4.5"; + }; + unicode-display_width = { + dependencies = [ "unicode-emoji" ]; + groups = [ + "default" + "development" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0hiwhnqpq271xqari6mg996fgjps42sffm9cpk6ljn8sd2srdp8c"; + type = "gem"; + }; + version = "3.2.0"; + }; + unicode-emoji = { + groups = [ + "default" + "development" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "03zqn207zypycbz5m9mn7ym763wgpk7hcqbkpx02wrbm1wank7ji"; + type = "gem"; + }; + version = "4.2.0"; + }; + uri = { + groups = [ + "default" + "development" + "staging" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1ijpbj7mdrq7rhpq2kb51yykhrs2s54wfs6sm9z3icgz4y6sb7rp"; + type = "gem"; + }; + version = "1.1.1"; + }; + useragent = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0i1q2xdjam4d7gwwc35lfnz0wyyzvnca0zslcfxm9fabml9n83kh"; + type = "gem"; + }; + version = "0.16.11"; + }; + validate_url = { + dependencies = [ + "activemodel" + "public_suffix" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0lblym140w5n88ijyfgcvkxvpfj8m6z00rxxf2ckmmhk0x61dzkj"; + type = "gem"; + }; + version = "1.0.15"; + }; + version_gem = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "195r5qylwxwqbllnpli9c2pzin0lky6h3fw912h88g2lmri0j6hc"; + type = "gem"; + }; + version = "1.1.9"; + }; + warden = { + dependencies = [ "rack" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1l7gl7vms023w4clg02pm4ky9j12la2vzsixi2xrv9imbn44ys26"; + type = "gem"; + }; + version = "1.2.9"; + }; + webfinger = { + dependencies = [ + "activesupport" + "faraday" + "faraday-follow_redirects" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0p39802sfnm62r4x5hai8vn6d1wqbxsxnmbynsk8rcvzwyym4yjn"; + type = "gem"; + }; + version = "2.1.3"; + }; + webmock = { + dependencies = [ + "addressable" + "crack" + "hashdiff" + ]; + groups = [ "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1mqw7ca931zmqgad0fq4gw7z3gwb0pwx9cmd1b12ga4hgjsnysag"; + type = "gem"; + }; + version = "3.26.1"; + }; + webrick = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "12d9n8hll67j737ym2zw4v23cn4vxyfkb6vyv1rzpwv6y6a3qbdl"; + type = "gem"; + }; + version = "1.9.1"; + }; + websocket = { + groups = [ + "default" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0dr78vh3ag0d1q5gfd8960g1ca9g6arjd2w54mffid8h4i7agrxp"; + type = "gem"; + }; + version = "1.2.11"; + }; + websocket-driver = { + dependencies = [ + "base64" + "websocket-extensions" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0qj9dmkmgahmadgh88kydb7cv15w13l1fj3kk9zz28iwji5vl3gd"; + type = "gem"; + }; + version = "0.8.0"; + }; + websocket-extensions = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0hc2g9qps8lmhibl5baa91b4qx8wqw872rgwagml78ydj8qacsqw"; + type = "gem"; + }; + version = "0.1.5"; + }; + with_advisory_lock = { + dependencies = [ + "activerecord" + "zeitwerk" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "001sswk3d1n8nf4pzxxc4rvxw47q05m0harl50ys25b18nxqai6z"; + type = "gem"; + }; + version = "7.0.2"; + }; + xpath = { + dependencies = [ "nokogiri" ]; + groups = [ + "default" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd"; + type = "gem"; + }; + version = "3.2.0"; + }; + yaml = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0hhr8z9m9yq2kf7ls0vf8ap1hqma1yd72y2r13b88dffwv8nj3i4"; + type = "gem"; + }; + version = "0.4.0"; + }; + zeitwerk = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "119ypabas886gd0n9kiid3q41w76gz60s8qmiak6pljpkd56ps5j"; + type = "gem"; + }; + version = "2.7.3"; + }; +} diff --git a/pkgs/by-name/da/dawarich/package.nix b/pkgs/by-name/da/dawarich/package.nix new file mode 100644 index 000000000000..823662d22d1b --- /dev/null +++ b/pkgs/by-name/da/dawarich/package.nix @@ -0,0 +1,139 @@ +{ + lib, + applyPatches, + bundlerEnv, + fetchFromGitHub, + fetchNpmDeps, + nodejs, + npmHooks, + ruby_3_4, + stdenv, + tailwindcss_3, + gemset ? import ./gemset.nix, + sources ? lib.importJSON ./sources.json, + unpatchedSource ? fetchFromGitHub { + owner = "Freika"; + repo = "dawarich"; + tag = sources.version; + inherit (sources) hash; + }, +}: +let + ruby = ruby_3_4; +in +stdenv.mkDerivation (finalAttrs: { + pname = "dawarich"; + inherit (sources) version; + + # Use `applyPatches` here because bundix in the update script (see ./update.sh) + # needs to run on the already patched Gemfile and Gemfile.lock. + # Only patches changing these two files should be here; + # patches for other parts of the application should go directly into mkDerivation. + src = applyPatches { + src = unpatchedSource; + patches = [ + # bundix and bundlerEnv fail with system-specific gems + ./0001-build-ffi-gem.diff + # openssl 3.6.0 breaks ruby openssl gem + # See https://github.com/NixOS/nixpkgs/issues/456753 + # and https://github.com/ruby/openssl/issues/949#issuecomment-3370358680 + ./0002-openssl-hotfix.diff + ]; + postPatch = '' + substituteInPlace ./Gemfile \ + --replace-fail "ruby File.read('.ruby-version').strip" "ruby '>= 3.4.0'" + ''; + }; + + postPatch = '' + # move import directory to a more convenient place, otherwise its behind systemd private tmp + substituteInPlace ./app/services/imports/watcher.rb \ + --replace-fail 'tmp/imports/watched' 'storage/imports/watched' + ''; + + dawarichGems = bundlerEnv { + name = "${finalAttrs.pname}-gems-${finalAttrs.version}"; + inherit gemset ruby; + inherit (finalAttrs) version; + gemdir = finalAttrs.src; + }; + + npmDeps = fetchNpmDeps { + inherit (finalAttrs) src; + hash = sources.npmHash; + }; + + RAILS_ENV = "production"; + NODE_ENV = "production"; + REDIS_URL = ""; # build error if not defined + TAILWINDCSS_INSTALL_DIR = "${tailwindcss_3}/bin"; + + nativeBuildInputs = [ + nodejs + npmHooks.npmConfigHook + finalAttrs.dawarichGems + finalAttrs.dawarichGems.wrappedRuby + ]; + propagatedBuildInputs = [ + finalAttrs.dawarichGems.wrappedRuby + ]; + buildInputs = [ + finalAttrs.dawarichGems + ]; + + buildPhase = '' + runHook preBuild + + patchShebangs bin/ + for b in $(ls $dawarichGems/bin/) + do + if [ ! -f bin/$b ]; then + ln -s $dawarichGems/bin/$b bin/$b + fi + done + + SECRET_KEY_BASE_DUMMY=1 bundle exec rake assets:precompile + + rm -rf node_modules tmp log storage + ln -s /var/log/dawarich log + ln -s /var/lib/dawarich storage + ln -s /tmp tmp + + # delete more files unneeded at runtime + rm -rf docker docs screenshots package.json package-lock.json *.md *.example + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + # tests are not needed at runtime + rm -rf spec e2e + # delete artifacts from patching + rm *.orig + + mkdir -p $out + mv .{ruby*,app_version} $out/ + mv * $out/ + + runHook postInstall + ''; + + passthru = { + # TODO tests + # run with: nix-shell ./maintainers/scripts/update.nix --argstr package dawarich + updateScript = ./update.sh; + }; + + meta = { + changelog = "https://github.com/Freika/dawarich/blob/${finalAttrs.version}/CHANGELOG.md"; + description = "Self-hostable alternative to Google Location History (Google Maps Timeline)"; + homepage = "https://dawarich.app/"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ + diogotcorreia + ]; + platforms = lib.platforms.linux; + }; +}) diff --git a/pkgs/by-name/da/dawarich/sources.json b/pkgs/by-name/da/dawarich/sources.json new file mode 100644 index 000000000000..f67649193411 --- /dev/null +++ b/pkgs/by-name/da/dawarich/sources.json @@ -0,0 +1,5 @@ +{ + "version": "0.37.3", + "hash": "sha256-cZBT3ek5mzHbPr4aVHU47SNstEuBnpBNaCfaAe/IAEw=", + "npmHash": "sha256-wDe1Zx9HyheS76ltLtDQ+f4M7ohu/pyRuRaGGCnhkQI=" +} diff --git a/pkgs/by-name/da/dawarich/update.sh b/pkgs/by-name/da/dawarich/update.sh new file mode 100755 index 000000000000..3e77d7b934ba --- /dev/null +++ b/pkgs/by-name/da/dawarich/update.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p bundix curl jq nix-update nix-prefetch-github prefetch-npm-deps gnused +set -e +set -o pipefail + +OWNER="Freika" +REPO="dawarich" + +old_version=$(nix-instantiate --eval -A 'dawarich.version' default.nix | tr -d '"') +version=$(curl -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} "https://api.github.com/repos/$OWNER/$REPO/releases/latest" | jq -r ".tag_name") + +echo "Updating to $version" + +if [[ "$old_version" == "$version" ]]; then + echo "Already up to date!" + exit 0 +fi + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)" + +echo "Fetching source code $REVISION" +JSON=$(nix-prefetch-github "$OWNER" "$REPO" --rev "refs/tags/$version" 2>/dev/null) +HASH=$(echo "$JSON" | jq -r .hash) + +cat > "$SCRIPT_DIR/sources.json" << EOF +{ + "version": "$version", + "hash": "$HASH", + "npmHash": "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" +} +EOF + +SOURCE_DIR="$(nix-build --no-out-link -A dawarich.src)" + +echo "Creating gemset.nix" +bundix --lockfile="$SOURCE_DIR/Gemfile.lock" --gemfile="$SOURCE_DIR/Gemfile" --gemset="$SCRIPT_DIR/gemset.nix" +nixfmt "$SCRIPT_DIR/gemset.nix" + +NPM_HASH="$(prefetch-npm-deps "$SOURCE_DIR/package-lock.json" 2>/dev/null)" +sed -i "s;sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=;$NPM_HASH;g" "$SCRIPT_DIR/sources.json" From b0cb5d3e8f52c0ecfd6205d033309ca70c39bb68 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Wed, 9 Jul 2025 19:49:25 +0100 Subject: [PATCH 028/396] nixos/dawarich: init --- nixos/modules/module-list.nix | 1 + nixos/modules/services/web-apps/dawarich.nix | 706 +++++++++++++++++++ 2 files changed, 707 insertions(+) create mode 100644 nixos/modules/services/web-apps/dawarich.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index af7ea9aa5a6d..2aedbc876804 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1598,6 +1598,7 @@ ./services/web-apps/cryptpad.nix ./services/web-apps/dashy.nix ./services/web-apps/davis.nix + ./services/web-apps/dawarich.nix ./services/web-apps/dependency-track.nix ./services/web-apps/dex.nix ./services/web-apps/discourse.nix diff --git a/nixos/modules/services/web-apps/dawarich.nix b/nixos/modules/services/web-apps/dawarich.nix new file mode 100644 index 000000000000..9d2d83242fc1 --- /dev/null +++ b/nixos/modules/services/web-apps/dawarich.nix @@ -0,0 +1,706 @@ +{ + lib, + pkgs, + config, + options, + ... +}: + +let + cfg = config.services.dawarich; + opt = options.services.dawarich; + + dataDir = "/var/lib/dawarich"; + + isRedisUnixSocket = lib.hasPrefix "/" cfg.redis.host; + + redisEnv = + if isRedisUnixSocket then + { + REDIS_URL = "unix://${config.services.redis.servers.dawarich.unixSocket}"; + } + else + { + # Does not support passwords, but upstream does not provide an adequate env variable + # Perhaps patch or make a PR upstream in the future + REDIS_URL = "redis://${cfg.redis.host}:${toString cfg.redis.port}"; + }; + + env = { + RAILS_ENV = "production"; + NODE_ENV = "production"; + BUNDLE_USER_HOME = "/tmp/bundle"; # will use private tmp inside systemd unit + + SELF_HOSTED = "true"; + STORE_GEODATA = "true"; + APPLICATION_PROTOCOL = "http"; + TIME_ZONE = config.time.timeZone; # otherwise upstream forces it to Europe/London + DOMAIN = cfg.localDomain; + APPLICATION_HOSTS = "127.0.0.1,::1,${cfg.localDomain}"; + + BOOTSNAP_CACHE_DIR = "/var/cache/dawarich/precompile"; + LD_PRELOAD = "${lib.getLib pkgs.jemalloc}/lib/libjemalloc.so"; + + DATABASE_USER = cfg.database.user; + DATABASE_HOST = cfg.database.host; + DATABASE_NAME = cfg.database.name; + DATABASE_PORT = toString cfg.database.port; + + SMTP_SERVER = cfg.smtp.host; + SMTP_PORT = toString cfg.smtp.port; + SMTP_FROM = cfg.smtp.fromAddress; + SMTP_USERNAME = cfg.smtp.user; + PORT = toString cfg.webPort; + } + // redisEnv + // cfg.environment; + + systemCallFilter = + let + allowedSystemCalls = [ + "@cpu-emulation" + "@debug" + "@keyring" + "@ipc" + "@mount" + "@obsolete" + "@privileged" + "@setuid" + ]; + in + [ + ("~" + lib.concatStringsSep " " allowedSystemCalls) + "@chown" + "pipe" + "pipe2" + ]; + + cfgService = { + User = cfg.user; + Group = cfg.group; + WorkingDirectory = cfg.package; + CacheDirectory = "dawarich"; + CacheDirectoryMode = "0750"; + StateDirectory = "dawarich"; + StateDirectoryMode = "0750"; + LogsDirectory = "dawarich"; + LogsDirectoryMode = "0750"; + ProcSubset = "pid"; + ProtectProc = "invisible"; + UMask = "0027"; + CapabilityBoundingSet = ""; + NoNewPrivileges = true; + ProtectSystem = "strict"; + ProtectHome = true; + PrivateTmp = true; + PrivateDevices = true; + PrivateUsers = true; + ProtectClock = true; + ProtectHostname = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectControlGroups = true; + RestrictAddressFamilies = [ + "AF_UNIX" + "AF_INET" + "AF_INET6" + "AF_NETLINK" + ]; + RestrictNamespaces = true; + LockPersonality = true; + MemoryDenyWriteExecute = false; + RestrictRealtime = true; + RestrictSUIDSGID = true; + RemoveIPC = true; + PrivateMounts = true; + SystemCallArchitectures = "native"; + SystemCallFilter = systemCallFilter; + + # ensure permissions to connect to the redis socket + SupplementaryGroups = lib.mkIf (cfg.redis.createLocally && isRedisUnixSocket) [ + config.services.redis.servers.dawarich.group + ]; + }; + + # Units that all Dawarich units After= and Requires= on + commonUnits = + lib.optional cfg.redis.createLocally "redis-dawarich.service" + ++ lib.optional cfg.database.createLocally "postgresql.target" + ++ lib.optional cfg.automaticMigrations "dawarich-init-db.service"; + + defaultSecretKeyBaseFile = "${dataDir}/secrets/secret-key-base"; + needsGenCredentialsUnit = cfg.secretKeyBaseFile == null; + credentials = { + SECRET_KEY_BASE = lib.defaultTo defaultSecretKeyBaseFile cfg.secretKeyBaseFile; + } + // lib.optionalAttrs (cfg.database.passwordFile != null) { + DATABASE_PASSWORD = cfg.database.passwordFile; + } + // lib.optionalAttrs (cfg.smtp.passwordFile != null) { + SMTP_PASSWORD = cfg.smtp.passwordFile; + }; + loadCredentialsIntoEnv = lib.concatMapAttrsStringSep "\n" ( + name: _: ''export ${name}="$(systemd-creds cat ${name})"'' + ) credentials; + loadCredentials = lib.mapAttrsToList (name: path: "${name}:${path}") credentials; + + dawarichRails = pkgs.writeShellApplication { + name = "dawarich-rails"; + + text = + let + sourceExtraEnv = lib.concatMapStrings (p: "source ${p}\n") cfg.extraEnvFiles; + command = pkgs.writeShellScript "dawarich-rails-unwrapped" '' + ${sourceExtraEnv} + ${loadCredentialsIntoEnv} + export RAILS_ROOT="${cfg.package}" + exec ${lib.getExe' cfg.package "rails"} "$@" + ''; + env' = lib.filterAttrs (_: value: value != null) env; + supplementaryGroups = lib.optionalString (cfg.redis.createLocally && isRedisUnixSocket) ( + lib.escapeShellArg "--property=SupplementaryGroups=${config.services.redis.servers.dawarich.group}" + ); + in + '' + exec ${lib.getExe' config.systemd.package "systemd-run"} \ + ${ + lib.escapeShellArgs (map (credential: "--property=LoadCredential=${credential}") loadCredentials) + } \ + ${ + lib.escapeShellArgs (lib.mapAttrsToList (name: value: "--setenv=${name}=${toString value}") env') + } \ + --uid=${lib.escapeShellArg cfg.user} \ + --gid=${lib.escapeShellArg cfg.group} \ + ${supplementaryGroups} \ + --working-directory=${lib.escapeShellArg cfg.package} \ + --property=PrivateTmp=yes \ + --pty \ + --wait \ + --collect \ + --service-type=exec \ + --quiet \ + -- \ + ${command} "$@" + ''; + }; + dawarichConsole = pkgs.writeShellScriptBin "dawarich-console" '' + exec ${lib.getExe dawarichRails} console "$@" + ''; + + sidekiqUnits = lib.attrsets.mapAttrs' ( + name: processCfg: + lib.nameValuePair "dawarich-sidekiq-${name}" ( + let + jobClassArgs = lib.concatMapStringsSep " " (c: "-q ${c}") processCfg.jobClasses; + jobClassLabel = lib.optionalString ( + processCfg.jobClasses != [ ] + ) " (${lib.concatStringsSep ", " processCfg.jobClasses})"; + threads = toString (if processCfg.threads == null then cfg.sidekiqThreads else processCfg.threads); + in + { + after = [ + "network.target" + ] + ++ lib.optional needsGenCredentialsUnit "dawarich-init-credentials.service" + ++ commonUnits; + requires = lib.optional needsGenCredentialsUnit "dawarich-init-credentials.service" ++ commonUnits; + description = "Dawarich sidekiq${jobClassLabel}"; + wantedBy = [ "dawarich.target" ]; + environment = env // { + RAILS_MAX_THREADS = threads; + }; + script = '' + ${loadCredentialsIntoEnv} + + ${lib.getExe' cfg.package "sidekiq"} ${jobClassArgs} -c ${threads} -r ${cfg.package} + ''; + serviceConfig = { + Restart = "always"; + RestartSec = 20; + LoadCredential = loadCredentials; + EnvironmentFile = cfg.extraEnvFiles; + LimitNOFILE = "1024000"; + } + // cfgService; + } + ) + ) cfg.sidekiqProcesses; + +in +{ + + options = { + services.dawarich = { + enable = lib.mkEnableOption "Dawarich, a self-hostable alternative to Google Location History"; + + configureNginx = lib.mkOption { + description = '' + Configure nginx as a reverse proxy for dawarich. + Alternatively you can configure a reverse-proxy of your choice to serve these paths: + + `/ -> ''${pkgs.dawarich}/public` + + `/ -> 127.0.0.1:{{ webPort }} `(If there was no file in the directory above.) + + Make sure that websockets are forwarded properly. You might want to set up caching + of some requests. Take a look at dawarich's provided reverse proxy configurations at + `https://dawarich.app/docs/tutorials/reverse-proxy`. + ''; + type = lib.types.bool; + default = true; + }; + + user = lib.mkOption { + description = '' + User under which dawarich runs. If it is set to "dawarich", + that user will be created, otherwise it should be set to the + name of a user created elsewhere. + ''; + type = lib.types.str; + default = "dawarich"; + }; + + group = lib.mkOption { + description = '' + Group under which dawarich runs. + ''; + type = lib.types.str; + default = "dawarich"; + }; + + webPort = lib.mkOption { + description = "TCP port used by the dawarich web service."; + type = lib.types.port; + default = 3000; + }; + + sidekiqThreads = lib.mkOption { + description = '' + Worker threads used by the dawarich-sidekiq-all service. + If `sidekiqProcesses` is configured and any processes specify null `threads`, this value is used. + ''; + type = lib.types.int; + default = 5; + }; + + sidekiqProcesses = lib.mkOption { + description = '' + How many Sidekiq processes should be used to handle background jobs, and which job classes they handle. + Can be used to [speed up](https://dawarich.app/docs/FAQ/#how-to-speed-up-the-import-process) the import process. + ''; + type = + with lib.types; + attrsOf (submodule { + options = { + jobClasses = lib.mkOption { + # https://github.com/Freika/dawarich/blob/0.37.2/config/sidekiq.yml + type = listOf (enum [ + "app_version_checking" + "archival" + "cache" + "data_migrations" + "default" + "digests" + "exports" + "families" + "imports" + "mailers" + "places" + "points" + "reverse_geocoding" + "stats" + "tracks" + "trips" + "visit_suggesting" + ]); + description = '' + If not empty, which job classes should be executed by this process. + *If left empty, all job classes will be executed by this process.* + ''; + }; + threads = lib.mkOption { + type = nullOr int; + description = '' + Number of threads this process should use for executing jobs. + If null, the configured `sidekiqThreads` are used. + ''; + }; + }; + }); + default = { + all = { + jobClasses = [ ]; + threads = null; + }; + }; + example = { + all = { + jobClasses = [ ]; + threads = null; + }; + geocoding = { + jobClasses = [ "reverse_geocoding" ]; + threads = 10; + }; + }; + }; + + localDomain = lib.mkOption { + description = "The domain serving your Dawarich instance."; + example = "dawarich.example.org"; + type = lib.types.str; + }; + + secretKeyBaseFile = lib.mkOption { + description = '' + Path to file containing the secret key base. + A new secret key base can be generated by running: + + `nix build -f '' dawarich; cd result; bin/bundle exec rails secret` + + This file is loaded using systemd credentials, and therefore does not need to be + owned by the dawarich user. + + If this option is null, it will be created at ${defaultSecretKeyBaseFile} + with a new secret key base. + ''; + default = null; + type = lib.types.nullOr lib.types.str; + }; + + redis = { + createLocally = lib.mkOption { + description = '' + Whether to configure a local Redis server for Dawarich. + The connection is performed via Unix sockets by default, + but that can be changed by configuring {option}`${opt.redis.host}` and {option}`${opt.redis.port}`. + ''; + type = lib.types.bool; + default = true; + }; + + host = lib.mkOption { + description = "The redis host Dawarich will connect to."; + type = lib.types.str; + default = config.services.redis.servers.dawarich.unixSocket; + defaultText = lib.literalExpression "config.services.redis.servers.dawarich.unixSocket"; + }; + + port = lib.mkOption { + description = "The port of the redis server Dawarich will connect to. Set to zero to disable TCP and use Unix sockets instead."; + type = lib.types.port; + default = 0; + }; + }; + + database = { + createLocally = lib.mkOption { + description = '' + Whether to configure a local PostgreSQL server and database for Dawarich. + The connection is performed via Unix sockets. + ''; + type = lib.types.bool; + default = true; + }; + + host = lib.mkOption { + type = lib.types.str; + default = "/run/postgresql"; + example = "127.0.0.1"; + description = "Hostname or address of the postgresql server. If an absolute path is given here, it will be interpreted as a unix socket path."; + }; + + port = lib.mkOption { + type = lib.types.nullOr lib.types.port; + default = 5432; + description = "Port of the postgresql server."; + }; + + name = lib.mkOption { + type = lib.types.str; + default = "dawarich"; + description = "The name of the dawarich database."; + }; + + user = lib.mkOption { + type = lib.types.str; + default = "dawarich"; + description = "The database user for dawarich."; + }; + + passwordFile = lib.mkOption { + type = lib.types.nullOr lib.types.path; + default = null; + example = "/run/keys/dawarich-db-password"; + description = '' + A file containing the password corresponding to {option}`${opt.database.user}`. + ''; + }; + }; + + smtp = { + host = lib.mkOption { + type = lib.types.nullOr lib.types.str; + default = null; + description = "SMTP host used when sending emails to users."; + }; + + port = lib.mkOption { + type = lib.types.port; + default = 25; + description = "SMTP port used when sending emails to users."; + }; + + fromAddress = lib.mkOption { + type = lib.types.nullOr lib.types.str; + default = null; + example = "dawarich@example.com"; + description = ''"From" address used when sending emails to users.''; + }; + + user = lib.mkOption { + type = lib.types.nullOr lib.types.str; + default = null; + example = "dawarich@example.com"; + description = "SMTP login name."; + }; + + passwordFile = lib.mkOption { + type = lib.types.nullOr lib.types.path; + default = null; + example = "/run/keys/dawarich-smtp-password"; + description = '' + Path to file containing the SMTP password. + ''; + }; + }; + + package = lib.mkPackageOption pkgs "dawarich" { }; + + environment = lib.mkOption { + type = + with lib.types; + attrsOf ( + nullOr (oneOf [ + str + path + package + ]) + ); + default = { }; + description = '' + Extra environment variables to pass to all dawarich services. + ''; + }; + + extraEnvFiles = lib.mkOption { + type = with lib.types; listOf path; + default = [ ]; + description = '' + Extra environment files to pass to all Dawarich services. Useful for passing down environment secrets. + ''; + example = [ "/etc/dawarich/secret.env" ]; + }; + + automaticMigrations = lib.mkOption { + description = "Whether to perform database migrations automatically"; + type = lib.types.bool; + default = true; + }; + }; + }; + + config = lib.mkIf cfg.enable ( + lib.mkMerge [ + { + assertions = [ + { + assertion = !isRedisUnixSocket -> cfg.redis.port != 0; + message = '' + `services.dawarich.redis.port` needs to be configured if `services.dawarich.redis.host` is not a unix socket. + ''; + } + ]; + + environment.systemPackages = [ + dawarichConsole + dawarichRails + ]; + + systemd.targets.dawarich = { + description = "Target for all Dawarich services"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + }; + + systemd.services.dawarich-init-credentials = lib.mkIf needsGenCredentialsUnit { + script = '' + umask 077 + '' + + lib.optionalString (cfg.secretKeyBaseFile == null) '' + if ! test -f ${defaultSecretKeyBaseFile}; then + mkdir -p $(dirname ${defaultSecretKeyBaseFile}) + bin/bundle exec rails secret > ${defaultSecretKeyBaseFile} + fi + ''; + + environment = env; + serviceConfig = { + Type = "oneshot"; + SyslogIdentifier = "dawarich-init-dirs"; + # System Call Filtering + SystemCallFilter = [ "~@resources" ] ++ systemCallFilter; + } + // cfgService; + + after = [ "network.target" ]; + }; + + systemd.services.dawarich-init-db = lib.mkIf cfg.automaticMigrations { + script = '' + ${loadCredentialsIntoEnv} + + # Run primary database migrations first (needed before other migrations) + echo "Running primary database migrations..." + rails db:migrate + + # Run data migrations + echo "Running DATA migrations..." + rake data:migrate + + echo "Running seeds..." + rails db:seed + ''; + path = [ cfg.package ]; + environment = env; + serviceConfig = { + Type = "oneshot"; + LoadCredential = loadCredentials; + EnvironmentFile = cfg.extraEnvFiles; + WorkingDirectory = cfg.package; + # System Call Filtering + SystemCallFilter = [ "~@resources" ] ++ systemCallFilter; + } + // cfgService; + # both postgres and redis are needed for the migrations to work + after = [ + "network.target" + ] + ++ lib.optional needsGenCredentialsUnit "dawarich-init-credentials.service" + ++ lib.optional cfg.database.createLocally "postgresql.target" + ++ lib.optional cfg.redis.createLocally "redis-dawarich.service"; + requires = + lib.optional needsGenCredentialsUnit "dawarich-init-credentials.service" + ++ lib.optional cfg.database.createLocally "postgresql.target" + ++ lib.optional cfg.redis.createLocally "redis-dawarich.service"; + }; + + systemd.services.dawarich-web = { + after = [ + "network.target" + ] + ++ lib.optional needsGenCredentialsUnit "dawarich-init-credentials.service" + ++ commonUnits; + requires = lib.optional needsGenCredentialsUnit "dawarich-init-credentials.service" ++ commonUnits; + wantedBy = [ "dawarich.target" ]; + description = "Dawarich web"; + environment = env; + script = '' + ${loadCredentialsIntoEnv} + + ${lib.getExe' cfg.package "rails"} server + ''; + serviceConfig = { + Restart = "always"; + RestartSec = 20; + LoadCredential = loadCredentials; + EnvironmentFile = cfg.extraEnvFiles; + WorkingDirectory = cfg.package; + # Runtime directory and mode + RuntimeDirectory = "dawarich-web"; + RuntimeDirectoryMode = "0750"; + } + // cfgService; + }; + + systemd.tmpfiles.settings."dawarich"."${dataDir}/imports/watched".d = { + group = "dawarich"; + mode = "700"; + user = "dawarich"; + }; + + services.nginx = lib.mkIf cfg.configureNginx { + enable = true; + virtualHosts."${cfg.localDomain}" = { + root = "${cfg.package}/public/"; + + locations."/" = { + tryFiles = "$uri @proxy"; + }; + + locations."@proxy" = { + proxyPass = "http://127.0.0.1:${toString cfg.webPort}"; + recommendedProxySettings = true; + proxyWebsockets = true; + }; + }; + }; + + services.redis.servers = lib.mkIf cfg.redis.createLocally { + dawarich = { + enable = true; + port = cfg.redis.port; + bind = lib.mkIf (!isRedisUnixSocket) cfg.redis.host; + }; + }; + + services.postgresql = lib.mkIf cfg.database.createLocally { + enable = true; + extensions = ps: with ps; [ postgis ]; + ensureUsers = [ + { + inherit (cfg.database) name; + ensureDBOwnership = true; + } + ]; + ensureDatabases = [ cfg.database.name ]; + }; + + systemd.services.postgresql-setup.serviceConfig.ExecStartPost = + let + # https://github.com/Freika/dawarich/blob/0.30.6/db/schema.rb#L15-L16 + # https://postgis.net/documentation/getting_started/ + sqlFile = pkgs.writeText "dawarich-postgres-setup.sql" '' + CREATE EXTENSION IF NOT EXISTS postgis; + SELECT postgis_extensions_upgrade(); + ''; + in + lib.mkIf cfg.database.createLocally [ + '' + ${lib.getExe' config.services.postgresql.package "psql"} -d "${cfg.database.name}" -f "${sqlFile}" + '' + ]; + + users.users = lib.mkIf (cfg.user == "dawarich") { + dawarich = { + isSystemUser = true; + home = cfg.package; + inherit (cfg) group; + }; + }; + users.groups = lib.mkIf (cfg.group == "dawarich") { ${cfg.group} = { }; }; + } + { + systemd.services = lib.mkMerge [ + sidekiqUnits + ]; + } + ] + ); + + meta.maintainers = with lib.maintainers; [ + diogotcorreia + ]; + +} From 23d92890e0d321445d0a2b8c0f91878ed1cc13ab Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Wed, 9 Jul 2025 19:50:12 +0100 Subject: [PATCH 029/396] nixos/tests/dawarich: init --- nixos/tests/all-tests.nix | 1 + nixos/tests/web-apps/dawarich.nix | 77 ++++++++++++++++++++++++++++ pkgs/by-name/da/dawarich/package.nix | 5 +- 3 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 nixos/tests/web-apps/dawarich.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index de8d859f876c..d5949a4cde49 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -445,6 +445,7 @@ in darling-dmg = runTest ./darling-dmg.nix; dashy = runTest ./web-apps/dashy.nix; davis = runTest ./davis.nix; + dawarich = runTest ./web-apps/dawarich.nix; db-rest = runTest ./db-rest.nix; dconf = runTest ./dconf.nix; ddns-updater = runTest ./ddns-updater.nix; diff --git a/nixos/tests/web-apps/dawarich.nix b/nixos/tests/web-apps/dawarich.nix new file mode 100644 index 000000000000..2bc7679c9853 --- /dev/null +++ b/nixos/tests/web-apps/dawarich.nix @@ -0,0 +1,77 @@ +{ ... }: +{ + name = "dawarich-nixos"; + + nodes.machine = + { pkgs, ... }: + { + services.dawarich = { + enable = true; + localDomain = "localhost"; + }; + + environment.etc.geojson.source = pkgs.fetchurl { + url = "https://github.com/Freika/dawarich/raw/8c24764aa56a084e980e21bc2ffd13a72fd611db/spec/fixtures/files/geojson/export.json"; + hash = "sha256-qI00E5ixKTRJduAD+qB3JzvrpoJmC55llNtSiPVyxz4="; + }; + }; + + testScript = '' + import json + + machine.wait_for_unit("dawarich.target") + + machine.wait_for_open_port(3000) # Web + machine.succeed("curl --fail http://localhost/") + + # Get API key via ruby console + api_key = machine.succeed("dawarich-rails runner \"puts User.find_by(email: 'demo@dawarich.app').api_key\"").strip().split("\n")[-1] + + res = machine.succeed(f"curl -f -H 'Authorization: Bearer {api_key}' http://localhost/api/v1/users/me") + user_data = json.loads(res) + assert user_data['user']['email'] == 'demo@dawarich.app' + + example_point = { + "locations": [ + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + -122.40530871, + 37.74430413 + ] + }, + "properties": { + "battery_state": "full", + "battery_level": 0.7, + "wifi": "dawarich_home", + "timestamp": "2025-01-17T21:03:01Z", + "horizontal_accuracy": 5, + "vertical_accuracy": -1, + "altitude": 0, + "speed": 92.088, + "speed_accuracy": 0, + "course": 27.07, + "course_accuracy": 0, + "track_id": "799F32F5-89BB-45FB-A639-098B1B95B09F", + "device_id": "8D5D4197-245B-4619-A88B-2049100ADE46" + } + } + ] + } + machine.succeed(f"curl -f -H 'Authorization: Bearer {api_key}' --json '{json.dumps(example_point)}' http://localhost/api/v1/points") + + res = machine.succeed(f"curl -f -H 'Authorization: Bearer {api_key}' http://localhost/api/v1/points") + assert len(json.loads(res)) == 1 + + # Test watcher job import + import_dir = "/var/lib/dawarich/imports/watched/demo@dawarich.app" + machine.succeed(f"mkdir -p {import_dir} && cp /etc/geojson {import_dir}/example.json") + + machine.succeed('dawarich-rails runner "Import::WatcherJob.perform_now"') + # job runs in the background so doesn't update immediately + res = machine.wait_until_succeeds(f"curl -f -H 'Authorization: Bearer {api_key}' http://localhost/api/v1/points | grep '\"id\":2'") + assert len(json.loads(res)) == 11 + ''; +} diff --git a/pkgs/by-name/da/dawarich/package.nix b/pkgs/by-name/da/dawarich/package.nix index 823662d22d1b..81154d401d6d 100644 --- a/pkgs/by-name/da/dawarich/package.nix +++ b/pkgs/by-name/da/dawarich/package.nix @@ -4,6 +4,7 @@ bundlerEnv, fetchFromGitHub, fetchNpmDeps, + nixosTests, nodejs, npmHooks, ruby_3_4, @@ -121,7 +122,9 @@ stdenv.mkDerivation (finalAttrs: { ''; passthru = { - # TODO tests + tests = { + inherit (nixosTests) dawarich; + }; # run with: nix-shell ./maintainers/scripts/update.nix --argstr package dawarich updateScript = ./update.sh; }; From f14353c14118659611bddf4d65b30b56b3d0be52 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Fri, 31 Oct 2025 15:39:13 +0000 Subject: [PATCH 030/396] doc: add dawarich to 26.05 release notes --- nixos/doc/manual/release-notes/rl-2605.section.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/doc/manual/release-notes/rl-2605.section.md b/nixos/doc/manual/release-notes/rl-2605.section.md index 16a6dd7103ef..ec7c8290f30c 100644 --- a/nixos/doc/manual/release-notes/rl-2605.section.md +++ b/nixos/doc/manual/release-notes/rl-2605.section.md @@ -32,6 +32,8 @@ - [Ente Auth](https://ente.io/auth/), an open source 2FA authenticator, with end-to-end encrypted backups. Available as [programs.ente-auth](#opt-programs.ente-auth.enable). +- [Dawarich](https://dawarich.app/), a self-hostable location history tracker. Available as [services.dawarich](#opt-services.dawarich.enable). + - [udp-over-tcp](https://github.com/mullvad/udp-over-tcp), a tunnel for proxying UDP traffic over a TCP stream. Available as `services.udp-over-tcp`. - [Komodo Periphery](https://github.com/moghtech/komodo), a multi-server Docker and Git deployment agent by Komodo. Available as [services.komodo-periphery](#opt-services.komodo-periphery.enable). From 9ba0d28c75c0b74e32a092c6bff95a1efb20efe2 Mon Sep 17 00:00:00 2001 From: Leona Maroni Date: Mon, 12 Jan 2026 14:23:34 +0100 Subject: [PATCH 031/396] discourse.plugins.discourse-events: init at 83a6ee2c Currently an additional plugin for discourse.nixos.org. It would be helpful to update this directly in Nixpkgs. --- .../discourse/plugins/all-plugins.nix | 1 + .../plugins/discourse-events/Gemfile | 10 ++++ .../plugins/discourse-events/Gemfile.lock | 24 ++++++++ .../plugins/discourse-events/default.nix | 22 +++++++ .../plugins/discourse-events/gemset.nix | 57 +++++++++++++++++++ pkgs/servers/web-apps/discourse/update.py | 3 +- 6 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 pkgs/servers/web-apps/discourse/plugins/discourse-events/Gemfile create mode 100644 pkgs/servers/web-apps/discourse/plugins/discourse-events/Gemfile.lock create mode 100644 pkgs/servers/web-apps/discourse/plugins/discourse-events/default.nix create mode 100644 pkgs/servers/web-apps/discourse/plugins/discourse-events/gemset.nix diff --git a/pkgs/servers/web-apps/discourse/plugins/all-plugins.nix b/pkgs/servers/web-apps/discourse/plugins/all-plugins.nix index df908dcb6b6d..ca7971ea9779 100644 --- a/pkgs/servers/web-apps/discourse/plugins/all-plugins.nix +++ b/pkgs/servers/web-apps/discourse/plugins/all-plugins.nix @@ -5,6 +5,7 @@ in { discourse-bbcode-color = callPackage ./discourse-bbcode-color { }; discourse-docs = callPackage ./discourse-docs { }; + discourse-events = callPackage ./discourse-events { }; discourse-ldap-auth = callPackage ./discourse-ldap-auth { }; discourse-prometheus = callPackage ./discourse-prometheus { }; discourse-saved-searches = callPackage ./discourse-saved-searches { }; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-events/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-events/Gemfile new file mode 100644 index 000000000000..abd2e7688bb7 --- /dev/null +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-events/Gemfile @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +# gem "rails" +gem "discourse_subscription_client", "0.1.11" +gem "iso-639", "0.3.5" +gem "ice_cube", "0.16.4" +gem "icalendar", "2.8.0" +gem "icalendar-recurrence", "1.1.3" diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-events/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-events/Gemfile.lock new file mode 100644 index 000000000000..bfe659db2b0b --- /dev/null +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-events/Gemfile.lock @@ -0,0 +1,24 @@ +GEM + remote: https://rubygems.org/ + specs: + discourse_subscription_client (0.1.11) + icalendar (2.8.0) + ice_cube (~> 0.16) + icalendar-recurrence (1.1.3) + icalendar (~> 2.0) + ice_cube (~> 0.16) + ice_cube (0.16.4) + iso-639 (0.3.5) + +PLATFORMS + ruby + +DEPENDENCIES + discourse_subscription_client (= 0.1.11) + icalendar (= 2.8.0) + icalendar-recurrence (= 1.1.3) + ice_cube (= 0.16.4) + iso-639 (= 0.3.5) + +BUNDLED WITH + 2.5.22 diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-events/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-events/default.nix new file mode 100644 index 000000000000..2c7b8f8ec870 --- /dev/null +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-events/default.nix @@ -0,0 +1,22 @@ +{ + lib, + mkDiscoursePlugin, + fetchFromGitHub, +}: + +mkDiscoursePlugin { + name = "discourse-events"; + bundlerEnvArgs.gemdir = ./.; + src = fetchFromGitHub { + owner = "angusmcleod"; + repo = "discourse-events"; + rev = "83a6ee2c36a83bdb21fc58e3ec4bbd5fd5953e2e"; + sha256 = "sha256-QNcP32JYaon7phv3sFi1vlWZNwuL+LDzRWe6vi2FwTE="; + }; + meta = { + homepage = "https://github.com/angusmcleod/discourse-events"; + maintainers = [ lib.maintainers.leona ]; + license = lib.licenses.gpl2Plus; + description = "Discourse plugin to manage events"; + }; +} diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-events/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-events/gemset.nix new file mode 100644 index 000000000000..f783f52d2ee9 --- /dev/null +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-events/gemset.nix @@ -0,0 +1,57 @@ +{ + discourse_subscription_client = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "13vmi645ilsqjalz04738d8ng9zxhw5nd5s80lwcdd87dpzmkk3v"; + type = "gem"; + }; + version = "0.1.11"; + }; + icalendar = { + dependencies = [ "ice_cube" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "11zfs0l8y2a6gpf0krm91d0ap2mnf04qky89dyzxwaspqxqgj174"; + type = "gem"; + }; + version = "2.8.0"; + }; + icalendar-recurrence = { + dependencies = [ + "icalendar" + "ice_cube" + ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "06li3cdbwkd9y2sadjlbwj54blqdaa056yx338s4ddfxywrngigh"; + type = "gem"; + }; + version = "1.1.3"; + }; + ice_cube = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1dri4mcya1fwzrr9nzic8hj1jr28a2szjag63f9k7p2bw9fpw4fs"; + type = "gem"; + }; + version = "0.16.4"; + }; + iso-639 = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1k1r8wgk6syvpsl3j5qfh5az5w4zdvk0pvpjl7qspznfdbp2mn71"; + type = "gem"; + }; + version = "0.3.5"; + }; +} diff --git a/pkgs/servers/web-apps/discourse/update.py b/pkgs/servers/web-apps/discourse/update.py index fd774b902274..4db0e88fe970 100755 --- a/pkgs/servers/web-apps/discourse/update.py +++ b/pkgs/servers/web-apps/discourse/update.py @@ -282,6 +282,7 @@ def update_plugins(): plugins = [ {'name': 'discourse-bbcode-color'}, {'name': 'discourse-docs'}, + {'name': 'discourse-events', 'owner': 'angusmcleod'}, {'name': 'discourse-ldap-auth', 'owner': 'jonmbake'}, {'name': 'discourse-prometheus'}, {'name': 'discourse-saved-searches'}, @@ -402,7 +403,7 @@ def update_plugins(): plugin_file = plugin_file.replace(",\n", ", ") # fix split lines for line in plugin_file.splitlines(): if 'gem ' in line: - line = ','.join(filter(lambda x: ":require_name" not in x, line.split(','))) + line = ','.join(filter(lambda x: ":require_name" not in x and "require_name:" not in x, line.split(','))) gemfile_text = gemfile_text + line + os.linesep version_file_match = version_file_regex.match(line) From 5d19b525c148d033e6e0854345d165d3a2061a4b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 13 Jan 2026 12:48:46 +0000 Subject: [PATCH 032/396] mumps: 5.8.1 -> 5.8.2 --- pkgs/by-name/mu/mumps/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/mu/mumps/package.nix b/pkgs/by-name/mu/mumps/package.nix index d536e153cd37..556649396352 100644 --- a/pkgs/by-name/mu/mumps/package.nix +++ b/pkgs/by-name/mu/mumps/package.nix @@ -49,7 +49,7 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "mumps"; - version = "5.8.1"; + version = "5.8.2"; # makeFlags contain space and one should use makeFlagsArray+ # Setting this magic var is an optional solution __structuredAttrs = true; @@ -58,7 +58,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchzip { url = "https://mumps-solver.org/MUMPS_${finalAttrs.version}.tar.gz"; - hash = "sha256-60hNYhbHONv9E9VY8G0goE83q7AwJh1u/Z+QRK8anHQ="; + hash = "sha256-AzCzNUd+NFP7Jat4cw1YpA9160cvW1zXLoLxstsbtHA="; }; postPatch = lib.optionalString stdenv.hostPlatform.isDarwin '' From b048f84a5fb8d74e7b75bd288c6340ad6fc4406d Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Mon, 12 Jan 2026 16:11:31 +0100 Subject: [PATCH 033/396] =?UTF-8?q?ocamlPackages.eigen:=200.3.3=20?= =?UTF-8?q?=E2=86=92=200.4.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mark as broken on darwin --- .../ocaml-modules/eigen/default.nix | 19 ++++++++----------- pkgs/top-level/ocaml-packages.nix | 4 +++- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/pkgs/development/ocaml-modules/eigen/default.nix b/pkgs/development/ocaml-modules/eigen/default.nix index b861f555fca2..d8375b4695c2 100644 --- a/pkgs/development/ocaml-modules/eigen/default.nix +++ b/pkgs/development/ocaml-modules/eigen/default.nix @@ -7,30 +7,27 @@ dune-configurator, }: -buildDunePackage rec { +(buildDunePackage.override { inherit stdenv; }) (finalAttrs: { pname = "eigen"; - version = "0.3.3"; + version = "0.4.0"; src = fetchFromGitHub { owner = "owlbarn"; - repo = pname; - tag = version; - hash = "sha256-8V4DQ+b2rzy58NTenK1BsJEJiJKYV6hIp2fJWqczHRY="; + repo = "eigen"; + tag = finalAttrs.version; + hash = "sha256-bi+7T9qXByVPIy86lBMiJ2LTKCoNesrKZPa3VEDyINA="; }; - minimalOCamlVersion = "4.02"; - - env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin "-I${lib.getInclude stdenv.cc.libcxx}/include/c++/v1"; - propagatedBuildInputs = [ ctypes ]; buildInputs = [ dune-configurator ]; meta = { - inherit (src.meta) homepage; + homepage = "https://github.com/owlbarn/eigen"; description = "Minimal/incomplete Ocaml interface to Eigen3, mostly for Owl"; platforms = lib.platforms.x86_64; maintainers = with lib.maintainers; [ bcdarwin ]; license = lib.licenses.mit; + broken = stdenv.hostPlatform.isDarwin; }; -} +}) diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 51dfcd2c9b09..a7c8c05c7b76 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -521,7 +521,9 @@ let easy-format = callPackage ../development/ocaml-modules/easy-format { }; - eigen = callPackage ../development/ocaml-modules/eigen { }; + eigen = callPackage ../development/ocaml-modules/eigen { + stdenv = pkgs.gcc14Stdenv; + }; eio = callPackage ../development/ocaml-modules/eio { }; eio_linux = callPackage ../development/ocaml-modules/eio/linux.nix { }; From e3934874654038297f43214388f2f35165f1dac5 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 13 Jan 2026 17:55:24 +0000 Subject: [PATCH 034/396] matrix-authentication-service: 1.8.0 -> 1.9.0 --- pkgs/by-name/ma/matrix-authentication-service/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ma/matrix-authentication-service/package.nix b/pkgs/by-name/ma/matrix-authentication-service/package.nix index 3b5a046611ca..cacd8bdc86a1 100644 --- a/pkgs/by-name/ma/matrix-authentication-service/package.nix +++ b/pkgs/by-name/ma/matrix-authentication-service/package.nix @@ -18,21 +18,21 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "matrix-authentication-service"; - version = "1.8.0"; + version = "1.9.0"; src = fetchFromGitHub { owner = "element-hq"; repo = "matrix-authentication-service"; tag = "v${finalAttrs.version}"; - hash = "sha256-LpjDmSadmga7L93y3UNEnMJQHAeANSbG0qRR7XLprfk="; + hash = "sha256-DfgGh8KAXnGrq2W7V/QWnBF7b3Z26mIWeFQ2tEIPqa4="; }; - cargoHash = "sha256-PsQUA6KgkbKmVwnSUfAMqnULCIMJ4mLjGIGYRlhB4Pk="; + cargoHash = "sha256-r1fG+9mUYKbcAPc7CUUYvFf/Lhjnt6/MDCdCn/uiJU8="; npmDeps = fetchNpmDeps { name = "${finalAttrs.pname}-${finalAttrs.version}-npm-deps"; src = "${finalAttrs.src}/${finalAttrs.npmRoot}"; - hash = "sha256-3OHKomEml0/g8E3S0fKPcscbv3BoOJ9dQrgLNSLHhvg="; + hash = "sha256-UbaUx2wZi/bUVbdphCTcFBCaFQ8tkuvdYkSduCBRzzU="; }; npmRoot = "frontend"; From a77e30e4ec43a6fbf94e98c0b1c49f11d55b633d Mon Sep 17 00:00:00 2001 From: LuckShiba Date: Tue, 13 Jan 2026 02:23:48 -0300 Subject: [PATCH 035/396] tuxedo-drivers: fix udev settings evaluation --- nixos/modules/hardware/tuxedo-drivers.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nixos/modules/hardware/tuxedo-drivers.nix b/nixos/modules/hardware/tuxedo-drivers.nix index f53e1297f137..07b9f2b7e6d5 100644 --- a/nixos/modules/hardware/tuxedo-drivers.nix +++ b/nixos/modules/hardware/tuxedo-drivers.nix @@ -94,16 +94,16 @@ in boot.extraModulePackages = [ tuxedo-drivers ]; services.udev.packages = [ tuxedo-drivers - lib.mkIf - (lib.any (v: v != null) cfg.settings) - (pkgs.writeTextDir "etc/udev/rules.d/90-tuxedo.rules" ( + ] + ++ lib.optional (lib.any (v: v != null) (lib.attrValues cfg.settings)) ( + pkgs.writeTextDir "etc/udev/rules.d/90-tuxedo.rules" ( lib.concatLines ( [ "# Custom rules for TUXEDO laptops" ] ++ (optUdevRule "charging_profile/charging_profile" cfg.settings.charging-profile) ++ (optUdevRule "charging_priority/charging_prio" cfg.settings.charging-priority) ++ (optUdevRule "fn_lock" cfg.settings.fn-lock) ) - )) - ]; + ) + ); }; } From 0497f197e171d2b26a037f63470a83f278d20ef4 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Wed, 14 Jan 2026 03:32:56 +0100 Subject: [PATCH 036/396] =?UTF-8?q?ocamlPackages.mlx:=200.10=20=E2=86=92?= =?UTF-8?q?=200.11?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/development/ocaml-modules/mlx/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/development/ocaml-modules/mlx/default.nix b/pkgs/development/ocaml-modules/mlx/default.nix index c2cf06545993..fab39d7d2b27 100644 --- a/pkgs/development/ocaml-modules/mlx/default.nix +++ b/pkgs/development/ocaml-modules/mlx/default.nix @@ -6,17 +6,17 @@ menhir, }: -buildDunePackage rec { +buildDunePackage (finalAttrs: { pname = "mlx"; - version = "0.10"; + version = "0.11"; minimalOCamlVersion = "4.14"; src = fetchFromGitHub { owner = "ocaml-mlx"; repo = "mlx"; - rev = version; - hash = "sha256-g2v6U4lubYIVKUkU0j+OwtPxK9tKvleuX+vA4ljJ1bA="; + tag = finalAttrs.version; + hash = "sha256-6cz/nbFGSxE1minncJujZi14TmM8ctDygJP4rmewYgo="; }; buildInputs = [ @@ -30,4 +30,4 @@ buildDunePackage rec { license = lib.licenses.lgpl21Plus; maintainers = with lib.maintainers; [ Denommus ]; }; -} +}) From 5951142ac868bc63dd8b6e397ef64a3f88baa896 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 14 Jan 2026 03:51:14 +0000 Subject: [PATCH 037/396] libgsf: 1.14.54 -> 1.14.55 --- pkgs/by-name/li/libgsf/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/li/libgsf/package.nix b/pkgs/by-name/li/libgsf/package.nix index e27be5d3e91a..6d073e648605 100644 --- a/pkgs/by-name/li/libgsf/package.nix +++ b/pkgs/by-name/li/libgsf/package.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "libgsf"; - version = "1.14.54"; + version = "1.14.55"; outputs = [ "out" @@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "GNOME"; repo = "libgsf"; tag = "LIBGSF_${lib.replaceString "." "_" finalAttrs.version}"; - hash = "sha256-jry6Ezzm3uEofIsJd97EzX+qoOjQEb3H1Y8o65nqmeo="; + hash = "sha256-lx/FgF4X0aLtUFRaX69gX9J7w9ZlO0A1xoVg9Fgvtfo="; }; postPatch = '' From 9fd6e9a1767fc3b18a67d9329028651c9d61777e Mon Sep 17 00:00:00 2001 From: Picnoir Date: Wed, 14 Jan 2026 11:02:00 +0100 Subject: [PATCH 038/396] pleroma: 2.9.1 -> 2.10.0 Changelog: https://git.pleroma.social/pleroma/pleroma/-/releases/v2.10.0 --- pkgs/by-name/pl/pleroma/mix.nix | 255 +++++++++++++++------------- pkgs/by-name/pl/pleroma/package.nix | 20 ++- 2 files changed, 151 insertions(+), 124 deletions(-) diff --git a/pkgs/by-name/pl/pleroma/mix.nix b/pkgs/by-name/pl/pleroma/mix.nix index 4347e45fa236..391703350132 100644 --- a/pkgs/by-name/pl/pleroma/mix.nix +++ b/pkgs/by-name/pl/pleroma/mix.nix @@ -30,12 +30,12 @@ let argon2_elixir = buildMix rec { name = "argon2_elixir"; - version = "4.0.0"; + version = "4.1.3"; src = fetchHex { pkg = "argon2_elixir"; version = "${version}"; - sha256 = "f9da27cf060c9ea61b1bd47837a28d7e48a8f6fa13a745e252556c14f9132c7f"; + sha256 = "7c295b8d8e0eaf6f43641698f962526cdf87c6feb7d14bd21e599271b510608c"; }; beamDeps = [ @@ -46,12 +46,12 @@ let bandit = buildMix rec { name = "bandit"; - version = "1.5.5"; + version = "1.5.7"; src = fetchHex { pkg = "bandit"; version = "${version}"; - sha256 = "f21579a29ea4bc08440343b2b5f16f7cddf2fea5725d31b72cf973ec729079e1"; + sha256 = "f2dd92ae87d2cbea2fa9aa1652db157b6cba6c405cb44d4f6dd87abba41371cd"; }; beamDeps = [ @@ -107,12 +107,12 @@ let benchee = buildMix rec { name = "benchee"; - version = "1.3.0"; + version = "1.4.0"; src = fetchHex { pkg = "benchee"; version = "${version}"; - sha256 = "34f4294068c11b2bd2ebf2c59aac9c7da26ffa0068afdf3419f1b176e16c5f81"; + sha256 = "299cd10dd8ce51c9ea3ddb74bb150f93d25e968f93e4c1fa31698a8e4fa5d715"; }; beamDeps = [ @@ -180,12 +180,12 @@ let castore = buildMix rec { name = "castore"; - version = "1.0.8"; + version = "1.0.15"; src = fetchHex { pkg = "castore"; version = "${version}"; - sha256 = "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"; + sha256 = "96ce4c69d7d5d7a0761420ef743e2f4096253931a3ba69e5ff8ef1844fe446d3"; }; beamDeps = [ ]; @@ -193,12 +193,12 @@ let cc_precompiler = buildMix rec { name = "cc_precompiler"; - version = "0.1.9"; + version = "0.1.11"; src = fetchHex { pkg = "cc_precompiler"; version = "${version}"; - sha256 = "9dcab3d0f3038621f1601f13539e7a9ee99843862e66ad62827b0c42b2f58a54"; + sha256 = "3427232caf0835f94680e5bcf082408a70b48ad68a5f5c0b02a3bea9f3a075b9"; }; beamDeps = [ elixir_make ]; @@ -232,12 +232,12 @@ let comeonin = buildMix rec { name = "comeonin"; - version = "5.4.0"; + version = "5.5.1"; src = fetchHex { pkg = "comeonin"; version = "${version}"; - sha256 = "796393a9e50d01999d56b7b8420ab0481a7538d0caf80919da493b4a6e51faf1"; + sha256 = "65aac8f19938145377cee73973f192c5645873dcf550a8a6b18187d17c13ccdb"; }; beamDeps = [ ]; @@ -284,12 +284,12 @@ let covertool = buildRebar3 rec { name = "covertool"; - version = "2.0.6"; + version = "2.0.7"; src = fetchHex { pkg = "covertool"; version = "${version}"; - sha256 = "5db3fcd82180d8ea4ad857d4d1ab21a8d31b5aee0d60d2f6c0f9e25a411d1e21"; + sha256 = "46158ed6e1a0df7c0a912e314c7b8e053bd74daa5fc6b790614922a155b5720c"; }; beamDeps = [ ]; @@ -297,12 +297,12 @@ let cowboy = buildErlangMk rec { name = "cowboy"; - version = "2.12.0"; + version = "2.13.0"; src = fetchHex { pkg = "cowboy"; version = "${version}"; - sha256 = "8a7abe6d183372ceb21caa2709bec928ab2b72e18a3911aa1771639bef82651e"; + sha256 = "e724d3a70995025d654c1992c7b11dbfea95205c047d86ff9bf1cda92ddc5614"; }; beamDeps = [ @@ -329,12 +329,12 @@ let cowlib = buildRebar3 rec { name = "cowlib"; - version = "2.13.0"; + version = "2.15.0"; src = fetchHex { pkg = "cowlib"; version = "${version}"; - sha256 = "e1e1284dc3fc030a64b1ad0d8382ae7e99da46c3246b815318a4b848873800a4"; + sha256 = "4f00c879a64b4fe7c8fcb42a4281925e9ffdb928820b03c3ad325a617e857532"; }; beamDeps = [ ]; @@ -342,12 +342,12 @@ let credo = buildMix rec { name = "credo"; - version = "1.7.7"; + version = "1.7.12"; src = fetchHex { pkg = "credo"; version = "${version}"; - sha256 = "8bc87496c9aaacdc3f90f01b7b0582467b69b4bd2441fe8aae3109d843cc2f2e"; + sha256 = "8493d45c656c5427d9c729235b99d498bd133421f3e0a683e5c1b561471291e5"; }; beamDeps = [ @@ -385,12 +385,12 @@ let db_connection = buildMix rec { name = "db_connection"; - version = "2.7.0"; + version = "2.8.0"; src = fetchHex { pkg = "db_connection"; version = "${version}"; - sha256 = "dcf08f31b2701f857dfc787fbad78223d61a32204f217f15e881dd93e4bdd3ff"; + sha256 = "008399dae5eee1bf5caa6e86d204dcb44242c82b1ed5e22c881f2c34da201b15"; }; beamDeps = [ telemetry ]; @@ -398,12 +398,12 @@ let decimal = buildMix rec { name = "decimal"; - version = "2.1.1"; + version = "2.3.0"; src = fetchHex { pkg = "decimal"; version = "${version}"; - sha256 = "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"; + sha256 = "a4d66355cb29cb47c3cf30e71329e58361cfcb37c34235ef3bf1d7bf3773aeac"; }; beamDeps = [ ]; @@ -424,12 +424,12 @@ let dialyxir = buildMix rec { name = "dialyxir"; - version = "1.4.3"; + version = "1.4.6"; src = fetchHex { pkg = "dialyxir"; version = "${version}"; - sha256 = "bf2cfb75cd5c5006bec30141b131663299c661a864ec7fbbc72dfa557487a986"; + sha256 = "8cf5615c5cd4c2da6c501faae642839c8405b49f8aa057ad4ae401cb808ef64d"; }; beamDeps = [ erlex ]; @@ -450,12 +450,12 @@ let earmark_parser = buildMix rec { name = "earmark_parser"; - version = "1.4.39"; + version = "1.4.44"; src = fetchHex { pkg = "earmark_parser"; version = "${version}"; - sha256 = "06553a88d1f1846da9ef066b87b57c6f605552cfbe40d20bd8d59cc6bde41944"; + sha256 = "4778ac752b4701a5599215f7030989c989ffdc4f6df457c5f36938cc2d2a2750"; }; beamDeps = [ ]; @@ -463,12 +463,12 @@ let ecto = buildMix rec { name = "ecto"; - version = "3.11.2"; + version = "3.13.2"; src = fetchHex { pkg = "ecto"; version = "${version}"; - sha256 = "3c38bca2c6f8d8023f2145326cc8a80100c3ffe4dcbd9842ff867f7fc6156c65"; + sha256 = "669d9291370513ff56e7b7e7081b7af3283d02e046cf3d403053c557894a0b3e"; }; beamDeps = [ @@ -497,12 +497,12 @@ let ecto_psql_extras = buildMix rec { name = "ecto_psql_extras"; - version = "0.7.15"; + version = "0.8.8"; src = fetchHex { pkg = "ecto_psql_extras"; version = "${version}"; - sha256 = "b6127f3a5c6fc3d84895e4768cc7c199f22b48b67d6c99b13fbf4a374e73f039"; + sha256 = "04c63d92b141723ad6fed2e60a4b461ca00b3594d16df47bbc48f1f4534f2c49"; }; beamDeps = [ @@ -514,12 +514,12 @@ let ecto_sql = buildMix rec { name = "ecto_sql"; - version = "3.11.3"; + version = "3.13.2"; src = fetchHex { pkg = "ecto_sql"; version = "${version}"; - sha256 = "e5f36e3d736b99c7fee3e631333b8394ade4bafe9d96d35669fca2d81c2be928"; + sha256 = "539274ab0ecf1a0078a6a72ef3465629e4d6018a3028095dc90f60a19c371717"; }; beamDeps = [ @@ -561,12 +561,12 @@ let erlex = buildMix rec { name = "erlex"; - version = "0.2.6"; + version = "0.2.7"; src = fetchHex { pkg = "erlex"; version = "${version}"; - sha256 = "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"; + sha256 = "3ed95f79d1a844c3f6bf0cea61e0d5612a42ce56da9c03f01df538685365efb0"; }; beamDeps = [ ]; @@ -617,12 +617,12 @@ let ex_aws_s3 = buildMix rec { name = "ex_aws_s3"; - version = "2.5.3"; + version = "2.5.8"; src = fetchHex { pkg = "ex_aws_s3"; version = "${version}"; - sha256 = "4f09dd372cc386550e484808c5ac5027766c8d0cd8271ccc578b82ee6ef4f3b8"; + sha256 = "84e512ca2e0ae6a6c497036dff06d4493ffb422cfe476acc811d7c337c16691c"; }; beamDeps = [ @@ -633,12 +633,12 @@ let ex_const = buildMix rec { name = "ex_const"; - version = "0.2.4"; + version = "0.3.0"; src = fetchHex { pkg = "ex_const"; version = "${version}"; - sha256 = "96fd346610cc992b8f896ed26a98be82ac4efb065a0578f334a32d60a3ba9767"; + sha256 = "76546322abb9e40ee4a2f454cf1c8a5b25c3672fa79bed1ea52c31e0d2428ca9"; }; beamDeps = [ ]; @@ -646,12 +646,12 @@ let ex_doc = buildMix rec { name = "ex_doc"; - version = "0.31.1"; + version = "0.38.2"; src = fetchHex { pkg = "ex_doc"; version = "${version}"; - sha256 = "3178c3a407c557d8343479e1ff117a96fd31bafe52a039079593fb0524ef61b0"; + sha256 = "732f2d972e42c116a70802f9898c51b54916e542cc50968ac6980512ec90f42b"; }; beamDeps = [ @@ -663,12 +663,12 @@ let ex_machina = buildMix rec { name = "ex_machina"; - version = "2.7.0"; + version = "2.8.0"; src = fetchHex { pkg = "ex_machina"; version = "${version}"; - sha256 = "419aa7a39bde11894c87a615c4ecaa52d8f107bbdd81d810465186f783245bf8"; + sha256 = "79fe1a9c64c0c1c1fab6c4fa5d871682cb90de5885320c187d117004627a7729"; }; beamDeps = [ @@ -721,12 +721,12 @@ let fast_html = buildMix rec { name = "fast_html"; - version = "2.3.0"; + version = "2.5.0"; src = fetchHex { pkg = "fast_html"; version = "${version}"; - sha256 = "f18e3c7668f82d3ae0b15f48d48feeb257e28aa5ab1b0dbf781c7312e5da029d"; + sha256 = "69eb46ed98a5d9cca1ccd4a5ac94ce5dd626fc29513fbaa0a16cd8b2da67ae3e"; }; beamDeps = [ @@ -766,16 +766,15 @@ let finch = buildMix rec { name = "finch"; - version = "0.18.0"; + version = "0.20.0"; src = fetchHex { pkg = "finch"; version = "${version}"; - sha256 = "69f5045b042e531e53edc2574f15e25e735b522c37e2ddb766e15b979e03aa65"; + sha256 = "2658131a74d051aabfcba936093c903b8e89da9a1b63e430bee62045fa9b2ee2"; }; beamDeps = [ - castore mime mint nimble_options @@ -802,12 +801,12 @@ let floki = buildMix rec { name = "floki"; - version = "0.35.2"; + version = "0.38.0"; src = fetchHex { pkg = "floki"; version = "${version}"; - sha256 = "6b05289a8e9eac475f644f09c2e4ba7e19201fd002b89c28c1293e7bd16773d9"; + sha256 = "a5943ee91e93fb2d635b612caf5508e36d37548e84928463ef9dd986f0d1abd9"; }; beamDeps = [ ]; @@ -841,12 +840,12 @@ let gun = buildRebar3 rec { name = "gun"; - version = "2.0.1"; + version = "2.2.0"; src = fetchHex { pkg = "gun"; version = "${version}"; - sha256 = "a10bc8d6096b9502205022334f719cc9a08d9adcfbfc0dbee9ef31b56274a20b"; + sha256 = "76022700c64287feb4df93a1795cff6741b83fb37415c40c34c38d2a4645261a"; }; beamDeps = [ cowlib ]; @@ -875,12 +874,12 @@ let hpax = buildMix rec { name = "hpax"; - version = "0.2.0"; + version = "1.0.3"; src = fetchHex { pkg = "hpax"; version = "${version}"; - sha256 = "bea06558cdae85bed075e6c036993d43cd54d447f76d8190a8db0dc5893fa2f1"; + sha256 = "8eab6e1cfa8d5918c2ce4ba43588e894af35dbd8e91e6e55c817bca5847df34a"; }; beamDeps = [ ]; @@ -966,12 +965,12 @@ let joken = buildMix rec { name = "joken"; - version = "2.6.0"; + version = "2.6.2"; src = fetchHex { pkg = "joken"; version = "${version}"; - sha256 = "5a95b05a71cd0b54abd35378aeb1d487a23a52c324fa7efdffc512b655b5aaa7"; + sha256 = "5134b5b0a6e37494e46dbf9e4dad53808e5e787904b7c73972651b51cce3d72b"; }; beamDeps = [ jose ]; @@ -979,12 +978,12 @@ let jose = buildMix rec { name = "jose"; - version = "1.11.6"; + version = "1.11.10"; src = fetchHex { pkg = "jose"; version = "${version}"; - sha256 = "6275cb75504f9c1e60eeacb771adfeee4905a9e182103aa59b53fed651ff9738"; + sha256 = "0d6cd36ff8ba174db29148fc112b5842186b68a90ce9fc2b3ec3afe76593e614"; }; beamDeps = [ ]; @@ -1044,12 +1043,12 @@ let majic = buildMix rec { name = "majic"; - version = "1.0.0"; + version = "1.1.1"; src = fetchHex { pkg = "majic"; version = "${version}"; - sha256 = "7905858f76650d49695f14ea55cd9aaaee0c6654fa391671d4cf305c275a0a9e"; + sha256 = "7fbb0372f0447b3f777056177d6ab3f009742e68474f850521ff56b84bd85b96"; }; beamDeps = [ @@ -1088,12 +1087,12 @@ let makeup_erlang = buildMix rec { name = "makeup_erlang"; - version = "0.1.3"; + version = "1.0.2"; src = fetchHex { pkg = "makeup_erlang"; version = "${version}"; - sha256 = "b78dc853d2e670ff6390b605d807263bf606da3c82be37f9d7f68635bd886fc9"; + sha256 = "af33ff7ef368d5893e4a267933e7744e46ce3cf1f61e2dccf53a111ed3aa3727"; }; beamDeps = [ makeup ]; @@ -1140,12 +1139,12 @@ let mimerl = buildRebar3 rec { name = "mimerl"; - version = "1.3.0"; + version = "1.4.0"; src = fetchHex { pkg = "mimerl"; version = "${version}"; - sha256 = "a1e15a50d1887217de95f0b9b0793e32853f7c258a5cd227650889b38839fe9d"; + sha256 = "13af15f9f68c65884ecca3a3891d50a7b57d82152792f3e19d88650aa126b144"; }; beamDeps = [ ]; @@ -1153,12 +1152,12 @@ let mint = buildMix rec { name = "mint"; - version = "1.6.1"; + version = "1.7.1"; src = fetchHex { pkg = "mint"; version = "${version}"; - sha256 = "4fc518dcc191d02f433393a72a7ba3f6f94b101d094cb6bf532ea54c89423780"; + sha256 = "fceba0a4d0f24301ddee3024ae116df1c3f4bb7a563a731f45fdfeb9d39a231b"; }; beamDeps = [ @@ -1182,12 +1181,12 @@ let mock = buildMix rec { name = "mock"; - version = "0.3.8"; + version = "0.3.9"; src = fetchHex { pkg = "mock"; version = "${version}"; - sha256 = "7fa82364c97617d79bb7d15571193fc0c4fe5afd0c932cef09426b3ee6fe2022"; + sha256 = "9e1b244c4ca2551bb17bb8415eed89e40ee1308e0fbaed0a4fdfe3ec8a4adbd3"; }; beamDeps = [ meck ]; @@ -1208,25 +1207,25 @@ let mox = buildMix rec { name = "mox"; - version = "1.1.0"; + version = "1.2.0"; src = fetchHex { pkg = "mox"; version = "${version}"; - sha256 = "d44474c50be02d5b72131070281a5d3895c0e7a95c780e90bc0cfe712f633a13"; + sha256 = "c7b92b3cc69ee24a7eeeaf944cd7be22013c52fcb580c1f33f50845ec821089a"; }; - beamDeps = [ ]; + beamDeps = [ nimble_ownership ]; }; mua = buildMix rec { name = "mua"; - version = "0.2.3"; + version = "0.2.4"; src = fetchHex { pkg = "mua"; version = "${version}"; - sha256 = "7fe861a87fcc06a980d3941bbcb2634e5f0f30fd6ad15ef6c0423ff9dc7e46de"; + sha256 = "e7e4dacd5ad65f13e3542772e74a159c00bd2d5579e729e9bb72d2c73a266fb7"; }; beamDeps = [ castore ]; @@ -1258,6 +1257,19 @@ let beamDeps = [ ]; }; + nimble_ownership = buildMix rec { + name = "nimble_ownership"; + version = "1.0.1"; + + src = fetchHex { + pkg = "nimble_ownership"; + version = "${version}"; + sha256 = "3825e461025464f519f3f3e4a1f9b68c47dc151369611629ad08b636b73bb22d"; + }; + + beamDeps = [ ]; + }; + nimble_parsec = buildMix rec { name = "nimble_parsec"; version = "0.6.0"; @@ -1273,12 +1285,12 @@ let nimble_pool = buildMix rec { name = "nimble_pool"; - version = "0.2.6"; + version = "1.1.0"; src = fetchHex { pkg = "nimble_pool"; version = "${version}"; - sha256 = "1c715055095d3f2705c4e236c18b618420a35490da94149ff8b580a2144f653f"; + sha256 = "af2e4e6b34197db81f7aad230c1118eac993acc0dae6bc83bac0126d4ae0813a"; }; beamDeps = [ ]; @@ -1286,12 +1298,12 @@ let oban = buildMix rec { name = "oban"; - version = "2.18.3"; + version = "2.19.4"; src = fetchHex { pkg = "oban"; version = "${version}"; - sha256 = "36ca6ca84ef6518f9c2c759ea88efd438a3c81d667ba23b02b062a0aa785475e"; + sha256 = "5fcc6219e6464525b808d97add17896e724131f498444a292071bf8991c99f97"; }; beamDeps = [ @@ -1336,15 +1348,16 @@ let open_api_spex = buildMix rec { name = "open_api_spex"; - version = "3.18.2"; + version = "3.22.0"; src = fetchHex { pkg = "open_api_spex"; version = "${version}"; - sha256 = "aa3e6dcfc0ad6a02596b2172662da21c9dd848dac145ea9e603f54e3d81b8d2b"; + sha256 = "dd751ddbdd709bb4a5313e9a24530da6e66594773c7242a0c2592cbd9f589063"; }; beamDeps = [ + decimal jason plug poison @@ -1379,18 +1392,19 @@ let phoenix_ecto = buildMix rec { name = "phoenix_ecto"; - version = "4.4.3"; + version = "4.6.5"; src = fetchHex { pkg = "phoenix_ecto"; version = "${version}"; - sha256 = "d36c401206f3011fefd63d04e8ef626ec8791975d9d107f9a0817d426f61ac07"; + sha256 = "26ec3208eef407f31b748cadd044045c6fd485fbff168e35963d2f9dfff28d4b"; }; beamDeps = [ ecto phoenix_html plug + postgrex ]; }; @@ -1409,12 +1423,12 @@ let phoenix_live_dashboard = buildMix rec { name = "phoenix_live_dashboard"; - version = "0.8.3"; + version = "0.8.7"; src = fetchHex { pkg = "phoenix_live_dashboard"; version = "${version}"; - sha256 = "f9470a0a8bae4f56430a23d42f977b5a6205fdba6559d76f932b876bfaec652d"; + sha256 = "3a8625cab39ec261d48a13b7468dc619c0ede099601b084e343968309bd4d7d7"; }; beamDeps = [ @@ -1526,12 +1540,12 @@ let plug = buildMix rec { name = "plug"; - version = "1.16.1"; + version = "1.18.1"; src = fetchHex { pkg = "plug"; version = "${version}"; - sha256 = "a13ff6b9006b03d7e33874945b2755253841b238c34071ed85b0e86057f8cddc"; + sha256 = "57a57db70df2b422b564437d2d33cf8d33cd16339c1edb190cd11b1a3a546cc2"; }; beamDeps = [ @@ -1543,12 +1557,12 @@ let plug_cowboy = buildMix rec { name = "plug_cowboy"; - version = "2.7.1"; + version = "2.7.4"; src = fetchHex { pkg = "plug_cowboy"; version = "${version}"; - sha256 = "02dbd5f9ab571b864ae39418db7811618506256f6d13b4a45037e5fe78dc5de3"; + sha256 = "9b85632bd7012615bae0a5d70084deb1b25d2bcbb32cab82d1e9a1e023168aa3"; }; beamDeps = [ @@ -1560,12 +1574,12 @@ let plug_crypto = buildMix rec { name = "plug_crypto"; - version = "2.1.0"; + version = "2.1.1"; src = fetchHex { pkg = "plug_crypto"; version = "${version}"; - sha256 = "131216a4b030b8f8ce0f26038bc4421ae60e4bb95c5cf5395e1421437824c4fa"; + sha256 = "6470bce6ffe41c8bd497612ffde1a7e4af67f36a15eea5f921af71cf3e11247c"; }; beamDeps = [ ]; @@ -1612,12 +1626,12 @@ let postgrex = buildMix rec { name = "postgrex"; - version = "0.17.5"; + version = "0.21.1"; src = fetchHex { pkg = "postgrex"; version = "${version}"; - sha256 = "50b8b11afbb2c4095a3ba675b4f055c416d0f3d7de6633a595fc131a828a67eb"; + sha256 = "27d8d21c103c3cc68851b533ff99eef353e6a0ff98dc444ea751de43eb48bdac"; }; beamDeps = [ @@ -1728,12 +1742,12 @@ let ranch = buildRebar3 rec { name = "ranch"; - version = "1.8.0"; + version = "2.2.0"; src = fetchHex { pkg = "ranch"; version = "${version}"; - sha256 = "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"; + sha256 = "fa0b99a1780c80218a4197a59ea8d3bdae32fbff7e88527d7d8a4787eff4f8e7"; }; beamDeps = [ ]; @@ -1741,12 +1755,12 @@ let recon = buildMix rec { name = "recon"; - version = "2.5.4"; + version = "2.5.6"; src = fetchHex { pkg = "recon"; version = "${version}"; - sha256 = "e9ab01ac7fc8572e41eb59385efeb3fb0ff5bf02103816535bacaedf327d0263"; + sha256 = "96c6799792d735cc0f0fd0f86267e9d351e63339cbe03df9d162010cefc26bb0"; }; beamDeps = [ ]; @@ -1770,12 +1784,12 @@ let sleeplocks = buildRebar3 rec { name = "sleeplocks"; - version = "1.1.2"; + version = "1.1.3"; src = fetchHex { pkg = "sleeplocks"; version = "${version}"; - sha256 = "9fe5d048c5b781d6305c1a3a0f40bb3dfc06f49bf40571f3d2d0c57eaa7f59a5"; + sha256 = "d3b3958552e6eb16f463921e70ae7c767519ef8f5be46d7696cc1ed649421321"; }; beamDeps = [ ]; @@ -1796,12 +1810,12 @@ let statistex = buildMix rec { name = "statistex"; - version = "1.0.0"; + version = "1.1.0"; src = fetchHex { pkg = "statistex"; version = "${version}"; - sha256 = "ff9d8bee7035028ab4742ff52fc80a2aa35cece833cf5319009b52f1b5a86c27"; + sha256 = "f5950ea26ad43246ba2cce54324ac394a4e7408fdcf98b8e230f503a0cba9cf5"; }; beamDeps = [ ]; @@ -1809,12 +1823,12 @@ let sweet_xml = buildMix rec { name = "sweet_xml"; - version = "0.7.4"; + version = "0.7.5"; src = fetchHex { pkg = "sweet_xml"; version = "${version}"; - sha256 = "e7c4b0bdbf460c928234951def54fe87edf1a170f6896675443279e2dbeba167"; + sha256 = "193b28a9b12891cae351d81a0cead165ffe67df1b73fe5866d10629f4faefb12"; }; beamDeps = [ ]; @@ -1822,12 +1836,12 @@ let swoosh = buildMix rec { name = "swoosh"; - version = "1.16.9"; + version = "1.16.12"; src = fetchHex { pkg = "swoosh"; version = "${version}"; - sha256 = "878b1a7a6c10ebbf725a3349363f48f79c5e3d792eb621643b0d276a38acc0a6"; + sha256 = "0e262df1ae510d59eeaaa3db42189a2aa1b3746f73771eb2616fc3f7ee63cc20"; }; beamDeps = [ @@ -1863,12 +1877,12 @@ let table_rex = buildMix rec { name = "table_rex"; - version = "4.0.0"; + version = "4.1.0"; src = fetchHex { pkg = "table_rex"; version = "${version}"; - sha256 = "c35c4d5612ca49ebb0344ea10387da4d2afe278387d4019e4d8111e815df8f55"; + sha256 = "95932701df195d43bc2d1c6531178fc8338aa8f38c80f098504d529c43bc2601"; }; beamDeps = [ ]; @@ -1902,12 +1916,12 @@ let telemetry_metrics_prometheus_core = buildMix rec { name = "telemetry_metrics_prometheus_core"; - version = "1.2.0"; + version = "1.2.1"; src = fetchHex { pkg = "telemetry_metrics_prometheus_core"; version = "${version}"; - sha256 = "9cba950e1c4733468efbe3f821841f34ac05d28e7af7798622f88ecdbbe63ea3"; + sha256 = "5e2c599da4983c4f88a33e9571f1458bf98b0cf6ba930f1dc3a6e8cf45d5afb6"; }; beamDeps = [ @@ -1918,12 +1932,12 @@ let telemetry_poller = buildRebar3 rec { name = "telemetry_poller"; - version = "1.0.0"; + version = "1.3.0"; src = fetchHex { pkg = "telemetry_poller"; version = "${version}"; - sha256 = "b3a24eafd66c3f42da30fc3ca7dda1e9d546c12250a2d60d7b81d264fbec4f6e"; + sha256 = "51f18bed7128544a50f75897db9974436ea9bfba560420b646af27a9a9b35211"; }; beamDeps = [ telemetry ]; @@ -1931,12 +1945,12 @@ let tesla = buildMix rec { name = "tesla"; - version = "1.11.0"; + version = "1.15.3"; src = fetchHex { pkg = "tesla"; version = "${version}"; - sha256 = "b83ab5d4c2d202e1ea2b7e17a49f788d49a699513d7c4f08f2aef2c281be69db"; + sha256 = "98bb3d4558abc67b92fb7be4cd31bb57ca8d80792de26870d362974b58caeda7"; }; beamDeps = [ @@ -1947,6 +1961,7 @@ let jason mime mint + mox poison telemetry ]; @@ -1954,12 +1969,12 @@ let thousand_island = buildMix rec { name = "thousand_island"; - version = "1.3.5"; + version = "1.3.14"; src = fetchHex { pkg = "thousand_island"; version = "${version}"; - sha256 = "2be6954916fdfe4756af3239fb6b6d75d0b8063b5df03ba76fd8a4c87849e180"; + sha256 = "d0d24a929d31cdd1d7903a4fe7f2409afeedff092d277be604966cd6aa4307ef"; }; beamDeps = [ telemetry ]; @@ -2023,12 +2038,12 @@ let ueberauth = buildMix rec { name = "ueberauth"; - version = "0.10.7"; + version = "0.10.8"; src = fetchHex { pkg = "ueberauth"; version = "${version}"; - sha256 = "0bccf73e2ffd6337971340832947ba232877aa8122dba4c95be9f729c8987377"; + sha256 = "f2d3172e52821375bccb8460e5fa5cb91cfd60b19b636b6e57e9759b6f8c10c1"; }; beamDeps = [ plug ]; @@ -2036,12 +2051,12 @@ let unicode_util_compat = buildRebar3 rec { name = "unicode_util_compat"; - version = "0.7.0"; + version = "0.7.1"; src = fetchHex { pkg = "unicode_util_compat"; version = "${version}"; - sha256 = "25eee6d67df61960cf6a794239566599b09e17e668d3700247bc498638152521"; + sha256 = "b3a917854ce3ae233619744ad1e0102e05673136776fb2fa76234f3e03b23642"; }; beamDeps = [ ]; @@ -2108,12 +2123,12 @@ let websock_adapter = buildMix rec { name = "websock_adapter"; - version = "0.5.6"; + version = "0.5.8"; src = fetchHex { pkg = "websock_adapter"; version = "${version}"; - sha256 = "e04378d26b0af627817ae84c92083b7e97aca3121196679b73c73b99d0d133ea"; + sha256 = "315b9a1865552212b5f35140ad194e67ce31af45bcee443d4ecb96b5fd3f3782"; }; beamDeps = [ diff --git a/pkgs/by-name/pl/pleroma/package.nix b/pkgs/by-name/pl/pleroma/package.nix index 0a05709893d2..33d206419ef1 100644 --- a/pkgs/by-name/pl/pleroma/package.nix +++ b/pkgs/by-name/pl/pleroma/package.nix @@ -20,14 +20,14 @@ let in beamPackages.mixRelease rec { pname = "pleroma"; - version = "2.9.1"; + version = "2.10.0"; src = fetchFromGitLab { domain = "git.pleroma.social"; owner = "pleroma"; repo = "pleroma"; rev = "v${version}"; - sha256 = "sha256-mZcr+LlRQFDZVU5yAm0XkFdFHCDp4DZNLoVUlWxknMI="; + sha256 = "sha256-kW4AcOYHtm8lVXRroDCUM7jY7o39JHx/J/mfy2XfBgs="; }; patches = [ ./Revert-Config-Restrict-permissions-of-OTP-config.patch ]; @@ -77,8 +77,8 @@ beamPackages.mixRelease rec { domain = "git.pleroma.social"; owner = "pleroma/elixir-libraries"; repo = "elixir-captcha"; - rev = "90f6ce7672f70f56708792a98d98bd05176c9176"; - sha256 = "sha256-s7EuAhmCsQA/4p2NJHJSWB/DZ5hA+7EelPsUOvKr2Po="; + rev = "e7b7cc34cc16b383461b966484c297e4ec9aeef6"; + sha256 = "sha256-gcsZ8BzmKfSeX2QsWDxQd34nKxIM0eJKBAaxxYyFSlg="; }; beamDeps = [ ]; }; @@ -94,6 +94,18 @@ beamPackages.mixRelease rec { }; beamDeps = with final; [ prometheus ]; }; + oban_plugins_lazarus = beamPackages.buildMix { + name = "oban_plugins_lazarus"; + version = "0.1.0"; + src = fetchFromGitLab { + domain = "git.pleroma.social"; + owner = "pleroma/elixir-libraries"; + repo = "oban_plugins_lazarus"; + rev = "e49fc355baaf0e435208bf5f534d31e26e897711"; + hash = "sha256-zSzPniRN7jQLAEGGOuwserDSLy2lSZ74NFMD/IOBsC8="; + }; + beamDeps = with final; [ oban ]; + }; remote_ip = beamPackages.buildMix { name = "remote_ip"; version = "0.1.5"; From 9a908cbad95afdf2570ad1c69c366c0c72ff8225 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 14 Jan 2026 23:15:57 +0000 Subject: [PATCH 039/396] floorp-bin-unwrapped: 12.9.2 -> 12.10.2 --- .../fl/floorp-bin-unwrapped/sources.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/fl/floorp-bin-unwrapped/sources.json b/pkgs/by-name/fl/floorp-bin-unwrapped/sources.json index 2c97744e808f..7854e67964ef 100644 --- a/pkgs/by-name/fl/floorp-bin-unwrapped/sources.json +++ b/pkgs/by-name/fl/floorp-bin-unwrapped/sources.json @@ -1,21 +1,21 @@ { - "version": "12.9.2", + "version": "12.10.2", "sources": { "aarch64-linux": { - "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.9.2/floorp-linux-aarch64.tar.xz", - "sha256": "6a9f3a23401045bdacfcee26ff5bdd95a5f2bbd21eb08601a98e18b09df04fb5" + "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.10.2/floorp-linux-aarch64.tar.xz", + "sha256": "a6c0919ff1ba5099d7efcc595aa943ea26fb1614c9fdc8099dda5d7cdd2c902b" }, "x86_64-linux": { - "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.9.2/floorp-linux-x86_64.tar.xz", - "sha256": "c73cd19566b8c4d80cdd01ae8d76bbc8198b210027fbd590e250dc7ab1252032" + "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.10.2/floorp-linux-x86_64.tar.xz", + "sha256": "8014ec6416b70a6a762c9109aa70a28fc305c08711493691fb8b00a2f53bc910" }, "aarch64-darwin": { - "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.9.2/floorp-macOS-universal.dmg", - "sha256": "cc27a9cd3eff0679ab916666583e2aed1fb882f0f4ea66676a133532cc8d5611" + "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.10.2/floorp-macOS-universal.dmg", + "sha256": "d225e9f6f1d81c6049905699ff08a64fb67496a16c31a2634af4c4f2e96f7a6d" }, "x86_64-darwin": { - "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.9.2/floorp-macOS-universal.dmg", - "sha256": "cc27a9cd3eff0679ab916666583e2aed1fb882f0f4ea66676a133532cc8d5611" + "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.10.2/floorp-macOS-universal.dmg", + "sha256": "d225e9f6f1d81c6049905699ff08a64fb67496a16c31a2634af4c4f2e96f7a6d" } } } From 3b2a4dc0455705b798aed19ac63796fa5faf30e2 Mon Sep 17 00:00:00 2001 From: Aaron Jheng Date: Thu, 15 Jan 2026 07:03:19 +0000 Subject: [PATCH 040/396] argo-workflows: tweak repo name --- pkgs/by-name/ar/argo-workflows/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ar/argo-workflows/package.nix b/pkgs/by-name/ar/argo-workflows/package.nix index 3bb18cd36d0e..235ea7a9ecbf 100644 --- a/pkgs/by-name/ar/argo-workflows/package.nix +++ b/pkgs/by-name/ar/argo-workflows/package.nix @@ -13,7 +13,7 @@ buildGoModule rec { src = fetchFromGitHub { owner = "argoproj"; - repo = "argo"; + repo = "argo-workflows"; tag = "v${version}"; hash = "sha256-TM/eK8biMxKV4SFJ1Lys+NPPeaHVjbBo83k2RH1Xi40="; }; @@ -55,7 +55,7 @@ buildGoModule rec { meta = { description = "Container native workflow engine for Kubernetes"; mainProgram = "argo"; - homepage = "https://github.com/argoproj/argo"; + homepage = "https://github.com/argoproj/argo-workflows"; changelog = "https://github.com/argoproj/argo-workflows/blob/v${version}/CHANGELOG.md"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ groodt ]; From 07daef9f044e3b305e9822bc5ffcfad97568af64 Mon Sep 17 00:00:00 2001 From: Romain Paquet Date: Thu, 15 Jan 2026 22:04:53 +0100 Subject: [PATCH 041/396] ocamlPackages.happy-eyeballs-miou-unix: init at 2.0.1 --- .../happy-eyeballs/miou-unix.nix | 38 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 4 ++ 2 files changed, 42 insertions(+) create mode 100644 pkgs/development/ocaml-modules/happy-eyeballs/miou-unix.nix diff --git a/pkgs/development/ocaml-modules/happy-eyeballs/miou-unix.nix b/pkgs/development/ocaml-modules/happy-eyeballs/miou-unix.nix new file mode 100644 index 000000000000..de396a05174e --- /dev/null +++ b/pkgs/development/ocaml-modules/happy-eyeballs/miou-unix.nix @@ -0,0 +1,38 @@ +{ + buildDunePackage, + happy-eyeballs, + cmdliner, + duration, + domain-name, + fmt, + ipaddr, + logs, + miou, + mtime, +}: + +buildDunePackage { + pname = "happy-eyeballs-miou-unix"; + inherit (happy-eyeballs) src version; + + buildInputs = [ + cmdliner + duration + domain-name + fmt + ipaddr + mtime + ]; + + propagatedBuildInputs = [ + happy-eyeballs + logs + miou + ]; + + doCheck = true; + + meta = happy-eyeballs.meta // { + description = "Connecting to a remote host via IP version 4 or 6 using Miou"; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 51dfcd2c9b09..e454187653de 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -786,6 +786,10 @@ let happy-eyeballs-lwt = callPackage ../development/ocaml-modules/happy-eyeballs/lwt.nix { }; + happy-eyeballs-miou-unix = + callPackage ../development/ocaml-modules/happy-eyeballs/miou-unix.nix + { }; + happy-eyeballs-mirage = callPackage ../development/ocaml-modules/happy-eyeballs/mirage.nix { }; hashcons = callPackage ../development/ocaml-modules/hashcons { }; From f1d1e9c4e7c9b1d4eaf1b12ea8dfcfa003763bf5 Mon Sep 17 00:00:00 2001 From: Anthony ROUSSEL Date: Thu, 15 Jan 2026 19:34:58 +0100 Subject: [PATCH 042/396] markdownlint-cli2: 0.18.0 -> 0.20.0 Diff: https://github.com/DavidAnson/markdownlint-cli2/compare/v0.18.0...v0.20.0 Changelog: https://github.com/DavidAnson/markdownlint-cli2/blob/v0.20.0/CHANGELOG.md --- .../ma/markdownlint-cli2/package-lock.json | 7704 +++++++++++++++++ pkgs/by-name/ma/markdownlint-cli2/package.nix | 62 +- 2 files changed, 7731 insertions(+), 35 deletions(-) create mode 100644 pkgs/by-name/ma/markdownlint-cli2/package-lock.json diff --git a/pkgs/by-name/ma/markdownlint-cli2/package-lock.json b/pkgs/by-name/ma/markdownlint-cli2/package-lock.json new file mode 100644 index 000000000000..8ff9f25177a4 --- /dev/null +++ b/pkgs/by-name/ma/markdownlint-cli2/package-lock.json @@ -0,0 +1,7704 @@ +{ + "name": "markdownlint-cli2", + "version": "0.20.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "markdownlint-cli2", + "version": "0.20.0", + "license": "MIT", + "dependencies": { + "globby": "15.0.0", + "js-yaml": "4.1.1", + "jsonc-parser": "3.3.1", + "markdown-it": "14.1.0", + "markdownlint": "0.40.0", + "markdownlint-cli2-formatter-default": "0.0.6", + "micromatch": "4.0.8" + }, + "bin": { + "markdownlint-cli2": "markdownlint-cli2-bin.mjs" + }, + "devDependencies": { + "@eslint/js": "9.39.1", + "@playwright/test": "1.57.0", + "@stylistic/eslint-plugin": "5.6.1", + "ajv": "8.17.1", + "ava": "6.4.1", + "c8": "10.1.3", + "chalk": "5.6.2", + "cpy": "12.1.0", + "cpy-cli": "6.0.0", + "eslint": "9.39.1", + "eslint-plugin-jsdoc": "61.4.1", + "eslint-plugin-n": "17.23.1", + "eslint-plugin-unicorn": "62.0.0", + "execa": "9.6.1", + "markdown-it-emoji": "3.0.0", + "markdown-it-for-inline": "2.0.1", + "markdownlint-cli2-formatter-codequality": "0.0.7", + "markdownlint-cli2-formatter-json": "0.0.9", + "markdownlint-cli2-formatter-junit": "0.0.14", + "markdownlint-cli2-formatter-pretty": "0.0.9", + "markdownlint-cli2-formatter-sarif": "0.0.4", + "markdownlint-cli2-formatter-summarize": "0.0.8", + "markdownlint-cli2-formatter-template": "0.0.4", + "markdownlint-rule-extended-ascii": "0.2.1", + "npm-run-all": "4.1.5", + "terminal-link": "5.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.76.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.76.0.tgz", + "integrity": "sha512-g+RihtzFgGTx2WYCuTHbdOXJeAlGnROws0TeALx9ow/ZmOROOZkVg5wp/B44n0WJgI4SQFP1eWM2iRPlU2Y14w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.8", + "@typescript-eslint/types": "^8.46.0", + "comment-parser": "1.4.1", + "esquery": "^1.6.0", + "jsdoc-type-pratt-parser": "~6.10.0" + }, + "engines": { + "node": ">=20.11.0" + } + }, + "node_modules/@es-joy/resolve.exports": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@es-joy/resolve.exports/-/resolve.exports-1.2.0.tgz", + "integrity": "sha512-Q9hjxWI5xBM+qW2enxfe8wDKdFWMfd0Z29k5ZJnuBqD/CasY5Zryj09aCA6owbGATWz+39p5uIdaHXpopOcG8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@eslint/js": { + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", + "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-2.0.3.tgz", + "integrity": "sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "consola": "^3.2.3", + "detect-libc": "^2.0.0", + "https-proxy-agent": "^7.0.5", + "node-fetch": "^2.6.7", + "nopt": "^8.0.0", + "semver": "^7.5.3", + "tar": "^7.4.0" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@playwright/test": { + "version": "1.57.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.57.0.tgz", + "integrity": "sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.57.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sindresorhus/base62": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/base62/-/base62-1.0.0.tgz", + "integrity": "sha512-TeheYy0ILzBEI/CO55CP6zJCSdSWeRtGnHy8U8dWSUH4I68iqTsy7HkMktR4xakThc9jotkPQUXT4ITdbV7cHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@stylistic/eslint-plugin": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-5.6.1.tgz", + "integrity": "sha512-JCs+MqoXfXrRPGbGmho/zGS/jMcn3ieKl/A8YImqib76C8kjgZwq5uUFzc30lJkMvcchuRn6/v8IApLxli3Jyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.0", + "@typescript-eslint/types": "^8.47.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "estraverse": "^5.3.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": ">=9.0.0" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/katex": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.8.tgz", + "integrity": "sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/types": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.0.tgz", + "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vercel/nft": { + "version": "0.29.4", + "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.29.4.tgz", + "integrity": "sha512-6lLqMNX3TuycBPABycx7A9F1bHQR7kiQln6abjFbPrf5C/05qHM9M5E4PeTE59c7z8g6vHnx1Ioihb2AQl7BTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mapbox/node-pre-gyp": "^2.0.0", + "@rollup/pluginutils": "^5.1.3", + "acorn": "^8.6.0", + "acorn-import-attributes": "^1.9.5", + "async-sema": "^3.1.1", + "bindings": "^1.4.0", + "estree-walker": "2.0.2", + "glob": "^10.4.5", + "graceful-fs": "^4.2.9", + "node-gyp-build": "^4.2.2", + "picomatch": "^4.0.2", + "resolve-from": "^5.0.0" + }, + "bin": { + "nft": "out/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/abbrev": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz", + "integrity": "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.2.0.tgz", + "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrgv": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arrgv/-/arrgv-1.0.2.tgz", + "integrity": "sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/arrify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz", + "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/async-sema": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz", + "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/ava": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/ava/-/ava-6.4.1.tgz", + "integrity": "sha512-vxmPbi1gZx9zhAjHBgw81w/iEDKcrokeRk/fqDTyA2DQygZ0o+dUGRHFOtX8RA5N0heGJTTsIk7+xYxitDb61Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vercel/nft": "^0.29.4", + "acorn": "^8.15.0", + "acorn-walk": "^8.3.4", + "ansi-styles": "^6.2.1", + "arrgv": "^1.0.2", + "arrify": "^3.0.0", + "callsites": "^4.2.0", + "cbor": "^10.0.9", + "chalk": "^5.4.1", + "chunkd": "^2.0.1", + "ci-info": "^4.3.0", + "ci-parallel-vars": "^1.0.1", + "cli-truncate": "^4.0.0", + "code-excerpt": "^4.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.4", + "currently-unhandled": "^0.4.1", + "debug": "^4.4.1", + "emittery": "^1.2.0", + "figures": "^6.1.0", + "globby": "^14.1.0", + "ignore-by-default": "^2.1.0", + "indent-string": "^5.0.0", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "matcher": "^5.0.0", + "memoize": "^10.1.0", + "ms": "^2.1.3", + "p-map": "^7.0.3", + "package-config": "^5.0.0", + "picomatch": "^4.0.2", + "plur": "^5.1.0", + "pretty-ms": "^9.2.0", + "resolve-cwd": "^3.0.0", + "stack-utils": "^2.0.6", + "strip-ansi": "^7.1.0", + "supertap": "^3.0.1", + "temp-dir": "^3.0.0", + "write-file-atomic": "^6.0.0", + "yargs": "^17.7.2" + }, + "bin": { + "ava": "entrypoints/cli.mjs" + }, + "engines": { + "node": "^18.18 || ^20.8 || ^22 || ^23 || >=24" + }, + "peerDependencies": { + "@ava/typescript": "*" + }, + "peerDependenciesMeta": { + "@ava/typescript": { + "optional": true + } + } + }, + "node_modules/ava/node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ava/node_modules/globby": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ava/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.14", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.14.tgz", + "integrity": "sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/builtin-modules": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-5.0.0.tgz", + "integrity": "sha512-bkXY9WsVpY7CvMhKSR6pZilZu9Ln5WDrKVBUXf2S443etkmEO4V58heTecXcUIsNsi4Rx8JUO4NfX1IcQl4deg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/c8": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/c8/-/c8-10.1.3.tgz", + "integrity": "sha512-LvcyrOAaOnrrlMpW22n690PUvxiq4Uf9WMhQwNJ9vgagkL/ph1+D4uvjvDA5XCbykrc0sx+ay6pVi9YZ1GnhyA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@bcoe/v8-coverage": "^1.0.1", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^3.1.1", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.1.6", + "test-exclude": "^7.0.1", + "v8-to-istanbul": "^9.0.0", + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "monocart-coverage-reports": "^2" + }, + "peerDependenciesMeta": { + "monocart-coverage-reports": { + "optional": true + } + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-4.2.0.tgz", + "integrity": "sha512-kfzR4zzQtAE9PC7CzZsjl3aBNbXWuXiSeOCdLcPpBfGW8YuCqQHcRPFDbr/BPVmd3EEPVpuFzLyuT/cUhPr4OQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001764", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz", + "integrity": "sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/cbor": { + "version": "10.0.11", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-10.0.11.tgz", + "integrity": "sha512-vIwORDd/WyB8Nc23o2zNN5RrtFGlR6Fca61TtjkUXueI3Jf2DOZDl1zsshvBntZ3wZHBM9ztjnkXSmzQDaq3WA==", + "dev": true, + "license": "MIT", + "dependencies": { + "nofilter": "^3.0.2" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/change-case": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", + "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/chunkd": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chunkd/-/chunkd-2.0.1.tgz", + "integrity": "sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/ci-info": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz", + "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ci-parallel-vars": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ci-parallel-vars/-/ci-parallel-vars-1.0.1.tgz", + "integrity": "sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==", + "dev": true, + "license": "MIT" + }, + "node_modules/clean-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", + "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/clean-regexp/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/code-excerpt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-4.0.0.tgz", + "integrity": "sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==", + "dev": true, + "license": "MIT", + "dependencies": { + "convert-to-spaces": "^2.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/comment-parser": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", + "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true, + "license": "ISC" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concordance": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", + "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" + } + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-to-spaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz", + "integrity": "sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/copy-file": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/copy-file/-/copy-file-11.1.0.tgz", + "integrity": "sha512-X8XDzyvYaA6msMyAM575CUoygY5b44QzLcGRKsK3MFmXcOvQa518dNPLsKYwkYsn72g3EiW+LE0ytd/FlqWmyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.11", + "p-event": "^6.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js-compat": { + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", + "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cpy": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/cpy/-/cpy-12.1.0.tgz", + "integrity": "sha512-3z9tP1rPBLG7pQYn9iRgl7JOSew0SMPuWmakaRfzhXpmFBHmRbp7JekpuqPkXbbWOdSeKSbInYEcdIZjov2fNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-file": "^11.1.0", + "globby": "^15.0.0", + "junk": "^4.0.1", + "micromatch": "^4.0.8", + "p-filter": "^4.1.0", + "p-map": "^7.0.3" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy-cli": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-6.0.0.tgz", + "integrity": "sha512-q7GUqTDnRymCbScJ4Ph1IUM86wWdKG8JbgrvKLgvvehH4wrbRcVN+jRwOTlxJdwm7ykdXMKSp6IESksFeHa0eA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cpy": "^12.0.0", + "meow": "^13.2.0" + }, + "bin": { + "cpy": "cli.js" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/date-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", + "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "time-zone": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", + "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.2.0.tgz", + "integrity": "sha512-KxdRyyFcS85pH3dnU8Y5yFUm2YJdaHwcBZWrfG8o89ZY9a13/f9itbN+YG3ELbBo9Pg5zvIozstmuV8bX13q6g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/enhanced-resolve": { + "version": "5.18.4", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", + "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", + "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", + "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.39.1", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-plugin-es-x": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", + "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/ota-meshi", + "https://opencollective.com/eslint" + ], + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.11.0", + "eslint-compat-utils": "^0.5.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "61.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-61.4.1.tgz", + "integrity": "sha512-3c1QW/bV25sJ1MsIvsvW+EtLtN6yZMduw7LVQNVt72y2/5BbV5Pg5b//TE5T48LRUxoEQGaZJejCmcj3wCxBzw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@es-joy/jsdoccomment": "~0.76.0", + "@es-joy/resolve.exports": "1.2.0", + "are-docs-informative": "^0.0.2", + "comment-parser": "1.4.1", + "debug": "^4.4.3", + "escape-string-regexp": "^4.0.0", + "espree": "^10.4.0", + "esquery": "^1.6.0", + "html-entities": "^2.6.0", + "object-deep-merge": "^2.0.0", + "parse-imports-exports": "^0.2.4", + "semver": "^7.7.3", + "spdx-expression-parse": "^4.0.0", + "to-valid-identifier": "^1.0.0" + }, + "engines": { + "node": ">=20.11.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-n": { + "version": "17.23.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.23.1.tgz", + "integrity": "sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.5.0", + "enhanced-resolve": "^5.17.1", + "eslint-plugin-es-x": "^7.8.0", + "get-tsconfig": "^4.8.1", + "globals": "^15.11.0", + "globrex": "^0.1.2", + "ignore": "^5.3.2", + "semver": "^7.6.3", + "ts-declaration-location": "^1.0.6" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": ">=8.23.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-unicorn": { + "version": "62.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-62.0.0.tgz", + "integrity": "sha512-HIlIkGLkvf29YEiS/ImuDZQbP12gWyx5i3C6XrRxMvVdqMroCI9qoVYCoIl17ChN+U89pn9sVwLxhIWj5nEc7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "@eslint-community/eslint-utils": "^4.9.0", + "@eslint/plugin-kit": "^0.4.0", + "change-case": "^5.4.4", + "ci-info": "^4.3.1", + "clean-regexp": "^1.0.0", + "core-js-compat": "^3.46.0", + "esquery": "^1.6.0", + "find-up-simple": "^1.0.1", + "globals": "^16.4.0", + "indent-string": "^5.0.0", + "is-builtin-module": "^5.0.0", + "jsesc": "^3.1.0", + "pluralize": "^8.0.0", + "regexp-tree": "^0.1.27", + "regjsparser": "^0.13.0", + "semver": "^7.7.3", + "strip-indent": "^4.1.1" + }, + "engines": { + "node": "^20.10.0 || >=21.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" + }, + "peerDependencies": { + "eslint": ">=9.38.0" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/globals": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", + "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.1.tgz", + "integrity": "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.6", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.1", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.2.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.1.1" + }, + "engines": { + "node": "^18.19.0 || >=20.5.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/figures": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up-simple": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.1.tgz", + "integrity": "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz", + "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-15.0.0.tgz", + "integrity": "sha512-oB4vkQGqlMl682wL1IlWd02tXCbquGWM4voPEI85QmNKCaw8zGTm1f1rubFgkg3Eli2PtKlFgrnmUqasbQWlkw==", + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.5", + "path-type": "^6.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true, + "license": "MIT" + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/html-entities": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz", + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-by-default": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-2.1.0.tgz", + "integrity": "sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10 <11 || >=12 <13 || >=14" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/irregular-plurals": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz", + "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-builtin-module": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-5.0.0.tgz", + "integrity": "sha512-f4RqJKBUe5rQkJ2eJEJBXSticB3hGbN9j0yxxMQFqIW89Jp9WYFtzfTcRlstDKVUTRzSOTLKRfO9vIztenwtxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "builtin-modules": "^5.0.0" + }, + "engines": { + "node": ">=18.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-6.10.0.tgz", + "integrity": "sha512-+LexoTRyYui5iOhJGn13N9ZazL23nAHGkXsa1p/C8yeq79WRfLBag6ZZ0FQG2aRoc9yfo59JT9EYCQonOkHKkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "license": "MIT" + }, + "node_modules/junit-report-builder": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/junit-report-builder/-/junit-report-builder-5.1.1.tgz", + "integrity": "sha512-ZNOIIGMzqCGcHQEA2Q4rIQQ3Df6gSIfne+X9Rly9Bc2y55KxAZu8iGv+n2pP0bLf0XAOctJZgeloC54hWzCahQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21", + "make-dir": "^3.1.0", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/junit-report-builder/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/junit-report-builder/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/junk": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/junk/-/junk-4.0.1.tgz", + "integrity": "sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/katex": { + "version": "0.16.27", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.27.tgz", + "integrity": "sha512-aeQoDkuRWSqQN6nSvVCEFvfXdqo1OQiCmmW1kc9xSdjutPv7BGO7pqY9sQRJpMOGrEdfDgF2TfRXe5eUAD2Waw==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/load-json-file": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-7.0.1.tgz", + "integrity": "sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it-emoji": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-3.0.0.tgz", + "integrity": "sha512-+rUD93bXHubA4arpEZO3q80so0qgoFJEKRkRbjKX8RTdca89v2kfyF+xR3i2sQTwql9tpPZPOQN5B+PunspXRg==", + "dev": true, + "license": "MIT" + }, + "node_modules/markdown-it-for-inline": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/markdown-it-for-inline/-/markdown-it-for-inline-2.0.1.tgz", + "integrity": "sha512-JGOi3/Ohhzehs+1qSA4CkDydmVBtiYi2q2BD//YtTbSK+75InrGJX2MtPq1AdMeC4BV7rwEhq1+3pLnwGbsgzA==", + "dev": true, + "license": "MIT" + }, + "node_modules/markdownlint": { + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.40.0.tgz", + "integrity": "sha512-UKybllYNheWac61Ia7T6fzuQNDZimFIpCg2w6hHjgV1Qu0w1TV0LlSgryUGzM0bkKQCBhy2FDhEELB73Kb0kAg==", + "license": "MIT", + "dependencies": { + "micromark": "4.0.2", + "micromark-core-commonmark": "2.0.3", + "micromark-extension-directive": "4.0.0", + "micromark-extension-gfm-autolink-literal": "2.1.0", + "micromark-extension-gfm-footnote": "2.1.0", + "micromark-extension-gfm-table": "2.1.1", + "micromark-extension-math": "3.1.0", + "micromark-util-types": "2.0.2", + "string-width": "8.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + } + }, + "node_modules/markdownlint-cli2": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.20.0.tgz", + "integrity": "sha512-esPk+8Qvx/f0bzI7YelUeZp+jCtFOk3KjZ7s9iBQZ6HlymSXoTtWGiIRZP05/9Oy2ehIoIjenVwndxGtxOIJYQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "globby": "15.0.0", + "js-yaml": "4.1.1", + "jsonc-parser": "3.3.1", + "markdown-it": "14.1.0", + "markdownlint": "0.40.0", + "markdownlint-cli2-formatter-default": "0.0.6", + "micromatch": "4.0.8" + }, + "bin": { + "markdownlint-cli2": "markdownlint-cli2-bin.mjs" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + } + }, + "node_modules/markdownlint-cli2-formatter-codequality": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/markdownlint-cli2-formatter-codequality/-/markdownlint-cli2-formatter-codequality-0.0.7.tgz", + "integrity": "sha512-7DmWN/l3SHqCZn8iWik1qTkJq6p2j12Snmt94uNhD8dkZyR18k1rkRFaM6e04AyNAww+frNuUAupVHmnNMspPQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + }, + "peerDependencies": { + "markdownlint-cli2": ">=0.0.4" + } + }, + "node_modules/markdownlint-cli2-formatter-default": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/markdownlint-cli2-formatter-default/-/markdownlint-cli2-formatter-default-0.0.6.tgz", + "integrity": "sha512-VVDGKsq9sgzu378swJ0fcHfSicUnMxnL8gnLm/Q4J/xsNJ4e5bA6lvAz7PCzIl0/No0lHyaWdqVD2jotxOSFMQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + }, + "peerDependencies": { + "markdownlint-cli2": ">=0.0.4" + } + }, + "node_modules/markdownlint-cli2-formatter-json": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/markdownlint-cli2-formatter-json/-/markdownlint-cli2-formatter-json-0.0.9.tgz", + "integrity": "sha512-f8Hp3YD51RgrK7k2nh0OYXt6Jq3kT9Cs3FIaI+BTDdMywplfMNkiBb6VTijL0ZrpOpd9YXa4VER91DL1DdyMgA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + }, + "peerDependencies": { + "markdownlint-cli2": ">=0.0.4" + } + }, + "node_modules/markdownlint-cli2-formatter-junit": { + "version": "0.0.14", + "resolved": "https://registry.npmjs.org/markdownlint-cli2-formatter-junit/-/markdownlint-cli2-formatter-junit-0.0.14.tgz", + "integrity": "sha512-q+aScBwPMKk97WiPSZ9f+Un4PvGkbII5LRVhnGX5yWYr8iPbaHqfNASaNl1om92ceJlS3OD+04ghtR3K2DZR3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "junit-report-builder": "5.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + }, + "peerDependencies": { + "markdownlint-cli2": ">=0.0.4" + } + }, + "node_modules/markdownlint-cli2-formatter-pretty": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/markdownlint-cli2-formatter-pretty/-/markdownlint-cli2-formatter-pretty-0.0.9.tgz", + "integrity": "sha512-5zuqYonXTUu7yLP+f0ERcYu3c6tlWJVMkp+ovo6RNEvy8NEpkdUXRBAObbuJVSE3bJcaqderebfLSlEdUK8HDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "5.6.2", + "terminal-link": "5.0.0" + }, + "engines": { + "node": ">=14.18.0" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + }, + "peerDependencies": { + "markdownlint-cli2": ">=0.0.4" + } + }, + "node_modules/markdownlint-cli2-formatter-sarif": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/markdownlint-cli2-formatter-sarif/-/markdownlint-cli2-formatter-sarif-0.0.4.tgz", + "integrity": "sha512-rTszXGdLUk/i0UiBx+JUif9r68C1SSKC29Muyr9XNKv9oiF0vzfTdBRAcy7PLuIzusebsiiz6xZXA6UGjHYQ0Q==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + }, + "peerDependencies": { + "markdownlint-cli2": ">=0.0.4" + } + }, + "node_modules/markdownlint-cli2-formatter-summarize": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/markdownlint-cli2-formatter-summarize/-/markdownlint-cli2-formatter-summarize-0.0.8.tgz", + "integrity": "sha512-Uif/EDMzqbbRVb9I67botIQnFluw+XGuqBd+m8n4jo95MegKOA+CJm/QlJCqUDMDBDnnYnyR6SaDlCyMkBUcXA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + }, + "peerDependencies": { + "markdownlint-cli2": ">=0.0.4" + } + }, + "node_modules/markdownlint-cli2-formatter-template": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/markdownlint-cli2-formatter-template/-/markdownlint-cli2-formatter-template-0.0.4.tgz", + "integrity": "sha512-DcUt0q/6fAOAxOvKicBzpz6oSkCSmLD7+k+s8DEmdKzm+ZGo6i6rioRDUMkgE4W/YGR6Z6cF3ubVTH0i/1eGUQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + }, + "peerDependencies": { + "markdownlint-cli2": ">=0.0.4" + } + }, + "node_modules/markdownlint-rule-extended-ascii": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/markdownlint-rule-extended-ascii/-/markdownlint-rule-extended-ascii-0.2.1.tgz", + "integrity": "sha512-R7ED3LfGk87Jv2lx2a4BwkSAR3dYtlXmLR+taBYyVMttAu8j6Xq/W/rDU9UUaMAMEGYpUwvCzxIAyEDrRyU/9A==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + } + }, + "node_modules/markdownlint/node_modules/string-width": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz", + "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/matcher": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-5.0.0.tgz", + "integrity": "sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/matcher/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/md5-hex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", + "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", + "dev": true, + "license": "MIT", + "dependencies": { + "blueimp-md5": "^2.10.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "license": "MIT" + }, + "node_modules/memoize": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/memoize/-/memoize-10.2.0.tgz", + "integrity": "sha512-DeC6b7QBrZsRs3Y02A6A7lQyzFbsQbqgjI6UW0GigGWV+u1s25TycMr0XHZE4cJce7rY/vyw2ctMQqfDkIhUEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/memoize?sponsor=1" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-4.0.0.tgz", + "integrity": "sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "parse-entities": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-math": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz", + "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==", + "license": "MIT", + "dependencies": { + "@types/katex": "^0.16.0", + "devlop": "^1.0.0", + "katex": "^0.16.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "dev": true, + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.19" + } + }, + "node_modules/nopt": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz", + "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^3.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/npm-run-all/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/object-deep-merge": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/object-deep-merge/-/object-deep-merge-2.0.0.tgz", + "integrity": "sha512-3DC3UMpeffLTHiuXSy/UG4NOIYTLlY9u3V82+djSCLYClWobZiS4ivYzpIUWrRY/nfsJ8cWsKyG3QfyLePmhvg==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-event": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.1.tgz", + "integrity": "sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-timeout": "^6.1.2" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-filter": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz", + "integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-map": "^7.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz", + "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", + "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-config": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/package-config/-/package-config-5.0.0.tgz", + "integrity": "sha512-GYTTew2slBcYdvRHqjhwaaydVMvn/qrGC323+nKclYioNSLTDUM/lGgtGTgyHVtYcozb+XkE8CNhwcraOmZ9Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up-simple": "^1.0.0", + "load-json-file": "^7.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module/node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-imports-exports": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/parse-imports-exports/-/parse-imports-exports-0.2.4.tgz", + "integrity": "sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-statements": "1.0.11" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-statements": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/parse-statements/-/parse-statements-1.0.11.tgz", + "integrity": "sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-type": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/playwright": { + "version": "1.57.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.57.0.tgz", + "integrity": "sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.57.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.57.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.57.0.tgz", + "integrity": "sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/plur": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-5.1.0.tgz", + "integrity": "sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "irregular-plurals": "^3.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-ms": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz", + "integrity": "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp-tree": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", + "dev": true, + "license": "MIT", + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regjsparser": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reserved-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/reserved-identifiers/-/reserved-identifiers-1.2.0.tgz", + "integrity": "sha512-yE7KUfFvaBFzGPs5H3Ops1RevfUEsDc5Iz65rOwWg4lE8HJSYtle77uul3+573457oHvBKuHYDl/xqUkKpEEdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-indent": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.1.1.tgz", + "integrity": "sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supertap": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/supertap/-/supertap-3.0.1.tgz", + "integrity": "sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^5.0.0", + "js-yaml": "^3.14.1", + "serialize-error": "^7.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/supertap/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/supertap/node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-4.4.0.tgz", + "integrity": "sha512-UKbpT93hN5Nr9go5UY7bopIB9YQlMz9nm/ct4IXt/irb5YRkn9WaqrOBJGZ5Pwvsd5FQzSVeYlGdXoCAPQZrPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^5.0.1", + "supports-color": "^10.2.2" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-5.0.1.tgz", + "integrity": "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tar": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz", + "integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/temp-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", + "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/terminal-link": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-5.0.0.tgz", + "integrity": "sha512-qFAy10MTMwjzjU8U16YS4YoZD+NQLHzLssFMNqgravjbvIPNiqkGFR4yjhJfmY9R5OFU7+yHxc6y+uGHkKwLRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "supports-hyperlinks": "^4.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", + "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^9.0.4" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/time-zone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", + "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/to-valid-identifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-valid-identifier/-/to-valid-identifier-1.0.0.tgz", + "integrity": "sha512-41wJyvKep3yT2tyPqX/4blcfybknGB4D+oETKLs7Q76UiPqRpUJK3hr1nxelyYO0PHKVzJwlu0aCeEAsGI6rpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/base62": "^1.0.0", + "reserved-identifiers": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/ts-declaration-location": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz", + "integrity": "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==", + "dev": true, + "funding": [ + { + "type": "ko-fi", + "url": "https://ko-fi.com/rebeccastevens" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/ts-declaration-location" + } + ], + "license": "BSD-3-Clause", + "dependencies": { + "picomatch": "^4.0.2" + }, + "peerDependencies": { + "typescript": ">=4.0.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "license": "MIT" + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/well-known-symbols": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", + "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=6" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/write-file-atomic": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-6.0.0.tgz", + "integrity": "sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", + "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/pkgs/by-name/ma/markdownlint-cli2/package.nix b/pkgs/by-name/ma/markdownlint-cli2/package.nix index 65c38b5ec9d9..3c4bbda2e511 100644 --- a/pkgs/by-name/ma/markdownlint-cli2/package.nix +++ b/pkgs/by-name/ma/markdownlint-cli2/package.nix @@ -1,57 +1,49 @@ { lib, - stdenvNoCC, - fetchurl, - makeWrapper, + buildNpmPackage, + fetchFromGitHub, markdownlint-cli2, - nodejs, + nix-update-script, runCommand, - zstd, }: -stdenvNoCC.mkDerivation (finalAttrs: { +buildNpmPackage rec { pname = "markdownlint-cli2"; - version = "0.18.1"; + version = "0.20.0"; - # upstream is not interested in including package-lock.json in the source - # https://github.com/DavidAnson/markdownlint-cli2/issues/198#issuecomment-1690529976 - # see also https://github.com/DavidAnson/markdownlint-cli2/issues/186 - # so use the tarball from the archlinux mirror - src = fetchurl { - url = "https://us.mirrors.cicku.me/archlinux/extra/os/x86_64/markdownlint-cli2-${finalAttrs.version}-1-any.pkg.tar.zst"; - hash = "sha256-M7qmhRDJGm2MhgS2oMfRrkLAst1Ye/rPCwP78UBbyyY="; + src = fetchFromGitHub { + owner = "DavidAnson"; + repo = "markdownlint-cli2"; + tag = "v${version}"; + hash = "sha256-wZfLTk7F9HZaRFvYEo5rT+k/ivNk0fU+p844LMO06ek="; }; - nativeBuildInputs = [ - makeWrapper - zstd - ]; + npmDepsHash = "sha256-tWvweCpzopItgfhpiBHUcpBvrJYCiq588WXzF9hvFfs="; - dontBuild = true; - - installPhase = '' - runHook preInstall - - mkdir -p $out/bin - cp -r lib share $out - makeWrapper "${lib.getExe nodejs}" "$out/bin/markdownlint-cli2" \ - --add-flags "$out/lib/node_modules/markdownlint-cli2/markdownlint-cli2-bin.mjs" - - runHook postInstall + postPatch = '' + rm -f .npmrc + ln -s ${./package-lock.json} package-lock.json ''; - passthru.tests = { - smoke = runCommand "${finalAttrs.pname}-test" { nativeBuildInputs = [ markdownlint-cli2 ]; } '' - markdownlint-cli2 ${markdownlint-cli2}/share/doc/markdownlint-cli2/README.md > $out - ''; + dontNpmBuild = true; + + passthru = { + tests = { + smoke = runCommand "${pname}-test" { nativeBuildInputs = [ markdownlint-cli2 ]; } '' + markdownlint-cli2 ${markdownlint-cli2}/lib/node_modules/markdownlint-cli2/CHANGELOG.md > $out + ''; + }; + updateScript = nix-update-script { + extraArgs = [ "--generate-lockfile" ]; + }; }; meta = { - changelog = "https://github.com/DavidAnson/markdownlint-cli2/blob/v${finalAttrs.version}/CHANGELOG.md"; + changelog = "https://github.com/DavidAnson/markdownlint-cli2/blob/v${version}/CHANGELOG.md"; description = "Fast, flexible, configuration-based command-line interface for linting Markdown/CommonMark files with the markdownlint library"; homepage = "https://github.com/DavidAnson/markdownlint-cli2"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ natsukium ]; mainProgram = "markdownlint-cli2"; }; -}) +} From 51dbb7b79ae60ab3e25fbe62064d5a21c390593a Mon Sep 17 00:00:00 2001 From: Anthony ROUSSEL Date: Thu, 15 Jan 2026 19:42:50 +0100 Subject: [PATCH 043/396] markdownlint-cli2: add anthonyroussel to maintainers --- pkgs/by-name/ma/markdownlint-cli2/package.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ma/markdownlint-cli2/package.nix b/pkgs/by-name/ma/markdownlint-cli2/package.nix index 3c4bbda2e511..8ff98716372c 100644 --- a/pkgs/by-name/ma/markdownlint-cli2/package.nix +++ b/pkgs/by-name/ma/markdownlint-cli2/package.nix @@ -43,7 +43,10 @@ buildNpmPackage rec { description = "Fast, flexible, configuration-based command-line interface for linting Markdown/CommonMark files with the markdownlint library"; homepage = "https://github.com/DavidAnson/markdownlint-cli2"; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ natsukium ]; + maintainers = with lib.maintainers; [ + anthonyroussel + natsukium + ]; mainProgram = "markdownlint-cli2"; }; } From 1b3db2fe1f872abc5ef1d1a87ca496f9cc99794d Mon Sep 17 00:00:00 2001 From: TomaSajt <62384384+TomaSajt@users.noreply.github.com> Date: Sun, 11 Jan 2026 03:35:29 +0100 Subject: [PATCH 044/396] treewide: migrate my python packages to use finalAttrs --- pkgs/by-name/gr/gramps/package.nix | 8 ++++---- pkgs/by-name/ma/makejinja/package.nix | 8 ++++---- pkgs/by-name/mo/mokuro/package.nix | 8 ++++---- pkgs/by-name/po/portablemc/package.nix | 8 ++++---- pkgs/by-name/py/pyxel/package.nix | 8 ++++---- pkgs/by-name/so/sourcery/package.nix | 6 +++--- pkgs/by-name/vo/voicevox-engine/package.nix | 16 ++++++++-------- .../python-modules/arelle/default.nix | 8 ++++---- .../python-modules/biom-format/default.nix | 6 +++--- .../python-modules/catppuccin/default.nix | 11 +++++++---- .../python-modules/cmdstanpy/default.nix | 10 +++++----- pkgs/development/python-modules/dash/default.nix | 10 +++++----- .../python-modules/dep-logic/default.nix | 8 ++++---- .../python-modules/glymur/default.nix | 8 ++++---- .../development/python-modules/gmpy2/default.nix | 8 ++++---- .../development/python-modules/islpy/default.nix | 8 ++++---- .../python-modules/kanalizer/default.nix | 12 ++++++------ .../development/python-modules/loopy/default.nix | 8 ++++---- .../python-modules/materialyoucolor/default.nix | 6 +++--- .../python-modules/nutils-poly/default.nix | 8 ++++---- pkgs/development/python-modules/phe/default.nix | 6 +++--- .../python-modules/prophet/default.nix | 10 +++++----- pkgs/development/python-modules/py65/default.nix | 8 ++++---- .../python-modules/pyopenjtalk/default.nix | 8 ++++---- .../python-modules/pytest-spec/default.nix | 8 ++++---- .../python-modules/python-escpos/default.nix | 10 +++++----- .../python-modules/scikit-bio/default.nix | 8 ++++---- .../setuptools-gettext/default.nix | 8 ++++---- .../python-modules/sphinx-autodoc2/default.nix | 10 +++++----- .../python-modules/torchsummary/default.nix | 6 +++--- 30 files changed, 129 insertions(+), 126 deletions(-) diff --git a/pkgs/by-name/gr/gramps/package.nix b/pkgs/by-name/gr/gramps/package.nix index 590c54b9e41f..290f80bfd269 100644 --- a/pkgs/by-name/gr/gramps/package.nix +++ b/pkgs/by-name/gr/gramps/package.nix @@ -22,7 +22,7 @@ ghostscript, }: -python3Packages.buildPythonApplication rec { +python3Packages.buildPythonApplication (finalAttrs: { version = "6.0.6"; pname = "gramps"; pyproject = true; @@ -30,7 +30,7 @@ python3Packages.buildPythonApplication rec { src = fetchFromGitHub { owner = "gramps-project"; repo = "gramps"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-+sWO+c7haKXH42JVT6Zpz70cHdGC/TPgBUMSD+0+/JI="; }; @@ -113,7 +113,7 @@ python3Packages.buildPythonApplication rec { pinpox tomasajt ]; - changelog = "https://github.com/gramps-project/gramps/blob/${src.tag}/ChangeLog"; + changelog = "https://github.com/gramps-project/gramps/blob/${finalAttrs.src.rev}/ChangeLog"; longDescription = '' Every person has their own story but they are also part of a collective family history. Gramps gives you the ability to record the many details of @@ -123,4 +123,4 @@ python3Packages.buildPythonApplication rec { ''; license = lib.licenses.gpl2Plus; }; -} +}) diff --git a/pkgs/by-name/ma/makejinja/package.nix b/pkgs/by-name/ma/makejinja/package.nix index 22064b74b2ab..2cbf26937e78 100644 --- a/pkgs/by-name/ma/makejinja/package.nix +++ b/pkgs/by-name/ma/makejinja/package.nix @@ -4,7 +4,7 @@ fetchFromGitHub, }: -python3Packages.buildPythonApplication rec { +python3Packages.buildPythonApplication (finalAttrs: { pname = "makejinja"; version = "2.8.2"; pyproject = true; @@ -12,7 +12,7 @@ python3Packages.buildPythonApplication rec { src = fetchFromGitHub { owner = "mirkolenz"; repo = "makejinja"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-TH4pgohh6yIgsPtsHnYSUr17Apk8C02KD+8sNO5GOf8="; }; @@ -46,6 +46,6 @@ python3Packages.buildPythonApplication rec { mirkolenz ]; platforms = lib.platforms.darwin ++ lib.platforms.linux; - changelog = "https://github.com/mirkolenz/makejinja/blob/${src.tag}/CHANGELOG.md"; + changelog = "https://github.com/mirkolenz/makejinja/blob/${finalAttrs.src.rev}/CHANGELOG.md"; }; -} +}) diff --git a/pkgs/by-name/mo/mokuro/package.nix b/pkgs/by-name/mo/mokuro/package.nix index 139f1ad7e06f..9d996817449e 100644 --- a/pkgs/by-name/mo/mokuro/package.nix +++ b/pkgs/by-name/mo/mokuro/package.nix @@ -4,7 +4,7 @@ fetchFromGitHub, }: -python3Packages.buildPythonApplication rec { +python3Packages.buildPythonApplication (finalAttrs: { pname = "mokuro"; version = "0.2.2"; pyproject = true; @@ -12,7 +12,7 @@ python3Packages.buildPythonApplication rec { src = fetchFromGitHub { owner = "kha-white"; repo = "mokuro"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-cdbkculYPPWCSqBufpgt4EU3ne6KU2Dxk0xsvkdMZHA="; fetchSubmodules = true; }; @@ -43,11 +43,11 @@ python3Packages.buildPythonApplication rec { doCheck = false; meta = { - changelog = "https://github.com/kha-white/mokuro/releases/tag/v${version}"; + changelog = "https://github.com/kha-white/mokuro/releases/tag/${finalAttrs.src.tag}"; description = "Read Japanese manga inside browser with selectable text"; homepage = "https://github.com/kha-white/mokuro"; license = lib.licenses.gpl3Only; mainProgram = "mokuro"; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/by-name/po/portablemc/package.nix b/pkgs/by-name/po/portablemc/package.nix index 6f94c7abc528..d2c8d33fc4cf 100644 --- a/pkgs/by-name/po/portablemc/package.nix +++ b/pkgs/by-name/po/portablemc/package.nix @@ -45,7 +45,7 @@ let ] ++ lib.optional textToSpeechSupport flite; in -python3Packages.buildPythonApplication rec { +python3Packages.buildPythonApplication (finalAttrs: { pname = "portablemc"; version = "4.4.1"; pyproject = true; @@ -55,7 +55,7 @@ python3Packages.buildPythonApplication rec { src = fetchFromGitHub { owner = "mindstorm38"; repo = "portablemc"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-KE1qf6aIcDjwKzrdKDUmriWfAt+vuriew6ixHKm0xs8="; }; @@ -93,9 +93,9 @@ python3Packages.buildPythonApplication rec { Including fast and easy installation of common mod loaders such as Fabric, Forge, NeoForge and Quilt. This launcher is compatible with the standard Minecraft directories. ''; - changelog = "https://github.com/mindstorm38/portablemc/releases/tag/v${version}"; + changelog = "https://github.com/mindstorm38/portablemc/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.gpl3Only; mainProgram = "portablemc"; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/by-name/py/pyxel/package.nix b/pkgs/by-name/py/pyxel/package.nix index 507d91963156..3770dd9aea92 100644 --- a/pkgs/by-name/py/pyxel/package.nix +++ b/pkgs/by-name/py/pyxel/package.nix @@ -6,7 +6,7 @@ SDL2, }: -python3.pkgs.buildPythonApplication rec { +python3.pkgs.buildPythonApplication (finalAttrs: { pname = "pyxel"; version = "2.3.18"; pyproject = true; @@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec { src = fetchFromGitHub { owner = "kitao"; repo = "pyxel"; - rev = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-pw1ZDmQ7zGwfM98jjym34RbLmUbjuuUnCoPGczxdai8="; }; @@ -52,7 +52,7 @@ python3.pkgs.buildPythonApplication rec { ]; meta = { - changelog = "https://github.com/kitao/pyxel/tree/${src.rev}/CHANGELOG.md"; + changelog = "https://github.com/kitao/pyxel/tree/${finalAttrs.src.rev}/CHANGELOG.md"; description = "Retro game engine for Python"; homepage = "https://github.com/kitao/pyxel"; license = lib.licenses.mit; @@ -60,4 +60,4 @@ python3.pkgs.buildPythonApplication rec { maintainers = with lib.maintainers; [ tomasajt ]; platforms = lib.platforms.linux ++ lib.platforms.darwin; }; -} +}) diff --git a/pkgs/by-name/so/sourcery/package.nix b/pkgs/by-name/so/sourcery/package.nix index 45348e09a4af..0d6a4894a706 100644 --- a/pkgs/by-name/so/sourcery/package.nix +++ b/pkgs/by-name/so/sourcery/package.nix @@ -22,13 +22,13 @@ let inherit (stdenv.hostPlatform) system; platformInfo = platformInfos.${system} or (throw "Unsupported platform ${system}"); in -python3Packages.buildPythonApplication rec { +python3Packages.buildPythonApplication (finalAttrs: { pname = "sourcery"; version = "1.37.0"; format = "wheel"; src = fetchPypi { - inherit pname version; + inherit (finalAttrs) pname version; format = "wheel"; inherit (platformInfo) platform hash; }; @@ -50,4 +50,4 @@ python3Packages.buildPythonApplication rec { "x86_64-darwin" ]; }; -} +}) diff --git a/pkgs/by-name/vo/voicevox-engine/package.nix b/pkgs/by-name/vo/voicevox-engine/package.nix index f15ff0a8bc8e..7934fee85c7d 100644 --- a/pkgs/by-name/vo/voicevox-engine/package.nix +++ b/pkgs/by-name/vo/voicevox-engine/package.nix @@ -5,7 +5,7 @@ voicevox-core, }: -python3Packages.buildPythonApplication rec { +python3Packages.buildPythonApplication (finalAttrs: { pname = "voicevox-engine"; version = "0.25.1"; pyproject = true; @@ -13,7 +13,7 @@ python3Packages.buildPythonApplication rec { src = fetchFromGitHub { owner = "VOICEVOX"; repo = "voicevox_engine"; - tag = version; + tag = finalAttrs.version; hash = "sha256-4pZs5f6Fe4kHIKcyww1eq9uRTf7rk5KAr/00H8aH9qA="; }; @@ -27,7 +27,7 @@ python3Packages.buildPythonApplication rec { ]; dependencies = [ - passthru.pyopenjtalk + finalAttrs.passthru.pyopenjtalk ] ++ (with python3Packages; [ fastapi @@ -62,7 +62,7 @@ python3Packages.buildPythonApplication rec { mv resources/character_info test_character_info # populate the `character_info` directory with the actual model metadata instead of the demo metadata - cp -r --no-preserve=all ${passthru.resources}/character_info resources/character_info + cp -r --no-preserve=all ${finalAttrs.passthru.resources}/character_info resources/character_info # the `character_info` directory copied from `resources` doesn't exactly have the expected format, # so we transform them to be acceptable by `voicevox-engine` @@ -99,10 +99,10 @@ python3Packages.buildPythonApplication rec { passthru = { resources = fetchFromGitHub { - name = "voicevox-resource-${version}"; # this contains ${version} to invalidate the hash upon updating the package + name = "voicevox-resource-${finalAttrs.version}"; # this contains ${version} to invalidate the hash upon updating the package owner = "VOICEVOX"; repo = "voicevox_resource"; - tag = version; + tag = finalAttrs.version; hash = "sha256-YaUVlZnpxu/IhLrp1XdcxDyus7DRhyzu4VKfabTsPUY="; }; @@ -110,7 +110,7 @@ python3Packages.buildPythonApplication rec { }; meta = { - changelog = "https://github.com/VOICEVOX/voicevox_engine/releases/tag/${src.tag}"; + changelog = "https://github.com/VOICEVOX/voicevox_engine/releases/tag/${finalAttrs.src.tag}"; description = "Engine for the VOICEVOX speech synthesis software"; homepage = "https://github.com/VOICEVOX/voicevox_engine"; license = lib.licenses.lgpl3Only; @@ -121,4 +121,4 @@ python3Packages.buildPythonApplication rec { ]; platforms = lib.platforms.linux ++ lib.platforms.darwin; }; -} +}) diff --git a/pkgs/development/python-modules/arelle/default.nix b/pkgs/development/python-modules/arelle/default.nix index 38991163e868..8be34e9c8af6 100644 --- a/pkgs/development/python-modules/arelle/default.nix +++ b/pkgs/development/python-modules/arelle/default.nix @@ -50,7 +50,7 @@ boto3, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "arelle${lib.optionalString (!gui) "-headless"}"; version = "2.38.4"; pyproject = true; @@ -58,7 +58,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "Arelle"; repo = "Arelle"; - tag = version; + tag = finalAttrs.version; hash = "sha256-ngFhY6yngr2OVQ6gsdpk5UAhzIpIrwiw+S+HK3oqfec="; }; @@ -145,7 +145,7 @@ buildPythonPackage rec { pytestCheckHook boto3 ] - ++ lib.concatAttrValues optional-dependencies; + ++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies; disabledTestPaths = [ "tests/integration_tests" @@ -171,4 +171,4 @@ buildPythonPackage rec { roberth ]; }; -} +}) diff --git a/pkgs/development/python-modules/biom-format/default.nix b/pkgs/development/python-modules/biom-format/default.nix index ed8986c1ef74..cb608eeb1d95 100644 --- a/pkgs/development/python-modules/biom-format/default.nix +++ b/pkgs/development/python-modules/biom-format/default.nix @@ -12,7 +12,7 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "biom-format"; version = "2.1.17"; pyproject = true; @@ -20,7 +20,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "biocore"; repo = "biom-format"; - tag = version; + tag = finalAttrs.version; hash = "sha256-FjIC21LoqltixBstbbANByjTNxVm/3YCxdWaD9KbOQ0="; }; @@ -58,4 +58,4 @@ buildPythonPackage rec { license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/catppuccin/default.nix b/pkgs/development/python-modules/catppuccin/default.nix index 2e588e3bbb8a..87a1e7b6f592 100644 --- a/pkgs/development/python-modules/catppuccin/default.nix +++ b/pkgs/development/python-modules/catppuccin/default.nix @@ -9,7 +9,7 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "catppuccin"; version = "2.5.0"; @@ -18,7 +18,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "catppuccin"; repo = "python"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-wumJ8kpr+C2pdw8jYf+IqYTdSB6Iy37yZqPKycYmOSs="; }; @@ -30,7 +30,10 @@ buildPythonPackage rec { rich = [ rich ]; }; - nativeCheckInputs = [ pytestCheckHook ] ++ lib.concatAttrValues optional-dependencies; + nativeCheckInputs = [ + pytestCheckHook + ] + ++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies; pythonImportsCheck = [ "catppuccin" ]; @@ -43,4 +46,4 @@ buildPythonPackage rec { ]; license = lib.licenses.mit; }; -} +}) diff --git a/pkgs/development/python-modules/cmdstanpy/default.nix b/pkgs/development/python-modules/cmdstanpy/default.nix index 2ac12e0e0196..feda60658931 100644 --- a/pkgs/development/python-modules/cmdstanpy/default.nix +++ b/pkgs/development/python-modules/cmdstanpy/default.nix @@ -14,7 +14,7 @@ stdenv, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "cmdstanpy"; version = "1.3.0"; pyproject = true; @@ -22,7 +22,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "stan-dev"; repo = "cmdstanpy"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-XVviGdJ41mcjCscL3jvcpHi6zMREHsuShGHpnMQX6V8="; }; @@ -58,7 +58,7 @@ buildPythonPackage rec { export HOME=$(mktemp -d) ''; - nativeCheckInputs = [ pytestCheckHook ] ++ optional-dependencies.all; + nativeCheckInputs = [ pytestCheckHook ] ++ finalAttrs.passthru.optional-dependencies.all; disabledTestPaths = [ # No need to test these when using Nix @@ -84,8 +84,8 @@ buildPythonPackage rec { meta = { homepage = "https://github.com/stan-dev/cmdstanpy"; description = "Lightweight interface to Stan for Python users"; - changelog = "https://github.com/stan-dev/cmdstanpy/releases/tag/v${version}"; + changelog = "https://github.com/stan-dev/cmdstanpy/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/dash/default.nix b/pkgs/development/python-modules/dash/default.nix index 44bc845ce39a..cdf1c244e160 100644 --- a/pkgs/development/python-modules/dash/default.nix +++ b/pkgs/development/python-modules/dash/default.nix @@ -37,7 +37,7 @@ pyyaml, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "dash"; version = "3.3.0"; pyproject = true; @@ -45,7 +45,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "plotly"; repo = "dash"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-8Vt109x4T+DhBXfQf7MKoexmWFc23uuU0Nn3Ia/Xm5I="; }; @@ -55,7 +55,7 @@ buildPythonPackage rec { ]; yarnOfflineCache = fetchYarnDeps { - yarnLock = "${src}/@plotly/dash-jupyterlab/yarn.lock"; + yarnLock = "${finalAttrs.src}/@plotly/dash-jupyterlab/yarn.lock"; hash = "sha256-Nvm9BS55q/HW9ArpHD01F5Rmx8PLS3yqaz1yDK8Sg68="; }; @@ -134,7 +134,7 @@ buildPythonPackage rec { pythonImportsCheck = [ "dash" ]; meta = { - changelog = "https://github.com/plotly/dash/blob/${src.tag}/CHANGELOG.md"; + changelog = "https://github.com/plotly/dash/blob/${finalAttrs.src.rev}/CHANGELOG.md"; description = "Python framework for building analytical web applications"; homepage = "https://dash.plot.ly/"; license = lib.licenses.mit; @@ -143,4 +143,4 @@ buildPythonPackage rec { tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/dep-logic/default.nix b/pkgs/development/python-modules/dep-logic/default.nix index 9be6c5355512..19d26cc62795 100644 --- a/pkgs/development/python-modules/dep-logic/default.nix +++ b/pkgs/development/python-modules/dep-logic/default.nix @@ -7,7 +7,7 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "dep-logic"; version = "0.5.2"; pyproject = true; @@ -15,7 +15,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "pdm-project"; repo = "dep-logic"; - tag = version; + tag = finalAttrs.version; hash = "sha256-BjqPtfYsHSDQoaYs+hB0r/mRuONqBHOb6goi1dxkFWo="; }; @@ -28,7 +28,7 @@ buildPythonPackage rec { pythonImportsCheck = [ "dep_logic" ]; meta = { - changelog = "https://github.com/pdm-project/dep-logic/releases/tag/${src.tag}"; + changelog = "https://github.com/pdm-project/dep-logic/releases/tag/${finalAttrs.src.tag}"; description = "Python dependency specifications supporting logical operations"; homepage = "https://github.com/pdm-project/dep-logic"; license = lib.licenses.asl20; @@ -37,4 +37,4 @@ buildPythonPackage rec { misilelab ]; }; -} +}) diff --git a/pkgs/development/python-modules/glymur/default.nix b/pkgs/development/python-modules/glymur/default.nix index f4d69e81d46d..10dac7a8050a 100644 --- a/pkgs/development/python-modules/glymur/default.nix +++ b/pkgs/development/python-modules/glymur/default.nix @@ -15,7 +15,7 @@ replaceVars, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "glymur"; version = "0.13.6"; pyproject = true; @@ -23,7 +23,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "quintusdias"; repo = "glymur"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-tIvDhlFPpDxC3CgBDT0RN9MM8ycY+J1hjcLXzx14Zhs="; }; @@ -74,8 +74,8 @@ buildPythonPackage rec { meta = { description = "Tools for accessing JPEG2000 files"; homepage = "https://github.com/quintusdias/glymur"; - changelog = "https://github.com/quintusdias/glymur/blob/${src.rev}/CHANGES.txt"; + changelog = "https://github.com/quintusdias/glymur/blob/${finalAttrs.src.rev}/CHANGES.txt"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/gmpy2/default.nix b/pkgs/development/python-modules/gmpy2/default.nix index 33712b519afc..bf1e2ee92f78 100644 --- a/pkgs/development/python-modules/gmpy2/default.nix +++ b/pkgs/development/python-modules/gmpy2/default.nix @@ -17,7 +17,7 @@ sage, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "gmpy2"; version = "2.2.1"; pyproject = true; @@ -27,7 +27,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "aleaxit"; repo = "gmpy"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-wrMN3kqLnjItoybKYeo4Pp2M0uma7Kg0JEQM8lr6OI0="; }; @@ -66,10 +66,10 @@ buildPythonPackage rec { }; meta = { - changelog = "https://github.com/aleaxit/gmpy/blob/${src.rev}/docs/history.rst"; + changelog = "https://github.com/aleaxit/gmpy/blob/${finalAttrs.src.rev}/docs/history.rst"; description = "Interface to GMP, MPFR, and MPC for Python 3.7+"; homepage = "https://github.com/aleaxit/gmpy/"; license = lib.licenses.lgpl3Plus; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/islpy/default.nix b/pkgs/development/python-modules/islpy/default.nix index c748d527a554..2ab11955dceb 100644 --- a/pkgs/development/python-modules/islpy/default.nix +++ b/pkgs/development/python-modules/islpy/default.nix @@ -18,7 +18,7 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "islpy"; version = "2025.2.5"; pyproject = true; @@ -26,7 +26,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "inducer"; repo = "islpy"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-E3DRj1WpMr79BVFUeJftp1JZafP2+Zn6yyf9ClfdWqI="; }; @@ -64,8 +64,8 @@ buildPythonPackage rec { meta = { description = "Python wrapper around isl, an integer set library"; homepage = "https://github.com/inducer/islpy"; - changelog = "https://github.com/inducer/islpy/releases/tag/v${version}"; + changelog = "https://github.com/inducer/islpy/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/kanalizer/default.nix b/pkgs/development/python-modules/kanalizer/default.nix index 06965e2120ab..5c2a696f3b1c 100644 --- a/pkgs/development/python-modules/kanalizer/default.nix +++ b/pkgs/development/python-modules/kanalizer/default.nix @@ -7,7 +7,7 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "kanalizer"; version = "0.1.1"; pyproject = true; @@ -15,11 +15,11 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "VOICEVOX"; repo = "kanalizer"; - tag = version; + tag = finalAttrs.version; hash = "sha256-6GxTVlc0Ec80LYQoGgLVRVoi05u6vwt5WGkd4UYX2Lg="; }; - sourceRoot = "${src.name}/infer"; + sourceRoot = "${finalAttrs.src.name}/infer"; model = let @@ -32,13 +32,13 @@ buildPythonPackage rec { prePatch = '' substituteInPlace Cargo.toml \ - --replace-fail 'version = "0.0.0"' 'version = "${version}"' + --replace-fail 'version = "0.0.0"' 'version = "${finalAttrs.version}"' ln -s "$model" crates/kanalizer-rs/models/model-c2k.safetensors ''; cargoDeps = rustPlatform.fetchCargoVendor { - inherit + inherit (finalAttrs) pname version src @@ -68,4 +68,4 @@ buildPythonPackage rec { binaryNativeCode # the model file ]; }; -} +}) diff --git a/pkgs/development/python-modules/loopy/default.nix b/pkgs/development/python-modules/loopy/default.nix index 0714ff2f3f24..e8b93f150d03 100644 --- a/pkgs/development/python-modules/loopy/default.nix +++ b/pkgs/development/python-modules/loopy/default.nix @@ -27,7 +27,7 @@ ply, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "loopy"; version = "2025.2"; pyproject = true; @@ -35,7 +35,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "inducer"; repo = "loopy"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-VgsUOMCIg61mYNDMcGpMs5I1CkobhUFVjoQFdD8Vchs="; fetchSubmodules = true; # submodule at `loopy/target/c/compyte` }; @@ -76,8 +76,8 @@ buildPythonPackage rec { meta = { description = "Code generator for array-based code on CPUs and GPUs"; homepage = "https://github.com/inducer/loopy"; - changelog = "https://github.com/inducer/loopy/releases/tag/${src.tag}"; + changelog = "https://github.com/inducer/loopy/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/materialyoucolor/default.nix b/pkgs/development/python-modules/materialyoucolor/default.nix index 0e2fea505303..77ce6e11ab5c 100644 --- a/pkgs/development/python-modules/materialyoucolor/default.nix +++ b/pkgs/development/python-modules/materialyoucolor/default.nix @@ -17,14 +17,14 @@ let hash = "sha256-shGNdgOOydgGBtl/JCbTJ0AYgl+2xWvCgHBL+bEoTaE="; }; in -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "materialyoucolor"; version = "2.0.10"; pyproject = true; # PyPI sources contain additional vendored sources src = fetchPypi { - inherit pname version; + inherit (finalAttrs) pname version; hash = "sha256-MbTUB7mk/UtUswVZsNAxP21tofnRm3VUbtZdpSZx6nY="; }; @@ -56,4 +56,4 @@ buildPythonPackage rec { license = lib.licenses.mit; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/nutils-poly/default.nix b/pkgs/development/python-modules/nutils-poly/default.nix index f1ea044e2f85..839fdc90fec8 100644 --- a/pkgs/development/python-modules/nutils-poly/default.nix +++ b/pkgs/development/python-modules/nutils-poly/default.nix @@ -9,7 +9,7 @@ unittestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "nutils-poly"; version = "1.0.1"; pyproject = true; @@ -17,12 +17,12 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "nutils"; repo = "poly-py"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-dxFv4Az3uz6Du5dk5KZJ+unVbt3aZjxXliAQZhmBWDM="; }; cargoDeps = rustPlatform.fetchCargoVendor { - inherit pname version src; + inherit (finalAttrs) pname version src; hash = "sha256-3UBQJfMPVo37V7mJnN9loF1+vKh3JxFJWgynwsOnAg4="; }; @@ -44,4 +44,4 @@ buildPythonPackage rec { license = lib.licenses.mit; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/phe/default.nix b/pkgs/development/python-modules/phe/default.nix index aea25b378ea3..5c3e4e2a345d 100644 --- a/pkgs/development/python-modules/phe/default.nix +++ b/pkgs/development/python-modules/phe/default.nix @@ -11,7 +11,7 @@ numpy, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "phe"; version = "1.5.1"; pyproject = true; @@ -22,7 +22,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "data61"; repo = "python-paillier"; - tag = version; + tag = finalAttrs.version; hash = "sha256-P//4ZL4+2zcB5sWvujs2N0CHFz+EBLERWrPGLLHj6CY="; }; @@ -45,4 +45,4 @@ buildPythonPackage rec { license = lib.licenses.gpl3; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/prophet/default.nix b/pkgs/development/python-modules/prophet/default.nix index 269dfb8a122f..e557f03774ed 100644 --- a/pkgs/development/python-modules/prophet/default.nix +++ b/pkgs/development/python-modules/prophet/default.nix @@ -18,7 +18,7 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "prophet"; version = "1.2.1"; pyproject = true; @@ -26,11 +26,11 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "facebook"; repo = "prophet"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-rG21Q4V0XQjReIHd7vV/aFOUvnLEw/dm8AobXRDUfuA="; }; - sourceRoot = "${src.name}/python"; + sourceRoot = "${finalAttrs.src.name}/python"; env.PROPHET_REPACKAGE_CMDSTAN = "false"; @@ -63,10 +63,10 @@ buildPythonPackage rec { pythonImportsCheck = [ "prophet" ]; meta = { - changelog = "https://github.com/facebook/prophet/releases/tag/${src.tag}"; + changelog = "https://github.com/facebook/prophet/releases/tag/${finalAttrs.src.tag}"; description = "Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth"; homepage = "https://facebook.github.io/prophet/"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/py65/default.nix b/pkgs/development/python-modules/py65/default.nix index a6dc3e89fbb8..b6da376554b1 100644 --- a/pkgs/development/python-modules/py65/default.nix +++ b/pkgs/development/python-modules/py65/default.nix @@ -6,7 +6,7 @@ unittestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "py65"; version = "1.2.0"; pyproject = true; @@ -14,7 +14,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "mnaberez"; repo = "py65"; - tag = version; + tag = finalAttrs.version; hash = "sha256-BMX+sMPx/YBFA4NFkaY0rl0EPicGHgb6xXVvLEIdllA="; }; @@ -31,11 +31,11 @@ buildPythonPackage rec { debugger. Py65Mon provides a command line with many convenient commands for interacting with the simulated 6502-based system. ''; - changelog = "https://github.com/mnaberez/py65/blob/${src.rev}/CHANGES.txt"; + changelog = "https://github.com/mnaberez/py65/blob/${finalAttrs.src.rev}/CHANGES.txt"; license = lib.licenses.bsd3; mainProgram = "py65mon"; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/pyopenjtalk/default.nix b/pkgs/development/python-modules/pyopenjtalk/default.nix index efc59b4b952e..a6397785966b 100644 --- a/pkgs/development/python-modules/pyopenjtalk/default.nix +++ b/pkgs/development/python-modules/pyopenjtalk/default.nix @@ -24,7 +24,7 @@ let hash = "sha256-+6cHKujNEzmJbpN9Uan6kZKsPdwxRRzT3ZazDnCNi3s="; }; in -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "pyopenjtalk"; version = "0.4.1"; pyproject = true; @@ -32,7 +32,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "r9y9"; repo = "pyopenjtalk"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-f0JNiMCeKpTY+jH3/9LuCkX2DRb9U8sN0SezT6OTm/E="; fetchSubmodules = true; }; @@ -70,10 +70,10 @@ buildPythonPackage rec { pythonImportsCheck = [ "pyopenjtalk" ]; meta = { - changelog = "https://github.com/r9y9/pyopenjtalk/releases/tag/${src.tag}"; + changelog = "https://github.com/r9y9/pyopenjtalk/releases/tag/${finalAttrs.src.tag}"; description = "Python wrapper for OpenJTalk"; homepage = "https://github.com/r9y9/pyopenjtalk"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/pytest-spec/default.nix b/pkgs/development/python-modules/pytest-spec/default.nix index 950449d1c652..6167d0d40974 100644 --- a/pkgs/development/python-modules/pytest-spec/default.nix +++ b/pkgs/development/python-modules/pytest-spec/default.nix @@ -9,7 +9,7 @@ pytest-describe, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "pytest-spec"; version = "5.2.0"; pyproject = true; @@ -17,7 +17,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "pchomik"; repo = "pytest-spec"; - tag = version; + tag = finalAttrs.version; hash = "sha256-nKBzQrosgTKHoID43u6G31fphsDyCVZhsNQuYIHiLfA="; }; @@ -36,10 +36,10 @@ buildPythonPackage rec { pythonImportsCheck = [ "pytest_spec" ]; meta = { - changelog = "https://github.com/pchomik/pytest-spec/blob/${src.tag}/CHANGES.txt"; + changelog = "https://github.com/pchomik/pytest-spec/blob/${finalAttrs.src.rev}/CHANGES.txt"; description = "Pytest plugin to display test execution output like a SPECIFICATION"; homepage = "https://github.com/pchomik/pytest-spec"; license = lib.licenses.gpl2Plus; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/python-escpos/default.nix b/pkgs/development/python-modules/python-escpos/default.nix index 257870f5b6aa..a22e446e8f95 100644 --- a/pkgs/development/python-modules/python-escpos/default.nix +++ b/pkgs/development/python-modules/python-escpos/default.nix @@ -28,7 +28,7 @@ hypothesis, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "python-escpos"; version = "3.1"; pyproject = true; @@ -36,7 +36,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "python-escpos"; repo = "python-escpos"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-f7qA1+8PwnXS526jjULEoyn0ejnvsneuWDt863p4J2g="; fetchSubmodules = true; }; @@ -85,16 +85,16 @@ buildPythonPackage rec { mock hypothesis ] - ++ optional-dependencies.all; + ++ finalAttrs.passthru.optional-dependencies.all; pythonImportsCheck = [ "escpos" ]; meta = { - changelog = "https://github.com/python-escpos/python-escpos/blob/${src.rev}/CHANGELOG.rst"; + changelog = "https://github.com/python-escpos/python-escpos/blob/${finalAttrs.src.rev}/CHANGELOG.rst"; description = "Python library to manipulate ESC/POS printers"; homepage = "https://python-escpos.readthedocs.io/"; license = lib.licenses.mit; mainProgram = "python-escpos"; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/scikit-bio/default.nix b/pkgs/development/python-modules/scikit-bio/default.nix index 151ae1f21f42..c8e1cba068b1 100644 --- a/pkgs/development/python-modules/scikit-bio/default.nix +++ b/pkgs/development/python-modules/scikit-bio/default.nix @@ -27,7 +27,7 @@ python, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "scikit-bio"; version = "0.7.0"; pyproject = true; @@ -35,7 +35,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "scikit-bio"; repo = "scikit-bio"; - tag = version; + tag = finalAttrs.version; hash = "sha256-M0P5DUAMlRTkaIPbxSvO99N3y5eTrkg4NMlkIpGr4/g="; }; @@ -76,8 +76,8 @@ buildPythonPackage rec { description = "Data structures, algorithms and educational resources for bioinformatics"; homepage = "http://scikit-bio.org/"; downloadPage = "https://github.com/scikit-bio/scikit-bio"; - changelog = "https://github.com/scikit-bio/scikit-bio/blob/${version}/CHANGELOG.md"; + changelog = "https://github.com/scikit-bio/scikit-bio/blob/${finalAttrs.src.rev}/CHANGELOG.md"; license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/setuptools-gettext/default.nix b/pkgs/development/python-modules/setuptools-gettext/default.nix index 14af007c4045..40b7d7b00c52 100644 --- a/pkgs/development/python-modules/setuptools-gettext/default.nix +++ b/pkgs/development/python-modules/setuptools-gettext/default.nix @@ -7,7 +7,7 @@ setuptools, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "setuptools-gettext"; version = "0.1.16"; pyproject = true; @@ -15,7 +15,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "breezy-team"; repo = "setuptools-gettext"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-N59Hx6CyOzAin8KcMTAD++HFLDdJnJbql/U3fO2F3DU="; }; @@ -31,10 +31,10 @@ buildPythonPackage rec { ]; meta = { - changelog = "https://github.com/breezy-team/setuptools-gettext/releases/tag/${src.tag}"; + changelog = "https://github.com/breezy-team/setuptools-gettext/releases/tag/${finalAttrs.src.tag}"; description = "Setuptools plugin for building mo files"; homepage = "https://github.com/breezy-team/setuptools-gettext"; license = lib.licenses.gpl2Plus; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/sphinx-autodoc2/default.nix b/pkgs/development/python-modules/sphinx-autodoc2/default.nix index 05745a31b13e..a0cf4db57cab 100644 --- a/pkgs/development/python-modules/sphinx-autodoc2/default.nix +++ b/pkgs/development/python-modules/sphinx-autodoc2/default.nix @@ -16,7 +16,7 @@ defusedxml, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "sphinx-autodoc2"; version = "0.5.0"; pyproject = true; @@ -24,7 +24,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "sphinx-extensions2"; repo = "sphinx-autodoc2"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-Wu079THK1mHVilD2Fx9dIzuIOOYOXpo/EMxVczNutCI="; }; @@ -32,7 +32,7 @@ buildPythonPackage rec { # compatibility with astroid 4, see: https://github.com/sphinx-extensions2/sphinx-autodoc2/pull/93 (fetchDebianPatch { pname = "python-sphinx-autodoc2"; - inherit version; + inherit (finalAttrs) version; debianRevision = "9"; patch = "astroid-4.patch"; hash = "sha256-tRWDee30GSQ+AobCAHdtw65B6YyRpzn7kW5rzK7/QOk="; @@ -72,11 +72,11 @@ buildPythonPackage rec { pythonImportsCheck = [ "autodoc2" ]; meta = { - changelog = "https://github.com/sphinx-extensions2/sphinx-autodoc2/releases/tag/v${version}"; + changelog = "https://github.com/sphinx-extensions2/sphinx-autodoc2/releases/tag/${finalAttrs.src.tag}"; homepage = "https://github.com/sphinx-extensions2/sphinx-autodoc2"; description = "Sphinx extension that automatically generates API documentation for your Python packages"; license = lib.licenses.mit; mainProgram = "autodoc2"; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) diff --git a/pkgs/development/python-modules/torchsummary/default.nix b/pkgs/development/python-modules/torchsummary/default.nix index 8805e8fa2117..a3465370d5e2 100644 --- a/pkgs/development/python-modules/torchsummary/default.nix +++ b/pkgs/development/python-modules/torchsummary/default.nix @@ -6,13 +6,13 @@ torch, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "torchsummary"; version = "1.5.1"; pyproject = true; src = fetchPypi { - inherit pname version; + inherit (finalAttrs) pname version; hash = "sha256-mBv2ieIuDPf5XHRgAvIKJK0mqmudhhE0oUvGzpIjBZA="; }; @@ -31,4 +31,4 @@ buildPythonPackage rec { license = lib.licenses.mit; maintainers = with lib.maintainers; [ tomasajt ]; }; -} +}) From ce47cb425bb85f310ff1451d74d3cde510d21cab Mon Sep 17 00:00:00 2001 From: Maevi Date: Fri, 16 Jan 2026 19:04:49 +0100 Subject: [PATCH 045/396] rke2_1_35: init at 1.35.0+rke2r1 https://github.com/rancher/rke2/releases/tag/v1.35.0%2Brke2r1 --- .../cluster/rke2/1_35/images-versions.json | 138 ++++++++++++++++++ .../networking/cluster/rke2/1_35/versions.nix | 13 ++ .../networking/cluster/rke2/default.nix | 12 +- pkgs/top-level/all-packages.nix | 1 + 4 files changed, 163 insertions(+), 1 deletion(-) create mode 100644 pkgs/applications/networking/cluster/rke2/1_35/images-versions.json create mode 100644 pkgs/applications/networking/cluster/rke2/1_35/versions.nix diff --git a/pkgs/applications/networking/cluster/rke2/1_35/images-versions.json b/pkgs/applications/networking/cluster/rke2/1_35/images-versions.json new file mode 100644 index 000000000000..fdbf9cd88659 --- /dev/null +++ b/pkgs/applications/networking/cluster/rke2/1_35/images-versions.json @@ -0,0 +1,138 @@ +{ + "images-calico-linux-amd64-tar-gz": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-calico.linux-amd64.tar.gz", + "sha256": "d9184c1907c6a07328db80bc9787d9473874f99387997eb75712b3f109c28a95" + }, + "images-calico-linux-amd64-tar-zst": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-calico.linux-amd64.tar.zst", + "sha256": "3b0fab246141f52418b0e8944ad0edac46e512ae837a6846d6685bd2ca934562" + }, + "images-calico-linux-arm64-tar-gz": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-calico.linux-arm64.tar.gz", + "sha256": "9ffb3e4607f44d5dde2e5fd17e4c317fb2f232174cd9b4fc1b5979ec8f0f0fa8" + }, + "images-calico-linux-arm64-tar-zst": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-calico.linux-arm64.tar.zst", + "sha256": "c1531be737cb6dc2819f35e8e63d095b05db9dcd0698416a60b786a9e3d69bbf" + }, + "images-canal-linux-amd64-tar-gz": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-canal.linux-amd64.tar.gz", + "sha256": "dc6c2a3f22739fac02272372fc7eadb27809721ee921669203d46ec551fbb8a2" + }, + "images-canal-linux-amd64-tar-zst": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-canal.linux-amd64.tar.zst", + "sha256": "f039d8feabd264aa6a6d684560bd05e764e748292649736d436b28974b86668e" + }, + "images-canal-linux-arm64-tar-gz": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-canal.linux-arm64.tar.gz", + "sha256": "6560ef5589c30afe63195d23a27ffcf4492a2e5135bb715c4c7818cd625a244e" + }, + "images-canal-linux-arm64-tar-zst": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-canal.linux-arm64.tar.zst", + "sha256": "8085686ffb57b508198916cd8ebdaec2a90b1e2f1592caeb0c4a55ae1ab4d223" + }, + "images-cilium-linux-amd64-tar-gz": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-cilium.linux-amd64.tar.gz", + "sha256": "bf4fff99097f8bdf14d1ce51884e062140e311a08ad3661cd5455d966781d8ea" + }, + "images-cilium-linux-amd64-tar-zst": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-cilium.linux-amd64.tar.zst", + "sha256": "755338043246a0d167a16ff63ec53651ce9e837d39625d06bbbcd2c63004ec1c" + }, + "images-cilium-linux-arm64-tar-gz": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-cilium.linux-arm64.tar.gz", + "sha256": "f1b3dd87ee96aa022a73d535163bb066ae75b038188cd7937809e56d7896cd93" + }, + "images-cilium-linux-arm64-tar-zst": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-cilium.linux-arm64.tar.zst", + "sha256": "decc80c50fd887ec299ff9b5ec5e7853be71c49f337cd5bb806c377e9e6f75ce" + }, + "images-core-linux-amd64-tar-gz": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-core.linux-amd64.tar.gz", + "sha256": "0fcbac0cfe2b7df25a677686408da84f960f292573d29341779191a981a1cd58" + }, + "images-core-linux-amd64-tar-zst": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-core.linux-amd64.tar.zst", + "sha256": "4a715e8cc723a5b6b602b223c6609b1407ff837f6d31b203e23d2c53d9d7c85b" + }, + "images-core-linux-arm64-tar-gz": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-core.linux-arm64.tar.gz", + "sha256": "006b3603ca45d69897f47ac0e32b43eed3354a38fb3ed6d12b82f27c924f444d" + }, + "images-core-linux-arm64-tar-zst": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-core.linux-arm64.tar.zst", + "sha256": "f2ee745a844902404623a4e45f0ecbcb7753547e199c93f87b750a9c3b7d32ff" + }, + "images-flannel-linux-amd64-tar-gz": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-flannel.linux-amd64.tar.gz", + "sha256": "63751fc22b0e35c44224c0ff053d6606ec63b885d1f8bde659e931b3de17815e" + }, + "images-flannel-linux-amd64-tar-zst": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-flannel.linux-amd64.tar.zst", + "sha256": "1107c8a8c5aa90d5a8351340ac0a54862bd720f265f1b48742d55289d20c299f" + }, + "images-flannel-linux-arm64-tar-gz": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-flannel.linux-arm64.tar.gz", + "sha256": "337cdc528527e804e82cccdca4eb9d8a211b79b2a7839f280f285db1eabce22f" + }, + "images-flannel-linux-arm64-tar-zst": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-flannel.linux-arm64.tar.zst", + "sha256": "bbb4c7627e3d449284f20d79cf8392686fca7066043777092a455fabbaaf9ad7" + }, + "images-harvester-linux-amd64-tar-gz": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-harvester.linux-amd64.tar.gz", + "sha256": "add464ba1af538d9ac0e4a5b739ede0ec5601e0fb380a07b6695d69fd95fa166" + }, + "images-harvester-linux-amd64-tar-zst": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-harvester.linux-amd64.tar.zst", + "sha256": "3623423261a3db1d58750d98cc71950f21ebdab355103eab192f60db90834f29" + }, + "images-harvester-linux-arm64-tar-gz": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-harvester.linux-arm64.tar.gz", + "sha256": "d593f160508714b5d2e4c194c354daf16064d36505ae8e75b86fa9e8eae1c8ab" + }, + "images-harvester-linux-arm64-tar-zst": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-harvester.linux-arm64.tar.zst", + "sha256": "2d0ad2cb9bf5c0e6497e4a1f7602b7868653b303c249f2034fd6b3b95e0db194" + }, + "images-multus-linux-amd64-tar-gz": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-multus.linux-amd64.tar.gz", + "sha256": "2b4368fae7354431fbb66906a703f3c519bbcc71f46dd7e01d4874c911219990" + }, + "images-multus-linux-amd64-tar-zst": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-multus.linux-amd64.tar.zst", + "sha256": "778b48e8e451f3440fb02dda27e87a3a1c2fc8b5e1ae1386398e30fb698fc808" + }, + "images-multus-linux-arm64-tar-gz": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-multus.linux-arm64.tar.gz", + "sha256": "849f717627cc42919480bb35650e5e47c74fe39da40d1fe173f3b789abf5e3fc" + }, + "images-multus-linux-arm64-tar-zst": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-multus.linux-arm64.tar.zst", + "sha256": "b570507f05e25379e0e3cd9f0bd9562d2fc87c8cba4eada865cfd22a94abab1b" + }, + "images-traefik-linux-amd64-tar-gz": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-traefik.linux-amd64.tar.gz", + "sha256": "d28e86d1aba3274a7ed13278d9852956f454c4bc1da30a1df9c0b1184aa41ed1" + }, + "images-traefik-linux-amd64-tar-zst": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-traefik.linux-amd64.tar.zst", + "sha256": "d7364c02738d90b1f9aaf48c5dfd17d0393333fe1a67002e522fe4cf429118e7" + }, + "images-traefik-linux-arm64-tar-gz": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-traefik.linux-arm64.tar.gz", + "sha256": "973358a62e4cbdd955097e9bdcbec7aacc439123486439aafcd1bb5af5828571" + }, + "images-traefik-linux-arm64-tar-zst": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-traefik.linux-arm64.tar.zst", + "sha256": "aaee9b9bf92cf42bbcb2862dd0bfaa217730ebfe69947926a6fd624b9ba19dcf" + }, + "images-vsphere-linux-amd64-tar-gz": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-vsphere.linux-amd64.tar.gz", + "sha256": "4eeb361e1946f56d6fa2dd0a0beee094d0818a4f4278b1531c3a481c349ac4a1" + }, + "images-vsphere-linux-amd64-tar-zst": { + "url": "https://github.com/rancher/rke2/releases/download/v1.35.0%2Brke2r1/rke2-images-vsphere.linux-amd64.tar.zst", + "sha256": "be8b6a4d3823c2e4f22df991236227415a771794e3631ce228f89f9f3363cdaf" + } +} diff --git a/pkgs/applications/networking/cluster/rke2/1_35/versions.nix b/pkgs/applications/networking/cluster/rke2/1_35/versions.nix new file mode 100644 index 000000000000..aaac94497b39 --- /dev/null +++ b/pkgs/applications/networking/cluster/rke2/1_35/versions.nix @@ -0,0 +1,13 @@ +{ + rke2Version = "1.35.0+rke2r1"; + rke2Commit = "233368982cc7242d3eb01e22112343839e8e8f2d"; + rke2TarballHash = "sha256-spnfiv5butC6yh9h3uosS0M5jTbPAuy6N+jzdri9Ano="; + rke2VendorHash = "sha256-DSIhALF+Ic1zm52YntGoBbbJkeq0SX7QkpyOQ9z2+Qo="; + k8sImageTag = "v1.35.0-rke2r1-build20251218"; + etcdVersion = "v3.6.6-k3s1-build20251210"; + pauseVersion = "3.6"; + ccmVersion = "v1.35.0-rc1.0.20251218152248-a6c6cd15c0c4-build20251219"; + dockerizedVersion = "v1.35.0-rke2r1"; + helmJobVersion = "v0.9.12-build20251215"; + imagesVersions = with builtins; fromJSON (readFile ./images-versions.json); +} diff --git a/pkgs/applications/networking/cluster/rke2/default.nix b/pkgs/applications/networking/cluster/rke2/default.nix index c2b0169cf691..98bc97f7c1c1 100644 --- a/pkgs/applications/networking/cluster/rke2/default.nix +++ b/pkgs/applications/networking/cluster/rke2/default.nix @@ -35,7 +35,17 @@ rec { } ) extraArgs; + rke2_1_35 = common ( + (import ./1_35/versions.nix) + // { + updateScript = [ + ./update-script.sh + "35" + ]; + } + ) extraArgs; + # Automatically set by update script rke2_stable = rke2_1_34; - rke2_latest = rke2_1_34; + rke2_latest = rke2_1_35; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e601974af6a3..94b28fdf6a6f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11550,6 +11550,7 @@ with pkgs; rke2_1_32 rke2_1_33 rke2_1_34 + rke2_1_35 rke2_stable rke2_latest ; From 9b44cc573e309de6120d772cd42ad52c672fe46c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 16 Jan 2026 18:44:40 +0000 Subject: [PATCH 046/396] python3Packages.nbdime: 4.0.2 -> 4.0.3 --- pkgs/development/python-modules/nbdime/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/nbdime/default.nix b/pkgs/development/python-modules/nbdime/default.nix index aa3fd2008932..c43652d4d1fa 100644 --- a/pkgs/development/python-modules/nbdime/default.nix +++ b/pkgs/development/python-modules/nbdime/default.nix @@ -29,12 +29,12 @@ buildPythonPackage rec { pname = "nbdime"; - version = "4.0.2"; + version = "4.0.3"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-2Cefj0sjbAslOyDWDEgxu2eEPtjb1uCfI06wEdNvG/I="; + hash = "sha256-YqtQp1goJSPEUBFEufMUIh27rtBAPBL9cPak/MUy7CQ="; }; build-system = [ From 27f67fd16e289de98a8e8755ad72590b446a6e43 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 16 Jan 2026 21:53:30 +0000 Subject: [PATCH 047/396] nix-your-shell: 1.4.6 -> 1.4.7 --- pkgs/by-name/ni/nix-your-shell/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ni/nix-your-shell/package.nix b/pkgs/by-name/ni/nix-your-shell/package.nix index 8d3bbcb32cfe..e3e2abf8bee9 100644 --- a/pkgs/by-name/ni/nix-your-shell/package.nix +++ b/pkgs/by-name/ni/nix-your-shell/package.nix @@ -8,16 +8,16 @@ }: rustPlatform.buildRustPackage rec { pname = "nix-your-shell"; - version = "1.4.6"; + version = "1.4.7"; src = fetchFromGitHub { owner = "MercuryTechnologies"; repo = "nix-your-shell"; tag = "v${version}"; - hash = "sha256-FjGjLq/4qeZz9foA7pfz1hiXvsdmbnzB3BpiTESLE1c="; + hash = "sha256-CE1yVD0uT5QnCfuTshAvM4r0BQ6XeaT22PdEhaYJJk8="; }; - cargoHash = "sha256-zQpK13iudyWDZbpAN8zm9kKmz8qy3yt8JxT4lwq4YF0="; + cargoHash = "sha256-BGyO+MK5pRMNFauRvTWxluHoPjqqsIJP1yajWEJnIvI="; passthru = { generate-config = From 7cd031c62442dc485da78619a3e57bc513a42a41 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 16 Jan 2026 22:31:17 +0000 Subject: [PATCH 048/396] ghidra-extensions.kaiju: 251218 -> 260116 --- pkgs/tools/security/ghidra/extensions/kaiju/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/security/ghidra/extensions/kaiju/default.nix b/pkgs/tools/security/ghidra/extensions/kaiju/default.nix index b03bfc71571a..f46c07cac596 100644 --- a/pkgs/tools/security/ghidra/extensions/kaiju/default.nix +++ b/pkgs/tools/security/ghidra/extensions/kaiju/default.nix @@ -26,13 +26,13 @@ let self = buildGhidraExtension (finalAttrs: { pname = "kaiju"; - version = "251218"; + version = "260116"; src = fetchFromGitHub { owner = "CERTCC"; repo = "kaiju"; rev = finalAttrs.version; - hash = "sha256-oSbYinEysFHMdFUQCA60wVDCTCIDvEDzW76ZFa0ANbg="; + hash = "sha256-cEGBBVuXUcacPzfc1cWGjDPWt8IfGNakDvfzoDCaBAI="; }; buildInputs = [ From a776444bc25fcaade031686ef888cd59ae85ef5b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 16 Jan 2026 23:10:51 +0000 Subject: [PATCH 049/396] ctlptl: 0.8.44 -> 0.9.0 --- pkgs/by-name/ct/ctlptl/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ct/ctlptl/package.nix b/pkgs/by-name/ct/ctlptl/package.nix index 968ee864977f..b70354e575e4 100644 --- a/pkgs/by-name/ct/ctlptl/package.nix +++ b/pkgs/by-name/ct/ctlptl/package.nix @@ -8,16 +8,16 @@ buildGoModule rec { pname = "ctlptl"; - version = "0.8.44"; + version = "0.9.0"; src = fetchFromGitHub { owner = "tilt-dev"; repo = "ctlptl"; rev = "v${version}"; - hash = "sha256-DIVKwfTSA03Yyservf3TK7y9RKi2t6pELyC0cpoUH3I="; + hash = "sha256-y957JaHg2SnDC6yvwI/0fBFjbEKOfKFsNqOOrqQe+TU="; }; - vendorHash = "sha256-bZd2DWQ2utKYctx9KzE5BzF5wkj1rGkka6PsYb7G8Oo="; + vendorHash = "sha256-gJiarW1uYr5vl9nt+JN6/yRyYr9J0sfDVZcNLLcwPJY="; nativeBuildInputs = [ installShellFiles ]; From a896f39fe5bceee4adbc15e87d52f1712ca1d9ae Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 16 Jan 2026 23:25:22 +0000 Subject: [PATCH 050/396] automatic-timezoned: 2.0.106 -> 2.0.108 --- pkgs/by-name/au/automatic-timezoned/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/au/automatic-timezoned/package.nix b/pkgs/by-name/au/automatic-timezoned/package.nix index 4ecf3fdda683..a3c626247ccf 100644 --- a/pkgs/by-name/au/automatic-timezoned/package.nix +++ b/pkgs/by-name/au/automatic-timezoned/package.nix @@ -7,16 +7,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "automatic-timezoned"; - version = "2.0.106"; + version = "2.0.108"; src = fetchFromGitHub { owner = "maxbrunet"; repo = "automatic-timezoned"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-djvRfp1LhkHuDmjDuOErzcD9KXH6fiRrUR73ncldzUc="; + sha256 = "sha256-aizxFWQpiwEo197Oydez2nAChQQ32jPqOEW3wNLnb7c="; }; - cargoHash = "sha256-T8PY/mFvcdXPZeQKEUekBan+0qBQnmsZ5O96EYcxkcI="; + cargoHash = "sha256-gT1pHDYwqVeZ0epGX8v3+B4o6y8jO21rUyz1rLD3eCY="; nativeInstallCheckInputs = [ versionCheckHook ]; From 28d04a8a0879c18d89b4f8d8aab556d4ac34b0db Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 00:55:51 +0000 Subject: [PATCH 051/396] candy-icons: 0-unstable-2025-12-26 -> 0-unstable-2026-01-13 --- pkgs/by-name/ca/candy-icons/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ca/candy-icons/package.nix b/pkgs/by-name/ca/candy-icons/package.nix index 41e3dbef3175..87fdb1706ed7 100644 --- a/pkgs/by-name/ca/candy-icons/package.nix +++ b/pkgs/by-name/ca/candy-icons/package.nix @@ -8,13 +8,13 @@ stdenvNoCC.mkDerivation { pname = "candy-icons"; - version = "0-unstable-2025-12-26"; + version = "0-unstable-2026-01-13"; src = fetchFromGitHub { owner = "EliverLara"; repo = "candy-icons"; - rev = "1ec7ed314104847d6bffdc89ef67663917a67268"; - hash = "sha256-p8WZTNHwYTom0QnWvOU0JLRbEYZlGQq/QPpK3KlwBH8="; + rev = "42f5c4817f47e2ef4b011080ebbb2f50a9a6955b"; + hash = "sha256-d7jxoqWPRlNX43CdIEihT6kxvke3k8GG9CJkmlkuRNw="; }; nativeBuildInputs = [ gtk3 ]; From 003525560416eedfdd2b0053c325c5d94664b4df Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 03:27:46 +0000 Subject: [PATCH 052/396] cargo-xwin: 0.20.2 -> 0.21.2 --- pkgs/by-name/ca/cargo-xwin/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ca/cargo-xwin/package.nix b/pkgs/by-name/ca/cargo-xwin/package.nix index a964b7f3c7e7..fb2572b1f4fd 100644 --- a/pkgs/by-name/ca/cargo-xwin/package.nix +++ b/pkgs/by-name/ca/cargo-xwin/package.nix @@ -6,16 +6,16 @@ rustPlatform.buildRustPackage rec { pname = "cargo-xwin"; - version = "0.20.2"; + version = "0.21.2"; src = fetchFromGitHub { owner = "rust-cross"; repo = "cargo-xwin"; rev = "v${version}"; - hash = "sha256-M7OO2yO5BvNTqJLI50g25M5aupdOxmlZ3eealmP51Kc="; + hash = "sha256-GQV8Sy7BCkPGYusojZGQtaazTXONdJIZ4B4toO1Lj/w="; }; - cargoHash = "sha256-DwQGmdSzEjzqfsvqczAMJfi9gJjK2b9FAGmMi7rGKuw="; + cargoHash = "sha256-fVr5W5xpucqUyKpDcubAh6GkB0roJ548EHgaIzqVJl0="; meta = { description = "Cross compile Cargo project to Windows MSVC target with ease"; From cde7e5bf9ad65b9a81da96f43db918e4168621f2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 04:15:24 +0000 Subject: [PATCH 053/396] lomiri.lomiri-schemas: 0.1.9 -> 0.1.10 --- pkgs/desktops/lomiri/data/lomiri-schemas/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/lomiri/data/lomiri-schemas/default.nix b/pkgs/desktops/lomiri/data/lomiri-schemas/default.nix index 90f2cd1dd65a..9b59367ade0e 100644 --- a/pkgs/desktops/lomiri/data/lomiri-schemas/default.nix +++ b/pkgs/desktops/lomiri/data/lomiri-schemas/default.nix @@ -14,13 +14,13 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "lomiri-schemas"; - version = "0.1.9"; + version = "0.1.10"; src = fetchFromGitLab { owner = "ubports"; repo = "development/core/lomiri-schemas"; tag = finalAttrs.version; - hash = "sha256-qdkKQpKIad7bEMaN6q79byVTipuvUFSdCZQKdMtOERo="; + hash = "sha256-QZZTsVKu/6hyHhbBXZOYp4uVuih0nIBPocDsxBtbvyQ="; }; strictDeps = true; From 0281a4a70afc912fddeed372574f8b1c56a099dd Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 05:09:22 +0000 Subject: [PATCH 054/396] showmethekey: 1.18.4 -> 1.19.0 --- pkgs/by-name/sh/showmethekey/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sh/showmethekey/package.nix b/pkgs/by-name/sh/showmethekey/package.nix index 75d7335e7366..53e736581b8c 100644 --- a/pkgs/by-name/sh/showmethekey/package.nix +++ b/pkgs/by-name/sh/showmethekey/package.nix @@ -16,13 +16,13 @@ stdenv.mkDerivation rec { pname = "showmethekey"; - version = "1.18.4"; + version = "1.19.0"; src = fetchFromGitHub { owner = "AlynxZhou"; repo = "showmethekey"; tag = "v${version}"; - hash = "sha256-Wj7r4rnY8+QGWtk9h88gk3LxkNLIKUA/46lkyPK86h0="; + hash = "sha256-jQRckUqLe9sshi3SJqpFwSsy5H0Gp17kkcCdslwg6cM="; }; nativeBuildInputs = [ From d88466134e5a89f0d657f482dac250d9955e5e92 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 05:28:04 +0000 Subject: [PATCH 055/396] gui-for-singbox: 1.18.0 -> 1.19.0 --- pkgs/by-name/gu/gui-for-singbox/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gu/gui-for-singbox/package.nix b/pkgs/by-name/gu/gui-for-singbox/package.nix index a68fb36e2072..aa4972bdb927 100644 --- a/pkgs/by-name/gu/gui-for-singbox/package.nix +++ b/pkgs/by-name/gu/gui-for-singbox/package.nix @@ -18,13 +18,13 @@ let pname = "gui-for-singbox"; - version = "1.18.0"; + version = "1.19.0"; src = fetchFromGitHub { owner = "GUI-for-Cores"; repo = "GUI.for.SingBox"; tag = "v${version}"; - hash = "sha256-8X+hLtNKE9iFJMvUtY1ZDXwp39b4bKDotiU79jVto4E="; + hash = "sha256-CY5i5+ObqPVCPiqHLttjxhMOi9fiHp5HWX33fq43txw="; }; metaCommon = { From 47cc825b43180184111e4ff89e41b557c7b20fbe Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 06:16:29 +0000 Subject: [PATCH 056/396] libretro-shaders-slang: 0-unstable-2026-01-08 -> 0-unstable-2026-01-11 --- pkgs/by-name/li/libretro-shaders-slang/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/li/libretro-shaders-slang/package.nix b/pkgs/by-name/li/libretro-shaders-slang/package.nix index 77b5bbeaa515..b57fcab011bf 100644 --- a/pkgs/by-name/li/libretro-shaders-slang/package.nix +++ b/pkgs/by-name/li/libretro-shaders-slang/package.nix @@ -7,13 +7,13 @@ stdenvNoCC.mkDerivation { pname = "libretro-shaders-slang"; - version = "0-unstable-2026-01-08"; + version = "0-unstable-2026-01-11"; src = fetchFromGitHub { owner = "libretro"; repo = "slang-shaders"; - rev = "c2f3c5b0ce8c5e7e3ed9d885a924f85712cb38a0"; - hash = "sha256-tQ/eUFNlzKYaP6eDiykCtooccEa2YP++iFXKSUVgwcw="; + rev = "3d62b0e20f5bfa1a244edd70987e565de7e68849"; + hash = "sha256-nkPMdoqIel0OIFM9J99rX50IUKObnEDERpwIkOYGsA4="; }; dontConfigure = true; From dfef2dd6a6c9493d7db63e2e9275a656e7a39194 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 06:20:32 +0000 Subject: [PATCH 057/396] astroterm: 1.0.9 -> 1.0.10 --- pkgs/by-name/as/astroterm/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/as/astroterm/package.nix b/pkgs/by-name/as/astroterm/package.nix index f15081d962e6..924bc301471e 100644 --- a/pkgs/by-name/as/astroterm/package.nix +++ b/pkgs/by-name/as/astroterm/package.nix @@ -14,13 +14,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "astroterm"; - version = "1.0.9"; + version = "1.0.10"; src = fetchFromGitHub { owner = "da-luce"; repo = "astroterm"; tag = "v${finalAttrs.version}"; - hash = "sha256-3UXFB4NNKn2w1dYlQzhFyxWwa7/1qkCXPNdBqHK+eQ8="; + hash = "sha256-z9KblIAoXk///NnRFHCSAFNDuNiPxDuuiliajcsyJM0="; }; bsc5File = fetchurl { From 84d39e8e2b7b40b14d4e8fea3601ba614f29b338 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 08:18:01 +0000 Subject: [PATCH 058/396] labelle: 1.4.2 -> 1.4.3 --- pkgs/by-name/la/labelle/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/la/labelle/package.nix b/pkgs/by-name/la/labelle/package.nix index a2a2f9ec98c1..bb0b4b5002e2 100644 --- a/pkgs/by-name/la/labelle/package.nix +++ b/pkgs/by-name/la/labelle/package.nix @@ -8,14 +8,14 @@ }: python3Packages.buildPythonApplication rec { pname = "labelle"; - version = "1.4.2"; + version = "1.4.3"; pyproject = true; src = fetchFromGitHub { owner = "labelle-org"; repo = "labelle"; tag = "v${version}"; - hash = "sha256-p+V6ihFDxhG7t4LiwTJVfJTk6rxJxGHqxTdplbLZR2Q="; + hash = "sha256-yYhtA7Rxg95HCOIKTak172tcuTnWlCbSDlPQ9VOpoWE="; }; postPatch = '' From 9d7c0a5220fc0bc06701149ae83d0f3a3353637f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 08:47:06 +0000 Subject: [PATCH 059/396] vscode-extensions.julialang.language-julia: 1.171.2 -> 1.174.2 --- pkgs/applications/editors/vscode/extensions/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index 143e3df6020a..3731c4a21764 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -2611,8 +2611,8 @@ let mktplcRef = { name = "language-julia"; publisher = "julialang"; - version = "1.171.2"; - hash = "sha256-XELIrqcyd6DEpJjbSlE17noiYa8CZvDwnodA1QALewM="; + version = "1.174.2"; + hash = "sha256-nlMuWnJOtUlCB9RGWUngB8KgIiNxoQTHkjI6ZtO/Gjs="; }; meta = { changelog = "https://marketplace.visualstudio.com/items/julialang.language-julia/changelog"; From 33d57d5183d43a2c4cbd911143a15ab270a30e11 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 09:54:03 +0000 Subject: [PATCH 060/396] python3Packages.yourdfpy: 0.0.58 -> 0.0.59 --- pkgs/development/python-modules/yourdfpy/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/yourdfpy/default.nix b/pkgs/development/python-modules/yourdfpy/default.nix index 5647a170f037..fa770f6a243e 100644 --- a/pkgs/development/python-modules/yourdfpy/default.nix +++ b/pkgs/development/python-modules/yourdfpy/default.nix @@ -21,14 +21,14 @@ buildPythonPackage rec { pname = "yourdfpy"; - version = "0.0.58"; + version = "0.0.59"; pyproject = true; src = fetchFromGitHub { owner = "clemense"; repo = "yourdfpy"; tag = "v${version}"; - hash = "sha256-Wi4QcgTOf/1nXWssFtlyRxql8Jg1nNKjEGkWuP+w73g="; + hash = "sha256-9GSDD/RjLGlmuncyH97TqKZrPU8WpmbSKGT7sDKy9FA="; }; build-system = [ From c85a4305648355ac0217b653a63e2c73cb8aaa42 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 10:00:36 +0000 Subject: [PATCH 061/396] python3Packages.elevenlabs: 2.29.0 -> 2.30.0 --- pkgs/development/python-modules/elevenlabs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/elevenlabs/default.nix b/pkgs/development/python-modules/elevenlabs/default.nix index e4b47be7f76b..4b499060c14d 100644 --- a/pkgs/development/python-modules/elevenlabs/default.nix +++ b/pkgs/development/python-modules/elevenlabs/default.nix @@ -14,14 +14,14 @@ buildPythonPackage (finalAttrs: { pname = "elevenlabs"; - version = "2.29.0"; + version = "2.30.0"; pyproject = true; src = fetchFromGitHub { owner = "elevenlabs"; repo = "elevenlabs-python"; tag = "v${finalAttrs.version}"; - hash = "sha256-TtlC9puEOgH2I8zKMM0mXK67LZGN13JIkKpXJJKuVqw="; + hash = "sha256-UxH7I/6Y1umMYnSVlZN81kn0jkwR4hwLxmlD2EhrF88="; }; build-system = [ poetry-core ]; From 29f9734c8635460941c2269956d5337415219c07 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 10:03:22 +0000 Subject: [PATCH 062/396] python3Packages.rocketchat-api: 2.0.0 -> 2.1.0 --- pkgs/development/python-modules/rocketchat-api/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/rocketchat-api/default.nix b/pkgs/development/python-modules/rocketchat-api/default.nix index 340e71a418e1..0fee7f4214a6 100644 --- a/pkgs/development/python-modules/rocketchat-api/default.nix +++ b/pkgs/development/python-modules/rocketchat-api/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "rocketchat-api"; - version = "2.0.0"; + version = "2.1.0"; pyproject = true; src = fetchFromGitHub { owner = "jadolg"; repo = "rocketchat_API"; tag = version; - hash = "sha256-CIC2pVFN+cN9HCdIHX1VFXJ5eqIgdNXBSmzt/9LH1JE="; + hash = "sha256-rkjo2DdWGOekr0VICH6+08wQxI8XkLKtznfjFDkeK04="; }; build-system = [ From 76ca8599a309faa6e856d54cb81ceb367223e1cb Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 10:23:47 +0000 Subject: [PATCH 063/396] vscode-extensions.chris-hayes.chatgpt-reborn: 3.27.0 -> 3.28.0 --- pkgs/applications/editors/vscode/extensions/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index 143e3df6020a..239e5c2e1321 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -968,8 +968,8 @@ let mktplcRef = { name = "chatgpt-reborn"; publisher = "chris-hayes"; - version = "3.27.0"; - sha256 = "sha256-52SvGb9TsvDQey5cjw+ZIQBP/1dyWcHKNjqCCCyM6k4="; + version = "3.28.0"; + sha256 = "sha256-YOaOBDGoLg/bWB/Yw6CCbJ/J7s6qA8QlbM3wiknCTGQ="; }; }; From 7991d65d589ec2bd05cffd796a6fa3a05c0f5b54 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 10:55:41 +0000 Subject: [PATCH 064/396] memcached-exporter: 0.15.4 -> 0.15.5 --- pkgs/by-name/me/memcached-exporter/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/me/memcached-exporter/package.nix b/pkgs/by-name/me/memcached-exporter/package.nix index d5ba29db7a7c..6c91960885f7 100644 --- a/pkgs/by-name/me/memcached-exporter/package.nix +++ b/pkgs/by-name/me/memcached-exporter/package.nix @@ -6,16 +6,16 @@ buildGoModule (finalAttrs: { pname = "memcached-exporter"; - version = "0.15.4"; + version = "0.15.5"; src = fetchFromGitHub { owner = "prometheus"; repo = "memcached_exporter"; tag = "v${finalAttrs.version}"; - hash = "sha256-3xqMq9bxxz7/GChHlCBIHb8HZ5TT5MsfBVE8ap533nc="; + hash = "sha256-f9ME3JOeQDcqXrgbX9MiRGvJJz2i3vYBwnjZAYChnlY="; }; - vendorHash = "sha256-Fcz02viZxXhzTW23GchU4lKi+WriMdpSZKoqXCCn9MA="; + vendorHash = "sha256-8+9qze2peeXIYa9Mm+sS5/2TQMpJGAHo687LJEZS7So="; # Tests touch the network doCheck = false; From 14645005206dafd6d8f6d8c1e9e8fa4fd99474b6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 11:23:24 +0000 Subject: [PATCH 065/396] nu_scripts: 0-unstable-2025-12-28 -> 0-unstable-2026-01-11 --- pkgs/by-name/nu/nu_scripts/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/nu/nu_scripts/package.nix b/pkgs/by-name/nu/nu_scripts/package.nix index 4e037875e9f1..7acd06655faf 100644 --- a/pkgs/by-name/nu/nu_scripts/package.nix +++ b/pkgs/by-name/nu/nu_scripts/package.nix @@ -7,13 +7,13 @@ stdenvNoCC.mkDerivation { pname = "nu_scripts"; - version = "0-unstable-2025-12-28"; + version = "0-unstable-2026-01-11"; src = fetchFromGitHub { owner = "nushell"; repo = "nu_scripts"; - rev = "1cb6d6c460949b989b7fb1a6d02456a560521366"; - hash = "sha256-Cq814VegRIWRR0UfRz3xV3pHm4C1701I5BoPRsEi+ZQ="; + rev = "c0eef9bb94eaf9d69f1cc27e2e1964fdb66fb24a"; + hash = "sha256-KfnxoyLY8F0jx6h/SGQb5hkTBHgaa0fktE1qM4BKTBc="; }; installPhase = '' From 211819dbb0832213fe41671a01f4dcc107e5270c Mon Sep 17 00:00:00 2001 From: transcaffeine Date: Sat, 17 Jan 2026 14:09:41 +0100 Subject: [PATCH 066/396] matrix-alertmanager-receiver: 2025.12.24 -> 2026.1.14 Release notes: https://github.com/metio/matrix-alertmanager-receiver/releases/tag/2026.1.14 Full changelog: https://github.com/metio/matrix-alertmanager-receiver/compare/2025.12.24...2026.1.14 --- pkgs/by-name/ma/matrix-alertmanager-receiver/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ma/matrix-alertmanager-receiver/package.nix b/pkgs/by-name/ma/matrix-alertmanager-receiver/package.nix index c30f9668c93d..6cc61c020e4f 100644 --- a/pkgs/by-name/ma/matrix-alertmanager-receiver/package.nix +++ b/pkgs/by-name/ma/matrix-alertmanager-receiver/package.nix @@ -8,16 +8,16 @@ buildGoModule (finalAttrs: { pname = "matrix-alertmanager-receiver"; - version = "2025.12.24"; + version = "2026.1.14"; src = fetchFromGitHub { owner = "metio"; repo = "matrix-alertmanager-receiver"; tag = finalAttrs.version; - hash = "sha256-RK9Z/QeA0AjOfFROtOYKd3uCPn3NN+eyeuLQVWxlH6U="; + hash = "sha256-JUdnaz790NbiBlUlESIQMR2qehF/8OU0smSrA3+wOSQ="; }; - vendorHash = "sha256-HJEpWf3WeMw9vLj7L6thx1ur5YuC5xjIuMCHaFZ2tS8="; + vendorHash = "sha256-ZZYifNTMCL39ar00duYvvS8B6vJ8QZkMNb8vG6kgYOI="; env.CGO_ENABLED = "0"; From 4dd279e4f88e8c4d88ed81a9a598b6c60851f65d Mon Sep 17 00:00:00 2001 From: transcaffeine Date: Sat, 17 Jan 2026 14:56:56 +0100 Subject: [PATCH 067/396] element-web-unwrapped: 1.12.7 -> 1.12.8 Release notes: https://github.com/element-hq/element-web/releases/tag/v1.12.8 Full changelog: https://github.com/element-hq/element-web/compare/v1.12.7...v1.12.8 --- pkgs/by-name/el/element-web-unwrapped/element-web-pin.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/el/element-web-unwrapped/element-web-pin.nix b/pkgs/by-name/el/element-web-unwrapped/element-web-pin.nix index e4973d165cbe..68f55011557f 100644 --- a/pkgs/by-name/el/element-web-unwrapped/element-web-pin.nix +++ b/pkgs/by-name/el/element-web-unwrapped/element-web-pin.nix @@ -1,8 +1,8 @@ { - "version" = "1.12.7"; + "version" = "1.12.8"; "hashes" = { - "webSrcHash" = "sha256-D24x3T1m0qRmlpmkZ7zTAxhtMUddlMaip0JKT8H3Ci0="; - "webYarnHash" = "sha256-72M6XyI9zfxcym7e/CvLmQHe21eyzQXO3YfQipFh06s="; - "webSharedComponentsYarnHash" = "sha256-NrDB0itZ0xSFg4lZhAs6EGFap8GE1CZ1/EFa7fa4P2Q="; + "webSrcHash" = "sha256-c1vrFEe0kEpCXs67oeZPv0xqmL3YaqAvD1nqoTQXlzk="; + "webYarnHash" = "sha256-Vo0SkCUPVQsVCgVILT+uvjbExDpYk4/DRfWdiisbf1o="; + "webSharedComponentsYarnHash" = "sha256-8wvjoanSd5KLDW6MbwY+3Ch9rzWpukeQEvYzMxXsbKA="; }; } From d8d8f475471770081fd218711c2248f1cd310d99 Mon Sep 17 00:00:00 2001 From: transcaffeine Date: Sat, 17 Jan 2026 14:58:11 +0100 Subject: [PATCH 068/396] element-desktop: 1.12.7 -> 1.12.8 Release notes: https://github.com/element-hq/element-desktop/releases/tag/v1.12.8 Full changelog: https://github.com/element-hq/element-desktop/compare/v1.12.7...v1.12.8 --- pkgs/by-name/el/element-desktop/element-desktop-pin.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/el/element-desktop/element-desktop-pin.nix b/pkgs/by-name/el/element-desktop/element-desktop-pin.nix index 5c2cee48db3b..522dbb0fef13 100644 --- a/pkgs/by-name/el/element-desktop/element-desktop-pin.nix +++ b/pkgs/by-name/el/element-desktop/element-desktop-pin.nix @@ -1,7 +1,7 @@ { - "version" = "1.12.7"; + "version" = "1.12.8"; "hashes" = { - "desktopSrcHash" = "sha256-VnZyNrylYbKhd9YyuoUSJWbTEphOsTivbbYIUeEZv2U="; - "desktopYarnHash" = "sha256-Gnd/ouRI/OxFwsvR5arfi/FcGld3XjtW9tzuwyX8IRg="; + "desktopSrcHash" = "sha256-J+ITqHLxbmhhjFnyfBlHFzxrPeIvsCv+iaxa8DiWorM="; + "desktopYarnHash" = "sha256-coa2AMNGLDtqcrQJDc/DDkcaWBCLa76VTKJLGlr7dpQ="; }; } From d4e0b2aa874433055a79057210432eeafaa75d70 Mon Sep 17 00:00:00 2001 From: Boris Nagaev Date: Sat, 17 Jan 2026 11:06:17 -0500 Subject: [PATCH 069/396] sing-box: 1.12.16 -> 1.12.17 --- pkgs/by-name/si/sing-box/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/si/sing-box/package.nix b/pkgs/by-name/si/sing-box/package.nix index 82e534956bb8..9c92099562af 100644 --- a/pkgs/by-name/si/sing-box/package.nix +++ b/pkgs/by-name/si/sing-box/package.nix @@ -10,16 +10,16 @@ buildGoModule (finalAttrs: { pname = "sing-box"; - version = "1.12.16"; + version = "1.12.17"; src = fetchFromGitHub { owner = "SagerNet"; repo = "sing-box"; tag = "v${finalAttrs.version}"; - hash = "sha256-enmT6BnGzEpk9BPB9IZWJctMoe/FiNqYmkiq0d9/m2k="; + hash = "sha256-3dxkoSfXSMID8GVhjyPC2n8UNqOx8IkSkGuFmWZ3TbI="; }; - vendorHash = "sha256-rs5Jxj75qU47zEH0gbYy0/QUSq3sektaITcefg2Qb78="; + vendorHash = "sha256-p5E3tJiqhgTeE35vVt03Yo9oF3DZPO9hXuKKR6r0V+g="; tags = [ "with_quic" From d9ac89474779c4a2d35284fbbd55463eaac28c12 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 16:11:00 +0000 Subject: [PATCH 070/396] ghidra-extensions.findcrypt: 3.1.3 -> 3.1.4 --- pkgs/tools/security/ghidra/extensions/findcrypt/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/security/ghidra/extensions/findcrypt/default.nix b/pkgs/tools/security/ghidra/extensions/findcrypt/default.nix index d60d51fe0142..4b61442abfe8 100644 --- a/pkgs/tools/security/ghidra/extensions/findcrypt/default.nix +++ b/pkgs/tools/security/ghidra/extensions/findcrypt/default.nix @@ -5,13 +5,13 @@ }: buildGhidraExtension (finalAttrs: { pname = "findcrypt"; - version = "3.1.3"; + version = "3.1.4"; src = fetchFromGitHub { owner = "antoniovazquezblanco"; repo = "GhidraFindcrypt"; rev = "v${finalAttrs.version}"; - hash = "sha256-c+7WQ7EeZm/9IyqGthTKBtm7EnNp0o7BmIM6GskTo6Y="; + hash = "sha256-ZrPLAjdfqHVjnOSBMTrXWK9DDHyIwaUt0ZYCwGiGLBg="; }; meta = { From d51f8a6ac51895da5dc6342926595e1c96c3710e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 16:35:31 +0000 Subject: [PATCH 071/396] ddns-go: 6.14.1 -> 6.15.0 --- pkgs/by-name/dd/ddns-go/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/dd/ddns-go/package.nix b/pkgs/by-name/dd/ddns-go/package.nix index 503ddceaa275..acc91c3e26ce 100644 --- a/pkgs/by-name/dd/ddns-go/package.nix +++ b/pkgs/by-name/dd/ddns-go/package.nix @@ -6,16 +6,16 @@ buildGoModule rec { pname = "ddns-go"; - version = "6.14.1"; + version = "6.15.0"; src = fetchFromGitHub { owner = "jeessy2"; repo = "ddns-go"; rev = "v${version}"; - hash = "sha256-c+V+EgJvElL/Ga0z6420E50c59cmjn/IlkfyeATLDFs="; + hash = "sha256-NDIevPRIbRqh97IWk4lCqmjobepVMeG5QFKUJdw9Lyo="; }; - vendorHash = "sha256-vpdT1apjuMvM6MmQfx1XBQtQznK7oxUjIdkgOXjUF6g="; + vendorHash = "sha256-EGhZyoitQ7l0sQZbono2pKhQZJEnGrennMz453Lrbek="; ldflags = [ "-X main.version=${version}" From 29033fb5bc58d632d2fcfa27a8dade7bcc8ca05d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 17:24:45 +0000 Subject: [PATCH 072/396] particle-cli: 3.44.1 -> 3.45.0 --- pkgs/by-name/pa/particle-cli/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/pa/particle-cli/package.nix b/pkgs/by-name/pa/particle-cli/package.nix index 7b2f1a9f41aa..a1743386a1ca 100644 --- a/pkgs/by-name/pa/particle-cli/package.nix +++ b/pkgs/by-name/pa/particle-cli/package.nix @@ -8,16 +8,16 @@ buildNpmPackage (finalAttrs: { pname = "particle-cli"; - version = "3.44.1"; + version = "3.45.0"; src = fetchFromGitHub { owner = "particle-iot"; repo = "particle-cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-l4MzJ57PkNECW2/k7gnVsrHcJtc4vZRsgzUkGz1hQiU="; + hash = "sha256-Hq2flUBStEouVEhYI25fNFK9ohvHfk792vlPa7b3DRA="; }; - npmDepsHash = "sha256-B9r8wvpIPnLupuhycocJCl5EN63xi1KI5fHT5uQZTzY="; + npmDepsHash = "sha256-rHT8ZLBe3uO1NxrbVBdrh0fn9gvBVq4XE8Gfhcshq/E="; buildInputs = [ udev From 039f5ac00e0f2f1c0a0df3a6adb1f3cad4467258 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 17:31:59 +0000 Subject: [PATCH 073/396] libretro.beetle-pce-fast: 0-unstable-2025-11-14 -> 0-unstable-2026-01-16 --- .../emulators/libretro/cores/beetle-pce-fast.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/emulators/libretro/cores/beetle-pce-fast.nix b/pkgs/applications/emulators/libretro/cores/beetle-pce-fast.nix index 4e994394f762..8230f8c72f3a 100644 --- a/pkgs/applications/emulators/libretro/cores/beetle-pce-fast.nix +++ b/pkgs/applications/emulators/libretro/cores/beetle-pce-fast.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "mednafen-pce-fast"; - version = "0-unstable-2025-11-14"; + version = "0-unstable-2026-01-16"; src = fetchFromGitHub { owner = "libretro"; repo = "beetle-pce-fast-libretro"; - rev = "7e9b257b8a591cb7e00f9e55371edba19db9799c"; - hash = "sha256-LBx4bSnE3XeQw/Bc5EID8U6Dxj7uc6JBrV8vSwO/jEM="; + rev = "6d182b22f6b9430c76ea71579ffb2eee0e2e9521"; + hash = "sha256-QHkG5CSZgaakblOgp5HxGvtWg8K4Nbag481nhG4UjoY="; }; makefile = "Makefile"; From 337868510c5f956ef20693b163506cfe5cd57fa9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 18:39:41 +0000 Subject: [PATCH 074/396] enzyme: 0.0.235 -> 0.0.238 --- pkgs/by-name/en/enzyme/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/en/enzyme/package.nix b/pkgs/by-name/en/enzyme/package.nix index 5d0550a97377..b0e6ef0efa76 100644 --- a/pkgs/by-name/en/enzyme/package.nix +++ b/pkgs/by-name/en/enzyme/package.nix @@ -7,13 +7,13 @@ }: llvmPackages.stdenv.mkDerivation rec { pname = "enzyme"; - version = "0.0.235"; + version = "0.0.238"; src = fetchFromGitHub { owner = "EnzymeAD"; repo = "Enzyme"; rev = "v${version}"; - hash = "sha256-wrz2DyhJAn5T639RdVDjRogPRLriSHiiDn05AgBLYnU="; + hash = "sha256-n++71Ibt4+nnyx56ICovObJx9CH12fxH+WXsAByIyJA="; }; postPatch = '' From 08c2fc3de553e74bb29a3bb62278551000ffc6c7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 20:27:52 +0000 Subject: [PATCH 075/396] carapace-bridge: 1.4.10 -> 1.4.11 --- pkgs/by-name/ca/carapace-bridge/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ca/carapace-bridge/package.nix b/pkgs/by-name/ca/carapace-bridge/package.nix index dcc1c040c16b..1e3a854fd2b7 100644 --- a/pkgs/by-name/ca/carapace-bridge/package.nix +++ b/pkgs/by-name/ca/carapace-bridge/package.nix @@ -8,13 +8,13 @@ buildGoModule (finalAttrs: { pname = "carapace-bridge"; - version = "1.4.10"; + version = "1.4.11"; src = fetchFromGitHub { owner = "carapace-sh"; repo = "carapace-bridge"; tag = "v${finalAttrs.version}"; - hash = "sha256-6CCLSwbAYkMelaM5ac1I1kwOlWKPSOU9M9/2Dybt55I="; + hash = "sha256-npy20q8Fmi4KKN/q41iG6sWmuQVLhiHyUCGVUwS0FsA="; }; # buildGoModule tries to run `go mod vendor` instead of `go work vendor` on From 250039ecc494e1a690ba2aa5c44f1138ff2f915d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 20:39:05 +0000 Subject: [PATCH 076/396] diffnav: 0.5.0 -> 0.6.0 --- pkgs/by-name/di/diffnav/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/di/diffnav/package.nix b/pkgs/by-name/di/diffnav/package.nix index c2f7989ec58a..ff9e2f7b6731 100644 --- a/pkgs/by-name/di/diffnav/package.nix +++ b/pkgs/by-name/di/diffnav/package.nix @@ -8,13 +8,13 @@ buildGoModule rec { pname = "diffnav"; - version = "0.5.0"; + version = "0.6.0"; src = fetchFromGitHub { owner = "dlvhdr"; repo = "diffnav"; tag = "v${version}"; - hash = "sha256-QDPH7vBoA4YCmC+CLmeBdspwOhFEV3iSiyBYX6lwOLA="; + hash = "sha256-pak1R2BmL3A8YADwFw7QZk7JsGQzBBS/xHzRhYlMKGo="; }; vendorHash = "sha256-cDA5qstTRApt4DXcakNLR5nsyh9i7z2Qrvp6q/OoYhY="; From b6a0a5fdf35e2ef6a5b1822c819ff313261f7aa5 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 21:04:41 +0000 Subject: [PATCH 077/396] pkgsite: 0-unstable-2026-01-07 -> 0-unstable-2026-01-16 --- pkgs/by-name/pk/pkgsite/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/pk/pkgsite/package.nix b/pkgs/by-name/pk/pkgsite/package.nix index 3d8e64b31376..477ec4c21039 100644 --- a/pkgs/by-name/pk/pkgsite/package.nix +++ b/pkgs/by-name/pk/pkgsite/package.nix @@ -7,16 +7,16 @@ buildGoModule { pname = "pkgsite"; - version = "0-unstable-2026-01-07"; + version = "0-unstable-2026-01-16"; src = fetchFromGitHub { owner = "golang"; repo = "pkgsite"; - rev = "a6a3e5202c579664010c2776ca0b3d1a6d035b69"; - hash = "sha256-xUN/aHcAzA2DDzitZV+kEVfGgADOSCsY0zJLiRdTAQg="; + rev = "550788255d99f0e9ee169f12bf65d16e1ede9f7b"; + hash = "sha256-Gx4MKLQ7Ed8XIy9oULWD1mRVcD2f7i+fb2aDjFrG9RI="; }; - vendorHash = "sha256-rruIjtXtFZ0MOJkWx4n+7apKGv4Pq6GrOWoQ3o+8KFs="; + vendorHash = "sha256-udLOOjBMLZ38jrX/7r+hmiUr/k6gxU0Sypo6S0ezep0="; subPackages = [ "cmd/pkgsite" ]; From b457a9489e34d749cba24e051c8db40ade72578b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 22:00:13 +0000 Subject: [PATCH 078/396] double-entry-generator: 2.14.0 -> 2.15.0 --- pkgs/by-name/do/double-entry-generator/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/do/double-entry-generator/package.nix b/pkgs/by-name/do/double-entry-generator/package.nix index 55ff58368de5..b6b56b8bacae 100644 --- a/pkgs/by-name/do/double-entry-generator/package.nix +++ b/pkgs/by-name/do/double-entry-generator/package.nix @@ -6,11 +6,11 @@ }: buildGoModule rec { pname = "double-entry-generator"; - version = "2.14.0"; + version = "2.15.0"; src = fetchFromGitHub { owner = "deb-sig"; repo = "double-entry-generator"; - hash = "sha256-gKgk9H0p17Pv+giV+vz4cdU99EQ3AhY+WC8Weu+XPPQ="; + hash = "sha256-w2OKKSsz9t/4+aKPWq04+Sk0lJbxYeVah+o00T5YWQM="; rev = "v${version}"; }; From 5e9f736987532d4ba40040e23a83c08da1194e0e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 22:13:38 +0000 Subject: [PATCH 079/396] rqlite: 9.3.14 -> 9.3.15 --- pkgs/by-name/rq/rqlite/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/rq/rqlite/package.nix b/pkgs/by-name/rq/rqlite/package.nix index c290ee4e10e9..0da2e44f6e03 100644 --- a/pkgs/by-name/rq/rqlite/package.nix +++ b/pkgs/by-name/rq/rqlite/package.nix @@ -6,16 +6,16 @@ buildGoModule (finalAttrs: { pname = "rqlite"; - version = "9.3.14"; + version = "9.3.15"; src = fetchFromGitHub { owner = "rqlite"; repo = "rqlite"; tag = "v${finalAttrs.version}"; - hash = "sha256-DZOL2klXdB7fKWnImQeRbeSSeDgluAHAPO7yP8QNak4="; + hash = "sha256-VMVDXpbDN8mZJJycsFK1LOujIXw29584wnDE470C87U="; }; - vendorHash = "sha256-4HHUtmF4Q9QzVCqHYCkIG8lHlQ7soBXsGFuGl4uL8PQ="; + vendorHash = "sha256-O/VaYGjEMTOExdQfaL3XcnPmQxEYXjCMVfI6Vl+roZw="; subPackages = [ "cmd/rqlite" From b2257d60cae2d275ceb715b6443af9e3b3b984d4 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 22:34:34 +0000 Subject: [PATCH 080/396] vscode-extensions.denoland.vscode-deno: 3.47.0 -> 3.48.0 --- pkgs/applications/editors/vscode/extensions/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index 143e3df6020a..85c3a17030ef 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -1268,8 +1268,8 @@ let mktplcRef = { publisher = "denoland"; name = "vscode-deno"; - version = "3.47.0"; - hash = "sha256-T8RJi2SiFf6rMTpDQx9VuBv0zNwvusZrwybHeFe5/KQ="; + version = "3.48.0"; + hash = "sha256-AWnX4toFJnIhflc039fN31lrrTaKKXUSrePanWoZnJI="; }; meta = { changelog = "https://marketplace.visualstudio.com/items/denoland.vscode-deno/changelog"; From e61ea7ba8e74d0988b997ec4486ef0eea5b2bc9f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 17 Jan 2026 22:55:40 +0000 Subject: [PATCH 081/396] boxflat: 1.35.3 -> 1.35.5 --- pkgs/by-name/bo/boxflat/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/bo/boxflat/package.nix b/pkgs/by-name/bo/boxflat/package.nix index c583dc98dd6d..a513aa1b5186 100644 --- a/pkgs/by-name/bo/boxflat/package.nix +++ b/pkgs/by-name/bo/boxflat/package.nix @@ -14,14 +14,14 @@ python3Packages.buildPythonPackage rec { pname = "boxflat"; - version = "1.35.3"; + version = "1.35.5"; pyproject = true; src = fetchFromGitHub { owner = "Lawstorant"; repo = "boxflat"; tag = "v${version}"; - hash = "sha256-ayreXC73OLNpnwNuJe0ImC/ch5W+O0lnkuD31ztTqso="; + hash = "sha256-R03mQIsa6T1ApV8SMWvilBfiCGcAWvyZ5hDDgAuGd6s="; }; build-system = [ python3Packages.setuptools ]; From 82d83c564c2d493d1a498c497eaa12bcdc24027d Mon Sep 17 00:00:00 2001 From: Michael Daniels Date: Sat, 17 Jan 2026 19:39:29 -0500 Subject: [PATCH 082/396] ci/supportedBranches: export split() --- ci/supportedBranches.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/supportedBranches.js b/ci/supportedBranches.js index 003b437613f7..2f4bf5abfb40 100755 --- a/ci/supportedBranches.js +++ b/ci/supportedBranches.js @@ -44,7 +44,7 @@ function classify(branch) { } } -module.exports = { classify } +module.exports = { classify, split } // If called directly via CLI, runs the following tests: if (!module.parent) { From b12ff051936a336d5b6560892b95f5420d3f29a3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 01:49:17 +0000 Subject: [PATCH 083/396] xk6: 1.3.2 -> 1.3.3 --- pkgs/by-name/xk/xk6/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/xk/xk6/package.nix b/pkgs/by-name/xk/xk6/package.nix index 1d6fa3f9d8cb..a195a7294499 100644 --- a/pkgs/by-name/xk/xk6/package.nix +++ b/pkgs/by-name/xk/xk6/package.nix @@ -9,13 +9,13 @@ buildGoModule rec { pname = "xk6"; - version = "1.3.2"; + version = "1.3.3"; src = fetchFromGitHub { owner = "grafana"; repo = "xk6"; tag = "v${version}"; - hash = "sha256-5ZrkSYJlHRaEc8Quv2EoPAHp2Th9mE/Vi/scwPt/maE="; + hash = "sha256-qqfrvReO6V7kUV2GouBJBgc/+xOClX2WrbTkrZ+lLtA="; }; vendorHash = null; From a6c391660f56f142d4d11518e8f7367d8bffd9c3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 02:01:15 +0000 Subject: [PATCH 084/396] metee: 6.1.0 -> 6.2.1 --- pkgs/by-name/me/metee/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/me/metee/package.nix b/pkgs/by-name/me/metee/package.nix index 4f4b38bd71f8..042761a11381 100644 --- a/pkgs/by-name/me/metee/package.nix +++ b/pkgs/by-name/me/metee/package.nix @@ -7,12 +7,12 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "metee"; - version = "6.1.0"; + version = "6.2.1"; src = fetchFromGitHub { owner = "intel"; repo = "metee"; tag = finalAttrs.version; - hash = "sha256-ybTi4pFZAkoO6FAyUOLK+ZbTQb7uwu/sqhYxo06SE9A="; + hash = "sha256-TMHc/0N1DUx+aKOCrfBRoQgKj968FIq+FcusyLG0oPI="; }; nativeBuildInputs = [ cmake ]; From 499f03d1e50fac11281253cf089aae9614cd8caf Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 02:10:32 +0000 Subject: [PATCH 085/396] probe-rs-tools: 0.30.0 -> 0.31.0 --- pkgs/by-name/pr/probe-rs-tools/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/pr/probe-rs-tools/package.nix b/pkgs/by-name/pr/probe-rs-tools/package.nix index 1f8dd8d91846..55de3239cb2a 100644 --- a/pkgs/by-name/pr/probe-rs-tools/package.nix +++ b/pkgs/by-name/pr/probe-rs-tools/package.nix @@ -18,16 +18,16 @@ let in rustPlatform.buildRustPackage rec { pname = "probe-rs-tools"; - version = "0.30.0"; + version = "0.31.0"; src = fetchFromGitHub { owner = "probe-rs"; repo = "probe-rs"; tag = "v${version}"; - hash = "sha256-3tVCsMXrNTFhTQit4PNTXtHOXq8GSEWdLBJ9iqtgWyQ="; + hash = "sha256-ZcH2FBKsbBtTYfRQgPfOOODDpyB7VydcO7F7pq8xzD0="; }; - cargoHash = "sha256-CL+aTPllQqa22ENU2FWhBMSe0Mf1MAfemytIiqf0bHk="; + cargoHash = "sha256-fVmwZw34lK6eKkqNT/SW5wzeeyWg6Qp48eso6yibICE="; buildAndTestSubdir = pname; From 13f20dd687572016450a09609d6f721e9cebd953 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 02:13:44 +0000 Subject: [PATCH 086/396] rns: 1.1.2 -> 1.1.3 --- pkgs/development/python-modules/rns/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/rns/default.nix b/pkgs/development/python-modules/rns/default.nix index 696144d28392..607b3d515fef 100644 --- a/pkgs/development/python-modules/rns/default.nix +++ b/pkgs/development/python-modules/rns/default.nix @@ -14,14 +14,14 @@ buildPythonPackage (finalAttrs: { pname = "rns"; - version = "1.1.2"; + version = "1.1.3"; pyproject = true; src = fetchFromGitHub { owner = "markqvist"; repo = "Reticulum"; tag = finalAttrs.version; - hash = "sha256-KX6g9RGPHg3W/gzVaVoPBMpmPQs2jEJaDFDlA6D9Ql8="; + hash = "sha256-Iz/1mSCww/v6wsRTG5j55IRTOjQ6y2eOlBda/CcwsOE="; }; patches = [ From 358869d37af6977869481200d99514adb2264db4 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 02:18:35 +0000 Subject: [PATCH 087/396] python3Packages.dbt-protos: 1.0.415 -> 1.0.421 --- pkgs/development/python-modules/dbt-protos/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/dbt-protos/default.nix b/pkgs/development/python-modules/dbt-protos/default.nix index 97dab4809897..c85ccb7d58c3 100644 --- a/pkgs/development/python-modules/dbt-protos/default.nix +++ b/pkgs/development/python-modules/dbt-protos/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "dbt-protos"; - version = "1.0.415"; + version = "1.0.421"; pyproject = true; src = fetchFromGitHub { owner = "dbt-labs"; repo = "proto-python-public"; tag = "v${version}"; - hash = "sha256-mCvds8tfBmiGjQlSTX4JFyLniCk5E3aIsDnkhie9QmU="; + hash = "sha256-FBbsAP9nvUZnFg2xY6Z1on9sazB0FlG5yKcovw2fBMA="; }; build-system = [ From c145f115f226f0f1aa48f0720ba87dc1a3d5d3ab Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 02:53:31 +0000 Subject: [PATCH 088/396] spacectl: 1.17.2 -> 1.17.3 --- pkgs/by-name/sp/spacectl/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sp/spacectl/package.nix b/pkgs/by-name/sp/spacectl/package.nix index 130e99e39406..ce740e360fb3 100644 --- a/pkgs/by-name/sp/spacectl/package.nix +++ b/pkgs/by-name/sp/spacectl/package.nix @@ -9,13 +9,13 @@ buildGoModule rec { pname = "spacectl"; - version = "1.17.2"; + version = "1.17.3"; src = fetchFromGitHub { owner = "spacelift-io"; repo = "spacectl"; rev = "v${version}"; - hash = "sha256-3z4jlFYhvECbjqmzlXlbgWgy1nPqVTCA35wyqjzszzs="; + hash = "sha256-kH5CVmticNZDDW97iMY+kU7m2bP44PgKvGSZzEgPoFw="; }; vendorHash = "sha256-f/09XZiaYNUZzKM0jITFdUmKt8UQy90K4PGhC6ZupCk="; From 71bdc1e8940231a61d35f75ab7bfb5e6bf21e4f7 Mon Sep 17 00:00:00 2001 From: Sigmanificient Date: Sun, 18 Jan 2026 05:04:41 +0100 Subject: [PATCH 089/396] python313Packages.dtschema: 2025.08 -> 2025.12 --- .../python-modules/dtschema/default.nix | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/pkgs/development/python-modules/dtschema/default.nix b/pkgs/development/python-modules/dtschema/default.nix index eddcadc8dd56..56b28a5ac4f4 100644 --- a/pkgs/development/python-modules/dtschema/default.nix +++ b/pkgs/development/python-modules/dtschema/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "dtschema"; - version = "2025.08"; + version = "2025.12"; pyproject = true; src = fetchFromGitHub { owner = "devicetree-org"; repo = "dt-schema"; tag = "v${version}"; - sha256 = "sha256-SW2WAVB7ZSgKRjIyFdMqe8tRIuM97ZVBg4d0BJC6SBI="; + sha256 = "sha256-DCkZDI0/W/4IkMzaa769vKJxlSMWoEsLIdlyChYd+Mk="; }; nativeBuildInputs = [ setuptools-scm ]; @@ -46,13 +46,7 @@ buildPythonPackage rec { ]; maintainers = with lib.maintainers; [ sorki ]; - broken = ( - # Library not loaded: @rpath/libfdt.1.dylib - stdenv.hostPlatform.isDarwin - || - - # see https://github.com/devicetree-org/dt-schema/issues/108 - lib.versionAtLeast jsonschema.version "4.18" - ); + # Library not loaded: @rpath/libfdt.1.dylib + broken = stdenv.hostPlatform.isDarwin; }; } From f93c2cedfecb677bb644f0b8c63004f9d164a2d9 Mon Sep 17 00:00:00 2001 From: Sigmanificient Date: Sun, 18 Jan 2026 05:04:58 +0100 Subject: [PATCH 090/396] dt-schema: remove python override --- pkgs/by-name/dt/dt-schema/package.nix | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) diff --git a/pkgs/by-name/dt/dt-schema/package.nix b/pkgs/by-name/dt/dt-schema/package.nix index 6aacd1306435..3cffc72ca6fe 100644 --- a/pkgs/by-name/dt/dt-schema/package.nix +++ b/pkgs/by-name/dt/dt-schema/package.nix @@ -1,26 +1,5 @@ { - python3, + python3Packages, }: -let - python = python3.override { - self = python; - packageOverrides = self: super: { - # see https://github.com/devicetree-org/dt-schema/issues/108 - jsonschema = super.jsonschema.overridePythonAttrs (old: rec { - version = "4.17.3"; - - src = old.src.override { - inherit version; - hash = "sha256-D4ZEN6uLYHa6ZwdFPvj5imoNUSqA6T+KvbZ29zfstg0="; - }; - - propagatedBuildInputs = with self; [ - attrs - pyrsistent - ]; - }); - }; - }; -in -python.pkgs.toPythonApplication python.pkgs.dtschema +python3Packages.toPythonApplication python3Packages.dtschema From d7c774fcf728dd6156a17f7cb49f2dd44fdd9de2 Mon Sep 17 00:00:00 2001 From: Sigmanificient Date: Sun, 18 Jan 2026 05:08:20 +0100 Subject: [PATCH 091/396] python313Packages.dtschema: enable tests --- pkgs/development/python-modules/dtschema/default.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/dtschema/default.nix b/pkgs/development/python-modules/dtschema/default.nix index 56b28a5ac4f4..1cd18560ac39 100644 --- a/pkgs/development/python-modules/dtschema/default.nix +++ b/pkgs/development/python-modules/dtschema/default.nix @@ -8,6 +8,8 @@ ruamel-yaml, setuptools-scm, libfdt, + pytestCheckHook, + dtc, }: buildPythonPackage rec { @@ -31,11 +33,15 @@ buildPythonPackage rec { libfdt ]; - # Module has no tests - doCheck = false; - pythonImportsCheck = [ "dtschema" ]; + nativeCheckInputs = [ + pytestCheckHook + dtc + ]; + + enabledTestPaths = [ "test/test-dt-validate.py" ]; + meta = { description = "Tooling for devicetree validation using YAML and jsonschema"; homepage = "https://github.com/devicetree-org/dt-schema/"; From 5130c5d16ebeb1441423cb3399c8f885dd2fcfc0 Mon Sep 17 00:00:00 2001 From: Sigmanificient Date: Sun, 18 Jan 2026 05:09:46 +0100 Subject: [PATCH 092/396] python313Packages.dtschema: modernize --- .../python-modules/dtschema/default.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/development/python-modules/dtschema/default.nix b/pkgs/development/python-modules/dtschema/default.nix index 1cd18560ac39..a4a3037ad2cb 100644 --- a/pkgs/development/python-modules/dtschema/default.nix +++ b/pkgs/development/python-modules/dtschema/default.nix @@ -12,7 +12,7 @@ dtc, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "dtschema"; version = "2025.12"; pyproject = true; @@ -20,13 +20,13 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "devicetree-org"; repo = "dt-schema"; - tag = "v${version}"; - sha256 = "sha256-DCkZDI0/W/4IkMzaa769vKJxlSMWoEsLIdlyChYd+Mk="; + tag = "v${finalAttrs.version}"; + hash = "sha256-DCkZDI0/W/4IkMzaa769vKJxlSMWoEsLIdlyChYd+Mk="; }; - nativeBuildInputs = [ setuptools-scm ]; + build-system = [ setuptools-scm ]; - propagatedBuildInputs = [ + dependencies = [ jsonschema rfc3987 ruamel-yaml @@ -45,7 +45,7 @@ buildPythonPackage rec { meta = { description = "Tooling for devicetree validation using YAML and jsonschema"; homepage = "https://github.com/devicetree-org/dt-schema/"; - changelog = "https://github.com/devicetree-org/dt-schema/releases/tag/v${version}"; + changelog = "https://github.com/devicetree-org/dt-schema/releases/tag/v${finalAttrs.version}"; license = with lib.licenses; [ bsd2 # or gpl2Only @@ -55,4 +55,4 @@ buildPythonPackage rec { # Library not loaded: @rpath/libfdt.1.dylib broken = stdenv.hostPlatform.isDarwin; }; -} +}) From 606a31deb8d8e24357ad904ddfbe0a047ddd83b7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 05:45:32 +0000 Subject: [PATCH 093/396] python3Packages.biocutils: 0.3.3 -> 0.3.4 --- pkgs/development/python-modules/biocutils/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/biocutils/default.nix b/pkgs/development/python-modules/biocutils/default.nix index eaa860c8522d..5d65eb9100ae 100644 --- a/pkgs/development/python-modules/biocutils/default.nix +++ b/pkgs/development/python-modules/biocutils/default.nix @@ -13,14 +13,14 @@ buildPythonPackage rec { pname = "biocutils"; - version = "0.3.3"; + version = "0.3.4"; pyproject = true; src = fetchFromGitHub { owner = "BiocPy"; repo = "BiocUtils"; tag = version; - hash = "sha256-ziKVF2cxOIRt8cEMOsbf5HAgBGG2vLp+DSMpL+hH6JM="; + hash = "sha256-G7g+jjXoKtnp+d7a5NoEtVBEN5Di1P/pWjgiJJv6fHA="; }; build-system = [ From bd0c07e05741dfa853ddccd96b2956aeac8ad64c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 06:01:38 +0000 Subject: [PATCH 094/396] numix-icon-theme-circle: 25.12.27 -> 26.01.11 --- pkgs/by-name/nu/numix-icon-theme-circle/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/nu/numix-icon-theme-circle/package.nix b/pkgs/by-name/nu/numix-icon-theme-circle/package.nix index 0d70e787f41a..7730bb9e2483 100644 --- a/pkgs/by-name/nu/numix-icon-theme-circle/package.nix +++ b/pkgs/by-name/nu/numix-icon-theme-circle/package.nix @@ -10,13 +10,13 @@ stdenvNoCC.mkDerivation rec { pname = "numix-icon-theme-circle"; - version = "25.12.27"; + version = "26.01.11"; src = fetchFromGitHub { owner = "numixproject"; repo = "numix-icon-theme-circle"; rev = version; - sha256 = "sha256-5/PSZdSLpVlS5+dKjDhN82wuCiQRE/J1OEQSihlB81A="; + sha256 = "sha256-L+GO3TJ7UJYIjpsVtWgFkFd313u+E4I4ResNgQz8T70="; }; nativeBuildInputs = [ gtk3 ]; From b074f8faa8b91853a683c3143d3edbafafbe63a9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 06:37:22 +0000 Subject: [PATCH 095/396] routedns: 0.1.128 -> 0.1.130 --- pkgs/by-name/ro/routedns/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ro/routedns/package.nix b/pkgs/by-name/ro/routedns/package.nix index 791558a6393d..84c0cc44cf01 100644 --- a/pkgs/by-name/ro/routedns/package.nix +++ b/pkgs/by-name/ro/routedns/package.nix @@ -7,13 +7,13 @@ buildGoModule rec { pname = "routedns"; - version = "0.1.128"; + version = "0.1.130"; src = fetchFromGitHub { owner = "folbricht"; repo = "routedns"; rev = "v${version}"; - hash = "sha256-jUk0wa+hw0MIXnV1K/n19rGRKKolEf6q+dtKHmnuj3I="; + hash = "sha256-eYtFfRi+w+0xnIZi/OXc+dt/HI/SQxoZphgduK6eETU="; }; vendorHash = "sha256-woInU618JPwVxGDJDZQ6+j9wY6qNSB5Xu8wXf7s2qvQ="; From 3cd37bbfe17a3dd0241e08b1f9e9a411a6409683 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 07:02:53 +0000 Subject: [PATCH 096/396] mcdreforged: 2.15.6 -> 2.15.7 --- pkgs/development/python-modules/mcdreforged/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mcdreforged/default.nix b/pkgs/development/python-modules/mcdreforged/default.nix index 9fe3395d6079..30991c13c275 100644 --- a/pkgs/development/python-modules/mcdreforged/default.nix +++ b/pkgs/development/python-modules/mcdreforged/default.nix @@ -21,14 +21,14 @@ buildPythonPackage rec { pname = "mcdreforged"; - version = "2.15.6"; + version = "2.15.7"; pyproject = true; src = fetchFromGitHub { owner = "MCDReforged"; repo = "MCDReforged"; tag = "v${version}"; - hash = "sha256-k5Mn1GepLoCIiKV8Ys2SZI7hX0rqZKgI6r1l0sM2ty8="; + hash = "sha256-e1JrDh8Zio+TCVCVvH8tBE/tY5ja3Nr3dCQRJwRqYh4="; }; build-system = [ setuptools ]; From 4ba468bf3524e9526ce608ea56a61419452af7fd Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 07:59:46 +0000 Subject: [PATCH 097/396] python3Packages.hcloud: 2.14.0 -> 2.15.0 --- pkgs/development/python-modules/hcloud/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/hcloud/default.nix b/pkgs/development/python-modules/hcloud/default.nix index cfaa7b083694..29d26a7c84d5 100644 --- a/pkgs/development/python-modules/hcloud/default.nix +++ b/pkgs/development/python-modules/hcloud/default.nix @@ -10,12 +10,12 @@ buildPythonPackage rec { pname = "hcloud"; - version = "2.14.0"; + version = "2.15.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-BMaVHZBkfh4KYVqDnB+JDJChTgTPy/llAB0qzl0hvQk="; + hash = "sha256-/Y5mjersmXo/6t5e3Te+BZpT5MvBT7AGCXZnUC737U0="; }; build-system = [ setuptools ]; From 62c086f3d9791128ebfcbbf637106fc3aefb67df Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 08:00:29 +0000 Subject: [PATCH 098/396] pgmetrics: 1.18.0 -> 1.19.0 --- pkgs/by-name/pg/pgmetrics/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/pg/pgmetrics/package.nix b/pkgs/by-name/pg/pgmetrics/package.nix index 7691c6f799b1..b32cdc529e53 100644 --- a/pkgs/by-name/pg/pgmetrics/package.nix +++ b/pkgs/by-name/pg/pgmetrics/package.nix @@ -6,16 +6,16 @@ buildGoModule rec { pname = "pgmetrics"; - version = "1.18.0"; + version = "1.19.0"; src = fetchFromGitHub { owner = "rapidloop"; repo = "pgmetrics"; rev = "v${version}"; - sha256 = "sha256-kaoJZdBzx2DGvoA+aIJnfM2ORTM9xMXHaXEuUD/qqe0="; + sha256 = "sha256-PvixAR6jLhwK4nbGWEAnQkjI+JtSwX2izI7/ksi7qs8="; }; - vendorHash = "sha256-2p8BZw/GB/w99VL5NFIBpmyadNmasqrWVncpBHTyh6Q="; + vendorHash = "sha256-LphlFl56M8G3kncnj66u1CixgBTLvDBtWqXtUjHDY14="; doCheck = false; From df3c86e5ffb4dc5650580b719d1e903306c58074 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Sun, 18 Jan 2026 12:22:37 +0100 Subject: [PATCH 099/396] rcu: 4.0.32 -> 4.0.33 --- pkgs/by-name/rc/rcu/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/rc/rcu/package.nix b/pkgs/by-name/rc/rcu/package.nix index 7a00c9b90c72..9312c9a684f4 100644 --- a/pkgs/by-name/rc/rcu/package.nix +++ b/pkgs/by-name/rc/rcu/package.nix @@ -24,7 +24,7 @@ let in python3Packages.buildPythonApplication rec { pname = "rcu"; - version = "4.0.32"; + version = "4.0.33"; pyproject = false; @@ -32,7 +32,7 @@ python3Packages.buildPythonApplication rec { let src-tarball = requireFile { name = "rcu-${version}-source.tar.gz"; - hash = "sha256-0sJyCRDV76HUy78RBO27AgkXGroL217GNwHp8HMSKx8="; + hash = "sha256-ezbG3qUfUyr9JEXyKTrULYCVm4hA4+nvcHPzJpdLaWY="; url = "https://www.davisr.me/projects/rcu/"; }; in From e70b0cf70270669cf3890679726d821edabdf15e Mon Sep 17 00:00:00 2001 From: h7x4 Date: Sun, 16 Nov 2025 17:15:38 +0900 Subject: [PATCH 100/396] nixos/tests/ringboard: add h7x4 to maintainers --- nixos/tests/ringboard.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/tests/ringboard.nix b/nixos/tests/ringboard.nix index a0bd26c25c51..9825a46d50d1 100644 --- a/nixos/tests/ringboard.nix +++ b/nixos/tests/ringboard.nix @@ -6,7 +6,7 @@ }: { name = "ringboard"; - meta = { inherit (pkgs.ringboard.meta) maintainers; }; + meta.maintainers = pkgs.ringboard.meta.maintainers ++ (with lib.maintainers; [ h7x4 ]); nodes.machine = { imports = [ From cc660fbc680fdcabbd53817f783dbaa6e6c39c09 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Sun, 16 Nov 2025 17:16:09 +0900 Subject: [PATCH 101/396] nixos/tests/ringboard: poll for gedit to show up on screen While polling with `pgrep` earlier, there was a slight chance that the test might start writing before the application had finished initializing. Waiting for the actual application to show up on screen should be a better target for avoiding such a race condition. --- nixos/tests/ringboard.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nixos/tests/ringboard.nix b/nixos/tests/ringboard.nix index 9825a46d50d1..b1072d9f3267 100644 --- a/nixos/tests/ringboard.nix +++ b/nixos/tests/ringboard.nix @@ -17,12 +17,14 @@ test-support.displayManager.auto.user = "alice"; services.xserver.displayManager.sessionCommands = '' - '${lib.getExe pkgs.gedit}' & + '${lib.getExe pkgs.gedit}' my_document & ''; services.ringboard.x11.enable = true; }; + enableOCR = true; + testScript = { nodes, ... }: let @@ -31,7 +33,8 @@ '' @polling_condition def gedit_running(): - machine.succeed("pgrep gedit") + "Check that gedit is running and visible to the user" + machine.wait_for_text("my_document") with subtest("Wait for service startup"): machine.wait_for_unit("graphical.target") From 4ac0b857fb4db229780bf02cdede9276c26e734a Mon Sep 17 00:00:00 2001 From: h7x4 Date: Sun, 16 Nov 2025 17:17:56 +0900 Subject: [PATCH 102/396] nixos/tests/ringboard: add some slight delays between keypresses --- nixos/tests/ringboard.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/nixos/tests/ringboard.nix b/nixos/tests/ringboard.nix index b1072d9f3267..96dc759fbf29 100644 --- a/nixos/tests/ringboard.nix +++ b/nixos/tests/ringboard.nix @@ -43,10 +43,12 @@ with subtest("Ensure clipboard is monitored"): with gedit_running: # type: ignore[union-attr] - machine.send_chars("Hello world!") + machine.send_chars("Hello world!", delay=0.1) + machine.sleep(1) machine.send_key("ctrl-a") + machine.sleep(1) machine.send_key("ctrl-c") - machine.wait_for_console_text("Small selection transfer complete") - machine.succeed("su - '${user}' -c 'ringboard search Hello | grep world!'") + machine.wait_until_succeeds("su - '${user}' -c 'journalctl --user -u ringboard-listener.service --grep \'Small selection transfer complete\'''", timeout=60) + machine.succeed("su - '${user}' -c 'ringboard search Hello | grep world!'") ''; } From 5a17c37606be5a911ccf2a893f8d405d1728d19f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 12:54:09 +0000 Subject: [PATCH 103/396] vunnel: 0.46.4 -> 0.48.0 --- pkgs/by-name/vu/vunnel/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/vu/vunnel/package.nix b/pkgs/by-name/vu/vunnel/package.nix index 9f45fcc25450..1f292d3089fa 100644 --- a/pkgs/by-name/vu/vunnel/package.nix +++ b/pkgs/by-name/vu/vunnel/package.nix @@ -7,14 +7,14 @@ python3.pkgs.buildPythonApplication rec { pname = "vunnel"; - version = "0.46.4"; + version = "0.48.0"; pyproject = true; src = fetchFromGitHub { owner = "anchore"; repo = "vunnel"; tag = "v${version}"; - hash = "sha256-2eopYMfg2jjZMT/FP5923aLoXTKAcwAdCkcyXT8weeY="; + hash = "sha256-D0/DoYmmLeAvGnr6ljE8p0B6dmFi4UHwcWCQRb85OkM="; leaveDotGit = true; }; From 720d87b79e70e85eed20d788ec064585d70fcb73 Mon Sep 17 00:00:00 2001 From: nikstur Date: Sun, 18 Jan 2026 15:06:47 +0100 Subject: [PATCH 104/396] python3Packages.betterproto: drop myself as maintainer --- pkgs/development/python-modules/betterproto/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/python-modules/betterproto/default.nix b/pkgs/development/python-modules/betterproto/default.nix index 20b08f490367..d968849c4b95 100644 --- a/pkgs/development/python-modules/betterproto/default.nix +++ b/pkgs/development/python-modules/betterproto/default.nix @@ -109,6 +109,5 @@ buildPythonPackage (finalAttrs: { homepage = "https://github.com/danielgtaylor/python-betterproto"; changelog = "https://github.com/danielgtaylor/python-betterproto/blob/${finalAttrs.src.tag}/CHANGELOG.md"; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ nikstur ]; }; }) From a12e181af415b260853c58ece1f8c3fe81f940fb Mon Sep 17 00:00:00 2001 From: nikstur Date: Sun, 18 Jan 2026 15:06:58 +0100 Subject: [PATCH 105/396] python3Packages.grpclib: drop myself as maintainer --- pkgs/development/python-modules/grpclib/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/python-modules/grpclib/default.nix b/pkgs/development/python-modules/grpclib/default.nix index fcf657b3a6b5..58802844660c 100644 --- a/pkgs/development/python-modules/grpclib/default.nix +++ b/pkgs/development/python-modules/grpclib/default.nix @@ -50,6 +50,5 @@ buildPythonPackage rec { homepage = "https://github.com/vmagamedov/grpclib"; changelog = "https://github.com/vmagamedov/grpclib/blob/v${version}/docs/changelog/index.rst"; license = lib.licenses.bsd3; - maintainers = with lib.maintainers; [ nikstur ]; }; } From e36eb42d10eaccb19fdc1af645cb32cbc077167c Mon Sep 17 00:00:00 2001 From: nikstur Date: Sun, 18 Jan 2026 15:07:12 +0100 Subject: [PATCH 106/396] python3Packages.plantuml-markdown: drop myself as maintainer --- pkgs/development/python-modules/plantuml-markdown/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/python-modules/plantuml-markdown/default.nix b/pkgs/development/python-modules/plantuml-markdown/default.nix index e5998caeb092..3f203385238a 100644 --- a/pkgs/development/python-modules/plantuml-markdown/default.nix +++ b/pkgs/development/python-modules/plantuml-markdown/default.nix @@ -65,6 +65,5 @@ buildPythonPackage rec { homepage = "https://github.com/mikitex70/plantuml-markdown"; changelog = "https://github.com/mikitex70/plantuml-markdown/releases/tag/${src.tag}"; license = lib.licenses.bsd2; - maintainers = with lib.maintainers; [ nikstur ]; }; } From 619f71f92220652edf88b5fc7072a6021b19176b Mon Sep 17 00:00:00 2001 From: nikstur Date: Sun, 18 Jan 2026 15:07:21 +0100 Subject: [PATCH 107/396] python3Packages.plantuml: drop myself as maintainer --- pkgs/development/python-modules/plantuml/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/python-modules/plantuml/default.nix b/pkgs/development/python-modules/plantuml/default.nix index 29d89e69935e..e2c46cf32417 100644 --- a/pkgs/development/python-modules/plantuml/default.nix +++ b/pkgs/development/python-modules/plantuml/default.nix @@ -33,6 +33,5 @@ buildPythonPackage { description = "Python interface to a plantuml web service instead of having to run java locally"; homepage = "https://github.com/dougn/python-plantuml"; license = lib.licenses.bsd2; - maintainers = with lib.maintainers; [ nikstur ]; }; } From 5266271809bfd8743016f107a8a4bc856fb3f10e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 15:02:21 +0000 Subject: [PATCH 108/396] vscode-extensions.stylelint.vscode-stylelint: 1.6.0 -> 2.0.1 --- pkgs/applications/editors/vscode/extensions/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index af66d232e6e1..b577ce22832f 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -4469,8 +4469,8 @@ let mktplcRef = { name = "vscode-stylelint"; publisher = "stylelint"; - version = "1.6.0"; - hash = "sha256-t0zS4+UZePViqkGgVezy/2CyyqilUKb6byTYukbxqr8="; + version = "2.0.1"; + hash = "sha256-TYUDm+i7Chuybbx91AUxH/oIyZYWpZ5XnYxjhjXGP88="; }; meta = { description = "Official Stylelint extension for Visual Studio Code"; From 9eab1738ceff3c834a39449b13b1d6a4fc7c4262 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 15:19:00 +0000 Subject: [PATCH 109/396] lacy: 0.6.0 -> 0.6.1 --- pkgs/by-name/la/lacy/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/la/lacy/package.nix b/pkgs/by-name/la/lacy/package.nix index 95cecaec55b5..e968d3069dbf 100644 --- a/pkgs/by-name/la/lacy/package.nix +++ b/pkgs/by-name/la/lacy/package.nix @@ -6,18 +6,18 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "lacy"; - version = "0.6.0"; + version = "0.6.1"; src = fetchFromGitHub { owner = "timothebot"; repo = "lacy"; tag = "v${finalAttrs.version}"; - hash = "sha256-NjLCN9RDWusfw1BwSzRQLCx4UhHyMpQZ5+igRG1rX9Q="; + hash = "sha256-3LFJpzuL2ULnStFwW165gH/S8Hjh49QE4R6c0NyKRSI="; }; passthru.updateScript = nix-update-script { }; - cargoHash = "sha256-eE/kyb09AwcYTsyXQ9Yn43QF2veCRAgGkNgykJHCsFE="; + cargoHash = "sha256-OJW29CopdO7lbkr0F2KVnfbRGEGIf8J8Vu8YChjeElY="; meta = { description = "Fast magical cd alternative for lacy terminal navigators"; From dd75bd74ce9035427a4f7e3306eeaf8aebf7e015 Mon Sep 17 00:00:00 2001 From: Thomas Gerbet Date: Sun, 18 Jan 2026 16:52:26 +0100 Subject: [PATCH 110/396] wlc: 1.17.1 -> 1.17.2 Fixes CVE-2026-23535 / https://github.com/WeblateOrg/wlc/security/advisories/GHSA-mmwx-79f6-67jg Fixes #481080 Changes: https://github.com/WeblateOrg/wlc/releases/tag/1.17.2 --- pkgs/by-name/wl/wlc/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/wl/wlc/package.nix b/pkgs/by-name/wl/wlc/package.nix index 06866b932ae9..caea2fc5d649 100644 --- a/pkgs/by-name/wl/wlc/package.nix +++ b/pkgs/by-name/wl/wlc/package.nix @@ -6,12 +6,12 @@ python3.pkgs.buildPythonPackage rec { pname = "wlc"; - version = "1.17.1"; + version = "1.17.2"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-FtxJ1clfvJCggg4h9Lzwq4S4KyejJxppjrB3i7Jiy/Y="; + hash = "sha256-9BM2xNbiNy8efpkZjEhQ2OSl0RJiOGSut16o8yMA14A="; }; build-system = with python3.pkgs; [ setuptools ]; From 122141e8e67f69d0f5a6b22d811237f63e045fd4 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 16:00:46 +0000 Subject: [PATCH 111/396] python3Packages.testrail-api: 1.13.5 -> 1.13.6 --- pkgs/development/python-modules/testrail-api/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/testrail-api/default.nix b/pkgs/development/python-modules/testrail-api/default.nix index 45e7a2b32bda..1af94a75f124 100644 --- a/pkgs/development/python-modules/testrail-api/default.nix +++ b/pkgs/development/python-modules/testrail-api/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "testrail-api"; - version = "1.13.5"; + version = "1.13.6"; pyproject = true; src = fetchFromGitHub { owner = "tolstislon"; repo = "testrail-api"; tag = version; - hash = "sha256-eGKQ32+VOt7T66SVKcbxyAAyN7kVspfTbukv/mldZ8Q="; + hash = "sha256-xCarEmJM+liyh8T8qG8sqSLXMnFN49yZapbktIElSF0="; }; build-system = [ From 43234d11ddc73e675a984d7f66b0c41eb6e787af Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 16:00:55 +0000 Subject: [PATCH 112/396] gate: 0.62.2 -> 0.62.3 --- pkgs/by-name/ga/gate/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ga/gate/package.nix b/pkgs/by-name/ga/gate/package.nix index 367948c351f9..cae6cff91584 100644 --- a/pkgs/by-name/ga/gate/package.nix +++ b/pkgs/by-name/ga/gate/package.nix @@ -6,7 +6,7 @@ let pname = "gate"; - version = "0.62.2"; + version = "0.62.3"; in buildGoModule { inherit pname version; @@ -15,10 +15,10 @@ buildGoModule { owner = "minekube"; repo = "gate"; tag = "v${version}"; - hash = "sha256-WxR2VKlvDFOzIiDPuJLoBa5U9afMrYJ9QTDl0yTgSu4="; + hash = "sha256-tOyXVqmexAWpC2s86aUUjmDp6V+qvP3ve8FrqdtexvU="; }; - vendorHash = "sha256-f7SkECS80Lwkd0xSzHq+x05ZBjBYKXsA4rPidyIAYak="; + vendorHash = "sha256-AZa9u1f8MgnqW0QX6X+naRqukGTxI7WMNY4ZgJHoKyw="; ldflags = [ "-s" From dd378480c4f301eda345ebe2b810f5bd8cfac4f6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 16:11:08 +0000 Subject: [PATCH 113/396] dopamine: 3.0.1 -> 3.0.2 --- pkgs/by-name/do/dopamine/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/do/dopamine/package.nix b/pkgs/by-name/do/dopamine/package.nix index 8ac7f7bf4593..8362a23bb41d 100644 --- a/pkgs/by-name/do/dopamine/package.nix +++ b/pkgs/by-name/do/dopamine/package.nix @@ -7,11 +7,11 @@ }: appimageTools.wrapType2 rec { pname = "dopamine"; - version = "3.0.1"; + version = "3.0.2"; src = fetchurl { url = "https://github.com/digimezzo/dopamine/releases/download/v${version}/Dopamine-${version}.AppImage"; - hash = "sha256-crOW1I8YN7+OyolgeiVvBZ8Zsw0RNUjozmvGgQO1ymA="; + hash = "sha256-Cb3Kwqf4PQW+bQonsPdACzp7gpVTm0DpR8wOcQ1qZFE="; }; nativeBuildInputs = [ makeWrapper ]; From 971ad07fe76347255f028f8fb4cb3c124b2f8f35 Mon Sep 17 00:00:00 2001 From: Devan Carpenter Date: Sat, 17 Jan 2026 16:50:05 -0600 Subject: [PATCH 114/396] selfci: init at 0-unstable-2026-01-17 --- pkgs/by-name/se/selfci/Cargo.toml.patch | 13 +++++++ pkgs/by-name/se/selfci/package.nix | 48 +++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 pkgs/by-name/se/selfci/Cargo.toml.patch create mode 100644 pkgs/by-name/se/selfci/package.nix diff --git a/pkgs/by-name/se/selfci/Cargo.toml.patch b/pkgs/by-name/se/selfci/Cargo.toml.patch new file mode 100644 index 000000000000..ab385872ce7a --- /dev/null +++ b/pkgs/by-name/se/selfci/Cargo.toml.patch @@ -0,0 +1,13 @@ +diff --git a/Cargo.toml b/Cargo.toml +index 8f7a1e2..e2062c4 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -10,7 +10,7 @@ readme = "README.md" + keywords = ["ci"] + categories = ["development-tools"] + authors = ["dpc "] +-rust-version = "1.92" ++rust-version = "1.91" + + [[bin]] + name = "selfci" diff --git a/pkgs/by-name/se/selfci/package.nix b/pkgs/by-name/se/selfci/package.nix new file mode 100644 index 000000000000..a5c4f3d33b83 --- /dev/null +++ b/pkgs/by-name/se/selfci/package.nix @@ -0,0 +1,48 @@ +{ + lib, + fetchgit, + nix-update-script, + rustPlatform, + git, + makeWrapper, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "selfci"; + version = "0-unstable-2026-01-17"; + + src = fetchgit { + url = "https://radicle.dpc.pw/z2tDzYbAXxTQEKTGFVwiJPajkbeDU.git"; + rev = "83e693dada851ce0da32713869d3da02c52ed257"; + hash = "sha256-f0BfHvIQnhhiPie3a+9MeEGzZ+/KcgrbKBneu8Jo+xs="; + }; + + cargoHash = "sha256-Z3f35HIZiNeKeDNFPUVkFvL2OpMWzqRvxOL5/hUEzJw="; + + nativeBuildInputs = [ + makeWrapper + ]; + + patches = [ + ./Cargo.toml.patch + ]; + + doCheck = false; + + postInstall = '' + wrapProgram "$out"/bin/selfci \ + --prefix PATH : ${lib.makeBinPath [ git ]} + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Minimalistic local-first Unix-philosophy-abiding CI"; + homepage = "https://app.radicle.xyz/nodes/radicle.dpc.pw/rad%3Az2tDzYbAXxTQEKTGFVwiJPajkbeDU"; + license = lib.licenses.mpl20; + maintainers = with lib.maintainers; [ + dvn0 + ]; + mainProgram = "selfci"; + }; +}) From a9e514c616120a8821e99004dda406984422b370 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 17:41:48 +0000 Subject: [PATCH 115/396] lxgw-neoxihei: 1.238 -> 1.239 --- pkgs/by-name/lx/lxgw-neoxihei/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/lx/lxgw-neoxihei/package.nix b/pkgs/by-name/lx/lxgw-neoxihei/package.nix index 92f295a4a80a..32e084e89119 100644 --- a/pkgs/by-name/lx/lxgw-neoxihei/package.nix +++ b/pkgs/by-name/lx/lxgw-neoxihei/package.nix @@ -6,11 +6,11 @@ stdenvNoCC.mkDerivation rec { pname = "lxgw-neoxihei"; - version = "1.238"; + version = "1.239"; src = fetchurl { url = "https://github.com/lxgw/LxgwNeoXiHei/releases/download/v${version}/LXGWNeoXiHei.ttf"; - hash = "sha256-DEH63tH3+edrk/Srh89dqNDgevM8CuccUlBpNnGpXKE="; + hash = "sha256-x8ZhP+umMjSESZjf0R2vIbszcs6IUlEVIZKAQD20DxY="; }; dontUnpack = true; From 222f131923003c991dc47b190acf0d34a56baaf6 Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Sun, 18 Jan 2026 12:46:20 -0500 Subject: [PATCH 116/396] matrix-synapse: move setuptools-rust back to build-system --- pkgs/by-name/ma/matrix-synapse-unwrapped/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ma/matrix-synapse-unwrapped/package.nix b/pkgs/by-name/ma/matrix-synapse-unwrapped/package.nix index 3317a0b118ea..c15411e0183f 100644 --- a/pkgs/by-name/ma/matrix-synapse-unwrapped/package.nix +++ b/pkgs/by-name/ma/matrix-synapse-unwrapped/package.nix @@ -33,6 +33,7 @@ python3Packages.buildPythonApplication rec { with python3Packages; [ poetry-core + setuptools-rust ] ++ [ rustPlatform.maturinBuildHook @@ -51,7 +52,7 @@ python3Packages.buildPythonApplication rec { libiconv ]; - pythonRemoveDeps = [ "setuptools_rust" ]; + pythonRemoveDeps = [ "setuptools-rust" ]; dependencies = with python3Packages; @@ -82,7 +83,6 @@ python3Packages.buildPythonApplication rec { pyrsistent pyyaml service-identity - setuptools-rust signedjson sortedcontainers treq From 865304d36fe5cdf946bfd08528a0b9e900f93a99 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 18:46:53 +0000 Subject: [PATCH 117/396] lefthook: 2.0.14 -> 2.0.15 --- pkgs/by-name/le/lefthook/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/le/lefthook/package.nix b/pkgs/by-name/le/lefthook/package.nix index 163cd50866d5..ba0f5327c33a 100644 --- a/pkgs/by-name/le/lefthook/package.nix +++ b/pkgs/by-name/le/lefthook/package.nix @@ -8,7 +8,7 @@ let pname = "lefthook"; - version = "2.0.14"; + version = "2.0.15"; in buildGoModule { inherit pname version; @@ -17,7 +17,7 @@ buildGoModule { owner = "evilmartians"; repo = "lefthook"; rev = "v${version}"; - hash = "sha256-YPDE4KvYW5P93+mb7RWiXBqkGrkzr/fPlVDh1Keizdk="; + hash = "sha256-HBVBH3F6EGLaB2FRgkhdwR9+E9PlthxEs/kckUZJosA="; }; vendorHash = "sha256-fIPvoR/uRI3q/yOl1qS2pE4JdCPc4RC4DEy8LT7Xrs0="; From de9f622b3a51cb24eb8db823bd0a635642c86a5a Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sun, 18 Jan 2026 19:55:38 +0100 Subject: [PATCH 118/396] linux: remove unreferenced file As far as I can tell, this was supposed to be removed in 1965f3c77d37 ("linux: manual-config.nix -> build.nix"), but was mistakenly left in. Fixes: 1965f3c77d37 ("linux: manual-config.nix -> build.nix") --- .../linux/kernel/manual-config.nix | 604 ------------------ 1 file changed, 604 deletions(-) delete mode 100644 pkgs/os-specific/linux/kernel/manual-config.nix diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix deleted file mode 100644 index a41ae39b7eac..000000000000 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ /dev/null @@ -1,604 +0,0 @@ -{ - lib, - stdenv, - buildPackages, - bc, - bison, - flex, - perl, - rsync, - gmp, - libmpc, - mpfr, - openssl, - cpio, - elfutils, - hexdump, - zstd, - python3Minimal, - zlib, - pahole, - kmod, - ubootTools, - fetchpatch, - rustc-unwrapped, - rust-bindgen-unwrapped, - rustPlatform, -}: - -let - lib_ = lib; - stdenv_ = stdenv; - - readConfig = - configfile: - let - matchLine = - line: - let - match = lib.match "(CONFIG_[^=]+)=([ym])" line; - in - lib.optional (match != null) { - name = lib.elemAt match 0; - value = lib.elemAt match 1; - }; - in - lib.listToAttrs (lib.concatMap matchLine (lib.splitString "\n" (builtins.readFile configfile))); -in -lib.makeOverridable ( - { - # The kernel version - version, - # The kernel pname (should be set for variants) - pname ? "linux", - # Position of the Linux build expression - pos ? null, - # Additional kernel make flags - extraMakeFlags ? [ ], - # The name of the kernel module directory - # Needs to be X.Y.Z[-extra], so pad with zeros if needed. - modDirVersion ? null, # derive from version - # The kernel source (tarball, git checkout, etc.) - src, - # a list of { name=..., patch=..., extraConfig=...} patches - kernelPatches ? [ ], - # The kernel .config file - configfile, - # Manually specified nixexpr representing the config - # If unspecified, this will be autodetected from the .config - config ? lib.optionalAttrs (builtins.isPath configfile || allowImportFromDerivation) ( - readConfig configfile - ), - # Custom seed used for CONFIG_GCC_PLUGIN_RANDSTRUCT if enabled. This is - # automatically extended with extra per-version and per-config values. - randstructSeed ? "", - # Extra meta attributes - extraMeta ? { }, - - # for module compatibility - isZen ? false, - isLibre ? false, - isHardened ? false, - - # Whether to utilize the controversial import-from-derivation feature to parse the config - allowImportFromDerivation ? false, - # ignored - features ? null, - lib ? lib_, - stdenv ? stdenv_, - }: - - let - # Provide defaults. Note that we support `null` so that callers don't need to use optionalAttrs, - # which can lead to unnecessary strictness and infinite recursions. - modDirVersion_ = if modDirVersion == null then lib.versions.pad 3 version else modDirVersion; - in - let - # Shadow the un-defaulted parameter; don't want null. - modDirVersion = modDirVersion_; - inherit (lib) - hasAttr - getAttr - optional - optionals - optionalString - optionalAttrs - maintainers - teams - platforms - ; - - drvAttrs = - config_: kernelConf: kernelPatches: configfile: - let - # Folding in `ubootTools` in the default nativeBuildInputs is problematic, as - # it makes updating U-Boot cumbersome, since it will go above the current - # threshold of rebuilds - # - # To prevent these needless rounds of staging for U-Boot builds, we can - # limit the inclusion of ubootTools to target platforms where uImage *may* - # be produced. - # - # This command lists those (kernel-named) platforms: - # .../linux $ grep -l uImage ./arch/*/Makefile | cut -d'/' -f3 | sort - # - # This is still a guesstimation, but since none of our cached platforms - # coincide in that list, this gives us "perfect" decoupling here. - linuxPlatformsUsingUImage = [ - "arc" - "arm" - "csky" - "mips" - "powerpc" - "sh" - "sparc" - "xtensa" - ]; - needsUbootTools = lib.elem stdenv.hostPlatform.linuxArch linuxPlatformsUsingUImage; - - config = - let - attrName = attr: "CONFIG_" + attr; - in - { - isSet = attr: hasAttr (attrName attr) config; - - getValue = attr: if config.isSet attr then getAttr (attrName attr) config else null; - - isYes = attr: (config.getValue attr) == "y"; - - isNo = attr: (config.getValue attr) == "n"; - - isModule = attr: (config.getValue attr) == "m"; - - isEnabled = attr: (config.isModule attr) || (config.isYes attr); - - isDisabled = attr: (!(config.isSet attr)) || (config.isNo attr); - } - // config_; - - isModular = config.isYes "MODULES"; - withRust = config.isYes "RUST"; - - target = kernelConf.target or "vmlinux"; - - buildDTBs = kernelConf.DTB or false; - - # Dependencies that are required to build kernel modules - moduleBuildDependencies = [ - pahole - perl - elfutils - # module makefiles often run uname commands to find out the kernel version - (buildPackages.deterministic-uname.override { inherit modDirVersion; }) - ] - ++ optional (lib.versionAtLeast version "5.13") zstd - ++ optionals withRust [ - rustc-unwrapped - rust-bindgen-unwrapped - ]; - - in - (optionalAttrs isModular { - outputs = [ - "out" - "dev" - "modules" - ]; - }) - // { - __structuredAttrs = true; - - passthru = rec { - inherit - version - modDirVersion - config - kernelPatches - configfile - moduleBuildDependencies - stdenv - ; - inherit - isZen - isHardened - isLibre - withRust - ; - isXen = lib.warn "The isXen attribute is deprecated. All Nixpkgs kernels that support it now have Xen enabled." true; - baseVersion = lib.head (lib.splitString "-rc" version); - kernelOlder = lib.versionOlder baseVersion; - kernelAtLeast = lib.versionAtLeast baseVersion; - }; - - inherit src; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ - bison - flex - perl - bc - openssl - rsync - gmp - libmpc - mpfr - elfutils - zstd - python3Minimal - kmod - hexdump - ] - ++ optional needsUbootTools ubootTools - ++ optionals (lib.versionAtLeast version "5.2") [ - cpio - pahole - zlib - ] - ++ optionals withRust [ - rustc-unwrapped - rust-bindgen-unwrapped - ]; - - env = { - RUST_LIB_SRC = lib.optionalString withRust rustPlatform.rustLibSrc; - - # avoid leaking Rust source file names into the final binary, which adds - # a false dependency on rust-lib-src on targets with uncompressed kernels - KRUSTFLAGS = lib.optionalString withRust "--remap-path-prefix ${rustPlatform.rustLibSrc}=/"; - }; - - patches = - # kernelPatches can contain config changes and no actual patch - lib.filter (p: p != null) (map (p: p.patch) kernelPatches) - # Required for deterministic builds along with some postPatch magic. - ++ optional (lib.versionOlder version "5.19") ./randstruct-provide-seed.patch - ++ optional (lib.versionAtLeast version "5.19") ./randstruct-provide-seed-5.19.patch - # Linux 5.12 marked certain PowerPC-only symbols as GPL, which breaks - # OpenZFS; this was fixed in Linux 5.19 so we backport the fix - # https://github.com/openzfs/zfs/pull/13367 - ++ - optional - ( - lib.versionAtLeast version "5.12" && lib.versionOlder version "5.19" && stdenv.hostPlatform.isPower - ) - (fetchpatch { - url = "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/patch/?id=d9e5c3e9e75162f845880535957b7fd0b4637d23"; - hash = "sha256-bBOyJcP6jUvozFJU0SPTOf3cmnTQ6ZZ4PlHjiniHXLU="; - }); - - postPatch = '' - # Ensure that depmod gets resolved through PATH - sed -i Makefile -e 's|= /sbin/depmod|= depmod|' - - # Some linux-hardened patches now remove certain files in the scripts directory, so the file may not exist. - [[ -f scripts/ld-version.sh ]] && patchShebangs scripts/ld-version.sh - - # Set randstruct seed to a deterministic but diversified value. Note: - # we could have instead patched gen-random-seed.sh to take input from - # the buildFlags, but that would require also patching the kernel's - # toplevel Makefile to add a variable export. This would be likely to - # cause future patch conflicts. - for file in scripts/gen-randstruct-seed.sh scripts/gcc-plugins/gen-random-seed.sh; do - if [ -f "$file" ]; then - substituteInPlace "$file" \ - --replace NIXOS_RANDSTRUCT_SEED \ - $(echo ${randstructSeed}${src} ${placeholder "configfile"} | sha256sum | cut -d ' ' -f 1 | tr -d '\n') - break - fi - done - - patchShebangs scripts - - # also patch arch-specific install scripts - for i in $(find arch -name install.sh); do - patchShebangs "$i" - done - - # unset $src because the build system tries to use it and spams a bunch of warnings - # see: https://github.com/torvalds/linux/commit/b1992c3772e69a6fd0e3fc81cd4d2820c8b6eca0 - unset src - ''; - - configurePhase = '' - runHook preConfigure - - mkdir build - export buildRoot="$(pwd)/build" - - echo "manual-config configurePhase buildRoot=$buildRoot pwd=$PWD" - - if [ -f "$buildRoot/.config" ]; then - echo "Could not link $buildRoot/.config : file exists" - exit 1 - fi - ln -sv ${configfile} $buildRoot/.config - - # reads the existing .config file and prompts the user for options in - # the current kernel source that are not found in the file. - make "''${makeFlags[@]}" oldconfig - runHook postConfigure - - make "''${makeFlags[@]}" prepare - actualModDirVersion="$(cat $buildRoot/include/config/kernel.release)" - if [ "$actualModDirVersion" != "${modDirVersion}" ]; then - echo "Error: modDirVersion ${modDirVersion} specified in the Nix expression is wrong, it should be: $actualModDirVersion" - exit 1 - fi - - buildFlags+=("KBUILD_BUILD_TIMESTAMP=$(date -u -d @$SOURCE_DATE_EPOCH)") - - cd $buildRoot - ''; - - buildFlags = [ - "KBUILD_BUILD_VERSION=1-NixOS" - target - "vmlinux" # for "perf" and things like that - "scripts_gdb" - ] - ++ optional isModular "modules" - ++ optionals buildDTBs [ - "dtbs" - "DTC_FLAGS=-@" - ] - ++ extraMakeFlags; - - installFlags = [ - "INSTALL_PATH=${placeholder "out"}" - ] - ++ (optional isModular "INSTALL_MOD_PATH=${placeholder "modules"}") - ++ optionals buildDTBs [ - "dtbs_install" - "INSTALL_DTBS_PATH=${placeholder "out"}/dtbs" - ]; - - preInstall = - let - # All we really need to do here is copy the final image and System.map to $out, - # and use the kernel's modules_install, firmware_install, dtbs_install, etc. targets - # for the rest. Easy, right? - # - # Unfortunately for us, the obvious way of getting the built image path, - # make -s image_name, does not work correctly, because some architectures - # (*cough* aarch64 *cough*) change KBUILD_IMAGE on the fly in their install targets, - # so we end up attempting to install the thing we didn't actually build. - # - # Thankfully, there's a way out that doesn't involve just hardcoding everything. - # - # The kernel has an install target, which runs a pretty simple shell script - # (located at scripts/install.sh or arch/$arch/boot/install.sh, depending on - # which kernel version you're looking at) that tries to do something sensible. - # - # (it would be great to hijack this script immediately, as it has all the - # information we need passed to it and we don't need it to try and be smart, - # but unfortunately, the exact location of the scripts differs between kernel - # versions, and they're seemingly not considered to be public API at all) - # - # One of the ways it tries to discover what "something sensible" actually is - # is by delegating to what's supposed to be a user-provided install script - # located at ~/bin/installkernel. - # - # (the other options are: - # - a distribution-specific script at /sbin/installkernel, - # which we can't really create in the sandbox easily - # - an architecture-specific script at arch/$arch/boot/install.sh, - # which attempts to guess _something_ and usually guesses very wrong) - # - # More specifically, the install script exec's into ~/bin/installkernel, if one - # exists, with the following arguments: - # - # $1: $KERNELRELEASE - full kernel version string - # $2: $KBUILD_IMAGE - the final image path - # $3: System.map - path to System.map file, seemingly hardcoded everywhere - # $4: $INSTALL_PATH - path to the destination directory as specified in installFlags - # - # $2 is exactly what we want, so hijack the script and use the knowledge given to it - # by the makefile overlords for our own nefarious ends. - # - # Note that the makefiles specifically look in ~/bin/installkernel, and - # writeShellScriptBin writes the script to /bin/installkernel, - # so HOME needs to be set to just the store path. - # - # FIXME: figure out a less roundabout way of doing this. - installkernel = buildPackages.writeShellScriptBin "installkernel" '' - cp -av $2 $4 - cp -av $3 $4 - ''; - in - '' - installFlags+=("-j$NIX_BUILD_CORES") - export HOME=${installkernel} - ''; - - # Some image types need special install targets (e.g. uImage is installed with make uinstall on arm) - installTargets = [ - (kernelConf.installTarget or ( - if target == "uImage" && stdenv.hostPlatform.linuxArch == "arm" then - "uinstall" - else if - (target == "zImage" || target == "Image.gz" || target == "vmlinuz.efi") - && builtins.elem stdenv.hostPlatform.linuxArch [ - "arm" - "arm64" - "parisc" - "riscv" - ] - then - "zinstall" - else - "install" - ) - ) - ]; - - # We remove a bunch of stuff that is symlinked from other places to save space, - # which trips the broken symlink check. So, just skip it. We'll know if it explodes. - dontCheckForBrokenSymlinks = true; - - postInstall = optionalString isModular '' - mkdir -p $dev - cp vmlinux $dev/ - - mkdir -p $dev/lib/modules/${modDirVersion}/build/scripts - cp -rL ../scripts/gdb/ $dev/lib/modules/${modDirVersion}/build/scripts - - if [ -z "''${dontStrip-}" ]; then - installFlags+=("INSTALL_MOD_STRIP=1") - fi - make modules_install "''${makeFlags[@]}" "''${installFlags[@]}" - unlink $modules/lib/modules/${modDirVersion}/build - - mkdir -p $dev/lib/modules/${modDirVersion}/{build,source} - - # To save space, exclude a bunch of unneeded stuff when copying. - (cd .. && rsync --archive --prune-empty-dirs \ - --exclude='/build/' \ - * $dev/lib/modules/${modDirVersion}/source/) - - cd $dev/lib/modules/${modDirVersion}/source - - cp $buildRoot/{.config,Module.symvers} $dev/lib/modules/${modDirVersion}/build - make modules_prepare "''${makeFlags[@]}" O=$dev/lib/modules/${modDirVersion}/build - - # For reproducibility, removes accidental leftovers from a `cc1` call - # from a `try-run` call from the Makefile - rm -f $dev/lib/modules/${modDirVersion}/build/.[0-9]*.d - - # Keep some extra files on some arches (powerpc, aarch64) - for f in arch/powerpc/lib/crtsavres.o arch/arm64/kernel/ftrace-mod.o; do - if [ -f "$buildRoot/$f" ]; then - mkdir -p "$(dirname $dev/lib/modules/${modDirVersion}/build/$f)" - cp $buildRoot/$f $dev/lib/modules/${modDirVersion}/build/$f - fi - done - - # !!! No documentation on how much of the source tree must be kept - # If/when kernel builds fail due to missing files, you can add - # them here. Note that we may see packages requiring headers - # from drivers/ in the future; it adds 50M to keep all of its - # headers on 3.10 though. - - chmod u+w -R .. - buildArchDir="$dev/lib/modules/${modDirVersion}/build/arch" - - # Remove unused arches - for d in $(cd arch/; ls); do - if [ -d "$buildArchDir/$d" ]; then continue; fi - if [ -d "$buildArchDir/arm64" ] && [ "$d" = arm ]; then continue; fi - rm -rf arch/$d - done - - # Remove all driver-specific code (50M of which is headers) - rm -fR drivers - - # Keep all headers - find . -type f -name '*.h' -print0 | xargs -0 -r chmod u-w - - # Keep linker scripts (they are required for out-of-tree modules on aarch64) - find . -type f -name '*.lds' -print0 | xargs -0 -r chmod u-w - - # Keep root and arch-specific Makefiles - chmod u-w Makefile arch/*/Makefile* - - # Keep whole scripts dir - chmod u-w -R scripts - - # Delete everything not kept - find . -type f -perm -u=w -print0 | xargs -0 -r rm - - # Delete empty directories - find -empty -type d -delete - ''; - - requiredSystemFeatures = [ "big-parallel" ]; - - meta = { - # https://github.com/NixOS/nixpkgs/pull/345534#issuecomment-2391238381 - broken = withRust && lib.versionOlder version "6.12"; - - description = - "The Linux kernel" - + ( - if kernelPatches == [ ] then - "" - else - " (with patches: " + lib.concatStringsSep ", " (map (x: x.name) kernelPatches) + ")" - ); - license = lib.licenses.gpl2Only; - homepage = "https://www.kernel.org/"; - maintainers = [ maintainers.thoughtpolice ]; - teams = [ teams.linux-kernel ]; - platforms = platforms.linux; - badPlatforms = - lib.optionals (lib.versionOlder version "4.15") [ - "riscv32-linux" - "riscv64-linux" - ] - ++ lib.optional (lib.versionOlder version "5.19") "loongarch64-linux"; - timeout = 14400; # 4 hours - identifiers.cpeParts = { - part = "o"; - vendor = "linux"; - product = "linux_kernel"; - inherit version; - update = "*"; - }; - } - // extraMeta; - }; - - commonMakeFlags = import ./common-flags.nix { - inherit - lib - stdenv - buildPackages - extraMakeFlags - ; - }; - in - - stdenv.mkDerivation ( - builtins.foldl' lib.recursiveUpdate { } [ - (drvAttrs config stdenv.hostPlatform.linux-kernel kernelPatches configfile) - { - inherit pname version; - - enableParallelBuilding = true; - - hardeningDisable = [ - "bindnow" - "format" - "fortify" - "stackprotector" - "pic" - ]; - - makeFlags = [ - "O=$(buildRoot)" - - # We have a `modules` variable in the environment for our - # split output, but the kernel Makefiles also define their - # own `modules` variable. Their definition wins, but Make - # remembers that the variable was originally from the - # environment and exports it to all the build recipes. This - # breaks the build with an “Argument list too long” error due - # to passing the huge list of every module object file in the - # environment of every process invoked by every build recipe. - # - # We use `--eval` here to undefine the inherited environment - # variable before any Makefiles are read, ensuring that the - # kernel’s definition creates a new, unexported variable. - "--eval=undefine modules" - ] - ++ commonMakeFlags; - - passthru = { inherit commonMakeFlags; }; - - karch = stdenv.hostPlatform.linuxArch; - } - (optionalAttrs (pos != null) { inherit pos; }) - ] - ) -) From 97568a3ed509baee25547fcc8e8ca8cf05a5a4bf Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 19:12:12 +0000 Subject: [PATCH 119/396] amp-cli: 0.0.1768219292-g8af118 -> 0.0.1768760544-gf06f5a --- pkgs/by-name/am/amp-cli/package-lock.json | 8 ++++---- pkgs/by-name/am/amp-cli/package.nix | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/am/amp-cli/package-lock.json b/pkgs/by-name/am/amp-cli/package-lock.json index 0cd60f0c6c0a..fbef1fd7a31c 100644 --- a/pkgs/by-name/am/amp-cli/package-lock.json +++ b/pkgs/by-name/am/amp-cli/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "dependencies": { - "@sourcegraph/amp": "^0.0.1768219292-g8af118" + "@sourcegraph/amp": "^0.0.1768760544-gf06f5a" } }, "node_modules/@napi-rs/keyring": { @@ -228,9 +228,9 @@ } }, "node_modules/@sourcegraph/amp": { - "version": "0.0.1768219292-g8af118", - "resolved": "https://registry.npmjs.org/@sourcegraph/amp/-/amp-0.0.1768219292-g8af118.tgz", - "integrity": "sha512-GW5MyNOiTu4G4cY29UI/0ttXu4b2QRwjmz4I9pvZqvIFrMmotBKC4wQinj8Dt6jD0ey7284Rhm8xHJ1iRtMoxA==", + "version": "0.0.1768760544-gf06f5a", + "resolved": "https://registry.npmjs.org/@sourcegraph/amp/-/amp-0.0.1768760544-gf06f5a.tgz", + "integrity": "sha512-ECw/n1n3aKERHW8qo5KaFgKgLDj4zJElFsyHnAS10BRv3ON0T6BPbboMvqvtYq1NEeX00QGpBDO2u0Q1+k3oGQ==", "license": "Amp Commercial License", "dependencies": { "@napi-rs/keyring": "1.1.9" diff --git a/pkgs/by-name/am/amp-cli/package.nix b/pkgs/by-name/am/amp-cli/package.nix index 126cb68a80a5..a774b7822597 100644 --- a/pkgs/by-name/am/amp-cli/package.nix +++ b/pkgs/by-name/am/amp-cli/package.nix @@ -9,11 +9,11 @@ buildNpmPackage (finalAttrs: { pname = "amp-cli"; - version = "0.0.1768219292-g8af118"; + version = "0.0.1768760544-gf06f5a"; src = fetchzip { url = "https://registry.npmjs.org/@sourcegraph/amp/-/amp-${finalAttrs.version}.tgz"; - hash = "sha256-DstiWCfox5CuHKfy3EgLk7N8KK67txuMG/flriiDH3I="; + hash = "sha256-URgYg3SZXeHrw+xXiXC1BDe0/ZUFRu9mDmqtTIA9ObU="; }; postPatch = '' @@ -45,7 +45,7 @@ buildNpmPackage (finalAttrs: { chmod +x bin/amp-wrapper.js ''; - npmDepsHash = "sha256-oB8YPiKoCG6+oNGlE6YdZ6F/6FEq96qJq/tdC164nrM="; + npmDepsHash = "sha256-7r522RT+38rjv1YqjhR9XIhWYoxVHmRUKeYfToCbsHA="; propagatedBuildInputs = [ ripgrep From 8280c62e694e91ed3ac47274aaa9325f4c69d483 Mon Sep 17 00:00:00 2001 From: FliegendeWurst Date: Thu, 4 Dec 2025 16:34:29 +0100 Subject: [PATCH 120/396] gradle_9: 9.2.1 -> 9.3.0 https://docs.gradle.org/9.3.0/release-notes.html --- pkgs/development/tools/build-managers/gradle/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix index c6b337734e08..892f559e0b45 100644 --- a/pkgs/development/tools/build-managers/gradle/default.nix +++ b/pkgs/development/tools/build-managers/gradle/default.nix @@ -364,8 +364,8 @@ rec { # https://docs.gradle.org/current/userguide/compatibility.html gradle_9 = mkGradle { - version = "9.2.1"; - hash = "sha256-cvRMn468sa9Dg49F7lxKqcVESJizRoqz9K97YHbFvD8="; + version = "9.3.0"; + hash = "sha256-DVhfadoJH8Wyvs7Yd/6rVaMGTUO4odRq6weZawkV4OA="; defaultJava = jdk21; }; gradle_8 = mkGradle { From c7f45a40fd49e35773e60dd500e30795ed4b3f27 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 19:41:11 +0000 Subject: [PATCH 121/396] python3Packages.botocore-stubs: 1.42.29 -> 1.42.30 --- pkgs/development/python-modules/botocore-stubs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/botocore-stubs/default.nix b/pkgs/development/python-modules/botocore-stubs/default.nix index faa5bbbc67e3..7f568655bc4b 100644 --- a/pkgs/development/python-modules/botocore-stubs/default.nix +++ b/pkgs/development/python-modules/botocore-stubs/default.nix @@ -9,13 +9,13 @@ buildPythonPackage (finalAttrs: { pname = "botocore-stubs"; - version = "1.42.29"; + version = "1.42.30"; pyproject = true; src = fetchPypi { pname = "botocore_stubs"; inherit (finalAttrs) version; - hash = "sha256-8vbtyp1TexhlmSqTkqGBTN95PWAxl4uxZJhgWodYJmo="; + hash = "sha256-xNEWeOsXImP+sd6AVFLDdtnBHlTxkDp8+hMrp2XVe30="; }; build-system = [ setuptools ]; From 098260877e139fd0a7886c498005dffea041dda8 Mon Sep 17 00:00:00 2001 From: K900 Date: Sun, 18 Jan 2026 22:43:05 +0300 Subject: [PATCH 122/396] nixos/libinput: condition the X11 bits on X11 actually being enabled --- nixos/modules/services/hardware/libinput.nix | 61 ++++++++++---------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/nixos/modules/services/hardware/libinput.nix b/nixos/modules/services/hardware/libinput.nix index 1cae86827d73..7cfce7651b54 100644 --- a/nixos/modules/services/hardware/libinput.nix +++ b/nixos/modules/services/hardware/libinput.nix @@ -431,39 +431,42 @@ in }; }; - config = lib.mkIf cfg.enable { + config = lib.mkMerge [ + (lib.mkIf cfg.enable { + services.udev.packages = [ pkgs.libinput.out ]; + }) - services.xserver.modules = [ pkgs.xorg.xf86inputlibinput ]; + (lib.mkIf (cfg.enable && config.services.xserver.enable) { + services.xserver.modules = [ pkgs.xorg.xf86inputlibinput ]; - environment.systemPackages = [ pkgs.xorg.xf86inputlibinput ]; + # for man pages + environment.systemPackages = [ pkgs.xorg.xf86inputlibinput ]; - environment.etc = - let - cfgPath = "X11/xorg.conf.d/40-libinput.conf"; - in - { - ${cfgPath} = { - source = pkgs.xorg.xf86inputlibinput.out + "/share/" + cfgPath; - }; - }; - - services.udev.packages = [ pkgs.libinput.out ]; - - services.xserver.inputClassSections = [ - (mkX11ConfigForDevice "mouse" "Pointer") - (mkX11ConfigForDevice "touchpad" "Touchpad") - ]; - - assertions = [ - # already present in synaptics.nix - /* + environment.etc = + let + cfgPath = "X11/xorg.conf.d/40-libinput.conf"; + in { - assertion = !config.services.xserver.synaptics.enable; - message = "Synaptics and libinput are incompatible, you cannot enable both (in services.xserver)."; - } - */ - ]; + ${cfgPath} = { + source = pkgs.xorg.xf86inputlibinput.out + "/share/" + cfgPath; + }; + }; - }; + services.xserver.inputClassSections = [ + (mkX11ConfigForDevice "mouse" "Pointer") + (mkX11ConfigForDevice "touchpad" "Touchpad") + ]; + + assertions = [ + # already present in synaptics.nix + /* + { + assertion = !config.services.xserver.synaptics.enable; + message = "Synaptics and libinput are incompatible, you cannot enable both (in services.xserver)."; + } + */ + ]; + }) + ]; } From a7b16d982a00c8c273f6832dba3db3f305ef4a44 Mon Sep 17 00:00:00 2001 From: tuhana Date: Sun, 18 Jan 2026 22:53:22 +0300 Subject: [PATCH 123/396] cloudflare-warp{,-headless}: fix `updateScript` shell script --- pkgs/by-name/cl/cloudflare-warp/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/cl/cloudflare-warp/package.nix b/pkgs/by-name/cl/cloudflare-warp/package.nix index 1715759a7690..61538f11fc1b 100644 --- a/pkgs/by-name/cl/cloudflare-warp/package.nix +++ b/pkgs/by-name/cl/cloudflare-warp/package.nix @@ -150,7 +150,7 @@ stdenv.mkDerivation (finalAttrs: { -H 'Accept: application/vnd.github+json' \ -H 'X-GitHub-Api-Version: 2022-11-28' \ 'https://api.github.com/repos/cloudflare/cloudflare-docs/git/trees/production?recursive=true' | - jq 'last(.tree.[] | select(.path | startswith("src/content/warp-releases/linux/ga/"))).path' | + jq -r '[.tree[].path | select(startswith("src/content/warp-releases/linux/ga/"))] | max_by(split("/")[-1] | split(".") | map(tonumber?))' | rg '([^/]+)\.0\.yaml\b' --only-matching --replace '$1' )" From b3ecff5a4a9f82d2cafd4aed1a2cec01a50259fe Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 20:18:59 +0000 Subject: [PATCH 124/396] hawkeye: 6.4.0 -> 6.4.1 --- pkgs/by-name/ha/hawkeye/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ha/hawkeye/package.nix b/pkgs/by-name/ha/hawkeye/package.nix index cb26366ba51c..e054f1583460 100644 --- a/pkgs/by-name/ha/hawkeye/package.nix +++ b/pkgs/by-name/ha/hawkeye/package.nix @@ -7,16 +7,16 @@ rustPackages.rustPlatform.buildRustPackage (finalAttrs: { pname = "hawkeye"; - version = "6.4.0"; + version = "6.4.1"; src = fetchFromGitHub { owner = "korandoru"; repo = "hawkeye"; tag = "v${finalAttrs.version}"; - hash = "sha256-iK6h4xxZzahK045711TWbhjxwWNPShOX7V8HMmADkaA="; + hash = "sha256-k+FXv4TJuIgsgFaci3I5HTgjd7PeLJDpPGCH6Tx81Kw="; }; - cargoHash = "sha256-QmVERRi4rB92Z7hn5gQJaWNQCQrzGC9lf8eHjUODmv0="; + cargoHash = "sha256-T2OH/dbs0SXk/0PkUImv3jq71Z1luhTbjsb/sSr5yBY="; nativeBuildInputs = [ pkg-config From e0b7c678e33eee80579b9c4721233794d286f7df Mon Sep 17 00:00:00 2001 From: FlameFlag Date: Sun, 18 Jan 2026 23:30:58 +0200 Subject: [PATCH 125/396] whisper-cpp: 1.8.2 -> 1.8.3 Diff: https://github.com/ggml-org/whisper.cpp/compare/v1.8.2...v1.8.3 Changelog: https://github.com/ggml-org/whisper.cpp/releases/tag/v1.8.3 --- pkgs/by-name/wh/whisper-cpp/package.nix | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/wh/whisper-cpp/package.nix b/pkgs/by-name/wh/whisper-cpp/package.nix index d7b745d00558..25d1f4e3d5f5 100644 --- a/pkgs/by-name/wh/whisper-cpp/package.nix +++ b/pkgs/by-name/wh/whisper-cpp/package.nix @@ -74,13 +74,13 @@ let in effectiveStdenv.mkDerivation (finalAttrs: { pname = "whisper-cpp"; - version = "1.8.2"; + version = "1.8.3"; src = fetchFromGitHub { owner = "ggml-org"; repo = "whisper.cpp"; tag = "v${finalAttrs.version}"; - hash = "sha256-OU5mDnLZHmtdSEN5u0syJcU91L+NCO45f9eG6OsgFfU="; + hash = "sha256-TeS1lGKEzkHOoBemy/tMGtIsy0iouj9DTYIgTjUNcQk="; }; # The upstream download script tries to download the models to the @@ -158,9 +158,6 @@ effectiveStdenv.mkDerivation (finalAttrs: { ]; postInstall = '' - # Add "whisper-cpp" prefix before every command - mv -v "$out/bin/"{quantize,whisper-quantize} - install -v -D -m755 "$src/models/download-ggml-model.sh" "$out/bin/whisper-cpp-download-ggml-model" wrapProgram "$out/bin/whisper-cpp-download-ggml-model" \ From 41044d8d70b89bebbadc0062a56d7cadf8f21e92 Mon Sep 17 00:00:00 2001 From: figsoda Date: Sun, 18 Jan 2026 16:37:42 -0500 Subject: [PATCH 126/396] maintainers: add figsoda --- maintainers/maintainer-list.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 2484f0dc7bce..a7f18929b11b 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -8623,6 +8623,13 @@ githubId = 52276064; name = "figboy9"; }; + figsoda = { + email = "figsoda@pm.me"; + matrix = "@figsoda:matrix.org"; + github = "figsoda"; + githubId = 40620903; + name = "figsoda"; + }; fionera = { email = "nix@fionera.de"; github = "fionera"; From bf8fd1821fd290a02b784dfc2700456cac269ab1 Mon Sep 17 00:00:00 2001 From: figsoda Date: Sun, 18 Jan 2026 16:25:15 -0500 Subject: [PATCH 127/396] nurl: add figsoda to maintainers --- pkgs/by-name/nu/nurl/package.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/nu/nurl/package.nix b/pkgs/by-name/nu/nurl/package.nix index 88d1ae1c0311..0211d0575337 100644 --- a/pkgs/by-name/nu/nurl/package.nix +++ b/pkgs/by-name/nu/nurl/package.nix @@ -52,7 +52,10 @@ rustPlatform.buildRustPackage rec { homepage = "https://github.com/nix-community/nurl"; changelog = "https://github.com/nix-community/nurl/blob/v${version}/CHANGELOG.md"; license = lib.licenses.mpl20; - maintainers = [ lib.maintainers.matthiasbeyer ]; + maintainers = with lib.maintainers; [ + figsoda + matthiasbeyer + ]; mainProgram = "nurl"; }; } From 5a60e18597fe14881f7ef684e16a65e7477c9e13 Mon Sep 17 00:00:00 2001 From: figsoda Date: Sun, 18 Jan 2026 16:25:55 -0500 Subject: [PATCH 128/396] nix-init: add figsoda to maintainers --- pkgs/by-name/ni/nix-init/package.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ni/nix-init/package.nix b/pkgs/by-name/ni/nix-init/package.nix index e6a84d96ea5e..fee8f60c7566 100644 --- a/pkgs/by-name/ni/nix-init/package.nix +++ b/pkgs/by-name/ni/nix-init/package.nix @@ -95,6 +95,9 @@ rustPlatform.buildRustPackage (finalAttrs: { homepage = "https://github.com/nix-community/nix-init"; changelog = "https://github.com/nix-community/nix-init/blob/${finalAttrs.src.tag}/CHANGELOG.md"; license = lib.licenses.mpl20; - maintainers = [ lib.maintainers.eclairevoyant ]; + maintainers = with lib.maintainers; [ + eclairevoyant + figsoda + ]; }; }) From 7b609d9b939971c14678743ea445bdca9314504d Mon Sep 17 00:00:00 2001 From: Anthony Roussel Date: Sun, 18 Jan 2026 21:41:27 +0100 Subject: [PATCH 129/396] awscli2: 2.32.15 -> 2.33.2 Diff: https://github.com/aws/aws-cli/compare/2.32.15...2.33.2 Changelog: https://github.com/aws/aws-cli/blob/2.33.2/CHANGELOG.rst --- pkgs/by-name/aw/awscli2/package.nix | 37 +++++++++-------------------- 1 file changed, 11 insertions(+), 26 deletions(-) diff --git a/pkgs/by-name/aw/awscli2/package.nix b/pkgs/by-name/aw/awscli2/package.nix index b8a8e5356aa5..7557d14a22b6 100644 --- a/pkgs/by-name/aw/awscli2/package.nix +++ b/pkgs/by-name/aw/awscli2/package.nix @@ -18,11 +18,7 @@ let py = python3 // { pkgs = python3.pkgs.overrideScope ( final: prev: { - sphinx = prev.sphinx.overridePythonAttrs (prev: { - disabledTests = prev.disabledTests ++ [ - "test_check_link_response_only" # fails on hydra https://hydra.nixos.org/build/242624087/nixlog/1 - ]; - }); + # https://github.com/NixOS/nixpkgs/issues/449266 prompt-toolkit = prev.prompt-toolkit.overridePythonAttrs (prev: rec { version = "3.0.51"; src = prev.src.override { @@ -30,6 +26,9 @@ let hash = "sha256-pNYmjAgnP9nK40VS/qvPR3g+809Yra2ISASWJDdQKrU="; }; }); + + # backends/build_system/utils.py cannot parse PEP 440 version + # for python-dateutil 2.9.0.post0 (eg. post0) python-dateutil = prev.python-dateutil.overridePythonAttrs (prev: rec { version = "2.8.2"; format = "setuptools"; @@ -48,24 +47,6 @@ let ]; postPatch = null; }); - ruamel-yaml = prev.ruamel-yaml.overridePythonAttrs (prev: rec { - version = "0.17.21"; - src = prev.src.override { - inherit version; - hash = "sha256-i3zml6LyEnUqNcGsQURx3BbEJMlXO+SSa1b/P10jt68="; - }; - }); - urllib3 = prev.urllib3.overridePythonAttrs (prev: rec { - version = "1.26.18"; - build-system = with final; [ - setuptools - ]; - postPatch = null; - src = prev.src.override { - inherit version; - hash = "sha256-+OzBu6VmdBNFfFKauVW/jGe0XbeZ0VkGYmFxnjKFgKA="; - }; - }); } ); }; @@ -73,14 +54,14 @@ let in py.pkgs.buildPythonApplication rec { pname = "awscli2"; - version = "2.32.15"; # N.B: if you change this, check if overrides are still up-to-date + version = "2.33.2"; # N.B: if you change this, check if overrides are still up-to-date pyproject = true; src = fetchFromGitHub { owner = "aws"; repo = "aws-cli"; tag = version; - hash = "sha256-TOXoArw33exbMfKBnNSECymYS8hVzPoVOA7PWzbnroc="; + hash = "sha256-dAtcYDdrZASrwBjQfnZ4DUR4F5WhY59/UX92QcILavs="; }; postPatch = '' @@ -90,7 +71,8 @@ py.pkgs.buildPythonApplication rec { --replace-fail 'distro>=1.5.0,<1.9.0' 'distro>=1.5.0' \ --replace-fail 'docutils>=0.10,<0.20' 'docutils>=0.10' \ --replace-fail 'prompt-toolkit>=3.0.24,<3.0.52' 'prompt-toolkit>=3.0.24' \ - --replace-fail 'ruamel.yaml.clib>=0.2.0,<=0.2.12' 'ruamel.yaml.clib>=0.2.0' \ + --replace-fail 'ruamel.yaml>=0.15.0,<=0.17.21' 'ruamel.yaml>=0.15.0' \ + --replace-fail 'ruamel.yaml.clib>=0.2.0,<=0.2.12' 'ruamel.yaml.clib>=0.2.0' substituteInPlace requirements-base.txt \ --replace-fail "wheel==0.43.0" "wheel>=0.43.0" @@ -180,6 +162,9 @@ py.pkgs.buildPythonApplication rec { # Requires networking (socket binding not possible in sandbox) "test_is_socket" "test_is_special_file_warning" + + # Disable slow tests + "test_details_disabled_for_choice_wo_details" ]; pythonImportsCheck = [ From c993742d9de3af88609ffaf4b4e35547efbe20bf Mon Sep 17 00:00:00 2001 From: emilylange Date: Sun, 18 Jan 2026 22:45:25 +0100 Subject: [PATCH 130/396] chromium: fix unsubstituted placeholders in `.desktop` like `@@EXTRA_DESKTOP_ENTRIES@@` and `@@URI_SCHEME@@` and add a simple check to prevent this from happening again. --- .../networking/browsers/chromium/browser.nix | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix index 99d0f4bd1a68..2c88fd184cfa 100644 --- a/pkgs/applications/networking/browsers/chromium/browser.nix +++ b/pkgs/applications/networking/browsers/chromium/browser.nix @@ -62,19 +62,20 @@ mkChromiumDerivation (base: rec { $out/share/applications/chromium-browser.desktop substituteInPlace $out/share/applications/chromium-browser.desktop \ - --replace "@@MENUNAME@@" "Chromium" \ - --replace "@@PACKAGE@@" "chromium" \ - --replace "Exec=/usr/bin/@@USR_BIN_SYMLINK_NAME@@" "Exec=chromium" - - # Append more mime types to the end - sed -i '/^MimeType=/ s,$,x-scheme-handler/webcal;x-scheme-handler/mailto;x-scheme-handler/about;x-scheme-handler/unknown,' \ - $out/share/applications/chromium-browser.desktop + --replace-fail "@@MENUNAME@@" "Chromium" \ + --replace-fail "@@PACKAGE@@" "chromium" \ + --replace-fail "/usr/bin/@@USR_BIN_SYMLINK_NAME@@" "chromium" \ + --replace-fail "@@URI_SCHEME@@" "x-scheme-handler/chromium;" \ + --replace-fail "@@EXTRA_DESKTOP_ENTRIES@@" "" # See https://github.com/NixOS/nixpkgs/issues/12433 - sed -i \ - -e '/\[Desktop Entry\]/a\' \ - -e 'StartupWMClass=chromium-browser' \ - $out/share/applications/chromium-browser.desktop + substituteInPlace $out/share/applications/chromium-browser.desktop \ + --replace-fail "[Desktop Entry]" "[Desktop Entry]''\nStartupWMClass=chromium-browser" + + if grep -F '@@' $out/share/applications/chromium-browser.desktop ; then + echo "error: chromium-browser.desktop contains unsubstituted placeholders" >&2 + exit 1 + fi ''; passthru = { inherit sandboxExecutableName; }; From 77ed1de0b75716f43518586e5142f566b9a91fa1 Mon Sep 17 00:00:00 2001 From: mana-byte Date: Sun, 18 Jan 2026 22:58:34 +0100 Subject: [PATCH 131/396] python3Packages.ultralytics: 8.3.221 -> 8.4.6 --- .../python-modules/ultralytics/default.nix | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pkgs/development/python-modules/ultralytics/default.nix b/pkgs/development/python-modules/ultralytics/default.nix index 7e9e98048e7a..dba583b0a608 100644 --- a/pkgs/development/python-modules/ultralytics/default.nix +++ b/pkgs/development/python-modules/ultralytics/default.nix @@ -32,16 +32,16 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "ultralytics"; - version = "8.3.221"; + version = "8.4.6"; pyproject = true; src = fetchFromGitHub { owner = "ultralytics"; repo = "ultralytics"; - tag = "v${version}"; - hash = "sha256-oQuiAq1QJlgrEDk26/+pcIifFBO/ckH1qG7niEXbMIo="; + tag = "v${finalAttrs.version}"; + hash = "sha256-kNOldJvJlyBkV7VeETtxQJdtToJyGID2dEIq1z0Fg1c="; }; build-system = [ setuptools ]; @@ -86,6 +86,7 @@ buildPythonPackage rec { disabledTests = [ # also remove the individual tests that require internet + "test_predict_gray_and_4ch" "test_all_model_yamls" "test_data_annotator" "test_labels_and_crops" @@ -129,10 +130,10 @@ buildPythonPackage rec { meta = { homepage = "https://github.com/ultralytics/ultralytics"; - changelog = "https://github.com/ultralytics/ultralytics/releases/tag/${src.tag}"; + changelog = "https://github.com/ultralytics/ultralytics/releases/tag/${finalAttrs.src.tag}"; description = "Train YOLO models for computer vision tasks"; mainProgram = "yolo"; license = lib.licenses.agpl3Only; maintainers = with lib.maintainers; [ osbm ]; }; -} +}) From 185e72e7556476952a504ede23571663e1b0b7c1 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 22:02:52 +0000 Subject: [PATCH 132/396] hl-log-viewer: 0.35.1 -> 0.35.2 --- pkgs/by-name/hl/hl-log-viewer/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/hl/hl-log-viewer/package.nix b/pkgs/by-name/hl/hl-log-viewer/package.nix index 6577bf30f363..a2a7cb60cd95 100644 --- a/pkgs/by-name/hl/hl-log-viewer/package.nix +++ b/pkgs/by-name/hl/hl-log-viewer/package.nix @@ -9,16 +9,16 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "hl-log-viewer"; - version = "0.35.1"; + version = "0.35.2"; src = fetchFromGitHub { owner = "pamburus"; repo = "hl"; tag = "v${finalAttrs.version}"; - hash = "sha256-gkUZHepuPOzFi0oWFBzqXPFfWaxlKr5+VCkZwawz+/Q="; + hash = "sha256-jCUr+9FPYnGRbeQkrJjfb9/Cjn3kq40z6cYkU4Gomts="; }; - cargoHash = "sha256-jon7nDdK2bYDIh/zqJV7em87se9XBXV6+c2HlMBzJnA="; + cargoHash = "sha256-+QFNdQv2swIEHivQ5E7ujyYk7xa6gM8A5SwJfnKPScY="; nativeBuildInputs = [ installShellFiles ]; From cc352c830bc72a9a7e23aa3c39caf492f593fedd Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 22:10:47 +0000 Subject: [PATCH 133/396] mailpit: 1.28.2 -> 1.28.3 --- pkgs/by-name/ma/mailpit/source.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ma/mailpit/source.nix b/pkgs/by-name/ma/mailpit/source.nix index 44026157c289..a564becc52c2 100644 --- a/pkgs/by-name/ma/mailpit/source.nix +++ b/pkgs/by-name/ma/mailpit/source.nix @@ -1,6 +1,6 @@ { - version = "1.28.2"; - hash = "sha256-KqNMykpeNwY86DmpxH0+AGsVsQlICIyU49Y8P1wko+A="; - npmDepsHash = "sha256-17cX1tGjHade5sxNqlZGITBKleZR2IwTujVqecsb9Po="; - vendorHash = "sha256-pzzzji+MflKwFzAMkWQrGt99M9yanVsguHrHKB6VXSc="; + version = "1.28.3"; + hash = "sha256-5QfGfEevV/8Epmh7cSHwB11J6wmpXzXHsPCrDms1bAo="; + npmDepsHash = "sha256-zyEk7OcaN8ikJFvSzIIVvTKICi8GtekT4FB2YDHzo3o="; + vendorHash = "sha256-yx7L7evEt0p/U8H+gNGl1sx/JZ5qg+0fInFjZK8xdp4="; } From 4721da26f9386e5fe5570e6daa7d5be5c23dc6be Mon Sep 17 00:00:00 2001 From: Anthony Roussel Date: Sun, 18 Jan 2026 23:16:12 +0100 Subject: [PATCH 134/396] nimbo: remove * Archived upstream since 2022 * Unmaintained since 2021 --- pkgs/by-name/ni/nimbo/package.nix | 67 ------------------------------- pkgs/top-level/aliases.nix | 1 + 2 files changed, 1 insertion(+), 67 deletions(-) delete mode 100644 pkgs/by-name/ni/nimbo/package.nix diff --git a/pkgs/by-name/ni/nimbo/package.nix b/pkgs/by-name/ni/nimbo/package.nix deleted file mode 100644 index e1f974e4f1bf..000000000000 --- a/pkgs/by-name/ni/nimbo/package.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ - lib, - stdenv, - awscli, - fetchFromGitHub, - installShellFiles, - python3, -}: - -python3.pkgs.buildPythonApplication (finalAttrs: { - pname = "nimbo"; - version = "0.3.0"; - format = "setuptools"; - - src = fetchFromGitHub { - owner = "nimbo-sh"; - repo = "nimbo"; - tag = "v${finalAttrs.version}"; - hash = "sha256-YC5T02Sw22Uczufbyts8l99oCQW4lPq0gPMRXCoKsvw="; - }; - - postPatch = '' - # Wrong format specifier in awscli dependency - substituteInPlace setup.py \ - --replace-fail "awscli>=1.19<2.0" "awscli>=1.19,<2.0" - ''; - - pythonRelaxDeps = [ - "awscli" - "colorama" - "rich" - ]; - - build-system = with python3.pkgs; [ setuptools ]; - - nativeBuildInputs = [ installShellFiles ]; - - dependencies = with python3.pkgs; [ - boto3 - click - colorama - pydantic - pyyaml - requests - rich - setuptools - ]; - - # nimbo tests require an AWS instance - doCheck = false; - - pythonImportsCheck = [ "nimbo" ]; - - makeWrapperArgs = [ - "--prefix" - "PATH" - ":" - (lib.makeBinPath [ awscli ]) - ]; - - meta = { - description = "Run machine learning jobs on AWS with a single command"; - homepage = "https://github.com/nimbo-sh/nimbo"; - license = lib.licenses.bsl11; - maintainers = with lib.maintainers; [ noreferences ]; - }; -}) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index d279f6c5672c..ade2e2ff9e7d 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1223,6 +1223,7 @@ mapAliases { nfstrace = throw "nfstrace has been removed, as it was broken"; # Added 2025-08-25 nginxQuic = throw "'nginxQuic' has been removed. QUIC support is now available in the default nginx builds."; ngrid = throw "'ngrid' has been removed as it has been unmaintained upstream and broken"; # Added 2025-11-15 + nimbo = throw "'nimbo' has been removed due to being archived upstream."; # Added 2026-01-18 nix-direnv-flakes = throw "'nix-direnv-flakes' has been renamed to/replaced by 'nix-direnv'"; # Converted to throw 2025-10-27 nix-ld-rs = throw "'nix-ld-rs' has been renamed to/replaced by 'nix-ld'"; # Converted to throw 2025-10-27 nix-linter = throw "nix-linter has been removed as it was broken for 3 years and unmaintained upstream"; # Added 2025-09-06 From 56ff96957dfad88a44c2ca2b1cde55b7679c4cfd Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 24 Dec 2025 00:29:48 +0000 Subject: [PATCH 135/396] python3Packages.onnx-ir: init at 0.1.14_1 --- .../python-modules/onnx-ir/default.nix | 87 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 89 insertions(+) create mode 100644 pkgs/development/python-modules/onnx-ir/default.nix diff --git a/pkgs/development/python-modules/onnx-ir/default.nix b/pkgs/development/python-modules/onnx-ir/default.nix new file mode 100644 index 000000000000..fd2dc9033d38 --- /dev/null +++ b/pkgs/development/python-modules/onnx-ir/default.nix @@ -0,0 +1,87 @@ +{ + lib, + stdenv, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + ml-dtypes, + numpy, + onnx, + typing-extensions, + + # tests + onnxruntime, + parameterized, + pytestCheckHook, + torch, + tqdm, +}: + +buildPythonPackage (finalAttrs: { + pname = "onnx-ir"; + version = "0.1.14_1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "onnx"; + repo = "ir-py"; + tag = "v${finalAttrs.version}"; + hash = "sha256-mlUz5LGMtW4q78lBcbjo96V7k6NL+mt1lSvOU/6GEOY="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + ml-dtypes + numpy + onnx + typing-extensions + ]; + + pythonImportsCheck = [ "onnx_ir" ]; + + nativeCheckInputs = [ + onnxruntime + parameterized + pytestCheckHook + torch + tqdm + ]; + + disabledTests = [ + # fixture 'model_info' not found + "test_model" + + # Flaky: + # onnx.onnx_cpp2py_export.checker.ValidationError: No Op registered for LabelEncoder with domain_version of 4 + # ==> Context: Bad node spec for node. Name: OpType: LabelEncoder + "SerdeTest" + + # Circular dependency with onnxscript + "test_correct_module_name" + ]; + + disabledTestPaths = [ + # Circular dependency with onnxscript + "src/onnx_ir/passes/common/common_subexpression_elimination_test.py" + ]; + + # Importing onnxruntime in the sandbox crashes on aarch64-linux: + # Fatal Python error: Aborted + # See https://github.com/NixOS/nixpkgs/pull/481039 + doCheck = !(stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64); + + meta = { + description = "Efficient in-memory representation for ONNX, in Python"; + homepage = "https://github.com/onnx/ir-py"; + changelog = "https://github.com/onnx/ir-py/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ GaetanLepage ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 90f87b9925e5..1e3a5c1659fd 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -11245,6 +11245,8 @@ self: super: with self; { }; }; + onnx-ir = callPackage ../development/python-modules/onnx-ir { }; + onnxconverter-common = callPackage ../development/python-modules/onnxconverter-common { }; onnxmltools = callPackage ../development/python-modules/onnxmltools { }; From c1d35df2f07e7d9c4962770ad10d6752833b2a32 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 24 Dec 2025 00:30:00 +0000 Subject: [PATCH 136/396] python3Packages.onnxscript: init at 0.5.7 --- .../python-modules/onnxscript/default.nix | 322 ++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 324 insertions(+) create mode 100644 pkgs/development/python-modules/onnxscript/default.nix diff --git a/pkgs/development/python-modules/onnxscript/default.nix b/pkgs/development/python-modules/onnxscript/default.nix new file mode 100644 index 000000000000..9b91b2c636d2 --- /dev/null +++ b/pkgs/development/python-modules/onnxscript/default.nix @@ -0,0 +1,322 @@ +{ + lib, + stdenv, + config, + buildPythonPackage, + fetchFromGitHub, + pythonAtLeast, + + # build-system + setuptools, + + # dependencies + ml-dtypes, + numpy, + onnx, + onnx-ir, + packaging, + typing-extensions, + pynvml, + + # tests + onnxruntime, + parameterized, + pytestCheckHook, + torch, + torchvision, + tqdm, + + cudaSupport ? config.cudaSupport, + onnxscript, +}: + +let + # The following tests are disabled in both + # - the main derivation (running without GPU access) + # - passthru.gpuCheck (running with GPU passthrough) + disabledTests = [ + # fixture 'model_info' not found + "test_model" + + # RuntimeError: ONNX Runtime failed to evaluate + # onnxruntime.capi.onnxruntime_pybind11_state.NotImplemented: [ONNXRuntimeError] : 9 : + # NOT_IMPLEMENTED : Could not find an implementation for SplitToSequence(11) node with name '_inlfunc_aten_split_n0' + "test_output_match_opinfo__split_cpu_bool" + "test_output_match_opinfo__split_list_args_cpu_bool" + + # RuntimeError: ONNX Runtime failed to evaluate + # onnxruntime.capi.onnxruntime_pybind11_state.NotImplemented: [ONNXRuntimeError] : 9 : + # NOT_IMPLEMENTED : Could not find an implementation for SplitToSequence(11) node with name '_inlfunc_aten_split_with_sizes_n0' + "test_output_match_opinfo__split_with_sizes_cpu_bool" + ] + ++ lib.optionals (pythonAtLeast "3.14") [ + # TypeError: Expecting a type not f for typeinfo. + "test_function_has_op_schema_073_div_mode" + "test_function_has_op_schema_076_einsum" + "test_function_has_op_schema_116_linalg_vector_norm" + "test_function_has_op_schema_172_nn_functional_pad" + "test_function_has_op_schema_208_repeat_interleave" + "test_function_has_op_schema_209_repeat_interleave" + "test_function_has_op_schema_268_argmax" + "test_function_has_op_schema_269_argmin" + "test_function_has_op_schema_288_logit" + "test_function_has_op_schema_302_nn_functional_avg_pool2d" + "test_function_has_op_schema_303_nn_functional_avg_pool3d" + "test_function_has_op_schema_318_nn_functional_scaled_dot_product_attention" + "test_function_has_op_schema_319_ops_aten__scaled_dot_product_flash_attention" + "test_function_has_op_schema_320_ops_aten__scaled_dot_product_efficient_attention" + "test_function_has_op_schema_321_ops_aten_upsample_bilinear2d_default" + "test_function_has_op_schema_322_ops_aten__upsample_bilinear2d_aa" + "test_function_has_op_schema_323_ops_aten_upsample_bilinear2d_vec" + "test_function_has_op_schema_324_ops_aten_upsample_bicubic2d_default" + "test_function_has_op_schema_325_ops_aten__upsample_bicubic2d_aa" + "test_function_has_op_schema_326_ops_aten_upsample_bicubic2d_vec" + "test_function_has_op_schema_327_ops_aten_upsample_linear1d" + "test_function_has_op_schema_328_ops_aten_upsample_nearest1d" + "test_function_has_op_schema_329_ops_aten_upsample_nearest1d_vec" + "test_function_has_op_schema_330_ops_aten_upsample_nearest2d" + "test_function_has_op_schema_331_ops_aten_upsample_nearest2d_vec" + "test_function_has_op_schema_332_ops_aten_upsample_nearest3d" + "test_function_has_op_schema_333_ops_aten_upsample_nearest3d_vec" + "test_function_has_op_schema_334_ops_aten_upsample_trilinear3d_default" + "test_function_has_op_schema_335_ops_aten_upsample_trilinear3d_vec" + "test_function_has_op_schema_345_ops_aten_stft" + "test_function_has_op_schema_356_ops_prims_var_default" + "test_output_match_opinfo__argmax_cpu_float16" + "test_output_match_opinfo__argmax_cpu_float32" + "test_output_match_opinfo__argmax_cpu_int32" + "test_output_match_opinfo__argmax_cpu_int64" + "test_output_match_opinfo__argmin_cpu_float16" + "test_output_match_opinfo__argmin_cpu_float32" + "test_output_match_opinfo__argmin_cpu_int32" + "test_output_match_opinfo__argmin_cpu_int64" + "test_output_match_opinfo__div_mode_floor_rounding_cpu_float16" + "test_output_match_opinfo__div_mode_floor_rounding_cpu_float32" + "test_output_match_opinfo__div_mode_floor_rounding_cpu_int32" + "test_output_match_opinfo__div_mode_floor_rounding_cpu_int64" + "test_output_match_opinfo__div_mode_trunc_rounding_cpu_float32" + "test_output_match_opinfo__div_mode_trunc_rounding_cpu_int32" + "test_output_match_opinfo__div_mode_trunc_rounding_cpu_int64" + "test_output_match_opinfo__einsum_cpu_float16" + "test_output_match_opinfo__einsum_cpu_float32" + "test_output_match_opinfo__einsum_cpu_int64" + "test_output_match_opinfo__linalg_vector_norm_cpu_float16" + "test_output_match_opinfo__linalg_vector_norm_cpu_float32" + "test_output_match_opinfo__logit_cpu_bool" + "test_output_match_opinfo__logit_cpu_float16" + "test_output_match_opinfo__logit_cpu_float32" + "test_output_match_opinfo__logit_cpu_int32" + "test_output_match_opinfo__logit_cpu_int64" + "test_output_match_opinfo__nn_functional_avg_pool2d_cpu_float16" + "test_output_match_opinfo__nn_functional_avg_pool2d_cpu_float32" + "test_output_match_opinfo__nn_functional_avg_pool2d_cpu_int64" + "test_output_match_opinfo__nn_functional_avg_pool3d_cpu_float32" + "test_output_match_opinfo__nn_functional_avg_pool3d_cpu_int64" + "test_output_match_opinfo__nn_functional_pad_constant_cpu_bool" + "test_output_match_opinfo__nn_functional_pad_constant_cpu_float16" + "test_output_match_opinfo__nn_functional_pad_constant_cpu_float32" + "test_output_match_opinfo__nn_functional_pad_constant_cpu_int32" + "test_output_match_opinfo__nn_functional_pad_constant_cpu_int64" + "test_output_match_opinfo__nn_functional_pad_reflect_cpu_float16" + "test_output_match_opinfo__nn_functional_pad_reflect_cpu_float32" + "test_output_match_opinfo__nn_functional_pad_reflect_cpu_int32" + "test_output_match_opinfo__nn_functional_pad_reflect_cpu_int64" + "test_output_match_opinfo__nn_functional_pad_replicate_cpu_float16" + "test_output_match_opinfo__nn_functional_pad_replicate_cpu_float32" + "test_output_match_opinfo__nn_functional_pad_replicate_cpu_int32" + "test_output_match_opinfo__nn_functional_pad_replicate_cpu_int64" + "test_output_match_opinfo__nn_functional_scaled_dot_product_attention_cpu_float32" + "test_output_match_opinfo__ops_aten__upsample_bicubic2d_aa_cpu_float32" + "test_output_match_opinfo__ops_aten__upsample_bilinear2d_aa_cpu_float32" + "test_output_match_opinfo__ops_aten_stft_cpu_float32" + "test_output_match_opinfo__ops_aten_upsample_bicubic2d_default_cpu_float32" + "test_output_match_opinfo__ops_aten_upsample_bicubic2d_vec_cpu_float32" + "test_output_match_opinfo__ops_aten_upsample_bilinear2d_default_cpu_float32" + "test_output_match_opinfo__ops_aten_upsample_bilinear2d_vec_cpu_float32" + "test_output_match_opinfo__ops_aten_upsample_linear1d_cpu_float32" + "test_output_match_opinfo__ops_aten_upsample_nearest1d_cpu_float32" + "test_output_match_opinfo__ops_aten_upsample_nearest1d_vec_cpu_float32" + "test_output_match_opinfo__ops_aten_upsample_nearest2d_cpu_float32" + "test_output_match_opinfo__ops_aten_upsample_nearest2d_vec_cpu_float32" + "test_output_match_opinfo__ops_aten_upsample_nearest3d_cpu_float32" + "test_output_match_opinfo__ops_aten_upsample_nearest3d_vec_cpu_float32" + "test_output_match_opinfo__ops_aten_upsample_trilinear3d_default_cpu_float32" + "test_output_match_opinfo__ops_aten_upsample_trilinear3d_vec_cpu_float32" + "test_output_match_opinfo__ops_prims_var_default_cpu_float16" + "test_output_match_opinfo__ops_prims_var_default_cpu_float32" + "test_output_match_opinfo__repeat_interleave_cpu_float16" + "test_output_match_opinfo__repeat_interleave_cpu_float32" + "test_output_match_opinfo__repeat_interleave_cpu_int32" + "test_output_match_opinfo__repeat_interleave_cpu_int64" + ]; + + # The following tests require access to a physical GPU to work, otherwise the interpreter crashes: + # Fatal Python error: Aborted + # File "/nix/store/..onnxruntime/capi/onnxruntime_inference_collection.py", line 561 in _create_inference_session + testsRequiringGpu = [ + "test_affine_conv_fusion_without_pad" + "test_conv_affine_fusion" + "test_flatten_to_reshape_dynamic_input" + "test_flatten_to_reshape_rule" + "test_fuse_batchnorm_conv" + "test_fuse_batchnorm_gemm" + "test_fuse_pad_into_conv" + "test_hardsigmoid_fusion" + "test_hardswish_fusion" + "test_layer_norm_fusion_with_bias" + "test_layer_norm_fusion_without_bias" + "test_matmul_add_to_gemm" + "test_normalize_pad_format" + "test_reshape_dynamic_reshape_rule" + "test_reshape_reshape_dynamic_rule" + "test_reshape_reshape_rule" + "test_slice_is_redundant_when_ends_is_greater_than_input_shape" + "test_slice_is_redundant_when_ends_reaches_int64_max" + "test_successful_full_chain_fusion" + "test_successful_fuse_successive_clips" + "test_successful_fuse_successive_min_or_max" + "test_successful_fuse_successive_relu_clip" + "test_successful_fuse_successive_relus" + "test_successful_max_min_to_clip" + "test_successful_min_max_to_clip" + "test_successful_remove_optional_bias_conv" + "test_successful_remove_optional_bias_gemm" + "test_successful_remove_optional_bias_qlinear_conv" + "test_transpose_a_matmul_add_to_gemm" + "test_transpose_ab_matmul_add_to_gemm" + "test_transpose_b_matmul_add_to_gemm" + ]; +in +buildPythonPackage (finalAttrs: { + pname = "onnxscript"; + version = "0.5.7"; + pyproject = true; + + src = fetchFromGitHub { + owner = "microsoft"; + repo = "onnxscript"; + tag = "v${finalAttrs.version}"; + hash = "sha256-8QnVfdI5sfPXF72fbbowbGxVRAnNQr55YEi/QEmXbCw="; + }; + + # Fails with python>=3.14 + # TypeError: descriptor '__getitem__' requires a 'typing.Union' object but received a 'tuple' + postPatch = '' + substituteInPlace onnxscript/type_annotation.py \ + --replace-fail \ + "return pytype_to_type_strings(Union.__getitem__(constraints))" \ + "return pytype_to_type_strings(Union[constraints])" + ''; + + env = { + ONNX_SCRIPT_RELEASE = "1"; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + ml-dtypes + numpy + onnx + onnx-ir + packaging + typing-extensions + ] + ++ lib.optionals cudaSupport [ + pynvml + ]; + + pythonImportsCheck = [ "onnxscript" ]; + + nativeCheckInputs = [ + onnxruntime + parameterized + pytestCheckHook + torch + torchvision + tqdm + ]; + + disabledTests = disabledTests ++ lib.optionals cudaSupport testsRequiringGpu; + + disabledTestPaths = [ + # google.protobuf.message.DecodeError: Error parsing message with type 'onnx.ModelProto' + "tests/ir/graph_view_test.py" + "tests/ir/serde_roundtrip_test.py" + "tests/optimizer/test_models.py" + ]; + + # Importing onnxruntime in the sandbox crashes on aarch64-linux: + # Fatal Python error: Aborted + # See https://github.com/NixOS/nixpkgs/pull/481039 + doCheck = !(stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64); + + passthru.gpuCheck = onnxscript.overridePythonAttrs { + requiredSystemFeatures = [ "cuda" ]; + + # Skip all tests that are failing independantly of the GPU availability + disabledTests = disabledTests ++ [ + # AssertionError: Tensor-likes are not close! + "test_output_match_opinfo__cumsum_cuda_float16" + "test_output_match_opinfo__nn_functional_conv1d_cuda_float32" + "test_output_match_opinfo__nn_functional_embedding_cuda_float16" + "test_output_match_opinfo__nn_functional_embedding_cuda_float32" + "test_output_match_opinfo__ops_aten_conv3d_cuda_float32" + "test_output_match_opinfo__ops_aten_convolution_cuda_float32" + "test_output_match_opinfo__ops_aten_embedding_bag_cuda_float32" + "test_output_match_opinfo__ops_aten_embedding_renorm_cuda_float16" + "test_output_match_opinfo__ops_aten_embedding_renorm_cuda_float32" + + # AssertionError: Scalars are not equal! + "test_output_match_opinfo__equal_cuda_bool" + "test_output_match_opinfo__ops_aten_embedding_bag_padding_idx_cuda_float16" + "test_output_match_opinfo__ops_aten_embedding_bag_padding_idx_cuda_float32" + + # TypeError: can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first. + "test_output_match_opinfo__index_put_cuda_float16" + "test_output_match_opinfo__index_put_cuda_float32" + "test_output_match_opinfo__index_put_cuda_int32" + "test_output_match_opinfo__index_put_cuda_int64" + + # RuntimeError: ONNX Runtime failed to evaluate + # onnxruntime.capi.onnxruntime_pybind11_state.InvalidArgument: [ONNXRuntimeError] : 2 : + # INVALID_ARGUMENT : Non-zero status code returned while running LayerNormalization node. + # Name:'node_LayerNormalization_0' Status Message: Size of X.shape[axis:] must be larger than 1, got 1 + "test_output_match_opinfo__native_layer_norm_cuda_float16" + # onnxruntime.capi.onnxruntime_pybind11_state.NotImplemented: [ONNXRuntimeError] : 9 : + # NOT_IMPLEMENTED : Could not find an implementation for SplitToSequence(11) node with name '_inlfunc_aten_split_n0' + "test_output_match_opinfo__split_cuda_bool" + "test_output_match_opinfo__split_list_args_cuda_bool" + # onnxruntime.capi.onnxruntime_pybind11_state.NotImplemented: [ONNXRuntimeError] : 9 : + # NOT_IMPLEMENTED : Could not find an implementation for SplitToSequence(11) node with name '_inlfunc_aten_split_with_sizes_n0' + "test_output_match_opinfo__split_with_sizes_cuda_bool" + + # AssertionError: ONNX model is invalid + # onnx.onnx_cpp2py_export.shape_inference.InferenceError: [ShapeInferenceError] Inference error(s): + # (op_type:ConstantOfShape, node name: node_ConstantOfShape_67): + # [TypeInferenceError] Inferred elem type differs from existing elem type: (FLOAT) vs (INT64) + "test_output_match_opinfo__ops_aten__scaled_dot_product_efficient_attention_cuda_float32" + + # RuntimeError: FlashAttention only support fp16 and bf16 data type + "test_output_match_opinfo__ops_aten__scaled_dot_product_flash_attention_cuda_float32" + + # Unexpected success + "test_output_match_opinfo__ops_aten_col2im_cuda_float16" + "test_output_match_opinfo__sort_cuda_float16" + + # RuntimeError: expected scalar type Int but found Float + "test_output_match_opinfo__ops_aten_fake_quantize_per_tensor_affine_cuda_float16" + "test_output_match_opinfo__ops_aten_fake_quantize_per_tensor_affine_cuda_float32" + ]; + }; + + meta = { + description = "Naturally author ONNX functions and models using a subset of Python"; + homepage = "https://github.com/microsoft/onnxscript"; + changelog = "https://github.com/microsoft/onnxscript/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ GaetanLepage ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 1e3a5c1659fd..b7dce17a10ac 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -11260,6 +11260,8 @@ self: super: with self; { onnxruntime-tools = callPackage ../development/python-modules/onnxruntime-tools { }; + onnxscript = callPackage ../development/python-modules/onnxscript { }; + onnxslim = callPackage ../development/python-modules/onnxslim { }; onvif-zeep = callPackage ../development/python-modules/onvif-zeep { }; From 49e968c900e35edaaa6c889edf10f5393b452740 Mon Sep 17 00:00:00 2001 From: whoomee Date: Sun, 18 Jan 2026 23:34:01 +0100 Subject: [PATCH 137/396] nzbhydra2: 8.2.2 -> 8.3.0 --- pkgs/by-name/nz/nzbhydra2/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/nz/nzbhydra2/package.nix b/pkgs/by-name/nz/nzbhydra2/package.nix index ab80b6c0b1e1..5b63f7ba78bf 100644 --- a/pkgs/by-name/nz/nzbhydra2/package.nix +++ b/pkgs/by-name/nz/nzbhydra2/package.nix @@ -35,16 +35,16 @@ let in maven.buildMavenPackage rec { pname = "nzbhydra2"; - version = "8.2.2"; + version = "8.3.0"; src = fetchFromGitHub { owner = "theotherp"; repo = pname; tag = "v${version}"; - hash = "sha256-aUaPzfP4PPX08DZxbDhy7U/qH37ddR9jWtt+pt7BqCI="; + hash = "sha256-7CYMh/viZ/9bVZ4gNNZRnKHh4uDH4E5Td2oVC4Rok0M="; }; - mvnHash = "sha256-02Fj7Rv0kGmO7ysHWMjE7qlwFY3G+hQzjXvrvRG/2M8="; + mvnHash = "sha256-dodZT40zNqfaPd8VxfNYY10VrFNlL4xESDdTrgcFaaY="; mvnFetchExtraArgs.preBuild = '' mvn -nsu "${timestampParameter}" --projects org.nzbhydra:github-release-plugin "-Dmaven.repo.local=$out/.m2" clean install @@ -90,7 +90,7 @@ maven.buildMavenPackage rec { meta = { description = "Usenet meta search"; homepage = "https://github.com/theotherp/nzbhydra2"; - license = lib.licenses.asl20; + license = lib.licenses.gpl3Only; maintainers = with lib.maintainers; [ matteopacini tmarkus From 28a74224af39610cfe8f631fe03d22131fa84027 Mon Sep 17 00:00:00 2001 From: Wael Nasreddine Date: Sun, 18 Jan 2026 14:44:18 -0800 Subject: [PATCH 138/396] ssh-agent-mux: init at v0.2.0 --- pkgs/by-name/ss/ssh-agent-mux/package.nix | 30 +++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 pkgs/by-name/ss/ssh-agent-mux/package.nix diff --git a/pkgs/by-name/ss/ssh-agent-mux/package.nix b/pkgs/by-name/ss/ssh-agent-mux/package.nix new file mode 100644 index 000000000000..d33864f444bd --- /dev/null +++ b/pkgs/by-name/ss/ssh-agent-mux/package.nix @@ -0,0 +1,30 @@ +{ + lib, + fetchFromGitHub, + rustPlatform, + openssh, +}: + +rustPlatform.buildRustPackage rec { + pname = "ssh-agent-mux"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "overhacked"; + repo = "ssh-agent-mux"; + rev = "v${version}"; + hash = "sha256-tIGrENlZcT9fGke6MRnsLsmm+kb0Mm3C6DckkZi8hpE="; + }; + + cargoHash = "sha256-u5kGYCYDvEhSuGOLnhdt9IpRwzllXbSJDwY1XzpHBCc="; + + nativeCheckInputs = [ openssh ]; + + meta = { + description = "A proxy that multiplexes SSH agent requests to multiple upstream agents"; + homepage = "https://github.com/overhacked/ssh-agent-mux"; + license = lib.licenses.asl20; + maintainers = [ lib.maintainers.kalbasit ]; + mainProgram = "ssh-agent-mux"; + }; +} From 66551f5cea8e96c1e94a9097fba8c7fbe8c53699 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 22:59:40 +0000 Subject: [PATCH 139/396] windsurf: 1.13.5 -> 1.13.9 --- pkgs/by-name/wi/windsurf/info.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/wi/windsurf/info.json b/pkgs/by-name/wi/windsurf/info.json index d5b28c766726..e9fb3fbfcc62 100644 --- a/pkgs/by-name/wi/windsurf/info.json +++ b/pkgs/by-name/wi/windsurf/info.json @@ -1,20 +1,20 @@ { "aarch64-darwin": { - "version": "1.13.5", + "version": "1.13.9", "vscodeVersion": "1.106.0", - "url": "https://windsurf-stable.codeiumdata.com/darwin-arm64/stable/97d7a9c6ff229572f6154acb491d23ffeb2d932e/Windsurf-darwin-arm64-1.13.5.zip", - "sha256": "52219286140ceb6bf880b1de6af1cb24756244b2b550b1afe901d651feaaef3c" + "url": "https://windsurf-stable.codeiumdata.com/darwin-arm64/stable/a473c86f69ab6b6f98bc47437adc6263df8738d0/Windsurf-darwin-arm64-1.13.9.zip", + "sha256": "a4e3930b30d8abb708ef99a08c8f31da4d0dfbf395ad9c8fe4c57640f9eab8f0" }, "x86_64-darwin": { - "version": "1.13.5", + "version": "1.13.9", "vscodeVersion": "1.106.0", - "url": "https://windsurf-stable.codeiumdata.com/darwin-x64/stable/97d7a9c6ff229572f6154acb491d23ffeb2d932e/Windsurf-darwin-x64-1.13.5.zip", - "sha256": "59635461c47df84c94556fa51ee7b872f7f5ef3e496bfcf2d1ac872d622cc811" + "url": "https://windsurf-stable.codeiumdata.com/darwin-x64/stable/a473c86f69ab6b6f98bc47437adc6263df8738d0/Windsurf-darwin-x64-1.13.9.zip", + "sha256": "d24a452a562ea662f2a56c304b56603bba5af1597025bb6f1d0f3534c94aae1d" }, "x86_64-linux": { - "version": "1.13.5", + "version": "1.13.9", "vscodeVersion": "1.106.0", - "url": "https://windsurf-stable.codeiumdata.com/linux-x64/stable/97d7a9c6ff229572f6154acb491d23ffeb2d932e/Windsurf-linux-x64-1.13.5.tar.gz", - "sha256": "0b4333e77c93d21901149ee21323653a9dbf8b5f6d37bc281ab6158569038e8f" + "url": "https://windsurf-stable.codeiumdata.com/linux-x64/stable/a473c86f69ab6b6f98bc47437adc6263df8738d0/Windsurf-linux-x64-1.13.9.tar.gz", + "sha256": "a3a4893b354c5d4dc367dbb723bdecef16c3f0e573a7d895219991314fb2c434" } } From 9863071a254650e378a8a20dcaa3c54092125ca7 Mon Sep 17 00:00:00 2001 From: Sergei Zimmerman Date: Sat, 17 Jan 2026 22:47:04 +0300 Subject: [PATCH 140/396] lix: remove no longer necessary boehmgc-coroutine-sp-fallback.patch lix < 2.91 is no longer in nixpkgs and nix itself no longer needs patched boehm. Doesn't result in any rebuilds as verified via ci/eval. --- pkgs/tools/package-management/lix/default.nix | 22 ++----- .../boehmgc-coroutine-sp-fallback.patch | 59 ------------------- 2 files changed, 4 insertions(+), 77 deletions(-) delete mode 100644 pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch diff --git a/pkgs/tools/package-management/lix/default.nix b/pkgs/tools/package-management/lix/default.nix index 814bd457e050..747b76175641 100644 --- a/pkgs/tools/package-management/lix/default.nix +++ b/pkgs/tools/package-management/lix/default.nix @@ -64,24 +64,10 @@ let confDir ; - boehmgc = - # TODO: Why is this called `boehmgc-nix_2_3`? - let - boehmgc-nix_2_3 = boehmgc.override { - enableLargeConfig = true; - initialMarkStackSize = 1048576; - }; - in - # Since Lix 2.91 does not use boost coroutines, it does not need boehmgc patches either. - if lib.versionOlder lix-args.version "2.91" then - boehmgc-nix_2_3.overrideAttrs (drv: { - patches = (drv.patches or [ ]) ++ [ - # Part of the GC solution in https://github.com/NixOS/nix/pull/4944 - ../nix/patches/boehmgc-coroutine-sp-fallback.patch - ]; - }) - else - boehmgc-nix_2_3; + boehmgc = boehmgc.override { + enableLargeConfig = true; + initialMarkStackSize = 1048576; + }; aws-sdk-cpp = (aws-sdk-cpp.override { diff --git a/pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch b/pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch deleted file mode 100644 index 2fef8185aea2..000000000000 --- a/pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch +++ /dev/null @@ -1,59 +0,0 @@ -diff --git a/pthread_stop_world.c b/pthread_stop_world.c -index 2b45489..0e6d8ef 100644 ---- a/pthread_stop_world.c -+++ b/pthread_stop_world.c -@@ -776,6 +776,8 @@ - /* world is stopped. Should not fail if it isn't. */ - GC_INNER void GC_push_all_stacks(void) - { -+ size_t stack_limit; -+ pthread_attr_t pattr; - GC_bool found_me = FALSE; - size_t nthreads = 0; - int i; -@@ -868,6 +870,45 @@ - hi = p->altstack + p->altstack_size; - # endif - /* FIXME: Need to scan the normal stack too, but how ? */ -+ } else { -+ #if defined(HAVE_PTHREAD_ATTR_GET_NP) -+ if (pthread_attr_init(&pattr) != 0) { -+ ABORT("GC_push_all_stacks: pthread_attr_init failed!"); -+ } -+ if (pthread_attr_get_np(p->id, &pattr) != 0) { -+ ABORT("GC_push_all_stacks: pthread_attr_get_np failed!"); -+ } -+ #elif defined(HAVE_PTHREAD_GETATTR_NP) -+ if (pthread_getattr_np(p->id, &pattr)) { -+ ABORT("GC_push_all_stacks: pthread_getattr_np failed!"); -+ } -+ #else -+ /* assume default */ -+ if (pthread_attr_init(&pattr) != 0) { -+ ABORT("GC_push_all_stacks: pthread_attr_init failed!"); -+ } -+ #endif -+ if (pthread_attr_getstacksize(&pattr, &stack_limit)) { -+ ABORT("GC_push_all_stacks: pthread_attr_getstacksize failed!"); -+ } -+ if (pthread_attr_destroy(&pattr)) { -+ ABORT("GC_push_all_stacks: pthread_attr_destroy failed!"); -+ } -+ // When a thread goes into a coroutine, we lose its original sp until -+ // control flow returns to the thread. -+ // While in the coroutine, the sp points outside the thread stack, -+ // so we can detect this and push the entire thread stack instead, -+ // as an approximation. -+ // We assume that the coroutine has similarly added its entire stack. -+ // This could be made accurate by cooperating with the application -+ // via new functions and/or callbacks. -+ #ifndef STACK_GROWS_UP -+ if (lo >= hi || lo < hi - stack_limit) { // sp outside stack -+ lo = hi - stack_limit; -+ } -+ #else -+ #error "STACK_GROWS_UP not supported in boost_coroutine2 (as of june 2021), so we don't support it in Nix." -+ #endif - } - # ifdef STACKPTR_CORRECTOR_AVAILABLE - if (GC_sp_corrector != 0) From 3c46954c517169a4930a0f7308474d7d87fb47c1 Mon Sep 17 00:00:00 2001 From: Sergei Zimmerman Date: Mon, 19 Jan 2026 01:51:32 +0300 Subject: [PATCH 141/396] nix: disable more flaky darwin tests A proper fix is unclear. See the revert in Lix [1]. rcfile doesn't have a shebang and adding it would be breaking change. Disable the tests to make it at least build on hydra in the meantime. I've disabled all the tests that we've seen fail on hydra at least once. [1]: https://git.lix.systems/lix-project/lix/commit/45783a0435186b14509296f28d2466ab8a8157f0 --- pkgs/by-name/de/devenv/package.nix | 27 +++++---- pkgs/tools/package-management/nix/default.nix | 59 +++++++++++-------- .../nix/patches/skip-flaky-darwin-tests.patch | 18 ++++++ .../nix/patches/skip-nix-shell.patch | 5 -- 4 files changed, 69 insertions(+), 40 deletions(-) create mode 100644 pkgs/tools/package-management/nix/patches/skip-flaky-darwin-tests.patch delete mode 100644 pkgs/tools/package-management/nix/patches/skip-nix-shell.patch diff --git a/pkgs/by-name/de/devenv/package.nix b/pkgs/by-name/de/devenv/package.nix index 374bc1eea425..3fa704104734 100644 --- a/pkgs/by-name/de/devenv/package.nix +++ b/pkgs/by-name/de/devenv/package.nix @@ -22,25 +22,30 @@ let devenv_nix = let - components = - (nixVersions.nixComponents_git.override { version = devenvNixVersion; }).overrideSource - (fetchFromGitHub { - owner = "cachix"; - repo = "nix"; - rev = "devenv-${devenvNixVersion}"; - hash = "sha256-3+GHIYGg4U9XKUN4rg473frIVNn8YD06bjwxKS1IPrU="; - }); + components = ( + nixVersions.nixComponents_git.overrideSource (fetchFromGitHub { + owner = "cachix"; + repo = "nix"; + rev = "devenv-${devenvNixVersion}"; + hash = "sha256-3+GHIYGg4U9XKUN4rg473frIVNn8YD06bjwxKS1IPrU="; + }) + ); in + # Support for mdbook >= 0.5, https://github.com/NixOS/nix/issues/14628 ( - # Support for mdbook >= 0.5, https://github.com/NixOS/nix/issues/14628 - components.appendPatches [ + (components.appendPatches [ (fetchpatch2 { name = "nix-2.30-14695-mdbook-0.5-support.patch"; url = "https://github.com/NixOS/nix/commit/5cbd7856de0a9c13351f98e32a1e26d0854d87fd.patch"; excludes = [ "doc/manual/package.nix" ]; hash = "sha256-GYaTOG9wZT9UI4G6za535PkLyjHKSxwBjJsXbjmI26g="; }) - ] + ]).overrideScope + ( + finalScope: prevScope: { + version = devenvNixVersion; + } + ) ).nix-everything.overrideAttrs (old: { pname = "devenv-nix"; diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index 6a7315cd589d..ed72f3722dfe 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -122,8 +122,15 @@ let teams = [ lib.teams.nix ]; - # FIXME: https://github.com/NixOS/nixpkgs/issues/476794 - patches_common = lib.optional (stdenv.system == "aarch64-darwin") ./patches/skip-nix-shell.patch; + # Disables tests that have been flaky due to the darwin sandbox and fork safety + # with missing shebangs. + # See: + # - https://github.com/NixOS/nix/pull/14778 + # - https://github.com/NixOS/nixpkgs/issues/476794 + # - https://github.com/NixOS/nix/issues/13106 + patches_common = lib.optional ( + stdenv.system == "aarch64-darwin" + ) ./patches/skip-flaky-darwin-tests.patch; in lib.makeExtensible ( self: @@ -197,31 +204,35 @@ lib.makeExtensible ( nix_2_32 = addTests "nix_2_32" self.nixComponents_2_32.nix-everything; - nixComponents_2_33 = nixDependencies.callPackage ./modular/packages.nix rec { - version = "2.33.1"; - inherit (self.nix_2_32.meta) teams; - otherSplices = generateSplicesForNixComponents "nixComponents_2_33"; - src = fetchFromGitHub { - owner = "NixOS"; - repo = "nix"; - tag = version; - hash = "sha256-TVKn52SoKq8mMyW/x3NPPskGVurFdnGGV0DGvnL0gak="; - }; - }; + nixComponents_2_33 = + (nixDependencies.callPackage ./modular/packages.nix rec { + version = "2.33.1"; + inherit (self.nix_2_32.meta) teams; + otherSplices = generateSplicesForNixComponents "nixComponents_2_33"; + src = fetchFromGitHub { + owner = "NixOS"; + repo = "nix"; + tag = version; + hash = "sha256-TVKn52SoKq8mMyW/x3NPPskGVurFdnGGV0DGvnL0gak="; + }; + }).appendPatches + patches_common; nix_2_33 = addTests "nix_2_33" self.nixComponents_2_33.nix-everything; - nixComponents_git = nixDependencies.callPackage ./modular/packages.nix rec { - version = "2.34pre20251217_${lib.substring 0 8 src.rev}"; - inherit teams; - otherSplices = generateSplicesForNixComponents "nixComponents_git"; - src = fetchFromGitHub { - owner = "NixOS"; - repo = "nix"; - rev = "b6add8dcc6f4f6feb1ce83aaffe4d7e660e6f616"; - hash = "sha256-2au7PdQ4HXSuktTPCtOJoD/LNjqMwbHIJmuzEYW1b7I="; - }; - }; + nixComponents_git = + (nixDependencies.callPackage ./modular/packages.nix rec { + version = "2.34pre20251217_${lib.substring 0 8 src.rev}"; + inherit teams; + otherSplices = generateSplicesForNixComponents "nixComponents_git"; + src = fetchFromGitHub { + owner = "NixOS"; + repo = "nix"; + rev = "b6add8dcc6f4f6feb1ce83aaffe4d7e660e6f616"; + hash = "sha256-2au7PdQ4HXSuktTPCtOJoD/LNjqMwbHIJmuzEYW1b7I="; + }; + }).appendPatches + patches_common; git = addTests "git" self.nixComponents_git.nix-everything; diff --git a/pkgs/tools/package-management/nix/patches/skip-flaky-darwin-tests.patch b/pkgs/tools/package-management/nix/patches/skip-flaky-darwin-tests.patch new file mode 100644 index 000000000000..60d1a4ac78d7 --- /dev/null +++ b/pkgs/tools/package-management/nix/patches/skip-flaky-darwin-tests.patch @@ -0,0 +1,18 @@ +--- a/tests/functional/ca/meson.build ++++ b/tests/functional/ca/meson.build +@@ -27 +27 @@ suites += { +- 'nix-shell.sh', ++ # 'nix-shell.sh', +--- a/tests/functional/flakes/meson.build ++++ b/tests/functional/flakes/meson.build +@@ -27 +27 @@ suites += { +- 'shebang.sh', ++ # 'shebang.sh', +--- a/tests/functional/meson.build ++++ b/tests/functional/meson.build +@@ -65 +65 @@ suites = [ +- 'user-envs.sh', ++ # 'user-envs.sh', +@@ -92 +92 @@ suites = [ +- 'nix-shell.sh', ++ # 'nix-shell.sh', diff --git a/pkgs/tools/package-management/nix/patches/skip-nix-shell.patch b/pkgs/tools/package-management/nix/patches/skip-nix-shell.patch deleted file mode 100644 index 1a54a291bf35..000000000000 --- a/pkgs/tools/package-management/nix/patches/skip-nix-shell.patch +++ /dev/null @@ -1,5 +0,0 @@ ---- a/tests/functional/meson.build -+++ b/tests/functional/meson.build -@@ -90 +90 @@ suites = [ -- 'nix-shell.sh', -+ #'nix-shell.sh', From f11eeec1214aa79e5d79f4d8ea58046941628804 Mon Sep 17 00:00:00 2001 From: Sergei Zimmerman Date: Mon, 19 Jan 2026 01:57:59 +0300 Subject: [PATCH 142/396] nix: use ?full_index=1 with fetchpatch2 Otherwise the length of git hashes might change. The only proper way to use fetchpatch2 is with ?full_index=1. --- pkgs/tools/package-management/nix/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index ed72f3722dfe..38b3180cbd4c 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -143,8 +143,8 @@ lib.makeExtensible ( patches = patches_common ++ [ (fetchpatch2 { name = "nix-2.28-14764-mdbook-0.5-support.patch"; - url = "https://github.com/NixOS/nix/commit/5a64138e862fe364e751c5c286e8db8c466aaee7.patch"; - hash = "sha256-K5TNroqSRH9j7vSzWw/6/b19mu7q+J5XPTDvJ3xVWlE="; + url = "https://github.com/NixOS/nix/commit/5a64138e862fe364e751c5c286e8db8c466aaee7.patch?full_index=1"; + hash = "sha256-vFv/D08x9urtoIE9wiC7Lln4Eq3sgNBwU7TBE1iyrfI="; }) ]; }; @@ -166,8 +166,8 @@ lib.makeExtensible ( ++ [ (fetchpatch2 { name = "nix-2.30-14695-mdbook-0.5-support.patch"; - url = "https://github.com/NixOS/nix/commit/5cbd7856de0a9c13351f98e32a1e26d0854d87fd.patch"; - hash = "sha256-w8WQfWxMtprDLoZUhrCm4zr6xZXKhoIirq3la0Y7/wU="; + url = "https://github.com/NixOS/nix/commit/5cbd7856de0a9c13351f98e32a1e26d0854d87fd.patch?full_index=1"; + hash = "sha256-r2ZF1zBZDKMvyX6X4VsaTMrg0zdjn59Jf6Hqg56r29E="; }) ] ); From 3db033dd7ee230a5d440ad6fa0fafbc55f212bbd Mon Sep 17 00:00:00 2001 From: Sergei Zimmerman Date: Mon, 19 Jan 2026 02:03:31 +0300 Subject: [PATCH 143/396] nixVersions.nix_2_33: fetch patch to fix build with glibc 2.42 Fixes a missing include on newer glibc 2.42 that is currently in staging-next. See https://github.com/NixOS/nix/pull/15011. --- pkgs/tools/package-management/nix/default.nix | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index 38b3180cbd4c..0228748f724e 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -216,7 +216,16 @@ lib.makeExtensible ( hash = "sha256-TVKn52SoKq8mMyW/x3NPPskGVurFdnGGV0DGvnL0gak="; }; }).appendPatches - patches_common; + ( + patches_common + ++ [ + (fetchpatch2 { + name = "nix-2.33-15012-missing-include-glibc-2.42.patch"; + url = "https://github.com/NixOS/nix/commit/c0c13d73233c740b7d278c71b161da7b16217564.patch?full_index=1"; + hash = "sha256-iRMg36UMs5WmUfNxz4zoZq6mM3dwo2NiR8s1cM/uooU="; + }) + ] + ); nix_2_33 = addTests "nix_2_33" self.nixComponents_2_33.nix-everything; From 07863d59e5a2a799de94c5c38e11667940a5e7c0 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 23:23:30 +0000 Subject: [PATCH 144/396] bitrise: 2.36.1 -> 2.36.3 --- pkgs/by-name/bi/bitrise/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/bi/bitrise/package.nix b/pkgs/by-name/bi/bitrise/package.nix index 51430f7950ac..6eae08183e49 100644 --- a/pkgs/by-name/bi/bitrise/package.nix +++ b/pkgs/by-name/bi/bitrise/package.nix @@ -6,13 +6,13 @@ }: buildGoModule rec { pname = "bitrise"; - version = "2.36.1"; + version = "2.36.3"; src = fetchFromGitHub { owner = "bitrise-io"; repo = "bitrise"; rev = "v${version}"; - hash = "sha256-U5885dS5C+AOF7DbiALy42rVcvr+2T3yE6E1mXrC49Y="; + hash = "sha256-0OwPRRr46JfAAjWyeP3n7pDaFN09U31Tq6cwGE7uKHI="; }; # many tests rely on writable $HOME/.bitrise and require network access From cd0fafc603a5d6386a97ada07d17be7155998cb9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 23:31:14 +0000 Subject: [PATCH 145/396] python3Packages.types-regex: 2025.11.3.20251106 -> 2026.1.15.20260116 --- pkgs/development/python-modules/types-regex/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/types-regex/default.nix b/pkgs/development/python-modules/types-regex/default.nix index fd6ddb3c846f..3853f855eb49 100644 --- a/pkgs/development/python-modules/types-regex/default.nix +++ b/pkgs/development/python-modules/types-regex/default.nix @@ -7,13 +7,13 @@ buildPythonPackage rec { pname = "types-regex"; - version = "2025.11.3.20251106"; + version = "2026.1.15.20260116"; pyproject = true; src = fetchPypi { pname = "types_regex"; inherit version; - hash = "sha256-X5go7TmlpScntjf5P38PkJ1W+iIRYE7MIT/Ou1CbnVA="; + hash = "sha256-cVGpvMW7+ez8z4M1xFGsqCBPWgmS4GIqr69IKHbO5Pc="; }; build-system = [ From 3f35eb9abb496353b586e1a0290b21725e2d11db Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 23:33:35 +0000 Subject: [PATCH 146/396] signal-desktop: 7.84.0 -> 7.85.0 --- pkgs/by-name/si/signal-desktop/libsignal-node.nix | 8 ++++---- pkgs/by-name/si/signal-desktop/package.nix | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/si/signal-desktop/libsignal-node.nix b/pkgs/by-name/si/signal-desktop/libsignal-node.nix index f9a0174b46f3..ab6305a1bff5 100644 --- a/pkgs/by-name/si/signal-desktop/libsignal-node.nix +++ b/pkgs/by-name/si/signal-desktop/libsignal-node.nix @@ -24,23 +24,23 @@ let in rustPlatform.buildRustPackage (finalAttrs: { pname = "libsignal-node"; - version = "0.86.3"; + version = "0.86.9"; src = fetchFromGitHub { owner = "signalapp"; repo = "libsignal"; tag = "v${finalAttrs.version}"; - hash = "sha256-MEwtFOYdp8VjZ++R003kXj72m5yY5V/s+PwyORmN5os="; + hash = "sha256-WQdaE9RqRn0/DldUC8FgLALagVGit0Cd3n90t0nEgUs="; }; - cargoHash = "sha256-xAYMoOdEhq0502lWSwm1aDFh4gIEP1OYUWdOAqijeGM="; + cargoHash = "sha256-2vIEBQmMBLppk4/t8mvR1n2K/YWUtUaxNl9SpUCNVM8="; npmRoot = "node"; npmDeps = fetchNpmDeps { name = "${finalAttrs.pname}-npm-deps"; inherit (finalAttrs) version src; sourceRoot = "${finalAttrs.src.name}/${finalAttrs.npmRoot}"; - hash = "sha256-6LL0+jLDfvU021EnArI71IAJOM/0HZcxNu5D+HfitS4="; + hash = "sha256-a7TNY+oe7bBLE5D3WYn75Su7RK/xl6UEkv7sosc/TBU="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/si/signal-desktop/package.nix b/pkgs/by-name/si/signal-desktop/package.nix index d07c3b5b51f6..3839c6846834 100644 --- a/pkgs/by-name/si/signal-desktop/package.nix +++ b/pkgs/by-name/si/signal-desktop/package.nix @@ -54,13 +54,13 @@ let ''; }); - version = "7.84.0"; + version = "7.85.0"; src = fetchFromGitHub { owner = "signalapp"; repo = "Signal-Desktop"; tag = "v${version}"; - hash = "sha256-Ay4mMurnEDNoFkEhxPn4SWBhrkNg94+AGFMrNA0mTcE="; + hash = "sha256-fBaxgd9KjqomG2VrDnbIyVjf9Fv1vFrV4ge0h3yswGk="; }; sticker-creator = stdenv.mkDerivation (finalAttrs: { @@ -144,15 +144,15 @@ stdenv.mkDerivation (finalAttrs: { fetcherVersion = 1; hash = if withAppleEmojis then - "sha256-/1/sUHt1J6wv/MuaZdE1XbkIkXfrllBoqt8AXP1d0Pw=" + "sha256-EqDHhfpdnj4ZhTVnmVmyiRjTUIGX5fpdAsxqRY/tzQI=" else - "sha256-x2A4sX7m/zNVTEWRXOKD6VsUR+aGjEFhIv+NQVe+RwQ="; + "sha256-Vfs1/J3R6O0Ct4gAPO/mVCwr6EaMBpltOImPrRHLkFM="; }; env = { ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; SIGNAL_ENV = "production"; - SOURCE_DATE_EPOCH = 1767827358; + SOURCE_DATE_EPOCH = 1768433780; }; preBuild = '' From d765f098afc0936ea9e4652056df34ad64f0badd Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 19 Jan 2026 01:07:14 +0100 Subject: [PATCH 147/396] exploitdb: 2025-12-26 -> 2026-01-18 Diff: https://gitlab.com/exploit-database/exploitdb/-/compare/2025-12-26...2026-01-18 --- pkgs/by-name/ex/exploitdb/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ex/exploitdb/package.nix b/pkgs/by-name/ex/exploitdb/package.nix index 25c1d8516041..04fedc522b2f 100644 --- a/pkgs/by-name/ex/exploitdb/package.nix +++ b/pkgs/by-name/ex/exploitdb/package.nix @@ -6,13 +6,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "exploitdb"; - version = "2025-12-26"; + version = "2026-01-18"; src = fetchFromGitLab { owner = "exploit-database"; repo = "exploitdb"; tag = finalAttrs.version; - hash = "sha256-7it08Z2n1Wl4GaVTLxBIlejwPEsmyv+j142/HAndLO0="; + hash = "sha256-ZV8CcpZzxK1uts8RzUmzp4mKXvS/xv8D02Jsv7DzByQ="; }; nativeBuildInputs = [ makeWrapper ]; From 16a221a986c18058290a4a64a7fb7afaf82cd2ac Mon Sep 17 00:00:00 2001 From: Anthony Roussel Date: Mon, 19 Jan 2026 01:12:37 +0100 Subject: [PATCH 148/396] aws_mturk_clt: remove Unfree package unmaintained since 2012. Users should use `awscli` with `mturk` subcommands instead. --- pkgs/by-name/aw/aws_mturk_clt/package.nix | 52 ----------------------- pkgs/top-level/aliases.nix | 1 + 2 files changed, 1 insertion(+), 52 deletions(-) delete mode 100644 pkgs/by-name/aw/aws_mturk_clt/package.nix diff --git a/pkgs/by-name/aw/aws_mturk_clt/package.nix b/pkgs/by-name/aw/aws_mturk_clt/package.nix deleted file mode 100644 index 4d6408a0e69d..000000000000 --- a/pkgs/by-name/aw/aws_mturk_clt/package.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ - lib, - stdenv, - fetchurl, - jre, -}: - -stdenv.mkDerivation rec { - pname = "aws-mturk-clt"; - version = "1.3.0"; - - src = fetchurl { - url = "https://mturk.s3.amazonaws.com/CLTSource/aws-mturk-clt-${version}.tar.gz"; - sha256 = "00yyc7k3iygg83cknv9i2dsaxwpwzdkc8a2l9j56lg999hw3mqm3"; - }; - - installPhase = '' - mkdir -p $out - cp -prvd bin $out/ - - for i in $out/bin/*.sh; do - sed -i "$i" -e "s|^MTURK_CMD_HOME=.*|MTURK_CMD_HOME=$out\nexport JAVA_HOME=${jre}|" - done - - mkdir -p $out/lib - cp -prvd lib/* $out/lib/ - ''; # */ - - meta = { - homepage = "https://requester.mturk.com/developer"; - description = "Command line tools for interacting with the Amazon Mechanical Turk"; - license = lib.licenses.amazonsl; - - longDescription = '' - The Amazon Mechanical Turk is a crowdsourcing marketplace that - allows users (“requesters”) to submit tasks to be performed by - other humans (“workers”) for a small fee. This package - contains command-line tools for submitting tasks, querying - results, and so on. - - The command-line tools expect a file - mturk.properties in the current directory, - which should contain the following: - - - access_key=[insert your access key here] - secret_key=[insert your secret key here] - service_url=http://mechanicalturk.amazonaws.com/?Service=AWSMechanicalTurkRequester - - ''; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index d279f6c5672c..f8594d99a41a 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -337,6 +337,7 @@ mapAliases { avr-sim = throw "'avr-sim' has been removed as it was broken and unmaintained. Possible alternatives are 'simavr', SimulAVR and AVRStudio."; # Added 2025-05-31 awesome-4-0 = throw "'awesome-4-0' has been renamed to/replaced by 'awesome'"; # Converted to throw 2025-10-27 awf = throw "'awf' has been removed as the upstream project was archived in 2021"; # Added 2025-10-03 + aws_mturk_clt = throw "'aws_mturk_clt' has been removed due to being unmaintained upstream. Use 'awscli' with 'mturk' subcommands instead."; # Added 2026-01-19 axmldec = throw "'axmldec' has been removed as it was broken and unmaintained for 8 years"; # Added 2025-05-17 backlight-auto = throw "'backlight-auto' has been removed as it relies on Zig 0.12 which has been dropped."; # Added 2025-08-22 badtouch = throw "'badtouch' has been renamed to/replaced by 'authoscope'"; # Converted to throw 2025-10-27 From a33955f727cbdb4428b58fc2b7bbbcd61f16de55 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 19 Jan 2026 01:16:53 +0100 Subject: [PATCH 149/396] python313Packages.hcloud: migrate to finalAttrs --- pkgs/development/python-modules/hcloud/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/hcloud/default.nix b/pkgs/development/python-modules/hcloud/default.nix index 29d26a7c84d5..b8865de91dbd 100644 --- a/pkgs/development/python-modules/hcloud/default.nix +++ b/pkgs/development/python-modules/hcloud/default.nix @@ -8,13 +8,13 @@ setuptools, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "hcloud"; version = "2.15.0"; pyproject = true; src = fetchPypi { - inherit pname version; + inherit (finalAttrs) pname version; hash = "sha256-/Y5mjersmXo/6t5e3Te+BZpT5MvBT7AGCXZnUC737U0="; }; @@ -32,8 +32,8 @@ buildPythonPackage rec { meta = { description = "Library for the Hetzner Cloud API"; homepage = "https://github.com/hetznercloud/hcloud-python"; - changelog = "https://github.com/hetznercloud/hcloud-python/releases/tag/v${version}"; + changelog = "https://github.com/hetznercloud/hcloud-python/releases/tag/v${finalAttrs.version}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ liff ]; }; -} +}) From 9da49e68e156a7218f1a68a6f2827e8403f9541a Mon Sep 17 00:00:00 2001 From: Herwig Hochleitner Date: Sun, 18 Jan 2026 22:04:33 +0100 Subject: [PATCH 150/396] curv: 0.5-unstable-2025-01-20 -> 0.5-unstable-2026-01-17 --- pkgs/by-name/cu/curv/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/cu/curv/package.nix b/pkgs/by-name/cu/curv/package.nix index afc56199ca7e..c55391fcf135 100644 --- a/pkgs/by-name/cu/curv/package.nix +++ b/pkgs/by-name/cu/curv/package.nix @@ -20,14 +20,14 @@ stdenv.mkDerivation { pname = "curv"; - version = "0.5-unstable-2025-01-20"; + version = "0.5-unstable-2026-01-17"; src = fetchFromGitea { domain = "codeberg.org"; owner = "doug-moen"; repo = "curv"; - rev = "ef082c6612407dd8abce06015f9a16b1ebf661b8"; - hash = "sha256-BGL07ZBA+ao3fg3qp56sVTe+3tM2SOp8TGu/jF7SVlM="; + rev = "1c2eb68e47e3c61a98e39cd3c50f90691c5a268d"; + hash = "sha256-PuRBnJswrg+PjtU6ize+PjoBpQSSEzO2CeCx9mQF+3w="; fetchSubmodules = true; }; From 7a3da12e6c5e4fdbe7f7ad3fa636275a8e37f5b8 Mon Sep 17 00:00:00 2001 From: Herwig Hochleitner Date: Tue, 6 Jan 2026 23:13:57 +0100 Subject: [PATCH 151/396] curv: add gcc wrapper for -Ojit --- pkgs/by-name/cu/curv/package.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkgs/by-name/cu/curv/package.nix b/pkgs/by-name/cu/curv/package.nix index c55391fcf135..1bb2201f2ae2 100644 --- a/pkgs/by-name/cu/curv/package.nix +++ b/pkgs/by-name/cu/curv/package.nix @@ -8,8 +8,10 @@ boost, eigen_3_4_0, glm, + gcc, libGL, libpng, + makeWrapper, openexr, onetbb, xorg, @@ -36,6 +38,7 @@ stdenv.mkDerivation { cmake git pkg-config + makeWrapper ]; buildInputs = [ @@ -75,6 +78,18 @@ stdenv.mkDerivation { --replace-fail "cmake_minimum_required(VERSION 2.6.2)" "cmake_minimum_required(VERSION 3.10)" ''; + ## support runtime compilation with -Ojit + fixupPhase = '' + wrapProgram $out/bin/curv \ + --set NIX_CFLAGS_COMPILE_${gcc.suffixSalt} "$NIX_CFLAGS_COMPILE" \ + --set NIX_LDFLAGS_${gcc.suffixSalt} "$NIX_LDFLAGS" \ + --prefix PATH : "${ + lib.makeBinPath [ + gcc + ] + }" + ''; + passthru.updateScript = unstableGitUpdater { }; meta = { From f3385542358ca1d2a71f66b7dd53ae9918e5ffba Mon Sep 17 00:00:00 2001 From: Herwig Hochleitner Date: Sun, 18 Jan 2026 21:59:24 +0100 Subject: [PATCH 152/396] curv: use eigen_5 --- pkgs/by-name/cu/curv/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/cu/curv/package.nix b/pkgs/by-name/cu/curv/package.nix index 1bb2201f2ae2..865b021bf54e 100644 --- a/pkgs/by-name/cu/curv/package.nix +++ b/pkgs/by-name/cu/curv/package.nix @@ -6,7 +6,7 @@ git, pkg-config, boost, - eigen_3_4_0, + eigen_5, glm, gcc, libGL, @@ -43,7 +43,7 @@ stdenv.mkDerivation { buildInputs = [ boost - eigen_3_4_0 + eigen_5 glm libGL libpng From 67ea0441de306b533c4ad2e5fd74e7c984209c23 Mon Sep 17 00:00:00 2001 From: Anthony Roussel Date: Mon, 19 Jan 2026 01:19:22 +0100 Subject: [PATCH 153/396] amazon-ecs-cli: remove * Upstream unmaintained since 2020 (low maintenance mode), 2023 (unmaintained) * Upstream repository has been archived --- pkgs/by-name/am/amazon-ecs-cli/package.nix | 46 ---------------------- pkgs/top-level/aliases.nix | 1 + 2 files changed, 1 insertion(+), 46 deletions(-) delete mode 100644 pkgs/by-name/am/amazon-ecs-cli/package.nix diff --git a/pkgs/by-name/am/amazon-ecs-cli/package.nix b/pkgs/by-name/am/amazon-ecs-cli/package.nix deleted file mode 100644 index 65fca5099abf..000000000000 --- a/pkgs/by-name/am/amazon-ecs-cli/package.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ - lib, - stdenv, - fetchurl, -}: - -stdenv.mkDerivation rec { - pname = "amazon-ecs-cli"; - version = "1.21.0"; - - src = - if stdenv.hostPlatform.system == "x86_64-linux" then - fetchurl { - url = "https://s3.amazonaws.com/amazon-ecs-cli/ecs-cli-linux-amd64-v${version}"; - sha256 = "sEHwhirU2EYwtBRegiIvN4yr7VKtmy7e6xx5gZOkuY0="; - } - else if stdenv.hostPlatform.system == "x86_64-darwin" then - fetchurl { - url = "https://s3.amazonaws.com/amazon-ecs-cli/ecs-cli-darwin-amd64-v${version}"; - sha256 = "1viala49sifpcmgn3jw24h5bkrlm4ffadjiqagbxj3lr0r78i9nm"; - } - else - throw "Architecture not supported"; - - dontUnpack = true; - - installPhase = '' - mkdir -p $out/bin - cp $src $out/bin/ecs-cli - chmod +x $out/bin/ecs-cli - ''; # */ - - meta = { - homepage = "https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_CLI.html"; - description = "Amazon ECS command line interface"; - longDescription = "The Amazon Elastic Container Service (Amazon ECS) command line interface (CLI) provides high-level commands to simplify creating, updating, and monitoring clusters and tasks from a local development environment."; - sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; - license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ Scriptkiddi ]; - platforms = [ - "x86_64-linux" - "x86_64-darwin" - ]; - mainProgram = "ecs-cli"; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index d279f6c5672c..8113b411f1a7 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -279,6 +279,7 @@ mapAliases { akkoma-emoji = throw "'akkoma-emoji' has been renamed to/replaced by 'blobs_gg'"; # Converted to throw 2025-10-27 akkoma-frontends.admin-fe = throw "'akkoma-frontends.admin-fe' has been renamed to/replaced by 'akkoma-admin-fe'"; # Converted to throw 2025-10-27 akkoma-frontends.akkoma-fe = throw "'akkoma-frontends.akkoma-fe' has been renamed to/replaced by 'akkoma-fe'"; # Converted to throw 2025-10-27 + amazon-ecs-cli = throw "'amazon-ecs-cli' has been removed due to being unmaintained upstream"; # Added 2026-01-19 amazon-qldb-shell = throw "'amazon-qldb-shell' has been removed due to being unmaintained upstream"; # Added 2025-07-30 amdvlk = throw "'amdvlk' has been removed since it was deprecated by AMD. Its replacement, RADV, is enabled by default."; # Added 2025-09-20 ams-lv2 = throw "'ams-lv2' has been removed due to being archived upstream."; # Added 2025-10-26 From 5209d1126ddd0b950b84cb4030dc1d67be021059 Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Wed, 27 Aug 2025 20:37:23 -0400 Subject: [PATCH 154/396] rtl-sdr-*: add dev output --- pkgs/applications/radio/rtl-sdr/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/applications/radio/rtl-sdr/default.nix b/pkgs/applications/radio/rtl-sdr/default.nix index b0eb6627d12d..0b5b550cb4e9 100644 --- a/pkgs/applications/radio/rtl-sdr/default.nix +++ b/pkgs/applications/radio/rtl-sdr/default.nix @@ -17,10 +17,17 @@ let }: stdenv.mkDerivation { inherit version pname src; + + outputs = [ + "out" + "dev" + ]; + nativeBuildInputs = [ pkg-config cmake ]; + propagatedBuildInputs = [ libusb1 ]; cmakeFlags = lib.optionals stdenv.hostPlatform.isLinux [ From 2d8412314ecb36cbaa7dadb1a78b24028d108ab2 Mon Sep 17 00:00:00 2001 From: Herwig Hochleitner Date: Tue, 6 Jan 2026 22:36:51 +0100 Subject: [PATCH 155/396] lemon: 1.69 -> 1.0-unstable --- pkgs/by-name/le/lemon/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/le/lemon/package.nix b/pkgs/by-name/le/lemon/package.nix index 8ab85bd08711..c870a191559b 100644 --- a/pkgs/by-name/le/lemon/package.nix +++ b/pkgs/by-name/le/lemon/package.nix @@ -8,13 +8,13 @@ let srcs = { lemon = fetchurl { - sha256 = "1c5pk2hz7j9hix5mpc38rwnm8dnlr2jqswf4lan6v78ccbyqzkjx"; - url = "http://www.sqlite.org/src/raw/tool/lemon.c?name=680980c7935bfa1edec20c804c9e5ba4b1dd96f5"; + hash = "sha256-TXVOEtRpOhLCyi4C3RMt0lHmMp/y2K5YdL8ND6WPrOY="; + url = "https://www.sqlite.org/src/raw/3fdc16b23f1ea0c91c049b518fc3f75c71843dbfe2b447fcb3cd92d9e4f219f8?at=lemon.c"; name = "lemon.c"; }; lempar = fetchurl { - sha256 = "1ba13a6yh9j2cs1aw2fh4dxqvgf399gxq1gpp4sh8q0f2w6qiw3i"; - url = "http://www.sqlite.org/src/raw/tool/lempar.c?name=01ca97f87610d1dac6d8cd96ab109ab1130e76dc"; + hash = "sha256-TYKrUJHtpoljeRWZq4Y1rYLlu7LeM/HuUhe3LJZZkVo="; + url = "https://www.sqlite.org/src/raw/b57e1780bf8098dd4a9a5bba537f994276ea825a420f6165153e5894dc2dfb07?at=lempar.c"; name = "lempar.c"; }; }; @@ -22,7 +22,7 @@ let in stdenv.mkDerivation { pname = "lemon"; - version = "1.69"; + version = "1.0-unstable"; dontUnpack = true; From 18958ec50499df63a6b73057ababc683e36973bd Mon Sep 17 00:00:00 2001 From: Anthony Roussel Date: Mon, 19 Jan 2026 01:28:33 +0100 Subject: [PATCH 156/396] maintainers: drop noreferences Last maintained package (nimbo) has been removed. Thank you for your contributions! Please feel free to add yourself back when adopting a new package. --- maintainers/maintainer-list.nix | 6 ------ 1 file changed, 6 deletions(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 2484f0dc7bce..68a338197ad0 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -19099,12 +19099,6 @@ github = "0xnook"; githubId = 88323754; }; - noreferences = { - email = "norkus@norkus.net"; - github = "jozuas"; - githubId = 13085275; - name = "Juozas Norkus"; - }; norfair = { email = "syd@cs-syd.eu"; github = "NorfairKing"; From 0ee97ed434490f9e1ec284ec0c84dd0443a5fb39 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 00:43:03 +0000 Subject: [PATCH 157/396] python3Packages.pydal: 20260110.1 -> 20260118.1 --- pkgs/development/python-modules/pydal/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pydal/default.nix b/pkgs/development/python-modules/pydal/default.nix index 214bf99f93b9..dce483024e0c 100644 --- a/pkgs/development/python-modules/pydal/default.nix +++ b/pkgs/development/python-modules/pydal/default.nix @@ -10,12 +10,12 @@ buildPythonPackage rec { pname = "pydal"; - version = "20260110.1"; + version = "20260118.1"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-YBcZB9q54pphCDObUgRqPe6LUO99ojLTK4Gqwuv0RaA="; + hash = "sha256-bJ9/pnip0IKzI/nmTXcNfv1QpGVDEH+1eQi2zMr/u88="; }; build-system = [ setuptools ]; From 28bd8b27a9d51c4bdf9b05edb37aff85e8e99dd4 Mon Sep 17 00:00:00 2001 From: Yiyu Zhou Date: Sun, 18 Jan 2026 17:19:15 -0800 Subject: [PATCH 158/396] biwascheme: init at 0.8.3 --- pkgs/by-name/bi/biwascheme/package.nix | 43 ++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 pkgs/by-name/bi/biwascheme/package.nix diff --git a/pkgs/by-name/bi/biwascheme/package.nix b/pkgs/by-name/bi/biwascheme/package.nix new file mode 100644 index 000000000000..787db85cb3f7 --- /dev/null +++ b/pkgs/by-name/bi/biwascheme/package.nix @@ -0,0 +1,43 @@ +{ + buildNpmPackage, + fetchFromGitHub, + lib, + nix-update-script, + versionCheckHook, +}: + +buildNpmPackage (finalAttrs: { + pname = "biwascheme"; + version = "0.8.3"; + + src = fetchFromGitHub { + owner = "biwascheme"; + repo = "biwascheme"; + tag = "v${finalAttrs.version}"; + hash = "sha256-X3spl/myhcfmnJ1pN7RAoR0rc4kEM9s0DLtrN9RqyhU="; + }; + + npmDepsHash = "sha256-jVLCR6gIgK5OhH/KQPn3lYdTuNpMAEAQS1EtqIq8jTM="; + + postPatch = '' + substituteInPlace rollup.config.js \ + --replace-fail "git rev-parse HEAD" "echo ${finalAttrs.version}" + ''; + + env.PUPPETEER_SKIP_DOWNLOAD = true; + + doInstallCheck = true; + nativeInstallCheckInputs = [ versionCheckHook ]; + versionCheckProgramArg = "--version"; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Scheme interpreter written in JavaScript"; + homepage = "https://github.com/biwascheme/biwascheme"; + changelog = "https://github.com/biwascheme/biwascheme/blob/${finalAttrs.src.tag}/CHANGELOG.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ yiyu ]; + mainProgram = "biwas"; + }; +}) From fac90bc4602fad7d1003410736309b4cdda8a7b9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 01:23:17 +0000 Subject: [PATCH 159/396] python3Packages.vivisect: 1.2.1 -> 1.3.0 --- pkgs/development/python-modules/vivisect/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/vivisect/default.nix b/pkgs/development/python-modules/vivisect/default.nix index c612fc146903..b229576a0a7c 100644 --- a/pkgs/development/python-modules/vivisect/default.nix +++ b/pkgs/development/python-modules/vivisect/default.nix @@ -16,12 +16,12 @@ buildPythonPackage rec { pname = "vivisect"; - version = "1.2.1"; + version = "1.3.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-zBWrVBub48rYBg7k9CDmgCWPpPz3R38/mtUCM1P3Mpk="; + hash = "sha256-sI/xlbodbud5GJ3s9atmDS1KOD7VYs7B3OdYCx1NgE4="; }; pythonRelaxDeps = [ From 6a097b167396e611434e8a25ef8594c65abb372b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 01:41:54 +0000 Subject: [PATCH 160/396] minder: 2.0.3 -> 2.0.4 --- pkgs/by-name/mi/minder/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/mi/minder/package.nix b/pkgs/by-name/mi/minder/package.nix index fb1a18f5551b..8654f9d39bb6 100644 --- a/pkgs/by-name/mi/minder/package.nix +++ b/pkgs/by-name/mi/minder/package.nix @@ -23,13 +23,13 @@ stdenv.mkDerivation rec { pname = "minder"; - version = "2.0.3"; + version = "2.0.4"; src = fetchFromGitHub { owner = "phase1geo"; repo = "minder"; tag = version; - hash = "sha256-gqTVRICPI6XlJmrBT6b5cONmBQ9LhsEuHUf/19NmXPo="; + hash = "sha256-IY4phXunB4ypU6wRhhXA2wg7Vsv8WvcL6nEXDiOGj/E="; }; nativeBuildInputs = [ From 171ae866c19c515d93619c410db36ab4b2754d1b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 01:45:59 +0000 Subject: [PATCH 161/396] python3Packages.pybigwig: 0.3.24 -> 0.3.25 --- pkgs/development/python-modules/pybigwig/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pybigwig/default.nix b/pkgs/development/python-modules/pybigwig/default.nix index 0a3efb9bd326..7b82f2ecea42 100644 --- a/pkgs/development/python-modules/pybigwig/default.nix +++ b/pkgs/development/python-modules/pybigwig/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "pybigwig"; - version = "0.3.24"; + version = "0.3.25"; format = "setuptools"; src = fetchFromGitHub { owner = "deeptools"; repo = "pyBigWig"; tag = version; - hash = "sha256-gK3cOwbvQtf+g1H/4x69swqCFdkBwpV7ZOrbE0eANh0="; + hash = "sha256-Vq/QdJg2qObJ49lHZ4RjULfI0f7pScLRWGW8NBZoMAw="; }; buildInputs = [ zlib ]; From 3f6f41c766874056d2b470482bcb903a81bd6079 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 19 Jan 2026 02:58:04 +0100 Subject: [PATCH 162/396] python313Packages.types-regex: migrate to finalAttrs - add doCheck --- .../python-modules/types-regex/default.nix | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/pkgs/development/python-modules/types-regex/default.nix b/pkgs/development/python-modules/types-regex/default.nix index 3853f855eb49..31474f561da8 100644 --- a/pkgs/development/python-modules/types-regex/default.nix +++ b/pkgs/development/python-modules/types-regex/default.nix @@ -5,24 +5,23 @@ setuptools, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "types-regex"; version = "2026.1.15.20260116"; pyproject = true; src = fetchPypi { pname = "types_regex"; - inherit version; + inherit (finalAttrs) version; hash = "sha256-cVGpvMW7+ez8z4M1xFGsqCBPWgmS4GIqr69IKHbO5Pc="; }; - build-system = [ - setuptools - ]; + build-system = [ setuptools ]; - pythonImportsCheck = [ - "regex-stubs" - ]; + pythonImportsCheck = [ "regex-stubs" ]; + + # Module has no tests + doCheck = false; meta = { description = "Typing stubs for regex"; @@ -30,4 +29,4 @@ buildPythonPackage rec { license = lib.licenses.asl20; maintainers = with lib.maintainers; [ dwoffinden ]; }; -} +}) From 9f513941452d550fff5263dd6dab3259d37bc344 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 02:15:11 +0000 Subject: [PATCH 163/396] re-isearch: 2.20220925.4.0a-unstable-2025-12-30 -> 2.20220925.4.0a-unstable-2026-01-14 --- pkgs/by-name/re/re-isearch/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/re/re-isearch/package.nix b/pkgs/by-name/re/re-isearch/package.nix index feef672373c9..fb527df247ad 100644 --- a/pkgs/by-name/re/re-isearch/package.nix +++ b/pkgs/by-name/re/re-isearch/package.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation { pname = "re-Isearch"; - version = "2.20220925.4.0a-unstable-2025-12-30"; + version = "2.20220925.4.0a-unstable-2026-01-14"; src = fetchFromGitHub { owner = "re-Isearch"; repo = "re-Isearch"; - rev = "cff7cd6d0fdcc42e87f6e1ffb24a51f2880c061f"; - hash = "sha256-VxWhEhxTfWU4Gfsq8PY3SCxb7Gvckh0pr7GsNSdCl2w="; + rev = "304fa432f4f364c96e99e12f362d8c1f4c02db08"; + hash = "sha256-B8fjW9ulGgoU7nZerv893PV6Blnq/Nyj2YYZBsu+Tf8="; }; patches = [ From f8efb53897b94bf07746931fafc78feed76601c8 Mon Sep 17 00:00:00 2001 From: Mio Date: Mon, 19 Jan 2026 13:20:33 +1100 Subject: [PATCH 164/396] aliases: add speed_dreams --- pkgs/top-level/aliases.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index d279f6c5672c..b554df37753b 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1584,6 +1584,7 @@ mapAliases { spago = spago-legacy; # Added 2025-09-23, pkgs.spago should become spago@next which hasn't been packaged yet spark2014 = throw "'spark2014' has been renamed to/replaced by 'gnatprove'"; # Converted to throw 2025-10-27 sparkle = throw "'sparkle' has been removed because upstream repository source code has been deleted"; # Added 2025-12-29 + speed_dreams = speed-dreams; # Added 2026-01-19 spidermonkey_91 = throw "'spidermonkey_91 is EOL since 2022/09"; # Added 2025-08-26 spoof = throw "'spoof' has been removed, as it is broken with the latest MacOS versions and is unmaintained upstream"; # Added 2025-11-14 spotify-unwrapped = throw "'spotify-unwrapped' has been renamed to/replaced by 'spotify'"; # Converted to throw 2025-10-27 From 984a8819d02b4fba594944a029895f89b35b52c6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 02:27:50 +0000 Subject: [PATCH 165/396] grafanaPlugins.yesoreyeram-infinity-datasource: 3.6.0 -> 3.7.0 --- .../plugins/yesoreyeram-infinity-datasource/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/monitoring/grafana/plugins/yesoreyeram-infinity-datasource/default.nix b/pkgs/servers/monitoring/grafana/plugins/yesoreyeram-infinity-datasource/default.nix index ef8b96ea7e74..4537d26941cd 100644 --- a/pkgs/servers/monitoring/grafana/plugins/yesoreyeram-infinity-datasource/default.nix +++ b/pkgs/servers/monitoring/grafana/plugins/yesoreyeram-infinity-datasource/default.nix @@ -2,8 +2,8 @@ grafanaPlugin { pname = "yesoreyeram-infinity-datasource"; - version = "3.6.0"; - zipHash = "sha256-9skliIZ/Ezb6GOMNRhO4DUEvS+b89qlYCZDyAL/FXUE="; + version = "3.7.0"; + zipHash = "sha256-GHA4kHqzfa8bdldL/Bk+7oBa3lIraLz9dqwOJ1LsRlE="; meta = { description = "Visualize data from JSON, CSV, XML, GraphQL and HTML endpoints in Grafana"; license = lib.licenses.asl20; From e26cb66c2b044b0807e72aab6abe1ba1f41d4cf6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 02:45:31 +0000 Subject: [PATCH 166/396] equicord: 2025-12-25 -> 2026-01-19 --- pkgs/by-name/eq/equicord/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/eq/equicord/package.nix b/pkgs/by-name/eq/equicord/package.nix index ec8b144b022b..60947666ec93 100644 --- a/pkgs/by-name/eq/equicord/package.nix +++ b/pkgs/by-name/eq/equicord/package.nix @@ -20,13 +20,13 @@ stdenv.mkDerivation (finalAttrs: { # the Equicord repository. Dates as tags (and automatic releases) were the compromise # we came to with upstream. Please do not change the version schema (e.g., to semver) # unless upstream changes the tag schema from dates. - version = "2025-12-25"; + version = "2026-01-19"; src = fetchFromGitHub { owner = "Equicord"; repo = "Equicord"; tag = finalAttrs.version; - hash = "sha256-ce5n7E+eJLPnj/dUnaaDi4R8kKO4+iOcQgdtOin4NcM="; + hash = "sha256-pEFU1E+BqAAAz2ywPrS1MejhZ/g47iG/4BBey+2F7Hw="; }; pnpmDeps = fetchPnpmDeps { From e656db90c7dfbe197a8bfa9a76b2934f40bf92dc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 02:56:08 +0000 Subject: [PATCH 167/396] python3Packages.ghapi: 1.0.8 -> 1.0.9 --- pkgs/development/python-modules/ghapi/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/ghapi/default.nix b/pkgs/development/python-modules/ghapi/default.nix index fe650ff60b04..a61fac9bfc4a 100644 --- a/pkgs/development/python-modules/ghapi/default.nix +++ b/pkgs/development/python-modules/ghapi/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "ghapi"; - version = "1.0.8"; + version = "1.0.9"; pyproject = true; src = fetchFromGitHub { owner = "fastai"; repo = "ghapi"; tag = version; - hash = "sha256-ZfOo5Icusj8Fm5i/HWGjjXtNWEB1wgYNzqeLeWbBJ/4="; + hash = "sha256-gBwOxWHjGyTrAKpG7BVoO7eQJw3fcLMXaF7CbAwMOj8="; }; build-system = [ setuptools ]; From 72406562ba82a48986e94db47064b66d6e5f0245 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 03:11:56 +0000 Subject: [PATCH 168/396] ansel: 0-unstable-2026-01-09 -> 0-unstable-2026-01-17 --- pkgs/by-name/an/ansel/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/an/ansel/package.nix b/pkgs/by-name/an/ansel/package.nix index cc2d853ac8ed..84413129b23b 100644 --- a/pkgs/by-name/an/ansel/package.nix +++ b/pkgs/by-name/an/ansel/package.nix @@ -82,13 +82,13 @@ let in stdenv.mkDerivation { pname = "ansel"; - version = "0-unstable-2026-01-09"; + version = "0-unstable-2026-01-17"; src = fetchFromGitHub { owner = "aurelienpierreeng"; repo = "ansel"; - rev = "1d3af0ff6899a96a4fb916806696e563c1accb80"; - hash = "sha256-XLKuQPCXAsH1qpC8Sw6AFSwXhl10pD0X1PSaRIhrnzs="; + rev = "0a6a812ce35f50ff4e2bf6302f1fb1c9d24a6f19"; + hash = "sha256-1tvh8ZbEUPRufFN0KHbPDqy7DEod9LRRI0XpxKJDZmU="; fetchSubmodules = true; }; From 79f3444881c36c2a14ffc96dd3c6f7213e46dbcc Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Sun, 18 Jan 2026 21:56:03 -0600 Subject: [PATCH 169/396] luaPackages: update on 2026-01-18 Signed-off-by: Austin Horstman --- .../lua-modules/generated-packages.nix | 42 +++++++++---------- pkgs/development/lua-modules/overrides.nix | 3 +- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/pkgs/development/lua-modules/generated-packages.nix b/pkgs/development/lua-modules/generated-packages.nix index 0e820b93bcff..cb1189466280 100644 --- a/pkgs/development/lua-modules/generated-packages.nix +++ b/pkgs/development/lua-modules/generated-packages.nix @@ -814,15 +814,15 @@ final: prev: { }: buildLuarocksPackage { pname = "fzf-lua"; - version = "0.0.2410-1"; + version = "0.0.2415-1"; knownRockspec = (fetchurl { - url = "mirror://luarocks/fzf-lua-0.0.2410-1.rockspec"; - sha256 = "0krnaazp7026l835qcidixq637a353r17zc1rg0ql954nv9rq9y0"; + url = "mirror://luarocks/fzf-lua-0.0.2415-1.rockspec"; + sha256 = "1f6sldmq34d40zf646v9xbff1ndlj7cg63wnis19w1bkr5s1a8kx"; }).outPath; src = fetchzip { - url = "https://github.com/ibhagwan/fzf-lua/archive/e7773d0c863a31bfc8ab72dd1adbec4611a35409.zip"; - sha256 = "17dhn1xjq33xqxg4v5z072qliz3ykjfq2qhq51s4j5rz5czypv7q"; + url = "https://github.com/ibhagwan/fzf-lua/archive/abe5ecafebb4e24feb162384d5f492431036e791.zip"; + sha256 = "1qjxbj44ryvxxz10i07d70y8m6cqg85v336mjbdiarwmscg1ns12"; }; disabled = luaOlder "5.1"; @@ -2013,17 +2013,17 @@ final: prev: { }: buildLuarocksPackage { pname = "lua-resty-openssl"; - version = "1.7.0-1"; + version = "1.7.1-1"; knownRockspec = (fetchurl { - url = "mirror://luarocks/lua-resty-openssl-1.7.0-1.rockspec"; - sha256 = "0p4i14ypbw39ap3dvxhfnnb221909z2lqlk16nbqx33brawydl64"; + url = "mirror://luarocks/lua-resty-openssl-1.7.1-1.rockspec"; + sha256 = "1gvgz0p9j90grqjx501r1h6d3z866j550b3jlfjrcr1qb1xy5b6l"; }).outPath; src = fetchFromGitHub { owner = "fffonion"; repo = "lua-resty-openssl"; - rev = "1.7.0"; - hash = "sha256-xcEnic0aQCgzIlgU/Z6dxH7WTyTK+g5UKo4BiKcvNxQ="; + rev = "1.7.1"; + hash = "sha256-Zj4neqIptfg8Qckj6BOoHpnVlxCNmJuIgg1kcuqt6pw="; }; meta = { @@ -3938,15 +3938,15 @@ final: prev: { }: buildLuarocksPackage { pname = "neorg"; - version = "9.3.0-1"; + version = "9.4.0-1"; knownRockspec = (fetchurl { - url = "mirror://luarocks/neorg-9.3.0-1.rockspec"; - sha256 = "14w4hbk2hhcg1va2lgvfzzfp67lprnfar56swl29ixnzlf82a9bi"; + url = "mirror://luarocks/neorg-9.4.0-1.rockspec"; + sha256 = "0gm91iv0a5lpch6n92cnrcbpn525gxl735cgqwlldbrdfjwxv4y2"; }).outPath; src = fetchzip { - url = "https://github.com/nvim-neorg/neorg/archive/v9.3.0.zip"; - sha256 = "0ifl5n8sq8bafzx72ghfrmxsylhhlqvqmxzb5258jm76qj113cd9"; + url = "https://github.com/nvim-neorg/neorg/archive/d4e6b3665504baa88685c9d2e79446d336dc0594.zip"; + sha256 = "0gjyn9csw3rngnjxq6hyh7zl20ks6ibqvb5kggmkr9qhi3a8kiaj"; }; disabled = luaOlder "5.1"; @@ -4678,21 +4678,21 @@ final: prev: { }: buildLuarocksPackage { pname = "rustaceanvim"; - version = "7.1.0-2"; + version = "7.1.1-2"; knownRockspec = (fetchurl { - url = "mirror://luarocks/rustaceanvim-7.1.0-2.rockspec"; - sha256 = "1djp3zzxwma240yfsxkqai6znk34qh3j4j5zl28hx5wd157j75j1"; + url = "mirror://luarocks/rustaceanvim-7.1.1-2.rockspec"; + sha256 = "1fzcf262v25315r777g76a18dhfhjm3xrrlx5v4s6z4z40xfxrq5"; }).outPath; src = fetchzip { - url = "https://github.com/mrcjkb/rustaceanvim/archive/refs/tags/v7.1.0.zip"; - sha256 = "09ai6ymw9gizbybqgfnzsjl6ap3giw4hsy9iwc1pva2rdnbzql9w"; + url = "https://github.com/mrcjkb/rustaceanvim/archive/refs/tags/v7.1.1.zip"; + sha256 = "0pnnzgqg9i89px6ikqqmqpskl4v5ri7f95cd23q99k2mlhzhz0ml"; }; disabled = lua.luaversion != "5.1"; meta = { - homepage = "https://github.com/mrcjkb/rustaceanvim/archive/refs/tags/v7.1.0.zip"; + homepage = "https://github.com/mrcjkb/rustaceanvim/archive/refs/tags/v7.1.1.zip"; description = "🦀 Supercharge your Rust experience in Neovim! A heavily modified fork of rust-tools.nvim"; maintainers = with lib.maintainers; [ mrcjkb ]; license.fullName = "GPL-2.0-only"; diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix index 4b9398c296ae..ef7b75482bec 100644 --- a/pkgs/development/lua-modules/overrides.nix +++ b/pkgs/development/lua-modules/overrides.nix @@ -830,7 +830,8 @@ in substituteInPlace ''${rockspecFilename} \ --replace-fail "'nvim-nio ~> 1.7'," "'nvim-nio >= 1.7'," \ --replace-fail "'plenary.nvim == 0.1.4'," "'plenary.nvim'," \ - --replace-fail "'nui.nvim == 0.3.0'," "'nui.nvim'," + --replace-fail "'nui.nvim == 0.3.0'," "'nui.nvim'," \ + --replace-fail ", 'nvim-treesitter-legacy-api == 0.9.2'" "" ''; }; From 2a2bf4dc7ff41b2e144561f43a563e0ca8adf6b5 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 04:13:23 +0000 Subject: [PATCH 170/396] grimblast: 0.1-unstable-2025-12-18 -> 0.1-unstable-2026-01-14 --- pkgs/by-name/gr/grimblast/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/gr/grimblast/package.nix b/pkgs/by-name/gr/grimblast/package.nix index dddf243a7053..0e6ccfd3552f 100644 --- a/pkgs/by-name/gr/grimblast/package.nix +++ b/pkgs/by-name/gr/grimblast/package.nix @@ -19,13 +19,13 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "grimblast"; - version = "0.1-unstable-2025-12-18"; + version = "0.1-unstable-2026-01-14"; src = fetchFromGitHub { owner = "hyprwm"; repo = "contrib"; - rev = "41dbcac8183bb1b3a4ade0d8276b2f2df6ae4690"; - hash = "sha256-d3HmUbmfTDIt9mXEHszqyo2byqQMoyJtUJCZ9U1IqHQ="; + rev = "541628cebe42792ddf5063c4abd6402c2f1bd68f"; + hash = "sha256-CopNx3j//gZ2mE0ggEK9dZ474UcbDhpTw+KMor8mSxI="; }; strictDeps = true; From 94721f5ff8534406aeb20f096a67d10c9acea1c7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 04:13:24 +0000 Subject: [PATCH 171/396] streamlink: 8.1.0 -> 8.1.2 --- pkgs/by-name/st/streamlink/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/st/streamlink/package.nix b/pkgs/by-name/st/streamlink/package.nix index f035a674b6b4..989662a50fc1 100644 --- a/pkgs/by-name/st/streamlink/package.nix +++ b/pkgs/by-name/st/streamlink/package.nix @@ -11,12 +11,12 @@ python3Packages.buildPythonApplication rec { pname = "streamlink"; - version = "8.1.0"; + version = "8.1.2"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-rNKXIZoMuq/+TikikFVLnEVAj6n25NwSEdHM0fSkQDk="; + hash = "sha256-0ICZ+hsWm61KmR0xsquJ8EugixMZ7R9b0OrYVH1MWtM="; }; patches = [ From 056f36281a26d5d94d63dc0d7f0a11ad29168006 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 04:13:44 +0000 Subject: [PATCH 172/396] cosmic-reader: 0-unstable-2025-12-30 -> 0-unstable-2026-01-16 --- pkgs/by-name/co/cosmic-reader/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/co/cosmic-reader/package.nix b/pkgs/by-name/co/cosmic-reader/package.nix index 163c407369ee..db0db0399f60 100644 --- a/pkgs/by-name/co/cosmic-reader/package.nix +++ b/pkgs/by-name/co/cosmic-reader/package.nix @@ -19,13 +19,13 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "cosmic-reader"; - version = "0-unstable-2025-12-30"; + version = "0-unstable-2026-01-16"; src = fetchFromGitHub { owner = "pop-os"; repo = "cosmic-reader"; - rev = "4892355d48aa337f73f69aafe6739c6833f99a01"; - hash = "sha256-kM6YzKTJkkyEv5DBEkkbmlfpUBLEhjaJ4OIzZ62HeJ0="; + rev = "1b030e2f96dc7a141473f87de3cb1f375298589f"; + hash = "sha256-r+QPe7+rvdYm76DLFtOePh9+eIvSbzuqvhe4490ynWk="; }; cargoHash = "sha256-4ofAtZN3FpYwNahinldALbdEJA5lDwa+CUsVIISnSTc="; From 799970f5f34e5d765d1b46213f59cb23f14d799f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 04:27:20 +0000 Subject: [PATCH 173/396] reqable: 3.0.33 -> 3.0.34 --- pkgs/by-name/re/reqable/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/re/reqable/package.nix b/pkgs/by-name/re/reqable/package.nix index a255675004ea..19d8833e3a63 100644 --- a/pkgs/by-name/re/reqable/package.nix +++ b/pkgs/by-name/re/reqable/package.nix @@ -28,11 +28,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "reqable"; - version = "3.0.33"; + version = "3.0.34"; src = fetchurl { url = "https://github.com/reqable/reqable-app/releases/download/${finalAttrs.version}/reqable-app-linux-x86_64.deb"; - hash = "sha256-Cb4cJsUvmlCupquE9o9VkxxHoTnRkvuAaximyABeBQk="; + hash = "sha256-cKkrGvGnccU4sRzQ/LFzSh1yG1BViNz2E8aLUlzQaAI="; }; nativeBuildInputs = [ From 20c968ca4b8c9ee3c4c2f9d4b023d85035d0550e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 04:30:52 +0000 Subject: [PATCH 174/396] thunderbird-140-unwrapped: 140.6.0esr -> 140.7.0esr --- .../networking/mailreaders/thunderbird/packages.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix index 046d9d5eaf15..43117b3af188 100644 --- a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix +++ b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix @@ -100,8 +100,8 @@ rec { thunderbird-140 = common { applicationName = "Thunderbird ESR"; - version = "140.6.0esr"; - sha512 = "817a807381fa0b5e5e2c3f961931855788649ed596b1c6773ec5b0d6715e90df137ab0f755408a9137b5573169c2e2040bf6a01c4ecdb9a8b010e6c43dbb6381"; + version = "140.7.0esr"; + sha512 = "92746d87ca2d5a59082c25aa3c3a816e5bf24ae3e095f8ec478a60c5cd890faea392ff98b5b510cc9a89b155240dce9d06c7ddd0f17f564722acc65105fb6cd2"; updateScript = callPackage ./update.nix { attrPath = "thunderbirdPackages.thunderbird-140"; From 59869cb9760cdb270641848d5fcb496a05ca4dd8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 04:49:27 +0000 Subject: [PATCH 175/396] libretro.fbneo: 0-unstable-2026-01-11 -> 0-unstable-2026-01-18 --- pkgs/applications/emulators/libretro/cores/fbneo.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/emulators/libretro/cores/fbneo.nix b/pkgs/applications/emulators/libretro/cores/fbneo.nix index d9cc3e10cb38..23a64f05159e 100644 --- a/pkgs/applications/emulators/libretro/cores/fbneo.nix +++ b/pkgs/applications/emulators/libretro/cores/fbneo.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "fbneo"; - version = "0-unstable-2026-01-11"; + version = "0-unstable-2026-01-18"; src = fetchFromGitHub { owner = "libretro"; repo = "fbneo"; - rev = "aaecfedbb206a79d0e35a0dfe922622b921a66f7"; - hash = "sha256-Xn3lxXFf7EEism9CIGYhvP83oCpOTrpgnBAwkkB4TDM="; + rev = "3faea4f9c678bad8063f3a2774b051f42848c856"; + hash = "sha256-tH9XMBfg3O2oKIUeKWi2hl4yQuHa9BMgvkWjIxv/KIo="; }; makefile = "Makefile"; From bdbb7fc26c475476c028e958618257f0b88d65fa Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 04:55:58 +0000 Subject: [PATCH 176/396] bandit: 1.9.2 -> 1.9.3 --- pkgs/development/python-modules/bandit/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/bandit/default.nix b/pkgs/development/python-modules/bandit/default.nix index b4045b47fc48..97b691c7e2a6 100644 --- a/pkgs/development/python-modules/bandit/default.nix +++ b/pkgs/development/python-modules/bandit/default.nix @@ -11,12 +11,12 @@ buildPythonPackage rec { pname = "bandit"; - version = "1.9.2"; + version = "1.9.3"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-MkEEFc2Tv5yLkZchWdXPHn8GOpFG1wNFZBzTh33jSM4="; + hash = "sha256-reS5t3hvie9vxzRKUrNFWMrsXadMuQNzrtAd6IRy93Q="; }; build-system = [ pbr ]; From a7b9dc20cb5974cf271d357b00e85fc324571013 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 05:07:17 +0000 Subject: [PATCH 177/396] vscode-extensions.sourcegraph.amp: 0.0.1768263519 -> 0.0.1768796962 --- .../editors/vscode/extensions/sourcegraph.amp/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/sourcegraph.amp/default.nix b/pkgs/applications/editors/vscode/extensions/sourcegraph.amp/default.nix index 4c2a1809d3e0..f3cb6de99203 100644 --- a/pkgs/applications/editors/vscode/extensions/sourcegraph.amp/default.nix +++ b/pkgs/applications/editors/vscode/extensions/sourcegraph.amp/default.nix @@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { publisher = "sourcegraph"; name = "amp"; - version = "0.0.1768263519"; - hash = "sha256-uOvvkzXvyHiJP3ZxHBJhXW/M8Ju1DjSXpwflAkKjgxs="; + version = "0.0.1768796962"; + hash = "sha256-uZb5QI6JDv8FdLU0yZzFsJ43J0P0X5c16dl5Poa8n/w="; }; meta = { From 29c12fa0436a90817e235250529274817dde8b4f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 05:09:21 +0000 Subject: [PATCH 178/396] gitlogue: 0.6.0 -> 0.7.0 --- pkgs/by-name/gi/gitlogue/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/gi/gitlogue/package.nix b/pkgs/by-name/gi/gitlogue/package.nix index 97d4e98fbf38..3c615d5082f3 100644 --- a/pkgs/by-name/gi/gitlogue/package.nix +++ b/pkgs/by-name/gi/gitlogue/package.nix @@ -11,16 +11,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "gitlogue"; - version = "0.6.0"; + version = "0.7.0"; src = fetchFromGitHub { owner = "unhappychoice"; repo = "gitlogue"; tag = "v${finalAttrs.version}"; - hash = "sha256-tcq0TIB9Mfm3kt2PInMto7g2VNpDsOvBiQGNP8+nFvY="; + hash = "sha256-mZ2A6274Ujpo5rTewFaMUslZhLCKJ2iw43J8X3vuBBI="; }; - cargoHash = "sha256-RZ+JiMy0zHu8aEn4ytRmFcvASRcsHDVK9ls77W7ann0="; + cargoHash = "sha256-MueaRVomOiQsPSOnHpB/k9a8fNpKpFRilAXgIkVxZ94="; nativeBuildInputs = [ pkg-config ]; From e424267f28039a2a7059aa32919c089cfb7ede8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=B7=F0=90=91=91=F0=90=91=B4=F0=90=91=95=F0=90=91=91?= =?UTF-8?q?=F0=90=91=A9=F0=90=91=A4?= Date: Mon, 19 Jan 2026 12:43:02 +0700 Subject: [PATCH 179/396] =?UTF-8?q?h2o:=202.3.0-rolling-2026-01-16=20?= =?UTF-8?q?=E2=86=92=202.3.0-rolling-2026-01-19?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/by-name/h2/h2o/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/h2/h2o/package.nix b/pkgs/by-name/h2/h2o/package.nix index b161645843de..91e796183994 100644 --- a/pkgs/by-name/h2/h2o/package.nix +++ b/pkgs/by-name/h2/h2o/package.nix @@ -23,13 +23,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "h2o"; - version = "2.3.0-rolling-2026-01-16"; + version = "2.3.0-rolling-2026-01-19"; src = fetchFromGitHub { owner = "h2o"; repo = "h2o"; - rev = "ccea64b17ade832753db933658047ede9f31a380"; - hash = "sha256-47oNCbOGqNNNUkoP6Bj5F8Zv5QAN0+MGOIGo5jXGtf4="; + rev = "a9ba592b904684b8d12e9a825e4a579c31999c2b"; + hash = "sha256-ZLoZgMIhBtLJ0GS6leyTegNauAczGB0Ua1pU6PE31yE="; }; outputs = [ From c6708d9bda0ebda37881788be1eb5521bce80fa0 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Mon, 19 Jan 2026 13:42:41 +0900 Subject: [PATCH 180/396] various: replace `systemd.services..{script,preStart}` with `ExecStart{,Pre}` This is a partial revert of 39e9380 --- nixos/modules/security/soteria.nix | 2 +- .../services/blockchain/ethereum/geth.nix | 68 ++++++++++--------- .../services/computing/boinc/client.nix | 4 +- nixos/modules/services/hardware/pommed.nix | 2 +- .../services/home-automation/zigbee2mqtt.nix | 4 +- nixos/modules/services/logging/heartbeat.nix | 4 +- .../modules/services/logging/journalbeat.nix | 8 +-- .../services/logging/journaldriver.nix | 2 +- nixos/modules/services/logging/promtail.nix | 5 +- nixos/modules/services/logging/syslog-ng.nix | 2 +- nixos/modules/services/mail/cyrus-imap.nix | 4 +- nixos/modules/services/mail/dkimproxy-out.nix | 4 +- nixos/modules/services/mail/nullmailer.nix | 8 +-- nixos/modules/services/mail/postgrey.nix | 10 +-- nixos/modules/services/mail/stalwart-mail.nix | 19 +++--- nixos/modules/services/misc/autofs.nix | 7 +- nixos/modules/services/misc/dictd.nix | 2 +- .../modules/services/misc/docker-registry.nix | 4 +- nixos/modules/services/misc/errbot.nix | 8 +-- 19 files changed, 77 insertions(+), 90 deletions(-) diff --git a/nixos/modules/security/soteria.nix b/nixos/modules/security/soteria.nix index 3b2f8349c4e5..1e2b59e5714d 100644 --- a/nixos/modules/security/soteria.nix +++ b/nixos/modules/security/soteria.nix @@ -36,8 +36,8 @@ in wants = [ "graphical-session.target" ]; after = [ "graphical-session.target" ]; - script = lib.getExe cfg.package; serviceConfig = { + ExecStart = lib.getExe cfg.package; Type = "simple"; Restart = "on-failure"; RestartSec = 1; diff --git a/nixos/modules/services/blockchain/ethereum/geth.nix b/nixos/modules/services/blockchain/ethereum/geth.nix index 570c556ef849..f58ca9d9819a 100644 --- a/nixos/modules/services/blockchain/ethereum/geth.nix +++ b/nixos/modules/services/blockchain/ethereum/geth.nix @@ -206,6 +206,43 @@ in after = [ "network.target" ]; serviceConfig = { + ExecStart = + let + args = lib.cli.toCommandLineShellGNU { } { + inherit (cfg) + syncmode + gcmode + port + maxpeers + ; + nousb = true; + ipcdisable = true; + datadir = dataDir; + ${cfg.network} = true; + + http = cfg.http.enable; + "http.addr" = if cfg.http.enable then cfg.http.address else null; + "http.port" = if cfg.http.enable then cfg.http.port else null; + "http.api" = if cfg.http.apis != null then lib.concatStringsSep "," cfg.http.apis else null; + + ws = cfg.websocket.enable; + "ws.addr" = if cfg.websocket.enable then cfg.websocket.address else null; + "ws.port" = if cfg.websocket.enable then cfg.websocket.port else null; + "ws.api" = if cfg.websocket.apis != null then lib.concatStringsSep "," cfg.websocket.apis else null; + + metrics = cfg.metrics.enable; + "metrics.addr" = if cfg.metrics.enable then cfg.metrics.address else null; + "metrics.port" = if cfg.metrics.enable then cfg.metrics.port else null; + + "authrpc.addr" = cfg.authrpc.address; + "authrpc.port" = cfg.authrpc.port; + "authrpc.vhosts" = lib.concatStringsSep "," cfg.authrpc.vhosts; + "authrpc.jwtsecret" = + if cfg.authrpc.jwtsecret != "" then cfg.authrpc.jwtsecret else "${dataDir}/geth/jwtsecret"; + }; + in + "${lib.getExe cfg.package} ${args} ${lib.escapeShellArgs cfg.extraArgs}"; + DynamicUser = true; Restart = "always"; StateDirectory = stateDir; @@ -217,37 +254,6 @@ in PrivateDevices = "true"; MemoryDenyWriteExecute = "true"; }; - - script = '' - ${cfg.package}/bin/geth \ - --nousb \ - --ipcdisable \ - ${lib.optionalString (cfg.network != null) ''--${cfg.network}''} \ - --syncmode ${cfg.syncmode} \ - --gcmode ${cfg.gcmode} \ - --port ${toString cfg.port} \ - --maxpeers ${toString cfg.maxpeers} \ - ${lib.optionalString cfg.http.enable ''--http --http.addr ${cfg.http.address} --http.port ${toString cfg.http.port}''} \ - ${ - lib.optionalString (cfg.http.apis != null) ''--http.api ${lib.concatStringsSep "," cfg.http.apis}'' - } \ - ${lib.optionalString cfg.websocket.enable ''--ws --ws.addr ${cfg.websocket.address} --ws.port ${toString cfg.websocket.port}''} \ - ${ - lib.optionalString ( - cfg.websocket.apis != null - ) ''--ws.api ${lib.concatStringsSep "," cfg.websocket.apis}'' - } \ - ${lib.optionalString cfg.metrics.enable ''--metrics --metrics.addr ${cfg.metrics.address} --metrics.port ${toString cfg.metrics.port}''} \ - --authrpc.addr ${cfg.authrpc.address} --authrpc.port ${toString cfg.authrpc.port} --authrpc.vhosts ${lib.concatStringsSep "," cfg.authrpc.vhosts} \ - ${ - if (cfg.authrpc.jwtsecret != "") then - ''--authrpc.jwtsecret ${cfg.authrpc.jwtsecret}'' - else - ''--authrpc.jwtsecret ${dataDir}/geth/jwtsecret'' - } \ - ${lib.escapeShellArgs cfg.extraArgs} \ - --datadir ${dataDir} - ''; } )) ) eachGeth; diff --git a/nixos/modules/services/computing/boinc/client.nix b/nixos/modules/services/computing/boinc/client.nix index 8467e4b297c1..a0d244337be8 100644 --- a/nixos/modules/services/computing/boinc/client.nix +++ b/nixos/modules/services/computing/boinc/client.nix @@ -99,10 +99,8 @@ in description = "BOINC Client"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; - script = '' - exec ${fhsEnvExecutable} --dir ${cfg.dataDir} ${allowRemoteGuiRpcFlag} - ''; serviceConfig = { + ExecStart = "${fhsEnvExecutable} --dir ${cfg.dataDir} ${allowRemoteGuiRpcFlag}"; User = "boinc"; Nice = 10; }; diff --git a/nixos/modules/services/hardware/pommed.nix b/nixos/modules/services/hardware/pommed.nix index 3bb53ce4603a..ba627c009efd 100644 --- a/nixos/modules/services/hardware/pommed.nix +++ b/nixos/modules/services/hardware/pommed.nix @@ -51,7 +51,7 @@ in systemd.services.pommed = { description = "Pommed Apple Hotkeys Daemon"; wantedBy = [ "multi-user.target" ]; - script = "${pkgs.pommed_light}/bin/pommed -f"; + serviceConfig.ExecStart = "${lib.getExe pkgs.pommed_light} -f"; }; }; } diff --git a/nixos/modules/services/home-automation/zigbee2mqtt.nix b/nixos/modules/services/home-automation/zigbee2mqtt.nix index dbf714bfb84e..2488c6d68504 100644 --- a/nixos/modules/services/home-automation/zigbee2mqtt.nix +++ b/nixos/modules/services/home-automation/zigbee2mqtt.nix @@ -79,6 +79,7 @@ in after = [ "network.target" ]; environment.ZIGBEE2MQTT_DATA = cfg.dataDir; serviceConfig = { + ExecStartPre = "${lib.getExe' pkgs.coreutils "cp"} --no-preserve=mode ${configFile} '${cfg.dataDir}/configuration.yaml'"; ExecStart = "${cfg.package}/bin/zigbee2mqtt"; User = "zigbee2mqtt"; Group = "zigbee2mqtt"; @@ -130,9 +131,6 @@ in ]; UMask = "0077"; }; - preStart = '' - cp --no-preserve=mode ${configFile} "${cfg.dataDir}/configuration.yaml" - ''; }; users.users.zigbee2mqtt = { diff --git a/nixos/modules/services/logging/heartbeat.nix b/nixos/modules/services/logging/heartbeat.nix index 2280c4349144..8cc99e84c9bf 100644 --- a/nixos/modules/services/logging/heartbeat.nix +++ b/nixos/modules/services/logging/heartbeat.nix @@ -67,12 +67,10 @@ in systemd.services.heartbeat = { description = "heartbeat log shipper"; wantedBy = [ "multi-user.target" ]; - preStart = '' - mkdir -p "${cfg.stateDir}"/{data,logs} - ''; serviceConfig = { User = "nobody"; AmbientCapabilities = "cap_net_raw"; + ExecStartPre = "${lib.getExe' pkgs.coreutils "mkdir"} -p '${cfg.stateDir}'/data '${cfg.stateDir}'/logs"; ExecStart = "${cfg.package}/bin/heartbeat -c \"${heartbeatYml}\" -path.data \"${cfg.stateDir}/data\" -path.logs \"${cfg.stateDir}/logs\""; }; }; diff --git a/nixos/modules/services/logging/journalbeat.nix b/nixos/modules/services/logging/journalbeat.nix index af178a3838d2..acd178234ab7 100644 --- a/nixos/modules/services/logging/journalbeat.nix +++ b/nixos/modules/services/logging/journalbeat.nix @@ -71,12 +71,12 @@ in wantedBy = [ "multi-user.target" ]; wants = [ "elasticsearch.service" ]; after = [ "elasticsearch.service" ]; - preStart = '' - mkdir -p ${cfg.stateDir}/data - mkdir -p ${cfg.stateDir}/logs - ''; serviceConfig = { StateDirectory = cfg.stateDir; + ExecStartPre = [ + "${lib.getExe' pkgs.coreutils "mkdir"} -p ${cfg.stateDir}/data" + "${lib.getExe' pkgs.coreutils "mkdir"} -p ${cfg.stateDir}/logs" + ]; ExecStart = '' ${cfg.package}/bin/journalbeat \ -c ${journalbeatYml} \ diff --git a/nixos/modules/services/logging/journaldriver.nix b/nixos/modules/services/logging/journaldriver.nix index efb53de0b484..d9f0ccd39d97 100644 --- a/nixos/modules/services/logging/journaldriver.nix +++ b/nixos/modules/services/logging/journaldriver.nix @@ -91,12 +91,12 @@ in config = mkIf cfg.enable { systemd.services.journaldriver = { description = "Stackdriver Logging journal forwarder"; - script = "${pkgs.journaldriver}/bin/journaldriver"; wants = [ "network-online.target" ]; after = [ "network-online.target" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { + ExecStart = lib.getExe pkgs.journaldriver; Restart = "always"; DynamicUser = true; diff --git a/nixos/modules/services/logging/promtail.nix b/nixos/modules/services/logging/promtail.nix index e2bf483f426c..cc3f1bd1f5d1 100644 --- a/nixos/modules/services/logging/promtail.nix +++ b/nixos/modules/services/logging/promtail.nix @@ -66,14 +66,11 @@ in wantedBy = [ "multi-user.target" ]; stopIfChanged = false; - preStart = '' - ${lib.getExe pkgs.promtail} -config.file=${configFile} -check-syntax - ''; - serviceConfig = { Restart = "on-failure"; TimeoutStopSec = 10; + ExecStartPre = "${lib.getExe pkgs.promtail} -config.file=${configFile} -check-syntax"; ExecStart = "${pkgs.promtail}/bin/promtail -config.file=${configFile} ${escapeShellArgs cfg.extraFlags}"; ProtectSystem = "strict"; diff --git a/nixos/modules/services/logging/syslog-ng.nix b/nixos/modules/services/logging/syslog-ng.nix index 4c04d1f1f5dd..6b3e7c3e599d 100644 --- a/nixos/modules/services/logging/syslog-ng.nix +++ b/nixos/modules/services/logging/syslog-ng.nix @@ -79,7 +79,6 @@ in config = lib.mkIf cfg.enable { systemd.services.syslog-ng = { description = "syslog-ng daemon"; - preStart = "mkdir -p /{var,run}/syslog-ng"; wantedBy = [ "multi-user.target" ]; after = [ "multi-user.target" ]; # makes sure hostname etc is set serviceConfig = { @@ -87,6 +86,7 @@ in PIDFile = pidFile; StandardOutput = "null"; Restart = "on-failure"; + ExecStartPre = "${lib.getExe' pkgs.coreutils "mkdir"} -p /var/syslog-ng /run/syslog-ng"; ExecStart = "${cfg.package}/sbin/syslog-ng ${lib.concatStringsSep " " syslogngOptions}"; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; }; diff --git a/nixos/modules/services/mail/cyrus-imap.nix b/nixos/modules/services/mail/cyrus-imap.nix index 3f60093544d5..32a9869dd3c7 100644 --- a/nixos/modules/services/mail/cyrus-imap.nix +++ b/nixos/modules/services/mail/cyrus-imap.nix @@ -342,6 +342,7 @@ in User = if (cfg.user == null) then "cyrus" else cfg.user; Group = if (cfg.group == null) then "cyrus" else cfg.group; Type = "simple"; + ExecStartPre = "${lib.getExe' pkgs.coreutils "mkdir"} -p '${cfg.imapdSettings.configdirectory}/socket' '${cfg.tmpDBDir}' /run/cyrus/proc /run/cyrus/lock"; ExecStart = "${cyrus-imapdPkg}/libexec/master -l $LISTENQUEUE -C /etc/imapd.conf -M /etc/cyrus.conf -p /run/cyrus/master.pid -D"; Restart = "on-failure"; RestartSec = "1s"; @@ -367,9 +368,6 @@ in RestrictNamespaces = true; RestrictRealtime = true; }; - preStart = '' - mkdir -p '${cfg.imapdSettings.configdirectory}/socket' '${cfg.tmpDBDir}' /run/cyrus/proc /run/cyrus/lock - ''; }; environment.systemPackages = [ cyrus-imapdPkg ]; }; diff --git a/nixos/modules/services/mail/dkimproxy-out.nix b/nixos/modules/services/mail/dkimproxy-out.nix index 94af3aafdbb8..e45d4afa94a6 100644 --- a/nixos/modules/services/mail/dkimproxy-out.nix +++ b/nixos/modules/services/mail/dkimproxy-out.nix @@ -109,10 +109,8 @@ in chown -R dkimproxy-out:dkimproxy-out "${keydir}" fi ''; - script = '' - exec ${pkgs.dkimproxy}/bin/dkimproxy.out --conf_file=${configfile} - ''; serviceConfig = { + ExecStart = "${pkgs.dkimproxy}/bin/dkimproxy.out --conf_file=${configfile}"; User = "dkimproxy-out"; PermissionsStartOnly = true; }; diff --git a/nixos/modules/services/mail/nullmailer.nix b/nixos/modules/services/mail/nullmailer.nix index 6dc278f89f29..a8b1cf76f351 100644 --- a/nixos/modules/services/mail/nullmailer.nix +++ b/nixos/modules/services/mail/nullmailer.nix @@ -245,13 +245,13 @@ wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; - preStart = '' - rm -f /var/spool/nullmailer/trigger && mkfifo -m 660 /var/spool/nullmailer/trigger - ''; - serviceConfig = { User = cfg.user; Group = cfg.group; + ExecStartPre = [ + "${lib.getExe' pkgs.coreutils "rm"} -f /var/spool/nullmailer/trigger" + "${lib.getExe' pkgs.coreutils "mkfifo"} -m 660 /var/spool/nullmailer/trigger" + ]; ExecStart = "${pkgs.nullmailer}/bin/nullmailer-send"; Restart = "always"; }; diff --git a/nixos/modules/services/mail/postgrey.nix b/nixos/modules/services/mail/postgrey.nix index 463757fa8440..67a97f6a244f 100644 --- a/nixos/modules/services/mail/postgrey.nix +++ b/nixos/modules/services/mail/postgrey.nix @@ -210,13 +210,13 @@ in description = "Postfix Greylisting Service"; wantedBy = [ "multi-user.target" ]; before = [ "postfix.service" ]; - preStart = '' - mkdir -p /var/postgrey - chown postgrey:postgrey /var/postgrey - chmod 0770 /var/postgrey - ''; serviceConfig = { Type = "simple"; + ExecStartPre = [ + "${lib.getExe' pkgs.coreutils "mkdir"} -p /var/postgrey" + "${lib.getExe' pkgs.coreutils "chown"} postgrey:postgrey /var/postgrey" + "${lib.getExe' pkgs.coreutils "chmod"} 0770 /var/postgrey" + ]; ExecStart = '' ${pkgs.postgrey}/bin/postgrey \ ${bind-flag} \ diff --git a/nixos/modules/services/mail/stalwart-mail.nix b/nixos/modules/services/mail/stalwart-mail.nix index ed7edefac66f..a0ea04e50a14 100644 --- a/nixos/modules/services/mail/stalwart-mail.nix +++ b/nixos/modules/services/mail/stalwart-mail.nix @@ -162,16 +162,6 @@ in "network.target" ]; - preStart = - if useLegacyStorage then - '' - mkdir -p ${cfg.dataDir}/data/blobs - '' - else - '' - mkdir -p ${cfg.dataDir}/db - ''; - serviceConfig = { # Upstream service config Type = "simple"; @@ -182,6 +172,15 @@ in RestartSec = 5; SyslogIdentifier = "stalwart-mail"; + ExecStartPre = + if useLegacyStorage then + '' + ${lib.getExe' pkgs.coreutils "mkdir"} -p ${cfg.dataDir}/data/blobs + '' + else + '' + ${lib.getExe' pkgs.coreutils "mkdir"} -p ${cfg.dataDir}/db + ''; ExecStart = [ "" "${lib.getExe cfg.package} --config=${configFile}" diff --git a/nixos/modules/services/misc/autofs.nix b/nixos/modules/services/misc/autofs.nix index d7586ddb4c9a..c806a931c86c 100644 --- a/nixos/modules/services/misc/autofs.nix +++ b/nixos/modules/services/misc/autofs.nix @@ -88,14 +88,11 @@ in wants = [ "network-online.target" ]; wantedBy = [ "multi-user.target" ]; - preStart = '' - # There should be only one autofs service managed by systemd, so this should be safe. - rm -f /tmp/autofs-running - ''; - serviceConfig = { Type = "forking"; PIDFile = "/run/autofs.pid"; + # There should be only one autofs service managed by systemd, so this should be safe. + ExecStartPre = "${lib.getExe' pkgs.coreutils "rm"} -f /tmp/autofs-running"; ExecStart = "${pkgs.autofs5}/bin/automount ${lib.optionalString cfg.debug "-d"} -p /run/autofs.pid -t ${toString cfg.timeout} ${autoMaster}"; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; }; diff --git a/nixos/modules/services/misc/dictd.nix b/nixos/modules/services/misc/dictd.nix index b216459b2d9b..3de6ccb1896e 100644 --- a/nixos/modules/services/misc/dictd.nix +++ b/nixos/modules/services/misc/dictd.nix @@ -78,7 +78,7 @@ in # with code 143 instead of exiting with code 0. serviceConfig.SuccessExitStatus = [ 143 ]; serviceConfig.Type = "forking"; - script = "${pkgs.dict}/sbin/dictd -s -c ${dictdb}/share/dictd/dictd.conf --locale en_US.UTF-8"; + serviceConfig.ExecStart = "${pkgs.dict}/sbin/dictd -s -c ${dictdb}/share/dictd/dictd.conf --locale en_US.UTF-8"; }; }; } diff --git a/nixos/modules/services/misc/docker-registry.nix b/nixos/modules/services/misc/docker-registry.nix index 7fc777d5942e..d6d8df3b2baf 100644 --- a/nixos/modules/services/misc/docker-registry.nix +++ b/nixos/modules/services/misc/docker-registry.nix @@ -143,11 +143,9 @@ in description = "Docker Container Registry"; wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; - script = '' - ${cfg.package}/bin/registry serve ${configFile} - ''; serviceConfig = { + ExecStart = "${lib.getExe cfg.package} serve ${configFile}"; User = "docker-registry"; WorkingDirectory = cfg.storagePath; AmbientCapabilities = lib.mkIf (cfg.port < 1024) "cap_net_bind_service"; diff --git a/nixos/modules/services/misc/errbot.nix b/nixos/modules/services/misc/errbot.nix index d9f52af7fe72..aa94368d61d2 100644 --- a/nixos/modules/services/misc/errbot.nix +++ b/nixos/modules/services/misc/errbot.nix @@ -100,13 +100,13 @@ in { after = [ "network-online.target" ]; wantedBy = [ "multi-user.target" ]; - preStart = '' - mkdir -p ${dataDir} - chown -R errbot:errbot ${dataDir} - ''; serviceConfig = { User = "errbot"; Restart = "on-failure"; + ExecStartPre = [ + "${lib.getExe' pkgs.coreutils "mkdir"} -p ${dataDir}" + "${lib.getExe' pkgs.coreutils "chown"} -R errbot:errbot ${dataDir}" + ]; ExecStart = "${pkgs.errbot}/bin/errbot -c ${mkConfigDir instanceCfg dataDir}/config.py"; PermissionsStartOnly = true; }; From 60bcb8185c21338a8fc7e126b28171ab2a400d58 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 05:54:01 +0000 Subject: [PATCH 181/396] python3Packages.coiled: 1.130.1 -> 1.130.2 --- pkgs/development/python-modules/coiled/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/coiled/default.nix b/pkgs/development/python-modules/coiled/default.nix index 6a397353df1c..748775bcd6d9 100644 --- a/pkgs/development/python-modules/coiled/default.nix +++ b/pkgs/development/python-modules/coiled/default.nix @@ -39,12 +39,12 @@ buildPythonPackage (finalAttrs: { pname = "coiled"; - version = "1.130.1"; + version = "1.130.2"; pyproject = true; src = fetchPypi { inherit (finalAttrs) pname version; - hash = "sha256-v9tPbuxGyBmxx8V9MQfOTAlP5mXxJW7005plgCP/Szw="; + hash = "sha256-tkCDmbtsKOahSeIaPeN3twHWC4yQfAL9EHsYgHhPb24="; }; build-system = [ From e81fe99d58371016670361673adc72db38386d65 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 06:17:57 +0000 Subject: [PATCH 182/396] free42: 3.3.10 -> 3.3.11 --- pkgs/by-name/fr/free42/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/fr/free42/package.nix b/pkgs/by-name/fr/free42/package.nix index 87335369dc90..64d3471da57f 100644 --- a/pkgs/by-name/fr/free42/package.nix +++ b/pkgs/by-name/fr/free42/package.nix @@ -11,11 +11,11 @@ }: stdenv.mkDerivation rec { pname = "free42"; - version = "3.3.10"; + version = "3.3.11"; src = fetchurl { url = "https://thomasokken.com/free42/upstream/free42-nologo-${version}.tgz"; - hash = "sha256-Vh+Sh3oX1ICy0R6R4zu9Df2+ba2mM33qHtifINNpn7Y="; + hash = "sha256-Y9tV06K+1tZmoNBLS5tsOoLPjS2unTe8c0AYkHgDVVo="; }; nativeBuildInputs = [ From f8194651385b2ab760770a94ee204a1422097b97 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 18 Jan 2026 11:40:23 +0100 Subject: [PATCH 183/396] python313Packages.iamdata: 0.1.202601171 -> 0.1.202601181 Diff: https://github.com/cloud-copilot/iam-data-python/compare/v0.1.202601171...v0.1.202601181 Changelog: https://github.com/cloud-copilot/iam-data-python/releases/tag/v0.1.202601181 --- pkgs/development/python-modules/iamdata/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/iamdata/default.nix b/pkgs/development/python-modules/iamdata/default.nix index 2c9537c5daa0..4372f3a10960 100644 --- a/pkgs/development/python-modules/iamdata/default.nix +++ b/pkgs/development/python-modules/iamdata/default.nix @@ -8,14 +8,14 @@ buildPythonPackage (finalAttrs: { pname = "iamdata"; - version = "0.1.202601171"; + version = "0.1.202601181"; pyproject = true; src = fetchFromGitHub { owner = "cloud-copilot"; repo = "iam-data-python"; tag = "v${finalAttrs.version}"; - hash = "sha256-psxnDxWzt1IeQQ+gppkBwE7X2gEtYQdAdiHoXOKPn5w="; + hash = "sha256-GrGTaYq4RcGrOvCpdrq1jB+sybEK7mCEv3o74H5IwAc="; }; __darwinAllowLocalNetworking = true; From b80dbdeb1979fe7c1b9da44703df99632655cd0e Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 19 Jan 2026 07:26:37 +0100 Subject: [PATCH 184/396] python313Packages.iamdata: 0.1.202601181 -> 0.1.202601191 Diff: https://github.com/cloud-copilot/iam-data-python/compare/v0.1.202601181...v0.1.202601191 Changelog: https://github.com/cloud-copilot/iam-data-python/releases/tag/v0.1.202601191 --- pkgs/development/python-modules/iamdata/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/iamdata/default.nix b/pkgs/development/python-modules/iamdata/default.nix index 4372f3a10960..6eacd4a5f831 100644 --- a/pkgs/development/python-modules/iamdata/default.nix +++ b/pkgs/development/python-modules/iamdata/default.nix @@ -8,14 +8,14 @@ buildPythonPackage (finalAttrs: { pname = "iamdata"; - version = "0.1.202601181"; + version = "0.1.202601191"; pyproject = true; src = fetchFromGitHub { owner = "cloud-copilot"; repo = "iam-data-python"; tag = "v${finalAttrs.version}"; - hash = "sha256-GrGTaYq4RcGrOvCpdrq1jB+sybEK7mCEv3o74H5IwAc="; + hash = "sha256-fdHOXm+FJcHHSb01z6e01zHQmt0ZRl2/gs9wrtTR468="; }; __darwinAllowLocalNetworking = true; From 5c9e32ade3cdc8b940a9ab2fcbb57636c4cabcbd Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 06:42:16 +0000 Subject: [PATCH 185/396] gdevelop: 5.6.251 -> 5.6.252 --- pkgs/by-name/gd/gdevelop/darwin.nix | 2 +- pkgs/by-name/gd/gdevelop/linux.nix | 2 +- pkgs/by-name/gd/gdevelop/package.nix | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/gd/gdevelop/darwin.nix b/pkgs/by-name/gd/gdevelop/darwin.nix index 36f87e326cf5..4f1a8d8000ff 100644 --- a/pkgs/by-name/gd/gdevelop/darwin.nix +++ b/pkgs/by-name/gd/gdevelop/darwin.nix @@ -18,7 +18,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { src = fetchurl { url = "https://github.com/4ian/GDevelop/releases/download/v${version}/GDevelop-5-${version}-universal-mac.zip"; - hash = "sha256-U4dRxWZ/0EJWeFhTJkocSFhlks11gSPn3z68k2/1FB0="; + hash = "sha256-zBUWAFsaa+GenaHDRYNlwMs3BmyOIQ3sr/YYCX1ytEE="; }; sourceRoot = "."; diff --git a/pkgs/by-name/gd/gdevelop/linux.nix b/pkgs/by-name/gd/gdevelop/linux.nix index c02116b79f6a..d3bc3827566d 100644 --- a/pkgs/by-name/gd/gdevelop/linux.nix +++ b/pkgs/by-name/gd/gdevelop/linux.nix @@ -13,7 +13,7 @@ let if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl { url = "https://github.com/4ian/GDevelop/releases/download/v${version}/GDevelop-5-${version}.AppImage"; - hash = "sha256-C3KTa+fs8Mnpz/UELKX+nb6yp6kvdM9+uX5d6Ht2q1w="; + hash = "sha256-1XmKHyUuNcY1efWKLSsEoh+dvSmzUFz3FaoO/iTD7QY="; } else throw "${pname}-${version} is not supported on ${stdenv.hostPlatform.system}"; diff --git a/pkgs/by-name/gd/gdevelop/package.nix b/pkgs/by-name/gd/gdevelop/package.nix index 63bc4eb3d901..9c5c3c14a568 100644 --- a/pkgs/by-name/gd/gdevelop/package.nix +++ b/pkgs/by-name/gd/gdevelop/package.nix @@ -4,7 +4,7 @@ callPackage, }: let - version = "5.6.251"; + version = "5.6.252"; pname = "gdevelop"; meta = { description = "Graphical Game Development Studio"; From b1ae1ae71df49db281e866d736d6eaa0db936bff Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 06:51:21 +0000 Subject: [PATCH 186/396] clash-rs: 0.9.3 -> 0.9.4 --- pkgs/by-name/cl/clash-rs/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/cl/clash-rs/package.nix b/pkgs/by-name/cl/clash-rs/package.nix index 7c704ea10369..5330bcd2b9db 100644 --- a/pkgs/by-name/cl/clash-rs/package.nix +++ b/pkgs/by-name/cl/clash-rs/package.nix @@ -10,16 +10,16 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "clash-rs"; - version = "0.9.3"; + version = "0.9.4"; src = fetchFromGitHub { owner = "Watfaq"; repo = "clash-rs"; tag = "v${finalAttrs.version}"; - hash = "sha256-MVj+GcSt0Q9bWLz7MpCIj9MtnHh/GRB3p+DapMPLxeY="; + hash = "sha256-WtNnBw0/eAz/uO/dlD2yRZHW38CXIT8zhh4lZ3HaIFs="; }; - cargoHash = "sha256-Ikur9G6oSdKbK7gdZozBkplUjPfSjIABTVHjX7UPPvc="; + cargoHash = "sha256-8SLBsYtO6qVihc/C9R3ZptHCKgl2iXiQrOWqgDBXdTc="; cargoPatches = [ ./Cargo.patch ]; From d099b564511bcc5855e6f99a164a3e1175893918 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 06:54:35 +0000 Subject: [PATCH 187/396] python3Packages.iamdata: 0.1.202601171 -> 0.1.202601191 --- pkgs/development/python-modules/iamdata/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/iamdata/default.nix b/pkgs/development/python-modules/iamdata/default.nix index 2c9537c5daa0..6eacd4a5f831 100644 --- a/pkgs/development/python-modules/iamdata/default.nix +++ b/pkgs/development/python-modules/iamdata/default.nix @@ -8,14 +8,14 @@ buildPythonPackage (finalAttrs: { pname = "iamdata"; - version = "0.1.202601171"; + version = "0.1.202601191"; pyproject = true; src = fetchFromGitHub { owner = "cloud-copilot"; repo = "iam-data-python"; tag = "v${finalAttrs.version}"; - hash = "sha256-psxnDxWzt1IeQQ+gppkBwE7X2gEtYQdAdiHoXOKPn5w="; + hash = "sha256-fdHOXm+FJcHHSb01z6e01zHQmt0ZRl2/gs9wrtTR468="; }; __darwinAllowLocalNetworking = true; From f0550a2fc242809920f5168471cb0b51932fc103 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Mon, 19 Jan 2026 15:00:47 +0800 Subject: [PATCH 188/396] Revert "emacsPackages.elpaca: 0-unstable-2025-02-16 -> 0-unstable-2025-11-06" This reverts commit 515ed78687e9919b518097117e4066a06eb47d4c. This patch is not complete, see reviews[1] after it was merged and a follow-up PR[2] by the same author. Revert it since the original author's GitHub account was deleted. This patch can be re-applied in the future if someone else wants to push it over the finish line. [1]: https://github.com/NixOS/nixpkgs/pull/470901 [2]: https://github.com/NixOS/nixpkgs/pull/477267 --- .../manual-packages/elpaca/default.nix | 49 ++----------------- 1 file changed, 5 insertions(+), 44 deletions(-) diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/elpaca/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/elpaca/default.nix index 10d1bf24f45b..9aa784ae73dc 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/elpaca/default.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/elpaca/default.nix @@ -6,63 +6,24 @@ lib, }: -melpaBuild rec { +melpaBuild { pname = "elpaca"; - version = "0-unstable-2025-11-06"; + version = "0-unstable-2025-02-16"; src = fetchFromGitHub { owner = "progfolio"; repo = "elpaca"; - rev = "b5ef5f19ac1224853234c9acdac0ec9ea1c440a1"; - hash = "sha256-EZ9emYTweRZzMKxZu9nbAaGgE2tInaL7KCKvJ5TaD0g="; + rev = "07b3a653e2411f4d4b5902af1c9b3f159e07bec5"; + hash = "sha256-+YJX2BJxH3D5u7YC/yJskZu0F4Nlat3ZROe+RCZGq9w="; }; nativeBuildInputs = [ git ]; - # Moves extensions into the source root directory to install them. - # Disables warnings related to being used with package.el and not matching the installer - # Points the elpaca-repos-directory to the installed package in the nix store - postPatch = - let - siteVersion = lib.concatStrings (lib.drop 2 (lib.splitVersion version)); - in - '' - mv extensions/* . - substituteInPlace elpaca.el \ - --replace-fail "lwarn '(elpaca installer)" \ - "ignore '(elpaca installer)" \ - --replace-fail "warn \"Package.el" \ - "ignore \"Package.el" \ - --replace-fail "(expand-file-name \"elpaca/\" elpaca-repos-directory)" \ - "\"${placeholder "out"}/share/emacs/site-lisp/elpa/elpaca-${siteVersion}.0\"" - ''; - passthru.updateScript = unstableGitUpdater { }; meta = { - description = "Elisp package manager and replacement for package.el"; - longDescription = '' - Elpaca is an elisp package manager. It allows users to find, - install, update, and remove third-party packages for Emacs. It - is a replacement for the built-in Emacs package manager, - package.el. - - Elpaca: - - Installs packages asynchronously, in parallel for fast, non-blocking installations. - - Includes a flexible UI for finding and operating on packages. - - Downloads packages from their sources for convenient elisp development. - - Supports thousands of elisp packages out of the box (MELPA, NonGNU/GNU ELPA, Org/org-contrib). - - Makes it easy for users to create their own ELPAs. - - Elpaca has been adapted for Emacs managed via Nix. To activate - Elpaca, this snippet can be used within your init.el: - - ```elisp - (add-hook 'after-init-hook #'elpaca-process-queues) - (elpaca-use-package-mode) ;; Optional, for use-package support - ``` - ''; homepage = "https://github.com/progfolio/elpaca"; + description = "Elisp package manager"; license = lib.licenses.gpl3Plus; maintainers = with lib.maintainers; [ abhisheksingh0x558 From 61806aff28d324740b9184f4e48ed9f3cd8d37d9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 07:19:16 +0000 Subject: [PATCH 189/396] home-assistant-custom-components.frigidaire: 0.1.5 -> 0.1.6 --- .../home-assistant/custom-components/frigidaire/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/home-assistant/custom-components/frigidaire/package.nix b/pkgs/servers/home-assistant/custom-components/frigidaire/package.nix index 36639b8bdd23..35911b8be66d 100644 --- a/pkgs/servers/home-assistant/custom-components/frigidaire/package.nix +++ b/pkgs/servers/home-assistant/custom-components/frigidaire/package.nix @@ -7,13 +7,13 @@ buildHomeAssistantComponent rec { owner = "bm1549"; domain = "frigidaire"; - version = "0.1.5"; + version = "0.1.6"; src = fetchFromGitHub { inherit owner; repo = "home-assistant-frigidaire"; tag = version; - hash = "sha256-b8/szaZGiM1/LZFJK0gi6oStCzXcH1BN5FqjRJBY7cA="; + hash = "sha256-KAg/DvDtUKA8GdapXlONC5zs8LLFdtZJZDeGrXNdcLQ="; }; dependencies = [ frigidaire ]; From b94694e8e5efc2382d6c264b7781a246145ef010 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 07:26:28 +0000 Subject: [PATCH 190/396] prl-tools: 26.2.0-57363 -> 26.2.1-57371 --- pkgs/by-name/pr/prl-tools/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pr/prl-tools/package.nix b/pkgs/by-name/pr/prl-tools/package.nix index a587c5413b93..8617058f3d8f 100644 --- a/pkgs/by-name/pr/prl-tools/package.nix +++ b/pkgs/by-name/pr/prl-tools/package.nix @@ -40,13 +40,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "prl-tools"; - version = "26.2.0-57363"; + version = "26.2.1-57371"; # We download the full distribution to extract prl-tools-lin.iso from # => ${dmg}/Parallels\ Desktop.app/Contents/Resources/Tools/prl-tools-lin.iso src = fetchurl { url = "https://download.parallels.com/desktop/v${lib.versions.major finalAttrs.version}/${finalAttrs.version}/ParallelsDesktop-${finalAttrs.version}.dmg"; - hash = "sha256-vxSLyqpKaf8azw0RvKMBHNa2x50HM6wwt+iH9rMyZQE="; + hash = "sha256-mmZsaLYaA9OjYwfZ75Be59n8Ve2DjdG6fGqgx8NpdLI="; }; hardeningDisable = [ From b509dc16aaad29665b81f15b77462657fecea4a6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 07:35:41 +0000 Subject: [PATCH 191/396] seaweedfs: 4.06 -> 4.07 --- pkgs/by-name/se/seaweedfs/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/se/seaweedfs/package.nix b/pkgs/by-name/se/seaweedfs/package.nix index 7db65f7928ae..6ca9d8588e76 100644 --- a/pkgs/by-name/se/seaweedfs/package.nix +++ b/pkgs/by-name/se/seaweedfs/package.nix @@ -11,16 +11,16 @@ buildGoModule (finalAttrs: { pname = "seaweedfs"; - version = "4.06"; + version = "4.07"; src = fetchFromGitHub { owner = "seaweedfs"; repo = "seaweedfs"; tag = finalAttrs.version; - hash = "sha256-6pdRL5YceoMkToRmGxMeCghwyqmwhpm+MXajpiS7plM="; + hash = "sha256-MeMB5YuRVWL9bR2LUvSzRcaNpSu+D5IwLqPI/OKvjoI="; }; - vendorHash = "sha256-H56gS8E4MdO3MXC3yd2+r5ueffNfrDt5kTD7lkUuYBg="; + vendorHash = "sha256-m3rOw41lJA9rRd5788V0H9tlJf10BDzKJNAZepMQ9oI="; nativeBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ libredirect.hook ]; From d851471a8e9395d99859283435ad275514ca4278 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 07:54:34 +0000 Subject: [PATCH 192/396] brainflow: 5.19.0 -> 5.20.0 --- pkgs/by-name/br/brainflow/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/br/brainflow/package.nix b/pkgs/by-name/br/brainflow/package.nix index a0e3e018238e..85e799bb6d0a 100644 --- a/pkgs/by-name/br/brainflow/package.nix +++ b/pkgs/by-name/br/brainflow/package.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "brainflow"; - version = "5.19.0"; + version = "5.20.0"; src = fetchFromGitHub { owner = "brainflow-dev"; repo = "brainflow"; tag = finalAttrs.version; - hash = "sha256-XoTd7pEsY2RuMQFj5zo9NhlYgiG0J0aEMdKuxtDuaFg="; + hash = "sha256-qxITJjO6Rf9cx4XWRguOlohud8gnMSQDb/qgwv3wA+8="; }; patches = [ ]; From dafdc8ad5b99fd2d237326d01f57fe63257cd022 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 08:18:12 +0000 Subject: [PATCH 193/396] xemu: 0.8.131 -> 0.8.132 --- pkgs/by-name/xe/xemu/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/xe/xemu/package.nix b/pkgs/by-name/xe/xemu/package.nix index 142a8e43bc07..eb264d7f8a40 100644 --- a/pkgs/by-name/xe/xemu/package.nix +++ b/pkgs/by-name/xe/xemu/package.nix @@ -34,13 +34,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "xemu"; - version = "0.8.131"; + version = "0.8.132"; src = fetchFromGitHub { owner = "xemu-project"; repo = "xemu"; tag = "v${finalAttrs.version}"; - hash = "sha256-S92q8JhRcev+4tkC8tbP+7OJ2JFgygLTjbzuAoqtzRI="; + hash = "sha256-oIsO3pYP3ggs9IgMlMi2z+AWZT6HvCpPOzOk2FdgOPs="; nativeBuildInputs = [ git From 4aeb4b26375f42f45546dfdec7ddee4db169e63b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 08:33:24 +0000 Subject: [PATCH 194/396] python3Packages.metaflow: 2.19.15 -> 2.19.16 --- pkgs/development/python-modules/metaflow/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/metaflow/default.nix b/pkgs/development/python-modules/metaflow/default.nix index 251c24c6e4c6..c7e1c0845e3a 100644 --- a/pkgs/development/python-modules/metaflow/default.nix +++ b/pkgs/development/python-modules/metaflow/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "metaflow"; - version = "2.19.15"; + version = "2.19.16"; pyproject = true; src = fetchFromGitHub { owner = "Netflix"; repo = "metaflow"; tag = version; - hash = "sha256-cVC0rHgRHla93x/2tZA6XBMLfWw6ZmEJvjeq1PhQv6M="; + hash = "sha256-A3r93vmWwpbdVXsaiY4Oo+LRjlkXCT8wpOTlNgQNxL0="; }; build-system = [ From 3ef7239ed3932cb16b3554b0897cce46adefa5d2 Mon Sep 17 00:00:00 2001 From: ljxfstorm Date: Mon, 12 Jan 2026 19:11:56 +0800 Subject: [PATCH 195/396] gemini-cli-bin: use `ripgrep` from nixpkgs Co-authored-by: Sinclair Mosley --- pkgs/by-name/ge/gemini-cli-bin/package.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ge/gemini-cli-bin/package.nix b/pkgs/by-name/ge/gemini-cli-bin/package.nix index f3e8edabf114..be2df516208d 100644 --- a/pkgs/by-name/ge/gemini-cli-bin/package.nix +++ b/pkgs/by-name/ge/gemini-cli-bin/package.nix @@ -6,6 +6,7 @@ sysctl, writableTmpDirAsHomeHook, nix-update-script, + ripgrep, }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "gemini-cli-bin"; @@ -20,7 +21,10 @@ stdenvNoCC.mkDerivation (finalAttrs: { strictDeps = true; - buildInputs = [ nodejs ]; + buildInputs = [ + nodejs + ripgrep + ]; installPhase = '' runHook preInstall @@ -37,6 +41,12 @@ stdenvNoCC.mkDerivation (finalAttrs: { --replace-fail "settings.merged.general?.disableAutoUpdate ?? false" "settings.merged.general?.disableAutoUpdate ?? true" \ --replace-fail "settings.merged.general?.disableAutoUpdate" "(settings.merged.general?.disableAutoUpdate ?? true)" + # use `ripgrep` from `nixpkgs`, more dependencies but prevent downloading incompatible binary on NixOS + # this workaround can be removed once the following upstream issue is resolved: + # https://github.com/google-gemini/gemini-cli/issues/11438 + substituteInPlace $out/bin/gemini \ + --replace-fail 'const existingPath = await resolveExistingRgPath();' 'const existingPath = "${lib.getExe ripgrep}";' + runHook postInstall ''; From b5a387f3505eedc6e16b7f445b85f609064403d3 Mon Sep 17 00:00:00 2001 From: ljxfstorm Date: Mon, 12 Jan 2026 19:06:14 +0800 Subject: [PATCH 196/396] gemini-cli-bin: 0.22.5 -> 0.24.4 https://github.com/google-gemini/gemini-cli/releases/tag/v0.24.4 --- pkgs/by-name/ge/gemini-cli-bin/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ge/gemini-cli-bin/package.nix b/pkgs/by-name/ge/gemini-cli-bin/package.nix index be2df516208d..976a8ed25215 100644 --- a/pkgs/by-name/ge/gemini-cli-bin/package.nix +++ b/pkgs/by-name/ge/gemini-cli-bin/package.nix @@ -10,11 +10,11 @@ }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "gemini-cli-bin"; - version = "0.22.5"; + version = "0.24.4"; src = fetchurl { url = "https://github.com/google-gemini/gemini-cli/releases/download/v${finalAttrs.version}/gemini.js"; - hash = "sha256-g6b45+EWBiZ6Ij0nXp0L5jBW8wv1y0KK5CgiThk8Y7U="; + hash = "sha256-xteIV43P5qPOamxsGjCXeCkd1zQmNNbMhvzSWc26DQU="; }; dontUnpack = true; From 8d1abbc3f2f00a1b74e8c9477b1c73a35787b67f Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Mon, 19 Jan 2026 08:51:42 +0000 Subject: [PATCH 197/396] python3Packages.streamz: 0.6.4 -> 0.6.5 Diff: https://github.com/python-streamz/streamz/compare/0.6.4...0.6.5 --- .../development/python-modules/streamz/default.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/development/python-modules/streamz/default.nix b/pkgs/development/python-modules/streamz/default.nix index ab03d9ad560e..b9385fe20d10 100644 --- a/pkgs/development/python-modules/streamz/default.nix +++ b/pkgs/development/python-modules/streamz/default.nix @@ -7,7 +7,6 @@ setuptools, # dependencies - six, toolz, tornado, zict, @@ -18,25 +17,25 @@ flaky, pandas, pyarrow, + pytest-asyncio, pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "streamz"; - version = "0.6.4"; + version = "0.6.5"; pyproject = true; src = fetchFromGitHub { owner = "python-streamz"; repo = "streamz"; - tag = version; - hash = "sha256-lSb3gl+TSIzz4BZzxH8zXu74HvzSntOAoVQUUJKIEvA="; + tag = finalAttrs.version; + hash = "sha256-OoWFOACrJ8zXJJ1bmRukj04zx+s1Zgg9KqlJooLDRW0="; }; build-system = [ setuptools ]; dependencies = [ - six toolz tornado zict @@ -48,6 +47,7 @@ buildPythonPackage rec { flaky pandas pyarrow + pytest-asyncio pytestCheckHook ]; @@ -74,4 +74,4 @@ buildPythonPackage rec { license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ GaetanLepage ]; }; -} +}) From be1740722618a7fed705a53ea66d76a952195bb7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 08:53:47 +0000 Subject: [PATCH 198/396] python3Packages.opower: 0.16.3 -> 0.16.4 --- pkgs/development/python-modules/opower/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/opower/default.nix b/pkgs/development/python-modules/opower/default.nix index cb8ff61bab36..117ac904cf18 100644 --- a/pkgs/development/python-modules/opower/default.nix +++ b/pkgs/development/python-modules/opower/default.nix @@ -15,14 +15,14 @@ buildPythonPackage (finalAttrs: { pname = "opower"; - version = "0.16.3"; + version = "0.16.4"; pyproject = true; src = fetchFromGitHub { owner = "tronikos"; repo = "opower"; tag = "v${finalAttrs.version}"; - hash = "sha256-+LkLbIJR6v4icoQFIsipR+PfrF5ZgcEh5d1nAwVTldU="; + hash = "sha256-r1evfPKvuMXlOvpwqqOSyC80TpZWphYhDVQCi9IiI+8="; }; build-system = [ setuptools ]; From 167e308057c5d7e302501400c7afb376cc6b346a Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sun, 18 Jan 2026 19:28:01 +0200 Subject: [PATCH 199/396] swgp-go: init at 1.8.0-0-unstable-2026-01-18 --- pkgs/by-name/sw/swgp-go/package.nix | 44 +++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 pkgs/by-name/sw/swgp-go/package.nix diff --git a/pkgs/by-name/sw/swgp-go/package.nix b/pkgs/by-name/sw/swgp-go/package.nix new file mode 100644 index 000000000000..0163fe098498 --- /dev/null +++ b/pkgs/by-name/sw/swgp-go/package.nix @@ -0,0 +1,44 @@ +{ + buildGoModule, + lib, + fetchFromGitHub, + # doubles the binary size + withPprof ? false, +}: + +buildGoModule { + pname = "swgp-go"; + version = "1.8.0-0-unstable-2026-01-18"; + + src = fetchFromGitHub { + owner = "database64128"; + repo = "swgp-go"; + rev = "e8ed210b0a016c450ba371ee43041f2f53444841"; + hash = "sha256-LDYNQwc6vdVkI0bqD96p64D25fz0aGclFDc8SqvCdJQ="; + }; + + vendorHash = "sha256-Ghv5FwSPQSUFQ1t2zWTXpFggCA4/qrQmnVYkYBF8AQ4="; + + ldflags = [ + "-s" + "-w" + ]; + + tags = lib.optionals (!withPprof) [ + "swgpgo_nopprof" + ]; + + # Tests try to do DNS lookups + doCheck = false; + + meta = { + description = "Simple WireGuard proxy with minimal overhead for WireGuard traffic"; + homepage = "https://github.com/database64128/swgp-go"; + license = lib.licenses.agpl3Plus; + maintainers = with lib.maintainers; [ + flokli + rvdp + ]; + mainProgram = "swgp-go"; + }; +} From c20c620dea2d9efe9f1736e10bdc8fcc1c48ca74 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 09:14:25 +0000 Subject: [PATCH 200/396] nb: 7.23.2 -> 7.24.0 --- pkgs/by-name/nb/nb/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/nb/nb/package.nix b/pkgs/by-name/nb/nb/package.nix index 84a26deefde3..86d56303e855 100644 --- a/pkgs/by-name/nb/nb/package.nix +++ b/pkgs/by-name/nb/nb/package.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation rec { pname = "nb"; - version = "7.23.2"; + version = "7.24.0"; src = fetchFromGitHub { owner = "xwmx"; repo = "nb"; rev = version; - hash = "sha256-JwbIETH2D/qYZTNUemsYSmcCjV/7kXKUK9JKnuBBe/0="; + hash = "sha256-oGVuBwnuKQqlhwW8gBWwhR09ZVBYV3vWzJxKu+KTlL8="; }; nativeBuildInputs = [ installShellFiles ]; From abca87b77ff7564032ea2cf39b7ec6cd3bf3c54c Mon Sep 17 00:00:00 2001 From: Mio Date: Mon, 19 Jan 2026 09:30:24 +0000 Subject: [PATCH 201/396] openloco: add mainProgram --- pkgs/games/openloco/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/games/openloco/default.nix b/pkgs/games/openloco/default.nix index f6eea70832b1..e64c6f6aa978 100644 --- a/pkgs/games/openloco/default.nix +++ b/pkgs/games/openloco/default.nix @@ -78,5 +78,6 @@ stdenv.mkDerivation rec { license = lib.licenses.mit; platforms = lib.platforms.linux; maintainers = with lib.maintainers; [ icewind1991 ]; + mainProgram = "OpenLoco"; }; } From eafc7365fb4eb6c3ee2d8a0092ef42af4a525ba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 10:31:40 +0100 Subject: [PATCH 202/396] gns3-gui: remove superfluous pythonOlder --- pkgs/applications/networking/gns3/gui.nix | 25 +++++++++-------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/pkgs/applications/networking/gns3/gui.nix b/pkgs/applications/networking/gns3/gui.nix index 451162118522..ef9eb9cda64b 100644 --- a/pkgs/applications/networking/gns3/gui.nix +++ b/pkgs/applications/networking/gns3/gui.nix @@ -39,21 +39,16 @@ pythonPackages.buildPythonApplication rec { propagatedBuildInputs = [ qt5.qtwayland ]; - dependencies = - with pythonPackages; - [ - distro - jsonschema - psutil - pyqt5 - sentry-sdk - setuptools - sip - truststore - ] - ++ lib.optionals (pythonOlder "3.9") [ - importlib-resources - ]; + dependencies = with pythonPackages; [ + distro + jsonschema + psutil + pyqt5 + sentry-sdk + setuptools + sip + truststore + ]; dontWrapQtApps = true; From d51befbc8a7692b9b0b4a1801dd82d801780d799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:11:09 +0100 Subject: [PATCH 203/396] gns3-server: remove superfluous pythonOlder --- pkgs/applications/networking/gns3/server.nix | 39 +++++++++----------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/pkgs/applications/networking/gns3/server.nix b/pkgs/applications/networking/gns3/server.nix index 9448adc00c00..00d84dddfd9d 100644 --- a/pkgs/applications/networking/gns3/server.nix +++ b/pkgs/applications/networking/gns3/server.nix @@ -35,28 +35,23 @@ python3Packages.buildPythonApplication { build-system = with python3Packages; [ setuptools ]; - dependencies = - with python3Packages; - [ - aiofiles - aiohttp - aiohttp-cors - async-generator - distro - jinja2 - jsonschema - multidict - platformdirs - prompt-toolkit - psutil - py-cpuinfo - sentry-sdk - truststore - yarl - ] - ++ lib.optionals (pythonOlder "3.9") [ - importlib-resources - ]; + dependencies = with python3Packages; [ + aiofiles + aiohttp + aiohttp-cors + async-generator + distro + jinja2 + jsonschema + multidict + platformdirs + prompt-toolkit + psutil + py-cpuinfo + sentry-sdk + truststore + yarl + ]; postInstall = lib.optionalString (!stdenv.hostPlatform.isWindows) '' rm $out/bin/gns3loopback From 23cd1b80e1f622aaa08f6d277582e8d9f69f922b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:11:36 +0100 Subject: [PATCH 204/396] glances: remove superfluous pythonOlder --- pkgs/applications/system/glances/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/applications/system/glances/default.nix b/pkgs/applications/system/glances/default.nix index 5c25b9ebaabf..856f9ea8fab9 100644 --- a/pkgs/applications/system/glances/default.nix +++ b/pkgs/applications/system/glances/default.nix @@ -3,7 +3,6 @@ buildPythonApplication, fetchFromGitHub, isPyPy, - pythonOlder, lib, defusedxml, packaging, @@ -31,7 +30,7 @@ buildPythonApplication rec { version = "4.3.3"; pyproject = true; - disabled = isPyPy || pythonOlder "3.9"; + disabled = isPyPy; src = fetchFromGitHub { owner = "nicolargo"; From cd8384670ef153abaf469b1431c2ef67688b788a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:12:00 +0100 Subject: [PATCH 205/396] ceph: remove superfluous pythonOlder --- pkgs/by-name/ce/ceph/old-python-packages/cryptography.nix | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/pkgs/by-name/ce/ceph/old-python-packages/cryptography.nix b/pkgs/by-name/ce/ceph/old-python-packages/cryptography.nix index 6e4713428d87..5afd24f0b573 100644 --- a/pkgs/by-name/ce/ceph/old-python-packages/cryptography.nix +++ b/pkgs/by-name/ce/ceph/old-python-packages/cryptography.nix @@ -11,16 +11,13 @@ rustc, setuptools-rust, openssl, - Security ? null, isPyPy, cffi, pkg-config, pytestCheckHook, pytest-subtests, - pythonOlder, pretend, libiconv, - libxcrypt, iso8601, py, pytz, @@ -90,8 +87,7 @@ buildPythonPackage rec { ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv - ] - ++ lib.optionals (pythonOlder "3.9") [ libxcrypt ]; + ]; propagatedBuildInputs = lib.optionals (!isPyPy) [ cffi ]; From ae2ab037f50254fe8bb3866889a62122b15f7964 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:13:20 +0100 Subject: [PATCH 206/396] gcovr: remove superfluous pythonOlder --- pkgs/by-name/gc/gcovr/package.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/by-name/gc/gcovr/package.nix b/pkgs/by-name/gc/gcovr/package.nix index ff3c8f6789d5..e2e0948687fa 100644 --- a/pkgs/by-name/gc/gcovr/package.nix +++ b/pkgs/by-name/gc/gcovr/package.nix @@ -12,8 +12,6 @@ python3Packages.buildPythonPackage (finalAttrs: { version = "8.4"; pyproject = true; - disabled = python3Packages.pythonOlder "3.9"; - src = fetchFromGitHub { owner = "gcovr"; repo = "gcovr"; From d930b152301bc21f3fc09911afdc612d42861604 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:13:52 +0100 Subject: [PATCH 207/396] jefferson: remove superfluous pythonOlder --- pkgs/by-name/je/jefferson/package.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/by-name/je/jefferson/package.nix b/pkgs/by-name/je/jefferson/package.nix index 965b27ae7ec1..79911953cbb5 100644 --- a/pkgs/by-name/je/jefferson/package.nix +++ b/pkgs/by-name/je/jefferson/package.nix @@ -9,7 +9,6 @@ python3.pkgs.buildPythonApplication rec { pname = "jefferson"; version = "0.4.6"; pyproject = true; - disabled = python3.pkgs.pythonOlder "3.9"; src = fetchFromGitHub { owner = "onekey-sec"; From e4731135b53ce5c08decf60758e94a7f1dc900ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:14:10 +0100 Subject: [PATCH 208/396] ki: remove superfluous pythonOlder --- pkgs/by-name/ki/ki/package.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/by-name/ki/ki/package.nix b/pkgs/by-name/ki/ki/package.nix index 4dac23993144..3806ca6a23f3 100644 --- a/pkgs/by-name/ki/ki/package.nix +++ b/pkgs/by-name/ki/ki/package.nix @@ -11,8 +11,6 @@ python3Packages.buildPythonApplication { pyproject = true; - disabled = python3Packages.pythonOlder "3.9"; - src = fetchFromGitHub { owner = "langfield"; repo = "ki"; From fe6f6ffc1a430f6c31bad481434690f59bc2f293 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:14:27 +0100 Subject: [PATCH 209/396] normcap: remove superfluous pythonOlder --- pkgs/by-name/no/normcap/package.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/by-name/no/normcap/package.nix b/pkgs/by-name/no/normcap/package.nix index 52f2fead7924..6ecd51425d85 100644 --- a/pkgs/by-name/no/normcap/package.nix +++ b/pkgs/by-name/no/normcap/package.nix @@ -32,8 +32,6 @@ ps.buildPythonApplication rec { version = "0.6.0"; pyproject = true; - disabled = ps.pythonOlder "3.9"; - src = fetchFromGitHub { owner = "dynobo"; repo = "normcap"; From 2f2573aa1712410de57a0b488cfe28c8b3e8e738 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:14:38 +0100 Subject: [PATCH 210/396] octodns: remove superfluous pythonOlder --- pkgs/by-name/oc/octodns/package.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/by-name/oc/octodns/package.nix b/pkgs/by-name/oc/octodns/package.nix index f52003327919..8f3e57e49d76 100644 --- a/pkgs/by-name/oc/octodns/package.nix +++ b/pkgs/by-name/oc/octodns/package.nix @@ -22,8 +22,6 @@ python3Packages.buildPythonApplication rec { version = "1.15.0"; pyproject = true; - disabled = python.pythonOlder "3.9"; - src = fetchFromGitHub { owner = "octodns"; repo = "octodns"; From 17566eb414269c95542057fdfb278687ac672a0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:14:48 +0100 Subject: [PATCH 211/396] open-web-calendar: remove superfluous pythonOlder --- pkgs/by-name/op/open-web-calendar/package.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/by-name/op/open-web-calendar/package.nix b/pkgs/by-name/op/open-web-calendar/package.nix index b3b12768becf..f5295707e3c5 100644 --- a/pkgs/by-name/op/open-web-calendar/package.nix +++ b/pkgs/by-name/op/open-web-calendar/package.nix @@ -15,8 +15,6 @@ python.pkgs.buildPythonApplication rec { version = "1.49"; pyproject = true; - disabled = python.pythonOlder "3.9"; - src = fetchPypi { inherit version; pname = "open_web_calendar"; From ce5793b8e695053d2da89d262f038624ef5ad7a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:15:11 +0100 Subject: [PATCH 212/396] or-tools: remove superfluous pythonOlder --- pkgs/by-name/or/or-tools/package.nix | 1 - pkgs/by-name/or/or-tools/pybind11-2.13.6.nix | 3 --- 2 files changed, 4 deletions(-) diff --git a/pkgs/by-name/or/or-tools/package.nix b/pkgs/by-name/or/or-tools/package.nix index 254ea0faadc4..c2f7071a90fe 100644 --- a/pkgs/by-name/or/or-tools/package.nix +++ b/pkgs/by-name/or/or-tools/package.nix @@ -43,7 +43,6 @@ let ninja numpy pytestCheckHook - pythonOlder setuptools ; python = python3; diff --git a/pkgs/by-name/or/or-tools/pybind11-2.13.6.nix b/pkgs/by-name/or/or-tools/pybind11-2.13.6.nix index 048ed89f5632..0ba3cd381c66 100644 --- a/pkgs/by-name/or/or-tools/pybind11-2.13.6.nix +++ b/pkgs/by-name/or/or-tools/pybind11-2.13.6.nix @@ -5,7 +5,6 @@ stdenv, lib, buildPythonPackage, - pythonOlder, fetchFromGitHub, cmake, ninja, @@ -16,7 +15,6 @@ catch2, numpy, pytestCheckHook, - libxcrypt, makeSetupHook, }: let @@ -51,7 +49,6 @@ buildPythonPackage rec { setuptools ]; - buildInputs = lib.optionals (pythonOlder "3.9") [ libxcrypt ]; propagatedNativeBuildInputs = [ setupHook ]; dontUseCmakeBuildDir = true; From 3db930841b374d4ae336774126af8df96e1577a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:15:24 +0100 Subject: [PATCH 213/396] tg: remove superfluous pythonOlder --- pkgs/by-name/tg/tg/package.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/by-name/tg/tg/package.nix b/pkgs/by-name/tg/tg/package.nix index ad714cd23cd1..6f37fa8ac62d 100644 --- a/pkgs/by-name/tg/tg/package.nix +++ b/pkgs/by-name/tg/tg/package.nix @@ -10,7 +10,6 @@ python3Packages.buildPythonApplication rec { pname = "tg"; version = "0.22.0"; pyproject = true; - disabled = python3Packages.pythonOlder "3.9"; src = fetchFromGitHub { owner = "paul-nameless"; From 1320453bc58f7d92aa85b60403af8bcac49a657e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:15:38 +0100 Subject: [PATCH 214/396] ubi_reader: remove superfluous pythonOlder --- pkgs/by-name/ub/ubi_reader/package.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/by-name/ub/ubi_reader/package.nix b/pkgs/by-name/ub/ubi_reader/package.nix index 469d09422700..47bf461e833f 100644 --- a/pkgs/by-name/ub/ubi_reader/package.nix +++ b/pkgs/by-name/ub/ubi_reader/package.nix @@ -9,7 +9,6 @@ python3.pkgs.buildPythonApplication rec { pname = "ubi_reader"; version = "0.8.10"; pyproject = true; - disabled = python3.pkgs.pythonOlder "3.9"; src = fetchFromGitHub { owner = "onekey-sec"; From fb31a06cc3500824d4b7ac4e1d2903b7948a6d3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:15:50 +0100 Subject: [PATCH 215/396] unblob: remove superfluous pythonOlder --- pkgs/by-name/un/unblob/package.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/by-name/un/unblob/package.nix b/pkgs/by-name/un/unblob/package.nix index a2cb8c016542..557e1b934800 100644 --- a/pkgs/by-name/un/unblob/package.nix +++ b/pkgs/by-name/un/unblob/package.nix @@ -49,7 +49,6 @@ python3.pkgs.buildPythonApplication rec { pname = "unblob"; version = "25.5.26"; pyproject = true; - disabled = python3.pkgs.pythonOlder "3.9"; src = fetchFromGitHub { owner = "onekey-sec"; From 30aa61ec007d77d6c7b1ad9e922760e889939b22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:16:01 +0100 Subject: [PATCH 216/396] xandikos: remove superfluous pythonOlder --- pkgs/by-name/xa/xandikos/package.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/by-name/xa/xandikos/package.nix b/pkgs/by-name/xa/xandikos/package.nix index e522d56bee4e..3d9650a1b5a5 100644 --- a/pkgs/by-name/xa/xandikos/package.nix +++ b/pkgs/by-name/xa/xandikos/package.nix @@ -10,8 +10,6 @@ python3Packages.buildPythonApplication rec { version = "0.2.12"; pyproject = true; - disabled = python3Packages.pythonOlder "3.9"; - src = fetchFromGitHub { owner = "jelmer"; repo = "xandikos"; From 365fa3bb574731e7b7f53185b4fb84ccfde6530b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:16:14 +0100 Subject: [PATCH 217/396] python3Packages.annoted-types: remove superfluous pythonOlder --- pkgs/development/python-modules/annotated-types/default.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/development/python-modules/annotated-types/default.nix b/pkgs/development/python-modules/annotated-types/default.nix index 2b64feac5ce9..c04c80bb2f8b 100644 --- a/pkgs/development/python-modules/annotated-types/default.nix +++ b/pkgs/development/python-modules/annotated-types/default.nix @@ -3,9 +3,7 @@ buildPythonPackage, fetchFromGitHub, hatchling, - typing-extensions, pytestCheckHook, - pythonOlder, }: buildPythonPackage rec { @@ -22,8 +20,6 @@ buildPythonPackage rec { nativeBuildInputs = [ hatchling ]; - propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [ typing-extensions ]; - pythonImportsCheck = [ "annotated_types" ]; nativeCheckInputs = [ pytestCheckHook ]; From ad7a8b788c4ca8a57da07f2607e15af177d2a296 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:16:34 +0100 Subject: [PATCH 218/396] python3Packages.bacpypes: remove superfluous pythonOlder --- pkgs/development/python-modules/bacpypes/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/bacpypes/default.nix b/pkgs/development/python-modules/bacpypes/default.nix index 81ad8dc1a345..d82049c7c549 100644 --- a/pkgs/development/python-modules/bacpypes/default.nix +++ b/pkgs/development/python-modules/bacpypes/default.nix @@ -5,7 +5,6 @@ wheel, pytestCheckHook, pythonAtLeast, - pythonOlder, }: buildPythonPackage rec { @@ -14,7 +13,7 @@ buildPythonPackage rec { format = "setuptools"; # uses the removed asyncore module - disabled = pythonOlder "3.9" || pythonAtLeast "3.12"; + disabled = pythonAtLeast "3.12"; src = fetchFromGitHub { owner = "JoelBender"; From 66fe841c4b3e54ceb0d43688ffc0607a151a55e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:16:52 +0100 Subject: [PATCH 219/396] python3Packages.click-odoo-contrib: remove superfluous pythonOlder --- .../python-modules/click-odoo-contrib/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/click-odoo-contrib/default.nix b/pkgs/development/python-modules/click-odoo-contrib/default.nix index 06bc06102438..eeae9cb6f47c 100644 --- a/pkgs/development/python-modules/click-odoo-contrib/default.nix +++ b/pkgs/development/python-modules/click-odoo-contrib/default.nix @@ -2,11 +2,9 @@ buildPythonPackage, click-odoo, fetchPypi, - importlib-resources, lib, manifestoo-core, nix-update-script, - pythonOlder, setuptools-scm, }: @@ -26,8 +24,7 @@ buildPythonPackage rec { propagatedBuildInputs = [ click-odoo manifestoo-core - ] - ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ]; + ]; passthru.updateScript = nix-update-script { }; From 10190dcf218bb0de8b55603d7ec20f3cb817a511 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:17:06 +0100 Subject: [PATCH 220/396] python3Packages.cssutils: remove superfluous pythonOlder --- pkgs/development/python-modules/cssutils/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/cssutils/default.nix b/pkgs/development/python-modules/cssutils/default.nix index 5ee348f77dd1..1cc7266a5e85 100644 --- a/pkgs/development/python-modules/cssutils/default.nix +++ b/pkgs/development/python-modules/cssutils/default.nix @@ -1,7 +1,6 @@ { lib, buildPythonPackage, - pythonOlder, fetchFromGitHub, setuptools-scm, more-itertools, @@ -10,7 +9,6 @@ lxml, mock, pytestCheckHook, - importlib-resources, }: buildPythonPackage rec { @@ -35,8 +33,7 @@ buildPythonPackage rec { lxml mock pytestCheckHook - ] - ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ]; + ]; disabledTests = [ # access network From 0b49a77700082d4aa7576aa79167fc2bef228eef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:17:22 +0100 Subject: [PATCH 221/396] python3Packages.echo: remove superfluous pythonOlder --- pkgs/development/python-modules/echo/default.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/development/python-modules/echo/default.nix b/pkgs/development/python-modules/echo/default.nix index be1b4d4501cc..3bbb575671e3 100644 --- a/pkgs/development/python-modules/echo/default.nix +++ b/pkgs/development/python-modules/echo/default.nix @@ -3,10 +3,8 @@ stdenv, buildPythonPackage, fetchFromGitHub, - pythonOlder, setuptools, setuptools-scm, - libxcrypt, numpy, qt6, qtpy, @@ -37,8 +35,6 @@ buildPythonPackage rec { qt6.wrapQtAppsHook ]; - buildInputs = lib.optionals (pythonOlder "3.9") [ libxcrypt ]; - dependencies = [ qt6.qtconnectivity qt6.qtbase From 2831b3418758f20a653d39baae3f35972c626755 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:17:36 +0100 Subject: [PATCH 222/396] python3Packages.guessit: remove superfluous pythonOlder --- pkgs/development/python-modules/guessit/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/guessit/default.nix b/pkgs/development/python-modules/guessit/default.nix index a906e9da95f4..06f40858636b 100644 --- a/pkgs/development/python-modules/guessit/default.nix +++ b/pkgs/development/python-modules/guessit/default.nix @@ -5,8 +5,6 @@ python-dateutil, babelfish, rebulk, - pythonOlder, - importlib-resources, py, pytestCheckHook, pytest-mock, @@ -28,8 +26,7 @@ buildPythonPackage rec { rebulk babelfish python-dateutil - ] - ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ]; + ]; nativeCheckInputs = [ py From cab474c1fb88dc84a9e1fcc297a8d4b06b558863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:18:28 +0100 Subject: [PATCH 223/396] python3Packages.ignite: remove superfluous pythonOlder --- pkgs/development/python-modules/ignite/default.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/ignite/default.nix b/pkgs/development/python-modules/ignite/default.nix index 017f94b1a01a..0f498a60ef9f 100644 --- a/pkgs/development/python-modules/ignite/default.nix +++ b/pkgs/development/python-modules/ignite/default.nix @@ -1,9 +1,7 @@ { lib, - stdenv, buildPythonPackage, fetchFromGitHub, - pythonOlder, setuptools, pytestCheckHook, pytest-xdist, @@ -41,8 +39,8 @@ buildPythonPackage rec { torchvision ]; - # runs successfully in 3.9, however, async isn't correctly closed so it will fail after test suite. - doCheck = pythonOlder "3.9"; + # async isn't correctly closed so it will fail after test suite. + doCheck = false; enabledTestPaths = [ "tests/" From 37962196fda92796fd862e7506773dea273d861c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:19:00 +0100 Subject: [PATCH 224/396] python3Packages.injector: remove superfluous pythonOlder --- pkgs/development/python-modules/injector/default.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/development/python-modules/injector/default.nix b/pkgs/development/python-modules/injector/default.nix index 0eda9e9e6bde..0d33da935af4 100644 --- a/pkgs/development/python-modules/injector/default.nix +++ b/pkgs/development/python-modules/injector/default.nix @@ -1,9 +1,7 @@ { lib, buildPythonPackage, - pythonOlder, fetchFromGitHub, - typing-extensions, pytestCheckHook, pytest-cov-stub, }: @@ -20,8 +18,6 @@ buildPythonPackage rec { hash = "sha256-FRO/stQDTa4W1f6mLPDCJslYFfIvgS0EgoEhuh0rxwA="; }; - propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [ typing-extensions ]; - nativeCheckInputs = [ pytestCheckHook pytest-cov-stub From 7ffceffe0594968611d4b08eab8ee873c0cbcb71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:19:14 +0100 Subject: [PATCH 225/396] python3Packages.iso4217: remove superfluous pythonOlder --- pkgs/development/python-modules/iso4217/default.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/development/python-modules/iso4217/default.nix b/pkgs/development/python-modules/iso4217/default.nix index 92f1ec0d685d..1750ab27d75d 100644 --- a/pkgs/development/python-modules/iso4217/default.nix +++ b/pkgs/development/python-modules/iso4217/default.nix @@ -3,10 +3,8 @@ buildPythonPackage, fetchFromGitHub, fetchurl, - importlib-resources, pytestCheckHook, python, - pythonOlder, setuptools, }: let @@ -30,8 +28,6 @@ buildPythonPackage rec { build-system = [ setuptools ]; - dependencies = lib.optionals (pythonOlder "3.9") [ importlib-resources ]; - nativeCheckInputs = [ pytestCheckHook ]; preBuild = '' From aca8316ca2d83a9a781345035a51f36373e55895 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:19:29 +0100 Subject: [PATCH 226/396] python3Packages.jaraco-text: remove superfluous pythonOlder --- pkgs/development/python-modules/jaraco-text/default.nix | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/pkgs/development/python-modules/jaraco-text/default.nix b/pkgs/development/python-modules/jaraco-text/default.nix index fab4bd8da48d..18ba86c68b5f 100644 --- a/pkgs/development/python-modules/jaraco-text/default.nix +++ b/pkgs/development/python-modules/jaraco-text/default.nix @@ -2,13 +2,10 @@ lib, buildPythonPackage, fetchPypi, - pythonOlder, autocommand, - importlib-resources, jaraco-functools, jaraco-context, inflect, - pathlib2, pytestCheckHook, setuptools-scm, }: @@ -33,10 +30,9 @@ buildPythonPackage rec { jaraco-context jaraco-functools inflect - ] - ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ]; + ]; - nativeCheckInputs = [ pytestCheckHook ] ++ lib.optionals (pythonOlder "3.10") [ pathlib2 ]; + nativeCheckInputs = [ pytestCheckHook ]; pythonImportsCheck = [ "jaraco.text" ]; From c12e158c615faa4862fe548f3e7159f4c24f999f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:19:42 +0100 Subject: [PATCH 227/396] python3Packages.jsonschema-specifications: remove superfluous pythonOlder --- .../python-modules/jsonschema-specifications/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/jsonschema-specifications/default.nix b/pkgs/development/python-modules/jsonschema-specifications/default.nix index 288229dbaf5e..74af572a77d5 100644 --- a/pkgs/development/python-modules/jsonschema-specifications/default.nix +++ b/pkgs/development/python-modules/jsonschema-specifications/default.nix @@ -4,9 +4,7 @@ fetchPypi, hatch-vcs, hatchling, - importlib-resources, pytestCheckHook, - pythonOlder, referencing, }: @@ -28,8 +26,7 @@ buildPythonPackage rec { propagatedBuildInputs = [ referencing - ] - ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ]; + ]; nativeCheckInputs = [ pytestCheckHook ]; From 8ee22e3aac48d38ff861771ca8642d617f8d01b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:20:02 +0100 Subject: [PATCH 228/396] python3Packages.mockupdb: remove superfluous pythonOlder --- pkgs/development/python-modules/mockupdb/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mockupdb/default.nix b/pkgs/development/python-modules/mockupdb/default.nix index 1ef0a68ee826..2bed1610c14e 100644 --- a/pkgs/development/python-modules/mockupdb/default.nix +++ b/pkgs/development/python-modules/mockupdb/default.nix @@ -4,7 +4,6 @@ fetchPypi, pymongo, pythonAtLeast, - pythonOlder, pytestCheckHook, }: @@ -14,7 +13,7 @@ buildPythonPackage rec { format = "setuptools"; # use the removed ssl.wrap_socket function - disabled = pythonOlder "3.9" || pythonAtLeast "3.12"; + disabled = pythonAtLeast "3.12"; src = fetchPypi { inherit pname version; From 1369f0cc41c5736d3170d9ec82017df8260839be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:20:34 +0100 Subject: [PATCH 229/396] python3Packages.numpy_1: remove superfluous pythonOlder --- pkgs/development/python-modules/numpy/1.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/numpy/1.nix b/pkgs/development/python-modules/numpy/1.nix index 9e3b3a60d2e8..ca33bdca1994 100644 --- a/pkgs/development/python-modules/numpy/1.nix +++ b/pkgs/development/python-modules/numpy/1.nix @@ -5,7 +5,6 @@ python, numpy_1, pythonAtLeast, - pythonOlder, buildPythonPackage, writeTextFile, @@ -61,7 +60,7 @@ buildPythonPackage rec { pname = "numpy"; version = "1.26.4"; pyproject = true; - disabled = pythonOlder "3.9" || pythonAtLeast "3.13"; + disabled = pythonAtLeast "3.13"; src = fetchPypi { inherit pname version; From ca5186caabd72a1c86a697e640856a9beafd0fa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:22:09 +0100 Subject: [PATCH 230/396] python3Packages.openapi-spec-validator: remove superfluous pythonOlder --- .../python-modules/openapi-spec-validator/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/openapi-spec-validator/default.nix b/pkgs/development/python-modules/openapi-spec-validator/default.nix index 5b875a0571bb..10d82f26212c 100644 --- a/pkgs/development/python-modules/openapi-spec-validator/default.nix +++ b/pkgs/development/python-modules/openapi-spec-validator/default.nix @@ -1,14 +1,12 @@ { lib, buildPythonPackage, - pythonOlder, fetchFromGitHub, # build-system poetry-core, # propagates - importlib-resources, jsonschema, jsonschema-path, lazy-object-proxy, @@ -39,8 +37,7 @@ buildPythonPackage rec { jsonschema-path lazy-object-proxy openapi-schema-validator - ] - ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ]; + ]; nativeCheckInputs = [ pytestCheckHook From 465d0d8295fcb0fcc43c363ca4d8dbe3ebb21c8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:22:24 +0100 Subject: [PATCH 231/396] python3Packages.paddle-bfloat: remove superfluous pythonOlder --- pkgs/development/python-modules/paddle-bfloat/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/paddle-bfloat/default.nix b/pkgs/development/python-modules/paddle-bfloat/default.nix index 07b1eaf62686..506330be24f7 100644 --- a/pkgs/development/python-modules/paddle-bfloat/default.nix +++ b/pkgs/development/python-modules/paddle-bfloat/default.nix @@ -2,7 +2,6 @@ lib, buildPythonPackage, fetchPypi, - pythonOlder, pythonAtLeast, numpy, }: @@ -27,7 +26,7 @@ buildPythonPackage { --replace "Py_TYPE(&NPyBfloat16_Descr) = &PyArrayDescr_Type" "Py_SET_TYPE(&NPyBfloat16_Descr, &PyArrayDescr_Type)" ''; - disabled = pythonOlder "3.9" || pythonAtLeast "3.12"; + disabled = pythonAtLeast "3.12"; propagatedBuildInputs = [ numpy ]; From 85538dc908c1bd2a899994a40ce9abe875615842 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:22:41 +0100 Subject: [PATCH 232/396] python3Packages.pendulum: remove superfluous pythonOlder --- pkgs/development/python-modules/pendulum/default.nix | 6 ------ 1 file changed, 6 deletions(-) diff --git a/pkgs/development/python-modules/pendulum/default.nix b/pkgs/development/python-modules/pendulum/default.nix index b6472c24528d..2a30200bf269 100644 --- a/pkgs/development/python-modules/pendulum/default.nix +++ b/pkgs/development/python-modules/pendulum/default.nix @@ -3,8 +3,6 @@ stdenv, buildPythonPackage, fetchFromGitHub, - fetchpatch, - pythonOlder, isPyPy, # build-system @@ -15,7 +13,6 @@ iconv, # dependencies - importlib-resources, python-dateutil, time-machine, tzdata, @@ -58,9 +55,6 @@ buildPythonPackage rec { ] ++ lib.optionals (!isPyPy) [ time-machine - ] - ++ lib.optionals (pythonOlder "3.9") [ - importlib-resources ]; pythonImportsCheck = [ "pendulum" ]; From 4590fce06dc7dd136ca8efcc8921b327df3b6a03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:23:14 +0100 Subject: [PATCH 233/396] python3Packages.pluthon: remove superfluous pythonOlder --- pkgs/development/python-modules/pluthon/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/pluthon/default.nix b/pkgs/development/python-modules/pluthon/default.nix index aae077325b35..328d6272f3ad 100644 --- a/pkgs/development/python-modules/pluthon/default.nix +++ b/pkgs/development/python-modules/pluthon/default.nix @@ -3,10 +3,8 @@ fetchFromGitHub, buildPythonPackage, setuptools, - pythonOlder, # Python deps uplc, - graphlib-backport, ordered-set, }: @@ -27,8 +25,7 @@ buildPythonPackage rec { setuptools uplc ordered-set - ] - ++ lib.optional (pythonOlder "3.9") graphlib-backport; + ]; pythonImportsCheck = [ "pluthon" ]; From e84a57437ab80e8a09d212e34d82ed967258560f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:23:34 +0100 Subject: [PATCH 234/396] python3Packages.pycairo: remove superfluous pythonOlder --- pkgs/development/python-modules/pycairo/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/pycairo/default.nix b/pkgs/development/python-modules/pycairo/default.nix index f763019b1020..1575b0275583 100644 --- a/pkgs/development/python-modules/pycairo/default.nix +++ b/pkgs/development/python-modules/pycairo/default.nix @@ -1,6 +1,5 @@ { lib, - pythonOlder, fetchFromGitHub, meson, ninja, @@ -8,7 +7,6 @@ pytestCheckHook, pkg-config, cairo, - libxcrypt, python, }: @@ -31,7 +29,7 @@ buildPythonPackage rec { pkg-config ]; - buildInputs = [ cairo ] ++ lib.optionals (pythonOlder "3.9") [ libxcrypt ]; + buildInputs = [ cairo ]; nativeCheckInputs = [ pytestCheckHook ]; From 77a5ff56b659016ca0a3a5657a5522a6aabce1b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:23:47 +0100 Subject: [PATCH 235/396] python3Packages.pykakasi: remove superfluous pythonOlder --- pkgs/development/python-modules/pykakasi/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/pykakasi/default.nix b/pkgs/development/python-modules/pykakasi/default.nix index 3ea76b573612..cbb3d467ec26 100644 --- a/pkgs/development/python-modules/pykakasi/default.nix +++ b/pkgs/development/python-modules/pykakasi/default.nix @@ -3,12 +3,10 @@ buildPythonPackage, deprecated, fetchFromGitea, - importlib-resources, jaconv, py-cpuinfo, pytest-benchmark, pytestCheckHook, - pythonOlder, setuptools-scm, }: @@ -30,8 +28,7 @@ buildPythonPackage rec { dependencies = [ jaconv deprecated - ] - ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ]; + ]; nativeCheckInputs = [ py-cpuinfo From de2bfd58edcdb1ff4b3fdb23c85f554b759b2f11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:24:18 +0100 Subject: [PATCH 236/396] python3Packages.pyside2: remove superfluous pythonOlder --- pkgs/development/python-modules/pyside2/default.nix | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/pkgs/development/python-modules/pyside2/default.nix b/pkgs/development/python-modules/pyside2/default.nix index 069f927dc3cc..4a0215fe59da 100644 --- a/pkgs/development/python-modules/pyside2/default.nix +++ b/pkgs/development/python-modules/pyside2/default.nix @@ -4,7 +4,6 @@ lib, stdenv, cmake, - libxcrypt, ninja, qt5, shiboken2, @@ -85,12 +84,7 @@ stdenv.mkDerivation rec { ++ lib.optionals withWebengine [ qt5.qtwebengine ] - ++ (with python.pkgs; [ setuptools ]) - ++ (lib.optionals (python.pythonOlder "3.9") [ - # see similar issue: 202262 - # libxcrypt is required for crypt.h for building older python modules - libxcrypt - ]); + ++ (with python.pkgs; [ setuptools ]); propagatedBuildInputs = [ shiboken2 ]; From 68b5c0d7ff2c871cf711bb7bcc434fb6c34e7783 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:24:35 +0100 Subject: [PATCH 237/396] python3Packages.ray: remove superfluous pythonOlder --- pkgs/development/python-modules/ray/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/ray/default.nix b/pkgs/development/python-modules/ray/default.nix index 247015bd3269..964f00238393 100644 --- a/pkgs/development/python-modules/ray/default.nix +++ b/pkgs/development/python-modules/ray/default.nix @@ -2,7 +2,6 @@ lib, stdenv, buildPythonPackage, - pythonOlder, pythonAtLeast, python, fetchPypi, @@ -80,7 +79,7 @@ buildPythonPackage rec { inherit pname version; format = "wheel"; - disabled = pythonOlder "3.9" || pythonAtLeast "3.14"; + disabled = pythonAtLeast "3.14"; src = let From 236437fae52be62527b5608233f35c0c716e0a53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:24:50 +0100 Subject: [PATCH 238/396] python3Packages.scancode-toolkit: remove superfluous pythonOlder --- pkgs/development/python-modules/scancode-toolkit/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/scancode-toolkit/default.nix b/pkgs/development/python-modules/scancode-toolkit/default.nix index d0aa69df593f..bfde86cd69ab 100644 --- a/pkgs/development/python-modules/scancode-toolkit/default.nix +++ b/pkgs/development/python-modules/scancode-toolkit/default.nix @@ -45,7 +45,6 @@ pygments, pymaven-patch, pytestCheckHook, - pythonOlder, requests, saneyaml, setuptools, @@ -57,7 +56,6 @@ urlpy, writableTmpDirAsHomeHook, xmltodict, - zipp, }: buildPythonPackage rec { @@ -126,8 +124,7 @@ buildPythonPackage rec { typecode-libmagic urlpy xmltodict - ] - ++ lib.optionals (pythonOlder "3.9") [ zipp ]; + ]; nativeBuildInputs = [ writableTmpDirAsHomeHook From e511bd649a04109cc8dc9d6bde0f5a3595a5eebd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:25:05 +0100 Subject: [PATCH 239/396] python3Packages.schema-salad: remove superfluous pythonOlder --- pkgs/development/python-modules/schema-salad/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/schema-salad/default.nix b/pkgs/development/python-modules/schema-salad/default.nix index 2b70f76f7612..b092a4202141 100644 --- a/pkgs/development/python-modules/schema-salad/default.nix +++ b/pkgs/development/python-modules/schema-salad/default.nix @@ -4,12 +4,10 @@ buildPythonPackage, cachecontrol, fetchFromGitHub, - importlib-resources, mistune, mypy, mypy-extensions, pytestCheckHook, - pythonOlder, rdflib, requests, ruamel-yaml, @@ -56,8 +54,7 @@ buildPythonPackage rec { types-requests types-setuptools ] - ++ cachecontrol.optional-dependencies.filecache - ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ]; + ++ cachecontrol.optional-dependencies.filecache; nativeCheckInputs = [ pytestCheckHook ] ++ optional-dependencies.pycodegen; From 696bc004c4b759f3b0daf7b1dfa607868859a78b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:25:28 +0100 Subject: [PATCH 240/396] python3Packages.shiboken2: remove superfluous pythonOlder --- pkgs/development/python-modules/shiboken2/default.nix | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/pkgs/development/python-modules/shiboken2/default.nix b/pkgs/development/python-modules/shiboken2/default.nix index 314c89c4da1a..998e04cc03fc 100644 --- a/pkgs/development/python-modules/shiboken2/default.nix +++ b/pkgs/development/python-modules/shiboken2/default.nix @@ -5,7 +5,6 @@ pyside2, cmake, qt5, - libxcrypt, llvmPackages, }: @@ -48,12 +47,7 @@ stdenv.mkDerivation { python.pkgs.setuptools qt5.qtbase qt5.qtxmlpatterns - ] - ++ (lib.optionals (python.pythonOlder "3.9") [ - # see similar issue: 202262 - # libxcrypt is required for crypt.h for building older python modules - libxcrypt - ]); + ]; cmakeFlags = [ "-DBUILD_TESTS=OFF" ]; From 6b65f6c2c66da3bc7ed818c549b962648963135e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:25:47 +0100 Subject: [PATCH 241/396] python3Packages.skorch: remove superfluous pythonOlder --- pkgs/development/python-modules/skorch/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/skorch/default.nix b/pkgs/development/python-modules/skorch/default.nix index 1b88c9a8ed46..bae7550aefa2 100644 --- a/pkgs/development/python-modules/skorch/default.nix +++ b/pkgs/development/python-modules/skorch/default.nix @@ -3,7 +3,6 @@ stdenv, buildPythonPackage, fetchFromGitHub, - pythonOlder, numpy, scikit-learn, scipy, @@ -35,7 +34,7 @@ buildPythonPackage rec { # AttributeError: 'NoneType' object has no attribute 'span' with Python 3.13 # https://github.com/skorch-dev/skorch/issues/1080 - disabled = pythonOlder "3.9" || pythonAtLeast "3.13"; + disabled = pythonAtLeast "3.13"; build-system = [ setuptools ]; From 30d6e9d4116a0756d328182ce21a001a58d514cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:26:00 +0100 Subject: [PATCH 242/396] python3Packages.snscrape: remove superfluous pythonOlder --- pkgs/development/python-modules/snscrape/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/snscrape/default.nix b/pkgs/development/python-modules/snscrape/default.nix index b0640323c5ed..5c8ea1fb30fb 100644 --- a/pkgs/development/python-modules/snscrape/default.nix +++ b/pkgs/development/python-modules/snscrape/default.nix @@ -6,8 +6,6 @@ fetchpatch, filelock, lxml, - pythonOlder, - pytz, requests, setuptools-scm, }: @@ -41,8 +39,7 @@ buildPythonPackage rec { lxml requests ] - ++ requests.optional-dependencies.socks - ++ lib.optionals (pythonOlder "3.9") [ pytz ]; + ++ requests.optional-dependencies.socks; # There are no tests; make sure the executable works. checkPhase = '' From 899c0c8d80a906f7cf592fae68be6b83d4f783bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:26:14 +0100 Subject: [PATCH 243/396] python3Packages.swagger-ui-bundle: remove superfluous pythonOlder --- pkgs/development/python-modules/swagger-ui-bundle/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/swagger-ui-bundle/default.nix b/pkgs/development/python-modules/swagger-ui-bundle/default.nix index 928006bb548a..c24b66bdfdce 100644 --- a/pkgs/development/python-modules/swagger-ui-bundle/default.nix +++ b/pkgs/development/python-modules/swagger-ui-bundle/default.nix @@ -2,13 +2,11 @@ lib, buildPythonPackage, fetchPypi, - pythonOlder, # build-system poetry-core, # dependencies - importlib-resources, jinja2, }: @@ -26,7 +24,7 @@ buildPythonPackage rec { nativeBuildInputs = [ poetry-core ]; - propagatedBuildInputs = [ jinja2 ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ]; + propagatedBuildInputs = [ jinja2 ]; # package contains no tests doCheck = false; From e665f2e7bbaa53b85169c4aa540cdaf2b3961b60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 18 Jan 2026 15:26:31 +0100 Subject: [PATCH 244/396] python3Packages.unify: remove superfluous pythonOlder --- pkgs/development/python-modules/unify/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/unify/default.nix b/pkgs/development/python-modules/unify/default.nix index daad747a52d9..556725bebd2b 100644 --- a/pkgs/development/python-modules/unify/default.nix +++ b/pkgs/development/python-modules/unify/default.nix @@ -3,7 +3,6 @@ buildPythonPackage, fetchFromGitHub, pythonAtLeast, - pythonOlder, setuptools, pytestCheckHook, untokenize, @@ -15,7 +14,7 @@ buildPythonPackage rec { pyproject = true; # lib2to3 usage and unmaintained since 2019 - disabled = pythonOlder "3.9" || pythonAtLeast "3.13"; + disabled = pythonAtLeast "3.13"; src = fetchFromGitHub { owner = "myint"; From 93f177086486a81adcd59ea026e9d848df17ac11 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 09:33:51 +0000 Subject: [PATCH 245/396] screenly-cli: 1.0.5 -> 1.1.0 --- pkgs/by-name/sc/screenly-cli/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/sc/screenly-cli/package.nix b/pkgs/by-name/sc/screenly-cli/package.nix index 654a9c543dd6..d8edb2c1d762 100644 --- a/pkgs/by-name/sc/screenly-cli/package.nix +++ b/pkgs/by-name/sc/screenly-cli/package.nix @@ -10,16 +10,16 @@ rustPlatform.buildRustPackage rec { pname = "screenly-cli"; - version = "1.0.5"; + version = "1.1.0"; src = fetchFromGitHub { owner = "screenly"; repo = "cli"; tag = "v${version}"; - hash = "sha256-OSol+KVfxL/bz9qwT9u8MmjPQ11qqFYWnVQLXfcA6pQ="; + hash = "sha256-Icx0Nkn0ScbNTmXllkUj6DPhGqzh8HnIQPpej4ABJac="; }; - cargoHash = "sha256-znob9SvnE1y9yX/tTJY7jjJx/TnLTmoRRokScj5H1Yg="; + cargoHash = "sha256-XYXWbwuoPqL93R8Bre26kBPxkiXpJ0Dg06cBOyDK8ok="; nativeBuildInputs = [ pkg-config From 502a92dc61b3be4462411d7637943504754ccc52 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 09:37:54 +0000 Subject: [PATCH 246/396] python3Packages.django-filer: 3.4.1 -> 3.4.3 --- pkgs/development/python-modules/django-filer/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/django-filer/default.nix b/pkgs/development/python-modules/django-filer/default.nix index 35723823656f..5aaab801e51b 100644 --- a/pkgs/development/python-modules/django-filer/default.nix +++ b/pkgs/development/python-modules/django-filer/default.nix @@ -15,14 +15,14 @@ buildPythonPackage rec { pname = "django-filer"; - version = "3.4.1"; + version = "3.4.3"; pyproject = true; src = fetchFromGitHub { owner = "django-cms"; repo = "django-filer"; tag = version; - hash = "sha256-lbt7Tk+BJX9sesIPjZ0bIpE0RzO4nH/TAdimowfYtkA="; + hash = "sha256-Zy1CkQL3FEJ4YDv0VGuRKS8XlqvFT6HjnGGZFSgOPew="; }; build-system = [ setuptools ]; From 3480cf37cbf997f13ef51ced463ac14740aa1321 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Thu, 25 Dec 2025 11:42:41 +0000 Subject: [PATCH 247/396] lua-language-server: 3.16.1 -> 3.17.0 --- pkgs/by-name/lu/lua-language-server/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/lu/lua-language-server/package.nix b/pkgs/by-name/lu/lua-language-server/package.nix index 49564b56d767..04150a0c6acc 100644 --- a/pkgs/by-name/lu/lua-language-server/package.nix +++ b/pkgs/by-name/lu/lua-language-server/package.nix @@ -19,13 +19,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "lua-language-server"; - version = "3.16.1"; + version = "3.17.0"; src = fetchFromGitHub { owner = "luals"; repo = "lua-language-server"; tag = finalAttrs.version; - hash = "sha256-HYtnTJYII548+/tp+1UjRgsBaTuDz27AIc2MvBjBh8o="; + hash = "sha256-jeO01VvukzpVPP/ob/p/br51uy6eVdAFqRTIo/DttR0="; fetchSubmodules = true; }; From 0e032794b8cd0decfb7d0cefecdff356f194e142 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 10:42:02 +0100 Subject: [PATCH 248/396] lua-language-server: drop maintainer sei40kr --- pkgs/by-name/lu/lua-language-server/package.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/by-name/lu/lua-language-server/package.nix b/pkgs/by-name/lu/lua-language-server/package.nix index 04150a0c6acc..571b7b7a4564 100644 --- a/pkgs/by-name/lu/lua-language-server/package.nix +++ b/pkgs/by-name/lu/lua-language-server/package.nix @@ -138,7 +138,6 @@ stdenv.mkDerivation (finalAttrs: { license = lib.licenses.mit; maintainers = with lib.maintainers; [ gepbird - sei40kr ]; mainProgram = "lua-language-server"; platforms = lib.platforms.linux ++ lib.platforms.darwin; From d74ceb3627a6d3a23cb4793bc44b666e849997b1 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 09:47:08 +0000 Subject: [PATCH 249/396] goverlay: 1.7.0 -> 1.7.1 --- pkgs/by-name/go/goverlay/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/go/goverlay/package.nix b/pkgs/by-name/go/goverlay/package.nix index 3702638479a4..f0db6f99954f 100644 --- a/pkgs/by-name/go/goverlay/package.nix +++ b/pkgs/by-name/go/goverlay/package.nix @@ -24,13 +24,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "goverlay"; - version = "1.7.0"; + version = "1.7.1"; src = fetchFromGitHub { owner = "benjamimgois"; repo = "goverlay"; tag = finalAttrs.version; - hash = "sha256-xfc+ht1piVnjXK+hxHKbhdpp63p/DMLPSzvJq+mYhFs="; + hash = "sha256-zzGxeBnyj04zmPNQ09sYAO17Jaiwx+HA5TyiLo4jFr8="; }; outputs = [ From a1e081ad1fca851fc79918e05ae773de07ef819e Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Mon, 19 Jan 2026 09:42:32 +0000 Subject: [PATCH 250/396] python3Packages.shiny: 1.5.0 -> 1.5.1 Diff: https://github.com/posit-dev/py-shiny/compare/v1.5.0...v1.5.1 Changelog: https://github.com/posit-dev/py-shiny/blob/v1.5.1/CHANGELOG.md --- pkgs/development/python-modules/shiny/default.nix | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/shiny/default.nix b/pkgs/development/python-modules/shiny/default.nix index 8e8d3a676574..107e6a17233f 100644 --- a/pkgs/development/python-modules/shiny/default.nix +++ b/pkgs/development/python-modules/shiny/default.nix @@ -48,14 +48,14 @@ buildPythonPackage (finalAttrs: { pname = "shiny"; - version = "1.5.0"; + version = "1.5.1"; pyproject = true; src = fetchFromGitHub { owner = "posit-dev"; repo = "py-shiny"; tag = "v${finalAttrs.version}"; - hash = "sha256-zRKfSY0rE+jzwYUcrRTIFW3OVmavhMDbAQEpry46zCI="; + hash = "sha256-8iqnm1SQ4h0GuwqKDzL6qEdbw0gJ2a5Aqg5WJgbaKBI="; }; build-system = [ @@ -127,6 +127,15 @@ buildPythonPackage (finalAttrs: { "test_theme_from_brand_base_case_compiles" # ValueError: A tokenizer is required to impose `token_limits` on messages "test_chat_message_trimming" + + # Snapshot tests fail with AssertionError + "test_toast_header_icon_renders_in_header" + "test_toast_header_icon_with_status_and_title" + "test_toast_icon_renders_in_body_with_header" + "test_toast_icon_renders_in_body_without_header" + "test_toast_icon_works_with_closable_button_in_body" + "test_toast_with_both_header_icon_and_body_icon" + "test_toast_with_custom_tag_header" ]; __darwinAllowLocalNetworking = true; From 33bff8b6c55dccfca8ed474d1bfbc458589dc8c1 Mon Sep 17 00:00:00 2001 From: Anish Pallati Date: Sun, 18 Jan 2026 16:23:23 -0500 Subject: [PATCH 251/396] cloudflare-warp: add darwin support, 2025.9.558 -> 2025.10.186.0 --- pkgs/by-name/cl/cloudflare-warp/package.nix | 153 +++++++++++++------- 1 file changed, 102 insertions(+), 51 deletions(-) diff --git a/pkgs/by-name/cl/cloudflare-warp/package.nix b/pkgs/by-name/cl/cloudflare-warp/package.nix index 61538f11fc1b..a83bfc047df7 100644 --- a/pkgs/by-name/cl/cloudflare-warp/package.nix +++ b/pkgs/by-name/cl/cloudflare-warp/package.nix @@ -20,19 +20,29 @@ jq, ripgrep, common-updater-scripts, + xar, + cpio, headless ? false, }: let - version = "2025.9.558"; + version = "2025.10.186.0"; sources = { x86_64-linux = fetchurl { - url = "https://pkg.cloudflareclient.com/pool/noble/main/c/cloudflare-warp/cloudflare-warp_${version}.0_amd64.deb"; - hash = "sha256-eYPy8YnP/vvYmvvjvF6Y0gSzdglsvoPW6CJ5npjrtpo="; + url = "https://pkg.cloudflareclient.com/pool/noble/main/c/cloudflare-warp/cloudflare-warp_${version}_amd64.deb"; + hash = "sha256-l+csDSBXRAFb2075ciCAlE0bS5F48mAIK/Bv1r3Q8GE="; }; aarch64-linux = fetchurl { - url = "https://pkg.cloudflareclient.com/pool/noble/main/c/cloudflare-warp/cloudflare-warp_${version}.0_arm64.deb"; - hash = "sha256-K8XENo+9n3ChmQ33wAg/KiVHjNOKOXp6UQM2fpntgkE="; + url = "https://pkg.cloudflareclient.com/pool/noble/main/c/cloudflare-warp/cloudflare-warp_${version}_arm64.deb"; + hash = "sha256-S6CfWYzcv+1Djj+TX+lrP5eG7oIpM0JrqtSw/UDD9ko="; + }; + x86_64-darwin = fetchurl { + url = "https://downloads.cloudflareclient.com/v1/download/macos/version/${version}"; + hash = "sha256-nnoOXPSpOJRyNdCC0/YAoBK8SwB+++qVwgZplrjNi2U="; + }; + aarch64-darwin = fetchurl { + url = "https://downloads.cloudflareclient.com/v1/download/macos/version/${version}"; + hash = "sha256-nnoOXPSpOJRyNdCC0/YAoBK8SwB+++qVwgZplrjNi2U="; }; }; in @@ -46,26 +56,34 @@ stdenv.mkDerivation (finalAttrs: { or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); nativeBuildInputs = [ + makeWrapper + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + xar + cpio + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ dpkg autoPatchelfHook versionCheckHook - makeWrapper ] - ++ lib.optionals (!headless) [ + ++ lib.optionals (!headless && stdenv.hostPlatform.isLinux) [ copyDesktopItems desktop-file-utils ]; - buildInputs = [ - dbus - libpcap - openssl - nss - (lib.getLib stdenv.cc.cc) - ] - ++ lib.optionals (!headless) [ - gtk3 - ]; + buildInputs = lib.optionals stdenv.hostPlatform.isLinux ( + [ + dbus + libpcap + openssl + nss + (lib.getLib stdenv.cc.cc) + ] + ++ lib.optionals (!headless) [ + gtk3 + ] + ); desktopItems = lib.optionals (!headless) [ (makeDesktopItem { @@ -88,48 +106,78 @@ stdenv.mkDerivation (finalAttrs: { "libpcap.so.0.8" ]; - installPhase = '' - runHook preInstall + unpackPhase = lib.optionalString stdenv.hostPlatform.isDarwin '' + runHook preUnpack - mv usr $out - mv bin $out - mv etc $out - patchelf --replace-needed libpcap.so.0.8 ${libpcap}/lib/libpcap.so $out/bin/warp-dex - mv lib/systemd/system $out/lib/systemd/ - substituteInPlace $out/lib/systemd/system/warp-svc.service \ - --replace-fail "ExecStart=" "ExecStart=$out" - ${lib.optionalString (!headless) '' - substituteInPlace $out/lib/systemd/user/warp-taskbar.service \ - --replace-fail "ExecStart=" "ExecStart=$out" \ - --replace-fail "BindsTo=" "PartOf=" + xar -xf $src + zcat < Cloudflare_WARP_${version}.pkg/Payload | cpio -i - cat >>$out/lib/systemd/user/warp-taskbar.service < Date: Mon, 19 Jan 2026 10:37:39 +0000 Subject: [PATCH 252/396] github-copilot-cli: 0.0.380 -> 0.0.384 --- pkgs/by-name/gi/github-copilot-cli/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gi/github-copilot-cli/package.nix b/pkgs/by-name/gi/github-copilot-cli/package.nix index dd8c0db1b92c..bc69b214ac2a 100644 --- a/pkgs/by-name/gi/github-copilot-cli/package.nix +++ b/pkgs/by-name/gi/github-copilot-cli/package.nix @@ -10,11 +10,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "github-copilot-cli"; - version = "0.0.380"; + version = "0.0.384"; src = fetchzip { url = "https://registry.npmjs.org/@github/copilot/-/copilot-${finalAttrs.version}.tgz"; - hash = "sha256-QClw+IEz0TBVgaQGhZVwk63Bvjb5btTtBPkHWV7Wxl0="; + hash = "sha256-UI85wx9So28J0QCXP1z2zCXmA54L1dzd0Msr9NLs0CY="; }; nativeBuildInputs = [ makeBinaryWrapper ]; From 7986550044ba392143ca6b6643a858656fc2fc36 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Tue, 25 Nov 2025 00:41:46 +0000 Subject: [PATCH 253/396] =?UTF-8?q?packagekit:=201.3.2=20=E2=86=92=201.3.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/PackageKit/PackageKit/compare/v1.3.2...v1.3.3 - allow more operations without password - new experimental command (disabled by default) - new backend for Solus - various cleanups --- .../package-management/packagekit/default.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/tools/package-management/packagekit/default.nix b/pkgs/tools/package-management/packagekit/default.nix index 25c3a64abaca..8839deada685 100644 --- a/pkgs/tools/package-management/packagekit/default.nix +++ b/pkgs/tools/package-management/packagekit/default.nix @@ -28,9 +28,9 @@ nixosTests, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "packagekit"; - version = "1.3.2"; + version = "1.3.3"; outputs = [ "out" @@ -41,8 +41,8 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "PackageKit"; repo = "PackageKit"; - rev = "v${version}"; - hash = "sha256-oQuJpn9G/V8CrrEs2agbKVS9xZnS1MgHa8B8P1nFmiw="; + rev = "v${finalAttrs.version}"; + hash = "sha256-BgVfM2EtuvV9qTFSy+WW5Ny1QrHIj3t2Royrn7ZHAA8="; }; buildInputs = [ @@ -94,9 +94,9 @@ stdenv.mkDerivation rec { # those files in $out/etc ; we just override the runtime paths here # same for /var & $out/var substituteInPlace etc/meson.build \ - --replace "install_dir: join_paths(get_option('sysconfdir'), 'PackageKit')" "install_dir: join_paths('$out', 'etc', 'PackageKit')" + --replace-fail "install_dir: join_paths(get_option('sysconfdir'), 'PackageKit')" "install_dir: join_paths('$out', 'etc', 'PackageKit')" substituteInPlace data/meson.build \ - --replace "install_dir: join_paths(get_option('localstatedir'), 'lib', 'PackageKit')," "install_dir: join_paths('$out', 'var', 'lib', 'PackageKit')," + --replace-fail "install_dir: join_paths(get_option('localstatedir'), 'lib', 'PackageKit')," "install_dir: join_paths('$out', 'var', 'lib', 'PackageKit')," ''; passthru.tests = { @@ -120,4 +120,4 @@ stdenv.mkDerivation rec { platforms = lib.platforms.unix; maintainers = [ ]; }; -} +}) From e838381eb3a7972c31cae3d03554e43c23ce129f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 10:46:46 +0000 Subject: [PATCH 254/396] stable-diffusion-cpp: master-468-885e62e -> master-475-2efd199 --- pkgs/by-name/st/stable-diffusion-cpp/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/st/stable-diffusion-cpp/package.nix b/pkgs/by-name/st/stable-diffusion-cpp/package.nix index 795878ab0a88..25fbed45c9d4 100644 --- a/pkgs/by-name/st/stable-diffusion-cpp/package.nix +++ b/pkgs/by-name/st/stable-diffusion-cpp/package.nix @@ -42,13 +42,13 @@ let in effectiveStdenv.mkDerivation (finalAttrs: { pname = "stable-diffusion-cpp"; - version = "master-468-885e62e"; + version = "master-475-2efd199"; src = fetchFromGitHub { owner = "leejet"; repo = "stable-diffusion.cpp"; - rev = "master-468-885e62e"; - hash = "sha256-KGbHKUZ1YbANB5RQl2cGq3MkHANLosloia3ntLhIS+o="; + rev = "master-475-2efd199"; + hash = "sha256-ic0mnkKjgfL8k94ZCyqckjDR953NL7kBZ/tlIfLgZYo="; fetchSubmodules = true; }; From 6c846697004643f5a3fc6a396f7a9202fb86729b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 11:14:11 +0000 Subject: [PATCH 255/396] python3Packages.approvaltests: 16.2.2 -> 16.3.0 --- pkgs/development/python-modules/approvaltests/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/approvaltests/default.nix b/pkgs/development/python-modules/approvaltests/default.nix index b3ef2bb3dc65..b45c8fa98226 100644 --- a/pkgs/development/python-modules/approvaltests/default.nix +++ b/pkgs/development/python-modules/approvaltests/default.nix @@ -20,14 +20,14 @@ buildPythonPackage rec { pname = "approvaltests"; - version = "16.2.2"; + version = "16.3.0"; pyproject = true; src = fetchFromGitHub { owner = "approvals"; repo = "ApprovalTests.Python"; tag = "v${version}"; - hash = "sha256-QIEuAgsBXLTFRQG6cwjePuXBS0JOJIRfmGRW8OK46zg="; + hash = "sha256-t/+o1qFGIkb1BfNKNvh1CvuqezKGPyhPbEvKod2UyC4="; }; postPatch = '' From c8705e43d99af7cb81de48bd10b0dec8cc25d4de Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Sun, 18 Jan 2026 21:54:21 +0000 Subject: [PATCH 256/396] llm-ls: use system oniguruma --- pkgs/by-name/ll/llm-ls/package.nix | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ll/llm-ls/package.nix b/pkgs/by-name/ll/llm-ls/package.nix index 821a8a11a8a2..98566af2103f 100644 --- a/pkgs/by-name/ll/llm-ls/package.nix +++ b/pkgs/by-name/ll/llm-ls/package.nix @@ -4,24 +4,26 @@ fetchFromGitHub, fetchpatch, pkg-config, + oniguruma, versionCheckHook, nix-update-script, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "llm-ls"; version = "0.5.3"; src = fetchFromGitHub { owner = "huggingface"; repo = "llm-ls"; - tag = version; + tag = finalAttrs.version; hash = "sha256-ICMM2kqrHFlKt2/jmE4gum1Eb32afTJkT3IRoqcjJJ8="; }; cargoPatches = [ # https://github.com/huggingface/llm-ls/pull/102 ./fix-time-compilation-failure.patch + (fetchpatch { name = "fix-version.patch"; url = "https://github.com/huggingface/llm-ls/commit/479401f3a5173f2917a888c8068f84e29b7dceed.patch?full_index=1"; @@ -29,12 +31,18 @@ rustPlatform.buildRustPackage rec { }) ]; + env.RUSTONIG_SYSTEM_LIBONIG = true; + cargoHash = "sha256-qiYspv2KcvzxVshVpAMlSqFDqbbiutpLyWMz+QSIVmQ="; buildAndTestSubdir = "crates/llm-ls"; nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + oniguruma + ]; + nativeInstallCheckInputs = [ versionCheckHook ]; @@ -47,10 +55,10 @@ rustPlatform.buildRustPackage rec { meta = { description = "LSP server leveraging LLMs for code completion (and more?)"; homepage = "https://github.com/huggingface/llm-ls"; - changelog = "https://github.com/huggingface/llm-ls/releases/tag/${version}"; + changelog = "https://github.com/huggingface/llm-ls/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ jfvillablanca ]; platforms = lib.platforms.all; mainProgram = "llm-ls"; }; -} +}) From b46195b84df8c8dcddd4fa7b33aa55b77e56534c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 11:27:00 +0000 Subject: [PATCH 257/396] terraform-providers.oracle_oci: 7.29.0 -> 7.30.0 --- .../networking/cluster/terraform-providers/providers.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 58895241493e..09adf8ffbfd0 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -1049,11 +1049,11 @@ "vendorHash": null }, "oracle_oci": { - "hash": "sha256-wHNR0U8z0wY878ww2e+yybYYwUCbiGWSkIcEiubfOp4=", + "hash": "sha256-VGf5sCHMhOFm+w3lz2yhH0lw0MSlQYlYK/+lEuXk4vc=", "homepage": "https://registry.terraform.io/providers/oracle/oci", "owner": "oracle", "repo": "terraform-provider-oci", - "rev": "v7.29.0", + "rev": "v7.30.0", "spdx": "MPL-2.0", "vendorHash": null }, From 5efe5996806859d7cebe72d100aa52dbcdb4b25d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 11:27:30 +0000 Subject: [PATCH 258/396] chatbox: 1.18.2 -> 1.18.4 --- pkgs/by-name/ch/chatbox/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ch/chatbox/package.nix b/pkgs/by-name/ch/chatbox/package.nix index 6a3561e7260e..63a554668463 100644 --- a/pkgs/by-name/ch/chatbox/package.nix +++ b/pkgs/by-name/ch/chatbox/package.nix @@ -6,11 +6,11 @@ }: let pname = "chatbox"; - version = "1.18.2"; + version = "1.18.4"; src = fetchurl { url = "https://download.chatboxai.app/releases/Chatbox-${version}-x86_64.AppImage"; - hash = "sha256-5SDoObRi+Zwq4ZvnPz1dYvjhU5oLHbbAG4X4E8KfFbA="; + hash = "sha256-6BUvwL87ndtI2lFMcNKxpdOpn+EyUhAK9jc+a/zpjpU="; }; appimageContents = appimageTools.extract { inherit pname version src; }; From f0b0073eb77be4630ed1cf928591c728524fe671 Mon Sep 17 00:00:00 2001 From: Guanran Wang Date: Mon, 19 Jan 2026 19:32:01 +0800 Subject: [PATCH 259/396] osu-lazer-bin: 2026.102.1 -> 2026.119.0 --- pkgs/by-name/os/osu-lazer-bin/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/os/osu-lazer-bin/package.nix b/pkgs/by-name/os/osu-lazer-bin/package.nix index 2a129cc9758c..663eae34dd7c 100644 --- a/pkgs/by-name/os/osu-lazer-bin/package.nix +++ b/pkgs/by-name/os/osu-lazer-bin/package.nix @@ -10,23 +10,23 @@ let pname = "osu-lazer-bin"; - version = "2026.102.1"; + version = "2026.119.0"; src = { aarch64-darwin = fetchzip { url = "https://github.com/ppy/osu/releases/download/${version}-lazer/osu.app.Apple.Silicon.zip"; - hash = "sha256-NY5iWdFmwqjSIJG665eGRFk9vA/C1wYEyb1pYS74xJo="; + hash = "sha256-pM+dqCihHkUCu4xNZpZVIuP7UWwJ5a2DntA2S5PmxT4="; stripRoot = false; }; x86_64-darwin = fetchzip { url = "https://github.com/ppy/osu/releases/download/${version}-lazer/osu.app.Intel.zip"; - hash = "sha256-P4haI+MRGcCUQhcRpUPULGRlUoCtBeHq8FFXOar4s3c="; + hash = "sha256-wPFUH7Hy9sMPqCRoG8RMV6fZE6xtEKJGSBD7/XSTa34="; stripRoot = false; }; x86_64-linux = fetchurl { url = "https://github.com/ppy/osu/releases/download/${version}-lazer/osu.AppImage"; - hash = "sha256-3oUtXQ3PWSMfIaQhfskptyETlzXNHV3nA1sO5ICmsxg="; + hash = "sha256-lx8lU9tNXD90rpaKlIyR0C4eSivfmVAJP7Wq+n3Ht08="; }; } .${stdenvNoCC.system} or (throw "osu-lazer-bin: ${stdenvNoCC.system} is unsupported."); From 1482e875285e2df1b2f50e12b90de20c246ef019 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 11:32:40 +0000 Subject: [PATCH 260/396] google-alloydb-auth-proxy: 1.13.9 -> 1.13.10 --- pkgs/by-name/go/google-alloydb-auth-proxy/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/go/google-alloydb-auth-proxy/package.nix b/pkgs/by-name/go/google-alloydb-auth-proxy/package.nix index 182520505ffa..9739cac5f2dd 100644 --- a/pkgs/by-name/go/google-alloydb-auth-proxy/package.nix +++ b/pkgs/by-name/go/google-alloydb-auth-proxy/package.nix @@ -7,18 +7,18 @@ buildGoModule rec { pname = "google-alloydb-auth-proxy"; - version = "1.13.9"; + version = "1.13.10"; src = fetchFromGitHub { owner = "GoogleCloudPlatform"; repo = "alloydb-auth-proxy"; tag = "v${version}"; - hash = "sha256-VCfK2EcFerIxqaAEY9KnfPLqwOJaz6CVRbTQGzTM6SY="; + hash = "sha256-e+m7vr/N4Ij8X89f12ZjJDh60hOMQXQOBOaVE4TUVaA="; }; subPackages = [ "." ]; - vendorHash = "sha256-sC+bAlzb+Pcj0+NQDaUeyjr6I+fv7cQ3+JHJKKtmiT4="; + vendorHash = "sha256-PKtN0HvIzxr42XpandoHqqK9N0ohq2dXxGbnIlMO8mo="; checkFlags = [ "-short" From 0fe75f761fdb8d29dc7b05a4a47bf22b8146cdc8 Mon Sep 17 00:00:00 2001 From: Guanran Wang Date: Mon, 19 Jan 2026 19:33:47 +0800 Subject: [PATCH 261/396] osu-lazer: 2026.102.1 -> 2026.119.0 --- pkgs/by-name/os/osu-lazer/deps.json | 8 ++++---- pkgs/by-name/os/osu-lazer/package.nix | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/os/osu-lazer/deps.json b/pkgs/by-name/os/osu-lazer/deps.json index 6e9f29e134bb..67be9bf66bc5 100644 --- a/pkgs/by-name/os/osu-lazer/deps.json +++ b/pkgs/by-name/os/osu-lazer/deps.json @@ -626,8 +626,8 @@ }, { "pname": "ppy.osu.Framework", - "version": "2026.102.0", - "hash": "sha256-hmZfLliFuninJkIFml+hRSzpfp+q5h98i7yzTUaH/R8=" + "version": "2026.108.0", + "hash": "sha256-3xYUwhcZJKT446AX3Vvbb2kQaNDTGGR/efGy/E32NP8=" }, { "pname": "ppy.osu.Framework.NativeLibs", @@ -641,8 +641,8 @@ }, { "pname": "ppy.osu.Game.Resources", - "version": "2025.1218.0", - "hash": "sha256-ZtCdeZpFJd4t7PAf8uVrqMazyifi+MiTQHO/c/9nHP8=" + "version": "2026.108.0", + "hash": "sha256-1kM2v5AqHXS2G8xD++28tcHZe9QPB4946wpG7s6dVeo=" }, { "pname": "ppy.osuTK.NS20", diff --git a/pkgs/by-name/os/osu-lazer/package.nix b/pkgs/by-name/os/osu-lazer/package.nix index 6bfa14ea5e86..732921de1468 100644 --- a/pkgs/by-name/os/osu-lazer/package.nix +++ b/pkgs/by-name/os/osu-lazer/package.nix @@ -22,13 +22,13 @@ buildDotnetModule rec { pname = "osu-lazer"; - version = "2026.102.1"; + version = "2026.119.0"; src = fetchFromGitHub { owner = "ppy"; repo = "osu"; tag = "${version}-lazer"; - hash = "sha256-9aqLnC53t2lkhA3m5lGrL5wWvKWVrdw5ckNZGO2krAQ="; + hash = "sha256-aAWWq4nX8AeWTT8/aRbHccq+Zx87qP4izxXL3fE7QMg="; }; projectFile = "osu.Desktop/osu.Desktop.csproj"; From 19f546749c67a741a9a5770ad93417a4d7116911 Mon Sep 17 00:00:00 2001 From: Connor Baker Date: Tue, 30 Sep 2025 09:08:41 -0700 Subject: [PATCH 262/396] buildEnv: make name optional Signed-off-by: Connor Baker Co-authored-by: Yueh-Shun Li --- pkgs/build-support/buildenv/default.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/build-support/buildenv/default.nix b/pkgs/build-support/buildenv/default.nix index 5996239a16b4..e694a9b838e1 100644 --- a/pkgs/build-support/buildenv/default.nix +++ b/pkgs/build-support/buildenv/default.nix @@ -17,7 +17,11 @@ in lib.makeOverridable ( { - name, + name ? lib.throwIf ( + pname == null || version == null + ) "buildEnv: expect arguments 'pname' and 'version' or 'name'" "${pname}-${version}", + pname ? null, + version ? null, # The manifest file (if any). A symlink $out/manifest will be # created to it. @@ -60,8 +64,6 @@ lib.makeOverridable ( passthru ? { }, meta ? { }, - pname ? null, - version ? null, }: let chosenOutputs = map (drv: { From f1bfb40ed25887e4a447918fa87929de1eeddbd2 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Mon, 19 Jan 2026 11:48:49 +0000 Subject: [PATCH 263/396] cvehound: use finalAttrs --- pkgs/by-name/cv/cvehound/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/cv/cvehound/package.nix b/pkgs/by-name/cv/cvehound/package.nix index 1cf11fbd1de1..b785fbfe9569 100644 --- a/pkgs/by-name/cv/cvehound/package.nix +++ b/pkgs/by-name/cv/cvehound/package.nix @@ -6,7 +6,7 @@ python3, }: -python3.pkgs.buildPythonApplication rec { +python3.pkgs.buildPythonApplication (finalAttrs: { pname = "cvehound"; version = "1.2.1"; pyproject = true; @@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec { src = fetchFromGitHub { owner = "evdenis"; repo = "cvehound"; - tag = version; + tag = finalAttrs.version; hash = "sha256-UvjmlAm/8B4KfE9grvvgn37Rui+ZRfs2oTLqYYgqcUQ="; }; @@ -48,7 +48,7 @@ python3.pkgs.buildPythonApplication rec { meta = { description = "Tool to check linux kernel source dump for known CVEs"; homepage = "https://github.com/evdenis/cvehound"; - changelog = "https://github.com/evdenis/cvehound/blob/${src.rev}/ChangeLog"; + changelog = "https://github.com/evdenis/cvehound/blob/${finalAttrs.src.rev}/ChangeLog"; # See https://github.com/evdenis/cvehound/issues/22 license = with lib.licenses; [ gpl2Only @@ -56,4 +56,4 @@ python3.pkgs.buildPythonApplication rec { ]; maintainers = with lib.maintainers; [ ambroisie ]; }; -} +}) From 1e2cdaf72e774fb30861378d853b58ebee5f2852 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Mon, 19 Jan 2026 11:48:18 +0000 Subject: [PATCH 264/396] cgt-calc: use finalAttrs --- pkgs/by-name/cg/cgt-calc/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/cg/cgt-calc/package.nix b/pkgs/by-name/cg/cgt-calc/package.nix index ee7aeb9813c3..60b4cb850550 100644 --- a/pkgs/by-name/cg/cgt-calc/package.nix +++ b/pkgs/by-name/cg/cgt-calc/package.nix @@ -5,7 +5,7 @@ withTeXLive ? true, texliveSmall, }: -python3Packages.buildPythonApplication rec { +python3Packages.buildPythonApplication (finalAttrs: { pname = "cgt-calc"; version = "1.13.0"; pyproject = true; @@ -13,7 +13,7 @@ python3Packages.buildPythonApplication rec { src = fetchFromGitHub { owner = "KapJI"; repo = "capital-gains-calculator"; - rev = "v${version}"; + rev = "v${finalAttrs.version}"; hash = "sha256-y/Y05wG89nccXyxfjqazyPJhd8dOkfwRJre+Rzx97Hw="; }; @@ -45,4 +45,4 @@ python3Packages.buildPythonApplication rec { maintainers = with lib.maintainers; [ ambroisie ]; platforms = lib.platforms.unix; }; -} +}) From 5511a9d4f9b1f6698017b5fd795ea35c8d441cfd Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Mon, 19 Jan 2026 11:50:47 +0000 Subject: [PATCH 265/396] cvehound: allow overriding 'runtimeDeps' --- pkgs/by-name/cv/cvehound/package.nix | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/pkgs/by-name/cv/cvehound/package.nix b/pkgs/by-name/cv/cvehound/package.nix index b785fbfe9569..ef7c9402a587 100644 --- a/pkgs/by-name/cv/cvehound/package.nix +++ b/pkgs/by-name/cv/cvehound/package.nix @@ -5,7 +5,12 @@ gnugrep, python3, }: - +let + runtimeDeps = [ + coccinelle + gnugrep + ]; +in python3.pkgs.buildPythonApplication (finalAttrs: { pname = "cvehound"; version = "1.2.1"; @@ -18,15 +23,6 @@ python3.pkgs.buildPythonApplication (finalAttrs: { hash = "sha256-UvjmlAm/8B4KfE9grvvgn37Rui+ZRfs2oTLqYYgqcUQ="; }; - makeWrapperArgs = [ - "--prefix PATH : ${ - lib.makeBinPath [ - coccinelle - gnugrep - ] - }" - ]; - build-system = with python3.pkgs; [ setuptools ]; @@ -45,6 +41,17 @@ python3.pkgs.buildPythonApplication (finalAttrs: { # Tries to clone the kernel sources doCheck = false; + makeWrapperArgs = [ + "--prefix" + "PATH" + ":" + (lib.makeBinPath finalAttrs.passthru.runtimeDeps) + ]; + + passthru = { + inherit runtimeDeps; + }; + meta = { description = "Tool to check linux kernel source dump for known CVEs"; homepage = "https://github.com/evdenis/cvehound"; From a7e5384a1b09af37632bca4f2051440576d71eba Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Mon, 19 Jan 2026 11:51:52 +0000 Subject: [PATCH 266/396] fertilizer: use finalAttrs --- pkgs/by-name/fe/fertilizer/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/fe/fertilizer/package.nix b/pkgs/by-name/fe/fertilizer/package.nix index 1f5a01d80666..1a3f8608e588 100644 --- a/pkgs/by-name/fe/fertilizer/package.nix +++ b/pkgs/by-name/fe/fertilizer/package.nix @@ -4,7 +4,7 @@ fetchFromGitHub, }: -python3.pkgs.buildPythonApplication rec { +python3.pkgs.buildPythonApplication (finalAttrs: { pname = "fertilizer"; version = "0.3.0"; pyproject = true; @@ -12,7 +12,7 @@ python3.pkgs.buildPythonApplication rec { src = fetchFromGitHub { owner = "moleculekayak"; repo = "fertilizer"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-sDoAjEiKxHf+HtFLZr6RwuXN+rl0ZQnFUoQ09QiE6Xc="; }; @@ -40,4 +40,4 @@ python3.pkgs.buildPythonApplication rec { maintainers = with lib.maintainers; [ ambroisie ]; mainProgram = "fertilizer"; }; -} +}) From 22c78c391012bcb7deef30e6460521694fbea3c5 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Mon, 19 Jan 2026 11:52:10 +0000 Subject: [PATCH 267/396] nemorosa: use finalAttrs --- pkgs/by-name/ne/nemorosa/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ne/nemorosa/package.nix b/pkgs/by-name/ne/nemorosa/package.nix index b5c281c146a7..2e86c2076505 100644 --- a/pkgs/by-name/ne/nemorosa/package.nix +++ b/pkgs/by-name/ne/nemorosa/package.nix @@ -4,7 +4,7 @@ python3Packages, }: -python3Packages.buildPythonApplication rec { +python3Packages.buildPythonApplication (finalAttrs: { pname = "nemorosa"; version = "0.4.1"; pyproject = true; @@ -12,7 +12,7 @@ python3Packages.buildPythonApplication rec { src = fetchFromGitHub { owner = "KyokoMiki"; repo = "nemorosa"; - tag = version; + tag = finalAttrs.version; hash = "sha256-AqFjpEakEZ21iXmIIxhX+ez2aI/RMsLaUoECipQcaM4="; }; @@ -62,4 +62,4 @@ python3Packages.buildPythonApplication rec { maintainers = with lib.maintainers; [ ambroisie ]; mainProgram = "nemorosa"; }; -} +}) From c726674ac081caa1a35dd76e7818a0726f148182 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Mon, 19 Jan 2026 11:52:18 +0000 Subject: [PATCH 268/396] smoked-salmon: use finalAttrs --- pkgs/by-name/sm/smoked-salmon/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/sm/smoked-salmon/package.nix b/pkgs/by-name/sm/smoked-salmon/package.nix index 9c38d4fbd84c..56a8174bba68 100644 --- a/pkgs/by-name/sm/smoked-salmon/package.nix +++ b/pkgs/by-name/sm/smoked-salmon/package.nix @@ -17,7 +17,7 @@ let sox ]; in -python3Packages.buildPythonApplication rec { +python3Packages.buildPythonApplication (finalAttrs: { pname = "smoked-salmon"; version = "0.9.7.4"; pyproject = true; @@ -25,7 +25,7 @@ python3Packages.buildPythonApplication rec { src = fetchFromGitHub { owner = "smokin-salmon"; repo = "smoked-salmon"; - tag = version; + tag = finalAttrs.version; hash = "sha256-JOwqu/Hu7BjYLo3DdL6o+9TI/OQvlgj5Xu8WQ0cujwo="; }; @@ -74,7 +74,7 @@ python3Packages.buildPythonApplication rec { "--suffix" "PATH" ":" - (lib.makeBinPath runtimeDeps) + (lib.makeBinPath finalAttrs.passthru.runtimeDeps) ]; passthru = { @@ -91,4 +91,4 @@ python3Packages.buildPythonApplication rec { undefined-landmark ]; }; -} +}) From 032a769278c222d8d37108cd5e810e500fd1b563 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Mon, 19 Jan 2026 11:52:52 +0000 Subject: [PATCH 269/396] upsies: use finalAttrs --- pkgs/by-name/up/upsies/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/up/upsies/package.nix b/pkgs/by-name/up/upsies/package.nix index 5d9d0a001196..7deb4ca9ccd8 100644 --- a/pkgs/by-name/up/upsies/package.nix +++ b/pkgs/by-name/up/upsies/package.nix @@ -16,7 +16,7 @@ let oxipng ]; in -python3Packages.buildPythonApplication rec { +python3Packages.buildPythonApplication (finalAttrs: { pname = "upsies"; version = "2026.01.03"; pyproject = true; @@ -25,7 +25,7 @@ python3Packages.buildPythonApplication rec { domain = "codeberg.org"; owner = "plotski"; repo = "upsies"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-Ya1v0DR5a4fPsFVJKVSDbgy+hWE136aRV3pFMExlRhU="; }; @@ -122,4 +122,4 @@ python3Packages.buildPythonApplication rec { mainProgram = "upsies"; maintainers = with lib.maintainers; [ ambroisie ]; }; -} +}) From d890b78da778b73e0df8bfb81f3e3b1126cce92f Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Mon, 19 Jan 2026 11:53:05 +0000 Subject: [PATCH 270/396] upsies: allow overriding 'runtimeDeps' --- pkgs/by-name/up/upsies/package.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/up/upsies/package.nix b/pkgs/by-name/up/upsies/package.nix index 7deb4ca9ccd8..e210cc4253db 100644 --- a/pkgs/by-name/up/upsies/package.nix +++ b/pkgs/by-name/up/upsies/package.nix @@ -71,7 +71,7 @@ python3Packages.buildPythonApplication (finalAttrs: { pytestCheckHook trustme ] - ++ runtimeDeps; + ++ finalAttrs.passthru.runtimeDeps; disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [ # Fail during object comparisons on Darwin @@ -110,11 +110,15 @@ python3Packages.buildPythonApplication (finalAttrs: { "--suffix" "PATH" ":" - (lib.makeBinPath runtimeDeps) + (lib.makeBinPath finalAttrs.passthru.runtimeDeps) ]; __darwinAllowLocalNetworking = true; + passthru = { + inherit runtimeDeps; + }; + meta = { description = "Toolkit for collecting, generating, normalizing and sharing video metadata"; homepage = "https://upsies.readthedocs.io/"; From 9973b987704387535d3486cc2a8f9f3c14283fd8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 12:17:24 +0000 Subject: [PATCH 271/396] ptcollab: 0.6.4.9 -> 0.6.4.10 --- pkgs/by-name/pt/ptcollab/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pt/ptcollab/package.nix b/pkgs/by-name/pt/ptcollab/package.nix index fbfc772bffea..6cec5df4641a 100644 --- a/pkgs/by-name/pt/ptcollab/package.nix +++ b/pkgs/by-name/pt/ptcollab/package.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "ptcollab"; - version = "0.6.4.9"; + version = "0.6.4.10"; src = fetchFromGitHub { owner = "yuxshao"; repo = "ptcollab"; rev = "v${finalAttrs.version}"; - hash = "sha256-1fVhimwBAYtC+HnuxA7ywfEnVlqHnlzwfKT9+H/ZG0k="; + hash = "sha256-8CllDcbbVXmDyD5jyKVoNq96wqWtfoPM2CEN13KYptQ="; }; nativeBuildInputs = [ From 58770603f854052bfd88f9ec4a2032db2be34b12 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 12:23:56 +0000 Subject: [PATCH 272/396] chirp: 0.4.0-unstable-2026-01-12 -> 0.4.0-unstable-2026-01-17 --- pkgs/by-name/ch/chirp/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ch/chirp/package.nix b/pkgs/by-name/ch/chirp/package.nix index e6b8d383a3e7..32fb80eab144 100644 --- a/pkgs/by-name/ch/chirp/package.nix +++ b/pkgs/by-name/ch/chirp/package.nix @@ -11,14 +11,14 @@ python3Packages.buildPythonApplication { pname = "chirp"; - version = "0.4.0-unstable-2026-01-12"; + version = "0.4.0-unstable-2026-01-17"; pyproject = true; src = fetchFromGitHub { owner = "kk7ds"; repo = "chirp"; - rev = "e6100c8a3d4769848db16b9557c585bf9ff5c58c"; - hash = "sha256-DpM8agWg0D4PJN7yR2frPCF7nnDt6ksv9PtQwqOJSos="; + rev = "a98aca98ea0aaf8aec1f13b088eaff6bd1ea5632"; + hash = "sha256-IjsdKKevGgn0ZyxjlxRPhdnApR8/O3tDdIjQS61aM/s="; }; nativeBuildInputs = [ From 38cab2baa28a756c296a40168c6438de7a8db4f4 Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Thu, 8 Jan 2026 16:49:59 +0100 Subject: [PATCH 273/396] lib/types: unify public attribute set and ast --- lib/types.nix | 3101 +++++++++++++++++++++++++------------------------ 1 file changed, 1551 insertions(+), 1550 deletions(-) diff --git a/lib/types.nix b/lib/types.nix index bc6e28ed9363..bd9ac93df472 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -18,6 +18,7 @@ let throwIf toDerivation toList + types ; inherit (lib.lists) concatLists @@ -87,7 +88,7 @@ let { inherit name payload; wrappedDeprecationMessage = makeWrappedDeprecationMessage payload; - type = outer_types.types.${name}; + type = types.${name}; binOp = a: b: let @@ -134,1568 +135,1568 @@ let baseType // { check = value: /* your check */; } ''; - outer_types = rec { - isType = type: x: (x._type or "") == type; +in +rec { + isType = type: x: (x._type or "") == type; - setType = - typeName: value: - value - // { - _type = typeName; - }; + setType = + typeName: value: + value + // { + _type = typeName; + }; - # Default type merging function - # takes two type functors and return the merged type - defaultTypeMerge = - f: f': - let - mergedWrapped = f.wrapped.typeMerge f'.wrapped.functor; - mergedPayload = f.binOp f.payload f'.payload; + # Default type merging function + # takes two type functors and return the merged type + defaultTypeMerge = + f: f': + let + mergedWrapped = f.wrapped.typeMerge f'.wrapped.functor; + mergedPayload = f.binOp f.payload f'.payload; - hasPayload = - assert (f'.payload != null) == (f.payload != null); - f.payload != null; - hasWrapped = - assert (f'.wrapped != null) == (f.wrapped != null); - f.wrapped != null; + hasPayload = + assert (f'.payload != null) == (f.payload != null); + f.payload != null; + hasWrapped = + assert (f'.wrapped != null) == (f.wrapped != null); + f.wrapped != null; - typeFromPayload = if mergedPayload == null then null else f.type mergedPayload; - typeFromWrapped = if mergedWrapped == null then null else f.type mergedWrapped; - in - # Abort early: cannot merge different types - if f.name != f'.name then - null - else + typeFromPayload = if mergedPayload == null then null else f.type mergedPayload; + typeFromWrapped = if mergedWrapped == null then null else f.type mergedWrapped; + in + # Abort early: cannot merge different types + if f.name != f'.name then + null + else - if hasPayload then - # Just return the payload if returning wrapped is deprecated - if f ? wrappedDeprecationMessage then - typeFromPayload - else if hasWrapped then - # Has both wrapped and payload - throw '' - Type ${f.name} defines both `functor.payload` and `functor.wrapped` at the same time, which is not supported. - - Use either `functor.payload` or `functor.wrapped` but not both. - - If your code worked before remove either `functor.wrapped` or `functor.payload` from the type definition. - '' - else - typeFromPayload + if hasPayload then + # Just return the payload if returning wrapped is deprecated + if f ? wrappedDeprecationMessage then + typeFromPayload else if hasWrapped then - typeFromWrapped + # Has both wrapped and payload + throw '' + Type ${f.name} defines both `functor.payload` and `functor.wrapped` at the same time, which is not supported. + + Use either `functor.payload` or `functor.wrapped` but not both. + + If your code worked before remove either `functor.wrapped` or `functor.payload` from the type definition. + '' else - f.type; - - # Default type functor - defaultFunctor = name: { - inherit name; - type = types.${name} or null; - wrapped = null; - payload = null; - binOp = a: b: null; - }; - - isOptionType = isType "option-type"; - mkOptionType = - { - # Human-readable representation of the type, should be equivalent to - # the type function name. - name, - # Description of the type, defined recursively by embedding the wrapped type if any. - description ? null, - # A hint for whether or not this description needs parentheses. Possible values: - # - "noun": a noun phrase - # Example description: "positive integer", - # - "conjunction": a phrase with a potentially ambiguous "or" connective - # Example description: "int or string" - # - "composite": a phrase with an "of" connective - # Example description: "list of string" - # - "nonRestrictiveClause": a noun followed by a comma and a clause - # Example description: "positive integer, meaning >0" - # See the `optionDescriptionPhrase` function. - descriptionClass ? null, - # DO NOT USE WITHOUT KNOWING WHAT YOU ARE DOING! - # Function applied to each definition that must return false when a definition - # does not match the type. It should not check more than the root of the value, - # because checking nested values reduces laziness, leading to unnecessary - # infinite recursions in the module system. - # Further checks of nested values should be performed by throwing in - # the merge function. - # Strict and deep type checking can be performed by calling lib.deepSeq on - # the merged value. - # - # See https://github.com/NixOS/nixpkgs/pull/6794 that introduced this change, - # https://github.com/NixOS/nixpkgs/pull/173568 and - # https://github.com/NixOS/nixpkgs/pull/168295 that attempted to revert this, - # https://github.com/NixOS/nixpkgs/issues/191124 and - # https://github.com/NixOS/nixos-search/issues/391 for what happens if you ignore - # this disclaimer. - check ? (x: true), - # Merge a list of definitions together into a single value. - # This function is called with two arguments: the location of - # the option in the configuration as a list of strings - # (e.g. ["boot" "loader "grub" "enable"]), and a list of - # definition values and locations (e.g. [ { file = "/foo.nix"; - # value = 1; } { file = "/bar.nix"; value = 2 } ]). - merge ? mergeDefaultOption, - # Whether this type has a value representing nothingness. If it does, - # this should be a value of the form { value = ; } - # If it doesn't, this should be {} - # This may be used when a value is required for `mkIf false`. This allows the extra laziness in e.g. `lazyAttrsOf`. - emptyValue ? { }, - # Return a flat attrset of sub-options. Used to generate - # documentation. - getSubOptions ? prefix: { }, - # List of modules if any, or null if none. - getSubModules ? null, - # Function for building the same option type with a different list of - # modules. - substSubModules ? m: null, - # Function that merge type declarations. - # internal, takes a functor as argument and returns the merged type. - # returning null means the type is not mergeable - typeMerge ? defaultTypeMerge functor, - # The type functor. - # internal, representation of the type as an attribute set. - # name: name of the type - # type: type function. - # wrapped: the type wrapped in case of compound types. - # payload: values of the type, two payloads of the same type must be - # combinable with the binOp binary operation. - # binOp: binary operation that merge two payloads of the same type. - functor ? defaultFunctor name, - # The deprecation message to display when this type is used by an option - # If null, the type isn't deprecated - deprecationMessage ? null, - # The types that occur in the definition of this type. This is used to - # issue deprecation warnings recursively. Can also be used to reuse - # nested types - nestedTypes ? { }, - }: - { - _type = "option-type"; - inherit - name - check - merge - emptyValue - getSubOptions - getSubModules - substSubModules - typeMerge - deprecationMessage - nestedTypes - descriptionClass - ; - functor = - if functor ? wrappedDeprecationMessage then - functor - // { - wrapped = functor.wrappedDeprecationMessage { - loc = null; - }; - } - else - functor; - description = if description == null then name else description; - }; - - # optionDescriptionPhrase :: (str -> bool) -> optionType -> str - # - # Helper function for producing unambiguous but readable natural language - # descriptions of types. - # - # Parameters - # - # optionDescriptionPhase unparenthesize optionType - # - # `unparenthesize`: A function from descriptionClass string to boolean. - # It must return true when the class of phrase will fit unambiguously into - # the description of the caller. - # - # `optionType`: The option type to parenthesize or not. - # The option whose description we're returning. - # - # Returns value - # - # The description of the `optionType`, with parentheses if there may be an - # ambiguity. - optionDescriptionPhrase = - unparenthesize: t: - if unparenthesize (t.descriptionClass or null) then t.description else "(${t.description})"; - - noCheckForDocsModule = { - # When generating documentation, our goal isn't to check anything. - # Quite the opposite in fact. Generating docs is somewhat of a - # challenge, evaluating modules in a *lacking* context. Anything - # that makes the docs avoid an error is a win. - config._module.check = lib.mkForce false; - _file = ""; - }; - - # When adding new types don't forget to document them in - # nixos/doc/manual/development/option-types.section.md! - types = rec { - - raw = mkOptionType { - name = "raw"; - description = "raw value"; - descriptionClass = "noun"; - check = value: true; - merge = mergeOneOption; - }; - - anything = mkOptionType { - name = "anything"; - description = "anything"; - descriptionClass = "noun"; - check = value: true; - merge = - loc: defs: - let - getType = - value: if isAttrs value && isStringLike value then "stringCoercibleSet" else builtins.typeOf value; - - # Returns the common type of all definitions, throws an error if they - # don't have the same type - commonType = foldl' ( - type: def: - if getType def.value == type then - type - else - throw "The option `${showOption loc}' has conflicting option types in ${showFiles (getFiles defs)}" - ) (getType (head defs).value) defs; - - mergeFunction = - { - # Recursively merge attribute sets - set = (attrsOf anything).merge; - # This is the type of packages, only accept a single definition - stringCoercibleSet = mergeOneOption; - lambda = - loc: defs: arg: - anything.merge (loc ++ [ "" ]) ( - map (def: { - file = def.file; - value = def.value arg; - }) defs - ); - # Otherwise fall back to only allowing all equal definitions - } - .${commonType} or mergeEqualOption; - in - mergeFunction loc defs; - }; - - unspecified = mkOptionType { - name = "unspecified"; - description = "unspecified value"; - descriptionClass = "noun"; - }; - - bool = mkOptionType { - name = "bool"; - description = "boolean"; - descriptionClass = "noun"; - check = isBool; - merge = mergeEqualOption; - }; - - boolByOr = mkOptionType { - name = "boolByOr"; - description = "boolean (merged using or)"; - descriptionClass = "noun"; - check = isBool; - merge = - loc: defs: - foldl' ( - result: def: - # Under the assumption that .check always runs before merge, we can assume that all defs.*.value - # have been forced, and therefore we assume we don't introduce order-dependent strictness here - result || def.value - ) false defs; - }; - - int = mkOptionType { - name = "int"; - description = "signed integer"; - descriptionClass = "noun"; - check = isInt; - merge = mergeEqualOption; - }; - - # Specialized subdomains of int - ints = - let - betweenDesc = lowest: highest: "${toString lowest} and ${toString highest} (both inclusive)"; - between = - lowest: highest: - assert lib.assertMsg (lowest <= highest) "ints.between: lowest must be smaller than highest"; - addCheck int (x: x >= lowest && x <= highest) - // { - name = "intBetween"; - description = "integer between ${betweenDesc lowest highest}"; - }; - ign = - lowest: highest: name: docStart: - between lowest highest - // { - inherit name; - description = docStart + "; between ${betweenDesc lowest highest}"; - }; - unsign = - bit: range: ign 0 (range - 1) "unsignedInt${toString bit}" "${toString bit} bit unsigned integer"; - sign = - bit: range: - ign (0 - (range / 2)) ( - range / 2 - 1 - ) "signedInt${toString bit}" "${toString bit} bit signed integer"; - - in - { - # TODO: Deduplicate with docs in nixos/doc/manual/development/option-types.section.md - /** - An int with a fixed range. - - # Example - :::{.example} - ## `lib.types.ints.between` usage example - - ```nix - (ints.between 0 100).check (-1) - => false - (ints.between 0 100).check (101) - => false - (ints.between 0 0).check 0 - => true - ``` - - ::: - */ - inherit between; - - unsigned = addCheck types.int (x: x >= 0) // { - name = "unsignedInt"; - description = "unsigned integer, meaning >=0"; - descriptionClass = "nonRestrictiveClause"; - }; - positive = addCheck types.int (x: x > 0) // { - name = "positiveInt"; - description = "positive integer, meaning >0"; - descriptionClass = "nonRestrictiveClause"; - }; - u8 = unsign 8 256; - u16 = unsign 16 65536; - # the biggest int Nix accepts is 2^63 - 1 (9223372036854775808) - # the smallest int Nix accepts is -2^63 (-9223372036854775807) - u32 = unsign 32 4294967296; - # u64 = unsign 64 18446744073709551616; - - s8 = sign 8 256; - s16 = sign 16 65536; - s32 = sign 32 4294967296; - }; - - # Alias of u16 for a port number - port = ints.u16; - - float = mkOptionType { - name = "float"; - description = "floating point number"; - descriptionClass = "noun"; - check = isFloat; - merge = mergeEqualOption; - }; - - number = either int float; - - numbers = - let - betweenDesc = - lowest: highest: "${builtins.toJSON lowest} and ${builtins.toJSON highest} (both inclusive)"; - in - { - between = - lowest: highest: - assert lib.assertMsg (lowest <= highest) "numbers.between: lowest must be smaller than highest"; - addCheck number (x: x >= lowest && x <= highest) - // { - name = "numberBetween"; - description = "integer or floating point number between ${betweenDesc lowest highest}"; - }; - - nonnegative = addCheck number (x: x >= 0) // { - name = "numberNonnegative"; - description = "nonnegative integer or floating point number, meaning >=0"; - descriptionClass = "nonRestrictiveClause"; - }; - positive = addCheck number (x: x > 0) // { - name = "numberPositive"; - description = "positive integer or floating point number, meaning >0"; - descriptionClass = "nonRestrictiveClause"; - }; - }; - - str = mkOptionType { - name = "str"; - description = "string"; - descriptionClass = "noun"; - check = isString; - merge = mergeEqualOption; - }; - - nonEmptyStr = mkOptionType { - name = "nonEmptyStr"; - description = "non-empty string"; - descriptionClass = "noun"; - check = x: str.check x && builtins.match "[ \t\n]*" x == null; - inherit (str) merge; - }; - - # Allow a newline character at the end and trim it in the merge function. - singleLineStr = - let - inherit (strMatching "[^\n\r]*\n?") check merge; - in - mkOptionType { - name = "singleLineStr"; - description = "(optionally newline-terminated) single-line string"; - descriptionClass = "noun"; - inherit check; - merge = loc: defs: lib.removeSuffix "\n" (merge loc defs); - }; - - strMatching = - pattern: - mkOptionType { - name = "strMatching ${escapeNixString pattern}"; - description = "string matching the pattern ${pattern}"; - descriptionClass = "noun"; - check = x: str.check x && builtins.match pattern x != null; - inherit (str) merge; - functor = defaultFunctor "strMatching" // { - type = payload: strMatching payload.pattern; - payload = { inherit pattern; }; - binOp = lhs: rhs: if lhs == rhs then lhs else null; - }; - }; - - # Merge multiple definitions by concatenating them (with the given - # separator between the values). - separatedString = - sep: - mkOptionType rec { - name = "separatedString"; - description = "strings concatenated with ${builtins.toJSON sep}"; - descriptionClass = "noun"; - check = isString; - merge = loc: defs: concatStringsSep sep (getValues defs); - functor = (defaultFunctor name) // { - payload = { inherit sep; }; - type = payload: types.separatedString payload.sep; - binOp = lhs: rhs: if lhs.sep == rhs.sep then { inherit (lhs) sep; } else null; - }; - }; - - lines = separatedString "\n"; - commas = separatedString ","; - envVar = separatedString ":"; - - passwdEntry = - entryType: - addCheck entryType (str: !(hasInfix ":" str || hasInfix "\n" str)) - // { - name = "passwdEntry ${entryType.name}"; - description = "${ - optionDescriptionPhrase (class: class == "noun") entryType - }, not containing newlines or colons"; - descriptionClass = "nonRestrictiveClause"; - }; - - attrs = mkOptionType { - name = "attrs"; - description = "attribute set"; - check = isAttrs; - merge = loc: foldl' (res: def: res // def.value) { }; - emptyValue = { - value = { }; - }; - }; - - fileset = mkOptionType { - name = "fileset"; - description = "fileset"; - descriptionClass = "noun"; - check = isFileset; - merge = loc: defs: unions (map (x: x.value) defs); - emptyValue.value = empty; - }; - - # A package is a top-level store path (/nix/store/hash-name). This includes: - # - derivations - # - more generally, attribute sets with an `outPath` or `__toString` attribute - # pointing to a store path, e.g. flake inputs - # - strings with context, e.g. "${pkgs.foo}" or (toString pkgs.foo) - # - hardcoded store path literals (/nix/store/hash-foo) or strings without context - # ("/nix/store/hash-foo"). These get a context added to them using builtins.storePath. - # If you don't need a *top-level* store path, consider using pathInStore instead. - package = mkOptionType { - name = "package"; - descriptionClass = "noun"; - check = x: isDerivation x || isStorePath x; - merge = - loc: defs: - let - res = mergeOneOption loc defs; - in - if builtins.isPath res || (builtins.isString res && !builtins.hasContext res) then - toDerivation res - else - res; - }; - - shellPackage = package // { - check = x: isDerivation x && hasAttr "shellPath" x; - }; - - pkgs = addCheck ( - unique { message = "A Nixpkgs pkgs set can not be merged with another pkgs set."; } attrs - // { - name = "pkgs"; - descriptionClass = "noun"; - description = "Nixpkgs package set"; - } - ) (x: (x._type or null) == "pkgs"); - - path = pathWith { - absolute = true; - }; - - pathInStore = pathWith { - inStore = true; - }; - - externalPath = pathWith { - absolute = true; - inStore = false; - }; - - pathWith = - { - inStore ? null, - absolute ? null, - }: - throwIf (inStore != null && absolute != null && inStore && !absolute) - "In pathWith, inStore means the path must be absolute" - mkOptionType - { - name = "path"; - description = ( - (if absolute == null then "" else (if absolute then "absolute " else "relative ")) - + "path" - + ( - if inStore == null then "" else (if inStore then " in the Nix store" else " not in the Nix store") - ) - ); - descriptionClass = "noun"; - - merge = mergeEqualOption; - functor = defaultFunctor "path" // { - type = pathWith; - payload = { inherit inStore absolute; }; - binOp = lhs: rhs: if lhs == rhs then lhs else null; - }; - - check = - x: - let - isInStore = lib.path.hasStorePathPrefix ( - if builtins.isPath x then - x - # Discarding string context is necessary to convert the value to - # a path and safe as the result is never used in any derivation. - else - /. + builtins.unsafeDiscardStringContext x - ); - isAbsolute = builtins.substring 0 1 (toString x) == "/"; - isExpectedType = ( - if inStore == null || inStore then isStringLike x else isString x # Do not allow a true path, which could be copied to the store later on. - ); - in - isExpectedType - && (inStore == null || inStore == isInStore) - && (absolute == null || absolute == isAbsolute); - }; - - listOf = - elemType: - mkOptionType rec { - name = "listOf"; - description = "list of ${ - optionDescriptionPhrase (class: class == "noun" || class == "composite") elemType - }"; - descriptionClass = "composite"; - check = { - __functor = _self: isList; - isV2MergeCoherent = true; - }; - merge = { - __functor = - self: loc: defs: - (self.v2 { inherit loc defs; }).value; - v2 = - { loc, defs }: - let - evals = filter (x: x.optionalValue ? value) ( - concatLists ( - imap1 ( - n: def: - imap1 ( - m: def': - (mergeDefinitions (loc ++ [ "[definition ${toString n}-entry ${toString m}]" ]) elemType [ - { - inherit (def) file; - value = def'; - } - ]) - ) def.value - ) defs - ) - ); - in - { - headError = checkDefsForError check loc defs; - value = map (x: x.optionalValue.value or x.mergedValue) evals; - valueMeta.list = map (v: v.checkedAndMerged.valueMeta) evals; - }; - }; - emptyValue = { - value = [ ]; - }; - getSubOptions = prefix: elemType.getSubOptions (prefix ++ [ "*" ]); - getSubModules = elemType.getSubModules; - substSubModules = m: listOf (elemType.substSubModules m); - functor = (elemTypeFunctor name { inherit elemType; }) // { - type = payload: types.listOf payload.elemType; - }; - nestedTypes.elemType = elemType; - }; - - nonEmptyListOf = - elemType: - let - list = addCheck (types.listOf elemType) (l: l != [ ]); - in - list - // { - description = "non-empty ${optionDescriptionPhrase (class: class == "noun") list}"; - emptyValue = { }; # no .value attr, meaning unset - substSubModules = m: nonEmptyListOf (elemType.substSubModules m); - }; - - attrsOf = elemType: attrsWith { inherit elemType; }; - - # A version of attrsOf that's lazy in its values at the expense of - # conditional definitions not working properly. E.g. defining a value with - # `foo.attr = mkIf false 10`, then `foo ? attr == true`, whereas with - # attrsOf it would correctly be `false`. Accessing `foo.attr` would throw an - # error that it's not defined. Use only if conditional definitions don't make sense. - lazyAttrsOf = - elemType: - attrsWith { - inherit elemType; - lazy = true; - }; - - # base type for lazyAttrsOf and attrsOf - attrsWith = - let - # Push down position info. - pushPositions = map ( - def: - mapAttrs (n: v: { - inherit (def) file; - value = v; - }) def.value - ); - binOp = - lhs: rhs: - let - elemType = lhs.elemType.typeMerge rhs.elemType.functor; - lazy = if lhs.lazy == rhs.lazy then lhs.lazy else null; - placeholder = - if lhs.placeholder == rhs.placeholder then - lhs.placeholder - else if lhs.placeholder == "name" then - rhs.placeholder - else if rhs.placeholder == "name" then - lhs.placeholder - else - null; - in - if elemType == null || lazy == null || placeholder == null then - null - else - { - inherit elemType lazy placeholder; - }; - in - { - elemType, - lazy ? false, - placeholder ? "name", - }: - mkOptionType rec { - name = if lazy then "lazyAttrsOf" else "attrsOf"; - description = - (if lazy then "lazy attribute set" else "attribute set") - + " of ${optionDescriptionPhrase (class: class == "noun" || class == "composite") elemType}"; - descriptionClass = "composite"; - check = { - __functor = _self: isAttrs; - isV2MergeCoherent = true; - }; - merge = { - __functor = - self: loc: defs: - (self.v2 { inherit loc defs; }).value; - v2 = - { loc, defs }: - let - evals = - if lazy then - zipAttrsWith (name: defs: mergeDefinitions (loc ++ [ name ]) elemType defs) (pushPositions defs) - else - # Filtering makes the merge function more strict - # Meaning it is less lazy - filterAttrs (n: v: v.optionalValue ? value) ( - zipAttrsWith (name: defs: mergeDefinitions (loc ++ [ name ]) elemType defs) (pushPositions defs) - ); - in - { - headError = checkDefsForError check loc defs; - value = mapAttrs ( - n: v: - if lazy then - v.optionalValue.value or elemType.emptyValue.value or v.mergedValue - else - v.optionalValue.value - ) evals; - valueMeta.attrs = mapAttrs (n: v: v.checkedAndMerged.valueMeta) evals; - }; - }; - - emptyValue = { - value = { }; - }; - getSubOptions = prefix: elemType.getSubOptions (prefix ++ [ "<${placeholder}>" ]); - getSubModules = elemType.getSubModules; - substSubModules = - m: - attrsWith { - elemType = elemType.substSubModules m; - inherit lazy placeholder; - }; - functor = - (elemTypeFunctor "attrsWith" { - inherit elemType lazy placeholder; - }) - // { - # Custom type merging required because of the "placeholder" attribute - inherit binOp; - }; - nestedTypes.elemType = elemType; - }; - - # TODO: deprecate this in the future: - loaOf = - elemType: - types.attrsOf elemType - // { - name = "loaOf"; - deprecationMessage = - "Mixing lists with attribute values is no longer" - + " possible; please use `types.attrsOf` instead. See" - + " https://github.com/NixOS/nixpkgs/issues/1800 for the motivation."; - nestedTypes.elemType = elemType; - }; - - attrTag = - tags: - let - tags_ = tags; - in - let - tags = mapAttrs ( - n: opt: - builtins.addErrorContext - "while checking that attrTag tag ${lib.strings.escapeNixIdentifier n} is an option with a type${inAttrPosSuffix tags_ n}" - ( - throwIf (opt._type or null != "option") - "In attrTag, each tag value must be an option, but tag ${lib.strings.escapeNixIdentifier n} ${ - if opt ? _type then - if opt._type == "option-type" then - "was a bare type, not wrapped in mkOption." - else - "was of type ${lib.strings.escapeNixString opt._type}." - else - "was not." - }" - opt - // { - declarations = - opt.declarations or ( - let - pos = builtins.unsafeGetAttrPos n tags_; - in - if pos == null then [ ] else [ pos.file ] - ); - declarationPositions = - opt.declarationPositions or ( - let - pos = builtins.unsafeGetAttrPos n tags_; - in - if pos == null then [ ] else [ pos ] - ); - } - ) - ) tags_; - choicesStr = concatMapStringsSep ", " lib.strings.escapeNixIdentifier (attrNames tags); - in - mkOptionType { - name = "attrTag"; - description = "attribute-tagged union with choices: ${choicesStr}"; - descriptionClass = "noun"; - getSubOptions = - prefix: mapAttrs (tagName: tagOption: tagOption // { loc = prefix ++ [ tagName ]; }) tags; - check = v: isAttrs v && length (attrNames v) == 1 && tags ? ${head (attrNames v)}; - merge = - loc: defs: - let - choice = head (attrNames (head defs).value); - checkedValueDefs = map ( - def: - assert (length (attrNames def.value)) == 1; - if (head (attrNames def.value)) != choice then - throw "The option `${showOption loc}` is defined both as `${choice}` and `${head (attrNames def.value)}`, in ${showFiles (getFiles defs)}." - else - { - inherit (def) file; - value = def.value.${choice}; - } - ) defs; - in - if tags ? ${choice} then - { - ${choice} = (lib.modules.evalOptionValue (loc ++ [ choice ]) tags.${choice} checkedValueDefs).value; - } - else - throw "The option `${showOption loc}` is defined as ${lib.strings.escapeNixIdentifier choice}, but ${lib.strings.escapeNixIdentifier choice} is not among the valid choices (${choicesStr}). Value ${choice} was defined in ${showFiles (getFiles defs)}."; - nestedTypes = tags; - functor = defaultFunctor "attrTag" // { - type = { tags, ... }: types.attrTag tags; - payload = { inherit tags; }; - binOp = - let - # Add metadata in the format that submodules work with - wrapOptionDecl = option: { - options = option; - _file = ""; - pos = null; - }; - in - a: b: { - tags = - a.tags - // b.tags - // mapAttrs ( - tagName: bOpt: - lib.mergeOptionDecls - # FIXME: loc is not accurate; should include prefix - # Fortunately, it's only used for error messages, where a "relative" location is kinda ok. - # It is also returned though, but use of the attribute seems rare? - [ tagName ] - [ - (wrapOptionDecl a.tags.${tagName}) - (wrapOptionDecl bOpt) - ] - // { - # mergeOptionDecls is not idempotent in these attrs: - declarations = a.tags.${tagName}.declarations ++ bOpt.declarations; - declarationPositions = a.tags.${tagName}.declarationPositions ++ bOpt.declarationPositions; - } - ) (builtins.intersectAttrs a.tags b.tags); - }; - }; - }; - - # A value produced by `lib.mkLuaInline` - luaInline = mkOptionType { - name = "luaInline"; - description = "inline lua"; - descriptionClass = "noun"; - check = x: x._type or null == "lua-inline"; - merge = mergeEqualOption; - }; - - uniq = unique { message = ""; }; - - unique = - { message }: - type: - mkOptionType rec { - name = "unique"; - inherit (type) description descriptionClass check; - merge = mergeUniqueOption { - inherit message; - inherit (type) merge; - }; - emptyValue = type.emptyValue; - getSubOptions = type.getSubOptions; - getSubModules = type.getSubModules; - substSubModules = m: uniq (type.substSubModules m); - functor = elemTypeFunctor name { elemType = type; } // { - type = payload: types.unique { inherit message; } payload.elemType; - }; - nestedTypes.elemType = type; - }; - - # Null or value of ... - nullOr = - elemType: - mkOptionType rec { - name = "nullOr"; - description = "null or ${ - optionDescriptionPhrase (class: class == "noun" || class == "conjunction") elemType - }"; - descriptionClass = "conjunction"; - check = x: x == null || elemType.check x; - merge = - loc: defs: - let - nrNulls = count (def: def.value == null) defs; - in - if nrNulls == length defs then - null - else if nrNulls != 0 then - throw "The option `${showOption loc}` is defined both null and not null, in ${showFiles (getFiles defs)}." - else - elemType.merge loc defs; - emptyValue = { - value = null; - }; - getSubOptions = elemType.getSubOptions; - getSubModules = elemType.getSubModules; - substSubModules = m: nullOr (elemType.substSubModules m); - functor = (elemTypeFunctor name { inherit elemType; }) // { - type = payload: types.nullOr payload.elemType; - }; - nestedTypes.elemType = elemType; - }; - - functionTo = - elemType: - mkOptionType { - name = "functionTo"; - description = "function that evaluates to a(n) ${ - optionDescriptionPhrase (class: class == "noun" || class == "composite") elemType - }"; - descriptionClass = "composite"; - check = isFunction; - merge = loc: defs: { - # An argument attribute has a default when it has a default in all definitions - __functionArgs = lib.zipAttrsWith (_: lib.all (x: x)) ( - lib.map (fn: lib.functionArgs fn.value) defs - ); - __functor = - _: callerArgs: - (mergeDefinitions (loc ++ [ "" ]) elemType ( - map (fn: { - inherit (fn) file; - value = fn.value callerArgs; - }) defs - )).mergedValue; - }; - getSubOptions = prefix: elemType.getSubOptions (prefix ++ [ "" ]); - getSubModules = elemType.getSubModules; - substSubModules = m: functionTo (elemType.substSubModules m); - functor = (elemTypeFunctor "functionTo" { inherit elemType; }) // { - type = payload: types.functionTo payload.elemType; - }; - nestedTypes.elemType = elemType; - }; - - # A submodule (like typed attribute set). See NixOS manual. - submodule = - modules: - submoduleWith { - shorthandOnlyDefinesConfig = true; - modules = toList modules; - }; - - # A module to be imported in some other part of the configuration. - deferredModule = deferredModuleWith { }; - - # A module to be imported in some other part of the configuration. - # `staticModules`' options will be added to the documentation, unlike - # options declared via `config`. - deferredModuleWith = - attrs@{ - staticModules ? [ ], - }: - mkOptionType { - name = "deferredModule"; - description = "module"; - descriptionClass = "noun"; - check = x: isAttrs x || isFunction x || path.check x; - merge = loc: defs: { - imports = - staticModules - ++ map ( - def: lib.setDefaultModuleLocation "${def.file}, via option ${showOption loc}" def.value - ) defs; - }; - inherit (submoduleWith { modules = staticModules; }) - getSubOptions - getSubModules - ; - substSubModules = - m: - deferredModuleWith ( - attrs - // { - staticModules = m; - } - ); - functor = defaultFunctor "deferredModuleWith" // { - type = types.deferredModuleWith; - payload = { - inherit staticModules; - }; - binOp = lhs: rhs: { - staticModules = lhs.staticModules ++ rhs.staticModules; - }; - }; - }; - - # The type of a type! - optionType = mkOptionType { - name = "optionType"; - description = "optionType"; - descriptionClass = "noun"; - check = value: value._type or null == "option-type"; - merge = - loc: defs: - if length defs == 1 then - (head defs).value - else - let - # Prepares the type definitions for mergeOptionDecls, which - # annotates submodules types with file locations - optionModules = map ( - { value, file }: - { - _file = file; - # There's no way to merge types directly from the module system, - # but we can cheat a bit by just declaring an option with the type - options = lib.mkOption { - type = value; - }; - } - ) defs; - # Merges all the types into a single one, including submodule merging. - # This also propagates file information to all submodules - mergedOption = fixupOptionType loc (mergeOptionDecls loc optionModules); - in - mergedOption.type; - }; - - submoduleWith = - { - modules, - specialArgs ? { }, - shorthandOnlyDefinesConfig ? false, - description ? null, - class ? null, - }@attrs: - let - inherit (lib.modules) evalModules; - - allModules = - defs: - map ( - { value, file }: - if isAttrs value && shorthandOnlyDefinesConfig then - { - _file = file; - config = value; - } - else - { - _file = file; - imports = [ value ]; - } - ) defs; - - base = evalModules { - inherit class specialArgs; - modules = [ - { - # This is a work-around for the fact that some sub-modules, - # such as the one included in an attribute set, expects an "args" - # attribute to be given to the sub-module. As the option - # evaluation does not have any specific attribute name yet, we - # provide a default for the documentation and the freeform type. - # - # This is necessary as some option declaration might use the - # "name" attribute given as argument of the submodule and use it - # as the default of option declarations. - # - # We use lookalike unicode single angle quotation marks because - # of the docbook transformation the options receive. In all uses - # > and < wouldn't be encoded correctly so the encoded values - # would be used, and use of `<` and `>` would break the XML document. - # It shouldn't cause an issue since this is cosmetic for the manual. - _module.args.name = lib.mkOptionDefault "‹name›"; - } - ] - ++ modules; - }; - - freeformType = base._module.freeformType; - - name = "submodule"; - - check = { - __functor = _self: x: isAttrs x || isFunction x || path.check x; - isV2MergeCoherent = true; - }; - in - mkOptionType { - inherit name; - description = - if description != null then - description - else - let - docsEval = base.extendModules { modules = [ noCheckForDocsModule ]; }; - in - if docsEval._module.freeformType ? description then - "open ${name} of ${ - optionDescriptionPhrase ( - class: class == "noun" || class == "composite" - ) docsEval._module.freeformType - }" - else - name; - inherit check; - merge = { - __functor = - self: loc: defs: - (self.v2 { inherit loc defs; }).value; - v2 = - { loc, defs }: - let - configuration = base.extendModules { - modules = [ { _module.args.name = last loc; } ] ++ allModules defs; - prefix = loc; - }; - in - { - headError = checkDefsForError check loc defs; - value = configuration.config; - valueMeta = { inherit configuration; }; - }; - }; - emptyValue = { - value = { }; - }; - getSubOptions = - prefix: - let - docsEval = ( - base.extendModules { - inherit prefix; - modules = [ noCheckForDocsModule ]; - } - ); - # Intentionally shadow the freeformType from the possibly *checked* - # configuration. See `noCheckForDocsModule` comment. - inherit (docsEval._module) freeformType; - in - docsEval.options - // optionalAttrs (freeformType != null) { - # Expose the sub options of the freeform type. Note that the option - # discovery doesn't care about the attribute name used here, so this - # is just to avoid conflicts with potential options from the submodule - _freeformOptions = freeformType.getSubOptions prefix; - }; - getSubModules = modules; - substSubModules = - m: - submoduleWith ( - attrs - // { - modules = m; - } - ); - nestedTypes = lib.optionalAttrs (freeformType != null) { - freeformType = freeformType; - }; - functor = defaultFunctor name // { - type = types.submoduleWith; - payload = { - inherit - modules - class - specialArgs - shorthandOnlyDefinesConfig - description - ; - }; - binOp = lhs: rhs: { - class = - # `or null` was added for backwards compatibility only. `class` is - # always set in the current version of the module system. - if lhs.class or null == null then - rhs.class or null - else if rhs.class or null == null then - lhs.class or null - else if lhs.class or null == rhs.class then - lhs.class or null - else - throw "A submoduleWith option is declared multiple times with conflicting class values \"${toString lhs.class}\" and \"${toString rhs.class}\"."; - modules = lhs.modules ++ rhs.modules; - specialArgs = - let - intersecting = builtins.intersectAttrs lhs.specialArgs rhs.specialArgs; - in - if intersecting == { } then - lhs.specialArgs // rhs.specialArgs - else - throw "A submoduleWith option is declared multiple times with the same specialArgs \"${toString (attrNames intersecting)}\""; - shorthandOnlyDefinesConfig = - if lhs.shorthandOnlyDefinesConfig == null then - rhs.shorthandOnlyDefinesConfig - else if rhs.shorthandOnlyDefinesConfig == null then - lhs.shorthandOnlyDefinesConfig - else if lhs.shorthandOnlyDefinesConfig == rhs.shorthandOnlyDefinesConfig then - lhs.shorthandOnlyDefinesConfig - else - throw "A submoduleWith option is declared multiple times with conflicting shorthandOnlyDefinesConfig values"; - description = - if lhs.description == null then - rhs.description - else if rhs.description == null then - lhs.description - else if lhs.description == rhs.description then - lhs.description - else - throw "A submoduleWith option is declared multiple times with conflicting descriptions"; - }; - }; - }; - - # A value from a set of allowed ones. - enum = - values: - let - inherit (lib.lists) unique; - show = - v: - if builtins.isString v then - ''"${v}"'' - else if builtins.isInt v then - toString v - else if builtins.isBool v then - boolToString v - else - ''<${builtins.typeOf v}>''; - in - mkOptionType rec { - name = "enum"; - description = - # Length 0 or 1 enums may occur in a design pattern with type merging - # where an "interface" module declares an empty enum and other modules - # provide implementations, each extending the enum with their own - # identifier. - if values == [ ] then - "impossible (empty enum)" - else if builtins.length values == 1 then - "value ${show (builtins.head values)} (singular enum)" - else - "one of ${concatMapStringsSep ", " show values}"; - descriptionClass = if builtins.length values < 2 then "noun" else "conjunction"; - check = flip elem values; - merge = mergeEqualOption; - functor = (defaultFunctor name) // { - payload = { inherit values; }; - type = payload: types.enum payload.values; - binOp = a: b: { values = unique (a.values ++ b.values); }; - }; - }; - - # Either value of type `t1` or `t2`. - either = - t1: t2: - mkOptionType rec { - name = "either"; - description = - if t1.descriptionClass or null == "nonRestrictiveClause" then - # Plain, but add comma - "${t1.description}, or ${ - optionDescriptionPhrase (class: class == "noun" || class == "conjunction") t2 - }" - else - "${optionDescriptionPhrase (class: class == "noun" || class == "conjunction") t1} or ${ - optionDescriptionPhrase ( - class: class == "noun" || class == "conjunction" || class == "composite" - ) t2 - }"; - descriptionClass = "conjunction"; - check = { - __functor = _self: x: t1.check x || t2.check x; - isV2MergeCoherent = true; - }; - merge = { - __functor = - self: loc: defs: - (self.v2 { inherit loc defs; }).value; - v2 = - { loc, defs }: - let - t1CheckedAndMerged = - if t1.merge ? v2 then - checkV2MergeCoherence loc t1 (t1.merge.v2 { inherit loc defs; }) - else - { - value = t1.merge loc defs; - headError = checkDefsForError t1.check loc defs; - valueMeta = { }; - }; - t2CheckedAndMerged = - if t2.merge ? v2 then - checkV2MergeCoherence loc t2 (t2.merge.v2 { inherit loc defs; }) - else - { - value = t2.merge loc defs; - headError = checkDefsForError t2.check loc defs; - valueMeta = { }; - }; - - checkedAndMerged = - if t1CheckedAndMerged.headError == null then - t1CheckedAndMerged - else if t2CheckedAndMerged.headError == null then - t2CheckedAndMerged - else - rec { - valueMeta = { - inherit headError; - }; - headError = { - message = "The option `${showOption loc}` is neither a value of type `${t1.description}` nor `${t2.description}`, Definition values: ${showDefs defs}"; - }; - value = lib.warn '' - One or more definitions did not pass the type-check of the 'either' type. - ${headError.message} - If `either`, `oneOf` or similar is used in freeformType, ensure that it is preceded by an 'attrsOf' such as: `freeformType = types.attrsOf (types.either t1 t2)`. - Otherwise consider using the correct type for the option `${showOption loc}`. This will be an error in Nixpkgs 26.05. - '' (mergeOneOption loc defs); - }; - in - checkedAndMerged; - }; - typeMerge = - f': - let - mt1 = t1.typeMerge (elemAt f'.payload.elemType 0).functor; - mt2 = t2.typeMerge (elemAt f'.payload.elemType 1).functor; - in - if (name == f'.name) && (mt1 != null) && (mt2 != null) then functor.type mt1 mt2 else null; - functor = elemTypeFunctor name { - elemType = [ - t1 - t2 - ]; - }; - nestedTypes.left = t1; - nestedTypes.right = t2; - }; - - # Any of the types in the given list - oneOf = - ts: - let - head' = - if ts == [ ] then throw "types.oneOf needs to get at least one type in its argument" else head ts; - tail' = tail ts; - in - foldl' either head' tail'; - - # Either value of type `coercedType` or `finalType`, the former is - # converted to `finalType` using `coerceFunc`. - coercedTo = - coercedType: coerceFunc: finalType: - assert lib.assertMsg ( - coercedType.getSubModules == null - ) "coercedTo: coercedType must not have submodules (it’s a ${coercedType.description})"; - mkOptionType rec { - name = "coercedTo"; - description = "${optionDescriptionPhrase (class: class == "noun") finalType} or ${ - optionDescriptionPhrase (class: class == "noun") coercedType - } convertible to it"; - check = { - __functor = _self: x: (coercedType.check x && finalType.check (coerceFunc x)) || finalType.check x; - isV2MergeCoherent = true; - }; - merge = { - __functor = - self: loc: defs: - (self.v2 { inherit loc defs; }).value; - v2 = - { loc, defs }: - let - finalDefs = ( - map ( - def: - def - // { - value = - let - merged = - if coercedType.merge ? v2 then - checkV2MergeCoherence loc coercedType ( - coercedType.merge.v2 { - inherit loc; - defs = [ def ]; - } - ) - else - null; - in - if coercedType.merge ? v2 then - if merged.headError == null then coerceFunc def.value else def.value - else if coercedType.check def.value then - coerceFunc def.value - else - def.value; - } - ) defs - ); - in - if finalType.merge ? v2 then - checkV2MergeCoherence loc finalType ( - finalType.merge.v2 { - inherit loc; - defs = finalDefs; - } - ) - else - { - value = finalType.merge loc finalDefs; - valueMeta = { }; - headError = checkDefsForError check loc defs; - }; - }; - emptyValue = finalType.emptyValue; - getSubOptions = finalType.getSubOptions; - getSubModules = finalType.getSubModules; - substSubModules = m: coercedTo coercedType coerceFunc (finalType.substSubModules m); - typeMerge = t: null; - functor = (defaultFunctor name) // { - wrappedDeprecationMessage = makeWrappedDeprecationMessage { elemType = finalType; }; - }; - nestedTypes.coercedType = coercedType; - nestedTypes.finalType = finalType; - }; - - /** - Augment the given type with an additional type check function. - - :::{.warning} - This function has some broken behavior see: [#396021](https://github.com/NixOS/nixpkgs/issues/396021) - Fixing is not trivial, we appreciate any help! - ::: - */ - addCheck = - elemType: check: - if elemType.merge ? v2 then - elemType + typeFromPayload + else if hasWrapped then + typeFromWrapped + else + f.type; + + # Default type functor + defaultFunctor = name: { + inherit name; + type = lib.types.${name} or null; + wrapped = null; + payload = null; + binOp = a: b: null; + }; + + isOptionType = isType "option-type"; + mkOptionType = + { + # Human-readable representation of the type, should be equivalent to + # the type function name. + name, + # Description of the type, defined recursively by embedding the wrapped type if any. + description ? null, + # A hint for whether or not this description needs parentheses. Possible values: + # - "noun": a noun phrase + # Example description: "positive integer", + # - "conjunction": a phrase with a potentially ambiguous "or" connective + # Example description: "int or string" + # - "composite": a phrase with an "of" connective + # Example description: "list of string" + # - "nonRestrictiveClause": a noun followed by a comma and a clause + # Example description: "positive integer, meaning >0" + # See the `optionDescriptionPhrase` function. + descriptionClass ? null, + # DO NOT USE WITHOUT KNOWING WHAT YOU ARE DOING! + # Function applied to each definition that must return false when a definition + # does not match the type. It should not check more than the root of the value, + # because checking nested values reduces laziness, leading to unnecessary + # infinite recursions in the module system. + # Further checks of nested values should be performed by throwing in + # the merge function. + # Strict and deep type checking can be performed by calling lib.deepSeq on + # the merged value. + # + # See https://github.com/NixOS/nixpkgs/pull/6794 that introduced this change, + # https://github.com/NixOS/nixpkgs/pull/173568 and + # https://github.com/NixOS/nixpkgs/pull/168295 that attempted to revert this, + # https://github.com/NixOS/nixpkgs/issues/191124 and + # https://github.com/NixOS/nixos-search/issues/391 for what happens if you ignore + # this disclaimer. + check ? (x: true), + # Merge a list of definitions together into a single value. + # This function is called with two arguments: the location of + # the option in the configuration as a list of strings + # (e.g. ["boot" "loader "grub" "enable"]), and a list of + # definition values and locations (e.g. [ { file = "/foo.nix"; + # value = 1; } { file = "/bar.nix"; value = 2 } ]). + merge ? mergeDefaultOption, + # Whether this type has a value representing nothingness. If it does, + # this should be a value of the form { value = ; } + # If it doesn't, this should be {} + # This may be used when a value is required for `mkIf false`. This allows the extra laziness in e.g. `lazyAttrsOf`. + emptyValue ? { }, + # Return a flat attrset of sub-options. Used to generate + # documentation. + getSubOptions ? prefix: { }, + # List of modules if any, or null if none. + getSubModules ? null, + # Function for building the same option type with a different list of + # modules. + substSubModules ? m: null, + # Function that merge type declarations. + # internal, takes a functor as argument and returns the merged type. + # returning null means the type is not mergeable + typeMerge ? defaultTypeMerge functor, + # The type functor. + # internal, representation of the type as an attribute set. + # name: name of the type + # type: type function. + # wrapped: the type wrapped in case of compound types. + # payload: values of the type, two payloads of the same type must be + # combinable with the binOp binary operation. + # binOp: binary operation that merge two payloads of the same type. + functor ? defaultFunctor name, + # The deprecation message to display when this type is used by an option + # If null, the type isn't deprecated + deprecationMessage ? null, + # The types that occur in the definition of this type. This is used to + # issue deprecation warnings recursively. Can also be used to reuse + # nested types + nestedTypes ? { }, + }: + { + _type = "option-type"; + inherit + name + check + merge + emptyValue + getSubOptions + getSubModules + substSubModules + typeMerge + deprecationMessage + nestedTypes + descriptionClass + ; + functor = + if functor ? wrappedDeprecationMessage then + functor // { - check = { - __functor = _self: x: elemType.check x && check x; - isV2MergeCoherent = true; - }; - merge = { - __functor = - self: loc: defs: - (self.v2 { inherit loc defs; }).value; - v2 = - { loc, defs }: - let - orig = checkV2MergeCoherence loc elemType (elemType.merge.v2 { inherit loc defs; }); - headError' = if orig.headError != null then orig.headError else checkDefsForError check loc defs; - in - orig - // { - headError = headError'; - }; + wrapped = functor.wrappedDeprecationMessage { + loc = null; }; } else - elemType - // { - check = x: elemType.check x && check x; - }; + functor; + description = if description == null then name else description; }; - /** - Merges two option types together. + # optionDescriptionPhrase :: (str -> bool) -> optionType -> str + # + # Helper function for producing unambiguous but readable natural language + # descriptions of types. + # + # Parameters + # + # optionDescriptionPhase unparenthesize optionType + # + # `unparenthesize`: A function from descriptionClass string to boolean. + # It must return true when the class of phrase will fit unambiguously into + # the description of the caller. + # + # `optionType`: The option type to parenthesize or not. + # The option whose description we're returning. + # + # Returns value + # + # The description of the `optionType`, with parentheses if there may be an + # ambiguity. + optionDescriptionPhrase = + unparenthesize: t: + if unparenthesize (t.descriptionClass or null) then t.description else "(${t.description})"; - :::{.note} - Uses the type merge function of the first type, to merge it with the second type. - - Usually types can only be merged if they are of the same type - ::: - - # Inputs - - : `a` (option type): The first option type. - : `b` (option type): The second option type. - - # Returns - - - The merged option type. - - `{ _type = "merge-error"; error = "Cannot merge types"; }` if the types can't be merged. - - # Examples - :::{.example} - ## `lib.types.mergeTypes` usage example - ```nix - let - enumAB = lib.types.enum ["A" "B"]; - enumXY = lib.types.enum ["X" "Y"]; - # This operation could be notated as: [ A ] | [ B ] -> [ A B ] - merged = lib.types.mergeTypes enumAB enumXY; # -> enum [ "A" "B" "X" "Y" ] - in - assert merged.check "A"; # true - assert merged.check "B"; # true - assert merged.check "X"; # true - assert merged.check "Y"; # true - merged.check "C" # false - ``` - ::: - */ - mergeTypes = - a: b: - assert isOptionType a && isOptionType b; - let - merged = a.typeMerge b.functor; - in - if merged == null then setType "merge-error" { error = "Cannot merge types"; } else merged; + noCheckForDocsModule = { + # When generating documentation, our goal isn't to check anything. + # Quite the opposite in fact. Generating docs is somewhat of a + # challenge, evaluating modules in a *lacking* context. Anything + # that makes the docs avoid an error is a win. + config._module.check = lib.mkForce false; + _file = ""; }; -in -outer_types // outer_types.types + # When adding new types don't forget to document them in + # nixos/doc/manual/development/option-types.section.md! + + raw = mkOptionType { + name = "raw"; + description = "raw value"; + descriptionClass = "noun"; + check = value: true; + merge = mergeOneOption; + }; + + anything = mkOptionType { + name = "anything"; + description = "anything"; + descriptionClass = "noun"; + check = value: true; + merge = + loc: defs: + let + getType = + value: if isAttrs value && isStringLike value then "stringCoercibleSet" else builtins.typeOf value; + + # Returns the common type of all definitions, throws an error if they + # don't have the same type + commonType = foldl' ( + type: def: + if getType def.value == type then + type + else + throw "The option `${showOption loc}' has conflicting option types in ${showFiles (getFiles defs)}" + ) (getType (head defs).value) defs; + + mergeFunction = + { + # Recursively merge attribute sets + set = (attrsOf anything).merge; + # This is the type of packages, only accept a single definition + stringCoercibleSet = mergeOneOption; + lambda = + loc: defs: arg: + anything.merge (loc ++ [ "" ]) ( + map (def: { + file = def.file; + value = def.value arg; + }) defs + ); + # Otherwise fall back to only allowing all equal definitions + } + .${commonType} or mergeEqualOption; + in + mergeFunction loc defs; + }; + + unspecified = mkOptionType { + name = "unspecified"; + description = "unspecified value"; + descriptionClass = "noun"; + }; + + bool = mkOptionType { + name = "bool"; + description = "boolean"; + descriptionClass = "noun"; + check = isBool; + merge = mergeEqualOption; + }; + + boolByOr = mkOptionType { + name = "boolByOr"; + description = "boolean (merged using or)"; + descriptionClass = "noun"; + check = isBool; + merge = + loc: defs: + foldl' ( + result: def: + # Under the assumption that .check always runs before merge, we can assume that all defs.*.value + # have been forced, and therefore we assume we don't introduce order-dependent strictness here + result || def.value + ) false defs; + }; + + int = mkOptionType { + name = "int"; + description = "signed integer"; + descriptionClass = "noun"; + check = isInt; + merge = mergeEqualOption; + }; + + # Specialized subdomains of int + ints = + let + betweenDesc = lowest: highest: "${toString lowest} and ${toString highest} (both inclusive)"; + between = + lowest: highest: + assert lib.assertMsg (lowest <= highest) "ints.between: lowest must be smaller than highest"; + addCheck int (x: x >= lowest && x <= highest) + // { + name = "intBetween"; + description = "integer between ${betweenDesc lowest highest}"; + }; + ign = + lowest: highest: name: docStart: + between lowest highest + // { + inherit name; + description = docStart + "; between ${betweenDesc lowest highest}"; + }; + unsign = + bit: range: ign 0 (range - 1) "unsignedInt${toString bit}" "${toString bit} bit unsigned integer"; + sign = + bit: range: + ign (0 - (range / 2)) ( + range / 2 - 1 + ) "signedInt${toString bit}" "${toString bit} bit signed integer"; + + in + { + # TODO: Deduplicate with docs in nixos/doc/manual/development/option-types.section.md + /** + An int with a fixed range. + + # Example + :::{.example} + ## `lib.types.ints.between` usage example + + ```nix + (ints.between 0 100).check (-1) + => false + (ints.between 0 100).check (101) + => false + (ints.between 0 0).check 0 + => true + ``` + + ::: + */ + inherit between; + + unsigned = addCheck lib.types.int (x: x >= 0) // { + name = "unsignedInt"; + description = "unsigned integer, meaning >=0"; + descriptionClass = "nonRestrictiveClause"; + }; + positive = addCheck lib.types.int (x: x > 0) // { + name = "positiveInt"; + description = "positive integer, meaning >0"; + descriptionClass = "nonRestrictiveClause"; + }; + u8 = unsign 8 256; + u16 = unsign 16 65536; + # the biggest int Nix accepts is 2^63 - 1 (9223372036854775808) + # the smallest int Nix accepts is -2^63 (-9223372036854775807) + u32 = unsign 32 4294967296; + # u64 = unsign 64 18446744073709551616; + + s8 = sign 8 256; + s16 = sign 16 65536; + s32 = sign 32 4294967296; + }; + + # Alias of u16 for a port number + port = ints.u16; + + float = mkOptionType { + name = "float"; + description = "floating point number"; + descriptionClass = "noun"; + check = isFloat; + merge = mergeEqualOption; + }; + + number = either int float; + + numbers = + let + betweenDesc = + lowest: highest: "${builtins.toJSON lowest} and ${builtins.toJSON highest} (both inclusive)"; + in + { + between = + lowest: highest: + assert lib.assertMsg (lowest <= highest) "numbers.between: lowest must be smaller than highest"; + addCheck number (x: x >= lowest && x <= highest) + // { + name = "numberBetween"; + description = "integer or floating point number between ${betweenDesc lowest highest}"; + }; + + nonnegative = addCheck number (x: x >= 0) // { + name = "numberNonnegative"; + description = "nonnegative integer or floating point number, meaning >=0"; + descriptionClass = "nonRestrictiveClause"; + }; + positive = addCheck number (x: x > 0) // { + name = "numberPositive"; + description = "positive integer or floating point number, meaning >0"; + descriptionClass = "nonRestrictiveClause"; + }; + }; + + str = mkOptionType { + name = "str"; + description = "string"; + descriptionClass = "noun"; + check = isString; + merge = mergeEqualOption; + }; + + nonEmptyStr = mkOptionType { + name = "nonEmptyStr"; + description = "non-empty string"; + descriptionClass = "noun"; + check = x: str.check x && builtins.match "[ \t\n]*" x == null; + inherit (str) merge; + }; + + # Allow a newline character at the end and trim it in the merge function. + singleLineStr = + let + inherit (strMatching "[^\n\r]*\n?") check merge; + in + mkOptionType { + name = "singleLineStr"; + description = "(optionally newline-terminated) single-line string"; + descriptionClass = "noun"; + inherit check; + merge = loc: defs: lib.removeSuffix "\n" (merge loc defs); + }; + + strMatching = + pattern: + mkOptionType { + name = "strMatching ${escapeNixString pattern}"; + description = "string matching the pattern ${pattern}"; + descriptionClass = "noun"; + check = x: str.check x && builtins.match pattern x != null; + inherit (str) merge; + functor = defaultFunctor "strMatching" // { + type = payload: strMatching payload.pattern; + payload = { inherit pattern; }; + binOp = lhs: rhs: if lhs == rhs then lhs else null; + }; + }; + + # Merge multiple definitions by concatenating them (with the given + # separator between the values). + separatedString = + sep: + mkOptionType rec { + name = "separatedString"; + description = "strings concatenated with ${builtins.toJSON sep}"; + descriptionClass = "noun"; + check = isString; + merge = loc: defs: concatStringsSep sep (getValues defs); + functor = (defaultFunctor name) // { + payload = { inherit sep; }; + type = payload: lib.types.separatedString payload.sep; + binOp = lhs: rhs: if lhs.sep == rhs.sep then { inherit (lhs) sep; } else null; + }; + }; + + lines = separatedString "\n"; + commas = separatedString ","; + envVar = separatedString ":"; + + passwdEntry = + entryType: + addCheck entryType (str: !(hasInfix ":" str || hasInfix "\n" str)) + // { + name = "passwdEntry ${entryType.name}"; + description = "${ + optionDescriptionPhrase (class: class == "noun") entryType + }, not containing newlines or colons"; + descriptionClass = "nonRestrictiveClause"; + }; + + attrs = mkOptionType { + name = "attrs"; + description = "attribute set"; + check = isAttrs; + merge = loc: foldl' (res: def: res // def.value) { }; + emptyValue = { + value = { }; + }; + }; + + fileset = mkOptionType { + name = "fileset"; + description = "fileset"; + descriptionClass = "noun"; + check = isFileset; + merge = loc: defs: unions (map (x: x.value) defs); + emptyValue.value = empty; + }; + + # A package is a top-level store path (/nix/store/hash-name). This includes: + # - derivations + # - more generally, attribute sets with an `outPath` or `__toString` attribute + # pointing to a store path, e.g. flake inputs + # - strings with context, e.g. "${pkgs.foo}" or (toString pkgs.foo) + # - hardcoded store path literals (/nix/store/hash-foo) or strings without context + # ("/nix/store/hash-foo"). These get a context added to them using builtins.storePath. + # If you don't need a *top-level* store path, consider using pathInStore instead. + package = mkOptionType { + name = "package"; + descriptionClass = "noun"; + check = x: isDerivation x || isStorePath x; + merge = + loc: defs: + let + res = mergeOneOption loc defs; + in + if builtins.isPath res || (builtins.isString res && !builtins.hasContext res) then + toDerivation res + else + res; + }; + + shellPackage = package // { + check = x: isDerivation x && hasAttr "shellPath" x; + }; + + pkgs = addCheck ( + unique { message = "A Nixpkgs pkgs set can not be merged with another pkgs set."; } attrs + // { + name = "pkgs"; + descriptionClass = "noun"; + description = "Nixpkgs package set"; + } + ) (x: (x._type or null) == "pkgs"); + + path = pathWith { + absolute = true; + }; + + pathInStore = pathWith { + inStore = true; + }; + + externalPath = pathWith { + absolute = true; + inStore = false; + }; + + pathWith = + { + inStore ? null, + absolute ? null, + }: + throwIf (inStore != null && absolute != null && inStore && !absolute) + "In pathWith, inStore means the path must be absolute" + mkOptionType + { + name = "path"; + description = ( + (if absolute == null then "" else (if absolute then "absolute " else "relative ")) + + "path" + + ( + if inStore == null then "" else (if inStore then " in the Nix store" else " not in the Nix store") + ) + ); + descriptionClass = "noun"; + + merge = mergeEqualOption; + functor = defaultFunctor "path" // { + type = pathWith; + payload = { inherit inStore absolute; }; + binOp = lhs: rhs: if lhs == rhs then lhs else null; + }; + + check = + x: + let + isInStore = lib.path.hasStorePathPrefix ( + if builtins.isPath x then + x + # Discarding string context is necessary to convert the value to + # a path and safe as the result is never used in any derivation. + else + /. + builtins.unsafeDiscardStringContext x + ); + isAbsolute = builtins.substring 0 1 (toString x) == "/"; + isExpectedType = ( + if inStore == null || inStore then isStringLike x else isString x # Do not allow a true path, which could be copied to the store later on. + ); + in + isExpectedType + && (inStore == null || inStore == isInStore) + && (absolute == null || absolute == isAbsolute); + }; + + listOf = + elemType: + mkOptionType rec { + name = "listOf"; + description = "list of ${ + optionDescriptionPhrase (class: class == "noun" || class == "composite") elemType + }"; + descriptionClass = "composite"; + check = { + __functor = _self: isList; + isV2MergeCoherent = true; + }; + merge = { + __functor = + self: loc: defs: + (self.v2 { inherit loc defs; }).value; + v2 = + { loc, defs }: + let + evals = filter (x: x.optionalValue ? value) ( + concatLists ( + imap1 ( + n: def: + imap1 ( + m: def': + (mergeDefinitions (loc ++ [ "[definition ${toString n}-entry ${toString m}]" ]) elemType [ + { + inherit (def) file; + value = def'; + } + ]) + ) def.value + ) defs + ) + ); + in + { + headError = checkDefsForError check loc defs; + value = map (x: x.optionalValue.value or x.mergedValue) evals; + valueMeta.list = map (v: v.checkedAndMerged.valueMeta) evals; + }; + }; + emptyValue = { + value = [ ]; + }; + getSubOptions = prefix: elemType.getSubOptions (prefix ++ [ "*" ]); + getSubModules = elemType.getSubModules; + substSubModules = m: listOf (elemType.substSubModules m); + functor = (elemTypeFunctor name { inherit elemType; }) // { + type = payload: lib.types.listOf payload.elemType; + }; + nestedTypes.elemType = elemType; + }; + + nonEmptyListOf = + elemType: + let + list = addCheck (lib.types.listOf elemType) (l: l != [ ]); + in + list + // { + description = "non-empty ${optionDescriptionPhrase (class: class == "noun") list}"; + emptyValue = { }; # no .value attr, meaning unset + substSubModules = m: nonEmptyListOf (elemType.substSubModules m); + }; + + attrsOf = elemType: attrsWith { inherit elemType; }; + + # A version of attrsOf that's lazy in its values at the expense of + # conditional definitions not working properly. E.g. defining a value with + # `foo.attr = mkIf false 10`, then `foo ? attr == true`, whereas with + # attrsOf it would correctly be `false`. Accessing `foo.attr` would throw an + # error that it's not defined. Use only if conditional definitions don't make sense. + lazyAttrsOf = + elemType: + attrsWith { + inherit elemType; + lazy = true; + }; + + # base type for lazyAttrsOf and attrsOf + attrsWith = + let + # Push down position info. + pushPositions = map ( + def: + mapAttrs (n: v: { + inherit (def) file; + value = v; + }) def.value + ); + binOp = + lhs: rhs: + let + elemType = lhs.elemType.typeMerge rhs.elemType.functor; + lazy = if lhs.lazy == rhs.lazy then lhs.lazy else null; + placeholder = + if lhs.placeholder == rhs.placeholder then + lhs.placeholder + else if lhs.placeholder == "name" then + rhs.placeholder + else if rhs.placeholder == "name" then + lhs.placeholder + else + null; + in + if elemType == null || lazy == null || placeholder == null then + null + else + { + inherit elemType lazy placeholder; + }; + in + { + elemType, + lazy ? false, + placeholder ? "name", + }: + mkOptionType rec { + name = if lazy then "lazyAttrsOf" else "attrsOf"; + description = + (if lazy then "lazy attribute set" else "attribute set") + + " of ${optionDescriptionPhrase (class: class == "noun" || class == "composite") elemType}"; + descriptionClass = "composite"; + check = { + __functor = _self: isAttrs; + isV2MergeCoherent = true; + }; + merge = { + __functor = + self: loc: defs: + (self.v2 { inherit loc defs; }).value; + v2 = + { loc, defs }: + let + evals = + if lazy then + zipAttrsWith (name: defs: mergeDefinitions (loc ++ [ name ]) elemType defs) (pushPositions defs) + else + # Filtering makes the merge function more strict + # Meaning it is less lazy + filterAttrs (n: v: v.optionalValue ? value) ( + zipAttrsWith (name: defs: mergeDefinitions (loc ++ [ name ]) elemType defs) (pushPositions defs) + ); + in + { + headError = checkDefsForError check loc defs; + value = mapAttrs ( + n: v: + if lazy then + v.optionalValue.value or elemType.emptyValue.value or v.mergedValue + else + v.optionalValue.value + ) evals; + valueMeta.attrs = mapAttrs (n: v: v.checkedAndMerged.valueMeta) evals; + }; + }; + + emptyValue = { + value = { }; + }; + getSubOptions = prefix: elemType.getSubOptions (prefix ++ [ "<${placeholder}>" ]); + getSubModules = elemType.getSubModules; + substSubModules = + m: + attrsWith { + elemType = elemType.substSubModules m; + inherit lazy placeholder; + }; + functor = + (elemTypeFunctor "attrsWith" { + inherit elemType lazy placeholder; + }) + // { + # Custom type merging required because of the "placeholder" attribute + inherit binOp; + }; + nestedTypes.elemType = elemType; + }; + + # TODO: deprecate this in the future: + loaOf = + elemType: + lib.types.attrsOf elemType + // { + name = "loaOf"; + deprecationMessage = + "Mixing lists with attribute values is no longer" + + " possible; please use `types.attrsOf` instead. See" + + " https://github.com/NixOS/nixpkgs/issues/1800 for the motivation."; + nestedTypes.elemType = elemType; + }; + + attrTag = + tags: + let + tags_ = tags; + in + let + tags = mapAttrs ( + n: opt: + builtins.addErrorContext + "while checking that attrTag tag ${lib.strings.escapeNixIdentifier n} is an option with a type${inAttrPosSuffix tags_ n}" + ( + throwIf (opt._type or null != "option") + "In attrTag, each tag value must be an option, but tag ${lib.strings.escapeNixIdentifier n} ${ + if opt ? _type then + if opt._type == "option-type" then + "was a bare type, not wrapped in mkOption." + else + "was of type ${lib.strings.escapeNixString opt._type}." + else + "was not." + }" + opt + // { + declarations = + opt.declarations or ( + let + pos = builtins.unsafeGetAttrPos n tags_; + in + if pos == null then [ ] else [ pos.file ] + ); + declarationPositions = + opt.declarationPositions or ( + let + pos = builtins.unsafeGetAttrPos n tags_; + in + if pos == null then [ ] else [ pos ] + ); + } + ) + ) tags_; + choicesStr = concatMapStringsSep ", " lib.strings.escapeNixIdentifier (attrNames tags); + in + mkOptionType { + name = "attrTag"; + description = "attribute-tagged union with choices: ${choicesStr}"; + descriptionClass = "noun"; + getSubOptions = + prefix: mapAttrs (tagName: tagOption: tagOption // { loc = prefix ++ [ tagName ]; }) tags; + check = v: isAttrs v && length (attrNames v) == 1 && tags ? ${head (attrNames v)}; + merge = + loc: defs: + let + choice = head (attrNames (head defs).value); + checkedValueDefs = map ( + def: + assert (length (attrNames def.value)) == 1; + if (head (attrNames def.value)) != choice then + throw "The option `${showOption loc}` is defined both as `${choice}` and `${head (attrNames def.value)}`, in ${showFiles (getFiles defs)}." + else + { + inherit (def) file; + value = def.value.${choice}; + } + ) defs; + in + if tags ? ${choice} then + { + ${choice} = (lib.modules.evalOptionValue (loc ++ [ choice ]) tags.${choice} checkedValueDefs).value; + } + else + throw "The option `${showOption loc}` is defined as ${lib.strings.escapeNixIdentifier choice}, but ${lib.strings.escapeNixIdentifier choice} is not among the valid choices (${choicesStr}). Value ${choice} was defined in ${showFiles (getFiles defs)}."; + nestedTypes = tags; + functor = defaultFunctor "attrTag" // { + type = { tags, ... }: lib.types.attrTag tags; + payload = { inherit tags; }; + binOp = + let + # Add metadata in the format that submodules work with + wrapOptionDecl = option: { + options = option; + _file = ""; + pos = null; + }; + in + a: b: { + tags = + a.tags + // b.tags + // mapAttrs ( + tagName: bOpt: + lib.mergeOptionDecls + # FIXME: loc is not accurate; should include prefix + # Fortunately, it's only used for error messages, where a "relative" location is kinda ok. + # It is also returned though, but use of the attribute seems rare? + [ tagName ] + [ + (wrapOptionDecl a.tags.${tagName}) + (wrapOptionDecl bOpt) + ] + // { + # mergeOptionDecls is not idempotent in these attrs: + declarations = a.tags.${tagName}.declarations ++ bOpt.declarations; + declarationPositions = a.tags.${tagName}.declarationPositions ++ bOpt.declarationPositions; + } + ) (builtins.intersectAttrs a.tags b.tags); + }; + }; + }; + + # A value produced by `lib.mkLuaInline` + luaInline = mkOptionType { + name = "luaInline"; + description = "inline lua"; + descriptionClass = "noun"; + check = x: x._type or null == "lua-inline"; + merge = mergeEqualOption; + }; + + uniq = unique { message = ""; }; + + unique = + { message }: + type: + mkOptionType rec { + name = "unique"; + inherit (type) description descriptionClass check; + merge = mergeUniqueOption { + inherit message; + inherit (type) merge; + }; + emptyValue = type.emptyValue; + getSubOptions = type.getSubOptions; + getSubModules = type.getSubModules; + substSubModules = m: uniq (type.substSubModules m); + functor = elemTypeFunctor name { elemType = type; } // { + type = payload: lib.types.unique { inherit message; } payload.elemType; + }; + nestedTypes.elemType = type; + }; + + # Null or value of ... + nullOr = + elemType: + mkOptionType rec { + name = "nullOr"; + description = "null or ${ + optionDescriptionPhrase (class: class == "noun" || class == "conjunction") elemType + }"; + descriptionClass = "conjunction"; + check = x: x == null || elemType.check x; + merge = + loc: defs: + let + nrNulls = count (def: def.value == null) defs; + in + if nrNulls == length defs then + null + else if nrNulls != 0 then + throw "The option `${showOption loc}` is defined both null and not null, in ${showFiles (getFiles defs)}." + else + elemType.merge loc defs; + emptyValue = { + value = null; + }; + getSubOptions = elemType.getSubOptions; + getSubModules = elemType.getSubModules; + substSubModules = m: nullOr (elemType.substSubModules m); + functor = (elemTypeFunctor name { inherit elemType; }) // { + type = payload: lib.types.nullOr payload.elemType; + }; + nestedTypes.elemType = elemType; + }; + + functionTo = + elemType: + mkOptionType { + name = "functionTo"; + description = "function that evaluates to a(n) ${ + optionDescriptionPhrase (class: class == "noun" || class == "composite") elemType + }"; + descriptionClass = "composite"; + check = isFunction; + merge = loc: defs: { + # An argument attribute has a default when it has a default in all definitions + __functionArgs = lib.zipAttrsWith (_: lib.all (x: x)) ( + lib.map (fn: lib.functionArgs fn.value) defs + ); + __functor = + _: callerArgs: + (mergeDefinitions (loc ++ [ "" ]) elemType ( + map (fn: { + inherit (fn) file; + value = fn.value callerArgs; + }) defs + )).mergedValue; + }; + getSubOptions = prefix: elemType.getSubOptions (prefix ++ [ "" ]); + getSubModules = elemType.getSubModules; + substSubModules = m: functionTo (elemType.substSubModules m); + functor = (elemTypeFunctor "functionTo" { inherit elemType; }) // { + type = payload: lib.types.functionTo payload.elemType; + }; + nestedTypes.elemType = elemType; + }; + + # A submodule (like typed attribute set). See NixOS manual. + submodule = + modules: + submoduleWith { + shorthandOnlyDefinesConfig = true; + modules = toList modules; + }; + + # A module to be imported in some other part of the configuration. + deferredModule = deferredModuleWith { }; + + # A module to be imported in some other part of the configuration. + # `staticModules`' options will be added to the documentation, unlike + # options declared via `config`. + deferredModuleWith = + attrs@{ + staticModules ? [ ], + }: + mkOptionType { + name = "deferredModule"; + description = "module"; + descriptionClass = "noun"; + check = x: isAttrs x || isFunction x || path.check x; + merge = loc: defs: { + imports = + staticModules + ++ map ( + def: lib.setDefaultModuleLocation "${def.file}, via option ${showOption loc}" def.value + ) defs; + }; + inherit (submoduleWith { modules = staticModules; }) + getSubOptions + getSubModules + ; + substSubModules = + m: + deferredModuleWith ( + attrs + // { + staticModules = m; + } + ); + functor = defaultFunctor "deferredModuleWith" // { + type = lib.types.deferredModuleWith; + payload = { + inherit staticModules; + }; + binOp = lhs: rhs: { + staticModules = lhs.staticModules ++ rhs.staticModules; + }; + }; + }; + + # The type of a type! + optionType = mkOptionType { + name = "optionType"; + description = "optionType"; + descriptionClass = "noun"; + check = value: value._type or null == "option-type"; + merge = + loc: defs: + if length defs == 1 then + (head defs).value + else + let + # Prepares the type definitions for mergeOptionDecls, which + # annotates submodules types with file locations + optionModules = map ( + { value, file }: + { + _file = file; + # There's no way to merge types directly from the module system, + # but we can cheat a bit by just declaring an option with the type + options = lib.mkOption { + type = value; + }; + } + ) defs; + # Merges all the types into a single one, including submodule merging. + # This also propagates file information to all submodules + mergedOption = fixupOptionType loc (mergeOptionDecls loc optionModules); + in + mergedOption.type; + }; + + submoduleWith = + { + modules, + specialArgs ? { }, + shorthandOnlyDefinesConfig ? false, + description ? null, + class ? null, + }@attrs: + let + inherit (lib.modules) evalModules; + + allModules = + defs: + map ( + { value, file }: + if isAttrs value && shorthandOnlyDefinesConfig then + { + _file = file; + config = value; + } + else + { + _file = file; + imports = [ value ]; + } + ) defs; + + base = evalModules { + inherit class specialArgs; + modules = [ + { + # This is a work-around for the fact that some sub-modules, + # such as the one included in an attribute set, expects an "args" + # attribute to be given to the sub-module. As the option + # evaluation does not have any specific attribute name yet, we + # provide a default for the documentation and the freeform type. + # + # This is necessary as some option declaration might use the + # "name" attribute given as argument of the submodule and use it + # as the default of option declarations. + # + # We use lookalike unicode single angle quotation marks because + # of the docbook transformation the options receive. In all uses + # > and < wouldn't be encoded correctly so the encoded values + # would be used, and use of `<` and `>` would break the XML document. + # It shouldn't cause an issue since this is cosmetic for the manual. + _module.args.name = lib.mkOptionDefault "‹name›"; + } + ] + ++ modules; + }; + + freeformType = base._module.freeformType; + + name = "submodule"; + + check = { + __functor = _self: x: isAttrs x || isFunction x || path.check x; + isV2MergeCoherent = true; + }; + in + mkOptionType { + inherit name; + description = + if description != null then + description + else + let + docsEval = base.extendModules { modules = [ noCheckForDocsModule ]; }; + in + if docsEval._module.freeformType ? description then + "open ${name} of ${ + optionDescriptionPhrase ( + class: class == "noun" || class == "composite" + ) docsEval._module.freeformType + }" + else + name; + inherit check; + merge = { + __functor = + self: loc: defs: + (self.v2 { inherit loc defs; }).value; + v2 = + { loc, defs }: + let + configuration = base.extendModules { + modules = [ { _module.args.name = last loc; } ] ++ allModules defs; + prefix = loc; + }; + in + { + headError = checkDefsForError check loc defs; + value = configuration.config; + valueMeta = { inherit configuration; }; + }; + }; + emptyValue = { + value = { }; + }; + getSubOptions = + prefix: + let + docsEval = ( + base.extendModules { + inherit prefix; + modules = [ noCheckForDocsModule ]; + } + ); + # Intentionally shadow the freeformType from the possibly *checked* + # configuration. See `noCheckForDocsModule` comment. + inherit (docsEval._module) freeformType; + in + docsEval.options + // optionalAttrs (freeformType != null) { + # Expose the sub options of the freeform type. Note that the option + # discovery doesn't care about the attribute name used here, so this + # is just to avoid conflicts with potential options from the submodule + _freeformOptions = freeformType.getSubOptions prefix; + }; + getSubModules = modules; + substSubModules = + m: + submoduleWith ( + attrs + // { + modules = m; + } + ); + nestedTypes = lib.optionalAttrs (freeformType != null) { + freeformType = freeformType; + }; + functor = defaultFunctor name // { + type = lib.types.submoduleWith; + payload = { + inherit + modules + class + specialArgs + shorthandOnlyDefinesConfig + description + ; + }; + binOp = lhs: rhs: { + class = + # `or null` was added for backwards compatibility only. `class` is + # always set in the current version of the module system. + if lhs.class or null == null then + rhs.class or null + else if rhs.class or null == null then + lhs.class or null + else if lhs.class or null == rhs.class then + lhs.class or null + else + throw "A submoduleWith option is declared multiple times with conflicting class values \"${toString lhs.class}\" and \"${toString rhs.class}\"."; + modules = lhs.modules ++ rhs.modules; + specialArgs = + let + intersecting = builtins.intersectAttrs lhs.specialArgs rhs.specialArgs; + in + if intersecting == { } then + lhs.specialArgs // rhs.specialArgs + else + throw "A submoduleWith option is declared multiple times with the same specialArgs \"${toString (attrNames intersecting)}\""; + shorthandOnlyDefinesConfig = + if lhs.shorthandOnlyDefinesConfig == null then + rhs.shorthandOnlyDefinesConfig + else if rhs.shorthandOnlyDefinesConfig == null then + lhs.shorthandOnlyDefinesConfig + else if lhs.shorthandOnlyDefinesConfig == rhs.shorthandOnlyDefinesConfig then + lhs.shorthandOnlyDefinesConfig + else + throw "A submoduleWith option is declared multiple times with conflicting shorthandOnlyDefinesConfig values"; + description = + if lhs.description == null then + rhs.description + else if rhs.description == null then + lhs.description + else if lhs.description == rhs.description then + lhs.description + else + throw "A submoduleWith option is declared multiple times with conflicting descriptions"; + }; + }; + }; + + # A value from a set of allowed ones. + enum = + values: + let + inherit (lib.lists) unique; + show = + v: + if builtins.isString v then + ''"${v}"'' + else if builtins.isInt v then + toString v + else if builtins.isBool v then + boolToString v + else + ''<${builtins.typeOf v}>''; + in + mkOptionType rec { + name = "enum"; + description = + # Length 0 or 1 enums may occur in a design pattern with type merging + # where an "interface" module declares an empty enum and other modules + # provide implementations, each extending the enum with their own + # identifier. + if values == [ ] then + "impossible (empty enum)" + else if builtins.length values == 1 then + "value ${show (builtins.head values)} (singular enum)" + else + "one of ${concatMapStringsSep ", " show values}"; + descriptionClass = if builtins.length values < 2 then "noun" else "conjunction"; + check = flip elem values; + merge = mergeEqualOption; + functor = (defaultFunctor name) // { + payload = { inherit values; }; + type = payload: lib.types.enum payload.values; + binOp = a: b: { values = unique (a.values ++ b.values); }; + }; + }; + + # Either value of type `t1` or `t2`. + either = + t1: t2: + mkOptionType rec { + name = "either"; + description = + if t1.descriptionClass or null == "nonRestrictiveClause" then + # Plain, but add comma + "${t1.description}, or ${ + optionDescriptionPhrase (class: class == "noun" || class == "conjunction") t2 + }" + else + "${optionDescriptionPhrase (class: class == "noun" || class == "conjunction") t1} or ${ + optionDescriptionPhrase ( + class: class == "noun" || class == "conjunction" || class == "composite" + ) t2 + }"; + descriptionClass = "conjunction"; + check = { + __functor = _self: x: t1.check x || t2.check x; + isV2MergeCoherent = true; + }; + merge = { + __functor = + self: loc: defs: + (self.v2 { inherit loc defs; }).value; + v2 = + { loc, defs }: + let + t1CheckedAndMerged = + if t1.merge ? v2 then + checkV2MergeCoherence loc t1 (t1.merge.v2 { inherit loc defs; }) + else + { + value = t1.merge loc defs; + headError = checkDefsForError t1.check loc defs; + valueMeta = { }; + }; + t2CheckedAndMerged = + if t2.merge ? v2 then + checkV2MergeCoherence loc t2 (t2.merge.v2 { inherit loc defs; }) + else + { + value = t2.merge loc defs; + headError = checkDefsForError t2.check loc defs; + valueMeta = { }; + }; + + checkedAndMerged = + if t1CheckedAndMerged.headError == null then + t1CheckedAndMerged + else if t2CheckedAndMerged.headError == null then + t2CheckedAndMerged + else + rec { + valueMeta = { + inherit headError; + }; + headError = { + message = "The option `${showOption loc}` is neither a value of type `${t1.description}` nor `${t2.description}`, Definition values: ${showDefs defs}"; + }; + value = lib.warn '' + One or more definitions did not pass the type-check of the 'either' type. + ${headError.message} + If `either`, `oneOf` or similar is used in freeformType, ensure that it is preceded by an 'attrsOf' such as: `freeformType = types.attrsOf (types.either t1 t2)`. + Otherwise consider using the correct type for the option `${showOption loc}`. This will be an error in Nixpkgs 26.05. + '' (mergeOneOption loc defs); + }; + in + checkedAndMerged; + }; + typeMerge = + f': + let + mt1 = t1.typeMerge (elemAt f'.payload.elemType 0).functor; + mt2 = t2.typeMerge (elemAt f'.payload.elemType 1).functor; + in + if (name == f'.name) && (mt1 != null) && (mt2 != null) then functor.type mt1 mt2 else null; + functor = elemTypeFunctor name { + elemType = [ + t1 + t2 + ]; + }; + nestedTypes.left = t1; + nestedTypes.right = t2; + }; + + # Any of the types in the given list + oneOf = + ts: + let + head' = + if ts == [ ] then throw "types.oneOf needs to get at least one type in its argument" else head ts; + tail' = tail ts; + in + foldl' either head' tail'; + + # Either value of type `coercedType` or `finalType`, the former is + # converted to `finalType` using `coerceFunc`. + coercedTo = + coercedType: coerceFunc: finalType: + assert lib.assertMsg ( + coercedType.getSubModules == null + ) "coercedTo: coercedType must not have submodules (it’s a ${coercedType.description})"; + mkOptionType rec { + name = "coercedTo"; + description = "${optionDescriptionPhrase (class: class == "noun") finalType} or ${ + optionDescriptionPhrase (class: class == "noun") coercedType + } convertible to it"; + check = { + __functor = _self: x: (coercedType.check x && finalType.check (coerceFunc x)) || finalType.check x; + isV2MergeCoherent = true; + }; + merge = { + __functor = + self: loc: defs: + (self.v2 { inherit loc defs; }).value; + v2 = + { loc, defs }: + let + finalDefs = ( + map ( + def: + def + // { + value = + let + merged = + if coercedType.merge ? v2 then + checkV2MergeCoherence loc coercedType ( + coercedType.merge.v2 { + inherit loc; + defs = [ def ]; + } + ) + else + null; + in + if coercedType.merge ? v2 then + if merged.headError == null then coerceFunc def.value else def.value + else if coercedType.check def.value then + coerceFunc def.value + else + def.value; + } + ) defs + ); + in + if finalType.merge ? v2 then + checkV2MergeCoherence loc finalType ( + finalType.merge.v2 { + inherit loc; + defs = finalDefs; + } + ) + else + { + value = finalType.merge loc finalDefs; + valueMeta = { }; + headError = checkDefsForError check loc defs; + }; + }; + emptyValue = finalType.emptyValue; + getSubOptions = finalType.getSubOptions; + getSubModules = finalType.getSubModules; + substSubModules = m: coercedTo coercedType coerceFunc (finalType.substSubModules m); + typeMerge = t: null; + functor = (defaultFunctor name) // { + wrappedDeprecationMessage = makeWrappedDeprecationMessage { elemType = finalType; }; + }; + nestedTypes.coercedType = coercedType; + nestedTypes.finalType = finalType; + }; + + /** + Augment the given type with an additional type check function. + + :::{.warning} + This function has some broken behavior see: [#396021](https://github.com/NixOS/nixpkgs/issues/396021) + Fixing is not trivial, we appreciate any help! + ::: + */ + addCheck = + elemType: check: + if elemType.merge ? v2 then + elemType + // { + check = { + __functor = _self: x: elemType.check x && check x; + isV2MergeCoherent = true; + }; + merge = { + __functor = + self: loc: defs: + (self.v2 { inherit loc defs; }).value; + v2 = + { loc, defs }: + let + orig = checkV2MergeCoherence loc elemType (elemType.merge.v2 { inherit loc defs; }); + headError' = if orig.headError != null then orig.headError else checkDefsForError check loc defs; + in + orig + // { + headError = headError'; + }; + }; + } + else + elemType + // { + check = x: elemType.check x && check x; + }; + + /** + Merges two option types together. + + :::{.note} + Uses the type merge function of the first type, to merge it with the second type. + + Usually types can only be merged if they are of the same type + ::: + + # Inputs + + : `a` (option type): The first option type. + : `b` (option type): The second option type. + + # Returns + + - The merged option type. + - `{ _type = "merge-error"; error = "Cannot merge types"; }` if the types can't be merged. + + # Examples + :::{.example} + ## `lib.types.mergeTypes` usage example + ```nix + let + enumAB = lib.types.enum ["A" "B"]; + enumXY = lib.types.enum ["X" "Y"]; + # This operation could be notated as: [ A ] | [ B ] -> [ A B ] + merged = lib.types.mergeTypes enumAB enumXY; # -> enum [ "A" "B" "X" "Y" ] + in + assert merged.check "A"; # true + assert merged.check "B"; # true + assert merged.check "X"; # true + assert merged.check "Y"; # true + merged.check "C" # false + ``` + ::: + */ + mergeTypes = + a: b: + assert isOptionType a && isOptionType b; + let + merged = a.typeMerge b.functor; + in + if merged == null then setType "merge-error" { error = "Cannot merge types"; } else merged; + + # TODO: Migrate usage of lib.types.types in nixpkgs + # Then add a deprecation warning + types = lib.types; +} From df4b86fd29b3fada9c6700c422263cb382a9701c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 12:30:53 +0000 Subject: [PATCH 274/396] _0xproto: 2.501 -> 2.502 --- pkgs/by-name/_0/_0xproto/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/_0/_0xproto/package.nix b/pkgs/by-name/_0/_0xproto/package.nix index 6b47eef1536f..bbf00e1d4d59 100644 --- a/pkgs/by-name/_0/_0xproto/package.nix +++ b/pkgs/by-name/_0/_0xproto/package.nix @@ -6,7 +6,7 @@ }: stdenvNoCC.mkDerivation rec { pname = "0xproto"; - version = "2.501"; + version = "2.502"; src = let @@ -14,7 +14,7 @@ stdenvNoCC.mkDerivation rec { in fetchzip { url = "https://github.com/0xType/0xProto/releases/download/${version}/0xProto_${underscoreVersion}.zip"; - hash = "sha256-l1+fRPMo3k9EEGXiMw+8Z78KxjO3AGgvyqSfsN188vQ="; + hash = "sha256-ffYvfEGMoIJKVEcs2XzhDrq++SkTbQOVvb6X9q+uyu8="; stripRoot = false; }; From 885f004128e1820bc66d8c9d627a2937b367503f Mon Sep 17 00:00:00 2001 From: Anthony ROUSSEL Date: Mon, 19 Jan 2026 13:51:06 +0100 Subject: [PATCH 275/396] aws-shell: remove * Unmaintained upstream since 2020. * Uses an outdated version of prompt-toolkit. * Incompatible with awscli v2. --- pkgs/by-name/aw/aws-shell/package.nix | 59 --------------------------- pkgs/top-level/aliases.nix | 1 + 2 files changed, 1 insertion(+), 59 deletions(-) delete mode 100644 pkgs/by-name/aw/aws-shell/package.nix diff --git a/pkgs/by-name/aw/aws-shell/package.nix b/pkgs/by-name/aw/aws-shell/package.nix deleted file mode 100644 index a42ced9aec35..000000000000 --- a/pkgs/by-name/aw/aws-shell/package.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ - python3Packages, - lib, - fetchFromGitHub, - fetchPypi, - awscli, - writableTmpDirAsHomeHook, -}: - -python3Packages.buildPythonApplication rec { - pname = "aws-shell"; - version = "0.2.2"; - format = "setuptools"; - - src = fetchFromGitHub { - owner = "awslabs"; - repo = "aws-shell"; - tag = version; - hash = "sha256-m96XaaFDFQaD2YPjw8D1sGJ5lex4Is4LQ5RhGzVPvH4="; - }; - - build-system = with python3Packages; [ - setuptools - ]; - - dependencies = with python3Packages; [ - botocore - pygments - mock - configobj - awscli - (prompt-toolkit.overrideAttrs (old: { - src = fetchPypi { - pname = "prompt_toolkit"; - version = "1.0.18"; - hash = "sha256-3U/KAsgGlJetkxotCZFMaw0bUBUc6Ha8Fb3kx0cJASY="; - }; - postPatch = null; - propagatedBuildInputs = old.propagatedBuildInputs ++ [ - wcwidth - six - ]; - })) - ]; - - nativeCheckInputs = with python3Packages; [ - pytestCheckHook - writableTmpDirAsHomeHook - ]; - - meta = { - homepage = "https://github.com/awslabs/aws-shell"; - description = "Integrated shell for working with the AWS CLI"; - platforms = lib.platforms.unix; - license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ bot-wxt1221 ]; - mainProgram = "aws-shell"; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index fedeb0ae80d5..479af8a8f89e 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -338,6 +338,7 @@ mapAliases { avr-sim = throw "'avr-sim' has been removed as it was broken and unmaintained. Possible alternatives are 'simavr', SimulAVR and AVRStudio."; # Added 2025-05-31 awesome-4-0 = throw "'awesome-4-0' has been renamed to/replaced by 'awesome'"; # Converted to throw 2025-10-27 awf = throw "'awf' has been removed as the upstream project was archived in 2021"; # Added 2025-10-03 + aws-shell = throw "'aws-shell' has been removed because it is unmaintained upstream"; # Added 2026-01-18 aws_mturk_clt = throw "'aws_mturk_clt' has been removed due to being unmaintained upstream. Use 'awscli' with 'mturk' subcommands instead."; # Added 2026-01-19 axmldec = throw "'axmldec' has been removed as it was broken and unmaintained for 8 years"; # Added 2025-05-17 backlight-auto = throw "'backlight-auto' has been removed as it relies on Zig 0.12 which has been dropped."; # Added 2025-08-22 From e6bd34a3babb9f28332d2bc02dadad0f84ee1830 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 13:11:39 +0000 Subject: [PATCH 276/396] libretro.beetle-psx: 0-unstable-2026-01-12 -> 0-unstable-2026-01-16 --- pkgs/applications/emulators/libretro/cores/beetle-psx.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/emulators/libretro/cores/beetle-psx.nix b/pkgs/applications/emulators/libretro/cores/beetle-psx.nix index 34162d390ff3..f55fe76711ce 100644 --- a/pkgs/applications/emulators/libretro/cores/beetle-psx.nix +++ b/pkgs/applications/emulators/libretro/cores/beetle-psx.nix @@ -8,13 +8,13 @@ }: mkLibretroCore { core = "mednafen-psx" + lib.optionalString withHw "-hw"; - version = "0-unstable-2026-01-12"; + version = "0-unstable-2026-01-16"; src = fetchFromGitHub { owner = "libretro"; repo = "beetle-psx-libretro"; - rev = "254285de247db71ac25a4392c159dc1114940794"; - hash = "sha256-RDUyTGlrouttC9V4irOC8U1zcNsCxnTIdm6wrAECY2E="; + rev = "5965c585abcaf6b5205a1347de82471e22aaabe3"; + hash = "sha256-Mks6xJre1gaxBqWfAzVTNp6Ooy5VDc86HAoj3wlHYRw="; }; extraBuildInputs = lib.optionals withHw [ From 08e56006d0b66f54a4fe47c3bcd485347bcff5f4 Mon Sep 17 00:00:00 2001 From: Marcel Date: Mon, 19 Jan 2026 14:13:34 +0100 Subject: [PATCH 277/396] karere: 2.0.9 -> 2.3.2 --- pkgs/by-name/ka/karere/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ka/karere/package.nix b/pkgs/by-name/ka/karere/package.nix index 2365d3b0fbc2..c73a4eefc4af 100644 --- a/pkgs/by-name/ka/karere/package.nix +++ b/pkgs/by-name/ka/karere/package.nix @@ -20,18 +20,18 @@ stdenv.mkDerivation (finalAttrs: { pname = "karere"; - version = "2.0.9"; + version = "2.3.2"; src = fetchFromGitHub { owner = "tobagin"; repo = "karere"; tag = "v${finalAttrs.version}"; - hash = "sha256-roxynxGiM43VHl+ngo/EMKEJ56XaYA6qaok/SzppFlY="; + hash = "sha256-FtGT2GXBHmXHLxRW+J2735+Z+++xbzyNAjyfXPewZ8Y="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) pname version src; - hash = "sha256-BYG1TgCbkaQlquFy/tmjzdfypc8yno7w7SdBsgqOxkU="; + hash = "sha256-NqE9x3mBfHt1bhSpxm+DurX61oJDxt3IibTYFi/lqO8="; }; nativeBuildInputs = [ From 7a92a8f5d68ede02ed4bb7072a4e18fa2487fb4a Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Mon, 19 Jan 2026 13:19:38 +0000 Subject: [PATCH 278/396] glslls: fix build with GCC 15 Tracking: https://github.com/NixOS/nixpkgs/issues/475479 --- pkgs/by-name/gl/glslls/package.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/by-name/gl/glslls/package.nix b/pkgs/by-name/gl/glslls/package.nix index e09a9bc35e6c..a8db204b1090 100644 --- a/pkgs/by-name/gl/glslls/package.nix +++ b/pkgs/by-name/gl/glslls/package.nix @@ -19,6 +19,11 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-wi1QiqaWRh1DmIhwmu94lL/4uuMv6DnB+whM61Jg1Zs="; }; + # Fix build with GCC 15 + postPatch = '' + sed -i "1i #include " externals/glslang/SPIRV/SpvBuilder.h + ''; + nativeBuildInputs = [ python3 cmake From a88ad6b44b44cafec62cb39d4c9533d30a6730a4 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 13:49:17 +0000 Subject: [PATCH 279/396] mark: 15.2.0 -> 15.3.0 --- pkgs/by-name/ma/mark/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ma/mark/package.nix b/pkgs/by-name/ma/mark/package.nix index 918ee20b7ecf..ea56bb31bcc4 100644 --- a/pkgs/by-name/ma/mark/package.nix +++ b/pkgs/by-name/ma/mark/package.nix @@ -8,16 +8,16 @@ # https://github.com/kovetskiy/mark/pull/581#issuecomment-2797872996 buildGoModule rec { pname = "mark"; - version = "15.2.0"; + version = "15.3.0"; src = fetchFromGitHub { owner = "kovetskiy"; repo = "mark"; rev = "v${version}"; - sha256 = "sha256-ZvFaSoD9nQtxc5ONWneVgpAfX3f7sS0lBSMXqhABn8o="; + sha256 = "sha256-tQmoTvZO/Las8QDJqcmW7upAciFEQqVFVKEVx6Zg7Mg="; }; - vendorHash = "sha256-3hfeh7PRzsPfQ+aLPV44ExXum6lG6Huvc7itRIn8mNo="; + vendorHash = "sha256-Pk56hx2GRq+4NmCVx0S8Mr2Jgnn44aSRNfhtZIH9Lxk="; ldflags = [ "-s" From 5d2994f5a3196557743e71dafe500c815ce0e8a9 Mon Sep 17 00:00:00 2001 From: Bart Brouns Date: Mon, 19 Jan 2026 14:11:08 +0100 Subject: [PATCH 280/396] ringboard: 0.13.2-unstable-2025-12-19 -> 0.14.0-unstable-2026-01-19 --- pkgs/by-name/ri/ringboard/package.nix | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/ri/ringboard/package.nix b/pkgs/by-name/ri/ringboard/package.nix index 2add27225960..0ba46a48be6b 100644 --- a/pkgs/by-name/ri/ringboard/package.nix +++ b/pkgs/by-name/ri/ringboard/package.nix @@ -10,6 +10,7 @@ makeWrapper, displayServer ? "x11", nixosTests, + nix-update-script, }: assert lib.assertOneOf "displayServer" displayServer [ @@ -22,16 +23,16 @@ rustPlatform.buildRustPackage (finalAttrs: { # release version needs nightly, so we use a custom tree, see: # https://github.com/SUPERCILEX/clipboard-history/issues/22#issuecomment-3676256971 - version = "0.13.2-unstable-2025-12-19"; + version = "0.14.0-unstable-2026-01-19"; src = fetchFromGitHub { owner = "SUPERCILEX"; repo = "clipboard-history"; - rev = "08a2a2a77fa38240dfc6a33adabb3a473ce6bcfd"; - hash = "sha256-iG/pk6xizCv2sUqTA44nb4AnbaOuDsIONuUfJuOWnc8="; + rev = "cb2e94add2388a68a8f015b77f9b082b1658b3b7"; + hash = "sha256-r2632XJ/2Er1TuHCDNm6uItvdhqJ87i9p+h9M2MwKwk="; }; - cargoHash = "sha256-LuWUf37X/Z0xCbAQmaMY8lle7gGZWoz2bgYhe/uRonU="; + cargoHash = "sha256-c5Zdvz2xHsGh4VnOED2JiitNWwNTSkygaMFHPPLANqw="; nativeBuildInputs = [ makeWrapper @@ -97,11 +98,15 @@ rustPlatform.buildRustPackage (finalAttrs: { sed -i "s|Icon=ringboard|Icon=$out/share/icons/hicolor/1024x1024/ringboard.jpeg|g" $out/share/applications/ringboard-egui.desktop ''; - passthru.tests.nixos = nixosTests.ringboard; + passthru = { + tests.nixos = nixosTests.ringboard; + updateScript = nix-update-script { extraArgs = [ "--version=branch=stable" ]; }; + }; meta = { description = "Fast, efficient, and composable clipboard manager for Linux"; homepage = "https://github.com/SUPERCILEX/clipboard-history"; + changelog = "https://github.com/SUPERCILEX/clipboard-history/releases/tag/${finalAttrs.version}"; license = lib.licenses.asl20; platforms = lib.platforms.linux; maintainers = [ lib.maintainers.magnetophon ]; From 162db78a2c3cfcade6d8397196dc85e82fa412fd Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 14:14:53 +0000 Subject: [PATCH 281/396] go2rtc: 1.9.13 -> 1.9.14 --- pkgs/by-name/go/go2rtc/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/go/go2rtc/package.nix b/pkgs/by-name/go/go2rtc/package.nix index e0a9dc6a6d57..a4d9cd99f216 100644 --- a/pkgs/by-name/go/go2rtc/package.nix +++ b/pkgs/by-name/go/go2rtc/package.nix @@ -6,16 +6,16 @@ buildGoModule rec { pname = "go2rtc"; - version = "1.9.13"; + version = "1.9.14"; src = fetchFromGitHub { owner = "AlexxIT"; repo = "go2rtc"; tag = "v${version}"; - hash = "sha256-/o7cn5VuORl03zwinxmRD0Y0eDToLX1ODTe1LHQSCXQ="; + hash = "sha256-LwMQeRUIIsbsxaX9EItmlGSab4ssidI2Eklw39hXEHQ="; }; - vendorHash = "sha256-PlYL97TSYAzSO5KSBEk4DCdvOZ9YHoTv55P16Mzyzzg="; + vendorHash = "sha256-fbDHuLuajAMOQwqyvLdQJYglcygjo4EDqPEjeiSWz2Y="; env.CGO_ENABLED = 0; From 12f5f063f5e8f444052d8f0e5fe9decd6d67904e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 14:33:44 +0000 Subject: [PATCH 282/396] python3Packages.meilisearch: 0.39.0 -> 0.40.0 --- pkgs/development/python-modules/meilisearch/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/meilisearch/default.nix b/pkgs/development/python-modules/meilisearch/default.nix index 1374887798b7..fa7aaef26a57 100644 --- a/pkgs/development/python-modules/meilisearch/default.nix +++ b/pkgs/development/python-modules/meilisearch/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "meilisearch"; - version = "0.39.0"; + version = "0.40.0"; pyproject = true; src = fetchFromGitHub { owner = "meilisearch"; repo = "meilisearch-python"; tag = "v${version}"; - hash = "sha256-+BhoJjYpvRSMK8P6coHYH0KFTDUKOeeEmyogYpAMWeE="; + hash = "sha256-mxIE2/gZhV8geE0UJ2ModGKs0TPjJLyp38Wvcs59wz8="; }; build-system = [ setuptools ]; From 2b092d69a1c6e026a229b33e0a472aedc0dc886a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 14:40:33 +0000 Subject: [PATCH 283/396] iwe: 0.0.59 -> 0.0.60 --- pkgs/by-name/iw/iwe/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/iw/iwe/package.nix b/pkgs/by-name/iw/iwe/package.nix index 1af2da020e84..fdb780d5e1f2 100644 --- a/pkgs/by-name/iw/iwe/package.nix +++ b/pkgs/by-name/iw/iwe/package.nix @@ -8,16 +8,16 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "iwe"; - version = "0.0.59"; + version = "0.0.60"; src = fetchFromGitHub { owner = "iwe-org"; repo = "iwe"; tag = "iwe-v${finalAttrs.version}"; - hash = "sha256-6GaYFAN3Cz9VAvYaMQTAsXNolDuuVXfkrwqBqbr8Kfw="; + hash = "sha256-PSSH8uytCPtTgxte/wc0TfTiKD96DiVrWFJN9QjuHo8="; }; - cargoHash = "sha256-1j1XAcwbct9wJrEWYpJFFzVRmjHliUmNxgprUF43/ew="; + cargoHash = "sha256-PqINghZ88FsXj4HEFp0ugFH30lbQfBcoiv86PPOCzLI="; cargoBuildFlags = [ "--package=iwe" From 92e6b463cf0a667394063ae2f5471207138beea6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 11:43:48 +0000 Subject: [PATCH 284/396] python3Packages.openstacksdk: 4.8.0 -> 4.9.0 --- .../python-modules/openstacksdk/default.nix | 4 ++-- .../python-modules/openstacksdk/tests.nix | 24 +++++++------------ 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/pkgs/development/python-modules/openstacksdk/default.nix b/pkgs/development/python-modules/openstacksdk/default.nix index 7f071ed81004..fcf87f7d71cb 100644 --- a/pkgs/development/python-modules/openstacksdk/default.nix +++ b/pkgs/development/python-modules/openstacksdk/default.nix @@ -22,7 +22,7 @@ buildPythonPackage rec { pname = "openstacksdk"; - version = "4.8.0"; + version = "4.9.0"; pyproject = true; outputs = [ @@ -32,7 +32,7 @@ buildPythonPackage rec { src = fetchPypi { inherit pname version; - hash = "sha256-TcA44cF9iTAF86ColRRWr9nRSPP2XUSPlK3M6yeNfzE="; + hash = "sha256-soRZx8tkBfnW/Fc2iepcXjV0JIKPbHb3srDXY8gPtuo="; }; postPatch = '' diff --git a/pkgs/development/python-modules/openstacksdk/tests.nix b/pkgs/development/python-modules/openstacksdk/tests.nix index 4e7031b0ff96..8881cfbc51c8 100644 --- a/pkgs/development/python-modules/openstacksdk/tests.nix +++ b/pkgs/development/python-modules/openstacksdk/tests.nix @@ -37,36 +37,28 @@ buildPythonPackage { checkPhase = '' stestr run -e <(echo " - '' - + lib.optionalString stdenv.hostPlatform.isAarch64 '' - openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_node_set_provision_state_with_retries - openstack.tests.unit.cloud.test_role_assignment.TestRoleAssignment.test_grant_role_user_domain_exists - openstack.tests.unit.cloud.test_volume_backups.TestVolumeBackups.test_delete_volume_backup_force - openstack.tests.unit.object_store.v1.test_proxy.TestTempURLBytesPathAndKey.test_set_account_temp_url_key_second - openstack.tests.unit.cloud.test_security_groups.TestSecurityGroups.test_delete_security_group_neutron_not_found - '' - + '' - openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_wait_for_baremetal_node_lock_locked - openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_inspect_failed openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_available_wait + openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_inspect_failed openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_wait - openstack.tests.unit.cloud.test_image.TestImage.test_create_image_task - openstack.tests.unit.image.v2.test_proxy.TestImageProxy.test_wait_for_task_error_396 - openstack.tests.unit.image.v2.test_proxy.TestImageProxy.test_wait_for_task_wait + openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_wait_for_baremetal_node_lock_locked + openstack.tests.unit.cloud.test_volume_backups.TestVolumeBackups.test_delete_volume_backup_force + openstack.tests.unit.cloud.test_volume_backups.TestVolumeBackups.test_delete_volume_backup_wait openstack.tests.unit.image.v2.test_proxy.TestTask.test_wait_for_task_error_396 openstack.tests.unit.image.v2.test_proxy.TestTask.test_wait_for_task_wait openstack.tests.unit.test_resource.TestWaitForDelete.test_callback - openstack.tests.unit.test_resource.TestWaitForDelete.test_callback_without_progress openstack.tests.unit.test_resource.TestWaitForDelete.test_status openstack.tests.unit.test_resource.TestWaitForDelete.test_success_not_found openstack.tests.unit.test_resource.TestWaitForStatus.test_callback + openstack.tests.unit.test_resource.TestWaitForStatus.test_callback_without_progress openstack.tests.unit.test_resource.TestWaitForStatus.test_status_fails openstack.tests.unit.test_resource.TestWaitForStatus.test_status_fails_different_attribute openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match - openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match_with_none + openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match_different_attribute + openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match_none openstack.tests.unit.test_stats.TestStats.test_list_projects openstack.tests.unit.test_stats.TestStats.test_projects openstack.tests.unit.test_stats.TestStats.test_servers + openstack.tests.unit.test_stats.TestStats.test_servers_error openstack.tests.unit.test_stats.TestStats.test_servers_no_detail openstack.tests.unit.test_stats.TestStats.test_timeout ") From 655a67eec69163e56088c79a6148c66e3b42ebeb Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Mon, 19 Jan 2026 14:33:35 +0000 Subject: [PATCH 285/396] rune-languageserver: 0.13.4 -> 0.14.1 Diff: https://diff.rs/rune-languageserver/0.13.4/0.14.1 Changelog: https://github.com/rune-rs/rune/releases/tag/0.14.1 --- .../ru/rune-languageserver/package.nix | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/ru/rune-languageserver/package.nix b/pkgs/by-name/ru/rune-languageserver/package.nix index 3c15a36fe587..5d7cf2d7a205 100644 --- a/pkgs/by-name/ru/rune-languageserver/package.nix +++ b/pkgs/by-name/ru/rune-languageserver/package.nix @@ -2,27 +2,39 @@ lib, rustPlatform, fetchCrate, + versionCheckHook, + nix-update-script, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "rune-languageserver"; - version = "0.13.4"; + version = "0.14.1"; src = fetchCrate { - inherit pname version; - hash = "sha256-Kw6Qh/9eQPMj4V689+7AxuJB+aCciK3FZTfcdhyZXGY="; + inherit (finalAttrs) pname version; + hash = "sha256-0b8XGbMQqMolOdQEMjpwHAVI3A4fXemyCowN39qY16A="; }; - cargoHash = "sha256-YviRACndc4r4ul72ZF3I/R/nEsIoML2Ek2xqUUE3FDQ="; + cargoHash = "sha256-QrzOpfDpG08IUoydvSoh0qxJ0vg86391NnyEyJeZr54="; env = { - RUNE_VERSION = version; + RUNE_VERSION = finalAttrs.version; + }; + + nativeInstallCheckInputs = [ + versionCheckHook + ]; + doInstallCheck = true; + + passthru = { + updateScript = nix-update-script { }; }; meta = { description = "Language server for the Rune Language, an embeddable dynamic programming language for Rust"; homepage = "https://crates.io/crates/rune-languageserver"; - changelog = "https://github.com/rune-rs/rune/releases/tag/${version}"; + downloadPage = "https://github.com/rune-rs/rune"; + changelog = "https://github.com/rune-rs/rune/releases/tag/${finalAttrs.version}"; license = with lib.licenses; [ asl20 mit @@ -30,4 +42,4 @@ rustPlatform.buildRustPackage rec { maintainers = [ ]; mainProgram = "rune-languageserver"; }; -} +}) From 76ab86dbf910035566d4de719a183212a9033e91 Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Wed, 27 Aug 2025 20:44:58 -0400 Subject: [PATCH 286/396] svxlink: fix use of rtl-sdr --- pkgs/by-name/sv/svxlink/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sv/svxlink/package.nix b/pkgs/by-name/sv/svxlink/package.nix index c26357a8ffb1..1b7a3bb3fd66 100644 --- a/pkgs/by-name/sv/svxlink/package.nix +++ b/pkgs/by-name/sv/svxlink/package.nix @@ -36,8 +36,8 @@ stdenv.mkDerivation (finalAttrs: { cmakeFlags = [ (lib.cmakeBool "DO_INSTALL_CHOWN" false) - (lib.cmakeFeature "RTLSDR_LIBRARIES" "${rtl-sdr}/lib/librtlsdr.so") - (lib.cmakeFeature "RTLSDR_INCLUDE_DIRS" "${rtl-sdr}/include") + (lib.cmakeFeature "RTLSDR_LIBRARIES" "${lib.getLib rtl-sdr}/lib/librtlsdr.so") + (lib.cmakeFeature "RTLSDR_INCLUDE_DIRS" "${lib.getInclude rtl-sdr}/include") ]; dontWrapQtApps = true; From d43cbc728d014e6dc4310db3f3cf9ba202028897 Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Wed, 27 Aug 2025 20:47:12 -0400 Subject: [PATCH 287/396] guglielmo: fix use of rtl-sdr --- pkgs/by-name/gu/guglielmo/package.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/gu/guglielmo/package.nix b/pkgs/by-name/gu/guglielmo/package.nix index b16b3393064a..7cfb6eb426fa 100644 --- a/pkgs/by-name/gu/guglielmo/package.nix +++ b/pkgs/by-name/gu/guglielmo/package.nix @@ -50,7 +50,12 @@ stdenv.mkDerivation (finalAttrs: { postFixup = '' # guglielmo opens SDR libraries at run time - patchelf --add-rpath "${airspy}/lib:${rtl-sdr}/lib" $out/bin/.guglielmo-wrapped + patchelf --add-rpath "${ + lib.makeLibraryPath [ + airspy + rtl-sdr + ] + }" $out/bin/.guglielmo-wrapped ''; meta = { From c3421131033951ffcef6517829123ceb241774b4 Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Wed, 27 Aug 2025 20:47:44 -0400 Subject: [PATCH 288/396] python313Packages.pyrtlsdr: fix use of rtl-sdr --- pkgs/development/python-modules/pyrtlsdr/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/pyrtlsdr/default.nix b/pkgs/development/python-modules/pyrtlsdr/default.nix index a82317688d5e..ec22db642180 100644 --- a/pkgs/development/python-modules/pyrtlsdr/default.nix +++ b/pkgs/development/python-modules/pyrtlsdr/default.nix @@ -19,7 +19,7 @@ buildPythonPackage rec { propagatedBuildInputs = [ setuptools ]; postPatch = '' - sed "s|driver_files =.*|driver_files = ['${rtl-sdr}/lib/librtlsdr.so']|" -i rtlsdr/librtlsdr.py + sed "s|driver_files =.*|driver_files = ['${lib.getLib rtl-sdr}/lib/librtlsdr.so']|" -i rtlsdr/librtlsdr.py ''; # No tests that can be used. From e85db85fd4487e9a41a361b14ba7eaa6e9ba9976 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 14:54:57 +0000 Subject: [PATCH 289/396] python3Packages.coinmetrics-api-client: 2026.1.5.19 -> 2026.1.14.15 --- .../python-modules/coinmetrics-api-client/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/coinmetrics-api-client/default.nix b/pkgs/development/python-modules/coinmetrics-api-client/default.nix index 56846c9d8723..c05fdb581bdb 100644 --- a/pkgs/development/python-modules/coinmetrics-api-client/default.nix +++ b/pkgs/development/python-modules/coinmetrics-api-client/default.nix @@ -18,7 +18,7 @@ buildPythonPackage rec { pname = "coinmetrics-api-client"; - version = "2026.1.5.19"; + version = "2026.1.14.15"; pyproject = true; __darwinAllowLocalNetworking = true; @@ -26,7 +26,7 @@ buildPythonPackage rec { src = fetchPypi { inherit version; pname = "coinmetrics_api_client"; - hash = "sha256-q8uimYYpoEJ2503SLMAROFg4ZwqPpmQJSff7W6D5R6Y="; + hash = "sha256-0gNZ1A9BO/LebOvYLbUmQmMnBi4H5QeX7GdU6SVUWNs="; }; pythonRelaxDeps = [ "typer" ]; From 363b8de58c8fd99f75c0e820da0f4fc42de8a036 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 15:00:52 +0000 Subject: [PATCH 290/396] moor: 2.10.1 -> 2.10.2 --- pkgs/by-name/mo/moor/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/mo/moor/package.nix b/pkgs/by-name/mo/moor/package.nix index 996d0d36c897..814a68a7b6e2 100644 --- a/pkgs/by-name/mo/moor/package.nix +++ b/pkgs/by-name/mo/moor/package.nix @@ -10,16 +10,16 @@ buildGoModule (finalAttrs: { pname = "moor"; - version = "2.10.1"; + version = "2.10.2"; src = fetchFromGitHub { owner = "walles"; repo = "moor"; tag = "v${finalAttrs.version}"; - hash = "sha256-xnm1ZKceij5V2AgfB1ZAabDvB+l+Ha6F2WuHAzcA1mo="; + hash = "sha256-DS2cfu/yX+ebCn7V3FQVN8ltCJcEMD+wIjlS+ENHP8w="; }; - vendorHash = "sha256-MQPR4AW+Y+1l7akLxaWI5NAmKmhZdRKTzrueNEqHZoQ="; + vendorHash = "sha256-lz3cq2xL9byhLNbAwEvYOsP9WQsu0hqrWe2EDaLSeOQ="; nativeBuildInputs = [ installShellFiles ]; From f1d091d832aa323d15c970237cd55ce6828af07b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 15:04:42 +0000 Subject: [PATCH 291/396] python3Packages.pyvizio: 0.1.63 -> 0.1.64 --- pkgs/development/python-modules/pyvizio/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pyvizio/default.nix b/pkgs/development/python-modules/pyvizio/default.nix index 765d24bf70cb..1ec483044d8b 100644 --- a/pkgs/development/python-modules/pyvizio/default.nix +++ b/pkgs/development/python-modules/pyvizio/default.nix @@ -14,12 +14,12 @@ buildPythonPackage (finalAttrs: { pname = "pyvizio"; - version = "0.1.63"; + version = "0.1.64"; pyproject = true; src = fetchPypi { inherit (finalAttrs) pname version; - hash = "sha256-bRdxIqU3euzrtMvD00nPxOD69VWP2vkGZHxUe3O/YP8="; + hash = "sha256-P31vxmpaaPYxpKZPXoXDmNi4iNycTJdlXLGa7XjRLeY="; }; build-system = [ setuptools ]; From 8eb032d66e9acd7d06f2c78684ec781475df2fcc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 15:24:23 +0000 Subject: [PATCH 292/396] talhelper: 3.1.0 -> 3.1.1 --- pkgs/by-name/ta/talhelper/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ta/talhelper/package.nix b/pkgs/by-name/ta/talhelper/package.nix index 33c15ed5c1e6..4b11a555908a 100644 --- a/pkgs/by-name/ta/talhelper/package.nix +++ b/pkgs/by-name/ta/talhelper/package.nix @@ -9,13 +9,13 @@ buildGoModule (finalAttrs: { pname = "talhelper"; - version = "3.1.0"; + version = "3.1.1"; src = fetchFromGitHub { owner = "budimanjojo"; repo = "talhelper"; tag = "v${finalAttrs.version}"; - hash = "sha256-pvJQ6l/Zh5TpGiWe3SXWsUOwFK5WUoGTu76MPyZcXRo="; + hash = "sha256-2CuMGYzJV1kfOjAl9eniyzIUJGAeg32Jro5f8Y5m7cs="; }; vendorHash = "sha256-AkCUKg5oA2XvvDtE0m9fQdeqowx5A1SnnimF7F/CORg="; From 6d3b7a6e15595b254c266c6c9032e7ff1b22d887 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:34:57 +0100 Subject: [PATCH 293/396] canaille: remove superfluous pythonOlder --- pkgs/by-name/ca/canaille/package.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/by-name/ca/canaille/package.nix b/pkgs/by-name/ca/canaille/package.nix index 6d4100e7c8ca..780460c31d01 100644 --- a/pkgs/by-name/ca/canaille/package.nix +++ b/pkgs/by-name/ca/canaille/package.nix @@ -15,8 +15,6 @@ python.pkgs.buildPythonApplication rec { version = "0.0.74"; pyproject = true; - disabled = python.pythonOlder "3.10"; - src = fetchFromGitLab { owner = "yaal"; repo = "canaille"; From 22c185e62b79ac7f0ba5f9f64256f417be11c999 Mon Sep 17 00:00:00 2001 From: JuliusFreudenberger Date: Mon, 19 Jan 2026 16:36:06 +0100 Subject: [PATCH 294/396] teleport_17: 17.7.12 -> 17.7.14 Changelog: https://github.com/gravitational/teleport/releases/tag/v17.7.13 https://github.com/gravitational/teleport/releases/tag/v17.7.14 Diff: https://github.com/gravitational/teleport/compare/v17.7.12...v17.7.14 --- pkgs/by-name/te/teleport_17/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/te/teleport_17/package.nix b/pkgs/by-name/te/teleport_17/package.nix index 6bc5efd1add4..a60756fa8c86 100644 --- a/pkgs/by-name/te/teleport_17/package.nix +++ b/pkgs/by-name/te/teleport_17/package.nix @@ -7,11 +7,11 @@ }: buildTeleport { - version = "17.7.12"; - hash = "sha256-o4bepzHmPx9TfDBz0QsqQ9nd8o/WV1UTRDBnT1wM2yE="; - vendorHash = "sha256-m4oeFuH+60UFBkK6BHil4X8BSHwCVrCJ0i0b5eNJLYE="; - cargoHash = "sha256-qz8gkooQTuBlPWC4lHtvBQpKkd+nEZ0Hl7AVg9JkPqs="; - pnpmHash = "sha256-I+uNfC9aAuFuCqRFdp442pW25F1G7rZwl+1s00i/wq0="; + version = "17.7.14"; + hash = "sha256-k8ZleEYaH1Zh4go8QQPbfoAn1fD/YaHfk6Q671pQlIM="; + vendorHash = "sha256-GTv4nb4wfVfcfjnK0dawJIAP0eSzIWibawqygUSzDxc="; + cargoHash = "sha256-EnIdf/3idwoQGJd6edQtWaXzVC1Gkwf8X2w2Zq80KGA="; + pnpmHash = "sha256-bublGuaTIOh0YdYIgSFfnE3E16sn4ktNCGPXoRIxxHY="; wasm-bindgen-cli = wasm-bindgen-cli_0_2_95; inherit buildGoModule withRdpClient extPatches; From 94742e4a9b4ed93b4cb3e90d3c50cef0803eb152 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:36:49 +0100 Subject: [PATCH 295/396] matrix-zulip-bridge: remove superfluous pythonOlder --- pkgs/by-name/ma/matrix-zulip-bridge/package.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/by-name/ma/matrix-zulip-bridge/package.nix b/pkgs/by-name/ma/matrix-zulip-bridge/package.nix index 89d577665a1a..93b5ab3651e1 100644 --- a/pkgs/by-name/ma/matrix-zulip-bridge/package.nix +++ b/pkgs/by-name/ma/matrix-zulip-bridge/package.nix @@ -9,8 +9,6 @@ python3Packages.buildPythonApplication rec { version = "0.4.1"; pyproject = true; - disabled = python3Packages.pythonOlder "3.10"; - src = fetchFromGitHub { owner = "GearKite"; repo = "MatrixZulipBridge"; From 06d288568137def42c3ac776bde6c49b30d44800 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:37:04 +0100 Subject: [PATCH 296/396] pyprland: remove superfluous pythonOlder --- pkgs/by-name/py/pyprland/package.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/by-name/py/pyprland/package.nix b/pkgs/by-name/py/pyprland/package.nix index d0e4e202b078..aa7ef6504be7 100644 --- a/pkgs/by-name/py/pyprland/package.nix +++ b/pkgs/by-name/py/pyprland/package.nix @@ -10,8 +10,6 @@ python3Packages.buildPythonApplication rec { version = "2.5.1"; pyproject = true; - disabled = python3Packages.pythonOlder "3.10"; - src = fetchFromGitHub { owner = "hyprland-community"; repo = "pyprland"; From 2039a97de389ff1174e8d88f7922bfa28eb58a65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:37:33 +0100 Subject: [PATCH 297/396] python3Packages.abjad: remove superfluous pythonOlder --- pkgs/development/python-modules/abjad/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/abjad/default.nix b/pkgs/development/python-modules/abjad/default.nix index 4f89767c1b7a..495db053a0d8 100644 --- a/pkgs/development/python-modules/abjad/default.nix +++ b/pkgs/development/python-modules/abjad/default.nix @@ -5,7 +5,6 @@ ply, roman, uqbar, - pythonOlder, pythonAtLeast, pytestCheckHook, lilypond, @@ -19,7 +18,7 @@ buildPythonPackage rec { # see issue upstream indicating Python 3.12 support will come # with version 3.20: https://github.com/Abjad/abjad/issues/1574 - disabled = pythonOlder "3.10" || pythonAtLeast "3.12"; + disabled = pythonAtLeast "3.12"; src = fetchPypi { inherit pname version; From 86bea32e74c0c43c92f56bc0464bba7042bfc270 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:37:56 +0100 Subject: [PATCH 298/396] python3Packages.aioitertools: remove superfluous pythonOlder --- pkgs/development/python-modules/aioitertools/default.nix | 6 ------ 1 file changed, 6 deletions(-) diff --git a/pkgs/development/python-modules/aioitertools/default.nix b/pkgs/development/python-modules/aioitertools/default.nix index 175a715b8c8e..df08341f81bf 100644 --- a/pkgs/development/python-modules/aioitertools/default.nix +++ b/pkgs/development/python-modules/aioitertools/default.nix @@ -2,14 +2,10 @@ lib, buildPythonPackage, fetchPypi, - pythonOlder, # native flit-core, - # propagates - typing-extensions, - # tests unittestCheckHook, }: @@ -26,8 +22,6 @@ buildPythonPackage rec { build-system = [ flit-core ]; - dependencies = lib.optionals (pythonOlder "3.10") [ typing-extensions ]; - nativeCheckInputs = [ unittestCheckHook ]; pythonImportsCheck = [ "aioitertools" ]; From e40b9c9e9819d110ea37b2a9ad04bc8bdf18004a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:38:53 +0100 Subject: [PATCH 299/396] python3Packages.aiosmtpd: remove superfluous pythonOlder --- pkgs/development/python-modules/aiosmtpd/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/aiosmtpd/default.nix b/pkgs/development/python-modules/aiosmtpd/default.nix index 9b7b0254bb5d..908c50cdaf1f 100644 --- a/pkgs/development/python-modules/aiosmtpd/default.nix +++ b/pkgs/development/python-modules/aiosmtpd/default.nix @@ -6,7 +6,6 @@ fetchFromGitHub, pytest-mock, pytestCheckHook, - pythonOlder, setuptools, # for passthru.tests @@ -38,8 +37,8 @@ buildPythonPackage rec { pytestCheckHook ]; - # Fixes for Python 3.10 can't be applied easily, https://github.com/aio-libs/aiosmtpd/pull/294 - doCheck = pythonOlder "3.10"; + # Fixes can't be applied easily, https://github.com/aio-libs/aiosmtpd/pull/294 + doCheck = false; disabledTests = [ # Requires git From 9daf3201666d4ccdb353657c9acffc9bc8121f98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:39:10 +0100 Subject: [PATCH 300/396] python3Packages.ansible-runner: remove superfluous pythonOlder --- pkgs/development/python-modules/ansible-runner/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/ansible-runner/default.nix b/pkgs/development/python-modules/ansible-runner/default.nix index cb6bcffb7f5d..346907d999b6 100644 --- a/pkgs/development/python-modules/ansible-runner/default.nix +++ b/pkgs/development/python-modules/ansible-runner/default.nix @@ -13,8 +13,6 @@ pexpect, python-daemon, pyyaml, - pythonOlder, - importlib-metadata, # tests addBinToPathHook, @@ -58,8 +56,7 @@ buildPythonPackage rec { pexpect python-daemon pyyaml - ] - ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; + ]; nativeCheckInputs = [ addBinToPathHook From 79ec44793c7bb4197eef2a929ead362736589586 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:39:23 +0100 Subject: [PATCH 301/396] python3Packages.babelfish: remove superfluous pythonOlder --- pkgs/development/python-modules/babelfish/default.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/development/python-modules/babelfish/default.nix b/pkgs/development/python-modules/babelfish/default.nix index f7840ec533f4..50f310f47ee3 100644 --- a/pkgs/development/python-modules/babelfish/default.nix +++ b/pkgs/development/python-modules/babelfish/default.nix @@ -2,9 +2,7 @@ lib, buildPythonPackage, fetchPypi, - pythonOlder, poetry-core, - importlib-metadata, }: buildPythonPackage rec { @@ -19,8 +17,6 @@ buildPythonPackage rec { build-system = [ poetry-core ]; - dependencies = lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; - # no tests executed doCheck = false; From 8a0096477ebbef3863d26c97e079e3d97de5beb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:39:39 +0100 Subject: [PATCH 302/396] python3Packages.bork: remove superfluous pythonOlder --- pkgs/development/python-modules/bork/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/bork/default.nix b/pkgs/development/python-modules/bork/default.nix index bbc47f0f3a89..a56dd1481871 100644 --- a/pkgs/development/python-modules/bork/default.nix +++ b/pkgs/development/python-modules/bork/default.nix @@ -9,7 +9,6 @@ setuptools, build, coloredlogs, - importlib-metadata, packaging, pip, toml, @@ -45,8 +44,7 @@ buildPythonPackage rec { pip urllib3 ] - ++ lib.optionals (pythonOlder "3.11") [ toml ] - ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; + ++ lib.optionals (pythonOlder "3.11") [ toml ]; pythonImportsCheck = [ "bork" From f6dcd1aa19a96f8e19106ec9e6939193c3245b1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:39:53 +0100 Subject: [PATCH 303/396] python3Packages.cloup: remove superfluous pythonOlder --- pkgs/development/python-modules/cloup/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/cloup/default.nix b/pkgs/development/python-modules/cloup/default.nix index 33654ac55899..cecf149c6463 100644 --- a/pkgs/development/python-modules/cloup/default.nix +++ b/pkgs/development/python-modules/cloup/default.nix @@ -5,8 +5,6 @@ pytestCheckHook, click, setuptools-scm, - pythonOlder, - typing-extensions, }: buildPythonPackage rec { @@ -21,7 +19,7 @@ buildPythonPackage rec { nativeBuildInputs = [ setuptools-scm ]; - propagatedBuildInputs = [ click ] ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ]; + propagatedBuildInputs = [ click ]; nativeCheckInputs = [ pytestCheckHook ]; From 25f55f121eb66270e586a15a71d9a7ce8327a318 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:40:15 +0100 Subject: [PATCH 304/396] python3Packages.datalad: remove superfluous pythonOlder --- pkgs/development/python-modules/datalad/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/development/python-modules/datalad/default.nix b/pkgs/development/python-modules/datalad/default.nix index c6fdcc61b5f8..864870560936 100644 --- a/pkgs/development/python-modules/datalad/default.nix +++ b/pkgs/development/python-modules/datalad/default.nix @@ -39,7 +39,6 @@ colorama, # python-version-dependent pythonOlder, - importlib-metadata, typing-extensions, # tests pytest-xdist, @@ -94,7 +93,6 @@ buildPythonPackage rec { looseversion ] ++ lib.optionals stdenv.hostPlatform.isWindows [ colorama ] - ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ] ++ lib.optionals (pythonOlder "3.11") [ typing-extensions ]; downloaders = [ boto3 From 5a648478f5d3ca9fbf010873d5d873ba18651c27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:40:33 +0100 Subject: [PATCH 305/396] python3Packages.dns-lexicon: remove superfluous pythonOlder --- pkgs/development/python-modules/dns-lexicon/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/dns-lexicon/default.nix b/pkgs/development/python-modules/dns-lexicon/default.nix index 5cf56ac43e41..f5a5b212f380 100644 --- a/pkgs/development/python-modules/dns-lexicon/default.nix +++ b/pkgs/development/python-modules/dns-lexicon/default.nix @@ -6,14 +6,12 @@ cryptography, dnspython, fetchFromGitHub, - importlib-metadata, localzone, oci, poetry-core, pyotp, pytest-vcr, pytestCheckHook, - pythonOlder, pyyaml, requests, softlayer, @@ -50,8 +48,7 @@ buildPythonPackage rec { pyyaml requests tldextract - ] - ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; + ]; optional-dependencies = { route53 = [ boto3 ]; From fcca61225527213c74b885088c5105604aab5b1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:40:46 +0100 Subject: [PATCH 306/396] python3Packages.fake-useragent: remove superfluous pythonOlder --- pkgs/development/python-modules/fake-useragent/default.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/pkgs/development/python-modules/fake-useragent/default.nix b/pkgs/development/python-modules/fake-useragent/default.nix index 83aa273913f4..01ac7b15e79d 100644 --- a/pkgs/development/python-modules/fake-useragent/default.nix +++ b/pkgs/development/python-modules/fake-useragent/default.nix @@ -2,7 +2,6 @@ lib, fetchFromGitHub, buildPythonPackage, - importlib-resources, setuptools, pythonOlder, pytestCheckHook, @@ -26,8 +25,6 @@ buildPythonPackage rec { build-system = [ setuptools ]; - dependencies = lib.optionals (pythonOlder "3.10") [ importlib-resources ]; - nativeCheckInputs = [ pytestCheckHook ]; pythonImportsCheck = [ "fake_useragent" ]; From 57719aaa3976734b1fb71df09b53e4a1c23f1501 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:41:01 +0100 Subject: [PATCH 307/396] python3Packages.falcon: remove superfluous pythonOlder --- pkgs/development/python-modules/falcon/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/falcon/default.nix b/pkgs/development/python-modules/falcon/default.nix index 80e7609f4e15..8b9a2898cd73 100644 --- a/pkgs/development/python-modules/falcon/default.nix +++ b/pkgs/development/python-modules/falcon/default.nix @@ -2,7 +2,6 @@ lib, buildPythonPackage, pythonAtLeast, - pythonOlder, isPyPy, fetchFromGitHub, @@ -21,7 +20,6 @@ pyyaml, rapidjson, requests, - testtools, ujson, uvicorn, websockets, @@ -72,8 +70,7 @@ buildPythonPackage rec { msgpack mujson ujson - ] - ++ lib.optionals (pythonOlder "3.10") [ testtools ]; + ]; enabledTestPaths = [ "tests" ]; From bc56b02cf6f5aa8efe6eaf5b4171682b39cc7225 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:41:13 +0100 Subject: [PATCH 308/396] python3Packages.globus-sdk: remove superfluous pythonOlder --- pkgs/development/python-modules/globus-sdk/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/globus-sdk/default.nix b/pkgs/development/python-modules/globus-sdk/default.nix index c44cbf1ddf9a..40d92d6f04f4 100644 --- a/pkgs/development/python-modules/globus-sdk/default.nix +++ b/pkgs/development/python-modules/globus-sdk/default.nix @@ -6,11 +6,9 @@ flaky, pyjwt, pytestCheckHook, - pythonOlder, requests, responses, setuptools, - typing-extensions, }: buildPythonPackage rec { @@ -35,8 +33,7 @@ buildPythonPackage rec { cryptography requests pyjwt - ] - ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ]; + ]; nativeCheckInputs = [ pytestCheckHook ]; From 0796b6766472703308ece2f2119e3aa20d52f451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:41:25 +0100 Subject: [PATCH 309/396] python3Packages.gymnasium: remove superfluous pythonOlder --- pkgs/development/python-modules/gymnasium/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/gymnasium/default.nix b/pkgs/development/python-modules/gymnasium/default.nix index 77e936f2face..89b8ba72f766 100644 --- a/pkgs/development/python-modules/gymnasium/default.nix +++ b/pkgs/development/python-modules/gymnasium/default.nix @@ -12,8 +12,6 @@ farama-notifications, numpy, typing-extensions, - pythonOlder, - importlib-metadata, # optional-dependencies # atari @@ -56,8 +54,7 @@ buildPythonPackage rec { farama-notifications numpy typing-extensions - ] - ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; + ]; optional-dependencies = { atari = [ From b17a55db09be1346ffe49d31ea833e8f052a9b5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:42:00 +0100 Subject: [PATCH 310/396] python3Packages.hypothesis: remove superfluous pythonOlder --- pkgs/development/python-modules/hypothesis/default.nix | 7 ------- 1 file changed, 7 deletions(-) diff --git a/pkgs/development/python-modules/hypothesis/default.nix b/pkgs/development/python-modules/hypothesis/default.nix index 4d717c1bde13..25c4db7fb3eb 100644 --- a/pkgs/development/python-modules/hypothesis/default.nix +++ b/pkgs/development/python-modules/hypothesis/default.nix @@ -102,13 +102,6 @@ buildPythonPackage rec { # calls script with the naked interpreter "test_constants_from_running_file" ] - ++ lib.optionals (pythonOlder "3.10") [ - # not sure why these tests fail with only 3.9 - # FileNotFoundError: [Errno 2] No such file or directory: 'git' - "test_observability" - "test_assume_has_status_reason" - "test_observability_captures_stateful_reprs" - ] ++ lib.optionals (pythonAtLeast "3.12") [ # AssertionError: assert [b'def \... f(): pass'] == [b'def\\', b' f(): pass'] # https://github.com/HypothesisWorks/hypothesis/issues/4355 From 813a8871833ea3ea80ceedc29c98f380a0a5b9ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:42:19 +0100 Subject: [PATCH 311/396] python3Packages.internetarchive: remove superfluous pythonOlder --- pkgs/development/python-modules/internetarchive/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/internetarchive/default.nix b/pkgs/development/python-modules/internetarchive/default.nix index ebb9b436802d..9b4170f3045c 100644 --- a/pkgs/development/python-modules/internetarchive/default.nix +++ b/pkgs/development/python-modules/internetarchive/default.nix @@ -10,8 +10,6 @@ setuptools, tqdm, urllib3, - pythonOlder, - importlib-metadata, }: buildPythonPackage rec { @@ -34,8 +32,7 @@ buildPythonPackage rec { jsonpatch schema urllib3 - ] - ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; + ]; nativeCheckInputs = [ responses From 71661c928f7836fdaf7e91f224d0294e6e942618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:42:32 +0100 Subject: [PATCH 312/396] python3Packages.ipyparallel: remove superfluous pythonOlder --- pkgs/development/python-modules/ipyparallel/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/ipyparallel/default.nix b/pkgs/development/python-modules/ipyparallel/default.nix index 7febe8a32ea3..23c79b1faa3b 100644 --- a/pkgs/development/python-modules/ipyparallel/default.nix +++ b/pkgs/development/python-modules/ipyparallel/default.nix @@ -4,13 +4,11 @@ decorator, fetchPypi, hatchling, - importlib-metadata, ipykernel, ipython, jupyter-client, psutil, python-dateutil, - pythonOlder, pyzmq, tornado, tqdm, @@ -48,8 +46,7 @@ buildPythonPackage rec { tornado tqdm traitlets - ] - ++ lib.optional (pythonOlder "3.10") importlib-metadata; + ]; # Requires access to cluster doCheck = false; From fd524724ac946bfb64547c5becdff981a56927f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:42:47 +0100 Subject: [PATCH 313/396] python3Packages.jupyter-client: remove superfluous pythonOlder --- pkgs/development/python-modules/jupyter-client/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/jupyter-client/default.nix b/pkgs/development/python-modules/jupyter-client/default.nix index 83d941cbdba6..4066a9f80b34 100644 --- a/pkgs/development/python-modules/jupyter-client/default.nix +++ b/pkgs/development/python-modules/jupyter-client/default.nix @@ -8,8 +8,6 @@ pyzmq, tornado, traitlets, - pythonOlder, - importlib-metadata, }: buildPythonPackage rec { @@ -31,8 +29,7 @@ buildPythonPackage rec { pyzmq tornado traitlets - ] - ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; + ]; pythonImportsCheck = [ "jupyter_client" ]; From 14fc61e3a8ee77cb61358a3e4c4189435046f67c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:42:59 +0100 Subject: [PATCH 314/396] python3Packages.jupyterlab-server: remove superfluous pythonOlder --- .../development/python-modules/jupyterlab-server/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/jupyterlab-server/default.nix b/pkgs/development/python-modules/jupyterlab-server/default.nix index bfc56ab748d5..a87b821b54aa 100644 --- a/pkgs/development/python-modules/jupyterlab-server/default.nix +++ b/pkgs/development/python-modules/jupyterlab-server/default.nix @@ -2,10 +2,8 @@ lib, buildPythonPackage, fetchPypi, - pythonOlder, hatchling, babel, - importlib-metadata, jinja2, json5, jsonschema, @@ -45,8 +43,7 @@ buildPythonPackage rec { jupyter-server packaging requests - ] - ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; + ]; optional-dependencies = { openapi = [ From 8d4b26d5355f1a32cc41ac022e6b1313bc4aa941 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:43:16 +0100 Subject: [PATCH 315/396] python3Packages.jupyterlab: remove superfluous pythonOlder --- pkgs/development/python-modules/jupyterlab/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/jupyterlab/default.nix b/pkgs/development/python-modules/jupyterlab/default.nix index 0ea72b1cac0c..f97b5c86cd1d 100644 --- a/pkgs/development/python-modules/jupyterlab/default.nix +++ b/pkgs/development/python-modules/jupyterlab/default.nix @@ -8,7 +8,6 @@ hatchling, async-lru, httpx, - importlib-metadata, ipykernel, jinja2, jupyter-core, @@ -75,8 +74,7 @@ buildPythonPackage rec { tornado traitlets ] - ++ lib.optionals (pythonOlder "3.11") [ tomli ] - ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; + ++ lib.optionals (pythonOlder "3.11") [ tomli ]; makeWrapperArgs = [ "--set" From 17ae98e7910d5662c18fec7f6273683af2efcdeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:43:37 +0100 Subject: [PATCH 316/396] python3Packages.lacuscore: remove superfluous pythonOlder --- pkgs/development/python-modules/lacuscore/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/lacuscore/default.nix b/pkgs/development/python-modules/lacuscore/default.nix index af4307afed9d..1ed8f6bb91cf 100644 --- a/pkgs/development/python-modules/lacuscore/default.nix +++ b/pkgs/development/python-modules/lacuscore/default.nix @@ -4,7 +4,6 @@ buildPythonPackage, defang, dnspython, - eval-type-backport, fetchFromGitHub, orjson, playwrightcapture, @@ -51,8 +50,7 @@ buildPythonPackage rec { ++ playwrightcapture.optional-dependencies.recaptcha ++ redis.optional-dependencies.hiredis ++ ua-parser.optional-dependencies.regex - ++ lib.optionals (pythonOlder "3.11") [ async-timeout ] - ++ lib.optionals (pythonOlder "3.10") [ eval-type-backport ]; + ++ lib.optionals (pythonOlder "3.11") [ async-timeout ]; # Module has no tests doCheck = false; From 685de11974267bd593dfe8a28b065d2154029a07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:43:56 +0100 Subject: [PATCH 317/396] python3Packages.marshmallow-dataclass: remove superfluous pythonOlder --- .../python-modules/marshmallow-dataclass/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/marshmallow-dataclass/default.nix b/pkgs/development/python-modules/marshmallow-dataclass/default.nix index 41dfa037a406..8a725de16474 100644 --- a/pkgs/development/python-modules/marshmallow-dataclass/default.nix +++ b/pkgs/development/python-modules/marshmallow-dataclass/default.nix @@ -5,10 +5,8 @@ marshmallow, pytestCheckHook, pythonAtLeast, - pythonOlder, setuptools, typeguard, - typing-extensions, typing-inspect, }: @@ -29,8 +27,7 @@ buildPythonPackage rec { dependencies = [ marshmallow typing-inspect - ] - ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ]; + ]; nativeCheckInputs = [ pytestCheckHook From 2cf3fd30831cfffbbd27f23640579a2c1c80e4ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:44:11 +0100 Subject: [PATCH 318/396] python3Packages.mkdocs: remove superfluous pythonOlder --- pkgs/development/python-modules/mkdocs/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/mkdocs/default.nix b/pkgs/development/python-modules/mkdocs/default.nix index d1606ce9e596..c82a0e7e3f88 100644 --- a/pkgs/development/python-modules/mkdocs/default.nix +++ b/pkgs/development/python-modules/mkdocs/default.nix @@ -4,7 +4,6 @@ buildPythonPackage, fetchFromGitHub, pythonAtLeast, - pythonOlder, # buildtime hatchling, @@ -12,7 +11,6 @@ # runtime deps click, ghp-import, - importlib-metadata, jinja2, markdown, markupsafe, @@ -72,8 +70,7 @@ buildPythonPackage rec { pyyaml pyyaml-env-tag watchdog - ] - ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; + ]; optional-dependencies = { i18n = [ babel ]; From 6ded21128e509473a87509ca392241d3036fb320 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:44:32 +0100 Subject: [PATCH 319/396] python3Packages.mkdocstrings: remove superfluous pythonOlder --- pkgs/development/python-modules/mkdocstrings/default.nix | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pkgs/development/python-modules/mkdocstrings/default.nix b/pkgs/development/python-modules/mkdocstrings/default.nix index 3c9741a699b3..d79454834553 100644 --- a/pkgs/development/python-modules/mkdocstrings/default.nix +++ b/pkgs/development/python-modules/mkdocstrings/default.nix @@ -2,7 +2,6 @@ lib, buildPythonPackage, fetchFromGitHub, - importlib-metadata, jinja2, markdown, markupsafe, @@ -11,7 +10,6 @@ pdm-backend, pymdown-extensions, pytestCheckHook, - pythonOlder, dirty-equals, }: @@ -41,9 +39,6 @@ buildPythonPackage rec { mkdocs mkdocs-autorefs pymdown-extensions - ] - ++ lib.optionals (pythonOlder "3.10") [ - importlib-metadata ]; nativeCheckInputs = [ From 0bb887f4a7ded6b853cfdd623bd37b1f940f9646 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:44:44 +0100 Subject: [PATCH 320/396] python3Packages.parver: remove superfluous pythonOlder --- pkgs/development/python-modules/parver/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/parver/default.nix b/pkgs/development/python-modules/parver/default.nix index 50c6b4fa5766..c530c4527099 100644 --- a/pkgs/development/python-modules/parver/default.nix +++ b/pkgs/development/python-modules/parver/default.nix @@ -2,14 +2,12 @@ lib, buildPythonPackage, fetchPypi, - pythonOlder, setuptools, attrs, pytestCheckHook, hypothesis, pretend, arpeggio, - typing-extensions, }: buildPythonPackage rec { @@ -27,8 +25,7 @@ buildPythonPackage rec { propagatedBuildInputs = [ attrs arpeggio - ] - ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ]; + ]; nativeCheckInputs = [ pytestCheckHook From 306b378ad04196ff03649b5ea26929598388ced0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:44:59 +0100 Subject: [PATCH 321/396] python3Packages.pcapy-ng: remove superfluous pythonOlder --- pkgs/development/python-modules/pcapy-ng/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pcapy-ng/default.nix b/pkgs/development/python-modules/pcapy-ng/default.nix index 719e2baf7856..27c97d004948 100644 --- a/pkgs/development/python-modules/pcapy-ng/default.nix +++ b/pkgs/development/python-modules/pcapy-ng/default.nix @@ -6,7 +6,6 @@ libpcap, pkgconfig, pytestCheckHook, - pythonOlder, }: buildPythonPackage rec { @@ -36,7 +35,7 @@ buildPythonPackage rec { pythonImportsCheck = [ "pcapy" ]; - doCheck = pythonOlder "3.10"; + doCheck = false; enabledTestPaths = [ "pcapytests.py" ]; From ca2a035c31650f2fe5de85892e098c1d681fb469 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:45:20 +0100 Subject: [PATCH 322/396] python3Packages.pillow: remove superfluous pythonOlder --- pkgs/development/python-modules/pillow/default.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/pkgs/development/python-modules/pillow/default.nix b/pkgs/development/python-modules/pillow/default.nix index 04a1ef8b6369..7e7fef0ee281 100644 --- a/pkgs/development/python-modules/pillow/default.nix +++ b/pkgs/development/python-modules/pillow/default.nix @@ -2,7 +2,6 @@ lib, stdenv, buildPythonPackage, - pythonOlder, fetchFromGitHub, # build-system @@ -26,7 +25,6 @@ # optional dependencies defusedxml, olefile, - typing-extensions, # tests numpy, @@ -100,7 +98,6 @@ buildPythonPackage rec { optional-dependencies = { fpx = [ olefile ]; mic = [ olefile ]; - typing = lib.optionals (pythonOlder "3.10") [ typing-extensions ]; xmp = [ defusedxml ]; }; From c82bf1a5c0a968f4e1560c486dd4dbbd34acc3ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:45:33 +0100 Subject: [PATCH 323/396] python3Packages.plyara: remove superfluous pythonOlder --- pkgs/development/python-modules/plyara/default.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/pkgs/development/python-modules/plyara/default.nix b/pkgs/development/python-modules/plyara/default.nix index c6b3616286b0..337000b71da2 100644 --- a/pkgs/development/python-modules/plyara/default.nix +++ b/pkgs/development/python-modules/plyara/default.nix @@ -1,7 +1,6 @@ { lib, buildPythonPackage, - pythonOlder, fetchFromGitHub, setuptools, ply, @@ -18,8 +17,6 @@ buildPythonPackage rec { version = "2.2.8"; pyproject = true; - disabled = pythonOlder "3.10"; # https://github.com/plyara/plyara: "Plyara requires Python 3.10+" - src = fetchFromGitHub { owner = "plyara"; repo = "plyara"; From 0ab9eb1115d9324112695a6de19a9e5f254d3549 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:45:53 +0100 Subject: [PATCH 324/396] python3Packages.pure-python-adb: remove superfluous pythonOlder --- pkgs/development/python-modules/pure-python-adb/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pure-python-adb/default.nix b/pkgs/development/python-modules/pure-python-adb/default.nix index de63caf83b6f..f920e1dc5260 100644 --- a/pkgs/development/python-modules/pure-python-adb/default.nix +++ b/pkgs/development/python-modules/pure-python-adb/default.nix @@ -3,7 +3,6 @@ buildPythonPackage, fetchPypi, lib, - pythonOlder, pytestCheckHook, }: @@ -21,7 +20,7 @@ buildPythonPackage rec { async = [ aiofiles ]; }; - doCheck = pythonOlder "3.10"; # all tests result in RuntimeError on 3.10 + doCheck = false; # all tests result in RuntimeError nativeCheckInputs = [ pytestCheckHook ] ++ optional-dependencies.async; From e791cfab9db9373691dc686d5683cb1931e11d17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:46:18 +0100 Subject: [PATCH 325/396] python3Packages.pylint: remove superfluous pythonOlder --- pkgs/development/python-modules/pylint/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pylint/default.nix b/pkgs/development/python-modules/pylint/default.nix index af8be3288dc7..6a899b5a7926 100644 --- a/pkgs/development/python-modules/pylint/default.nix +++ b/pkgs/development/python-modules/pylint/default.nix @@ -44,8 +44,7 @@ buildPythonPackage rec { platformdirs tomlkit ] - ++ lib.optionals (pythonOlder "3.11") [ tomli ] - ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ]; + ++ lib.optionals (pythonOlder "3.11") [ tomli ]; nativeCheckInputs = [ gitpython From 9c2a28410f275602fb7c09be54aefad07b579bed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:46:31 +0100 Subject: [PATCH 326/396] python3Packages.pypdf2: remove superfluous pythonOlder --- pkgs/development/python-modules/pypdf2/default.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/development/python-modules/pypdf2/default.nix b/pkgs/development/python-modules/pypdf2/default.nix index 3dd1a8166818..1fbf80ad74c6 100644 --- a/pkgs/development/python-modules/pypdf2/default.nix +++ b/pkgs/development/python-modules/pypdf2/default.nix @@ -3,8 +3,6 @@ fetchPypi, flit-core, lib, - pythonOlder, - typing-extensions, }: buildPythonPackage rec { @@ -21,8 +19,6 @@ buildPythonPackage rec { nativeBuildInputs = [ flit-core ]; - dependencies = lib.optionals (pythonOlder "3.10") [ typing-extensions ]; - # no test doCheck = false; From de8dc89c33b4ecc08f26c5c5c2c195bd5fe587e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:46:51 +0100 Subject: [PATCH 327/396] python3Packages.pystache: remove superfluous pythonOlder --- pkgs/development/python-modules/pystache/default.nix | 6 ------ 1 file changed, 6 deletions(-) diff --git a/pkgs/development/python-modules/pystache/default.nix b/pkgs/development/python-modules/pystache/default.nix index 529cee0c0ba5..3aa24b34ceaa 100644 --- a/pkgs/development/python-modules/pystache/default.nix +++ b/pkgs/development/python-modules/pystache/default.nix @@ -2,10 +2,8 @@ lib, fetchFromGitHub, buildPythonPackage, - pythonOlder, setuptools, setuptools-scm, - importlib-metadata, pytestCheckHook, }: @@ -26,10 +24,6 @@ buildPythonPackage rec { setuptools-scm ]; - dependencies = lib.optionals (pythonOlder "3.10") [ - importlib-metadata - ]; - nativeCheckInputs = [ pytestCheckHook ]; pythonImportsCheck = [ "pystache" ]; From 4dde63f15594011dffabc8c5df558acb7fac8dab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:47:11 +0100 Subject: [PATCH 328/396] python3Packages.quart-cors: remove superfluous pythonOlder --- pkgs/development/python-modules/quart-cors/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/quart-cors/default.nix b/pkgs/development/python-modules/quart-cors/default.nix index 65a4f298b730..05097965ad07 100644 --- a/pkgs/development/python-modules/quart-cors/default.nix +++ b/pkgs/development/python-modules/quart-cors/default.nix @@ -2,14 +2,12 @@ lib, buildPythonPackage, fetchFromGitHub, - pythonOlder, # build-system pdm-backend, # propagates quart, - typing-extensions, # tests pytestCheckHook, @@ -31,7 +29,7 @@ buildPythonPackage rec { build-system = [ pdm-backend ]; - dependencies = [ quart ] ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ]; + dependencies = [ quart ]; pythonImportsCheck = [ "quart_cors" ]; From 9c5736c20febff833b2785734ac86f6640d7aec5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:47:24 +0100 Subject: [PATCH 329/396] python3Packages.quart: remove superfluous pythonOlder --- pkgs/development/python-modules/quart/default.nix | 7 ------- 1 file changed, 7 deletions(-) diff --git a/pkgs/development/python-modules/quart/default.nix b/pkgs/development/python-modules/quart/default.nix index 4867a891647f..8a5b5a650421 100644 --- a/pkgs/development/python-modules/quart/default.nix +++ b/pkgs/development/python-modules/quart/default.nix @@ -2,7 +2,6 @@ lib, buildPythonPackage, fetchFromGitHub, - pythonOlder, # build-system flit-core, @@ -13,13 +12,11 @@ click, flask, hypercorn, - importlib-metadata, itsdangerous, jinja2, markupsafe, pydata-sphinx-theme, python-dotenv, - typing-extensions, werkzeug, # tests @@ -57,10 +54,6 @@ buildPythonPackage rec { pydata-sphinx-theme python-dotenv werkzeug - ] - ++ lib.optionals (pythonOlder "3.10") [ - importlib-metadata - typing-extensions ]; pythonImportsCheck = [ "quart" ]; From e55ede2a7f9547e7a58041308562395f67198cf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:47:38 +0100 Subject: [PATCH 330/396] python3Packages.segno: remove superfluous pythonOlder --- pkgs/development/python-modules/segno/default.nix | 6 ------ 1 file changed, 6 deletions(-) diff --git a/pkgs/development/python-modules/segno/default.nix b/pkgs/development/python-modules/segno/default.nix index 58b621416aff..d88eb41203eb 100644 --- a/pkgs/development/python-modules/segno/default.nix +++ b/pkgs/development/python-modules/segno/default.nix @@ -2,14 +2,10 @@ lib, buildPythonPackage, fetchFromGitHub, - pythonOlder, # build-system flit-core, - # dependencies - importlib-metadata, - # tests pytestCheckHook, pypng, @@ -30,8 +26,6 @@ buildPythonPackage rec { nativeBuildInputs = [ flit-core ]; - propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; - nativeCheckInputs = [ pytestCheckHook pypng From fc23686a5e20bd09ab1f0d3475715c3c9d76cd2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:47:49 +0100 Subject: [PATCH 331/396] python3Packages.skytemple-ssb-debugger: remove superfluous pythonOlder --- .../python-modules/skytemple-ssb-debugger/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix b/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix index c840f7744058..469f9b1587aa 100644 --- a/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix +++ b/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix @@ -6,7 +6,6 @@ gobject-introspection, gtk3, gtksourceview4, - importlib-metadata, lib, ndspy, nest-asyncio, @@ -14,7 +13,6 @@ pycairo, pygobject3, pygtkspellcheck, - pythonOlder, range-typed-integers, skytemple-files, skytemple-icons, @@ -56,8 +54,7 @@ buildPythonPackage rec { skytemple-files skytemple-icons skytemple-ssb-emulator - ] - ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; + ]; doCheck = false; # requires Pokémon Mystery Dungeon ROM pythonImportsCheck = [ "skytemple_ssb_debugger" ]; From 1d4c956c13131bf35bc1f0f7f5bb744c4bfd2ff4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:48:01 +0100 Subject: [PATCH 332/396] python3Packages.sphinx-autoapi: remove superfluous pythonOlder --- pkgs/development/python-modules/sphinx-autoapi/default.nix | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pkgs/development/python-modules/sphinx-autoapi/default.nix b/pkgs/development/python-modules/sphinx-autoapi/default.nix index 25162f419839..d1b8e9d288e6 100644 --- a/pkgs/development/python-modules/sphinx-autoapi/default.nix +++ b/pkgs/development/python-modules/sphinx-autoapi/default.nix @@ -2,7 +2,6 @@ lib, buildPythonPackage, fetchFromGitHub, - pythonOlder, # build-system flit-core, @@ -12,7 +11,6 @@ jinja2, pyyaml, sphinx, - stdlib-list, # tests beautifulsoup4, @@ -38,9 +36,6 @@ buildPythonPackage rec { jinja2 pyyaml sphinx - ] - ++ lib.optionals (pythonOlder "3.10") [ - stdlib-list ]; nativeCheckInputs = [ From fcda4cd394413a02327b4e6e9c5aa61fc9d264e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:48:15 +0100 Subject: [PATCH 333/396] python3Packages.sphinx: remove superfluous pythonOlder --- pkgs/development/python-modules/sphinx/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/sphinx/default.nix b/pkgs/development/python-modules/sphinx/default.nix index 99dc8cc3bb06..655b36b081bd 100644 --- a/pkgs/development/python-modules/sphinx/default.nix +++ b/pkgs/development/python-modules/sphinx/default.nix @@ -14,7 +14,6 @@ alabaster, docutils, imagesize, - importlib-metadata, jinja2, packaging, pygments, @@ -86,8 +85,7 @@ buildPythonPackage rec { # extra[docs] sphinxcontrib-websupport ] - ++ lib.optionals (pythonOlder "3.11") [ tomli ] - ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; + ++ lib.optionals (pythonOlder "3.11") [ tomli ]; __darwinAllowLocalNetworking = true; From a0b20567d0f2d46c68773e6673382ccdc050c3f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:48:27 +0100 Subject: [PATCH 334/396] python3Packages.sphinxcontrib-bibtex: remove superfluous pythonOlder --- .../python-modules/sphinxcontrib-bibtex/default.nix | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix index c81efcfeb52a..97d6939c7185 100644 --- a/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix +++ b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix @@ -2,10 +2,8 @@ lib, buildPythonPackage, fetchFromGitHub, - pythonOlder, setuptools, docutils, - importlib-metadata, oset, pybtex, pybtex-docutils, @@ -34,9 +32,6 @@ buildPythonPackage rec { pybtex pybtex-docutils sphinx - ] - ++ lib.optionals (pythonOlder "3.10") [ - importlib-metadata ]; nativeCheckInputs = [ From ff47585407cc901e7ed85de1fb4ebd7e0d3e67d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:48:40 +0100 Subject: [PATCH 335/396] python3Packages.starlette: remove superfluous pythonOlder --- pkgs/development/python-modules/starlette/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/starlette/default.nix b/pkgs/development/python-modules/starlette/default.nix index eefb85904013..af9c1a98e96a 100644 --- a/pkgs/development/python-modules/starlette/default.nix +++ b/pkgs/development/python-modules/starlette/default.nix @@ -19,7 +19,6 @@ # tests pytestCheckHook, - pythonOlder, trio, # reverse dependencies @@ -40,7 +39,7 @@ buildPythonPackage rec { build-system = [ hatchling ]; - dependencies = [ anyio ] ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ]; + dependencies = [ anyio ]; optional-dependencies.full = [ itsdangerous From bd6260748a5afdd54d5dabc42a354f3f2d80d018 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Mon, 19 Jan 2026 09:50:01 -0600 Subject: [PATCH 336/396] vimPlugins.tuis-nvim: init at 0-unstable-2026-01-15 https: //github.com/jrop/tuis.nvim Signed-off-by: Austin Horstman --- .../applications/editors/vim/plugins/generated.nix | 14 ++++++++++++++ .../editors/vim/plugins/vim-plugin-names | 1 + 2 files changed, 15 insertions(+) diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index 32a439c65965..2eb98b47b316 100644 --- a/pkgs/applications/editors/vim/plugins/generated.nix +++ b/pkgs/applications/editors/vim/plugins/generated.nix @@ -16184,6 +16184,20 @@ final: prev: { meta.hydraPlatforms = [ ]; }; + tuis-nvim = buildVimPlugin { + pname = "tuis.nvim"; + version = "0-unstable-2026-01-15"; + src = fetchFromGitHub { + owner = "jrop"; + repo = "tuis.nvim"; + rev = "3f3daa725cf1faffe07287cfe347e054d2f80470"; + hash = "sha256-IJIqWD6XNzoAVr75WLzBf1Ut35RxSHzZ0//hTskEdSA="; + fetchSubmodules = true; + }; + meta.homepage = "https://github.com/jrop/tuis.nvim/"; + meta.hydraPlatforms = [ ]; + }; + tv-nvim = buildVimPlugin { pname = "tv.nvim"; version = "0-unstable-2026-01-10"; diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names index aad3e13cc25e..860f580027f6 100644 --- a/pkgs/applications/editors/vim/plugins/vim-plugin-names +++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names @@ -1242,6 +1242,7 @@ https://github.com/dmmulroy/tsc.nvim/,HEAD, https://github.com/jgdavey/tslime.vim/,, https://github.com/mtrajano/tssorter.nvim/,HEAD, https://github.com/Quramy/tsuquyomi/,, +https://github.com/jrop/tuis.nvim/,HEAD, https://github.com/alexpasmantier/tv.nvim/,HEAD, https://github.com/folke/twilight.nvim/,, https://github.com/pmizio/typescript-tools.nvim/,, From d4b52c4e45d46b119900fe112375a2a506f93be1 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 19 Jan 2026 16:56:56 +0100 Subject: [PATCH 337/396] dump_syms: 2.3.5 -> 2.3.6 https://github.com/mozilla/dump_syms/blob/v2.3.6/CHANGELOG.md --- pkgs/by-name/du/dump_syms/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/du/dump_syms/package.nix b/pkgs/by-name/du/dump_syms/package.nix index b351c4cf8057..c43cd6a9a7dd 100644 --- a/pkgs/by-name/du/dump_syms/package.nix +++ b/pkgs/by-name/du/dump_syms/package.nix @@ -14,7 +14,7 @@ let pname = "dump_syms"; - version = "2.3.5"; + version = "2.3.6"; in rustPlatform.buildRustPackage { inherit pname version; @@ -23,10 +23,10 @@ rustPlatform.buildRustPackage { owner = "mozilla"; repo = "dump_syms"; rev = "v${version}"; - hash = "sha256-zxYGxqnh6urXDC/ZQf3aFzBqOj5QNulyDpTsZ47BDkU="; + hash = "sha256-ABfjLV6WMIiaSiyfR/uxL6+VyO/pO6oZjbJSAxRGXuE="; }; - cargoHash = "sha256-gnXf6APcEJJKpKsqsBPLXlZddEt+6ENyt15iDw8XShc="; + cargoHash = "sha256-t9xK7epfBp1XgewlAuAnInlKQDQ+3gVNmJoLNcey8YU="; nativeBuildInputs = [ pkg-config From 1bac22d304fc7c7422e10b9a97f9f822f82263ff Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 16:08:09 +0000 Subject: [PATCH 338/396] todoist: 0.22.0 -> 0.23.0 --- pkgs/by-name/to/todoist/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/to/todoist/package.nix b/pkgs/by-name/to/todoist/package.nix index e65deb19f956..097aac960a03 100644 --- a/pkgs/by-name/to/todoist/package.nix +++ b/pkgs/by-name/to/todoist/package.nix @@ -6,16 +6,16 @@ buildGoModule rec { pname = "todoist"; - version = "0.22.0"; + version = "0.23.0"; src = fetchFromGitHub { owner = "sachaos"; repo = "todoist"; rev = "v${version}"; - sha256 = "sha256-+UECYUozca7PKKiTrmPAobSF0y6xnWYCGaChk9bwANg="; + sha256 = "sha256-+W6pc6J5eK/Sg7rc/6XJQtQ2IwVjyF/GbCX8+88k4Gc="; }; - vendorHash = "sha256-fWFFWFVnLtZivlqMRIi6TjvticiKlyXF2Bx9Munos8M="; + vendorHash = "sha256-eVB5k/Z5Z6SsPqySPm4xZIh07c9xbijImRk8zdvY6tA="; doCheck = false; From f57b461f255b10a787ada92bd308c6c313faf089 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 16:09:58 +0000 Subject: [PATCH 339/396] python3Packages.awscrt: 0.31.0 -> 0.31.1 --- pkgs/development/python-modules/awscrt/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/awscrt/default.nix b/pkgs/development/python-modules/awscrt/default.nix index 1750159e29a6..1b904a24ea14 100644 --- a/pkgs/development/python-modules/awscrt/default.nix +++ b/pkgs/development/python-modules/awscrt/default.nix @@ -10,12 +10,12 @@ buildPythonPackage (finalAttrs: { pname = "awscrt"; - version = "0.31.0"; + version = "0.31.1"; pyproject = true; src = fetchPypi { inherit (finalAttrs) pname version; - hash = "sha256-3sYhdPC5viwybu2gYudE67+qi27HKH9SaHt61DARW78="; + hash = "sha256-q7ZHaNJb9WPajiFl1Hekkcuhi8IsTsjbesva6U5Z68Q="; }; build-system = [ setuptools ]; From 457cb31aead530c8d972eda08b69ee9869da924c Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Mon, 19 Jan 2026 10:15:04 -0600 Subject: [PATCH 340/396] vimPluginsUpdater: fix script buildNeovimPlugin removed in previous update, but get-plugins is trying to call package with removed argument. Signed-off-by: Austin Horstman --- pkgs/applications/editors/vim/plugins/utils/get-plugins.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vim/plugins/utils/get-plugins.nix b/pkgs/applications/editors/vim/plugins/utils/get-plugins.nix index c32f3880d6f2..837a98fd62ee 100644 --- a/pkgs/applications/editors/vim/plugins/utils/get-plugins.nix +++ b/pkgs/applications/editors/vim/plugins/utils/get-plugins.nix @@ -1,10 +1,9 @@ with import { }; let inherit (vimUtils.override { inherit vim; }) buildVimPlugin; - inherit (neovimUtils) buildNeovimPlugin; generated = callPackage { - inherit buildNeovimPlugin buildVimPlugin; + inherit buildVimPlugin; } { } { }; hasChecksum = From 94a2d924a3875d2d194dfba666c8b35c6e8baedb Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 16:18:51 +0000 Subject: [PATCH 341/396] python3Packages.mpegdash: 0.4.0 -> 0.4.1 --- pkgs/development/python-modules/mpegdash/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mpegdash/default.nix b/pkgs/development/python-modules/mpegdash/default.nix index 3480c4dcafd8..956dd5287c7b 100644 --- a/pkgs/development/python-modules/mpegdash/default.nix +++ b/pkgs/development/python-modules/mpegdash/default.nix @@ -7,14 +7,14 @@ }: buildPythonPackage rec { pname = "mpegdash"; - version = "0.4.0"; + version = "0.4.1"; pyproject = true; src = fetchFromGitHub { owner = "sangwonl"; repo = "python-mpegdash"; rev = version; - hash = "sha256-eKtJ+QzeoMog5X1r1ix9vrmGTi/9KzdJiu80vrTX14I="; + hash = "sha256-WrsTxI6zdPCvzU4bW41kuPpR6B1DcDRUFDbAb9JZnK8="; }; nativeBuildInputs = [ setuptools ]; From e05e9846892ea740ce26d8a07f74b82adf08b6fc Mon Sep 17 00:00:00 2001 From: Michael Daniels Date: Sat, 17 Jan 2026 20:59:12 -0500 Subject: [PATCH 342/396] ci/github-script/reviews: rework dismissal/non-posting logic Dismissals are done automatically by commits.js, even for reviews from check-target-branches.js. This is not desirable. The solution is (1) do not decline to post a review because it was already dismissed (because it may have not been dismissed by a human, and circumstances may have changed), and (2) reword the auto-dismissal message to not imply that whatever problems were present are fixed. --- ci/github-script/reviews.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/ci/github-script/reviews.js b/ci/github-script/reviews.js index f10f141d84cb..ef8f4272c02c 100644 --- a/ci/github-script/reviews.js +++ b/ci/github-script/reviews.js @@ -19,13 +19,13 @@ async function dismissReviews({ github, context, dry }) { ...context.repo, pull_number, review_id: review.id, - message: 'All good now, thank you!', + message: 'Review dismissed automatically', }) } await github.graphql( `mutation($node_id:ID!) { minimizeComment(input: { - classifier: RESOLVED, + classifier: OUTDATED, subjectId: $node_id }) { clientMutationId } @@ -49,10 +49,7 @@ async function postReview({ github, context, core, dry, body }) { review.user?.login === 'github-actions[bot]' && // If a review is still pending, we can just update this instead // of posting a new one. - (review.state === 'CHANGES_REQUESTED' || - // No need to post a new review, if an older one with the exact - // same content had already been dismissed. - review.body === body), + review.state === 'CHANGES_REQUESTED', ) if (dry) { From 0ba1ea61e32e1af98324311932d91d6caba4cc94 Mon Sep 17 00:00:00 2001 From: Michael Daniels Date: Sun, 18 Jan 2026 19:56:44 -0500 Subject: [PATCH 343/396] ci/github-script/reviews: allow leaving review comments --- ci/github-script/reviews.js | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/ci/github-script/reviews.js b/ci/github-script/reviews.js index ef8f4272c02c..e2880f3c5a01 100644 --- a/ci/github-script/reviews.js +++ b/ci/github-script/reviews.js @@ -1,3 +1,16 @@ +const eventToState = { + COMMENT: 'COMMENTED', + REQUEST_CHANGES: 'CHANGES_REQUESTED', +} + +/** + * @param {{ + * github: InstanceType, + * context: import('@actions/github/lib/context').Context + * core: import('@actions/core') + * dry: boolean + * }} CheckTargetBranchProps + */ async function dismissReviews({ github, context, dry }) { const pull_number = context.payload.pull_request.number @@ -36,7 +49,14 @@ async function dismissReviews({ github, context, dry }) { ) } -async function postReview({ github, context, core, dry, body }) { +async function postReview({ + github, + context, + core, + dry, + body, + event = 'REQUEST_CHANGES', +}) { const pull_number = context.payload.pull_request.number const pendingReview = ( @@ -49,7 +69,7 @@ async function postReview({ github, context, core, dry, body }) { review.user?.login === 'github-actions[bot]' && // If a review is still pending, we can just update this instead // of posting a new one. - review.state === 'CHANGES_REQUESTED', + review.state === eventToState[event], ) if (dry) { @@ -69,7 +89,7 @@ async function postReview({ github, context, core, dry, body }) { await github.rest.pulls.createReview({ ...context.repo, pull_number, - event: 'REQUEST_CHANGES', + event, body, }) } From abd6033067bef404f7458e9fefdd9063059a80c4 Mon Sep 17 00:00:00 2001 From: Darren Rambaud <225436867+debtquity@users.noreply.github.com> Date: Mon, 19 Jan 2026 10:42:59 -0600 Subject: [PATCH 344/396] meilisearch: 1.32.2 -> 1.33.0 * diff: https://github.com/meilisearch/meilisearch/compare/v1.32.2...v1.33.0 * changelog: https://github.com/meilisearch/meilisearch/releases/tag/v1.33.0 Resolves: NixOS/nixpkgs#481683 --- pkgs/by-name/me/meilisearch/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/me/meilisearch/package.nix b/pkgs/by-name/me/meilisearch/package.nix index 3a1b810147eb..757aad01951b 100644 --- a/pkgs/by-name/me/meilisearch/package.nix +++ b/pkgs/by-name/me/meilisearch/package.nix @@ -8,18 +8,18 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "meilisearch"; - version = "1.32.2"; + version = "1.33.0"; src = fetchFromGitHub { owner = "meilisearch"; repo = "meilisearch"; tag = "v${finalAttrs.version}"; - hash = "sha256-72AflpW0z1vpPEYsP07U9NJ84CEPhAbLo+tXxI8Qha4="; + hash = "sha256-OC8JPG/UAgBm+l5bFG4A+4/3cqkUMbeBkqIG+rjiucY="; }; cargoBuildFlags = [ "--package=meilisearch" ]; - cargoHash = "sha256-UCQk76TB7gWFd0077RQ39IXGrGjc6hxhXJW0pBheADU="; + cargoHash = "sha256-MwCbrPnWLipuSaJdtrm595e/geE/pb6Nw1vHL7l/XRU="; # Default features include mini dashboard which downloads something from the internet. buildNoDefaultFeatures = true; From ac3f5492dfe75c55f4e19e7414d46861b120e293 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 17:51:00 +0100 Subject: [PATCH 345/396] python3Packages.robotframework-tools: drop --- .../robotframework-tools/default.nix | 51 ------------------- pkgs/top-level/python-aliases.nix | 1 + pkgs/top-level/python-packages.nix | 2 - 3 files changed, 1 insertion(+), 53 deletions(-) delete mode 100644 pkgs/development/python-modules/robotframework-tools/default.nix diff --git a/pkgs/development/python-modules/robotframework-tools/default.nix b/pkgs/development/python-modules/robotframework-tools/default.nix deleted file mode 100644 index 8bd613595a24..000000000000 --- a/pkgs/development/python-modules/robotframework-tools/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - robotframework, - moretools, - path, - six, - zetup, - modeled, - pytestCheckHook, -}: - -buildPythonPackage rec { - version = "0.1rc4"; - format = "setuptools"; - pname = "robotframework-tools"; - - src = fetchPypi { - inherit pname version; - sha256 = "0377ikajf6c3zcy3lc0kh4w9zmlqyplk2c2hb0yyc7h3jnfnya96"; - }; - - nativeBuildInputs = [ zetup ]; - - propagatedBuildInputs = [ - robotframework - moretools - path - six - modeled - ]; - - postPatch = '' - # Remove upstream's selfmade approach to collect the dependencies - # https://github.com/userzimmermann/robotframework-tools/issues/1 - substituteInPlace setup.py --replace \ - "setup_requires=SETUP_REQUIRES + (zfg.SETUP_REQUIRES or [])," "" - ''; - - nativeCheckInputs = [ pytestCheckHook ]; - enabledTestPaths = [ "test" ]; - pythonImportsCheck = [ "robottools" ]; - - meta = { - description = "Python Tools for Robot Framework and Test Libraries"; - homepage = "https://github.com/userzimmermann/robotframework-tools"; - license = lib.licenses.gpl3Plus; - maintainers = [ ]; - }; -} diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index 42dec1460948..4a2bca569e45 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -441,6 +441,7 @@ mapAliases { retry_decorator = throw "'retry_decorator' has been renamed to/replaced by 'retry-decorator'"; # Converted to throw 2025-10-29 retworkx = throw "'retworkx' has been renamed to/replaced by 'rustworkx'"; # Converted to throw 2025-10-29 rki-covid-parser = throw "rki-covid-parser has been removed because it is unmaintained and broken"; # added 2025-09-20 + robotframework-tools = "'robotframework-tools' has been removed because it is unmaintained"; # Added 2026-01-19 ROPGadget = throw "'ROPGadget' has been renamed to/replaced by 'ropgadget'"; # Converted to throw 2025-10-29 rtslib = throw "'rtslib' has been renamed to/replaced by 'rtslib-fb'"; # Converted to throw 2025-10-29 rtsp-to-webrtc = throw "rtsp-to-webrtc has been removed because it is unmaintained"; # added 2025-09-20 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 23bf968e1134..7713e1583b7e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -16637,8 +16637,6 @@ self: super: with self; { robotframework-sshlibrary = callPackage ../development/python-modules/robotframework-sshlibrary { }; - robotframework-tools = callPackage ../development/python-modules/robotframework-tools { }; - robotstatuschecker = callPackage ../development/python-modules/robotstatuschecker { }; robotsuite = callPackage ../development/python-modules/robotsuite { }; From 887566a1b953847ab4c45d4da9d505be53aaadf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 17:54:21 +0100 Subject: [PATCH 346/396] python3Packages.modeled: drop --- .../python-modules/modeled/default.nix | 44 ------------------- pkgs/top-level/python-aliases.nix | 1 + pkgs/top-level/python-packages.nix | 2 - 3 files changed, 1 insertion(+), 46 deletions(-) delete mode 100644 pkgs/development/python-modules/modeled/default.nix diff --git a/pkgs/development/python-modules/modeled/default.nix b/pkgs/development/python-modules/modeled/default.nix deleted file mode 100644 index 6b1c05e79f25..000000000000 --- a/pkgs/development/python-modules/modeled/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ - stdenv, - lib, - buildPythonPackage, - fetchPypi, - zetup, - six, - moretools, - path, - pytestCheckHook, -}: - -buildPythonPackage rec { - pname = "modeled"; - version = "0.1.8"; - format = "setuptools"; - - src = fetchPypi { - extension = "zip"; - inherit pname version; - sha256 = "1wcl3r02q10gxy4xw7g8x2wg2sx4sbawzbfcl7a5xdydrxl4r4v4"; - }; - - buildInputs = [ zetup ]; - - propagatedBuildInputs = [ - six - moretools - path - ]; - - nativeCheckInputs = [ pytestCheckHook ]; - - pythonImportsCheck = [ "modeled" ]; - - meta = { - broken = - (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) || stdenv.hostPlatform.isDarwin; - description = "Universal data modeling for Python"; - homepage = "https://github.com/modeled/modeled"; - license = lib.licenses.lgpl3Only; - maintainers = [ ]; - }; -} diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index 4a2bca569e45..761abcba011e 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -277,6 +277,7 @@ mapAliases { mkdocs-macros = mkdocs-macros-plugin; # added 2025-09-02 mkdocs-minify = throw "'mkdocs-minify' has been renamed to/replaced by 'mkdocs-minify-plugin'"; # Converted to throw 2025-10-29 mne-python = throw "'mne-python' has been renamed to/replaced by 'mne'"; # Converted to throw 2025-10-29 + modeled = "'modeled' has been removed because it is unmaintained"; # Added 2026-01-19 mpris-server = throw "mpris-server was removed because it is unused"; # added 2025-10-31 msldap-bad = throw "'msldap-bad' has been renamed to/replaced by 'badldap'"; # added 2025-11-06 mullvad-closest = throw "'mullvad-closest' has been removed as it was unmaintained. Consider using 'mullvad-compass' instead."; # Added 2026-01-13 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 7713e1583b7e..ae1ba9f0c72b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9925,8 +9925,6 @@ self: super: with self; { modelcif = callPackage ../development/python-modules/modelcif { }; - modeled = callPackage ../development/python-modules/modeled { }; - modelscope = callPackage ../development/python-modules/modelscope { }; modern-colorthief = callPackage ../development/python-modules/modern-colorthief { }; From 8271c335e3c23961c8826e477dd3e5606f2a5c07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 17:56:10 +0100 Subject: [PATCH 347/396] python3Packages.moretools: drop --- .../python-modules/moretools/default.nix | 42 ------------------- pkgs/top-level/python-aliases.nix | 1 + pkgs/top-level/python-packages.nix | 2 - 3 files changed, 1 insertion(+), 44 deletions(-) delete mode 100644 pkgs/development/python-modules/moretools/default.nix diff --git a/pkgs/development/python-modules/moretools/default.nix b/pkgs/development/python-modules/moretools/default.nix deleted file mode 100644 index 091964aabf74..000000000000 --- a/pkgs/development/python-modules/moretools/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - six, - path, - zetup, - pytest, - decorator, -}: - -buildPythonPackage rec { - pname = "moretools"; - version = "0.1.12"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - sha256 = "73b0469d4f1df6d967508103473f0b1524708adbff71f8f90ef71d9a44226b22"; - }; - - checkPhase = '' - py.test test - ''; - - nativeBuildInputs = [ zetup ]; - nativeCheckInputs = [ - six - path - pytest - ]; - propagatedBuildInputs = [ decorator ]; - - meta = { - description = '' - Many more basic tools for python 2/3 extending itertools, functools, operator and collections - ''; - homepage = "https://bitbucket.org/userzimmermann/python-moretools"; - license = lib.licenses.gpl3Plus; - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index 761abcba011e..238ac418719e 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -278,6 +278,7 @@ mapAliases { mkdocs-minify = throw "'mkdocs-minify' has been renamed to/replaced by 'mkdocs-minify-plugin'"; # Converted to throw 2025-10-29 mne-python = throw "'mne-python' has been renamed to/replaced by 'mne'"; # Converted to throw 2025-10-29 modeled = "'modeled' has been removed because it is unmaintained"; # Added 2026-01-19 + moretools = "'moretools' has been removed because it is unmaintained"; # Added 2026-01-19 mpris-server = throw "mpris-server was removed because it is unused"; # added 2025-10-31 msldap-bad = throw "'msldap-bad' has been renamed to/replaced by 'badldap'"; # added 2025-11-06 mullvad-closest = throw "'mullvad-closest' has been removed as it was unmaintained. Consider using 'mullvad-compass' instead."; # Added 2026-01-13 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ae1ba9f0c72b..8c93f818a2d8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10002,8 +10002,6 @@ self: super: with self; { moreorless = callPackage ../development/python-modules/moreorless { }; - moretools = callPackage ../development/python-modules/moretools { }; - morfessor = callPackage ../development/python-modules/morfessor { }; morphys = callPackage ../development/python-modules/morphys { }; From a1fdfe42c86eac975a0776038a6a38192aa0c509 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 17:57:38 +0100 Subject: [PATCH 348/396] python3Packages.zetup: drop --- .../python-modules/zetup/default.nix | 51 ------------------- pkgs/top-level/python-aliases.nix | 1 + pkgs/top-level/python-packages.nix | 2 - 3 files changed, 1 insertion(+), 53 deletions(-) delete mode 100644 pkgs/development/python-modules/zetup/default.nix diff --git a/pkgs/development/python-modules/zetup/default.nix b/pkgs/development/python-modules/zetup/default.nix deleted file mode 100644 index 56e672f29aa9..000000000000 --- a/pkgs/development/python-modules/zetup/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - nbconvert, - path, - pytestCheckHook, - setuptools-scm, - pythonAtLeast, -}: - -buildPythonPackage rec { - pname = "zetup"; - version = "0.2.64"; - format = "setuptools"; - - # https://github.com/zimmermanncode/zetup/issues/4 - disabled = pythonAtLeast "3.10"; - - src = fetchPypi { - inherit pname version; - sha256 = "b8a9bdcfa4b705d72b55b218658bc9403c157db7b57a14158253c98d03ab713d"; - }; - - # Python > 3.7 compatibility - postPatch = '' - substituteInPlace zetup/zetup_config.py \ - --replace "'3.7']" "'3.7', '3.8', '3.9', '3.10']" - ''; - - checkPhase = '' - py.test test -k "not TestObject" --deselect=test/test_zetup_config.py::test_classifiers - ''; - - propagatedBuildInputs = [ setuptools-scm ]; - - nativeCheckInputs = [ - path - nbconvert - pytestCheckHook - ]; - - pythonImportsCheck = [ "zetup" ]; - - meta = { - description = "Zimmermann's Extensible Tools for Unified Project setups"; - homepage = "https://github.com/zimmermanncode/zetup"; - license = lib.licenses.gpl3Plus; - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index 238ac418719e..7ab20c936134 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -537,6 +537,7 @@ mapAliases { z3 = throw "'z3' has been renamed to/replaced by 'z3-solver'"; # Converted to throw 2025-10-29 zc-buildout221 = throw "'zc-buildout221' has been renamed to/replaced by 'zc-buildout'"; # Converted to throw 2025-10-29 zc_lockfile = throw "'zc_lockfile' has been renamed to/replaced by 'zc-lockfile'"; # Converted to throw 2025-10-29 + zetup = "'zetup' has been removed because it is unmaintained"; # Added 2026-01-19 zope_component = throw "'zope_component' has been renamed to/replaced by 'zope-component'"; # Converted to throw 2025-10-29 zope_configuration = throw "'zope_configuration' has been renamed to/replaced by 'zope-configuration'"; # Converted to throw 2025-10-29 zope_contenttype = throw "'zope_contenttype' has been renamed to/replaced by 'zope-contenttype'"; # Converted to throw 2025-10-29 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 8c93f818a2d8..b3fb192c8870 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -21118,8 +21118,6 @@ self: super: with self; { zerorpc = callPackage ../development/python-modules/zerorpc { }; - zetup = callPackage ../development/python-modules/zetup { }; - zeversolar = callPackage ../development/python-modules/zeversolar { }; zeversolarlocal = callPackage ../development/python-modules/zeversolarlocal { }; From 240a5329a3c01f2798bdced28ae8b5a3f68a05b9 Mon Sep 17 00:00:00 2001 From: coolGi Date: Tue, 20 Jan 2026 03:45:48 +1030 Subject: [PATCH 349/396] appimageTools: unset QT_PLUGIN_PATH to avoid conflict between QT versions packaged by system & appimage --- pkgs/build-support/appimage/appimage-exec.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/build-support/appimage/appimage-exec.sh b/pkgs/build-support/appimage/appimage-exec.sh index 29b695fd0848..74a37055c862 100755 --- a/pkgs/build-support/appimage/appimage-exec.sh +++ b/pkgs/build-support/appimage/appimage-exec.sh @@ -74,6 +74,10 @@ apprun() { else echo "$(basename "$APPIMAGE")" installed in "$APPDIR" fi + # Fix potential for the appimages to try to import libraries from QT + # installed on the system, causing a version mismatch + unset QT_PLUGIN_PATH + export PATH="$PATH:$PWD/usr/bin" } From 6900ae06d0dbe2eb6ca24daea9a6345abad604f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Mon, 19 Jan 2026 09:23:49 -0800 Subject: [PATCH 350/396] python3Packages.beartype: 0.21.0 -> 0.22.9 Diff: https://github.com/beartype/beartype/compare/v0.21.0...v0.22.9 Changelog: https://github.com/beartype/beartype/releases/tag/v0.22.0 https://github.com/beartype/beartype/releases/tag/v0.22.1 https://github.com/beartype/beartype/releases/tag/v0.22.2 https://github.com/beartype/beartype/releases/tag/v0.22.3 https://github.com/beartype/beartype/releases/tag/v0.22.4 https://github.com/beartype/beartype/releases/tag/v0.22.5 https://github.com/beartype/beartype/releases/tag/v0.22.6 https://github.com/beartype/beartype/releases/tag/v0.22.7 https://github.com/beartype/beartype/releases/tag/v0.22.8 https://github.com/beartype/beartype/releases/tag/v0.22.9 --- .../python-modules/beartype/default.nix | 22 ++----------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/pkgs/development/python-modules/beartype/default.nix b/pkgs/development/python-modules/beartype/default.nix index a8a1149930d6..9a131990a677 100644 --- a/pkgs/development/python-modules/beartype/default.nix +++ b/pkgs/development/python-modules/beartype/default.nix @@ -4,30 +4,21 @@ fetchFromGitHub, hatchling, pytestCheckHook, - pythonAtLeast, typing-extensions, }: buildPythonPackage rec { pname = "beartype"; - version = "0.21.0"; + version = "0.22.9"; pyproject = true; src = fetchFromGitHub { owner = "beartype"; repo = "beartype"; tag = "v${version}"; - hash = "sha256-oD7LS+c+mZ8W4YnAaAYxQkbUlmO8E2TPxy0PBI7Jr7A="; + hash = "sha256-F9x2qvzll1nUcTQZjaky+0ukP1RXoW35crzfS/pmvTs="; }; - # Several tests fail with: - # - beartype.roar.BeartypeDecorHintNonpepException - # - RuntimeError: There is no current event loop in thread 'MainThread' - # - Failed: DID NOT RAISE - # - AssertionError - # - ... - disabled = pythonAtLeast "3.14"; - build-system = [ hatchling ]; nativeCheckInputs = [ @@ -37,15 +28,6 @@ buildPythonPackage rec { pythonImportsCheck = [ "beartype" ]; - disabledTests = [ - # No warnings of type (,) were emitted. - "test_is_hint_pep593_beartype" - ] - ++ lib.optionals (pythonAtLeast "3.13") [ - # this test is not run upstream, and broke in 3.13 (_nparams removed) - "test_door_is_subhint" - ]; - meta = { description = "Fast runtime type checking for Python"; homepage = "https://github.com/beartype/beartype"; From dc8e4d92ea38e85cd256ae22c1131f955c453134 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Mon, 19 Jan 2026 18:21:27 +0100 Subject: [PATCH 351/396] nodejs_25: 25.3.0 -> 25.4.0 --- pkgs/development/web/nodejs/v25.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/web/nodejs/v25.nix b/pkgs/development/web/nodejs/v25.nix index 714c8e686f62..43d53542c98a 100644 --- a/pkgs/development/web/nodejs/v25.nix +++ b/pkgs/development/web/nodejs/v25.nix @@ -25,8 +25,8 @@ let in buildNodejs { inherit enableNpm; - version = "25.3.0"; - sha256 = "97939099edd035a0c1a2d1fc849cac018ec2a38c0c28dd8e8246fd883cdb9e9e"; + version = "25.4.0"; + sha256 = "04e365aadcd7bf4cf1a6001723ea41035bfb118d78f8a8ee2054b37fc5cb67d6"; patches = ( if (stdenv.hostPlatform.emulatorAvailable buildPackages) then From ffbe41294e391430ee2048f644e1c081f92b5d48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Mon, 19 Jan 2026 09:31:09 -0800 Subject: [PATCH 352/396] python3Packages.objsize: 0.7.1 -> 0.8.0 Diff: https://github.com/liran-funaro/objsize/compare/0.7.1...0.8.0 --- pkgs/development/python-modules/objsize/default.nix | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/objsize/default.nix b/pkgs/development/python-modules/objsize/default.nix index 64fac77b1179..a962d81f559e 100644 --- a/pkgs/development/python-modules/objsize/default.nix +++ b/pkgs/development/python-modules/objsize/default.nix @@ -4,24 +4,22 @@ fetchFromGitHub, pytestCheckHook, setuptools, - wheel, }: buildPythonPackage rec { pname = "objsize"; - version = "0.7.1"; + version = "0.8.0"; pyproject = true; src = fetchFromGitHub { owner = "liran-funaro"; repo = "objsize"; tag = version; - hash = "sha256-l0l80dMVWZqWBK4z53NCU+rKOQl6jRZ1zb2SmMnhs1k="; + hash = "sha256-u4PTUk3K3ZCNZ87xM+PoCabsw+EjOoDgNySDWWB7yho="; }; - nativeBuildInputs = [ + build-system = [ setuptools - wheel ]; nativeCheckInputs = [ pytestCheckHook ]; From 2aa49d5949bb57bd71e158370431b4e61cbe0822 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Mon, 19 Jan 2026 18:33:22 +0100 Subject: [PATCH 353/396] nix: Fix build on big-endian platforms --- .../package-management/nix/modular/src/libstore/package.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/package-management/nix/modular/src/libstore/package.nix b/pkgs/tools/package-management/nix/modular/src/libstore/package.nix index 30312d05fdba..11aee41a57cf 100644 --- a/pkgs/tools/package-management/nix/modular/src/libstore/package.nix +++ b/pkgs/tools/package-management/nix/modular/src/libstore/package.nix @@ -8,6 +8,7 @@ nix-util, boost, curl, + aws-c-common, aws-sdk-cpp, aws-crt-cpp, libseccomp, @@ -24,7 +25,9 @@ withAWS ? # Default is this way because there have been issues building this dependency - stdenv.hostPlatform == stdenv.buildPlatform && (stdenv.isLinux || stdenv.isDarwin), + stdenv.hostPlatform == stdenv.buildPlatform + && (stdenv.isLinux || stdenv.isDarwin) + && lib.meta.availableOn stdenv.hostPlatform aws-c-common, }: mkMesonLibrary (finalAttrs: { From 2e228f79c4fa918fd96a7ae024ff95ab247ff5b1 Mon Sep 17 00:00:00 2001 From: edef Date: Mon, 19 Jan 2026 17:35:21 +0000 Subject: [PATCH 354/396] tini: fix build with musl libc 1.2.5 Include libgen.h for POSIX basename(), which musl 1.2.5 removed from string.h. --- pkgs/by-name/ti/tini/package.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/by-name/ti/tini/package.nix b/pkgs/by-name/ti/tini/package.nix index e9e225bed90c..1d5258134f15 100644 --- a/pkgs/by-name/ti/tini/package.nix +++ b/pkgs/by-name/ti/tini/package.nix @@ -27,6 +27,10 @@ stdenv.mkDerivation rec { url = "https://github.com/krallin/tini/commit/071c715e376e9ee0ac1a196fe8c38bcb61ad385c.patch"; hash = "sha256-idnYcVuhCXQuhFSqcrNjbCLhR4HNlv8QonrtBqEbo3A="; }) + (fetchpatch { + url = "https://github.com/krallin/tini/commit/924c4bd6028457188942ecbfdc75e6a343fa9395.patch"; + hash = "sha256-i6xcf+qpjD+7ZQY3ueiDaxO4+UA2LutLCZLNmT+ji1s="; + }) ]; postPatch = "sed -i /tini-static/d CMakeLists.txt"; From 772c99b635de1053ca01201991f20c20275d0759 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Mon, 19 Jan 2026 09:41:11 -0800 Subject: [PATCH 355/396] python3Packages.apache-beam: unpin beartype --- pkgs/development/python-modules/apache-beam/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/python-modules/apache-beam/default.nix b/pkgs/development/python-modules/apache-beam/default.nix index ff12480ceb25..f7e3d3d69e1f 100644 --- a/pkgs/development/python-modules/apache-beam/default.nix +++ b/pkgs/development/python-modules/apache-beam/default.nix @@ -86,6 +86,7 @@ buildPythonPackage rec { ''; pythonRelaxDeps = [ + "beartype" "grpcio" "jsonpickle" From 7869d1a58b05b7408cef211f648cf48a617cf6f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Mon, 19 Jan 2026 09:43:48 -0800 Subject: [PATCH 356/396] python3Packages.apache-beam: unpin objsize --- pkgs/development/python-modules/apache-beam/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/python-modules/apache-beam/default.nix b/pkgs/development/python-modules/apache-beam/default.nix index ff12480ceb25..bb95937e0524 100644 --- a/pkgs/development/python-modules/apache-beam/default.nix +++ b/pkgs/development/python-modules/apache-beam/default.nix @@ -88,6 +88,7 @@ buildPythonPackage rec { pythonRelaxDeps = [ "grpcio" "jsonpickle" + "objsize" # As of apache-beam v2.55.1, the requirement is cloudpickle~=2.2.1, but # the current (2024-04-20) nixpkgs's pydot version is 3.0.0. From e8556f137f94e93d53e35e9218c91b63005fd44e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 17:51:56 +0000 Subject: [PATCH 357/396] python3Packages.jq: 1.10.2 -> 1.11.0 --- pkgs/development/python-modules/jq/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/jq/default.nix b/pkgs/development/python-modules/jq/default.nix index e73dce818dbf..01c93b61a9fe 100644 --- a/pkgs/development/python-modules/jq/default.nix +++ b/pkgs/development/python-modules/jq/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "jq"; - version = "1.10.2"; + version = "1.11.0"; format = "setuptools"; src = fetchFromGitHub { owner = "mwilliamson"; repo = "jq.py"; tag = version; - hash = "sha256-1BhRX9OWCfHnelktsrje4ejFxMTpSaGbYuocQ2H4pAI="; + hash = "sha256-v5Hi3SkLKX7KrCHiXDuEThSLghDU5VVhNGt1KpMEqC4="; }; env.JQPY_USE_SYSTEM_LIBS = 1; From 4510e9a23f8fe8bef88eb1f7d035b9af6b5729b6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 17:57:04 +0000 Subject: [PATCH 358/396] ejsonkms: 0.2.9 -> 0.3.0 --- pkgs/by-name/ej/ejsonkms/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ej/ejsonkms/package.nix b/pkgs/by-name/ej/ejsonkms/package.nix index 15acdd383a80..57bdf5a9679a 100644 --- a/pkgs/by-name/ej/ejsonkms/package.nix +++ b/pkgs/by-name/ej/ejsonkms/package.nix @@ -8,16 +8,16 @@ buildGoModule rec { pname = "ejsonkms"; - version = "0.2.9"; + version = "0.3.0"; src = fetchFromGitHub { owner = "envato"; repo = "ejsonkms"; rev = "v${version}"; - hash = "sha256-IQZYpxY6t7W9a3PKc9o7+MbOOxsa0Hs1H8HneilrdBs="; + hash = "sha256-BLOlDvheCwlxYaONGh/foqvWs33ZqGA3n7SkM5LfJKY="; }; - vendorHash = "sha256-xOp02g7F1rb3Zq8lbjvDrYrFrcT+msv/KUqQd2qVKdA="; + vendorHash = "sha256-6C/hZwqB6yqFjfDe+KQAY+ja41v/FVaEmPEUXb0FZTA="; ldflags = [ "-X main.version=v${version}" From a4d5f8a6b11edf4c66858fb4dcd9a1bfde49df60 Mon Sep 17 00:00:00 2001 From: Michael Daniels Date: Sat, 17 Jan 2026 19:42:08 -0500 Subject: [PATCH 359/396] {workflows/eval,ci/github-script}: check for mass rebuilds targeting master/release-* branches --- .github/workflows/eval.yml | 12 ++ .github/workflows/merge-group.yml | 1 + .github/workflows/pull-request-target.yml | 1 + ci/github-script/check-target-branch.js | 135 ++++++++++++++++++++++ ci/github-script/run | 11 ++ 5 files changed, 160 insertions(+) create mode 100644 ci/github-script/check-target-branch.js diff --git a/.github/workflows/eval.yml b/.github/workflows/eval.yml index 28b5e8c99f61..390f19d96e2f 100644 --- a/.github/workflows/eval.yml +++ b/.github/workflows/eval.yml @@ -168,6 +168,7 @@ jobs: needs: [eval] if: ${{ !cancelled() && !failure() }} permissions: + pull-requests: write statuses: write timeout-minutes: 5 steps: @@ -254,6 +255,17 @@ jobs: description, target_url }) + - name: Request changes if PR is against an inappropriate branch + if: ${{ github.event_name == 'pull_request_target' }} + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 + with: + script: | + require('./nixpkgs/trusted/ci/github-script/check-target-branch.js')({ + github, + context, + core, + dry: context.eventName == 'pull_request', + }) # Creates a matrix of Eval performance for various versions and systems. report: diff --git a/.github/workflows/merge-group.yml b/.github/workflows/merge-group.yml index 299f56c09dfe..0720817c6da7 100644 --- a/.github/workflows/merge-group.yml +++ b/.github/workflows/merge-group.yml @@ -84,6 +84,7 @@ jobs: # even though they are unused when working with the merge queue. permissions: # compare + pull-requests: write statuses: write secrets: CACHIX_AUTH_TOKEN_GHA: ${{ secrets.CACHIX_AUTH_TOKEN_GHA }} diff --git a/.github/workflows/pull-request-target.yml b/.github/workflows/pull-request-target.yml index 9609a440ae89..c49e2ae60d37 100644 --- a/.github/workflows/pull-request-target.yml +++ b/.github/workflows/pull-request-target.yml @@ -81,6 +81,7 @@ jobs: uses: ./.github/workflows/eval.yml permissions: # compare + pull-requests: write statuses: write with: artifact-prefix: ${{ inputs.artifact-prefix }} diff --git a/ci/github-script/check-target-branch.js b/ci/github-script/check-target-branch.js new file mode 100644 index 000000000000..2b671715d37d --- /dev/null +++ b/ci/github-script/check-target-branch.js @@ -0,0 +1,135 @@ +/// @ts-check + +// TODO: should this be combined with the branch checks in prepare.js? +// They do seem quite similar, but this needs to run after eval, +// and prepare.js obviously doesn't. + +const { classify, split } = require('../supportedBranches.js') +const { readFile } = require('node:fs/promises') +const { postReview } = require('./reviews.js') + +/** + * @param {{ + * github: InstanceType, + * context: import('@actions/github/lib/context').Context + * core: import('@actions/core') + * dry: boolean + * }} CheckTargetBranchProps + */ +async function checkTargetBranch({ github, context, core, dry }) { + const changed = JSON.parse( + await readFile('comparison/changed-paths.json', 'utf-8'), + ) + const pull_number = context.payload.pull_request?.number + if (!pull_number) { + core.warning( + 'Skipping checkTargetBranch: no pull_request number (is this being run as part of a merge group?)', + ) + return + } + const prInfo = ( + await github.rest.pulls.get({ + ...context.repo, + pull_number, + }) + ).data + const base = prInfo.base.ref + const head = prInfo.head.ref + const baseClassification = classify(base) + const headClassification = classify(head) + + // Don't run on, e.g., staging-nixos to master merges. + if (headClassification.type.includes('development')) { + core.info( + `Skipping checkTargetBranch: PR is from a development branch (${head})`, + ) + return + } + // Don't run on PRs against staging branches, wip branches, haskell-updates, etc. + if (!baseClassification.type.includes('primary')) { + core.info( + `Skipping checkTargetBranch: PR is against a non-primary base branch (${base})`, + ) + return + } + + const maxRebuildCount = Math.max( + ...Object.values(changed.rebuildCountByKernel), + ) + const rebuildsAllTests = + changed.attrdiff.changed.includes('nixosTests.simple') ?? false + core.info( + `checkTargetBranch: PR causes ${maxRebuildCount} rebuilds and ${rebuildsAllTests ? 'does' : 'does not'} rebuild all NixOS tests.`, + ) + + if (maxRebuildCount >= 1000) { + const desiredBranch = + base === 'master' ? 'staging' : `staging-${split(base).version}` + const body = [ + `The PR's base branch is set to \`${base}\`, but this PR causes ${maxRebuildCount} rebuilds.`, + 'It is therefore considered a mass rebuild.', + `Please [change the base branch](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-base-branch-of-a-pull-request) to [the right base branch for your changes](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#branch-conventions) (probably \`${desiredBranch}\`).`, + ].join('\n') + + await postReview({ + github, + context, + core, + dry, + body, + event: 'REQUEST_CHANGES', + }) + + throw new Error('This PR is against the wrong branch.') + } else if (rebuildsAllTests) { + let branchText + if (base === 'master' && maxRebuildCount >= 500) { + branchText = '(probably either `staging-nixos` or `staging`)' + } else if (base === 'master') { + branchText = '(probably `staging-nixos`)' + } else { + branchText = `(probably \`staging-${split(base).version}\`)` + } + const body = [ + `The PR's base branch is set to \`${base}\`, but this PR rebuilds all NixOS tests.`, + base === 'master' && maxRebuildCount >= 500 + ? `Since this PR also causes ${maxRebuildCount} rebuilds, it may also be considered a mass rebuild.` + : '', + `Please [change the base branch](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-base-branch-of-a-pull-request) to [the right base branch for your changes](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#branch-conventions) ${branchText}.`, + ].join('\n') + + await postReview({ + github, + context, + core, + dry, + body, + event: 'REQUEST_CHANGES', + }) + + throw new Error('This PR is against the wrong branch.') + } else if (maxRebuildCount >= 500) { + const stagingBranch = + base === 'master' ? 'staging' : `staging-${split(base).version}` + const body = [ + `The PR's base branch is set to \`${base}\`, and this PR causes ${maxRebuildCount} rebuilds.`, + `Please consider whether this PR causes a mass rebuild according to [our conventions](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#branch-conventions).`, + `If it does cause a mass rebuild, please [change the base branch](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-base-branch-of-a-pull-request) to [the right base branch for your changes](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#branch-conventions) (probably \`${stagingBranch}\`).`, + `If it does not cause a mass rebuild, this message can be ignored.`, + ].join('\n') + + await postReview({ + github, + context, + core, + dry, + body, + event: 'COMMENT', + }) + } else { + // Any existing reviews were dismissed by commits.js + core.info('checkTargetBranch: this PR is against an appropriate branch.') + } +} + +module.exports = checkTargetBranch diff --git a/ci/github-script/run b/ci/github-script/run index 095768f317da..744e49f018a4 100755 --- a/ci/github-script/run +++ b/ci/github-script/run @@ -105,4 +105,15 @@ program await run(checkCommitMessages, owner, repo, pr, options) }) +program + .command('check-target-branch') + .description('Check that the PR is made against the correct branch') + .argument('', 'Owner of the GitHub repository to run on (Example: NixOS)') + .argument('', 'Name of the GitHub repository to run on (Example: nixpkgs)') + .argument('', 'Number of the Pull Request to run on') + .action(async (owner, repo, pr, options) => { + const checkCommitMessages = (await import('./check-target-branch.js')).default + await run(checkCommitMessages, owner, repo, pr, options) + }) + await program.parse() From 4dd6b692ef9e58a218bccb8584d7a4ba6dc0d020 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Mon, 19 Jan 2026 09:34:14 -0800 Subject: [PATCH 360/396] python3Packages.apache-beam: 2.69.0 -> 2.70.0 Diff: https://github.com/apache/beam/compare/v2.69.0...v2.70.0 Changelog: https://github.com/apache/beam/blob/v2.70.0/CHANGES.md --- pkgs/development/python-modules/apache-beam/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/apache-beam/default.nix b/pkgs/development/python-modules/apache-beam/default.nix index ff12480ceb25..74c693370cc5 100644 --- a/pkgs/development/python-modules/apache-beam/default.nix +++ b/pkgs/development/python-modules/apache-beam/default.nix @@ -59,19 +59,20 @@ sqlalchemy, tenacity, testcontainers, + which, pythonAtLeast, }: buildPythonPackage rec { pname = "apache-beam"; - version = "2.69.0"; + version = "2.70.0"; pyproject = true; src = fetchFromGitHub { owner = "apache"; repo = "beam"; tag = "v${version}"; - hash = "sha256-7trrdGQ9jkzG+5/PyBMvHXjR0B4HjOxBhUuxXEcKkLg="; + hash = "sha256-sySHoknK2FmiAEOpRdF9i3vA6NvnDrZyBCghVoyEzLw="; }; sourceRoot = "${src.name}/sdks/python"; @@ -170,6 +171,7 @@ buildPythonPackage rec { sqlalchemy tenacity testcontainers + which ]; # Make sure we're running the tests for the actually installed @@ -197,6 +199,9 @@ buildPythonPackage rec { # "apache_beam/io/external/xlang_jdbcio_it_test.py" + # AttributeError: '_TruncatingFileHandle' object has no attribute 'close'. + "apache_beam/ml/rag/ingestion/milvus_search_it_test.py" + # These tests depend on the availability of specific servers backends. "apache_beam/runners/portability/flink_runner_test.py" "apache_beam/runners/portability/samza_runner_test.py" From b62daac5294bd311ef60fe2ae1e4e8855b1c2d8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:49:52 +0100 Subject: [PATCH 361/396] python3Packages.towncrier: remove superfluous pythonOlder --- pkgs/development/python-modules/towncrier/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/development/python-modules/towncrier/default.nix b/pkgs/development/python-modules/towncrier/default.nix index 40f83604ecba..dccb5ba0ecf3 100644 --- a/pkgs/development/python-modules/towncrier/default.nix +++ b/pkgs/development/python-modules/towncrier/default.nix @@ -5,7 +5,6 @@ fetchPypi, git, # shells out to git hatchling, - importlib-resources, incremental, jinja2, mock, @@ -32,7 +31,6 @@ buildPythonPackage rec { incremental jinja2 ] - ++ lib.optionals (pythonOlder "3.10") [ importlib-resources ] ++ lib.optionals (pythonOlder "3.11") [ tomli ]; preCheck = '' From 38374fafcbd380c5c0484e40cea24ed00e8a8414 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:50:03 +0100 Subject: [PATCH 362/396] python3Packages.twine: remove superfluous pythonOlder --- pkgs/development/python-modules/twine/default.nix | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pkgs/development/python-modules/twine/default.nix b/pkgs/development/python-modules/twine/default.nix index bbaa42453f02..72ecb51b2cdf 100644 --- a/pkgs/development/python-modules/twine/default.nix +++ b/pkgs/development/python-modules/twine/default.nix @@ -2,9 +2,7 @@ lib, buildPythonPackage, fetchPypi, - pythonOlder, id, - importlib-metadata, keyring, packaging, pkginfo, @@ -48,9 +46,6 @@ buildPythonPackage rec { rfc3986 rich urllib3 - ] - ++ lib.optionals (pythonOlder "3.10") [ - importlib-metadata ]; nativeCheckInputs = [ From 56797de9705a78c735f1ba47b2395199c7095e0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:50:14 +0100 Subject: [PATCH 363/396] python3Packages.typeguard: remove superfluous pythonOlder --- pkgs/development/python-modules/typeguard/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/typeguard/default.nix b/pkgs/development/python-modules/typeguard/default.nix index cdb7515681ae..81a5310ec78b 100644 --- a/pkgs/development/python-modules/typeguard/default.nix +++ b/pkgs/development/python-modules/typeguard/default.nix @@ -2,12 +2,10 @@ lib, buildPythonPackage, fetchPypi, - pythonOlder, setuptools, setuptools-scm, pytestCheckHook, typing-extensions, - importlib-metadata, mypy, sphinxHook, sphinx-autodoc-typehints, @@ -41,8 +39,7 @@ buildPythonPackage rec { dependencies = [ typing-extensions - ] - ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; + ]; env.LC_ALL = "en_US.utf-8"; From 05a0a0bd06ca37f8af149310dcde00400b96a073 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:50:29 +0100 Subject: [PATCH 364/396] python3Packages.wandb: remove superfluous pythonOlder --- pkgs/development/python-modules/wandb/default.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/development/python-modules/wandb/default.nix b/pkgs/development/python-modules/wandb/default.nix index 0cf349f2f859..e7b2ef517b11 100644 --- a/pkgs/development/python-modules/wandb/default.nix +++ b/pkgs/development/python-modules/wandb/default.nix @@ -32,7 +32,6 @@ setproctitle, setuptools, pythonOlder, - eval-type-backport, typing-extensions, # tests @@ -207,9 +206,6 @@ buildPythonPackage rec { # setuptools is necessary since pkg_resources is required at runtime. setuptools ] - ++ lib.optionals (pythonOlder "3.10") [ - eval-type-backport - ] ++ lib.optionals (pythonOlder "3.12") [ typing-extensions ]; From fb5be60e1e874e139df6256038d594f283d63a8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Mon, 19 Jan 2026 16:51:06 +0100 Subject: [PATCH 365/396] maubot: remove superfluous pythonOlder --- pkgs/tools/networking/maubot/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/tools/networking/maubot/default.nix b/pkgs/tools/networking/maubot/default.nix index 3288379b6025..a030049f5b3a 100644 --- a/pkgs/tools/networking/maubot/default.nix +++ b/pkgs/tools/networking/maubot/default.nix @@ -44,7 +44,6 @@ let pname = "maubot"; version = "0.5.1"; format = "setuptools"; - disabled = python.pythonOlder "3.10"; src = fetchPypi { inherit pname version; From 39976c33da6182491a522aecbcd3dd5d140423f8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 18:20:11 +0000 Subject: [PATCH 366/396] railway: 4.23.2 -> 4.25.3 --- pkgs/by-name/ra/railway/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ra/railway/package.nix b/pkgs/by-name/ra/railway/package.nix index be74a9fca6c9..9b034b8bb296 100644 --- a/pkgs/by-name/ra/railway/package.nix +++ b/pkgs/by-name/ra/railway/package.nix @@ -7,16 +7,16 @@ }: rustPlatform.buildRustPackage rec { pname = "railway"; - version = "4.23.2"; + version = "4.25.3"; src = fetchFromGitHub { owner = "railwayapp"; repo = "cli"; rev = "v${version}"; - hash = "sha256-3Uh8SR4H0mgsamGCLrpgq+ujNtegPQvSVUm7ALfQLh8="; + hash = "sha256-dml5lyZoA4f9W9MdiSRj2P9+mXs9s87w8cS2J0RvC2k="; }; - cargoHash = "sha256-voN3tRl4CetkuQ9RbIQzpIO2gJeBzP9TPmouJyqeYSw="; + cargoHash = "sha256-9zk+SHwZL80fB/HuQbfpYvOTKx3UCNLvvlbnDAB/VYM="; nativeBuildInputs = [ pkg-config ]; From 369904393c7dafc1c22945e58ba89979e4f9c188 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 18:20:31 +0000 Subject: [PATCH 367/396] cargo-binstall: 1.16.6 -> 1.16.7 --- pkgs/by-name/ca/cargo-binstall/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ca/cargo-binstall/package.nix b/pkgs/by-name/ca/cargo-binstall/package.nix index dd664782d669..8852ba00bac7 100644 --- a/pkgs/by-name/ca/cargo-binstall/package.nix +++ b/pkgs/by-name/ca/cargo-binstall/package.nix @@ -11,16 +11,16 @@ rustPlatform.buildRustPackage rec { pname = "cargo-binstall"; - version = "1.16.6"; + version = "1.16.7"; src = fetchFromGitHub { owner = "cargo-bins"; repo = "cargo-binstall"; tag = "v${version}"; - hash = "sha256-6acLC+ufODhCvHn7g+yzaN+qnTDjUrCBIX8uOj0PPgg="; + hash = "sha256-0r7QEGwuIh2mquKFqcf3VjvilhVz25Xpr2rJPQp504E="; }; - cargoHash = "sha256-IPDhTbYRtL4nBdNgaQfZ2M+RwZYC5eJfs/+VNlOXodo="; + cargoHash = "sha256-ZJCIjQm/vbO1Voji143HXT3BwlXRtFq4rFNRUguwouA="; nativeBuildInputs = [ pkg-config From 98a58ba8eb3145e94f64ab0ccb31e7def5952e8d Mon Sep 17 00:00:00 2001 From: Ethan Carter Edwards Date: Mon, 19 Jan 2026 12:03:25 -0500 Subject: [PATCH 368/396] naja: add meta.changelog Useful to see what changes in r-ryantm updates Signed-off-by: Ethan Carter Edwards --- pkgs/by-name/na/naja/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/na/naja/package.nix b/pkgs/by-name/na/naja/package.nix index 97a06283fdef..25e350ac1203 100644 --- a/pkgs/by-name/na/naja/package.nix +++ b/pkgs/by-name/na/naja/package.nix @@ -110,6 +110,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { description = "Structural Netlist API (and more) for EDA post synthesis flow development"; homepage = "https://github.com/najaeda/naja"; + changelog = "https://github.com/najaeda/naja/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.asl20; teams = [ lib.teams.ngi ]; mainProgram = "naja_edit"; From 7af1ac8b7c34ab5eb4e1a2e5750c04198cf3ac88 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 18 Jan 2026 13:20:59 +0000 Subject: [PATCH 369/396] icdiff: 2.0.8-unstable-2025-11-11 -> release-2.0.9 - Fix newline handling regression - Simplify terminal width detection using `shutil.get_terminal_size()` - Fix buffer overflow with Python 3.14 Co-authored-by: Philip Taron --- .../python-modules/icdiff/default.nix | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/pkgs/development/python-modules/icdiff/default.nix b/pkgs/development/python-modules/icdiff/default.nix index e9f804078807..89587e1f8749 100644 --- a/pkgs/development/python-modules/icdiff/default.nix +++ b/pkgs/development/python-modules/icdiff/default.nix @@ -16,27 +16,19 @@ in buildPythonPackage rec { pname = "icdiff"; - version = "2.0.8-unstable-2025-11-11"; + version = "2.0.9"; pyproject = true; src = fetchFromGitHub { owner = "jeffkaufman"; repo = "icdiff"; - rev = "ee4643ae3976ca023dab534eb59b911f16f762ac"; - hash = "sha256-XV88WjZDc2NSQ5CEahr8KXLXrBACvIWOavMUPeoPGOw="; - leaveDotGit = true; + tag = "release-${version}"; + hash = "sha256-ykQLF2b47RZSlrJXYpZ03evhpcGfVyTYwpO2UbmWqrY="; + deepClone = true; }; patches = [ ./0001-Don-t-test-black-or-flake8.patch ]; - postPatch = '' - substituteInPlace test.sh \ - --replace-fail "check_gold 1 gold-exclude.txt" "# check_gold 1 gold-exclude.txt" \ - --replace-fail "check_gold 1 gold-strip-cr-off.txt" "# check_gold 1 gold-strip-cr-off.txt" \ - --replace-fail "check_gold 1 gold-strip-cr-on.txt" "# check_gold 1 gold-strip-cr-on.txt" \ - --replace-fail "check_gold 1 gold-no-cr-indent" "# check_gold 1 gold-no-cr-indent" - ''; - build-system = [ setuptools ]; pythonImportsCheck = [ "icdiff" ]; @@ -48,13 +40,17 @@ buildPythonPackage rec { writableTmpDirAsHomeHook ]; + # Before the wheel gets created, fix up the shebangs. + preBuild = '' + patchShebangs test.sh icdiff git-icdiff + ''; + # Odd behavior in the sandbox doCheck = !stdenv.hostPlatform.isDarwin; checkPhase = '' runHook preCheck - patchShebangs test.sh ./test.sh ${python.interpreter} runHook postCheck From da8b4a1861c9188d6fbcbd1f62f5a7dbbbfc834c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 19:04:11 +0000 Subject: [PATCH 370/396] python3Packages.walrus: 0.9.7 -> 0.9.8 --- pkgs/development/python-modules/walrus/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/walrus/default.nix b/pkgs/development/python-modules/walrus/default.nix index 20c1702276c5..b343e955d171 100644 --- a/pkgs/development/python-modules/walrus/default.nix +++ b/pkgs/development/python-modules/walrus/default.nix @@ -10,14 +10,14 @@ buildPythonPackage (finalAttrs: { pname = "walrus"; - version = "0.9.7"; + version = "0.9.8"; pyproject = true; src = fetchFromGitHub { owner = "coleifer"; repo = "walrus"; tag = finalAttrs.version; - hash = "sha256-CXy6jjGIG8nuqnF39DqDLvYDGq7N1VL2yitVQrNMEzI="; + hash = "sha256-AgaqDZHjUX/oLjzisWjZcrGL9QXQf73WW+hfK2WMQJ8="; }; build-system = [ setuptools ]; From c9e71c3d1afd4c7e25636254877c7774cb1c5d7c Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Mon, 19 Jan 2026 10:16:27 -0600 Subject: [PATCH 371/396] vimPluginsUpdater: fix lint warnings Signed-off-by: Austin Horstman --- .../applications/editors/vim/plugins/utils/get-plugins.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/editors/vim/plugins/utils/get-plugins.nix b/pkgs/applications/editors/vim/plugins/utils/get-plugins.nix index 837a98fd62ee..4c874e98cda4 100644 --- a/pkgs/applications/editors/vim/plugins/utils/get-plugins.nix +++ b/pkgs/applications/editors/vim/plugins/utils/get-plugins.nix @@ -14,16 +14,15 @@ let "outputHash" ] value; - parse = name: value: { - pname = value.pname; - version = value.version; + parse = _name: value: { + inherit (value) pname version; homePage = value.meta.homepage; checksum = if hasChecksum value then { submodules = value.src.fetchSubmodules or false; sha256 = value.src.outputHash; - rev = value.src.rev; + inherit (value.src) rev; } else null; From 645b9ff75891c3458f32bbcf085848aa1368db84 Mon Sep 17 00:00:00 2001 From: "nixpkgs-ci[bot]" <190413589+nixpkgs-ci[bot]@users.noreply.github.com> Date: Mon, 19 Jan 2026 19:46:43 +0000 Subject: [PATCH 372/396] maintainers/github-teams.json: Automated sync --- maintainers/github-teams.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maintainers/github-teams.json b/maintainers/github-teams.json index 3541414c72ab..cede509733cc 100644 --- a/maintainers/github-teams.json +++ b/maintainers/github-teams.json @@ -422,10 +422,10 @@ "maintainers": { "Mic92": 96200, "kalbasit": 87115, + "katexochen": 49727155, "zowoq": 59103226 }, "members": { - "katexochen": 49727155, "mfrw": 4929861, "qbit": 68368 }, From e93eb9b6780299e13441235c2b9d24792b006f76 Mon Sep 17 00:00:00 2001 From: BatteredBunny Date: Mon, 19 Jan 2026 19:15:25 +0200 Subject: [PATCH 373/396] feishin: add update script --- pkgs/by-name/fe/feishin/package.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/fe/feishin/package.nix b/pkgs/by-name/fe/feishin/package.nix index ad5a61e44302..2b20f13465f0 100644 --- a/pkgs/by-name/fe/feishin/package.nix +++ b/pkgs/by-name/fe/feishin/package.nix @@ -12,6 +12,7 @@ darwin, copyDesktopItems, makeDesktopItem, + nix-update-script, }: let pname = "feishin"; @@ -147,6 +148,8 @@ buildNpmPackage { }) ]; + passthru.updateScript = nix-update-script { }; + meta = { description = "Full-featured Jellyfin, Navidrome, and OpenSubsonic Compatible Music Player"; homepage = "https://github.com/jeffvli/feishin"; From f5d574d67ed6b6ee67313731c9e182cd206e3d4c Mon Sep 17 00:00:00 2001 From: BatteredBunny Date: Mon, 19 Jan 2026 19:15:55 +0200 Subject: [PATCH 374/396] feishin: 1.2.0 -> 1.3.0 --- pkgs/by-name/fe/feishin/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/fe/feishin/package.nix b/pkgs/by-name/fe/feishin/package.nix index 2b20f13465f0..4c6229c24007 100644 --- a/pkgs/by-name/fe/feishin/package.nix +++ b/pkgs/by-name/fe/feishin/package.nix @@ -16,13 +16,13 @@ }: let pname = "feishin"; - version = "1.2.0"; + version = "1.3.0"; src = fetchFromGitHub { owner = "jeffvli"; repo = "feishin"; tag = "v${version}"; - hash = "sha256-acNUXvmj964pO8h2fsGfex2BeIshExMWe0w/QmtikkM="; + hash = "sha256-loe2hdn4TGCOLI1OQ19/zXikTKijYWtgSeP1gbwxfO0="; }; electron = electron_39; From 93bbee7df9b088259bf71f525e773e373472958b Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 19 Jan 2026 21:20:22 +0100 Subject: [PATCH 375/396] python313Packages.badsecrets: relax django --- pkgs/development/python-modules/badsecrets/default.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/badsecrets/default.nix b/pkgs/development/python-modules/badsecrets/default.nix index e7c4c48115fa..b208c0376c1c 100644 --- a/pkgs/development/python-modules/badsecrets/default.nix +++ b/pkgs/development/python-modules/badsecrets/default.nix @@ -25,6 +25,11 @@ buildPythonPackage rec { hash = "sha256-Yvd9AGbVDOfXep8y+XzwYP2EpTvy+rwyz5hRIe7v4oc="; }; + pythonRelaxDeps = [ + "django" + "viewstate" + ]; + build-system = [ poetry-core poetry-dynamic-versioning @@ -40,8 +45,6 @@ buildPythonPackage rec { viewstate ]; - pythonRelaxDeps = [ "viewstate" ]; - pythonImportsCheck = [ "badsecrets" ]; meta = { From 57671d17f212e74f26b75bee25aa41c8d2aeff9f Mon Sep 17 00:00:00 2001 From: Daniel Woffinden Date: Mon, 19 Jan 2026 19:12:11 +0000 Subject: [PATCH 376/396] cgt-calc: 1.13.0 -> 1.14.0 - loosen defusedxml dep - 1.14 added a dependency on requests-ratelimiter, but that is broken in nixpkgs as it depends on pyrate-limiter 2, but nixpkgs is on 3.9: - https://github.com/JWCook/requests-ratelimiter/issues/78 - https://github.com/NixOS/nixpkgs/pull/437746#issuecomment-3232365968 - Upstream patched to switch cgt-calc to natively use pyrate-limiter 3.9, which is unreleased so I had to backport to 1.14: https://github.com/KapJI/capital-gains-calculator/pull/715 --- pkgs/by-name/cg/cgt-calc/package.nix | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/cg/cgt-calc/package.nix b/pkgs/by-name/cg/cgt-calc/package.nix index 60b4cb850550..9cb0f8732e9a 100644 --- a/pkgs/by-name/cg/cgt-calc/package.nix +++ b/pkgs/by-name/cg/cgt-calc/package.nix @@ -1,22 +1,35 @@ { lib, fetchFromGitHub, + fetchpatch, python3Packages, withTeXLive ? true, texliveSmall, }: python3Packages.buildPythonApplication (finalAttrs: { pname = "cgt-calc"; - version = "1.13.0"; + version = "1.14.0"; pyproject = true; src = fetchFromGitHub { owner = "KapJI"; repo = "capital-gains-calculator"; rev = "v${finalAttrs.version}"; - hash = "sha256-y/Y05wG89nccXyxfjqazyPJhd8dOkfwRJre+Rzx97Hw="; + hash = "sha256-6iOlDNlpfCrbRCxEJsRYw6zqOehv/buVN+iU6J6CtIk="; }; + patches = [ + # https://github.com/KapJI/capital-gains-calculator/pull/715 + (fetchpatch { + url = "https://github.com/KapJI/capital-gains-calculator/commit/ec7155c1256b876d5906a3885656489e9fdd798c.patch"; + hash = "sha256-pfGHSKuDRF0T1hP7kpRC285limd1voqLXcXCP7mAD3s="; + }) + ]; + + pythonRelaxDeps = [ + "defusedxml" + ]; + build-system = with python3Packages; [ poetry-core ]; @@ -26,6 +39,7 @@ python3Packages.buildPythonApplication (finalAttrs: { jinja2 pandas requests + pyrate-limiter types-requests yfinance ]; From 3d841bbe4342e291715644a12dc0630e0c572fca Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 19 Jan 2026 21:22:03 +0100 Subject: [PATCH 377/396] python313Packages.badsecrets: migrate to finalAttrs --- pkgs/development/python-modules/badsecrets/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/badsecrets/default.nix b/pkgs/development/python-modules/badsecrets/default.nix index b208c0376c1c..d2eed4774527 100644 --- a/pkgs/development/python-modules/badsecrets/default.nix +++ b/pkgs/development/python-modules/badsecrets/default.nix @@ -13,7 +13,7 @@ viewstate, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "badsecrets"; version = "0.13.47"; pyproject = true; @@ -21,7 +21,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "blacklanternsecurity"; repo = "badsecrets"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-Yvd9AGbVDOfXep8y+XzwYP2EpTvy+rwyz5hRIe7v4oc="; }; @@ -50,11 +50,11 @@ buildPythonPackage rec { meta = { description = "Module for detecting known secrets across many web frameworks"; homepage = "https://github.com/blacklanternsecurity/badsecrets"; - changelog = "https://github.com/blacklanternsecurity/badsecrets/releases/tag/${src.tag}"; + changelog = "https://github.com/blacklanternsecurity/badsecrets/releases/tag/${finalAttrs.src.tag}"; license = with lib.licenses; [ agpl3Only gpl3Only ]; maintainers = with lib.maintainers; [ fab ]; }; -} +}) From f2ebdca47abb88c0c65d2e17e7d718a837dcfb68 Mon Sep 17 00:00:00 2001 From: yuannan Date: Mon, 19 Jan 2026 20:24:35 +0000 Subject: [PATCH 378/396] llama-cpp: 7767 -> 7772 --- pkgs/by-name/ll/llama-cpp/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/ll/llama-cpp/package.nix b/pkgs/by-name/ll/llama-cpp/package.nix index 3fe9e30521d3..93235e8127f9 100644 --- a/pkgs/by-name/ll/llama-cpp/package.nix +++ b/pkgs/by-name/ll/llama-cpp/package.nix @@ -31,7 +31,7 @@ metalSupport ? stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 && !openclSupport, vulkanSupport ? false, rpcSupport ? false, - curl, + openssl, llama-cpp, shaderc, vulkan-headers, @@ -74,13 +74,13 @@ let in effectiveStdenv.mkDerivation (finalAttrs: { pname = "llama-cpp"; - version = "7767"; + version = "7772"; src = fetchFromGitHub { owner = "ggml-org"; repo = "llama.cpp"; tag = "b${finalAttrs.version}"; - hash = "sha256-k6Q1fUci0SkEB8vH5G3oG/evG7aUYBSqo+iXYG6x/dE="; + hash = "sha256-qARA75QjtqBiRI4Hjr+dHs4Kr+Gk9n1DxRk401y+m68="; leaveDotGit = true; postFetch = '' git -C "$out" rev-parse --short HEAD > $out/COMMIT @@ -105,7 +105,7 @@ effectiveStdenv.mkDerivation (finalAttrs: { ++ optionals rocmSupport rocmBuildInputs ++ optionals blasSupport [ blas ] ++ optionals vulkanSupport vulkanBuildInputs - ++ [ curl ]; + ++ [ openssl ]; preConfigure = '' prependToVar cmakeFlags "-DLLAMA_BUILD_COMMIT:STRING=$(cat COMMIT)" @@ -117,7 +117,7 @@ effectiveStdenv.mkDerivation (finalAttrs: { (cmakeBool "LLAMA_BUILD_EXAMPLES" false) (cmakeBool "LLAMA_BUILD_SERVER" true) (cmakeBool "LLAMA_BUILD_TESTS" (finalAttrs.finalPackage.doCheck or false)) - (cmakeBool "LLAMA_CURL" true) + (cmakeBool "LLAMA_OPENSSL" true) (cmakeBool "BUILD_SHARED_LIBS" true) (cmakeBool "GGML_BLAS" blasSupport) (cmakeBool "GGML_CLBLAST" openclSupport) From 79d269a3f31dcc36ad9f7ee83381dc3f6ba7900a Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 19 Jan 2026 21:29:00 +0100 Subject: [PATCH 379/396] python313Packages.certipy-ad: relax beautifulsoup4 --- pkgs/development/python-modules/certipy-ad/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/certipy-ad/default.nix b/pkgs/development/python-modules/certipy-ad/default.nix index ce11aba66c94..c31c15bbe9f7 100644 --- a/pkgs/development/python-modules/certipy-ad/default.nix +++ b/pkgs/development/python-modules/certipy-ad/default.nix @@ -33,6 +33,7 @@ buildPythonPackage rec { pythonRelaxDeps = [ "argcomplete" + "beautifulsoup4" "cryptography" "dnspython" "ldap3" @@ -40,8 +41,6 @@ buildPythonPackage rec { "pyopenssl" ]; - pythonRemoveDeps = [ "bs4" ]; - build-system = [ setuptools ]; dependencies = [ From ca6f1385b99e9e2666633afd047a5b64d21224ad Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 19 Jan 2026 21:31:37 +0100 Subject: [PATCH 380/396] python313Packages.certipy-ad: migrate to finalAttrs --- pkgs/development/python-modules/certipy-ad/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/certipy-ad/default.nix b/pkgs/development/python-modules/certipy-ad/default.nix index c31c15bbe9f7..3b40d72e20dc 100644 --- a/pkgs/development/python-modules/certipy-ad/default.nix +++ b/pkgs/development/python-modules/certipy-ad/default.nix @@ -19,7 +19,7 @@ unicrypto, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "certipy-ad"; version = "5.0.4"; pyproject = true; @@ -27,7 +27,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "ly4k"; repo = "Certipy"; - tag = version; + tag = finalAttrs.version; hash = "sha256-5STwBpX+8EsgRYMEirvqEhu4oMDs4hf4lDge1ShpKf4="; }; @@ -69,9 +69,9 @@ buildPythonPackage rec { meta = { description = "Library and CLI tool to enumerate and abuse misconfigurations in Active Directory Certificate Services"; homepage = "https://github.com/ly4k/Certipy"; - changelog = "https://github.com/ly4k/Certipy/releases/tag/${src.tag}"; + changelog = "https://github.com/ly4k/Certipy/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ fab ]; mainProgram = "certipy"; }; -} +}) From c91db261754cd5c1e127dc50c2110987e0d1ee52 Mon Sep 17 00:00:00 2001 From: "Adam C. Stephens" Date: Mon, 19 Jan 2026 15:37:54 -0500 Subject: [PATCH 381/396] nixos/zfs: fix missing zed-functions.sh --- nixos/modules/tasks/filesystems/zfs.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix index a479b7242f56..60db7399cdda 100644 --- a/nixos/modules/tasks/filesystems/zfs.nix +++ b/nixos/modules/tasks/filesystems/zfs.nix @@ -855,6 +855,7 @@ in "resilver_finish-start-scrub.sh" "scrub_finish-notify.sh" "statechange-notify.sh" + "zed-functions.sh" ] ++ lib.optionals (lib.versionOlder cfgZfs.package.version "2.4") [ "deadman-slot_off.sh" From 0fa16fbfa2eca71071958cdc3d6dea43f482d33e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 20:48:46 +0000 Subject: [PATCH 382/396] yek: 0.25.0 -> 0.25.2 --- pkgs/by-name/ye/yek/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ye/yek/package.nix b/pkgs/by-name/ye/yek/package.nix index d4df6f721c16..86f1532e1779 100644 --- a/pkgs/by-name/ye/yek/package.nix +++ b/pkgs/by-name/ye/yek/package.nix @@ -8,7 +8,7 @@ versionCheckHook, }: let - version = "0.25.0"; + version = "0.25.2"; in rustPlatform.buildRustPackage { pname = "yek"; @@ -18,10 +18,10 @@ rustPlatform.buildRustPackage { owner = "bodo-run"; repo = "yek"; tag = "v${version}"; - hash = "sha256-6yHQyl4UnRQlmWkBbAvUEBZnrHW3GsrrFZyOU+p3mjE="; + hash = "sha256-2gt/leOEhdvj5IXp0Kl3ooUk8eclsMkt6JCIvPsKhMI="; }; - cargoHash = "sha256-WheN8rk/LwKTVg0mDorbXGBvojISSu1KtknFkWmpLMk="; + cargoHash = "sha256-gjDcw8mMZgoy7kjXlBYHhOgYXOV+XoMgflkZoggz42Q="; nativeBuildInputs = [ pkg-config ]; buildInputs = [ openssl ]; From fc628449ddfa38b5f396c04a6077a44bef687a1c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 19 Jan 2026 21:57:20 +0100 Subject: [PATCH 383/396] python313Packages.meilisearch: migrate to finalAttrs --- pkgs/development/python-modules/meilisearch/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/meilisearch/default.nix b/pkgs/development/python-modules/meilisearch/default.nix index fa7aaef26a57..fec556a7d413 100644 --- a/pkgs/development/python-modules/meilisearch/default.nix +++ b/pkgs/development/python-modules/meilisearch/default.nix @@ -7,7 +7,7 @@ requests, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "meilisearch"; version = "0.40.0"; pyproject = true; @@ -15,7 +15,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "meilisearch"; repo = "meilisearch-python"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-mxIE2/gZhV8geE0UJ2ModGKs0TPjJLyp38Wvcs59wz8="; }; @@ -35,8 +35,8 @@ buildPythonPackage rec { meta = { description = "Client for the Meilisearch API"; homepage = "https://github.com/meilisearch/meilisearch-python"; - changelog = "https://github.com/meilisearch/meilisearch-python/releases/tag/${src.tag}"; + changelog = "https://github.com/meilisearch/meilisearch-python/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ fab ]; }; -} +}) From f85fc2108260ef20fefe3cabe7108c5f6f1ba185 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 20:59:36 +0000 Subject: [PATCH 384/396] libretro.bsnes: 0-unstable-2025-12-19 -> 0-unstable-2026-01-16 --- pkgs/applications/emulators/libretro/cores/bsnes.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/emulators/libretro/cores/bsnes.nix b/pkgs/applications/emulators/libretro/cores/bsnes.nix index ce95defa99c0..9c4388db5c78 100644 --- a/pkgs/applications/emulators/libretro/cores/bsnes.nix +++ b/pkgs/applications/emulators/libretro/cores/bsnes.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "bsnes"; - version = "0-unstable-2025-12-19"; + version = "0-unstable-2026-01-16"; src = fetchFromGitHub { owner = "libretro"; repo = "bsnes-libretro"; - rev = "d9b7c292cfb15959c9928e3b76bb1047b8499938"; - hash = "sha256-FzYe6p3+knxcoIcQW00p3C3+rMEsAWI+ZFdy5mvDhoY="; + rev = "d0a61b2c679bc73286be5471b222b1f1ebfb67b9"; + hash = "sha256-1C+c0cQqFSRDGBhNr4s4xD/THbyDP/iVUJpAmHFQfiE="; }; makefile = "Makefile"; From 0388430f9ca2cf95a160dca22e055970ca531dc1 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 19 Jan 2026 22:01:08 +0100 Subject: [PATCH 385/396] python313Packages.ghapi: migrate to finalAttrs --- pkgs/development/python-modules/ghapi/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/ghapi/default.nix b/pkgs/development/python-modules/ghapi/default.nix index a61fac9bfc4a..6b618e177384 100644 --- a/pkgs/development/python-modules/ghapi/default.nix +++ b/pkgs/development/python-modules/ghapi/default.nix @@ -7,7 +7,7 @@ setuptools, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "ghapi"; version = "1.0.9"; pyproject = true; @@ -15,7 +15,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "fastai"; repo = "ghapi"; - tag = version; + tag = finalAttrs.version; hash = "sha256-gBwOxWHjGyTrAKpG7BVoO7eQJw3fcLMXaF7CbAwMOj8="; }; @@ -34,8 +34,8 @@ buildPythonPackage rec { meta = { description = "Python interface to GitHub's API"; homepage = "https://github.com/fastai/ghapi"; - changelog = "https://github.com/fastai/ghapi/releases/tag/${version}"; - license = with lib.licenses; [ asl20 ]; + changelog = "https://github.com/fastai/ghapi/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.asl20; maintainers = with lib.maintainers; [ fab ]; }; -} +}) From 5dd345d420ed96122011873a89f003e5291f2b4d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 21:01:52 +0000 Subject: [PATCH 386/396] python3Packages.pbs-installer: 2026.01.13 -> 2026.01.14 --- pkgs/development/python-modules/pbs-installer/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pbs-installer/default.nix b/pkgs/development/python-modules/pbs-installer/default.nix index ccb782c23b7c..686b1c8172b9 100644 --- a/pkgs/development/python-modules/pbs-installer/default.nix +++ b/pkgs/development/python-modules/pbs-installer/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "pbs-installer"; - version = "2026.01.13"; + version = "2026.01.14"; pyproject = true; src = fetchFromGitHub { owner = "frostming"; repo = "pbs-installer"; tag = version; - hash = "sha256-wyO5Knjo/FmWl/SMC6K2wPwQI2tVz7bfyD7Pl1yeFkk="; + hash = "sha256-u7RdzRQRweEjCu8Rp+PkaUZg1FxpM7UssbhD0BonOtY="; }; build-system = [ pdm-backend ]; From f937d628f6090372ea63796f466517acd9791b31 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 19 Jan 2026 22:03:12 +0100 Subject: [PATCH 387/396] vunnel: migrate to finalAttrs --- pkgs/by-name/vu/vunnel/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/vu/vunnel/package.nix b/pkgs/by-name/vu/vunnel/package.nix index 1f292d3089fa..e3efa1b482ef 100644 --- a/pkgs/by-name/vu/vunnel/package.nix +++ b/pkgs/by-name/vu/vunnel/package.nix @@ -5,7 +5,7 @@ python3, }: -python3.pkgs.buildPythonApplication rec { +python3.pkgs.buildPythonApplication (finalAttrs: { pname = "vunnel"; version = "0.48.0"; pyproject = true; @@ -13,7 +13,7 @@ python3.pkgs.buildPythonApplication rec { src = fetchFromGitHub { owner = "anchore"; repo = "vunnel"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-D0/DoYmmLeAvGnr6ljE8p0B6dmFi4UHwcWCQRb85OkM="; leaveDotGit = true; }; @@ -85,9 +85,9 @@ python3.pkgs.buildPythonApplication rec { meta = { description = "Tool for collecting vulnerability data from various sources"; homepage = "https://github.com/anchore/vunnel"; - changelog = "https://github.com/anchore/vunnel/releases/tag/${src.tag}"; + changelog = "https://github.com/anchore/vunnel/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ fab ]; mainProgram = "vunnel"; }; -} +}) From 6843a9c22d4b549026120ac4901b305bb187d47c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 21:04:40 +0000 Subject: [PATCH 388/396] python3Packages.textual: 7.2.0 -> 7.3.0 --- pkgs/development/python-modules/textual/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/textual/default.nix b/pkgs/development/python-modules/textual/default.nix index 2e7b2d7f13fb..903c4fa097af 100644 --- a/pkgs/development/python-modules/textual/default.nix +++ b/pkgs/development/python-modules/textual/default.nix @@ -37,14 +37,14 @@ buildPythonPackage rec { pname = "textual"; - version = "7.2.0"; + version = "7.3.0"; pyproject = true; src = fetchFromGitHub { owner = "Textualize"; repo = "textual"; tag = "v${version}"; - hash = "sha256-/BVrglVfGW2InkC0IKHOKZTP33tfqxGuXYQXWJVHmxw="; + hash = "sha256-IT/U1RpepeXx9x7WZ2v3MUCGOnB/MsSyukiO8iRCKeA="; }; build-system = [ poetry-core ]; From d10d1f31759d6f33404ba63440e9c22ca659fdb1 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 19 Jan 2026 22:15:53 +0100 Subject: [PATCH 389/396] python313Packages.publicsuffixlist: 1.0.2.20260114 -> 1.0.2.20260117 Changelog: https://github.com/ko-zu/psl/blob/v1.0.2.20260117-gha/CHANGES.md --- pkgs/development/python-modules/publicsuffixlist/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/publicsuffixlist/default.nix b/pkgs/development/python-modules/publicsuffixlist/default.nix index 8badd59781da..6d7128a5a390 100644 --- a/pkgs/development/python-modules/publicsuffixlist/default.nix +++ b/pkgs/development/python-modules/publicsuffixlist/default.nix @@ -11,12 +11,12 @@ buildPythonPackage (finalAttrs: { pname = "publicsuffixlist"; - version = "1.0.2.20260114"; + version = "1.0.2.20260117"; pyproject = true; src = fetchPypi { inherit (finalAttrs) pname version; - hash = "sha256-PO+kopKEHUBqbFoHvGVQQVbssb4d2ZzXMLmLYzLx1S0="; + hash = "sha256-JOESMNtP5Nfmi7QyA/gL9Sf2FMBiWn3CdJ17BETYWOU="; }; postPatch = '' From 156731851109e0af1e6b7debdf6a4a6b4077fbde Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 21:39:01 +0000 Subject: [PATCH 390/396] git-pages-cli: 1.5.1 -> 1.5.2 --- pkgs/by-name/gi/git-pages-cli/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/gi/git-pages-cli/package.nix b/pkgs/by-name/gi/git-pages-cli/package.nix index 2163069a62b3..73dab6b04fe8 100644 --- a/pkgs/by-name/gi/git-pages-cli/package.nix +++ b/pkgs/by-name/gi/git-pages-cli/package.nix @@ -8,17 +8,17 @@ buildGoModule (finalAttrs: { pname = "git-pages-cli"; - version = "1.5.1"; + version = "1.5.2"; src = fetchFromGitea { domain = "codeberg.org"; owner = "git-pages"; repo = "git-pages-cli"; rev = "v${finalAttrs.version}"; - hash = "sha256-T6spNuuG0l1bFv7SnsDTGBtD3Sa+8zKN0/VbsKVkGrM="; + hash = "sha256-58fEurUoRw1hJ2eYHrXrsVDElVVo5BH0bZFw7h1yM0w="; }; - vendorHash = "sha256-5vjUhN3lCr41q91lOD7v0F9c6a8GJj7wBGnnzgFBhJU="; + vendorHash = "sha256-Mico/PFTb8YoRZCP42QETS0DkzMABUGTzBvy692XDJc="; ldflags = [ "-X" From 3304874b6c2b89f5c57dbf2a7308de9959d6a51b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 21:48:33 +0000 Subject: [PATCH 391/396] v2ray: 5.43.0 -> 5.44.1 --- pkgs/by-name/v2/v2ray/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/v2/v2ray/package.nix b/pkgs/by-name/v2/v2ray/package.nix index d207232ff7a1..5cb287387190 100644 --- a/pkgs/by-name/v2/v2ray/package.nix +++ b/pkgs/by-name/v2/v2ray/package.nix @@ -16,18 +16,18 @@ buildGoModule rec { pname = "v2ray-core"; - version = "5.43.0"; + version = "5.44.1"; src = fetchFromGitHub { owner = "v2fly"; repo = "v2ray-core"; rev = "v${version}"; - hash = "sha256-MVcli2lxjLPDgv/1vBJP8xnM5HUj8RuL4RGN/LQgvjE="; + hash = "sha256-Y/8rZYNoN5jr7+Q4IMj+uTGo7KfE5LKwUIEuSMROj5c="; }; # `nix-update` doesn't support `vendorHash` yet. # https://github.com/Mic92/nix-update/pull/95 - vendorHash = "sha256-vjhajKxkdO5toLmVcSK07fjp0JE2VykqXSrew4WigwU="; + vendorHash = "sha256-YgiNqz2LSW4RFWFF5T1NjioCRIrZHB/ZhsVlahxuxuI="; ldflags = [ "-s" From 7172bc963b0229034cb16daae9564bcb8eb42a9a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 22:08:33 +0000 Subject: [PATCH 392/396] bluesky-pds: 0.4.193 -> 0.4.204 --- pkgs/by-name/bl/bluesky-pds/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/bl/bluesky-pds/package.nix b/pkgs/by-name/bl/bluesky-pds/package.nix index e48ae021f483..57a80857b04e 100644 --- a/pkgs/by-name/bl/bluesky-pds/package.nix +++ b/pkgs/by-name/bl/bluesky-pds/package.nix @@ -27,13 +27,13 @@ in stdenv.mkDerivation (finalAttrs: { pname = "pds"; - version = "0.4.193"; + version = "0.4.204"; src = fetchFromGitHub { owner = "bluesky-social"; repo = "pds"; tag = "v${finalAttrs.version}"; - hash = "sha256-OCG1YR56k0syIxRVrwUr0teaBJFQXocq0H6j9JaQkh8="; + hash = "sha256-jYCMwHKKFIsfOgGYiKVrWtIT7atPA8NsetvfjDW05yE="; }; sourceRoot = "${finalAttrs.src.name}/service"; @@ -63,7 +63,7 @@ stdenv.mkDerivation (finalAttrs: { ; pnpm = pnpm_9; fetcherVersion = 2; - hash = "sha256-4qKWkINpUHzatiMa7ZNYp1NauU2641W0jHDjmRL9ipI="; + hash = "sha256-G6xZfbfz+jud1N6lxwp5FA5baAkFwmofejsPt/Gaze8="; }; buildPhase = '' From 69ad4df7814745ed5c1fb84ecebf7ef39bb852a3 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 19 Jan 2026 23:51:13 +0100 Subject: [PATCH 393/396] home-assistant-custom-components.prometheus_sensor: 1.1.3 -> 1.2.0 https://github.com/mweinelt/ha-prometheus-sensor/blob/1.2.0/CHANGELOG.md --- .../custom-components/prometheus_sensor/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/home-assistant/custom-components/prometheus_sensor/package.nix b/pkgs/servers/home-assistant/custom-components/prometheus_sensor/package.nix index fb2da022a49a..fc61d6cdd648 100644 --- a/pkgs/servers/home-assistant/custom-components/prometheus_sensor/package.nix +++ b/pkgs/servers/home-assistant/custom-components/prometheus_sensor/package.nix @@ -7,13 +7,13 @@ buildHomeAssistantComponent rec { owner = "mweinelt"; domain = "prometheus_sensor"; - version = "1.1.3"; + version = "1.2.0"; src = fetchFromGitHub { owner = "mweinelt"; repo = "ha-prometheus-sensor"; tag = version; - hash = "sha256-d13KJXgRPWrR2ilpEgZbVS/a6/y7DBRdEiGLpBaBsPc="; + hash = "sha256-ju63ptI1fXycbsE/26LxF/9Dxn93JixvDwb+hTXX/O4="; }; meta = { From ba5c887d071dd5f1c3b78c7f6accaf35871f38c9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 22:58:01 +0000 Subject: [PATCH 394/396] python3Packages.imapclient: 3.0.1 -> 3.1.0 --- pkgs/development/python-modules/imapclient/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/imapclient/default.nix b/pkgs/development/python-modules/imapclient/default.nix index f46f0b2f34a4..5e3aa2bc0635 100644 --- a/pkgs/development/python-modules/imapclient/default.nix +++ b/pkgs/development/python-modules/imapclient/default.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "imapclient"; - version = "3.0.1"; + version = "3.1.0"; format = "setuptools"; @@ -16,7 +16,7 @@ buildPythonPackage rec { owner = "mjs"; repo = "imapclient"; tag = version; - hash = "sha256-WY3OLPUwixrL2NSLfNBSSNMXJEoYBL+O6KoglU3Cz9g="; + hash = "sha256-J+pB+jXAoZItvaR8o+97sETFYxWj+uslmvsAe/Q0Gzc="; }; propagatedBuildInputs = [ six ]; From 8f05df7cdf1ff2a6fc89dd7a0794077a2a31b943 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 19 Jan 2026 23:01:54 +0000 Subject: [PATCH 395/396] terraform-providers.baidubce_baiducloud: 1.22.16 -> 1.22.17 --- .../networking/cluster/terraform-providers/providers.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 58895241493e..cec81d59572a 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -101,11 +101,11 @@ "vendorHash": "sha256-quoFrJbB1vjz+MdV+jnr7FPACHuUe5Gx9POLubD2IaM=" }, "baidubce_baiducloud": { - "hash": "sha256-BNpBNBxRSKgxwvgIY289MLUf0Eui5/ccY97sAouHjbc=", + "hash": "sha256-r5NPRWjjlLD5qrLmVPe3JFrRRp3mV0NJwT3rOo0k8FA=", "homepage": "https://registry.terraform.io/providers/baidubce/baiducloud", "owner": "baidubce", "repo": "terraform-provider-baiducloud", - "rev": "v1.22.16", + "rev": "v1.22.17", "spdx": "MPL-2.0", "vendorHash": null }, From df48e343c8f808ef00eb7358f62204969abd8937 Mon Sep 17 00:00:00 2001 From: "nixpkgs-ci[bot]" <190413589+nixpkgs-ci[bot]@users.noreply.github.com> Date: Mon, 19 Jan 2026 23:47:32 +0000 Subject: [PATCH 396/396] maintainers/github-teams.json: Automated sync --- maintainers/github-teams.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/maintainers/github-teams.json b/maintainers/github-teams.json index cede509733cc..2b3adafe59c7 100644 --- a/maintainers/github-teams.json +++ b/maintainers/github-teams.json @@ -730,7 +730,9 @@ "philiptaron": 43863, "zowoq": 59103226 }, - "members": {}, + "members": { + "mdaniels5757": 8762511 + }, "name": "Nixpkgs CI" }, "nixpkgs-core": {