From: Marc-André Lureau <marcandre.lureau(a)redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau(a)redhat.com>
Reviewed-by: Martin Kletzander <mkletzan(a)redhat.com>
---
src/qemu/qemu_capabilities.c | 15 +++++++++++----
src/qemu/qemu_capabilities.h | 3 ++-
src/qemu/qemu_rdp.c | 11 +++++++++++
src/qemu/qemu_rdp.h | 2 ++
src/qemu/qemu_validate.c | 3 ++-
.../qemu_10.0.0-q35.x86_64+amdsev.xml | 1 +
tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml | 1 +
.../qemu_10.0.0-tcg.x86_64+amdsev.xml | 1 +
tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_10.0.0.s390x.xml | 1 +
.../domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml | 1 +
tests/domaincapsdata/qemu_10.0.0.x86_64.xml | 1 +
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 1 +
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 1 +
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 1 +
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml | 1 +
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 1 +
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_7.2.0.ppc.xml | 1 +
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 1 +
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 1 +
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 1 +
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 1 +
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_8.1.0.s390x.xml | 1 +
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 1 +
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 1 +
.../qemu_8.2.0-tcg-virt.loongarch64.xml | 1 +
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_8.2.0-virt.aarch64.xml | 1 +
.../qemu_8.2.0-virt.loongarch64.xml | 1 +
tests/domaincapsdata/qemu_8.2.0.aarch64.xml | 1 +
tests/domaincapsdata/qemu_8.2.0.armv7l.xml | 1 +
tests/domaincapsdata/qemu_8.2.0.s390x.xml | 1 +
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 1 +
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 1 +
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_9.0.0.sparc.xml | 1 +
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 1 +
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 1 +
.../qemu_9.1.0-tcg-virt.riscv64.xml | 1 +
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_9.1.0-virt.riscv64.xml | 1 +
tests/domaincapsdata/qemu_9.1.0.s390x.xml | 1 +
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_9.2.0-hvf.aarch64+hvf.xml | 1 +
.../qemu_9.2.0-q35.x86_64+amdsev.xml | 1 +
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 1 +
.../qemu_9.2.0-tcg.x86_64+amdsev.xml | 1 +
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_9.2.0.s390x.xml | 1 +
tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml | 1 +
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 1 +
tests/testutilsqemu.c | 6 ++++++
59 files changed, 87 insertions(+), 6 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index ca99e61896..2c137bb663 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -6475,7 +6475,8 @@ virQEMUCapsFillDomainDeviceDiskCaps(virQEMUCaps *qemuCaps,
void
-virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUCaps *qemuCaps,
+virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUDriverConfig *cfg,
+ virQEMUCaps *qemuCaps,
virDomainCapsDeviceGraphics *dev)
{
dev->supported = VIR_TRISTATE_BOOL_YES;
@@ -6489,8 +6490,14 @@ virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUCaps *qemuCaps,
VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_SPICE);
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_EGL_HEADLESS))
VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS);
- if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DISPLAY_DBUS))
- VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_DBUS);
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DISPLAY_DBUS)) {
+ VIR_DOMAIN_CAPS_ENUM_SET(dev->type,
+ VIR_DOMAIN_GRAPHICS_TYPE_DBUS);
+ if (qemuRdpAvailable(cfg->qemuRdpName)) {
+ VIR_DOMAIN_CAPS_ENUM_SET(dev->type,
+ VIR_DOMAIN_GRAPHICS_TYPE_RDP);
+ }
+ }
}
@@ -6974,7 +6981,7 @@ virQEMUCapsFillDomainCaps(virQEMUDriverConfig *cfg,
virQEMUCapsFillDomainCPUCaps(qemuCaps, hostarch, domCaps);
virQEMUCapsFillDomainMemoryBackingCaps(qemuCaps, memoryBacking);
virQEMUCapsFillDomainDeviceDiskCaps(qemuCaps, domCaps->machine, disk);
- virQEMUCapsFillDomainDeviceGraphicsCaps(qemuCaps, graphics);
+ virQEMUCapsFillDomainDeviceGraphicsCaps(cfg, qemuCaps, graphics);
virQEMUCapsFillDomainDeviceVideoCaps(qemuCaps, video);
virQEMUCapsFillDomainDeviceHostdevCaps(qemuCaps, hostdev);
virQEMUCapsFillDomainDeviceRNGCaps(qemuCaps, rng);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 733b84029d..df63fe51ae 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -876,7 +876,8 @@ int virQEMUCapsFillDomainCaps(virQEMUDriverConfig *cfg,
void virQEMUCapsFillDomainMemoryBackingCaps(virQEMUCaps *qemuCaps,
virDomainCapsMemoryBacking *memoryBacking);
-void virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUCaps *qemuCaps,
+void virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUDriverConfig *cfg,
+ virQEMUCaps *qemuCaps,
virDomainCapsDeviceGraphics *dev);
void virQEMUCapsFillDomainDeviceVideoCaps(virQEMUCaps *qemuCaps,
diff --git a/src/qemu/qemu_rdp.c b/src/qemu/qemu_rdp.c
index 97eb772abb..984795d599 100644
--- a/src/qemu/qemu_rdp.c
+++ b/src/qemu/qemu_rdp.c
@@ -411,3 +411,14 @@ qemuRdpSetCredentials(virDomainObj *vm,
"SetCredentials",
args);
}
+
+
+bool
+qemuRdpAvailable(const char *helper)
+{
+ g_autoptr(qemuRdp) rdp = NULL;
+
+ rdp = qemuRdpNewForHelper(helper);
+
+ return rdp && qemuRdpHasFeature(rdp, QEMU_RDP_FEATURE_DBUS_ADDRESS);
+}
diff --git a/src/qemu/qemu_rdp.h b/src/qemu/qemu_rdp.h
index 6af90b06d2..2485a49de4 100644
--- a/src/qemu/qemu_rdp.h
+++ b/src/qemu/qemu_rdp.h
@@ -42,6 +42,8 @@ struct _qemuRdp {
guint leaving_id;
};
+bool qemuRdpAvailable(const char *helper);
+
qemuRdp *qemuRdpNew(void);
qemuRdp *qemuRdpNewForHelper(const char *helper);
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 89dee51526..19af0f0209 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -4513,9 +4513,10 @@ qemuValidateDomainDeviceDefGraphics(const virDomainGraphicsDef
*graphics,
virQEMUDriver *driver,
virQEMUCaps *qemuCaps)
{
+ g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
virDomainCapsDeviceGraphics graphicsCaps = { 0 };
- virQEMUCapsFillDomainDeviceGraphicsCaps(qemuCaps, &graphicsCaps);
+ virQEMUCapsFillDomainDeviceGraphicsCaps(cfg, qemuCaps, &graphicsCaps);
if (!VIR_DOMAIN_CAPS_ENUM_IS_SET(graphicsCaps.type, graphics->type)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
diff --git a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml
b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml
index d000e4296e..b7fa8daa15 100644
--- a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml
+++ b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml
@@ -697,6 +697,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml
index 73cb50e7b6..e1ff01a7a8 100644
--- a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml
@@ -1558,6 +1558,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml
b/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml
index 7d7e77cace..d8a6fe8354 100644
--- a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml
+++ b/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml
@@ -1666,6 +1666,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml
index 9a7d39c1f8..3ce5c0c412 100644
--- a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml
@@ -1666,6 +1666,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_10.0.0.s390x.xml
b/tests/domaincapsdata/qemu_10.0.0.s390x.xml
index 4af3c7ec53..d66240307e 100644
--- a/tests/domaincapsdata/qemu_10.0.0.s390x.xml
+++ b/tests/domaincapsdata/qemu_10.0.0.s390x.xml
@@ -253,6 +253,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>egl-headless</value>
<value>dbus</value>
</enum>
diff --git a/tests/domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml
b/tests/domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml
index fb06905b86..1f852adfae 100644
--- a/tests/domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml
+++ b/tests/domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml
@@ -697,6 +697,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_10.0.0.x86_64.xml
b/tests/domaincapsdata/qemu_10.0.0.x86_64.xml
index c06b9d1c51..66c4dfed9f 100644
--- a/tests/domaincapsdata/qemu_10.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_10.0.0.x86_64.xml
@@ -1558,6 +1558,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index 2c5129453e..8fa50785b7 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -1050,6 +1050,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index d4a567f5c6..2686989d64 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1849,6 +1849,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 6fa08af994..6ab3774452 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -1050,6 +1050,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 8bed31ad22..75565c4495 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -1017,6 +1017,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index cb7fd8811b..4e44dbaf65 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1797,6 +1797,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index a0f8b13f72..898b081df0 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -1017,6 +1017,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml
b/tests/domaincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml
index ce2e4f9f37..0fbbc8118c 100644
--- a/tests/domaincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml
@@ -1022,6 +1022,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index f9d27024fc..cfbe7e5dd1 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -1022,6 +1022,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index c7728ac454..805a636ec6 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -1502,6 +1502,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index c7728ac454..805a636ec6 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -1502,6 +1502,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_7.2.0.ppc.xml
b/tests/domaincapsdata/qemu_7.2.0.ppc.xml
index c6ef37b1af..21dbe730c5 100644
--- a/tests/domaincapsdata/qemu_7.2.0.ppc.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.ppc.xml
@@ -65,6 +65,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index f0d9493353..2b402f59c8 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -1022,6 +1022,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index b8c376cb14..c1f7b96465 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -1104,6 +1104,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index d3c9830a1a..4d8d4c7702 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -1597,6 +1597,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index e8df30ae07..7db506386c 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -1104,6 +1104,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index e80e175376..4c9b674c1e 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -1363,6 +1363,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index 62ffabb3e2..52f0d339bb 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -1619,6 +1619,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_8.1.0.s390x.xml
b/tests/domaincapsdata/qemu_8.1.0.s390x.xml
index 2ca3b1d2ae..be8bb70245 100644
--- a/tests/domaincapsdata/qemu_8.1.0.s390x.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.s390x.xml
@@ -342,6 +342,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>egl-headless</value>
<value>dbus</value>
</enum>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index 4117d926cb..8389909b74 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -1363,6 +1363,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index dfa88bcf96..dcb46e06ea 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -1364,6 +1364,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg-virt.loongarch64.xml
b/tests/domaincapsdata/qemu_8.2.0-tcg-virt.loongarch64.xml
index c9f01904cd..18979cf280 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg-virt.loongarch64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg-virt.loongarch64.xml
@@ -72,6 +72,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>dbus</value>
</enum>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 327cad253e..fae61e8955 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -1585,6 +1585,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_8.2.0-virt.aarch64.xml
b/tests/domaincapsdata/qemu_8.2.0-virt.aarch64.xml
index 224c619168..ce17865e24 100644
--- a/tests/domaincapsdata/qemu_8.2.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-virt.aarch64.xml
@@ -120,6 +120,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>egl-headless</value>
<value>dbus</value>
</enum>
diff --git a/tests/domaincapsdata/qemu_8.2.0-virt.loongarch64.xml
b/tests/domaincapsdata/qemu_8.2.0-virt.loongarch64.xml
index ed3637eaec..8f4ebbc107 100644
--- a/tests/domaincapsdata/qemu_8.2.0-virt.loongarch64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-virt.loongarch64.xml
@@ -76,6 +76,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>dbus</value>
</enum>
diff --git a/tests/domaincapsdata/qemu_8.2.0.aarch64.xml
b/tests/domaincapsdata/qemu_8.2.0.aarch64.xml
index 224c619168..ce17865e24 100644
--- a/tests/domaincapsdata/qemu_8.2.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.aarch64.xml
@@ -120,6 +120,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>egl-headless</value>
<value>dbus</value>
</enum>
diff --git a/tests/domaincapsdata/qemu_8.2.0.armv7l.xml
b/tests/domaincapsdata/qemu_8.2.0.armv7l.xml
index 7182dca796..ee653c0c49 100644
--- a/tests/domaincapsdata/qemu_8.2.0.armv7l.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.armv7l.xml
@@ -69,6 +69,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_8.2.0.s390x.xml
b/tests/domaincapsdata/qemu_8.2.0.s390x.xml
index 57ac07c153..78f91736d6 100644
--- a/tests/domaincapsdata/qemu_8.2.0.s390x.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.s390x.xml
@@ -342,6 +342,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>egl-headless</value>
<value>dbus</value>
</enum>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index f8dbb717f1..97b3795b5a 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -1364,6 +1364,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index c5a653f57b..d55bc239a9 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -1364,6 +1364,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index 30876c5fef..48300b14f5 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -1514,6 +1514,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_9.0.0.sparc.xml
b/tests/domaincapsdata/qemu_9.0.0.sparc.xml
index e48cdd0ae5..c7862f5842 100644
--- a/tests/domaincapsdata/qemu_9.0.0.sparc.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.sparc.xml
@@ -60,6 +60,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index 6c141e1cb9..52f01a7cfc 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -1364,6 +1364,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index 9445d999b5..5449244329 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -1500,6 +1500,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg-virt.riscv64.xml
b/tests/domaincapsdata/qemu_9.1.0-tcg-virt.riscv64.xml
index b4327bf878..b236ecbac4 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg-virt.riscv64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg-virt.riscv64.xml
@@ -82,6 +82,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index 61d92550c1..927a5a6d36 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -1619,6 +1619,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_9.1.0-virt.riscv64.xml
b/tests/domaincapsdata/qemu_9.1.0-virt.riscv64.xml
index 73e5ba1bc3..1399b980fd 100644
--- a/tests/domaincapsdata/qemu_9.1.0-virt.riscv64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-virt.riscv64.xml
@@ -71,6 +71,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_9.1.0.s390x.xml
b/tests/domaincapsdata/qemu_9.1.0.s390x.xml
index be46cfe6ba..b73e0d0688 100644
--- a/tests/domaincapsdata/qemu_9.1.0.s390x.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.s390x.xml
@@ -205,6 +205,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>egl-headless</value>
<value>dbus</value>
</enum>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 5e87efe5e8..dc2521135c 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -1500,6 +1500,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_9.2.0-hvf.aarch64+hvf.xml
b/tests/domaincapsdata/qemu_9.2.0-hvf.aarch64+hvf.xml
index 644a0ef44a..b8615a0986 100644
--- a/tests/domaincapsdata/qemu_9.2.0-hvf.aarch64+hvf.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-hvf.aarch64+hvf.xml
@@ -118,6 +118,7 @@
<graphics supported='yes'>
<enum name='type'>
<value>vnc</value>
+ <value>rdp</value>
<value>dbus</value>
</enum>
</graphics>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml
b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml
index 11a8cd0b97..62c61b9de5 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml
@@ -697,6 +697,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index 98c522f0fc..49f5e64bfa 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -1558,6 +1558,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml
b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml
index f7668e911e..265680b197 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml
@@ -1666,6 +1666,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index 7ccdc11412..884228db72 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -1666,6 +1666,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_9.2.0.s390x.xml
b/tests/domaincapsdata/qemu_9.2.0.s390x.xml
index e13809bc63..605a3af5c7 100644
--- a/tests/domaincapsdata/qemu_9.2.0.s390x.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.s390x.xml
@@ -205,6 +205,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>egl-headless</value>
<value>dbus</value>
</enum>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml
b/tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml
index d1143ad68f..ee82f2905b 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml
@@ -697,6 +697,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index 0b5162781e..d587c1316a 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -1558,6 +1558,7 @@
<enum name='type'>
<value>sdl</value>
<value>vnc</value>
+ <value>rdp</value>
<value>spice</value>
<value>egl-headless</value>
<value>dbus</value>
diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c
index 66c05d7b46..ecd761dff0 100644
--- a/tests/testutilsqemu.c
+++ b/tests/testutilsqemu.c
@@ -52,6 +52,12 @@ bool virTPMHasSwtpm(void)
}
+/* Enough to tell capabilities code that qemu-rdp is usable */
+bool qemuRdpAvailable(const char *helper G_GNUC_UNUSED)
+{
+ return true;
+}
+
bool
virTPMSwtpmSetupCapsGet(virTPMSwtpmSetupFeature cap)
--
2.47.0