From nobody Tue Feb 10 04:13:02 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1770644897; cv=none; d=zohomail.com; s=zohoarc; b=NQnsxTj/snGVfijtv57w1sjococqkq1aQjvcr14vNtJ8vMi0DVmeNlVM67UMOiqAVqRbN1g50bjyPbUNng9MP567PCJWiu+AYB70JIQGEub0plixxAtIrq0kDSdOkrKY4qCr/VKW9jeJ2i7Gsla4K6rgmMnif615GDjO5QP37TA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770644897; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=cKJWssjCruOvP4ymES4ql/k3yjg5v8ZEMzIKrcZeKI0=; b=PqqpVTPscKyeiCf6FK58YjzLVm69CsvsWLEKDpHoo1MD1jx5fXP41VOmq6q/KsZPR/4Ktj8+BhrWuciib3EIdlrcQaTF56SX7ZU24C/X21flB6yN0PC+8ABMaRLMFdymBHf11NLsOHYIwlCnwaDabRqrVoYXyEFskenQU5kNgHo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1770644896878570.3852529599648; Mon, 9 Feb 2026 05:48:16 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id C9C5A41B77; Mon, 9 Feb 2026 08:48:15 -0500 (EST) Received: from [172.19.199.6] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 5F96F41B53; Mon, 9 Feb 2026 08:47:28 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id EAC5141988; Mon, 9 Feb 2026 08:47:21 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 41A6D41967 for ; Mon, 9 Feb 2026 08:47:20 -0500 (EST) Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-425-RHA4Ly1pMkmCfFjQ0vPiuQ-1; Mon, 09 Feb 2026 08:47:18 -0500 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 97CD4195608D for ; Mon, 9 Feb 2026 13:47:17 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.226.251]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id D555F1956053 for ; Mon, 9 Feb 2026 13:47:16 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1770644839; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cKJWssjCruOvP4ymES4ql/k3yjg5v8ZEMzIKrcZeKI0=; b=IxxTObOfNtrqlg6itlWKlejM7SnULbLTY9FF7BXriuSAVPNA8CciVbDuOYYbF6+xEM3FEP ZRXX7oegniIqpiAA9uYed0fB2ocbD2SZLZNa19BiK14tB+2e+U/wFPm+N5SB6l6lBQBT5a J2soY3amyXIubOZvrQx35zQIP6JOFwA= X-MC-Unique: RHA4Ly1pMkmCfFjQ0vPiuQ-1 X-Mimecast-MFC-AGG-ID: RHA4Ly1pMkmCfFjQ0vPiuQ_1770644837 To: devel@lists.libvirt.org Subject: [PATCH v2 01/38] qemu_firmware: Only set format for custom loader if path is present Date: Mon, 9 Feb 2026 14:46:35 +0100 Message-ID: <20260209134712.296670-2-abologna@redhat.com> In-Reply-To: <20260209134712.296670-1-abologna@redhat.com> References: <20260209134712.296670-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: CAC5kvCMAU_uoAqcU2_a7Rsjmlm1E-QL8h_qKue6vVk_1770644837 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 3B2S3DX3DO5YWPGAIBFEWBTI3HN5MVY5 X-Message-ID-Hash: 3B2S3DX3DO5YWPGAIBFEWBTI3HN5MVY5 X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1770644898537158500 Content-Type: text/plain; charset="utf-8"; x-default="true" We only set the template format if the template path is present, and we should be consistent with that. The format on its own is not very interesting anyway. Signed-off-by: Andrea Bolognani --- src/qemu/qemu_firmware.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index 52205b72f8..183fdd7ea9 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -1662,8 +1662,10 @@ qemuFirmwareFillDomainCustom(virDomainDef *def) if (!loader) return; =20 - if (!loader->format) + if (loader->path && + !loader->format) { loader->format =3D VIR_STORAGE_FILE_RAW; + } =20 if (loader->nvramTemplate && !loader->nvramTemplateFormat) { --=20 2.53.0 From nobody Tue Feb 10 04:13:02 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1770644964; cv=none; d=zohomail.com; s=zohoarc; b=oKiajoDpJ77wY5msqO5gGybQrvUkKzgOsuivt126wUufLoiKs7e98yRems9G7JPFyhERVB7kVphi2cIbIhXMm4LVep0ustaokJrcPnhrgEFpjMBZza8OjCSFiEHUnCDJcK4EWTPY9t47rHyprCeI1lgHI3nX6GOcLO6DfAWWRMs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770644964; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=xSc5usoMO2pwuuG8CiJC9yZd7AnQcGigbxeDmyIZW/M=; b=NQAhBHutWLhGIP0je+30tYBexyr2vjZYuGV9MwC5Z7TdYK8DqZzW2cnT0j9CfZm+P2bxlHjqjOphPzG5N14gKJbHxCzjQQ+XU0JWgYqYOXPwJaBnVR7qQ9aQRMvAQUefTNaTkJhcnBPBdHU0Leo7Itww2K2/uzQN4Urpzzz4zZw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1770644964747330.6423902864336; Mon, 9 Feb 2026 05:49:24 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id CA1DA41BA8; Mon, 9 Feb 2026 08:49:23 -0500 (EST) Received: from [172.19.199.6] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 789BA41A18; Mon, 9 Feb 2026 08:47:31 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 7B23941967; Mon, 9 Feb 2026 08:47:22 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 4FA5741979 for ; Mon, 9 Feb 2026 08:47:21 -0500 (EST) Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-692-2lBn0v3GNUC4GkC3JJqEWg-1; Mon, 09 Feb 2026 08:47:19 -0500 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id C90A81956053 for ; Mon, 9 Feb 2026 13:47:18 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.226.251]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 13EFD1956053 for ; Mon, 9 Feb 2026 13:47:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1770644841; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=xSc5usoMO2pwuuG8CiJC9yZd7AnQcGigbxeDmyIZW/M=; b=JaoqUS9v+djCF1j1Yg2hPLmCsznPLheg2NhThvqH4CwY5ZPC171Kqgm1ciTn59ndRf0J7v bXKG9kVCcKbV0BfyNqD6Vv+1snHWuVCp5ViwPPhFgVXzqERTW0EgrypqjcwHOqirmPyz44 eo3aaTGnHLR8WERU9wF+uSD4/sRmDr8= X-MC-Unique: 2lBn0v3GNUC4GkC3JJqEWg-1 X-Mimecast-MFC-AGG-ID: 2lBn0v3GNUC4GkC3JJqEWg_1770644838 To: devel@lists.libvirt.org Subject: [PATCH v2 02/38] conf: Move type=rom default for loader to drivers Date: Mon, 9 Feb 2026 14:46:36 +0100 Message-ID: <20260209134712.296670-3-abologna@redhat.com> In-Reply-To: <20260209134712.296670-1-abologna@redhat.com> References: <20260209134712.296670-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: _j6mBTN9tCv2ZjIxW73ykAev4txQ1rifXC8zr7zb4yI_1770644838 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 4R4GQZIG5KCEWR6IQOCJCUR6LMRYOMTA X-Message-ID-Hash: 4R4GQZIG5KCEWR6IQOCJCUR6LMRYOMTA X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1770644966506158500 Content-Type: text/plain; charset="utf-8"; x-default="true" Right now we set this default in the common parsing code, which is not a big problem per se but would get in the way of some upcoming changes. Leave this choice to individual drivers instead. Only the QEMU and Xen drivers use the value for anything, so we can limit the amount of code duplication this change causes. Signed-off-by: Andrea Bolognani --- src/conf/domain_postparse.c | 19 ------------------- src/libxl/libxl_domain.c | 6 ++++++ src/qemu/qemu_firmware.c | 5 +++++ 3 files changed, 11 insertions(+), 19 deletions(-) diff --git a/src/conf/domain_postparse.c b/src/conf/domain_postparse.c index 38e731348d..cbaae75c02 100644 --- a/src/conf/domain_postparse.c +++ b/src/conf/domain_postparse.c @@ -89,22 +89,6 @@ virDomainDefPostParseMemory(virDomainDef *def, } =20 =20 -static int -virDomainDefPostParseOs(virDomainDef *def) -{ - if (!def->os.loader) - return 0; - - if (def->os.loader->path && - def->os.loader->type =3D=3D VIR_DOMAIN_LOADER_TYPE_NONE) { - /* By default, loader is type of 'rom' */ - def->os.loader->type =3D VIR_DOMAIN_LOADER_TYPE_ROM; - } - - return 0; -} - - static void virDomainDefPostParseMemtune(virDomainDef *def) { @@ -1251,9 +1235,6 @@ virDomainDefPostParseCommon(virDomainDef *def, if (virDomainDefPostParseMemory(def, data->parseFlags) < 0) return -1; =20 - if (virDomainDefPostParseOs(def) < 0) - return -1; - virDomainDefPostParseMemtune(def); =20 if (virDomainDefRejectDuplicateControllers(def) < 0) diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index 9842d6fece..c6717e31cf 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -279,6 +279,12 @@ libxlDomainDefPostParse(virDomainDef *def, def->features[VIR_DOMAIN_FEATURE_ACPI] =3D VIR_TRISTATE_SWITCH= _ON; } =20 + if (def->os.loader && + def->os.loader->path && + !def->os.loader->type) { + def->os.loader->type =3D VIR_DOMAIN_LOADER_TYPE_ROM; + } + /* add implicit balloon device */ if (def->memballoon =3D=3D NULL) { virDomainMemballoonDef *memballoon; diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index 183fdd7ea9..e0e6a3a557 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -1662,6 +1662,11 @@ qemuFirmwareFillDomainCustom(virDomainDef *def) if (!loader) return; =20 + if (loader->path && + !loader->type) { + loader->type =3D VIR_DOMAIN_LOADER_TYPE_ROM; + } + if (loader->path && !loader->format) { loader->format =3D VIR_STORAGE_FILE_RAW; --=20 2.53.0 From nobody Tue Feb 10 04:13:02 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1770645181; cv=none; d=zohomail.com; s=zohoarc; b=eOA4F4jojx43eHJCdVx5lr0xSZT2AnoduN0yt189gWOjfgqReEir4+tyu+0FNhhKbaJzfl6XtUMaaweXiCVTEp9tEhhCPRVI2hTDPhz7Hie4DmaZSXTWlooT7oxexJvzdB0SiDzwZi1BhYe2K58JB32uT0+x3yCZO24bVBk23n8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770645181; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=tTs7ftxHlTMwhcRlMSR5PsXmuvuImo4zdw7vDZb7JTA=; b=KZA5CvHm3ED3VH4EXH6L+/707Q2/1aq/S/zV4M1XivmS48YIg6vTeipP7he99QdXjeQc7mrw0v5lhtXjkT1EDPXCCYy1hxSa2gmsyIaWSwa3BvydM2PDmp6rGvun096TrNtBJtB+Mmn5xoJI5KbQdgbG+Mqd9J04bXQChPcYq8o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1770645181293375.435463832041; Mon, 9 Feb 2026 05:53:01 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 6FD5C41C1A; Mon, 9 Feb 2026 08:53:00 -0500 (EST) Received: from [172.19.199.6] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 00EFF43E0C; Mon, 9 Feb 2026 08:47:35 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 48BB93F840; Mon, 9 Feb 2026 08:47:23 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id C56D741965 for ; Mon, 9 Feb 2026 08:47:22 -0500 (EST) Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-459-V8lSWFAIMB-aRlrhGqaEyQ-1; Mon, 09 Feb 2026 08:47:20 -0500 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 1D5B81955F12 for ; Mon, 9 Feb 2026 13:47:20 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.226.251]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 44E1C1956056 for ; Mon, 9 Feb 2026 13:47:19 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1770644842; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=tTs7ftxHlTMwhcRlMSR5PsXmuvuImo4zdw7vDZb7JTA=; b=RZb4RMjHGbV5yzhkosuwjRIYYsCNSpeu9lt87HxNoRYCml2YiZsnWmME7ky7eqtTjiCJdB PXAL3OvubU9KgYxqWBIiBFL5murtQwmw/q38ZxfaHg6xStyVK7dkgaB11Vj6wgXOg+ONn8 QIEXRmEDySPt0U4RK2nhP8uBZzRHWh8= X-MC-Unique: V8lSWFAIMB-aRlrhGqaEyQ-1 X-Mimecast-MFC-AGG-ID: V8lSWFAIMB-aRlrhGqaEyQ_1770644840 To: devel@lists.libvirt.org Subject: [PATCH v2 03/38] qemu_firmware: Improve matching when loader.type is absent Date: Mon, 9 Feb 2026 14:46:37 +0100 Message-ID: <20260209134712.296670-4-abologna@redhat.com> In-Reply-To: <20260209134712.296670-1-abologna@redhat.com> References: <20260209134712.296670-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: csZfqTMic84jzMMErer7gEPHpRLoG5RKO-AzST1vzug_1770644840 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: EI2HO5CHDJTRSFQPTFCBGEFZ56IX54N5 X-Message-ID-Hash: EI2HO5CHDJTRSFQPTFCBGEFZ56IX54N5 X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1770645183686158500 Content-Type: text/plain; charset="utf-8"; x-default="true" Right now we don't allow any match in that scenario, but really if a specific type hasn't been requested it means that any type is considered acceptable and we should allow matching against both UEFI and BIOS. Signed-off-by: Andrea Bolognani --- src/qemu/qemu_firmware.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index e0e6a3a557..1d414da601 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -1104,16 +1104,17 @@ qemuFirmwareMatchDomain(const virDomainDef *def, * not present, we can still infer this information from * other factors. Specifically, the pflash loader type is * only used for UEFI, while the rom loader type can be used - * both for UEFI and BIOS */ + * both for UEFI and BIOS. If the loader type has not been + * specified, we keep our options open */ switch (loader->type) { case VIR_DOMAIN_LOADER_TYPE_PFLASH: wantUEFI =3D true; break; case VIR_DOMAIN_LOADER_TYPE_ROM: + case VIR_DOMAIN_LOADER_TYPE_NONE: wantUEFI =3D true; wantBIOS =3D true; break; - case VIR_DOMAIN_LOADER_TYPE_NONE: case VIR_DOMAIN_LOADER_TYPE_LAST: default: break; --=20 2.53.0 From nobody Tue Feb 10 04:13:02 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1770645336; cv=none; d=zohomail.com; s=zohoarc; b=Mtiv94kDcNmBeZH+UzLjqSB16ELj2RdSbkeSNs+5WrCsdTtNU00EFKa9oKgSGQZDH3s43PMz4TnunUhSownlDzX1ad12D9jgLjGZw+nozQW+zt6GtMPoevRzdmf8C5rmZ3HGdIs0Te4WJMYYN4UxRZtd45BNRVj8AVkKz2K2KLA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770645336; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=AX/dR50P07vSxqnTZAQah0nTU4wVubM2gsv4I6nQa6Y=; b=fkGzhz/r0yYQs3YZ/riQZSQM0LPSM/zLGAyC/Ly/2Xm4DE0TDW/6gc7Wg3BKZuifXETGjkUEbxdpTfQRlbPWRBRx6/xc7PC6Kiav/O+3HHEJyaESb9y90++T3S5elc0FsoMFjZH3Ag1yyPfrSwTwck/6eRT6Fm0n3Tc3EVjTzhE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1770645335997312.63532311350684; Mon, 9 Feb 2026 05:55:35 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 3FED143E23; Mon, 9 Feb 2026 08:55:34 -0500 (EST) Received: from [172.19.199.6] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id DEE1B43E8A; Mon, 9 Feb 2026 08:47:36 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 8B62B41967; Mon, 9 Feb 2026 08:47:24 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id E9A094195B for ; Mon, 9 Feb 2026 08:47:23 -0500 (EST) Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-121-bp7ALEVnNBOtDdntPoL4Cg-1; Mon, 09 Feb 2026 08:47:22 -0500 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 466CC19560AD for ; Mon, 9 Feb 2026 13:47:21 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.226.251]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 847241955F43 for ; Mon, 9 Feb 2026 13:47:20 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1770644843; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AX/dR50P07vSxqnTZAQah0nTU4wVubM2gsv4I6nQa6Y=; b=T644fwDV5OfsnYzypKrzXlQN0s5Ebx0rDIZj6MWXEpbrwZDFrFAxr48f3s96CpHINXyLmZ +n427kJF2nQO0Qbbtjhc/oylQrCh0bK2DJvp17VjugO8y30m/nm9FxQwpoG4vWDFv/zNxu F16B2ETEgDiMqP2QI3ra0FTtym50DSk= X-MC-Unique: bp7ALEVnNBOtDdntPoL4Cg-1 X-Mimecast-MFC-AGG-ID: bp7ALEVnNBOtDdntPoL4Cg_1770644841 To: devel@lists.libvirt.org Subject: [PATCH v2 04/38] tests: Rename custom JSON firmware descriptors Date: Mon, 9 Feb 2026 14:46:38 +0100 Message-ID: <20260209134712.296670-5-abologna@redhat.com> In-Reply-To: <20260209134712.296670-1-abologna@redhat.com> References: <20260209134712.296670-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 7KS-Yi5EcVbZ28H5taHcCByX0ixkPrUlqFMVXsqvFi0_1770644841 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: N7NLJJGSQYCPQFAO7WBSY62DSWHVVWLF X-Message-ID-Hash: N7NLJJGSQYCPQFAO7WBSY62DSWHVVWLF X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1770645336459158500 Content-Type: text/plain; charset="utf-8"; x-default="true" Most of the JSON firmware descriptors in our test suite come from the Fedora package for edk2, but there are a few additional ones that we have created ourselves to ensure coverage of uncommon or problematic scenarios. In order to make sure that such descriptors are clearly marked as custom, rename them to include the string "libvirt" in the path. Signed-off-by: Andrea Bolognani --- .../etc/qemu/firmware/20-bios.json | 1 - .../etc/qemu/firmware/20-libvirt-bios.json | 1 + .../etc/qemu/firmware/59-combined.json | 1 - .../etc/qemu/firmware/59-libvirt-combined.json | 1 + .../{92-masked.json =3D> 92-libvirt-masked.json} | 0 .../{10-bios.json =3D> 10-libvirt-bios.json} | 0 ...90-combined.json =3D> 90-libvirt-combined.json} | 0 .../{91-bios.json =3D> 91-libvirt-bios.json} | 0 .../{92-masked.json =3D> 92-libvirt-masked.json} | 0 .../{93-invalid.json =3D> 93-libvirt-invalid.json} | 0 tests/qemufirmwaretest.c | 16 ++++++++-------- 11 files changed, 10 insertions(+), 10 deletions(-) delete mode 120000 tests/qemufirmwaredata/etc/qemu/firmware/20-bios.json create mode 120000 tests/qemufirmwaredata/etc/qemu/firmware/20-libvirt-bio= s.json delete mode 120000 tests/qemufirmwaredata/etc/qemu/firmware/59-combined.js= on create mode 120000 tests/qemufirmwaredata/etc/qemu/firmware/59-libvirt-com= bined.json rename tests/qemufirmwaredata/etc/qemu/firmware/{92-masked.json =3D> 92-li= bvirt-masked.json} (100%) rename tests/qemufirmwaredata/home/user/.config/qemu/firmware/{10-bios.jso= n =3D> 10-libvirt-bios.json} (100%) rename tests/qemufirmwaredata/usr/share/qemu/firmware/{90-combined.json = =3D> 90-libvirt-combined.json} (100%) rename tests/qemufirmwaredata/usr/share/qemu/firmware/{91-bios.json =3D> 9= 1-libvirt-bios.json} (100%) rename tests/qemufirmwaredata/usr/share/qemu/firmware/{92-masked.json =3D>= 92-libvirt-masked.json} (100%) rename tests/qemufirmwaredata/usr/share/qemu/firmware/{93-invalid.json =3D= > 93-libvirt-invalid.json} (100%) diff --git a/tests/qemufirmwaredata/etc/qemu/firmware/20-bios.json b/tests/= qemufirmwaredata/etc/qemu/firmware/20-bios.json deleted file mode 120000 index 2c274dddc2..0000000000 --- a/tests/qemufirmwaredata/etc/qemu/firmware/20-bios.json +++ /dev/null @@ -1 +0,0 @@ -../../../usr/share/qemu/firmware/91-bios.json \ No newline at end of file diff --git a/tests/qemufirmwaredata/etc/qemu/firmware/20-libvirt-bios.json = b/tests/qemufirmwaredata/etc/qemu/firmware/20-libvirt-bios.json new file mode 120000 index 0000000000..fab8877c3e --- /dev/null +++ b/tests/qemufirmwaredata/etc/qemu/firmware/20-libvirt-bios.json @@ -0,0 +1 @@ +../../../usr/share/qemu/firmware/91-libvirt-bios.json \ No newline at end of file diff --git a/tests/qemufirmwaredata/etc/qemu/firmware/59-combined.json b/te= sts/qemufirmwaredata/etc/qemu/firmware/59-combined.json deleted file mode 120000 index da9099ffb7..0000000000 --- a/tests/qemufirmwaredata/etc/qemu/firmware/59-combined.json +++ /dev/null @@ -1 +0,0 @@ -../../../usr/share/qemu/firmware/90-combined.json \ No newline at end of file diff --git a/tests/qemufirmwaredata/etc/qemu/firmware/59-libvirt-combined.j= son b/tests/qemufirmwaredata/etc/qemu/firmware/59-libvirt-combined.json new file mode 120000 index 0000000000..74e63c4574 --- /dev/null +++ b/tests/qemufirmwaredata/etc/qemu/firmware/59-libvirt-combined.json @@ -0,0 +1 @@ +../../../usr/share/qemu/firmware/90-libvirt-combined.json \ No newline at end of file diff --git a/tests/qemufirmwaredata/etc/qemu/firmware/92-masked.json b/test= s/qemufirmwaredata/etc/qemu/firmware/92-libvirt-masked.json similarity index 100% rename from tests/qemufirmwaredata/etc/qemu/firmware/92-masked.json rename to tests/qemufirmwaredata/etc/qemu/firmware/92-libvirt-masked.json diff --git a/tests/qemufirmwaredata/home/user/.config/qemu/firmware/10-bios= .json b/tests/qemufirmwaredata/home/user/.config/qemu/firmware/10-libvirt-b= ios.json similarity index 100% rename from tests/qemufirmwaredata/home/user/.config/qemu/firmware/10-bios.= json rename to tests/qemufirmwaredata/home/user/.config/qemu/firmware/10-libvirt= -bios.json diff --git a/tests/qemufirmwaredata/usr/share/qemu/firmware/90-combined.jso= n b/tests/qemufirmwaredata/usr/share/qemu/firmware/90-libvirt-combined.json similarity index 100% rename from tests/qemufirmwaredata/usr/share/qemu/firmware/90-combined.json rename to tests/qemufirmwaredata/usr/share/qemu/firmware/90-libvirt-combine= d.json diff --git a/tests/qemufirmwaredata/usr/share/qemu/firmware/91-bios.json b/= tests/qemufirmwaredata/usr/share/qemu/firmware/91-libvirt-bios.json similarity index 100% rename from tests/qemufirmwaredata/usr/share/qemu/firmware/91-bios.json rename to tests/qemufirmwaredata/usr/share/qemu/firmware/91-libvirt-bios.js= on diff --git a/tests/qemufirmwaredata/usr/share/qemu/firmware/92-masked.json = b/tests/qemufirmwaredata/usr/share/qemu/firmware/92-libvirt-masked.json similarity index 100% rename from tests/qemufirmwaredata/usr/share/qemu/firmware/92-masked.json rename to tests/qemufirmwaredata/usr/share/qemu/firmware/92-libvirt-masked.= json diff --git a/tests/qemufirmwaredata/usr/share/qemu/firmware/93-invalid.json= b/tests/qemufirmwaredata/usr/share/qemu/firmware/93-libvirt-invalid.json similarity index 100% rename from tests/qemufirmwaredata/usr/share/qemu/firmware/93-invalid.json rename to tests/qemufirmwaredata/usr/share/qemu/firmware/93-libvirt-invalid= .json diff --git a/tests/qemufirmwaretest.c b/tests/qemufirmwaretest.c index a4fb5c9b9c..830aae951a 100644 --- a/tests/qemufirmwaretest.c +++ b/tests/qemufirmwaretest.c @@ -84,7 +84,7 @@ testFWPrecedence(const void *opaque G_GNUC_UNUSED) g_autofree char *fakehome =3D NULL; g_auto(GStrv) fwList =3D NULL; const char *expected[] =3D { - SYSCONFDIR "/qemu/firmware/20-bios.json", + SYSCONFDIR "/qemu/firmware/20-libvirt-bios.json", PREFIX "/share/qemu/firmware/30-edk2-ovmf-4m-qcow2-x64-sb-enrolled= .json", PREFIX "/share/qemu/firmware/31-edk2-ovmf-2m-raw-x64-sb-enrolled.j= son", PREFIX "/share/qemu/firmware/40-edk2-ovmf-4m-qcow2-x64-sb.json", @@ -98,12 +98,12 @@ testFWPrecedence(const void *opaque G_GNUC_UNUSED) PREFIX "/share/qemu/firmware/51-edk2-ovmf-2m-raw-x64-nosb.json", PREFIX "/share/qemu/firmware/52-edk2-aarch64-verbose-qcow2.json", PREFIX "/share/qemu/firmware/53-edk2-aarch64-verbose-raw.json", - SYSCONFDIR "/qemu/firmware/59-combined.json", + SYSCONFDIR "/qemu/firmware/59-libvirt-combined.json", PREFIX "/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json", PREFIX "/share/qemu/firmware/60-edk2-ovmf-x64-inteltdx.json", - PREFIX "/share/qemu/firmware/90-combined.json", - PREFIX "/share/qemu/firmware/91-bios.json", - PREFIX "/share/qemu/firmware/93-invalid.json", + PREFIX "/share/qemu/firmware/90-libvirt-combined.json", + PREFIX "/share/qemu/firmware/91-libvirt-bios.json", + PREFIX "/share/qemu/firmware/93-libvirt-invalid.json", NULL }; const char **e; @@ -280,9 +280,9 @@ mymain(void) DO_PARSE_TEST("usr/share/qemu/firmware/53-edk2-aarch64-verbose-raw.jso= n"); DO_PARSE_TEST("usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json"); DO_PARSE_TEST("usr/share/qemu/firmware/60-edk2-ovmf-x64-inteltdx.json"= ); - DO_PARSE_TEST("usr/share/qemu/firmware/90-combined.json"); - DO_PARSE_TEST("usr/share/qemu/firmware/91-bios.json"); - DO_PARSE_FAILURE_TEST("usr/share/qemu/firmware/93-invalid.json"); + DO_PARSE_TEST("usr/share/qemu/firmware/90-libvirt-combined.json"); + DO_PARSE_TEST("usr/share/qemu/firmware/91-libvirt-bios.json"); + DO_PARSE_FAILURE_TEST("usr/share/qemu/firmware/93-libvirt-invalid.json= "); =20 if (virTestRun("QEMU FW precedence test", testFWPrecedence, NULL) < 0) ret =3D -1; --=20 2.53.0 From nobody Tue Feb 10 04:13:02 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1770645542; cv=none; d=zohomail.com; s=zohoarc; b=bqZwWSddsK9kdgTE3q+b8ntRbX5JM5Fg1TwXfD3Y1YstoKTkRcgtkH/OzmsL0PHlupA5p4pan5u9zwngnCfMQhYMYvT97dGgHNpt+S+WDL6U2THzvux1hTAcEZJS2TDuI56CSNKK1ARh0GOY2lTFR597RuqpTUmL+fgFkOfw/2I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770645542; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=bYqAKJL0fsphDzAlQadgOHqxosLtCzSe998cCmNgfCY=; b=XxE6toYOpoxF+FHvgG7DtGp+WNYsTULIyV2zogN8ZO3dQ1jagw/TPN6g/n46tnTs2o0TT2d59VrlLpaz/gP7zSX2p2obY5H36Nro2yjar36Yau/DxE7IAuM4t6eHIlbKcXKZhyXVS3UkKEbRhKs76TgkOiZ4hrX7RKdZkCSLdH8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 177064554239940.2802103429716; Mon, 9 Feb 2026 05:59:02 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id C88C643E51; Mon, 9 Feb 2026 08:59:00 -0500 (EST) Received: from [172.19.199.6] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id DA33D43ED6; Mon, 9 Feb 2026 08:47:37 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id EB9464195B; Mon, 9 Feb 2026 08:47:25 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 496DB3F840 for ; Mon, 9 Feb 2026 08:47:25 -0500 (EST) Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-175-3fXkfb86OQ2MSNV05l9vEw-1; Mon, 09 Feb 2026 08:47:23 -0500 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 809401956055 for ; Mon, 9 Feb 2026 13:47:22 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.226.251]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id BE1FE1956053 for ; Mon, 9 Feb 2026 13:47:21 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1770644845; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bYqAKJL0fsphDzAlQadgOHqxosLtCzSe998cCmNgfCY=; b=MsTesOQ6vBbejeSzpb93ZcJ0jpxE9q+iZipHhCeV6FR1xLXDCYDIXid14HiC2VKODyZIq6 775ij9U+Ubc91QE0Ai42lNFTVMneDvks/hjU/RrlUTvsyYTPL0ICXZN2uscpID7uG/8eoF Uc/SBcNfhtsrcCBQ+o+lQiy3eFNjWUY= X-MC-Unique: 3fXkfb86OQ2MSNV05l9vEw-1 X-Mimecast-MFC-AGG-ID: 3fXkfb86OQ2MSNV05l9vEw_1770644842 To: devel@lists.libvirt.org Subject: [PATCH v2 05/38] tests: Update JSON firmware descriptor for BIOS Date: Mon, 9 Feb 2026 14:46:39 +0100 Message-ID: <20260209134712.296670-6-abologna@redhat.com> In-Reply-To: <20260209134712.296670-1-abologna@redhat.com> References: <20260209134712.296670-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: lebiHEnnwlIA7X3S5B6LaC4sPUS8bUkBLIa42Znkccc_1770644842 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 5KK725MU6F7VNMNU7LKF7BJB7INQNVOW X-Message-ID-Hash: 5KK725MU6F7VNMNU7LKF7BJB7INQNVOW X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1770645546730154100 Content-Type: text/plain; charset="utf-8"; x-default="true" This is one of our custom descriptors. The firmware binary it advertises really exists, but looking at the qemuxmlconf test cases we use a slightly different path there. As a consequence of this change, the firmware-manual-bios* test cases behave more realistically, in that the JSON firmware descriptor is picked up and the additional information that can be figured out from it is filled in. Signed-off-by: Andrea Bolognani --- .../usr/share/qemu/firmware/91-libvirt-bios.json | 2 +- tests/qemufirmwaretest.c | 8 ++++---- .../firmware-auto-bios-stateless.x86_64-latest.args | 2 +- .../firmware-auto-bios-stateless.x86_64-latest.xml | 2 +- .../qemuxmlconfdata/firmware-auto-bios.x86_64-latest.args | 2 +- .../qemuxmlconfdata/firmware-auto-bios.x86_64-latest.xml | 2 +- .../firmware-manual-bios-stateless.x86_64-latest.xml | 6 +++++- .../firmware-manual-bios.x86_64-latest.xml | 6 +++++- 8 files changed, 19 insertions(+), 11 deletions(-) diff --git a/tests/qemufirmwaredata/usr/share/qemu/firmware/91-libvirt-bios= .json b/tests/qemufirmwaredata/usr/share/qemu/firmware/91-libvirt-bios.json index 378e6d93a5..de09927437 100644 --- a/tests/qemufirmwaredata/usr/share/qemu/firmware/91-libvirt-bios.json +++ b/tests/qemufirmwaredata/usr/share/qemu/firmware/91-libvirt-bios.json @@ -5,7 +5,7 @@ ], "mapping": { "device": "memory", - "filename": "/usr/share/seabios/bios-256k.bin" + "filename": "/usr/share/seabios/bios.bin" }, "targets": [ { diff --git a/tests/qemufirmwaretest.c b/tests/qemufirmwaretest.c index 830aae951a..04d11efb8e 100644 --- a/tests/qemufirmwaretest.c +++ b/tests/qemufirmwaretest.c @@ -301,16 +301,16 @@ mymain(void) } while (0) =20 DO_SUPPORTED_TEST("pc-i440fx-3.1", VIR_ARCH_X86_64, false, - "/usr/share/seabios/bios-256k.bin:NULL:" + "/usr/share/seabios/bios.bin:NULL:" "/usr/share/edk2/ovmf/OVMF_CODE_4M.qcow2:/usr/share/= edk2/ovmf/OVMF_VARS_4M.qcow2:" "/usr/share/edk2/ovmf/OVMF_CODE.fd:/usr/share/edk2/o= vmf/OVMF_VARS.fd", VIR_DOMAIN_OS_DEF_FIRMWARE_BIOS, VIR_DOMAIN_OS_DEF_FIRMWARE_EFI); DO_SUPPORTED_TEST("pc-i440fx-3.1", VIR_ARCH_I686, false, - "/usr/share/seabios/bios-256k.bin:NULL", + "/usr/share/seabios/bios.bin:NULL", VIR_DOMAIN_OS_DEF_FIRMWARE_BIOS); DO_SUPPORTED_TEST("pc-q35-3.1", VIR_ARCH_X86_64, true, - "/usr/share/seabios/bios-256k.bin:NULL:" + "/usr/share/seabios/bios.bin:NULL:" "/usr/share/edk2/ovmf/OVMF_CODE_4M.secboot.qcow2:/us= r/share/edk2/ovmf/OVMF_VARS_4M.secboot.qcow2:" "/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd:/usr/shar= e/edk2/ovmf/OVMF_VARS.secboot.fd:" "/usr/share/edk2/ovmf/OVMF_CODE_4M.secboot.qcow2:/us= r/share/edk2/ovmf/OVMF_VARS_4M.qcow2:" @@ -323,7 +323,7 @@ mymain(void) VIR_DOMAIN_OS_DEF_FIRMWARE_BIOS, VIR_DOMAIN_OS_DEF_FIRMWARE_EFI); DO_SUPPORTED_TEST("pc-q35-3.1", VIR_ARCH_I686, false, - "/usr/share/seabios/bios-256k.bin:NULL", + "/usr/share/seabios/bios.bin:NULL", VIR_DOMAIN_OS_DEF_FIRMWARE_BIOS); DO_SUPPORTED_TEST("microvm", VIR_ARCH_X86_64, false, "/usr/share/edk2/ovmf/MICROVM.fd:NULL", diff --git a/tests/qemuxmlconfdata/firmware-auto-bios-stateless.x86_64-late= st.args b/tests/qemuxmlconfdata/firmware-auto-bios-stateless.x86_64-latest.= args index a6a52e2b52..a96a0e1bbf 100644 --- a/tests/qemuxmlconfdata/firmware-auto-bios-stateless.x86_64-latest.args +++ b/tests/qemuxmlconfdata/firmware-auto-bios-stateless.x86_64-latest.args @@ -13,7 +13,7 @@ XDG_CONFIG_HOME=3D/var/lib/libvirt/qemu/domain--1-guest/.= config \ -machine pc-q35-10.0,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.r= am,acpi=3Don \ -accel kvm \ -cpu qemu64 \ --bios /usr/share/seabios/bios-256k.bin \ +-bios /usr/share/seabios/bios.bin \ -m size=3D1048576k \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":1073741824}= ' \ -overcommit mem-lock=3Doff \ diff --git a/tests/qemuxmlconfdata/firmware-auto-bios-stateless.x86_64-late= st.xml b/tests/qemuxmlconfdata/firmware-auto-bios-stateless.x86_64-latest.x= ml index 547dff5ed3..de0d3c7560 100644 --- a/tests/qemuxmlconfdata/firmware-auto-bios-stateless.x86_64-latest.xml +++ b/tests/qemuxmlconfdata/firmware-auto-bios-stateless.x86_64-latest.xml @@ -10,7 +10,7 @@ - /usr/share/seabi= os/bios-256k.bin + /usr/share/seabi= os/bios.bin diff --git a/tests/qemuxmlconfdata/firmware-auto-bios.x86_64-latest.args b/= tests/qemuxmlconfdata/firmware-auto-bios.x86_64-latest.args index a6a52e2b52..a96a0e1bbf 100644 --- a/tests/qemuxmlconfdata/firmware-auto-bios.x86_64-latest.args +++ b/tests/qemuxmlconfdata/firmware-auto-bios.x86_64-latest.args @@ -13,7 +13,7 @@ XDG_CONFIG_HOME=3D/var/lib/libvirt/qemu/domain--1-guest/.= config \ -machine pc-q35-10.0,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.r= am,acpi=3Don \ -accel kvm \ -cpu qemu64 \ --bios /usr/share/seabios/bios-256k.bin \ +-bios /usr/share/seabios/bios.bin \ -m size=3D1048576k \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":1073741824}= ' \ -overcommit mem-lock=3Doff \ diff --git a/tests/qemuxmlconfdata/firmware-auto-bios.x86_64-latest.xml b/t= ests/qemuxmlconfdata/firmware-auto-bios.x86_64-latest.xml index ae9c9f56d9..ea0cf0134a 100644 --- a/tests/qemuxmlconfdata/firmware-auto-bios.x86_64-latest.xml +++ b/tests/qemuxmlconfdata/firmware-auto-bios.x86_64-latest.xml @@ -10,7 +10,7 @@ - /usr/share/seabios/bios-256k.bin + /usr/share/seabios/bios.bin diff --git a/tests/qemuxmlconfdata/firmware-manual-bios-stateless.x86_64-la= test.xml b/tests/qemuxmlconfdata/firmware-manual-bios-stateless.x86_64-late= st.xml index dc641ff9f6..4aaa13e668 100644 --- a/tests/qemuxmlconfdata/firmware-manual-bios-stateless.x86_64-latest.xml +++ b/tests/qemuxmlconfdata/firmware-manual-bios-stateless.x86_64-latest.xml @@ -4,8 +4,12 @@ 1048576 1048576 1 - + hvm + + + + /usr/share/seabi= os/bios.bin diff --git a/tests/qemuxmlconfdata/firmware-manual-bios.x86_64-latest.xml b= /tests/qemuxmlconfdata/firmware-manual-bios.x86_64-latest.xml index 7c06d8e8b8..85dec8ca8e 100644 --- a/tests/qemuxmlconfdata/firmware-manual-bios.x86_64-latest.xml +++ b/tests/qemuxmlconfdata/firmware-manual-bios.x86_64-latest.xml @@ -4,8 +4,12 @@ 1048576 1048576 1 - + hvm + + + + /usr/share/seabios/bios.bin --=20 2.53.0 From nobody Tue Feb 10 04:13:02 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1770645632; cv=none; d=zohomail.com; s=zohoarc; b=ML99jTTvwRWdxqt3LQS6f3cCghU+Sbb3fctZn4Nkk4eOJZzUAiWyG2qWDMIxQHv9QYws/kjtoRXvY7e6d2A6Yri9pAgm+I62FrXK/OnrXLZTmht/lE+b4n8CHGkl06xgHnf6OpH35qDDkG05DDoQE7rWZxVq3IxW8DLWl22FHoo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770645632; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=TQ83W9nuPhznoWZELxvgmyfpARYLuSV8i3xLwpyrRSM=; b=KDQAti3lUwymrUkXx5uDQld8b1WuumtIsr3tftIAD9ghYCXNjNbVcTAU+CZJtBpa1bU0p0vPeBbNJ/eO5GeXhs3rXEOSUA/KQjvhHw7EHty8LtR5kIPYjHT4TxA320Gt69rZhBdPF5Ym5mVq9ts0/fLyEoBsIMZQ3pVHvUE/j2Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 177064563259635.151930589882795; Mon, 9 Feb 2026 06:00:32 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id A25D9441D2; Mon, 9 Feb 2026 09:00:31 -0500 (EST) Received: from [172.19.199.6] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 2DC2143F38; Mon, 9 Feb 2026 08:47:43 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 0D4A543E2B; Mon, 9 Feb 2026 08:47:39 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 6F4EB41A0D for ; Mon, 9 Feb 2026 08:47:26 -0500 (EST) Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-25-uBC8Z5sRObCMc9cYm8_vmA-1; Mon, 09 Feb 2026 08:47:24 -0500 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id B14471800454 for ; Mon, 9 Feb 2026 13:47:23 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.226.251]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id EFC041956053 for ; Mon, 9 Feb 2026 13:47:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1770644846; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=TQ83W9nuPhznoWZELxvgmyfpARYLuSV8i3xLwpyrRSM=; b=SYnxhXMpBDBjwoq7ecxhYDoW1XQJni9N4lJsOYB/pRm884+kvQnkU18hsdWzX1FoqfgNlE X+D4AC4fRPWgVDARyzfwFODf9Pm46ZoQyTQd4isR4SpJgxxi0R65CkQxIDb+2eMfMlrXUP 4dJgC7cCs98vnUaNX6etbu+q4IN74bo= X-MC-Unique: uBC8Z5sRObCMc9cYm8_vmA-1 X-Mimecast-MFC-AGG-ID: uBC8Z5sRObCMc9cYm8_vmA_1770644843 To: devel@lists.libvirt.org Subject: [PATCH v2 06/38] schema: Add varstore element Date: Mon, 9 Feb 2026 14:46:40 +0100 Message-ID: <20260209134712.296670-7-abologna@redhat.com> In-Reply-To: <20260209134712.296670-1-abologna@redhat.com> References: <20260209134712.296670-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: n2QRBJE3nSdcuw2WqzNhItUn2QnfQFcpUeOKL9ClJF8_1770644843 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: LLAINFV76GZKLXD5QVAVXLWM3RUD6AVP X-Message-ID-Hash: LLAINFV76GZKLXD5QVAVXLWM3RUD6AVP X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1770645634114158500 Content-Type: text/plain; charset="utf-8"; x-default="true" This will be used to configure the backing storage used by the uefi-vars QEMU device. Best viewed with 'git show -w'. Signed-off-by: Andrea Bolognani --- src/conf/schemas/domaincommon.rng | 64 +++++++++++++++++++------------ 1 file changed, 40 insertions(+), 24 deletions(-) diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincom= mon.rng index e659900687..be1da54526 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -349,31 +349,47 @@ - - - - - - - - - - - - - - - - - + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --=20 2.53.0 From nobody Tue Feb 10 04:13:02 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1770645746; cv=none; d=zohomail.com; s=zohoarc; b=YLh1J9wc0y+ojfF/H3/CbnDQTPeQQLRAig+vvw2IRatxy2Vzu1JFEvOw32vTbZVOE9qULbiCohjhrHqZDdit4bSOUjlC8b+6GQp7R8/sqoW4JzFVt/QLi8EMZZh7ud5JbjiAyrOQazuPbHIRq+MN3Gs29YkTyjk6gXCC0E+d3ws= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770645746; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=B+zZpjsaN3AoB23M+GGP4R5cP/4Z409a8AQuerszIfc=; b=LYBFvMFVSJYbAH/EZ9VmFLoyVPJv30nfG2+EzoB4/Fy3nHOp3QHzEmGVhnr6bTD3C3WdXq7/t4jaisZ/JRVjFn8lb1v46rmsGGiEAm4/W2NbZamPD2jHrmnHXuqwyCJW4zHSVSBKz0UzKts2fYj3B0FCGzWl9HXUnspSVxbGf4s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1770645746608301.6888401336357; Mon, 9 Feb 2026 06:02:26 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id A7D4E43E45; Mon, 9 Feb 2026 09:02:25 -0500 (EST) Received: from [172.19.199.6] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 16C8643F9E; Mon, 9 Feb 2026 08:47:52 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id D7F6843F47; Mon, 9 Feb 2026 08:47:46 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id C14C341AD2 for ; Mon, 9 Feb 2026 08:47:27 -0500 (EST) Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-133-itwDJ5KHPtK1zFgzJB_LVA-1; Mon, 09 Feb 2026 08:47:25 -0500 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id E3EAC195608E for ; Mon, 9 Feb 2026 13:47:24 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.226.251]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 2D25C1956053 for ; Mon, 9 Feb 2026 13:47:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1770644847; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=B+zZpjsaN3AoB23M+GGP4R5cP/4Z409a8AQuerszIfc=; b=Wx7cAOp6arhhSiADaDFkrJkX1WfGwgU3qjue96nNM6uMFENhS9SB5iZigTwVxEr4wcOjtW 3f9TeDM+CluVGy7SshWx35QlcDiLIF0JK/EkItsgwRV2Fjt+Nh1n++rSQmZq6m6JHFWYmq toEALsBfX7OO186W/RPCUCGM4QhGSEY= X-MC-Unique: itwDJ5KHPtK1zFgzJB_LVA-1 X-Mimecast-MFC-AGG-ID: itwDJ5KHPtK1zFgzJB_LVA_1770644845 To: devel@lists.libvirt.org Subject: [PATCH v2 07/38] conf: Parse and format varstore element Date: Mon, 9 Feb 2026 14:46:41 +0100 Message-ID: <20260209134712.296670-8-abologna@redhat.com> In-Reply-To: <20260209134712.296670-1-abologna@redhat.com> References: <20260209134712.296670-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: MGt1vpPUgZhrAqaDIQWYeJ8rLoaflnddXosBf_Hxma0_1770644845 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: AI5AUGPCPHRO27UI7TZ3PPN4VNTEVORU X-Message-ID-Hash: AI5AUGPCPHRO27UI7TZ3PPN4VNTEVORU X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1770645747036158500 Content-Type: text/plain; charset="utf-8"; x-default="true" Dealing with the element itself is trivial, however we have to refactor the existing code which deals with the loader and nvram elements slightly: in particular, we can no longer perform an early exit if those elements are absent. Signed-off-by: Andrea Bolognani --- src/conf/domain_conf.c | 79 ++++++++++++++++++++++++++++++++++++---- src/conf/domain_conf.h | 9 +++++ src/conf/virconftypes.h | 2 + src/libvirt_private.syms | 2 + 4 files changed, 85 insertions(+), 7 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index e88dc62520..65a1919519 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -3943,6 +3943,27 @@ virDomainLoaderDefFree(virDomainLoaderDef *loader) g_free(loader); } =20 +virDomainVarstoreDef * +virDomainVarstoreDefNew(void) +{ + virDomainVarstoreDef *def =3D NULL; + + def =3D g_new0(virDomainVarstoreDef, 1); + + return def; +} + +void +virDomainVarstoreDefFree(virDomainVarstoreDef *varstore) +{ + if (!varstore) + return; + + g_free(varstore->path); + g_free(varstore->template); + g_free(varstore); +} + =20 static void virDomainResctrlMonDefFree(virDomainResctrlMonDef *domresmon) @@ -4045,6 +4066,7 @@ virDomainOSDefClear(virDomainOSDef *os) virDomainOSACPITableDefFree(os->acpiTables[i]); g_free(os->acpiTables); virDomainLoaderDefFree(os->loader); + virDomainVarstoreDefFree(os->varstore); g_free(os->bootloader); g_free(os->bootloaderArgs); } @@ -17954,6 +17976,17 @@ virDomainLoaderDefParseXMLLoader(virDomainLoaderDe= f *loader, } =20 =20 +static int +virDomainVarstoreDefParseXML(virDomainVarstoreDef *varstore, + xmlNodePtr varstoreNode) +{ + varstore->path =3D virXMLPropString(varstoreNode, "path"); + varstore->template =3D virXMLPropString(varstoreNode, "template"); + + return 0; +} + + static int virDomainLoaderDefParseXML(virDomainLoaderDef *loader, xmlNodePtr loaderNode, @@ -18401,16 +18434,29 @@ virDomainDefParseBootLoaderOptions(virDomainDef *= def, xmlNodePtr loaderNode =3D virXPathNode("./os/loader[1]", ctxt); xmlNodePtr nvramNode =3D virXPathNode("./os/nvram[1]", ctxt); xmlNodePtr nvramSourceNode =3D virXPathNode("./os/nvram/source[1]", ct= xt); + xmlNodePtr varstoreNode =3D virXPathNode("./os/varstore[1]", ctxt); =20 - if (!loaderNode && !nvramNode) - return 0; + if (nvramNode && varstoreNode) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("Cannot have both and ")); + return -1; + } =20 - def->os.loader =3D virDomainLoaderDefNew(); + if (loaderNode || nvramNode) { + def->os.loader =3D virDomainLoaderDefNew(); =20 - if (virDomainLoaderDefParseXML(def->os.loader, - loaderNode, nvramNode, nvramSourceNode, - ctxt, xmlopt, flags) < 0) - return -1; + if (virDomainLoaderDefParseXML(def->os.loader, + loaderNode, nvramNode, nvramSourceN= ode, + ctxt, xmlopt, flags) < 0) + return -1; + } + + if (varstoreNode) { + def->os.varstore =3D virDomainVarstoreDefNew(); + + if (virDomainVarstoreDefParseXML(def->os.varstore, varstoreNode) <= 0) + return -1; + } =20 return 0; } @@ -28046,6 +28092,20 @@ virDomainLoaderDefFormat(virBuffer *buf, return 0; } =20 +static int +virDomainVarstoreDefFormat(virBuffer *buf, + virDomainVarstoreDef *varstore) +{ + g_auto(virBuffer) attrBuf =3D VIR_BUFFER_INITIALIZER; + + virBufferEscapeString(&attrBuf, " template=3D'%s'", varstore->template= ); + virBufferEscapeString(&attrBuf, " path=3D'%s'", varstore->path); + + virXMLFormatElementEmpty(buf, "varstore", &attrBuf, NULL); + + return 0; +} + static void virDomainKeyWrapDefFormat(virBuffer *buf, virDomainKeyWrapDef *keywrap) { @@ -29518,6 +29578,11 @@ virDomainDefFormatInternalSetRootName(virDomainDef= *def, if (def->os.loader && virDomainLoaderDefFormat(buf, def->os.loader, xmlopt, flags) < 0) return -1; + + if (def->os.varstore && + virDomainVarstoreDefFormat(buf, def->os.varstore) < 0) + return -1; + virBufferEscapeString(buf, "%s\n", def->os.kernel); virBufferEscapeString(buf, "%s\n", diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 1e16310ef9..ceb0053317 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2414,6 +2414,14 @@ struct _virDomainLoaderDef { virDomainLoaderDef *virDomainLoaderDefNew(void); void virDomainLoaderDefFree(virDomainLoaderDef *loader); =20 +struct _virDomainVarstoreDef { + char *path; + char *template; +}; + +virDomainVarstoreDef *virDomainVarstoreDefNew(void); +void virDomainVarstoreDefFree(virDomainVarstoreDef *varstore); + typedef enum { VIR_DOMAIN_IOAPIC_NONE =3D 0, VIR_DOMAIN_IOAPIC_QEMU, @@ -2567,6 +2575,7 @@ struct _virDomainOSDef { size_t nacpiTables; virDomainOSACPITableDef **acpiTables; virDomainLoaderDef *loader; + virDomainVarstoreDef *varstore; char *bootloader; char *bootloaderArgs; int smbios_mode; diff --git a/src/conf/virconftypes.h b/src/conf/virconftypes.h index 6e2573035a..0596791a4d 100644 --- a/src/conf/virconftypes.h +++ b/src/conf/virconftypes.h @@ -164,6 +164,8 @@ typedef struct _virDomainLeaseDef virDomainLeaseDef; =20 typedef struct _virDomainLoaderDef virDomainLoaderDef; =20 +typedef struct _virDomainVarstoreDef virDomainVarstoreDef; + typedef struct _virDomainMemballoonDef virDomainMemballoonDef; =20 typedef struct _virDomainMemoryDef virDomainMemoryDef; diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index d81b30f0b6..e5b16f93fa 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -718,6 +718,8 @@ virDomainTPMProfileRemoveDisabledTypeToString; virDomainTPMVersionTypeFromString; virDomainTPMVersionTypeToString; virDomainUSBDeviceDefForeach; +virDomainVarstoreDefFree; +virDomainVarstoreDefNew; virDomainVideoDefaultRAM; virDomainVideoDefClear; virDomainVideoDefFree; --=20 2.53.0 From nobody Tue Feb 10 04:13:02 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1770645925; cv=none; d=zohomail.com; s=zohoarc; b=XAdDwKnDOw/cPYHgaYhmR9EIZTPkNzGwX9QbkStez5lvFZEo/3/Myt40VdgTcZ0pRJ/tO+pSIIAjSN91+7d5HuJTDeP9xTcQnHPAr02XOYh+1OedP1l4SQ4VnN8TNJYv+FdDGtVuv6vK4VzJgICQ/3y0du+M5/63+ugKp5sRoYo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770645925; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=U0R5CUnm/vVEMJNmvv8QrmtIqzljkyhviU8W0R+i5Ik=; b=bvRGsV+Cfe06xzqN0514RcuaAYvDITz8qjBZrBezLxqO8uBf8HUueO3XeMDIjtllfeYFhLN4m4YSAWlWec4B1GrFIesnod1RVcpOuRRqUNFO/LxwE/KzI7X+97E3NaBc2NGCwtMOvfZluLDCdEOo8J9F6hA8jbE7G4Lw6+2ZFjA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1770645925570494.2873354540096; Mon, 9 Feb 2026 06:05:25 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id ACB8043F13; Mon, 9 Feb 2026 09:05:24 -0500 (EST) Received: from [172.19.199.6] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 2A7BC43FBA; Mon, 9 Feb 2026 08:48:29 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 906AA41B1E; Mon, 9 Feb 2026 08:48:24 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id E792741ACC for ; Mon, 9 Feb 2026 08:47:28 -0500 (EST) Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-79-KNOk_8xDNFicd8EGRZIq-g-1; Mon, 09 Feb 2026 08:47:27 -0500 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 5C3ED195608E for ; Mon, 9 Feb 2026 13:47:26 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.226.251]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 5F7D41956053 for ; Mon, 9 Feb 2026 13:47:25 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1770644848; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=U0R5CUnm/vVEMJNmvv8QrmtIqzljkyhviU8W0R+i5Ik=; b=ITj4M0XBDmjrH1A5WQ932yaCfNHqgHzMvIrbfe+8gb2p9TD8YzdHdAzO00Lxwdk0lqgTUd QS44/MPYQuU2PN3JTraUa0njmpJC+BKQxhlintOgeXjLGLpWF53KethRTsbflP5YaD1Dvz m0fCW3uX4FN8qN24mp2UCaO/2qNkQpw= X-MC-Unique: KNOk_8xDNFicd8EGRZIq-g-1 X-Mimecast-MFC-AGG-ID: KNOk_8xDNFicd8EGRZIq-g_1770644846 To: devel@lists.libvirt.org Subject: [PATCH v2 08/38] conf: Update validation to consider varstore element Date: Mon, 9 Feb 2026 14:46:42 +0100 Message-ID: <20260209134712.296670-9-abologna@redhat.com> In-Reply-To: <20260209134712.296670-1-abologna@redhat.com> References: <20260209134712.296670-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: LJbW_tlCN7Bj9aepwvIxPR3tsGSCcP28SEgVqXD-tss_1770644846 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 5RXVDLJKGHSG6FTEBSTEGRFN4AH5574F X-Message-ID-Hash: 5RXVDLJKGHSG6FTEBSTEGRFN4AH5574F X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1770645926537158500 Content-Type: text/plain; charset="utf-8"; x-default="true" The code is reworked quite significantly, but most of the existing checks are preserved. Those that aren't, notably the one that allowed pflash as the only acceptable non-stateless firmware type, are intentionally removed because they will no longer reflect reality once support for the uefi-vars QEMU device is introduced. As a side effect, reworking the function in this fashion resolves a subtle bug: due to the early exits that were being performed when the loader element was missing, the checks at the bottom of the function (related to the shim and kernel elements) were effectively never performed. This is no longer the case. Signed-off-by: Andrea Bolognani --- src/conf/domain_validate.c | 82 +++++++------------ ...-auto-bios-not-stateless.x86_64-latest.err | 2 +- ...-auto-bios-not-stateless.x86_64-latest.xml | 35 ++++++++ ...firmware-auto-bios-nvram.x86_64-latest.err | 2 +- ...nual-bios-not-stateless.x86_64-latest.args | 32 ++++++++ ...anual-bios-not-stateless.x86_64-latest.err | 1 - ...anual-bios-not-stateless.x86_64-latest.xml | 28 +++++++ ...nual-efi-nvram-stateless.x86_64-latest.err | 2 +- ...nvram-template-stateless.x86_64-latest.err | 2 +- ...ware-manual-efi-rw-nvram.x86_64-latest.err | 2 +- tests/qemuxmlconftest.c | 7 +- 11 files changed, 135 insertions(+), 60 deletions(-) create mode 100644 tests/qemuxmlconfdata/firmware-auto-bios-not-stateless.= x86_64-latest.xml create mode 100644 tests/qemuxmlconfdata/firmware-manual-bios-not-stateles= s.x86_64-latest.args delete mode 100644 tests/qemuxmlconfdata/firmware-manual-bios-not-stateles= s.x86_64-latest.err create mode 100644 tests/qemuxmlconfdata/firmware-manual-bios-not-stateles= s.x86_64-latest.xml diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index 1ad614935f..7e3da84767 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -1723,100 +1723,78 @@ virDomainDefOSValidate(const virDomainDef *def, virDomainXMLOption *xmlopt) { virDomainLoaderDef *loader =3D def->os.loader; + virDomainVarstoreDef *varstore =3D def->os.varstore; + virDomainOsDefFirmware firmware =3D def->os.firmware; + int *firmwareFeatures =3D def->os.firmwareFeatures; + bool usesNvram =3D loader && (loader->nvram || loader->nvramTemplate |= | loader->nvramTemplateFormat); =20 - if (def->os.firmware) { + if (firmware) { if (xmlopt && !(xmlopt->config.features & VIR_DOMAIN_DEF_FEATURE_F= W_AUTOSELECT)) { virReportError(VIR_ERR_XML_DETAIL, "%s", _("firmware auto selection not implemented for = this driver")); return -1; } =20 - if (def->os.firmwareFeatures && - def->os.firmwareFeatures[VIR_DOMAIN_OS_DEF_FIRMWARE_FEATURE_EN= ROLLED_KEYS] =3D=3D VIR_TRISTATE_BOOL_YES && - def->os.firmwareFeatures[VIR_DOMAIN_OS_DEF_FIRMWARE_FEATURE_SE= CURE_BOOT] =3D=3D VIR_TRISTATE_BOOL_NO) { + if (firmwareFeatures && + firmwareFeatures[VIR_DOMAIN_OS_DEF_FIRMWARE_FEATURE_ENROLLED_K= EYS] =3D=3D VIR_TRISTATE_BOOL_YES && + firmwareFeatures[VIR_DOMAIN_OS_DEF_FIRMWARE_FEATURE_SECURE_BOO= T] =3D=3D VIR_TRISTATE_BOOL_NO) { virReportError(VIR_ERR_XML_DETAIL, "%s", _("firmware feature 'enrolled-keys' cannot be e= nabled when firmware feature 'secure-boot' is disabled")); return -1; } - - if (!loader) - return 0; - - if (loader->nvram && def->os.firmware !=3D VIR_DOMAIN_OS_DEF_FIRMW= ARE_EFI) { - virReportError(VIR_ERR_XML_DETAIL, - _("firmware type '%1$s' does not support nvram"= ), - virDomainOsDefFirmwareTypeToString(def->os.firm= ware)); - return -1; - } } else { - if (def->os.firmwareFeatures) { + if (firmwareFeatures) { virReportError(VIR_ERR_XML_DETAIL, "%s", _("cannot use feature-based firmware autoselect= ion when firmware autoselection is disabled")); return -1; } =20 - if (!loader) - return 0; - - if (!loader->path) { + if (loader && !loader->path) { virReportError(VIR_ERR_XML_DETAIL, "%s", _("no loader path specified and firmware auto s= election disabled")); return -1; } } =20 - if (loader->readonly =3D=3D VIR_TRISTATE_BOOL_NO) { - if (loader->type =3D=3D VIR_DOMAIN_LOADER_TYPE_ROM) { + if (loader && loader->type =3D=3D VIR_DOMAIN_LOADER_TYPE_ROM) { + if (loader->readonly =3D=3D VIR_TRISTATE_BOOL_NO) { virReportError(VIR_ERR_XML_DETAIL, "%s", _("ROM loader type cannot be used as read/write= ")); return -1; } =20 - if (loader->nvramTemplate) { - virReportError(VIR_ERR_XML_DETAIL, "%s", - _("NVRAM template is not permitted when loader = is read/write")); + if (loader->format && + loader->format !=3D VIR_STORAGE_FILE_RAW) { + virReportError(VIR_ERR_XML_DETAIL, + _("Invalid format '%1$s' for ROM loader type"), + virStorageFileFormatTypeToString(loader->format= )); return -1; } + } =20 - if (loader->nvram) { + if (usesNvram && varstore) { virReportError(VIR_ERR_XML_DETAIL, "%s", - _("NVRAM is not permitted when loader is read/w= rite")); + _("Only one of NVRAM/varstore can be used")); return -1; - } } =20 - if (loader->stateless =3D=3D VIR_TRISTATE_BOOL_YES) { - if (loader->nvramTemplate) { - virReportError(VIR_ERR_XML_DETAIL, "%s", - _("NVRAM template is not permitted when loader = is stateless")); + if (usesNvram || varstore) { + if (firmware && firmware !=3D VIR_DOMAIN_OS_DEF_FIRMWARE_EFI) { + virReportError(VIR_ERR_XML_DETAIL, + _("Firmware type '%1$s' does not support variab= le storage (NVRAM/varstore)"), + virDomainOsDefFirmwareTypeToString(firmware)); return -1; } =20 - if (loader->nvram) { - virReportError(VIR_ERR_XML_DETAIL, "%s", - _("NVRAM is not permitted when loader is statel= ess")); - return -1; - } - } else if (loader->stateless =3D=3D VIR_TRISTATE_BOOL_NO) { - if (def->os.firmware =3D=3D VIR_DOMAIN_OS_DEF_FIRMWARE_NONE) { - if (def->os.loader->type !=3D VIR_DOMAIN_LOADER_TYPE_PFLASH) { - virReportError(VIR_ERR_XML_DETAIL, "%s", - _("Only pflash loader type permits NVRAM")); - return -1; - } - } else if (def->os.firmware !=3D VIR_DOMAIN_OS_DEF_FIRMWARE_EFI) { + if (loader && loader->stateless =3D=3D VIR_TRISTATE_BOOL_YES) { virReportError(VIR_ERR_XML_DETAIL, "%s", - _("Only EFI firmware permits NVRAM")); + _("Variable storage (NVRAM/varstore) is not per= mitted when loader is stateless")); return -1; } - } =20 - if (loader->type =3D=3D VIR_DOMAIN_LOADER_TYPE_ROM) { - if (loader->format && - loader->format !=3D VIR_STORAGE_FILE_RAW) { - virReportError(VIR_ERR_XML_DETAIL, - _("Invalid format '%1$s' for ROM loader type"), - virStorageFileFormatTypeToString(loader->format= )); + if (loader && loader->readonly =3D=3D VIR_TRISTATE_BOOL_NO) { + virReportError(VIR_ERR_XML_DETAIL, "%s", + _("Variable storage (NVRAM/varstore) is not per= mitted when loader is read/write")); return -1; } } diff --git a/tests/qemuxmlconfdata/firmware-auto-bios-not-stateless.x86_64-= latest.err b/tests/qemuxmlconfdata/firmware-auto-bios-not-stateless.x86_64-= latest.err index b058f970a4..743fe27a97 100644 --- a/tests/qemuxmlconfdata/firmware-auto-bios-not-stateless.x86_64-latest.= err +++ b/tests/qemuxmlconfdata/firmware-auto-bios-not-stateless.x86_64-latest.= err @@ -1 +1 @@ -Only EFI firmware permits NVRAM +operation failed: Unable to find 'bios' firmware that is compatible with t= he current configuration diff --git a/tests/qemuxmlconfdata/firmware-auto-bios-not-stateless.x86_64-= latest.xml b/tests/qemuxmlconfdata/firmware-auto-bios-not-stateless.x86_64-= latest.xml new file mode 100644 index 0000000000..062835e351 --- /dev/null +++ b/tests/qemuxmlconfdata/firmware-auto-bios-not-stateless.x86_64-latest.= xml @@ -0,0 +1,35 @@ + + guest + 63840878-0deb-4095-97e6-fc444d9bc9fa + 1048576 + 1048576 + 1 + + hvm + + + + + + + + qemu64 + + + destroy + restart + destroy + + /usr/bin/qemu-system-x86_64 + + +
+ + + + +