diff options
author | rnhmjoj <rnhmjoj@inventati.org> | 2020-10-21 13:02:09 +0200 |
---|---|---|
committer | rnhmjoj <rnhmjoj@inventati.org> | 2020-10-21 16:38:04 +0200 |
commit | bc2188b083dfbbe749a221023e2960b60d4c8951 (patch) | |
tree | 2919676a86fbd3a7c08819d07a4c0a40320107a8 | |
parent | d95b8c33b4b076305cc3479885ff1cab54ca290c (diff) |
nixos: fix qemu_test being used in normal VMs
This is an attempt to fixup PR #49403.
-rw-r--r-- | nixos/lib/build-vms.nix | 4 | ||||
-rw-r--r-- | nixos/modules/testing/test-instrumentation.nix | 5 | ||||
-rw-r--r-- | nixos/modules/virtualisation/qemu-vm.nix | 11 |
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; |