NEWS.rst | 17 ++
docs/formatcaps.rst | 2 +-
docs/formatdomain.rst | 47 +++--
docs/formatdomaincaps.rst | 85 +++++----
docs/kbase/secureboot.rst | 46 +++--
docs/manpages/virsh.rst | 23 +--
include/libvirt/libvirt-domain-snapshot.h | 2 +-
include/libvirt/libvirt-domain.h | 4 +-
libvirt.spec.in | 1 +
src/conf/domain_capabilities.c | 10 +
src/conf/domain_capabilities.h | 6 +
src/conf/domain_conf.c | 79 +++++++-
src/conf/domain_conf.h | 9 +
src/conf/domain_postparse.c | 19 --
src/conf/domain_validate.c | 82 +++-----
src/conf/schemas/domaincaps.rng | 9 +
src/conf/schemas/domaincommon.rng | 74 +++++---
src/conf/virconftypes.h | 2 +
src/libvirt_private.syms | 2 +
src/libxl/libxl_domain.c | 6 +
src/qemu/meson.build | 1 +
src/qemu/qemu_capabilities.c | 29 ++-
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 34 ++++
src/qemu/qemu_conf.c | 4 +
src/qemu/qemu_conf.h | 1 +
src/qemu/qemu_driver.c | 26 ++-
src/qemu/qemu_firmware.c | 177 ++++++++++++++++--
src/qemu/qemu_firmware.h | 1 +
src/qemu/qemu_process.c | 84 ++++++---
src/qemu/qemu_validate.c | 20 ++
src/security/security_dac.c | 22 ++-
src/security/security_selinux.c | 53 ++++--
src/security/virt-aa-helper.c | 36 +++-
.../qemu_10.0.0-q35.x86_64+amdsev.xml | 1 +
.../domaincapsdata/qemu_10.0.0-q35.x86_64.xml | 1 +
.../qemu_10.0.0-tcg.x86_64+amdsev.xml | 1 +
.../domaincapsdata/qemu_10.0.0-tcg.x86_64.xml | 1 +
.../qemu_10.0.0-virt.aarch64.xml | 3 +
tests/domaincapsdata/qemu_10.0.0.aarch64.xml | 3 +
tests/domaincapsdata/qemu_10.0.0.ppc64.xml | 1 +
tests/domaincapsdata/qemu_10.0.0.s390x.xml | 1 +
.../qemu_10.0.0.x86_64+amdsev.xml | 1 +
tests/domaincapsdata/qemu_10.0.0.x86_64.xml | 1 +
.../qemu_10.1.0-q35.x86_64+inteltdx.xml | 1 +
.../domaincapsdata/qemu_10.1.0-q35.x86_64.xml | 1 +
.../qemu_10.1.0-tcg.x86_64+inteltdx.xml | 1 +
.../domaincapsdata/qemu_10.1.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_10.1.0.s390x.xml | 1 +
.../qemu_10.1.0.x86_64+inteltdx.xml | 1 +
tests/domaincapsdata/qemu_10.1.0.x86_64.xml | 1 +
.../qemu_10.2.0-q35.x86_64+mshv.xml | 1 +
.../domaincapsdata/qemu_10.2.0-q35.x86_64.xml | 1 +
.../qemu_10.2.0-tcg.x86_64+mshv.xml | 1 +
.../domaincapsdata/qemu_10.2.0-tcg.x86_64.xml | 1 +
.../qemu_10.2.0-virt.aarch64.xml | 3 +
tests/domaincapsdata/qemu_10.2.0.aarch64.xml | 3 +
.../qemu_10.2.0.x86_64+mshv.xml | 1 +
tests/domaincapsdata/qemu_10.2.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_11.0.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_11.0.0-tcg.x86_64.xml | 1 +
.../qemu_11.0.0-virt.aarch64.xml | 3 +
tests/domaincapsdata/qemu_11.0.0.aarch64.xml | 3 +
tests/domaincapsdata/qemu_11.0.0.x86_64.xml | 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.ppc64.xml | 1 +
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_7.0.0.ppc64.xml | 1 +
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_7.1.0.ppc64.xml | 1 +
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 1 +
.../qemu_7.2.0-hvf.x86_64+hvf.xml | 1 +
.../domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 1 +
.../qemu_7.2.0-tcg.x86_64+hvf.xml | 1 +
.../domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_7.2.0.ppc.xml | 1 +
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_8.1.0.s390x.xml | 1 +
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 1 +
.../qemu_8.2.0-tcg-virt.loongarch64.xml | 1 +
.../domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 1 +
.../qemu_8.2.0-virt.aarch64.xml | 3 +
.../qemu_8.2.0-virt.loongarch64.xml | 1 +
tests/domaincapsdata/qemu_8.2.0.aarch64.xml | 3 +
tests/domaincapsdata/qemu_8.2.0.armv7l.xml | 1 +
tests/domaincapsdata/qemu_8.2.0.s390x.xml | 1 +
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_9.0.0.sparc.xml | 1 +
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 1 +
.../qemu_9.1.0-tcg-virt.riscv64.xml | 1 +
.../domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 1 +
.../qemu_9.1.0-virt.riscv64.xml | 1 +
tests/domaincapsdata/qemu_9.1.0.s390x.xml | 1 +
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 1 +
.../qemu_9.2.0-hvf.aarch64+hvf.xml | 3 +
.../qemu_9.2.0-q35.x86_64+amdsev.xml | 1 +
.../domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 1 +
.../qemu_9.2.0-tcg.x86_64+amdsev.xml | 1 +
.../domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_9.2.0.s390x.xml | 1 +
.../qemu_9.2.0.x86_64+amdsev.xml | 1 +
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 1 +
.../caps_10.0.0_aarch64.xml | 1 +
.../caps_10.0.0_x86_64+amdsev.xml | 1 +
.../caps_10.0.0_x86_64.xml | 1 +
.../caps_10.1.0_s390x.xml | 1 +
.../caps_10.1.0_x86_64+inteltdx.xml | 1 +
.../caps_10.1.0_x86_64.xml | 1 +
.../caps_10.2.0_aarch64.xml | 1 +
.../caps_10.2.0_x86_64+mshv.xml | 1 +
.../caps_10.2.0_x86_64.xml | 1 +
.../caps_11.0.0_aarch64.xml | 1 +
.../caps_11.0.0_x86_64.xml | 1 +
.../etc/qemu/firmware/20-bios.json | 1 -
.../etc/qemu/firmware/20-libvirt-bios.json | 1 +
.../etc/qemu/firmware/59-combined.json | 1 -
.../qemu/firmware/59-libvirt-combined.json | 1 +
...{92-masked.json => 92-libvirt-masked.json} | 0
.../{10-bios.json => 10-libvirt-bios.json} | 0
.../90-edk2-aarch64-qemuvars-sb-enrolled.json | 29 +++
...0-edk2-ovmf-qemuvars-x64-sb-enrolled.json} | 14 +-
...combined.json => 90-libvirt-combined.json} | 0
.../firmware/91-edk2-aarch64-qemuvars-sb.json | 28 +++
...json => 91-edk2-ovmf-qemuvars-x64-sb.json} | 15 +-
.../{91-bios.json => 91-libvirt-bios.json} | 0
...{92-masked.json => 92-libvirt-masked.json} | 0
...3-invalid.json => 93-libvirt-invalid.json} | 0
tests/qemufirmwaretest.c | 63 +++++--
...-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 +-
...fi-enrolled-keys-aarch64.aarch64-8.2.0.err | 1 +
...-enrolled-keys-aarch64.aarch64-latest.args | 32 ++++
...i-enrolled-keys-aarch64.aarch64-latest.xml | 32 ++++
...irmware-auto-efi-enrolled-keys-aarch64.xml | 20 ++
...o-efi-varstore-aarch64.aarch64-latest.args | 32 ++++
...to-efi-varstore-aarch64.aarch64-latest.xml | 32 ++++
.../firmware-auto-efi-varstore-aarch64.xml | 18 ++
...e-auto-efi-varstore-q35.x86_64-latest.args | 35 ++++
...re-auto-efi-varstore-q35.x86_64-latest.xml | 40 ++++
.../firmware-auto-efi-varstore-q35.xml | 18 ++
...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 +-
...ual-efi-varstore-aarch64.aarch64-8.2.0.err | 1 +
...l-efi-varstore-aarch64.aarch64-latest.args | 32 ++++
...al-efi-varstore-aarch64.aarch64-latest.xml | 32 ++++
.../firmware-manual-efi-varstore-aarch64.xml | 19 ++
...e-manual-efi-varstore-q35.x86_64-8.2.0.err | 1 +
...manual-efi-varstore-q35.x86_64-latest.args | 35 ++++
...-manual-efi-varstore-q35.x86_64-latest.xml | 40 ++++
.../firmware-manual-efi-varstore-q35.xml | 19 ++
tests/qemuxmlconftest.c | 16 +-
tests/testutilsqemu.c | 2 +
tools/virsh-domain.c | 10 +-
tools/virsh-snapshot.c | 2 +-
173 files changed, 1546 insertions(+), 307 deletions(-)
delete mode 120000 tests/qemufirmwaredata/etc/qemu/firmware/20-bios.json
create mode 120000 tests/qemufirmwaredata/etc/qemu/firmware/20-libvirt-bios.json
delete mode 120000 tests/qemufirmwaredata/etc/qemu/firmware/59-combined.json
create mode 120000 tests/qemufirmwaredata/etc/qemu/firmware/59-libvirt-combined.json
rename tests/qemufirmwaredata/etc/qemu/firmware/{92-masked.json => 92-libvirt-masked.json} (100%)
rename tests/qemufirmwaredata/home/user/.config/qemu/firmware/{10-bios.json => 10-libvirt-bios.json} (100%)
create mode 100644 tests/qemufirmwaredata/usr/share/qemu/firmware/90-edk2-aarch64-qemuvars-sb-enrolled.json
copy tests/qemufirmwaredata/usr/share/qemu/firmware/{90-combined.json => 90-edk2-ovmf-qemuvars-x64-sb-enrolled.json} (55%)
copy tests/qemufirmwaredata/usr/share/qemu/firmware/{90-combined.json => 90-libvirt-combined.json} (100%)
create mode 100644 tests/qemufirmwaredata/usr/share/qemu/firmware/91-edk2-aarch64-qemuvars-sb.json
rename tests/qemufirmwaredata/usr/share/qemu/firmware/{90-combined.json => 91-edk2-ovmf-qemuvars-x64-sb.json} (52%)
rename tests/qemufirmwaredata/usr/share/qemu/firmware/{91-bios.json => 91-libvirt-bios.json} (100%)
rename tests/qemufirmwaredata/usr/share/qemu/firmware/{92-masked.json => 92-libvirt-masked.json} (100%)
rename tests/qemufirmwaredata/usr/share/qemu/firmware/{93-invalid.json => 93-libvirt-invalid.json} (100%)
create mode 100644 tests/qemuxmlconfdata/firmware-auto-bios-not-stateless.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-enrolled-keys-aarch64.aarch64-8.2.0.err
create mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-enrolled-keys-aarch64.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-enrolled-keys-aarch64.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-enrolled-keys-aarch64.xml
create mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-varstore-aarch64.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-varstore-aarch64.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-varstore-aarch64.xml
create mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-varstore-q35.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-varstore-q35.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-varstore-q35.xml
create mode 100644 tests/qemuxmlconfdata/firmware-manual-bios-not-stateless.x86_64-latest.args
delete mode 100644 tests/qemuxmlconfdata/firmware-manual-bios-not-stateless.x86_64-latest.err
create mode 100644 tests/qemuxmlconfdata/firmware-manual-bios-not-stateless.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/firmware-manual-efi-varstore-aarch64.aarch64-8.2.0.err
create mode 100644 tests/qemuxmlconfdata/firmware-manual-efi-varstore-aarch64.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/firmware-manual-efi-varstore-aarch64.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/firmware-manual-efi-varstore-aarch64.xml
create mode 100644 tests/qemuxmlconfdata/firmware-manual-efi-varstore-q35.x86_64-8.2.0.err
create mode 100644 tests/qemuxmlconfdata/firmware-manual-efi-varstore-q35.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/firmware-manual-efi-varstore-q35.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/firmware-manual-efi-varstore-q35.xml