From 5e3a123bebcd048bb41e6dc00c857390c284ab82 Mon Sep 17 00:00:00 2001 From: dfjay Date: Fri, 24 Jul 2026 23:23:19 +0500 Subject: [PATCH 01/78] tutanota-desktop: 355.260710.0 -> 355.260720.0 https://github.com/tutao/tutanota/releases/tag/tutanota-desktop-release-355.260720.0 Assisted-by: Claude Code (Claude Opus 4.8) --- pkgs/by-name/tu/tutanota-desktop/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/tu/tutanota-desktop/package.nix b/pkgs/by-name/tu/tutanota-desktop/package.nix index 4bcdbca68547..e3266e3d1778 100644 --- a/pkgs/by-name/tu/tutanota-desktop/package.nix +++ b/pkgs/by-name/tu/tutanota-desktop/package.nix @@ -8,11 +8,11 @@ appimageTools.wrapType2 rec { pname = "tutanota-desktop"; - version = "355.260710.0"; + version = "355.260720.0"; src = fetchurl { url = "https://github.com/tutao/tutanota/releases/download/tutanota-desktop-release-${version}/tutanota-desktop-linux.AppImage"; - hash = "sha256-HlR9dXXxnXwUTM0Xlovu1+G5rgH87dYxLgbp2qyAFbM="; + hash = "sha256-sdKth9sy5yQ9cs4xQg4/zsgdvitxByKl8NCJgo3lL4o="; }; extraPkgs = pkgs: [ pkgs.libsecret ]; From 72b22f4cef60d251a22001b712d9122de46935c2 Mon Sep 17 00:00:00 2001 From: dfjay Date: Fri, 24 Jul 2026 23:42:30 +0500 Subject: [PATCH 02/78] tutanota-desktop: add darwin support Package the upstream macOS .dmg (a universal x86_64 + arm64 build) alongside the existing Linux AppImage by splitting into a per-platform derivation. The bundle is copied verbatim to keep its Developer ID signature intact. Assisted-by: Claude Code (Claude Opus 4.8) --- pkgs/by-name/tu/tutanota-desktop/package.nix | 92 +++++++++++++++----- 1 file changed, 70 insertions(+), 22 deletions(-) diff --git a/pkgs/by-name/tu/tutanota-desktop/package.nix b/pkgs/by-name/tu/tutanota-desktop/package.nix index e3266e3d1778..9f35047ad53c 100644 --- a/pkgs/by-name/tu/tutanota-desktop/package.nix +++ b/pkgs/by-name/tu/tutanota-desktop/package.nix @@ -1,38 +1,26 @@ { lib, + stdenvNoCC, appimageTools, fetchurl, makeWrapper, + undmg, gitUpdater, }: -appimageTools.wrapType2 rec { +let pname = "tutanota-desktop"; version = "355.260720.0"; - src = fetchurl { + linuxSrc = fetchurl { url = "https://github.com/tutao/tutanota/releases/download/tutanota-desktop-release-${version}/tutanota-desktop-linux.AppImage"; hash = "sha256-sdKth9sy5yQ9cs4xQg4/zsgdvitxByKl8NCJgo3lL4o="; }; - extraPkgs = pkgs: [ pkgs.libsecret ]; - - nativeBuildInputs = [ makeWrapper ]; - - extraInstallCommands = - let - appimageContents = appimageTools.extract { inherit pname version src; }; - in - '' - install -Dm 444 ${appimageContents}/tutanota-desktop.desktop -t $out/share/applications - cp -r ${appimageContents}/usr/share/icons/. $out/share/icons - - substituteInPlace $out/share/applications/tutanota-desktop.desktop \ - --replace 'Exec=AppRun' 'Exec=${pname}' - - wrapProgram $out/bin/tutanota-desktop \ - --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" - ''; + darwinSrc = fetchurl { + url = "https://github.com/tutao/tutanota/releases/download/tutanota-desktop-release-${version}/tutanota-desktop-mac.dmg"; + hash = "sha256-oVipeWX6kuy0JqlB92hjcVl3Szwve7Lz5gd/mC7ieVg="; + }; passthru.updateScript = gitUpdater { url = "https://github.com/tutao/tutanota"; @@ -48,6 +36,66 @@ appimageTools.wrapType2 rec { sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; maintainers = with lib.maintainers; [ s0ssh ]; mainProgram = "tutanota-desktop"; - platforms = [ "x86_64-linux" ]; + platforms = lib.platforms.darwin ++ [ "x86_64-linux" ]; }; -} + + linux = appimageTools.wrapType2 { + inherit + pname + version + passthru + meta + ; + src = linuxSrc; + + extraPkgs = pkgs: [ pkgs.libsecret ]; + + nativeBuildInputs = [ makeWrapper ]; + + extraInstallCommands = + let + appimageContents = appimageTools.extract { + inherit pname version; + src = linuxSrc; + }; + in + '' + install -Dm 444 ${appimageContents}/tutanota-desktop.desktop -t $out/share/applications + cp -r ${appimageContents}/usr/share/icons/. $out/share/icons + + substituteInPlace $out/share/applications/tutanota-desktop.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + + wrapProgram $out/bin/tutanota-desktop \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" + ''; + }; + + darwin = stdenvNoCC.mkDerivation { + inherit + pname + version + passthru + meta + ; + src = darwinSrc; + + sourceRoot = "."; + + nativeBuildInputs = [ + undmg + makeWrapper + ]; + + installPhase = '' + runHook preInstall + + mkdir -p "$out/Applications" + cp -R "Tuta Mail.app" "$out/Applications/" + makeWrapper "$out/Applications/Tuta Mail.app/Contents/MacOS/Tuta Mail" "$out/bin/tutanota-desktop" + + runHook postInstall + ''; + }; +in +if stdenvNoCC.hostPlatform.isDarwin then darwin else linux From e2f817fd21542a5a081cd73f0cf5c075dce1cb48 Mon Sep 17 00:00:00 2001 From: dfjay Date: Fri, 24 Jul 2026 23:42:56 +0500 Subject: [PATCH 03/78] tutanota-desktop: add update script Replace gitUpdater with a custom script that bumps the version and both the Linux and macOS source hashes via update-source-version --system. Assisted-by: Claude Code (Claude Opus 4.8) --- pkgs/by-name/tu/tutanota-desktop/package.nix | 7 +---- pkgs/by-name/tu/tutanota-desktop/update.sh | 31 ++++++++++++++++++++ 2 files changed, 32 insertions(+), 6 deletions(-) create mode 100755 pkgs/by-name/tu/tutanota-desktop/update.sh diff --git a/pkgs/by-name/tu/tutanota-desktop/package.nix b/pkgs/by-name/tu/tutanota-desktop/package.nix index 9f35047ad53c..3a3f9ba13e8d 100644 --- a/pkgs/by-name/tu/tutanota-desktop/package.nix +++ b/pkgs/by-name/tu/tutanota-desktop/package.nix @@ -5,7 +5,6 @@ fetchurl, makeWrapper, undmg, - gitUpdater, }: let @@ -22,11 +21,7 @@ let hash = "sha256-oVipeWX6kuy0JqlB92hjcVl3Szwve7Lz5gd/mC7ieVg="; }; - passthru.updateScript = gitUpdater { - url = "https://github.com/tutao/tutanota"; - rev-prefix = "tutanota-desktop-release-"; - allowedVersions = ".+\\.[0-9]{6}\\..+"; - }; + passthru.updateScript = ./update.sh; meta = { description = "Tuta official desktop client"; diff --git a/pkgs/by-name/tu/tutanota-desktop/update.sh b/pkgs/by-name/tu/tutanota-desktop/update.sh new file mode 100755 index 000000000000..b7ddd8c932e2 --- /dev/null +++ b/pkgs/by-name/tu/tutanota-desktop/update.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p bash curl jq common-updater-scripts nixVersions.latest + +set -euo pipefail + +repo="tutao/tutanota" +tagPrefix="tutanota-desktop-release-" + +latestTag=$(curl ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} -sSf \ + "https://api.github.com/repos/$repo/releases?per_page=100" \ + | jq -r --arg p "$tagPrefix" \ + '[.[] | select(.prerelease == false) | select(.tag_name | startswith($p))] | .[0].tag_name') +version="${latestTag#"$tagPrefix"}" + +currentVersion=$(nix-instantiate --eval -E "with import ./. { }; tutanota-desktop.version" | tr -d '"') + +echo "tutanota-desktop: current=$currentVersion latest=$version" +if [[ "$version" == "$currentVersion" ]]; then + echo "tutanota-desktop: already up to date" + exit 0 +fi + +base="https://github.com/$repo/releases/download/$tagPrefix$version" + +linuxHash=$(nix --extra-experimental-features nix-command hash convert --hash-algo sha256 --to sri \ + "$(nix-prefetch-url "$base/tutanota-desktop-linux.AppImage")") +update-source-version tutanota-desktop "$version" "$linuxHash" --system=x86_64-linux --ignore-same-version + +darwinHash=$(nix --extra-experimental-features nix-command hash convert --hash-algo sha256 --to sri \ + "$(nix-prefetch-url "$base/tutanota-desktop-mac.dmg")") +update-source-version tutanota-desktop "$version" "$darwinHash" --system=aarch64-darwin --ignore-same-version From 623284303124d12f133a6909249479431b6ded03 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 4 Aug 2026 14:36:08 +0000 Subject: [PATCH 04/78] contact: 1.5.8 -> 1.6.7 --- pkgs/by-name/co/contact/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/contact/package.nix b/pkgs/by-name/co/contact/package.nix index e6ad0ba8ade2..74c4766f0c27 100644 --- a/pkgs/by-name/co/contact/package.nix +++ b/pkgs/by-name/co/contact/package.nix @@ -6,14 +6,14 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "contact"; - version = "1.5.8"; + version = "1.6.7"; pyproject = true; src = fetchFromGitHub { owner = "pdxlocations"; repo = "contact"; tag = finalAttrs.version; - hash = "sha256-YNDw/lAPuJIyK6abRnl5WOyv8+t/PTtmBvFWu7NTVwY="; + hash = "sha256-i+mWkHdDJAGiX0F4vTygU9oGqUeczSaziiOwRqAXa30="; }; dependencies = [ python3Packages.meshtastic ]; From 1f48da32c7b4dec066531c158e6f2b4a793a1d75 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 4 Aug 2026 16:46:30 +0000 Subject: [PATCH 05/78] python3Packages.afsapi: 1.0.1 -> 1.0.2 --- pkgs/development/python-modules/afsapi/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/afsapi/default.nix b/pkgs/development/python-modules/afsapi/default.nix index aba9b655633a..826b3608a16d 100644 --- a/pkgs/development/python-modules/afsapi/default.nix +++ b/pkgs/development/python-modules/afsapi/default.nix @@ -12,14 +12,14 @@ buildPythonPackage (finalAttrs: { pname = "afsapi"; - version = "1.0.1"; + version = "1.0.2"; pyproject = true; src = fetchFromGitHub { owner = "wlcrs"; repo = "python-afsapi"; tag = finalAttrs.version; - hash = "sha256-OMz8zJrU1qymvhD9mnf248687wpqfgUnXna7Cbr83No="; + hash = "sha256-ZfP8LboBDrxXULtocOTZJ0Ku/zgear4NW5ckcHUKXc4="; }; build-system = [ From b03f745bc7017d362e42577fb5bfc5afd290e384 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 4 Aug 2026 21:05:00 +0000 Subject: [PATCH 06/78] checkmate: 0.9.3 -> 1.3.3 --- pkgs/by-name/ch/checkmate/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ch/checkmate/package.nix b/pkgs/by-name/ch/checkmate/package.nix index ffbb8041e259..5c5c23b600f9 100644 --- a/pkgs/by-name/ch/checkmate/package.nix +++ b/pkgs/by-name/ch/checkmate/package.nix @@ -6,16 +6,16 @@ buildGoModule (finalAttrs: { pname = "checkmate"; - version = "0.9.3"; + version = "1.3.3"; src = fetchFromGitHub { owner = "adedayo"; repo = "checkmate"; rev = "v${finalAttrs.version}"; - hash = "sha256-XzzN4oIG6E4NsMGl4HzFlgAGhkRieRn+jyA0bT8fcrg="; + hash = "sha256-FxBDeFdLORh76oHqrB+NXhz2nVH4bHJEF7ioSx+fngM="; }; - vendorHash = "sha256-D87b/LhHnu8xE0wRdB/wLIuf5NlqrVnKt2WAF29bdZo="; + vendorHash = "sha256-RM1jgnnCdGb06Uu7xoujjVjhYZSjGozesg+DFOjib1I="; subPackages = [ "." ]; From 294ace53a319c058ce4ab3f45d40a55179e014c8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 5 Aug 2026 05:16:55 +0000 Subject: [PATCH 07/78] python3Packages.rioxarray: 0.22.0 -> 0.23.0 --- pkgs/development/python-modules/rioxarray/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/rioxarray/default.nix b/pkgs/development/python-modules/rioxarray/default.nix index 9d6b609b8cba..15b5db9d5900 100644 --- a/pkgs/development/python-modules/rioxarray/default.nix +++ b/pkgs/development/python-modules/rioxarray/default.nix @@ -22,14 +22,14 @@ buildPythonPackage (finalAttrs: { pname = "rioxarray"; - version = "0.22.0"; + version = "0.23.0"; pyproject = true; src = fetchFromGitHub { owner = "corteva"; repo = "rioxarray"; tag = finalAttrs.version; - hash = "sha256-+0TJeEjAKIqi6cbLZiv14dPKW8Xza+4tn/Erzn88ZS0="; + hash = "sha256-3zRfoCHINLZt88tIu9wSOyZGzQEryxMSWhfEBcviKSQ="; }; build-system = [ setuptools ]; From 99ca037525f375104c06ab0bd92e50bf525be3db Mon Sep 17 00:00:00 2001 From: eljamm Date: Wed, 5 Aug 2026 08:03:11 +0200 Subject: [PATCH 08/78] python3Packages.emerge: 2.8.1 -> 2.8.2; set update script version to 2.x because 3.x is still in development and may not be ready for production. --- pkgs/development/python-modules/emerge/default.nix | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/emerge/default.nix b/pkgs/development/python-modules/emerge/default.nix index 810182d8afbb..c95d29caaee0 100644 --- a/pkgs/development/python-modules/emerge/default.nix +++ b/pkgs/development/python-modules/emerge/default.nix @@ -5,6 +5,7 @@ buildPythonPackage, fetchFromGitHub, writableTmpDirAsHomeHook, + nix-update-script, cudaPackages, @@ -37,6 +38,7 @@ callPackage, cudaSupport ? config.cudaSupport, + withMkl ? stdenv.hostPlatform.isx86_64 && config.allowUnfree, }: let @@ -61,7 +63,7 @@ in buildPythonPackage (finalAttrs: { pname = "emerge"; - version = "2.8.1"; + version = "2.8.2"; pyproject = true; __structuredAttrs = true; @@ -69,7 +71,7 @@ buildPythonPackage (finalAttrs: { owner = "FennisRobert"; repo = "EMerge"; tag = "v${finalAttrs.version}"; - hash = "sha256-TArhxtPAGEmPI4L+/pgy+RhV9atAZ5Ig0TkUDoV+eXQ="; + hash = "sha256-wxJeSiHfYTY7mRll8cxJSpdciun+uw5V7FLTUKuHu28="; }; postPatch = '' @@ -103,7 +105,7 @@ buildPythonPackage (finalAttrs: { ]; buildInputs = - lib.optionals stdenv.hostPlatform.isx86_64 [ + lib.optionals withMkl [ mkl ] ++ lib.optionals cudaSupport [ @@ -145,11 +147,16 @@ buildPythonPackage (finalAttrs: { ; tests = callPackage ./tests { }; + + updateScript = nix-update-script { + extraArgs = [ "--version-regex=^v(2\\.[0-9].*)$" ]; + }; }; meta = { description = "Electromagnetic field computation program"; homepage = "https://github.com/FennisRobert/EMerge"; + mainProgram = "emerge"; license = lib.licenses.gpl2Plus; maintainers = with lib.maintainers; [ eljamm ]; teams = with lib.teams; [ ngi ]; From addb85bf782b622974c19a6903c4f0dbbff49aec Mon Sep 17 00:00:00 2001 From: eljamm Date: Wed, 5 Aug 2026 08:06:18 +0200 Subject: [PATCH 09/78] python3Packages.emsutil: use unstable version in update script --- pkgs/development/python-modules/emsutil/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/python-modules/emsutil/default.nix b/pkgs/development/python-modules/emsutil/default.nix index c33ac5646c7b..b7d315d28144 100644 --- a/pkgs/development/python-modules/emsutil/default.nix +++ b/pkgs/development/python-modules/emsutil/default.nix @@ -2,6 +2,7 @@ lib, buildPythonPackage, fetchFromGitHub, + nix-update-script, # build-system hatchling, @@ -51,6 +52,11 @@ buildPythonPackage (finalAttrs: { "emsutil" ]; + # TODO: remove after new release (>0.8.3) + passthru.updateScript = nix-update-script { + extraArgs = [ "--version=branch" ]; + }; + meta = { description = "Utilities for the EMerge software suite"; homepage = "https://github.com/FennisRobert/emsutil"; From 513f66e12e493ccce840db96a8de58a0c6c6a592 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 5 Aug 2026 08:51:57 +0000 Subject: [PATCH 10/78] cnspec: 13.30.1 -> 13.32.1 --- pkgs/by-name/cn/cnspec/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/cn/cnspec/package.nix b/pkgs/by-name/cn/cnspec/package.nix index db986bf6e2fe..0509061ea3ea 100644 --- a/pkgs/by-name/cn/cnspec/package.nix +++ b/pkgs/by-name/cn/cnspec/package.nix @@ -6,18 +6,18 @@ buildGoModule (finalAttrs: { pname = "cnspec"; - version = "13.30.1"; + version = "13.32.1"; src = fetchFromGitHub { owner = "mondoohq"; repo = "cnspec"; tag = "v${finalAttrs.version}"; - hash = "sha256-u617olxSFcDd/6qK26SteiGOzEN+1shqntUzgw6bFq8="; + hash = "sha256-f4Cx525MsVrpXDTxDJeG0ddsaFb2aqGWhZCm20pD8lU="; }; proxyVendor = true; - vendorHash = "sha256-VwaV6OHl9LPLD2BbIESRjG572W5uGH4514P3ue2f894="; + vendorHash = "sha256-cxFhSCIiNOrnicgqR1OC7vuEDQbQeEuCamb08elA++Y="; subPackages = [ "apps/cnspec" ]; From cad75cbc62739d3c1597303409d5c17c543216b7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 5 Aug 2026 09:14:00 +0000 Subject: [PATCH 11/78] python3Packages.streamlit-folium: 0.27.3 -> 0.27.4 --- pkgs/development/python-modules/streamlit-folium/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/streamlit-folium/default.nix b/pkgs/development/python-modules/streamlit-folium/default.nix index b1e2f97e26e1..2faff3e74b20 100644 --- a/pkgs/development/python-modules/streamlit-folium/default.nix +++ b/pkgs/development/python-modules/streamlit-folium/default.nix @@ -15,14 +15,14 @@ buildPythonPackage (finalAttrs: { pname = "streamlit-folium"; - version = "0.27.3"; + version = "0.27.4"; pyproject = true; src = fetchFromGitHub { owner = "randyzwitch"; repo = "streamlit-folium"; tag = "v${finalAttrs.version}"; - hash = "sha256-nxUK8o9OqdD0/tktSncTgxk3q4nAhmmR8A7isZsxsFI="; + hash = "sha256-DpkAwbSi8nQ2E9ItxCq89ubPGn5u8/caYj0GaGuTnR4="; }; postPatch = '' From 3d8affec8b6c3fb073288e4cccfb3435f92c1518 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 5 Aug 2026 11:51:48 +0000 Subject: [PATCH 12/78] fna3d: 26.06 -> 26.08 --- pkgs/by-name/fn/fna3d/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/fn/fna3d/package.nix b/pkgs/by-name/fn/fna3d/package.nix index 46e29a1ab36e..baad06f06271 100644 --- a/pkgs/by-name/fn/fna3d/package.nix +++ b/pkgs/by-name/fn/fna3d/package.nix @@ -11,14 +11,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "fna3d"; - version = "26.06"; + version = "26.08"; src = fetchFromGitHub { owner = "FNA-XNA"; repo = "FNA3D"; tag = finalAttrs.version; fetchSubmodules = true; - hash = "sha256-p85nZzpegjXQTUv64Pxhn6BxBTUN5bOs73cgqLu79GI="; + hash = "sha256-KD2HSBvB7oiy4/AAYSi+bOEYYYyP3XqtYvjZOBIYzig="; }; cmakeFlags = [ From f34ca9940ab3b72d5cad5852a30b1ac3d8fed76b Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Sun, 12 Jul 2026 15:55:57 +0200 Subject: [PATCH 13/78] pkgs/nixos-render-docs: add prepend content via 'experimental-config' This new mode is supposed to absorb content that is currently added via --infile and recursive {=include=} As we restructure the nixpkgs manual we are going to add pages to this file As a result we end up with a config file that describes the sidebar structure and what files map to which entry This is needed for 'docs.nixos.org' navigation cutover; which will consume this file along with the .md files and render it into the portal --- doc/doc-support/package.nix | 2 +- doc/nav.json | 3 +- .../src/nixos_render_docs/manual.py | 167 +++++++++++-- .../src/nixos_render_docs/manual_structure.py | 25 +- .../src/tests/test_html_header.py | 2 +- .../src/tests/test_manual.py | 220 +++++++++++++++++- 6 files changed, 390 insertions(+), 29 deletions(-) diff --git a/doc/doc-support/package.nix b/doc/doc-support/package.nix index 728bbe334501..7a0993cfcea5 100644 --- a/doc/doc-support/package.nix +++ b/doc/doc-support/package.nix @@ -118,7 +118,7 @@ stdenvNoCC.mkDerivation ( --script ./anchor.min.js \ --script ./anchor-use.js \ --sidebar-depth 3 \ - --nav ./nav.json \ + --experimental-config ./nav.json \ --header ${./header.html}\ --no-navheader \ manual.md \ diff --git a/doc/nav.json b/doc/nav.json index 15d4926421cf..8c564c94294d 100644 --- a/doc/nav.json +++ b/doc/nav.json @@ -1,3 +1,4 @@ { - "open": [] + "open": [], + "items": [] } diff --git a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual.py b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual.py index 3f61608d60fa..551465ad4881 100644 --- a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual.py +++ b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual.py @@ -3,9 +3,9 @@ import hashlib import html import json import re -import xml.sax.saxutils as xml from abc import abstractmethod from collections.abc import Mapping, Sequence +from dataclasses import dataclass from pathlib import Path from typing import Any, Callable, ClassVar, Generic, NamedTuple, cast, get_args @@ -44,6 +44,7 @@ class BaseConverter(Converter[md.TR], Generic[md.TR]): self._current_type = ['book'] try: tokens = self._parse(infile.read_text()) + self._prepend_config(infile, tokens) self._postprocess(infile, outfile, tokens) converted = self._renderer.render(tokens) outfile.write_text(converted) @@ -53,6 +54,9 @@ class BaseConverter(Converter[md.TR], Generic[md.TR]): def _postprocess(self, infile: Path, outfile: Path, tokens: Sequence[Token]) -> None: pass + def _prepend_config(self, infile: Path, tokens: list[Token]) -> None: + pass + def _handle_headings(self, tokens: list[Token], *, src: str, on_heading: Callable[[Token,str],None]) -> None: # Headings in a globally numbered order # h1 to h6 @@ -232,6 +236,7 @@ class RendererMixin(Renderer): 'included_preface': lambda *args: self._included_thing("preface", *args), 'included_parts': lambda *args: self._included_thing("part", *args), 'included_appendix': lambda *args: self._included_thing("appendix", *args), + 'included_content': lambda *args: self._included_thing("content", *args), 'included_options': self.included_options, } @@ -264,7 +269,6 @@ class HTMLParameters(NamedTuple): # structural depth of the navigation sidebar tree sidebar_depth: int media_dir: Path - sidebar_open: frozenset[str] = frozenset() header: Path | None = None no_navheader: bool = False @@ -273,15 +277,18 @@ class ManualHTMLRenderer(RendererMixin, HTMLRenderer): _in_dir: Path _html_params: HTMLParameters _redirects: Redirects | None + _sidebar_open: frozenset[str] def __init__(self, toplevel_tag: str, revision: str, html_params: HTMLParameters, manpage_urls: Mapping[str, str], xref_targets: dict[str, XrefTarget], - redirects: Redirects | None, in_dir: Path, base_path: Path): + redirects: Redirects | None, in_dir: Path, base_path: Path, + sidebar_open: frozenset[str]): super().__init__(toplevel_tag, revision, manpage_urls, xref_targets) self._in_dir = in_dir self._base_path = base_path.absolute() self._html_params = html_params self._redirects = redirects + self._sidebar_open = sidebar_open def _pull_image(self, src: str) -> str: src_path = Path(src) @@ -542,7 +549,10 @@ document.addEventListener("DOMContentLoaded", createObserver); link = f'{e.target.toc_html}' cls = html.escape(e.kind, True) if children: - open_attr = " open" if e.target.id in self._html_params.sidebar_open else "" + # a group without an 'id' in the config gets open_id "". + # the empty key then fails the truth test, so the group stays closed. + key = e.target.id if e.open_id is None else e.open_id + open_attr = " open" if key and key in self._sidebar_open else "" items.append( f'
  • ' f'{link}{children}' @@ -607,6 +617,25 @@ document.addEventListener("DOMContentLoaded", createObserver); def _to_base26(n: int) -> str: return (_to_base26(n // 26) if n > 26 else "") + chr(ord("A") + n % 26) +@dataclass +class ConfigLeaf: + file: str + label: str | None = None + +@dataclass +class ConfigGroup: + label: str + children: list["ConfigNode"] + id: str | None = None + +ConfigNode = ConfigLeaf | ConfigGroup + +@dataclass +class ConfigManifest: + items: list[ConfigNode] + open: frozenset[str] + + class HTMLConverter(BaseConverter[ManualHTMLRenderer]): INCLUDE_ARGS_NS = "html" INCLUDE_FRAGMENT_ALLOWED_ARGS = { 'into-file' } @@ -618,24 +647,127 @@ class HTMLConverter(BaseConverter[ManualHTMLRenderer]): _xref_targets: dict[str, XrefTarget] _redirection_targets: set[str] _appendix_count: int = 0 + _config_path: Path | None + _config: ConfigManifest | None def _next_appendix_id(self) -> str: self._appendix_count += 1 return _to_base26(self._appendix_count - 1) - def __init__(self, revision: str, html_params: HTMLParameters, manpage_urls: Mapping[str, str], redirects: Redirects | None = None): + def __init__( + self, + revision: str, + html_params: HTMLParameters, + manpage_urls: Mapping[str, str], + redirects: Redirects | None = None, + config_path: Path | None = None + ): super().__init__() self._revision, self._html_params, self._manpage_urls, self._redirects = revision, html_params, manpage_urls, redirects + self._config_path = config_path + self._config = None self._xref_targets = {} self._redirection_targets = set() # renderer not set on purpose since it has a dependency on the output path! def convert(self, infile: Path, outfile: Path) -> None: + try: + self._config = self._load_config() + except Exception as e: + raise RuntimeError(f"failed to load config '{self._config_path}'") from e + sidebar_open = self._config.open if self._config is not None else frozenset() self._renderer = ManualHTMLRenderer( 'book', self._revision, self._html_params, self._manpage_urls, self._xref_targets, - self._redirects, infile.parent, outfile.parent) + self._redirects, infile.parent, outfile.parent, sidebar_open) super().convert(infile, outfile) + def _load_config(self) -> ConfigManifest | None: + if self._config_path is None: + return None + src = self._config_path.read_text() + config = json.loads(src) + if not isinstance(config, dict) or not isinstance(config.get('items'), list): + raise SrcError( + src=src, + description=f"config {self._config_path}: expected a top-level object with an 'items' array") + open_ids = config.get('open', []) + if not isinstance(open_ids, list) or not all(isinstance(i, str) for i in open_ids): + raise SrcError( + src=src, + description=f"config {self._config_path}: 'open' must be an array of strings") + items = self._parse_config_nodes(config['items'], "config items", src) + return ConfigManifest(items=items, open=frozenset(open_ids)) + + def _parse_config_nodes(self, items: Any, where: str, src: str) -> list[ConfigNode]: + return [self._parse_config_node(item, f"{where}[{idx}]", src) + for idx, item in enumerate(items)] + + def _parse_config_node(self, item: Any, where: str, src: str) -> ConfigNode: + if not isinstance(item, dict): + raise SrcError(src=src, description=f"{where}: expected an object, got {type(item).__name__}") + label = item.get('label') + if label is not None and (not isinstance(label, str) or not label): + raise SrcError(src=src, description=f"{where}: 'label' must be a non-empty string") + has_file, has_children = 'file' in item, 'children' in item + if has_file == has_children: + raise SrcError( + src=src, + description=f"{where}: must have exactly one of 'file' or 'children'") + if has_file: + if not isinstance(item['file'], str): + raise SrcError(src=src, description=f"{where}: 'file' must be a string") + return ConfigLeaf(file=item['file'], label=label) + children = item['children'] + if not isinstance(children, list) or not children: + raise SrcError(src=src, description=f"{where}: 'children' must be a non-empty array") + if not isinstance(label, str) or not label: + raise SrcError(src=src, description=f"{where}: a group requires a non-empty 'label'") + gid = item.get('id') + if gid is not None and (not isinstance(gid, str) or not gid): + raise SrcError(src=src, description=f"{where}: 'id' must be a non-empty string") + return ConfigGroup(label=label, children=self._parse_config_nodes(children, where, src), id=gid) + + def _prepend_config(self, infile: Path, tokens: list[Token]) -> None: + if self._config is None: + return + assert self._config_path is not None + include = self._build_config_include(self._config.items, self._config_path.resolve()) + # tokens 0 to 5 hold the title h1 triple and the subtitle h2 triple. + # _render_book renders tokens[6:] as the body. + # a change to the preamble must change this index too. + tokens[6:6] = [include] + + def _build_config_include(self, nodes: list[ConfigNode], config_file: Path) -> Token: + included = [self._build_config_item(node, config_file) for node in nodes] + token = Token('included_content', '', 0, map=[0, 1]) + token.meta['included'] = included + token.meta['include-args'] = {} + return token + + def _build_config_item(self, node: ConfigNode, config_file: Path) -> tuple[list[Token], Path]: + if isinstance(node, ConfigLeaf): + path = (config_file.parent / node.file).resolve() + leaf_src = path.read_text() + self._base_paths.append(path) + self._current_type.append('content') + try: + fragment = self._parse(leaf_src) + finally: + self._current_type.pop() + self._base_paths.pop() + if node.label is not None: + fragment[1].meta['toc-label'] = node.label + return fragment, path + + # TocEntry._collect_entries reads nav-label and nav-id. + # it builds the sidebar group from them. + group = self._build_config_include(node.children, config_file) + group.meta['nav-label'] = node.label + if node.id is not None: + group.meta['nav-id'] = node.id + + return [group], config_file + def _parse(self, src: str, *, auto_id_prefix: None | str = None) -> list[Token]: tokens = super()._parse(src,auto_id_prefix=auto_id_prefix) for token in tokens: @@ -747,10 +879,12 @@ class HTMLConverter(BaseConverter[ManualHTMLRenderer]): title_html = self._renderer.renderInline(inlines.children[0:1]) else: toc_html, title = title_html, title_html + if (toc_label := inlines.meta.get('toc-label')) is not None: + toc_html = html.escape(cast(str, toc_label)) title_html = ( f"{title_html}" if typ == 'chapter' - else title_html if typ in [ 'book', 'part' ] + else title_html if typ in [ 'book', 'part', 'content' ] else f'the section called “{title_html}”' ) return XrefTarget(id, title_html, toc_html, re.sub('<.*?>', '', title), path, drop_fragment) @@ -820,9 +954,14 @@ def _build_cli_html(p: argparse.ArgumentParser) -> None: p.add_argument('--media-dir', default="media", type=Path) p.add_argument('--redirects', type=Path) p.add_argument('--sidebar-depth', default=2, type=int) - # nav metadata (JSON): {"open": ["anchor-id", ...]} selects which sidebar - # entries render expanded; omitted or absent means everything is collapsed. - p.add_argument('--nav', type=Path) + p.add_argument('--experimental-config', type=Path, help=""" +JSON file of the following form +{ items: [ { file, label? } | { label, children: [...], id? } ], open: [ id, ... ] } + +Files added through this flag prepend '--infile' + +This flag will replace --infile and `{=include=}` directives in the future +""") # Deprecated flags, p.add_argument('--toc-depth', nargs='?', action=_DeprecatedDepthFlag, default=None) p.add_argument('--chunk-toc-depth', nargs='?', action=_DeprecatedDepthFlag, default=None) @@ -835,10 +974,6 @@ def _build_cli_html(p: argparse.ArgumentParser) -> None: p.add_argument('outfile', type=Path) def _run_cli_html(args: argparse.Namespace) -> None: - sidebar_open: frozenset[str] = frozenset() - if args.nav: - with open(args.nav) as nav_file: - sidebar_open = frozenset(json.load(nav_file).get("open", [])) with open(args.manpage_urls) as manpage_urls, open(Path(__file__).parent / "redirects.js") as redirects_script: redirects = None if args.redirects: @@ -848,8 +983,8 @@ def _run_cli_html(args: argparse.Namespace) -> None: md = HTMLConverter( args.revision, HTMLParameters(args.generator, args.stylesheet, args.script, - args.sidebar_depth, args.media_dir, sidebar_open, args.header, args.no_navheader), - json.load(manpage_urls), redirects) + args.sidebar_depth, args.media_dir, args.header, args.no_navheader), + json.load(manpage_urls), redirects, args.experimental_config) md.convert(args.infile, args.outfile) def build_cli(p: argparse.ArgumentParser) -> None: diff --git a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual_structure.py b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual_structure.py index 859ff5197d17..204b5aa9b933 100644 --- a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual_structure.py +++ b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual_structure.py @@ -13,8 +13,10 @@ from .utils import Freezeable # FragmentType is used to restrict structural include blocks. FragmentType = Literal['preface', 'part', 'chapter', 'section', 'appendix'] -# in the TOC all fragments are allowed, plus the all-encompassing book. -TocEntryType = Literal['book', 'preface', 'part', 'chapter', 'section', 'appendix', 'example', 'figure'] +# the TOC allows every fragment type. it also allows the enclosing book. +# it allows 'example' and 'figure'. +# --experimental-config adds a generic 'content' kind. +TocEntryType = Literal['book', 'preface', 'part', 'chapter', 'section', 'appendix', 'example', 'figure', 'content'] def is_include(token: Token) -> bool: return token.type == "fence" and token.info.startswith("{=include=} ") @@ -145,6 +147,7 @@ class TocEntry(Freezeable): next: TocEntry | None = None children: list[TocEntry] = dc.field(default_factory=list) starts_new_chunk: bool = False + open_id: str | None = None @property def root(self) -> TocEntry: @@ -193,9 +196,21 @@ class TocEntry(Freezeable): fragment_type_str = token.type[9:].removesuffix('s') assert fragment_type_str in get_args(TocEntryType) fragment_type = cast(TocEntryType, fragment_type_str) - for fragment, _path in included: - subentries = cls._collect_entries(xrefs, fragment, fragment_type) - entries[-1][1].children.append(subentries) + if (nav_label := token.meta.get('nav-label')) is not None: + children = [cls._collect_entries(xrefs, fragment, fragment_type) + for fragment, _path in included] + first = children[0].target + group = TocEntry( + fragment_type, + dc.replace(first, title_html=nav_label, toc_html=nav_label, title=nav_label), + children=children, + open_id=token.meta.get('nav-id', '')) + entries.append(('h1', group)) + token.meta['TocEntry'] = group + else: + for fragment, _path in included: + subentries = cls._collect_entries(xrefs, fragment, fragment_type) + entries[-1][1].children.append(subentries) elif token.type == 'heading_open' and (id := cast(str, token.attrs.get('id', ''))): while len(entries) > 1 and entries[-1][0] >= token.tag: entries[-2][1].children.append(entries.pop()[1]) diff --git a/pkgs/by-name/ni/nixos-render-docs/src/tests/test_html_header.py b/pkgs/by-name/ni/nixos-render-docs/src/tests/test_html_header.py index 7111959bea55..b0af6d8c4b99 100644 --- a/pkgs/by-name/ni/nixos-render-docs/src/tests/test_html_header.py +++ b/pkgs/by-name/ni/nixos-render-docs/src/tests/test_html_header.py @@ -9,7 +9,7 @@ def render(tmp_path: Path, header: Path | None) -> str: infile = tmp_path / "index.md" infile.write_text(SAMPLE_BOOK) outfile = tmp_path / "index.html" - params = HTMLParameters("", [], [], 2, sidebar_open = [], media_dir=tmp_path, header = header) + params = HTMLParameters("", [], [], 2, media_dir=tmp_path, header = header) HTMLConverter("1.0.0", params, {}).convert(infile, outfile) return outfile.read_text() diff --git a/pkgs/by-name/ni/nixos-render-docs/src/tests/test_manual.py b/pkgs/by-name/ni/nixos-render-docs/src/tests/test_manual.py index 45bce4cb6e78..5da16ab7659b 100644 --- a/pkgs/by-name/ni/nixos-render-docs/src/tests/test_manual.py +++ b/pkgs/by-name/ni/nixos-render-docs/src/tests/test_manual.py @@ -1,7 +1,9 @@ +import json import xml.parsers.expat as expat from html.entities import name2codepoint from pathlib import Path +import pytest from nixos_render_docs.manual import HTMLConverter, HTMLParameters @@ -49,7 +51,7 @@ def _build(tmp_path: Path, sidebar_depth: int = 2, sidebar_open: frozenset[str] out.mkdir(exist_ok=True) conv = HTMLConverter( "1.0.0", - HTMLParameters("test-gen", [], [], sidebar_depth, Path("media"), sidebar_open), + HTMLParameters("test-gen", [], [], sidebar_depth, Path("media")), {}, ) conv.convert(tmp_path / "index.md", out / "index.html") @@ -88,10 +90,42 @@ def test_sidebar_is_collapsible_tree(tmp_path: Path) -> None: def test_nav_metadata_opens_selected_entries(tmp_path: Path) -> None: - # ids listed in the nav "open" set render as
    - html = _build(tmp_path, sidebar_depth=3, sidebar_open=frozenset({"chap-fpa"})) - assert '
    Guides' in html + assert '
    None: + # the config lists 'intro' in 'open'. + # the group has no id, so its key is empty. the group stays closed. + html = _render_with_config( + tmp_path, + { + "items": [ + {"label": "Guides", "children": [ + {"file": "intro.md"}, + ]}, + ], + "open": ["intro"], + }, + {"intro.md": "# Introduction {#intro}\n\nBody.\n"}, + ) + assert '
    Guides' in html + assert "
    " not in html def test_sidebar_depth_caps_the_tree(tmp_path: Path) -> None: @@ -169,3 +203,179 @@ def test_output_is_well_formed_xhtml(tmp_path: Path) -> None: assert {p.name for p in pages} == {"index.html", "chapter.html"} for page in pages: _parse_xhtml(page.read_text()) + + +_DEFAULT_INDEX = ( + "# Test manual {#book-test}\n\n" + "## Version 1\n\n" + "```{=include=} chapters\nmanual-chapter.md\n```\n" +) +_DEFAULT_MANUAL_CHAPTER = "# Manual chapter {#manual-chap}\n\nManual body.\n" + + +def _render_with_config( + tmp_path: Path, + config: object, + files: dict[str, str], + *, + index: str = _DEFAULT_INDEX, + manual_chapter: str = _DEFAULT_MANUAL_CHAPTER, + sidebar_depth: int = 6, +) -> str: + (tmp_path / "config.json").write_text(json.dumps(config)) + (tmp_path / "manual-chapter.md").write_text(manual_chapter) + for name, content in files.items(): + path = tmp_path / name + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(content) + + (tmp_path / "index.md").write_text(index) + out = tmp_path / "out" + out.mkdir(exist_ok=True) + + conv = HTMLConverter( + "1.0.0", + HTMLParameters("test-gen", [], [], sidebar_depth, Path("media")), + {}, + config_path=tmp_path / "config.json", + ) + conv.convert(tmp_path / "index.md", out / "index.html") + return (out / "index.html").read_text() + + +def test_config_content_renders_before_manual(tmp_path: Path) -> None: + html = _render_with_config( + tmp_path, + {"items": [{"label": "Intro", "file": "intro.md"}]}, + {"intro.md": "# Introduction {#intro}\n\nConfig intro body.\n"}, + ) + assert "Config intro body." in html + assert "Manual body." in html + assert html.index("Config intro body.") < html.index("Manual body.") + + +def test_config_grouping_node_is_sidebar_only(tmp_path: Path) -> None: + html = _render_with_config( + tmp_path, + { + "items": [ + { + "label": "Guides", "children": [ + {"label": "Install", "file": "install.md"}, + ] + } + ] + }, + {"install.md": "# Install {#install}\n\nInstall body.\n"}, + ) + # the group adds no heading and no anchor to the body. + assert "Guides" not in html + assert 'id="guides"' not in html + # the child renders as a page. + assert '

    Install' in html + assert "Install body." in html + # the sidebar nests the child under the group. + assert '
    Guides' in html + assert 'Install' in html + + +def test_config_leaf_derives_id_and_label_from_file(tmp_path: Path) -> None: + # the sidebar link reuses the heading id. the label reuses the heading title. + html = _render_with_config( + tmp_path, + {"items": [{"file": "intro.md"}]}, + {"intro.md": "# Introduction {#intro}\n\nBody.\n"}, + ) + assert '

    Introduction' in html + assert 'Introduction' in html + + +def test_config_leaf_label_differs_from_file_title(tmp_path: Path) -> None: + html = _render_with_config( + tmp_path, + { + "items": [ + {"label": "Sidebar Label", "file": "leaf1.md"} + ] + }, + {"leaf1.md": "# File Title {#leaf1}\n\nBody.\n"}, + ) + assert '

    File Title' in html + assert 'Sidebar Label' in html + + +def test_config_tree_nests_arbitrarily_deep(tmp_path: Path) -> None: + html = _render_with_config( + tmp_path, + { + "items": [ + {"label": "A", "children": [ + {"label": "B", "children": [ + {"label": "C", "file": "c.md"}, + ]}, + ]} + ] + }, + {"c.md": "# C File {#leaf-c}\n\nDeep body.\n"}, + ) + # only the leaf renders a heading. the groups A and B add no anchor. + assert '

    A' in html + assert '
    B' in html + assert 'C

  • ' in html + assert html.index('>A') < html.index('>B') < html.index('>C') + + +def test_config_id_is_cross_referenceable(tmp_path: Path) -> None: + html = _render_with_config( + tmp_path, + { + "items": [{"label": "Intro", "file": "intro.md"}] + }, + {"intro.md": "# Introduction {#intro}\n\nBody.\n"}, + manual_chapter="# Manual chapter {#manual-chap}\n\nSee [](#intro).\n", + ) + assert 'Introduction" in html + + +def test_config_duplicate_id_fails(tmp_path: Path) -> None: + with pytest.raises(RuntimeError) as excinfo: + _render_with_config( + tmp_path, + { + "items": [{"label": "Dup", "file": "dup.md"}] + }, + {"dup.md": "# Dup file {#dup}\n\nBody.\n"}, + manual_chapter="# Manual {#dup}\n\nBody.\n", + ) + assert "duplicate id" in str(excinfo.value.__cause__) + + +def test_config_malformed_node_fails(tmp_path: Path) -> None: + with pytest.raises(RuntimeError) as excinfo: + _render_with_config( + tmp_path, + {"items": [{"label": "Bad", "file": "x.md", "children": []}]}, + {}, + ) + assert "exactly one of" in str(excinfo.value.__cause__) + + with pytest.raises(RuntimeError) as excinfo: + _render_with_config( + tmp_path, + {"items": [{"file": 123}]}, + {}, + ) + assert "'file' must be a string" in str(excinfo.value.__cause__) + + with pytest.raises(RuntimeError) as excinfo: + _render_with_config( + tmp_path, + {"items": [{"children": [{"file": "x.md"}]}]}, + {"x.md": "# X {#x}\n\nB.\n"}, + ) + assert "a group requires a non-empty 'label'" in str(excinfo.value.__cause__) From baa5ad7f96e7ea8b7b081104ea32621c8ff0bf86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 5 Aug 2026 15:41:03 +0200 Subject: [PATCH 14/78] python314Packages.python-ironicclient: clean up ignored tests --- .../python-modules/python-ironicclient/default.nix | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/pkgs/development/python-modules/python-ironicclient/default.nix b/pkgs/development/python-modules/python-ironicclient/default.nix index f9f7219795b5..cf6e4579b01f 100644 --- a/pkgs/development/python-modules/python-ironicclient/default.nix +++ b/pkgs/development/python-modules/python-ironicclient/default.nix @@ -69,16 +69,7 @@ buildPythonPackage rec { checkPhase = '' runHook preCheck - stestr run -e <(echo " - ironicclient.tests.unit.osc.v1.test_baremetal_chassis.TestChassisCreate.test_chassis_create_no_options - ironicclient.tests.unit.osc.v1.test_baremetal_chassis.TestChassisCreate.test_chassis_create_with_description - ironicclient.tests.unit.osc.v1.test_baremetal_chassis.TestChassisCreate.test_chassis_create_with_extra - ironicclient.tests.unit.osc.v1.test_baremetal_chassis.TestChassisCreate.test_chassis_create_with_uuid - ironicclient.tests.unit.osc.v1.test_baremetal_conductor.TestBaremetalConductorShow.test_conductor_show - ironicclient.tests.unit.osc.v1.test_baremetal_node.TestBaremetalCreate - ironicclient.tests.unit.osc.v1.test_baremetal_node.TestBaremetalShow.test_baremetal_show - ironicclient.tests.unit.osc.v1.test_baremetal_node.TestNodeHistoryEventGet.test_baremetal_node_history_list - ") + stestr run runHook postCheck ''; From 415f06628bca997b28e5aac702416b4f630c62b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 5 Aug 2026 15:42:39 +0200 Subject: [PATCH 15/78] python314Packages.python-jenkins: clean up failing tests --- pkgs/development/python-modules/python-jenkins/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/python-jenkins/default.nix b/pkgs/development/python-modules/python-jenkins/default.nix index 85ee49cea231..6c0edc0c21d9 100644 --- a/pkgs/development/python-modules/python-jenkins/default.nix +++ b/pkgs/development/python-modules/python-jenkins/default.nix @@ -55,10 +55,7 @@ buildPythonPackage rec { multiprocess ]; checkPhase = '' - # Skip tests that fail due to setuptools>=66.0.0 rejecting PEP 440 - # non-conforming versions. See - # https://github.com/pypa/setuptools/issues/2497 for details. - stestr run -E "tests.test_plugins.(PluginsTestScenarios.test_plugin_version_comparison|PluginsTestScenarios.test_plugin_version_object_comparison|PluginsTest.test_plugin_equal|PluginsTest.test_plugin_not_equal)" + stestr run ''; meta = { From de0169ba313af7100de43d6fea2fce58486e96c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 5 Aug 2026 15:45:38 +0200 Subject: [PATCH 16/78] python314Packages.python-cinderclient: clean up failing tests --- .../python-modules/python-cinderclient/default.nix | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/pkgs/development/python-modules/python-cinderclient/default.nix b/pkgs/development/python-modules/python-cinderclient/default.nix index 7f7ea4edc134..6b3c99c167a8 100644 --- a/pkgs/development/python-modules/python-cinderclient/default.nix +++ b/pkgs/development/python-modules/python-cinderclient/default.nix @@ -62,19 +62,7 @@ buildPythonPackage rec { checkPhase = '' runHook preCheck - # File "/build/python-cinderclient-9.6.0/cinderclient/client.py", line 196, in request - # if raise_exc and resp.status_code >= 400: - # ^^^^^^^^^^^^^^^^^^^^^^^ - # - # TypeError: '>=' not supported between instances of 'Mock' and 'int' - stestr run -e <(echo " - cinderclient.tests.unit.test_client.ClientTest.test_keystone_request_raises_auth_failure_exception - cinderclient.tests.unit.test_client.ClientTest.test_sessionclient_request_method - cinderclient.tests.unit.test_client.ClientTest.test_sessionclient_request_method_raises_badrequest - cinderclient.tests.unit.test_client.ClientTest.test_sessionclient_request_method_raises_overlimit - cinderclient.tests.unit.test_shell.ShellTest.test_password_prompted - cinderclient.tests.unit.test_shell.TestLoadVersionedActions.test_load_versioned_actions_with_help - ") + stestr run runHook postCheck ''; From 562a783116b39943e54858f24501bb0e08f7db7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Tue, 4 Aug 2026 01:00:05 +0200 Subject: [PATCH 17/78] archisteamfarm: 6.3.6.1 -> 6.3.8.4 Diff: https://github.com/JustArchiNET/ArchiSteamFarm/compare/6.3.6.1...6.3.8.4 Changelog: https://github.com/JustArchiNET/ArchiSteamFarm/releases/tag/6.3.8.4 --- pkgs/by-name/ar/archisteamfarm/deps.json | 194 +++++++++--------- pkgs/by-name/ar/archisteamfarm/package.nix | 4 +- .../ar/archisteamfarm/web-ui/default.nix | 6 +- 3 files changed, 107 insertions(+), 97 deletions(-) diff --git a/pkgs/by-name/ar/archisteamfarm/deps.json b/pkgs/by-name/ar/archisteamfarm/deps.json index 472ce7eaee05..63ef43da7690 100644 --- a/pkgs/by-name/ar/archisteamfarm/deps.json +++ b/pkgs/by-name/ar/archisteamfarm/deps.json @@ -1,8 +1,8 @@ [ { "pname": "AngleSharp", - "version": "1.4.0", - "hash": "sha256-xHpoMkhYSj7ejeMmI2e7ygef84QGZhttPjYOnLjITd0=" + "version": "1.5.2", + "hash": "sha256-81rDtnwvR0SDXNNUnPirWIa782gwkgRlz1Fbzm2ywwc=" }, { "pname": "CryptSharpStandard", @@ -276,13 +276,13 @@ }, { "pname": "JetBrains.Annotations.Sources", - "version": "2025.2.4", - "hash": "sha256-QrgVgGkrtQs4eSl2pkG4ozSJHEAVNfPb23BMZauhjcg=" + "version": "2026.2.0", + "hash": "sha256-AqShNJbFCrtUbrqti44j6cUglBApw+VdXWFgsTrO3TU=" }, { "pname": "Markdig.Signed", - "version": "1.2.0", - "hash": "sha256-dC75KeDfJOretrOkaH1Ai/uEYWvxjBosn4NMEhD+LCo=" + "version": "1.3.2", + "hash": "sha256-jfZYxd91vssC/R89L92sEnswH7DTIpKb2fyckjAy1mE=" }, { "pname": "Microsoft.ApplicationInsights", @@ -291,8 +291,13 @@ }, { "pname": "Microsoft.AspNetCore.OpenApi", - "version": "10.0.8", - "hash": "sha256-v2E7nwc4Nac8Ns5cQ2KmzLash9AEMbfQbMo2bFy7oZM=" + "version": "10.0.10", + "hash": "sha256-Mbr8+mzZKu3iq5R4TbNY8r39bZI34SWWd7DfUHg2ETk=" + }, + { + "pname": "Microsoft.Bcl.Cryptography", + "version": "10.0.2", + "hash": "sha256-+OYtcWsd1qZcEXadYeA4t6+pyADg1APQCxpKUtP002M=" }, { "pname": "Microsoft.CodeAnalysis.ResxSourceGenerator", @@ -301,13 +306,13 @@ }, { "pname": "Microsoft.CodeCoverage", - "version": "18.3.0", - "hash": "sha256-fqKglbYvEb/77+rmUvLyLZSwROM1P9OW03Ub307WYZ8=" + "version": "18.4.0", + "hash": "sha256-px8qchiuY5rkujAZ1wGEjuuhZdZmsRSp+FCiTmRUA1A=" }, { "pname": "Microsoft.DiaSymReader", - "version": "2.2.3", - "hash": "sha256-Wf2Hy/9o3xSKB9ZRXj3oUgr2CcUwu+BFn2BP2cX7KJQ=" + "version": "2.2.9", + "hash": "sha256-ouOuoXyE0nz+ikwyz3C8C/CYkWa/sLlOXhkw65D+qCQ=" }, { "pname": "Microsoft.Extensions.Configuration", @@ -324,6 +329,11 @@ "version": "10.0.0", "hash": "sha256-YSiWoA3VQR22k6+bSEAUqeG7UDzZlJfHWDTubUO5V8U=" }, + { + "pname": "Microsoft.Extensions.Configuration.EnvironmentVariables", + "version": "10.0.0", + "hash": "sha256-UayfeqrAmNyfOkuhcBKfj8UpjQqV/ZMqWrDyxCSG1MA=" + }, { "pname": "Microsoft.Extensions.DependencyInjection", "version": "10.0.0", @@ -341,8 +351,8 @@ }, { "pname": "Microsoft.Extensions.DependencyModel", - "version": "8.0.2", - "hash": "sha256-PyuO/MyCR9JtYqpA1l/nXGh+WLKCq34QuAXN9qNza9Q=" + "version": "10.0.8", + "hash": "sha256-YX986Og+47sJnNonmoZCqa54HCaZhJ8fJl45qeRaaUQ=" }, { "pname": "Microsoft.Extensions.Diagnostics.Abstractions", @@ -396,28 +406,28 @@ }, { "pname": "Microsoft.IdentityModel.Abstractions", - "version": "8.18.0", - "hash": "sha256-mkguJA4aXIVVQvSJ9Duq9mivbGXAIkLQp3a8PKy223A=" + "version": "8.19.2", + "hash": "sha256-vNGK6u6V+S0MIaYTg+sSkRF4XUjM1K+cKuR1a9aRCLs=" }, { "pname": "Microsoft.IdentityModel.JsonWebTokens", - "version": "8.18.0", - "hash": "sha256-MdqY9CGRs+fTLb3HYYcSfuzqDFo4Dpho4McFWWferjA=" + "version": "8.19.2", + "hash": "sha256-j9ai0NrgytDsfQiIijp1Ib4jRGX9lgREQBoE6XW9SOc=" }, { "pname": "Microsoft.IdentityModel.Logging", - "version": "8.18.0", - "hash": "sha256-09WyYskyL8gjjVDzoZBQAGXgsPmyagWftALSBCdt4gg=" + "version": "8.19.2", + "hash": "sha256-ja8PAYUNwlfIrkL6EOuZ7SgZfRJwIORGG/ETDD1BtRE=" }, { "pname": "Microsoft.IdentityModel.Tokens", - "version": "8.18.0", - "hash": "sha256-sFhonZW9G6H4ooQ6N/78fkZvADZ2Hf5WAS3FKd/ue1E=" + "version": "8.19.2", + "hash": "sha256-POi3SzcK3+iB3104wXYh3ooVD1GbltwTUf+KMj//UYU=" }, { "pname": "Microsoft.NET.Test.Sdk", - "version": "18.3.0", - "hash": "sha256-o2bILLF5i+XUoi8xZYgolU3CxLTdql5R/tEVWVnKFPU=" + "version": "18.4.0", + "hash": "sha256-ak/emX4C4KQVzc0bSNK4bChS+dvb3FvxZbJNrmf/2+w=" }, { "pname": "Microsoft.OpenApi", @@ -426,73 +436,73 @@ }, { "pname": "Microsoft.Testing.Extensions.CodeCoverage", - "version": "18.5.2", - "hash": "sha256-PkIEXfbyEwlxOIG4h420/TpWbbzAy7eV8RUy7iXHVtk=" + "version": "18.9.0", + "hash": "sha256-tNtPxYAoOlYmfPcdx5towgbmGRMxBDocUiAlAfXIgqA=" }, { "pname": "Microsoft.Testing.Extensions.Telemetry", - "version": "2.2.3", - "hash": "sha256-e70IRoXt5Aiwhxwd6nay0SBQD3ESXcAGh0lCucNtCAE=" + "version": "2.3.2", + "hash": "sha256-3TancCfYy7OW9IU6q+zQv/ETlbBbcjxADrWVRQITytc=" }, { "pname": "Microsoft.Testing.Extensions.TrxReport", - "version": "2.2.3", - "hash": "sha256-guXkeZ4AcbP9uu87/9IpSuZZdt03mFxShU/z2avv3oY=" + "version": "2.3.2", + "hash": "sha256-YMuc6dHVBpP8vk/qBQcO0MXeelpcrr9Wgnpvwi2xEv0=" }, { "pname": "Microsoft.Testing.Extensions.TrxReport.Abstractions", - "version": "2.2.3", - "hash": "sha256-eLb2Sm0lzQkgkdFdcZ76aIGShIf4lRPmpcMauUWN5QE=" + "version": "2.3.2", + "hash": "sha256-MohDLqtLk1K93p1TnvYlaBNetpGoTZSep3xVQho3zb0=" }, { "pname": "Microsoft.Testing.Extensions.VSTestBridge", - "version": "2.2.3", - "hash": "sha256-bSNPv1gAWEU7DVtqYS1qjbBN3lu9TTh6+/nDQCcIIHk=" + "version": "2.3.2", + "hash": "sha256-9W4FmGvIfuwHQr3AFrCZ/uLhtJws5erQccw7ydT5yBU=" }, { "pname": "Microsoft.Testing.Platform", - "version": "2.1.0", - "hash": "sha256-CbR0j0Dh65cMccO7L6ppx4b5iiXjqxjjfC9A85HeLuM=" + "version": "2.3.0", + "hash": "sha256-9ZpWaMU5RmHXTJ3d/aM0WQ3u1IN0w2La4yrOqt7PB14=" }, { "pname": "Microsoft.Testing.Platform", - "version": "2.2.3", - "hash": "sha256-Mz///qqkbdQsgpIjjAiHf/ptvjeQIsO6S99+tg+F8Fw=" + "version": "2.3.2", + "hash": "sha256-kGOyHXenLNMpWyVTDWDh6/hP3qFtnHI5qIaet1udKWM=" }, { "pname": "Microsoft.Testing.Platform.MSBuild", - "version": "2.2.3", - "hash": "sha256-mwt+i2y8UV30JrssGCx9kgjcZ+upWhAxEBs5fCXA/6k=" + "version": "2.3.2", + "hash": "sha256-u0jsv5BU7gSBZlHoy94WlqM0QCJCFbEW1g19RxKn17Q=" }, { "pname": "Microsoft.TestPlatform.ObjectModel", - "version": "18.3.0", - "hash": "sha256-3Y3OxAQsXl6sunQlSjfq31aLWykHQTj2o/TOVI/uy88=" + "version": "18.4.0", + "hash": "sha256-ERL2goDaM0vUElW25DM/5lI2WplE5E6g9mhTegY0bC8=" }, { "pname": "Microsoft.TestPlatform.TestHost", - "version": "18.3.0", - "hash": "sha256-OkR+XvipAHPQbHywTwN8lVcMpyRs2MUJKCxJ5OfKAFk=" + "version": "18.4.0", + "hash": "sha256-S4T/6xHvov8jDcbcuZAOoutMAEudUb3dMP7MyxVa8Fo=" }, { "pname": "MSTest", - "version": "4.2.3", - "hash": "sha256-G6agMAoiK8oMPTpq25i7zsUXXCDxGMP/UBU72Wky9t0=" + "version": "4.3.2", + "hash": "sha256-wuyrsPndMA7FwEhwL+7mevm5WYF1nytvObPlAHIo5fU=" }, { "pname": "MSTest.Analyzers", - "version": "4.2.3", - "hash": "sha256-XlSqWrZVG1nC/qDjNuSs51pM90nQ9QlQtwDKJQVsMPg=" + "version": "4.3.2", + "hash": "sha256-mzMMs8H6u2pRnOb6UjA1pwSOKsULx2v18Stvp/cvxj0=" }, { "pname": "MSTest.TestAdapter", - "version": "4.2.3", - "hash": "sha256-ckBpU7gg4LY2ZBPljRWz2yCj33vRf93Qm/JY7uGfeOs=" + "version": "4.3.2", + "hash": "sha256-qiXoMftAKNEtN2LFwMd2e8EkBn03RfIk15CljjOuU0A=" }, { "pname": "MSTest.TestFramework", - "version": "4.2.3", - "hash": "sha256-og5IO5g/fXm1y9hSNkqZ+libfD9o0dRm/8I9CF0J2So=" + "version": "4.3.2", + "hash": "sha256-BQUOSbJd2LE5C4C5yx7MTozHaWxpo5R6mPC6EdzVHVk=" }, { "pname": "Newtonsoft.Json", @@ -521,58 +531,58 @@ }, { "pname": "NLog", - "version": "6.1.3", - "hash": "sha256-s0sxfQ1tiWRSFVh/m/eIzEe4+ZgT02e9GZiwDAi7xp4=" + "version": "6.1.4", + "hash": "sha256-76h0KhYh0B6NDrkV5MHhv8SqUSvhTF6CFKsao5nRBbQ=" }, { "pname": "NLog.Extensions.Logging", - "version": "6.1.3", - "hash": "sha256-7Ryjk3FZqz6Cn8bCSK5OUf7VCQL9LA/bMCgwr5tpIys=" + "version": "6.1.4", + "hash": "sha256-ChUPGAWJls61E3/w+3q9/jlxDaqGVxCbB6b6mHAPsI8=" }, { "pname": "NLog.Web.AspNetCore", - "version": "6.1.3", - "hash": "sha256-FXxcK5kXO6qy/jw0lnphzhs9QF3u/i5A4GD13jqclUA=" + "version": "6.1.4", + "hash": "sha256-PWrgqvrszRzOvk4tX0n70pa6wDea6eD+C/+2+QKFgoI=" }, { "pname": "OpenTelemetry", - "version": "1.15.3", - "hash": "sha256-zOrEPW8noHfUINJtIWQYMTls2JLRUYm7aoyffjrMBLU=" + "version": "1.17.0", + "hash": "sha256-z68MFp4PEANJeJ3O0nTfJcWosZ4eZl7Y5T93wVYKdKA=" }, { "pname": "OpenTelemetry.Api", - "version": "1.15.3", - "hash": "sha256-vriWJD2xvBt6ir9u5o/aVPBqBJJA7S6IJhkjKDkeLfc=" + "version": "1.17.0", + "hash": "sha256-r/Op/9OQhmL3H+XnkumD8BSdb6WwazolraVXCWDvfdA=" }, { "pname": "OpenTelemetry.Api.ProviderBuilderExtensions", - "version": "1.15.3", - "hash": "sha256-Z4x0eA1dkCOJS5xYZ6ogMOk6H+ivvXuVj1mORyWMOSo=" + "version": "1.17.0", + "hash": "sha256-dAzEFnvUGs0BjQ0Dpxl6ird18yk9ur3djAFVZXJktGM=" }, { "pname": "OpenTelemetry.Exporter.Prometheus.AspNetCore", - "version": "1.15.3-beta.1", - "hash": "sha256-qgaIwTB9To17OifsThq1AsXg1Ms8sqnooAvf+gNJR8Y=" + "version": "1.17.0-beta.1", + "hash": "sha256-5HpmgbBzLf1YX5FkdQHXKsq5rXgctNoSrUqc2iaNolc=" }, { "pname": "OpenTelemetry.Extensions.Hosting", - "version": "1.15.3", - "hash": "sha256-5Z5/80xNttniodCF71s9cGXvDCkIc8Qdvpr969K5G0c=" + "version": "1.17.0", + "hash": "sha256-wesl30ehEO8aIf4kDRRE2iHkMKnv6Ox/4LyQdmtLBnc=" }, { "pname": "OpenTelemetry.Instrumentation.AspNetCore", - "version": "1.15.2", - "hash": "sha256-rfStn++qynwoTOa5H5IFwbAPn7sOgW/vebcfKvOusio=" + "version": "1.17.0", + "hash": "sha256-ydRp8bo5vnHkNzUUHl631WAwbl2d78jQRWXLVvL/QEs=" }, { "pname": "OpenTelemetry.Instrumentation.Http", - "version": "1.15.1", - "hash": "sha256-VG3zmUmFcN+mk7BkIcss1RjkcrVWrQMn8AUDTM4wpus=" + "version": "1.17.0", + "hash": "sha256-QFGOiVZ91oDhu3e/C7vUWxq0v5fcaoaWkwbyWbzIhbo=" }, { "pname": "OpenTelemetry.Instrumentation.Runtime", - "version": "1.15.1", - "hash": "sha256-wE0909zdzuGUB/KD/yEfLV9F5EvZGMmwjL2tpO4bOh4=" + "version": "1.17.0", + "hash": "sha256-YCVl3X4hEqWeJ4buBA6wdQDwDXeR2Ae/fHyuySKqCX0=" }, { "pname": "protobuf-net", @@ -586,8 +596,8 @@ }, { "pname": "Scalar.AspNetCore", - "version": "2.14.14", - "hash": "sha256-/9lh1yFvp8/ROxdQcJEhEtFwrpOCdRNwFfz8B53epVk=" + "version": "2.16.15", + "hash": "sha256-XRzl2wnxnR84jshpKbQbosfU+D3wMAZx7Qs8PwmxXe4=" }, { "pname": "SteamKit2", @@ -596,33 +606,33 @@ }, { "pname": "System.Composition", - "version": "10.0.8", - "hash": "sha256-sp1IzwdxzVZwEF3mOCkobc5SYUGm/u3FDZUPkekoxZs=" + "version": "10.0.10", + "hash": "sha256-u3CKzFRnQ10eMC67s610GQj5/CaEGxxpDtQB028NbzA=" }, { "pname": "System.Composition.AttributedModel", - "version": "10.0.8", - "hash": "sha256-6iUFdykgMj6yOG10qR3TOz6mrQnfDGsr4Q8WP65hBFU=" + "version": "10.0.10", + "hash": "sha256-aGKpD94yaSuK0vmdV8tSPZ4BtHaFZ90H2XxbePvmaMs=" }, { "pname": "System.Composition.Convention", - "version": "10.0.8", - "hash": "sha256-MIQePJ3OkWpA07U+xH1PwiV88WtSGBaTxUrA1j4hD6Y=" + "version": "10.0.10", + "hash": "sha256-o+ptLKlKBZAYri+QVDCeP4ljfXDCQ176fUaI0FeHL2o=" }, { "pname": "System.Composition.Hosting", - "version": "10.0.8", - "hash": "sha256-SOAD0Yz8A/XJ8tEi7Q8DL9H7FzTcgg8HAbnZYKiyZNk=" + "version": "10.0.10", + "hash": "sha256-VMZs+YqwwIJsCpUiC+kdbDjG7l+qnjk7Nq4Tnbtg058=" }, { "pname": "System.Composition.Runtime", - "version": "10.0.8", - "hash": "sha256-hRkoJ8S1oD4FKjnaDYwfzX2Pys6QvGiiX6YxrdGgAyA=" + "version": "10.0.10", + "hash": "sha256-HTIvnvhcTdMdEv7Y20vK+VuQy9reqOfMQRKWjzeEr+I=" }, { "pname": "System.Composition.TypedParts", - "version": "10.0.8", - "hash": "sha256-NYo2dvMJ9WU0BKIGDkuIpFQHkbZE1sGJAtY8fINFpqo=" + "version": "10.0.10", + "hash": "sha256-Qx3V/LSM5jHwnHVl77w3G7jK3EhnFWgmWxCAJ1Fyres=" }, { "pname": "System.IO.Hashing", @@ -631,13 +641,13 @@ }, { "pname": "System.Security.Cryptography.ProtectedData", - "version": "10.0.8", - "hash": "sha256-GYRQSkRnDWytMIQcoNrAVbJda5nzfbtg1HJuwRZVxH0=" + "version": "10.0.10", + "hash": "sha256-sKm55fvpXHZIH5Jw+zTz06BwMb8Nog5+1LgxPyU5lbk=" }, { "pname": "Tmds.DBus.Protocol", - "version": "0.93.0", - "hash": "sha256-Oi2SDkrhTG3v9KXlRsmXQWsRJbQYVqg9bgiao1pUD0k=" + "version": "0.94.2", + "hash": "sha256-ZUxaReVMikjf3VqjUSSTovcjDTWJO8jHNKrvj1dgHJI=" }, { "pname": "ZstdSharp.Port", diff --git a/pkgs/by-name/ar/archisteamfarm/package.nix b/pkgs/by-name/ar/archisteamfarm/package.nix index 81e766c324da..8507d8ecc66a 100644 --- a/pkgs/by-name/ar/archisteamfarm/package.nix +++ b/pkgs/by-name/ar/archisteamfarm/package.nix @@ -21,13 +21,13 @@ in buildDotnetModule rec { pname = "archisteamfarm"; # nixpkgs-update: no auto update - version = "6.3.6.1"; + version = "6.3.8.4"; src = fetchFromGitHub { owner = "JustArchiNET"; repo = "ArchiSteamFarm"; tag = version; - hash = "sha256-C0n3e/t1Bq02vlrF/KyT7vlhtNDIbAsg9zAk9aKZ5/g="; + hash = "sha256-LCynvt8TzvfttqHMq0yAjrP5V8IK/dnpJogeh+6NWoY="; }; dotnet-runtime = dotnetCorePackages.aspnetcore_10_0; diff --git a/pkgs/by-name/ar/archisteamfarm/web-ui/default.nix b/pkgs/by-name/ar/archisteamfarm/web-ui/default.nix index d585db827a95..925c143a1bd1 100644 --- a/pkgs/by-name/ar/archisteamfarm/web-ui/default.nix +++ b/pkgs/by-name/ar/archisteamfarm/web-ui/default.nix @@ -7,7 +7,7 @@ buildNpmPackage rec { pname = "asf-ui"; - version = "a4d5a9a4fbd09ad2ed00ec09db8344175f120898"; + version = "5e028bc91dd3c0238b602714d96713a205600248"; src = fetchFromGitHub { owner = "JustArchiNET"; @@ -15,10 +15,10 @@ buildNpmPackage rec { # updated by the update script # this is always the commit that should be used with asf-ui from the latest asf version rev = version; - hash = "sha256-PP9VT1F8EX5AgNr3OGsirDkUSVAzKHbBpJi6XBlEWeg="; + hash = "sha256-HdUdSrwTXALoT7qmcAYwaeaw1POus8++TBeoqIuEMDM="; }; - npmDepsHash = "sha256-bqwDKSaQt6ptfZC7B332Ig/BAZvJRQ/NaxPgA5VQ884="; + npmDepsHash = "sha256-Vhs5apBz951fcvIx8J+/oShit7rD4/RB919d40cjavs="; installPhase = '' runHook preInstall From 3830532deb9de5fd1d6a4893613f60ca6718ba49 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 5 May 2026 20:18:38 +0000 Subject: [PATCH 18/78] python3Packages.osprofiler: 4.3.0 -> 4.4.0 --- .../python-modules/osprofiler/default.nix | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/pkgs/development/python-modules/osprofiler/default.nix b/pkgs/development/python-modules/osprofiler/default.nix index f4eb83ef4c3c..8e480eabcc73 100644 --- a/pkgs/development/python-modules/osprofiler/default.nix +++ b/pkgs/development/python-modules/osprofiler/default.nix @@ -1,26 +1,34 @@ { lib, buildPythonPackage, + ddt, + docutils, + elasticsearch, fetchPypi, netaddr, + opentelemetry-exporter-otlp, + opentelemetry-sdk, oslo-concurrency, oslo-config, oslo-serialization, oslo-utils, prettytable, + pymongo, + redis, requests, setuptools, + stestrCheckHook, webob, }: buildPythonPackage rec { pname = "osprofiler"; - version = "4.3.0"; + version = "4.4.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-d6jaKyO7X5BIBUvVzMRdCshFdMqKiO8SC4+sbohk4kw="; + hash = "sha256-bgjffu9q/A0tAngT1A5DyyKPDrPrNEHWFJXCgA6/oyA="; }; build-system = [ setuptools ]; @@ -36,11 +44,16 @@ buildPythonPackage rec { webob ]; - # NOTE(vinetos): OSProfiler depends on jeager-client which use opentracing - # Opentracing and jeager-client are archived since 2022. - # As this package is made only to support old OpenStack clients and bindings, - # We do not really care - doCheck = false; + nativeCheckInputs = [ + ddt + docutils + elasticsearch + opentelemetry-exporter-otlp + opentelemetry-sdk + pymongo + redis + stestrCheckHook + ]; pythonImportsCheck = [ "osprofiler" ]; From 1d0c2f13783db0d0ace3bd2cf7ccb726fd297d5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 5 Aug 2026 16:20:12 +0200 Subject: [PATCH 19/78] python314Packages.python-mistralclient: fix unit test failure caused by osprofiler 4.4.0 --- .../python-modules/python-mistralclient/default.nix | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/python-mistralclient/default.nix b/pkgs/development/python-modules/python-mistralclient/default.nix index 51ea1a97ce52..4ec57797a9bf 100644 --- a/pkgs/development/python-modules/python-mistralclient/default.nix +++ b/pkgs/development/python-modules/python-mistralclient/default.nix @@ -3,6 +3,7 @@ buildPythonPackage, cliff, fetchFromGitHub, + fetchpatch, keystoneauth1, openstackdocstheme, openstacksdk, @@ -36,6 +37,14 @@ buildPythonPackage rec { hash = "sha256-FNfee7d8gTcsTdv7lxqDbniUiKQvUXHRSkAlNOCn/k4="; }; + patches = [ + # Fix unit test failure caused by osprofiler 4.4.0 + (fetchpatch { + url = "https://github.com/openstack/python-mistralclient/commit/4cee2bb25a4d15e7dd1802f3e7e75520177446db.patch"; + hash = "sha256-H8JSvPFcHZJsnIWpV0WPvkqyvmg8SBbpsUzqcZeFBwA="; + }) + ]; + env.PBR_VERSION = version; nativeBuildInputs = [ @@ -83,7 +92,7 @@ buildPythonPackage rec { meta = { description = "OpenStack Mistral Command-line Client"; - homepage = "https://opendev.org/openstack/python-mistralclient/"; + homepage = "https://github.com/openstack/python-mistralclient"; license = lib.licenses.asl20; mainProgram = "mistral"; teams = [ lib.teams.openstack ]; From 29bec655406bc627e3f8b2bc098ef8ca86147fd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 5 Aug 2026 15:51:47 +0200 Subject: [PATCH 20/78] python314Packages.python-glanceclient: clean up failing tests --- .../python-glanceclient/default.nix | 21 ++++--------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/pkgs/development/python-modules/python-glanceclient/default.nix b/pkgs/development/python-modules/python-glanceclient/default.nix index a6035fd9b3ee..1090b0dabd55 100644 --- a/pkgs/development/python-modules/python-glanceclient/default.nix +++ b/pkgs/development/python-modules/python-glanceclient/default.nix @@ -26,23 +26,10 @@ let disabledTests = [ # Skip tests which require networking. - "test_http_chunked_response" - "test_v1_download_has_no_stray_output_to_stdout" - "test_v2_requests_valid_cert_verification" - "test_download_has_no_stray_output_to_stdout" - "test_v1_requests_cert_verification_no_compression" - "test_v1_requests_cert_verification" - "test_v2_download_has_no_stray_output_to_stdout" - "test_v2_requests_bad_ca" - "test_v2_requests_bad_cert" - "test_v2_requests_cert_verification_no_compression" - "test_v2_requests_cert_verification" - "test_v2_requests_valid_cert_no_key" - "test_v2_requests_valid_cert_verification_no_compression" - "test_log_request_id_once" - # asserts exact amount of mock calls - "test_cache_schemas_gets_when_forced" - "test_cache_schemas_gets_when_not_exists" + "glanceclient.tests.unit.test_http.TestClient.test_http_chunked_response" + "glanceclient.tests.unit.test_http.TestClient.test_log_request_id_once" + "glanceclient.tests.unit.test_http.TestClient.test_log_request_id_once" + ''glanceclient\.tests\.unit\.test_ssl\.TestHTTPSVerifyCert\..*'' ]; in buildPythonPackage { From 5b69ff950efff0c48e50196beac9ff4821551ce2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 5 Aug 2026 15:52:51 +0200 Subject: [PATCH 21/78] python314Packages.oslo-i18n: clean up failing tests --- pkgs/development/python-modules/oslo-i18n/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/oslo-i18n/default.nix b/pkgs/development/python-modules/oslo-i18n/default.nix index c93201cd9e3a..4f65f6174cdc 100644 --- a/pkgs/development/python-modules/oslo-i18n/default.nix +++ b/pkgs/development/python-modules/oslo-i18n/default.nix @@ -40,10 +40,7 @@ buildPythonPackage rec { checkPhase = '' runHook preCheck - stestr run -e <(echo " - # list is not deduped - oslo_i18n.tests.test_gettextutils.GettextTest.test_get_available_languages - ") + stestr run runHook postCheck ''; From 9ebf7618104a9608b51011fcc606cb35c536a03a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 5 Aug 2026 15:55:04 +0200 Subject: [PATCH 22/78] python314Packages.oslo-db: clean up failing tests --- pkgs/development/python-modules/oslo-db/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/oslo-db/default.nix b/pkgs/development/python-modules/oslo-db/default.nix index 3f6f9053f759..279b5f511dd6 100644 --- a/pkgs/development/python-modules/oslo-db/default.nix +++ b/pkgs/development/python-modules/oslo-db/default.nix @@ -59,7 +59,7 @@ buildPythonPackage rec { checkPhase = '' runHook preCheck - stestr run -e <(echo "oslo_db.tests.sqlalchemy.test_utils.TestModelQuery.test_project_filter_allow_none") + stestr run runHook postCheck ''; From 9b4d591673f050e9d9e9276aedc839c73af3038b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 5 Aug 2026 16:04:52 +0200 Subject: [PATCH 23/78] python314Packages.keystoneauth1: clean up failing tests --- pkgs/development/python-modules/keystoneauth1/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/keystoneauth1/default.nix b/pkgs/development/python-modules/keystoneauth1/default.nix index 9f81f82eada2..0e78d02fe9dc 100644 --- a/pkgs/development/python-modules/keystoneauth1/default.nix +++ b/pkgs/development/python-modules/keystoneauth1/default.nix @@ -69,11 +69,8 @@ buildPythonPackage rec { ] ++ lib.concatAttrValues optional-dependencies; - # test_keystoneauth_betamax_fixture is incompatible with urllib3 2.0.0 - # https://bugs.launchpad.net/keystoneauth/+bug/2020112 checkPhase = '' - stestr run \ - -E "keystoneauth1.tests.unit.test_betamax_fixture.TestBetamaxFixture.test_keystoneauth_betamax_fixture" + stestr run ''; pythonImportsCheck = [ "keystoneauth1" ]; From 8e4df0cf2fb4395828bb14dd02baafeb32cf55c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 5 Aug 2026 16:06:57 +0200 Subject: [PATCH 24/78] kolla: clean up failing tests --- pkgs/by-name/ko/kolla/package.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/by-name/ko/kolla/package.nix b/pkgs/by-name/ko/kolla/package.nix index 5322f07a6ebe..15c2de812bea 100644 --- a/pkgs/by-name/ko/kolla/package.nix +++ b/pkgs/by-name/ko/kolla/package.nix @@ -57,10 +57,9 @@ python3Packages.buildPythonApplication (finalAttrs: { bashate ]; - # Tests output a few exceptions but still succeed checkPhase = '' runHook preCheck - stestr run -e <(echo "test_load_ok") + stestr run runHook postCheck ''; From 0608158e98497c52ab99a5f9018aa2a1c26163bf Mon Sep 17 00:00:00 2001 From: "Adam C. Stephens" Date: Wed, 5 Aug 2026 12:24:23 -0400 Subject: [PATCH 25/78] vikunja: 2.4.0 -> 2.5.0 Changelog: https://github.com/go-vikunja/vikunja/blob/v2.5.0/CHANGELOG.md --- pkgs/by-name/vi/vikunja/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/vi/vikunja/package.nix b/pkgs/by-name/vi/vikunja/package.nix index 6f13470d5cdb..684b72a32d15 100644 --- a/pkgs/by-name/vi/vikunja/package.nix +++ b/pkgs/by-name/vi/vikunja/package.nix @@ -14,12 +14,12 @@ }: let - version = "2.4.0"; + version = "2.5.0"; src = fetchFromGitHub { owner = "go-vikunja"; repo = "vikunja"; rev = "v${version}"; - hash = "sha256-0yAFrq+qzLZLXPblWY2lkoJ2idzENR3YqdFNiDqep6U="; + hash = "sha256-qI4mkgcN9yYRmh5V+KzIHupX7uWsszV4Xb31OYvukxQ="; }; frontend = stdenv.mkDerivation (finalAttrs: { @@ -37,7 +37,7 @@ let ; pnpm = pnpm_10; fetcherVersion = 3; - hash = "sha256-MnkwuEaBEY81LXInDao2Fi+FvKFyvsVS/QeXdS4FhPQ="; + hash = "sha256-xZBgE4GM59Ihl5a3qgcmkjR4Q3wYlcsiDapiNEzBQOg="; }; nativeBuildInputs = [ @@ -102,7 +102,7 @@ buildGoModule { mage ]; - vendorHash = "sha256-4JOwr6QCWglxXbRkcko2nsAxEhVbHDO1S2vI91NFM/8="; + vendorHash = "sha256-bn+bcGzeB0/KkhPNkbjK/EgKQG3iqVlJxtt6betGUNE="; inherit frontend; From a5d20bef56422da975128af906f254cdf81f94ec Mon Sep 17 00:00:00 2001 From: Felix Singer Date: Wed, 5 Aug 2026 18:31:31 +0200 Subject: [PATCH 26/78] jenkins: 2.568.1 -> 2.568.2 Fixes following CVEs: * CVE-2026-70426 * CVE-2026-70427 * CVE-2026-70428 * CVE-2026-70429 * CVE-2026-70430 Signed-off-by: Felix Singer --- pkgs/by-name/je/jenkins/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/je/jenkins/package.nix b/pkgs/by-name/je/jenkins/package.nix index 46338c62722f..fd2039199db9 100644 --- a/pkgs/by-name/je/jenkins/package.nix +++ b/pkgs/by-name/je/jenkins/package.nix @@ -18,11 +18,11 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "jenkins"; - version = "2.568.1"; + version = "2.568.2"; src = fetchurl { url = "https://get.jenkins.io/war-stable/${finalAttrs.version}/jenkins.war"; - hash = "sha256-WPJPOWX773cIYp++FY1RvxOP/Vd8rbyGtGNn6K0L64M="; + hash = "sha256-m7srMp5Scwun3s0aehCVmH9iUOx2H7IRV9uyy80e9ZA="; }; nativeBuildInputs = [ makeWrapper ]; From 02e1c5461ff52140619953f21f63ded35e3cf05e Mon Sep 17 00:00:00 2001 From: hlad Date: Wed, 5 Aug 2026 20:15:21 +0200 Subject: [PATCH 27/78] mame: 0.287 -> 0.289 --- pkgs/by-name/ma/mame/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/ma/mame/package.nix b/pkgs/by-name/ma/mame/package.nix index 18f3de878d65..0c35539dbaf4 100644 --- a/pkgs/by-name/ma/mame/package.nix +++ b/pkgs/by-name/ma/mame/package.nix @@ -24,7 +24,7 @@ portmidi, pugixml, python3, - libsForQt5, + qt6, rapidjson, sqlite, utf8proc, @@ -36,14 +36,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "mame"; - version = "0.287"; + version = "0.289"; srcVersion = builtins.replaceStrings [ "." ] [ "" ] finalAttrs.version; src = fetchFromGitHub { owner = "mamedev"; repo = "mame"; rev = "mame${finalAttrs.srcVersion}"; - hash = "sha256-d1Y3KrJwL8iDjQDqG6FRN82WzVAqTcY1YJaayUQO8sk="; + hash = "sha256-tbveDIOPZjEoTmo5rV2fR9An1I6X4P8Ec7HYHWL6H6U="; }; outputs = [ @@ -87,7 +87,7 @@ stdenv.mkDerivation (finalAttrs: { SDL2 SDL2_ttf sqlite - libsForQt5.qtbase + qt6.qtbase ] ++ lib.optionals stdenv.hostPlatform.isLinux [ alsa-lib @@ -107,7 +107,7 @@ stdenv.mkDerivation (finalAttrs: { pkg-config python3 which - libsForQt5.wrapQtAppsHook + qt6.wrapQtAppsHook ]; patches = [ From 1c95920f588ad569e8a050de7e48639439192140 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 5 Aug 2026 18:23:05 +0000 Subject: [PATCH 28/78] woodpecker-plugin-git: 2.9.2 -> 2.9.3 --- pkgs/by-name/wo/woodpecker-plugin-git/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/wo/woodpecker-plugin-git/package.nix b/pkgs/by-name/wo/woodpecker-plugin-git/package.nix index ec2afe92615a..fa0598bbf17a 100644 --- a/pkgs/by-name/wo/woodpecker-plugin-git/package.nix +++ b/pkgs/by-name/wo/woodpecker-plugin-git/package.nix @@ -8,16 +8,16 @@ buildGoModule (finalAttrs: { pname = "woodpecker-plugin-git"; - version = "2.9.2"; + version = "2.9.3"; src = fetchFromGitHub { owner = "woodpecker-ci"; repo = "plugin-git"; tag = finalAttrs.version; - hash = "sha256-vfHYEZpOAdf88Wqf6/PtbVsymKmQhBr0y2UOGmTGdjY="; + hash = "sha256-sXKR7DEcCVB6y2aHVB/57iacaijC4vLqV7/Mddrev48="; }; - vendorHash = "sha256-zCcYAWO0hn6iLxTxOsjn2bS0+sHuzpq3K24N9jd+qPY="; + vendorHash = "sha256-I3G3Skq7gltFEkL1gJDWTRlbKKnebW9zvoGGGKoQJuI="; env.CGO_ENABLED = "0"; From 1e590b71fe44f5abc17fe5495743caeeb32589d2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 5 Aug 2026 19:01:52 +0000 Subject: [PATCH 29/78] firefox-beta-unwrapped: 153.0b13 -> 154.0b7 --- .../networking/browsers/firefox/packages/firefox-beta.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/browsers/firefox/packages/firefox-beta.nix b/pkgs/applications/networking/browsers/firefox/packages/firefox-beta.nix index 83fb6538eb5b..545d8bf9b2bd 100644 --- a/pkgs/applications/networking/browsers/firefox/packages/firefox-beta.nix +++ b/pkgs/applications/networking/browsers/firefox/packages/firefox-beta.nix @@ -10,11 +10,11 @@ buildMozillaMach rec { pname = "firefox-beta"; binaryName = "firefox-beta"; - version = "153.0b13"; + version = "154.0b7"; applicationName = "Firefox Beta"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; - sha512 = "fecfb1837d1907d54ed52bc40113804b6637352c2cbe6eb906f950d7749cbece32446b42c392102fa9e16591949619237dc2dbeb13bec18697ddd42e9ce8d4dd"; + sha512 = "2a7da6938054f01a443da8d7cbaa38c99d76d90661f404754096041d9e8d5a27b118dcebd27687867706ba2540e5d453b8908e35f75a712220e812436d239dee"; }; meta = { From 5a4b9a757de39333d02f09945c63d6ad68d348f2 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 21:53:51 +0200 Subject: [PATCH 30/78] kubexhunt: init at 2.1 Kubernetes security assessment toolkit https://github.com/mr-xhunt/kubeXhunt --- pkgs/by-name/ku/kubexhunt/package.nix | 55 +++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 pkgs/by-name/ku/kubexhunt/package.nix diff --git a/pkgs/by-name/ku/kubexhunt/package.nix b/pkgs/by-name/ku/kubexhunt/package.nix new file mode 100644 index 000000000000..700b99f407c2 --- /dev/null +++ b/pkgs/by-name/ku/kubexhunt/package.nix @@ -0,0 +1,55 @@ +{ + lib, + fetchFromGitHub, + nix-update-script, + python3Packages, + versionCheckHook, +}: + +python3Packages.buildPythonApplication (finalAttrs: { + pname = "kubexhunt"; + version = "2.1"; + pyproject = true; + + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "mr-xhunt"; + repo = "kubeXhunt"; + tag = "v${finalAttrs.version}"; + hash = "sha256-MknzQhNLtuiW89TBYYU00xGgYZEbIKqMNk9I1SvzDzs="; + }; + + build-system = with python3Packages; [ setuptools ]; + + dependencies = with python3Packages; [ + azure-identity + boto3 + google-cloud-iam + neo4j + jinja2 + ]; + + nativeCheckInputs = with python3Packages; [ + pytest-cov-stub + pytestCheckHook + safety + ]; + + nativeInstallCheckInputs = [ versionCheckHook ]; + + pythonImportsCheck = [ "kubexhunt" ]; + + doInstallCheck = true; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Kubernetes security assessment toolkit"; + homepage = "https://github.com/mr-xhunt/kubeXhunt"; + changelog = "https://github.com/mr-xhunt/kubeXhunt/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; + mainProgram = "kubexhunt"; + }; +}) From 3bb86d31ca535e2c3aa3c3f1e1e926c1f466854c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 22:01:49 +0200 Subject: [PATCH 31/78] agentsploit: init at 1.6.3 Offensive security framework for AI agents and MCP servers https://github.com/agentsploit/agentsploit --- pkgs/by-name/ag/agentsploit/package.nix | 74 +++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 pkgs/by-name/ag/agentsploit/package.nix diff --git a/pkgs/by-name/ag/agentsploit/package.nix b/pkgs/by-name/ag/agentsploit/package.nix new file mode 100644 index 000000000000..c4bdc75cd5ea --- /dev/null +++ b/pkgs/by-name/ag/agentsploit/package.nix @@ -0,0 +1,74 @@ +{ + lib, + fetchFromGitHub, + nix-update-script, + python3Packages, + versionCheckHook, +}: + +python3Packages.buildPythonApplication (finalAttrs: { + pname = "agentsploit"; + version = "1.6.3"; + pyproject = true; + + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "agentsploit"; + repo = "agentsploit"; + tag = "v${finalAttrs.version}"; + hash = "sha256-g9h+hM6ujm0uvkWZMoOkZ/wUGA77Yu6lEn1ZNHh6aTg="; + }; + + build-system = with python3Packages; [ hatchling ]; + + dependencies = with python3Packages; [ + anthropic + anyio + fastapi + httpx + ics + jinja2 + mcp + openai + pydantic + pyyaml + reportlab + rich + structlog + typer + uvicorn + ]; + + nativeCheckInputs = with python3Packages; [ + jsonschema + pytestCheckHook + pytest-asyncio + pytest-cov-stub + types-pyyaml + ]; + + nativeInstallCheckInputs = [ versionCheckHook ]; + + disabledTestPaths = [ + # Tests need network access + "tests/integration/" + ]; + + doInstallCheck = true; + + versionCheckProgramArg = [ "version" ]; + + pythonImportsCheck = [ "agentsploit" ]; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Offensive security framework for AI agents and MCP servers"; + homepage = "https://github.com/agentsploit/agentsploit"; + changelog = "https://github.com/agentsploit/agentsploit/blob/${finalAttrs.src.rev}/CHANGELOG.md"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ fab ]; + mainProgram = "agentsploit"; + }; +}) From 6cf903e9b449a79674745172529f47caaba2cbf6 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 22:17:54 +0200 Subject: [PATCH 32/78] python3Packages.mypy-boto3-connect: 1.43.58 -> 1.43.64 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index 59fca361568d..1b67754c5826 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -335,8 +335,8 @@ in "sha256-3JYcWKFk0dKJg/qn+EBvxeAO5xh5PXCU3dTEWDr1oXI="; mypy-boto3-connect = - buildMypyBoto3Package "connect" "1.43.58" - "sha256-lDeveEiymjAvHh3JoGLQR1dP8h6n/4+UMIt6LVIYmPc="; + buildMypyBoto3Package "connect" "1.43.64" + "sha256-zWW/IqPu2ado8nc+ggaY+7/jko3HBfjcDPRUoM5p7z0="; mypy-boto3-connect-contact-lens = buildMypyBoto3Package "connect-contact-lens" "1.43.0" From e0968414dea5cefc31ec409534251a82eaf9770a Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 22:17:59 +0200 Subject: [PATCH 33/78] python3Packages.mypy-boto3-directconnect: 1.43.35 -> 1.43.63 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index 1b67754c5826..4a45c24dff53 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -399,8 +399,8 @@ in "sha256-4VGCEZbno4w3H5+bc+2/f4ZkgefUDgWOOBkuGTVqvWk="; mypy-boto3-directconnect = - buildMypyBoto3Package "directconnect" "1.43.35" - "sha256-EaazNjN3MOBQLjSaLi01grlO9evVVu0ST5ZOf1dAk9M="; + buildMypyBoto3Package "directconnect" "1.43.63" + "sha256-ncNugcKv/gD//CzbxTeDJK5wuXeaVhIET0xr9aA2NIA="; mypy-boto3-discovery = buildMypyBoto3Package "discovery" "1.43.0" From 77835f07e473df5b5cac148e09d3fc9412f15798 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 22:18:02 +0200 Subject: [PATCH 34/78] python3Packages.mypy-boto3-dynamodb: 1.43.0 -> 1.43.64 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index 4a45c24dff53..83a35011ad69 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -431,8 +431,8 @@ in "sha256-LE8moRJrwRp3T4UGkj+vdRyq9Qw7t/UxcQm1Dw3/Dfs="; mypy-boto3-dynamodb = - buildMypyBoto3Package "dynamodb" "1.43.0" - "sha256-8M6jjgWPHQc2HstV2PQGZdgktCz0hkckx/zMi/OUb80="; + buildMypyBoto3Package "dynamodb" "1.43.64" + "sha256-hZfd19X5LPAOeqCHWZPlzwmYjwF+70G5TUfAjnZ1tdA="; mypy-boto3-dynamodbstreams = buildMypyBoto3Package "dynamodbstreams" "1.43.0" From 6a81eee22ed6a5fb9c29fdd3c25a3fb71bda2bc6 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 22:18:04 +0200 Subject: [PATCH 35/78] python3Packages.mypy-boto3-ec2: 1.43.59 -> 1.43.64 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index 83a35011ad69..801618af7303 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -443,8 +443,8 @@ in "sha256-dXNkOcMonYrBh4yzeubd+v3mW42s9XpmpfvgbtgoJgY="; mypy-boto3-ec2 = - buildMypyBoto3Package "ec2" "1.43.59" - "sha256-cAk90nXgbA1YkS9DQr+oM/zJH1+1p5V5g/nlG+Fo3i0="; + buildMypyBoto3Package "ec2" "1.43.64" + "sha256-4gEYjeyfYdWjolPQvClPEZlUxIfUTZcU3nsq8kLDHOU="; mypy-boto3-ec2-instance-connect = buildMypyBoto3Package "ec2-instance-connect" "1.43.0" From 55baf90b425749dab72c10be601c705224fc50be Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 22:18:16 +0200 Subject: [PATCH 36/78] python3Packages.mypy-boto3-iam: 1.43.60 -> 1.43.64 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index 801618af7303..9054418012ae 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -602,8 +602,8 @@ in "sha256-oPQuxAKSUTpHGyq1J80W57cISh+d+4IGN8ClJdhkfnw="; mypy-boto3-iam = - buildMypyBoto3Package "iam" "1.43.60" - "sha256-Sh82poyz+WLAAPIFYgQ0bRwZYWoSJ5l8VweyY55zTYM="; + buildMypyBoto3Package "iam" "1.43.64" + "sha256-EUU75nZ9iJzC7j7SFCNjPBYXN6MUac7hZw9ekzkt3zk="; mypy-boto3-identitystore = buildMypyBoto3Package "identitystore" "1.43.0" From d4bf97873c850aace1c395a68a467c952786aafc Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 22:18:18 +0200 Subject: [PATCH 37/78] python3Packages.mypy-boto3-inspector2: 1.43.53 -> 1.43.64 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index 9054418012ae..eee06bbf3736 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -622,8 +622,8 @@ in "sha256-9P8m5QYikdsimepaivrYcb/tP1iThyPZWFMkyo24+bo="; mypy-boto3-inspector2 = - buildMypyBoto3Package "inspector2" "1.43.53" - "sha256-eY0CZnh9rwCj3gnNUsN9x65urg8641Yd6QsowbxJipk="; + buildMypyBoto3Package "inspector2" "1.43.64" + "sha256-7xAA1OyNETjna5Yehnnzd8u3OJF8P3lMsBFE0/0tx/4="; mypy-boto3-internetmonitor = buildMypyBoto3Package "internetmonitor" "1.43.0" From d40b4fc2a92ed82e654cdd19bc8862052512f3d9 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 22:18:35 +0200 Subject: [PATCH 38/78] python3Packages.mypy-boto3-mediaconvert: 1.43.39 -> 1.43.63 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index eee06bbf3736..3611a85b922f 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -858,8 +858,8 @@ in "sha256-ZlvcxMsMtkPwzyBpxGWffcD2g73aNIU6WG7jYn66ZjU="; mypy-boto3-mediaconvert = - buildMypyBoto3Package "mediaconvert" "1.43.39" - "sha256-3s5d1ZZ+XoVjYP3uZ2zuaAjH76fbj0j0a5v2H3Ji8vA="; + buildMypyBoto3Package "mediaconvert" "1.43.63" + "sha256-qvQo6w4QfSTVfmJhu7tZFGV6///8pJwEijs3oLT/nTg="; mypy-boto3-medialive = buildMypyBoto3Package "medialive" "1.43.27" From 018cea1c9f50dc2c9bfcd596fd046e1284a1485c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 22:18:43 +0200 Subject: [PATCH 39/78] python3Packages.mypy-boto3-network-firewall: 1.43.62 -> 1.43.63 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index 3611a85b922f..673262659d77 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -946,8 +946,8 @@ in "sha256-rkVxsY4MQ+eB3uQhD3kI7bBpCHiDVcQDNUXA5zUyeok="; mypy-boto3-network-firewall = - buildMypyBoto3Package "network-firewall" "1.43.62" - "sha256-byxKwV6TDM/mo/my8h9aVDzbYMywCVSU/RfyNv9sW6Q="; + buildMypyBoto3Package "network-firewall" "1.43.63" + "sha256-tb67mpqB0urStehtFhyqMiZGCzjokt7GoLSMINH8U00="; mypy-boto3-networkmanager = buildMypyBoto3Package "networkmanager" "1.43.0" From 767e4095281c4c34289058de1f0839e867a35d7b Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 22:18:46 +0200 Subject: [PATCH 40/78] python3Packages.mypy-boto3-organizations: 1.43.52 -> 1.43.64 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index 673262659d77..39812a066e5b 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -982,8 +982,8 @@ in "sha256-JEuEjo0htTuDCZx2nNJK2Zq59oSUqkMf4BrNamerfVk="; mypy-boto3-organizations = - buildMypyBoto3Package "organizations" "1.43.52" - "sha256-Z3hs0TLev/W3O9GI7k9oo3gSR9lRkn/dlo46ILyMDWo="; + buildMypyBoto3Package "organizations" "1.43.64" + "sha256-kyUieR7tYYUGbEOi6ftCEDD07+QfcyJ2cOWqrk2FVAs="; mypy-boto3-osis = buildMypyBoto3Package "osis" "1.43.0" From d803e92df535ca054b5640eb1b96b37e8755d67e Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 22:19:08 +0200 Subject: [PATCH 41/78] python3Packages.mypy-boto3-sso-admin: 1.43.38 -> 1.43.64 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index 39812a066e5b..f8d19723b8c2 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -1310,8 +1310,8 @@ in "sha256-V1og1LY/ORrXbfFVs4vF8LYe30/kvG71F3rWwXmNSJ4="; mypy-boto3-sso-admin = - buildMypyBoto3Package "sso-admin" "1.43.38" - "sha256-XItUg7rif3WcSEFp5+7vLqibBz9j43OpmA+whTlu/iM="; + buildMypyBoto3Package "sso-admin" "1.43.64" + "sha256-wesA1gX4AOwwJs5LKmr6O+MZV8mJFpGh/Gh1wluUvgk="; mypy-boto3-sso-oidc = buildMypyBoto3Package "sso-oidc" "1.43.0" From 602a980547cd683b93acff02ed77a78aaf4f614d Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 22:19:15 +0200 Subject: [PATCH 42/78] python3Packages.mypy-boto3-wafv2: 1.43.59 -> 1.43.63 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index f8d19723b8c2..a4337d2374b6 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -1394,8 +1394,8 @@ in "sha256-zwxwpve6uEpXNyMQzaFPIEqDI/JoP5ks2wmO5gqLf7c="; mypy-boto3-wafv2 = - buildMypyBoto3Package "wafv2" "1.43.59" - "sha256-QxQd/4lPo4kDjmeTrXrF+Eon+EYKG5kRZ1bAIsu2K6s="; + buildMypyBoto3Package "wafv2" "1.43.63" + "sha256-8hUgFNVUOcsjOyECvMlw0S0uG6A8XTv2EBWi06Cj2QY="; mypy-boto3-wellarchitected = buildMypyBoto3Package "wellarchitected" "1.43.0" From 43254134bf44a7fb27b82eff25fdd75ee904d9c1 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 22:19:18 +0200 Subject: [PATCH 43/78] python3Packages.mypy-boto3-workspaces: 1.43.30 -> 1.43.64 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index a4337d2374b6..80a80136f5d7 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -1422,8 +1422,8 @@ in "sha256-2glzIKBlui8YPvzI74bT4ADqEZ0lH9CuZqHtwz64Z3k="; mypy-boto3-workspaces = - buildMypyBoto3Package "workspaces" "1.43.30" - "sha256-1OsfLVGw+V5J8nV343HEp8JOHpk81UawKRmAoE/eBNc="; + buildMypyBoto3Package "workspaces" "1.43.64" + "sha256-zfdA0TU8uzHfqWOt1o16Y6ANoN9PPtth8J9/DARMc+A="; mypy-boto3-workspaces-web = buildMypyBoto3Package "workspaces-web" "1.43.0" From 70b26a0c569659a91e73824027b9a40a7bf22901 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 22:19:23 +0200 Subject: [PATCH 44/78] python3Packages.boto3-stubs: 1.43.62 -> 1.43.64 --- pkgs/development/python-modules/boto3-stubs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/boto3-stubs/default.nix b/pkgs/development/python-modules/boto3-stubs/default.nix index 9b212fa9c108..8df9e0f9eb37 100644 --- a/pkgs/development/python-modules/boto3-stubs/default.nix +++ b/pkgs/development/python-modules/boto3-stubs/default.nix @@ -358,13 +358,13 @@ buildPythonPackage (finalAttrs: { pname = "boto3-stubs"; - version = "1.43.62"; + version = "1.43.64"; pyproject = true; src = fetchPypi { pname = "boto3_stubs"; inherit (finalAttrs) version; - hash = "sha256-pUG/DSBCStQnlAuJOP/zS+oo/A05mQa989GTNxAWRVo="; + hash = "sha256-coJym7MD6kvZ5WhSBJ8Sr1Y768p3wD/A6geIZCfMUDU="; }; build-system = [ setuptools ]; From ddb4dec790cc61e0f9332d42a06c1e81bc550074 Mon Sep 17 00:00:00 2001 From: Baptiste Girardeau Date: Wed, 5 Aug 2026 22:33:44 +0200 Subject: [PATCH 45/78] zmx: 0.6.0 -> 0.7.0 --- pkgs/by-name/zm/zmx/package.nix | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/zm/zmx/package.nix b/pkgs/by-name/zm/zmx/package.nix index 7648925b1527..e88f85917288 100644 --- a/pkgs/by-name/zm/zmx/package.nix +++ b/pkgs/by-name/zm/zmx/package.nix @@ -24,7 +24,7 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "zmx"; - version = "0.6.0"; + version = "0.7.0"; __structuredAttrs = true; strictDeps = true; @@ -32,13 +32,13 @@ stdenv.mkDerivation (finalAttrs: { owner = "neurosnap"; repo = "zmx"; tag = "v${finalAttrs.version}"; - hash = "sha256-OkXtVf/LdBrZL6FH9TGx+mIhUXt2eSugLxZyMd+HL6k="; + hash = "sha256-cWTeFRycSZFEbjCYIzKplNhV9SDM1kDl8CeQPOR3uyk="; }; zigDeps = zig.fetchDeps { inherit (finalAttrs) src pname version; fetchAll = true; - hash = "sha256-TwKoeaE4g5G7t7smKoqHkCCh998nSqKx5k6sO2vDlGs="; + hash = "sha256-w2jTusfDpW5Vk0lVhi2VNEGtir2n0NKQePsKSE2jpmc="; }; postConfigure = '' @@ -58,6 +58,10 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; + preCheck = '' + export ZMX_DIR="$TMPDIR/zmx-test" + ''; + postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' installShellCompletion --cmd ${finalAttrs.meta.mainProgram} \ --bash <($out/bin/zmx completions bash) \ From 5840771d86ec8f41ab424e921f01721470163172 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 22:37:29 +0200 Subject: [PATCH 46/78] python3Packages.tree-sitter-typescript: init at 0.23.2 TypeScript grammar for tree-sitter https://github.com/tree-sitter/tree-sitter-typescript --- .../tree-sitter-typescript/default.nix | 41 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 43 insertions(+) create mode 100644 pkgs/development/python-modules/tree-sitter-typescript/default.nix diff --git a/pkgs/development/python-modules/tree-sitter-typescript/default.nix b/pkgs/development/python-modules/tree-sitter-typescript/default.nix new file mode 100644 index 000000000000..45ecab1ef036 --- /dev/null +++ b/pkgs/development/python-modules/tree-sitter-typescript/default.nix @@ -0,0 +1,41 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + tree-sitter, +}: + +buildPythonPackage (finalAttrs: { + pname = "tree-sitter-typescript"; + version = "0.23.2"; + pyproject = true; + + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-typescript"; + tag = "v${finalAttrs.version}"; + hash = "sha256-CU55+YoFJb6zWbJnbd38B7iEGkhukSVpBN7sli6GkGY="; + }; + + build-system = [ setuptools ]; + + optional-dependencies = { + core = [ + tree-sitter + ]; + }; + + # There are no tests + doCheck = false; + + pythonImportsCheck = [ "tree_sitter_typescript" ]; + + meta = { + description = "TypeScript grammar for tree-sitter"; + homepage = "https://github.com/tree-sitter/tree-sitter-typescript"; + changelog = "https://github.com/tree-sitter/tree-sitter-typescript/releases/tag/v${finalAttrs.src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index d65a5f79f723..3e109b2207be 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -20754,6 +20754,8 @@ self: super: with self; { tree-sitter-sql = callPackage ../development/python-modules/tree-sitter-sql { }; + tree-sitter-typescript = callPackage ../development/python-modules/tree-sitter-typescript { }; + tree-sitter-yaml = callPackage ../development/python-modules/tree-sitter-yaml { }; tree-sitter-zeek = callPackage ../development/python-modules/tree-sitter-zeek { }; From eac95040cd791f1360cee43857a9a914a861dc36 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 22:40:29 +0200 Subject: [PATCH 47/78] openhack: init at 0.2.1 Open Source Agentic Security Scanner https://github.com/openhackai/openhack --- pkgs/by-name/op/openhack/package.nix | 57 ++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 pkgs/by-name/op/openhack/package.nix diff --git a/pkgs/by-name/op/openhack/package.nix b/pkgs/by-name/op/openhack/package.nix new file mode 100644 index 000000000000..e36e3a9d9458 --- /dev/null +++ b/pkgs/by-name/op/openhack/package.nix @@ -0,0 +1,57 @@ +{ + lib, + fetchFromGitHub, + nix-update-script, + python3Packages, + versionCheckHook, +}: + +python3Packages.buildPythonApplication (finalAttrs: { + pname = "openhack"; + version = "0.2.1"; + pyproject = true; + + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "openhackai"; + repo = "openhack"; + tag = "v${finalAttrs.version}"; + hash = "sha256-GY95oijrD/yTZI8DpbRVkCXRhMIw5Zsukt22tnglCVc="; + }; + + build-system = with python3Packages; [ hatchling ]; + + dependencies = with python3Packages; [ + aiohttp + httpx + openai + playwright + prompt-toolkit + pydantic + pydantic-settings + pygments + rich + tree-sitter + tree-sitter-javascript + tree-sitter-python + tree-sitter-typescript + ]; + + nativeInstallCheckInputs = [ versionCheckHook ]; + + doInstallCheck = true; + + pythonImportsCheck = [ "openhack" ]; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Open Source Agentic Security Scanner"; + homepage = "https://github.com/openhackai/openhack"; + changelog = "https://github.com/openhackai/openhack/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; + mainProgram = "openhack"; + }; +}) From 2e6bbe27fb32678637b98291f6e5b29d981264f1 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 23:14:27 +0200 Subject: [PATCH 48/78] python3Packages.hakuin: add pyprojectVersionPatchHook --- pkgs/development/python-modules/hakuin/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/python-modules/hakuin/default.nix b/pkgs/development/python-modules/hakuin/default.nix index ffe2bd5358d8..9d1469a9c2ba 100644 --- a/pkgs/development/python-modules/hakuin/default.nix +++ b/pkgs/development/python-modules/hakuin/default.nix @@ -6,6 +6,7 @@ hatchling, jinja2, nltk, + pyprojectVersionPatchHook, sqlglot, }: @@ -23,6 +24,8 @@ buildPythonPackage rec { build-system = [ hatchling ]; + nativeBuildInputs = [ pyprojectVersionPatchHook ]; + dependencies = [ aiohttp jinja2 @@ -40,5 +43,6 @@ buildPythonPackage rec { homepage = "https://github.com/pruzko/hakuin"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ fab ]; + mainProgram = "hk"; }; } From 6516a6b0d4bb0eb9873be4c89f7477bf08cfda10 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 23:15:41 +0200 Subject: [PATCH 49/78] python3Packages.hakuin: modernize --- pkgs/development/python-modules/hakuin/default.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/hakuin/default.nix b/pkgs/development/python-modules/hakuin/default.nix index 9d1469a9c2ba..1f760768a110 100644 --- a/pkgs/development/python-modules/hakuin/default.nix +++ b/pkgs/development/python-modules/hakuin/default.nix @@ -10,15 +10,17 @@ sqlglot, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "hakuin"; version = "0.2.2"; pyproject = true; + __structuredAttrs = true; + src = fetchFromGitHub { owner = "pruzko"; repo = "hakuin"; - tag = version; + tag = finalAttrs.version; hash = "sha256-97nh+woUsCXcoO2i5KprCwJiE24V3mg91qcNgy7bpgg="; }; @@ -45,4 +47,4 @@ buildPythonPackage rec { maintainers = with lib.maintainers; [ fab ]; mainProgram = "hk"; }; -} +}) From 3d89be5ec86e072fc4468cdbbb851e6c98e4521a Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Wed, 5 Aug 2026 22:22:01 +0100 Subject: [PATCH 50/78] vte: 0.84.0 -> 0.84.1 Changes: https://gitlab.gnome.org/GNOME/vte/-/compare/0.84.0...0.84.1?from_project_id=1893 --- pkgs/by-name/vt/vte/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/vt/vte/package.nix b/pkgs/by-name/vt/vte/package.nix index 3cec20862b25..b31a5c683e22 100644 --- a/pkgs/by-name/vt/vte/package.nix +++ b/pkgs/by-name/vt/vte/package.nix @@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "vte"; - version = "0.84.0"; + version = "0.84.1"; outputs = [ "out" @@ -49,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "mirror://gnome/sources/vte/${lib.versions.majorMinor finalAttrs.version}/vte-${finalAttrs.version}.tar.xz"; - hash = "sha256-BBTjFYODaut4eNol9nxRX36IeZF+zDfJLia4Po2Pw+M="; + hash = "sha256-rKHKqEeK6827HWeJf7NRHrdgHeuuaBDhahW2+iXzGsg="; }; patches = [ From fb39a86892a5dd5674b59770a9881810251964a4 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 23:27:55 +0200 Subject: [PATCH 51/78] python3Packages.debuglater: disable failing test --- pkgs/development/python-modules/debuglater/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/development/python-modules/debuglater/default.nix b/pkgs/development/python-modules/debuglater/default.nix index 31cc01f860ef..5cd90f5e2cca 100644 --- a/pkgs/development/python-modules/debuglater/default.nix +++ b/pkgs/development/python-modules/debuglater/default.nix @@ -36,6 +36,11 @@ buildPythonPackage rec { pythonImportsCheck = [ "debuglater" ]; + disabledTests = [ + # Assertion error + "test_data_structures" + ]; + meta = { description = "Module for post-mortem debugging of Python programs"; homepage = "https://github.com/ploomber/debuglater"; From 7a7b26d7e3b4e56c8e190a2a8f376eedf13f5097 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 5 Aug 2026 23:31:44 +0200 Subject: [PATCH 52/78] python3Packages.debuglater: modernize --- .../python-modules/debuglater/default.nix | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/pkgs/development/python-modules/debuglater/default.nix b/pkgs/development/python-modules/debuglater/default.nix index 5cd90f5e2cca..df29b0dc683f 100644 --- a/pkgs/development/python-modules/debuglater/default.nix +++ b/pkgs/development/python-modules/debuglater/default.nix @@ -7,21 +7,24 @@ numpy, pandas, pytestCheckHook, + setuptools, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "debuglater"; version = "1.4.4"; - format = "setuptools"; + pyproject = true; src = fetchFromGitHub { owner = "ploomber"; repo = "debuglater"; - tag = version; + tag = finalAttrs.version; hash = "sha256-o9IAk3EN8ghEft7Y7Xx+sEjWMNgoyiZ0eiBqnCyXkm8="; }; - propagatedBuildInputs = [ colorama ]; + build-system = [ setuptools ]; + + dependencies = [ colorama ]; optional-dependencies = { all = [ dill ]; @@ -32,7 +35,7 @@ buildPythonPackage rec { pandas pytestCheckHook ] - ++ optional-dependencies.all; + ++ lib.flatten (builtins.attrValues finalAttrs.passthru.optional-dependencies); pythonImportsCheck = [ "debuglater" ]; @@ -44,8 +47,8 @@ buildPythonPackage rec { meta = { description = "Module for post-mortem debugging of Python programs"; homepage = "https://github.com/ploomber/debuglater"; - changelog = "https://github.com/ploomber/debuglater/blob/${version}/CHANGELOG.md"; + changelog = "https://github.com/ploomber/debuglater/blob/${finalAttrs.src.tag}/CHANGELOG.md"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ fab ]; }; -} +}) From 7a33ffe222af25bc833e8b4ece6ad6ff2fd31d79 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 6 Aug 2026 00:00:17 +0200 Subject: [PATCH 53/78] python3Packages.claude-agent-sdk: 0.2.110 -> 0.2.130 Changelog: https://github.com/anthropics/claude-agent-sdk-python/blob/v0.2.130/CHANGELOG.md --- .../python-modules/claude-agent-sdk/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/claude-agent-sdk/default.nix b/pkgs/development/python-modules/claude-agent-sdk/default.nix index b9aed7f1f68f..8bbc247598db 100644 --- a/pkgs/development/python-modules/claude-agent-sdk/default.nix +++ b/pkgs/development/python-modules/claude-agent-sdk/default.nix @@ -14,14 +14,14 @@ buildPythonPackage (finalAttrs: { pname = "claude-agent-sdk"; - version = "0.2.110"; + version = "0.2.130"; pyproject = true; src = fetchFromGitHub { owner = "anthropics"; repo = "claude-agent-sdk-python"; tag = "v${finalAttrs.version}"; - hash = "sha256-tz26ueGAMFM7sD95FoAzhKHvNo7NV9fYZoKfJy/t8Lw="; + hash = "sha256-7hFgXoQ1OlKMrHWc2nhfqPuj1pDRw5OfIOgeGlc4CFw="; }; build-system = [ hatchling ]; @@ -48,6 +48,11 @@ buildPythonPackage (finalAttrs: { "test_query_with_async_iterable" ]; + disabledTestPaths = [ + # Tests require claude code with is non-free + "tests/test_close_cancellation.py" + ]; + meta = { description = "Python SDK for Claude Agent"; homepage = "https://github.com/anthropics/claude-agent-sdk-python"; From 1e892f9dfef65ce29061e1f2696906590fde71f7 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 6 Aug 2026 00:01:29 +0200 Subject: [PATCH 54/78] python3Packages.tiered-debug: 1.4.0 -> 1.5.1 Diff: https://github.com/untergeek/tiered-debug/compare/v1.4.0...v1.5.1 Changelog: https://github.com/untergeek/tiered-debug/releases/tag/v1.5.1 --- pkgs/development/python-modules/tiered-debug/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/tiered-debug/default.nix b/pkgs/development/python-modules/tiered-debug/default.nix index 8a43026f5fcd..84554ab49520 100644 --- a/pkgs/development/python-modules/tiered-debug/default.nix +++ b/pkgs/development/python-modules/tiered-debug/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "tiered-debug"; - version = "1.4.0"; + version = "1.5.1"; pyproject = true; src = fetchFromGitHub { owner = "untergeek"; repo = "tiered-debug"; tag = "v${version}"; - hash = "sha256-lGt2cnT5Pjb87msgnDawn2gg2VtWXwniHM1wTjHU/x4="; + hash = "sha256-PIqRReT+m5nlq9koD88XJMeUvUsRwrXCqZDTylZGgPg="; }; build-system = [ hatchling ]; From cca753ed369ea66fc60805ec549c41bddbd6d1b6 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 6 Aug 2026 00:04:03 +0200 Subject: [PATCH 55/78] python3Packages.tiered-debug: migrate to finalAttrs --- pkgs/development/python-modules/tiered-debug/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/tiered-debug/default.nix b/pkgs/development/python-modules/tiered-debug/default.nix index 84554ab49520..75937691c058 100644 --- a/pkgs/development/python-modules/tiered-debug/default.nix +++ b/pkgs/development/python-modules/tiered-debug/default.nix @@ -7,7 +7,7 @@ pytest-cov-stub, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "tiered-debug"; version = "1.5.1"; pyproject = true; @@ -15,7 +15,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "untergeek"; repo = "tiered-debug"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-PIqRReT+m5nlq9koD88XJMeUvUsRwrXCqZDTylZGgPg="; }; @@ -37,8 +37,8 @@ buildPythonPackage rec { meta = { description = "Python logging helper module that allows for multiple tiers of debug logging"; homepage = "https://github.com/untergeek/tiered-debug"; - changelog = "https://github.com/untergeek/tiered-debug/releases/tag/${src.tag}"; + changelog = "https://github.com/untergeek/tiered-debug/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ fab ]; }; -} +}) From 4a7217bbe9232459980707085b11cdb38e40395b Mon Sep 17 00:00:00 2001 From: Nanotwerp Date: Wed, 5 Aug 2026 21:56:08 -0400 Subject: [PATCH 56/78] orchis-theme: 2025-04-25 -> 2026-07-07 --- pkgs/by-name/or/orchis-theme/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/or/orchis-theme/package.nix b/pkgs/by-name/or/orchis-theme/package.nix index 9e216ff3410b..b4f323cac5b7 100644 --- a/pkgs/by-name/or/orchis-theme/package.nix +++ b/pkgs/by-name/or/orchis-theme/package.nix @@ -37,13 +37,13 @@ lib.checkListOfEnum "${pname}: theme tweaks" validTweaks tweaks stdenvNoCC.mkDerivation rec { inherit pname; - version = "2025-04-25"; + version = "2026-07-07"; src = fetchFromGitHub { repo = "Orchis-theme"; owner = "vinceliuice"; rev = version; - hash = "sha256-+2/CsgJ+rdDpCp+r5B/zys3PtFgtnu+ohTEUOtJNd1Y="; + hash = "sha256-oX6+tPe0nGsl+OzFZCpbKvE00Z/xvP+NoHY7QZ9YAo0="; }; nativeBuildInputs = [ From 12a252afa6a12a46c7fb8ec951ab52f471115057 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 6 Aug 2026 02:15:14 +0000 Subject: [PATCH 57/78] python3Packages.gehomesdk: 2026.7.2 -> 2026.8.0 --- pkgs/development/python-modules/gehomesdk/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/gehomesdk/default.nix b/pkgs/development/python-modules/gehomesdk/default.nix index 93211b5ad7ea..6dcb3dcd6c82 100644 --- a/pkgs/development/python-modules/gehomesdk/default.nix +++ b/pkgs/development/python-modules/gehomesdk/default.nix @@ -15,12 +15,12 @@ buildPythonPackage (finalAttrs: { pname = "gehomesdk"; - version = "2026.7.2"; + version = "2026.8.0"; pyproject = true; src = fetchPypi { inherit (finalAttrs) pname version; - hash = "sha256-dSx+fmQU8UJTVaBaNWyJh302CDb7LcyELSnL0B0sbjk="; + hash = "sha256-4WGkodI608LmlHpzYfPIrexZBNAsImmj2B55+WJgq2E="; }; build-system = [ setuptools ]; From b4d4d7c42665be912c387ad305acd2940099d88a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 6 Aug 2026 02:38:22 +0000 Subject: [PATCH 58/78] amp-cli: 0.0.1785170481-ga5b614 -> 0.0.1785975399-gb63fe6 --- pkgs/by-name/am/amp-cli/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/am/amp-cli/package.nix b/pkgs/by-name/am/amp-cli/package.nix index 66e642a0dceb..6bd55c0cf2f4 100644 --- a/pkgs/by-name/am/amp-cli/package.nix +++ b/pkgs/by-name/am/amp-cli/package.nix @@ -26,7 +26,7 @@ let in stdenvNoCC.mkDerivation (finalAttrs: { pname = "amp-cli"; - version = "0.0.1785170481-ga5b614"; + version = "0.0.1785975399-gb63fe6"; src = finalAttrs.passthru.sources.${stdenvNoCC.hostPlatform.system}; @@ -77,9 +77,9 @@ stdenvNoCC.mkDerivation (finalAttrs: { url = "https://static.ampcode.com/cli/${finalAttrs.version}/amp-${platform}.gz"; hash = { - x86_64-linux = "sha256-/XzK8g9ES5vYC2Y/z/kuFnfpL42oZGn3GQ/Qw1vfUR4="; - aarch64-linux = "sha256-hpqGi0TxkDgo6ygstE/Bsg75OPskj3RmiiR7895go+g="; - aarch64-darwin = "sha256-A4POFqAD5e6WOhfAT6ibYmr+eEDFqkb8pDJSgu2GXZs="; + x86_64-linux = "sha256-bVkrQPLvRJdoxrA0laDKG9DnJvp3Q7hyCj9wxRPcJas="; + aarch64-linux = "sha256-z0m9FLX99Y3gBwOlWVBjCqume1Uz+OEMg7W5KRm+NLw="; + aarch64-darwin = "sha256-EoCJ3MT7zkSq5yfmdVy40J6LhjwHcFbtdmkkycmdF6E="; } .${system'}; } From 15f6149d7b576fee81a15339708556b12a85e838 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 6 Aug 2026 03:06:04 +0000 Subject: [PATCH 59/78] kcl: 0.12.7 -> 0.12.8 --- pkgs/by-name/kc/kcl/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/kc/kcl/package.nix b/pkgs/by-name/kc/kcl/package.nix index 4ed203ba3761..aa0ffd23d942 100644 --- a/pkgs/by-name/kc/kcl/package.nix +++ b/pkgs/by-name/kc/kcl/package.nix @@ -11,16 +11,16 @@ buildGoModule (finalAttrs: { pname = "kcl"; - version = "0.12.7"; + version = "0.12.8"; src = fetchFromGitHub { owner = "kcl-lang"; repo = "cli"; rev = "v${finalAttrs.version}"; - hash = "sha256-HPydO/gBJkMsqR3Eb3ymKprm5x7tr9//IKT052hiDNA="; + hash = "sha256-hw5Ul0+0OT9hI8Nmg5tozwfPnXcF2q+K6aAFPxcMkgY="; }; - vendorHash = "sha256-46qLRdB0epfZPuvNVYaLIAiTkI9kbAS6OM9OYC8cmmE="; + vendorHash = "sha256-WpUGScCd/laihQjC0oGKMYpOLMgfk/t7u3mrsCvf+Rk="; subPackages = [ "cmd/kcl" ]; From 38774f8d5d171403de066e67ff8a3cea4c63396f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 6 Aug 2026 03:39:16 +0000 Subject: [PATCH 60/78] ollama-cpu: 0.32.5 -> 0.32.6 --- pkgs/by-name/ol/ollama/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ol/ollama/package.nix b/pkgs/by-name/ol/ollama/package.nix index f262cba0f285..fc81ab4fd70d 100644 --- a/pkgs/by-name/ol/ollama/package.nix +++ b/pkgs/by-name/ol/ollama/package.nix @@ -111,12 +111,12 @@ let # vendored in-tree. Pre-stage the pin (tracks upstream's # `LLAMA_CPP_VERSION` file) so the FetchContent step uses our copy # instead of trying to clone over the network in the sandbox. - llamaCppVersion = "b10091"; + llamaCppVersion = "b10242"; llamaCppSrc = fetchFromGitHub { owner = "ggml-org"; repo = "llama.cpp"; tag = llamaCppVersion; - hash = "sha256-ZHQ9hBnE9GayZRt0jgO4svzaAUfhRUg6cFu5dSe8J1w="; + hash = "sha256-mBqO6h9eiSAXqiHy1H3aK2ACbz1aYagmjAN7IpXNTcw="; }; wrapperOptions = [ @@ -152,13 +152,13 @@ let in goBuild (finalAttrs: { pname = "ollama"; - version = "0.32.5"; + version = "0.32.6"; src = fetchFromGitHub { owner = "ollama"; repo = "ollama"; tag = "v${finalAttrs.version}"; - hash = "sha256-SqxFMKTGu5e6FdB5abuYez8Aejf7JY7C6e6GuOMYd4w="; + hash = "sha256-B1Svfufa7puiZy+pDHeOTpX3+PWOuNjpMnpE/K3rl3Q="; }; vendorHash = "sha256-HMwoaFBMbpoy8f0I+O+i7kIa9BslLu3FcVWeaIOkpvs="; From 6223028f82245b03da0fa85d42e7331f4288218c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 6 Aug 2026 03:41:04 +0000 Subject: [PATCH 61/78] qidi-studio: 2.07.02.10 -> 2.07.02.60 --- pkgs/by-name/qi/qidi-studio/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/qi/qidi-studio/package.nix b/pkgs/by-name/qi/qidi-studio/package.nix index 742ec7d2fa8a..72dc254448be 100644 --- a/pkgs/by-name/qi/qidi-studio/package.nix +++ b/pkgs/by-name/qi/qidi-studio/package.nix @@ -7,11 +7,11 @@ }: let pname = "qidi-studio"; - version = "2.07.02.10"; + version = "2.07.02.60"; src = fetchurl { url = "https://github.com/QIDITECH/QIDIStudio/releases/download/v${version}/QIDIStudio_v0${version}_Ubuntu24.AppImage"; - hash = "sha256-Ei5PV/XRWtCMlXF07AJu9UWplSr+8GdwAFvXwDE3TpM="; + hash = "sha256-1H0rLI3V8W1I+KIbolQg/Wat9WsACMy1RIdyU0s8seg="; }; appimageContents = appimageTools.extract { From 1baf8929fa41e3d072eeadbaa54214b63ab5f0cb Mon Sep 17 00:00:00 2001 From: Mio Date: Thu, 6 Aug 2026 16:06:17 +1200 Subject: [PATCH 62/78] android-translation-layer: 0-unstable-2026-01-19 -> 0-unstable-2026-07-30; art-standalone: 0-unstable-2025-10-09 -> 0-unstable-2026-08-03; bionic-translation: 0-unstable-2025-11-25 -> 0-unstable-2026-08-03 --- pkgs/by-name/an/android-translation-layer/package.nix | 6 +++--- pkgs/by-name/ar/art-standalone/package.nix | 6 +++--- pkgs/by-name/bi/bionic-translation/package.nix | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/an/android-translation-layer/package.nix b/pkgs/by-name/an/android-translation-layer/package.nix index 3f35e2d9e911..818f927ceb60 100644 --- a/pkgs/by-name/an/android-translation-layer/package.nix +++ b/pkgs/by-name/an/android-translation-layer/package.nix @@ -28,13 +28,13 @@ stdenv.mkDerivation { pname = "android-translation-layer"; - version = "0-unstable-2026-01-19"; + version = "0-unstable-2026-07-30"; src = fetchFromGitLab { owner = "android_translation_layer"; repo = "android_translation_layer"; - rev = "bfcfb696d83c9769e1d99d3cb0d7a5908fe3c767"; - hash = "sha256-BTVduEJhKEOFhqoG0lgqlcg2x4k9RWABURj2nQECaek="; + rev = "cf2c759fa93330f45df6107dcf8984cf49b29c64"; + hash = "sha256-+TTntAnE/5j/FhGcdXRui3/p/sfkc83CKNdBf9Yage0="; }; patches = [ diff --git a/pkgs/by-name/ar/art-standalone/package.nix b/pkgs/by-name/ar/art-standalone/package.nix index cb7c5904a462..e7f3c1987147 100644 --- a/pkgs/by-name/ar/art-standalone/package.nix +++ b/pkgs/by-name/ar/art-standalone/package.nix @@ -22,13 +22,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "art-standalone"; - version = "0-unstable-2025-10-09"; + version = "0-unstable-2026-08-03"; src = fetchFromGitLab { owner = "android_translation_layer"; repo = "art_standalone"; - rev = "e78bf68917bcaaf58fef3960cd88793b3b7f39cc"; - hash = "sha256-0r6Ap41AMSHhZpMJ5QoWiGGcHPj35et4kiA20xs9uLs="; + rev = "66a5d9079b159e9c5819bfeef4a6fff6a5f32719"; + hash = "sha256-4dRKghsPP8XLCcCe6bQDzJVlggBdFWe3l2/ge35HIXA="; }; patches = [ diff --git a/pkgs/by-name/bi/bionic-translation/package.nix b/pkgs/by-name/bi/bionic-translation/package.nix index 28d6aafc38b9..ba0d36b0317c 100644 --- a/pkgs/by-name/bi/bionic-translation/package.nix +++ b/pkgs/by-name/bi/bionic-translation/package.nix @@ -14,13 +14,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "bionic-translation"; - version = "0-unstable-2025-11-25"; + version = "0-unstable-2026-08-03"; src = fetchFromGitLab { owner = "android_translation_layer"; repo = "bionic_translation"; - rev = "5c31d4366fbb0af70690e72e5a861e7b44ffb1ef"; - hash = "sha256-dlHjx6+yymvIjDEs2TZexZUIUz32iKD0r+H4AJ89xig="; + rev = "484b1b05795784a5a57dbd4ffad21a3e680a33b2"; + hash = "sha256-43VJPhN8/J/pJr8mdV9/n+hrVZLzh7aQhAJ8cT53BHc="; }; nativeBuildInputs = [ From 34ba98f1f34840d1ddb9b1da81346a40890fa020 Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 6 Aug 2026 08:30:45 +0300 Subject: [PATCH 63/78] vermouth: 1.9.7 -> 2.0.1 --- pkgs/by-name/ve/vermouth/package.nix | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/pkgs/by-name/ve/vermouth/package.nix b/pkgs/by-name/ve/vermouth/package.nix index a59bc02c8c26..e16679466705 100644 --- a/pkgs/by-name/ve/vermouth/package.nix +++ b/pkgs/by-name/ve/vermouth/package.nix @@ -2,7 +2,6 @@ lib, stdenv, fetchFromGitHub, - fetchpatch, cmake, nix-update-script, kdePackages, @@ -14,7 +13,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "vermouth"; - version = "1.9.7"; + version = "2.0.1"; __structuredAttrs = true; strictDeps = true; @@ -23,18 +22,9 @@ stdenv.mkDerivation (finalAttrs: { owner = "dekomote"; repo = "vermouth"; tag = "v${finalAttrs.version}"; - hash = "sha256-hcsvTvvuzuqTGgOdWt3sxyoJqjZjlUPlnlYJUgNpV4g="; + hash = "sha256-5Bej9GJgOUqg3WI4kHkyWXjjTv+MmimZbCK4vxpBdeU="; }; - patches = [ - # backport fix for desktop file generation - # FIXME: remove in next update - (fetchpatch { - url = "https://github.com/dekomote/vermouth/commit/436a201091505c142a88848135fe04e1ec996a1a.diff"; - hash = "sha256-fIgcewbJOpi+qHPgOJRCr+67RbziPPGP4sC1dclydgQ="; - }) - ]; - nativeBuildInputs = [ cmake qt6.qtbase From d23f67571fdd898b6912c11058bbd8850f7fe2a0 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 6 Aug 2026 05:33:48 +0000 Subject: [PATCH 64/78] uutils-findutils: 0.9.0 -> 0.10.0 --- pkgs/by-name/uu/uutils-findutils/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/uu/uutils-findutils/package.nix b/pkgs/by-name/uu/uutils-findutils/package.nix index 7c00a3ed9748..6511f9d8b131 100644 --- a/pkgs/by-name/uu/uutils-findutils/package.nix +++ b/pkgs/by-name/uu/uutils-findutils/package.nix @@ -8,16 +8,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "uutils-findutils"; - version = "0.9.0"; + version = "0.10.0"; src = fetchFromGitHub { owner = "uutils"; repo = "findutils"; tag = finalAttrs.version; - hash = "sha256-ILMInyjOMYlgPxrOjvLoBfkcaZ4aj6GeA/jiGPpNjiI="; + hash = "sha256-0M3sOHVsIKG3rPthikommvKvHB1Q1RohogjS9LT5yU0="; }; - cargoHash = "sha256-/rQTcyRXtluPKPuuZKn/qD/3U0PQLIqyq777/ww3q/0="; + cargoHash = "sha256-6M3kLNtvZ1nsCAkVJExQBWV72Bf9Kq5iei7SVpYsYio="; postInstall = '' rm $out/bin/testing-commandline From 2f388e38b124530c4eac5e1766885c8391d84d82 Mon Sep 17 00:00:00 2001 From: Markus Hauck Date: Thu, 6 Aug 2026 08:12:31 +0200 Subject: [PATCH 65/78] claude-code: 2.1.222 -> 2.1.223 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md Assisted-by: Claude Code (Claude Opus 5) --- pkgs/by-name/cl/claude-code/manifest.json | 38 +++++++++++------------ 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/pkgs/by-name/cl/claude-code/manifest.json b/pkgs/by-name/cl/claude-code/manifest.json index 9ac4d313bc0e..4f608ea8240a 100644 --- a/pkgs/by-name/cl/claude-code/manifest.json +++ b/pkgs/by-name/cl/claude-code/manifest.json @@ -1,47 +1,47 @@ { - "version": "2.1.222", - "commit": "fbf49312c28437bf9c2546b9ace3bd7b34eb6ff6", - "buildDate": "2026-08-04T01:46:04Z", + "version": "2.1.223", + "commit": "4535f69721056abf01650c73ee8a91c69ba00838", + "buildDate": "2026-08-05T21:55:19Z", "platforms": { "darwin-arm64": { "binary": "claude", - "checksum": "c66a6cc6fa2e8145bb1a6e77831f2caf4b83690ff04650500dfa6e2c05ca997c", - "size": 271289792 + "checksum": "fcbe0b8d47570c501302dd1ad31cc26ac2810f022c45fa253936a6961dee32bf", + "size": 272553824 }, "darwin-x64": { "binary": "claude", - "checksum": "36bfc6482a25730dbb1cee72589e522c66c45a4dc9ebfdd8a76a8113b01b6188", - "size": 280847136 + "checksum": "350e657428a6d34f7cf71f6738c5ebb6a1952ccb12fc1747f64297e065b1846f", + "size": 282118560 }, "linux-arm64": { "binary": "claude", - "checksum": "a04be0a8d7fe0259571ab7411d51d85658d71a4a26ce62b60c908290372e6016", - "size": 286178232 + "checksum": "60e83d8db0e894d0e54413e5e7daa256d180db660f51e139a51b614fc30cf3ac", + "size": 287423416 }, "linux-x64": { "binary": "claude", - "checksum": "10caae8f22b915c26bfff0e013a4d45608c4f1ae287583626569156f447730e5", - "size": 289467400 + "checksum": "98226474f802e3094d6a86c5ade8883c16206d0fcb5c400b7401c800063e99d7", + "size": 290728968 }, "linux-arm64-musl": { "binary": "claude", - "checksum": "a3c3e3202ae8842a5e9d2b4ce1dcea9fa00d4e0ae27b5b3e8d778332ba3bb23c", - "size": 279491944 + "checksum": "f41692eab23ebcd836d342fbc494d8783b1f19efb13d04fbf8461d2806ccb586", + "size": 280737128 }, "linux-x64-musl": { "binary": "claude", - "checksum": "e0b0fb4005e1ac0ebcee136254c638722f1c49e171a23d0843c605d72aac9029", - "size": 284074576 + "checksum": "8a4e561e8af19746d2defcf1a5661f5c0384c9c26dadd87d45e11b67802ad147", + "size": 285336144 }, "win32-x64": { "binary": "claude.exe", - "checksum": "032cb799d2abfaa6ca440f6458304b9a2a250521063d21ebcea7f3c77c443db7", - "size": 279014048 + "checksum": "a708ba811c4cc46907df358e22f2aa6da3dbc28192747e4d3c4a0869752fe722", + "size": 280233632 }, "win32-arm64": { "binary": "claude.exe", - "checksum": "f760aa2782019e55b1e44fda9eddec85ca8499429da87efddd47ab18d4a716a2", - "size": 273687200 + "checksum": "8efb44f04fda50fac3c7602276903e44ff82d48f1a29a41f1a5d98891a01864b", + "size": 274906784 } }, "sdkCompat": { From 0da9ddb59fd8421d8c280085f4de02cf0aa9364d Mon Sep 17 00:00:00 2001 From: Markus Hauck Date: Thu, 6 Aug 2026 08:12:31 +0200 Subject: [PATCH 66/78] vscode-extensions.anthropic.claude-code: 2.1.222 -> 2.1.223 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md Assisted-by: Claude Code (Claude Opus 5) --- .../vscode/extensions/anthropic.claude-code/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix index 09c6b73d12b0..4f8e22c9add4 100644 --- a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix +++ b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix @@ -21,22 +21,22 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: { sources = { "x86_64-linux" = { arch = "linux-x64"; - hash = "sha256-s1V+SxZ4O5EHcxE9ZxacnydNjfnK1Dv0y3YIPfsy3cs="; + hash = "sha256-3V4N8zHj7nB987ImVtBS84LGxdQgkDp14kTPps72fHo="; }; "aarch64-linux" = { arch = "linux-arm64"; - hash = "sha256-G9bJ6xNCiC72gR0k89sTh96alnHguSE5cqqOVu/3kCg="; + hash = "sha256-6p09GcEfmSQs4nRuaFxQ1tKK25ENo2KOPkRQTPndNcw="; }; "aarch64-darwin" = { arch = "darwin-arm64"; - hash = "sha256-ZDel1FfsiRbdw9pxn1H5nkOIlVdt1GLr68W2mBtl1mg="; + hash = "sha256-qbYE3f0fkxvfGyFAR8UPIFodOEYA0aJK6JK/r8PbI/k="; }; }; in { name = "claude-code"; publisher = "anthropic"; - version = "2.1.222"; + version = "2.1.223"; } // sources.${stdenvNoCC.hostPlatform.system} or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}"); From a65f661680daf6c6814fcaf8b6fc780e2a2c5da9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 6 Aug 2026 06:18:22 +0000 Subject: [PATCH 67/78] fence: 0.1.64 -> 0.1.66 --- pkgs/by-name/fe/fence/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/fe/fence/package.nix b/pkgs/by-name/fe/fence/package.nix index 2533d40ccd76..864230099377 100644 --- a/pkgs/by-name/fe/fence/package.nix +++ b/pkgs/by-name/fe/fence/package.nix @@ -14,13 +14,13 @@ buildGoModule (finalAttrs: { pname = "fence"; - version = "0.1.64"; + version = "0.1.66"; src = fetchFromGitHub { owner = "fencesandbox"; repo = "fence"; tag = "v${finalAttrs.version}"; - hash = "sha256-pBeTUcLs3fLGTkbmmUcikPDtGUQ4s3Q8XbKQYsPJTKw="; + hash = "sha256-I3nrM2W21n6YdYnE8OhjqBF0969EaWY0k9U6BJDGFHw="; }; vendorHash = "sha256-WjhfAw8wgxvTbTkYwURm9vN2oSvQWiMP2RhwZDCQ0DU="; From f28f524e919c3175506d5d26751b3c8d56c9467f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 6 Aug 2026 06:28:54 +0000 Subject: [PATCH 68/78] pana: 0.23.14 -> 0.23.16 --- pkgs/by-name/pa/pana/package.nix | 4 +-- pkgs/by-name/pa/pana/pubspec.lock.json | 44 +++++++++++++------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/pkgs/by-name/pa/pana/package.nix b/pkgs/by-name/pa/pana/package.nix index 6b279726dcbf..24d448898a57 100644 --- a/pkgs/by-name/pa/pana/package.nix +++ b/pkgs/by-name/pa/pana/package.nix @@ -9,13 +9,13 @@ }: buildDartApplication rec { pname = "pana"; - version = "0.23.14"; + version = "0.23.16"; src = fetchFromGitHub { owner = "dart-lang"; repo = "pana"; tag = version; - hash = "sha256-yBheou/u8TjL+MDhxd6AhWPJARLEcQF+ojmDqkv8zi4="; + hash = "sha256-cA707l5SGGh+tzD2TOx2eYEh3zfQawstFCTocgcnXJk="; }; dartEntryPoints = { diff --git a/pkgs/by-name/pa/pana/pubspec.lock.json b/pkgs/by-name/pa/pana/pubspec.lock.json index 56f6f5b351b8..d7354b95b70b 100644 --- a/pkgs/by-name/pa/pana/pubspec.lock.json +++ b/pkgs/by-name/pa/pana/pubspec.lock.json @@ -54,41 +54,41 @@ "dependency": "direct dev", "description": { "name": "build", - "sha256": "45d14a0fb23e018d8287c32fc98d726ce466b231928ed9b9200f29bd3ccd39ae", + "sha256": "b94f5da9ed3d081fd4ecc426c260998b5f4f4eb2f6d89b7e5472edef0b2b2a1b", "url": "https://pub.dev" }, "source": "hosted", - "version": "4.0.7" + "version": "4.0.10" }, "build_config": { "dependency": "direct dev", "description": { "name": "build_config", - "sha256": "f2c223156a26eea323e6244b85141d76413a80aeee9fe0b380773789fabaf8ae", + "sha256": "94eaf6708fe64408c632ef2689ca3777b112f9421306ccf4f8c84d7c5c9f83f8", "url": "https://pub.dev" }, "source": "hosted", - "version": "1.3.1" + "version": "1.3.2" }, "build_daemon": { "dependency": "transitive", "description": { "name": "build_daemon", - "sha256": "fd754058c342243718d5171a95f352cfc9fcf0cba8cfa26df67cb13a5836db78", + "sha256": "79e05eaf15a48d7230b053a4363b8eaac0cc234bbd0134c3229455481f55cbc6", "url": "https://pub.dev" }, "source": "hosted", - "version": "4.1.2" + "version": "4.1.5" }, "build_runner": { "dependency": "direct dev", "description": { "name": "build_runner", - "sha256": "5367e521935b102bdf1e735d2aab461e36b2edca6517662d088dd04cc39f8d16", + "sha256": "90363d438bd9f84a4d5bbb83352251f57d2d9d771bc95a44e6a33fe25fa52774", "url": "https://pub.dev" }, "source": "hosted", - "version": "2.15.1" + "version": "2.16.0" }, "build_verify": { "dependency": "direct dev", @@ -124,11 +124,11 @@ "dependency": "transitive", "description": { "name": "built_value", - "sha256": "34e4067d30ce212937df995f03b69992eea683539ceeac7f679a1f1eba055b56", + "sha256": "31b24be6615ec7fcf70b3aa5a7469fe35826485e639a16dd7eb83ba30e4cc6a8", "url": "https://pub.dev" }, "source": "hosted", - "version": "8.12.6" + "version": "8.12.7" }, "checked_yaml": { "dependency": "transitive", @@ -154,11 +154,11 @@ "dependency": "direct main", "description": { "name": "cli_util", - "sha256": "5909d2c6b66817222779e1eedc19e0e28b76d1df7bd9856a4792ccb9881df358", + "sha256": "71e43f1976c3eae2d9468a5b4d6600bf8cae61508b87f27fa1799228935d48ab", "url": "https://pub.dev" }, "source": "hosted", - "version": "0.5.1" + "version": "0.5.2" }, "collection": { "dependency": "direct main", @@ -224,11 +224,11 @@ "dependency": "transitive", "description": { "name": "dart_style", - "sha256": "b60b8cb28aa514346eb8f6b005c60484ea65190f213b1986f6e391e0292d18f4", + "sha256": "3f88fc9c96c568d631356507355a2d1e983ee000c9ac008bdcb39b5bf53ce777", "url": "https://pub.dev" }, "source": "hosted", - "version": "3.1.11" + "version": "3.1.12" }, "ffi": { "dependency": "transitive", @@ -354,11 +354,11 @@ "dependency": "direct dev", "description": { "name": "json_serializable", - "sha256": "ffcd10cde35a93b2abbbcc26bd9971f4ca93763e8abe78d855e3c4177797e501", + "sha256": "e45aefa0324f08c683caafbb94b72837aa6193c61822799c916e45f4a263113d", "url": "https://pub.dev" }, "source": "hosted", - "version": "6.14.0" + "version": "6.14.1" }, "lints": { "dependency": "direct main", @@ -434,11 +434,11 @@ "dependency": "transitive", "description": { "name": "package_config", - "sha256": "f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc", + "sha256": "ffcf4cf3d6c0b74ac43708d9f56625506e8a68aa935abe9d267a7330f320eb5d", "url": "https://pub.dev" }, "source": "hosted", - "version": "2.2.0" + "version": "3.0.0" }, "path": { "dependency": "direct main", @@ -544,21 +544,21 @@ "dependency": "direct dev", "description": { "name": "source_gen", - "sha256": "ec37cc0e6694374cbef59ed79685572c870a54ede6fa30a3e420feb3adffea02", + "sha256": "a603f1fb984a7391ae5978d1b92bfaaa08b350dca5c825256f925818f7943bf5", "url": "https://pub.dev" }, "source": "hosted", - "version": "4.2.3" + "version": "4.2.4" }, "source_helper": { "dependency": "transitive", "description": { "name": "source_helper", - "sha256": "4227d54ceefd0bb8ca4c8fcb96e1719dc53f1ee1b6e2ca9d7a6069da160e4eae", + "sha256": "5e6f216fdf6376c9f3852381ae037499797a3385377d388b011dac98d303c67c", "url": "https://pub.dev" }, "source": "hosted", - "version": "1.3.12" + "version": "1.3.13" }, "source_map_stack_trace": { "dependency": "transitive", From f91f0faf9848dad3b029305c59951093ba1c09bf Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 6 Aug 2026 06:29:04 +0000 Subject: [PATCH 69/78] awakened-poe-trade: 3.29.102 -> 3.29.103 --- pkgs/by-name/aw/awakened-poe-trade/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/aw/awakened-poe-trade/package.nix b/pkgs/by-name/aw/awakened-poe-trade/package.nix index 2ca5552d233c..8aa69f20e523 100644 --- a/pkgs/by-name/aw/awakened-poe-trade/package.nix +++ b/pkgs/by-name/aw/awakened-poe-trade/package.nix @@ -13,11 +13,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "awakened-poe-trade"; - version = "3.29.102"; + version = "3.29.103"; src = fetchurl { url = "https://github.com/SnosMe/awakened-poe-trade/releases/download/v${finalAttrs.version}/Awakened-PoE-Trade-${finalAttrs.version}.AppImage"; - hash = "sha256-mjtdM8tEi+Gvf3B4gopEEqlNfp89+J4w1Jy+dyWtig8="; + hash = "sha256-Nxq9b58nmpvXs3xKWYi0IpI9QyYbrLPWJplA1l6hKzE="; }; passthru = { From 8d4f651ad9135fca33553526afa3bfaa3bcfc29a Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Thu, 6 Aug 2026 07:06:45 +0000 Subject: [PATCH 70/78] tuicr: 0.20.0 -> 0.21.0 Diff: https://github.com/agavra/tuicr/compare/v0.20.0...v0.21.0 Changelog: https://github.com/agavra/tuicr/blob/v0.21.0/CHANGELOG.md --- pkgs/by-name/tu/tuicr/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/tu/tuicr/package.nix b/pkgs/by-name/tu/tuicr/package.nix index 4901d33ee75b..2693e407b276 100644 --- a/pkgs/by-name/tu/tuicr/package.nix +++ b/pkgs/by-name/tu/tuicr/package.nix @@ -9,7 +9,7 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "tuicr"; - version = "0.20.0"; + version = "0.21.0"; __structuredAttrs = true; @@ -17,10 +17,10 @@ rustPlatform.buildRustPackage (finalAttrs: { owner = "agavra"; repo = "tuicr"; tag = "v${finalAttrs.version}"; - hash = "sha256-ByeWD4mC1DiH6L971mC7Qv6zUVmaf2lneewK2ZWXxg8="; + hash = "sha256-9QEDfDwb9Elm4R40/0pBz0EgTOoJJWWNraz2D0H6bAo="; }; - cargoHash = "sha256-MVDq+78HIwjqQiO7R/ZAXd16Bye0fktxbiRIzEOH7vQ="; + cargoHash = "sha256-efBYiq0FA9kpMwzHM2GiUC2rWyWC9QcgfCCVIu5bbPk="; strictDeps = true; From 5447e41b602eb2fd5079b416fdfb574b6d85c458 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 6 Aug 2026 07:21:52 +0000 Subject: [PATCH 71/78] python3Packages.google-cloud-access-context-manager: 0.6.0 -> 0.6.1 --- .../google-cloud-access-context-manager/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix b/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix index 37baef3a4a08..f28fe712ab79 100644 --- a/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix +++ b/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix @@ -9,13 +9,13 @@ buildPythonPackage (finalAttrs: { pname = "google-cloud-access-context-manager"; - version = "0.6.0"; + version = "0.6.1"; pyproject = true; src = fetchPypi { pname = "google_cloud_access_context_manager"; inherit (finalAttrs) version; - hash = "sha256-dgJn+6H4voY24qjXwwICfzECYP/4BRxGuLCbl9VGjuA="; + hash = "sha256-TZmOSoHEJPUfbFxqrLJ9eAYRbTC1VscIrAqJw3/lGtg="; }; build-system = [ setuptools ]; From 824985e03b20a914114f83617f8d009cbb1b1f74 Mon Sep 17 00:00:00 2001 From: eljamm Date: Tue, 4 Aug 2026 16:44:44 +0200 Subject: [PATCH 72/78] {python3Package,}padne: init at 0.3 Assisted-by: nix-init --- pkgs/by-name/pa/padne/package.nix | 3 + .../python-modules/padne/default.nix | 156 ++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 3 files changed, 161 insertions(+) create mode 100644 pkgs/by-name/pa/padne/package.nix create mode 100644 pkgs/development/python-modules/padne/default.nix diff --git a/pkgs/by-name/pa/padne/package.nix b/pkgs/by-name/pa/padne/package.nix new file mode 100644 index 000000000000..2038c582ccfc --- /dev/null +++ b/pkgs/by-name/pa/padne/package.nix @@ -0,0 +1,3 @@ +{ python3Packages }: + +python3Packages.toPythonApplication python3Packages.padne diff --git a/pkgs/development/python-modules/padne/default.nix b/pkgs/development/python-modules/padne/default.nix new file mode 100644 index 000000000000..f2751a1e36ad --- /dev/null +++ b/pkgs/development/python-modules/padne/default.nix @@ -0,0 +1,156 @@ +{ + lib, + stdenv, + buildPythonPackage, + fetchFromGitHub, + + kicad, + + # build-time + cmake, + ninja, + pkg-config, + python, + + # run-time + boost, + gmp, + mpfr, + + # build-system + nanobind, + scikit-build-core, + setuptools, + setuptools-scm, + wheel, + + # dependencies + lxml, + numpy, + pygerber, + pyopengl, + pyside6, + scipy, + sexpdata, + shapely, + + # tests + pytestCheckHook, + typeguard, +}: + +buildPythonPackage (finalAttrs: { + pname = "padne"; + version = "0.3"; + pyproject = true; + dontUseCmakeConfigure = true; # handled by python + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "atx"; + repo = "padne"; + tag = "v${finalAttrs.version}"; + hash = "sha256-eFrBjmLZQnfMG7nl9gHPb0Qr8MCAdhjzRIp5n1IzguM="; + fetchSubmodules = true; + }; + + postPatch = '' + # `padne` tries to import `pcbnew` directly from `KiCad`, falling back to + # `kigadgets` if that fails. + # However, `kigadgets` only supports KiCad v5-v9, whereas Nixpkgs is on + # v10, so drop it as a dependency to avoid a broken fallback. + sed -i '/kigadgets/d' pyproject.toml + ''; + + nativeBuildInputs = [ + cmake + ninja + pkg-config + ]; + + buildInputs = [ + boost + gmp + mpfr + nanobind + ]; + + cmakeFlags = [ + (lib.cmakeFeature "nanobind_DIR" "${nanobind}/${python.sitePackages}/nanobind/cmake") + ]; + + build-system = [ + nanobind + scikit-build-core + setuptools + setuptools-scm + wheel + ]; + + dependencies = [ + kicad + lxml + numpy + finalAttrs.passthru.pygerber + pyopengl + pyside6 + scipy + sexpdata + shapely + ]; + + pythonImportsCheck = [ + "padne" + ]; + + nativeCheckInputs = [ + pytestCheckHook + typeguard + ]; + + preCheck = '' + # remove src module, so tests use the installed module, instead + mv padne _padne + ''; + + disabledTests = lib.optionals stdenv.hostPlatform.isAarch64 [ + # AssertionError: Center distance 4.8999999999999995 not ~5.0 + "test_basic_rectangle_distance_map" + ]; + + passthru = { + # Padne needs a more recent version of `pygerber` than the one in Nixpkgs, + # which is currently the 2.4.3 stable release. + pygerber = pygerber.overrideAttrs { + version = "2.4.3-unstable-2026-03-20"; + src = fetchFromGitHub { + owner = "Argmaster"; + repo = "pygerber"; + rev = "5446d44d424897e1b1a68c48c160ed9b4e828f44"; + hash = "sha256-AhLIBh1dAmmOLBw6XaJIeYhUAh1BSv/ALVc4qOfD7g4="; + }; + # TODO: + # 46 failed, 592 passed, 1 xfailed, 61 warnings, 96 errors in 16.52s + dontUsePytestCheck = true; + }; + }; + + meta = { + description = "KiCad-focused Power Delivery Network Simulator"; + longDescription = '' + Padne is a KiCad-native power delivery network analysis tool. + + It uses the finite element method in order to simulate the voltage drop + induced by DC currents on printed circuit boards. + + This allows easy identification of resistive bottlenecks, design of high + current distribution networks or implementing complex heating elements. + ''; + homepage = "https://github.com/atx/padne"; + changelog = "https://github.com/atx/padne/releases/tag/${finalAttrs.src.tag}"; + mainProgram = "padne"; + license = with lib.licenses; [ gpl3Plus ]; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 954129221087..39163a9344ed 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -12741,6 +12741,8 @@ self: super: with self; { paddlex = callPackage ../development/python-modules/paddlex { }; + padne = callPackage ../development/python-modules/padne { }; + pagelabels = callPackage ../development/python-modules/pagelabels { }; paginate = callPackage ../development/python-modules/paginate { }; From 36219c35b7294d9acc981f2a738c87fce6ad168e Mon Sep 17 00:00:00 2001 From: ShouviT Date: Thu, 6 Aug 2026 12:09:18 +0300 Subject: [PATCH 73/78] zennotes-desktop: 2.22.1 -> 2.23.0 --- pkgs/by-name/ze/zennotes-desktop/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ze/zennotes-desktop/package.nix b/pkgs/by-name/ze/zennotes-desktop/package.nix index f587e96bd582..fd46071b07b4 100644 --- a/pkgs/by-name/ze/zennotes-desktop/package.nix +++ b/pkgs/by-name/ze/zennotes-desktop/package.nix @@ -13,14 +13,14 @@ buildNpmPackage (finalAttrs: { pname = "zennotes-desktop"; - version = "2.22.1"; - npmDepsHash = "sha256-JBZ1gWGyasfoSXkZp2cd0HPuqQ9XKh4sWOesAfGHp6I="; + version = "2.23.0"; + npmDepsHash = "sha256-qvfYrSzzIIuLQoWpDvXC4dt+OexEJNrz3nqjnycxo6I="; src = fetchFromGitHub { owner = "ZenNotes"; repo = "zennotes"; tag = "v${finalAttrs.version}"; - hash = "sha256-nSHl5O7xUbt/g18LV41Bgrcn6FwZXVHmZdaQXVVoDio="; + hash = "sha256-aGr1K6kSvpDELky0S/tH9cq6pbVivN4jTXrmbKE95vc="; }; npmWorkspace = "apps/desktop"; From c2b8bfe97bef2b3be3f6ddd3ec9be3e4ca8180ad Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 6 Aug 2026 09:11:17 +0000 Subject: [PATCH 74/78] ostui: 1.3.5 -> 1.3.6 --- pkgs/by-name/os/ostui/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/os/ostui/package.nix b/pkgs/by-name/os/ostui/package.nix index f9f07b3863bb..d8714f50f249 100644 --- a/pkgs/by-name/os/ostui/package.nix +++ b/pkgs/by-name/os/ostui/package.nix @@ -8,13 +8,13 @@ }: buildGoModule (finalAttrs: { pname = "ostui"; - version = "1.3.5"; + version = "1.3.6"; src = fetchFromSourcehut { owner = "~ser"; repo = "ostui"; rev = "v${finalAttrs.version}"; - hash = "sha256-9d5oaaRKIiU9SP13rnObBQO0DOqliF5SMiKxSas/Yqs="; + hash = "sha256-vHKY6uA3CRxZi3kBDNviLbVxSrXeZG6x8UhMS0GBxSg="; }; vendorHash = "sha256-cCyOG6nqlw2DPbA1dCuki5cpDy9LmZV/3YGyB3nCreI="; From dfa5252629b13304a520f112b3f683a62c68b38d Mon Sep 17 00:00:00 2001 From: Bart Oostveen Date: Tue, 4 Aug 2026 03:50:53 +0200 Subject: [PATCH 75/78] renovate: 43.214.1 -> 44.13.1 Diff: https://github.com/renovatebot/renovate/compare/43.214.1...44.13.1 Changelog: https://github.com/renovatebot/renovate/releases/tag/44.13.1 --- pkgs/by-name/re/renovate/package.nix | 42 ++++++++++++---------------- 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/pkgs/by-name/re/renovate/package.nix b/pkgs/by-name/re/renovate/package.nix index 9f41bfb92f9c..deb555045aee 100644 --- a/pkgs/by-name/re/renovate/package.nix +++ b/pkgs/by-name/re/renovate/package.nix @@ -4,7 +4,7 @@ fetchFromGitHub, makeWrapper, nodejs_24, - pnpm_10, + pnpm_11, fetchPnpmDeps, pnpmConfigHook, python3, @@ -15,18 +15,20 @@ yq-go, cctools, }: + let nodejs = nodejs_24; + pnpm = pnpm_11; in stdenv.mkDerivation (finalAttrs: { pname = "renovate"; - version = "43.214.1"; + version = "44.13.1"; src = fetchFromGitHub { owner = "renovatebot"; repo = "renovate"; tag = finalAttrs.version; - hash = "sha256-S5ixP4Dp/YDv23kE5lvmp/Px6GrF9B6/wwSiKUwVWhA="; + hash = "sha256-2N+dQnuQwQNt7SZlIYq0CT2dRMiOF947MJZZ8BhZpcI="; }; postPatch = '' @@ -38,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: { makeWrapper nodejs pnpmConfigHook - pnpm_10 + pnpm python3 yq-go ] @@ -49,9 +51,9 @@ stdenv.mkDerivation (finalAttrs: { pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; - pnpm = pnpm_10; - fetcherVersion = 3; - hash = "sha256-A8aL5ZF0tFKi0uCXxOQMzxByAIVyt76wnLvolFVYKuI="; + inherit pnpm; + fetcherVersion = 4; + hash = "sha256-xm4H+PIpVcisw8wKz77+v6iCcwEpkpLZ6awtwXPNBc8="; }; env.COREPACK_ENABLE_STRICT = 0; @@ -61,25 +63,17 @@ stdenv.mkDerivation (finalAttrs: { # relax nodejs version yq '.engines.node = "${nodejs.version}"' -i package.json + '' + # pnpm install gets run with --ignore-scripts so we need to manually build native dependencies (e.g. re2) + # Keep https://github.com/renovatebot/renovate/blob/main/pnpm-workspace.yaml#L9 in mind when updating, + # new native dependencies could bloat up binary size. + + '' + pnpm rebuild + rm -rf node_modules/.pnpm/re2*/node_modules/re2/build/Release/{obj.target,.deps} \ + node_modules/.pnpm/re2*/node_modules/re2/vendor pnpm build - find -name 'node_modules' -type d -exec rm -rf {} \; || true - pnpm install --offline --prod --ignore-scripts - '' - # The optional dependencies re2 and better-sqlite3 are not built by pnpm and need to be built manually. - # If re2 is not built, you will get an annoying warning when you run renovate. - # better-sqlite3 is required. - + '' - pushd node_modules/.pnpm/re2*/node_modules/re2 - - mkdir -p $HOME/.node-gyp/${nodejs.version} - echo 9 > $HOME/.node-gyp/${nodejs.version}/installVersion - ln -sfv ${nodejs}/include $HOME/.node-gyp/${nodejs.version} - export npm_config_nodedir=${nodejs} - npm run rebuild - rm -rf build/Release/{obj.target,.deps} vendor - - popd + pnpm prune --prod --ignore-scripts runHook postBuild ''; From b389616989c0ceb0dc1554d3a941041acc3e6ab0 Mon Sep 17 00:00:00 2001 From: Bart Oostveen Date: Tue, 4 Aug 2026 04:04:01 +0200 Subject: [PATCH 76/78] renovate: enable structuredAttrs, strictDeps --- pkgs/by-name/re/renovate/package.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/re/renovate/package.nix b/pkgs/by-name/re/renovate/package.nix index deb555045aee..8678860268b9 100644 --- a/pkgs/by-name/re/renovate/package.nix +++ b/pkgs/by-name/re/renovate/package.nix @@ -24,6 +24,9 @@ stdenv.mkDerivation (finalAttrs: { pname = "renovate"; version = "44.13.1"; + __structuredAttrs = true; + strictDeps = true; + src = fetchFromGitHub { owner = "renovatebot"; repo = "renovate"; From 61f9f51aec74e8c902bf43960af6ab55c232b1fd Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 6 Aug 2026 11:09:07 +0000 Subject: [PATCH 77/78] wezterm: 0-unstable-2026-07-16 -> 0-unstable-2026-08-05 --- pkgs/by-name/we/wezterm/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/we/wezterm/package.nix b/pkgs/by-name/we/wezterm/package.nix index de796c26355f..9b5b5224bb4d 100644 --- a/pkgs/by-name/we/wezterm/package.nix +++ b/pkgs/by-name/we/wezterm/package.nix @@ -29,14 +29,14 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "wezterm"; - version = "0-unstable-2026-07-16"; + version = "0-unstable-2026-08-05"; src = fetchFromGitHub { owner = "wezterm"; repo = "wezterm"; - rev = "76b606ec597a3c0263fa60321548637451c0a547"; + rev = "4b1c3c151eb530e569f867e1461693c56fe89695"; fetchSubmodules = true; - hash = "sha256-FLU1R78C1xLPsJ1udBk9bW0BbVry4lGiC0kvPfMI66c="; + hash = "sha256-cZ5RDeHP9cBa1Qu6E96lRjKW4aC/wMJBZNpUZ2kAWuU="; }; postPatch = '' @@ -59,7 +59,7 @@ rustPlatform.buildRustPackage (finalAttrs: { # https://github.com/wezterm/wezterm/blob/main/nix/flake.nix#L134 auditable = false; - cargoHash = "sha256-jY7lTOfbT74tAZ7he1xudCN7BUxZBzY+8+e1d2g2v4I="; + cargoHash = "sha256-4jm0uMj0/6fcLHSvd7y12h1QjQ/VavkmNc5L/ebQez0="; nativeBuildInputs = [ installShellFiles From aa9274296329af61ee9feabb3bb78478cd43b1b9 Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 6 Aug 2026 14:34:40 +0300 Subject: [PATCH 78/78] lasuite-meet: 1.25.0 -> 1.25.2 Diff: https://github.com/suitenumerique/meet/compare/v1.25.0...v1.25.2 Changelog: https://github.com/suitenumerique/meet/blob/v1.25.2/CHANGELOG.md --- pkgs/by-name/la/lasuite-meet/frontend.nix | 2 +- pkgs/by-name/la/lasuite-meet/mail.nix | 2 +- pkgs/by-name/la/lasuite-meet/package.nix | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/la/lasuite-meet/frontend.nix b/pkgs/by-name/la/lasuite-meet/frontend.nix index e1ad1dbb0717..56871f8a9134 100644 --- a/pkgs/by-name/la/lasuite-meet/frontend.nix +++ b/pkgs/by-name/la/lasuite-meet/frontend.nix @@ -17,7 +17,7 @@ buildNpmPackage (finalAttrs: { src sourceRoot ; - hash = "sha256-X+RzRM1rRZZ2k1kjtk0JVXBIbEIuX5mk/zRzwjGKr1s="; + hash = "sha256-PArNKjdLqKJSEEKe94mguzKiNSwpYk56inenU3GL1mI="; }; npmBuildScript = "build"; diff --git a/pkgs/by-name/la/lasuite-meet/mail.nix b/pkgs/by-name/la/lasuite-meet/mail.nix index eedcd1d4764d..d1e8e4634d60 100644 --- a/pkgs/by-name/la/lasuite-meet/mail.nix +++ b/pkgs/by-name/la/lasuite-meet/mail.nix @@ -22,7 +22,7 @@ buildNpmPackage (finalAttrs: { pname = "${finalAttrs.pname}-npm-deps"; inherit version src; inherit (finalAttrs) sourceRoot; - hash = "sha256-nZURiOcSgXZwXBkB43GPerXUF2RSTiEPnjsVLSyXKxw="; + hash = "sha256-rqtLjMp0nCfo1wDAeB5WxVtmL/TR3Ky3qaMaBohnH1M="; }; npmBuildScript = "build"; diff --git a/pkgs/by-name/la/lasuite-meet/package.nix b/pkgs/by-name/la/lasuite-meet/package.nix index 898ee7514fe1..ac5a69718431 100644 --- a/pkgs/by-name/la/lasuite-meet/package.nix +++ b/pkgs/by-name/la/lasuite-meet/package.nix @@ -6,13 +6,13 @@ python3, }: let - version = "1.25.0"; + version = "1.25.2"; src = fetchFromGitHub { owner = "suitenumerique"; repo = "meet"; tag = "v${version}"; - hash = "sha256-0+X7kqydIkISYh+zy8/dqOkhkNmkpCuRgyq32OKtbcY="; + hash = "sha256-gtChKd6sr2nHEmi0Z/nbuCCNsOD8iVIAFjqonZFgQ/Y="; }; meta = {