nixos/switchable-system: add evaluation warning when using perl stc

This commit is contained in:
Jared Baur 2024-10-24 06:27:14 -07:00
parent 81f92fbc29
commit 9bbef50e24
No known key found for this signature in database
2 changed files with 12 additions and 1 deletions

View File

@ -48,7 +48,7 @@
- The Rust rewrite of the `switch-to-configuration` program is now used for system activation by default. - 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. 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) - 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. was added through the `boot.initrd.systemd.dmVerity` option.

View File

@ -42,6 +42,17 @@ in
config = lib.mkMerge [ config = lib.mkMerge [
(lib.mkIf (config.system.switch.enable && !config.system.switch.enableNg) { (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 = '' system.activatableSystemBuilderCommands = ''
mkdir $out/bin mkdir $out/bin
substitute ${./switch-to-configuration.pl} $out/bin/switch-to-configuration \ substitute ${./switch-to-configuration.pl} $out/bin/switch-to-configuration \