Unverified Commit 9b295ab7 authored by Ryan Lahfa's avatar Ryan Lahfa Committed by GitHub
Browse files

Merge pull request #224116 from farcaller/shellconfig

parents a8b64e84 ed44cfb1
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -29,6 +29,11 @@
- All [ROCm](https://rocm.docs.amd.com/en/latest/) packages have been updated to 5.7.0.
  - [ROCm](https://rocm.docs.amd.com/en/latest/) package attribute sets are versioned: `rocmPackages` -> `rocmPackages_5`.

- If the user has a custom shell enabled via `users.users.${USERNAME}.shell = ${CUSTOMSHELL}`, the
  assertion will require them to also set `programs.${CUSTOMSHELL}.enable =
  true`. This is generally safe behavior, but for anyone needing to opt out from
  the check `users.users.${USERNAME}.ignoreShellProgramCheck = true` will do the job.

## New Services {#sec-release-23.11-new-services}

- [MCHPRS](https://github.com/MCHPR/MCHPRS), a multithreaded Minecraft server built for redstone. Available as [services.mchprs](#opt-services.mchprs.enable).
+16 −1
Original line number Diff line number Diff line
@@ -172,6 +172,17 @@ let
        '';
      };

      ignoreShellProgramCheck = mkOption {
        type = types.bool;
        default = false;
        description = lib.mdDoc ''
          By default, nixos will check that programs.SHELL.enable is set to
          true if the user has a custom shell specified. If that behavior isn't
          required and there are custom overrides in place to make sure that the
          shell is functional, set this to true.
        '';
      };

      subUidRanges = mkOption {
        type = with types; listOf (submodule subordinateUidRange);
        default = [];
@@ -853,13 +864,17 @@ in {
            '';
          }
        ] ++ (map (shell: {
            assertion = (user.shell == pkgs.${shell}) -> (config.programs.${shell}.enable == true);
            assertion = !user.ignoreShellProgramCheck -> (user.shell == pkgs.${shell}) -> (config.programs.${shell}.enable == true);
            message = ''
              users.users.${user.name}.shell is set to ${shell}, but
              programs.${shell}.enable is not true. This will cause the ${shell}
              shell to lack the basic nix directories in its PATH and might make
              logging in as that user impossible. You can fix it with:
              programs.${shell}.enable = true;

              If you know what you're doing and you are fine with the behavior,
              set users.users.${user.name}.ignoreShellProgramCheck = true;
              instead.
            '';
          }) [
          "fish"