X-Git-Url: https://vilimpoc.org/repos/dotfiles/blobdiff_plain/4776737b67f1d3e04d18dc4622e7bfb120f74e11..325b494c6241dcc4dc1cb7436ee84ac105b318eb:/README.md diff --git a/README.md b/README.md index e76e017..cf8a85b 100644 --- a/README.md +++ b/README.md @@ -26,10 +26,10 @@ C/C++ compiler. See | File | Purpose | | --- | --- | | `setup-windows.bat` | Entry point. Shows the plan and lets you choose, then runs the winget installs, launches the elevated half and prints its log, then runs the non-elevated script. | -| `setup-windows-plan.ps1` | The plan. Run by the batch file before anything else: lists every step for this machine, grouped and numbered, and takes your choice. Run it on its own with `-WhatIf` to preview; add `-HostArch ARM64 -Elevation NOLUA` to preview another kind of box. | +| `setup-windows-plan.ps1` | The plan. Run by the batch file before anything else: lists every step for this machine, grouped and numbered, and takes your choice. Run it on its own with `-WhatIf` to preview; add `-HostArch ARM64 -Elevation NOLUA`, or `-VirtualMachine Hyper-V` / `-VirtualMachine none`, to preview another kind of box. | | `setup-windows-steps.ps1` | The catalog the other four read: every step's name, what it does, and where it cannot run and why. Defines functions only; it is dot-sourced, never run. | | `setup-windows-current.ps1` | Asked by the batch file before the Claude Code, NASM and Android Studio installs: is what is on the box already current? Those are the installs that would otherwise run in full every time — see [Re-running](#re-running). | -| `setup-windows-no-uac.ps1` | The non-elevated, per-user half: WinMerge, BinSkim and upstream LLVM on the user `PATH` (x64 only), the global git config (identity, plus `core.sshCommand`), the native `ninja` pinned ahead of the one Visual Studio bundles, and an architecture audit of everything provisioned. Can also be run directly from an ordinary prompt; it lists its steps and asks first. | +| `setup-windows-no-uac.ps1` | The non-elevated, per-user half: `%USERPROFILE%\.local\bin` (where `claude.exe` lives), WinMerge, BinSkim and upstream LLVM on the user `PATH` (x64 only), the global git config (identity, plus `core.sshCommand`), the native `ninja` pinned ahead of the one Visual Studio bundles, and an architecture audit of everything provisioned. Can also be run directly from an ordinary prompt; it lists its steps and asks first. | | `setup-windows-with-uac.ps1` | The elevated half, started via UAC by the batch file. Enables `ssh-agent`, installs the OpenSSH Client and Server capabilities and starts `sshd`, unpacks the `rsync-windows` release zip for this architecture (`rsync.exe` plus the `ssh.exe` it runs) into `C:\Tools\rsync` on the machine `PATH`, then installs Visual Studio Community with the required components, the WDK, and the Windows Performance Toolkit, and reports whether Intel VTune Profiler is present. Can also be run directly from an Administrator prompt; it lists its steps and asks first. | | `setup-windows-7-test-env.bat` | Prepares a **Windows 7 VM** as a test target driven from the host by `VBoxManage guestcontrol`. Copy it into the guest and run it there; it is idempotent, so re-run it after any snapshot restore. The per-user half needs no UAC (crash-dialog suppression, no screen blanking, a staging directory, the shared folder on `Z:`); the machine-wide half is skipped with a notice unless run elevated inside the guest. It then reports what the box can actually test: DWM composition, printers, audio capture devices. | @@ -120,7 +120,8 @@ still adjust it before pressing Enter unless you also pass `-Yes`. were asked already. With nothing selected for a half it is not started — so no UAC prompt is raised for an elevated half with no steps. - Every step is declared once, in `setup-windows-steps.ps1`: its name, what it - does, and — with the reason — whether it is x64-only (`-X64Only`) or needs an + does, and — with the reason — whether it is x64-only (`-X64Only`), kept off a + Windows that is itself a virtual machine (`-NotInVM`), or needs an administrator (`-Admin`). The planner, the batch file and both halves read that one list and check each other: a step the list does not know is refused rather than run, and a selected step that nothing implements fails the run @@ -339,7 +340,10 @@ missing or out of date. `Anthropic.ClaudeCode` are broken through that route, so the batch file runs Anthropic's own installer, `irm https://claude.ai/install.ps1 | iex`: it checks the download against the release manifest's SHA-256 and puts `claude` - in `%USERPROFILE%\.local\bin`, per-user. Two things are fixed up around it. + in `%USERPROFILE%\.local\bin`, per-user. The `LocalBinPath` step in + `setup-windows-no-uac.ps1` makes sure that directory is on the user `PATH` + (creating it if need be); the installer itself only prints a reminder. Two + things are fixed up around it. The script picks its ARM64 or x64 build from `$env:PROCESSOR_ARCHITECTURE` alone, which reads `AMD64` in an emulated x64 shell on ARM64 (see [Detecting the architecture](#detecting-the-architecture)), so the batch file @@ -670,6 +674,13 @@ Two consequences worth knowing rather than rediscovering: Windows 7 *x86* guest, which neither VirtualBox nor Hyper-V on ARM64 can run. (That script itself is unchanged; it runs inside the guest, so it never sees the host architecture.) +- **VirtualBox is also skipped inside a virtual machine**, on any architecture. + The planner reads the firmware's SMBIOS manufacturer and model + (`Win32_ComputerSystem`) and recognises VirtualBox, VMware, Hyper-V (and + Azure), QEMU/KVM, Parallels, Xen, EC2 and GCE; the plan's `machine:` line + names what it found. It does not use `HypervisorPresent`, which is also true + on physical hardware running Hyper-V, WSL2 or VBS. The test VMs belong on the + physical host. - **The `v141` / Windows XP toolset is skipped**, and the verification step says `n/a` instead of warning about it. The components are still *listed* in the catalog on Arm, so this is a deliberate skip rather than a hard unavailability