diff --git a/artiq-fast/wfvm/install.nix b/artiq-fast/wfvm/install.nix deleted file mode 100644 index 9d406f0..0000000 --- a/artiq-fast/wfvm/install.nix +++ /dev/null @@ -1,99 +0,0 @@ -{ pkgs ? import {} -, diskImageSize ? "22G" -, qemuMem ? "4G" -, -}: - -with pkgs; - -let - windowsIso = fetchurl { - url = "https://software-download.microsoft.com/download/sg/17763.107.101029-1455.rs5_release_svc_refresh_CLIENT_LTSC_EVAL_x64FRE_en-us.iso"; - sha256 = "668fe1af70c2f7416328aee3a0bb066b12dc6bbd2576f40f812b95741e18bc3a"; - }; - anaconda = fetchurl { - url = "https://repo.anaconda.com/archive/Anaconda3-2019.03-Windows-x86_64.exe"; - sha256 = "1f9icm5rwab6l1f23a70dw0qixzrl62wbglimip82h4zhxlh3jfj"; - }; - - escape = builtins.replaceStrings [ "\\" ] [ "\\\\" ]; - qemu = import ./qemu.nix { - inherit pkgs qemuMem; - diskImage = "c.img"; - }; - # Double-escape because we produce a script from a shell heredoc - ssh = cmd: qemu.ssh (escape cmd); - scp = qemu.scp; - - sshCondaEnv = cmd: ssh "anaconda\\scripts\\activate && ${cmd}"; - condaEnv = "artiq-env"; - condaDepSpecs = - builtins.concatStringsSep " " - ( - map (s: "\"${s}\"") - (import ../conda-artiq-deps.nix) - ); - - instructions = - builtins.toFile "install.txt" - (builtins.readFile ./install.txt); -in -stdenv.mkDerivation { - name = "windows-installer"; - src = windowsIso; - setSourceRoot = "sourceRoot=`pwd`"; - unpackCmd = '' - ln -s $curSrc windows.iso - ''; - propagatedBuildInputs = qemu.inputs; - dontBuild = true; - installPhase = '' - mkdir -p $out/bin $out/data - ln -s $(readlink windows.iso) $out/data/windows.iso - cat > $out/bin/windows-installer.sh << EOF - #!/usr/bin/env bash - set -e -m - - ${qemu.qemu-img} create -f qcow2 c.img ${diskImageSize} - ${qemu.runQemu false [] [ - "-boot" - "order=d" - "-drive" - "file=c.img,index=0,media=disk,cache=unsafe" - "-drive" - "file=$out/data/windows.iso,index=1,media=cdrom,cache=unsafe" - ]} & - cat ${instructions} - wait - EOF - - cat > $out/bin/anaconda-installer.sh << EOF - #!/usr/bin/env bash - set -e -m - - ${qemu.runQemu false [] [ - "-boot" - "order=c" - "-drive" - "file=c.img,index=0,media=disk" - ]} & - sleep 10 - ${ssh "ver"} - - ${scp anaconda "Anaconda.exe"} - ${ssh "start /wait \"\" Anaconda.exe /S /D=%cd%\\anaconda"} - - ${sshCondaEnv "conda config --add channels conda-forge"} - ${sshCondaEnv "conda config --add channels m-labs"} - ( ${sshCondaEnv "conda update -y conda"} ) || true - ${sshCondaEnv "conda update -y --all"} - ${sshCondaEnv "conda create -y -n ${condaEnv}"} - ${sshCondaEnv "conda install -y -n ${condaEnv} ${condaDepSpecs}"} - ${ssh "shutdown /p /f"} - - echo "Waiting for qemu exit" - wait - EOF - chmod a+x $out/bin/*.sh - ''; -}