summary refs log tree commit diff
diff options
context:
space:
mode:
authorrnhmjoj <rnhmjoj@inventati.org>2020-10-21 13:02:09 +0200
committerrnhmjoj <rnhmjoj@inventati.org>2020-10-21 16:38:04 +0200
commitbc2188b083dfbbe749a221023e2960b60d4c8951 (patch)
tree2919676a86fbd3a7c08819d07a4c0a40320107a8
parentd95b8c33b4b076305cc3479885ff1cab54ca290c (diff)
downloadnixpkgs-bc2188b083dfbbe749a221023e2960b60d4c8951.tar
nixpkgs-bc2188b083dfbbe749a221023e2960b60d4c8951.tar.gz
nixpkgs-bc2188b083dfbbe749a221023e2960b60d4c8951.tar.bz2
nixpkgs-bc2188b083dfbbe749a221023e2960b60d4c8951.tar.lz
nixpkgs-bc2188b083dfbbe749a221023e2960b60d4c8951.tar.xz
nixpkgs-bc2188b083dfbbe749a221023e2960b60d4c8951.tar.zst
nixpkgs-bc2188b083dfbbe749a221023e2960b60d4c8951.zip
nixos: fix qemu_test being used in normal VMs
This is an attempt to fixup PR #49403.
-rw-r--r--nixos/lib/build-vms.nix4
-rw-r--r--nixos/modules/testing/test-instrumentation.nix5
-rw-r--r--nixos/modules/virtualisation/qemu-vm.nix11
3 files changed, 14 insertions, 6 deletions
diff --git a/nixos/lib/build-vms.nix b/nixos/lib/build-vms.nix
index b1575fc13bb..ebbb0296bef 100644
--- a/nixos/lib/build-vms.nix
+++ b/nixos/lib/build-vms.nix
@@ -18,9 +18,6 @@ rec {
 
   inherit pkgs;
 
-  qemu = pkgs.qemu_test;
-
-
   # Build a virtual network from an attribute set `{ machine1 =
   # config1; ... machineN = configN; }', where `machineX' is the
   # hostname and `configX' is a NixOS system configuration.  Each
@@ -39,7 +36,6 @@ rec {
         [ ../modules/virtualisation/qemu-vm.nix
           ../modules/testing/test-instrumentation.nix # !!! should only get added for automated test runs
           { key = "no-manual"; documentation.nixos.enable = false; }
-          { key = "qemu"; system.build.qemu = qemu; }
           { key = "nodes"; _module.args.nodes = nodes; }
         ] ++ optional minimal ../modules/testing/minimal-kernel.nix;
     };
diff --git a/nixos/modules/testing/test-instrumentation.nix b/nixos/modules/testing/test-instrumentation.nix
index dbbcb0bed5b..e9f5eac7f5f 100644
--- a/nixos/modules/testing/test-instrumentation.nix
+++ b/nixos/modules/testing/test-instrumentation.nix
@@ -51,7 +51,10 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
     #       we avoid defining consoles if not possible.
     # TODO: refactor such that test-instrumentation can import qemu-vm
     #       or declare virtualisation.qemu.console option in a module that's always imported
-    virtualisation = lib.optionalAttrs (options ? virtualisation.qemu.consoles) { qemu.consoles = [ qemuSerialDevice ]; };
+    virtualisation.qemu = {
+      consoles = lib.optional (options ? virtualisation.qemu.consoles) qemuSerialDevice;
+      package  = pkgs.qemu_test;
+    };
 
     boot.initrd.preDeviceCommands =
       ''
diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix
index 42e43f5ee02..191d7c758c0 100644
--- a/nixos/modules/virtualisation/qemu-vm.nix
+++ b/nixos/modules/virtualisation/qemu-vm.nix
@@ -14,10 +14,11 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
 
 let
 
-  qemu = config.system.build.qemu or pkgs.qemu_test;
 
   cfg = config.virtualisation;
 
+  qemu = cfg.qemu.package;
+
   consoles = lib.concatMapStringsSep " " (c: "console=${c}") cfg.qemu.consoles;
 
   driveOpts = { ... }: {
@@ -401,6 +402,14 @@ in
       };
 
     virtualisation.qemu = {
+      package =
+        mkOption {
+          type = types.package;
+          default = pkgs.qemu;
+          example = "pkgs.qemu_test";
+          description = "QEMU package to use.";
+        };
+
       options =
         mkOption {
           type = types.listOf types.unspecified;