Subject: CVS commit: pkgsrc/emulators/qemu
From: Ryo ONODERA
Date: 2022-05-19 18:10:15
Message id: 20220519161015.F20A2FAEB@cvs.NetBSD.org

Log Message:
qemu: Update to 7.0.0

CHangelog:
== System emulation ==

=== Incompatible changes ===

Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html \ 
'Removed features' ] page for details of suggested replacement functionality

=== New deprecated options and features ===

Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html \ 
"Deprecated Features"] chapter of the QEMU System Emulation User's \ 
Guide for further details of the deprecations and their suggested replacements.

Additional note: The QEMU project currently considers to drop the slirp \ 
submodule in future releases, i.e. the QEMU tarball won't embed the code for \ 
user mode networking in the future anymore, so that an external libslirp \ 
installation is required. Most OS distribution already ship a libslirp package \ 
nowadays (except for OpenBSD which is already known and hopefully will be fixed \ 
soon), but if you are still using another OS distribution that does not provide \ 
a libslirp package yet, please send a note to the \ 
[[Contribute/MailingLists|qemu-devel mailing list]] and ask your OS vendor to \ 
include such a package in the next release.

=== 68k ===

=== Alpha ===

=== Arm ===

* The virt board has gained a new control knob to disable passing a RNG seed in \ 
the DTB (dtb-kaslr-seed)
* The AST2600 SoC now supports a dummy version of the i3c device
* The virt board can now run guests with KVM on hosts with restricted IPA ranges
* The virt board now supports virtio-mem-pci
* The virt board now supports specifying the guest CPU topology
* On the virt board, we now enable PAuth when using KVM or hvf and the host CPU \ 
supports it
* xlnx-versal-virt now emulates the PMC SLCR
* xlnx-versal-virt now emulates the OSPI flash memory controller
* xlnx-zynqmp now models the CRF and APU control
* The Arm GICv3 ITS now emulates the previously missing MOVI and MOVALL commands
* New board model: mori-bmc
* We now support emulating FEAT_LVA
* We now support emulating FEAT_LPA
* We now support emulating FEAT_LPA2. (Note that this is disabled by default for \ 
the 'virt' board's versioned machine types prior to 7.0 (ie 'virt-6.2', \ 
'virt-6.1', etc) because Linux kernels prior to v5.12 have a bug which means \ 
they will not boot on a CPU which has LPA2.)

=== AVR ===

=== Hexagon ===

=== HPPA ===
* Support up to 16 virtual CPUs
* Improved artist graphics driver for HP-UX VDE, HP-UX CDE and Linux framebuffer
* Mouse cursor focus and positioning now works much better under HP-UX X11
* Emulated TOC button can be triggered with "nmi" in the qemu monitor
* Added support for Qemu SCSI boot order option
* Possibility to change system HOSTID for HP-UX and Linux
* Added firmware 16x32 pixel bitmap font for use on HDPI screens
* Ability to choose serial or graphical console as default firmware console

=== Microblaze ===

=== MIPS ===

=== Nios2 ===

=== OpenRISC ===
==== Machines ====
* Support up to 4 cores up from 2 on the OpenRISC sim machine
* Support loading an external initrd image on the OpenRISC sim machine
* OpenRISC sim machine now automatically generates a device tree and passes it \ 
to the kernel

=== PowerPC ===
* Updates of PowerNV and pSeries documentation

==== Machines ====

* Deprecation of taihu machine
* Large rework of PPC405 machine
* General cleanup for Mac machines
* PowerNV PHB3/4 cleanups
* PowerNV XIVE improvements
* Extension of the powernv10 machine with XIVE2 ans PHB5 models
* New SLOF for PPC970 and POWER5+
* ppc: nested KVM HV for spapr virtual hypervisor
* spapr: nvdimm: Introduce spapr-nvdimm device

==== Extensions/removal====

* Removal of 401/403 CPUs
* Removal of 601/602 CPUs
* Removal of SoftTLBs support for PPC74x CPUs

* Initial support for PMU
* PMU EBB support
* Rework of powerpc exception handling
* Support for new ISA31 instructions
* Large cleanup of FPU implementation

==== Fixes ====

* Fixes for ivshmem
* Fixes for POWER5+ pseries
* Fixes for FPU exceptions
* Fixes for exception models in MPCx and 60x CPUs
* Fix for e6500 CPU
* Fixes for the 7448 CPU
* Exception and TLB fixes for the 405 CPU
* 603 CPUs fixes
* Book-E exception fixes
* Clang fixes
* VOF installation
* Radix MMU fixes

=== Renesas RX ===

=== Renesas SH ===

