3.8 KiB
Windows build environment, 2026-10-28
Scope
The operator explicitly authorized installing the Windows build environment.
MSYS2 was installed at C:\msys64 through the MSYS2.MSYS2 winget package
(installer version 20260927). The MSYS2 base was updated, including restarting
the shell after the core runtime update. No controller interaction or packaged
desktop acceptance was performed as part of this setup.
The source was fetched with scripts/prepare_rayforge_build.ps1 and verified
against Rayforge commit c28918c87f8273dd1d244f5a057addc192807fa5.
The pinned upstream scripts/win/win_setup.sh was reviewed and explicitly run
in a UCRT64 shell. Repository scripts still do not install a toolchain
implicitly.
Installed runtime
- Python 3.14.9
- GTK 4.24.1 and Libadwaita 1.10.0
- GCC 16.2.0 and Rust 1.99.1
- PyInstaller 6.22.3 and NSIS 3.13
- Raygeo 1.66.0 and Raydriver 0.3.0, compiled locally
- Cairo 1.18.4-4, selected by the pinned upstream setup script
The setup installs the upstream system-package set and its Python dependencies.
Run shell-based setup and build commands with MSYSTEM=UCRT64 and
CHERE_INVOKING=1; run them from the repository root to preserve the working
directory. Source and outputs remain in the ignored .build cache.
Observations and validation
- The 152 repository unit tests and public-repository guard passed before installation using a writable temporary directory.
- The consolidated
run_m1_no_device_acceptance.pyreport passed using the newly installed UCRT64 Python and the pinned Rayforge checkout. - Direct imports succeeded for GTK4, Libadwaita, Raygeo, Raydriver, Vtracer, Zeroconf, OpenCV, NumPy, SciPy, PyMuPDF and PyVips. This is an import check, not a successful desktop interaction test.
pip checkexited with status 1, reporting that the Raygeo and Raydriver distributions are not supported on this platform. Both locally compiled modules imported successfully; the metadata/platform warning remains unresolved and must not be represented as a clean dependency check.- VIPS warned that its HEIF and ImageMagick modules could not load. Coverage of these image formats has not been established.
- PyInstaller warned about missing
scipy.special._cdflib; successful bundle creation alone does not establish coverage of that module.
The first package download hit a connection reset and succeeded on retry. The first Python wheel-build batch ran out of disk space while building Zeroconf. Temporary build cleanup allowed the automatic retry to complete. The new installation's downloaded pacman package cache was subsequently removed; installed packages were retained. Allow substantial temporary disk headroom beyond the roughly 5 GiB system-package installed-size estimate.
Produced checkpoint
scripts/build_rayforge_windows_checkpoint.ps1 completed successfully using
the pinned source and staged no-device addon. Outputs under .build/artifacts/:
rayforge-vpirateray-c28918c87f82.zip: 354,161,221 bytes, SHA-2568640244f54aebe5d043f33db2949842fa9cb5e14e74dd75ec91af4f6873f274crayforge-vpirateray-c28918c87f82-installer.exe: 258,711,163 bytes, SHA-256a74620b3869803c755a9ffc20c35772e57ea2fef62bcf323ac971ae4a2aa8d5aRayforge-LICENSE.txtandrayforge-windows-checkpoint.json
The non-executing checkpoint verifier passed, including the exact 12-file
addon set, ZIP path checks, license notices and artifact hashes. Its local
report is rayforge-windows-verification.json. Binaries and local reports
remain outside version control. No packaged application was launched.
Next gate
Prepare the checksummed acceptance kit from the passing verification report
and checkpoint manifest, then complete the isolated no-device desktop checklist described
in m1-no-device-acceptance.md. Neither setup nor automated acceptance closes
the manual packaged-app gate or authorizes hardware access.