For Linux clean-machine validation, the preferred local path is a disposable Debian VM under qemu/kvm, not the long-lived host workstation and not a container.
For Phase 9C, the preferred handoff path is now OracleTestVMs with the
debian-13-gnome-wayland profile backed by libvirt. The local standalone
libvirt flow below remains useful when you want a purely local smoke
environment outside the managed OracleTestVMs path.
Use the repo-owned helper:
./scripts/linux/otvm-appimage-validation.sh createThat flow:
- creates a fresh Debian 13 GNOME Wayland lease through
OracleTestVMs - expects
OracleTestVMsto be configured for libvirt-backed Debian leases - uploads the latest built
ObjcMarkdownAppImage - uploads a small set of sample Markdown documents:
Resources/sample-commonmark.mdInlineStyleDemo.mdTableRenderDemo.mdREADME.md
- writes handoff instructions to
dist/otvm/linux/<lease-id>/handoff.txt
The handoff includes:
- SSH connection command
- RDP host, username, and password
- the guest payload directory under
/home/tester/ObjcMarkdownValidation
Destroy a finished lease with:
./scripts/linux/otvm-appimage-validation.sh destroy <lease-id>Two levels are useful:
- quick visual smoke test: boot a Debian live ISO and attach validation media containing the AppImage
- repeatable release validation: install Debian once into a qcow2 base image, then boot a fresh overlay qcow2 for every test run
The live ISO is good for answering "does this AppImage launch on a clean Debian desktop?" quickly. The installed base plus overlays is the better long-term release-validation path.
run-debian-appimage-validation.sh supports four main flows:
create-mediaBuildsdist/linux-validation/media/objcmarkdown-validation.isocontaining the AppImage plus guest helper scripts.boot-liveBoots a disposable Debian live session with that validation ISO attached.create-baseBoots the Debian ISO with a writable qcow2 disk so you can install Debian once.boot-overlayBoots a transient overlay qcow2 on top of the installed base image and forwards host TCP port2222to guest port22.
The script defaults match this machine:
- libvirt URI:
qemu:///session - live ISO:
~/Downloads/debian-live-13.4.0-amd64-gnome.iso - base image path:
dist/linux-validation/vms/debian13-base.qcow2
Create validation media:
./scripts/linux/run-debian-appimage-validation.sh create-mediaBoot the live ISO:
./scripts/linux/run-debian-appimage-validation.sh boot-liveInside the guest, run:
bash /run/media/$USER/OBJCMD_VALIDATION/validate-appimage-guest.sh --smoke-guiThat performs the repo-side packaged runtime inspection pass, then launches the AppImage briefly and captures a screenshot when a guest screenshot tool is available.
Create the base install VM once:
./scripts/linux/run-debian-appimage-validation.sh create-baseAfter installing Debian into the base disk, recommended one-time guest prep is:
- install
openssh-serverif you want host-side SSH access into overlay guests - confirm the desktop environment and display settings match the release-validation target
- shut the VM down cleanly and keep the base qcow2 unchanged afterward
Then launch a disposable overlay for each run:
./scripts/linux/run-debian-appimage-validation.sh boot-overlayIf the base guest has SSH enabled, the guest will be reachable from the host at:
ssh -p 2222 <guest-user>@127.0.0.1Inside the guest, run the same validate-appimage-guest.sh helper from the mounted validation media.