From 9bbef50e246b27ccb8eb1b38175a24f86d93b195 Mon Sep 17 00:00:00 2001 From: Jared Baur Date: Thu, 24 Oct 2024 06:27:14 -0700 Subject: [PATCH] nixos/switchable-system: add evaluation warning when using perl stc --- nixos/doc/manual/release-notes/rl-2411.section.md | 2 +- nixos/modules/system/activation/switchable-system.nix | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/nixos/doc/manual/release-notes/rl-2411.section.md b/nixos/doc/manual/release-notes/rl-2411.section.md index 84a5b01212ce..e555a8f921da 100644 --- a/nixos/doc/manual/release-notes/rl-2411.section.md +++ b/nixos/doc/manual/release-notes/rl-2411.section.md @@ -48,7 +48,7 @@ - The Rust rewrite of the `switch-to-configuration` program is now used for system activation by default. If you experience any issues, please report them. - The original Perl script can still be used for now by setting `system.switch.enableNg` to `false`. + The original Perl script is deprecated and is planned for removal in the 25.05 release. It will remain accessible until then by setting `system.switch.enableNg` to `false`. - Support for mounting filesystems from block devices protected with [dm-verity](https://docs.kernel.org/admin-guide/device-mapper/verity.html) was added through the `boot.initrd.systemd.dmVerity` option. diff --git a/nixos/modules/system/activation/switchable-system.nix b/nixos/modules/system/activation/switchable-system.nix index 53e22900d5b1..d1326a18e5fe 100644 --- a/nixos/modules/system/activation/switchable-system.nix +++ b/nixos/modules/system/activation/switchable-system.nix @@ -42,6 +42,17 @@ in config = lib.mkMerge [ (lib.mkIf (config.system.switch.enable && !config.system.switch.enableNg) { + warnings = [ + '' + The Perl implementation of switch-to-configuration will be deprecated + and removed in the 25.05 release of NixOS. Please migrate to the + newer implementation by removing `system.switch.enableNg = false` + from your configuration. If you are unable to migrate due to any + issues with the new implementation, please create an issue and tag + the maintainers of `switch-to-configuration-ng`. + '' + ]; + system.activatableSystemBuilderCommands = '' mkdir $out/bin substitute ${./switch-to-configuration.pl} $out/bin/switch-to-configuration \