Unverified Commit 500f4dcf authored by Emily's avatar Emily Committed by GitHub
Browse files

nixos/switchable-system: add evaluation warning when using perl stc (#350945)

parents ba1e3d89 9bbef50e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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.
+23 −6
Original line number Diff line number Diff line
{ config, lib, pkgs, ... }:
{
  config,
  lib,
  pkgs,
  ...
}:

let

  perlWrapped = pkgs.perl.withPackages (p: with p; [ ConfigIniFiles FileSlurp ]);

  perlWrapped = pkgs.perl.withPackages (
    p: with p; [
      ConfigIniFiles
      FileSlurp
    ]
  );
in

{

  options.system.switch = {
    enable = lib.mkOption {
      type = lib.types.bool;
@@ -36,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 \