summaryrefslogtreecommitdiffstats
path: root/nixos
diff options
context:
space:
mode:
authorAndreas Rammhold <andreas@rammhold.de>2020-10-22 11:09:05 +0200
committerGitHub <noreply@github.com>2020-10-22 11:09:05 +0200
commit89351525faecc79b5ad3764b44c9ca7735c449ec (patch)
tree9a4fb43fa8ddd2da0132cccd0e7870dfc25238c7 /nixos
parent404182e0399e85b70c6e59f96c2407c7acc5e1b8 (diff)
parentbc2188b083dfbbe749a221023e2960b60d4c8951 (diff)
Merge pull request #101246 from rnhmjoj/vm-fix
nixos: fix qemu_test being used in normal VMs
Diffstat (limited to 'nixos')
-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 b1575fc13bbd..ebbb0296bef6 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 dbbcb0bed5b0..e9f5eac7f5f4 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 42e43f5ee023..191d7c758c0d 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;