From nobody Tue Feb 10 06:27:06 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1638455107; cv=none; d=zohomail.com; s=zohoarc; b=FrmtF0S/wX5Nk19FoUDsbPFzAQoZvMoTVSG/0+FE8lSaIloWUoBJuOpyPn+ZRcNh6FgcTn02Gp6sfcwdvRiVLJMbfoCKXj3Xn5WzWewe/yrEkzinlSbWJJ3cgAtFk5CzlNMmBmWGwzE6jR1UTh8+Sz/dndbLW25z+Hn6Jmr0fEU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638455107; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=/XZrV72ro2+7M3eYR/VbrIh7D6B/Hnnp4qRqKaZZUWY=; b=B6TDzf7i4zdZ5CemYrIm0czPOKSZ+NypmeEtYENDkfjqHMkLDK9Twk0n9CVkycpCOOSwqgLwzit2eVJwgwqfgaqJpQhfrnFjcrMKAe0zBOlim0ot8LG3JgWXqqaV+XHMvZXMz0/9gxcTv8KnwgmO8s0NT/Mq5vtIeKL7re7ilxY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1638455107860214.43289259998653; Thu, 2 Dec 2021 06:25:07 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-100-2gvhhQGaMw2pul4CQZtFsw-1; Thu, 02 Dec 2021 09:25:03 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 053323FE8; Thu, 2 Dec 2021 14:24:39 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C5B905F4F7; Thu, 2 Dec 2021 14:24:38 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 923661809CBA; Thu, 2 Dec 2021 14:24:38 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 1B2EOap2027031 for ; Thu, 2 Dec 2021 09:24:36 -0500 Received: by smtp.corp.redhat.com (Postfix) id B3F695F4E7; Thu, 2 Dec 2021 14:24:36 +0000 (UTC) Received: from localhost (unknown [10.2.14.11]) by smtp.corp.redhat.com (Postfix) with ESMTP id C0ECD56A84; Thu, 2 Dec 2021 14:24:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1638455106; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=/XZrV72ro2+7M3eYR/VbrIh7D6B/Hnnp4qRqKaZZUWY=; b=BgnpODyi82++9cF3YhyXRMv20rlwo2OeCQHQs6lAVTcc4FhLBmA8najjhpM8+5JraZNgcS 94hpWpl1YFovC3daHaNDUxCpvLdhziHmzjeSSjuUQ6Jkc+2DocjrZx0cAloOrnLbpr/pR7 WjqEJrwqiSNeaOPd3chUOJzBKHY3pZw= X-MC-Unique: 2gvhhQGaMw2pul4CQZtFsw-1 From: marcandre.lureau@redhat.com To: libvir-list@redhat.com Subject: [libvirt PATCH v2 03/15] conf: add Date: Thu, 2 Dec 2021 18:23:59 +0400 Message-Id: <20211202142411.1718032-4-marcandre.lureau@redhat.com> In-Reply-To: <20211202142411.1718032-1-marcandre.lureau@redhat.com> References: <20211202142411.1718032-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: mprivozn@redhat.com, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1638455108353100004 From: Marc-Andr=C3=A9 Lureau Signed-off-by: Marc-Andr=C3=A9 Lureau --- docs/schemas/basictypes.rng | 7 ++ docs/schemas/domaincommon.rng | 33 ++++++++ src/conf/domain_conf.c | 78 ++++++++++++++++++- src/conf/domain_conf.h | 8 ++ src/conf/domain_validate.c | 9 ++- src/libxl/libxl_conf.c | 1 + src/qemu/qemu_capabilities.c | 2 + src/qemu/qemu_command.c | 2 + src/qemu/qemu_domain.c | 1 + src/qemu/qemu_driver.c | 6 +- src/qemu/qemu_hotplug.c | 1 + src/qemu/qemu_process.c | 4 + src/qemu/qemu_validate.c | 1 + src/vmx/vmx.c | 1 + .../domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 1 + .../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 1 + .../graphics-dbus-address.xml | 35 +++++++++ tests/qemuxml2argvdata/graphics-dbus-p2p.xml | 33 ++++++++ tests/qemuxml2argvdata/graphics-dbus.xml | 33 ++++++++ .../graphics-dbus-address.xml | 1 + .../qemuxml2xmloutdata/graphics-dbus-p2p.xml | 1 + tests/qemuxml2xmloutdata/graphics-dbus.xml | 1 + tests/qemuxml2xmltest.c | 10 +++ 24 files changed, 267 insertions(+), 4 deletions(-) create mode 100644 tests/qemuxml2argvdata/graphics-dbus-address.xml create mode 100644 tests/qemuxml2argvdata/graphics-dbus-p2p.xml create mode 100644 tests/qemuxml2argvdata/graphics-dbus.xml create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-address.xml create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-p2p.xml create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus.xml diff --git a/docs/schemas/basictypes.rng b/docs/schemas/basictypes.rng index a221ff6295c0..ae4d5682229c 100644 --- a/docs/schemas/basictypes.rng +++ b/docs/schemas/basictypes.rng @@ -220,6 +220,13 @@ =20 + + + + .+ + + + diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index f01b7a64704b..1dba199db7ec 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -3996,6 +3996,39 @@ + + + dbus + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rdp diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index bdcc3dc2c12f..11eb1422d8c1 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -911,6 +911,7 @@ VIR_ENUM_IMPL(virDomainGraphics, "desktop", "spice", "egl-headless", + "dbus", ); =20 VIR_ENUM_IMPL(virDomainGraphicsListen, @@ -1891,6 +1892,11 @@ void virDomainGraphicsDefFree(virDomainGraphicsDef *= def) g_free(def->data.egl_headless.rendernode); break; =20 + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: + g_free(def->data.dbus.address); + g_free(def->data.dbus.rendernode); + break; + case VIR_DOMAIN_GRAPHICS_TYPE_LAST: break; } @@ -12866,6 +12872,39 @@ virDomainGraphicsDefParseXMLEGLHeadless(virDomainG= raphicsDef *def, } =20 =20 +static int +virDomainGraphicsDefParseXMLDBus(virDomainGraphicsDef *def, + xmlNodePtr node, + xmlXPathContextPtr ctxt) +{ + VIR_XPATH_NODE_AUTORESTORE(ctxt) + xmlNodePtr cur; + virTristateBool p2p; + + if (virXMLPropTristateBool(node, "p2p", VIR_XML_PROP_NONE, + &p2p) < 0) + return -1; + def->data.dbus.p2p =3D p2p =3D=3D VIR_TRISTATE_BOOL_YES; + + def->data.dbus.address =3D virXMLPropString(node, "address"); + def->data.dbus.fromConfig =3D def->data.dbus.address !=3D NULL; + + ctxt->node =3D node; + + if ((cur =3D virXPathNode("./gl", ctxt))) { + def->data.dbus.rendernode =3D virXMLPropString(cur, + "rendernode"); + + if (virXMLPropTristateBool(cur, "enable", + VIR_XML_PROP_REQUIRED, + &def->data.dbus.gl) < 0) + return -1; + } + + return 0; +} + + virDomainGraphicsDef * virDomainGraphicsDefNew(virDomainXMLOption *xmlopt) { @@ -12940,6 +12979,10 @@ virDomainGraphicsDefParseXML(virDomainXMLOption *x= mlopt, case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS: virDomainGraphicsDefParseXMLEGLHeadless(def, node, ctxt); break; + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: + if (virDomainGraphicsDefParseXMLDBus(def, node, ctxt) < 0) + goto error; + break; case VIR_DOMAIN_GRAPHICS_TYPE_LAST: break; } @@ -26622,6 +26665,27 @@ virDomainGraphicsDefFormat(virBuffer *buf, def->data.egl_headless.rendernode); virBufferAddLit(buf, "/>\n"); break; + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: + if (def->data.dbus.p2p) + virBufferAddLit(buf, " p2p=3D'yes'"); + if (def->data.dbus.address) + virBufferAsprintf(buf, " address=3D'%s'", + def->data.dbus.address); + + if (!def->data.dbus.gl) + break; + + if (!children) { + virBufferAddLit(buf, ">\n"); + virBufferAdjustIndent(buf, 2); + children =3D true; + } + + virBufferAsprintf(buf, "data.dbus.gl)); + virBufferEscapeString(buf, " rendernode=3D'%s'", def->data.dbus.re= ndernode); + virBufferAddLit(buf, "/>\n"); + break; case VIR_DOMAIN_GRAPHICS_TYPE_LAST: break; } @@ -31336,6 +31400,11 @@ virDomainGraphicsDefHasOpenGL(const virDomainDef *= def) case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS: return true; =20 + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: + if (graphics->data.dbus.gl =3D=3D VIR_TRISTATE_BOOL_YES) + return true; + + continue; case VIR_DOMAIN_GRAPHICS_TYPE_LAST: break; } @@ -31351,7 +31420,8 @@ virDomainGraphicsSupportsRenderNode(const virDomain= GraphicsDef *graphics) bool ret =3D false; =20 if (graphics->type =3D=3D VIR_DOMAIN_GRAPHICS_TYPE_SPICE || - graphics->type =3D=3D VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS) + graphics->type =3D=3D VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS || + graphics->type =3D=3D VIR_DOMAIN_GRAPHICS_TYPE_DBUS) ret =3D true; =20 return ret; @@ -31370,6 +31440,9 @@ virDomainGraphicsGetRenderNode(const virDomainGraph= icsDef *graphics) case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS: ret =3D graphics->data.egl_headless.rendernode; break; + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: + ret =3D graphics->data.dbus.rendernode; + break; case VIR_DOMAIN_GRAPHICS_TYPE_SDL: case VIR_DOMAIN_GRAPHICS_TYPE_VNC: case VIR_DOMAIN_GRAPHICS_TYPE_RDP: @@ -31391,6 +31464,9 @@ virDomainGraphicsNeedsAutoRenderNode(const virDomai= nGraphicsDef *graphics) if (graphics->type =3D=3D VIR_DOMAIN_GRAPHICS_TYPE_SPICE && graphics->data.spice.gl !=3D VIR_TRISTATE_BOOL_YES) return false; + if (graphics->type =3D=3D VIR_DOMAIN_GRAPHICS_TYPE_DBUS && + graphics->data.dbus.gl !=3D VIR_TRISTATE_BOOL_YES) + return false; =20 if (virDomainGraphicsGetRenderNode(graphics)) return false; diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index c0c07ea6ba24..384b85db3a2c 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1733,6 +1733,7 @@ typedef enum { VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP, VIR_DOMAIN_GRAPHICS_TYPE_SPICE, VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS, + VIR_DOMAIN_GRAPHICS_TYPE_DBUS, =20 VIR_DOMAIN_GRAPHICS_TYPE_LAST } virDomainGraphicsType; @@ -1916,6 +1917,13 @@ struct _virDomainGraphicsDef { struct { char *rendernode; } egl_headless; + struct { + bool p2p; + char *address; + char *rendernode; + virTristateBool gl; + bool fromConfig; /* true if the @address is config file ori= ginated */ + } dbus; } data; /* nListens, listens, and *port are only useful if type is vnc, * rdp, or spice. They've been extracted from the union only to diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index a4271f12479f..c13472516fec 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -2240,8 +2240,15 @@ static int virDomainGraphicsDefValidate(const virDomainDef *def, const virDomainGraphicsDef *graphics) { - if (graphics->type =3D=3D VIR_DOMAIN_GRAPHICS_TYPE_VNC) + if (graphics->type =3D=3D VIR_DOMAIN_GRAPHICS_TYPE_VNC) { return virDomainEnsureAudioID(def, graphics->data.vnc.audioId); + } else if (graphics->type =3D=3D VIR_DOMAIN_GRAPHICS_TYPE_DBUS) { + if (graphics->data.dbus.p2p && graphics->data.dbus.address) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("D-Bus p2p with an address is not supported")= ); + return -1; + } + } =20 return 0; } diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index f37c2281390b..398f29ad3257 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -1551,6 +1551,7 @@ libxlMakeVfb(virPortAllocatorRange *graphicsports, case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP: case VIR_DOMAIN_GRAPHICS_TYPE_SPICE: case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS: + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: case VIR_DOMAIN_GRAPHICS_TYPE_LAST: break; } diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 495f7171da1c..12d3ca8c903d 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -6081,6 +6081,8 @@ 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_H= EADLESS); + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DISPLAY_DBUS)) + VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_DBUS); } =20 =20 diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index c47998aabdf1..0fb55fc94365 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -8672,6 +8672,7 @@ qemuBuildGraphicsCommandLine(virQEMUDriverConfig *cfg, graphics) < 0) return -1; =20 + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: break; case VIR_DOMAIN_GRAPHICS_TYPE_RDP: case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP: @@ -10444,6 +10445,7 @@ qemuBuildCommandLineValidate(virQEMUDriver *driver, case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS: ++egl_headless; break; + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: case VIR_DOMAIN_GRAPHICS_TYPE_RDP: case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP: case VIR_DOMAIN_GRAPHICS_TYPE_LAST: diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 2c10f185f86c..32cb1d8713d5 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -3453,6 +3453,7 @@ qemuDomainDefSuggestDefaultAudioBackend(virQEMUDriver= *driver, case VIR_DOMAIN_GRAPHICS_TYPE_RDP: case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP: case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS: + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: break; case VIR_DOMAIN_GRAPHICS_TYPE_LAST: default: diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index b88fb470323a..006b893b80bf 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -15668,12 +15668,13 @@ qemuDomainOpenGraphics(virDomainPtr dom, case VIR_DOMAIN_GRAPHICS_TYPE_SPICE: protocol =3D "spice"; break; + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: case VIR_DOMAIN_GRAPHICS_TYPE_SDL: case VIR_DOMAIN_GRAPHICS_TYPE_RDP: case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP: case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("Can only open VNC or SPICE graphics backends, no= t %s"), + _("Can only open VNC, SPICE or D-Bus p2p graphics b= ackends, not %s"), virDomainGraphicsTypeToString(vm->def->graphics[idx= ]->type)); goto endjob; case VIR_DOMAIN_GRAPHICS_TYPE_LAST: @@ -15736,12 +15737,13 @@ qemuDomainOpenGraphicsFD(virDomainPtr dom, case VIR_DOMAIN_GRAPHICS_TYPE_SPICE: protocol =3D "spice"; break; + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: case VIR_DOMAIN_GRAPHICS_TYPE_SDL: case VIR_DOMAIN_GRAPHICS_TYPE_RDP: case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP: case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("Can only open VNC or SPICE graphics backends, no= t %s"), + _("Can only open VNC, SPICE or D-Bus p2p graphics b= ackends, not %s"), virDomainGraphicsTypeToString(vm->def->graphics[idx= ]->type)); goto cleanup; case VIR_DOMAIN_GRAPHICS_TYPE_LAST: diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 71c068619042..421ead96ecd5 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -4378,6 +4378,7 @@ qemuDomainChangeGraphics(virQEMUDriver *driver, case VIR_DOMAIN_GRAPHICS_TYPE_RDP: case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP: case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS: + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: virReportError(VIR_ERR_INTERNAL_ERROR, _("unable to change config on '%s' graphics type"),= type); break; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 6b83a571b916..53b5dcaff5d7 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -4782,6 +4782,7 @@ qemuProcessGraphicsReservePorts(virDomainGraphicsDef = *graphics, case VIR_DOMAIN_GRAPHICS_TYPE_RDP: case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP: case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS: + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: case VIR_DOMAIN_GRAPHICS_TYPE_LAST: break; } @@ -4821,6 +4822,7 @@ qemuProcessGraphicsAllocatePorts(virQEMUDriver *drive= r, case VIR_DOMAIN_GRAPHICS_TYPE_RDP: case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP: case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS: + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: case VIR_DOMAIN_GRAPHICS_TYPE_LAST: break; } @@ -4977,6 +4979,7 @@ qemuProcessGraphicsSetupListen(virQEMUDriver *driver, case VIR_DOMAIN_GRAPHICS_TYPE_RDP: case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP: case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS: + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: case VIR_DOMAIN_GRAPHICS_TYPE_LAST: break; } @@ -5281,6 +5284,7 @@ qemuProcessStartValidateGraphics(virDomainObj *vm) case VIR_DOMAIN_GRAPHICS_TYPE_RDP: case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP: case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS: + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: case VIR_DOMAIN_GRAPHICS_TYPE_LAST: break; } diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 1de6e0510128..05792f4e4c0a 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -4170,6 +4170,7 @@ qemuValidateDomainDeviceDefGraphics(const virDomainGr= aphicsDef *graphics, case VIR_DOMAIN_GRAPHICS_TYPE_SDL: case VIR_DOMAIN_GRAPHICS_TYPE_RDP: case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP: + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: case VIR_DOMAIN_GRAPHICS_TYPE_LAST: break; } diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index d3540acd84a8..2c48bbc5e812 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -3446,6 +3446,7 @@ virVMXFormatConfig(virVMXContext *ctx, virDomainXMLOp= tion *xmlopt, virDomainDef case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP: case VIR_DOMAIN_GRAPHICS_TYPE_SPICE: case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS: + case VIR_DOMAIN_GRAPHICS_TYPE_DBUS: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported graphics type '%s'"), virDomainGraphicsTypeToString(def->graphics[i]-= >type)); diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_6.2.0-q35.x86_64.xml index 9d68c0a404bb..303378e3e1fb 100644 --- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml @@ -154,6 +154,7 @@ vnc spice egl-headless + dbus