diff options
Diffstat (limited to 'pkgs/build-support/vm/default.nix')
-rw-r--r-- | pkgs/build-support/vm/default.nix | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix index 1a07e1c1159..c501f63ef00 100644 --- a/pkgs/build-support/vm/default.nix +++ b/pkgs/build-support/vm/default.nix @@ -9,9 +9,9 @@ }: with pkgs; -with import ../../../nixos/lib/qemu-flags.nix { inherit pkgs; }; rec { + qemu-common = import ../../../nixos/lib/qemu-common.nix { inherit lib pkgs; }; qemu = buildPackages.qemu_kvm; @@ -192,13 +192,13 @@ rec { export PATH=/bin:/usr/bin:${coreutils}/bin echo "Starting interactive shell..." echo "(To run the original builder: \$origBuilder \$origArgs)" - exec ${busybox}/bin/setsid ${bashInteractive}/bin/bash < /dev/${qemuSerialDevice} &> /dev/${qemuSerialDevice} + exec ${busybox}/bin/setsid ${bashInteractive}/bin/bash < /dev/${qemu-common.qemuSerialDevice} &> /dev/${qemu-common.qemuSerialDevice} fi ''; qemuCommandLinux = '' - ${qemuBinary qemu} \ + ${qemu-common.qemuBinary qemu} \ -nographic -no-reboot \ -device virtio-rng-pci \ -virtfs local,path=${storeDir},security_model=none,mount_tag=store \ @@ -206,7 +206,7 @@ rec { ''${diskImage:+-drive file=$diskImage,if=virtio,cache=unsafe,werror=report} \ -kernel ${kernel}/${img} \ -initrd ${initrd}/initrd \ - -append "console=${qemuSerialDevice} panic=1 command=${stage2Init} out=$out mountDisk=$mountDisk loglevel=4" \ + -append "console=${qemu-common.qemuSerialDevice} panic=1 command=${stage2Init} out=$out mountDisk=$mountDisk loglevel=4" \ $QEMU_OPTS ''; @@ -257,14 +257,23 @@ rec { eval "$postVM" ''; - - createEmptyImage = {size, fullName}: '' - mkdir $out - diskImage=$out/disk-image.qcow2 + /* + A bash script fragment that produces a disk image at `destination`. + */ + createEmptyImage = { + # Disk image size in MiB + size, + # Name that will be written to ${destination}/nix-support/full-name + fullName, + # Where to write the image files, defaulting to $out + destination ? "$out" + }: '' + mkdir -p ${destination} + diskImage=${destination}/disk-image.qcow2 ${qemu}/bin/qemu-img create -f qcow2 $diskImage "${toString size}M" - mkdir $out/nix-support - echo "${fullName}" > $out/nix-support/full-name + mkdir ${destination}/nix-support + echo "${fullName}" > ${destination}/nix-support/full-name ''; |