From 8aa0440403113b6fd399b9d7bc62889db9320b9a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 21 May 2026 07:53:50 +0000 Subject: [PATCH 001/152] microsoft-gsl: 4.2.1 -> 4.2.2 --- pkgs/by-name/mi/microsoft-gsl/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/mi/microsoft-gsl/package.nix b/pkgs/by-name/mi/microsoft-gsl/package.nix index 868a4b8e9ee7..1f6a66c8ad19 100644 --- a/pkgs/by-name/mi/microsoft-gsl/package.nix +++ b/pkgs/by-name/mi/microsoft-gsl/package.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "microsoft-gsl"; - version = "4.2.1"; + version = "4.2.2"; src = fetchFromGitHub { owner = "Microsoft"; repo = "GSL"; rev = "v${finalAttrs.version}"; - hash = "sha256-rfSfgyjU1U6gaWzlx2CeaCSb784L29vHDAC/PQl+s6E="; + hash = "sha256-nWPjUPDx6Wp2BkREkZV+Nr9AUeUzpKlQ5c1CPp2Ks+M="; }; nativeBuildInputs = [ From 7771429e462aa212a3c36c6e2dd534d0e8a52c16 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 31 May 2026 19:11:41 +0000 Subject: [PATCH 002/152] proxytunnel: 1.12.3 -> 1.13.0 --- pkgs/by-name/pr/proxytunnel/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pr/proxytunnel/package.nix b/pkgs/by-name/pr/proxytunnel/package.nix index 61e5b5864481..6a556f1ed14e 100644 --- a/pkgs/by-name/pr/proxytunnel/package.nix +++ b/pkgs/by-name/pr/proxytunnel/package.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "proxytunnel"; - version = "1.12.3"; + version = "1.13.0"; src = fetchFromGitHub { owner = "proxytunnel"; repo = "proxytunnel"; tag = "v${finalAttrs.version}"; - hash = "sha256-+IRbL3VcnW+uYLIkwvaFJ8zBYbQAkqmzVluDsCrdURk="; + hash = "sha256-4+EGVtohM0vL/fXHCXohwWqIBTiIUGbt6AZ7JKpRCT8="; }; makeFlags = [ "prefix=${placeholder "out"}" ]; From 99f952a69da2dcc9d78ce075d9d19f206b7d33de Mon Sep 17 00:00:00 2001 From: JackDanna Date: Sat, 6 Jun 2026 12:09:10 -0400 Subject: [PATCH 003/152] fable: 4.29.0 -> 5.0.0 --- pkgs/by-name/fa/fable/package.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/fa/fable/package.nix b/pkgs/by-name/fa/fable/package.nix index 3660d752767b..678450fe782f 100644 --- a/pkgs/by-name/fa/fable/package.nix +++ b/pkgs/by-name/fa/fable/package.nix @@ -1,14 +1,18 @@ { buildDotnetGlobalTool, + dotnetCorePackages, lib, testers, }: buildDotnetGlobalTool (finalAttrs: { pname = "fable"; - version = "4.29.0"; + version = "5.0.0"; - nugetHash = "sha256-Eed1bb9heteWOWmv6NnXPzXbf3t218K/eHufwgtRuzI="; + nugetHash = "sha256-PSlr4cGZAm/bgAesVn7dYqamvncat8lm1/lJHvYcAwk="; + + dotnet-sdk = dotnetCorePackages.sdk_10_0; + dotnet-runtime = dotnetCorePackages.runtime_10_0; passthru.tests = testers.testVersion { package = finalAttrs.finalPackage; From 4c2b841f5da71f43df2378290d8aeca01a59c07a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 8 Jun 2026 11:15:06 +0000 Subject: [PATCH 004/152] python3Packages.lizard: 1.22.2 -> 1.23.0 --- pkgs/development/python-modules/lizard/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/lizard/default.nix b/pkgs/development/python-modules/lizard/default.nix index 4373ecd23487..7091de919ae4 100644 --- a/pkgs/development/python-modules/lizard/default.nix +++ b/pkgs/development/python-modules/lizard/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "lizard"; - version = "1.22.2"; + version = "1.23.0"; format = "setuptools"; src = fetchFromGitHub { owner = "terryyin"; repo = "lizard"; tag = version; - hash = "sha256-Gh7ufW8A3FiQMCppwl2SIeOie9O/kl3wYxV4kW4raDQ="; + hash = "sha256-rKCa5JniIr6SZaYgfC29GjOXl9MW9Dkt76z/oqfqnqc="; }; propagatedBuildInputs = [ From 4b6bedb169e578c89f73cbdf4d7a8cadf42d4733 Mon Sep 17 00:00:00 2001 From: Ephemeral Date: Tue, 9 Jun 2026 21:32:03 +0600 Subject: [PATCH 005/152] charm-freeze: exclude test/input package Prevent the test `input` binary from being added to $out/bin --- pkgs/by-name/ch/charm-freeze/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/by-name/ch/charm-freeze/package.nix b/pkgs/by-name/ch/charm-freeze/package.nix index 5ce7e0d1a319..e9ff10c34681 100644 --- a/pkgs/by-name/ch/charm-freeze/package.nix +++ b/pkgs/by-name/ch/charm-freeze/package.nix @@ -23,6 +23,8 @@ buildGoModule (finalAttrs: { "-X=main.Version=${finalAttrs.version}" ]; + excludedPackages = [ "test/input" ]; + meta = { description = "Tool to generate images of code and terminal output"; mainProgram = "freeze"; From ba93b1ff1a98e67d5c00cf0865dd6487da0984d5 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 11 Jun 2026 12:31:59 +0000 Subject: [PATCH 006/152] everdo: 1.9.0 -> 1.11.9 --- pkgs/by-name/ev/everdo/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ev/everdo/package.nix b/pkgs/by-name/ev/everdo/package.nix index 3dc11174021b..b4f74e40f83b 100644 --- a/pkgs/by-name/ev/everdo/package.nix +++ b/pkgs/by-name/ev/everdo/package.nix @@ -5,11 +5,11 @@ }: let pname = "everdo"; - version = "1.9.0"; + version = "1.11.9"; src = fetchurl { url = "https://downloads.everdo.net/electron/Everdo-${version}.AppImage"; - hash = "sha256-mM2rCjK548kjNR60Mr/YxBiVk+jxuVU01B9GHfIp1Mk="; + hash = "sha256-67b0gSoVcCIfkFRUL3afgB6eYj5YEuvDTtQgTIwV9S0="; }; appimageContents = appimageTools.extractType2 { inherit pname version src; }; From 9ef07b4bb32b38fc8e6711fc57f10284a1209da2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 11 Jun 2026 12:45:27 +0000 Subject: [PATCH 007/152] zesarux: 12.1 -> 13.0 --- pkgs/by-name/ze/zesarux/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ze/zesarux/package.nix b/pkgs/by-name/ze/zesarux/package.nix index 6e6a5ae89837..0614cb4a6636 100644 --- a/pkgs/by-name/ze/zesarux/package.nix +++ b/pkgs/by-name/ze/zesarux/package.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "zesarux"; - version = "12.1"; + version = "13.0"; src = fetchFromGitHub { owner = "chernandezba"; repo = "zesarux"; tag = "ZEsarUX-${finalAttrs.version}"; - hash = "sha256-899+n55+Sa+TqnQBH/kyhEIcIr/4pGZ3ekWgXb9NVOo="; + hash = "sha256-clwYn43Xswdo11T+aX78K1Qat5BoGwH3ByCT4qaMl8A="; }; nativeBuildInputs = [ From eae83d1ad0d7f19e239ff00effd11cfc929fde0a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 11 Jun 2026 14:08:58 +0000 Subject: [PATCH 008/152] megasync: 6.1.1.0 -> 6.4.0.2 --- pkgs/by-name/me/megasync/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/me/megasync/package.nix b/pkgs/by-name/me/megasync/package.nix index d4cf351b2237..b554fefd2237 100644 --- a/pkgs/by-name/me/megasync/package.nix +++ b/pkgs/by-name/me/megasync/package.nix @@ -34,13 +34,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "megasync"; - version = "6.1.1.0"; + version = "6.4.0.2"; src = fetchFromGitHub rec { owner = "meganz"; repo = "MEGAsync"; tag = "v${finalAttrs.version}_Linux"; - hash = "sha256-lY8YfBWRYo+Q0ZvsZI2Mo0pgjD7wQvpyybPU+9bWahw="; + hash = "sha256-PgIRIr3+XRwv48EpREL56yzuqI8Ws72V4o3pTSR1ZfA="; fetchSubmodules = false; # DesignTokensImporter cannot be fetched, see #1010 in github:meganz/megasync leaveDotGit = true; postFetch = '' From a3052a81fb380f6ebe0d9b403b8be9d410a609e2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 12 Jun 2026 18:53:49 +0000 Subject: [PATCH 009/152] thokr: 0.4.1 -> 0.5.0 --- pkgs/by-name/th/thokr/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/th/thokr/package.nix b/pkgs/by-name/th/thokr/package.nix index 0b95ea03803e..0869bfd8dd7a 100644 --- a/pkgs/by-name/th/thokr/package.nix +++ b/pkgs/by-name/th/thokr/package.nix @@ -6,16 +6,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "thokr"; - version = "0.4.1"; + version = "0.5.0"; src = fetchFromGitHub { owner = "thatvegandev"; repo = "thokr"; rev = "v${finalAttrs.version}"; - sha256 = "0aryfx9qlnjdq3iq2d823c82fhkafvibmbz58g48b8ah5x5fv3ir"; + sha256 = "sha256-Ms90Eo2Bk9+QTOZv9fc73gQ1xwDntTbiwXsifF79ELE="; }; - cargoHash = "sha256-BjUPXsErdLGmZaDIMaY+iV3XcoQHGNZbRmFJb/fblwU="; + cargoHash = "sha256-U0nClfSQnliQEVX/PrG4B+TLqHNbL0xvttLukEGFKeI="; meta = { description = "Typing tui with visualized results and historical logging"; From 0d8376f9059265b689ff2df5eddbcf7cc4ac32f3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 20 Jun 2026 17:24:17 +0000 Subject: [PATCH 010/152] karate: 1.5.2 -> 2.1.0 --- pkgs/by-name/ka/karate/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ka/karate/package.nix b/pkgs/by-name/ka/karate/package.nix index 405f869dc7c3..9fc9eaa9186d 100644 --- a/pkgs/by-name/ka/karate/package.nix +++ b/pkgs/by-name/ka/karate/package.nix @@ -8,11 +8,11 @@ stdenvNoCC.mkDerivation rec { pname = "karate"; - version = "1.5.2"; + version = "2.1.0"; src = fetchurl { url = "https://github.com/karatelabs/karate/releases/download/v${version}/karate-${version}.jar"; - sha256 = "sha256-zPR0DGShVMTCRX1vD9GajzeQLCnTKqxOIwEuCoeGFL4="; + sha256 = "sha256-ImFhqjBMYXREOZ+0j0IIARmtNQpCf71m2nUxZQusKKo="; }; dontUnpack = true; From e9f75bfda0beb1a4d310712049cf5f4711a61d72 Mon Sep 17 00:00:00 2001 From: anubis Date: Fri, 19 Jun 2026 22:02:09 +0100 Subject: [PATCH 011/152] nbfc-linux: 0.3.19 -> 0.5.2 --- pkgs/by-name/nb/nbfc-linux/package.nix | 36 ++++++++++++++++++++------ 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/nb/nbfc-linux/package.nix b/pkgs/by-name/nb/nbfc-linux/package.nix index eaca2a5ef4c0..171b7f779708 100644 --- a/pkgs/by-name/nb/nbfc-linux/package.nix +++ b/pkgs/by-name/nb/nbfc-linux/package.nix @@ -3,38 +3,58 @@ stdenv, fetchFromGitHub, autoreconfHook, + pkg-config, + lua5_4, curl, + libxml2, + openssl, + nix-update-script, + versionCheckHook, }: stdenv.mkDerivation (finalAttrs: { pname = "nbfc-linux"; - version = "0.3.19"; + version = "0.5.2"; src = fetchFromGitHub { owner = "nbfc-linux"; repo = "nbfc-linux"; tag = finalAttrs.version; - hash = "sha256-ARUhm1K3A0bzVRen6VO3KvomkPl1S7vx2+tmg2ZtL8s="; + hash = "sha256-468/dFRjEgyJ0AW98wKq04WKZ4sZyzswBASSF6hyjVY="; }; - nativeBuildInputs = [ autoreconfHook ]; + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; - buildInputs = [ curl ]; + buildInputs = [ + lua5_4 + curl + libxml2 + openssl + ]; configureFlags = [ - "--prefix=${placeholder "out"}" - "--sysconfdir=${placeholder "out"}/etc" "--bindir=${placeholder "out"}/bin" ]; + passthru.updateScript = nix-update-script { }; + + nativeInstallCheckInputs = [ versionCheckHook ]; + doInstallCheck = true; + meta = { description = "C port of Stefan Hirschmann's NoteBook FanControl"; longDescription = '' nbfc-linux provides fan control service for notebooks ''; homepage = "https://github.com/nbfc-linux/nbfc-linux"; - license = lib.licenses.gpl3; - maintainers = [ lib.maintainers.Celibistrial ]; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ + Celibistrial + bohanubis + ]; mainProgram = "nbfc"; platforms = lib.platforms.linux; }; From eda294bfdc61fefcc2e3c58f8bec464d11dc1448 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 25 Jun 2026 10:35:15 +0000 Subject: [PATCH 012/152] openusd: 26.03 -> 26.05 --- pkgs/development/python-modules/openusd/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/openusd/default.nix b/pkgs/development/python-modules/openusd/default.nix index 3f5d7651a5e0..26c90ae3b091 100644 --- a/pkgs/development/python-modules/openusd/default.nix +++ b/pkgs/development/python-modules/openusd/default.nix @@ -52,14 +52,14 @@ in buildPythonPackage rec { pname = "openusd"; - version = "26.03"; + version = "26.05"; pyproject = false; src = fetchFromGitHub { owner = "PixarAnimationStudios"; repo = "OpenUSD"; tag = "v${version}"; - hash = "sha256-Ijh7x63TqEkittO+r//sIkBu7I52/6C7a2n9Nq6Kt7g="; + hash = "sha256-LQ5iopxoDtmScYhmMy+xN/Gb5WVdAYXdQGlGhG3vIiA="; }; outputs = [ "out" ] ++ lib.optional withDocs "doc"; From 72dfaa656ada0459ed5bdb4b60144cb32e2ad009 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 25 Jun 2026 23:32:26 +0000 Subject: [PATCH 013/152] python3Packages.pylsl: 1.18.1 -> 1.18.3.b1 --- pkgs/development/python-modules/pylsl/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pylsl/default.nix b/pkgs/development/python-modules/pylsl/default.nix index 90fe12d0c1d9..8def5f08ee6e 100644 --- a/pkgs/development/python-modules/pylsl/default.nix +++ b/pkgs/development/python-modules/pylsl/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "pylsl"; - version = "1.18.1"; + version = "1.18.3.b1"; pyproject = true; src = fetchFromGitHub { owner = "labstreaminglayer"; repo = "pylsl"; tag = "v${version}"; - hash = "sha256-H/ALvRtgv1Ms9VeTJvDRCpg0Q+/4Xjx/NS4whOGmtU8="; + hash = "sha256-AVnRkkzAiPGcnnDL7ZxsnY7R76DcqPcG1M5Fg4ZRSX0="; }; postPatch = '' From 6fea46484882710911888768c395cb9842d64565 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 26 Jun 2026 15:57:12 +0000 Subject: [PATCH 014/152] vcluster: 0.34.1 -> 0.35.1 --- pkgs/by-name/vc/vcluster/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/vc/vcluster/package.nix b/pkgs/by-name/vc/vcluster/package.nix index 216e5b799ed9..d8766e1674eb 100644 --- a/pkgs/by-name/vc/vcluster/package.nix +++ b/pkgs/by-name/vc/vcluster/package.nix @@ -10,13 +10,13 @@ buildGoModule (finalAttrs: { pname = "vcluster"; - version = "0.34.1"; + version = "0.35.1"; src = fetchFromGitHub { owner = "loft-sh"; repo = "vcluster"; tag = "v${finalAttrs.version}"; - hash = "sha256-sjpijDrh86dAOqKW+wPPcPRLNZNyfQTxhkAO335BxPM="; + hash = "sha256-31PGY6x+D0QJCS8VyTPS2AVEB/aw1hV/miijsqwpALI="; }; vendorHash = null; From fcda69e02296a180823b4a569c9ad3b4131ef3c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 27 Jun 2026 14:39:30 +0200 Subject: [PATCH 015/152] upterm: set Version variable in build Previously `upterm version` would show 0.0.0+dev, now it shows the correct package version. --- pkgs/by-name/up/upterm/package.nix | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/up/upterm/package.nix b/pkgs/by-name/up/upterm/package.nix index aec66d1b2cd7..9cdb9807af76 100644 --- a/pkgs/by-name/up/upterm/package.nix +++ b/pkgs/by-name/up/upterm/package.nix @@ -6,6 +6,8 @@ writableTmpDirAsHomeHook, installShellFiles, nixosTests, + testers, + upterm, }: buildGoModule (finalAttrs: { @@ -19,6 +21,12 @@ buildGoModule (finalAttrs: { hash = "sha256-b52Rny6mYkmfF6Umn2tzlnUhNkENHPFpCzp55OWj92w="; }; + ldflags = [ + "-s" + "-w" + "-X github.com/owenthereal/upterm/internal/version.Version=${finalAttrs.version}" + ]; + vendorHash = "sha256-UkZnLbxn0dPT43ycuevcwMw0dXnX1OPHLh5F1XMHWDI="; subPackages = [ @@ -47,7 +55,14 @@ buildGoModule (finalAttrs: { doCheck = true; - passthru.tests = { inherit (nixosTests) uptermd; }; + passthru.tests = { + inherit (nixosTests) uptermd; + version = testers.testVersion { + package = upterm; + command = "HOME=$PWD upterm version"; # upterm tries to write to $HOME + version = "Upterm version ${finalAttrs.version}"; + }; + }; __darwinAllowLocalNetworking = true; From 6b274bd43bf4d47ec05d0eb3e0c65b753c8edc49 Mon Sep 17 00:00:00 2001 From: Hythera <87016780+Hythera@users.noreply.github.com> Date: Sun, 28 Jun 2026 11:56:48 +0200 Subject: [PATCH 016/152] wildcard: 0.3.3 -> 0.3.5 diff: https://gitlab.gnome.org/World/Wildcard/-/compare/v0.3.3...v0.3.5 --- pkgs/by-name/wi/wildcard/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/wi/wildcard/package.nix b/pkgs/by-name/wi/wildcard/package.nix index 3f7591026262..a0090667ce72 100644 --- a/pkgs/by-name/wi/wildcard/package.nix +++ b/pkgs/by-name/wi/wildcard/package.nix @@ -16,21 +16,21 @@ stdenv.mkDerivation (finalAttrs: { pname = "wildcard"; - version = "0.3.3"; + version = "0.3.5"; src = fetchFromGitLab { domain = "gitlab.gnome.org"; owner = "World"; repo = "Wildcard"; rev = "v${finalAttrs.version}"; - hash = "sha256-jOv0l1vnfDePWF7SAbsBFipPAONliPdc47xj79BJ+rc="; + hash = "sha256-8e3UWJ6PGhwvo/AB89VgkBfgsaNVa4g6hT9vBTmKlZQ="; }; strictDeps = true; cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) src; - hash = "sha256-eUT3K7DJk0U4GZ/oqvMAGUjTctcDMaRdsjq1sD+fitg="; + hash = "sha256-hoJsXoPmp0A6oIV1Rm7eXI2U2OIGrStmKzDdPQtI41A="; name = "wildcard-${finalAttrs.version}"; }; From 7142a2a31d9ee9d87f3d768c769fc8c00deb980d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 28 Jun 2026 19:00:39 +0000 Subject: [PATCH 017/152] python3Packages.imagecodecs: 2026.3.6 -> 2026.6.26 --- pkgs/development/python-modules/imagecodecs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/imagecodecs/default.nix b/pkgs/development/python-modules/imagecodecs/default.nix index f40a7a1e321a..e07a06619ef2 100644 --- a/pkgs/development/python-modules/imagecodecs/default.nix +++ b/pkgs/development/python-modules/imagecodecs/default.nix @@ -29,7 +29,7 @@ }: let - version = "2026.3.6"; + version = "2026.6.26"; in buildPythonPackage rec { pname = "imagecodecs"; @@ -40,7 +40,7 @@ buildPythonPackage rec { owner = "cgohlke"; repo = "imagecodecs"; tag = "v${version}"; - hash = "sha256-UOyhTzejLJ1HnwHtvFe9Mo8nxOkLNANnJL2z/SSRjXs="; + hash = "sha256-0o4zSf1iCzxph9tQ+b2nShaRWeCBuszf/r85Zg1BGTY="; }; build-system = [ From af2d1b47d387b04d1eccd8109afd9c9c6cf80498 Mon Sep 17 00:00:00 2001 From: Anton Mosich Date: Mon, 29 Jun 2026 19:28:59 +0200 Subject: [PATCH 018/152] xandikos: install manpages --- pkgs/by-name/xa/xandikos/package.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/by-name/xa/xandikos/package.nix b/pkgs/by-name/xa/xandikos/package.nix index d323f80d70a7..58b217a4d34a 100644 --- a/pkgs/by-name/xa/xandikos/package.nix +++ b/pkgs/by-name/xa/xandikos/package.nix @@ -3,6 +3,7 @@ lib, nixosTests, python3Packages, + installShellFiles, }: python3Packages.buildPythonApplication rec { @@ -33,6 +34,12 @@ python3Packages.buildPythonApplication rec { vobject ]; + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + installManPage man/xandikos{,-milter}.8 + ''; + passthru.tests.xandikos = nixosTests.xandikos; nativeCheckInputs = with python3Packages; [ pytestCheckHook ]; From e404d92d718bb8dcc55dc2b41fe1e411d66f6f04 Mon Sep 17 00:00:00 2001 From: ProxyVT Date: Mon, 29 Jun 2026 06:23:49 +0300 Subject: [PATCH 019/152] qmplay2: 25.09.11 -> 26.06.27 https://github.com/zaps166/QMPlay2/compare/25.09.11...26.06.27 --- pkgs/by-name/qm/qmplay2/sources.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/qm/qmplay2/sources.nix b/pkgs/by-name/qm/qmplay2/sources.nix index e1b3dbbbd857..a1a2ab5fdd01 100644 --- a/pkgs/by-name/qm/qmplay2/sources.nix +++ b/pkgs/by-name/qm/qmplay2/sources.nix @@ -5,13 +5,13 @@ let self = { pname = "qmplay2"; - version = "25.09.11"; + version = "26.06.27"; src = fetchFromGitHub { owner = "zaps166"; repo = "QMPlay2"; tag = self.version; - hash = "sha256-1F6VOTMJZ64PlIVSWoYzNz4LVmn5pEcUq+IfstYDwYo="; + hash = "sha256-8PY6s74unLgwDFlyiHHCWrsatdI05obbREOICZoI+lU="; }; }; in @@ -21,13 +21,13 @@ let self = { pname = "vulkan-headers"; - version = "1.4.317"; + version = "1.4.350"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "Vulkan-Headers"; tag = "v${self.version}"; - hash = "sha256-ezNthwKsnXehQfrQh0zTk6Zrz3JgdqjYu68abYUWIik="; + hash = "sha256-RcUVurC+Rc0MyWpQLaLVmdn7FZO1GWWzTZZAOwvKwb4="; }; }; in @@ -35,13 +35,13 @@ qmvk = { pname = "qmvk"; - version = "0-unstable-2025-09-02"; + version = "0-unstable-2026-06-21"; src = fetchFromGitHub { owner = "zaps166"; repo = "QmVk"; - rev = "0225dc851afaf39be2b92f91d4316e866f4b6133"; - hash = "sha256-W2102+X+gE/9ghdAwWBeWYmSkSdp6lLPx4IKaQpLANI="; + rev = "26ef419a3b91bc11856c714b3b932c62db098bf9"; + hash = "sha256-EaOGXYjon1brDQx+l7C2jvUkYgkW+D1qP52JPiMr3H0="; }; }; } From 869e3db8d027e3872e5e70ae50049e7c17500787 Mon Sep 17 00:00:00 2001 From: ProxyVT Date: Mon, 29 Jun 2026 06:38:55 +0300 Subject: [PATCH 020/152] qmplay2: add additional dependencies This commit adds some missing build-time dependencies. --- pkgs/by-name/qm/qmplay2/package.nix | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/qm/qmplay2/package.nix b/pkgs/by-name/qm/qmplay2/package.nix index 46774f4b6203..8f146264e58f 100644 --- a/pkgs/by-name/qm/qmplay2/package.nix +++ b/pkgs/by-name/qm/qmplay2/package.nix @@ -18,13 +18,21 @@ libxcb, ninja, pkg-config, + shaderc, qt5, qt6, taglib, vulkan-headers, vulkan-tools, - rubberband, deno, + expat, + libmpg123, + libogg, + libopenmpt, + libsysprof-capture, + libvorbis, + pipewire, + rubberband, # Configurable options qtVersion ? "6", # Can be 5 or 6 }: @@ -54,6 +62,7 @@ stdenv.mkDerivation (finalAttrs: { cmake ninja pkg-config + shaderc ] ++ lib.optionals (qtVersion == "6") [ qt6.wrapQtAppsHook ] ++ lib.optionals (qtVersion == "5") [ qt5.wrapQtAppsHook ]; @@ -76,6 +85,13 @@ stdenv.mkDerivation (finalAttrs: { vulkan-headers-qmplay2 vulkan-tools deno + expat + libmpg123 + libogg + libopenmpt + libsysprof-capture + libvorbis + pipewire ] ++ lib.optionals (qtVersion == "6") [ rubberband From ff74c564b2871c4f5ecf54fabe8cd8127e543f77 Mon Sep 17 00:00:00 2001 From: ProxyVT Date: Mon, 29 Jun 2026 06:42:24 +0300 Subject: [PATCH 021/152] qmplay2: fix qt5 build This flag is now required for the Qt5 build to succeed. --- pkgs/by-name/qm/qmplay2/package.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/by-name/qm/qmplay2/package.nix b/pkgs/by-name/qm/qmplay2/package.nix index 8f146264e58f..f61570428ace 100644 --- a/pkgs/by-name/qm/qmplay2/package.nix +++ b/pkgs/by-name/qm/qmplay2/package.nix @@ -105,6 +105,10 @@ stdenv.mkDerivation (finalAttrs: { qt5.qttools ]; + cmakeFlags = lib.optionals (qtVersion == "5") [ + (lib.cmakeBool "BUILD_WITH_QT6" false) + ]; + strictDeps = true; # Because we think it is better to use only lowercase letters! From be458e56e85c6f0af95427490f11de3ae814399d Mon Sep 17 00:00:00 2001 From: Zexin Yuan Date: Thu, 18 Jun 2026 17:39:58 +0800 Subject: [PATCH 022/152] worktrunk: copy skills --- pkgs/by-name/wo/worktrunk/package.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/by-name/wo/worktrunk/package.nix b/pkgs/by-name/wo/worktrunk/package.nix index 5b785b4b8fc0..ab3a3f7db7a3 100644 --- a/pkgs/by-name/wo/worktrunk/package.nix +++ b/pkgs/by-name/wo/worktrunk/package.nix @@ -41,6 +41,10 @@ rustPlatform.buildRustPackage (finalAttrs: { --fish <($out/bin/wt config shell completions fish) \ --nushell <($out/bin/wt config shell completions nu) \ --zsh <($out/bin/wt config shell completions zsh) + + # -L dereferences symlinks (e.g. skills/worktrunk/reference/README.md → repo + # root), so no dangling symlinks end up in $out. + cp -RL ${finalAttrs.src}/skills $out/ ''; nativeCheckInputs = [ gitMinimal ]; From cd22fed3c00d5cd70a09ca55eabe635b5ca76ede Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 1 Jul 2026 06:32:38 +0000 Subject: [PATCH 023/152] nail-parquet: 1.6.5 -> 1.9.0 --- pkgs/by-name/na/nail-parquet/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/na/nail-parquet/package.nix b/pkgs/by-name/na/nail-parquet/package.nix index c0e2a035c5e0..3cfebd7c5af6 100644 --- a/pkgs/by-name/na/nail-parquet/package.nix +++ b/pkgs/by-name/na/nail-parquet/package.nix @@ -11,16 +11,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "nail-parquet"; - version = "1.6.5"; + version = "1.9.0"; src = fetchFromGitHub { owner = "Vitruves"; repo = "nail-parquet"; tag = "v${finalAttrs.version}"; - hash = "sha256-CPiOeaESerQj+nV0hQIGv06/MFP8s7p9olpmhnWpAAg="; + hash = "sha256-IDGVdC4jvDfFTP0N0LAi8MTGdUOCT6A7mKXIz2au6jY="; }; - cargoHash = "sha256-x4BJZcQkisw9hA/TBzSSdkxh7oUNL0OD3H/v67otYj8="; + cargoHash = "sha256-c4yuXCQAlwpDlKURwN51d3AI+m7cUNGRdgl29qgWIvA="; nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ pkg-config From 465400d1f10ca03b338aee5d58f0a691cfbf82d5 Mon Sep 17 00:00:00 2001 From: Oleksii Filonenko Date: Wed, 1 Jul 2026 14:58:25 +0100 Subject: [PATCH 024/152] hcom: init at 0.7.22 --- pkgs/by-name/hc/hcom/package.nix | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 pkgs/by-name/hc/hcom/package.nix diff --git a/pkgs/by-name/hc/hcom/package.nix b/pkgs/by-name/hc/hcom/package.nix new file mode 100644 index 000000000000..b2f224401eec --- /dev/null +++ b/pkgs/by-name/hc/hcom/package.nix @@ -0,0 +1,40 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + writableTmpDirAsHomeHook, + versionCheckHook, + nix-update-script, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "hcom"; + version = "0.7.22"; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "aannoo"; + repo = "hcom"; + tag = "v${finalAttrs.version}"; + hash = "sha256-nYJ/S6/yNaMU8dJ4NoQbNHa133Ui4mHxc/2Dfmzga90="; + }; + + cargoHash = "sha256-3wDLq7qymMO5NUK9ekbh9+ij+zp5Ny1lFcxVmHzti+4="; + + doCheck = true; + nativeCheckInputs = [ writableTmpDirAsHomeHook ]; + + doInstallCheck = true; + nativeInstallCheckInputs = [ versionCheckHook ]; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Let AI agents message, watch, and spawn each other across terminals"; + homepage = "https://github.com/aannoo/hcom"; + changelog = "https://github.com/aannoo/hcom/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ Br1ght0ne ]; + mainProgram = "hcom"; + }; +}) From 49d03e2409fc033613927310ff759bd1dfb93dce Mon Sep 17 00:00:00 2001 From: Oleksii Filonenko Date: Wed, 1 Jul 2026 16:21:33 +0100 Subject: [PATCH 025/152] hcom: fix checkPhase --- pkgs/by-name/hc/hcom/package.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/by-name/hc/hcom/package.nix b/pkgs/by-name/hc/hcom/package.nix index b2f224401eec..23a04fb00be0 100644 --- a/pkgs/by-name/hc/hcom/package.nix +++ b/pkgs/by-name/hc/hcom/package.nix @@ -24,6 +24,16 @@ rustPlatform.buildRustPackage (finalAttrs: { doCheck = true; nativeCheckInputs = [ writableTmpDirAsHomeHook ]; + checkFlags = [ + # tries to read $PATH + "--skip=shell_env::tests::resolver_discards_stderr_without_breaking_env_resolution" + # tries to read shell pid + "--skip=shell_env::tests::timeout_kills_shell_process_group" + ]; + + # tons of unit tests use local ports + __darwinAllowLocalNetworking = true; + doInstallCheck = true; nativeInstallCheckInputs = [ versionCheckHook ]; From e6657f91b32099c19963457c9525da8532447edb Mon Sep 17 00:00:00 2001 From: Merrkry Date: Sat, 13 Jun 2026 21:43:43 +0800 Subject: [PATCH 026/152] tsukimi: 26.6.1 -> 26.7.1 --- pkgs/by-name/ts/tsukimi/package.nix | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ts/tsukimi/package.nix b/pkgs/by-name/ts/tsukimi/package.nix index e540b575841c..a23345244376 100644 --- a/pkgs/by-name/ts/tsukimi/package.nix +++ b/pkgs/by-name/ts/tsukimi/package.nix @@ -19,21 +19,23 @@ dbus, desktop-file-utils, versionCheckHook, + libxml2, + appstream, }: stdenv.mkDerivation (finalAttrs: { pname = "tsukimi"; - version = "26.6.1"; + version = "26.7.1"; src = fetchFromGitHub { owner = "tsukinaha"; repo = "tsukimi"; tag = "v${finalAttrs.version}"; - hash = "sha256-fJT5o9GOQB5TIlbqTRcMCaf5OYYW+D19dNPbLFqViCg="; + hash = "sha256-PGd2dWmUfdOyBsfn2Jozb7tAxSy2sv8XOKL1K8FwuLE="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) src; - hash = "sha256-Rdne9EQ9QSZ2RlYWEFEy9/OZEdIucQ/nB1Z8MJ0gAsU="; + hash = "sha256-lfDPrmCl+Fuf/AG8xiFv00HD76Wy63cBc9Iji7Cw2sw="; }; nativeBuildInputs = [ @@ -45,6 +47,8 @@ stdenv.mkDerivation (finalAttrs: { rustc cargo desktop-file-utils + libxml2 # xmllint + appstream # appstreamcli ]; buildInputs = [ @@ -64,6 +68,10 @@ stdenv.mkDerivation (finalAttrs: { gst-libav ]); + mesonFlags = [ + "-Drust-target=release" + ]; + nativeInstallCheckInputs = [ versionCheckHook ]; doInstallCheck = true; From c348927b90983b0f29f9e295bb829efe450b2c22 Mon Sep 17 00:00:00 2001 From: Seth Flynn Date: Wed, 1 Jul 2026 22:56:31 -0400 Subject: [PATCH 027/152] prismlauncher: target final wrapper in instance shortcuts Previously the unwrapped binary of Prism would be used in the `Exec` line of desktop files, leading to Weird behavior - like the instance hanging with no window created --- pkgs/by-name/pr/prismlauncher-unwrapped/package.nix | 6 ++++++ pkgs/by-name/pr/prismlauncher/package.nix | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/pr/prismlauncher-unwrapped/package.nix b/pkgs/by-name/pr/prismlauncher-unwrapped/package.nix index b1c6e194d927..ded8fff6818d 100644 --- a/pkgs/by-name/pr/prismlauncher-unwrapped/package.nix +++ b/pkgs/by-name/pr/prismlauncher-unwrapped/package.nix @@ -42,6 +42,12 @@ stdenv.mkDerivation (finalAttrs: { ln -s ${libnbtplusplus} source/libraries/libnbtplusplus ''; + # Ensure that instance shortucts point to our final wrapper, rather than this unwrapped version + postPatch = '' + substituteInPlace launcher/minecraft/ShortcutUtils.cpp \ + --replace-fail 'QApplication::applicationFilePath()' 'QProcessEnvironment::systemEnvironment().value("NIX_LAUNCHER_WRAPPER", "${placeholder "out"}/bin/prismlauncher")' + ''; + nativeBuildInputs = [ cmake pkg-config diff --git a/pkgs/by-name/pr/prismlauncher/package.nix b/pkgs/by-name/pr/prismlauncher/package.nix index 751a34c520e5..ec5a189be201 100644 --- a/pkgs/by-name/pr/prismlauncher/package.nix +++ b/pkgs/by-name/pr/prismlauncher/package.nix @@ -122,7 +122,10 @@ symlinkJoin { ++ additionalPrograms; in - [ "--prefix PRISMLAUNCHER_JAVA_PATHS : ${lib.makeSearchPath "bin/java" jdks}" ] + [ + "--set NIX_LAUNCHER_WRAPPER ${placeholder "out"}/bin/prismlauncher" + "--prefix PRISMLAUNCHER_JAVA_PATHS : ${lib.makeSearchPath "bin/java" jdks}" + ] ++ lib.optionals stdenv.hostPlatform.isLinux [ "--set LD_LIBRARY_PATH ${addDriverRunpath.driverLink}/lib:${lib.makeLibraryPath runtimeLibs}" "--prefix PATH : ${lib.makeBinPath runtimePrograms}" From c9df35f5a17790b31abbe96ff71a10c13c48b186 Mon Sep 17 00:00:00 2001 From: winston Date: Thu, 2 Jul 2026 15:33:30 +0100 Subject: [PATCH 028/152] fastmail: 1.2.1 -> 1.3.0, add aarch64-linux support --- pkgs/by-name/fa/fastmail-desktop/linux.nix | 15 +++++++++++--- pkgs/by-name/fa/fastmail-desktop/package.nix | 1 + pkgs/by-name/fa/fastmail-desktop/sources.nix | 21 +++++++++++++------- pkgs/by-name/fa/fastmail-desktop/update.sh | 11 ++++++++++ 4 files changed, 38 insertions(+), 10 deletions(-) diff --git a/pkgs/by-name/fa/fastmail-desktop/linux.nix b/pkgs/by-name/fa/fastmail-desktop/linux.nix index 98f354809842..b973981b57f1 100644 --- a/pkgs/by-name/fa/fastmail-desktop/linux.nix +++ b/pkgs/by-name/fa/fastmail-desktop/linux.nix @@ -66,9 +66,18 @@ stdenvNoCC.mkDerivation (finalAttrs: { ''; # remove musl-libc dependencies before the autoPatchelfHook - preFixup = '' - rm -r "$out/opt/fastmail/app.asar.unpacked/node_modules/@img/"{sharp-linuxmusl-x64,sharp-libvips-linuxmusl-x64} - ''; + preFixup = + let + suffix = + { + aarch64-linux = "arm64"; + x86_64-linux = "x64"; + } + .${stdenvNoCC.targetPlatform.system}; + in + '' + rm -r "$out/opt/fastmail/app.asar.unpacked/node_modules/@img/"{sharp-linuxmusl-${suffix},sharp-libvips-linuxmusl-${suffix}} + ''; meta = meta // { mainProgram = "fastmail"; diff --git a/pkgs/by-name/fa/fastmail-desktop/package.nix b/pkgs/by-name/fa/fastmail-desktop/package.nix index ae6f88fdd833..20ad3f4fa7ae 100644 --- a/pkgs/by-name/fa/fastmail-desktop/package.nix +++ b/pkgs/by-name/fa/fastmail-desktop/package.nix @@ -26,6 +26,7 @@ callPackage (if isDarwin then ./darwin.nix else ./linux.nix) { ]; platforms = [ "aarch64-darwin" + "aarch64-linux" "x86_64-linux" ]; }; diff --git a/pkgs/by-name/fa/fastmail-desktop/sources.nix b/pkgs/by-name/fa/fastmail-desktop/sources.nix index 374f140afcaf..ed1f0b99d90a 100644 --- a/pkgs/by-name/fa/fastmail-desktop/sources.nix +++ b/pkgs/by-name/fa/fastmail-desktop/sources.nix @@ -1,19 +1,26 @@ # Generated by ./update.sh - do not update manually! -# Last updated: 2026-03-23 +# Last updated: 2026-07-02 { fetchurl, fetchzip }: { aarch64-darwin = { - version = "1.2.1"; + version = "1.3.0"; src = fetchurl { - url = "https://dl.fastmailcdn.com/desktop/production/mac/arm64/Fastmail-1.2.1-arm64-mac.zip"; - hash = "sha512-bu6IeL8X8ogD1qSlAuApWTBTCYIk5QrjWrzjOv8fel+kqYfCIcDXP1DP1FdJwULe91zoZn4M/uDX8CoOPWa0cA=="; + url = "https://dl.fastmailcdn.com/desktop/production/mac/arm64/Fastmail-1.3.0-arm64-mac.zip"; + hash = "sha512-6iRUcoI0dsW5ByaQ7dv7Oki5y0Y1wuMlQjjCpqWaThttsNJ4yYXh812RGsPjJTvcwVNMvPRbmPcbb/y//mXqRg=="; + }; + }; + aarch64-linux = { + version = "1.3.0"; + src = fetchurl { + url = "https://dl.fastmailcdn.com/desktop/production/linux/arm64/com.fastmail.Fastmail-1.3.0-arm64.AppImage"; + hash = "sha512-XJdxJVJ3xdhF04TInc3vmEtcUnzPzwujzTix+t2WbRo9qNEPqxnmN6hurGq0dZO/Dnk7jgOfAkjCpVq/kxWVRQ=="; }; }; x86_64-linux = { - version = "1.2.1"; + version = "1.3.0"; src = fetchurl { - url = "https://dl.fastmailcdn.com/desktop/production/linux/x64/com.fastmail.Fastmail-1.2.1.AppImage"; - hash = "sha512-xudOPNjOaumYxD7yZyjQnYhuiKqDO10cBwMdFJtVEOfHVia0jJMgdUTJx03otIBn9ijM3/1Qo6wsq1HF0A/zlQ=="; + url = "https://dl.fastmailcdn.com/desktop/production/linux/x64/com.fastmail.Fastmail-1.3.0.AppImage"; + hash = "sha512-KnFAmjGQGXfA83JDynSixecoqqZbnC0bYGFQVf8YfP3ITwspHNDj3TIMp2jqXKtl9j4DlH1w8eLwSbKD0En9Wg=="; }; }; } diff --git a/pkgs/by-name/fa/fastmail-desktop/update.sh b/pkgs/by-name/fa/fastmail-desktop/update.sh index c21c13c3fe7a..4c84120dfefa 100755 --- a/pkgs/by-name/fa/fastmail-desktop/update.sh +++ b/pkgs/by-name/fa/fastmail-desktop/update.sh @@ -6,15 +6,19 @@ set -euo pipefail cd "$(readlink -e "$(dirname "${BASH_SOURCE[0]}")")" x86_64_linux_info=$(curl -fsS "https://dl.fastmailcdn.com/desktop/production/linux/x64/latest-linux.yml") +aarch64_linux_info=$(curl -fsS "https://dl.fastmailcdn.com/desktop/production/linux/arm64/latest-linux-arm64.yml") aarch64_darwin_info=$(curl -fsS "https://dl.fastmailcdn.com/desktop/production/mac/arm64/latest-mac.yml") x86_64_linux_version=$(yq -r '.version' <<<"$x86_64_linux_info") +aarch64_linux_version=$(yq -r '.version' <<<"$aarch64_linux_info") aarch64_darwin_version=$(yq -r '.version' <<<"$aarch64_darwin_info") x86_64_linux_url="https://dl.fastmailcdn.com/desktop/production/linux/x64/$(yq -r '.path' <<<"$x86_64_linux_info")" +aarch64_linux_url="https://dl.fastmailcdn.com/desktop/production/linux/arm64/$(yq -r '.path' <<<"$aarch64_linux_info")" aarch64_darwin_url="https://dl.fastmailcdn.com/desktop/production/mac/arm64/$(yq -r '.path' <<<"$aarch64_darwin_info")" x86_64_linux_hash=$(nix-hash --type sha512 --to-sri "$(yq -r '.sha512' <<<"$x86_64_linux_info")") +aarch64_linux_hash=$(nix-hash --type sha512 --to-sri "$(yq -r '.sha512' <<<"$aarch64_linux_info")") aarch64_darwin_hash=$(nix-hash --type sha512 --to-sri "$(yq -r '.sha512' <<<"$aarch64_darwin_info")") cat >sources.nix <sources.nix < Date: Thu, 2 Jul 2026 09:51:52 -0500 Subject: [PATCH 029/152] dnst: track unstable releases with nix-update --- pkgs/by-name/dn/dnst/package.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/dn/dnst/package.nix b/pkgs/by-name/dn/dnst/package.nix index 1d14757abe54..c254778e1ea0 100644 --- a/pkgs/by-name/dn/dnst/package.nix +++ b/pkgs/by-name/dn/dnst/package.nix @@ -39,7 +39,9 @@ rustPlatform.buildRustPackage (finalAttrs: { installManPage doc/manual/build/man/*.1 ''; - passthru.updateScript = nix-update-script { }; + passthru.updateScript = nix-update-script { + extraArgs = [ "--version=unstable" ]; + }; meta = { description = "Toolset to assist DNS operators with zone and nameserver maintenance"; From 13006deb27ce4e28645df7d0e1a16695ec6986a0 Mon Sep 17 00:00:00 2001 From: Skye Soss Date: Thu, 2 Jul 2026 09:53:58 -0500 Subject: [PATCH 030/152] dnst: 0.2.0-alpha2 -> 0.2.0-alpha3 --- pkgs/by-name/dn/dnst/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/dn/dnst/package.nix b/pkgs/by-name/dn/dnst/package.nix index c254778e1ea0..ae7164e53545 100644 --- a/pkgs/by-name/dn/dnst/package.nix +++ b/pkgs/by-name/dn/dnst/package.nix @@ -10,14 +10,14 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "dnst"; - version = "0.2.0-alpha2"; + version = "0.2.0-alpha3"; __structuredAttrs = true; src = fetchFromGitHub { owner = "NLnetLabs"; repo = "dnst"; tag = "v${finalAttrs.version}"; - hash = "sha256-OpyOnBddbIdnJLchY5y2oMqK5JSXCTF8cC5KstJ7pnc="; + hash = "sha256-6Sgj2OZptG/bMsuYdGfaaY62qh4uUyxdbit6vpWWm9w="; }; nativeBuildInputs = [ @@ -27,7 +27,7 @@ rustPlatform.buildRustPackage (finalAttrs: { ]; buildInputs = [ openssl ]; - cargoHash = "sha256-y048tMh5wBjAB7I8FK3pETn0j9S/h893JZb9sbOBdbo="; + cargoHash = "sha256-8pzf4GeBJbqIZf6KAqROEAvFAqtf6XLODWhS3RVfpAQ="; postInstall = '' mkdir -p $out/libexec From ffaebb3f5b21ae225e3162875d6326dac61f2731 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Thu, 2 Jul 2026 11:40:21 +0200 Subject: [PATCH 031/152] veryl: 0.20.1 -> 0.20.2 Diff: https://github.com/veryl-lang/veryl/compare/v0.20.1...v0.20.2 Changelog: https://github.com/veryl-lang/veryl/releases/tag/v0.20.2 --- pkgs/by-name/ve/veryl/package.nix | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ve/veryl/package.nix b/pkgs/by-name/ve/veryl/package.nix index 10846811396c..06e364c2ba54 100644 --- a/pkgs/by-name/ve/veryl/package.nix +++ b/pkgs/by-name/ve/veryl/package.nix @@ -5,22 +5,24 @@ pkg-config, installShellFiles, dbus, + writableTmpDirAsHomeHook, + git, stdenv, }: rustPlatform.buildRustPackage (finalAttrs: { pname = "veryl"; - version = "0.20.1"; + version = "0.20.2"; src = fetchFromGitHub { owner = "veryl-lang"; repo = "veryl"; rev = "v${finalAttrs.version}"; - hash = "sha256-jY8CeuRjtRtyQl07ezl/PUILvMABFJn9Q6AH11C4M/0="; + hash = "sha256-ldibFrtU/lEL4a0QIhVKx8A0noZF2qyH9iExYNZedoU="; fetchSubmodules = true; }; - cargoHash = "sha256-j6lJlGqtQf/mRYKDUi3nttbPWfI7CyE1tlksGhrnrEM="; + cargoHash = "sha256-mpI3Eo5fkP66Ywr/anQ3ajPrVuuK6Ku7qJ/jpVPHE6Q="; nativeBuildInputs = [ pkg-config @@ -38,6 +40,11 @@ rustPlatform.buildRustPackage (finalAttrs: { --zsh <($out/bin/veryl metadata --completion zsh) ''; + nativeCheckInputs = [ + writableTmpDirAsHomeHook + git + ]; + checkFlags = [ # takes over an hour "--skip=tests::progress" From 7292d06d3873dc6c070188139c4826c1203ab339 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 2 Jul 2026 20:19:28 +0000 Subject: [PATCH 032/152] goeland: 0.24.0 -> 0.25.0 --- pkgs/by-name/go/goeland/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/go/goeland/package.nix b/pkgs/by-name/go/goeland/package.nix index 993f05f184de..8437a8412a21 100644 --- a/pkgs/by-name/go/goeland/package.nix +++ b/pkgs/by-name/go/goeland/package.nix @@ -6,16 +6,16 @@ buildGoModule (finalAttrs: { pname = "goeland"; - version = "0.24.0"; + version = "0.25.0"; src = fetchFromGitHub { owner = "slurdge"; repo = "goeland"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-pUwGdL17/VS9difji4/B1QzG7l6K4igeRxISDKVToE8="; + sha256 = "sha256-5pUj7KgjvcA7xuKV7j9nLEih4ecrQjarddRVNszidfE="; }; - vendorHash = "sha256-s20LCVih71TR5IYQ26bpF+q4eonpBlGXayCzcFLlb8Y="; + vendorHash = "sha256-GOoeyh0ddtYiigavgjMNy8z6suTFtS9oswO9PAdagGE="; ldflags = [ "-s" From 954fbf1114da6f7d5de892e8dea01c65cbe9cf58 Mon Sep 17 00:00:00 2001 From: lukas-sgx Date: Thu, 2 Jul 2026 22:29:42 +0200 Subject: [PATCH 033/152] nagios: 4.5.11 -> 4.5.13 Diff: https://github.com/NagiosEnterprises/nagioscore/compare/nagios-4.5.11...nagios-4.5.13 Changelog: https://github.com/NagiosEnterprises/nagioscore/blob/nagios-4.5.13/Changelog --- pkgs/by-name/na/nagios/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/na/nagios/package.nix b/pkgs/by-name/na/nagios/package.nix index f453e98744a3..2b4b5fc0f3c4 100644 --- a/pkgs/by-name/na/nagios/package.nix +++ b/pkgs/by-name/na/nagios/package.nix @@ -16,13 +16,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "nagios"; - version = "4.5.11"; + version = "4.5.13"; src = fetchFromGitHub { owner = "NagiosEnterprises"; repo = "nagioscore"; tag = "nagios-${finalAttrs.version}"; - hash = "sha256-RUiEVCOqEo0+oD6GPl9U3Y4C2Fz4uOGgSaBC+WIkxjs="; + hash = "sha256-6d49LhnerArXM2tTjyEe0/PU/THqxxptaSaBCKJzkiU="; }; patches = [ ./nagios.patch ]; From 67df64e2930385cd70b0b504e339c0364db31580 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 2 Jul 2026 22:09:51 +0000 Subject: [PATCH 034/152] renode-dts2repl: 0-unstable-2026-06-23 -> 0-unstable-2026-06-29 --- pkgs/by-name/re/renode-dts2repl/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/re/renode-dts2repl/package.nix b/pkgs/by-name/re/renode-dts2repl/package.nix index 8fa74c3e2fd6..9000e3a3d315 100644 --- a/pkgs/by-name/re/renode-dts2repl/package.nix +++ b/pkgs/by-name/re/renode-dts2repl/package.nix @@ -7,14 +7,14 @@ python3.pkgs.buildPythonApplication { pname = "renode-dts2repl"; - version = "0-unstable-2026-06-23"; + version = "0-unstable-2026-06-29"; pyproject = true; src = fetchFromGitHub { owner = "antmicro"; repo = "dts2repl"; - rev = "ac3c1b8b0c030adadfcb266af39d7dc7379ceaf9"; - hash = "sha256-9Xxb2/B6ctm3HQpDGmAbL+v+n5EjcWWe46KCSMlvujs="; + rev = "c2aae3dd278f318900ba4af8cab7ad338b50e0df"; + hash = "sha256-lTXLCHggpot9yLfHWbQaxWb+wkeS1i7eyt/NbstOxj4="; }; nativeBuildInputs = [ From 928b968609605fb892983c655a73e93bcc88cf5c Mon Sep 17 00:00:00 2001 From: 3JlOy_PYCCKUI <3jl0y_pycckui@riseup.net> Date: Fri, 3 Jul 2026 05:44:34 +0300 Subject: [PATCH 035/152] tomato-c: 0-unstable-2024-04-19 -> 0-unstable-2025-11-11 --- pkgs/by-name/to/tomato-c/package.nix | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/pkgs/by-name/to/tomato-c/package.nix b/pkgs/by-name/to/tomato-c/package.nix index f4805f687175..fecab3baea9b 100644 --- a/pkgs/by-name/to/tomato-c/package.nix +++ b/pkgs/by-name/to/tomato-c/package.nix @@ -11,26 +11,15 @@ stdenv.mkDerivation (finalAttrs: { pname = "tomato-c"; - version = "0-unstable-2024-04-19"; + version = "0-unstable-2025-11-11"; src = fetchFromGitHub { owner = "gabrielzschmitz"; repo = "Tomato.C"; - rev = "b3b85764362a7c120f3312f5b618102a4eac9f01"; - hash = "sha256-7i+vn1dAK+bAGpBlKTnSBUpyJyRiPc7AiUF/tz+RyTI="; + rev = "590224cbbf0f53f09d33080c4e83797a11ad02d1"; + hash = "sha256-TVvCqWWjfFHcFOMEO9frfrs9638cOjkV8yvqavdzdmI="; }; - postPatch = '' - substituteInPlace Makefile \ - --replace-fail "sudo " "" - substituteInPlace notify.c \ - --replace-fail "/usr/local" "${placeholder "out"}" - substituteInPlace util.c \ - --replace-fail "/usr/local" "${placeholder "out"}" - substituteInPlace tomato.desktop \ - --replace-fail "/usr/local" "${placeholder "out"}" - ''; - nativeBuildInputs = [ makeWrapper pkg-config From 419e6a416f8aa13632270186744a6dca81c08f40 Mon Sep 17 00:00:00 2001 From: 3JlOy_PYCCKUI <3jl0y_pycckui@riseup.net> Date: Fri, 3 Jul 2026 05:47:22 +0300 Subject: [PATCH 036/152] tomato-c: adopt --- pkgs/by-name/to/tomato-c/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/to/tomato-c/package.nix b/pkgs/by-name/to/tomato-c/package.nix index fecab3baea9b..2d39a0999c46 100644 --- a/pkgs/by-name/to/tomato-c/package.nix +++ b/pkgs/by-name/to/tomato-c/package.nix @@ -58,7 +58,7 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://github.com/gabrielzschmitz/Tomato.C"; description = "Pomodoro timer written in pure C"; license = with lib.licenses; [ gpl3Plus ]; - maintainers = [ ]; + maintainers = with lib.maintainers; [ _3JlOy-PYCCKUi ]; mainProgram = "tomato"; platforms = lib.platforms.unix; }; From f3425619d55ec6c178de4d20c6b5e23fcbe4594e Mon Sep 17 00:00:00 2001 From: Zeljko Bekcic Date: Fri, 3 Jul 2026 11:07:35 +0200 Subject: [PATCH 037/152] zarf: 0.77.0 -> 0.80.0 --- pkgs/by-name/za/zarf/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/za/zarf/package.nix b/pkgs/by-name/za/zarf/package.nix index 8c790fc36cc4..7f40f9ecbeec 100644 --- a/pkgs/by-name/za/zarf/package.nix +++ b/pkgs/by-name/za/zarf/package.nix @@ -10,16 +10,16 @@ buildGoModule (finalAttrs: { pname = "zarf"; - version = "0.77.0"; + version = "0.80.0"; src = fetchFromGitHub { owner = "zarf-dev"; repo = "zarf"; tag = "v${finalAttrs.version}"; - hash = "sha256-kVXJ0ByW/v68f65tmgsvvHnp5v9x4y4vq6Qnu5kA9ZQ="; + hash = "sha256-GvjjAlNmEmvZ7mknec9bpoVzCsf+xHmMm0uHi/P0/5g="; }; - vendorHash = "sha256-xP0hXk6D/EzgxVYScOnET203ip390zgxIr5fAEj7wqI="; + vendorHash = "sha256-DLwN9cEVEnlb3S4wfJs90EfcsxgjIH/3rEiwqjcftGY="; proxyVendor = true; nativeBuildInputs = [ From b6f223dfc7d2055ca69e32e421cb3fb9bc5351c0 Mon Sep 17 00:00:00 2001 From: Mathias Sven Date: Fri, 3 Jul 2026 14:28:30 +0100 Subject: [PATCH 038/152] eigenwallet: use wrapGAppsHook3 --- pkgs/by-name/ei/eigenwallet/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/by-name/ei/eigenwallet/package.nix b/pkgs/by-name/ei/eigenwallet/package.nix index a49e95b8b1a1..a4a1ecfc074a 100644 --- a/pkgs/by-name/ei/eigenwallet/package.nix +++ b/pkgs/by-name/ei/eigenwallet/package.nix @@ -4,6 +4,7 @@ stdenv, dpkg, autoPatchelfHook, + wrapGAppsHook3, cairo, gdk-pixbuf, webkitgtk_4_1, @@ -22,6 +23,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ dpkg autoPatchelfHook + wrapGAppsHook3 ]; buildInputs = [ From d39d13df06ff2604647cf97d79d29a2efbbb5cd8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 3 Jul 2026 15:46:53 +0000 Subject: [PATCH 039/152] spotify-player: 0.23.0 -> 0.24.0 --- pkgs/by-name/sp/spotify-player/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/sp/spotify-player/package.nix b/pkgs/by-name/sp/spotify-player/package.nix index c1497f3bcee9..94c7f440b17e 100644 --- a/pkgs/by-name/sp/spotify-player/package.nix +++ b/pkgs/by-name/sp/spotify-player/package.nix @@ -49,16 +49,16 @@ assert lib.assertOneOf "withAudioBackend" withAudioBackend [ rustPlatform.buildRustPackage (finalAttrs: { pname = "spotify-player"; - version = "0.23.0"; + version = "0.24.0"; src = fetchFromGitHub { owner = "aome510"; repo = "spotify-player"; tag = "v${finalAttrs.version}"; - hash = "sha256-LjQGCE4xbD3+k78827u346/qhC6D8vrhyUq6c+8eWSw="; + hash = "sha256-SxzQdQOg+KS6jXJNifVkehR91g6gTHBYgyxfXx9WWI8="; }; - cargoHash = "sha256-mD1UJn3LjX88Ht6QUpPO9lu9WiCec5+qUphtLoCjiXg="; + cargoHash = "sha256-TmGdJXKOsTL9HVyEEe3PtiLMSDJV/TRokRBVAUdHL7I="; nativeBuildInputs = [ pkg-config From 476f954ace4704c67a1e9c303c24e9620827dde5 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 3 Jul 2026 18:52:56 +0000 Subject: [PATCH 040/152] ta-lib: 0.6.4 -> 0.7.1 --- pkgs/by-name/ta/ta-lib/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ta/ta-lib/package.nix b/pkgs/by-name/ta/ta-lib/package.nix index c689c554288b..0a03243552c0 100644 --- a/pkgs/by-name/ta/ta-lib/package.nix +++ b/pkgs/by-name/ta/ta-lib/package.nix @@ -7,12 +7,12 @@ stdenv.mkDerivation (finalAttrs: { pname = "ta-lib"; - version = "0.6.4"; + version = "0.7.1"; src = fetchFromGitHub { owner = "TA-Lib"; repo = "ta-lib"; tag = "v${finalAttrs.version}"; - hash = "sha256-aTRiScPNWsGDwJvumZXlMilvSDYZVDWgpeZ2F/S5WgQ="; + hash = "sha256-tme5YuTWdf4lCsWXF97kSeka7Vmqte0vTjwtaUNN+kA="; }; nativeBuildInputs = [ autoreconfHook ]; meta = { From 7e5a2ce7ad845c7e802ddc4291b407b79e9655c3 Mon Sep 17 00:00:00 2001 From: poz Date: Sat, 4 Jul 2026 01:49:43 +0200 Subject: [PATCH 041/152] cemu: add `aarch64-linux` to `meta.platforms` --- pkgs/by-name/ce/cemu/package.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ce/cemu/package.nix b/pkgs/by-name/ce/cemu/package.nix index 6d8efb1d6395..9581a5122bd7 100644 --- a/pkgs/by-name/ce/cemu/package.nix +++ b/pkgs/by-name/ce/cemu/package.nix @@ -181,6 +181,9 @@ stdenv.mkDerivation (finalAttrs: { zhaofengli baduhai ]; - platforms = [ "x86_64-linux" ]; + platforms = [ + "aarch64-linux" + "x86_64-linux" + ]; }; }) From f1c19fbacb6d1be33da44d2c82a6c93fef24e812 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 4 Jul 2026 00:58:10 +0000 Subject: [PATCH 042/152] smartgit: 26.1.038 -> 26.1.045 --- pkgs/by-name/sm/smartgit/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sm/smartgit/package.nix b/pkgs/by-name/sm/smartgit/package.nix index b3195420c298..31b2e7a59f43 100644 --- a/pkgs/by-name/sm/smartgit/package.nix +++ b/pkgs/by-name/sm/smartgit/package.nix @@ -17,13 +17,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "smartgit"; - version = "26.1.038"; + version = "26.1.045"; src = fetchurl { url = "https://download.smartgit.dev/smartgit/smartgit-${ builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version }-no-git-linux-amd64.tar.gz"; - hash = "sha256-XyMdojfyaTS3S3felGRvOOazx1mym/wE3j4GyCU9crc="; + hash = "sha256-eROBWhH/VLGBEakAKukyGSyHJ9tyPXPQaZTb/3UIa6U="; }; nativeBuildInputs = [ wrapGAppsHook3 ]; From 49201ac9f52ac7c02c28a197f6ecccc4a5806a2c Mon Sep 17 00:00:00 2001 From: chillcicada <2210227279@qq.com> Date: Sat, 4 Jul 2026 12:14:10 +0800 Subject: [PATCH 043/152] flclash: add startupWMClass for desktop file --- pkgs/by-name/fl/flclash/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/fl/flclash/package.nix b/pkgs/by-name/fl/flclash/package.nix index eb941222e743..5efb29de1a11 100644 --- a/pkgs/by-name/fl/flclash/package.nix +++ b/pkgs/by-name/fl/flclash/package.nix @@ -83,6 +83,7 @@ flutter335.buildFlutterApplication { genericName = "FlClash"; desktopName = "FlClash"; categories = [ "Network" ]; + startupWMClass = "com.follow.clash"; keywords = [ "FlClash" "Clash" From fcf018c79aba8c3b1f251aa835858b0630c13bcf Mon Sep 17 00:00:00 2001 From: Timo Gottszky Date: Sat, 4 Jul 2026 11:40:24 +0200 Subject: [PATCH 044/152] borgmatic: 2.1.5 -> 2.1.6 --- pkgs/by-name/bo/borgmatic/package.nix | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/bo/borgmatic/package.nix b/pkgs/by-name/bo/borgmatic/package.nix index 682d8808520e..15db6617bd43 100644 --- a/pkgs/by-name/bo/borgmatic/package.nix +++ b/pkgs/by-name/bo/borgmatic/package.nix @@ -15,7 +15,7 @@ }: python3Packages.buildPythonApplication (finalAttrs: { pname = "borgmatic"; - version = "2.1.5"; + version = "2.1.6"; pyproject = true; strictDeps = true; @@ -23,7 +23,7 @@ python3Packages.buildPythonApplication (finalAttrs: { src = fetchPypi { inherit (finalAttrs) pname version; - hash = "sha256-T0+E6opyfr7zxfP44OlNuhqsdQyi7OdIXiE5r310LaU="; + hash = "sha256-Mgx8PnGfTa5j6+53RVntPHa5EDJAY2NQC3fvmyRj24Y="; }; passthru.updateScript = nix-update-script { }; @@ -33,13 +33,17 @@ python3Packages.buildPythonApplication (finalAttrs: { [ flexmock pytestCheckHook + pytest-asyncio pytest-cov-stub pytest-timeout ] - ++ finalAttrs.passthru.optional-dependencies.apprise; + ++ finalAttrs.passthru.optional-dependencies.apprise + ++ finalAttrs.passthru.optional-dependencies.browse; # - test_borgmatic_version_matches_news_version - # NEWS file not available on the pypi source + # NEWS file is available on the pypi source, but the test requires a + # borgmatic executable. Which it can't find in difference to all the + # other tests. # - test_log_outputs_includes_error_output_in_exception # TOCTOU race in log_outputs(): process.poll() returns None in # raise_for_process_errors but non-None in the while-loop exit check, @@ -51,6 +55,8 @@ python3Packages.buildPythonApplication (finalAttrs: { nativeBuildInputs = [ installShellFiles ]; + build-system = [ python3Packages.setuptools ]; + dependencies = with python3Packages; [ borgbackup colorama @@ -58,11 +64,14 @@ python3Packages.buildPythonApplication (finalAttrs: { packaging requests ruamel-yaml - setuptools ]; optional-dependencies = { apprise = [ python3Packages.apprise ]; + browse = with python3Packages; [ + binaryornot + textual + ]; }; postInstall = From ab7a490ec4470de5ea0f4cc8cb9d121587ec46c5 Mon Sep 17 00:00:00 2001 From: Timo Gottszky Date: Sat, 4 Jul 2026 12:00:18 +0200 Subject: [PATCH 045/152] borgmatic: add changelog --- pkgs/by-name/bo/borgmatic/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/bo/borgmatic/package.nix b/pkgs/by-name/bo/borgmatic/package.nix index 15db6617bd43..114dbdad8a3d 100644 --- a/pkgs/by-name/bo/borgmatic/package.nix +++ b/pkgs/by-name/bo/borgmatic/package.nix @@ -102,6 +102,7 @@ python3Packages.buildPythonApplication (finalAttrs: { meta = { description = "Simple, configuration-driven backup software for servers and workstations"; homepage = "https://torsion.org/borgmatic/"; + changelog = "https://projects.torsion.org/borgmatic-collective/borgmatic/src/tag/${finalAttrs.version}/NEWS"; license = lib.licenses.gpl3Plus; platforms = lib.platforms.all; mainProgram = "borgmatic"; From 7f8d524ee71cb91d24fa85c395674339332ad836 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Oko=C5=84ski?= Date: Sat, 4 Jul 2026 22:00:01 +0200 Subject: [PATCH 046/152] miller: 6.19.0 -> 6.20.2 --- pkgs/by-name/mi/miller/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/mi/miller/package.nix b/pkgs/by-name/mi/miller/package.nix index 08881804e38b..147d8cbca1f5 100644 --- a/pkgs/by-name/mi/miller/package.nix +++ b/pkgs/by-name/mi/miller/package.nix @@ -6,13 +6,13 @@ buildGoModule (finalAttrs: { pname = "miller"; - version = "6.19.0"; + version = "6.20.2"; src = fetchFromGitHub { owner = "johnkerl"; repo = "miller"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-kIhJ9wysaWnZNvaWaNE32FQOHFDNBtUl41d1Z45VFac="; + sha256 = "sha256-unzjbPuOmppEY56JnV+A3TZuaHMLNeZS3n7tKpudCXk="; }; outputs = [ @@ -20,7 +20,7 @@ buildGoModule (finalAttrs: { "man" ]; - vendorHash = "sha256-PzklwkT2Chs3z1UzLX9g9hpDGTHmyxfiT0igSntXPqo="; + vendorHash = "sha256-ZA9ueehDXsRI3eEE44hJziWKAAsZXkF77hBkYvX2k+U="; postInstall = '' mkdir -p $man/share/man/man1 From 6110c26e622773d2eea32d38788483bac047b219 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 4 Jul 2026 22:45:19 +0000 Subject: [PATCH 047/152] vscode-extensions.tombi-toml.tombi: 1.1.5 -> 1.1.7 --- .../vscode/extensions/tombi-toml.tombi/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/tombi-toml.tombi/default.nix b/pkgs/applications/editors/vscode/extensions/tombi-toml.tombi/default.nix index 5a35b4cf4207..66e9fbc2eb18 100644 --- a/pkgs/applications/editors/vscode/extensions/tombi-toml.tombi/default.nix +++ b/pkgs/applications/editors/vscode/extensions/tombi-toml.tombi/default.nix @@ -7,19 +7,19 @@ let supported = { x86_64-linux = { - hash = "sha256-YLic8tKnb6WSx4rdwTu8B2ybfjoSbXc+QfEZ0Vc4umo="; + hash = "sha256-DWrKvjWpUYvyqgZCShqwBKw33MHW31cxb4ERV65O+uc="; arch = "linux-x64"; }; x86_64-darwin = { - hash = "sha256-nbftXgjEAxGfT4sfTjd+bp+Ti/rWJGHLkaSXQWlRGBM="; + hash = "sha256-CYDutYtU0+AAn6PYO/EQ/Suv8BNuMtvePpFdKRtiqAs="; arch = "darwin-x64"; }; aarch64-linux = { - hash = "sha256-FG6OIoeeDenMbgwM/ZE8YyTySt/XcoFJj1RxvlrPsXc="; + hash = "sha256-iFHeZiTubXA/t2Gib9hP42d7yjq/WRyywp+l8VhGfmo="; arch = "linux-arm64"; }; aarch64-darwin = { - hash = "sha256-FW+pmz8YTw6pYxx1x3UsT3Dtp00GT804MJX4HBarMZo="; + hash = "sha256-qe7K3PQIgZztIdOVx37LGXrzBmYui2o2CcmDK+5jaFM="; arch = "darwin-arm64"; }; }; @@ -34,7 +34,7 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = base // { name = "tombi"; publisher = "tombi-toml"; - version = "1.1.5"; + version = "1.1.7"; }; meta = { description = "TOML Language Server"; From 8e2bae4b5f341842f9af01befe1abe9429e72cd9 Mon Sep 17 00:00:00 2001 From: nick-linux8 Date: Sun, 5 Jul 2026 01:28:00 -0400 Subject: [PATCH 048/152] inxi: 3.3.40-1 -> 3.3.41-1 --- pkgs/by-name/in/inxi/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/in/inxi/package.nix b/pkgs/by-name/in/inxi/package.nix index 165ef9de3787..5ac6b51c1ede 100644 --- a/pkgs/by-name/in/inxi/package.nix +++ b/pkgs/by-name/in/inxi/package.nix @@ -64,13 +64,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "inxi"; - version = "3.3.40-1"; + version = "3.3.41-1"; src = fetchFromCodeberg { owner = "smxi"; repo = "inxi"; tag = finalAttrs.version; - hash = "sha256-GpXfLLJhM4L9TB8Qw38uaCCwtCmBYg9nrVC001kDckc="; + hash = "sha256-JIBBYLpWKawmAEOVr7YoC6oBQdtlYuQcLFlt/ltswpc="; }; nativeBuildInputs = [ From eb8494ce2e9e27d7af62cff4c4ad8d5b4ab6add5 Mon Sep 17 00:00:00 2001 From: thomasjm Date: Tue, 30 Jun 2026 14:23:37 -0700 Subject: [PATCH 049/152] cpp-interop: init at 1.9.0 --- pkgs/by-name/cp/cpp-interop/package.nix | 192 ++++++++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 pkgs/by-name/cp/cpp-interop/package.nix diff --git a/pkgs/by-name/cp/cpp-interop/package.nix b/pkgs/by-name/cp/cpp-interop/package.nix new file mode 100644 index 000000000000..1360b19794f9 --- /dev/null +++ b/pkgs/by-name/cp/cpp-interop/package.nix @@ -0,0 +1,192 @@ +{ + lib, + fetchFromGitHub, + cmake, + ninja, + python3, + llvmPackages_21, + cling, + gcc-unwrapped, + libffi, + libxml2, + ncurses, + zlib, + zstd, + + # tests + gtest, + + # Which interpreter backend to build against. CppInterOp can use either + # clang-repl (from upstream LLVM/Clang) or Cling. They are mutually exclusive. + backend ? "clang-repl", # "clang-repl" | "cling" +}: + +let + llvmPackages = llvmPackages_21; + inherit (llvmPackages) stdenv; + + useCling = backend == "cling"; + llvm = llvmPackages.llvm; + clang = llvmPackages.clang-unwrapped; + + # For the cling backend we build against the LLVM/Clang/Cling that ship inside + # `cling` itself (its LLVM 20 fork), so the ABI matches libcling. The CMake + # config packages (LLVM, Clang, Cling) all live under cling.unwrapped. + clingRoot = cling.unwrapped; + + # The Clang resource dir and standard-library include flags the JIT interpreter + # needs, since there is no system compiler to probe in the Nix sandbox. Both + # this package's own tests and xeus-cpp (via passthru) feed these to CppInterOp + # through CPPINTEROP_EXTRA_INTERPRETER_ARGS. The resource dir must match the + # Clang that CppInterOp was built against: the cling fork for the cling backend, + # upstream LLVM otherwise. -nostdinc(++) makes the search hermetic: only the + # -isystem paths below are used, never any stray host include dirs. + resourceDir = + if useCling then + "${clingRoot}/lib/clang/20" + else + "${lib.getLib clang}/lib/clang/${lib.versions.major llvm.version}"; + interpreterArgs = [ + "-nostdinc" + "-nostdinc++" + "-resource-dir" + resourceDir + "-isystem" + "${resourceDir}/include" + "-isystem" + "${gcc-unwrapped}/include/c++/${gcc-unwrapped.version}" + "-isystem" + "${gcc-unwrapped}/include/c++/${gcc-unwrapped.version}/${stdenv.hostPlatform.config}" + "-isystem" + "${lib.getDev stdenv.cc.libc}/include" + ]; +in + +assert lib.assertOneOf "backend" backend [ + "clang-repl" + "cling" +]; + +stdenv.mkDerivation (finalAttrs: { + pname = "cpp-interop-${backend}"; + version = "1.9.0"; + + src = fetchFromGitHub { + owner = "compiler-research"; + repo = "CppInterOp"; + tag = "v${finalAttrs.version}"; + hash = "sha256-am2WObER9dlNQU/VMTY2ScMe/w8c4N8m/DVyNwHiBnw="; + }; + + strictDeps = true; + __structuredAttrs = true; + + nativeBuildInputs = [ + cmake + ninja + python3 + ]; + + buildInputs = [ + libffi + libxml2 + ncurses + zlib + zstd + ] + ++ ( + if useCling then + [ clingRoot ] + else + [ + llvm + clang + ] + ); + + # Upstream's unittests/CMakeLists.txt only fetches GoogleTest over the network + # (forbidden in the sandbox) when no gtest target exists; point it at the + # nixpkgs gtest instead so the tests can build offline. + postPatch = '' + substituteInPlace unittests/CMakeLists.txt \ + --replace-fail "include(GoogleTest)" "find_package(GTest REQUIRED)" + ''; + + cmakeFlags = [ + (lib.cmakeBool "BUILD_SHARED_LIBS" true) + (lib.cmakeBool "CPPINTEROP_USE_CLING" useCling) + (lib.cmakeBool "CPPINTEROP_USE_REPL" (!useCling)) + (lib.cmakeBool "CPPINTEROP_ENABLE_TESTING" finalAttrs.finalPackage.doCheck) + ] + ++ ( + if useCling then + [ + "-DCling_DIR=${clingRoot}/lib/cmake/cling" + "-DLLVM_DIR=${clingRoot}/lib/cmake/llvm" + "-DClang_DIR=${clingRoot}/lib/cmake/clang" + ] + else + [ + "-DLLVM_DIR=${llvm.dev}/lib/cmake/llvm" + "-DClang_DIR=${clang.dev}/lib/cmake/clang" + ] + ); + + # Run the upstream GoogleTest suite. Only the clang-repl backend is exercised; + # the Cling backend skips many of these tests upstream. + doCheck = !useCling; + checkInputs = [ gtest ]; + checkPhase = '' + runHook preCheck + + export CPPINTEROP_EXTRA_INTERPRETER_ARGS="${lib.concatStringsSep " " interpreterArgs}" + # Upstream registers the tests only in the unittests subdir; its + # check-cppinterop target builds them and runs ctest from the right place. + ninja check-cppinterop + + runHook postCheck + ''; + + # Smoke test: drive the backend to JIT-compile and run a function, proving + # the installed library, headers and runtime linking all work together. + doInstallCheck = !useCling; + installCheckPhase = '' + runHook preInstallCheck + + cat > smoke.cpp <<'EOF' + #include "CppInterOp/CppInterOp.h" + #include + int main() { + Cpp::CreateInterpreter(); + if (Cpp::Declare("int square(int x) { return x * x; }") != 0) return 1; + bool hadError = false; + intptr_t result = Cpp::Evaluate("square(7)", &hadError); + if (hadError) return 2; + if (result != 49) { std::printf("expected 49, got %ld\n", (long)result); return 3; } + if (Cpp::GetNamed("square") == nullptr) return 4; + return 0; + } + EOF + + $CXX -std=c++17 smoke.cpp -I$out/include -L$out/lib -lclangCppInterOp -o smoke + LD_LIBRARY_PATH=$out/lib ./smoke + + runHook postInstallCheck + ''; + + passthru = { + inherit backend resourceDir interpreterArgs; + }; + + meta = { + description = "Clang-based C++ interoperability library (${backend} backend)"; + homepage = "https://github.com/compiler-research/CppInterOp"; + changelog = "https://github.com/compiler-research/CppInterOp/releases/tag/v${finalAttrs.version}"; + license = with lib.licenses; [ + asl20 + llvm-exception + ]; + maintainers = with lib.maintainers; [ thomasjm ]; + platforms = lib.platforms.unix; + }; +}) From f245dd64917456fc9179b9df1c930453728c5634 Mon Sep 17 00:00:00 2001 From: thomasjm Date: Tue, 30 Jun 2026 14:24:01 -0700 Subject: [PATCH 050/152] xeus-cpp-init xeus-cpp: init at 0.10.0 + jupyter kernel --- .../jupyter-kernels/xeus-cpp/default.nix | 37 ++++ .../jupyter-kernels/xeus-cpp/xeus-cpp.nix | 183 ++++++++++++++++++ 2 files changed, 220 insertions(+) create mode 100644 pkgs/applications/editors/jupyter-kernels/xeus-cpp/default.nix create mode 100644 pkgs/applications/editors/jupyter-kernels/xeus-cpp/xeus-cpp.nix diff --git a/pkgs/applications/editors/jupyter-kernels/xeus-cpp/default.nix b/pkgs/applications/editors/jupyter-kernels/xeus-cpp/default.nix new file mode 100644 index 000000000000..c595cf1eee6a --- /dev/null +++ b/pkgs/applications/editors/jupyter-kernels/xeus-cpp/default.nix @@ -0,0 +1,37 @@ +{ + callPackage, +}: + +# Jupyter console: +# nix run --impure --expr 'with import {}; jupyter-console.withSingleKernel cpp17-kernel' + +# Jupyter notebook: +# nix shell --impure --expr 'with import {}; [ (jupyter.override { definitions = { cpp17 = cpp17-kernel; }; }) ]' -c jupyter-notebook + +let + xeus-cpp = callPackage ./xeus-cpp.nix { }; + + mkKernelSpec = std: { + displayName = builtins.replaceStrings [ "c++" ] [ "C++ " ] std; + argv = [ + "${xeus-cpp}/bin/xcpp" + "-std=${std}" + "-f" + "{connection_file}" + ]; + language = "cpp"; + logo32 = "${xeus-cpp}/share/jupyter/kernels/xcpp17/logo-32x32.png"; + logo64 = "${xeus-cpp}/share/jupyter/kernels/xcpp17/logo-64x64.png"; + }; + +in + +{ + cpp11-kernel = mkKernelSpec "c++11"; + cpp14-kernel = mkKernelSpec "c++14"; + cpp17-kernel = mkKernelSpec "c++17"; + cpp20-kernel = mkKernelSpec "c++20"; + cpp23-kernel = mkKernelSpec "c++23"; + + inherit xeus-cpp; +} diff --git a/pkgs/applications/editors/jupyter-kernels/xeus-cpp/xeus-cpp.nix b/pkgs/applications/editors/jupyter-kernels/xeus-cpp/xeus-cpp.nix new file mode 100644 index 000000000000..c0e415a4dcfd --- /dev/null +++ b/pkgs/applications/editors/jupyter-kernels/xeus-cpp/xeus-cpp.nix @@ -0,0 +1,183 @@ +{ + lib, + clangStdenv, + fetchFromGitHub, + cmake, + pkg-config, + + cpp-interop, + cling, + + # Jupyter / xeus stack + xeus, + xeus-zmq, + nlohmann_json, + argparse, + pugixml, + + # Runtime libs + zeromq, + openssl, + libuuid, + curl, + makeWrapper, + + # tests + doctest, + + # installCheck + python3, + jq, + + # "clang-repl" | "cling" + backend ? "clang-repl", +}: + +let + stdenv = clangStdenv; + + useCling = backend == "cling"; + cppInterop = cpp-interop.override { inherit backend; }; + + # xeus-cpp 0.10.0 needs newer xeus / xeus-zmq than nixpkgs ships by default. + xeus_6 = xeus.overrideAttrs (old: { + version = "6.0.5"; + src = fetchFromGitHub { + owner = "jupyter-xeus"; + repo = "xeus"; + tag = "6.0.5"; + hash = "sha256-nbjq4dzrukVsZI6X3lWpr9oCZV5IUu/vkqSNKD7o3vo="; + }; + doCheck = false; + }); + + xeus_zmq_4 = (xeus-zmq.override { xeus = xeus_6; }).overrideAttrs (old: { + version = "4.0.0"; + src = fetchFromGitHub { + owner = "jupyter-xeus"; + repo = "xeus-zmq"; + tag = "4.0.0"; + hash = "sha256-Ux8klPh33XWFu9eu+GTk5ZcqIcoP/GM4/J1uaz9xRHI="; + }; + }); + + # The interpreter behind CppInterOp must be told where the C/C++ standard + # library and Clang builtin headers live: there is no system compiler to detect + # at runtime in the Nix sandbox. We pass this set via CppInterOp's runtime + # override env var. For the Cling backend cling.flags already carries it; for + # clang-repl we reuse the hermetic resource dir and include flags CppInterOp + # exposes. + resourceDir = if useCling then "${cling.unwrapped}/lib/clang/20" else cppInterop.resourceDir; + interpreterArgs = lib.concatStringsSep " " ( + if useCling then cling.flags else cppInterop.interpreterArgs + ); +in + +stdenv.mkDerivation (finalAttrs: { + pname = "xeus-cpp"; + version = "0.10.0"; + + src = fetchFromGitHub { + owner = "compiler-research"; + repo = "xeus-cpp"; + tag = finalAttrs.version; + hash = "sha256-r6ojIcebWzpP85Djl36EMucnfQQgjGJUakSbMYW+czs="; + }; + + strictDeps = true; + __structuredAttrs = true; + + nativeBuildInputs = [ + cmake + pkg-config + makeWrapper + ]; + + buildInputs = [ + cppInterop + xeus_6 + xeus_zmq_4 + nlohmann_json + argparse + pugixml + zeromq + openssl + libuuid + curl + ]; + + cmakeFlags = [ + (lib.cmakeBool "XEUS_CPP_BUILD_TESTS" finalAttrs.finalPackage.doCheck) + "-DXEUS_CPP_RESOURCE_DIR=${resourceDir}" + ]; + + # Make the kernel hermetic: hand the interpreter the include/resource flags it + # needs, since it cannot probe a system compiler in the sandbox. + postInstall = '' + wrapProgram $out/bin/xcpp \ + --set-default CPPINTEROP_EXTRA_INTERPRETER_ARGS "${interpreterArgs}" + + # xeus-cpp builds the kernelspec argv from CMAKE_INSTALL_PREFIX *and* the + # (absolute, under Nix) CMAKE_INSTALL_BINDIR, producing a doubled store path + # for xcpp. Point each kernel.json back at the wrapped binary. + for k in $out/share/jupyter/kernels/*/kernel.json; do + substituteInPlace "$k" --replace-fail "$out/$out/bin/xcpp" "$out/bin/xcpp" + done + ''; + + # Run the upstream doctest suite. Like the wrapped kernel, the test binary + # drives CppInterOp directly, so it needs the same hermetic interpreter args. + doCheck = true; + checkInputs = [ doctest ]; + checkPhase = '' + runHook preCheck + + export CPPINTEROP_EXTRA_INTERPRETER_ARGS="${interpreterArgs}" + # The test binary is linked with the install RPATH ($out/lib), which does not + # exist yet at check time; point it at the freshly built libxeus-cpp instead. + export LD_LIBRARY_PATH="$PWD''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" + cmake --build . --target check-xeus-cpp + + runHook postCheck + ''; + + # Smoke test: drive the installed, wrapped kernel through Papermill and check + # it actually compiles and runs C++. + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + + export HOME=$(mktemp -d) + mkdir -p "$HOME/kernels/xcpp" + cat > "$HOME/kernels/xcpp/kernel.json" < "$HOME/test.ipynb" <<'NBEOF' + {"cells":[ + {"cell_type":"code","id":"a","metadata":{},"execution_count":null,"outputs":[],"source":["#include "]}, + {"cell_type":"code","id":"b","metadata":{},"execution_count":null,"outputs":[],"source":["std::cout << \"Hello world.\" << std::endl;"]} + ],"metadata":{"kernelspec":{"name":"xcpp","display_name":"C++","language":"cpp"}},"nbformat":4,"nbformat_minor":5} + NBEOF + + ${python3.pkgs.papermill}/bin/papermill "$HOME/test.ipynb" "$HOME/out.ipynb" --kernel xcpp + ${jq}/bin/jq -e '[.. | .text? // empty | tostring] | add | contains("Hello world.")' "$HOME/out.ipynb" + + runHook postInstallCheck + ''; + + passthru = { + inherit backend; + flags = interpreterArgs; + }; + + meta = { + description = "Jupyter kernel for C++ based on CppInterOp (${backend} backend)"; + mainProgram = "xcpp"; + homepage = "https://github.com/compiler-research/xeus-cpp"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ thomasjm ]; + platforms = lib.platforms.unix; + }; +}) From 1e45dae2aae915e2c6fc7e45894f519f0c6888c9 Mon Sep 17 00:00:00 2001 From: thomasjm Date: Tue, 30 Jun 2026 14:24:25 -0700 Subject: [PATCH 051/152] xeus-cling: remove as unmaintained + replace with xeus-cpp --- .../0001-Fix-bug-in-extract_filename.patch | 50 -------- ...a-includes-configure-this-with-flags.patch | 34 ------ ...003-Remove-unsupported-src-root-flag.patch | 85 ------------- .../jupyter-kernels/xeus-cling/default.nix | 94 --------------- .../jupyter-kernels/xeus-cling/test.ipynb | 24 ---- .../jupyter-kernels/xeus-cling/xeus-cling.nix | 112 ------------------ pkgs/top-level/aliases.nix | 2 + pkgs/top-level/all-packages.nix | 7 +- 8 files changed, 6 insertions(+), 402 deletions(-) delete mode 100644 pkgs/applications/editors/jupyter-kernels/xeus-cling/0001-Fix-bug-in-extract_filename.patch delete mode 100644 pkgs/applications/editors/jupyter-kernels/xeus-cling/0002-Don-t-pass-extra-includes-configure-this-with-flags.patch delete mode 100644 pkgs/applications/editors/jupyter-kernels/xeus-cling/0003-Remove-unsupported-src-root-flag.patch delete mode 100644 pkgs/applications/editors/jupyter-kernels/xeus-cling/default.nix delete mode 100644 pkgs/applications/editors/jupyter-kernels/xeus-cling/test.ipynb delete mode 100644 pkgs/applications/editors/jupyter-kernels/xeus-cling/xeus-cling.nix diff --git a/pkgs/applications/editors/jupyter-kernels/xeus-cling/0001-Fix-bug-in-extract_filename.patch b/pkgs/applications/editors/jupyter-kernels/xeus-cling/0001-Fix-bug-in-extract_filename.patch deleted file mode 100644 index dac0825b01a1..000000000000 --- a/pkgs/applications/editors/jupyter-kernels/xeus-cling/0001-Fix-bug-in-extract_filename.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 8bfa594bc37630956f80496106bb1d6070035570 Mon Sep 17 00:00:00 2001 -From: thomasjm -Date: Wed, 2 Aug 2023 18:26:58 -0700 -Subject: [PATCH 1/3] Fix bug in extract_filename - ---- - src/main.cpp | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/src/main.cpp b/src/main.cpp -index 2ee19be..57294b4 100644 ---- a/src/main.cpp -+++ b/src/main.cpp -@@ -61,19 +61,19 @@ bool should_print_version(int argc, char* argv[]) - return false; - } - --std::string extract_filename(int argc, char* argv[]) -+std::string extract_filename(int *argc, char* argv[]) - { - std::string res = ""; -- for (int i = 0; i < argc; ++i) -+ for (int i = 0; i < *argc; ++i) - { -- if ((std::string(argv[i]) == "-f") && (i + 1 < argc)) -+ if ((std::string(argv[i]) == "-f") && (i + 1 < *argc)) - { - res = argv[i + 1]; -- for (int j = i; j < argc - 2; ++j) -+ for (int j = i; j < *argc - 2; ++j) - { - argv[j] = argv[j + 2]; - } -- argc -= 2; -+ *argc -= 2; - break; - } - } -@@ -128,7 +128,7 @@ int main(int argc, char* argv[]) - #endif - signal(SIGINT, stop_handler); - -- std::string file_name = extract_filename(argc, argv); -+ std::string file_name = extract_filename(&argc, argv); - - interpreter_ptr interpreter = build_interpreter(argc, argv); - --- -2.40.1 - diff --git a/pkgs/applications/editors/jupyter-kernels/xeus-cling/0002-Don-t-pass-extra-includes-configure-this-with-flags.patch b/pkgs/applications/editors/jupyter-kernels/xeus-cling/0002-Don-t-pass-extra-includes-configure-this-with-flags.patch deleted file mode 100644 index c07e57dfe85d..000000000000 --- a/pkgs/applications/editors/jupyter-kernels/xeus-cling/0002-Don-t-pass-extra-includes-configure-this-with-flags.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 9e6a14bb20567071883563dafb5dfaf512df6243 Mon Sep 17 00:00:00 2001 -From: thomasjm -Date: Wed, 2 Aug 2023 18:27:16 -0700 -Subject: [PATCH 2/3] Don't pass extra includes; configure this with flags - ---- - src/main.cpp | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/src/main.cpp b/src/main.cpp -index 57294b4..0041a55 100644 ---- a/src/main.cpp -+++ b/src/main.cpp -@@ -84,7 +84,7 @@ using interpreter_ptr = std::unique_ptr; - - interpreter_ptr build_interpreter(int argc, char** argv) - { -- int interpreter_argc = argc + 1; -+ int interpreter_argc = argc; - const char** interpreter_argv = new const char*[interpreter_argc]; - interpreter_argv[0] = "xeus-cling"; - // Copy all arguments in the new array excepting the process name. -@@ -92,8 +92,6 @@ interpreter_ptr build_interpreter(int argc, char** argv) - { - interpreter_argv[i] = argv[i]; - } -- std::string include_dir = std::string(LLVM_DIR) + std::string("/include"); -- interpreter_argv[interpreter_argc - 1] = include_dir.c_str(); - - interpreter_ptr interp_ptr = interpreter_ptr(new xcpp::interpreter(interpreter_argc, interpreter_argv)); - delete[] interpreter_argv; --- -2.40.1 - diff --git a/pkgs/applications/editors/jupyter-kernels/xeus-cling/0003-Remove-unsupported-src-root-flag.patch b/pkgs/applications/editors/jupyter-kernels/xeus-cling/0003-Remove-unsupported-src-root-flag.patch deleted file mode 100644 index 8a44919e47d5..000000000000 --- a/pkgs/applications/editors/jupyter-kernels/xeus-cling/0003-Remove-unsupported-src-root-flag.patch +++ /dev/null @@ -1,85 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 43718f5..d0d8670 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -63,8 +63,7 @@ if(LLVM_CONFIG) - "--bindir" - "--libdir" - "--includedir" -- "--prefix" -- "--src-root") -+ "--prefix") - execute_process(COMMAND ${CONFIG_COMMAND} - RESULT_VARIABLE HAD_ERROR - OUTPUT_VARIABLE CONFIG_OUTPUT) -diff --git a/src/xmagics/executable.cpp b/src/xmagics/executable.cpp -index 391c8c9..aba5e03 100644 ---- a/src/xmagics/executable.cpp -+++ b/src/xmagics/executable.cpp -@@ -12,6 +12,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -25,7 +26,7 @@ - #include "clang/AST/ASTContext.h" - #include "clang/AST/DeclGroup.h" - #include "clang/AST/RecursiveASTVisitor.h" --#include "clang/Basic/DebugInfoOptions.h" -+#include "llvm/Frontend/Debug/Options.h" - #include "clang/Basic/Sanitizers.h" - #include "clang/Basic/TargetInfo.h" - #include "clang/CodeGen/BackendUtil.h" -@@ -115,7 +116,7 @@ namespace xcpp - // Filter out functions added by Cling. - if (auto Identifier = D->getIdentifier()) - { -- if (Identifier->getName().startswith("__cling")) -+ if (Identifier->getName().starts_with("__cling")) - { - return true; - } -@@ -153,12 +154,13 @@ namespace xcpp - if (EnableDebugInfo) - { - CodeGenOpts.setDebugInfo( -- clang::codegenoptions::DebugInfoKind::FullDebugInfo); -+ llvm::codegenoptions::DebugInfoKind::FullDebugInfo); - } - - std::unique_ptr CG(clang::CreateLLVMCodeGen( -- CI->getDiagnostics(), "object", HeaderSearchOpts, -- CI->getPreprocessorOpts(), CodeGenOpts, *Context)); -+ CI->getDiagnostics(), "object", -+ llvm::IntrusiveRefCntPtr(&CI->getVirtualFileSystem()), -+ HeaderSearchOpts, CI->getPreprocessorOpts(), CodeGenOpts, *Context)); - CG->Initialize(AST); - - FindTopLevelDecls Visitor(CG.get()); -@@ -186,7 +188,9 @@ namespace xcpp - EmitBackendOutput(CI->getDiagnostics(), HeaderSearchOpts, - CodeGenOpts, CI->getTargetOpts(), - CI->getLangOpts(), DataLayout, CG->GetModule(), -- clang::Backend_EmitObj, std::move(OS)); -+ clang::Backend_EmitObj, -+ llvm::IntrusiveRefCntPtr(&CI->getVirtualFileSystem()), -+ std::move(OS)); - return true; - } - -@@ -222,10 +226,10 @@ namespace xcpp - - llvm::StringRef OutputFileStr(OutputFile); - llvm::StringRef ErrorFileStr(ErrorFile); -- llvm::SmallVector, 16> Redirects = {llvm::NoneType::None, OutputFileStr, ErrorFileStr}; -+ llvm::SmallVector, 16> Redirects = {std::nullopt, OutputFileStr, ErrorFileStr}; - - // Finally run the linker. -- int ret = llvm::sys::ExecuteAndWait(Compiler, Args, llvm::NoneType::None, -+ int ret = llvm::sys::ExecuteAndWait(Compiler, Args, std::nullopt, - Redirects); - - // Read back output and error streams. diff --git a/pkgs/applications/editors/jupyter-kernels/xeus-cling/default.nix b/pkgs/applications/editors/jupyter-kernels/xeus-cling/default.nix deleted file mode 100644 index 9588900f6dc5..000000000000 --- a/pkgs/applications/editors/jupyter-kernels/xeus-cling/default.nix +++ /dev/null @@ -1,94 +0,0 @@ -{ - lib, - callPackage, - cling, - fetchurl, - jq, - makeWrapper, - python3, - stdenv, -}: - -# Jupyter console: -# nix run --impure --expr 'with import {}; jupyter-console.withSingleKernel cpp17-kernel' - -# Jupyter notebook: -# nix run --impure --expr 'with import {}; jupyter.override { definitions = { cpp17 = cpp17-kernel; }; }' - -let - xeus-cling-unwrapped = callPackage ./xeus-cling.nix { }; - - xeus-cling = xeus-cling-unwrapped.overrideAttrs (oldAttrs: { - nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ makeWrapper ]; - - # xcpp needs a collection of flags to start up properly, so wrap it by default. - # We'll provide the unwrapped version as a passthru - flags = cling.flags ++ [ - "-resource-dir" - "${cling.unwrapped}" - "-L" - "${cling.unwrapped}/lib" - "-l" - "${cling.unwrapped}/lib/cling.so" - ]; - - fixupPhase = '' - runHook preFixup - - wrapProgram $out/bin/xcpp --add-flags "$flags" - - runHook postFixup - ''; - - doInstallCheck = true; - installCheckPhase = '' - runHook preInstallCheck - - # Smoke check: run a test notebook using Papermill by creating a simple kernelspec - mkdir -p kernels/cpp17 - export JUPYTER_PATH="$(pwd)" - cat << EOF > kernels/cpp17/kernel.json - { - "argv": ["$out/bin/xcpp", "-std=c++17", "-f", "{connection_file}"], - "language": "cpp17" - } - EOF - - ${python3.pkgs.papermill}/bin/papermill ${./test.ipynb} out.ipynb - result="$(cat out.ipynb | ${jq}/bin/jq -r '.cells[0].outputs[0].text[0]')" - if [[ "$result" != "Hello world." ]]; then - echo "Kernel test gave '$result'. Expected: 'Hello world.'" - exit 1 - fi - - runHook postInstallCheck - ''; - - passthru = (oldAttrs.passthru or { }) // { - unwrapped = xeus-cling-unwrapped; - }; - }); - - mkKernelSpec = std: { - displayName = builtins.replaceStrings [ "c++" ] [ "C++ " ] std; - argv = [ - "${xeus-cling}/bin/xcpp" - "-std=${std}" - "-f" - "{connection_file}" - ]; - language = "cpp"; - logo32 = "${xeus-cling-unwrapped}/share/jupyter/kernels/xcpp17/logo-32x32.png"; - logo64 = "${xeus-cling-unwrapped}/share/jupyter/kernels/xcpp17/logo-64x64.png"; - }; - -in - -{ - cpp11-kernel = mkKernelSpec "c++11"; - cpp14-kernel = mkKernelSpec "c++14"; - cpp17-kernel = mkKernelSpec "c++17"; - cpp2a-kernel = mkKernelSpec "c++2a"; - - inherit xeus-cling; -} diff --git a/pkgs/applications/editors/jupyter-kernels/xeus-cling/test.ipynb b/pkgs/applications/editors/jupyter-kernels/xeus-cling/test.ipynb deleted file mode 100644 index 27e5932b8c8f..000000000000 --- a/pkgs/applications/editors/jupyter-kernels/xeus-cling/test.ipynb +++ /dev/null @@ -1,24 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "574ed398-7bfe-4a34-a7dd-9fa85535aed2", - "metadata": {}, - "outputs": [], - "source": [ - "#include \n", - "std::cout << \"Hello world.\";" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "C++ 17", - "language": "cpp", - "name": "cpp17" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/pkgs/applications/editors/jupyter-kernels/xeus-cling/xeus-cling.nix b/pkgs/applications/editors/jupyter-kernels/xeus-cling/xeus-cling.nix deleted file mode 100644 index 50ee8bbd685c..000000000000 --- a/pkgs/applications/editors/jupyter-kernels/xeus-cling/xeus-cling.nix +++ /dev/null @@ -1,112 +0,0 @@ -{ - lib, - clangStdenv, - cmake, - fetchFromGitHub, - llvmPackages_18, - # Libraries - argparse, - cling, - cppzmq, - libuuid, - ncurses, - openssl, - pugixml, - xeus, - xeus-zmq, - xtl, - zeromq, - zlib, - # Settings - debug ? false, -}: - -let - # Nixpkgs moved to argparse 3.x, but we need ~2.9 - argparse_2_9 = argparse.overrideAttrs (oldAttrs: { - version = "2.9"; - - src = fetchFromGitHub { - owner = "p-ranav"; - repo = "argparse"; - rev = "v2.9"; - sha256 = "sha256-vbf4kePi5gfg9ub4aP1cCK1jtiA65bUS9+5Ghgvxt/E="; - }; - }); - - # Nixpkgs moved to xeus 5.2.0, but we need 3.2.0 - # https://github.com/jupyter-xeus/xeus-cling/issues/523 - xeus_3_2_0 = xeus.overrideAttrs (oldAttrs: { - version = "3.2.0"; - - src = fetchFromGitHub { - owner = "jupyter-xeus"; - repo = "xeus"; - tag = "3.2.0"; - sha256 = "sha256-D/dJ0SHxTHJw63gHD6FRZS7O2TVZ0voIv2mQASEjLA8="; - }; - - buildInputs = oldAttrs.buildInputs ++ lib.singleton xtl; - }); - -in - -clangStdenv.mkDerivation (finalAttrs: { - pname = "xeus-cling"; - version = "0.15.3"; - - src = fetchFromGitHub { - owner = "QuantStack"; - repo = "xeus-cling"; - rev = "${finalAttrs.version}"; - hash = "sha256-OfZU+z+p3/a36GntusBfwfFu3ssJW4Fu7SV3SMCoo1I="; - }; - - patches = [ - ./0001-Fix-bug-in-extract_filename.patch - ./0002-Don-t-pass-extra-includes-configure-this-with-flags.patch - ./0003-Remove-unsupported-src-root-flag.patch - ]; - - nativeBuildInputs = [ cmake ]; - buildInputs = [ - argparse_2_9 - cling.unwrapped - cppzmq - libuuid - llvmPackages_18.llvm - ncurses - openssl - pugixml - xeus_3_2_0 - xeus-zmq - xtl - zeromq - zlib - ]; - - cmakeBuildType = if debug then "Debug" else "Release"; - - postPatch = '' - substituteInPlace src/xmagics/executable.cpp \ - --replace-fail "getDataLayout" "getDataLayoutString" - substituteInPlace src/xmagics/execution.cpp \ - --replace-fail "simplisticCastAs" "castAs" - substituteInPlace src/xmime_internal.hpp \ - --replace-fail "code.str()" "code.str().str()" - - substituteInPlace CMakeLists.txt \ - --replace-fail "cmake_minimum_required(VERSION 3.4.3)" "cmake_minimum_required(VERSION 3.10)" - ''; - - dontStrip = debug; - - meta = { - description = "Jupyter kernel for the C++ programming language"; - mainProgram = "xcpp"; - homepage = "https://github.com/jupyter-xeus/xeus-cling"; - maintainers = with lib.maintainers; [ thomasjm ]; - platforms = lib.platforms.unix; - license = lib.licenses.mit; - }; -}) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index cdab56d218b2..3b8850b987e1 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -578,6 +578,7 @@ mapAliases { coreth = throw "'coreth' has been moved to 'avalanchego' by upstream"; # Added 2026-01-15 cosmic-tasks = throw "'cosmic-tasks' has been renamed to/replaced by 'tasks'"; # Converted to throw 2025-10-27 cotton = throw "'cotton' has been removed since it is vulnerable to CVE-2025-62518 and upstream is unmaintained"; # Added 2025-10-26 + cpp2a-kernel = cpp20-kernel; # Added 2026-06-30, xeus-cling removed in favour of xeus-cpp cpp-ipfs-api = throw "'cpp-ipfs-api' has been renamed to/replaced by 'cpp-ipfs-http-client'"; # Converted to throw 2025-10-27 cpr = warnAlias "'cpr' has been renamed to/replaced by 'libcpr'" libcpr; # Added 2025-11-17 cqrlog = throw "'cqrlog' was removed due to lack of maintenance and relying on gtk2"; # Added 2025-12-02 @@ -2409,6 +2410,7 @@ mapAliases { use the reference implementation 'xdg-terminal-exec' instead. " xdg-terminal-exec; # Added 2026-01-14 xdragon = throw "'xdragon' has been renamed to/replaced by 'dragon-drop'"; # Converted to throw 2025-10-27 + xeus-cling = throw "'xeus-cling' has been removed: it is unmaintained upstream. Use 'xeus-cpp' (a clang-repl/CppInterOp-based successor) instead"; # Added 2026-06-30 xf86-input-cmt = throw "'xf86-input-cmt' has been removed as it was broken and unmaintained upstream"; # Added 2026-05-09 xf86_input_cmt = xf86-input-cmt; # Added 2025-12-12 xf86_input_wacom = xf86-input-wacom; # Added 2025-12-12 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d75b8c4ead12..71c3656ce958 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4409,12 +4409,13 @@ with pkgs; jre = jre8; }; - inherit (callPackage ../applications/editors/jupyter-kernels/xeus-cling { }) + inherit (callPackage ../applications/editors/jupyter-kernels/xeus-cpp { }) cpp11-kernel cpp14-kernel cpp17-kernel - cpp2a-kernel - xeus-cling + cpp20-kernel + cpp23-kernel + xeus-cpp ; dhall = haskell.lib.compose.justStaticExecutables haskellPackages.dhall; From 2ebba0e5b4f74d1f3d7a0b4638b8a276069bf96c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 5 Jul 2026 14:15:10 +0000 Subject: [PATCH 052/152] python3Packages.pytest-ansible: 26.4.0 -> 26.6.0 --- pkgs/development/python-modules/pytest-ansible/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pytest-ansible/default.nix b/pkgs/development/python-modules/pytest-ansible/default.nix index 8f8d42939631..85a7b2e9c19d 100644 --- a/pkgs/development/python-modules/pytest-ansible/default.nix +++ b/pkgs/development/python-modules/pytest-ansible/default.nix @@ -25,14 +25,14 @@ buildPythonPackage (finalAttrs: { pname = "pytest-ansible"; - version = "26.4.0"; + version = "26.6.0"; pyproject = true; src = fetchFromGitHub { owner = "ansible"; repo = "pytest-ansible"; tag = "v${finalAttrs.version}"; - hash = "sha256-HC5kipVIHga1nBWK6QQ2wGv9wPz0cVmRyby46JT6+Hg="; + hash = "sha256-+eo2W3Kz2StAMHUm0UalWseRlOCHsZCrmDwyV6570iE="; }; postPatch = '' From f2d8383f2af0323edb4d55267159606534345d0e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 5 Jul 2026 16:58:13 +0000 Subject: [PATCH 053/152] astc-encoder: 5.4.0 -> 5.6.0 --- pkgs/by-name/as/astc-encoder/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/as/astc-encoder/package.nix b/pkgs/by-name/as/astc-encoder/package.nix index cd0ad68a83b2..290c4fe82122 100644 --- a/pkgs/by-name/as/astc-encoder/package.nix +++ b/pkgs/by-name/as/astc-encoder/package.nix @@ -47,13 +47,13 @@ in stdenv.mkDerivation (finalAttrs: { pname = "astc-encoder"; - version = "5.4.0"; + version = "5.6.0"; src = fetchFromGitHub { owner = "ARM-software"; repo = "astc-encoder"; tag = finalAttrs.version; - hash = "sha256-mpaLSf1K+SsxkQm/b+QIWU34TzHQ7CAkyDNczBrcmBo="; + hash = "sha256-2/3m5G7rMoc/qZ9wPN3kn7O/CdQbWnKyU5OvAIxx97A="; }; nativeBuildInputs = [ cmake ]; From 1b766cb64e524468827b9e05bdd51993768731e2 Mon Sep 17 00:00:00 2001 From: alliumm <33610620+alliumm@users.noreply.github.com> Date: Sun, 5 Jul 2026 09:49:50 -0700 Subject: [PATCH 054/152] lms: 3.74.0 -> 3.78.0 --- pkgs/by-name/lm/lms/package.nix | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/lm/lms/package.nix b/pkgs/by-name/lm/lms/package.nix index 6320250049e2..f60f89662340 100644 --- a/pkgs/by-name/lm/lms/package.nix +++ b/pkgs/by-name/lm/lms/package.nix @@ -19,17 +19,18 @@ openssl, xxHash, pugixml, + onnxruntime, }: stdenv.mkDerivation (finalAttrs: { pname = "lms"; - version = "3.74.0"; + version = "3.78.0"; src = fetchFromGitHub { owner = "epoupon"; repo = "lms"; rev = "v${finalAttrs.version}"; - hash = "sha256-D1Sg6XzZ8t/dFKrVh7k+KGLg2r6LeLGJk4FweVb4L1A="; + hash = "sha256-uOijIipay4ncE8hP6vJG9vOGiD/Ad6WJHEQ7P1HKi/Y="; }; strictDeps = true; @@ -53,6 +54,7 @@ stdenv.mkDerivation (finalAttrs: { openssl xxHash pugixml + onnxruntime ]; postPatch = '' @@ -62,8 +64,7 @@ stdenv.mkDerivation (finalAttrs: { postInstall = '' substituteInPlace $out/share/lms/lms.conf --replace-fail "/usr/bin/ffmpeg" "${lib.getExe ffmpeg}" substituteInPlace $out/share/lms/lms.conf --replace-fail "/usr/share/Wt/resources" "${wt}/share/Wt/resources" - substituteInPlace $out/share/lms/lms.conf --replace-fail "/usr/share/lms/docroot" "$out/share/lms/docroot" - substituteInPlace $out/share/lms/lms.conf --replace-fail "/usr/share/lms/approot" "$out/share/lms/approot" + substituteInPlace $out/share/lms/lms.conf --replace-fail "/usr/share/lms" "$out/share/lms" substituteInPlace $out/share/lms/default.service --replace-fail "/usr/bin/lms" "$out/bin/lms" install -Dm444 $out/share/lms/default.service -T $out/lib/systemd/system/lmsd.service ''; From 38588c8b775591f959ec5818bd17382a5bd9ba72 Mon Sep 17 00:00:00 2001 From: alliumm <33610620+alliumm@users.noreply.github.com> Date: Sun, 5 Jul 2026 11:39:07 -0700 Subject: [PATCH 055/152] wt: add required libraries to RPATH --- pkgs/development/libraries/wt/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/development/libraries/wt/default.nix b/pkgs/development/libraries/wt/default.nix index 165a36622948..d6548286456b 100644 --- a/pkgs/development/libraries/wt/default.nix +++ b/pkgs/development/libraries/wt/default.nix @@ -18,6 +18,8 @@ openssl, harfbuzz, icu, + libice, + libsm, }: let @@ -57,6 +59,12 @@ let dontWrapQtApps = true; cmakeFlags = [ + "-DCMAKE_INSTALL_RPATH=${ + lib.makeLibraryPath [ + libice + libsm + ] + }" "-DWT_CPP_11_MODE=-std=c++11" "--no-warn-unused-cli" ] From 88dfd8f2f22d87c54d38cca16cc52b3d54e49fd8 Mon Sep 17 00:00:00 2001 From: Jhony Angulo Date: Sun, 5 Jul 2026 14:01:51 -0500 Subject: [PATCH 056/152] aws-cdk-cli: 2.1128.1 -> 2.1129.0 --- pkgs/by-name/aw/aws-cdk-cli/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/aw/aws-cdk-cli/package.nix b/pkgs/by-name/aw/aws-cdk-cli/package.nix index 72977f74fe57..8cc53b5a19ad 100644 --- a/pkgs/by-name/aw/aws-cdk-cli/package.nix +++ b/pkgs/by-name/aw/aws-cdk-cli/package.nix @@ -18,19 +18,19 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "aws-cdk-cli"; - version = "2.1128.1"; + version = "2.1129.0"; src = fetchFromGitHub { owner = "aws"; repo = "aws-cdk-cli"; tag = "cdk@v${finalAttrs.version}"; - hash = "sha256-F5dlS2xIwVxpgc6v+bP+vI0lP+nttvKamzWz4UEphzc="; + hash = "sha256-KXbNrzylyY+RSp4Da9rMSEn7UdPTHU9iDID/qXGL+io="; }; missingHashes = ./missing-hashes.json; offlineCache = yarn-berry.fetchYarnBerryDeps { inherit (finalAttrs) src missingHashes; - hash = "sha256-ykFox4QTo0f0urzh1e/65Jh0H3x0wOngmEzWFekCma8="; + hash = "sha256-jh/EW+scTCJ698jKr1eRYeckRhgE+SmOjfUUgJ7GbFU="; }; nativeBuildInputs = [ From deee9ba633d125de594100ef4add606615db4a12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Sun, 5 Jul 2026 23:40:54 +0200 Subject: [PATCH 057/152] openvino: remove shellcheck linter It is not required and just triggers more builds through onnxruntime for thunerbird and firefox. --- pkgs/by-name/op/openvino/package.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/by-name/op/openvino/package.nix b/pkgs/by-name/op/openvino/package.nix index 5c33a7b8c7dc..73557961b21b 100644 --- a/pkgs/by-name/op/openvino/package.nix +++ b/pkgs/by-name/op/openvino/package.nix @@ -14,7 +14,6 @@ patchelf, pkg-config, python3Packages, - shellcheck, # runtime flatbuffers, @@ -85,7 +84,6 @@ stdenv.mkDerivation (finalAttrs: { pkg-config python scons' - shellcheck ] ++ lib.optionals cudaSupport [ cudaPackages.cuda_nvcc From 12365f443b2d21a4b4bb7aea4e0f3d5002aa7bc9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 6 Jul 2026 08:27:00 +0000 Subject: [PATCH 058/152] cubeb: 0-unstable-2026-06-15 -> 0-unstable-2026-07-03 --- pkgs/by-name/cu/cubeb/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/cu/cubeb/package.nix b/pkgs/by-name/cu/cubeb/package.nix index 69b1b6dffe26..3daff1cf398c 100644 --- a/pkgs/by-name/cu/cubeb/package.nix +++ b/pkgs/by-name/cu/cubeb/package.nix @@ -24,13 +24,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "cubeb"; - version = "0-unstable-2026-06-15"; + version = "0-unstable-2026-07-03"; src = fetchFromGitHub { owner = "mozilla"; repo = "cubeb"; - rev = "cdb54bbf405e5d75d42d21947cc717b35b0ccbf4"; - hash = "sha256-PIzIEFTp+F5fC8aGgwjARhvlxktn60BlgGcRb56ZjIk="; + rev = "a665efba31740bd477cf2001a5cb289a63e85336"; + hash = "sha256-X3lgGFJpTHd9c7t3bP+iohHyQ18+YJFghjLnJyPk6wU="; }; outputs = [ From ac33ddde943cb80af678fcf6232a37356bbf338c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Zimmermann?= Date: Mon, 6 Jul 2026 13:16:26 +0200 Subject: [PATCH 059/152] doc: re-order Rocq section alphabetically --- doc/languages-frameworks/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/languages-frameworks/index.md b/doc/languages-frameworks/index.md index 6e2438ebcb6a..8792537a3e33 100644 --- a/doc/languages-frameworks/index.md +++ b/doc/languages-frameworks/index.md @@ -56,7 +56,6 @@ android.section.md astal.section.md beam.section.md chicken.section.md -rocq.section.md cosmic.section.md crystal.section.md cuda.section.md @@ -92,6 +91,7 @@ pkg-config.section.md python.section.md qt.section.md r.section.md +rocq.section.md ruby.section.md rust.section.md scheme.section.md From 815aa3292692c8bf65f6ff5d7ca94636bbeb8dfb Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 6 Jul 2026 17:00:34 +0000 Subject: [PATCH 060/152] azahar: 2125.1.2 -> 2125.1.3 --- pkgs/by-name/az/azahar/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/az/azahar/package.nix b/pkgs/by-name/az/azahar/package.nix index a1ea6783dc58..196212ee1ae8 100644 --- a/pkgs/by-name/az/azahar/package.nix +++ b/pkgs/by-name/az/azahar/package.nix @@ -61,7 +61,7 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "azahar"; - version = "2125.1.2"; + version = "2125.1.3"; src = fetchFromGitHub { owner = "azahar-emu"; @@ -74,7 +74,7 @@ stdenv.mkDerivation (finalAttrs: { echo "${finalAttrs.version}" > "$out/GIT-TAG" git -C "$out" rev-parse HEAD > "$out/GIT-COMMIT" ''; - hash = "sha256-B3mReLoVqFCqUeunst95AX0veGlZJNyeBBdDIFbf4HI="; + hash = "sha256-jn5Ib5jM/6zHuCjWoMkTvs0nR29mAbTlvID5aYZLw5o="; }; strictDeps = true; From 0cd698e2bd5fb0eab376a27dd78505e40f38f91e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 6 Jul 2026 20:47:17 +0200 Subject: [PATCH 061/152] python314Packages.libtmux: remove test that works with 0.61.0, ignore failing test on darwin --- pkgs/development/python-modules/libtmux/default.nix | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/pkgs/development/python-modules/libtmux/default.nix b/pkgs/development/python-modules/libtmux/default.nix index 159c63b7430c..f870f7ae1d77 100644 --- a/pkgs/development/python-modules/libtmux/default.nix +++ b/pkgs/development/python-modules/libtmux/default.nix @@ -45,12 +45,9 @@ buildPythonPackage (finalAttrs: { enabledTestPaths = [ "tests" ]; disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [ "tests/test/test_retry.py" ]; - disabledTests = [ - # test is broken for tmux 3.7a and later - # https://github.com/tmux-python/libtmux/issues/697 - "test_new_window_name_invalid_on_3_7" - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ + disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [ + # basename for sleep is coreutils, not sleep + "test_break_pane_no_name_uses_natural_name" # Fail with: 'no server running on /tmp/tmux-1000/libtmux_test8sorutj1'. "test_new_session_width_height" # AssertionError: assert '' == '$' From d9e26e209f69409538e1b2480a242dea89ccc768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 6 Jul 2026 20:47:36 +0200 Subject: [PATCH 062/152] tmuxp: 1.73.0 -> 1.74.0 Changelog: https://github.com/tmux-python/tmuxp/raw/v1.74.0/CHANGES --- pkgs/by-name/tm/tmuxp/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/tm/tmuxp/package.nix b/pkgs/by-name/tm/tmuxp/package.nix index 621044b3d72f..8456eb09530b 100644 --- a/pkgs/by-name/tm/tmuxp/package.nix +++ b/pkgs/by-name/tm/tmuxp/package.nix @@ -7,12 +7,12 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "tmuxp"; - version = "1.73.0"; + version = "1.74.0"; pyproject = true; src = fetchPypi { inherit (finalAttrs) pname version; - hash = "sha256-UExY0hC7HDWeISQ/mMZLMcMnqDko4i188MyoDbNePZc="; + hash = "sha256-ngSA6gEpmWAmNYh+BGHTlcLYqm42qFtabR1l3NbHgJw="; }; build-system = with python3Packages; [ From b5d5fdad5999ec055a5eb14578ecbb07d01eacd9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 7 Jul 2026 03:09:26 +0000 Subject: [PATCH 063/152] coder: 2.33.9 -> 2.33.11 --- pkgs/by-name/co/coder/package.nix | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/pkgs/by-name/co/coder/package.nix b/pkgs/by-name/co/coder/package.nix index a56a65e02e57..377621ee1af2 100644 --- a/pkgs/by-name/co/coder/package.nix +++ b/pkgs/by-name/co/coder/package.nix @@ -15,21 +15,21 @@ let channels = { stable = { - version = "2.33.9"; + version = "2.33.11"; hash = { - x86_64-linux = "sha256-/X1/1xlPV/86MyAXv7MJU8YtEemRNYdasBP6lH586DM="; - x86_64-darwin = "sha256-9ns+EzDMgyo+zgfQ3867AhTQ1qENPjtHXCYWtmP00mU="; - aarch64-linux = "sha256-4hrV9va+c3VvQXIQ2j6CGZ19ZFCFDEsHhfZu/kQfhwA="; - aarch64-darwin = "sha256-5k15Rf09/n/eKvVD0VxDWWWgJK7U0DDNAf0p923BGLs="; + x86_64-linux = "sha256-NY9xyLc6Pr1wWPnr4fLo6t+7B7Gin/BlTH3tdxQk30k="; + x86_64-darwin = "sha256-yEHu+ekyZSUd66L9sR8ihVLFnDe9N/kFKLGHOFfx9es="; + aarch64-linux = "sha256-Wc9hhotJKcb1fdjfh9pWxVs/e4YpBua1PyAhMRJbUAY="; + aarch64-darwin = "sha256-7A6BxOg4A3Ua5SXjnh5gtG/LE94iGuRQPe/S9UjX/oc="; }; }; mainline = { - version = "2.34.3"; + version = "2.34.5"; hash = { - x86_64-linux = "sha256-j7r5qupAsjkA11KJpdTIVtogWvSxz59nMKtTS92NMDk="; - x86_64-darwin = "sha256-MJJK0NeXHfd/ipmPUrdhrcCOArafYH3sq+MW7GiLVnY="; - aarch64-linux = "sha256-avDUA/3RLcoyt6QZ3CllvjNp8O65g+0CkAJjMOOVKLg="; - aarch64-darwin = "sha256-qCHsK0zOqJO/ECb9afaEwNia9R/AJMgtRpIFUfZeY1Y="; + x86_64-linux = "sha256-B0roCJqTu6o89nHbVA3b9eHKj/VmJ9i1j4blF1I76yU="; + x86_64-darwin = "sha256-+7QhdfwFqh9SZBJOgOqS0Y49dUsWM6PC0/oBhfuAkfM="; + aarch64-linux = "sha256-UDyEhBAlvgSHWLPtbNXHj6X2gle1Y3fjQLSKHzwc/XI="; + aarch64-darwin = "sha256-VhliikNdqi7AauYlKQvMroEjR3jZZnhNw0HTtJFw5zg="; }; }; }; From 1184b5256ed6fd2e17a6692e671726fcef08f811 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 7 Jul 2026 04:28:39 +0000 Subject: [PATCH 064/152] meshoptimizer: 1.1.1 -> 1.2 --- pkgs/by-name/me/meshoptimizer/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/me/meshoptimizer/package.nix b/pkgs/by-name/me/meshoptimizer/package.nix index 15f6638d90ca..7e781ffd44be 100644 --- a/pkgs/by-name/me/meshoptimizer/package.nix +++ b/pkgs/by-name/me/meshoptimizer/package.nix @@ -17,12 +17,12 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "meshoptimizer"; - version = "1.1.1"; + version = "1.2"; src = fetchFromGitHub { owner = "zeux"; repo = "meshoptimizer"; rev = "v${finalAttrs.version}"; - hash = "sha256-h5lO3HHPtGYuzAZlRwXugvCsjtSMj9j2Z7xCRHQU8xY="; + hash = "sha256-1dHT4+aOwIY3DUrj6JwcDizRPWwL/PWkEcpmA8zD/vE="; }; nativeBuildInputs = [ cmake ]; From 50d1d5755b47c56452e5bf938cc3d96f702f0864 Mon Sep 17 00:00:00 2001 From: Antoine Cotten Date: Tue, 7 Jul 2026 12:18:05 +0200 Subject: [PATCH 065/152] cider-2: 4.0.0 -> 4.0.9.1 --- pkgs/by-name/ci/cider-2/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ci/cider-2/package.nix b/pkgs/by-name/ci/cider-2/package.nix index c30678890e5a..1d8db2f568f6 100644 --- a/pkgs/by-name/ci/cider-2/package.nix +++ b/pkgs/by-name/ci/cider-2/package.nix @@ -18,11 +18,11 @@ }: stdenv.mkDerivation rec { pname = "cider-2"; - version = "4.0.0"; + version = "4.0.9.1"; src = fetchurl { url = "https://repo.cider.sh/apt/pool/main/cider-v${version}-linux-x64.deb"; - hash = "sha256-Z5B7VQatTEktt4e7aF5EGDTufgwfRHJzCZ1Lia/aIFk="; + hash = "sha256-MsA6lK3PsyOEx938FgJFx8l9oqwoM3FzIK5goF73lTs="; }; nativeBuildInputs = [ From 3d6bb8e8dd89035375a1a941e9732006439c1add Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 7 Jul 2026 10:46:22 +0000 Subject: [PATCH 066/152] python3Packages.ansible: 14.0.0 -> 14.1.0 --- pkgs/development/python-modules/ansible/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/ansible/default.nix b/pkgs/development/python-modules/ansible/default.nix index d95c3d1f4e63..99f335b32342 100644 --- a/pkgs/development/python-modules/ansible/default.nix +++ b/pkgs/development/python-modules/ansible/default.nix @@ -24,7 +24,7 @@ let pname = "ansible"; - version = "14.0.0"; + version = "14.1.0"; in buildPythonPackage { inherit pname version; @@ -32,7 +32,7 @@ buildPythonPackage { src = fetchPypi { inherit pname version; - hash = "sha256-A825R3sevpMMkhKhLQkmx81GsYd8UEcJFXuM14dvwIM="; + hash = "sha256-GueRhGntiX/3FoV+2Y0fXV/OFxD2pC9gHwcVVItnvwA="; }; # we make ansible-core depend on ansible, not the other way around, From 4712424a888d8e2a5409a0ff56caf5f9cdbabad8 Mon Sep 17 00:00:00 2001 From: Christopher Kaster Date: Sun, 14 Jun 2026 09:10:19 +0200 Subject: [PATCH 067/152] odin: dev-2026-05 -> dev-2026-07 --- pkgs/by-name/od/odin/package.nix | 6 +- pkgs/by-name/od/odin/system-raylib.patch | 122 +++++++---------------- 2 files changed, 41 insertions(+), 87 deletions(-) diff --git a/pkgs/by-name/od/odin/package.nix b/pkgs/by-name/od/odin/package.nix index 2e4f6bdb0560..37c7e15c20ce 100644 --- a/pkgs/by-name/od/odin/package.nix +++ b/pkgs/by-name/od/odin/package.nix @@ -13,13 +13,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "odin"; - version = "dev-2026-05"; + version = "dev-2026-07"; src = fetchFromGitHub { owner = "odin-lang"; repo = "Odin"; tag = finalAttrs.version; - hash = "sha256-fgN6Lz1CnUPXrmnQr+sPEfwSF/7y0+eZBX6TKFcFA50="; + hash = "sha256-pVCZB6YOk73tBGVE1i73JJG3z9SZNakFuMp4Kepqnvc="; }; patches = [ @@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: { substituteInPlace src/build_settings.cpp \ --replace-fail "arm64-apple-macosx" "arm64-apple-darwin" - rm -r vendor/raylib/{linux,macos,macos-arm64,wasm,windows} + rm -r vendor/raylib/{linux,macos,wasm,windows} patchShebangs --build build_odin.sh ''; diff --git a/pkgs/by-name/od/odin/system-raylib.patch b/pkgs/by-name/od/odin/system-raylib.patch index 3bd5f848e384..9aa78b02b5e3 100644 --- a/pkgs/by-name/od/odin/system-raylib.patch +++ b/pkgs/by-name/od/odin/system-raylib.patch @@ -1,14 +1,11 @@ diff --git a/vendor/raylib/raygui.odin b/vendor/raylib/raygui.odin -index 559437a60..cd31fbe43 100644 +index b02fa4438..23e8704ed 100644 --- a/vendor/raylib/raygui.odin +++ b/vendor/raylib/raygui.odin -@@ -2,34 +2,7 @@ package raylib - - import "core:c" - --RAYGUI_SHARED :: #config(RAYGUI_SHARED, false) --RAYGUI_WASM_LIB :: #config(RAYGUI_WASM_LIB, "wasm/libraygui.a") -- +@@ -5,31 +5,7 @@ import "core:c" + RAYGUI_SHARED :: #config(RAYGUI_SHARED, false) + RAYGUI_WASM_LIB :: #config(RAYGUI_WASM_LIB, "wasm/libraygui.a") + -when ODIN_OS == .Windows { - foreign import lib { - "windows/rayguidll.lib" when RAYGUI_SHARED else "windows/raygui.lib", @@ -20,7 +17,7 @@ index 559437a60..cd31fbe43 100644 -} else when ODIN_OS == .Darwin { - when ODIN_ARCH == .arm64 { - foreign import lib { -- "macos-arm64/libraygui.dylib" when RAYGUI_SHARED else "macos-arm64/libraygui.a", +- "macos/libraygui-arm64.dylib" when RAYGUI_SHARED else "macos/libraygui-arm64.a", - } - } else { - foreign import lib { @@ -35,20 +32,17 @@ index 559437a60..cd31fbe43 100644 - foreign import lib "system:raygui" -} +foreign import lib "system:raygui" - + RAYGUI_VERSION :: "4.0" - + diff --git a/vendor/raylib/raylib.odin b/vendor/raylib/raylib.odin -index b051f1885..9376dcc48 100644 +index 0a30fd72b..91a2b8bac 100644 --- a/vendor/raylib/raylib.odin +++ b/vendor/raylib/raylib.odin -@@ -97,42 +97,7 @@ MAX_MATERIAL_MAPS :: #config(RAYLIB_MAX_MATERIAL_MAPS, 12) - - #assert(size_of(rune) == size_of(c.int)) - --RAYLIB_SHARED :: #config(RAYLIB_SHARED, false) --RAYLIB_WASM_LIB :: #config(RAYLIB_WASM_LIB, "wasm/libraylib.a") -- +@@ -99,53 +99,7 @@ MAX_MATERIAL_MAPS :: #config(RAYLIB_MAX_MATERIAL_MAPS, 12) + RAYLIB_SHARED :: #config(RAYLIB_SHARED, false) + RAYLIB_WASM_LIB :: #config(RAYLIB_WASM_LIB, "wasm/libraylib.web.a") + -when ODIN_OS == .Windows { - @(extra_linker_flags="/NODEFAULTLIB:" + ("msvcrt" when RAYLIB_SHARED else "libcmt")) - foreign import lib { @@ -59,18 +53,32 @@ index b051f1885..9376dcc48 100644 - "system:Shell32.lib", - } -} else when ODIN_OS == .Linux { -- foreign import lib { -- // Note(bumbread): I'm not sure why in `linux/` folder there are -- // multiple copies of raylib.so, but since these bindings are for -- // particular version of the library, I better specify it. Ideally, -- // though, it's best specified in terms of major (.so.4) -- "linux/libraylib.so.550" when RAYLIB_SHARED else "linux/libraylib.a", -- "system:dl", -- "system:pthread", +- when ODIN_ARCH == .arm64 { +- foreign import lib { +- // Note(bumbread): I'm not sure why in `linux/` folder there are +- // multiple copies of raylib.so, but since these bindings are for +- // particular version of the library, I better specify it. Ideally, +- // though, it's best specified in terms of major (.so.4) +- "linux-arm64/libraylib.so.600" when RAYLIB_SHARED else "linux-arm/libraylib.a", +- "system:dl", +- "system:pthread", +- "system:X11", +- } +- } else { +- foreign import lib { +- // Note(bumbread): I'm not sure why in `linux/` folder there are +- // multiple copies of raylib.so, but since these bindings are for +- // particular version of the library, I better specify it. Ideally, +- // though, it's best specified in terms of major (.so.4) +- "linux/libraylib.so.600" when RAYLIB_SHARED else "linux/libraylib.a", +- "system:dl", +- "system:pthread", +- "system:X11", +- } - } -} else when ODIN_OS == .Darwin { - foreign import lib { -- "macos/libraylib.550.dylib" when RAYLIB_SHARED else "macos/libraylib.a", +- "macos/libraylib.600.dylib" when RAYLIB_SHARED else "macos/libraylib.a", - "system:Cocoa.framework", - "system:OpenGL.framework", - "system:IOKit.framework", @@ -83,60 +91,6 @@ index b051f1885..9376dcc48 100644 - foreign import lib "system:raylib" -} +foreign import lib "system:raylib" - - VERSION_MAJOR :: 5 - VERSION_MINOR :: 5 -diff --git a/vendor/raylib/rlgl/rlgl.odin b/vendor/raylib/rlgl/rlgl.odin -index 14a7cf5b0..a8e641220 100644 ---- a/vendor/raylib/rlgl/rlgl.odin -+++ b/vendor/raylib/rlgl/rlgl.odin -@@ -112,47 +112,7 @@ import rl "../." - - VERSION :: "5.0" - --RAYLIB_SHARED :: #config(RAYLIB_SHARED, false) --RAYLIB_WASM_LIB :: #config(RAYLIB_WASM_LIB, "../wasm/libraylib.a") -- --// Note: We pull in the full raylib library. If you want a truly stand-alone rlgl, then: --// - Compile a separate rlgl library and use that in the foreign import blocks below. --// - Remove the `import rl "../."` line --// - Copy the code from raylib.odin for any types we alias from that package (see PixelFormat etc) -- --when ODIN_OS == .Windows { -- @(extra_linker_flags="/NODEFAULTLIB:" + ("msvcrt" when RAYLIB_SHARED else "libcmt")) -- foreign import lib { -- "../windows/raylibdll.lib" when RAYLIB_SHARED else "../windows/raylib.lib" , -- "system:Winmm.lib", -- "system:Gdi32.lib", -- "system:User32.lib", -- "system:Shell32.lib", -- } --} else when ODIN_OS == .Linux { -- foreign import lib { -- // Note(bumbread): I'm not sure why in `linux/` folder there are -- // multiple copies of raylib.so, but since these bindings are for -- // particular version of the library, I better specify it. Ideally, -- // though, it's best specified in terms of major (.so.4) -- "../linux/libraylib.so.550" when RAYLIB_SHARED else "../linux/libraylib.a", -- "system:dl", -- "system:pthread", -- } --} else when ODIN_OS == .Darwin { -- foreign import lib { -- "../macos/libraylib.550.dylib" when RAYLIB_SHARED else "../macos/libraylib.a", -- "system:Cocoa.framework", -- "system:OpenGL.framework", -- "system:IOKit.framework", -- } --} else when ODIN_ARCH == .wasm32 || ODIN_ARCH == .wasm64p32 { -- foreign import lib { -- RAYLIB_WASM_LIB, -- } --} else { -- foreign import lib "system:raylib" --} -+foreign import lib "system:raylib" - - GRAPHICS_API_OPENGL_11 :: false - GRAPHICS_API_OPENGL_21 :: true + VERSION_MAJOR :: 6 + VERSION_MINOR :: 0 From 93d0f36ba0eec7fd6e15edf95349c76248a8f1a8 Mon Sep 17 00:00:00 2001 From: Christopher Kaster Date: Tue, 7 Jul 2026 15:42:28 +0200 Subject: [PATCH 068/152] ols: remove haiku support for dev-2026-05 The newer odin compiler dropped haiku support, breaking this version's build. --- pkgs/by-name/ol/ols/package.nix | 6 ++++ pkgs/by-name/ol/ols/remove-haiku.patch | 43 ++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 pkgs/by-name/ol/ols/remove-haiku.patch diff --git a/pkgs/by-name/ol/ols/package.nix b/pkgs/by-name/ol/ols/package.nix index 8923a725df90..5d49f8d82cc3 100644 --- a/pkgs/by-name/ol/ols/package.nix +++ b/pkgs/by-name/ol/ols/package.nix @@ -17,6 +17,12 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-9tQVyauvXGTkKnQUSYKAhjL5ZZbhglqdcxdcs27P2k4="; }; + patches = [ + # Since Odin removed Haiku support in dev-2026-06 and there is still no update + # for ols we're removing the haiku parts so that this builds again + ./remove-haiku.patch + ]; + postPatch = '' substituteInPlace build.sh \ --replace-fail "-microarch:native" "" diff --git a/pkgs/by-name/ol/ols/remove-haiku.patch b/pkgs/by-name/ol/ols/remove-haiku.patch new file mode 100644 index 000000000000..96fa461e90de --- /dev/null +++ b/pkgs/by-name/ol/ols/remove-haiku.patch @@ -0,0 +1,43 @@ +diff --git a/src/server/build.odin b/src/server/build.odin +index 1c1f2290..aaf6d2a4 100644 +--- a/src/server/build.odin ++++ b/src/server/build.odin +@@ -28,7 +28,6 @@ platform_os: map[string]struct{} = { + "openbsd" = {}, + "wasi" = {}, + "wasm" = {}, +- "haiku" = {}, + "netbsd" = {}, + "freebsd" = {}, + } +@@ -42,7 +41,6 @@ os_enum_to_string: [runtime.Odin_OS_Type]string = { + .WASI = "wasi", + .JS = "js", + .Freestanding = "freestanding", +- .Haiku = "haiku", + .OpenBSD = "openbsd", + .NetBSD = "netbsd", + .Orca = "orca", +@@ -69,8 +67,6 @@ os_string_to_enum: map[string]runtime.Odin_OS_Type = { + "freestanding" = .Freestanding, + "Wasm" = .JS, + "wasm" = .JS, +- "Haiku" = .Haiku, +- "haiku" = .Haiku, + "Openbsd" = .OpenBSD, + "openbsd" = .OpenBSD, + "OpenBSD" = .OpenBSD, +@@ -125,7 +121,12 @@ skip_file :: proc(filename: string) -> bool { + + // Finds all packages under the provided path by walking the file system + // and appends them to the provided dynamic array +-append_packages :: proc(path: string, pkgs: ^[dynamic]string, skip: map[string]struct{}, allocator := context.temp_allocator) { ++append_packages :: proc( ++ path: string, ++ pkgs: ^[dynamic]string, ++ skip: map[string]struct{}, ++ allocator := context.temp_allocator, ++) { + w := os.walker_create(path) + defer os.walker_destroy(&w) + for info in os.walker_walk(&w) { From 46c6aaeac7c80da741a61e16305237a27dda1b86 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 12 Jun 2026 18:28:28 +0200 Subject: [PATCH 069/152] nixos/netbox: improve secret management With this change secrets will be automatically generated if left at their individual option defaults. We now also allow configuration of multiple peppers, to allow proper rotation as intended by upstream. Finally, we now we prevent secrets from leaking into the store. --- nixos/modules/services/web-apps/netbox.nix | 112 +++++++++++++++++---- nixos/tests/web-apps/netbox-upgrade.nix | 6 -- nixos/tests/web-apps/netbox/default.nix | 7 -- 3 files changed, 91 insertions(+), 34 deletions(-) diff --git a/nixos/modules/services/web-apps/netbox.nix b/nixos/modules/services/web-apps/netbox.nix index 65f761373cda..fdfe33e6f970 100644 --- a/nixos/modules/services/web-apps/netbox.nix +++ b/nixos/modules/services/web-apps/netbox.nix @@ -6,6 +6,13 @@ }: let + inherit (lib) + any + attrValues + mkChangedOptionModule + optionalString + ; + cfg = config.services.netbox; pythonFmt = pkgs.formats.pythonVars { }; staticDir = cfg.dataDir + "/static"; @@ -19,6 +26,8 @@ let settingsFile extraConfigFile ]; + secretKeyFile = + if cfg.secretKeyFile != null then cfg.secretKeyFile else "${cfg.dataDir}/secret.key"; pkg = (cfg.package.overrideAttrs (old: { @@ -51,6 +60,16 @@ let in { + imports = [ + (mkChangedOptionModule + [ "services" "netbox" "apiTokenPeppersFile" ] + [ "services" "netbox" "apiTokenPepperFiles" ] + (config: { + "1" = config.services.netbox.apiTokenPeppersFile; + }) + ) + ]; + options.services.netbox = { enable = lib.mkOption { type = lib.types.bool; @@ -159,18 +178,58 @@ in }; secretKeyFile = lib.mkOption { - type = lib.types.path; + type = + with lib.types; + nullOr (pathWith { + inStore = false; + }); + default = null; description = '' - Path to a file containing the secret key. + Path to a file containing the [secret key]. + + The secret key is used for hashing passwords and signing HTTP cookies. + It can be rotated without data loss; however all existing user sessions + will be invalidated. + + ::: {.note} + If unset, a random secret will be created automatically at + `/var/lib/netbox/secret.key`. + ::: + + [secret key]: https://netboxlabs.com/docs/netbox/configuration/required-parameters/#secret_key ''; }; - apiTokenPeppersFile = lib.mkOption { - type = with lib.types; nullOr path; + apiTokenPepperFiles = lib.mkOption { + type = + with lib.types; + attrsOf (pathWith { + inStore = false; + }); + default = { + "1" = "${cfg.dataDir}/pepper.1"; + }; + defaultText = lib.literalExpression '' + { + "1" = "''${config.services.netbox.dataDir}/pepper.1"; + } + ''; + example = { + "1" = "/run/keys/netbox-pepper-old"; + "2" = "/run/keys/netbox-pepper-current"; + }; description = '' - Path to a file containing the API_TOKEN_PEPPER that will be configured for the pepper_id with the id 1. - This is required for netbox >= 4.5. For generating this pepper, - [consider using `$INSTALL_ROOT/netbox/generate_secret_key.py`](https://netboxlabs.com/docs/netbox/configuration/required-parameters/#api_token_peppers) + Mapping of cryptographic pepper IDs to files containing the pepper values. + + Peppers provide an additional secret input in hashing operations. They + are required for v2 API tokens (NetBox 4.5+). + + ::: {.note} + By default a random pepper will be created automatically at + `/var/lib/netbox/pepper.1` and configured with pepper ID 1. + ::: + + [cryptographic peppers]: https://netboxlabs.com/docs/netbox/configuration/required-parameters/#api_token_peppers ''; }; @@ -226,6 +285,7 @@ in AUTH_LDAP_FIND_GROUP_PERMS = True ''; }; + keycloakClientSecret = lib.mkOption { type = with lib.types; nullOr path; default = null; @@ -291,15 +351,17 @@ in }; extraConfig = '' - with open("${cfg.secretKeyFile}", "r") as file: + with open("${secretKeyFile}", "r") as file: SECRET_KEY = file.readline() + + API_TOKEN_PEPPERS = { + ${lib.concatStringsSep "\n" ( + lib.mapAttrsToList (id: file: '' + ${id}: open("${file}", "r").read().strip(), + '') cfg.apiTokenPepperFiles + )} + } '' - + (lib.optionalString (cfg.apiTokenPeppersFile != null) '' - with open("${cfg.apiTokenPeppersFile}", "r") as pepper_file: - API_TOKEN_PEPPERS = { - 1: pepper_file.readline(), - }; - '') + (lib.optionalString (cfg.keycloakClientSecret != null) '' with open("${cfg.keycloakClientSecret}", "r") as file: SOCIAL_AUTH_KEYCLOAK_SECRET = file.readline() @@ -356,6 +418,21 @@ in environment.PYTHONPATH = pkg.pythonPath; preStart = '' + # Generate random default secrets, if the user didn't supply any. + ${optionalString (cfg.secretKeyFile == null) '' + if [ ! -e "${secretKeyFile}" ]; then + ${pkg}/opt/netbox/netbox/generate_secret_key.py > "${secretKeyFile}" + fi + ''} + ${optionalString + (any (path: path == "${cfg.dataDir}/pepper.1") (attrValues cfg.apiTokenPepperFiles)) + '' + if [ ! -e "${cfg.dataDir}/pepper.1" ]; then + ${pkg}/opt/netbox/netbox/generate_secret_key.py > "${cfg.dataDir}/pepper.1" + fi + '' + } + # On the first run, or on upgrade / downgrade, run migrations and related. # This mostly correspond to upstream NetBox's 'upgrade.sh' script. versionFile="${cfg.dataDir}/version" @@ -463,12 +540,5 @@ in }; users.groups.netbox = { }; users.groups."${config.services.redis.servers.netbox.user}".members = [ "netbox" ]; - - assertions = [ - { - assertion = (lib.versionAtLeast cfg.package.version "4.5") -> (cfg.apiTokenPeppersFile != null); - message = "NetBox 4.5 or newer require setting `services.netbox.apiTokenPeppersFile`"; - } - ]; }; } diff --git a/nixos/tests/web-apps/netbox-upgrade.nix b/nixos/tests/web-apps/netbox-upgrade.nix index c965e0c9b0f3..389f60856c68 100644 --- a/nixos/tests/web-apps/netbox-upgrade.nix +++ b/nixos/tests/web-apps/netbox-upgrade.nix @@ -34,12 +34,6 @@ in # Pick the NetBox package from this config's "pkgs" argument, # so that `nixpkgs.config.permittedInsecurePackages` works package = pkgs.${oldNetbox}; - secretKeyFile = pkgs.writeText "secret" '' - abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 - ''; - apiTokenPeppersFile = pkgs.writeText "pepper" '' - kp7ht*76fiQAhUi5dHfASLlYUE_S^gI^(7J^K5M!LfoH@vl&b_ - ''; }; services.nginx = { diff --git a/nixos/tests/web-apps/netbox/default.nix b/nixos/tests/web-apps/netbox/default.nix index 803cf5c25ed3..da9d2c9bfe0f 100644 --- a/nixos/tests/web-apps/netbox/default.nix +++ b/nixos/tests/web-apps/netbox/default.nix @@ -34,13 +34,6 @@ import ../../make-test-python.nix ( services.netbox = { enable = true; package = netbox; - secretKeyFile = pkgs.writeText "secret" '' - abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 - ''; - # Value from https://netbox.readthedocs.io/en/feature/configuration/required-parameters/#api_token_peppers - apiTokenPeppersFile = pkgs.writeText "pepper" '' - kp7ht*76fiQAhUi5dHfASLlYUE_S^gI^(7J^K5M!LfoH@vl&b_ - ''; enableLdap = true; ldapConfigPath = pkgs.writeText "ldap_config.py" '' From f76c4fdb7f2908b66b5c243cebc4d0f8893285d5 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 12 Jun 2026 20:40:31 +0200 Subject: [PATCH 070/152] nixos/netbox: merge nixos options support in concatFile While types.lines has a custom merge function it is generally not great style to configure module options needlessly from the config section. --- nixos/modules/services/web-apps/netbox.nix | 38 ++++++++++++---------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/nixos/modules/services/web-apps/netbox.nix b/nixos/modules/services/web-apps/netbox.nix index fdfe33e6f970..307681d46b0f 100644 --- a/nixos/modules/services/web-apps/netbox.nix +++ b/nixos/modules/services/web-apps/netbox.nix @@ -23,12 +23,33 @@ let text = cfg.extraConfig; }; configFile = pkgs.concatText "configuration.py" [ + nixosOptionsConfig settingsFile extraConfigFile ]; secretKeyFile = if cfg.secretKeyFile != null then cfg.secretKeyFile else "${cfg.dataDir}/secret.key"; + nixosOptionsConfig = pkgs.writeTextFile { + name = "netbox-nixos-options.py"; + text = '' + with open("${secretKeyFile}", "r") as file: + SECRET_KEY = file.readline() + + API_TOKEN_PEPPERS = { + ${lib.concatStringsSep "\n" ( + lib.mapAttrsToList (id: file: '' + ${id}: open("${file}", "r").read().strip(), + '') cfg.apiTokenPepperFiles + )} + } + '' + + (lib.optionalString (cfg.keycloakClientSecret != null) '' + with open("${cfg.keycloakClientSecret}", "r") as file: + SOCIAL_AUTH_KEYCLOAK_SECRET = file.readline() + ''); + }; + pkg = (cfg.package.overrideAttrs (old: { installPhase = @@ -349,23 +370,6 @@ in }; }; }; - - extraConfig = '' - with open("${secretKeyFile}", "r") as file: - SECRET_KEY = file.readline() - - API_TOKEN_PEPPERS = { - ${lib.concatStringsSep "\n" ( - lib.mapAttrsToList (id: file: '' - ${id}: open("${file}", "r").read().strip(), - '') cfg.apiTokenPepperFiles - )} - } - '' - + (lib.optionalString (cfg.keycloakClientSecret != null) '' - with open("${cfg.keycloakClientSecret}", "r") as file: - SOCIAL_AUTH_KEYCLOAK_SECRET = file.readline() - ''); }; services.redis.servers.netbox.enable = true; From d6beee20afc4f8878af0810f918f4c2e281c83c6 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 12 Jun 2026 20:48:25 +0200 Subject: [PATCH 071/152] nixos/netbox: drop keycloak specific option The django-social-auth library supports a massive list of authentication backends. Maintaining options at this granularity is just not great for maintainability. https://python-social-auth.readthedocs.io/en/latest/backends/index.html --- nixos/modules/services/web-apps/netbox.nix | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/nixos/modules/services/web-apps/netbox.nix b/nixos/modules/services/web-apps/netbox.nix index 307681d46b0f..148a2e3ac3d5 100644 --- a/nixos/modules/services/web-apps/netbox.nix +++ b/nixos/modules/services/web-apps/netbox.nix @@ -10,6 +10,7 @@ let any attrValues mkChangedOptionModule + mkRemovedOptionModule optionalString ; @@ -43,11 +44,7 @@ let '') cfg.apiTokenPepperFiles )} } - '' - + (lib.optionalString (cfg.keycloakClientSecret != null) '' - with open("${cfg.keycloakClientSecret}", "r") as file: - SOCIAL_AUTH_KEYCLOAK_SECRET = file.readline() - ''); + ''; }; pkg = @@ -89,6 +86,10 @@ in "1" = config.services.netbox.apiTokenPeppersFile; }) ) + (mkRemovedOptionModule + [ "services" "netbox" "keycloakClientSecret" ] '' + Too much granularity hurts maintainability. Please configure secret key loading via `services.netbox.extraConfig` instead. + '') ]; options.services.netbox = { @@ -306,14 +307,6 @@ in AUTH_LDAP_FIND_GROUP_PERMS = True ''; }; - - keycloakClientSecret = lib.mkOption { - type = with lib.types; nullOr path; - default = null; - description = '' - File that contains the keycloak client secret. - ''; - }; }; config = lib.mkIf cfg.enable { From 5c355dedbf8e162ec35e08dcc571b941ca774834 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 12 Jun 2026 22:56:50 +0200 Subject: [PATCH 072/152] nixos/netbox: merge bind options into one They are all passed to gunicorn's --bind flag, so let the user pass whatever they want. --- nixos/modules/services/web-apps/netbox.nix | 56 ++++++++++------------ nixos/tests/web-apps/netbox-upgrade.nix | 2 +- nixos/tests/web-apps/netbox/default.nix | 2 +- nixos/tests/web-apps/netbox/testScript.py | 2 +- 4 files changed, 27 insertions(+), 35 deletions(-) diff --git a/nixos/modules/services/web-apps/netbox.nix b/nixos/modules/services/web-apps/netbox.nix index 148a2e3ac3d5..e9956b3e927d 100644 --- a/nixos/modules/services/web-apps/netbox.nix +++ b/nixos/modules/services/web-apps/netbox.nix @@ -10,6 +10,7 @@ let any attrValues mkChangedOptionModule + mkOption mkRemovedOptionModule optionalString ; @@ -86,10 +87,18 @@ in "1" = config.services.netbox.apiTokenPeppersFile; }) ) - (mkRemovedOptionModule - [ "services" "netbox" "keycloakClientSecret" ] '' - Too much granularity hurts maintainability. Please configure secret key loading via `services.netbox.extraConfig` instead. - '') + (mkRemovedOptionModule [ "services" "netbox" "listenAddress" ] '' + Use `services.netbox.bind` with : format instead. + '') + (mkRemovedOptionModule [ "services" "netbox" "port" ] '' + Use `services.netbox.bind` with : format instead. + '') + (mkRemovedOptionModule [ "services" "netbox" "unixSocket" ] '' + Use `services.netbox.bind` with unix: format instead. + '') + (mkRemovedOptionModule [ "services" "netbox" "keycloakClientSecret" ] '' + Too much granularity hurts maintainability. Please configure secret key loading via `services.netbox.extraConfig` instead. + '') ]; options.services.netbox = { @@ -128,23 +137,19 @@ in }; }; - listenAddress = lib.mkOption { + bind = lib.mkOption { type = lib.types.str; - default = "[::1]"; + default = "unix:/run/netbox/netbox.sock"; + example = "[::1]:8001"; description = '' - Address the server will listen on. - Ignored if `unixSocket` is set. - ''; - }; + IP and port or Unix domain socket path to bind the HTTP socket to. - unixSocket = lib.mkOption { - type = lib.types.nullOr lib.types.str; - default = null; - description = '' - Enable Unix Socket for the server to listen on. - `listenAddress` and `port` will be ignored. + ::: {.tip} + This setting will be passed to gunicorn's [--bind] flag. + ::: + + [--bind]: https://gunicorn.org/reference/settings/#bind ''; - example = "/run/netbox/netbox.sock"; }; gunicornArgs = lib.mkOption { @@ -171,15 +176,6 @@ in ''; }; - port = lib.mkOption { - type = lib.types.port; - default = 8001; - description = '' - Port the server will listen on. - Ignored if `unixSocket` is set. - ''; - }; - plugins = lib.mkOption { type = with lib.types; functionTo (listOf package); default = _: [ ]; @@ -457,16 +453,12 @@ in serviceConfig = defaultServiceConfig // { ExecStart = '' ${pkg.gunicorn}/bin/gunicorn netbox.wsgi \ - --bind ${ - if (cfg.unixSocket != null) then - "unix:${cfg.unixSocket}" - else - "${cfg.listenAddress}:${toString cfg.port}" - } \ + --bind ${cfg.bind} \ --pythonpath ${pkg}/opt/netbox/netbox \ ${lib.concatStringsSep " " cfg.gunicornArgs} ''; PrivateTmp = true; + RuntimeDirectory = "netbox"; TimeoutStartSec = lib.mkDefault "10min"; }; }; diff --git a/nixos/tests/web-apps/netbox-upgrade.nix b/nixos/tests/web-apps/netbox-upgrade.nix index 389f60856c68..b8e23c6cf8de 100644 --- a/nixos/tests/web-apps/netbox-upgrade.nix +++ b/nixos/tests/web-apps/netbox-upgrade.nix @@ -43,7 +43,7 @@ in virtualHosts.netbox = { default = true; - locations."/".proxyPass = "http://localhost:${toString config.services.netbox.port}"; + locations."/".proxyPass = "http://${config.services.netbox.bind}"; locations."/static/".alias = "/var/lib/netbox/static/"; }; }; diff --git a/nixos/tests/web-apps/netbox/default.nix b/nixos/tests/web-apps/netbox/default.nix index da9d2c9bfe0f..6c1a48b30d94 100644 --- a/nixos/tests/web-apps/netbox/default.nix +++ b/nixos/tests/web-apps/netbox/default.nix @@ -70,7 +70,7 @@ import ../../make-test-python.nix ( virtualHosts.netbox = { default = true; - locations."/".proxyPass = "http://localhost:${toString config.services.netbox.port}"; + locations."/".proxyPass = "http://${toString config.services.netbox.bind}"; locations."/static/".alias = "/var/lib/netbox/static/"; }; }; diff --git a/nixos/tests/web-apps/netbox/testScript.py b/nixos/tests/web-apps/netbox/testScript.py index 4ff035a1f0cf..8532a4538ff9 100644 --- a/nixos/tests/web-apps/netbox/testScript.py +++ b/nixos/tests/web-apps/netbox/testScript.py @@ -62,7 +62,7 @@ def compare(a: str, b: str): with subtest("Home screen loads"): machine.wait_until_succeeds( - "curl -sSfL http://[::1]:8001 | grep 'Home | NetBox'" + "curl -sSfL http://[::1]:80 | grep 'Home | NetBox'" ) with subtest("Staticfiles are generated"): From 1a8e82de98615962b8e3e304f315d8b2055305b4 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 13 Jun 2026 00:34:12 +0200 Subject: [PATCH 073/152] nixos/netbox: add option for environment files This is relevant to pass secrets that are read from custom code in extraConfig. As these secrets are then read for every configuration.py consumer this also affects netbox-manage. --- nixos/modules/services/web-apps/netbox.nix | 41 ++++++++++++++++------ 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/nixos/modules/services/web-apps/netbox.nix b/nixos/modules/services/web-apps/netbox.nix index e9956b3e927d..214313b46321 100644 --- a/nixos/modules/services/web-apps/netbox.nix +++ b/nixos/modules/services/web-apps/netbox.nix @@ -62,20 +62,29 @@ let { inherit (cfg) plugins; }; - netboxManageScript = - with pkgs; - (writeScriptBin "netbox-manage" '' - #!${stdenv.shell} + + netboxManageScript = ( + pkgs.writeShellScriptBin "netbox-manage" '' + set -a + ${lib.concatMapStringsSep "\n" (envFile: '' + . "${envFile}" + '') cfg.environmentFiles} + set +a export PYTHONPATH=${pkg.pythonPath} case "$(whoami)" in - "root") - ${util-linux}/bin/runuser -u netbox -- ${pkg}/bin/netbox "$@";; - "netbox") - ${pkg}/bin/netbox "$@";; - *) - echo "This must be run by either by root 'netbox' user" + "root") + ${lib.getExe' pkgs.util-linux "runuser"} ${lib.cli.toCommandLineShellGNU { } { + preserve-environment = true; + user = "netbox"; + }} -- ${pkg}/bin/netbox "$@";; + "netbox") + exec ${pkg}/bin/netbox "$@";; + *) + echo "This must be run by either the root or the 'netbox' user." >&2 + exit 1 esac - ''); + '' + ); in { @@ -113,6 +122,15 @@ in ''; }; + environmentFiles = mkOption { + type = with lib.types; listOf path; + default = [ ]; + description = '' + Environment files loaded into all NetBox services and consumable in + {option}`services.netbox.extraConfig`. + ''; + }; + settings = lib.mkOption { description = '' Configuration options to set in `configuration.py`. @@ -396,6 +414,7 @@ in StateDirectoryMode = "0750"; Restart = "on-failure"; RestartSec = 30; + EnvironmentFile = cfg.environmentFiles; }; in { From c36fc51c38bb90105caa2ae2fbf27c7d32301965 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 12 Jun 2026 23:02:52 +0200 Subject: [PATCH 074/152] nixos/tests/netbox: run in nspawn Faster and cheaper. --- nixos/tests/web-apps/netbox/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nixos/tests/web-apps/netbox/default.nix b/nixos/tests/web-apps/netbox/default.nix index 6c1a48b30d94..beb6d4a267f0 100644 --- a/nixos/tests/web-apps/netbox/default.nix +++ b/nixos/tests/web-apps/netbox/default.nix @@ -27,10 +27,9 @@ import ../../make-test-python.nix ( skipTypeCheck = true; - nodes.machine = + containers.machine = { config, ... }: { - virtualisation.memorySize = 2048; services.netbox = { enable = true; package = netbox; From 43bccced4775619fa4358043b62fcb857a374ed6 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 13 Jun 2026 02:37:12 +0200 Subject: [PATCH 075/152] nixos/tests/netbox*: use unittest asserts These provide much richer detail, when assertions fail. --- nixos/tests/web-apps/netbox-upgrade.nix | 2 +- nixos/tests/web-apps/netbox/testScript.py | 36 +++++++++++------------ 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/nixos/tests/web-apps/netbox-upgrade.nix b/nixos/tests/web-apps/netbox-upgrade.nix index b8e23c6cf8de..f8ac7c261dd4 100644 --- a/nixos/tests/web-apps/netbox-upgrade.nix +++ b/nixos/tests/web-apps/netbox-upgrade.nix @@ -75,7 +75,7 @@ in headers = machine.succeed( "curl -sSL http://localhost/api/ --head -H 'Content-Type: application/json'" ) - assert api_version(headers) == version + t.assertEqual(api_version(headers), version) with subtest("NetBox version is the old one"): check_api_version("${oldApiVersion}") diff --git a/nixos/tests/web-apps/netbox/testScript.py b/nixos/tests/web-apps/netbox/testScript.py index 8532a4538ff9..914e5648560c 100644 --- a/nixos/tests/web-apps/netbox/testScript.py +++ b/nixos/tests/web-apps/netbox/testScript.py @@ -155,7 +155,7 @@ def patch(uri: str, data: Dict[str, Any]): return data_request(uri, "PATCH", data) with subtest("Can retrieve netbox version"): - assert netbox_version == get("/status/")["netbox-version"] + t.assertEqual(netbox_version, get("/status/")["netbox-version"]) with subtest("Can create objects"): result = post("/dcim/sites/", {"name": "Test site", "slug": "test-site"}) @@ -196,28 +196,28 @@ with subtest("Can create objects"): with subtest("Can list objects"): result = get("/dcim/sites/") - assert result["count"] == 1 - assert result["results"][0]["id"] == site_id - assert result["results"][0]["name"] == "Test site" - assert result["results"][0]["description"] == "" + t.assertEqual(result["count"], 1) + t.assertEqual(result["results"][0]["id"], site_id) + t.assertEqual(result["results"][0]["name"], "Test site") + t.assertEqual(result["results"][0]["description"], "") result = get("/dcim/device-types/") - assert result["count"] == 1 - assert result["results"][0]["id"] == device_type_id - assert result["results"][0]["model"] == "Test device type" + t.assertEqual(result["count"], 1) + t.assertEqual(result["results"][0]["id"], device_type_id) + t.assertEqual(result["results"][0]["model"], "Test device type") with subtest("Can update objects"): new_description = "Test site description" patch(f"/dcim/sites/{site_id}/", {"description": new_description}) result = get(f"/dcim/sites/{site_id}/") - assert result["description"] == new_description + t.assertEqual(result["description"], new_description) with subtest("Can delete objects"): # Delete a device-type since no object depends on it delete(f"/dcim/device-types/{device_type_id}/") result = get("/dcim/device-types/") - assert result["count"] == 0 + t.assertEqual(result["count"], 0) def request_graphql(query: str): return machine.succeed( @@ -252,10 +252,10 @@ if compare(netbox_version, '4.2.0') >= 0: answer = request_graphql(graphql_query) result = json.loads(answer) - assert len(result["data"]["prefix_list"]) == 3 - assert test_objects["prefixes"]["v4-with-updated-desc"] in result["data"]["prefix_list"] - assert test_objects["prefixes"]["v6-cidr-32"] in result["data"]["prefix_list"] - assert test_objects["prefixes"]["v6-cidr-48"] in result["data"]["prefix_list"] + t.assertEqual(len(result["data"]["prefix_list"]), 3) + t.assertIn(test_objects["prefixes"]["v4-with-updated-desc"], result["data"]["prefix_list"]) + t.assertIn(test_objects["prefixes"]["v6-cidr-32"], result["data"]["prefix_list"]) + t.assertIn(test_objects["prefixes"]["v6-cidr-48"], result["data"]["prefix_list"]) if compare(netbox_version, '4.2.0') < 0: with subtest("Can use the GraphQL API (Netbox <= 4.2.0)"): @@ -270,8 +270,8 @@ if compare(netbox_version, '4.2.0') < 0: ''') result = json.loads(answer) print(result["data"]["prefix_list"][0]) - assert result["data"]["prefix_list"][0]["prefix"] == test_objects["prefixes"]["v4-with-updated-desc"]["prefix"] - assert int(result["data"]["prefix_list"][0]["site"]["id"]) == int(test_objects["prefixes"]["v4-with-updated-desc"]["scope"]["id"]) + t.assertEqual(result["data"]["prefix_list"][0]["prefix"], test_objects["prefixes"]["v4-with-updated-desc"]["prefix"]) + t.assertEqual(int(result["data"]["prefix_list"][0]["site"]["id"]), int(test_objects["prefixes"]["v4-with-updated-desc"]["scope"]["id"])) # With 4.5.2 and higher, obtaining a session cookie or token without supplying # proper CSRF tokens on the frontend /login/ endpoint is no longer possible @@ -283,5 +283,5 @@ if compare(netbox_version, '4.5.2') < 0: with subtest("Can associate LDAP groups"): result = get("/users/users/?username=${testUser}") - assert result["count"] == 1 - assert any(group["name"] == "${testGroup}" for group in result["results"][0]["groups"]) + t.assertEqual(result["count"], 1) + t.assertTrue(any(group["name"] == "${testGroup}" for group in result["results"][0]["groups"])) From 37220b42c4c5e1b4b6557127d82376092d1c7a87 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 13 Jun 2026 04:11:32 +0200 Subject: [PATCH 076/152] nixos/netbox: refactor settings and make config introspectable Configuring a module from withing config is bad style. This makes what gets configured not introspectable. Worse, it requires special care to handle priorities correctly, so things will correctly overwrite or merge. The `GIT_PATH` setting was removed, when Netbox migrated Git operations to dulwhich. https://github.com/netbox-community/netbox/commit/b9cac97b73c1c08213db6272de11c03711491486 Furthermore, this reduces LDAP to just a single option, because once an LDAP configuration is set, we can already make assumptions. --- nixos/modules/services/web-apps/netbox.nix | 336 ++++++++++++++------- nixos/tests/web-apps/netbox/default.nix | 3 +- 2 files changed, 236 insertions(+), 103 deletions(-) diff --git a/nixos/modules/services/web-apps/netbox.nix b/nixos/modules/services/web-apps/netbox.nix index 214313b46321..38332d123ea9 100644 --- a/nixos/modules/services/web-apps/netbox.nix +++ b/nixos/modules/services/web-apps/netbox.nix @@ -12,14 +12,15 @@ let mkChangedOptionModule mkOption mkRemovedOptionModule + mkRenamedOptionModule optionalString + types ; cfg = config.services.netbox; - pythonFmt = pkgs.formats.pythonVars { }; - staticDir = cfg.dataDir + "/static"; + pythonVars = pkgs.formats.pythonVars { }; - settingsFile = pythonFmt.generate "netbox-settings.py" cfg.settings; + settingsFile = pythonVars.generate "netbox-settings.py" cfg.settings; extraConfigFile = pkgs.writeTextFile { name = "netbox-extraConfig.py"; text = cfg.extraConfig; @@ -48,6 +49,8 @@ let ''; }; + enableLDAP = cfg.ldapConfigFile != null; + pkg = (cfg.package.overrideAttrs (old: { installPhase = @@ -55,8 +58,8 @@ let + '' ln -s ${configFile} $out/opt/netbox/netbox/netbox/configuration.py '' - + lib.optionalString cfg.enableLdap '' - ln -s ${cfg.ldapConfigPath} $out/opt/netbox/netbox/netbox/ldap_config.py + + lib.optionalString enableLDAP '' + ln -s ${cfg.ldapConfigFile} $out/opt/netbox/netbox/netbox/ldap_config.py ''; })).override { @@ -108,22 +111,35 @@ in (mkRemovedOptionModule [ "services" "netbox" "keycloakClientSecret" ] '' Too much granularity hurts maintainability. Please configure secret key loading via `services.netbox.extraConfig` instead. '') + (mkRemovedOptionModule [ "services" "netbox" "enableLdap" ] '' + LDAP support is automatically enabled when `services.netbox.ldapConfigFile` is configured. + '') + (mkRenamedOptionModule + [ "services" "netbox" "ldapConfigPath" ] + [ "services" "netbox" "ldapConfigFile" ] + ) ]; options.services.netbox = { enable = lib.mkOption { - type = lib.types.bool; + type = types.bool; default = false; description = '' - Enable Netbox. + Whether to enable Netbox, a DCIM and IPAM source of truth. - This module requires a reverse proxy that serves `/static` separately. - See this [example](https://github.com/netbox-community/netbox/blob/develop/contrib/nginx.conf/) on how to configure this. + This module requires setting up a reverse proxy. The NetBox project has + example configurations for [nginx] and the [Apache httpd] server. + + The important change to make is to serve `/static` from + `''${config.services.netbox.settings.STATIC_ROOT}`. + + [nginx]: https://github.com/netbox-community/netbox/blob/main/contrib/nginx.conf + [Apache httpd]: https://github.com/netbox-community/netbox/blob/main/contrib/apache.conf ''; }; environmentFiles = mkOption { - type = with lib.types; listOf path; + type = with types; listOf path; default = [ ]; description = '' Environment files loaded into all NetBox services and consumable in @@ -133,30 +149,216 @@ in settings = lib.mkOption { description = '' - Configuration options to set in `configuration.py`. - See the [documentation](https://docs.netbox.dev/en/stable/configuration/) for more possible options. + The main {file}`configuration.py` to set up NetBox. + + Can be used to define flat and nested key-value pairs. Check the \ + [NetBox documentation] for possible options. + + ::: {.tip} + Use {option}`services.netbox.extraConfig` to extend this file with Python code. + ::: + + [NetBox documentation]: https://netboxlabs.com/docs/netbox/configuration/#configuration-file ''; - default = { }; - - type = lib.types.submodule { - freeformType = pythonFmt.type; - + type = types.submodule { + freeformType = pythonVars.type; options = { ALLOWED_HOSTS = lib.mkOption { - type = with lib.types; listOf str; + type = with types; listOf str; default = [ "*" ]; description = '' A list of valid fully-qualified domain names (FQDNs) and/or IP addresses that can be used to reach the NetBox service. ''; }; + + STATIC_ROOT = mkOption { + type = types.path; + readOnly = true; + default = "${cfg.dataDir}/static/"; + defaultText = lib.literalExpression "$${config.services.netbox.dataDir}/static/"; + description = '' + Path to the collected static assets, served below `/static/`. + ''; + }; + + MEDIA_ROOT = mkOption { + type = types.path; + readOnly = true; + default = "${cfg.dataDir}/media/"; + defaultText = lib.literalExpression "$${config.services.netbox.dataDir}/media"; + description = '' + Path where uploaded media is stored. + ''; + }; + + REPORTS_ROOT = mkOption { + type = types.path; + readOnly = true; + default = "${cfg.dataDir}/reports/"; + defaultText = lib.literalExpression "$${config.services.netbox.dataDir}/reports"; + description = '' + Path where generated reports are stored. + ''; + }; + + SCRIPTS_ROOT = mkOption { + type = types.path; + readOnly = true; + default = "${cfg.dataDir}/scripts/"; + defaultText = lib.literalExpression "$${config.services.netbox.dataDir}/scripts"; + description = '' + Path where scripts are stored. + ''; + }; + + DATABASES = mkOption { + type = with types; attrsOf (attrsOf str); + default = { + "default" = { + NAME = "netbox"; + USER = "netbox"; + HOST = "/run/postgresql"; + }; + }; + description = '' + Configuration for one or multiple [database] backends. + + At least one database named `default` must be defined. + + [database]: https://netbox.readthedocs.io/en/stable/configuration/required-parameters/#database + ''; + }; + + # Redis database settings. Redis is used for caching and for queuing + # background tasks such as webhook events. A separate configuration + # exists for each. Full connection details are required in both + # sections, and it is strongly recommended to use two separate database + # IDs. + REDIS = { + tasks = { + URL = mkOption { + type = types.str; + default = "unix://${config.services.redis.servers.netbox.unixSocket}?db=0"; + defaultText = lib.literalExpression "unix://$${config.services.redis.servers.netbox.unixSocket}?db=0"; + description = '' + Redis database connection for queuing background tasks. + + > It is highly recommended to keep the task and cache + > databases separate. Using the same database number on the + > same Redis instance for both may result in queued background + > tasks being lost during cache flushing events. + + + ''; + }; + }; + caching = { + URL = mkOption { + type = types.str; + default = "unix://${config.services.redis.servers.netbox.unixSocket}?db=1"; + defaultText = "unix://$${config.services.redis.servers.netbox.unixSocket}?db=0"; + description = '' + Redis database connection for caching. + + > It is highly recommended to keep the task and cache + > databases separate. Using the same database number on the + > same Redis instance for both may result in queued background + > tasks being lost during cache flushing events. + + + ''; + }; + }; + }; + + REMOTE_AUTH_BACKEND = mkOption { + type = + with types; + oneOf [ + str + (listOf str) + ]; + default = + if enableLDAP then + "netbox.authentication.LDAPBackend" + else + "netbox.authentication.RemoteUserBackend"; + defaultText = lib.literalExpression '' + if config.services.netbox.ldapConfigFile != null then + "netbox.authentication.LDAPBackend" + else + "netbox.authentication.RemoteUserBackend" + ''; + description = '' + One or multiple [backends] used for authenticating external users. + + When multiple backends are specified, they are tried in order. + + [backends]: https://netbox.readthedocs.io/en/stable/configuration/remote-authentication/#remote_auth_backend + ''; + }; + + LOGGING = mkOption { + type = pythonVars.type; + default = { + version = 1; + + formatters.precise.format = "[%(levelname)s@%(name)s] %(message)s"; + + handlers.console = { + class = "logging.StreamHandler"; + formatter = "precise"; + }; + + # log to console/systemd instead of file + root = { + level = "INFO"; + handlers = [ "console" ]; + }; + }; + description = '' + [Logging configuration] based on the Python [`logging.config`] module. + + [`logging.config`]: https://docs.python.org/3/library/logging.config.html + [Logging configuration]: https://netboxlabs.com/docs/netbox/configuration/system/#logging + ''; + }; }; }; }; + extraConfig = lib.mkOption { + type = types.lines; + default = ""; + example = '' + from os import environ + + # https://python-social-auth.readthedocs.io/en/latest/backends/oidc.html + # From the environment: + SOCIAL_AUTH_OIDC_SECRET = environ.get("OIDC_CLIENT_SECRET") + + # From a file: + with open("/run/keys/oidc-client-secret") as fd: + SOCIAL_AUTH_OIDC_SECRET = fd.read().strip() + ''; + description = '' + Additional lines that are appended to {file}`configuration.py`. + + This option supports native Python code and can be used for reading + secrets from files or the environment into configuration variables: + + Possible options can be found in the [NetBox documentation] or, for + authentication purposes, in the [Python Social Auth] documentation. + + [NetBox documentation]: https://netboxlabs.com/docs/netbox/configuration/ + [Python Social Auth]: https://python-social-auth.readthedocs.io/en/latest/backends/index.html# + ''; + }; + bind = lib.mkOption { - type = lib.types.str; + type = types.str; default = "unix:/run/netbox/netbox.sock"; example = "[::1]:8001"; description = '' @@ -171,7 +373,7 @@ in }; gunicornArgs = lib.mkOption { - type = lib.types.listOf lib.types.str; + type = types.listOf types.str; default = [ ]; description = "extra args for gunicorn when serving netbox"; example = [ @@ -181,7 +383,7 @@ in }; package = lib.mkOption { - type = lib.types.package; + type = types.package; default = if lib.versionAtLeast config.system.stateVersion "26.05" then pkgs.netbox_4_5 else pkgs.netbox_4_4; defaultText = lib.literalExpression '' @@ -195,7 +397,7 @@ in }; plugins = lib.mkOption { - type = with lib.types; functionTo (listOf package); + type = with types; functionTo (listOf package); default = _: [ ]; defaultText = lib.literalExpression '' python3Packages: with python3Packages; []; @@ -206,7 +408,7 @@ in }; dataDir = lib.mkOption { - type = lib.types.str; + type = types.str; default = "/var/lib/netbox"; description = '' Storage path of netbox. @@ -215,7 +417,7 @@ in secretKeyFile = lib.mkOption { type = - with lib.types; + with types; nullOr (pathWith { inStore = false; }); @@ -238,7 +440,7 @@ in apiTokenPepperFiles = lib.mkOption { type = - with lib.types; + with types; attrsOf (pathWith { inStore = false; }); @@ -269,31 +471,16 @@ in ''; }; - extraConfig = lib.mkOption { - type = lib.types.lines; - default = ""; + ldapConfigFile = lib.mkOption { + type = with types; nullOr path; + default = null; description = '' - Additional lines of configuration appended to the `configuration.py`. - See the [documentation](https://docs.netbox.dev/en/stable/configuration/) for more possible options. - ''; - }; + Path to the [LDAP configuration] file, also known as {file}`ldap_config.py`. - enableLdap = lib.mkOption { - type = lib.types.bool; - default = false; - description = '' - Enable LDAP-Authentication for Netbox. + When set, will automatically load the `django-auth-ldap` plugin and + configure {option}`services.netbox.settings.REMOTE_AUTH_BACKEND`. - This requires a configuration file being pass through `ldapConfigPath`. - ''; - }; - - ldapConfigPath = lib.mkOption { - type = lib.types.path; - default = ""; - description = '' - Path to the Configuration-File for LDAP-Authentication, will be loaded as `ldap_config.py`. - See the [documentation](https://netbox.readthedocs.io/en/stable/installation/6-ldap/#configuration) for possible options. + [LDAP configuration]: https://netbox.readthedocs.io/en/stable/installation/6-ldap/#configuration ''; example = '' import ldap @@ -324,60 +511,7 @@ in }; config = lib.mkIf cfg.enable { - services.netbox = { - plugins = lib.mkIf cfg.enableLdap (ps: [ ps.django-auth-ldap ]); - settings = { - STATIC_ROOT = staticDir; - MEDIA_ROOT = "${cfg.dataDir}/media"; - REPORTS_ROOT = "${cfg.dataDir}/reports"; - SCRIPTS_ROOT = "${cfg.dataDir}/scripts"; - - GIT_PATH = "${pkgs.gitMinimal}/bin/git"; - - DATABASES = { - "default" = { - NAME = "netbox"; - USER = "netbox"; - HOST = "/run/postgresql"; - }; - }; - - # Redis database settings. Redis is used for caching and for queuing - # background tasks such as webhook events. A separate configuration - # exists for each. Full connection details are required in both - # sections, and it is strongly recommended to use two separate database - # IDs. - REDIS = { - tasks = { - URL = "unix://${config.services.redis.servers.netbox.unixSocket}?db=0"; - SSL = false; - }; - caching = { - URL = "unix://${config.services.redis.servers.netbox.unixSocket}?db=1"; - SSL = false; - }; - }; - - REMOTE_AUTH_BACKEND = lib.mkIf cfg.enableLdap "netbox.authentication.LDAPBackend"; - - LOGGING = lib.mkDefault { - version = 1; - - formatters.precise.format = "[%(levelname)s@%(name)s] %(message)s"; - - handlers.console = { - class = "logging.StreamHandler"; - formatter = "precise"; - }; - - # log to console/systemd instead of file - root = { - level = "INFO"; - handlers = [ "console" ]; - }; - }; - }; - }; + services.netbox.plugins = lib.mkIf enableLDAP (ps: [ ps.django-auth-ldap ]); services.redis.servers.netbox.enable = true; diff --git a/nixos/tests/web-apps/netbox/default.nix b/nixos/tests/web-apps/netbox/default.nix index beb6d4a267f0..176b08d7c952 100644 --- a/nixos/tests/web-apps/netbox/default.nix +++ b/nixos/tests/web-apps/netbox/default.nix @@ -34,8 +34,7 @@ import ../../make-test-python.nix ( enable = true; package = netbox; - enableLdap = true; - ldapConfigPath = pkgs.writeText "ldap_config.py" '' + ldapConfigFile = pkgs.writeText "ldap_config.py" '' import ldap from django_auth_ldap.config import LDAPSearch, PosixGroupType From 06a84e08885c5e184d7d1f43207000896484e74c Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 13 Jun 2026 04:37:39 +0200 Subject: [PATCH 077/152] nixos/netbox: shared unit settings, structured command line The shared unit settings make it easier to make updates across the units. The structured command line always ensures proper tokenization. --- nixos/modules/services/web-apps/netbox.nix | 123 +++++++++++---------- 1 file changed, 67 insertions(+), 56 deletions(-) diff --git a/nixos/modules/services/web-apps/netbox.nix b/nixos/modules/services/web-apps/netbox.nix index 38332d123ea9..4b00188dd56b 100644 --- a/nixos/modules/services/web-apps/netbox.nix +++ b/nixos/modules/services/web-apps/netbox.nix @@ -51,10 +51,10 @@ let enableLDAP = cfg.ldapConfigFile != null; - pkg = - (cfg.package.overrideAttrs (old: { + finalPackage = + (cfg.package.overrideAttrs (prev: { installPhase = - old.installPhase + prev.installPhase + '' ln -s ${configFile} $out/opt/netbox/netbox/netbox/configuration.py '' @@ -73,15 +73,17 @@ let . "${envFile}" '') cfg.environmentFiles} set +a - export PYTHONPATH=${pkg.pythonPath} + export PYTHONPATH=${finalPackage.pythonPath} case "$(whoami)" in "root") - ${lib.getExe' pkgs.util-linux "runuser"} ${lib.cli.toCommandLineShellGNU { } { - preserve-environment = true; - user = "netbox"; - }} -- ${pkg}/bin/netbox "$@";; + ${lib.getExe' pkgs.util-linux "runuser"} ${ + lib.cli.toCommandLineShellGNU { } { + preserve-environment = true; + user = "netbox"; + } + } -- ${finalPackage}/bin/netbox "$@";; "netbox") - exec ${pkg}/bin/netbox "$@";; + exec ${finalPackage}/bin/netbox "$@";; *) echo "This must be run by either the root or the 'netbox' user." >&2 exit 1 @@ -118,6 +120,9 @@ in [ "services" "netbox" "ldapConfigPath" ] [ "services" "netbox" "ldapConfigFile" ] ) + (mkRemovedOptionModule [ "services" "nginx" "gunicornArgs" ] '' + Removed in favor of `services.netbox.gunicorn.extraArgs`, an attribute set passed to `lib.cli.toCommandLineGNU`. + '') ]; options.services.netbox = { @@ -372,14 +377,19 @@ in ''; }; - gunicornArgs = lib.mkOption { - type = types.listOf types.str; - default = [ ]; - description = "extra args for gunicorn when serving netbox"; - example = [ - "--workers" - "9" - ]; + gunicorn.extraArgs = lib.mkOption { + type = types.attrsOf types.str; + default = { }; + description = '' + Extra arguments passed the Gunicorn process that runs NetBox. + + See for possible flags. + ''; + example = lib.literalExpression '' + { + workers = 9; + ]; + ''; }; package = lib.mkOption { @@ -540,6 +550,10 @@ in systemd.services = let + defaultUnitConfig = { + documentation = [ "https://netboxlabs.com/docs/netbox/" ]; + environment.PYTHONPATH = finalPackage.pythonPath; + }; defaultServiceConfig = { WorkingDirectory = "${cfg.dataDir}"; User = "netbox"; @@ -552,29 +566,26 @@ in }; in { - netbox = { + netbox = defaultUnitConfig // { description = "NetBox WSGI Service"; - documentation = [ "https://docs.netbox.dev/" ]; wantedBy = [ "netbox.target" ]; after = [ "network-online.target" ]; wants = [ "network-online.target" ]; - environment.PYTHONPATH = pkg.pythonPath; - preStart = '' # Generate random default secrets, if the user didn't supply any. ${optionalString (cfg.secretKeyFile == null) '' if [ ! -e "${secretKeyFile}" ]; then - ${pkg}/opt/netbox/netbox/generate_secret_key.py > "${secretKeyFile}" + ${finalPackage}/opt/netbox/netbox/generate_secret_key.py > "${secretKeyFile}" fi ''} ${optionalString (any (path: path == "${cfg.dataDir}/pepper.1") (attrValues cfg.apiTokenPepperFiles)) '' if [ ! -e "${cfg.dataDir}/pepper.1" ]; then - ${pkg}/opt/netbox/netbox/generate_secret_key.py > "${cfg.dataDir}/pepper.1" + ${finalPackage}/opt/netbox/netbox/generate_secret_key.py > "${cfg.dataDir}/pepper.1" fi '' } @@ -587,55 +598,56 @@ in exit 0 fi - ${pkg}/bin/netbox migrate - ${pkg}/bin/netbox trace_paths --no-input - ${pkg}/bin/netbox collectstatic --clear --no-input - ${pkg}/bin/netbox remove_stale_contenttypes --no-input - ${pkg}/bin/netbox reindex --lazy - ${pkg}/bin/netbox clearsessions - ${lib.optionalString - # The clearcache command was removed in 3.7.0: - # https://github.com/netbox-community/netbox/issues/14458 - (lib.versionOlder cfg.package.version "3.7.0") - "${pkg}/bin/netbox clearcache" - } + ${lib.getExe finalPackage} migrate + ${lib.getExe finalPackage} trace_paths --no-input + ${lib.getExe finalPackage} collectstatic --clear --no-input + ${lib.getExe finalPackage} remove_stale_contenttypes --no-input + ${lib.getExe finalPackage} reindex --lazy + ${lib.getExe finalPackage} clearsessions ln -sfn "${cfg.package}" "$versionFile" ''; serviceConfig = defaultServiceConfig // { - ExecStart = '' - ${pkg.gunicorn}/bin/gunicorn netbox.wsgi \ - --bind ${cfg.bind} \ - --pythonpath ${pkg}/opt/netbox/netbox \ - ${lib.concatStringsSep " " cfg.gunicornArgs} - ''; + ExecStart = toString ( + [ + (lib.getExe finalPackage.gunicorn) + "netbox.wsgi" + ] + ++ lib.cli.toCommandLineGNU { } ( + { + inherit (cfg) bind; + pythonpath = "${finalPackage}/opt/netbox/netbox"; + } + // cfg.gunicorn.extraArgs + ) + ); PrivateTmp = true; RuntimeDirectory = "netbox"; TimeoutStartSec = lib.mkDefault "10min"; }; }; - netbox-rq = { + netbox-rq = defaultUnitConfig // { description = "NetBox Request Queue Worker"; - documentation = [ "https://docs.netbox.dev/" ]; wantedBy = [ "netbox.target" ]; after = [ "netbox.service" ]; - environment.PYTHONPATH = pkg.pythonPath; - serviceConfig = defaultServiceConfig // { - ExecStart = '' - ${pkg}/bin/netbox rqworker high default low - ''; + ExecStart = toString [ + (lib.getExe finalPackage) + "rqworker" + "high" + "default" + "low" + ]; PrivateTmp = true; }; }; - netbox-housekeeping = { + netbox-housekeeping = defaultUnitConfig // { description = "NetBox housekeeping job"; - documentation = [ "https://docs.netbox.dev/" ]; wantedBy = [ "multi-user.target" ]; @@ -645,20 +657,19 @@ in ]; wants = [ "network-online.target" ]; - environment.PYTHONPATH = pkg.pythonPath; - serviceConfig = defaultServiceConfig // { Type = "oneshot"; - ExecStart = '' - ${pkg}/bin/netbox housekeeping - ''; + ExecStart = toString [ + (lib.getExe finalPackage) + "housekeeping" + ]; }; }; }; systemd.timers.netbox-housekeeping = { description = "Run NetBox housekeeping job"; - documentation = [ "https://docs.netbox.dev/" ]; + documentation = [ "https://netboxlabs.com/docs/netbox/" ]; wantedBy = [ "multi-user.target" ]; From 53e8dc133a49534a6c7fb2af3c2a3b263f12d9f9 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 13 Jun 2026 05:00:10 +0200 Subject: [PATCH 078/152] nixos/netbox: put all services into a systemd slice Simplifies resource overview and management. --- nixos/modules/services/web-apps/netbox.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nixos/modules/services/web-apps/netbox.nix b/nixos/modules/services/web-apps/netbox.nix index 4b00188dd56b..37a0f76257b7 100644 --- a/nixos/modules/services/web-apps/netbox.nix +++ b/nixos/modules/services/web-apps/netbox.nix @@ -538,6 +538,10 @@ in environment.systemPackages = [ netboxManageScript ]; + systemd.slices.system-netbox = { + description = "Netbox DCIM/IPAM"; + }; + systemd.targets.netbox = { description = "Target for all NetBox services"; wantedBy = [ "multi-user.target" ]; @@ -562,6 +566,7 @@ in StateDirectoryMode = "0750"; Restart = "on-failure"; RestartSec = 30; + Slice = "system-netbox.slice"; EnvironmentFile = cfg.environmentFiles; }; in From 4d576c4839a28b6094386384eb5abcf7ec12e57c Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 13 Jun 2026 19:17:05 +0200 Subject: [PATCH 079/152] nixos/tests/netbox: use wait_for_file helper --- nixos/tests/web-apps/netbox/testScript.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/tests/web-apps/netbox/testScript.py b/nixos/tests/web-apps/netbox/testScript.py index 914e5648560c..9a38b7288bd6 100644 --- a/nixos/tests/web-apps/netbox/testScript.py +++ b/nixos/tests/web-apps/netbox/testScript.py @@ -66,7 +66,7 @@ with subtest("Home screen loads"): ) with subtest("Staticfiles are generated"): - machine.succeed("test -e /var/lib/netbox/static/netbox.js") + machine.wait_for_file("/var/lib/netbox/static/netbox.js") with subtest("Superuser can be created"): machine.succeed( From 5bab8a265b7a195df3e5fb133190ffb7fc61b1a9 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 13 Jun 2026 20:53:56 +0200 Subject: [PATCH 080/152] nixos/netbox: allow opt-out from local postgres and redis This is important, because now users can easily understand that the module takes care of these things, and opt-out if needed. --- nixos/modules/services/web-apps/netbox.nix | 23 ++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/web-apps/netbox.nix b/nixos/modules/services/web-apps/netbox.nix index 37a0f76257b7..584b159309f8 100644 --- a/nixos/modules/services/web-apps/netbox.nix +++ b/nixos/modules/services/web-apps/netbox.nix @@ -392,6 +392,25 @@ in ''; }; + redis.createLocally = mkOption { + type = types.bool; + default = true; + description = '' + Whether to enable and set up a Redis database for NetBox locally. + ''; + }; + + postgresql.createLocally = mkOption { + type = types.bool; + default = true; + description = '' + Whether to enable and set up PostgreSQL locally. + + This will automatically created a database and a local user, that can + authenticate over Unix domain sockets with `SO_PEERCRED`. + ''; + }; + package = lib.mkOption { type = types.package; default = @@ -523,9 +542,9 @@ in config = lib.mkIf cfg.enable { services.netbox.plugins = lib.mkIf enableLDAP (ps: [ ps.django-auth-ldap ]); - services.redis.servers.netbox.enable = true; + services.redis.servers.netbox.enable = cfg.redis.createLocally; - services.postgresql = { + services.postgresql = lib.mkIf cfg.postgresql.createLocally { enable = true; ensureDatabases = [ "netbox" ]; ensureUsers = [ From b50a65023c2f5a0b79ccc9d38238e00c56aa1d2c Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 20 Jun 2026 18:26:43 +0200 Subject: [PATCH 081/152] nixos/netbox: add opt-in nginx support This is part of making way for simpler onboarding, because it stops requiring users to guess where to point the static directory to. --- nixos/modules/services/web-apps/netbox.nix | 347 ++++++++++++--------- nixos/tests/web-apps/netbox-upgrade.nix | 13 +- nixos/tests/web-apps/netbox/default.nix | 17 +- 3 files changed, 201 insertions(+), 176 deletions(-) diff --git a/nixos/modules/services/web-apps/netbox.nix b/nixos/modules/services/web-apps/netbox.nix index 584b159309f8..e3373f3c962d 100644 --- a/nixos/modules/services/web-apps/netbox.nix +++ b/nixos/modules/services/web-apps/netbox.nix @@ -10,6 +10,7 @@ let any attrValues mkChangedOptionModule + mkEnableOption mkOption mkRemovedOptionModule mkRenamedOptionModule @@ -132,8 +133,9 @@ in description = '' Whether to enable Netbox, a DCIM and IPAM source of truth. - This module requires setting up a reverse proxy. The NetBox project has - example configurations for [nginx] and the [Apache httpd] server. + This module requires setting up a reverse proxy and has native support + for nginx. Additionally, the NetBox project has example configurations + for [nginx] and the [Apache httpd] server. The important change to make is to serve `/static` from `''${config.services.netbox.settings.STATIC_ROOT}`. @@ -392,6 +394,23 @@ in ''; }; + nginx = { + enable = mkEnableOption "nginx and configure a virtual host"; + + hostname = mkOption { + type = types.str; + example = "netbox.example.com"; + description = '' + The hostname for which an nginx virtual host should be created. + + ::: {.tip} + Customize the virtual host through + `services.nginx.virtualHosts.''${config.services.netbox.nginx.hostname}`. + ::: + ''; + }; + }; + redis.createLocally = mkOption { type = types.bool; default = true; @@ -539,139 +558,164 @@ in }; }; - config = lib.mkIf cfg.enable { - services.netbox.plugins = lib.mkIf enableLDAP (ps: [ ps.django-auth-ldap ]); - - services.redis.servers.netbox.enable = cfg.redis.createLocally; - - services.postgresql = lib.mkIf cfg.postgresql.createLocally { - enable = true; - ensureDatabases = [ "netbox" ]; - ensureUsers = [ - { - name = "netbox"; - ensureDBOwnership = true; - } - ]; - }; - - environment.systemPackages = [ netboxManageScript ]; - - systemd.slices.system-netbox = { - description = "Netbox DCIM/IPAM"; - }; - - systemd.targets.netbox = { - description = "Target for all NetBox services"; - wantedBy = [ "multi-user.target" ]; - wants = [ "network-online.target" ]; - after = [ - "network-online.target" - "redis-netbox.service" - ]; - }; - - systemd.services = - let - defaultUnitConfig = { - documentation = [ "https://netboxlabs.com/docs/netbox/" ]; - environment.PYTHONPATH = finalPackage.pythonPath; - }; - defaultServiceConfig = { - WorkingDirectory = "${cfg.dataDir}"; - User = "netbox"; - Group = "netbox"; - StateDirectory = "netbox"; - StateDirectoryMode = "0750"; - Restart = "on-failure"; - RestartSec = 30; - Slice = "system-netbox.slice"; - EnvironmentFile = cfg.environmentFiles; - }; - in + config = lib.mkIf cfg.enable ( + lib.mkMerge [ { - netbox = defaultUnitConfig // { - description = "NetBox WSGI Service"; + services.netbox.plugins = lib.mkIf enableLDAP (ps: [ ps.django-auth-ldap ]); - wantedBy = [ "netbox.target" ]; + services.redis.servers.netbox.enable = cfg.redis.createLocally; - after = [ "network-online.target" ]; - wants = [ "network-online.target" ]; - - preStart = '' - # Generate random default secrets, if the user didn't supply any. - ${optionalString (cfg.secretKeyFile == null) '' - if [ ! -e "${secretKeyFile}" ]; then - ${finalPackage}/opt/netbox/netbox/generate_secret_key.py > "${secretKeyFile}" - fi - ''} - ${optionalString - (any (path: path == "${cfg.dataDir}/pepper.1") (attrValues cfg.apiTokenPepperFiles)) - '' - if [ ! -e "${cfg.dataDir}/pepper.1" ]; then - ${finalPackage}/opt/netbox/netbox/generate_secret_key.py > "${cfg.dataDir}/pepper.1" - fi - '' + services.postgresql = lib.mkIf cfg.postgresql.createLocally { + enable = true; + ensureDatabases = [ "netbox" ]; + ensureUsers = [ + { + name = "netbox"; + ensureDBOwnership = true; } + ]; + }; - # On the first run, or on upgrade / downgrade, run migrations and related. - # This mostly correspond to upstream NetBox's 'upgrade.sh' script. - versionFile="${cfg.dataDir}/version" + environment.systemPackages = [ netboxManageScript ]; - if [[ -h "$versionFile" && "$(readlink -- "$versionFile")" == "${cfg.package}" ]]; then - exit 0 - fi + systemd.slices.system-netbox = { + description = "Netbox DCIM/IPAM"; + }; - ${lib.getExe finalPackage} migrate - ${lib.getExe finalPackage} trace_paths --no-input - ${lib.getExe finalPackage} collectstatic --clear --no-input - ${lib.getExe finalPackage} remove_stale_contenttypes --no-input - ${lib.getExe finalPackage} reindex --lazy - ${lib.getExe finalPackage} clearsessions + systemd.targets.netbox = { + description = "Target for all NetBox services"; + wantedBy = [ "multi-user.target" ]; + wants = [ "network-online.target" ]; + after = [ + "network-online.target" + "redis-netbox.service" + ]; + }; - ln -sfn "${cfg.package}" "$versionFile" - ''; + systemd.services = + let + defaultUnitConfig = { + documentation = [ "https://netboxlabs.com/docs/netbox/" ]; + environment.PYTHONPATH = finalPackage.pythonPath; + }; + defaultServiceConfig = { + WorkingDirectory = "${cfg.dataDir}"; + User = "netbox"; + Group = "netbox"; + StateDirectory = "netbox"; + StateDirectoryMode = "0750"; + Restart = "on-failure"; + RestartSec = 30; + Slice = "system-netbox.slice"; + EnvironmentFile = cfg.environmentFiles; + }; + in + { + netbox = defaultUnitConfig // { + description = "NetBox WSGI Service"; - serviceConfig = defaultServiceConfig // { - ExecStart = toString ( - [ - (lib.getExe finalPackage.gunicorn) - "netbox.wsgi" - ] - ++ lib.cli.toCommandLineGNU { } ( - { - inherit (cfg) bind; - pythonpath = "${finalPackage}/opt/netbox/netbox"; + wantedBy = [ "netbox.target" ]; + + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; + + preStart = '' + # Generate random default secrets, if the user didn't supply any. + ${optionalString (cfg.secretKeyFile == null) '' + if [ ! -e "${secretKeyFile}" ]; then + ${finalPackage}/opt/netbox/netbox/generate_secret_key.py > "${secretKeyFile}" + fi + ''} + ${optionalString + (any (path: path == "${cfg.dataDir}/pepper.1") (attrValues cfg.apiTokenPepperFiles)) + '' + if [ ! -e "${cfg.dataDir}/pepper.1" ]; then + ${finalPackage}/opt/netbox/netbox/generate_secret_key.py > "${cfg.dataDir}/pepper.1" + fi + '' } - // cfg.gunicorn.extraArgs - ) - ); - PrivateTmp = true; - RuntimeDirectory = "netbox"; - TimeoutStartSec = lib.mkDefault "10min"; + + # On the first run, or on upgrade / downgrade, run migrations and related. + # This mostly correspond to upstream NetBox's 'upgrade.sh' script. + versionFile="${cfg.dataDir}/version" + + if [[ -h "$versionFile" && "$(readlink -- "$versionFile")" == "${cfg.package}" ]]; then + exit 0 + fi + + ${lib.getExe finalPackage} migrate + ${lib.getExe finalPackage} trace_paths --no-input + ${lib.getExe finalPackage} collectstatic --clear --no-input + ${lib.getExe finalPackage} remove_stale_contenttypes --no-input + ${lib.getExe finalPackage} reindex --lazy + ${lib.getExe finalPackage} clearsessions + + ln -sfn "${cfg.package}" "$versionFile" + ''; + + serviceConfig = defaultServiceConfig // { + ExecStart = toString ( + [ + (lib.getExe finalPackage.gunicorn) + "netbox.wsgi" + ] + ++ lib.cli.toCommandLineGNU { } ( + { + inherit (cfg) bind; + pythonpath = "${finalPackage}/opt/netbox/netbox"; + } + // cfg.gunicorn.extraArgs + ) + ); + PrivateTmp = true; + RuntimeDirectory = "netbox"; + RuntimeDirectoryMode = "0750"; + TimeoutStartSec = lib.mkDefault "10min"; + }; + }; + + netbox-rq = defaultUnitConfig // { + description = "NetBox Request Queue Worker"; + + wantedBy = [ "netbox.target" ]; + after = [ "netbox.service" ]; + + serviceConfig = defaultServiceConfig // { + ExecStart = toString [ + (lib.getExe finalPackage) + "rqworker" + "high" + "default" + "low" + ]; + PrivateTmp = true; + }; + }; + + netbox-housekeeping = defaultUnitConfig // { + description = "NetBox housekeeping job"; + + wantedBy = [ "multi-user.target" ]; + + after = [ + "network-online.target" + "netbox.service" + ]; + wants = [ "network-online.target" ]; + + serviceConfig = defaultServiceConfig // { + Type = "oneshot"; + ExecStart = toString [ + (lib.getExe finalPackage) + "housekeeping" + ]; + }; + }; }; - }; - netbox-rq = defaultUnitConfig // { - description = "NetBox Request Queue Worker"; - - wantedBy = [ "netbox.target" ]; - after = [ "netbox.service" ]; - - serviceConfig = defaultServiceConfig // { - ExecStart = toString [ - (lib.getExe finalPackage) - "rqworker" - "high" - "default" - "low" - ]; - PrivateTmp = true; - }; - }; - - netbox-housekeeping = defaultUnitConfig // { - description = "NetBox housekeeping job"; + systemd.timers.netbox-housekeeping = { + description = "Run NetBox housekeeping job"; + documentation = [ "https://netboxlabs.com/docs/netbox/" ]; wantedBy = [ "multi-user.target" ]; @@ -681,41 +725,36 @@ in ]; wants = [ "network-online.target" ]; - serviceConfig = defaultServiceConfig // { - Type = "oneshot"; - ExecStart = toString [ - (lib.getExe finalPackage) - "housekeeping" - ]; + timerConfig = { + OnCalendar = "daily"; + AccuracySec = "1h"; + Persistent = true; }; }; - }; - systemd.timers.netbox-housekeeping = { - description = "Run NetBox housekeeping job"; - documentation = [ "https://netboxlabs.com/docs/netbox/" ]; + users.users.netbox = { + home = "${cfg.dataDir}"; + isSystemUser = true; + group = "netbox"; + }; + users.groups.netbox = { }; + users.groups."${config.services.redis.servers.netbox.user}".members = [ "netbox" ]; + } - wantedBy = [ "multi-user.target" ]; + (lib.mkIf cfg.nginx.enable { + # Access to STATIC_ROOT and the UNIX domain socket + systemd.services.nginx.serviceConfig.SupplementaryGroups = [ "netbox" ]; - after = [ - "network-online.target" - "netbox.service" - ]; - wants = [ "network-online.target" ]; + services.nginx = { + enable = true; + recommendedProxySettings = true; - timerConfig = { - OnCalendar = "daily"; - AccuracySec = "1h"; - Persistent = true; - }; - }; - - users.users.netbox = { - home = "${cfg.dataDir}"; - isSystemUser = true; - group = "netbox"; - }; - users.groups.netbox = { }; - users.groups."${config.services.redis.servers.netbox.user}".members = [ "netbox" ]; - }; + virtualHosts.${cfg.nginx.hostname} = { + locations."/".proxyPass = "http://${toString config.services.netbox.bind}"; + locations."/static/".alias = cfg.settings.STATIC_ROOT; + }; + }; + }) + ] + ); } diff --git a/nixos/tests/web-apps/netbox-upgrade.nix b/nixos/tests/web-apps/netbox-upgrade.nix index f8ac7c261dd4..ffea21a648cd 100644 --- a/nixos/tests/web-apps/netbox-upgrade.nix +++ b/nixos/tests/web-apps/netbox-upgrade.nix @@ -34,17 +34,10 @@ in # Pick the NetBox package from this config's "pkgs" argument, # so that `nixpkgs.config.permittedInsecurePackages` works package = pkgs.${oldNetbox}; - }; - services.nginx = { - enable = true; - - recommendedProxySettings = true; - - virtualHosts.netbox = { - default = true; - locations."/".proxyPass = "http://${config.services.netbox.bind}"; - locations."/static/".alias = "/var/lib/netbox/static/"; + nginx = { + enable = true; + hostname = "localhost"; }; }; diff --git a/nixos/tests/web-apps/netbox/default.nix b/nixos/tests/web-apps/netbox/default.nix index 176b08d7c952..8ece8d8703fa 100644 --- a/nixos/tests/web-apps/netbox/default.nix +++ b/nixos/tests/web-apps/netbox/default.nix @@ -34,6 +34,11 @@ import ../../make-test-python.nix ( enable = true; package = netbox; + nginx = { + enable = true; + hostname = "localhost"; + }; + ldapConfigFile = pkgs.writeText "ldap_config.py" '' import ldap from django_auth_ldap.config import LDAPSearch, PosixGroupType @@ -61,18 +66,6 @@ import ../../make-test-python.nix ( ''; }; - services.nginx = { - enable = true; - - recommendedProxySettings = true; - - virtualHosts.netbox = { - default = true; - locations."/".proxyPass = "http://${toString config.services.netbox.bind}"; - locations."/static/".alias = "/var/lib/netbox/static/"; - }; - }; - # Adapted from the sssd-ldap NixOS test services.openldap = { enable = true; From f0cd25ba33f3160214c67e1deb94058411125e55 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 20 Jun 2026 18:27:47 +0200 Subject: [PATCH 082/152] nixos/netbox: harden systemd units Limits what the netbox services can do down to a reasonable scope. --- nixos/modules/services/web-apps/netbox.nix | 37 ++++++++++++++++++++++ nixos/tests/web-apps/netbox/default.nix | 4 +++ nixos/tests/web-apps/netbox/testScript.py | 3 ++ 3 files changed, 44 insertions(+) diff --git a/nixos/modules/services/web-apps/netbox.nix b/nixos/modules/services/web-apps/netbox.nix index e3373f3c962d..0065fd382ab8 100644 --- a/nixos/modules/services/web-apps/netbox.nix +++ b/nixos/modules/services/web-apps/netbox.nix @@ -608,6 +608,43 @@ in RestartSec = 30; Slice = "system-netbox.slice"; EnvironmentFile = cfg.environmentFiles; + + AmbientCapabilities = [ "" ]; + CapabilityBoundingSet = [ "" ]; + DevicePolicy = "closed"; + LockPersonality = true; + MemoryDenyWriteExecute = true; + NoNewPrivileges = true; + PrivateDevices = true; + PrivateTmp = true; + ProcSubset = "pid"; + ProtectClock = true; + ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectProc = "invisible"; + ProtectSystem = "strict"; + RemoveIPC = true; + RestrictAddressFamilies = [ + "AF_INET" + "AF_INET6" + "AF_UNIX" + ]; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + SystemCallArchitectures = "native"; + SystemCallErrorNumber = "EPERM"; + SystemCallFilter = [ + "@system-service" + "~@privileged" + "~@resources" + "@chown" + ]; + UMask = "0027"; }; in { diff --git a/nixos/tests/web-apps/netbox/default.nix b/nixos/tests/web-apps/netbox/default.nix index 8ece8d8703fa..4b72f703df89 100644 --- a/nixos/tests/web-apps/netbox/default.nix +++ b/nixos/tests/web-apps/netbox/default.nix @@ -30,6 +30,10 @@ import ../../make-test-python.nix ( containers.machine = { config, ... }: { + boot.kernelParams = [ + # helps debugging seccomp filter issues + "audit=1" + ]; services.netbox = { enable = true; package = netbox; diff --git a/nixos/tests/web-apps/netbox/testScript.py b/nixos/tests/web-apps/netbox/testScript.py index 9a38b7288bd6..2e98cf4d87ef 100644 --- a/nixos/tests/web-apps/netbox/testScript.py +++ b/nixos/tests/web-apps/netbox/testScript.py @@ -285,3 +285,6 @@ if compare(netbox_version, '4.5.2') < 0: t.assertEqual(result["count"], 1) t.assertTrue(any(group["name"] == "${testGroup}" for group in result["results"][0]["groups"])) + +# Print systemd unit hardening state +machine.log(machine.execute("systemd-analyze security netbox.service netbox-rq.service netbox-housekeeping.service | grep -v ✓")[1]) From 7f7d069ad7fdcee7762b512a167ff58aa90c9d15 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 20 Jun 2026 22:07:17 +0200 Subject: [PATCH 083/152] nixos/netbox: add services to redis group conditionally This only makes sense when there is a local redis group, and then we can scope the group membership to the service instead of the whole user. --- nixos/modules/services/web-apps/netbox.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/web-apps/netbox.nix b/nixos/modules/services/web-apps/netbox.nix index 0065fd382ab8..d74c9c926b80 100644 --- a/nixos/modules/services/web-apps/netbox.nix +++ b/nixos/modules/services/web-apps/netbox.nix @@ -81,6 +81,7 @@ let lib.cli.toCommandLineShellGNU { } { preserve-environment = true; user = "netbox"; + supp-group = if cfg.redis.createLocally then config.services.redis.servers.netbox.group else null; } } -- ${finalPackage}/bin/netbox "$@";; "netbox") @@ -608,6 +609,9 @@ in RestartSec = 30; Slice = "system-netbox.slice"; EnvironmentFile = cfg.environmentFiles; + SupplementaryGroups = lib.optionals cfg.redis.createLocally [ + config.services.redis.servers.netbox.group + ]; AmbientCapabilities = [ "" ]; CapabilityBoundingSet = [ "" ]; @@ -775,7 +779,6 @@ in group = "netbox"; }; users.groups.netbox = { }; - users.groups."${config.services.redis.servers.netbox.user}".members = [ "netbox" ]; } (lib.mkIf cfg.nginx.enable { From 809048936dd5e99cf1c825f129d37e9aa8af38bb Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sun, 21 Jun 2026 01:33:14 +0200 Subject: [PATCH 084/152] nixos/doc/rl2611: netbox module changes --- nixos/doc/manual/release-notes/rl-2611.section.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/nixos/doc/manual/release-notes/rl-2611.section.md b/nixos/doc/manual/release-notes/rl-2611.section.md index 01507338ec5f..d669ff6cfc53 100644 --- a/nixos/doc/manual/release-notes/rl-2611.section.md +++ b/nixos/doc/manual/release-notes/rl-2611.section.md @@ -77,6 +77,16 @@ - The `shell_interact()` function on interactive runs of NixOS VM tests has been deprecated. Use the SSH backdoor instead. +- [services.netbox](#opt-services.netbox.enable) has received a number of updates: + - Default settings can now be introspected at [](#opt-services.netbox.settings). + - Environment files can now be passed at [](#opt-services.netbox.environmentFiles). + - When Django [secret key](#opt-services.netbox.secretKeyFile) or [API token peppers](#opt-services.netbox.apiTokenPepperFiles) + remain unset, random values will automatically be generated and stored below `/var/lib/netbox`. + - Multiple peppers can now be maintained, which allows for pepper rotation. + - All options to bind the gunicorn socket have been unified in [](#opt-services.netbox.bind) + and the default changed to a UNIX domain socket. + - A cookie-cutter nginx vhost can be enabled at [](#opt-services.netbox.nginx.enable). + - `security.run0.enableSudoAlias` now uses the `run0-sudo-shim` instead of a shell-script to improve compatibility. - With `system.etc.overlay.mutable = false`, NixOS now ships an empty `/etc/machine-id` in the image. Previously the file was absent and systemd logged `System cannot boot: Missing /etc/machine-id and /etc/ is read-only` while `ConditionFirstBoot` fired on every boot. With this change, systemd now overlays a transient ID from `/run/machine-id` for the session, and `systemd-machine-id-commit.service` has `ConditionFirstBoot` so it writes the machine-id through to a persistent backing file when one is bind-mounted over `/etc/machine-id`. To persist the machine-id across reboots, bind-mount a writable file containing `uninitialized` over `/etc/machine-id` from the initrd, or set `systemd.machine_id=` on the kernel command line (use `systemd.machine_id=firmware` to derive a stable ID on hardware that supports it). From f65784b6b32a23455d78e2ef2e95f198893698b3 Mon Sep 17 00:00:00 2001 From: zraexy Date: Tue, 7 Jul 2026 15:29:59 -0800 Subject: [PATCH 085/152] orca-slicer: add zraexy as maintainer --- pkgs/by-name/or/orca-slicer/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/or/orca-slicer/package.nix b/pkgs/by-name/or/orca-slicer/package.nix index d791e5de6b14..576dbb25ce68 100644 --- a/pkgs/by-name/or/orca-slicer/package.nix +++ b/pkgs/by-name/or/orca-slicer/package.nix @@ -238,6 +238,7 @@ clangStdenv.mkDerivation (finalAttrs: { ovlach pinpox liberodark + zraexy ]; mainProgram = "orca-slicer"; platforms = lib.platforms.linux; From b8bad420de122077148346aa1dda80e44fb6cb04 Mon Sep 17 00:00:00 2001 From: zraexy Date: Tue, 7 Jul 2026 15:33:31 -0800 Subject: [PATCH 086/152] orca-slicer: restore update check patch --- pkgs/by-name/or/orca-slicer/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/or/orca-slicer/package.nix b/pkgs/by-name/or/orca-slicer/package.nix index 576dbb25ce68..f14fc110cf95 100644 --- a/pkgs/by-name/or/orca-slicer/package.nix +++ b/pkgs/by-name/or/orca-slicer/package.nix @@ -137,11 +137,11 @@ clangStdenv.mkDerivation (finalAttrs: { ./patches/dont-link-opencv-world-orca.patch # The changeset from https://github.com/OrcaSlicer/OrcaSlicer/pull/7650, can be removed when that PR gets merged # Allows disabling the update nag screen - #(fetchpatch { - # name = "pr-7650-configurable-update-check.patch"; - # url = "https://github.com/OrcaSlicer/OrcaSlicer/commit/d10a06ae11089cd1f63705e87f558e9392f7a167.patch"; - # hash = "sha256-t4own5AwPsLYBsGA15id5IH1ngM0NSuWdFsrxMRXmTk="; - #}) + (fetchpatch { + name = "pr-7650-configurable-update-check.patch"; + url = "https://github.com/OrcaSlicer/OrcaSlicer/commit/300df7c99b0a2173f645c8bf40e8758eb5f2c486.patch"; + hash = "sha256-hgQeagPhS3aNQoFSq0S+Ch60ygm81uHMIvGopw/AZT8="; + }) # Pick https://github.com/prusa3d/PrusaSlicer/pull/14207 to remove unused and insecure ilmbase dependency ./patches/no-ilmbase.patch From 138998ca74d541ca9410f5823c07d25dc44b9267 Mon Sep 17 00:00:00 2001 From: zraexy Date: Tue, 7 Jul 2026 15:44:07 -0800 Subject: [PATCH 087/152] orca-slicer: add GStreamer gtksink plugin as dependency --- pkgs/by-name/or/orca-slicer/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/or/orca-slicer/package.nix b/pkgs/by-name/or/orca-slicer/package.nix index f14fc110cf95..d3c45c274ba2 100644 --- a/pkgs/by-name/or/orca-slicer/package.nix +++ b/pkgs/by-name/or/orca-slicer/package.nix @@ -111,7 +111,7 @@ clangStdenv.mkDerivation (finalAttrs: { gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-bad - gst_all_1.gst-plugins-good + (gst_all_1.gst-plugins-good.override { gtkSupport = true; }) gtk3 hicolor-icon-theme libsecret From db9c29bbcc4e5bc26593482aec9dd1c7b344b058 Mon Sep 17 00:00:00 2001 From: zraexy Date: Tue, 7 Jul 2026 15:46:49 -0800 Subject: [PATCH 088/152] orca-slicer: 2.4.1 -> 2.4.2 --- pkgs/by-name/or/orca-slicer/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/or/orca-slicer/package.nix b/pkgs/by-name/or/orca-slicer/package.nix index d3c45c274ba2..50cbdeffc260 100644 --- a/pkgs/by-name/or/orca-slicer/package.nix +++ b/pkgs/by-name/or/orca-slicer/package.nix @@ -63,13 +63,13 @@ in # with --cores 32 on clang). clangStdenv.mkDerivation (finalAttrs: { pname = "orca-slicer"; - version = "2.4.1"; + version = "2.4.2"; src = fetchFromGitHub { owner = "OrcaSlicer"; repo = "OrcaSlicer"; tag = "v${finalAttrs.version}"; - hash = "sha256-NJvJAQfkacMjMIirAoOND/G1GaXeMcNleiGQKoe+654="; + hash = "sha256-gUwLC0XkeohEdL0EScdOrA8MWXGuR8kUfezoQsk9i/A="; }; __structuredAttrs = true; From c1c4dd8de28c6214cb92ce499371707c728172ba Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 8 Jul 2026 01:51:27 +0000 Subject: [PATCH 089/152] libdwarf: 2.3.1 -> 2.3.2 --- pkgs/by-name/li/libdwarf/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/li/libdwarf/package.nix b/pkgs/by-name/li/libdwarf/package.nix index c94bc7d2ee8a..99f998365cca 100644 --- a/pkgs/by-name/li/libdwarf/package.nix +++ b/pkgs/by-name/li/libdwarf/package.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "libdwarf"; - version = "2.3.1"; + version = "2.3.2"; src = fetchFromGitHub { owner = "davea42"; repo = "libdwarf-code"; tag = "v${finalAttrs.version}"; - hash = "sha256-azVCzQt9oA40YACa9PkdNt0D8vWRNHXXGoSFOYNJxgA="; + hash = "sha256-65jEnM+eJ7HnZlpEM2D67W0Xgb9B/aa4JhajowG0Z8o="; }; nativeBuildInputs = [ From 684f983b1341385f21c6e7e031cee994de61b052 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 8 Jul 2026 05:57:16 +0000 Subject: [PATCH 090/152] python3Packages.plum-py: 0.8.6 -> 0.8.7 --- pkgs/development/python-modules/plum-py/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/plum-py/default.nix b/pkgs/development/python-modules/plum-py/default.nix index 4d099fd594d3..44a48355705f 100644 --- a/pkgs/development/python-modules/plum-py/default.nix +++ b/pkgs/development/python-modules/plum-py/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "plum-py"; - version = "0.8.6"; + version = "0.8.7"; format = "setuptools"; src = fetchFromGitLab { owner = "dangass"; repo = "plum"; tag = version; - hash = "sha256-gZSRqijKdjqOZe1+4aeycpCPsh6HC5sRbyVjgK+g4wM="; + hash = "sha256-q9UNRZYBLBm0mf/r3cktGnGG9LzmTDrSVgXDgGDBMok="; }; postPatch = '' From db2d4110bda90dd464f92d045832fb0847997419 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20L=C3=B3pez?= Date: Wed, 8 Jul 2026 08:08:19 +0200 Subject: [PATCH 091/152] sail: 0.6.5 -> 0.6.6 --- pkgs/by-name/sa/sail/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/sa/sail/package.nix b/pkgs/by-name/sa/sail/package.nix index ceca9973d555..d58b53ff5087 100644 --- a/pkgs/by-name/sa/sail/package.nix +++ b/pkgs/by-name/sa/sail/package.nix @@ -11,16 +11,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "sail"; - version = "0.6.5"; + version = "0.6.6"; src = fetchFromGitHub { owner = "lakehq"; repo = "sail"; tag = "v${finalAttrs.version}"; - hash = "sha256-pCxlGCOLxupgxCtRfUSLbA88dFIWvO16fgibLmydNBQ="; + hash = "sha256-DpkoC7uShuReOBN5tjvcCSH1LH/e+fj3gp47idsEGEg="; }; - cargoHash = "sha256-V3FS28H+lGORTFYWaMNeLdz0s+Bv4bo3By5VlIOWiOc="; + cargoHash = "sha256-byjxrJN+Q+Rn3pq/FWXxzheZyUs+aoTvfileahqinuA="; cargoBuildFlags = [ "-p" From 7c8da776237d9dfa5bc0996cbe616eb8f5dd7921 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 8 Jul 2026 06:25:24 +0000 Subject: [PATCH 092/152] fluxcd-operator: 0.52.0 -> 0.54.0 --- pkgs/by-name/fl/fluxcd-operator/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/fl/fluxcd-operator/package.nix b/pkgs/by-name/fl/fluxcd-operator/package.nix index 532f254a30be..b952bde62d17 100644 --- a/pkgs/by-name/fl/fluxcd-operator/package.nix +++ b/pkgs/by-name/fl/fluxcd-operator/package.nix @@ -9,13 +9,13 @@ }: buildGoModule (finalAttrs: { pname = "fluxcd-operator"; - version = "0.52.0"; + version = "0.54.0"; src = fetchFromGitHub { owner = "controlplaneio-fluxcd"; repo = "flux-operator"; tag = "v${finalAttrs.version}"; - hash = "sha256-l+IJtFmVR3WZaFW4aaYjirTqj+X1FGLAVgbA21MHO1k="; + hash = "sha256-Bxzqm4I+wTj1k8ppa4cohsowmgc7H76EuHCYlCiJ5Qk="; }; vendorHash = "sha256-DW+dnakqnpSiV7MlzshGEzoy3Osv93dAsJYe4cR0sJ4="; From 07baf93622d30098d52c51ab97be9302a5e1884d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 8 Jul 2026 06:26:52 +0000 Subject: [PATCH 093/152] confluent-cli: 4.68.0 -> 4.70.0 --- pkgs/by-name/co/confluent-cli/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/co/confluent-cli/package.nix b/pkgs/by-name/co/confluent-cli/package.nix index 5ba3019c3e0e..4e3d2fabc11d 100644 --- a/pkgs/by-name/co/confluent-cli/package.nix +++ b/pkgs/by-name/co/confluent-cli/package.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "confluent-cli"; - version = "4.68.0"; + version = "4.70.0"; # To get the latest version: # curl -L https://cnfl.io/cli | sh -s -- -l | grep -v latest | sort -V | tail -n1 @@ -26,10 +26,10 @@ stdenv.mkDerivation (finalAttrs: { fetchurl { url = "https://s3-us-west-2.amazonaws.com/confluent.cloud/confluent-cli/archives/${finalAttrs.version}/confluent_${finalAttrs.version}_${system}.tar.gz"; hash = selectSystem { - x86_64-linux = "sha256-MeLvEE4Qqx9OCnljEbCRMhUXksgaf2YYqFiYK9/fsAc="; - aarch64-linux = "sha256-HU1V9XKgXOZ5oaszL7A4S4uBFhqVGO4ErTkbfrSjDQU="; - x86_64-darwin = "sha256-idXIjruAzuEVTENHpnMQLTdXt0uIYQ3PWKMq3SUAPSY="; - aarch64-darwin = "sha256-t/Z+9uHZxKyrgojs8RdiRiLErooVPGYvk0tl1dxyLiA="; + x86_64-linux = "sha256-52zPTIuJOS+MMG1+pA+f0HI7VvBHLsRnSq5zWorHsiQ="; + aarch64-linux = "sha256-hdhMSZR593rcjch4EVdRshC72aTp1c3dTQBlLCDMsVg="; + x86_64-darwin = "sha256-ybzj3fv+7Wdix9ez7cARazhpkxMGi/EO8NbpneWGN4I="; + aarch64-darwin = "sha256-YOVGl47XOvvHDtm2/VzzLOeFCA6sw8BuDHQWZgzNNtE="; }; }; From 47340d6fae02f40bd05185c3a5704d7d93d1f8fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20L=C3=B3pez?= Date: Wed, 8 Jul 2026 08:42:57 +0200 Subject: [PATCH 094/152] python3Packages.pysail: 0.6.5 -> 0.6.6 --- pkgs/development/python-modules/pysail/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/pysail/default.nix b/pkgs/development/python-modules/pysail/default.nix index 9fabfa299b10..85970bf56c5b 100644 --- a/pkgs/development/python-modules/pysail/default.nix +++ b/pkgs/development/python-modules/pysail/default.nix @@ -13,19 +13,19 @@ buildPythonPackage (finalAttrs: { pname = "pysail"; - version = "0.6.5"; + version = "0.6.6"; pyproject = true; src = fetchFromGitHub { owner = "lakehq"; repo = "sail"; tag = "v${finalAttrs.version}"; - hash = "sha256-pCxlGCOLxupgxCtRfUSLbA88dFIWvO16fgibLmydNBQ="; + hash = "sha256-DpkoC7uShuReOBN5tjvcCSH1LH/e+fj3gp47idsEGEg="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) pname src version; - hash = "sha256-V3FS28H+lGORTFYWaMNeLdz0s+Bv4bo3By5VlIOWiOc="; + hash = "sha256-byjxrJN+Q+Rn3pq/FWXxzheZyUs+aoTvfileahqinuA="; }; # The `generate-import-lib` PyO3 feature only matters when building Windows From f8ac5f6638770fcb6f22b35c641a1aadf2d99a7c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 8 Jul 2026 07:18:03 +0000 Subject: [PATCH 095/152] efm-langserver: 0.0.56 -> 0.0.57 --- pkgs/by-name/ef/efm-langserver/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ef/efm-langserver/package.nix b/pkgs/by-name/ef/efm-langserver/package.nix index ab3fd6b5da79..fb15cd9b59bb 100644 --- a/pkgs/by-name/ef/efm-langserver/package.nix +++ b/pkgs/by-name/ef/efm-langserver/package.nix @@ -6,13 +6,13 @@ buildGoModule (finalAttrs: { pname = "efm-langserver"; - version = "0.0.56"; + version = "0.0.57"; src = fetchFromGitHub { owner = "mattn"; repo = "efm-langserver"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-M2I5UQYCkIVfINWEVa4tOt0Dtl4sBZoHP/q0ia/Bo2Y="; + sha256 = "sha256-LWpm5DyHhrSAGxfwEAM0HABPwfsvWEHZ22U93wdldTw="; }; vendorHash = "sha256-3Rz/9p1moT3rQPY3/lka9HZ16T00+bAWCc950IBTkFE="; From 351fe7aaf70d1f73fe112b883bc1afd64175ea8d Mon Sep 17 00:00:00 2001 From: Ben Brown Date: Wed, 8 Jul 2026 00:46:11 +0100 Subject: [PATCH 096/152] python313Packages.configargparse: 1.7.1 -> 1.7.5 Diff: https://github.com/bw2/ConfigArgParse/compare/refs/tags/1.7.1...v1.7.5 --- .../python-modules/configargparse/default.nix | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/configargparse/default.nix b/pkgs/development/python-modules/configargparse/default.nix index cd3b9b93206a..d6cba9cb5b45 100644 --- a/pkgs/development/python-modules/configargparse/default.nix +++ b/pkgs/development/python-modules/configargparse/default.nix @@ -6,20 +6,25 @@ pytestCheckHook, pyyaml, pythonAtLeast, + setuptools-scm, }: buildPythonPackage rec { pname = "configargparse"; - version = "1.7.1"; + version = "1.7.5"; format = "setuptools"; src = fetchFromGitHub { owner = "bw2"; repo = "ConfigArgParse"; - tag = version; - hash = "sha256-wrWfQzr0smM83helOEJPbayrEpAtXJYYXIw4JnGLNho="; + tag = "v${version}"; + hash = "sha256-ZRdwA3X1TCv0BIwr1gFeSi6UuziXiazciKw/6ewkpRE="; }; + build-system = [ + setuptools-scm + ]; + optional-dependencies = { yaml = [ pyyaml ]; }; From db4bbcfc7172505a7b3b9b3b41aced1a11dda660 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 8 Jul 2026 11:25:54 +0000 Subject: [PATCH 097/152] wtfutil: 0.49.1 -> 0.50.0 --- pkgs/by-name/wt/wtfutil/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/wt/wtfutil/package.nix b/pkgs/by-name/wt/wtfutil/package.nix index 4ed70c5d0cd9..b8cc9359c7ba 100644 --- a/pkgs/by-name/wt/wtfutil/package.nix +++ b/pkgs/by-name/wt/wtfutil/package.nix @@ -11,16 +11,16 @@ buildGoModule (finalAttrs: { pname = "wtfutil"; - version = "0.49.1"; + version = "0.50.0"; src = fetchFromGitHub { owner = "wtfutil"; repo = "wtf"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-b7g/EWr8M99jc0BJcu+JTfifuWK/oeFsOi9vkI9RIA0="; + sha256 = "sha256-sq+8r317JMY8Wbl3KlrmHgIicbs6HZ3BLtG4VGBSHM4="; }; - vendorHash = "sha256-AjrpcP6K937HteHdIyXwEx5srTMWYq4v1Dmd5cch5Pc="; + vendorHash = "sha256-L6ZXbSsmsYH8yPcxNgJ99iJwGOjelsssPoYkeYQmglQ="; proxyVendor = true; doCheck = false; From 9537f36967701c562b11371f00d758ea2b08784d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw=20Pitucha?= Date: Wed, 8 Jul 2026 21:35:48 +1000 Subject: [PATCH 098/152] fm-tune: 1.1 -> 1.2 --- pkgs/by-name/fm/fm-tune/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/fm/fm-tune/package.nix b/pkgs/by-name/fm/fm-tune/package.nix index 29dbe906f52c..aa7e0663dab4 100644 --- a/pkgs/by-name/fm/fm-tune/package.nix +++ b/pkgs/by-name/fm/fm-tune/package.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "fm-tune"; - version = "1.1"; + version = "1.2"; src = fetchFromGitHub { owner = "viraptor"; repo = "fm_tune"; rev = finalAttrs.version; - hash = "sha256-pwL2G1Ni1Ixw/N0diSoGGIoVrtmF92mWZ5i57OOvkX4="; + hash = "sha256-kjTcg8nvhPgpsopIjYsaIsEszYPh86ilkSXMMk+z3x0="; }; nativeBuildInputs = [ pkg-config ]; From ef9d48c0ef98db76c03ae1cbf2cf91072a46e918 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 8 Jul 2026 13:32:42 +0000 Subject: [PATCH 099/152] paretosecurity: 0.3.20 -> 0.3.21 --- pkgs/by-name/pa/paretosecurity/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pa/paretosecurity/package.nix b/pkgs/by-name/pa/paretosecurity/package.nix index ef61f27c426e..f788298a777f 100644 --- a/pkgs/by-name/pa/paretosecurity/package.nix +++ b/pkgs/by-name/pa/paretosecurity/package.nix @@ -17,13 +17,13 @@ buildGoModule (finalAttrs: { webkitgtk_4_1 ]; pname = "paretosecurity"; - version = "0.3.20"; + version = "0.3.21"; src = fetchFromGitHub { owner = "ParetoSecurity"; repo = "agent"; rev = finalAttrs.version; - hash = "sha256-7AEWa2D4cTtDRETNo+GQH1VP1Me5jySx9MPCsHf81CY="; + hash = "sha256-pQ5p52Tf8MtCasTC4ZyDN3EaJfncCCADmK03+mdOQ2s="; }; vendorHash = "sha256-tQkiAVrV1Tjv1VlBJWtfP9vBiiK845EBqM7QvJVsVB8="; From 5c633e03bcb9e309c4ac7b9764414a1eca636483 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 8 Jul 2026 14:15:30 +0000 Subject: [PATCH 100/152] libretro.beetle-saturn: 0-unstable-2026-06-29 -> 0-unstable-2026-07-07 --- .../applications/emulators/libretro/cores/beetle-saturn.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/emulators/libretro/cores/beetle-saturn.nix b/pkgs/applications/emulators/libretro/cores/beetle-saturn.nix index e4648cbd06ec..3772f959ad2a 100644 --- a/pkgs/applications/emulators/libretro/cores/beetle-saturn.nix +++ b/pkgs/applications/emulators/libretro/cores/beetle-saturn.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "mednafen-saturn"; - version = "0-unstable-2026-06-29"; + version = "0-unstable-2026-07-07"; src = fetchFromGitHub { owner = "libretro"; repo = "beetle-saturn-libretro"; - rev = "8299b65134eded90db3fe5edb6aaa98e02bd9cae"; - hash = "sha256-E83T6TUzy2envOh25xZ/y6kKb+lk67nOHp1dJXK4UK4="; + rev = "6f0cb9d1b9689601cd7dbf08e992d232304f50f7"; + hash = "sha256-Q50CQDLO090csrF73fo2qxzIaV7o3E8YS9MdQZBp/V8="; }; makefile = "Makefile"; From 5096f566763b8167c381a1ea2622c3eb94c85b9c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 8 Jul 2026 14:29:27 +0000 Subject: [PATCH 101/152] xk6: 1.4.3 -> 1.4.7 --- pkgs/by-name/xk/xk6/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/xk/xk6/package.nix b/pkgs/by-name/xk/xk6/package.nix index 806e85a7ddca..749d2b7bfa63 100644 --- a/pkgs/by-name/xk/xk6/package.nix +++ b/pkgs/by-name/xk/xk6/package.nix @@ -9,13 +9,13 @@ buildGoModule rec { pname = "xk6"; - version = "1.4.3"; + version = "1.4.7"; src = fetchFromGitHub { owner = "grafana"; repo = "xk6"; tag = "v${version}"; - hash = "sha256-dQiv+weenG3o7eUHtfUzGFPYAXCspyRSPclQjhje7+U="; + hash = "sha256-ZJJlwP3jI8/J8XIg2oqtPY5Bojm7xuYCnBJ7B+qbDSU="; }; vendorHash = null; From caa738792aa9b7f8442f56db5b2fc5fc7bdf3790 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 8 Jul 2026 15:29:38 +0000 Subject: [PATCH 102/152] infracost: 0.10.44 -> 0.10.45 --- pkgs/by-name/in/infracost/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/in/infracost/package.nix b/pkgs/by-name/in/infracost/package.nix index 4f56c8ea08fd..ea2a068ba0c6 100644 --- a/pkgs/by-name/in/infracost/package.nix +++ b/pkgs/by-name/in/infracost/package.nix @@ -8,15 +8,15 @@ buildGoModule (finalAttrs: { pname = "infracost"; - version = "0.10.44"; + version = "0.10.45"; src = fetchFromGitHub { owner = "infracost"; rev = "v${finalAttrs.version}"; repo = "infracost"; - sha256 = "sha256-7TH7ZWANQMlhfpCP5OdiQCL6OsFP1RK5YGV8hGuouBY="; + sha256 = "sha256-ionW8XChMCQxekKqbiNc6wSu5pxdG59WX2CxlCqStXk="; }; - vendorHash = "sha256-ZG6DjYcHvEii55ayx6x168L2v04n/pAZRqqQ7DKvugA="; + vendorHash = "sha256-fwMVYzbCHENra1ySNMQnWF/JnYngO/oHgxZvMZ2+3TQ="; ldflags = [ "-s" From ff968d9e9bb87a91a92b1f7cf8156ea7730abc54 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 8 Jul 2026 15:57:20 +0000 Subject: [PATCH 103/152] oui: 2.0.7 -> 2.1.0 --- pkgs/by-name/ou/oui/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ou/oui/package.nix b/pkgs/by-name/ou/oui/package.nix index 1c247adbe871..3856b9158101 100644 --- a/pkgs/by-name/ou/oui/package.nix +++ b/pkgs/by-name/ou/oui/package.nix @@ -7,13 +7,13 @@ buildGoModule (finalAttrs: { pname = "oui"; - version = "2.0.7"; + version = "2.1.0"; src = fetchFromGitHub { owner = "thatmattlove"; repo = "oui"; rev = "v${finalAttrs.version}"; - hash = "sha256-lwjDFd2rxMh7kHOuwgIeA2/gnzHoNkGKTQGd/xqshZY="; + hash = "sha256-8hzemGUeUU1QmXJogkr4LLpSgwt1BMqTNTft8PxwmDQ="; }; vendorHash = "sha256-EOu9imj0YwYhHX7ZzE9BzhkoDitC5AHjlwoWmQs0Rj4="; From 9de08facc7402e9ccd22f7d3dc68eb611adf6a79 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 8 Jul 2026 18:44:51 +0000 Subject: [PATCH 104/152] vscode-extensions.redhat.vscode-yaml: 1.23.0 -> 1.24.0 --- pkgs/applications/editors/vscode/extensions/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index f4263c67fb5b..18a0a4e94aff 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -3924,8 +3924,8 @@ let mktplcRef = { publisher = "redhat"; name = "vscode-yaml"; - version = "1.23.0"; - hash = "sha256-GC7AIQIUw+F5rBscTe+ulKt/97s7p636TLRvmcT9b9c="; + version = "1.24.0"; + hash = "sha256-Bmh1gxKn+mvtolnKWmhJ2QxdUZ32QV7b4kbBNeBtcWg="; }; meta = { description = "YAML Language Support by Red Hat, with built-in Kubernetes syntax support"; From 3fb1848ebcfbca42f854660a5cd2746febfb0284 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 8 Jul 2026 20:49:46 +0000 Subject: [PATCH 105/152] cri-o-unwrapped: 1.36.1 -> 1.36.2 --- pkgs/by-name/cr/cri-o-unwrapped/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/cr/cri-o-unwrapped/package.nix b/pkgs/by-name/cr/cri-o-unwrapped/package.nix index 793a620ccf05..7910c5f8c099 100644 --- a/pkgs/by-name/cr/cri-o-unwrapped/package.nix +++ b/pkgs/by-name/cr/cri-o-unwrapped/package.nix @@ -17,13 +17,13 @@ buildGoModule (finalAttrs: { pname = "cri-o"; - version = "1.36.1"; + version = "1.36.2"; src = fetchFromGitHub { owner = "cri-o"; repo = "cri-o"; tag = "v${finalAttrs.version}"; - hash = "sha256-QHI90s2LOa0Jenz+Q++nNuyOAxCx3sOcClBaTKeIUbo="; + hash = "sha256-mrR0Q23PCe2OMCgH6AgmSzE4zmZzTA6SiMD8OYiWdpE="; }; vendorHash = null; From b20448f1b933a13549e7a75492fe8bdd1fd6bc29 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 9 Jul 2026 00:45:55 +0000 Subject: [PATCH 106/152] SDL_image: 1.2.12-unstable-2026-05-13 -> 1.2.12-unstable-2026-07-05 --- pkgs/by-name/sd/SDL_image/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/sd/SDL_image/package.nix b/pkgs/by-name/sd/SDL_image/package.nix index f85e5ff2763e..e9e12d6f326e 100644 --- a/pkgs/by-name/sd/SDL_image/package.nix +++ b/pkgs/by-name/sd/SDL_image/package.nix @@ -15,13 +15,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "SDL_image"; - version = "1.2.12-unstable-2026-05-13"; + version = "1.2.12-unstable-2026-07-05"; src = fetchFromGitHub { owner = "libsdl-org"; repo = "SDL_image"; - rev = "822207ee09095b8f0a936f6f2d62e020f92a4c24"; - hash = "sha256-a4WmLjsVC409UTbTVtMmRXaYuNN3fVwzz8F4XMV/cNI="; + rev = "2ffb2e3e1eba037897164e3ac6c67570d8bccd79"; + hash = "sha256-fGwSb3GYfzcrWn7F70xhNxBXygYdD2uuzFQudS1lCqU="; }; configureFlags = [ From 21b0555c4709203de823bc60d15826623c289fe0 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 9 Jul 2026 01:01:55 +0000 Subject: [PATCH 107/152] beidconnect: 2.11 -> 2.12 --- pkgs/by-name/be/beidconnect/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/be/beidconnect/package.nix b/pkgs/by-name/be/beidconnect/package.nix index 00550fd21155..cd6cda7aa18f 100644 --- a/pkgs/by-name/be/beidconnect/package.nix +++ b/pkgs/by-name/be/beidconnect/package.nix @@ -10,13 +10,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "beidconnect"; - version = "2.11"; + version = "2.12"; src = fetchFromGitHub { owner = "Fedict"; repo = "fts-beidconnect"; rev = finalAttrs.version; - hash = "sha256-4eKO2yw2Ipfu1PvebgOR+BihsLlnWIJejGWqjztPA2I="; + hash = "sha256-ZFxq/rJP0/KSsi2qsXyKY9Fmb+JxeakTdso5FsVu1/c="; }; nativeBuildInputs = [ pkg-config ]; From 269d54e9ecf30bc04ce8c743fc5b769a573312b4 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 9 Jul 2026 10:28:31 +0000 Subject: [PATCH 108/152] harbor-cli: 0.0.23 -> 0.0.24 --- pkgs/by-name/ha/harbor-cli/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ha/harbor-cli/package.nix b/pkgs/by-name/ha/harbor-cli/package.nix index 77079d474920..24a5853a4622 100644 --- a/pkgs/by-name/ha/harbor-cli/package.nix +++ b/pkgs/by-name/ha/harbor-cli/package.nix @@ -10,13 +10,13 @@ buildGoModule (finalAttrs: { pname = "harbor-cli"; - version = "0.0.23"; + version = "0.0.24"; src = fetchFromGitHub { owner = "goharbor"; repo = "harbor-cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-lh0ZMrjzCiQvpzRddms4uEKlUdxcDdHTfkYdmQ5hc9k="; + hash = "sha256-XL9w33ZPmB0imK8dudxj4zoUxDbUdpWaCu8u/1c6wG4="; }; vendorHash = "sha256-Iy+Kf0Kf1yuFk+shbomT0Z1zMvAbdWT4vLshAjlqvck="; From 719c8fe5821118e144319cacee445b2173f7d385 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 9 Jul 2026 12:32:54 +0000 Subject: [PATCH 109/152] codebook: 0.3.41 -> 0.3.42 --- pkgs/by-name/co/codebook/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/co/codebook/package.nix b/pkgs/by-name/co/codebook/package.nix index dd5412d834d3..40b492d080ee 100644 --- a/pkgs/by-name/co/codebook/package.nix +++ b/pkgs/by-name/co/codebook/package.nix @@ -8,17 +8,17 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "codebook"; - version = "0.3.41"; + version = "0.3.42"; src = fetchFromGitHub { owner = "blopker"; repo = "codebook"; tag = "v${finalAttrs.version}"; - hash = "sha256-QmvkN0e4iwf3gwi/wMnGXlbr9CpG9JvWEuAjlFm50Sk="; + hash = "sha256-L+OVR7JHs9qFh48ET2eugl4zZIpbM4DBtoWsHKzKbks="; }; buildAndTestSubdir = "crates/codebook-lsp"; - cargoHash = "sha256-vh4ObFy3pq6e3+DQhYiWNTeaITm+ci/r4CwfAvO3JqU="; + cargoHash = "sha256-+OmaZkae5b5TKfMwlYGijJTD5gGS/YuoQOvKKfKuipk="; env = { CARGO_PROFILE_RELEASE_LTO = "fat"; From e2db7f2f840376acd14100115a4c57b80e9f53af Mon Sep 17 00:00:00 2001 From: Arthur Ficial Date: Thu, 9 Jul 2026 17:53:06 +0200 Subject: [PATCH 110/152] apfel-llm: 1.7.0 -> 1.8.3 --- pkgs/by-name/ap/apfel-llm/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ap/apfel-llm/package.nix b/pkgs/by-name/ap/apfel-llm/package.nix index d7addc119fb4..2f8c4f6cd107 100644 --- a/pkgs/by-name/ap/apfel-llm/package.nix +++ b/pkgs/by-name/ap/apfel-llm/package.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "apfel-llm"; - version = "1.7.0"; + version = "1.8.3"; __structuredAttrs = true; strictDeps = true; @@ -16,7 +16,7 @@ stdenv.mkDerivation (finalAttrs: { # Building from source requires swift 6.3.0 while nixpkgs only has 5.10.1 src = fetchurl { url = "https://github.com/Arthur-Ficial/apfel/releases/download/v${finalAttrs.version}/apfel-${finalAttrs.version}-arm64-macos.tar.gz"; - hash = "sha256-q0DvI+D52Rz/LWQDX/oVRWJqeepJY8+CLOWrZT4yInk="; + hash = "sha256-1AA86f5+Poo5YCrtxT1rAPGBctQbNa5hdAZmI008/yU="; }; sourceRoot = "."; From 1725027c8d236b92c179a61b5995d078547ab6c0 Mon Sep 17 00:00:00 2001 From: Oleksii Filonenko Date: Thu, 9 Jul 2026 18:23:02 +0100 Subject: [PATCH 111/152] raycast-beta: 0.65.1.0 -> 0.68.0.0 --- pkgs/by-name/ra/raycast-beta/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ra/raycast-beta/package.nix b/pkgs/by-name/ra/raycast-beta/package.nix index fa0cbb06b2e8..9a41db61d4a5 100644 --- a/pkgs/by-name/ra/raycast-beta/package.nix +++ b/pkgs/by-name/ra/raycast-beta/package.nix @@ -11,7 +11,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "raycast-beta"; - version = "0.65.1.0"; + version = "0.68.0.0"; __structuredAttrs = true; strictDeps = true; @@ -20,8 +20,8 @@ stdenvNoCC.mkDerivation (finalAttrs: { { aarch64-darwin = fetchurl { name = "Raycast_Beta.dmg"; - url = "https://x-r2.raycast-releases.com/Raycast_Beta_0.65.1.0_66eacbc22e_arm64.dmg"; - hash = "sha256-K9OuqlUR0E3hIVonSuBYAWFAvQCZQG35fsv5OWO8gKM="; + url = "https://x-r2.raycast-releases.com/Raycast_Beta_0.68.0.0_c991260b0f_arm64.dmg"; + hash = "sha256-GD2iZeBBUhRbkbLaAw1EJtlOlBFqeMHUDdzNUk1DxO0="; }; } .${stdenvNoCC.system} or (throw "raycast-beta: ${stdenvNoCC.system} is unsupported."); From e7d35f9d19719140d4e20e619912a82ca811dce7 Mon Sep 17 00:00:00 2001 From: Bart Oostveen Date: Thu, 9 Jul 2026 20:28:14 +0200 Subject: [PATCH 112/152] wordpress_7_0: 7.0 -> 7.0.1 Announcement: https://wordpress.org/news/2026/07/wordpress-7-0-1-maintenance-release/ Changelog: https://make.wordpress.org/core/2026/07/01/wordpress-7-0-1-rc1-is-now-available/ --- pkgs/servers/web-apps/wordpress/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/web-apps/wordpress/default.nix b/pkgs/servers/web-apps/wordpress/default.nix index 46e1dee4a916..378471172e4b 100644 --- a/pkgs/servers/web-apps/wordpress/default.nix +++ b/pkgs/servers/web-apps/wordpress/default.nix @@ -10,7 +10,7 @@ builtins.mapAttrs (_: callPackage ./generic.nix) rec { hash = "sha256-22EK2fVJ4Ku1rz49XGcpxY2HRDllTN8K/qQlsuqJXzU="; }; wordpress_7_0 = { - version = "7.0"; - hash = "sha256-UwyP3rFvsK/9tT63J7agS7jRZmIcIAKeOJyrsBoPqSE="; + version = "7.0.1"; + hash = "sha256-3BBZLam1gMdSVjKFDgzO03GxMIGFOsKa/pO11bsA25g="; }; } From d1858c5b2d607d7ce15352b26b0ab98fa49924ec Mon Sep 17 00:00:00 2001 From: wiyba Date: Sat, 31 Jan 2026 20:03:48 +0300 Subject: [PATCH 113/152] maintainers: add wiyba --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index fd46bd25461c..5a5b106c824f 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -30257,6 +30257,12 @@ githubId = 36118348; keys = [ { fingerprint = "69C9 876B 5797 1B2E 11C5 7C39 80A1 F76F C9F9 54AE"; } ]; }; + wiyba = { + name = "Dmitry Shmakov"; + email = "contact@wiyba.org"; + github = "wiyba"; + githubId = 81859776; + }; wizardlink = { name = "wizardlink"; email = "contact@thewizard.link"; From c5bec244e6b46c1dd0e749df330535ce2463d5db Mon Sep 17 00:00:00 2001 From: NONPLAY <76615486+NONPLAYT@users.noreply.github.com> Date: Thu, 9 Jul 2026 23:04:27 +0300 Subject: [PATCH 114/152] maintainers: add nonplay --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 5a5b106c824f..322e5b5896f5 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -20404,6 +20404,12 @@ githubId = 47303199; name = "Simon Gutgesell"; }; + nonplay = { + name = "Artem Ostrasev"; + email = "nonplay@bxteam.org"; + github = "NONPLAYT"; + githubId = 76615486; + }; noodlez1232 = { email = "contact@nathanielbarragan.xyz"; matrix = "@noodlez1232:matrix.org"; From dd77fea3ec9044878794c4f3934c8f5757e7c591 Mon Sep 17 00:00:00 2001 From: wiyba Date: Thu, 9 Jul 2026 23:06:16 +0300 Subject: [PATCH 115/152] musicpresence: init at 2.3.6 --- pkgs/by-name/mu/musicpresence/package.nix | 77 +++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 pkgs/by-name/mu/musicpresence/package.nix diff --git a/pkgs/by-name/mu/musicpresence/package.nix b/pkgs/by-name/mu/musicpresence/package.nix new file mode 100644 index 000000000000..d318a9e80955 --- /dev/null +++ b/pkgs/by-name/mu/musicpresence/package.nix @@ -0,0 +1,77 @@ +{ + lib, + stdenv, + fetchurl, + autoPatchelfHook, + makeWrapper, + libGL, + libxcb, + libx11, + wayland, + fontconfig, + freetype, + libgpg-error, + e2fsprogs, + xkeyboard_config, + qt6, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "musicpresence"; + version = "2.3.6"; + + src = fetchurl { + url = "https://github.com/ungive/discord-music-presence/releases/download/v${finalAttrs.version}/musicpresence-${finalAttrs.version}-linux-x86_64.tar.gz"; + hash = "sha256-w3y1I6nnztEMaihbXIfQqB0ng6s07iA8bqC8PDq+E+I="; + }; + + nativeBuildInputs = [ + autoPatchelfHook + makeWrapper + ]; + + buildInputs = [ + libGL + libxcb + libx11 + wayland + fontconfig + freetype + libgpg-error + e2fsprogs + stdenv.cc.cc.lib + ]; + + dontBuild = true; + dontConfigure = true; + + strictDeps = true; + __structuredAttrs = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + cp -r usr/share $out/ + + makeWrapper $out/share/musicpresence/bin/musicpresence $out/bin/musicpresence \ + --set XKB_CONFIG_ROOT "${xkeyboard_config}/share/X11/xkb" \ + --prefix QT_PLUGIN_PATH : "${qt6.qtwayland}/${qt6.qtbase.qtPluginPrefix}" \ + --unset QT_STYLE_OVERRIDE + + runHook postInstall + ''; + + meta = { + description = "Discord music status that works with any media player"; + homepage = "https://github.com/ungive/discord-music-presence"; + license = lib.licenses.unfree; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + platforms = [ "x86_64-linux" ]; + mainProgram = "musicpresence"; + maintainers = with lib.maintainers; [ + wiyba + nonplay + ]; + }; +}) From b307ffe220fec523f2d13529d71466d55fbc356f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 9 Jul 2026 22:57:11 +0000 Subject: [PATCH 116/152] python3Packages.msrplib: 0.21.0-unstable-2021-06-01 -> 0.21.0-unstable-2026-07-09 --- pkgs/development/python-modules/msrplib/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/msrplib/default.nix b/pkgs/development/python-modules/msrplib/default.nix index c6d769382825..8baa035a0a2e 100644 --- a/pkgs/development/python-modules/msrplib/default.nix +++ b/pkgs/development/python-modules/msrplib/default.nix @@ -8,15 +8,15 @@ buildPythonPackage { pname = "msrplib"; - version = "0.21.0-unstable-2021-06-01"; + version = "0.21.0-unstable-2026-07-09"; pyproject = true; src = fetchFromGitHub { owner = "AGProjects"; repo = "python3-msrplib"; # no tag pushed for version 0.21.1 release, and commit title is wrong - rev = "5bd069620d436d5a65e1c369e43cc6b88857fb9e"; - hash = "sha256-z0gF/oQW/h3qiCL1cFWBPK7JYzLCNAD7/dg7HfY4rig="; + rev = "1b50e00b2b242be41287b3e3ae3ef02c5a7b96e6"; + hash = "sha256-HmIuJl/H94GX0caT+uKriz8RMkpzuFgsPPyPhwo3kHM="; }; build-system = [ From ce922106ccb7d3b627d1c80426113221a62b5768 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Fri, 10 Jul 2026 00:45:19 +0100 Subject: [PATCH 117/152] bentopdf: 1.11.2 -> 2.8.6 Fixes #518346 --- nixos/tests/bentopdf/caddy.nix | 2 +- nixos/tests/bentopdf/nginx.nix | 2 +- pkgs/by-name/be/bentopdf/package.nix | 10 ++++------ 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/nixos/tests/bentopdf/caddy.nix b/nixos/tests/bentopdf/caddy.nix index 0f4fc88063db..9780f1e890a5 100644 --- a/nixos/tests/bentopdf/caddy.nix +++ b/nixos/tests/bentopdf/caddy.nix @@ -22,7 +22,7 @@ import ../make-test-python.nix ( machine.wait_for_unit("caddy.service") machine.wait_for_open_port(80) machine.succeed("curl -vvv --fail --show-error --silent --location --insecure http://localhost/") - assert "BentoPDF - The Privacy First PDF Toolkit" in machine.succeed("curl --fail --show-error --silent --location --insecure http://localhost/") + assert "PDF Tools" in machine.succeed("curl --fail --show-error --silent --location --insecure http://localhost/") ''; } ) diff --git a/nixos/tests/bentopdf/nginx.nix b/nixos/tests/bentopdf/nginx.nix index 257dc909894e..68720403a3a4 100644 --- a/nixos/tests/bentopdf/nginx.nix +++ b/nixos/tests/bentopdf/nginx.nix @@ -18,7 +18,7 @@ import ../make-test-python.nix ( testScript = '' machine.wait_for_unit("nginx.service") machine.wait_for_open_port(80) - assert "BentoPDF - The Privacy First PDF Toolkit" in machine.succeed("curl --fail --show-error --silent --location --insecure http://localhost:80/") + assert "PDF Tools" in machine.succeed("curl --fail --show-error --silent --location --insecure http://localhost:80/") ''; } ) diff --git a/pkgs/by-name/be/bentopdf/package.nix b/pkgs/by-name/be/bentopdf/package.nix index 9032644598ab..a8f8afa3b938 100644 --- a/pkgs/by-name/be/bentopdf/package.nix +++ b/pkgs/by-name/be/bentopdf/package.nix @@ -7,18 +7,16 @@ }: buildNpmPackage (finalAttrs: { pname = "bentopdf"; - # We intentionally don't update the version, due to: - # https://github.com/NixOS/nixpkgs/issues/484067 - # nixpkgs-update: no auto update - version = "1.11.2"; + version = "2.8.6"; src = fetchFromGitHub { owner = "alam00000"; repo = "bentopdf"; tag = "v${finalAttrs.version}"; - hash = "sha256-br4My0Q4zoA+ZIrXM4o4oQjZ7IpSdwg+iKiAUdc2B/s="; + hash = "sha256-rbThEonDXFGcudgdMtDrQHq84Wh4IvOZZBn4kXvrhoI="; }; - npmDepsHash = "sha256-UNNNYO7e7qdumI0/ka2ieFZzKURPl1V3981vHCPcVfY="; + npmDepsHash = "sha256-RT6ifx24mNfNS8oO93vyW+zbKQGCx21RqBQrAXK8dAY="; + npmDepsFetcherVersion = 2; npmBuildFlags = [ "--" From e67e863b42102e34696341103c1e25d10f05109f Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Fri, 10 Jul 2026 00:46:49 +0100 Subject: [PATCH 118/152] bentopdf: add passthru.updateScript --- pkgs/by-name/be/bentopdf/package.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/be/bentopdf/package.nix b/pkgs/by-name/be/bentopdf/package.nix index a8f8afa3b938..5054b1076431 100644 --- a/pkgs/by-name/be/bentopdf/package.nix +++ b/pkgs/by-name/be/bentopdf/package.nix @@ -2,6 +2,7 @@ lib, buildNpmPackage, fetchFromGitHub, + nix-update-script, nixosTests, simpleMode ? true, }: @@ -35,8 +36,11 @@ buildNpmPackage (finalAttrs: { runHook postInstall ''; - passthru.tests = { - inherit (nixosTests.bentopdf) caddy nginx; + passthru = { + tests = { + inherit (nixosTests.bentopdf) caddy nginx; + }; + updateScript = nix-update-script { }; }; meta = { From 825247703a0a06f5f7dbe486e2787eac21344ffa Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Jul 2026 01:12:46 +0000 Subject: [PATCH 119/152] fence: 0.1.61 -> 0.1.62 --- 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 fc4007422868..94998281cf30 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.61"; + version = "0.1.62"; src = fetchFromGitHub { owner = "fencesandbox"; repo = "fence"; tag = "v${finalAttrs.version}"; - hash = "sha256-/IVxTPgAzl+mX85M1IyD+21O8j/tIxt2a18TLtQz/zk="; + hash = "sha256-uJfQFOKR3f8OjzA1z18IeKvhAgTmQQ7o4Y7K4CFbwko="; }; vendorHash = "sha256-aMxay3dow6mDKyv396R0j1GOKDmhkX4ebGmhca1B4WE="; From 834624ed0d71b4613991658391d0db0478bddde2 Mon Sep 17 00:00:00 2001 From: "Adam C. Stephens" Date: Thu, 9 Jul 2026 22:43:38 -0400 Subject: [PATCH 120/152] shelfmark: 1.3.2 -> 1.3.3 Changelog: https://github.com/calibrain/shelfmark/releases/tag/v1.3.3 --- pkgs/by-name/sh/shelfmark/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/sh/shelfmark/package.nix b/pkgs/by-name/sh/shelfmark/package.nix index 1a6f3af13afa..af184dbe5260 100644 --- a/pkgs/by-name/sh/shelfmark/package.nix +++ b/pkgs/by-name/sh/shelfmark/package.nix @@ -37,13 +37,13 @@ let apprise ]; - version = "1.3.2"; + version = "1.3.3"; src = fetchFromGitHub { owner = "calibrain"; repo = "shelfmark"; tag = "v${version}"; - hash = "sha256-3Z+e7d8kSckbIfobm8peOlg19IkW7AidJ3wOjz4dEOc="; + hash = "sha256-uRuSFWjEnJp3cMx4IeM9akpj+l/36/jgIRavoan9iAU="; }; frontend = buildNpmPackage (finalAttrs: { @@ -52,7 +52,7 @@ let sourceRoot = "${finalAttrs.src.name}/src/frontend"; - npmDepsHash = "sha256-fdocgRnduehA3LKHrVrxGmLEYgZDRTo20HSCh80RJIg="; + npmDepsHash = "sha256-oqEUiHOHx78+plHUnsOtdv0S3ZhaHr0CAb7kA0VbG/k="; installPhase = '' runHook preInstall From 7694f305d4d9f0263961b00ccec6ed86859ee369 Mon Sep 17 00:00:00 2001 From: phanirithvij Date: Fri, 10 Jul 2026 07:49:32 +0530 Subject: [PATCH 121/152] pdfding: 1.9.0 -> 1.10.0 Diff: https://github.com/mrmn2/PdfDing/compare/v1.9.0...v1.10.0 Changelog: https://github.com/mrmn2/PdfDing/releases/tag/v1.10.0 Signed-off-by: phanirithvij --- pkgs/by-name/pd/pdfding/frontend.nix | 2 +- pkgs/by-name/pd/pdfding/package.nix | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/pd/pdfding/frontend.nix b/pkgs/by-name/pd/pdfding/frontend.nix index 2f561bf59dd6..5a1c5566b523 100644 --- a/pkgs/by-name/pd/pdfding/frontend.nix +++ b/pkgs/by-name/pd/pdfding/frontend.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: { npmDeps = fetchNpmDeps { inherit (finalAttrs) src; name = "pdfding-${finalAttrs.version}-npm-deps"; - hash = "sha256-fxhDP/kyDfL1uiZCUNr2Cd6vDnyb9V+gTSNPyjSIm18="; + hash = "sha256-TDX2xoHj07aUeuLPt/TlgkdRdTiv3fNbriChzEB4EXk="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/pd/pdfding/package.nix b/pkgs/by-name/pd/pdfding/package.nix index 76dbeefde5a5..c5657c801ce9 100644 --- a/pkgs/by-name/pd/pdfding/package.nix +++ b/pkgs/by-name/pd/pdfding/package.nix @@ -12,12 +12,12 @@ let in python.pkgs.buildPythonPackage (finalAttrs: { pname = "pdfding"; - version = "1.9.0"; + version = "1.10.0"; src = fetchFromGitHub { owner = "mrmn2"; repo = "PdfDing"; tag = "v${finalAttrs.version}"; - hash = "sha256-r3hO92iriQ/0KDl+D/0j5RoneTTCDmt8m4e7ugzyOPs="; + hash = "sha256-C1osj8V9+z3ahl4+zUtyI22GMtSgNLzfdGttL7gPDvY="; }; pyproject = true; @@ -132,11 +132,11 @@ python.pkgs.buildPythonPackage (finalAttrs: { ''; pythonRelaxDeps = [ + "django" "gunicorn" "huey" "nh3" "psycopg2-binary" - "pypdf" "pypdfium2" ]; From 656f072b88e8f1c82b038265232bfade43ae8e97 Mon Sep 17 00:00:00 2001 From: phanirithvij Date: Fri, 10 Jul 2026 10:22:37 +0530 Subject: [PATCH 122/152] nixosTests.pdfding.s3-backup: fix test Signed-off-by: phanirithvij --- nixos/tests/web-apps/pdfding/s3-backups.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nixos/tests/web-apps/pdfding/s3-backups.nix b/nixos/tests/web-apps/pdfding/s3-backups.nix index a3955c968b0d..5a1184b1aea4 100644 --- a/nixos/tests/web-apps/pdfding/s3-backups.nix +++ b/nixos/tests/web-apps/pdfding/s3-backups.nix @@ -31,7 +31,7 @@ in backup.schedule = "*/1 * * * *"; backup.endpoint = "[::]:3900"; extraEnvironment.BACKUP_BUCKET_NAME = "pdfding-bucket"; - extraEnvironment.BACKUP_REGION = "garage"; + extraEnvironment.BACKUP_REGION = "us-east-1"; envFiles = [ pdfding-s3-keys ]; installTestHelpers = true; @@ -48,7 +48,7 @@ in rpc_secret = "5c1915fa04d0b6739675c61bf5907eb0fe3d9c69850c83820f51b4d25d13868c"; s3_api = { - s3_region = "garage"; + s3_region = "us-east-1"; api_bind_addr = "[::]:3900"; root_domain = ".s3.garage"; }; @@ -140,7 +140,7 @@ in -F "description=" \ -F "collection=1" \ -F "use_file_name=on" \ - -F "name=test-upload" \ + -F "name=dummy" \ -F "file=@{test_pdf};type=application/pdf" \ -F "csrfmiddlewaretoken=$csrf_token" \ -H "Referer: {endpoint}/pdf/add" \ From c602ea66b9e645a11ef72438cae4efaa81fce914 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Jul 2026 05:25:42 +0000 Subject: [PATCH 123/152] python3Packages.types-regex: 2026.2.28.20260301 -> 2026.6.28.20260630 --- pkgs/development/python-modules/types-regex/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/types-regex/default.nix b/pkgs/development/python-modules/types-regex/default.nix index d400055c5856..ad45d1c7dd57 100644 --- a/pkgs/development/python-modules/types-regex/default.nix +++ b/pkgs/development/python-modules/types-regex/default.nix @@ -7,13 +7,13 @@ buildPythonPackage (finalAttrs: { pname = "types-regex"; - version = "2026.2.28.20260301"; + version = "2026.6.28.20260630"; pyproject = true; src = fetchPypi { pname = "types_regex"; inherit (finalAttrs) version; - hash = "sha256-ZEwjHbPzaJCDIBcMFJBXMaeuX6vawPYPXW0S7N07yN0="; + hash = "sha256-X6/kNLV409d2QKq5SKPr/J7+pyNBK/rlVRs/VQhqtqc="; }; build-system = [ setuptools ]; From 543ba03fed5bc945da716bfd816386668386296d Mon Sep 17 00:00:00 2001 From: phanirithvij Date: Fri, 10 Jul 2026 10:21:14 +0530 Subject: [PATCH 124/152] nixosTests.pdfding: fix on aarch64-linux Signed-off-by: phanirithvij --- nixos/tests/web-apps/pdfding/basic.nix | 6 ++++++ nixos/tests/web-apps/pdfding/postgres.nix | 10 ++++++++++ nixos/tests/web-apps/pdfding/s3-backups.nix | 10 ++++++++++ 3 files changed, 26 insertions(+) diff --git a/nixos/tests/web-apps/pdfding/basic.nix b/nixos/tests/web-apps/pdfding/basic.nix index 5dec3de378e3..10db93c5203b 100644 --- a/nixos/tests/web-apps/pdfding/basic.nix +++ b/nixos/tests/web-apps/pdfding/basic.nix @@ -17,6 +17,11 @@ secretKeyFile = pkgs.writeText "secretKeyFile" "test123"; }; + # NOTE: on aarch64-linux github actions runer due to lack of kvm, we need to delay pdfding start and give it more time to finish + systemd.services.pdfding.wantedBy = lib.mkIf pkgs.stdenv.hostPlatform.isAarch64 (lib.mkForce [ ]); + systemd.services.pdfding.serviceConfig.TimeoutStartSec = + lib.mkIf pkgs.stdenv.hostPlatform.isAarch64 "900"; + environment.systemPackages = with pkgs; [ sqlite ]; @@ -60,6 +65,7 @@ # create admin machine.wait_for_unit("multi-user.target") + machine.succeed("systemctl start pdfding.service") machine.wait_for_open_port(${toString port}) machine.succeed("DJANGO_SUPERUSER_PASSWORD=admin pdfding-manage createsuperuser --no-input --username admin --email admin@localhost") diff --git a/nixos/tests/web-apps/pdfding/postgres.nix b/nixos/tests/web-apps/pdfding/postgres.nix index c6a82fad839a..635799571315 100644 --- a/nixos/tests/web-apps/pdfding/postgres.nix +++ b/nixos/tests/web-apps/pdfding/postgres.nix @@ -22,6 +22,14 @@ installTestHelpers = true; }; + # NOTE: on aarch64-linux github actions runer due to lack of kvm, we need to delay pdfding start and give it more time to finish + systemd.services.pdfding.wantedBy = lib.mkIf pkgs.stdenv.hostPlatform.isAarch64 (lib.mkForce [ ]); + systemd.services.pdfding.serviceConfig.TimeoutStartSec = + lib.mkIf pkgs.stdenv.hostPlatform.isAarch64 "900"; + systemd.services.pdfding-background.wantedBy = lib.mkIf pkgs.stdenv.hostPlatform.isAarch64 ( + lib.mkForce [ ] + ); + environment.systemPackages = [ config.services.postgresql.finalPackage ]; @@ -46,6 +54,8 @@ # create admin machine.wait_for_unit("multi-user.target") + machine.succeed("systemctl start pdfding.service") + machine.succeed("systemctl start pdfding-background.service") machine.wait_for_open_port(${toString port}) machine.succeed("DJANGO_SUPERUSER_PASSWORD=admin pdfding-manage createsuperuser --no-input --username admin --email admin@localhost") diff --git a/nixos/tests/web-apps/pdfding/s3-backups.nix b/nixos/tests/web-apps/pdfding/s3-backups.nix index 5a1184b1aea4..610acabc9abb 100644 --- a/nixos/tests/web-apps/pdfding/s3-backups.nix +++ b/nixos/tests/web-apps/pdfding/s3-backups.nix @@ -37,6 +37,14 @@ in installTestHelpers = true; }; + # NOTE: on aarch64-linux github actions runer due to lack of kvm, we need to delay pdfding start and give it more time to finish + systemd.services.pdfding.wantedBy = lib.mkIf pkgs.stdenv.hostPlatform.isAarch64 (lib.mkForce [ ]); + systemd.services.pdfding.serviceConfig.TimeoutStartSec = + lib.mkIf pkgs.stdenv.hostPlatform.isAarch64 "900"; + systemd.services.pdfding-background.wantedBy = lib.mkIf pkgs.stdenv.hostPlatform.isAarch64 ( + lib.mkForce [ ] + ); + # Setup a local garage service for the backup feature # taken from garage nixosTest services.garage = { @@ -113,6 +121,8 @@ in # create admin machine.wait_for_unit("multi-user.target") + machine.succeed("systemctl start pdfding.service") + machine.succeed("systemctl start pdfding-background.service") machine.wait_for_open_port(${toString port}) machine.succeed("DJANGO_SUPERUSER_PASSWORD=admin pdfding-manage createsuperuser --no-input --username admin --email admin@localhost") From e3a1e3531c0248da14001342538f66f94b8061d9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Jul 2026 07:16:00 +0000 Subject: [PATCH 125/152] postgresqlPackages.plpgsql_check: 2.9.1 -> 2.9.3 --- pkgs/servers/sql/postgresql/ext/plpgsql_check.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix b/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix index bab139590171..545194dddd86 100644 --- a/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix +++ b/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix @@ -8,13 +8,13 @@ postgresqlBuildExtension (finalAttrs: { pname = "plpgsql-check"; - version = "2.9.1"; + version = "2.9.3"; src = fetchFromGitHub { owner = "okbob"; repo = "plpgsql_check"; tag = "v${finalAttrs.version}"; - hash = "sha256-mB195swphIEREHGWe7g+0WbkvliJ9DDtVkgeFoZ3FsI="; + hash = "sha256-zQzfOVu4O2NKJNIJcXN4irntAprBLQGetQJ3AAq/2HU="; }; passthru.tests.extension = postgresqlTestExtension { From c9873027f846fb52261a414951f0bf7d149fdfc7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Jul 2026 07:32:52 +0000 Subject: [PATCH 126/152] fscan: 2.1.3 -> 2.2.0 --- pkgs/by-name/fs/fscan/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/fs/fscan/package.nix b/pkgs/by-name/fs/fscan/package.nix index c8e04bbc7206..d7f229604a6f 100644 --- a/pkgs/by-name/fs/fscan/package.nix +++ b/pkgs/by-name/fs/fscan/package.nix @@ -6,16 +6,16 @@ buildGoModule (finalAttrs: { pname = "fscan"; - version = "2.1.3"; + version = "2.2.0"; src = fetchFromGitHub { owner = "shadow1ng"; repo = "fscan"; tag = "v${finalAttrs.version}"; - hash = "sha256-ZfzFBOIsuwcfmmyZMPhgP9Oznec+rJs16IuIG7gwZhA="; + hash = "sha256-05z5DuW25/hVoTdUtGGuaCBPtO1QyGqgvKWSpO8DBpQ="; }; - vendorHash = "sha256-ihaGbm4iLjwvTzM278wuwom8LrmHB3WgmbfcJxtkbYc="; + vendorHash = "sha256-IlGHY0KbYsy/5Yz11XhkcS9yS8byY3vhPZiTwnJM6/Q="; subPackages = [ "." ]; From b4b5e36e1b8df5f504f6866ad5b76ce1ae477c26 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Jul 2026 08:01:31 +0000 Subject: [PATCH 127/152] kyverno: 1.18.1 -> 1.18.2 --- pkgs/by-name/ky/kyverno/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ky/kyverno/package.nix b/pkgs/by-name/ky/kyverno/package.nix index 05edb054143b..2202a1305ad1 100644 --- a/pkgs/by-name/ky/kyverno/package.nix +++ b/pkgs/by-name/ky/kyverno/package.nix @@ -10,13 +10,13 @@ buildGoModule (finalAttrs: { pname = "kyverno"; - version = "1.18.1"; + version = "1.18.2"; src = fetchFromGitHub { owner = "kyverno"; repo = "kyverno"; rev = "v${finalAttrs.version}"; - hash = "sha256-zo02ABieJ+CykuqGJlnthXibgBzNGB3t3UdlKMTIkFo="; + hash = "sha256-vcZdrvtM9SnjR9MJOGZ892fXtsMDY7V/1gNqvZmB6To="; }; ldflags = [ @@ -27,7 +27,7 @@ buildGoModule (finalAttrs: { "-X github.com/kyverno/kyverno/pkg/version.BuildTime=1970-01-01_00:00:00" ]; - vendorHash = "sha256-z6kqFBWDWxJB/V+lhcCgataJCQ7NNh08yutdPDgBdkc="; + vendorHash = "sha256-xGGpK53FennS28Kw3ZEasr+sN7ZUuL98Bh4KIkr0OOs="; subPackages = [ "cmd/cli/kubectl-kyverno" ]; From 34779334177d914a4d814811f043d7fa3585e03f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Jul 2026 10:25:22 +0000 Subject: [PATCH 128/152] pdk-ciel: 2.6.0 -> 2.6.1 --- pkgs/by-name/pd/pdk-ciel/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pd/pdk-ciel/package.nix b/pkgs/by-name/pd/pdk-ciel/package.nix index 3eb3f69a63ae..6e56cc694b29 100644 --- a/pkgs/by-name/pd/pdk-ciel/package.nix +++ b/pkgs/by-name/pd/pdk-ciel/package.nix @@ -6,14 +6,14 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "ciel"; - version = "2.6.0"; + version = "2.6.1"; pyproject = true; src = fetchFromGitHub { owner = "fossi-foundation"; repo = "ciel"; tag = finalAttrs.version; - hash = "sha256-koN65VQLGXvVmVd8hNJvbDn7R/4EHg/sNaHvWDWW4DM="; + hash = "sha256-rPsbit/VQ/bTAuRnuaTKQInztJHFhTBofqnrUzYyDKs="; }; build-system = [ python3Packages.poetry-core ]; From f289bbc036f91f966de3b16faa7b70365d0cc6a0 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Jul 2026 10:28:49 +0000 Subject: [PATCH 129/152] emscripten: 5.0.7 -> 6.0.2 --- pkgs/development/compilers/emscripten/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/emscripten/default.nix b/pkgs/development/compilers/emscripten/default.nix index 30fc3d274749..3d4d7c0db0c1 100644 --- a/pkgs/development/compilers/emscripten/default.nix +++ b/pkgs/development/compilers/emscripten/default.nix @@ -22,7 +22,7 @@ in stdenv.mkDerivation rec { pname = "emscripten"; - version = "5.0.7"; + version = "6.0.2"; llvmEnv = symlinkJoin { name = "emscripten-llvm-${version}"; @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { name = "emscripten-node-modules-${version}"; inherit pname version src; - npmDepsHash = "sha256-QW8wnNBBJs8nHsNuczZZevm6ELqtljsDdL21qtFo6pM="; + npmDepsHash = "sha256-uZSDPdMNT50JBg4e16cHDoon0cunxB/JyWWkj67X5ls="; dontBuild = true; @@ -51,7 +51,7 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "emscripten-core"; repo = "emscripten"; - hash = "sha256-EZYjaTja0rojl27UYFbhjHpSBvWu6Vlr6Xe7S+5C4Xc="; + hash = "sha256-tFJ699cOOmv1uEsl5RzsIV5gosOgTvMX2UQYTb0x7Gk="; rev = version; }; From 998204016ee8003a264fd45e5ea37e9cbe286cfd Mon Sep 17 00:00:00 2001 From: Jhony Angulo Date: Fri, 10 Jul 2026 06:19:47 -0500 Subject: [PATCH 130/152] just-lsp: 0.4.7 -> 0.4.8 --- pkgs/by-name/ju/just-lsp/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ju/just-lsp/package.nix b/pkgs/by-name/ju/just-lsp/package.nix index 54d294178e08..ec91f87c1400 100644 --- a/pkgs/by-name/ju/just-lsp/package.nix +++ b/pkgs/by-name/ju/just-lsp/package.nix @@ -8,7 +8,7 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "just-lsp"; - version = "0.4.7"; + version = "0.4.8"; __structuredAttrs = true; @@ -16,10 +16,10 @@ rustPlatform.buildRustPackage (finalAttrs: { owner = "terror"; repo = "just-lsp"; tag = finalAttrs.version; - hash = "sha256-Z35pRJDDUdyjz9Tw66wgBYjYicJCO87EI/J3Nux8udE="; + hash = "sha256-fSr3Nv7KsVMntGpL/uThdY4atCFqbSAS3XsNbdwoCvs="; }; - cargoHash = "sha256-qAeUk+1WmQ5TPdfJcoM+mrFVOfhhdVZnyBhxfzyh1Tc="; + cargoHash = "sha256-z0Gyh44/9nAz505k4B7sZN8BO3kyUutnfivj3QaTi3c="; nativeInstallCheckInputs = [ versionCheckHook From 06081dce2708fe91c8a69081e4b9da5b811f6899 Mon Sep 17 00:00:00 2001 From: HigherOrderLogic <73709188+HigherOrderLogic@users.noreply.github.com> Date: Mon, 6 Jul 2026 06:08:45 +0000 Subject: [PATCH 131/152] tsx: update homepage --- pkgs/by-name/ts/tsx/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ts/tsx/package.nix b/pkgs/by-name/ts/tsx/package.nix index fe2f2b9c289a..aea6ac539008 100644 --- a/pkgs/by-name/ts/tsx/package.nix +++ b/pkgs/by-name/ts/tsx/package.nix @@ -106,7 +106,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { description = "TypeScript Execute (tsx): The easiest way to run TypeScript in Node.js"; - homepage = "https://tsx.is"; + homepage = "https://tsx.hirok.io/"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ sdedovic From 4fca975023f7044687ceaf3df1b4579a133a7c91 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Fri, 10 Jul 2026 13:56:12 +0200 Subject: [PATCH 132/152] pkgs/top-level/aliases.nix: Fix aliases introduced with lomiri-qt6 Treated them like the `throw`s surrounding them, and forgot to add what they should be an alias to. --- pkgs/top-level/aliases.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 05ba512c90a7..10943d1a8eee 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1231,8 +1231,8 @@ mapAliases { libpthreadstubs = libpthread-stubs; # Added 2025-02-04 libpulseaudio-vanilla = throw "'libpulseaudio-vanilla' has been renamed to/replaced by 'libpulseaudio'"; # Converted to throw 2025-10-27 libqt5pas = throw "'libqt5pas' has been renamed to/replaced by 'libsForQt5.libqtpas'"; # Converted to throw 2025-10-27 - libqtdbusmock = warnAlias "'libqtdbusmock' has been renamed to 'libsForQt5.libqtdbusmock'"; # Added 2026-03-10 - libqtdbustest = warnAlias "'libqtdbustest' has been renamed to 'libsForQt5.libqtdbustest'"; # Added 2026-03-10 + libqtdbusmock = warnAlias "'libqtdbusmock' has been renamed to 'libsForQt5.libqtdbusmock'" libsForQt5.libqtdbusmock; # Added 2026-03-10 + libqtdbustest = warnAlias "'libqtdbustest' has been renamed to 'libsForQt5.libqtdbustest'" libsForQt5.libqtdbustest; # Added 2026-03-10 libquotient = throw "'libquotient' for qt5 was removed as upstream removed qt5 support. Consider explicitly upgrading to qt6 'libquotient'"; # Converted to throw 2025-07-04 LibreArp = throw "'LibreArp' has been renamed to/replaced by 'librearp'"; # Converted to throw 2025-10-27 LibreArp-lv2 = throw "'LibreArp-lv2' has been renamed to/replaced by 'librearp-lv2'"; # Converted to throw 2025-10-27 @@ -1939,7 +1939,7 @@ mapAliases { qflipper = throw "'qflipper' has been renamed to/replaced by 'qFlipper'"; # Converted to throw 2025-10-27 qMasterPassword = warnAlias "'qMasterPassword' has been renamed to/replaced by 'qmasterpassword'" qmasterpassword; # Added 2026-02-01 qMasterPassword-wayland = warnAlias "'qMasterPassword-wayland' has been renamed to/replaced by 'qmasterpassword-wayland'" qmasterpassword-wayland; # Added 2026-02-01 - qmenumodel = warnAlias "'qmenumodel' has been renamed to 'libsForQt5.qmenumodel'"; # Added 2026-03-26 + qmenumodel = warnAlias "'qmenumodel' has been renamed to 'libsForQt5.qmenumodel'" libsForQt5.qmenumodel; # Added 2026-03-26 qnial = throw "'qnial' has been removed due to failing to build and being unmaintained"; # Added 2025-06-26 qrscan = throw "qrscan has been removed, as it does not build with supported LLVM versions"; # Added 2025-08-19 qscintilla = throw "'qscintilla' has been renamed to/replaced by 'libsForQt5.qscintilla'"; # Converted to throw 2025-10-27 From d26cf5ced37effbf6fca3f1570903891b2e32fbc Mon Sep 17 00:00:00 2001 From: Thierry Delafontaine Date: Fri, 10 Jul 2026 11:54:49 +0000 Subject: [PATCH 133/152] proton-pass-cli: 2.2.2 -> 2.2.3 --- pkgs/by-name/pr/proton-pass-cli/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/pr/proton-pass-cli/package.nix b/pkgs/by-name/pr/proton-pass-cli/package.nix index c0282fa63e9f..857d02899a24 100644 --- a/pkgs/by-name/pr/proton-pass-cli/package.nix +++ b/pkgs/by-name/pr/proton-pass-cli/package.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "proton-pass-cli"; - version = "2.2.2"; + version = "2.2.3"; __structuredAttrs = true; strictDeps = true; @@ -57,19 +57,19 @@ stdenv.mkDerivation (finalAttrs: { sources = { "aarch64-darwin" = fetchurl { url = "https://proton.me/download/pass-cli/${finalAttrs.version}/pass-cli-macos-aarch64"; - hash = "sha256-CdY2oYT7jck81ldf6RNFHsRlOcdFukjVM/2fq0THQPM="; + hash = "sha256-gxjlrznYmXgCFOxixtHCz9x2KLsgNtuo9yr3TJpjxzI="; }; "aarch64-linux" = fetchurl { url = "https://proton.me/download/pass-cli/${finalAttrs.version}/pass-cli-linux-aarch64"; - hash = "sha256-oVjbGFgF3wMPJZYfiUfZkRCLzW+QGv44krj/HUACGWE="; + hash = "sha256-NdBabzetuIJEbu81Rfg3hUVEw8BJ2A3Who/i08/qwMs="; }; "x86_64-darwin" = fetchurl { url = "https://proton.me/download/pass-cli/${finalAttrs.version}/pass-cli-macos-x86_64"; - hash = "sha256-Gvek5eqz1Sah5Hw4klxiQSQSAW3LOuEPvFUQUmXlwVM="; + hash = "sha256-K6vfr0ut8cQo1mrNeEN35akxLIo1sftt6hnn6wUa6Dk="; }; "x86_64-linux" = fetchurl { url = "https://proton.me/download/pass-cli/${finalAttrs.version}/pass-cli-linux-x86_64"; - hash = "sha256-Zb91GVv9D+jZZgFEyDdGa37pGV045W41V9XuZDnF91E="; + hash = "sha256-cYjwKnweeahg9xZq0sNPei5slhJltwZ34nBPIW3Rdtk="; }; }; updateScript = writeShellScript "update-proton-pass-cli" '' From 3023d6b101f065eb8111cfa32a1485a347977090 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Jul 2026 12:53:47 +0000 Subject: [PATCH 134/152] ggml: 0.15.3 -> 0.16.0 --- pkgs/by-name/gg/ggml/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gg/ggml/package.nix b/pkgs/by-name/gg/ggml/package.nix index 5e622cb4b0fb..2e1ae161f39d 100644 --- a/pkgs/by-name/gg/ggml/package.nix +++ b/pkgs/by-name/gg/ggml/package.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "ggml"; - version = "0.15.3"; + version = "0.16.0"; __structuredAttrs = true; strictDeps = true; @@ -16,7 +16,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "ggml-org"; repo = "ggml"; tag = "v${finalAttrs.version}"; - hash = "sha256-EYy8zfqNgWoT8fJ9OsetOYUNVmOB9HQbuVs/ybzUkL8="; + hash = "sha256-0DdBEsnUAEdC+qN5s310Ih+ELyXOjvwrykMFNHLkoO4="; }; # The cmake package does not handle absolute CMAKE_INSTALL_LIBDIR and CMAKE_INSTALL_INCLUDEDIR From d2260f0cd7ff762f23c6e7ff87ce9be41f074bd7 Mon Sep 17 00:00:00 2001 From: Nico Felbinger Date: Fri, 10 Jul 2026 15:46:21 +0200 Subject: [PATCH 135/152] python3Packages.sphinx-llms-txt: init at 0.7.1 --- .../sphinx-llms-txt/default.nix | 41 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 43 insertions(+) create mode 100644 pkgs/development/python-modules/sphinx-llms-txt/default.nix diff --git a/pkgs/development/python-modules/sphinx-llms-txt/default.nix b/pkgs/development/python-modules/sphinx-llms-txt/default.nix new file mode 100644 index 000000000000..cf7003a9aa3d --- /dev/null +++ b/pkgs/development/python-modules/sphinx-llms-txt/default.nix @@ -0,0 +1,41 @@ +{ + lib, + fetchFromGitHub, + buildPythonPackage, + setuptools, + sphinx, + pytestCheckHook, +}: +buildPythonPackage (finalAttrs: { + pname = "sphinx-llms-txt"; + version = "0.7.1"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "jdillard"; + repo = "sphinx-llms-txt"; + tag = "v${finalAttrs.version}"; + hash = "sha256-9uj5UYl6/TppGd3zuGUpxiY9U6/65ffWDPKaX7ut4zg="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + sphinx + ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + pythonImportsCheck = [ "sphinx_llms_txt" ]; + + meta = { + description = "llms.txt generator for Sphinx"; + homepage = "https://github.com/jdillard/sphinx-llms-txt"; + changelog = "https://github.com/jdillard/sphinx-llms-txt/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ felbinger ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 03d1906efcd4..40701ed56607 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -18769,6 +18769,8 @@ self: super: with self; { callPackage ../development/python-modules/sphinx-last-updated-by-git { }; + sphinx-llms-txt = callPackage ../development/python-modules/sphinx-llms-txt { }; + sphinx-lv2-theme = callPackage ../development/python-modules/sphinx-lv2-theme { }; sphinx-markdown-builder = callPackage ../development/python-modules/sphinx-markdown-builder { }; From 3f000cb56494275a8f6632f45f87bf4836b378ee Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Jul 2026 14:13:19 +0000 Subject: [PATCH 136/152] gforth: 0.7.9_20260610 -> 0.7.9_20260708 --- pkgs/by-name/gf/gforth/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gf/gforth/package.nix b/pkgs/by-name/gf/gforth/package.nix index 3ba375138cea..ea64764f5698 100644 --- a/pkgs/by-name/gf/gforth/package.nix +++ b/pkgs/by-name/gf/gforth/package.nix @@ -17,13 +17,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "gforth"; - version = "0.7.9_20260610"; + version = "0.7.9_20260708"; src = fetchFromGitHub { owner = "forthy42"; repo = "gforth"; rev = finalAttrs.version; - hash = "sha256-gaP3Mmcp0NueRfqh62XlvtWuHN6fAnMTa1uSm7Bj+Rk="; + hash = "sha256-3lKd50Rlhk9OlKb5ATHH4vTWlo40h3iCz+VQfuo/6ys="; }; patches = [ ./use-nproc-instead-of-fhs.patch ]; From 6a2d236bb7bbff9e7b2fe960d21a73b704f32c40 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Jul 2026 14:20:05 +0000 Subject: [PATCH 137/152] oelint-adv: 9.9.1 -> 9.9.2 --- pkgs/by-name/oe/oelint-adv/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/oe/oelint-adv/package.nix b/pkgs/by-name/oe/oelint-adv/package.nix index 21a043873d5c..2dfa923fe844 100644 --- a/pkgs/by-name/oe/oelint-adv/package.nix +++ b/pkgs/by-name/oe/oelint-adv/package.nix @@ -7,14 +7,14 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "oelint-adv"; - version = "9.9.1"; + version = "9.9.2"; pyproject = true; src = fetchFromGitHub { owner = "priv-kweihmann"; repo = "oelint-adv"; tag = finalAttrs.version; - hash = "sha256-656OiHkRVP2M9/gR8faR2mEw9EzjHy92JRk82bD+I4k="; + hash = "sha256-RHW5GfTtwF7vEvnxTU+OyEMgMm0q3w+IjH0u6A3xQh0="; }; postPatch = '' From f37e759de7556a2275ba201e782c46fd0aba733a Mon Sep 17 00:00:00 2001 From: emilylange Date: Fri, 10 Jul 2026 16:35:47 +0200 Subject: [PATCH 138/152] forgejo-runner: 12.12.0 -> 12.13.0 https://code.forgejo.org/forgejo/runner/releases/tag/v12.13.0 --- pkgs/by-name/fo/forgejo-runner/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/fo/forgejo-runner/package.nix b/pkgs/by-name/fo/forgejo-runner/package.nix index f794cf8ffc35..ccd14b90f46f 100644 --- a/pkgs/by-name/fo/forgejo-runner/package.nix +++ b/pkgs/by-name/fo/forgejo-runner/package.nix @@ -55,14 +55,14 @@ let in buildGoModule (finalAttrs: { pname = "forgejo-runner"; - version = "12.12.0"; + version = "12.13.0"; src = fetchFromGitea { domain = "code.forgejo.org"; owner = "forgejo"; repo = "runner"; rev = "v${finalAttrs.version}"; - hash = "sha256-6czLxFgjcrBepoFN4iYDUt8uBkhfC8qx4yqmcfQ8FAg="; + hash = "sha256-wrHZ4vgWNw0tbcNpZesU5SoV2gqle1MJcPjj6lNMwOw="; }; vendorHash = "sha256-du7fXehcxZ70Lsr5VCkz646G0Us/XwM4Sl98HXimoao="; From 1c979151db287c14ff2454b63e7afc45360a5ecc Mon Sep 17 00:00:00 2001 From: Yureka Date: Fri, 10 Jul 2026 16:45:18 +0200 Subject: [PATCH 139/152] m1n1: expose rustPackages I typoed last time, the more useful one is rustPackages, but let's expose both --- pkgs/by-name/m1/m1n1/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/m1/m1n1/package.nix b/pkgs/by-name/m1/m1n1/package.nix index f33b78f9ac64..e3aade13e7a4 100644 --- a/pkgs/by-name/m1/m1n1/package.nix +++ b/pkgs/by-name/m1/m1n1/package.nix @@ -102,7 +102,7 @@ stdenv.mkDerivation (finalAttrs: { passthru = { updateScript = nix-update-script { }; - inherit rustPlatform; + inherit rustPlatform rustPackages; }; meta = { From c045eb888beaac7d024773b755329cc1e28007e8 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Fri, 10 Jul 2026 14:50:42 +0000 Subject: [PATCH 140/152] python3Packages.libmobility: 1.1.2 -> 1.2.0 Diff: https://github.com/stochasticHydroTools/libMobility/compare/v1.1.2...v1.2.0 Changelog: https://github.com/stochasticHydroTools/libMobility/releases/tag/v1.2.0 --- pkgs/development/python-modules/libmobility/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/libmobility/default.nix b/pkgs/development/python-modules/libmobility/default.nix index 55be45cb8425..e99cf9f8b0e6 100644 --- a/pkgs/development/python-modules/libmobility/default.nix +++ b/pkgs/development/python-modules/libmobility/default.nix @@ -39,7 +39,7 @@ let in buildPythonPackage.override { stdenv = cudaPackages.backendStdenv; } (finalAttrs: { pname = "libmobility"; - version = "1.1.2"; + version = "1.2.0"; pyproject = true; __structuredAttrs = true; @@ -47,7 +47,7 @@ buildPythonPackage.override { stdenv = cudaPackages.backendStdenv; } (finalAttrs owner = "stochasticHydroTools"; repo = "libMobility"; tag = "v${finalAttrs.version}"; - hash = "sha256-7jUpVR4bS9vkgeKN68of6VNZzGPlQMcRMBStQ+wFEx4="; + hash = "sha256-8GOQ+TY7WXIEzI+n3W+IpuEg+N5ZscjsAoE49Ob6uDQ="; }; postPatch = From 8d0855c02d95bd8c5a7c072d1d22e1a2fd233289 Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Fri, 29 May 2026 19:58:13 +0200 Subject: [PATCH 141/152] azimuth: 1.0.3 -> 1.0.4 Signed-off-by: Marcin Serwin --- pkgs/by-name/az/azimuth/package.nix | 35 ++++++++++++++++------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/pkgs/by-name/az/azimuth/package.nix b/pkgs/by-name/az/azimuth/package.nix index 4b54eee406df..ab5634674e8e 100644 --- a/pkgs/by-name/az/azimuth/package.nix +++ b/pkgs/by-name/az/azimuth/package.nix @@ -3,44 +3,49 @@ stdenv, fetchFromGitHub, libGL, - SDL, + SDL2, which, + pkg-config, installTool ? false, }: stdenv.mkDerivation (finalAttrs: { pname = "azimuth"; - version = "1.0.3"; + version = "1.0.4"; src = fetchFromGitHub { owner = "mdsteele"; repo = "azimuth"; - rev = "v${finalAttrs.version}"; - sha256 = "1znfvpmqiixd977jv748glk5zc4cmhw5813zp81waj07r9b0828r"; + tag = "v${finalAttrs.version}"; + hash = "sha256-N5Ahetw/zOXDrEiR1umQNF6i3yeawavoLceiU+xD//g="; }; - nativeBuildInputs = [ which ]; + strictDeps = true; + __structuredAttrs = true; + + nativeBuildInputs = [ + pkg-config + which + ]; + buildInputs = [ libGL - SDL + SDL2 ]; env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error=maybe-uninitialized" ]; - preConfigure = '' - substituteInPlace data/azimuth.desktop \ - --replace Exec=azimuth "Exec=$out/bin/azimuth" \ - --replace "Version=%AZ_VERSION_NUMBER" "Version=${finalAttrs.version}" - ''; - makeFlags = [ "BUILDTYPE=release" - "INSTALLDIR=$(out)" - ] - ++ (if installTool then [ "INSTALLTOOL=true" ] else [ "INSTALLTOOL=false" ]); + "PREFIX=${placeholder "out"}" + "INSTALLTOOL=${if installTool then "true" else "false"}" + ]; enableParallelBuilding = true; + doCheck = true; + checkTarget = "test"; + meta = { description = "Metroidvania game using only vectorial graphic"; mainProgram = "azimuth"; From 9bf7f6da486d9bdffe5e11427d46a2f30e5924e7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Jul 2026 15:09:10 +0000 Subject: [PATCH 142/152] lockbook-desktop: 26.6.22 -> 26.7.4 --- pkgs/by-name/lo/lockbook-desktop/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/lo/lockbook-desktop/package.nix b/pkgs/by-name/lo/lockbook-desktop/package.nix index 202438779974..977b507059fa 100644 --- a/pkgs/by-name/lo/lockbook-desktop/package.nix +++ b/pkgs/by-name/lo/lockbook-desktop/package.nix @@ -18,16 +18,16 @@ let in rustPlatform.buildRustPackage (finalAttrs: { pname = "lockbook-desktop"; - version = "26.6.22"; + version = "26.7.4"; src = fetchFromGitHub { owner = "lockbook"; repo = "lockbook"; tag = finalAttrs.version; - hash = "sha256-OgNscshw445uf2PtiYVlyCfx/l2BNZyZK5QwQSunCQ0="; + hash = "sha256-gwpobBTugTTTtd/mWVoyiU0E/NjWCTfMnMF0reWLKrA="; }; - cargoHash = "sha256-USdDHcWexjAllH/kOZVc4XMehESoIozkvvOw47ZeBD8="; + cargoHash = "sha256-EH3uIjz2M+Ytkx/gD0gwslUrDVPvm5+hwOGoDtAdblg="; nativeBuildInputs = [ pkg-config From c5b841c29de88504b1f5ed9f38c1c95fbc226886 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Jul 2026 15:14:38 +0000 Subject: [PATCH 143/152] flyctl: 0.4.63 -> 0.4.69 --- pkgs/by-name/fl/flyctl/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/fl/flyctl/package.nix b/pkgs/by-name/fl/flyctl/package.nix index 5890e1c2af06..486671cb3d8e 100644 --- a/pkgs/by-name/fl/flyctl/package.nix +++ b/pkgs/by-name/fl/flyctl/package.nix @@ -12,7 +12,7 @@ buildGoModule rec { pname = "flyctl"; - version = "0.4.63"; + version = "0.4.69"; src = fetchFromGitHub { owner = "superfly"; @@ -22,11 +22,11 @@ buildGoModule rec { cd "$out" git rev-parse HEAD > COMMIT ''; - hash = "sha256-dGqL6lKx67VzlfHvaCpOTpHtFao99zLIYXiORPHP5e8="; + hash = "sha256-e06fahSSeKTsWGR4o7XZFzcv2MfUCKLo6PrZg2tgIGU="; }; proxyVendor = true; - vendorHash = "sha256-X6cEAaUIHTJoNwoBlGFZUA4M8/AnRY3oTiWW7/03PXY="; + vendorHash = "sha256-BLlKOu1q73T2i+B64+sLkCYXaTlHbVJ5moEwqG2JoHo="; subPackages = [ "." ]; From 0538256f8652d326a828d6367122c1ffc31069b4 Mon Sep 17 00:00:00 2001 From: Justin ! Date: Fri, 10 Jul 2026 11:17:42 -0400 Subject: [PATCH 144/152] atuin: 18.16.1 -> 18.17.0 --- pkgs/by-name/at/atuin/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/at/atuin/package.nix b/pkgs/by-name/at/atuin/package.nix index 588b55191b10..82df8b94ffe1 100644 --- a/pkgs/by-name/at/atuin/package.nix +++ b/pkgs/by-name/at/atuin/package.nix @@ -10,16 +10,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "atuin"; - version = "18.16.1"; + version = "18.17.0"; src = fetchFromGitHub { owner = "atuinsh"; repo = "atuin"; tag = "v${finalAttrs.version}"; - hash = "sha256-XrJFetPs7TsbX5Cxekj+h3hlmQLoOpB7U+c36NM/jeA="; + hash = "sha256-cciogPSlbfiC9U3Dv+IGyuRI9PU9X4LdlequCFiG/a0="; }; - cargoHash = "sha256-eqxeE7+UxBTdaYjlonOz6pYQ3mar8lNUd/K0CSuzquc="; + cargoHash = "sha256-QX1JupLZafRdMUZjl58iFjiPgLSTYZazRVyU88n5QP8="; # atuin's default features include 'check-updates', which do not make sense # for distribution builds. List all other default features. From c1c08336a2639ec2d3adf84bd3f6779df9b07953 Mon Sep 17 00:00:00 2001 From: Grayson Tinker Date: Mon, 15 Jun 2026 21:17:21 -0700 Subject: [PATCH 145/152] non: migrate to by-name --- .../audio/non/default.nix => by-name/no/non/package.nix} | 9 +++++++-- pkgs/top-level/all-packages.nix | 4 ---- 2 files changed, 7 insertions(+), 6 deletions(-) rename pkgs/{applications/audio/non/default.nix => by-name/no/non/package.nix} (88%) diff --git a/pkgs/applications/audio/non/default.nix b/pkgs/by-name/no/non/package.nix similarity index 88% rename from pkgs/applications/audio/non/default.nix rename to pkgs/by-name/no/non/package.nix index 8bc2b9e633d8..aad1eee48a15 100644 --- a/pkgs/applications/audio/non/default.nix +++ b/pkgs/by-name/no/non/package.nix @@ -13,23 +13,28 @@ liblo, libsigcxx, lrdf, - wafHook, + waf, }: +let + wafHook = (waf.override { extraTools = [ "gccdeps" ]; }).hook; +in stdenv.mkDerivation { pname = "non"; version = "unstable-2021-01-28"; + src = fetchFromGitHub { owner = "linuxaudio"; repo = "non"; rev = "cdad26211b301d2fad55a26812169ab905b85bbb"; - sha256 = "sha256-iMJNMDytNXpEkUhL0RILSd25ixkm8HL/edtOZta0Pf4="; + hash = "sha256-iMJNMDytNXpEkUhL0RILSd25ixkm8HL/edtOZta0Pf4="; }; nativeBuildInputs = [ pkg-config wafHook ]; + buildInputs = [ python3 cairo diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5388f98c2637..5c7efee4fdaa 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6366,10 +6366,6 @@ with pkgs; ngtcp2 = callPackage ../development/libraries/ngtcp2 { }; ngtcp2-gnutls = callPackage ../development/libraries/ngtcp2/gnutls.nix { }; - non = callPackage ../applications/audio/non { - wafHook = (waf.override { extraTools = [ "gccdeps" ]; }).hook; - }; - nss_latest = callPackage ../development/libraries/nss/latest.nix { }; nss_esr = callPackage ../development/libraries/nss/esr.nix { }; nss = nss_esr; From 1992c9070d65d8cfd8a2a79ef38785953aa11943 Mon Sep 17 00:00:00 2001 From: Grayson Tinker Date: Wed, 1 Jul 2026 00:34:27 -0700 Subject: [PATCH 146/152] tetex: migrate to by-name --- .../typesetting/tex => by-name/te}/tetex/clang.patch | 0 .../tex => by-name/te}/tetex/environment.patch | 0 .../tex => by-name/te}/tetex/extramembot.patch | 0 .../tex => by-name/te}/tetex/getline.patch | 0 .../default.nix => by-name/te/tetex/package.nix} | 12 ++++++------ .../tex => by-name/te}/tetex/setup-hook.sh | 0 pkgs/top-level/all-packages.nix | 2 -- 7 files changed, 6 insertions(+), 8 deletions(-) rename pkgs/{tools/typesetting/tex => by-name/te}/tetex/clang.patch (100%) rename pkgs/{tools/typesetting/tex => by-name/te}/tetex/environment.patch (100%) rename pkgs/{tools/typesetting/tex => by-name/te}/tetex/extramembot.patch (100%) rename pkgs/{tools/typesetting/tex => by-name/te}/tetex/getline.patch (100%) rename pkgs/{tools/typesetting/tex/tetex/default.nix => by-name/te/tetex/package.nix} (90%) rename pkgs/{tools/typesetting/tex => by-name/te}/tetex/setup-hook.sh (100%) diff --git a/pkgs/tools/typesetting/tex/tetex/clang.patch b/pkgs/by-name/te/tetex/clang.patch similarity index 100% rename from pkgs/tools/typesetting/tex/tetex/clang.patch rename to pkgs/by-name/te/tetex/clang.patch diff --git a/pkgs/tools/typesetting/tex/tetex/environment.patch b/pkgs/by-name/te/tetex/environment.patch similarity index 100% rename from pkgs/tools/typesetting/tex/tetex/environment.patch rename to pkgs/by-name/te/tetex/environment.patch diff --git a/pkgs/tools/typesetting/tex/tetex/extramembot.patch b/pkgs/by-name/te/tetex/extramembot.patch similarity index 100% rename from pkgs/tools/typesetting/tex/tetex/extramembot.patch rename to pkgs/by-name/te/tetex/extramembot.patch diff --git a/pkgs/tools/typesetting/tex/tetex/getline.patch b/pkgs/by-name/te/tetex/getline.patch similarity index 100% rename from pkgs/tools/typesetting/tex/tetex/getline.patch rename to pkgs/by-name/te/tetex/getline.patch diff --git a/pkgs/tools/typesetting/tex/tetex/default.nix b/pkgs/by-name/te/tetex/package.nix similarity index 90% rename from pkgs/tools/typesetting/tex/tetex/default.nix rename to pkgs/by-name/te/tetex/package.nix index b5c09d0a2ccb..f42138f5fdfa 100644 --- a/pkgs/tools/typesetting/tex/tetex/default.nix +++ b/pkgs/by-name/te/tetex/package.nix @@ -5,23 +5,23 @@ flex, bison, zlib, - libpng, + libpng12, ncurses, ed, automake, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "tetex"; version = "3.0"; src = fetchurl { - url = "https://mirrors.ctan.org/obsolete/systems/unix/teTeX/${version}/distrib/tetex-src-${version}.tar.gz"; + url = "https://mirrors.ctan.org/obsolete/systems/unix/teTeX/${finalAttrs.version}/distrib/tetex-src-${finalAttrs.version}.tar.gz"; sha256 = "16v44465ipd9yyqri9rgxp6rbgs194k4sh1kckvccvdsnnp7w3ww"; }; texmf = fetchurl { - url = "https://mirrors.ctan.org/obsolete/systems/unix/teTeX/${version}/distrib/tetex-texmf-${version}.tar.gz"; + url = "https://mirrors.ctan.org/obsolete/systems/unix/teTeX/${finalAttrs.version}/distrib/tetex-texmf-${finalAttrs.version}.tar.gz"; sha256 = "1hj06qvm02a2hx1a67igp45kxlbkczjlg20gr8lbp73l36k8yfvc"; }; @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { flex bison zlib - libpng + libpng12 ncurses ed ]; @@ -92,4 +92,4 @@ stdenv.mkDerivation rec { platforms = lib.platforms.unix; hydraPlatforms = [ ]; }; -} +}) diff --git a/pkgs/tools/typesetting/tex/tetex/setup-hook.sh b/pkgs/by-name/te/tetex/setup-hook.sh similarity index 100% rename from pkgs/tools/typesetting/tex/tetex/setup-hook.sh rename to pkgs/by-name/te/tetex/setup-hook.sh diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5c7efee4fdaa..7d3cdd136f86 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1581,8 +1581,6 @@ with pkgs; pgf = pgf2; - tetex = callPackage ../tools/typesetting/tex/tetex { libpng = libpng12; }; - texFunctions = callPackage ../tools/typesetting/tex/nix pkgs; # TeX Live; see https://nixos.org/nixpkgs/manual/#sec-language-texlive From 3063968e161c2d0638147e8d2484833b70df33ea Mon Sep 17 00:00:00 2001 From: Franek Date: Fri, 10 Jul 2026 17:13:23 +0200 Subject: [PATCH 147/152] nixos/matrix-authentication-service: fix loading of extraConfigFiles --- .../modules/services/matrix/matrix-authentication-service.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/nixos/modules/services/matrix/matrix-authentication-service.nix b/nixos/modules/services/matrix/matrix-authentication-service.nix index 18648d2e3451..4b57643e4090 100644 --- a/nixos/modules/services/matrix/matrix-authentication-service.nix +++ b/nixos/modules/services/matrix/matrix-authentication-service.nix @@ -45,9 +45,7 @@ let pruned; configFile = format.generate "config.yaml" finalSettings; - extraConfigFiles = lib.imap0 ( - i: _: "$CREDENTIALS_DIRECTORY/config-${toString i}" - ) cfg.extraConfigFiles; + extraConfigFiles = lib.imap0 (i: _: "%d/config-${toString i}") cfg.extraConfigFiles; runtimeConfig = "/run/matrix-authentication-service/config.yaml"; in { From 4bc0886d13d2e9ef8304a9bb56d3e1087da85a09 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Jul 2026 15:29:30 +0000 Subject: [PATCH 148/152] chisel: 1.11.7 -> 1.11.8 --- pkgs/by-name/ch/chisel/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ch/chisel/package.nix b/pkgs/by-name/ch/chisel/package.nix index 822ec78afed4..d1dbb68d2799 100644 --- a/pkgs/by-name/ch/chisel/package.nix +++ b/pkgs/by-name/ch/chisel/package.nix @@ -6,16 +6,16 @@ buildGoModule (finalAttrs: { pname = "chisel"; - version = "1.11.7"; + version = "1.11.8"; src = fetchFromGitHub { owner = "jpillora"; repo = "chisel"; tag = "v${finalAttrs.version}"; - hash = "sha256-VLQsYxd7wMRTrmqO5dGgqmhL/oOQULEIMo4xUaKXG5I="; + hash = "sha256-hhkauBn8yEnUmHQjgSF8LMM7zEwhIRRPIkx5VhVZCTI="; }; - vendorHash = "sha256-hqHd+62csVjHY2oAvi5fwlI0LbjR/LSDg6b1SMwe8Fw="; + vendorHash = "sha256-wt6d6yNi4QRI/RQiemfOAbc6FG8sBexWFT1dKOmFEes="; ldflags = [ "-s" From 06a69e06ce36d388cd6e9ed34362f4b5a379ba35 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Jul 2026 14:43:26 +0000 Subject: [PATCH 149/152] python3Packages.coiled: 1.134.1 -> 1.135.1 --- pkgs/development/python-modules/coiled/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/coiled/default.nix b/pkgs/development/python-modules/coiled/default.nix index 8f85506a9a1b..7c5fa6eed4b7 100644 --- a/pkgs/development/python-modules/coiled/default.nix +++ b/pkgs/development/python-modules/coiled/default.nix @@ -39,12 +39,13 @@ buildPythonPackage (finalAttrs: { pname = "coiled"; - version = "1.134.1"; + version = "1.135.1"; pyproject = true; + __structuredAttrs = true; src = fetchPypi { inherit (finalAttrs) pname version; - hash = "sha256-uGXgj2QZOMik9ZJD8wMppJKsJPXdI0ipPuxwB5pHZos="; + hash = "sha256-dI3AT4hogMHLAg7jyXuJNPHeJG9U0nEwwN+MQ+UgxTA="; }; build-system = [ From 74701dc4dbcfb3c49082709ded5b28859cdce33d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Jul 2026 16:39:54 +0000 Subject: [PATCH 150/152] home-assistant-custom-components.frigidaire: 0.1.22 -> 0.1.30 --- .../home-assistant/custom-components/frigidaire/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/home-assistant/custom-components/frigidaire/package.nix b/pkgs/servers/home-assistant/custom-components/frigidaire/package.nix index a206536768d7..dad7ebcbdf25 100644 --- a/pkgs/servers/home-assistant/custom-components/frigidaire/package.nix +++ b/pkgs/servers/home-assistant/custom-components/frigidaire/package.nix @@ -7,13 +7,13 @@ buildHomeAssistantComponent rec { owner = "bm1549"; domain = "frigidaire"; - version = "0.1.22"; + version = "0.1.30"; src = fetchFromGitHub { inherit owner; repo = "home-assistant-frigidaire"; tag = version; - hash = "sha256-ASxedLzRP/+FkRDojXsXlvrvA18BzjGfsw0xoDnVaQA="; + hash = "sha256-asklW31IiHE7WGx3uxh8JgNpW4syePKAsqq8YxKgHhA="; }; dependencies = [ frigidaire ]; From bd630414b131db548ed9d1e6772d1ee98a6f3b92 Mon Sep 17 00:00:00 2001 From: phanirithvij Date: Fri, 10 Jul 2026 12:03:20 +0530 Subject: [PATCH 151/152] python3Packages.wokkel: fix build Signed-off-by: phanirithvij --- pkgs/development/python-modules/wokkel/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/development/python-modules/wokkel/default.nix b/pkgs/development/python-modules/wokkel/default.nix index 567610a1624a..220d03a9cfb5 100644 --- a/pkgs/development/python-modules/wokkel/default.nix +++ b/pkgs/development/python-modules/wokkel/default.nix @@ -2,6 +2,7 @@ lib, buildPythonPackage, fetchFromGitHub, + fetchpatch2, setuptools, incremental, python-dateutil, @@ -24,6 +25,14 @@ buildPythonPackage rec { # Fixes compat with current-day twisted # https://github.com/ralphm/wokkel/pull/32 with all the CI & doc changes excluded ./0001-Remove-py2-compat.patch + + # Fix test failure with Twisted >= 26 + # https://github.com/ralphm/wokkel/issues/33 + (fetchpatch2 { + name = "fix-test-for-twisted-26.patch"; + url = "https://salsa.debian.org/python-team/packages/wokkel/-/raw/f9425d127449a47a7578a01a1b802b7b26b0677f/debian/patches/fix-test-for-twisted-26.patch"; + hash = "sha256-gyVKKqDCFFXyA5LG0q2p8SWIh9DJCUkdK6slOaYsAw0="; + }) ]; postPatch = '' From a84b6a24af4461096a66c7cf44f058144fd85d12 Mon Sep 17 00:00:00 2001 From: Oleksii Filonenko Date: Fri, 10 Jul 2026 19:00:40 +0100 Subject: [PATCH 152/152] hcom: 0.7.22 -> 0.7.23 Diff: https://github.com/aannoo/hcom/compare/v0.7.22...v0.7.23 Changelog: https://github.com/aannoo/hcom/releases/tag/v0.7.23 --- pkgs/by-name/hc/hcom/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/hc/hcom/package.nix b/pkgs/by-name/hc/hcom/package.nix index 23a04fb00be0..7e7d311f5a24 100644 --- a/pkgs/by-name/hc/hcom/package.nix +++ b/pkgs/by-name/hc/hcom/package.nix @@ -9,17 +9,17 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "hcom"; - version = "0.7.22"; + version = "0.7.23"; __structuredAttrs = true; src = fetchFromGitHub { owner = "aannoo"; repo = "hcom"; tag = "v${finalAttrs.version}"; - hash = "sha256-nYJ/S6/yNaMU8dJ4NoQbNHa133Ui4mHxc/2Dfmzga90="; + hash = "sha256-58AcL/hOi8Fl1Nq6QBOyM7Uf7ZUjBabU4PBzZWo25Vo="; }; - cargoHash = "sha256-3wDLq7qymMO5NUK9ekbh9+ij+zp5Ny1lFcxVmHzti+4="; + cargoHash = "sha256-cGhssU75BrNmHqxYWvqRcjNxB70rxYHXBz3hZDY+was="; doCheck = true; nativeCheckInputs = [ writableTmpDirAsHomeHook ];