=== RISC-V ===
==== Extensions ====
* Add support for ratified 1.0 Vector extension
* Support for the Zve64f and Zve32f extensions
* Drop support for draft 0.7.1 Vector extension
* Support Zfhmin and Zfh extensions
* RISC-V KVM support
* Mark Hypervisor extension as non experimental
* Enable Hypervisor extension by default
* Support for svnapot, svinval and svpbmt extensions
* Experimental support for 128-bit CPUs
* Initial support for XVentanaCondOps custom extension
* stval and mtval support for illegal instructions
* Support for the UXL field in xstatus
* Add support for zfinx, zdinx and zhinx{min} extensions

==== Machines ====
* OpenSBI binary loading support for the Spike machine
* Improve kernel loading for non-Linux platforms
* SiFive PDMA 64-bit support
* Support 32 cores on the virt machine
* Add AIA support for virt machine

==== Fixes ====
* Fix illegal instruction when PMP is disabled
* Corrections for the Vector extension
* Fixes for OpenTitan timer
* Correction of OpenTitan PLIC stride length
* Removal of OpenSBI ELFs
* Fix trap cause for RV32 HS-mode CSR access from RV64 HS-mode
* Fixup OpenTitan SPI address

=== s390x ===

* Support Linux kernel command line length of more than 896 bytes (if the guest \ 
kernel supports it, too)
* Emulate the instructions from the "Miscellaneous-Instruction-Extensions \ 
Facility 3" (a z15 extension)
* Fixes for various emulated instructions (SLDA, SRDA, SLAG, BRASL, BRCL)

=== SPARC ===

=== Tricore ===

=== x86 ===
* Support for Intel AMX.
==== KVM ====

==== x86_64 ====

==== AMD SEV ====

=== Xtensa ===

=== Device emulation and assignment ===

==== ACPI / SMBIOS ====
* advertise i8042 in FADT if it is present (5334bf5703)
* new ''acpi-erst'' device, for logging guest evens using standard ACPI ERST \ 
interface (0ef0506e559)
* added support for new ''processor-id'' SMBIOS option (cb5fb04fe6)
* fixed SMBIOS memory handles overlap for large VMs (8Tb and more) (a379d4550c4)
* added 'SMBIOS 3.0' support in SeaBIOS, in QEMU it's opt-in feature, use \ 
''-machine smbios-ep=3-0'' option to enable it
* fixed regression in ACPI table headers where OEM ID and OEM Table ID weren't \ 
padded correctly (748c030f360)
* fixed QEMU crash when started with user provided SLIC table (8cdb99af45)
* arm/virt: add VIOT table to describe virtio-iommu (cf1a5cc935c)
* x86: 'pc' machine type: fixed acpi-index not being migrated which might result \ 
in NIC name change if migration happens when guest is asking QEMU for it. \ 
Migration should work properly since 7.0 and newer machine types, for older \ 
machine types migration of acpi-index is broken and can't be fixed for \ 
compatibility reasons.

==== Audio ====

==== Block devices ====

==== Graphics ====

==== I2C ====

==== Input devices ====

==== IPMI ====

==== Multi-process QEMU ====

==== Network devices ====

==== NVDIMM ====

==== NVMe ====

===== Emulated NVMe Controller =====

==== PCI/PCIe ====
* Q35: fix PCIe device becoming disabled after migration when ACPI based PCI \ 
hotplug is used (6b0969f1ec)
* initial bits of SR/IOV support (250346169)
* arm/virt: fixed PXB interrupt routing (e609301b45)
* arm/virt: support for virtio-mem-pci (b1b87327a9)

==== SCSI ====

==== SD card ====

==== SMBIOS ====

==== TPM ====

==== USB ====

==== VFIO ====

==== virtio ====

==== Xen ====

==== fw_cfg ====

