SPICE support was dropped in RHEL 9!

If you are using Rocky Linux 9 or any other RHEL 9 distro as your workstation and using KVM, you are stuck with VNC as SPICE support was removed.

So in short:

SPICE has been deprecated for qemu and has been removed in RHEL 9. We still do have SPICE client support for RHV - which is shipped in the RHV-Tools repos on RHEL 9.
Unfortunately I don’t know if and how oVirt is solving this for RHEL 9. Anyways the RHV-tools repo will be supported until RHV is EOLed in 2026.

Why no SPICE:

  1. Due to some license restrictions around H.264 codecs we are not able to provide a Streaming solution which is needed for modern workloads (as all drivers are using 3D today). Also vGPU support is not possible without this.
  2. There are quite some 3rd party solutions that already have a proper implementation (licensed software due to H.264 restrictions unfortunately).
  3. For console access and local acceleration VNC is capable of doing the job - and VNC is also used for OpenStack and KubeVirt and they are both not interested in using SPICE instead.

Mainly due to (1) and (3) we decided to deprecate our work on SPICE.

Here is more info: https://bugzilla.redhat.com/show_bug.cgi?id=2030592

I rebuilt the QEMU KVM stack with SPICE enabled for our own purposes:
https://copr.fedorainfracloud.org/coprs/ligenix/enterprise-qemu-spice/

6 Likes

Since I rebuilt the spice stack with phodav 3.0, there has been a virt-manager core dump due to using libsoup2 and libsoup3 in the same process which is not supported. This is now fixed.

Hi, ligenix!
I used this repo ligenix/enterprise-qemu-spice Copr for my RockyLinux 9 distro, but I meet some problems on virt-manager when I open windows10 guest os on virt-manager config spice server and QXL driver.
I do the steps on new installed Rocky Linux 9:

  1. dnf update -y
  2. dnf -y copr enable ligenix/enterprise-qemu-spice
  3. dnf install qemu-kvm-ui-spice
  4. dnf install virt-manager
  5. virt-manager import my exists win10 guest os disk img and config is use spice display server&QXL driver
  6. boot win10 guest os, then prompt “could not get a reference to type class”

I’m struggling to find a way to display graphics using spice on RockyLinux 9.
I think your copr repository should be a good solution, but unfortunately I can’t use it perfectly.
Can you help me with a solution to the problem I’m having?

Hi voydomn,

I had to upgrade a set of packages in order to provide spice support with the last librairies versions. So a dnf update is required after enabling the repository.

This point is now precised in the install instructions.

Tell me, if it’s OK for you after upgrading.

Yes, spice seems to be working normally, it should be because you have updated the package in the repository.
Currently the installation instructions and packages in your repository are working correctly.
I need to test the reason why the default network configured by virt-manager cannot be connected. At present, this is the only problem. I will try to find out the reason later.
Should I keep this repository enabled and dnf update? Or disable the repository after installing spice?
Finally there is a way to use spice in RockyLinux 9.
Thanks a lot ligenix!

Hi voydomn,

Thank you for this positive feedback.
Yes you can keep this repository enabled for updates.
The next step is to merge it into the upcoming Rocky Linux FastTrack Updates repository, but I have currently a bit of work to do to reach the standard quality level of this distro.

1 Like

Ok, I get it, thanks many!

Hello, ligenix.

Can you make qemu-kvm-block-gluster also available in you repo ligenix/enterprise-qemu-spice Copr ?
I’m using oVirt, dnf swap to packages in your other repo wants just kill all installation, though there’s qemu-block-gluster in it, but I can’t go with it

Hello psns,

Unfortunately, like SPICE, GluterFS and oVirt were left behind by Red Hat for RHEL 9. I pushed a rebuild wih qemu-block-gluster, depending on Gluster 11 but it breaks system updates. I have to reworking it a little more with epoch probably needs to be bumped.

Hi ligenix ! I rebuilt libsoup3, glib2 and virt-manager from your repo. When connecting to a virtual machine using virt-manager I get a double boot error with libsoup versions 2 and 3. Can you help ? You solved this problem in your repo.

Hi smusich ! Sure, I seeked for it during hours by parsing the crossing library dependencies one by one. You have to rebuild libosinfo also, all the packges I modified for spice have a specific _spice tag to be properly identified.

As previously assumed, I had to change the epoch from 17 to 18 to bypass the Obsoletes directive placed on the block-gluster subpackage, moreover I did the same for the block-iscsi and block-ssh subpackages to fully revert qemu-kvm to RHEL 8 state.

Hello, ligenix!
I occur a problem for use virt-manager that config ssh rsa key of root user to connect remote libvirt server,
the connection is ok, I can manager the VMs that install in machine1 from machine2, but it prompts like “Spice connect error not router to host” when I open display windows for VM use virt-manager application on machine2.

Hello Voydomn!
I understand you want to view a VM from a remote hypervisor with virt-manager, right?
In this case, ssh is used to enable a connection, so prompts like "Spice connect error not router to host” may be an ssh error. Have you tested ssh connections between your hosts to first validate that your ssh connection is correct?

Sorry! you may be right, it seems ssh connect error, I solved it by re import vm instances
Do you have other contact method like Telegram or Gmail? if you have it, I can reply to you as soon as possible if I find any other issues about spice on your repo or spice

Hello Voydomn!
Although My email is mentioned in the COPR repository, I’m a Rocky Linux user on a daily basis, so you can use this thread as long as it is open to share problems and solutions.

Have been building QEMU KVM stack with SPICE support for a long time because the main point for me is to run oVIrt in our data center and use my own desktops (~20 + ~100 VMs) remotely. Need working cut&paste between those VMs too. KVM is a no-go because it is slow and reminds me of those VGA/EGA tubes with IBM XT.

Testing the functionality of the SPICE stack with oVirt test instance on top of my oVirt main instance.

Really an awful decision to drop SPICE because have based whole my infra relying on it…

You should tell Red Hat what you think of their decision. Whether you can impress them is up to you.