Compare commits

..

No commits in common. "7a405ad263ebadb4954473b2ec4f1c5ea6d66b67" and "bd69b183ad1bde33a7affdb702ef8c43b548d9b8" have entirely different histories.

2 changed files with 6 additions and 33 deletions

View File

@ -6,28 +6,12 @@ machine and no GitHub, by booting a real Windows VM inside a container
hood, no license key needed for the eval install it fetches automatically) hood, no license key needed for the eval install it fetches automatically)
and driving the whole build over a shared folder. and driving the whole build over a shared folder.
**Status: has actually been run.** Two real environment issues hit and **Status: written, not yet run against a real boot.** Everything here
fixed so far (both already applied in this directory, see "Confirmed follows dockur/windows's and WiX's documented mechanics, but there's no
issues hit" below); Windows install itself was still in progress as of KVM/Windows available in the environment this was authored in to actually
last check. `oem/install.bat` onward (MSYS2/GTK4/WiX provisioning, the exercise it end to end. Treat the first run as a debugging session, not a
actual .msi packaging) has NOT been reached/exercised yet — treat that push-button success — watch it happen at http://localhost:8006 (dockur's
part as still a debugging session, not a push-button success. Watch it noVNC viewer) so you can see where it's stuck if it stalls.
happen at http://localhost:8006 (dockur's noVNC viewer) if it stalls.
## Confirmed issues hit (on Fedora + BTRFS)
- **SELinux blocks the bind mounts** ("Storage folder (/storage) is not
writeable!") — fixed with `:Z` on every volume in `docker-compose.yml`.
Harmless no-op on a host without SELinux.
- **BTRFS + QEMU disk images boot-loop Windows Setup for hours** with no
error, just the same boot-manager log lines repeating forever and the
disk barely growing — dockur/windows warns about this itself
("you are using the BTRFS filesystem for /storage, this might
introduce issues with Windows Setup!"), and on this host it wasn't
idle chatter. Fixed by disabling copy-on-write on `storage/` before
the VM ever writes to it (`chattr +C`, only affects files created
after it's set, so it needs an empty directory) — `build_windows.sh`
now does this itself on every run. No-op on a non-btrfs filesystem.
## How it fits together ## How it fits together

View File

@ -30,17 +30,6 @@ fi
command -v docker >/dev/null 2>&1 || { echo "docker not found." >&2; exit 1; } command -v docker >/dev/null 2>&1 || { echo "docker not found." >&2; exit 1; }
mkdir -p storage oem shared/src shared/dist "$OUT_DIR" mkdir -p storage oem shared/src shared/dist "$OUT_DIR"
# dockur/windows itself warns about this ("you are using the BTRFS
# filesystem for /storage, this might introduce issues with Windows
# Setup!") and it's not idle: confirmed on this host as a genuine
# multi-hour Windows Setup boot-loop (repeating the same boot-manager
# log lines forever, disk barely growing) -- QEMU disk images on a
# copy-on-write filesystem are a known bad combination. +C only takes
# effect for files created AFTER it's set on an empty directory, so
# this only helps on a fresh/emptied storage/; it's a no-op (harmless,
# chattr just errors quietly) on a non-btrfs filesystem or an
# already-populated storage/ from a previous run.
chattr +C storage 2>/dev/null || true
echo "==> starting the Windows build VM (docker compose up -d)" echo "==> starting the Windows build VM (docker compose up -d)"
docker compose up -d docker compose up -d