==== 9pfs ====
* \ 
[https://gitlab.com/qemu-project/qemu/-/commit/e64e27d5cb103b7764f1a05b6eda7e7fedd517c5 \ 
Fixed 9p server crash] ([https://gitlab.com/qemu-project/qemu/-/issues/841 issue \ 
#841]) that happened on some host systems due to incorrect (system dependant) \ 
handling of struct dirent size.
* \ 
[https://gitlab.com/qemu-project/qemu/-/commit/f45cc81911adc7726e8a2801986b6998b91b816e \ 
Added support for macOS hosts].

==== virtiofs ====
* Fix for CVE-2022-0358 - behaviour with supplementary groups and SGID directories
* Improved security label support
* The virtiofsd in qemu is now starting to be deprecated; please start using and \ 
contributing to [https://gitlab.com/virtio-fs/virtiofsd Rust virtiofsd]

==== Semihosting ====

* We now generate sane numbers for SYS_HEAPINFO under system emulation

=== Audio ===

=== Character devices ===

=== Crypto subsystem ===

=== Authorization subsystem ===

=== GUI ===
* a new [https://www.qemu.org/docs/master/interop/dbus-display.html \ 
"-display dbus"] option to export the display for external processes. \ 
A [https://gitlab.com/marcandre.lureau/qemu-display/ gtk4-rs based widget] is in \ 
the works (for future Boxes, virt-viewer etc). Potential other users include \ 
remote desktop protocols.

=== GDBStub ===

=== TCG Plugins ===
* new coverage plugin in contrib which support drcov format traces

=== Host support ===

=== Memory backends ===

=== Migration ===

=== Monitor ===

==== QMP ====

==== HMP ====

=== Network ===

=== Block device backends and tools ===
* Fleecing backup has been made more flexible: Fleecing backup means exposing a \ 
temporary snapshot of an actively used image, and having the copy-before-write \ 
(CBW) filter (or historically the backup block job) copy data there from areas \ 
written by the guest to the active image, before they are overwritten, so that \ 
the snapshot keeps representing the point-in-time state of the disk when the \ 
snapshot was created.  This snapshot can then be read (either by qemu itself \ 
using the backup or mirror block jobs, or by outside users e.g. via an NBD \ 
export) to create a backup.  As of qemu 7.0, instead of reading the snapshot \ 
image directly, it can also be accessed through the new snapshot-access block \ 
driver, by installing such a node on top of the CBW filter.  Doing so has some \ 
advantages over accessing the snapshot image directly; for example, the image \ 
can then be in any format (not just COW formats like qcow2), because the CBW \ 
filter keeps track of its allocation bitmap.  Once an a
rea has been backed up, users can send a discard request to mark it as done, so \ 
that the CBW filter will not potentially copy it to the snapshot image on a \ 
subsequent guest write.  Furthermore, the CBW filter now has a bitmap parameter \ 
that allows limiting its scope as specified by the bitmap at the time the CBW \ 
filter node is created.
* A bug in caching block status has been fixed that was causing over-eager \ 
treatment of a format layer as all data rather than detecting holes, if an \ 
earlier block status query had merely been checking for which portions of the \ 
backing chain were allocated.  While the bug did not affect guest-visible data, \ 
it caused some performance regressions, particularly noticeable and easy to \ 
trigger when using 'qemu-nbd --allocation-depth'.
* The ''qemu-nbd'' program has gained a new ''--tls-hostname'' parameter to \ 
allow TLS validation against a different hostname, such as when setting up TLS \ 
through a TCP tunnel, and now supports TLS over Unix sockets.
* The SSH driver supports sha256 fingerprints with pre-blockdev command line \ 
configuration syntax.
* The SSH driver will print the actual fingerprint and its type when failing to \ 
validate a host key.

=== Tracing ===

=== Miscellaneous ===

* The -sandbox 'spawn' filter, will now correctly block use of the clone syscall \ 
for spawnnig processes, while allowing thread creation
* The -sandbox 'spawn' filter, will now entirely block use of the clone3 syscall \ 
entirely since there is no way to access its flags parameter from seccomp to \ 
distinguish thread vs process creation
* The -sandbox 'spawn' filter, will now block setns, unshare and execveat \ 
syscalls since they are not desired.

== User-mode emulation ==

* fixed a bug that caused issues mapping the ARM commpage on 32 bit builds

=== binfmt_misc ===

=== Hexagon ===

== TCG ==

User-mode emulation (linux-user, bsd-user) will enforce guest alignment \ 
constraints and raise SIGBUS to the guest program as appropriate.

=== ARM ===

Support for for ARMv4 and ARMv5 hosts has been dropped.  These older Arm \ 
versions do not have support for misaligned memory access; such support was \ 
added to ARMv6.  Since ARMv5 is quite old, it is presumed that such systems do \ 
not have sufficient RAM to even run QEMU, and so practically speaking no systems \ 
are impacted.

== Guest agent ==
* Support Windows 11 for <code>guest-get-osinfo</code> command
* Fix memory leaks in Windows <code>guest-get-fsinfo</code> command

== Build Information ==

=== Python ===

=== GIT submodules ===

=== Container Based Builds ===

* a large number of containers are now updated by lcitool
* TESTS and IMAGES environment variables can be used filter again when building \ 
against all docker targets

=== VM Based Builds ===

=== Build Dependencies ===
* xfs libraries are not needed anymore for build, since the only ioctl used by \ 
qemu which was defined there got local implementation.  With this, \ 
--enable-xfsctl configure option is also gone.

=== Windows ===

=== Testing and CI ===

Files:
RevisionActionfile
1.295modifypkgsrc/emulators/qemu/Makefile
1.81modifypkgsrc/emulators/qemu/PLIST
1.191modifypkgsrc/emulators/qemu/distinfo
1.11modifypkgsrc/emulators/qemu/patches/patch-meson.build