Skip to content

SynVirt — Upgrade Notes

Synced read-only from /home/synnet/mirrors/synvirt-product/docs/UPGRADE_NOTES.md. Edit at the source, not here.

Operator-facing notes for upgrading existing SynVirt appliances when a new release introduces a change that the standard binary swap does not fully apply (extra system packages, host-side state migrations, etc.).

New appliances built from the ISO that introduces a change get the upgrade automatically; only previously-installed hosts need the manual steps below.


0.9.0-alpha.2 — SPICE removal (introduced 2026-05-01)

Section titled “0.9.0-alpha.2 — SPICE removal (introduced 2026-05-01)”

SPICE support is removed entirely in 0.9.0-alpha.2. The web console is now VNC-only via noVNC.

VMs whose domain XML still carries <graphics type='spice'>, <channel type='spicevmc'>, <redirdev bus='usb' type='spicevmc'>, or <video><model type='qxl'/> keep starting under libvirt — these elements are accepted at parse time and QEMU runs the VM. What changes is that the dashboard no longer offers a SPICE console: the only “Open console” button mints a VNC ticket and opens a noVNC session.

If the existing VM does not also carry a VNC listener, that button fails fast with vncdisplay returned no display. Two refresh paths:

  1. Re-define the VM by hand.

    Terminal window
    virsh dumpxml <name> > /tmp/<name>.xml
    # edit /tmp/<name>.xml:
    # • remove every <graphics type='spice'…>, <channel type='spicevmc'…>,
    # <redirdev …>, <redirfilter…>
    # • change <video><model type='qxl' …/> to <model type='virtio'/>
    # (or 'std-vga' for Win 9x / NT / 2000)
    # • add <graphics type='vnc' listen='127.0.0.1' port='-1'/>
    virsh define /tmp/<name>.xml
    virsh destroy <name>
    virsh start <name>
  2. Use the migrator’s video_migration pass.

    The migrator’s video_migration step (run during ingest, also exposed as a one-shot synvirt migrator refresh-video <name>) performs the same transformation idempotently for every VM in the host’s libvirt store. Running it on an upgraded host is the simplest path.

Existing guests with SPICE vdagent / spice-guest-tools installed are fine — those are guest-side packages and uninstalling them is optional. The shipping guest-tools.iso no longer carries spice-guest-tools.exe or spice-vdagent; only the SynVirt agent and virtio-win drivers are staged.

Once every VM is re-defined, the systemd RuntimeDirectory=synvirt/spice declaration on synvirt-daemon.service is dead weight. The 0.9.0-alpha.2 daemon unit drops the directive; systemctl daemon-reload

  • a daemon restart cleans up the empty /run/synvirt/spice/ mount on the next reboot.