summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Ericson <git@JohnEricson.me>2021-10-06 18:05:47 -0400
committerGitHub <noreply@github.com>2021-10-06 18:05:47 -0400
commitc2cf3eb10099db3073b90ef7a2372eb3210dee76 (patch)
tree0751b13504778d624bafee76e31839fba1300b11
parentMerge pull request #140764 from r-ryantm/auto-update/python38Packages.mypy-bo... (diff)
parentnixos/nix-daemon: Add enable option (diff)
downloadnixpkgs-c2cf3eb10099db3073b90ef7a2372eb3210dee76.tar.gz
Merge pull request #120565 from Ericson2314/nixos-without-nix
nixos/nix-daemon: Add enable option
-rw-r--r--nixos/modules/services/misc/nix-daemon.nix11
-rw-r--r--nixos/tests/all-tests.nix1
-rw-r--r--nixos/tests/without-nix.nix23
3 files changed, 34 insertions, 1 deletions
diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix
index 789d0355b05c..8a620887f98a 100644
--- a/nixos/modules/services/misc/nix-daemon.nix
+++ b/nixos/modules/services/misc/nix-daemon.nix
@@ -82,6 +82,15 @@ in
nix = {
+ enable = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Whether to enable Nix.
+ Disabling Nix makes the system hard to modify and the Nix programs and configuration will not be made available by NixOS itself.
+ '';
+ };
+
package = mkOption {
type = types.package;
default = pkgs.nix;
@@ -499,7 +508,7 @@ in
###### implementation
- config = {
+ config = mkIf cfg.enable {
nix.binaryCachePublicKeys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" ];
nix.binaryCaches = [ "https://cache.nixos.org/" ];
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index f92a9241c506..1c44030eaab2 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -478,6 +478,7 @@ in
wasabibackend = handleTest ./wasabibackend.nix {};
wiki-js = handleTest ./wiki-js.nix {};
wireguard = handleTest ./wireguard {};
+ without-nix = handleTest ./without-nix.nix {};
wmderland = handleTest ./wmderland.nix {};
wpa_supplicant = handleTest ./wpa_supplicant.nix {};
wordpress = handleTest ./wordpress.nix {};
diff --git a/nixos/tests/without-nix.nix b/nixos/tests/without-nix.nix
new file mode 100644
index 000000000000..2fc00b04144f
--- /dev/null
+++ b/nixos/tests/without-nix.nix
@@ -0,0 +1,23 @@
+import ./make-test-python.nix ({ lib, ... }: {
+ name = "without-nix";
+ meta = with lib.maintainers; {
+ maintainers = [ ericson2314 ];
+ };
+
+ nixpkgs.overlays = [
+ (self: super: {
+ nix = throw "don't want to use this";
+ })
+ ];
+
+ nodes.machine = { ... }: {
+ nix.enable = false;
+ };
+
+ testScript = ''
+ start_all()
+
+ machine.succeed("which which")
+ machine.fail("which nix")
+ '';
+})