From 852ce9cee188078cd40c5aa222c9be241f0dbfac Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Fri, 27 Feb 2026 10:34:24 -0600 Subject: [PATCH 01/88] opl3bankeditor: migrate to by-name, hardcode values --- ...or-Look-for-system-installed-Rt-libs.patch | 0 pkgs/by-name/op/opl3bankeditor/package.nix | 69 +++++++++++++++++++ pkgs/tools/audio/opl3bankeditor/default.nix | 9 --- pkgs/top-level/all-packages.nix | 1 - 4 files changed, 69 insertions(+), 10 deletions(-) rename pkgs/{tools/audio => by-name/op}/opl3bankeditor/0001-opl3bankeditor-Look-for-system-installed-Rt-libs.patch (100%) create mode 100644 pkgs/by-name/op/opl3bankeditor/package.nix delete mode 100644 pkgs/tools/audio/opl3bankeditor/default.nix diff --git a/pkgs/tools/audio/opl3bankeditor/0001-opl3bankeditor-Look-for-system-installed-Rt-libs.patch b/pkgs/by-name/op/opl3bankeditor/0001-opl3bankeditor-Look-for-system-installed-Rt-libs.patch similarity index 100% rename from pkgs/tools/audio/opl3bankeditor/0001-opl3bankeditor-Look-for-system-installed-Rt-libs.patch rename to pkgs/by-name/op/opl3bankeditor/0001-opl3bankeditor-Look-for-system-installed-Rt-libs.patch diff --git a/pkgs/by-name/op/opl3bankeditor/package.nix b/pkgs/by-name/op/opl3bankeditor/package.nix new file mode 100644 index 000000000000..11d4b7005ee8 --- /dev/null +++ b/pkgs/by-name/op/opl3bankeditor/package.nix @@ -0,0 +1,69 @@ +{ + stdenv, + lib, + fetchFromGitHub, + dos2unix, + cmake, + pkg-config, + libsForQt5, + rtaudio, + rtmidi, +}: + +stdenv.mkDerivation rec { + pname = "opl3bankeditor"; + version = "1.5.1"; + + src = fetchFromGitHub { + owner = "Wohlstand"; + repo = "opl3bankeditor"; + rev = "v${version}"; + sha256 = "08krbxlxgmc7i2r2k6d6wgi0m6k8hh3j60xf21kz4kp023w613sa"; + }; + + prePatch = '' + dos2unix CMakeLists.txt + ''; + + patches = [ + ./0001-opl3bankeditor-Look-for-system-installed-Rt-libs.patch + ]; + + nativeBuildInputs = [ + dos2unix + cmake + pkg-config + libsForQt5.qttools + libsForQt5.wrapQtAppsHook + ]; + + buildInputs = [ + libsForQt5.qtbase + libsForQt5.qwt6_1 + rtaudio + rtmidi + ]; + + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace-fail "cmake_minimum_required(VERSION 3.2)" "cmake_minimum_required(VERSION 3.10)" + ''; + + postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' + mkdir $out/{bin,Applications} + mv "OPL3 Bank Editor.app" $out/Applications/ + + install_name_tool -change {,${libsForQt5.qwt6_1}/lib/}libqwt.6.dylib "$out/Applications/OPL3 Bank Editor.app/Contents/MacOS/OPL3 Bank Editor" + + ln -s "$out/Applications/OPL3 Bank Editor.app/Contents/MacOS/OPL3 Bank Editor" $out/bin/opl3_bank_editor + ''; + + meta = { + mainProgram = "opl3_bank_editor"; + description = "Small cross-platform editor of the OPL3 FM banks of different formats"; + homepage = src.meta.homepage; + license = lib.licenses.gpl3Plus; + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ OPNA2608 ]; + }; +} diff --git a/pkgs/tools/audio/opl3bankeditor/default.nix b/pkgs/tools/audio/opl3bankeditor/default.nix deleted file mode 100644 index f905e01db3d7..000000000000 --- a/pkgs/tools/audio/opl3bankeditor/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -import ./common.nix { - pname = "opl3bankeditor"; - chip = "OPL3"; - version = "1.5.1"; - sha256 = "08krbxlxgmc7i2r2k6d6wgi0m6k8hh3j60xf21kz4kp023w613sa"; - extraPatches = [ - ./0001-opl3bankeditor-Look-for-system-installed-Rt-libs.patch - ]; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b7fc449cbfe4..77f687aee159 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3180,7 +3180,6 @@ with pkgs; optifine = optifinePackages.optifine-latest; - opl3bankeditor = libsForQt5.callPackage ../tools/audio/opl3bankeditor { }; opn2bankeditor = libsForQt5.callPackage ../tools/audio/opl3bankeditor/opn2bankeditor.nix { }; p4c = callPackage ../development/compilers/p4c { From d97f4dd2abe5ac658c820a8f154756ebe12d0bfd Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Fri, 27 Feb 2026 10:36:32 -0600 Subject: [PATCH 02/88] opl3bankeditor: modernize derivation, switch to finalAttrs --- pkgs/by-name/op/opl3bankeditor/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/op/opl3bankeditor/package.nix b/pkgs/by-name/op/opl3bankeditor/package.nix index 11d4b7005ee8..52f3f6372e9d 100644 --- a/pkgs/by-name/op/opl3bankeditor/package.nix +++ b/pkgs/by-name/op/opl3bankeditor/package.nix @@ -10,15 +10,15 @@ rtmidi, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "opl3bankeditor"; version = "1.5.1"; src = fetchFromGitHub { owner = "Wohlstand"; repo = "opl3bankeditor"; - rev = "v${version}"; - sha256 = "08krbxlxgmc7i2r2k6d6wgi0m6k8hh3j60xf21kz4kp023w613sa"; + tag = "v${finalAttrs.version}"; + hash = "sha256-So9g+BDgTvJnEK4DIweEaJoK4uOmmSmyiIfV12lfeSI="; }; prePatch = '' @@ -61,9 +61,9 @@ stdenv.mkDerivation rec { meta = { mainProgram = "opl3_bank_editor"; description = "Small cross-platform editor of the OPL3 FM banks of different formats"; - homepage = src.meta.homepage; + homepage = "https://github.com/Wohlstand/opl3bankeditor"; license = lib.licenses.gpl3Plus; platforms = lib.platforms.all; maintainers = with lib.maintainers; [ OPNA2608 ]; }; -} +}) From 6f5cef5ce039aa6db2b65cb46e140720243ac1c5 Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Fri, 27 Feb 2026 10:45:38 -0600 Subject: [PATCH 03/88] opn2bankeditor: migrate to by-name, hardcode values --- ...or-Look-for-system-installed-Rt-libs.patch | 0 pkgs/by-name/op/opn2bankeditor/package.nix | 69 +++++++++++++++++++ .../audio/opl3bankeditor/opn2bankeditor.nix | 9 --- pkgs/top-level/all-packages.nix | 2 - 4 files changed, 69 insertions(+), 11 deletions(-) rename pkgs/{tools/audio/opl3bankeditor => by-name/op/opn2bankeditor}/0001-opn2bankeditor-Look-for-system-installed-Rt-libs.patch (100%) create mode 100644 pkgs/by-name/op/opn2bankeditor/package.nix delete mode 100644 pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix diff --git a/pkgs/tools/audio/opl3bankeditor/0001-opn2bankeditor-Look-for-system-installed-Rt-libs.patch b/pkgs/by-name/op/opn2bankeditor/0001-opn2bankeditor-Look-for-system-installed-Rt-libs.patch similarity index 100% rename from pkgs/tools/audio/opl3bankeditor/0001-opn2bankeditor-Look-for-system-installed-Rt-libs.patch rename to pkgs/by-name/op/opn2bankeditor/0001-opn2bankeditor-Look-for-system-installed-Rt-libs.patch diff --git a/pkgs/by-name/op/opn2bankeditor/package.nix b/pkgs/by-name/op/opn2bankeditor/package.nix new file mode 100644 index 000000000000..8793b569a0b2 --- /dev/null +++ b/pkgs/by-name/op/opn2bankeditor/package.nix @@ -0,0 +1,69 @@ +{ + stdenv, + lib, + fetchFromGitHub, + dos2unix, + cmake, + pkg-config, + libsForQt5, + rtaudio, + rtmidi, +}: + +stdenv.mkDerivation rec { + pname = "opn2bankeditor"; + version = "1.3"; + + src = fetchFromGitHub { + owner = "Wohlstand"; + repo = "opn2bankeditor"; + rev = "v${version}"; + sha256 = "0niam6a6y57msbl0xj23g6l7gisv4a670q0k1zqfm34804532a32"; + }; + + prePatch = '' + dos2unix CMakeLists.txt + ''; + + patches = [ + ./0001-opn2bankeditor-Look-for-system-installed-Rt-libs.patch + ]; + + nativeBuildInputs = [ + dos2unix + cmake + pkg-config + libsForQt5.qttools + libsForQt5.wrapQtAppsHook + ]; + + buildInputs = [ + libsForQt5.qtbase + libsForQt5.qwt6_1 + rtaudio + rtmidi + ]; + + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace-fail "cmake_minimum_required(VERSION 3.2)" "cmake_minimum_required(VERSION 3.10)" + ''; + + postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' + mkdir $out/{bin,Applications} + mv "OPN2 Bank Editor.app" $out/Applications/ + + install_name_tool -change {,${libsForQt5.qwt6_1}/lib/}libqwt.6.dylib "$out/Applications/OPN2 Bank Editor.app/Contents/MacOS/OPN2 Bank Editor" + + ln -s "$out/Applications/OPN2 Bank Editor.app/Contents/MacOS/OPN2 Bank Editor" $out/bin/opn2_bank_editor + ''; + + meta = { + mainProgram = "opn2_bank_editor"; + description = "Small cross-platform editor of the OPN2 FM banks of different formats"; + homepage = src.meta.homepage; + license = lib.licenses.gpl3Plus; + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ OPNA2608 ]; + }; +} diff --git a/pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix b/pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix deleted file mode 100644 index 9286d29d2d0e..000000000000 --- a/pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix +++ /dev/null @@ -1,9 +0,0 @@ -import ./common.nix { - pname = "opn2bankeditor"; - chip = "OPN2"; - version = "1.3"; - sha256 = "0niam6a6y57msbl0xj23g6l7gisv4a670q0k1zqfm34804532a32"; - extraPatches = [ - ./0001-opn2bankeditor-Look-for-system-installed-Rt-libs.patch - ]; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 77f687aee159..bd57debe5514 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3180,8 +3180,6 @@ with pkgs; optifine = optifinePackages.optifine-latest; - opn2bankeditor = libsForQt5.callPackage ../tools/audio/opl3bankeditor/opn2bankeditor.nix { }; - p4c = callPackage ../development/compilers/p4c { protobuf = protobuf_21; }; From 3b1d00b3fe769a9ba2f772c454a824c7fbfcc6c4 Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Fri, 27 Feb 2026 10:47:35 -0600 Subject: [PATCH 04/88] opn2bankeditor: modernize derivation --- pkgs/by-name/op/opn2bankeditor/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/op/opn2bankeditor/package.nix b/pkgs/by-name/op/opn2bankeditor/package.nix index 8793b569a0b2..7b2e6e84e82b 100644 --- a/pkgs/by-name/op/opn2bankeditor/package.nix +++ b/pkgs/by-name/op/opn2bankeditor/package.nix @@ -10,15 +10,15 @@ rtmidi, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "opn2bankeditor"; version = "1.3"; src = fetchFromGitHub { owner = "Wohlstand"; repo = "opn2bankeditor"; - rev = "v${version}"; - sha256 = "0niam6a6y57msbl0xj23g6l7gisv4a670q0k1zqfm34804532a32"; + tag = "v${finalAttrs.version}"; + hash = "sha256-YigxCgGIjOrwDxNgcIwiW8d3qHlDyA7o0vUUb5SpKlo="; }; prePatch = '' @@ -61,9 +61,9 @@ stdenv.mkDerivation rec { meta = { mainProgram = "opn2_bank_editor"; description = "Small cross-platform editor of the OPN2 FM banks of different formats"; - homepage = src.meta.homepage; + homepage = "https://github.com/Wohlstand/opn2bankeditor"; license = lib.licenses.gpl3Plus; platforms = lib.platforms.all; maintainers = with lib.maintainers; [ OPNA2608 ]; }; -} +}) From ce5dcbf15cc119eb2b6e123370b5076cbc8f910a Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Fri, 27 Feb 2026 10:48:41 -0600 Subject: [PATCH 05/88] opl3bankeditor: remove common file --- pkgs/tools/audio/opl3bankeditor/common.nix | 80 ---------------------- 1 file changed, 80 deletions(-) delete mode 100644 pkgs/tools/audio/opl3bankeditor/common.nix diff --git a/pkgs/tools/audio/opl3bankeditor/common.nix b/pkgs/tools/audio/opl3bankeditor/common.nix deleted file mode 100644 index c6f8ea4351ff..000000000000 --- a/pkgs/tools/audio/opl3bankeditor/common.nix +++ /dev/null @@ -1,80 +0,0 @@ -{ - pname, - chip, - version, - sha256, - extraPatches ? [ ], -}: - -{ - mkDerivation, - stdenv, - lib, - fetchFromGitHub, - dos2unix, - cmake, - pkg-config, - qttools, - qtbase, - qwt6_1, - rtaudio, - rtmidi, -}: - -let - binname = "${chip} Bank Editor"; - mainProgram = "${lib.strings.toLower chip}_bank_editor"; -in -mkDerivation rec { - inherit pname version; - - src = fetchFromGitHub { - owner = "Wohlstand"; - repo = pname; - rev = "v${version}"; - inherit sha256; - }; - - prePatch = '' - dos2unix CMakeLists.txt - ''; - - patches = extraPatches; - - nativeBuildInputs = [ - dos2unix - cmake - pkg-config - qttools - ]; - - buildInputs = [ - qtbase - qwt6_1 - rtaudio - rtmidi - ]; - - postPatch = '' - substituteInPlace CMakeLists.txt \ - --replace-fail "cmake_minimum_required(VERSION 3.2)" "cmake_minimum_required(VERSION 3.10)" - ''; - - postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' - mkdir $out/{bin,Applications} - mv "${binname}.app" $out/Applications/ - - install_name_tool -change {,${qwt6_1}/lib/}libqwt.6.dylib "$out/Applications/${binname}.app/Contents/MacOS/${binname}" - - ln -s "$out/Applications/${binname}.app/Contents/MacOS/${binname}" $out/bin/${mainProgram} - ''; - - meta = { - inherit mainProgram; - description = "Small cross-platform editor of the ${chip} FM banks of different formats"; - homepage = src.meta.homepage; - license = lib.licenses.gpl3Plus; - platforms = lib.platforms.all; - maintainers = with lib.maintainers; [ OPNA2608 ]; - }; -} From 5448db58821d63356daf1aa123551526b4da58b7 Mon Sep 17 00:00:00 2001 From: azban Date: Fri, 20 Mar 2026 00:48:53 -0600 Subject: [PATCH 06/88] gallery-dl: 1.31.9 -> 1.31.10 --- pkgs/by-name/ga/gallery-dl/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ga/gallery-dl/package.nix b/pkgs/by-name/ga/gallery-dl/package.nix index e6dea50776bd..e14efc3c0ab6 100644 --- a/pkgs/by-name/ga/gallery-dl/package.nix +++ b/pkgs/by-name/ga/gallery-dl/package.nix @@ -1,6 +1,6 @@ { lib, - fetchFromGitHub, + fetchFromCodeberg, nix-update-script, yt-dlp, python3Packages, @@ -8,14 +8,14 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "gallery-dl"; - version = "1.31.9"; + version = "1.31.10"; pyproject = true; - src = fetchFromGitHub { + src = fetchFromCodeberg { owner = "mikf"; repo = "gallery-dl"; tag = "v${finalAttrs.version}"; - hash = "sha256-Dq4SSj78CEZ4hq3jCgzcJK/+KPgn7h52HMfFNDQXQPY="; + hash = "sha256-npt9jbBBHgjURmayhNgkSTQZYLC1aysDR83dLOm2Z/s="; }; build-system = [ python3Packages.setuptools ]; From 526b0e090c346597db1e0e12ffe0ced15600e647 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 3 Apr 2026 05:46:45 +0000 Subject: [PATCH 07/88] clickable: 8.7.0 -> 8.8.0 --- pkgs/by-name/cl/clickable/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/cl/clickable/package.nix b/pkgs/by-name/cl/clickable/package.nix index 60d913e7d6b4..f88311957c10 100644 --- a/pkgs/by-name/cl/clickable/package.nix +++ b/pkgs/by-name/cl/clickable/package.nix @@ -11,14 +11,14 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "clickable"; - version = "8.7.0"; + version = "8.8.0"; pyproject = true; src = fetchFromGitLab { owner = "clickable"; repo = "clickable"; rev = "v${finalAttrs.version}"; - hash = "sha256-W6NPZ5uP7wGjgyA+Nv2vpmshKWny2CCSrn/Gaoi7Pr4="; + hash = "sha256-EEICNL5ydrtep+Lbo9ryKW3+vcJwQxPeXY/C4bZaAnI="; }; __structuredAttrs = true; From 94690a55f2129d996dcc4c8c4579ffd95248d1cb Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Sat, 4 Apr 2026 16:49:22 +0200 Subject: [PATCH 08/88] maintainers: drop Gonzih Signed-off-by: Marcin Serwin --- maintainers/maintainer-list.nix | 6 ------ pkgs/applications/audio/mopidy/mopify.nix | 2 +- pkgs/applications/networking/cluster/linkerd/generic.nix | 3 +-- pkgs/by-name/ai/air/package.nix | 2 +- pkgs/by-name/do/doge/package.nix | 1 - pkgs/by-name/k9/k9s/package.nix | 1 - 6 files changed, 3 insertions(+), 12 deletions(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 25a9eb1f0272..d040614a0891 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -9886,12 +9886,6 @@ githubId = 2041764; name = "Andreas Wendleder"; }; - Gonzih = { - email = "gonzih@gmail.com"; - github = "Gonzih"; - githubId = 266275; - name = "Max Gonzih"; - }; goodrone = { email = "goodrone@gmail.com"; github = "goodrone"; diff --git a/pkgs/applications/audio/mopidy/mopify.nix b/pkgs/applications/audio/mopidy/mopify.nix index d737df6ff7b3..b0dc0b3ebcee 100644 --- a/pkgs/applications/audio/mopidy/mopify.nix +++ b/pkgs/applications/audio/mopidy/mopify.nix @@ -34,6 +34,6 @@ pythonPackages.buildPythonApplication (finalAttrs: { homepage = "https://github.com/dirkgroenen/mopidy-mopify"; description = "Mopidy webclient based on the Spotify webbased interface"; license = lib.licenses.gpl3; - maintainers = [ lib.maintainers.Gonzih ]; + maintainers = [ ]; }; }) diff --git a/pkgs/applications/networking/cluster/linkerd/generic.nix b/pkgs/applications/networking/cluster/linkerd/generic.nix index d4cca900ba69..7df69dabc1e2 100644 --- a/pkgs/applications/networking/cluster/linkerd/generic.nix +++ b/pkgs/applications/networking/cluster/linkerd/generic.nix @@ -68,8 +68,7 @@ buildGoModule rec { downloadPage = "https://github.com/linkerd/linkerd2/"; homepage = "https://linkerd.io/"; license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ - Gonzih + maintainers = [ ]; }; } diff --git a/pkgs/by-name/ai/air/package.nix b/pkgs/by-name/ai/air/package.nix index 833457a14d98..d1c2d434aaa7 100644 --- a/pkgs/by-name/ai/air/package.nix +++ b/pkgs/by-name/ai/air/package.nix @@ -30,6 +30,6 @@ buildGoModule (finalAttrs: { mainProgram = "air"; homepage = "https://github.com/air-verse/air"; license = lib.licenses.gpl3Only; - maintainers = with lib.maintainers; [ Gonzih ]; + maintainers = [ ]; }; }) diff --git a/pkgs/by-name/do/doge/package.nix b/pkgs/by-name/do/doge/package.nix index 83b5ee893048..8c49e1d7e883 100644 --- a/pkgs/by-name/do/doge/package.nix +++ b/pkgs/by-name/do/doge/package.nix @@ -32,7 +32,6 @@ python3Packages.buildPythonApplication (finalAttrs: { license = lib.licenses.mit; mainProgram = "doge"; maintainers = with lib.maintainers; [ - Gonzih quantenzitrone ]; }; diff --git a/pkgs/by-name/k9/k9s/package.nix b/pkgs/by-name/k9/k9s/package.nix index 37759f5c43b2..9ea0554890ac 100644 --- a/pkgs/by-name/k9/k9s/package.nix +++ b/pkgs/by-name/k9/k9s/package.nix @@ -73,7 +73,6 @@ buildGoModule (finalAttrs: { license = lib.licenses.asl20; mainProgram = "k9s"; maintainers = with lib.maintainers; [ - Gonzih markus1189 qjoly devusb From d36077c0b686c91cea9d20edd58da632d4f28318 Mon Sep 17 00:00:00 2001 From: nikstur Date: Tue, 7 Apr 2026 00:01:29 +0200 Subject: [PATCH 09/88] nixos/systemd: fix modprobe Upstream systemd changed how modprobe is discovered. It is now searched for on path. Thus, add the kmod package to the ExecSearchPath of the modprobe@.service. --- nixos/modules/system/boot/systemd.nix | 4 ++++ nixos/tests/systemd-misc.nix | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index 0b9124709f85..56b87de1f394 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -792,6 +792,10 @@ in path = [ pkgs.util-linux ]; overrideStrategy = "asDropin"; }; + systemd.services."modprobe@" = { + restartIfChanged = false; + serviceConfig.ExecSearchPath = lib.makeBinPath [ pkgs.kmod ]; + }; systemd.services.systemd-random-seed.restartIfChanged = false; systemd.services.systemd-remount-fs.restartIfChanged = false; systemd.services.systemd-update-utmp.restartIfChanged = false; diff --git a/nixos/tests/systemd-misc.nix b/nixos/tests/systemd-misc.nix index 2623f78add63..30f9fe720059 100644 --- a/nixos/tests/systemd-misc.nix +++ b/nixos/tests/systemd-misc.nix @@ -60,5 +60,10 @@ in machine.succeed("systemctl status example.service | grep 'Active: active'") machine.succeed("systemctl show --property TasksMax --value user-1000.slice | grep 100") + + with subtest("modprobe@ services work"): + modprobe_service_status = machine.succeed("systemctl show --property ExecMainStatus modprobe@configfs.service") + print(modprobe_service_status) + t.assertEqual("ExecMainStatus=0\n", modprobe_service_status) ''; } From 5cac8ff7291159095b2e97d9acc0048ed2f7310f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 6 Apr 2026 22:53:32 +0000 Subject: [PATCH 10/88] famistudio: 4.4.4 -> 4.5.0 --- pkgs/by-name/fa/famistudio/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/fa/famistudio/package.nix b/pkgs/by-name/fa/famistudio/package.nix index 437fe12b4ff7..077a641a7d48 100644 --- a/pkgs/by-name/fa/famistudio/package.nix +++ b/pkgs/by-name/fa/famistudio/package.nix @@ -30,13 +30,13 @@ let in buildDotnetModule (finalAttrs: { pname = "famistudio"; - version = "4.4.4"; + version = "4.5.0"; src = fetchFromGitHub { owner = "BleuBleu"; repo = "FamiStudio"; tag = finalAttrs.version; - hash = "sha256-hYJ82EXR1kP8hzUj+CCXnGuohVzyA1O9TBpWjRccj9Y="; + hash = "sha256-Yvbb8f3bFnSiC6AcYuczwPZhU7FZpqpB9YEd52brXtw="; }; postPatch = From ade3bfce37077a7b7aa6f004ac4e8d14d257780b Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Tue, 7 Apr 2026 22:48:50 +0200 Subject: [PATCH 11/88] prusa-slicer: add x-scheme-handler/prusaslicer to desktop file --- pkgs/by-name/pr/prusa-slicer/package.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pkgs/by-name/pr/prusa-slicer/package.nix b/pkgs/by-name/pr/prusa-slicer/package.nix index d79c2a7b63e3..d9661ec1d9c4 100644 --- a/pkgs/by-name/pr/prusa-slicer/package.nix +++ b/pkgs/by-name/pr/prusa-slicer/package.nix @@ -95,6 +95,18 @@ clangStdenv.mkDerivation (finalAttrs: { substituteInPlace src/platform/unix/PrusaGcodeviewer.desktop \ --replace-fail 'MimeType=text/x.gcode;' 'MimeType=application/x-bgcode;text/x.gcode;' '' + # Make PrusaSlicer handle the url "prusaslicer://" + + '' + substituteInPlace src/platform/unix/PrusaSlicer.desktop \ + --replace-fail \ + 'Exec=prusa-slicer %F' \ + 'Exec=prusa-slicer %U' + + substituteInPlace src/platform/unix/PrusaSlicer.desktop \ + --replace-fail \ + 'MimeType=model/stl;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;application/x-amf;' \ + 'MimeType=model/stl;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;application/x-amf;x-scheme-handler/prusaslicer;' + '' ); nativeBuildInputs = [ From 56117629ad573a1f3afd8308740150a6de51aab1 Mon Sep 17 00:00:00 2001 From: Xiangyan Sun Date: Tue, 7 Apr 2026 16:29:18 -0700 Subject: [PATCH 12/88] jabcode-{reader,writer}: fix build --- pkgs/development/libraries/jabcode/default.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/jabcode/default.nix b/pkgs/development/libraries/jabcode/default.nix index b4480bd911f4..5f5188982d76 100644 --- a/pkgs/development/libraries/jabcode/default.nix +++ b/pkgs/development/libraries/jabcode/default.nix @@ -32,6 +32,13 @@ stdenv.mkDerivation { ] ++ lib.optionals (subproject != "library") [ jabcode ]; + postPatch = '' + substituteInPlace src/jabcode/Makefile src/jabcodeReader/Makefile src/jabcodeWriter/Makefile \ + --replace-fail "CC = \$(PREFIX)gcc" "" + # remove bundled library binaries to force using system libraries + rm -rf src/jabcode/lib + ''; + preConfigure = "cd src/${subdir}"; installPhase = @@ -53,6 +60,5 @@ stdenv.mkDerivation { license = lib.licenses.lgpl21; maintainers = [ lib.maintainers.xaverdh ]; platforms = lib.platforms.unix; - broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/jabcode.x86_64-darwin }; } From 0d7de04c0c246ea33ee9c4764781be9752c29bf1 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Sun, 5 Apr 2026 17:11:38 -0400 Subject: [PATCH 13/88] nixos/systemd-stage-1: Enable dbus by default Also fix the scary dbus warning when using systemctl --- nixos/modules/services/system/dbus.nix | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/system/dbus.nix b/nixos/modules/services/system/dbus.nix index 1e21fe20d714..8cb03b08c2f6 100644 --- a/nixos/modules/services/system/dbus.nix +++ b/nixos/modules/services/system/dbus.nix @@ -32,7 +32,19 @@ in options = { boot.initrd.systemd.dbus = { - enable = mkEnableOption "dbus in stage 1"; + enable = mkEnableOption "dbus in stage 1" // { + # TODO: This isn't really necessary, but it avoids a very + # common red herring error message: + # + # $ systemctl ... + # Failed to connect to system scope bus via local transport: No such file or directory. + # + # When systemctl tries and fails to control the system manager + # over dbus, it fals back to a private bus socket after + # printing this message. It works, but users often think it is + # the source of their problem when it isn't. + default = true; + }; }; services.dbus = { @@ -163,6 +175,13 @@ in "${config.boot.initrd.systemd.package}/share/dbus-1/system.d" ]; targets.sockets.wants = [ "dbus.socket" ]; + + # Otherwise, dbus waits on cryptsetup, and systemctl says the + # bus couldn't be found. This isn't an error (systemctl will + # fall back to a private bus with PID 1), but it's confusing + # to unaware users. + services.dbus.unitConfig.DefaultDependencies = false; + sockets.dbus.unitConfig.DefaultDependencies = false; }; }) From 2af908228dff2083cff13b5d2c4a95931dc79b0d Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Mon, 6 Apr 2026 05:26:12 -0400 Subject: [PATCH 14/88] nixos/systemd-stage-1: Support rd.systemd.break= --- nixos/modules/system/boot/systemd/initrd.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nixos/modules/system/boot/systemd/initrd.nix b/nixos/modules/system/boot/systemd/initrd.nix index 2c59d224176e..f61d94b7851a 100644 --- a/nixos/modules/system/boot/systemd/initrd.nix +++ b/nixos/modules/system/boot/systemd/initrd.nix @@ -29,6 +29,10 @@ let upstreamUnits = [ "basic.target" + "breakpoint-pre-udev.service" + "breakpoint-pre-basic.service" + "breakpoint-pre-mount.service" + "breakpoint-pre-switch-root.service" "ctrl-alt-del.target" "debug-shell.service" "emergency.service" From 1ea02ad83f1229cb630317895548c60ee0deee45 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Fri, 15 Aug 2025 15:43:01 -0400 Subject: [PATCH 15/88] nixos/tests/boot-stage2: Explicitly disable systemd stage 1 --- nixos/tests/boot-stage2.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nixos/tests/boot-stage2.nix b/nixos/tests/boot-stage2.nix index c2aa3730ed4b..08c00d46c6c6 100644 --- a/nixos/tests/boot-stage2.nix +++ b/nixos/tests/boot-stage2.nix @@ -54,6 +54,9 @@ boot = { initrd = { + # TODO: Switch to systemd initrd + systemd.enable = false; + # Format the upper Nix store. postDeviceCommands = '' ${pkgs.e2fsprogs}/bin/mkfs.ext4 /dev/vdb From 8cd4240c6c053df53deb5f3a70c5396d022ca3cf Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Fri, 15 Aug 2025 15:43:01 -0400 Subject: [PATCH 16/88] nixos/tests/initrd-network: Explicitly disable systemd stage 1 --- nixos/tests/initrd-network.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nixos/tests/initrd-network.nix b/nixos/tests/initrd-network.nix index b84588f1d250..b43e62db0a52 100644 --- a/nixos/tests/initrd-network.nix +++ b/nixos/tests/initrd-network.nix @@ -1,3 +1,5 @@ +# Tests networking in scripted stage 1. Remove in 26.11. + { pkgs, lib, ... }: { name = "initrd-network"; @@ -8,6 +10,7 @@ { ... }: { imports = [ ../modules/profiles/minimal.nix ]; + boot.initrd.systemd.enable = false; boot.initrd.network.enable = true; boot.initrd.network.postCommands = '' ip addr show From e7a9b6a1a2fdc37f97f122ebe388402d787dfd96 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Fri, 15 Aug 2025 15:43:01 -0400 Subject: [PATCH 17/88] nixos/tests/iscsi: Explicitly disable systemd stage 1 --- nixos/tests/iscsi-multipath-root.nix | 1 + nixos/tests/iscsi-root.nix | 2 ++ 2 files changed, 3 insertions(+) diff --git a/nixos/tests/iscsi-multipath-root.nix b/nixos/tests/iscsi-multipath-root.nix index ba17ac64058e..90723bdbb604 100644 --- a/nixos/tests/iscsi-multipath-root.nix +++ b/nixos/tests/iscsi-multipath-root.nix @@ -186,6 +186,7 @@ in boot.initrd.extraFiles."etc/multipath/wwids".source = pkgs.writeText "wwids" "/3600140592b17c3f6b404168b082ceeb7/"; + boot.initrd.systemd.enable = false; boot.iscsi-initiator = { discoverPortal = "target"; name = initiatorName; diff --git a/nixos/tests/iscsi-root.nix b/nixos/tests/iscsi-root.nix index e8c98a39931c..571dbecad244 100644 --- a/nixos/tests/iscsi-root.nix +++ b/nixos/tests/iscsi-root.nix @@ -142,6 +142,8 @@ in }; }; + # No SCSI support in systemd stage 1 at present. + boot.initrd.systemd.enable = false; boot.iscsi-initiator = { discoverPortal = "target"; name = initiatorName; From a261a22e18f6d98c46a7e6135f0c20ae3f915022 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Fri, 15 Aug 2025 15:43:01 -0400 Subject: [PATCH 18/88] nixos/tests/boot-stage1: Explicitly disable systemd stage 1 --- nixos/tests/boot-stage1.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nixos/tests/boot-stage1.nix b/nixos/tests/boot-stage1.nix index e76af3e1dc6f..2fda8355086a 100644 --- a/nixos/tests/boot-stage1.nix +++ b/nixos/tests/boot-stage1.nix @@ -1,3 +1,6 @@ +# Remove in 26.11. This test guards against problems with +# stage-1-init.sh, which will be removed with scripted stage 1. + { pkgs, ... }: { name = "boot-stage1"; @@ -10,6 +13,8 @@ ... }: { + boot.initrd.systemd.enable = false; + boot.extraModulePackages = let compileKernelModule = From 482da791bfe649278e988f7414a322d7a43897c9 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Fri, 15 Aug 2025 15:43:01 -0400 Subject: [PATCH 19/88] nixos/tests/initrd-network-ssh: Explicitly disable systemd stage 1 --- nixos/tests/initrd-network-ssh/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nixos/tests/initrd-network-ssh/default.nix b/nixos/tests/initrd-network-ssh/default.nix index 510a9f7ef4e5..60b888b69a86 100644 --- a/nixos/tests/initrd-network-ssh/default.nix +++ b/nixos/tests/initrd-network-ssh/default.nix @@ -1,3 +1,5 @@ +# This tests SSH in scripted stage 1. Remove in 26.11. + import ../make-test-python.nix ( { lib, pkgs, ... }: @@ -14,6 +16,7 @@ import ../make-test-python.nix ( boot.kernelParams = [ "ip=${config.networking.primaryIPAddress}:::255.255.255.0::eth1:none" ]; + boot.initrd.systemd.enable = false; boot.initrd.network = { enable = true; ssh = { From de7ea54d822f6af969fff218689f11a085439fe9 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Wed, 27 Aug 2025 01:40:34 -0400 Subject: [PATCH 20/88] nixos/tests/luks: Explicitly disable systemd stage 1 systemd stage 1 is covered by `nixos.tests.systemd-initrd-luks-password`, but we should still test scripted stage 1 for the time being. --- nixos/tests/luks.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nixos/tests/luks.nix b/nixos/tests/luks.nix index 7440d110ad28..db2672eefdc0 100644 --- a/nixos/tests/luks.nix +++ b/nixos/tests/luks.nix @@ -1,3 +1,5 @@ +# Tests LUKS specifically with scripted stage 1. Remove in 26.11. + { lib, pkgs, ... }: { name = "luks"; @@ -6,6 +8,8 @@ { pkgs, ... }: { + boot.initrd.systemd.enable = false; + # Use systemd-boot virtualisation = { emptyDiskImages = [ From fef6d22a872d14381771490b9e3c872fad3084ff Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Fri, 15 Aug 2025 15:43:01 -0400 Subject: [PATCH 21/88] nixos/tests/predictable-interface-names: Explicitly set 'boot.initrd.systemd.enable' --- nixos/tests/predictable-interface-names.nix | 26 +++++++++++---------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/nixos/tests/predictable-interface-names.nix b/nixos/tests/predictable-interface-names.nix index 8ab29a73cd4f..0bf2afce7a39 100644 --- a/nixos/tests/predictable-interface-names.nix +++ b/nixos/tests/predictable-interface-names.nix @@ -63,18 +63,20 @@ pkgs.lib.listToAttrs ( # Check if predictable interface names are working in stage-1 boot.initrd.postDeviceCommands = lib.mkIf (!systemdStage1) script; - boot.initrd.systemd = lib.mkIf systemdStage1 { - enable = true; - initrdBin = [ pkgs.iproute2 ]; - services.systemd-udev-settle.wantedBy = [ "initrd.target" ]; - services.check-interfaces = { - requiredBy = [ "initrd.target" ]; - after = [ "systemd-udev-settle.service" ]; - serviceConfig.Type = "oneshot"; - path = [ pkgs.iproute2 ]; - inherit script; - }; - }; + boot.initrd.systemd = lib.mkMerge [ + { enable = systemdStage1; } + (lib.mkIf systemdStage1 { + initrdBin = [ pkgs.iproute2 ]; + services.systemd-udev-settle.wantedBy = [ "initrd.target" ]; + services.check-interfaces = { + requiredBy = [ "initrd.target" ]; + after = [ "systemd-udev-settle.service" ]; + serviceConfig.Type = "oneshot"; + path = [ pkgs.iproute2 ]; + inherit script; + }; + }) + ]; }; testScript = '' From 1718e9f745006f167c9566bc29e13ece087b02ae Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Wed, 10 Sep 2025 02:00:08 -0400 Subject: [PATCH 22/88] nixos/tests/initrd-luks-empty-passphrase: Explicitly set 'boot.initrd.systemd.enable' --- nixos/tests/all-tests.nix | 5 ++++- nixos/tests/initrd-luks-empty-passphrase.nix | 8 +++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 1eed27e00a54..894ed9020894 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -769,7 +769,10 @@ in }; influxdb = runTest ./influxdb.nix; influxdb2 = runTest ./influxdb2.nix; - initrd-luks-empty-passphrase = runTest ./initrd-luks-empty-passphrase.nix; + initrd-luks-empty-passphrase = runTest { + imports = [ ./initrd-luks-empty-passphrase.nix ]; + _module.args.systemdStage1 = false; + }; initrd-network-openvpn = handleTestOn [ "x86_64-linux" "i686-linux" ] ./initrd-network-openvpn { }; initrd-network-ssh = handleTest ./initrd-network-ssh { }; initrd-secrets = handleTest ./initrd-secrets.nix { }; diff --git a/nixos/tests/initrd-luks-empty-passphrase.nix b/nixos/tests/initrd-luks-empty-passphrase.nix index 3a906685f0ca..56a92a827ff4 100644 --- a/nixos/tests/initrd-luks-empty-passphrase.nix +++ b/nixos/tests/initrd-luks-empty-passphrase.nix @@ -14,8 +14,6 @@ in { name = "initrd-luks-empty-passphrase"; - _module.args.systemdStage1 = lib.mkDefault false; - nodes.machine = { pkgs, ... }: { @@ -31,9 +29,9 @@ in }; boot.loader.systemd-boot.enable = true; - boot.initrd.systemd = lib.mkIf systemdStage1 { - enable = true; - emergencyAccess = true; + boot.initrd.systemd = { + enable = systemdStage1; + emergencyAccess = lib.mkIf systemdStage1 true; }; environment.systemPackages = with pkgs; [ cryptsetup ]; From ee5dd90859c7a5dd76603d60f02c9a472f25d942 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Mon, 6 Apr 2026 03:07:19 -0400 Subject: [PATCH 23/88] nixos/tests/initrd-network-opentvpn: Explicit systemdStage1 arg --- nixos/tests/all-tests.nix | 4 +++- nixos/tests/initrd-network-openvpn/default.nix | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 894ed9020894..5d684cfe119a 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -773,7 +773,9 @@ in imports = [ ./initrd-luks-empty-passphrase.nix ]; _module.args.systemdStage1 = false; }; - initrd-network-openvpn = handleTestOn [ "x86_64-linux" "i686-linux" ] ./initrd-network-openvpn { }; + initrd-network-openvpn = handleTestOn [ "x86_64-linux" "i686-linux" ] ./initrd-network-openvpn { + systemdStage1 = false; + }; initrd-network-ssh = handleTest ./initrd-network-ssh { }; initrd-secrets = handleTest ./initrd-secrets.nix { }; initrd-secrets-changing = handleTest ./initrd-secrets-changing.nix { }; diff --git a/nixos/tests/initrd-network-openvpn/default.nix b/nixos/tests/initrd-network-openvpn/default.nix index f685e46dc467..0e4edcb4f70c 100644 --- a/nixos/tests/initrd-network-openvpn/default.nix +++ b/nixos/tests/initrd-network-openvpn/default.nix @@ -2,7 +2,7 @@ system ? builtins.currentSystem, config ? { }, pkgs ? import ../.. { inherit system config; }, - systemdStage1 ? false, + systemdStage1, }: import ../make-test-python.nix ( From 0f146213ded8979a4cc323edc8c081ba6b5f4542 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Mon, 6 Apr 2026 04:53:33 -0400 Subject: [PATCH 24/88] nixos/tests/hibernate: Explicit systemdStage1 arg --- nixos/tests/all-tests.nix | 4 +++- nixos/tests/hibernate.nix | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 5d684cfe119a..02f1fd0e5583 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -727,7 +727,9 @@ in # 9pnet_virtio used to mount /nix partition doesn't support # hibernation. This test happens to work on x86_64-linux but # not on other platforms. - hibernate = handleTestOn [ "x86_64-linux" ] ./hibernate.nix { }; + hibernate = handleTestOn [ "x86_64-linux" ] ./hibernate.nix { + systemdStage1 = false; + }; hibernate-systemd-stage-1 = handleTestOn [ "x86_64-linux" ] ./hibernate.nix { systemdStage1 = true; }; diff --git a/nixos/tests/hibernate.nix b/nixos/tests/hibernate.nix index 9b840a4e14da..53daec48d6c0 100644 --- a/nixos/tests/hibernate.nix +++ b/nixos/tests/hibernate.nix @@ -4,7 +4,7 @@ system ? builtins.currentSystem, config ? { }, pkgs ? import ../.. { inherit system config; }, - systemdStage1 ? false, + systemdStage1, }: with import ../lib/testing-python.nix { inherit system pkgs; }; From 8a6ac4af8d4301a0aac6e582627abeae997a85f9 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Mon, 6 Apr 2026 04:58:24 -0400 Subject: [PATCH 25/88] nixos/tests/systemd-shutdown: Explicit systemdStage1 arg --- nixos/tests/all-tests.nix | 5 ++++- nixos/tests/systemd-shutdown.nix | 2 -- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 02f1fd0e5583..99c897c23bbe 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -1608,7 +1608,10 @@ in systemd-pstore = runTest ./systemd-pstore.nix; systemd-repart = handleTest ./systemd-repart.nix { }; systemd-resolved = runTest ./systemd-resolved.nix; - systemd-shutdown = runTest ./systemd-shutdown.nix; + systemd-shutdown = runTest { + imports = [ ./systemd-shutdown.nix ]; + _module.args.systemdStage1 = false; + }; systemd-ssh-proxy = runTest ./systemd-ssh-proxy.nix; systemd-sysupdate = runTest ./systemd-sysupdate.nix; systemd-sysusers-immutable = runTest ./systemd-sysusers-immutable.nix; diff --git a/nixos/tests/systemd-shutdown.nix b/nixos/tests/systemd-shutdown.nix index 827cbac300d8..7439c9331182 100644 --- a/nixos/tests/systemd-shutdown.nix +++ b/nixos/tests/systemd-shutdown.nix @@ -11,8 +11,6 @@ in name = "systemd-shutdown"; meta.maintainers = with lib.maintainers; [ das_j ]; - _module.args.systemdStage1 = lib.mkDefault false; - nodes.machine = { imports = [ ../modules/profiles/minimal.nix ]; systemd.shutdownRamfs.contents."/etc/systemd/system-shutdown/shutdown-message".source = From 58dc3d61dc022b93e548614103e0b37fed9b51b6 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Mon, 6 Apr 2026 04:59:37 -0400 Subject: [PATCH 26/88] nixos/tests/envfs: Explicit systemdStage1 arg --- nixos/tests/envfs.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/tests/envfs.nix b/nixos/tests/envfs.nix index 78946285ed68..a209b2c8db2c 100644 --- a/nixos/tests/envfs.nix +++ b/nixos/tests/envfs.nix @@ -1,6 +1,6 @@ { pkgs, - systemdStage1 ? false, + systemdStage1, ... }: From 94a06492e2848085389bbc5242c381bc876e2265 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Fri, 15 Aug 2025 15:43:01 -0400 Subject: [PATCH 27/88] nixos/tests/non-default-filesystems/btrfs: Use systemd stage 1 --- nixos/tests/non-default-filesystems.nix | 108 ++++++++++++------------ 1 file changed, 56 insertions(+), 52 deletions(-) diff --git a/nixos/tests/non-default-filesystems.nix b/nixos/tests/non-default-filesystems.nix index 11bf2070464f..2c578c94da53 100644 --- a/nixos/tests/non-default-filesystems.nix +++ b/nixos/tests/non-default-filesystems.nix @@ -34,66 +34,70 @@ with pkgs.lib; ''; }; - btrfs = makeTest { - name = "non-default-filesystems-btrfs"; + btrfs = + let + disk = "/dev/vda"; + partition = "/dev/disk/by-label/storage"; + in + makeTest { + name = "non-default-filesystems-btrfs"; - nodes.machine = - { - config, - pkgs, - lib, - ... - }: - let - disk = config.virtualisation.rootDevice; - in - { - virtualisation.rootDevice = "/dev/vda"; - virtualisation.useDefaultFilesystems = false; + nodes.machine = + { ... }: + { + virtualisation.rootDevice = disk; + virtualisation.useDefaultFilesystems = false; - boot.initrd.availableKernelModules = [ "btrfs" ]; - boot.supportedFilesystems = [ "btrfs" ]; - - boot.initrd.postDeviceCommands = '' - FSTYPE=$(blkid -o value -s TYPE ${disk} || true) - if test -z "$FSTYPE"; then - modprobe btrfs - ${pkgs.btrfs-progs}/bin/mkfs.btrfs ${disk} - - mkdir /nixos - mount -t btrfs ${disk} /nixos - - ${pkgs.btrfs-progs}/bin/btrfs subvolume create /nixos/root - ${pkgs.btrfs-progs}/bin/btrfs subvolume create /nixos/home - - umount /nixos - fi - ''; - - virtualisation.fileSystems = { - "/" = { - device = disk; - fsType = "btrfs"; - options = [ "subvol=/root" ]; + systemd.repart.partitions."00-root" = { + Type = "linux-generic"; + Format = "btrfs"; + Label = "storage"; + Subvolumes = [ + "/root" + "/home" + ]; + MakeDirectories = [ + "/root" + "/home" + ]; }; - "/home" = { - device = disk; - fsType = "btrfs"; - options = [ "subvol=/home" ]; + boot.initrd.supportedFilesystems = [ "btrfs" ]; + + boot.initrd.systemd = { + enable = true; + repart = { + enable = true; + device = disk; + empty = "allow"; + }; + }; + + virtualisation.fileSystems = { + "/" = { + device = partition; + fsType = "btrfs"; + options = [ "subvol=/root" ]; + }; + + "/home" = { + device = partition; + fsType = "btrfs"; + options = [ "subvol=/home" ]; + }; }; }; - }; - testScript = '' - machine.wait_for_unit("multi-user.target") + testScript = '' + machine.wait_for_unit("multi-user.target") - with subtest("BTRFS filesystems are mounted correctly"): - print("output of \"grep -E '/dev/vda' /proc/mounts\":\n" + machine.execute("grep -E '/dev/vda' /proc/mounts")[1]) - machine.succeed("grep -E '/dev/vda / btrfs rw,.*subvolid=[0-9]+,subvol=/root 0 0' /proc/mounts") - machine.succeed("grep -E '/dev/vda /home btrfs rw,.*subvolid=[0-9]+,subvol=/home 0 0' /proc/mounts") - ''; - }; + with subtest("BTRFS filesystems are mounted correctly"): + realdev = machine.succeed("realpath '${partition}'") + print(f"output of \"grep -E '{realdev}' /proc/mounts\":\n" + machine.execute(f"grep -E '{realdev}' /proc/mounts")[1]) + machine.succeed(f"grep -E '{realdev} / btrfs rw,.*subvolid=[0-9]+,subvol=/root 0 0' /proc/mounts") + machine.succeed(f"grep -E '{realdev} /home btrfs rw,.*subvolid=[0-9]+,subvol=/home 0 0' /proc/mounts") + ''; + }; erofs = let From 61305d14147e05b60c6bad4e7c8d91dfcc7a6e37 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Fri, 15 Aug 2025 15:43:01 -0400 Subject: [PATCH 28/88] nixos/tests/initrd-secrets: Use systemd stage 1 --- nixos/tests/initrd-secrets-changing.nix | 21 ++++++++++++++------- nixos/tests/initrd-secrets.nix | 15 +++++++++------ 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/nixos/tests/initrd-secrets-changing.nix b/nixos/tests/initrd-secrets-changing.nix index f0d6bc4c28b4..1ff8a9aabdcb 100644 --- a/nixos/tests/initrd-secrets-changing.nix +++ b/nixos/tests/initrd-secrets-changing.nix @@ -24,14 +24,19 @@ testing.makeTest { boot.initrd.secrets = { "/test" = secret1InStore; - "/run/keys/test" = secret1InStore; + "/run/test" = secret1InStore; + }; + boot.initrd.systemd = { + enable = true; + tmpfiles.settings."00-copy-secret" = { + "/sysroot/secret-from-initramfs".C.argument = "/test"; + }; }; - boot.initrd.postMountCommands = "cp /test /mnt-root/secret-from-initramfs"; specialisation.secrets2System.configuration = { boot.initrd.secrets = lib.mkForce { "/test" = secret2InStore; - "/run/keys/test" = secret2InStore; + "/run/test" = secret2InStore; }; }; }; @@ -40,21 +45,23 @@ testing.makeTest { start_all() machine.wait_for_unit("multi-user.target") - print(machine.succeed("cat /run/keys/test")) + print(machine.succeed("cat /run/test")) machine.succeed( "cmp ${secret1InStore} /secret-from-initramfs", - "cmp ${secret1InStore} /run/keys/test", + "cmp ${secret1InStore} /run/test", ) # Select the second boot entry corresponding to the specialisation secrets2System. machine.succeed("grub-reboot 1") + # Remove the rootfs secret so tmpfiles will copy the new one next time + machine.succeed("rm /secret-from-initramfs") machine.shutdown() with subtest("Check that the specialisation's secrets are distinct despite identical kernels"): machine.wait_for_unit("multi-user.target") - print(machine.succeed("cat /run/keys/test")) + print(machine.succeed("cat /run/test")) machine.succeed( "cmp ${secret2InStore} /secret-from-initramfs", - "cmp ${secret2InStore} /run/keys/test", + "cmp ${secret2InStore} /run/test", ) machine.shutdown() ''; diff --git a/nixos/tests/initrd-secrets.nix b/nixos/tests/initrd-secrets.nix index e19ac4d6f3dc..ce0a54dac6c0 100644 --- a/nixos/tests/initrd-secrets.nix +++ b/nixos/tests/initrd-secrets.nix @@ -24,12 +24,15 @@ let boot.initrd.secrets = { "/test" = secretInStore; - # This should *not* need to be copied in postMountCommands - "/run/keys/test" = secretInStore; + # This should *not* need to be copied + "/run/test" = secretInStore; + }; + boot.initrd.systemd = { + enable = true; + tmpfiles.settings."00-copy-secret" = { + "/sysroot/secret-from-initramfs".C.argument = "/test"; + }; }; - boot.initrd.postMountCommands = '' - cp /test /mnt-root/secret-from-initramfs - ''; boot.initrd.compressor = compressor; # zstd compression is only supported from 5.9 onwards. Remove when 5.10 becomes default. boot.kernelPackages = pkgs.linuxPackages_latest; @@ -40,7 +43,7 @@ let machine.wait_for_unit("multi-user.target") machine.succeed( "cmp ${secretInStore} /secret-from-initramfs", - "cmp ${secretInStore} /run/keys/test", + "cmp ${secretInStore} /run/test", ) ''; }; From 1288734d0986dd2f63f172ffd9f0969650b15315 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Fri, 15 Aug 2025 15:43:01 -0400 Subject: [PATCH 29/88] nixos/tests/swap: Use systemd stage 1 --- nixos/tests/swap-partition.nix | 47 ++++++++++++------------ nixos/tests/swap-random-encryption.nix | 49 ++++++++++++++------------ 2 files changed, 51 insertions(+), 45 deletions(-) diff --git a/nixos/tests/swap-partition.nix b/nixos/tests/swap-partition.nix index d6310be61202..fa370be079c8 100644 --- a/nixos/tests/swap-partition.nix +++ b/nixos/tests/swap-partition.nix @@ -1,33 +1,35 @@ -{ lib, pkgs, ... }: +{ ... }: { name = "swap-partition"; nodes.machine = - { - config, - pkgs, - lib, - ... - }: + { config, ... }: { virtualisation.useDefaultFilesystems = false; virtualisation.rootDevice = "/dev/vda1"; - boot.initrd.postDeviceCommands = '' - if ! test -b /dev/vda1; then - ${pkgs.parted}/bin/parted --script /dev/vda -- mklabel msdos - ${pkgs.parted}/bin/parted --script /dev/vda -- mkpart primary 1MiB -250MiB - ${pkgs.parted}/bin/parted --script /dev/vda -- mkpart primary -250MiB 100% - sync - fi - - FSTYPE=$(blkid -o value -s TYPE /dev/vda1 || true) - if test -z "$FSTYPE"; then - ${pkgs.e2fsprogs}/bin/mke2fs -t ext4 -L root /dev/vda1 - ${pkgs.util-linux}/bin/mkswap --label swap /dev/vda2 - fi - ''; + boot.initrd.systemd = { + enable = true; + repart = { + enable = true; + device = "/dev/vda"; + empty = "allow"; + }; + }; + systemd.repart.partitions = { + "00-root" = { + Type = "linux-generic"; + Format = "ext4"; + Label = "root"; + }; + "10-swap" = { + Type = "linux-generic"; + Label = "swap"; + SizeMinBytes = "250M"; + SizeMaxBytes = "250M"; + }; + }; virtualisation.fileSystems = { "/" = { @@ -38,7 +40,8 @@ swapDevices = [ { - device = "/dev/disk/by-label/swap"; + device = "/dev/disk/by-partlabel/swap"; + options = [ "x-systemd.makefs" ]; } ]; }; diff --git a/nixos/tests/swap-random-encryption.nix b/nixos/tests/swap-random-encryption.nix index 80601e89d108..f977104d8dff 100644 --- a/nixos/tests/swap-random-encryption.nix +++ b/nixos/tests/swap-random-encryption.nix @@ -1,14 +1,9 @@ -{ lib, pkgs, ... }: +{ ... }: { name = "swap-random-encryption"; nodes.machine = - { - config, - pkgs, - lib, - ... - }: + { pkgs, ... }: { environment.systemPackages = [ pkgs.cryptsetup ]; @@ -16,19 +11,27 @@ virtualisation.rootDevice = "/dev/vda1"; - boot.initrd.postDeviceCommands = '' - if ! test -b /dev/vda1; then - ${pkgs.parted}/bin/parted --script /dev/vda -- mklabel msdos - ${pkgs.parted}/bin/parted --script /dev/vda -- mkpart primary 1MiB -250MiB - ${pkgs.parted}/bin/parted --script /dev/vda -- mkpart primary -250MiB 100% - sync - fi - - FSTYPE=$(blkid -o value -s TYPE /dev/vda1 || true) - if test -z "$FSTYPE"; then - ${pkgs.e2fsprogs}/bin/mke2fs -t ext4 -L root /dev/vda1 - fi - ''; + boot.initrd.systemd = { + enable = true; + repart = { + enable = true; + device = "/dev/vda"; + empty = "allow"; + }; + }; + systemd.repart.partitions = { + "00-root" = { + Type = "linux-generic"; + Format = "ext4"; + Label = "root"; + }; + "10-swap" = { + Type = "linux-generic"; + Label = "swap"; + SizeMinBytes = "250M"; + SizeMaxBytes = "250M"; + }; + }; virtualisation.fileSystems = { "/" = { @@ -39,7 +42,7 @@ swapDevices = [ { - device = "/dev/vda2"; + device = "/dev/disk/by-partlabel/swap"; randomEncryption = { enable = true; @@ -60,7 +63,7 @@ with subtest("Swap device has 4k sector size"): import json - result = json.loads(machine.succeed("lsblk -Jo PHY-SEC,LOG-SEC /dev/mapper/dev-vda2")) + result = json.loads(machine.succeed("lsblk -Jo PHY-SEC,LOG-SEC /dev/mapper/dev-disk-by\\x2dpartlabel-swap")) block_devices = result["blockdevices"] if len(block_devices) != 1: raise Exception ("lsblk output did not report exactly one block device") @@ -72,7 +75,7 @@ with subtest("Swap encrypt has assigned cipher and keysize"): import re - results = machine.succeed("cryptsetup status dev-vda2").splitlines() + results = machine.succeed("cryptsetup status dev-disk-by\\x2dpartlabel-swap").splitlines() cipher_pattern = re.compile(r"\s*cipher:\s+aes-xts-plain64\s*") if not any(cipher_pattern.fullmatch(line) for line in results): From 5e0a4d739ddd85e045e684a74660b6f8e0b9f705 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Sat, 23 Aug 2025 10:31:15 -0400 Subject: [PATCH 30/88] nixos/tests/installer: Support both stage 1 implementations --- nixos/tests/all-tests.nix | 4 +- nixos/tests/installer-systemd-stage-1.nix | 52 ----------------------- nixos/tests/installer.nix | 34 ++++++++++----- 3 files changed, 26 insertions(+), 64 deletions(-) delete mode 100644 nixos/tests/installer-systemd-stage-1.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 99c897c23bbe..a927794c0108 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -785,8 +785,8 @@ in input-remapper = runTest ./input-remapper.nix; inspircd = runTest ./inspircd.nix; installed-tests = recurseIntoAttrs (handleTest ./installed-tests { }); - installer = handleTest ./installer.nix { }; - installer-systemd-stage-1 = handleTest ./installer-systemd-stage-1.nix { }; + installer = handleTest ./installer.nix { systemdStage1 = true; }; + installer-systemd-stage-1 = handleTest ./installer.nix { systemdStage1 = true; }; intune = runTest ./intune.nix; invidious = runTest ./invidious.nix; invoiceplane = runTest ./invoiceplane.nix; diff --git a/nixos/tests/installer-systemd-stage-1.nix b/nixos/tests/installer-systemd-stage-1.nix deleted file mode 100644 index d007b3caf397..000000000000 --- a/nixos/tests/installer-systemd-stage-1.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ - system ? builtins.currentSystem, - config ? { }, - pkgs ? import ../.. { inherit system config; }, -}: - -{ - # Some of these tests don't work with systemd stage 1 yet. Uncomment - # them when fixed. - inherit - (import ./installer.nix { - inherit system config pkgs; - systemdStage1 = true; - }) - # bcache - bcachefsSimple - bcachefsEncrypted - btrfsSimple - btrfsSubvolDefault - btrfsSubvolEscape - btrfsSubvols - encryptedFSWithKeyfile - # grub1 - luksroot - luksroot-format1 - luksroot-format2 - lvm - separateBoot - separateBootFat - separateBootZfs - simple - simpleLabels - simpleProvided - simpleSpecialised - simpleUefiGrub - simpleUefiGrubSpecialisation - simpleUefiSystemdBoot - stratisRoot - swraid - zfsroot - clevisLuks - clevisLuksFallback - clevisZfs - clevisZfsFallback - clevisZfsParentDataset - clevisZfsParentDatasetFallback - gptAutoRoot - clevisBcachefs - clevisBcachefsFallback - ; - -} diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix index 892c066c568b..80148997bff0 100644 --- a/nixos/tests/installer.nix +++ b/nixos/tests/installer.nix @@ -2,7 +2,7 @@ system ? builtins.currentSystem, config ? { }, pkgs ? import ../.. { inherit system config; }, - systemdStage1 ? false, + systemdStage1, }: with import ../lib/testing-python.nix { inherit system pkgs; }; @@ -42,7 +42,7 @@ let # To ensure that we can rebuild the grub configuration on the nixos-rebuild system.extraDependencies = with pkgs; [ stdenvNoCC ]; - ${optionalString systemdStage1 "boot.initrd.systemd.enable = true;"} + boot.initrd.systemd.enable = ${boolToString systemdStage1}; ${optionalString (bootLoader == "grub") '' boot.loader.grub.extraConfig = "serial; terminal_output serial"; @@ -640,6 +640,7 @@ let clevisFallbackTest ? false, disableFileSystems ? false, selectNixPackage ? pkgs: pkgs.nixVersions.stable, + broken ? false, }: let isEfi = bootLoader == "systemd-boot" || (bootLoader == "grub" && grubUseEfi); @@ -656,6 +657,7 @@ let "x86_64-darwin" "i686-linux" ]; + inherit broken; }; nodes = let @@ -846,14 +848,23 @@ let "mount LABEL=boot /mnt/boot", ) ''; - extraConfig = '' - boot.kernelParams = lib.mkAfter [ "console=tty0" ]; - ''; - enableOCR = true; - postBootCommands = '' - target.wait_for_text("[Pp]assphrase for") - target.send_chars("supersecret\n") - ''; + # The serial console is much more reliable than OCR, but + # scripted stage 1 doesn't forward logs / password prompts to + # it. (TODO: The test framework should use 'console=ttyS0' + # anyway, but currently it uses 'console=tty0' for the sake of + # the interactive driver) + enableOCR = !systemdStage1; + postBootCommands = + if systemdStage1 then + '' + target.wait_for_console_text("passphrase for") + target.send_console("supersecret\n") + '' + else + '' + target.wait_for_text("[Pp]assphrase for") + target.send_chars("supersecret\n") + ''; }; # The (almost) simplest partitioning scheme: a swap partition and @@ -879,11 +890,13 @@ let simple-test-config-by-attr = simple-test-config // { testByAttrSwitch = true; + broken = true; }; simple-test-config-from-by-attr-to-flake = simple-test-config // { testByAttrSwitch = true; testFlakeSwitch = true; + broken = true; }; simple-uefi-grub-config = { @@ -1387,6 +1400,7 @@ in # Full disk encryption (root, kernel and initrd encrypted) using GRUB, GPT/UEFI, # LVM-on-LUKS and a keyfile in initrd.secrets to enter the passphrase once fullDiskEncryption = makeInstallerTest "fullDiskEncryption" { + broken = true; createPartitions = '' installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel gpt" From 0b198b61f6e739bca7451793d53aa5601b0674ec Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Tue, 26 Aug 2025 01:43:34 -0400 Subject: [PATCH 31/88] nixos/tests/ec2-nixops: Support both stage 1 implementations --- nixos/tests/ec2.nix | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/nixos/tests/ec2.nix b/nixos/tests/ec2.nix index ae9a79db5403..1a84033ffed5 100644 --- a/nixos/tests/ec2.nix +++ b/nixos/tests/ec2.nix @@ -19,9 +19,13 @@ let ../modules/profiles/qemu-guest.nix { # Hack to make the partition resizing work in QEMU. - boot.initrd.postDeviceCommands = mkBefore '' - ln -s vda /dev/xvda - ln -s vda1 /dev/xvda1 + boot.initrd.services.udev.rules = '' + KERNEL==vda, SYMLINK+=xvda + KERNEL==vda1, SYMLINK+=xvda1 + ''; + services.udev.extraRules = '' + KERNEL==vda, SYMLINK+=xvda + KERNEL==vda1, SYMLINK+=xvda1 ''; amazonImage.format = "qcow2"; From 65090b23f6ec329bcc1d54eb970299395ed85ccd Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Wed, 10 Sep 2025 06:10:57 -0400 Subject: [PATCH 32/88] nixos/tests/qemu-vm-external-disk-image: Increase bootSize The systemd initrd is a little larger and it's gone over the threshold. --- nixos/tests/qemu-vm-external-disk-image.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/tests/qemu-vm-external-disk-image.nix b/nixos/tests/qemu-vm-external-disk-image.nix index b01cabbadb5d..6b6a2ef29a28 100644 --- a/nixos/tests/qemu-vm-external-disk-image.nix +++ b/nixos/tests/qemu-vm-external-disk-image.nix @@ -32,7 +32,7 @@ let label = rootFslabel; partitionTableType = "efi"; format = "qcow2"; - bootSize = "32M"; + bootSize = "128M"; additionalSpace = "0M"; copyChannel = false; }; From 222ee6e2451960162ef53b5c0c30bc8e64d2c8a3 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Fri, 26 Sep 2025 02:17:56 -0400 Subject: [PATCH 33/88] nixos/luksroot: Unhide crypttabExtraOpts --- nixos/modules/system/boot/luksroot.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix index e925a1e7d2d0..02e39df724c1 100644 --- a/nixos/modules/system/boot/luksroot.nix +++ b/nixos/modules/system/boot/luksroot.nix @@ -999,7 +999,6 @@ in type = with types; listOf singleLineStr; default = [ ]; example = [ "_netdev" ]; - visible = false; description = '' Only used with systemd stage 1. From 5312ce1bae2879cc2ff7a3e2851bf32918099079 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Sun, 5 Apr 2026 17:11:38 -0400 Subject: [PATCH 34/88] nixos/systemd-stage-1/users-groups: Assert against cryptsetup-askpass --- nixos/modules/config/users-groups.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix index 461c219ee807..56ff03aefec1 100644 --- a/nixos/modules/config/users-groups.nix +++ b/nixos/modules/config/users-groups.nix @@ -1143,6 +1143,16 @@ in ''; } ] + ++ flip mapAttrsToList config.boot.initrd.systemd.users ( + name: user: { + assertion = config.boot.initrd.systemd.enable -> (baseNameOf user.shell != "cryptsetup-askpass"); + message = '' + cryptsetup-askpass is not available in systemd stage 1. Please remove it from: boot.initrd.systemd.users.${name}.shell + + Use `systemctl default` instead; see the NixOS 26.05 release notes for details. If you want to continue restricting the command for SSH login, you can use `command="systemctl default"` in SSH authorized keys instead; see `sshd(8)`. + ''; + } + ) ++ flatten ( flip mapAttrsToList cfg.users ( name: user: From 5620d245adf03c58b74f803031ba2a85d204db31 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Fri, 15 Aug 2025 15:43:01 -0400 Subject: [PATCH 35/88] nixos/systemd-stage-1: Enable by default --- .../administration/boot-problems.section.md | 84 ++++++++++++------- .../installing-from-other-distro.section.md | 9 +- nixos/doc/manual/redirects.json | 3 + .../manual/release-notes/rl-2605.section.md | 10 +++ nixos/modules/system/boot/stage-1.nix | 4 + nixos/modules/system/boot/systemd/initrd.nix | 84 +++++++++++-------- nixos/release-combined.nix | 20 +++++ 7 files changed, 143 insertions(+), 71 deletions(-) diff --git a/nixos/doc/manual/administration/boot-problems.section.md b/nixos/doc/manual/administration/boot-problems.section.md index bca4fdc3fb38..357c6e5ea0ef 100644 --- a/nixos/doc/manual/administration/boot-problems.section.md +++ b/nixos/doc/manual/administration/boot-problems.section.md @@ -1,41 +1,61 @@ # Boot Problems {#sec-boot-problems} -If NixOS fails to boot, there are a number of kernel command line parameters that may help you to identify or fix the issue. You can add these parameters in the GRUB boot menu by pressing “e” to modify the selected boot entry and editing the line starting with `linux`. The following are some useful kernel command line parameters that are recognised by the NixOS boot scripts or by systemd: +If NixOS fails to boot, there are a number of kernel command line parameters that may help you to identify or fix the issue. You can add these parameters in the GRUB boot menu by pressing “e” to modify the selected boot entry and editing the line starting with `linux`. -`boot.shell_on_fail` - -: Allows the user to start a root shell if something goes wrong in stage 1 of the boot process (the initial ramdisk). This is disabled by default because there is no authentication for the root shell. - -`boot.debug1` - -: Start an interactive shell in stage 1 before anything useful has been done. That is, no modules have been loaded and no file systems have been mounted, except for `/proc` and `/sys`. - -`boot.debug1devices` - -: Like `boot.debug1`, but runs stage1 until kernel modules are loaded and device nodes are created. This may help with e.g. making the keyboard work. - -`boot.debug1mounts` - -: Like `boot.debug1` or `boot.debug1devices`, but runs stage1 until all filesystems that are mounted during initrd are mounted (see [neededForBoot](#opt-fileSystems._name_.neededForBoot)). As a motivating example, this could be useful if you've forgotten to set [neededForBoot](#opt-fileSystems._name_.neededForBoot) on a file system. - -`boot.trace` - -: Print every shell command executed by the stage 1 and 2 boot scripts. - -`single` - -: Boot into rescue mode (a.k.a. single user mode). This will cause systemd to start nothing but the unit `rescue.target`, which runs `sulogin` to prompt for the root password and start a root login shell. Exiting the shell causes the system to continue with the normal boot process. - -`systemd.log_level=debug` `systemd.log_target=console` - -: Make systemd very verbose and send log messages to the console instead of the journal. For more parameters recognised by systemd, see systemd(1). - -In addition, these arguments are recognised by the live image only: +{manpage}`kernel-command-line(7)` documents the kernel parameters accepted by systemd. Those include many that are helpful for debugging boot issues, such as `systemd.debug_shell` and `rescue`. Some also have `rd.`‐prefixed variants that apply to stage 1. `live.nixos.passwd=password` : Set the password for the `nixos` live user. This can be used for SSH access if there are issues using the terminal. -Notice that for `boot.shell_on_fail`, `boot.debug1`, `boot.debug1devices`, and `boot.debug1mounts`, if you did **not** select "start the new shell as pid 1", and you `exit` from the new shell, boot will proceed normally from the point where it failed, as if you'd chosen "ignore the error and continue". +If no login prompts or X11 login screens appear (e.g. due to hanging dependencies), you can press Alt+ArrowUp. If you’re lucky, this will start `rescue.target` (described in {manpage}`systemd.special(7)`). (Also note that since most units have a 90-second timeout before systemd gives up on them, the `agetty` login prompts should appear eventually unless something is very wrong.) -If no login prompts or X11 login screens appear (e.g. due to hanging dependencies), you can press Alt+ArrowUp. If you’re lucky, this will start rescue mode (described above). (Also note that since most units have a 90-second timeout before systemd gives up on them, the `agetty` login prompts should appear eventually unless something is very wrong.) +## Scripted stage 1 {#sec-boot-problems-scripted-stage-1} + +The scripted implementation of stage 1 also understands these boot parameters. + +::: {.warning} +The scripted implementation of stage 1 is disabled by default and deprecated. These parameters have no effect, unless systemd stage 1 is explicitly disabled with `boot.initrd.systemd.enable = false;`. +::: + +`boot.shell_on_fail` + +: Allows the user to start a root shell if something goes wrong in stage 1 of the boot process (the initial ramdisk). This is disabled by default because there is no authentication for the root shell. + + ::: {.note} + systemd stage 1 alternative: `SYSTEMD_SULOGIN_FORCE=1` for rescue mode, or `rd.systemd.debug_shell` for shell on tty9. + ::: + +`boot.debug1` + +: Start an interactive shell in stage 1 before anything useful has been done. That is, no modules have been loaded and no file systems have been mounted, except for `/proc` and `/sys`. + + ::: {.note} + systemd stage 1 alternative: `rd.systemd.break=pre-udev` + ::: + +`boot.debug1devices` + +: Like `boot.debug1`, but runs stage1 until kernel modules are loaded and device nodes are created. This may help with e.g. making the keyboard work. + + ::: {.note} + systemd stage 1 alternative: `rd.systemd.break=pre-mount` + ::: + +`boot.debug1mounts` + +: Like `boot.debug1` or `boot.debug1devices`, but runs stage1 until all filesystems that are mounted during initrd are mounted (see [neededForBoot](#opt-fileSystems._name_.neededForBoot)). As a motivating example, this could be useful if you've forgotten to set [neededForBoot](#opt-fileSystems._name_.neededForBoot) on a file system. + + ::: {.note} + systemd stage 1 alternative: `rd.systemd.break=pre-switch-root` + ::: + +`boot.trace` + +: Print every shell command executed by the stage 1 and 2 boot scripts. + + ::: {.note} + systemd stage 1 alternative: `rd.systemd.log_level=debug` + ::: + +Notice that for `boot.shell_on_fail`, `boot.debug1`, `boot.debug1devices`, and `boot.debug1mounts`, if you did **not** select "start the new shell as pid 1", and you `exit` from the new shell, boot will proceed normally from the point where it failed, as if you'd chosen "ignore the error and continue". diff --git a/nixos/doc/manual/installation/installing-from-other-distro.section.md b/nixos/doc/manual/installation/installing-from-other-distro.section.md index 56b1cca00e05..2b9d3171264a 100644 --- a/nixos/doc/manual/installation/installing-from-other-distro.section.md +++ b/nixos/doc/manual/installation/installing-from-other-distro.section.md @@ -149,6 +149,10 @@ The first steps to all these are the same: `NIXOS_LUSTRATE`: ::: + ::: {.warning} + The lustrate process will not work if the [](#opt-boot.initrd.systemd.enable) option is set to `true`, which is now the default. Setting this to `false` is deprecated and scheduled for removal in NixOS 26.11, along with `NIXOS_LUSTRATE`. Other installation methods, such as the one outlined above, or installing from [kexec](#sec-booting-via-kexec), are recommended instead. + ::: + Generate your NixOS configuration: ```ShellSession @@ -167,11 +171,6 @@ The first steps to all these are the same: If the current system and NixOS's bootloader configuration don't agree on where the [EFI System Partition](https://en.wikipedia.org/wiki/EFI_system_partition) is to be mounted, you'll need to manually alter the mount point in `hardware-configuration.nix` before building the system closure. ::: - ::: {.note} - The lustrate process will not work if the [](#opt-boot.initrd.systemd.enable) option is set to `true`. - If you want to use this option, wait until after the first boot into the NixOS system to enable it and rebuild. - ::: - You'll likely want to set a root password for your first boot using the configuration files because you won't have a chance to enter a password until after you reboot. You can initialize the root password diff --git a/nixos/doc/manual/redirects.json b/nixos/doc/manual/redirects.json index 7bf88472148e..feb535c2142c 100644 --- a/nixos/doc/manual/redirects.json +++ b/nixos/doc/manual/redirects.json @@ -151,6 +151,9 @@ "module-virtualisation-xen-introduction": [ "index.html#module-virtualisation-xen-introduction" ], + "sec-boot-problems-scripted-stage-1": [ + "index.html#sec-boot-problems-scripted-stage-1" + ], "sec-nixos-test-vms-vs-containers": [ "index.html#sec-nixos-test-vms-vs-containers" ], diff --git a/nixos/doc/manual/release-notes/rl-2605.section.md b/nixos/doc/manual/release-notes/rl-2605.section.md index 5220d49e71e2..c0caa51bd18f 100644 --- a/nixos/doc/manual/release-notes/rl-2605.section.md +++ b/nixos/doc/manual/release-notes/rl-2605.section.md @@ -4,6 +4,16 @@ +- Stage 1 (a.k.a. initrd) is now based on systemd by default, and the old scripted implementation is deprecated and scheduled for removal in 26.11. If you run into issues migrating, you can [get help from the community](https://nixos.org/community/) or report an issue on GitHub. + + You can temporarily revert to the scripted stage 1 implementation by disabling [](#opt-boot.initrd.systemd.enable), but this is discouraged. + + Most incompatibilities will be explained with assertions during configuration evaluation, but be aware of the following that can't be automatically detected: + + - If you use LUKS disk encryption, ensure that `fileSystems."/".device` is set to `"/dev/mapper/"`, where `` matches the name in your `boot.initrd.luks.devices.` definition, to avoid systemd timing out while prompting for a passphrase. If you have a more complex setup, e.g. with LVM on top of LUKS, you may need to add `"x-systemd.device-timeout=infinity"` to `fileSystems."/".options` instead. If you need to disable the timeout before you can boot into the system, pass `systemd.default_device_timeout_sec=infinity` on the kernel command line. + - The `cryptsetup-askpass` program is not available; use `systemctl default` instead, which will prompt for passphrases as necessary. If you pipe password responses into SSH over stdin, use `ssh -o RequestTTY=force` to ensure `systemctl default` gets a TTY to prompt on. + - Many kernel parameters have been replaced with native systemd versions; see [](#sec-boot-problems). + - The system.nix file has been added has an alternative entry point to configuration.nix (and flake.nix) that allows to configure NixOS without using `nix-channel`. This file must evaluate to a NixOS system derivation or an attribute set of such derivations, in which case the attribute to build has to be selected with the `--attr` option of `nixos-rebuild` or `nixos-install`. For example, diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix index 343777d05c3a..a2594b3e9ab3 100644 --- a/nixos/modules/system/boot/stage-1.nix +++ b/nixos/modules/system/boot/stage-1.nix @@ -727,6 +727,10 @@ in }; config = mkIf config.boot.initrd.enable { + warnings = lib.optional (!config.boot.initrd.systemd.enable) '' + Scripted initrd is deprecated and scheduled for removal in 26.11. See the NixOS 26.05 release notes. + ''; + assertions = [ { assertion = !config.boot.initrd.systemd.enable -> any (fs: fs.mountPoint == "/") fileSystems; diff --git a/nixos/modules/system/boot/systemd/initrd.nix b/nixos/modules/system/boot/systemd/initrd.nix index f61d94b7851a..c3713c026b0e 100644 --- a/nixos/modules/system/boot/systemd/initrd.nix +++ b/nixos/modules/system/boot/systemd/initrd.nix @@ -157,6 +157,7 @@ in options.boot.initrd.systemd = { enable = mkEnableOption "systemd in initrd" // { + default = true; description = '' Whether to enable systemd in initrd. The unit options such as {option}`boot.initrd.systemd.services` are the same as their @@ -427,42 +428,57 @@ in }; config = mkIf (config.boot.initrd.enable && cfg.enable) { - assertions = [ - { - assertion = - cfg.root == "fstab" -> any (fs: fs.mountPoint == "/") (builtins.attrValues config.fileSystems); - message = "The ‘fileSystems’ option does not specify your root file system."; - } - ] - ++ - map - (name: { - assertion = lib.attrByPath name (throw "impossible") config.boot.initrd == ""; - message = '' - systemd stage 1 does not support 'boot.initrd.${lib.concatStringsSep "." name}'. Please - convert it to analogous systemd units in 'boot.initrd.systemd'. - - Definitions: - ${lib.concatMapStringsSep "\n" ({ file, ... }: " - ${file}") - (lib.attrByPath name (throw "impossible") options.boot.initrd).definitionsWithLocations - } - ''; - }) - [ - [ "preFailCommands" ] - [ "preDeviceCommands" ] - [ "preLVMCommands" ] - [ "postDeviceCommands" ] - [ "postResumeCommands" ] - [ "postMountCommands" ] - [ "extraUdevRulesCommands" ] - [ "extraUtilsCommands" ] - [ "extraUtilsCommandsTest" ] + assertions = + let + obsoleteOpt = + opts: msgFn: + lib.flip map opts (opt: { + assertion = lib.attrByPath opt (throw "impossible") config.boot.initrd == ""; + message = '' + ${msgFn (lib.concatStringsSep "." opt)} + Definitions: + ${lib.concatMapStringsSep "\n" ({ file, ... }: " - ${file}") + (lib.attrByPath opt (throw "impossible") options.boot.initrd).definitionsWithLocations + } + ''; + }); + in + [ + { + assertion = + cfg.root == "fstab" -> any (fs: fs.mountPoint == "/") (builtins.attrValues config.fileSystems); + message = "The ‘fileSystems’ option does not specify your root file system."; + } + ] + ++ + obsoleteOpt [ - "network" - "postCommands" + [ "preFailCommands" ] + [ "preDeviceCommands" ] + [ "preLVMCommands" ] + [ "postDeviceCommands" ] + [ "postResumeCommands" ] + [ "postMountCommands" ] + [ + "network" + "postCommands" + ] ] - ]; + (name: '' + systemd stage 1 does not support `boot.initrd.${name}`. Instead, create systemd services using the `boot.initrd.systemd.services` options, which has an API matching the stage 2 `systemd.services` options. Refer to `bootup(7)`, specifically the sections on "Bootup in the Initrd" and "System Manager Bootup", for information about when various units happen, and order services accordingly. + '') + ++ + obsoleteOpt + [ + [ "extraUtilsCommands" ] + [ "extraUtilsCommandsTest" ] + ] + (name: '' + systemd stage 1 does not support `boot.initrd.${name}`. Instead, use `boot.initrd.systemd.initrdBin`, `boot.initrd.systemd.extraBin`, `boot.initrd.systemd.contents`, or `boot.initrd.systemd.storePaths` to add files to the initrd. + '') + ++ obsoleteOpt [ [ "extraUdevRulesCommands" ] ] (name: '' + systemd stage 1 does not support `boot.initrd.${name}`. Instead, use `boot.initrd.services.udev` to configure udev. + ''); system.build = { inherit initialRamdisk; }; diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix index d299ead82a1b..40eb4a0d34ae 100644 --- a/nixos/release-combined.nix +++ b/nixos/release-combined.nix @@ -103,6 +103,24 @@ rec { (onFullSupported "nixos.tests.gnome") (onSystems [ "x86_64-linux" ] "nixos.tests.hibernate") (onFullSupported "nixos.tests.i3wm") + (onSystems [ "aarch64-linux" ] "nixos.tests.installer-systemd-stage-1.simpleUefiSystemdBoot") + (onSystems [ "x86_64-linux" ] "nixos.tests.installer-systemd-stage-1.btrfsSimple") + (onSystems [ "x86_64-linux" ] "nixos.tests.installer-systemd-stage-1.btrfsSubvolDefault") + (onSystems [ "x86_64-linux" ] "nixos.tests.installer-systemd-stage-1.btrfsSubvolEscape") + (onSystems [ "x86_64-linux" ] "nixos.tests.installer-systemd-stage-1.btrfsSubvols") + (onSystems [ "x86_64-linux" ] "nixos.tests.installer-systemd-stage-1.luksroot") + (onSystems [ "x86_64-linux" ] "nixos.tests.installer-systemd-stage-1.lvm") + (onSystems [ "x86_64-linux" ] "nixos.tests.installer-systemd-stage-1.separateBootZfs") + (onSystems [ "x86_64-linux" ] "nixos.tests.installer-systemd-stage-1.separateBootFat") + (onSystems [ "x86_64-linux" ] "nixos.tests.installer-systemd-stage-1.separateBoot") + (onSystems [ "x86_64-linux" ] "nixos.tests.installer-systemd-stage-1.simpleLabels") + (onSystems [ "x86_64-linux" ] "nixos.tests.installer-systemd-stage-1.simpleProvided") + (onSystems [ "x86_64-linux" ] "nixos.tests.installer-systemd-stage-1.simpleUefiSystemdBoot") + (onSystems [ "x86_64-linux" ] "nixos.tests.installer-systemd-stage-1.simple") + (onSystems [ "x86_64-linux" ] "nixos.tests.installer-systemd-stage-1.swraid") + (onSystems [ "x86_64-linux" ] "nixos.tests.installer-systemd-stage-1.zfsroot") + (onSystems [ "x86_64-linux" ] "nixos.tests.nixos-rebuild-specialisations") + # Scripted stage 1 installer tests, remove in 26.11 (onSystems [ "aarch64-linux" ] "nixos.tests.installer.simpleUefiSystemdBoot") (onSystems [ "x86_64-linux" ] "nixos.tests.installer.btrfsSimple") (onSystems [ "x86_64-linux" ] "nixos.tests.installer.btrfsSubvolDefault") @@ -166,6 +184,8 @@ rec { (onFullSupported "nixos.tests.nfs4.simple") (onSystems [ "x86_64-linux" ] "nixos.tests.oci-containers.podman") (onFullSupported "nixos.tests.openssh") + (onFullSupported "nixos.tests.systemd-initrd-networkd-ssh") + # Scripted stage 1 SSH test, remove in 26.11 (onFullSupported "nixos.tests.initrd-network-ssh") (onFullSupported "nixos.tests.pantheon") (onFullSupported "nixos.tests.php.fpm") From 013aa2812eb8d587d297495720e2c38f3346d43b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 8 Apr 2026 12:29:41 +0000 Subject: [PATCH 36/88] odiff: 4.3.2 -> 4.3.3 --- pkgs/by-name/od/odiff/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/od/odiff/package.nix b/pkgs/by-name/od/odiff/package.nix index ddb2ca5aac25..725f65df6b24 100644 --- a/pkgs/by-name/od/odiff/package.nix +++ b/pkgs/by-name/od/odiff/package.nix @@ -14,13 +14,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "odiff"; - version = "4.3.2"; + version = "4.3.3"; src = fetchFromGitHub { owner = "dmtrKovalenko"; repo = "odiff"; tag = "v${finalAttrs.version}"; - hash = "sha256-gCF+CInczBJfDyZgxEQor5C/OSxKciCu9gbZanaE/nA="; + hash = "sha256-5x03mpqBllfEVBGMspcC/ljC6PrSXQgU2j+eKfHu6PM="; }; postConfigure = '' From 1e4eb2df3fe59c4ef9a20830a18ae2771b8bfa45 Mon Sep 17 00:00:00 2001 From: rnhmjoj Date: Sat, 28 Mar 2026 21:35:49 +0100 Subject: [PATCH 37/88] nixos: completely remove systemd-udev-settle.service This service is essentially a random sleep() call that old software that is unable to properly handle modern hardware initialisation being asynchronous can use to *mostly* get by. Over the years is has caused so many issues in NixOS, like introducing long delays in the boot process[1], complete deadlocks[2] and even failures when reloading services or activating a new configuration[3]. systemd has been discouraging its use since 2011 (15 years ago!), then it officially deprecated it in 2018 and since 2020 it started to show on every boot a huge wall of text calling out all the offending services that still use it. Around 2021 we managed to fix around 15 NixOS modules[4] that were relying on systemd-udev-settle and practically ZFS[5] was the only remaining one. However, since then, people have actually started to bring it back with new services[6][7][8]. This is not acceptable. So, to prevent any more (lazy) uses of systemd-udev-settle, we stop providing the systemd-udev-settle.service unit entirely. For existing modules that unfortunately still need it, we replace it with the command `udevadm settle --timeout=180`, which is all that the service does. Hopefully this will also increase the awareness that it's bad and something to be fixed. Note: I tested this change using - `nixosTests.zfs`, - `nixosTests.ifstate`, - `nixosTests.misc`, - `nixosTests.openvswitch`, - `nixosTests.predictable-interface-names` - `nixosTests.nvidia-container-toolkit` and making sure that none of the 165 packages that provide upstream units (via the `systemd.packages` option) had a dependency on systemd-udev-settle.service. [1]: https://github.com/NixOS/nixpkgs/pull/25311 [2]: https://github.com/NixOS/nixpkgs/issues/107341 [3]: https://github.com/NixOS/nixpkgs/pull/113804 [4]: https://github.com/NixOS/nixpkgs/issues/73095 [5]: https://github.com/openzfs/zfs/issues/10891 [6]: https://github.com/NixOS/nixpkgs/pull/257525#discussion_r1442702970 [7]: https://github.com/NixOS/nixpkgs/pull/460075 [8]: https://github.com/NixOS/nixpkgs/pull/284507 --- .../hardware/nvidia-container-toolkit/default.nix | 6 +++++- nixos/modules/services/hardware/udev.nix | 1 - nixos/modules/services/networking/ifstate.nix | 11 ++++++++--- nixos/modules/system/boot/systemd.nix | 2 -- nixos/modules/tasks/filesystems/zfs.nix | 15 ++++++--------- nixos/modules/virtualisation/openvswitch.nix | 1 - nixos/tests/misc.nix | 3 +-- nixos/tests/predictable-interface-names.nix | 3 ++- 8 files changed, 22 insertions(+), 20 deletions(-) diff --git a/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix b/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix index 475a5122fd4e..1a1365c5d420 100644 --- a/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix +++ b/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix @@ -320,7 +320,6 @@ systemd.services.nvidia-container-toolkit-cdi-generator = { description = "Container Device Interface (CDI) for Nvidia generator"; - after = [ "systemd-udev-settle.service" ]; requiredBy = lib.mkMerge [ (lib.mkIf config.virtualisation.docker.enable [ "docker.service" ]) (lib.mkIf config.virtualisation.podman.enable [ "podman.service" ]) @@ -329,6 +328,11 @@ serviceConfig = { RuntimeDirectory = "cdi"; RemainAfterExit = true; + # We wait for the udev events queue to empty in the *hope* that the + # devices needed here become available. This is terribly broken and + # essentially no better than a random sleep(). See PR #452645 for + # an attempt to fix this issue. + ExecStartPre = "-${lib.getExe' pkgs.systemd "udevadm"} settle --timeout=180"; ExecStart = let script = pkgs.callPackage ./cdi-generate.nix { diff --git a/nixos/modules/services/hardware/udev.nix b/nixos/modules/services/hardware/udev.nix index 6e779df94e77..1299a5115a5f 100644 --- a/nixos/modules/services/hardware/udev.nix +++ b/nixos/modules/services/hardware/udev.nix @@ -455,7 +455,6 @@ in "systemd-udevd-control.socket" "systemd-udevd-kernel.socket" "systemd-udevd.service" - "systemd-udev-settle.service" "systemd-udev-trigger.service" ]; boot.initrd.systemd.storePaths = [ diff --git a/nixos/modules/services/networking/ifstate.nix b/nixos/modules/services/networking/ifstate.nix index 051322fc1ce5..ef44463ba9cf 100644 --- a/nixos/modules/services/networking/ifstate.nix +++ b/nixos/modules/services/networking/ifstate.nix @@ -69,7 +69,6 @@ let # https://github.com/systemd/systemd/blob/main/units/systemd-networkd.service.in commonServiceConfig = { after = [ - "systemd-udev-settle.service" "network-pre.target" "systemd-sysusers.service" "systemd-sysctl.service" @@ -88,6 +87,12 @@ let "network.target" ]; + # We wait for the udev events queue to empty in the *hope* that the + # devices needed here become available. This is terribly broken and + # essentially no better than a random sleep(). + # FIXME: use .device units dependecies instead. + serviceConfig.ExecStartPre = "-${lib.getExe' pkgs.systemd "udevadm"} settle --timeout=180"; + unitConfig = { # Avoid default dependencies like "basic.target", which prevents ifstate from starting before luks is unlocked. DefaultDependencies = "no"; @@ -173,7 +178,7 @@ in etc."ifstate/ifstate.yaml".source = settingsFormat.generate "ifstate.yaml" cfg.settings cfg.package; }; - systemd.services.ifstate = commonServiceConfig // { + systemd.services.ifstate = lib.recursiveUpdate commonServiceConfig { description = "IfState"; wantedBy = [ @@ -263,7 +268,7 @@ in "remote-fs.target" ]; - services.ifstate-initrd = commonServiceConfig // { + services.ifstate-initrd = lib.recursiveUpdate commonServiceConfig { description = "IfState initrd"; wantedBy = [ diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index 56b87de1f394..99d7f13af5e9 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -65,7 +65,6 @@ let "systemd-udevd-control.socket" "systemd-udevd-kernel.socket" "systemd-udevd.service" - "systemd-udev-settle.service" ] ++ (optional (!config.boot.isContainer) "systemd-udev-trigger.service") ++ [ @@ -799,7 +798,6 @@ in systemd.services.systemd-random-seed.restartIfChanged = false; systemd.services.systemd-remount-fs.restartIfChanged = false; systemd.services.systemd-update-utmp.restartIfChanged = false; - systemd.services.systemd-udev-settle.restartIfChanged = false; # Causes long delays in nixos-rebuild systemd.targets.local-fs.unitConfig.X-StopOnReconfiguration = true; systemd.targets.remote-fs.unitConfig.X-StopOnReconfiguration = true; systemd.services.systemd-importd.environment = proxy_env; diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix index a4f27ed840a9..48f85a913779 100644 --- a/nixos/modules/tasks/filesystems/zfs.nix +++ b/nixos/modules/tasks/filesystems/zfs.nix @@ -158,16 +158,8 @@ let }: lib.nameValuePair "zfs-import-${pool}" { description = "Import ZFS pool \"${pool}\""; - # We wait for systemd-udev-settle to ensure devices are available, - # but don't *require* it, because mounts shouldn't be killed if it's stopped. - # In the future, hopefully someone will complete this: - # https://github.com/zfsonlinux/zfs/pull/4943 - wants = [ - "systemd-udev-settle.service" - ] - ++ lib.optional (config.boot.initrd.clevis.useTang) "network-online.target"; + wants = lib.optional (config.boot.initrd.clevis.useTang) "network-online.target"; after = [ - "systemd-udev-settle.service" "systemd-modules-load.service" "systemd-ask-password-console.service" ] @@ -189,6 +181,11 @@ let serviceConfig = { Type = "oneshot"; RemainAfterExit = true; + # We wait for the udev events queue to empty in the *hope* that the + # devices needed by the pool become available. This is terribly broken + # and essentially no better than a random sleep(), but we can't do any + # better, see upstream issue https://github.com/openzfs/zfs/issues/10891 + ExecStartPre = "${lib.getExe' pkgs.systemd "udevadm"} settle --timeout=180"; }; environment.ZFS_FORCE = lib.optionalString force "-f"; script = diff --git a/nixos/modules/virtualisation/openvswitch.nix b/nixos/modules/virtualisation/openvswitch.nix index 5a231fb5888c..4e75d1677955 100644 --- a/nixos/modules/virtualisation/openvswitch.nix +++ b/nixos/modules/virtualisation/openvswitch.nix @@ -67,7 +67,6 @@ in systemd.services.ovsdb = { description = "Open_vSwitch Database Server"; wantedBy = [ "multi-user.target" ]; - after = [ "systemd-udev-settle.service" ]; path = [ cfg.package ]; restartTriggers = [ db diff --git a/nixos/tests/misc.nix b/nixos/tests/misc.nix index 3e296d8d428c..12c0275b3a23 100644 --- a/nixos/tests/misc.nix +++ b/nixos/tests/misc.nix @@ -106,8 +106,7 @@ in assert "machine" == machine.succeed("hostname -s").strip() with subtest("whether systemd-udevd automatically loads modules for our hardware"): - machine.succeed("systemctl start systemd-udev-settle.service") - machine.wait_for_unit("systemd-udev-settle.service") + machine.succeed("udevadm settle --timeout=180") assert "mousedev" in machine.succeed("lsmod") with subtest("whether systemd-tmpfiles-clean works"): diff --git a/nixos/tests/predictable-interface-names.nix b/nixos/tests/predictable-interface-names.nix index 0bf2afce7a39..6282c433bae7 100644 --- a/nixos/tests/predictable-interface-names.nix +++ b/nixos/tests/predictable-interface-names.nix @@ -43,9 +43,10 @@ pkgs.lib.listToAttrs ( meta = { }; nodes.machine = - { lib, ... }: + { pkgs, lib, ... }: let script = '' + ${lib.getExe' pkgs.systemd "udevadm"} settle --timeout=180 ip link if ${lib.optionalString predictable "!"} ip link show eth0; then echo Success From 35c3b96ba86853397b4b5b17b317cc7f85042774 Mon Sep 17 00:00:00 2001 From: rnhmjoj Date: Wed, 8 Apr 2026 10:28:29 +0200 Subject: [PATCH 38/88] nixos/zfs: remove udev settle hack It may not be actually needed, at least anymore. All nixosTests.zfs are passing. --- nixos/modules/tasks/filesystems/zfs.nix | 5 ----- 1 file changed, 5 deletions(-) diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix index 48f85a913779..9ee7a5ff86dc 100644 --- a/nixos/modules/tasks/filesystems/zfs.nix +++ b/nixos/modules/tasks/filesystems/zfs.nix @@ -181,11 +181,6 @@ let serviceConfig = { Type = "oneshot"; RemainAfterExit = true; - # We wait for the udev events queue to empty in the *hope* that the - # devices needed by the pool become available. This is terribly broken - # and essentially no better than a random sleep(), but we can't do any - # better, see upstream issue https://github.com/openzfs/zfs/issues/10891 - ExecStartPre = "${lib.getExe' pkgs.systemd "udevadm"} settle --timeout=180"; }; environment.ZFS_FORCE = lib.optionalString force "-f"; script = From 9a0ea0689bcbf7ab854d3c5c605d7eb3df572dfb Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Wed, 8 Apr 2026 19:45:31 -0400 Subject: [PATCH 39/88] nixos/tests: Fix installer systemdStage1 argument --- nixos/tests/all-tests.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index c66beaf27766..9a059c30563c 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -785,7 +785,7 @@ in input-remapper = runTest ./input-remapper.nix; inspircd = runTest ./inspircd.nix; installed-tests = recurseIntoAttrs (handleTest ./installed-tests { }); - installer = handleTest ./installer.nix { systemdStage1 = true; }; + installer = handleTest ./installer.nix { systemdStage1 = false; }; installer-systemd-stage-1 = handleTest ./installer.nix { systemdStage1 = true; }; intune = runTest ./intune.nix; invidious = runTest ./invidious.nix; From 486067894a146062ef6e406d4e95130812255cde Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 9 Apr 2026 05:17:17 +0000 Subject: [PATCH 40/88] gmobile: 0.6.0 -> 0.7.0 --- pkgs/by-name/gm/gmobile/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gm/gmobile/package.nix b/pkgs/by-name/gm/gmobile/package.nix index c312466132d1..208392283b73 100644 --- a/pkgs/by-name/gm/gmobile/package.nix +++ b/pkgs/by-name/gm/gmobile/package.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "gmobile"; - version = "0.6.0"; + version = "0.7.0"; src = fetchFromGitLab { domain = "gitlab.gnome.org"; @@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "Phosh"; repo = "gmobile"; tag = "v${finalAttrs.version}"; - hash = "sha256-+IRKGkqDgSRAWbK30R2eGA3mI393ARdzYNKBA75AyyY="; + hash = "sha256-zAF/9FQwpb6xiKRqfhWI/3lBwiDOEDu+TNkIJpEdbYY="; }; nativeBuildInputs = [ From afd024ffa386f1674785bd5751f3cda60d196ce0 Mon Sep 17 00:00:00 2001 From: Jost Alemann Date: Thu, 9 Apr 2026 20:39:24 +0200 Subject: [PATCH 41/88] ruff: 0.15.9 -> 0.15.10 Changelog: https://github.com/astral-sh/ruff/releases/tag/0.15.10 Diff: https://github.com/astral-sh/ruff/compare/0.15.9...0.15.10 --- pkgs/by-name/ru/ruff/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ru/ruff/package.nix b/pkgs/by-name/ru/ruff/package.nix index 1b7deaaa92d7..6241410abaf8 100644 --- a/pkgs/by-name/ru/ruff/package.nix +++ b/pkgs/by-name/ru/ruff/package.nix @@ -16,18 +16,18 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "ruff"; - version = "0.15.9"; + version = "0.15.10"; src = fetchFromGitHub { owner = "astral-sh"; repo = "ruff"; tag = finalAttrs.version; - hash = "sha256-ePivGE8izhG1fj6efV/UdN8P/KdWVCUGCYGP9abLN5w="; + hash = "sha256-x+zqgIJATDWimxbh/VGt94HFiUSD4H9QD/49hnHgfuQ="; }; cargoBuildFlags = [ "--package=ruff" ]; - cargoHash = "sha256-DCTFjFl/fCbXwj7AGPNnrjvSTqxNW6PVWsUhbSGe/wI="; + cargoHash = "sha256-EQERi5NSMUK7qfFYWilzhacYlK4ShQl9Koz8t/8I6+U="; nativeBuildInputs = [ installShellFiles ]; From 886d933be714227ce68f5f26762598dd436d1477 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Apr 2026 00:59:34 +0000 Subject: [PATCH 42/88] opencommit: 3.2.14 -> 3.2.18 --- pkgs/by-name/op/opencommit/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/op/opencommit/package.nix b/pkgs/by-name/op/opencommit/package.nix index 9fd758d97495..f5560c912ace 100644 --- a/pkgs/by-name/op/opencommit/package.nix +++ b/pkgs/by-name/op/opencommit/package.nix @@ -8,13 +8,13 @@ buildNpmPackage rec { pname = "opencommit"; - version = "3.2.14"; + version = "3.2.18"; src = fetchFromGitHub { owner = "di-sukharev"; repo = "opencommit"; rev = "v${version}"; - hash = "sha256-FA4ER8UDxDy/KcGgUu4xqjQnV17ouKt/QWUcrwjtb/s="; + hash = "sha256-AhybkTAUojFPuw8RETGHoxDCWXcgb1zclfvh2h7bokM="; postFetch = '' cd $out # Fix lockfile issues with bundled dependencies @@ -22,7 +22,7 @@ buildNpmPackage rec { ''; }; - npmDepsHash = "sha256-gxjJoodnKE08bhOnA5r6A0UQg8ElB693Vm2BVrA2Z0k="; + npmDepsHash = "sha256-Kk0sPgxkWvbjGT8I3RDeniGN+8sQkwNYAXCTt009LbY="; passthru.updateScript = nix-update-script { }; From a70a5f890cccc2177bacf23cb0875ca4248a447e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Apr 2026 01:37:26 +0000 Subject: [PATCH 43/88] burpsuite: 2026.3.1 -> 2026.3.2 --- pkgs/by-name/bu/burpsuite/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/bu/burpsuite/package.nix b/pkgs/by-name/bu/burpsuite/package.nix index e0037221f0d2..d924788489dd 100644 --- a/pkgs/by-name/bu/burpsuite/package.nix +++ b/pkgs/by-name/bu/burpsuite/package.nix @@ -9,20 +9,20 @@ }: let - version = "2026.3.1"; + version = "2026.3.2"; product = if proEdition then { productName = "pro"; productDesktop = "Burp Suite Professional Edition"; - hash = "sha256-jRVRvqFRsRO+vbEoV35bX4vi9XEYl737L0umt61ACtk="; + hash = "sha256-oZGSP19ejP9amfXV89kNDQwxLekZCs7oGKaX/DDHSZM="; } else { productName = "community"; productDesktop = "Burp Suite Community Edition"; - hash = "sha256-wjXzFXE+cIHw8tXuitsN4emH5varOTWQxiohwFGKZvc="; + hash = "sha256-PuV5XmgdBBkfPS0pc3xENtTUPMpemyHDDOTLVux24Xs="; }; src = fetchurl { From ee97c52f4e38fbd4c7135028e74db30f63fb8565 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Apr 2026 02:07:38 +0000 Subject: [PATCH 44/88] maestro: 2.3.0 -> 2.4.0 --- pkgs/by-name/ma/maestro/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ma/maestro/package.nix b/pkgs/by-name/ma/maestro/package.nix index 4725612806e5..d6a0630a9671 100644 --- a/pkgs/by-name/ma/maestro/package.nix +++ b/pkgs/by-name/ma/maestro/package.nix @@ -10,11 +10,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "maestro"; - version = "2.3.0"; + version = "2.4.0"; src = fetchurl { url = "https://github.com/mobile-dev-inc/maestro/releases/download/cli-${finalAttrs.version}/maestro.zip"; - hash = "sha256-qvUkxrzUVgE4VbEzdGT5ZNmmXi+4iGGv/qm0wBRkTlA="; + hash = "sha256-rqIs5nq2cYmX7JkMWGUu3gwr6PEKxHmQOco9zjOQ1jQ="; }; dontUnpack = true; From 042a82f0e82e4eb513b71de5a2cedb1d61b6bd16 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Apr 2026 02:08:35 +0000 Subject: [PATCH 45/88] pmbootstrap: 3.9.0 -> 3.10.1 --- pkgs/by-name/pm/pmbootstrap/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pm/pmbootstrap/package.nix b/pkgs/by-name/pm/pmbootstrap/package.nix index 5da1cef44051..d8e1f920c595 100644 --- a/pkgs/by-name/pm/pmbootstrap/package.nix +++ b/pkgs/by-name/pm/pmbootstrap/package.nix @@ -15,14 +15,14 @@ python3Packages.buildPythonApplication rec { pname = "pmbootstrap"; - version = "3.9.0"; + version = "3.10.1"; pyproject = true; src = fetchFromGitLab { owner = "postmarketOS"; repo = "pmbootstrap"; tag = version; - hash = "sha256-eDngGcHNfxphshNyIoRC4NZA4KUBHSJjshsGaNp8Uw0="; + hash = "sha256-d/yxnEDB50iM2HBxHS4IifNsW8pxYZHYXvi3eF8LvCI="; domain = "gitlab.postmarketos.org"; }; From faa02b0a6aa7935544da9f00f4bbafba67946107 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Apr 2026 14:44:46 +0000 Subject: [PATCH 46/88] xlights: 2026.04 -> 2026.05 --- pkgs/by-name/xl/xlights/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/xl/xlights/package.nix b/pkgs/by-name/xl/xlights/package.nix index 5f85a5c10c3c..7f1003f6fc2a 100644 --- a/pkgs/by-name/xl/xlights/package.nix +++ b/pkgs/by-name/xl/xlights/package.nix @@ -6,11 +6,11 @@ appimageTools.wrapType2 rec { pname = "xlights"; - version = "2026.04"; + version = "2026.05"; src = fetchurl { url = "https://github.com/smeighan/xLights/releases/download/${version}/xLights-${version}-x86_64.AppImage"; - hash = "sha256-eNt1dm2TDnw+JtRP73RppKeCspxKLgS3mnYKRNQ3Srs="; + hash = "sha256-W1Il2dIDFUtkwPsPptdD2s/5eluGAeH7tw/ZmArN8dY="; }; meta = { From 24941111e4530c1b2104b0f3612c55b659e22ec6 Mon Sep 17 00:00:00 2001 From: Markus Theil Date: Fri, 10 Apr 2026 19:35:24 +0200 Subject: [PATCH 47/88] kernel: enable CONFIG_HW_RANDOM to be built-in Starting with kernels around 6.18 and 6.19 I noticed, that /dev/hwrng was no longer present and the TPM 2.0 usually found in modern computers did therefore not automatically seed the kernel RNG with the hw random subsystem. Enabling CONFIG_HW_RANDOM to yes fixes this. The subsystem is rather small and should not increase the default kernel size too much. Signed-off-by: Markus Theil --- pkgs/os-specific/linux/kernel/common-config.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 70dfebee57b9..6d1015afdcfe 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -825,6 +825,8 @@ let whenOlder "6.2" yes ); # allow RDRAND to seed the RNG RANDOM_TRUST_BOOTLOADER = whenOlder "6.2" yes; # allow the bootloader to seed the RNG + # only when compiled as yes, TPM 2.0 will automatically seed the kernel RNG + HW_RANDOM = yes; MODULE_SIG = no; # r13y, generates a random key during build and bakes it in # Depends on MODULE_SIG and only really helps when you sign your modules From a90d314ae62e93355c7ce691564e7c62c81ead81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20M=C3=A9meint?= Date: Fri, 10 Apr 2026 20:37:25 +0200 Subject: [PATCH 48/88] authelia: 4.39.12 -> 4.39.18 --- pkgs/by-name/au/authelia/sources.nix | 8 ++++---- pkgs/by-name/au/authelia/web.nix | 6 +++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/au/authelia/sources.nix b/pkgs/by-name/au/authelia/sources.nix index 18b0c37e5e37..095d522635ad 100644 --- a/pkgs/by-name/au/authelia/sources.nix +++ b/pkgs/by-name/au/authelia/sources.nix @@ -1,14 +1,14 @@ { fetchFromGitHub }: rec { pname = "authelia"; - version = "4.39.12"; + version = "4.39.18"; src = fetchFromGitHub { owner = "authelia"; repo = "authelia"; rev = "v${version}"; - hash = "sha256-u7TIhOGXfvWdAXvpL5qa43jaoa7PNAVL2MtGEuWBDPc="; + hash = "sha256-IROdncF3TC1X9000jw0RGtrcFrzqRpG7g2QuLGQ/Q4k="; }; - vendorHash = "sha256-7RoPv4OvOhiv+TmYOJuW95h/uh2LuTrpUSAZiTvbh7g="; - pnpmDepsHash = "sha256-Ck2nqFwDv3OxN0ONA3A+h4Rli1te+EYqKivcqrAInKw="; + vendorHash = "sha256-ZDsLRMip2B8PPZu8VxW+91FVvwC2rXzohhAZFifT26g="; + pnpmDepsHash = "sha256-ki/jXNT9dIno1UIcDgBcsLdiKcaiw/dwnff3t9xv07o="; } diff --git a/pkgs/by-name/au/authelia/web.nix b/pkgs/by-name/au/authelia/web.nix index 9682c05adf78..dd4f8851f0c8 100644 --- a/pkgs/by-name/au/authelia/web.nix +++ b/pkgs/by-name/au/authelia/web.nix @@ -40,8 +40,12 @@ stdenv.mkDerivation (finalAttrs: { }; postPatch = '' + NL=$'\n' + LINE_BEFORE_HOST='allowedHosts: ["login.example.com", ...allowedHosts],' + substituteInPlace ./vite.config.ts \ - --replace 'outDir: "../internal/server/public_html"' 'outDir: "dist"' + --replace-fail 'outDir: "../internal/server/public_html"' 'outDir: "dist"' \ + --replace-fail "$LINE_BEFORE_HOST" "$LINE_BEFORE_HOST$NL"' host: "127.0.0.1",' ''; postBuild = '' From ae5617725313df28ad14e1d21651edb02cba2548 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Apr 2026 18:40:57 +0000 Subject: [PATCH 49/88] dbeaver-bin: 26.0.1 -> 26.0.2 --- pkgs/by-name/db/dbeaver-bin/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/db/dbeaver-bin/package.nix b/pkgs/by-name/db/dbeaver-bin/package.nix index 29b038d3bdf8..07f66df0366f 100644 --- a/pkgs/by-name/db/dbeaver-bin/package.nix +++ b/pkgs/by-name/db/dbeaver-bin/package.nix @@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "dbeaver-bin"; - version = "26.0.1"; + version = "26.0.2"; src = let @@ -32,10 +32,10 @@ stdenvNoCC.mkDerivation (finalAttrs: { aarch64-darwin = "macos-aarch64.dmg"; }; hash = selectSystem { - x86_64-linux = "sha256-tmT62M2NvvSsBWKbRT0iTVdQVuBuPsDuDBtVtr7FKPU="; - aarch64-linux = "sha256-WL7pO0l5TZEl2Ur8Qiqw/5ZAKR4iaoN8yxpG7wtPmds="; - x86_64-darwin = "sha256-vg3zi39kWfPqxhKtUv2WixJMqejgDLIuVQ26Jyrtl9c="; - aarch64-darwin = "sha256-jNwcIKmOCI75h0Ul/oARm2S1UzUUw2GflHdwA7d+3nU="; + x86_64-linux = "sha256-qAjGYm164/teNcNxZwMNtBNKUOAd/7EjJMk1DtQKGFA="; + aarch64-linux = "sha256-tMCMRMNA1sQprDouHtRKPAE1CHWRII2/p05UqVaPcpE="; + x86_64-darwin = "sha256-2hSrJhlvFr/5AK9VCXU/hZke9oHgde50ng0pEAXV63Y="; + aarch64-darwin = "sha256-YADZ7ttETfs+3HC045eHntLj1x8GREw027GGDSGIeDw="; }; in fetchurl { From 3e5adab0bbd4f3f6bbbc74ae753a042e1eeb04ca Mon Sep 17 00:00:00 2001 From: ccicnce113424 Date: Sat, 11 Apr 2026 02:17:15 +0800 Subject: [PATCH 50/88] motrix-next: 3.6.3 -> 3.6.8, move gapp wrapping to postFixup --- pkgs/by-name/mo/motrix-next/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/mo/motrix-next/package.nix b/pkgs/by-name/mo/motrix-next/package.nix index 61682bab45ad..a8df486edd5f 100644 --- a/pkgs/by-name/mo/motrix-next/package.nix +++ b/pkgs/by-name/mo/motrix-next/package.nix @@ -25,16 +25,16 @@ let in rustPlatform.buildRustPackage (finalAttrs: { pname = "motrix-next"; - version = "3.6.3"; + version = "3.6.8"; src = fetchFromGitHub { owner = "AnInsomniacy"; repo = "motrix-next"; tag = "v${finalAttrs.version}"; - hash = "sha256-u4t/QIRFDuvGPA4+p4OuS6tDnU6+ZmEJSfOYIh//NaQ="; + hash = "sha256-nn1YivQ7UCRpWnWa2w0F06n6bQrMJ1d8Gb84hY6K5WE="; }; - cargoHash = "sha256-WcYXb5UF4mhahYQ5Jomsph+UHWqa+3cjRQdJyydw7oY="; + cargoHash = "sha256-mrzyIvHlfs3epOm3ZKPetmJOCKpZdHlfosOP7iLlu1k="; pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) @@ -84,7 +84,7 @@ rustPlatform.buildRustPackage (finalAttrs: { src-tauri/tauri.conf.json | sponge src-tauri/tauri.conf.json ''; - preFixup = lib.optionalString stdenv.hostPlatform.isLinux '' + postFixup = lib.optionalString stdenv.hostPlatform.isLinux '' gappsWrapperArgs+=( --prefix LD_LIBRARY_PATH : ${ lib.makeLibraryPath [ From abbfb75941291845995c8efff6ef1b6402792cd6 Mon Sep 17 00:00:00 2001 From: ccicnce113424 Date: Fri, 10 Apr 2026 19:26:23 +0800 Subject: [PATCH 51/88] libtsm: enable `strictDeps` and `__structuredAttrs` --- pkgs/by-name/li/libtsm/package.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/li/libtsm/package.nix b/pkgs/by-name/li/libtsm/package.nix index 12850696935b..f83c1082fba5 100644 --- a/pkgs/by-name/li/libtsm/package.nix +++ b/pkgs/by-name/li/libtsm/package.nix @@ -21,13 +21,18 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-AKwS088lP3dByKh3dQRW76+L6ouD8EmVms2qWIC5IiE="; }; - buildInputs = [ libxkbcommon ]; + strictDeps = true; + __structuredAttrs = true; + + buildInputs = [ + libxkbcommon + check + ]; nativeBuildInputs = [ meson ninja pkg-config - check ]; passthru.updateScript = nix-update-script { extraArgs = [ "--use-github-releases" ]; }; From 24970ea02cba5e6f4ffd3fb8f2fddb7307919761 Mon Sep 17 00:00:00 2001 From: ccicnce113424 Date: Fri, 10 Apr 2026 19:26:36 +0800 Subject: [PATCH 52/88] kmscon: enable `__structuredAttrs` --- pkgs/by-name/km/kmscon/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/km/kmscon/package.nix b/pkgs/by-name/km/kmscon/package.nix index cedf3862c60e..329c49f59af3 100644 --- a/pkgs/by-name/km/kmscon/package.nix +++ b/pkgs/by-name/km/kmscon/package.nix @@ -39,6 +39,7 @@ stdenv.mkDerivation (finalAttrs: { }; strictDeps = true; + __structuredAttrs = true; depsBuildBuild = [ buildPackages.stdenv.cc From db0a3f91d84ff068e1bc65c9ae551122049bc191 Mon Sep 17 00:00:00 2001 From: Ihar Hrachyshka Date: Fri, 10 Apr 2026 18:32:18 -0400 Subject: [PATCH 53/88] podman-desktop: pin nodejs version for fetchPnpmDeps --- pkgs/by-name/po/podman-desktop/package.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/po/podman-desktop/package.nix b/pkgs/by-name/po/podman-desktop/package.nix index 92b1651bbded..ed644116e3ec 100644 --- a/pkgs/by-name/po/podman-desktop/package.nix +++ b/pkgs/by-name/po/podman-desktop/package.nix @@ -5,7 +5,7 @@ makeBinaryWrapper, copyDesktopItems, electron_41, - nodejs, + nodejs_24, pnpm_10_29_2, fetchPnpmDeps, pnpmConfigHook, @@ -21,6 +21,8 @@ }: let + nodejs = nodejs_24; + pnpm = pnpm_10_29_2.override { inherit nodejs; }; electron = electron_41; appName = "Podman Desktop"; in @@ -64,7 +66,7 @@ stdenv.mkDerivation (finalAttrs: { pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; - pnpm = pnpm_10_29_2; + inherit pnpm; fetcherVersion = 2; hash = "sha256-tCp5qLZVo93H8VIToU3mkmwNsVXOAd1IEsL6RlazPXo="; }; @@ -83,8 +85,8 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ makeBinaryWrapper nodejs + pnpm pnpmConfigHook - pnpm_10_29_2 ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ copyDesktopItems From edbc81012a3c746302b741f9c7f10fc467361e44 Mon Sep 17 00:00:00 2001 From: Ihar Hrachyshka Date: Fri, 10 Apr 2026 18:32:41 -0400 Subject: [PATCH 54/88] podman-desktop: extract nodejs version from package.json --- pkgs/by-name/po/podman-desktop/package.nix | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/po/podman-desktop/package.nix b/pkgs/by-name/po/podman-desktop/package.nix index ed644116e3ec..d09b6b3a294a 100644 --- a/pkgs/by-name/po/podman-desktop/package.nix +++ b/pkgs/by-name/po/podman-desktop/package.nix @@ -45,8 +45,15 @@ stdenv.mkDerivation (finalAttrs: { }; text = '' new_src="$(nix-build --attr "pkgs.$PNAME.src" --no-out-link)" - new_electron_major="$(jq '.devDependencies.electron' "$new_src/package.json" | grep --perl-regexp --only-matching '\d+' | head -n 1)" - new_pnpm_major="$(jq '.packageManager' "$new_src/package.json" | grep --perl-regexp --only-matching '\d+' | head -n 1)" + get_major_version() { + jq -r "$1" "$new_src/package.json" | grep --perl-regexp --only-matching '[0-9]+' | head -n 1 + } + + new_node_major="$(get_major_version '.engines.node')" + new_electron_major="$(get_major_version '.devDependencies.electron')" + new_pnpm_major="$(get_major_version '.packageManager')" + + sed -i -E "s/nodejs_[0-9]+/nodejs_$new_node_major/g" "$PKG_FILE" sed -i -E "s/electron_[0-9]+/electron_$new_electron_major/g" "$PKG_FILE" sed -i -E "s/pnpm_[0-9]+/pnpm_$new_pnpm_major/g" "$PKG_FILE" ''; From 2167d634c647f3d58870bc443ee6832953e33f60 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Apr 2026 23:17:50 +0000 Subject: [PATCH 55/88] sdl_gamecontrollerdb: 0-unstable-2026-04-02 -> 0-unstable-2026-04-10 --- pkgs/by-name/sd/sdl_gamecontrollerdb/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/sd/sdl_gamecontrollerdb/package.nix b/pkgs/by-name/sd/sdl_gamecontrollerdb/package.nix index c470a7e98808..653555123294 100644 --- a/pkgs/by-name/sd/sdl_gamecontrollerdb/package.nix +++ b/pkgs/by-name/sd/sdl_gamecontrollerdb/package.nix @@ -7,13 +7,13 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "sdl_gamecontrollerdb"; - version = "0-unstable-2026-04-02"; + version = "0-unstable-2026-04-10"; src = fetchFromGitHub { owner = "mdqinc"; repo = "SDL_GameControllerDB"; - rev = "202d0070d75e51cdf2fc6e9c4d4662d87226d5c6"; - hash = "sha256-79DvPUHzUw3XAnMQu3pNxZq0+CG9J1u5MiOTyG7pXkk="; + rev = "bd4ef5de42d50480c5be6bd54de164140a62f384"; + hash = "sha256-mJB51qS3U0nyjhi+CzOJmRExG7jP3IlhYvABHilcaOA="; }; dontBuild = true; From 7114e76717383169a44bf5ac97bc8237902bfd86 Mon Sep 17 00:00:00 2001 From: Hythera <87016780+Hythera@users.noreply.github.com> Date: Sat, 11 Apr 2026 01:45:41 +0200 Subject: [PATCH 56/88] hieroglyphic: 2.2.0 -> 2.3.0 diff: https://github.com/FineFindus/Hieroglyphic/compare/v2.2.0...v2.3.0 --- pkgs/by-name/hi/hieroglyphic/package.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/hi/hieroglyphic/package.nix b/pkgs/by-name/hi/hieroglyphic/package.nix index cb7fa2660ce4..140c79ff14a2 100644 --- a/pkgs/by-name/hi/hieroglyphic/package.nix +++ b/pkgs/by-name/hi/hieroglyphic/package.nix @@ -21,18 +21,18 @@ stdenv.mkDerivation (finalAttrs: { pname = "hieroglyphic"; - version = "2.2.0"; + version = "2.3.0"; src = fetchFromGitHub { owner = "FineFindus"; repo = "Hieroglyphic"; tag = "v${finalAttrs.version}"; - hash = "sha256-mqoYdHpVnivDTblvoaACyCE7Y25cfLj1m0Q5D33zEfk="; + hash = "sha256-uCzxv3jyBIFXYoEk2q26rB0Me3MAt1NiINulA1FjQtA="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) pname version src; - hash = "sha256-kArrsHW+cFZQQgIEL+7Os8ixKtuIZAByEr6D4XDmfRE="; + hash = "sha256-vqTySi22Gi4WrkNolAIFFbpSmIzjgbIcmW0gkStK6H4="; }; nativeBuildInputs = [ @@ -51,12 +51,14 @@ stdenv.mkDerivation (finalAttrs: { glib gtk4 libadwaita + onnxruntime openssl ]; env = { ORT_STRATEGY = "system"; ORT_LIB_LOCATION = "${lib.getLib onnxruntime}/lib"; + ORT_PREFER_DYNAMIC_LINK = "1"; }; passthru = { From 6c4da7fdb57c7ee434bec173bf15a40aae69c7e9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 00:31:34 +0000 Subject: [PATCH 57/88] dwproton-bin: dwproton-10.0-22 -> dwproton-10.0-23 --- pkgs/by-name/dw/dwproton-bin/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/dw/dwproton-bin/package.nix b/pkgs/by-name/dw/dwproton-bin/package.nix index d1095082c312..699bbf2117d9 100644 --- a/pkgs/by-name/dw/dwproton-bin/package.nix +++ b/pkgs/by-name/dw/dwproton-bin/package.nix @@ -11,11 +11,11 @@ proton-ge-bin.overrideAttrs ( inherit steamDisplayName; pname = "dwproton-bin"; - version = "dwproton-10.0-22"; + version = "dwproton-10.0-23"; src = fetchzip { url = "https://dawn.wine/dawn-winery/dwproton/releases/download/${finalAttrs.version}/${finalAttrs.version}-x86_64.tar.xz"; - hash = "sha256-U/lLAF/WUxHInBgAt7YuDUM/eGGSv7mkjAACr15iW/0="; + hash = "sha256-XqXXxsTekvTUNsykpWu4vbZ4Mi+2tMR57zngaOt+3gQ="; }; passthru.updateScript = writeScript "update-dwproton" '' From 312e4af562f3cfc23e64883f40ab9490355b50fc Mon Sep 17 00:00:00 2001 From: Xiangyan Sun Date: Fri, 10 Apr 2026 18:16:38 -0700 Subject: [PATCH 58/88] dopewars: fix build with gcc15 --- pkgs/by-name/do/dopewars/0002-fix_gcc15.patch | 26 +++++++++++++++++++ pkgs/by-name/do/dopewars/package.nix | 8 ++++-- 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 pkgs/by-name/do/dopewars/0002-fix_gcc15.patch diff --git a/pkgs/by-name/do/dopewars/0002-fix_gcc15.patch b/pkgs/by-name/do/dopewars/0002-fix_gcc15.patch new file mode 100644 index 000000000000..594cc5aa5081 --- /dev/null +++ b/pkgs/by-name/do/dopewars/0002-fix_gcc15.patch @@ -0,0 +1,26 @@ +diff --git a/src/gtkport/itemfactory.c b/src/gtkport/itemfactory.c +index b7a8c3f..980682c 100644 +--- a/src/gtkport/itemfactory.c ++++ b/src/gtkport/itemfactory.c +@@ -217,7 +217,7 @@ void dp_gtk_item_factory_create_item(DPGtkItemFactory *ifactory, + new_child->widget = menu_item; + if (entry->callback) { + g_signal_connect(G_OBJECT(menu_item), "activate", +- entry->callback, callback_data); ++ G_CALLBACK(entry->callback), callback_data); + } + + if (parent) { +diff --git a/src/gtkport/itemfactory.h b/src/gtkport/itemfactory.h +index a1d5b1d..2702595 100644 +--- a/src/gtkport/itemfactory.h ++++ b/src/gtkport/itemfactory.h +@@ -59,7 +59,7 @@ GtkItemFactory *dp_gtk_item_factory_new(const gchar *path, + + typedef gchar *(*DPGtkTranslateFunc) (const gchar *path, gpointer func_data); + +-typedef void (*DPGtkItemFactoryCallback) (); ++typedef void (*DPGtkItemFactoryCallback) (GtkWidget *widget, gpointer data); + + typedef struct _DPGtkItemFactoryEntry DPGtkItemFactoryEntry; + typedef struct _DPGtkItemFactory DPGtkItemFactory; diff --git a/pkgs/by-name/do/dopewars/package.nix b/pkgs/by-name/do/dopewars/package.nix index ab3f7603b86c..7b9dea613aed 100644 --- a/pkgs/by-name/do/dopewars/package.nix +++ b/pkgs/by-name/do/dopewars/package.nix @@ -34,8 +34,12 @@ stdenv.mkDerivation (finalAttrs: { ncurses ]; - # remove the denied setting of setuid bit permission - patches = [ ./0001-remove_setuid.patch ]; + patches = [ + # remove the denied setting of setuid bit permission + ./0001-remove_setuid.patch + # fix compilation errors with gcc15 + ./0002-fix_gcc15.patch + ]; # run dopewars with -f so that it finds its scoreboard file in ~/.local/share postInstall = '' From 356ee9197f29211f99dd9f7bc52fb56477002d1a Mon Sep 17 00:00:00 2001 From: A Frederick Christensen Date: Fri, 10 Apr 2026 20:54:21 -0500 Subject: [PATCH 59/88] webull-desktop: fix unfindable .desktop file --- pkgs/by-name/we/webull-desktop/package.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/we/webull-desktop/package.nix b/pkgs/by-name/we/webull-desktop/package.nix index fcacb5bb94c1..39f8206199a2 100644 --- a/pkgs/by-name/we/webull-desktop/package.nix +++ b/pkgs/by-name/we/webull-desktop/package.nix @@ -60,7 +60,13 @@ stdenv.mkDerivation (finalAttrs: { mkdir $out/bin ln -s $out/usr/local/WebullDesktop/WebullDesktop $out/bin/webull-desktop substituteInPlace $out/usr/share/applications/WebullDesktop.desktop \ - --replace-fail Categories=Utiltity Categories=Finance + --replace-fail Categories=Utiltity Categories=Finance \ + --replace-fail "Exec=/usr/local/WebullDesktop/WebullDesktop" "Exec=webull-desktop" \ + --replace-fail "Icon=WebullDesktop.png" "Icon=WebullDesktop" \ + --replace-fail "Version=8.2.0" "Version=${finalAttrs.version}" + + ln -s $out/usr/share $out/share + addAutoPatchelfSearchPath $out/usr/local/WebullDesktop addAutoPatchelfSearchPath $out/usr/local/WebullDesktop/platforms From cafe89fe26a09559c30e4317e1618ec05625dd96 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 05:05:45 +0000 Subject: [PATCH 60/88] jellyfin-tui: 1.4.1 -> 1.4.2 --- pkgs/by-name/je/jellyfin-tui/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/je/jellyfin-tui/package.nix b/pkgs/by-name/je/jellyfin-tui/package.nix index 87a5dbcddc77..22d7df003201 100644 --- a/pkgs/by-name/je/jellyfin-tui/package.nix +++ b/pkgs/by-name/je/jellyfin-tui/package.nix @@ -13,16 +13,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "jellyfin-tui"; - version = "1.4.1"; + version = "1.4.2"; src = fetchFromGitHub { owner = "dhonus"; repo = "jellyfin-tui"; tag = "v${finalAttrs.version}"; - hash = "sha256-dJbCMIKxDEht2Fgor2VsTyDvmhFxi5K22nTRMM1KOu0="; + hash = "sha256-GumYBQkdTNR+sfEY0l5xHjtFM9Z9sn/2H+yVzC0MEe4="; }; - cargoHash = "sha256-b47arb13oXnulUZB58Cj0v0Qu+IygYlInbBQeeLXYP0="; + cargoHash = "sha256-1FUmCACPm9TaURMLXrNODnVtx8FQ6FeAkwF2ucgezhk="; nativeBuildInputs = [ pkg-config ]; buildInputs = [ From 755334ed6159a73490e3625acde66421bb3df9cc Mon Sep 17 00:00:00 2001 From: Mio Date: Sat, 11 Apr 2026 15:32:40 +1000 Subject: [PATCH 61/88] gradle: workaround for multiple console arguments error --- pkgs/development/tools/build-managers/gradle/setup-hook.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/tools/build-managers/gradle/setup-hook.sh b/pkgs/development/tools/build-managers/gradle/setup-hook.sh index 6c9c927f0c45..537b1c3f69aa 100644 --- a/pkgs/development/tools/build-managers/gradle/setup-hook.sh +++ b/pkgs/development/tools/build-managers/gradle/setup-hook.sh @@ -4,7 +4,7 @@ gradleConfigureHook() { fi export GRADLE_USER_HOME export TERM=dumb - gradleFlagsArray+=(--no-daemon --console plain --init-script "${gradleInitScript:-@init_script@}") + gradleFlagsArray+=(--no-daemon -Dorg.gradle.console=plain --init-script "${gradleInitScript:-@init_script@}") if [ -n "${MITM_CACHE_CA-}" ]; then if [ -z "${MITM_CACHE_KEYSTORE-}" ]; then MITM_CACHE_KEYSTORE="$MITM_CACHE_CERT_DIR/keystore" From 44a66581f5fb35cb31c5a211ebc860dc4cf04249 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 06:48:27 +0000 Subject: [PATCH 62/88] all-the-package-names: 2.0.2405 -> 2.0.2413 --- pkgs/by-name/al/all-the-package-names/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/al/all-the-package-names/package.nix b/pkgs/by-name/al/all-the-package-names/package.nix index 1c67cc9c5742..bd39063249df 100644 --- a/pkgs/by-name/al/all-the-package-names/package.nix +++ b/pkgs/by-name/al/all-the-package-names/package.nix @@ -7,16 +7,16 @@ buildNpmPackage rec { pname = "all-the-package-names"; - version = "2.0.2405"; + version = "2.0.2413"; src = fetchFromGitHub { owner = "nice-registry"; repo = "all-the-package-names"; tag = "v${version}"; - hash = "sha256-dimap7vybYHNGSAWn6K8uMUMymrV8Ek5Vc27bbJo22w="; + hash = "sha256-loI9wKz0EcePvM2kXqmxNx9rfC/VaMCmJtm0dTjWoOk="; }; - npmDepsHash = "sha256-13u+UoTckxKAmthuaxOCaGSW4BaAgWaz6/4dBcO+3VI="; + npmDepsHash = "sha256-6XLDdamRG+IVq/zdyKKlIsnfUVD8pKES7K7hm+yTQ78="; passthru.updateScript = nix-update-script { }; From 92105b74aff0e3a2767c846a54779aa97f815b88 Mon Sep 17 00:00:00 2001 From: Ryan Omasta Date: Sat, 11 Apr 2026 01:23:08 -0600 Subject: [PATCH 63/88] limine: 11.2.1 -> 11.3.1 https://github.com/Limine-Bootloader/Limine/releases/tag/v11.3.1 Diff: https://github.com/Limine-Bootloader/Limine/compare/v11.2.1...v11.3.1 Repo has moved back to GitHub. --- pkgs/by-name/li/limine/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/li/limine/package.nix b/pkgs/by-name/li/limine/package.nix index 9453974c0f48..9b0236119a3b 100644 --- a/pkgs/by-name/li/limine/package.nix +++ b/pkgs/by-name/li/limine/package.nix @@ -47,14 +47,14 @@ in # as bootloader for various platforms and corresponding binary and helper files. stdenv.mkDerivation (finalAttrs: { pname = "limine"; - version = "11.2.1"; + version = "11.3.1"; # We don't use the Git source but the release tarball, as the source has a # `./bootstrap` script performing network access to download resources. # Packaging that in Nix is very cumbersome. src = fetchurl { - url = "https://codeberg.org/Limine/Limine/releases/download/v${finalAttrs.version}/limine-${finalAttrs.version}.tar.gz"; - hash = "sha256-HQq4hrjuITQY9ia1z4pKid81+WfX9CGUUSQUfvBPPgE="; + url = "https://github.com/Limine-Bootloader/Limine/releases/download/v${finalAttrs.version}/limine-${finalAttrs.version}.tar.gz"; + hash = "sha256-7vst33RyAn6q0tJNLvmrEigVFM+exUaj46dZ3y2GVOc="; }; enableParallelBuilding = true; @@ -93,7 +93,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { homepage = "https://limine-bootloader.org/"; - changelog = "https://codeberg.org/Limine/Limine/raw/tag/v${finalAttrs.version}/ChangeLog"; + changelog = "https://github.com/Limine-Bootloader/Limine/raw/refs/tags/v${finalAttrs.version}/ChangeLog"; description = "Limine Bootloader"; mainProgram = "limine"; # The platforms on that the Limine binary and helper tools can run, not From 1998d59849f83d79c85690bd1b8d90d2b51e6b56 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 08:40:28 +0000 Subject: [PATCH 64/88] webdav: 5.11.4 -> 5.11.5 --- pkgs/by-name/we/webdav/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/we/webdav/package.nix b/pkgs/by-name/we/webdav/package.nix index 4fe02d4500b4..cda2eadfd9db 100644 --- a/pkgs/by-name/we/webdav/package.nix +++ b/pkgs/by-name/we/webdav/package.nix @@ -6,16 +6,16 @@ buildGoModule (finalAttrs: { pname = "webdav"; - version = "5.11.4"; + version = "5.11.5"; src = fetchFromGitHub { owner = "hacdias"; repo = "webdav"; tag = "v${finalAttrs.version}"; - hash = "sha256-EEphTKjfCVgSyyGeZ9BjrNmpK4LMm9mFKJ7zqaYQu7E="; + hash = "sha256-Al1rl6Ez36I3qE++1ZOvTgey9lfHp0SVzK6KJQSPBYc="; }; - vendorHash = "sha256-1rSIJIcJxw1YKy2bI+2RY71bSdfDBp3w7U3SQtJgCgI="; + vendorHash = "sha256-JctG+gkZtjlSX616Rv3rC7RU9YBNWp9LsD5Ut8qn1tY="; __darwinAllowLocalNetworking = true; From 1346f9578d3a8b87e561c9034fcdaf540a69a7c7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 08:53:20 +0000 Subject: [PATCH 65/88] python3Packages.weaviate-client: 4.20.4 -> 4.20.5 --- pkgs/development/python-modules/weaviate-client/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/weaviate-client/default.nix b/pkgs/development/python-modules/weaviate-client/default.nix index 7718af4e9d60..d5a886d223cb 100644 --- a/pkgs/development/python-modules/weaviate-client/default.nix +++ b/pkgs/development/python-modules/weaviate-client/default.nix @@ -27,7 +27,7 @@ buildPythonPackage rec { pname = "weaviate-client"; - version = "4.20.4"; + version = "4.20.5"; pyproject = true; disabled = pythonOlder "3.12"; @@ -36,7 +36,7 @@ buildPythonPackage rec { owner = "weaviate"; repo = "weaviate-python-client"; tag = "v${version}"; - hash = "sha256-GzkMBNvXz8wqpYdsifeHqZFnYjRf4hNRmQQhHUB12VI="; + hash = "sha256-3CJLD/bew9qx2aDrIwcaMlgwCe8E4bj3ZDh5t0v8Pf8="; }; pythonRelaxDeps = [ From bf17e84d656b177e91502702c315fb2ec4e4e839 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 09:33:04 +0000 Subject: [PATCH 66/88] libgedit-gfls: 0.4.0 -> 0.4.1 --- pkgs/by-name/li/libgedit-gfls/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/li/libgedit-gfls/package.nix b/pkgs/by-name/li/libgedit-gfls/package.nix index f5962dc28250..caf368fc0579 100644 --- a/pkgs/by-name/li/libgedit-gfls/package.nix +++ b/pkgs/by-name/li/libgedit-gfls/package.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "libgedit-gfls"; - version = "0.4.0"; + version = "0.4.1"; outputs = [ "out" @@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: { repo = "libgedit-gfls"; tag = finalAttrs.version; forceFetchGit = true; # To avoid occasional 501 failures. - hash = "sha256-VzQ58XD5Yfy+gv77yTVoYHhooz2pfAV0huJI023s8ew="; + hash = "sha256-61jq7tcAAzYuhKM4OlH/GniGTfiWg/Pcznb03+vaLvw="; }; nativeBuildInputs = [ From c2ded5ea3a1059164fa8585f9918a88869ff62b7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 11:13:42 +0000 Subject: [PATCH 67/88] python3Packages.niquests: 3.18.4 -> 3.18.5 --- pkgs/development/python-modules/niquests/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/niquests/default.nix b/pkgs/development/python-modules/niquests/default.nix index 31ebdac40a6d..bec4c7a7dc7a 100644 --- a/pkgs/development/python-modules/niquests/default.nix +++ b/pkgs/development/python-modules/niquests/default.nix @@ -18,14 +18,14 @@ buildPythonPackage rec { pname = "niquests"; - version = "3.18.4"; + version = "3.18.5"; pyproject = true; src = fetchFromGitHub { owner = "jawah"; repo = "niquests"; tag = "v${version}"; - hash = "sha256-AcF0HpC7vPusEGp7i4ofY2FTJrFxLwXv33MnR6sdvJg="; + hash = "sha256-1fljGr5b3OYtcaGg/Qq2W78FWORB1lXRtqaBlxTGTDI="; }; build-system = [ hatchling ]; From 45c1e56b1fb693b541a8c72d2b955778844fffc1 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 12:18:04 +0000 Subject: [PATCH 68/88] usque: 1.4.2 -> 2.0.1 --- pkgs/by-name/us/usque/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/us/usque/package.nix b/pkgs/by-name/us/usque/package.nix index d1a5ed3bbc43..913f14282e88 100644 --- a/pkgs/by-name/us/usque/package.nix +++ b/pkgs/by-name/us/usque/package.nix @@ -10,15 +10,15 @@ }: buildGoModule (finalAttrs: { pname = "usque"; - version = "1.4.2"; + version = "2.0.1"; src = fetchFromGitHub { owner = "Diniboy1123"; repo = "usque"; tag = "v${finalAttrs.version}"; - hash = "sha256-U2C0To9WaQZaAuWbx3+h4hhDI8n3H55cXOnS9l2l2rY="; + hash = "sha256-veAUc2LeH2NoOs3AHj8GUr7zBPidHtr+JlUQjgo/WQQ="; }; - vendorHash = "sha256-SS0Lqdfdp3hO2hUW0oRXH9jQWW/68a/tKYU7PMgeQYs="; + vendorHash = "sha256-pilBazQcrfCcgBCo9U9jGo/ZcuXLBR3kT8l+mad+umg="; ldflags = [ "-s" From b4d17f0cfa3f1154d85b8b1a179b31245af81500 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sat, 11 Apr 2026 14:23:57 +0200 Subject: [PATCH 69/88] haskell.compiler.native-bignum: don't evaluate compiler exprs This makes isNativeBignumGhc purely textual again after #460845. Could improve performance in the right conditions, but most importantly solves eval issues with aliases allowed (due to the throw-ing ghc attributes) without resorting to tryEval. --- pkgs/top-level/haskell-packages.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index a8146c05d831..6deb331822d1 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -224,8 +224,7 @@ in native-bignum = let isNativeBignumGhc = - name: - !(builtins.elem name nativeBignumExcludes) && !(compiler.${name} ? isMhs && compiler.${name}.isMhs); + name: pkgs.lib.hasPrefix "ghc" name && !(builtins.elem name nativeBignumExcludes); nativeBignumGhcNames = pkgs.lib.filter isNativeBignumGhc (pkgs.lib.attrNames compiler); in pkgs.lib.recurseIntoAttrs ( From 0ff3c4a82e92ba61d553704b8ed54ce7fa1a6d46 Mon Sep 17 00:00:00 2001 From: loner <2788892716@qq.com> Date: Wed, 8 Apr 2026 18:21:31 +0800 Subject: [PATCH 70/88] qwen-code: 0.14.0 -> 0.14.3 --- pkgs/by-name/qw/qwen-code/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/qw/qwen-code/package.nix b/pkgs/by-name/qw/qwen-code/package.nix index 8cd2c90e3c69..ec0b55b1af68 100644 --- a/pkgs/by-name/qw/qwen-code/package.nix +++ b/pkgs/by-name/qw/qwen-code/package.nix @@ -14,17 +14,17 @@ buildNpmPackage (finalAttrs: { pname = "qwen-code"; - version = "0.14.0"; + version = "0.14.3"; src = fetchFromGitHub { owner = "QwenLM"; repo = "qwen-code"; tag = "v${finalAttrs.version}"; - hash = "sha256-XeJeBNfIFo2XowIRGgxixAtfz1saeKxt93/EK7EF5tA="; + hash = "sha256-RtZlwZev8zv3yMn+cCQpGvyPq/gyA39N4Iq0qFBTERY="; }; npmDepsFetcherVersion = 3; - npmDepsHash = "sha256-UeEldKIcCS7km1nuyfLlSawDVBQDn+k97wxe9ZgaHtM="; + npmDepsHash = "sha256-mrc46cZJ2hI1VL/PMYsCCkgEGYMHrkhLZs0EfsXRRIw="; # npm 11 incompatible with fetchNpmDeps # https://github.com/NixOS/nixpkgs/issues/474535 From 488bb0f65235e4394d234fe6761dc267400b8e7e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 12:29:34 +0000 Subject: [PATCH 71/88] python3Packages.telnetlib3: 4.0.1 -> 4.0.2 --- pkgs/development/python-modules/telnetlib3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/telnetlib3/default.nix b/pkgs/development/python-modules/telnetlib3/default.nix index 2f110d75bba3..5bb3dabd95cd 100644 --- a/pkgs/development/python-modules/telnetlib3/default.nix +++ b/pkgs/development/python-modules/telnetlib3/default.nix @@ -18,14 +18,14 @@ buildPythonPackage (finalAttrs: { pname = "telnetlib3"; - version = "4.0.1"; + version = "4.0.2"; pyproject = true; src = fetchFromGitHub { owner = "jquast"; repo = "telnetlib3"; tag = finalAttrs.version; - hash = "sha256-dKvdg+1l7qRyc7COR0U6SKbrp5uJRtc4wsDPQEAkXZ8="; + hash = "sha256-MLNnmTuxrMV83FsM4Avlb31eH9s8/aFAoEbCsNyTmLY="; }; build-system = [ hatchling ]; From 3c44c722b4b568056ffd6aa781d2d1e831d24c87 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Apr 2026 20:37:44 +0000 Subject: [PATCH 72/88] python3Packages.losant-rest: 2.1.3 -> 2.1.4 --- pkgs/development/python-modules/losant-rest/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/losant-rest/default.nix b/pkgs/development/python-modules/losant-rest/default.nix index e841c1b83c90..80520dd4c6bc 100644 --- a/pkgs/development/python-modules/losant-rest/default.nix +++ b/pkgs/development/python-modules/losant-rest/default.nix @@ -10,14 +10,14 @@ buildPythonPackage (finalAttrs: { pname = "losant-rest"; - version = "2.1.3"; + version = "2.1.4"; pyproject = true; src = fetchFromGitHub { owner = "Losant"; repo = "losant-rest-python"; tag = "v${finalAttrs.version}"; - hash = "sha256-aIp1Rh91J78v6HoA8FPtI6xrr7Ld4sf1VRk/EP1Y5vg="; + hash = "sha256-51HzUrKBUwgXDSCV+iAtEBLLMl0yV5KVHYHTy+u5TAI="; }; build-system = [ setuptools ]; @@ -36,7 +36,7 @@ buildPythonPackage (finalAttrs: { meta = { description = "Python module for consuming the Losant IoT Platform API"; homepage = "https://github.com/Losant/losant-rest-python"; - changelog = "https://github.com/Losant/losant-rest-python/releases/tag/v${finalAttrs.src.tag}"; + changelog = "https://github.com/Losant/losant-rest-python/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ fab ]; }; From 3ce568b26a90e8360f93535b2f1cff6be2f888e0 Mon Sep 17 00:00:00 2001 From: Hythera <87016780+Hythera@users.noreply.github.com> Date: Sat, 11 Apr 2026 14:35:50 +0200 Subject: [PATCH 73/88] identity: 25.10.1 -> 26.03 changelog: https://gitlab.gnome.org/YaLTeR/identity/-/releases/v26.03 diff: https://gitlab.gnome.org/YaLTeR/identity/-/compare/v25.10.1...v26.03 --- pkgs/by-name/id/identity/package.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/id/identity/package.nix b/pkgs/by-name/id/identity/package.nix index 761d26f02dec..3e636485fb7c 100644 --- a/pkgs/by-name/id/identity/package.nix +++ b/pkgs/by-name/id/identity/package.nix @@ -27,21 +27,27 @@ stdenv.mkDerivation (finalAttrs: { pname = "identity"; - version = "25.10.1"; + version = "26.03"; src = fetchFromGitLab { domain = "gitlab.gnome.org"; owner = "YaLTeR"; repo = "identity"; tag = "v${finalAttrs.version}"; - hash = "sha256-ThccOze4BkqAprk1Yt+Ughts0DFbBwLDYd4iE8ZMwxo="; + hash = "sha256-CVSUk0xhfsMM47L0BVQj69Jw2MhsElBI3mxETCWBqcU="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) pname version src; - hash = "sha256-Do+20wh9F8xE+fA9Sg+8uyRojOF7Ih4taL/pZszU6xc="; + hash = "sha256-AuIAfk6BipUHkIfRiLJf0tjadVxsEIKKvpZgKA11oJE="; }; + # The crate can't find our provided gstreamer-gl-egl-1.0.pc in the PKG_CONFIG_PATH otherwise. + postPatch = '' + substituteInPlace $cargoDepsCopy/*/gstreamer-gl-egl-sys-*/Cargo.toml \ + --replace-fail 'gstreamer-gl-egl-1.0' 'gstreamer-gl-1.0' + ''; + strictDeps = true; nativeBuildInputs = [ From 721dd9c62459d1f60fd5bb6a80aa87ac2cef9238 Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Sat, 11 Apr 2026 12:54:52 +0000 Subject: [PATCH 74/88] linux_testing: 7.0-rc6 -> 7.0-rc7 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index adf23aea9dbc..a5112d3484a5 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -1,7 +1,7 @@ { "testing": { - "version": "7.0-rc6", - "hash": "sha256:085bc06mbav64rmsm6a34j2y75nrqpqp4qd8ld8mb9acf1i4iw45", + "version": "7.0-rc7", + "hash": "sha256:0d4199hy9z3md6ia1p2awy89y2fqpwvgadn0j850f4xckz2hqdgf", "lts": false }, "6.1": { From ca1e1fbc50c9a0be6facfd3c12882671ff2c7cd9 Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Sat, 11 Apr 2026 13:02:33 +0000 Subject: [PATCH 75/88] linux_6_19: 6.19.11 -> 6.19.12 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index a5112d3484a5..eeb2ec75d5c4 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -35,8 +35,8 @@ "lts": true }, "6.19": { - "version": "6.19.11", - "hash": "sha256:16ymkc5r3hw05z7l7ih3qw406qlszz1l7b4g5yz0hv15ddxrs0r0", + "version": "6.19.12", + "hash": "sha256:1md8b270pdyk9d8cq0qyr8qmymcijmj3gc39nn394wpr0l94yp6f", "lts": false } } From c25eab496979a9283a37e559fb95ad8eb311aeae Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Sat, 11 Apr 2026 12:54:54 +0000 Subject: [PATCH 76/88] linux_6_18: 6.18.21 -> 6.18.22 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index eeb2ec75d5c4..833b8a07b517 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -30,8 +30,8 @@ "lts": true }, "6.18": { - "version": "6.18.21", - "hash": "sha256:0ks735y6jq4yy3jaicjsj4dn4n3kk2skf9dqh9dyifipn57j2f0w", + "version": "6.18.22", + "hash": "sha256:0nazlm6j5blyd4qgl0z6xc3qk00vz3cfvx5mqv18awv5ygx94g52", "lts": true }, "6.19": { From c9c2a2b5753618a9fcb98032cb5918e4a293a269 Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Sat, 11 Apr 2026 12:54:56 +0000 Subject: [PATCH 77/88] linux_6_12: 6.12.80 -> 6.12.81 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index 833b8a07b517..ddf254194439 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -25,8 +25,8 @@ "lts": true }, "6.12": { - "version": "6.12.80", - "hash": "sha256:0lrylj87bb8ky29pbplpncrfhmgqqbq3d49iqgdwv7p7jvc929f9", + "version": "6.12.81", + "hash": "sha256:0iw84bqdbh9dlaqd1bqgldg50riw2b5is7ipqnbp0sll8cv9rc62", "lts": true }, "6.18": { From 6ad3e8add4b5e27ff1f24b47d11a51702687125d Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Sat, 11 Apr 2026 12:54:58 +0000 Subject: [PATCH 78/88] linux_6_6: 6.6.132 -> 6.6.134 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index ddf254194439..0f0f14a8bbc0 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -20,8 +20,8 @@ "lts": true }, "6.6": { - "version": "6.6.132", - "hash": "sha256:1d1fdd5wpphlm68yb16csaaijv0lf38ynl3gpvvdspsg22xjpdn5", + "version": "6.6.134", + "hash": "sha256:1grp1wqgzjsk6xyl0nvd2hxlxjj0wgz04x544zkz8srp6rxnjy33", "lts": true }, "6.12": { From 6f3463230872eb1c491d292aaa3d3208cfdbf87d Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Sat, 11 Apr 2026 12:55:00 +0000 Subject: [PATCH 79/88] linux_6_1: 6.1.167 -> 6.1.168 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index 0f0f14a8bbc0..d0581ef08f29 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -5,8 +5,8 @@ "lts": false }, "6.1": { - "version": "6.1.167", - "hash": "sha256:1jwqwp2fg3wdsh9w663rbnbv1rvsvksv1pj4bzns8swp0wy0a618", + "version": "6.1.168", + "hash": "sha256:0vkp75sfnjvfqxjh6gqcx24h2m6qj6xkwlw6b118cja43vjnz1g0", "lts": true }, "5.15": { From 381c05cdbde705ed996678555ef478783b96a102 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 13:04:07 +0000 Subject: [PATCH 80/88] rgx: 0.10.1 -> 0.10.2 --- pkgs/by-name/rg/rgx/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/rg/rgx/package.nix b/pkgs/by-name/rg/rgx/package.nix index d8802bd82d9b..d5c0a4692d81 100644 --- a/pkgs/by-name/rg/rgx/package.nix +++ b/pkgs/by-name/rg/rgx/package.nix @@ -7,16 +7,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "rgx"; - version = "0.10.1"; + version = "0.10.2"; src = fetchFromGitHub { owner = "brevity1swos"; repo = "rgx"; tag = "v${finalAttrs.version}"; - hash = "sha256-H566bgnf4bNPXS7rPtOFTlqmkwoXKbB1fBmFDZQUjac="; + hash = "sha256-lZA8Tfyneg8cnBeCf0abgPr9232a1OGBfOJEBnU2l+s="; }; - cargoHash = "sha256-hTR4eZKUOxvib5lAV/l76GZQPQ6s+Hgl3DT2kaGlaGg="; + cargoHash = "sha256-DOIQaqoUkR1KpQURC89PRds0wJkroSYufbKz62rjSB4="; buildInputs = [ pcre2 ]; From b2e08cbff239ae8dbd82ffb58dd2529b525b9335 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 13:50:09 +0000 Subject: [PATCH 81/88] python3Packages.pynintendoparental: 2.3.3 -> 2.3.4 --- .../development/python-modules/pynintendoparental/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pynintendoparental/default.nix b/pkgs/development/python-modules/pynintendoparental/default.nix index a8c1978a498b..3f9f4db7bfab 100644 --- a/pkgs/development/python-modules/pynintendoparental/default.nix +++ b/pkgs/development/python-modules/pynintendoparental/default.nix @@ -9,14 +9,14 @@ buildPythonPackage (finalAttrs: { pname = "pynintendoparental"; - version = "2.3.3"; + version = "2.3.4"; pyproject = true; src = fetchFromGitHub { owner = "pantherale0"; repo = "pynintendoparental"; tag = finalAttrs.version; - hash = "sha256-2qcupx+x578E+n+YsmB81XrVE5M0QFZPP82H5KxEkss="; + hash = "sha256-Lwr3iwRFForLvlFV9Z7l9diduNDu9dtrQSCaVMPcKJs="; }; postPatch = '' From fa67e022a560afd6b8e9fef5737902996556f4bc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 13:56:24 +0000 Subject: [PATCH 82/88] python3Packages.actron-neo-api: 0.4.1 -> 0.5.1 --- pkgs/development/python-modules/actron-neo-api/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/actron-neo-api/default.nix b/pkgs/development/python-modules/actron-neo-api/default.nix index 18b433a167ec..2fced01e209c 100644 --- a/pkgs/development/python-modules/actron-neo-api/default.nix +++ b/pkgs/development/python-modules/actron-neo-api/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "actron-neo-api"; - version = "0.4.1"; + version = "0.5.1"; pyproject = true; src = fetchFromGitHub { owner = "kclif9"; repo = "actronneoapi"; tag = "v${version}"; - hash = "sha256-pqBMtrLqGP61nmUE5H34nH969fON2KgyCrEmd3/2X8w="; + hash = "sha256-TEKRQQbmcDjHuZOte4fqZqLkw4Eo8FUgoyui3Mg8CqA="; }; build-system = [ From 8a0fe3e3afd2ba7da9f67c20990f7f9196990963 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 14:29:15 +0000 Subject: [PATCH 83/88] complgen: 0.8.3 -> 0.9.0 --- pkgs/by-name/co/complgen/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/co/complgen/package.nix b/pkgs/by-name/co/complgen/package.nix index 366997c15a51..5cf497794077 100644 --- a/pkgs/by-name/co/complgen/package.nix +++ b/pkgs/by-name/co/complgen/package.nix @@ -6,16 +6,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "complgen"; - version = "0.8.3"; + version = "0.9.0"; src = fetchFromGitHub { owner = "adaszko"; repo = "complgen"; tag = "v${finalAttrs.version}"; - hash = "sha256-z4jR2evvC0p306UeULroCLwaa7sjYUh7ENWp17FolAw="; + hash = "sha256-izIPX493EBqDgS58asiwFHF8XMNjVaFpXkOyiBb2688="; }; - cargoHash = "sha256-VhfIUP9NjsgoJ0qNUFwWdaZpWAWzSlmVgPI8kNeFVgM="; + cargoHash = "sha256-S1nt28qpgTy3mQN8wh/Nai6H/mq5eR09s7jRgGaFLkA="; meta = { changelog = "https://github.com/adaszko/complgen/blob/v${finalAttrs.version}/CHANGELOG.md"; From 7ce2f6105f78710630cfef8929c273b9cfc0daef Mon Sep 17 00:00:00 2001 From: Lazaro O'Farrill Date: Sat, 11 Apr 2026 16:34:37 +0200 Subject: [PATCH 84/88] gotools: 0.34.0 -> 0.44.0 Signed-off-by: Lazaro O'Farrill --- pkgs/by-name/go/gotools/package.nix | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/go/gotools/package.nix b/pkgs/by-name/go/gotools/package.nix index 74392d52e6eb..cce11d7f736d 100644 --- a/pkgs/by-name/go/gotools/package.nix +++ b/pkgs/by-name/go/gotools/package.nix @@ -8,20 +8,20 @@ buildGoModule (finalAttrs: { pname = "gotools"; - version = "0.34.0"; + version = "0.44.0"; # using GitHub instead of https://go.googlesource.com/tools because Gitiles UI is too basic to browse src = fetchFromGitHub { owner = "golang"; repo = "tools"; tag = "v${finalAttrs.version}"; - hash = "sha256-C+P2JoD4NzSAkAQuA20bVrfLZrMHXekvXn8KPOM5Nj4="; + hash = "sha256-F9DyZAZdrKCrCIB6FZP0KrOwPNRLk0ZQoNMHGMHd0UY="; }; allowGoReference = true; doCheck = false; - vendorHash = "sha256-UZNYHx5y+kRp3AJq6s4Wy+k789GDG7FBTSzCTorVjgg="; + vendorHash = "sha256-HpWkPsRJ0vCqJi9LoZcVbzeoPQ2B9ftZwuS1r47W7Sc="; nativeBuildInputs = [ makeWrapper ]; @@ -29,8 +29,6 @@ buildGoModule (finalAttrs: { # The gopls folder contains a Go submodule which causes a build failure # and lives in its own package named gopls. rm -r gopls - # cmd/auth folder is similar and is scheduled to be removed https://github.com/golang/go/issues/70872 - rm -r cmd/auth ''; # Set GOTOOLDIR for derivations adding this to buildInputs From 0cebcf63f406f46b42b42f5e7e5eedf29cac24ad Mon Sep 17 00:00:00 2001 From: Sizhe Zhao Date: Sat, 11 Apr 2026 23:26:32 +0800 Subject: [PATCH 85/88] code-cursor: update hash for {aarch64,x86_64}-linux --- pkgs/by-name/co/code-cursor/sources.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/code-cursor/sources.json b/pkgs/by-name/co/code-cursor/sources.json index 6acce0b40e06..af3c3981e4a6 100644 --- a/pkgs/by-name/co/code-cursor/sources.json +++ b/pkgs/by-name/co/code-cursor/sources.json @@ -4,11 +4,11 @@ "sources": { "x86_64-linux": { "url": "https://downloads.cursor.com/production/475871d112608994deb2e3065dfb7c6b0baa0c54/linux/x64/Cursor-3.0.16-x86_64.AppImage", - "hash": "sha256-/kBlLvaF3/7WSEI6ika6opgUVDQVo7vLVLsgG8htEpk=" + "hash": "sha256-dN8tFSppIpO/P0Thst5uaNzlmfWZDh0Y81Lx1BuSYt0=" }, "aarch64-linux": { "url": "https://downloads.cursor.com/production/475871d112608994deb2e3065dfb7c6b0baa0c54/linux/arm64/Cursor-3.0.16-aarch64.AppImage", - "hash": "sha256-tG75z9SPVaH6cgN75XW1ZKRyj689Yd97cbQZSvQtPrA=" + "hash": "sha256-AJwCzST0fj8fjSVeK15uE50XWGIOLOwn4gRRB733eLg=" }, "x86_64-darwin": { "url": "https://downloads.cursor.com/production/475871d112608994deb2e3065dfb7c6b0baa0c54/darwin/x64/Cursor-darwin-x64.dmg", From d9337fdd460bc48e9ed26f56e372f443a10f34c9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 15:28:12 +0000 Subject: [PATCH 86/88] everest: 6194 -> 6249 --- pkgs/by-name/ev/everest-bin/package.nix | 6 +++--- pkgs/by-name/ev/everest/package.nix | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/ev/everest-bin/package.nix b/pkgs/by-name/ev/everest-bin/package.nix index b6ae60777831..c4f1b231d1f9 100644 --- a/pkgs/by-name/ev/everest-bin/package.nix +++ b/pkgs/by-name/ev/everest-bin/package.nix @@ -8,15 +8,15 @@ let pname = "everest"; - version = "6194"; + version = "6249"; phome = "$out/lib/Celeste"; in stdenvNoCC.mkDerivation { inherit pname version; src = fetchzip { - url = "https://github.com/EverestAPI/Everest/releases/download/stable-1.6194.0/main.zip"; + url = "https://github.com/EverestAPI/Everest/releases/download/stable-1.6249.0/main.zip"; extension = "zip"; - hash = "sha256-Ja/b/5kKekBZZbqp0o2I8dvtiQ/rRa2kS6Q+08yBX7I="; + hash = "sha256-xcWscldogSI7vmljg8uU0zV8gREVe5rLHj0l6X+0z9E="; }; buildInputs = [ icu diff --git a/pkgs/by-name/ev/everest/package.nix b/pkgs/by-name/ev/everest/package.nix index a2608874d785..dcf359861840 100644 --- a/pkgs/by-name/ev/everest/package.nix +++ b/pkgs/by-name/ev/everest/package.nix @@ -11,8 +11,8 @@ let pname = "everest"; - version = "6194"; - rev = "5adc0e7ae6087ba90f9dd1cad487cf4dde1d493b"; + version = "6249"; + rev = "201a0dc2e0851f2bc601ed48cc1a64b17952e5ea"; phome = "$out/lib/Celeste"; in buildDotnetModule { @@ -25,7 +25,7 @@ buildDotnetModule { fetchSubmodules = true; # TODO: use leaveDotGit = true and modify external/MonoMod in postFetch to please SourceLink # Microsoft.SourceLink.Common.targets(53,5): warning : Source control information is not available - the generated source link is empty. - hash = "sha256-GG3cxrMZRSHoUzewHEQvljXSgHWcF9GNunlyWbiKrQo="; + hash = "sha256-ISCL6C1Zj18fMsfBAte9cqAWCA6/4eewKmefYmTm2uA="; }; nativeBuildInputs = [ autoPatchelfHook ]; From 30eec28a3e289b26542742775b0251b070f215a8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 15:48:31 +0000 Subject: [PATCH 87/88] justbuild: 1.6.4 -> 1.6.5 --- pkgs/by-name/ju/justbuild/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ju/justbuild/package.nix b/pkgs/by-name/ju/justbuild/package.nix index 2758556027a4..2192558735b4 100644 --- a/pkgs/by-name/ju/justbuild/package.nix +++ b/pkgs/by-name/ju/justbuild/package.nix @@ -34,13 +34,13 @@ let in stdenv.mkDerivation rec { pname = "justbuild"; - version = "1.6.4"; + version = "1.6.5"; src = fetchFromGitHub { owner = "just-buildsystem"; repo = "justbuild"; tag = "v${version}"; - hash = "sha256-WJg6zDgDKJjxbR7fdFUY6f2uNHntYPZT8lIt2kAJqAo="; + hash = "sha256-aeBIgbjSD9iVhwtkOOs63Xrpn8OshoABtOZhrjn3/jw="; }; bazelapi = fetchurl { From efdf5e1f017f25b72bdf9994b6bc119a61294dcd Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 16:02:54 +0000 Subject: [PATCH 88/88] trilium-desktop: 0.102.1 -> 0.102.2 --- pkgs/by-name/tr/trilium-desktop/package.nix | 10 +++++----- pkgs/by-name/tr/trilium-server/package.nix | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/tr/trilium-desktop/package.nix b/pkgs/by-name/tr/trilium-desktop/package.nix index be13017ad1bb..f2dc554703e3 100644 --- a/pkgs/by-name/tr/trilium-desktop/package.nix +++ b/pkgs/by-name/tr/trilium-desktop/package.nix @@ -15,7 +15,7 @@ let pname = "trilium-desktop"; - version = "0.102.1"; + version = "0.102.2"; triliumSource = os: arch: hash: { url = "https://github.com/TriliumNext/Trilium/releases/download/v${version}/TriliumNotes-v${version}-${os}-${arch}.zip"; @@ -26,10 +26,10 @@ let darwinSource = triliumSource "macos"; # exposed like this for update.sh - x86_64-linux.hash = "sha256-whGKMEruDqQjXEwYa3xlaoZPERWMmI541X4HZSzLla0="; - aarch64-linux.hash = "sha256-mTs+5j2jYKRW1cMQgs9SLp4UxpaE0lT41HG4AhIb+xE="; - x86_64-darwin.hash = "sha256-lkebqEMY37A6y3W2KjENIPys0cH+fGPFYeK/n4nPd1Y="; - aarch64-darwin.hash = "sha256-nIodFvyPI7LJUE4PI1BMwI3Xnz/OfzMrgaHHkltUgKw="; + x86_64-linux.hash = "sha256-OVkF/iDpbtcyv8ZXVtp9QYeKrA3rolQSWBUIBaJn74Q="; + aarch64-linux.hash = "sha256-85HlQsd/YjuVCYSO6wP9u8dNul87weq2IYDYR7N0gls="; + x86_64-darwin.hash = "sha256-S28eV7NUunWsE6kpKN2h7KKRCSFaMgIr7Ofj5pjJRhI="; + aarch64-darwin.hash = "sha256-GghYjS7Env8IQcNS8ZwIX4bmc6iZgGeL1W4IvCGMiBw="; sources = { x86_64-linux = linuxSource "x64" x86_64-linux.hash; diff --git a/pkgs/by-name/tr/trilium-server/package.nix b/pkgs/by-name/tr/trilium-server/package.nix index d117c280891f..88cd03372c20 100644 --- a/pkgs/by-name/tr/trilium-server/package.nix +++ b/pkgs/by-name/tr/trilium-server/package.nix @@ -7,12 +7,12 @@ }: let - version = "0.102.1"; + version = "0.102.2"; serverSource_x64.url = "https://github.com/TriliumNext/Trilium/releases/download/v${version}/TriliumNotes-Server-v${version}-linux-x64.tar.xz"; - serverSource_x64.hash = "sha256-5UW+3VrexXbtfVEcoPGEl1cu44nX89a88ny5o2pSv1I="; + serverSource_x64.hash = "sha256-2/Skk4I8CwttF5SEs8gPW6KyNxcrYcTuQBQ7irNL1lw="; serverSource_arm64.url = "https://github.com/TriliumNext/Trilium/releases/download/v${version}/TriliumNotes-Server-v${version}-linux-arm64.tar.xz"; - serverSource_arm64.hash = "sha256-uwOYXCoWmpRK2XQfSYervEzdbwHy0qQ+OkRh6izvDNM="; + serverSource_arm64.hash = "sha256-MQlYci2Z45qSYGxgSTWN3P017GImUqkv24DBn8usDm8="; serverSource = if stdenv.hostPlatform.isx86_64 then