diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix index bb9c2c7368acb..1f4f8b35b663f 100644 --- a/pkgs/build-support/vm/default.nix +++ b/pkgs/build-support/vm/default.nix @@ -125,15 +125,15 @@ rec { mkdir -p /fs${storeDir} mount -t 9p store /fs${storeDir} -o trans=virtio,version=9p2000.L,cache=loose,msize=131072 - echo "mounting host's build directory..." - mkdir -p /fs/build - mount -t 9p sa /fs/build -o trans=virtio,version=9p2000.L,cache=loose,msize=131072 - mkdir -p /fs/tmp /fs/run /fs/var mount -t tmpfs -o "mode=1777" none /fs/tmp mount -t tmpfs -o "mode=755" none /fs/run ln -sfn /run /fs/var/run + echo "mounting host's temporary directory..." + mkdir -p /fs/tmp/xchg + mount -t 9p xchg /fs/tmp/xchg -o trans=virtio,version=9p2000.L,msize=131072 + mkdir -p /fs/proc mount -t proc none /fs/proc @@ -165,9 +165,11 @@ rec { stage2Init = writeScript "vm-run-stage2" '' #! ${bash}/bin/sh set -euo pipefail - source /build/xchg/saved-env - if [ -f "''${NIX_ATTRS_SH_FILE-}" ]; then - source "$NIX_ATTRS_SH_FILE" + source /tmp/xchg/saved-env + if [ -f /tmp/xchg/.attrs.sh ]; then + source /tmp/xchg/.attrs.sh + export NIX_ATTRS_JSON_FILE=/tmp/xchg/.attrs.json + export NIX_ATTRS_SH_FILE=/tmp/xchg/.attrs.sh fi export NIX_STORE=${storeDir} @@ -177,6 +179,7 @@ rec { cd "$NIX_BUILD_TOP" source $stdenv/setup + if ! test -e /bin/sh; then ${coreutils}/bin/mkdir -p /bin ${coreutils}/bin/ln -s ${bash}/bin/sh /bin/sh @@ -201,7 +204,7 @@ rec { declare -a argsArray=() concatTo argsArray origArgs "$origBuilder" "''${argsArray[@]}" - echo $? > /build/xchg/in-vm-exit + echo $? > /tmp/xchg/in-vm-exit ${busybox}/bin/mount -o remount,ro dummy / @@ -220,7 +223,7 @@ rec { -nographic -no-reboot \ -device virtio-rng-pci \ -virtfs local,path=${storeDir},security_model=none,mount_tag=store \ - -virtfs local,path=/build,security_model=none,mount_tag=sa \ + -virtfs local,path=xchg,security_model=none,mount_tag=xchg \ ''${diskImage:+-drive file=$diskImage,if=virtio,cache=unsafe,werror=report} \ -kernel ${kernel}/${img} \ -initrd ${initrd}/initrd \ @@ -235,6 +238,7 @@ rec { PATH=${coreutils}/bin if [ -f "''${NIX_ATTRS_SH_FILE-}" ]; then + cp $NIX_ATTRS_JSON_FILE $NIX_ATTRS_SH_FILE xchg source "$NIX_ATTRS_SH_FILE" fi source $stdenv/setup