From 60e731d1ceb7343b1d137afe6b09f3f6409d701b Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 6 Oct 2021 14:06:12 +0200 Subject: [PATCH 1/2] nixos/qemu-vm: fix running VM with `QEMU_NET_OPTS` I realized quite recently that running a test VM - as documented in the manual - like QEMU_NET_OPTS='hostfwd=tcp::8080-:80' ./result/bin/nixos-run-vms doesn't work anymore on `master`. After bisecting I realized that the introduction of a forward-port option[1] is the problem since it adds a trailing comma even if no forwarding options are specified via `virtualisation.forwardPorts`. In that case, the networking options would look like `-netdev user,id=user.0,,hostfwd=tcp::8080-:80' which confused QEMU and thus the VM refused to start. Now, the trailing comma is only added if additional port forwards are specified declaratively. [1] b8bfc81d5b2d88b734a311f712fc0ba2b267f9e0 --- nixos/modules/virtualisation/qemu-vm.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix index 69d67685f559..8f33ba4c5e04 100644 --- a/nixos/modules/virtualisation/qemu-vm.nix +++ b/nixos/modules/virtualisation/qemu-vm.nix @@ -780,7 +780,7 @@ in in [ "-net nic,netdev=user.0,model=virtio" - "-netdev user,id=user.0,${forwardingOptions}\${QEMU_NET_OPTS:+,$QEMU_NET_OPTS}" + "-netdev user,id=user.0,${forwardingOptions}$QEMU_NET_OPTS" ]; # FIXME: Consolidate this one day. From f700a92d5c2b307c14ff2610ebfdfa0e98df2e16 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 6 Oct 2021 23:12:53 +0200 Subject: [PATCH 2/2] nixos/qemu-vm: quote QEMU_NET_OPTS Co-authored-by: Michele Guerini Rocco --- nixos/modules/virtualisation/qemu-vm.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix index 8f33ba4c5e04..c5f71b249a6d 100644 --- a/nixos/modules/virtualisation/qemu-vm.nix +++ b/nixos/modules/virtualisation/qemu-vm.nix @@ -780,7 +780,7 @@ in in [ "-net nic,netdev=user.0,model=virtio" - "-netdev user,id=user.0,${forwardingOptions}$QEMU_NET_OPTS" + "-netdev user,id=user.0,${forwardingOptions}\"$QEMU_NET_OPTS\"" ]; # FIXME: Consolidate this one day.