This is landing more or less on time :-)
I just tagged it in git, and pushed signed tarball and source rpm to the usual
place:
https://libvirt.org/sources/
I also made a release for the Python bindings you can find at
https://libvirt.org/sources/python/
I had to do a bit of workaround since virschematest failes on my machine
this could be related to my latest release of libxml2 or another problem
I didn't really had time to find out why (changes in RelaxNG implementation
likely culprits).
This release includes relatively larse set of changes, notably it now
relies on glib and removes the Perl dependency:
New features:
- qemu: Introduce support for ARM CPU features
The only features supported at the moment are SVE vector lengths, which
were introduced in QEMU 4.2.0.
- qemu: Support boot display for GPU mediated devices
Until now, GPU mediated devices generally did not show any output until
the guest OS had initialized the vGPU. By specifying the ramfb
attribute, QEMU can be configured to use ramfb as a boot display for
the device: this allows for display of firmware messages, boot loader
menu, and other output before the guest OS has initialized the vGPU.
- Add API to change the response timeout for guest agent commands
By default, when a command is sent to the guest agent, libvirt waits
forever for a response from the guest agent. If the guest is
unresponsive for any reason, this can block the calling thread
indefinitely. By setting a custom timeout using
virDomainAgentSetResponseTimeout(), API users can change this behavior.
Improvements:
- Devices CGroup v2 support
Libvirt supported all controllers of CGroup v2 but the devices
controller which is implemented in this release.
- Cold plug of sound device
The QEMU driver now can handle cold plug of <sound/> devices.
- Probe for default CPU types
With QEMU 4.2.0 we can probe for the default CPU model used by QEMU for
a particular machine type and store it in the domain XML. This way the
chosen CPU model is more visible to users and libvirt will make sure
the guest will see the exact same CPU after migration.
- Adaptation to qemu's blockdev
QEMU introduced a new way of specifying disks on the command line which
enables fine-grained control over the block stack. Libvirt has adapted
to this.
Refactors:
- More GLib integration
More patches were merged that replace our internal functions with GLib
ones. Also some effort was invested in replacing gnulib modules with
GLib functions.
- Rewrite of Perl scripts into Python
Libvirt used Perl scripts to check for coding style, generate some code
and things like that. To bring the number of languages used down, these
scripts were rewritten into Python.
Bug fixes:
- Warn verbosely if using old loader:nvram pairs
Some distributions still use --with-loader-nvram or nvram variable in
qemu.conf. This is now discouraged in favour of FW descriptors.
However, instead of silently ignoring user's config, libvirt warns if
outdated config is detected.
- Drop pconfig from Icelake-Server CPU model
The pconfig feature was enabled in QEMU by accident in 3.1.0. All other
newer versions do not support it and it was removed from the
Icelake-Server CPU model in QEMU.
- Wait longer for device removal confirmation on PPC64
After sending device hot unplug request to QEMU, libvirt waits up to 5
seconds for qemu to confirm the device removal. On some architectures
(like PPC64) this can take longer time and libvirt now reflects that.
- Forcibly create nodes in domain's namespace
The QEMU driver starts a domain in a namepsace with private /dev and
creates only those nodes there which the domain is configured to have.
However, it may have happened that if a node changed its minor number
this change wasn't propagated to the namespace.
- Various AppArmor bugfixes
The AppArmor driver now knows how to handle <shmem/> devices and also
snapshotting more disks at once.
- Improved video model autoselection
If a graphics device was added to XML that had no video device, libvirt
automatically added a video device which was always of type 'cirrus' on
x86_64, even if the underlying qemu didn't support cirrus. Libvirt now
bases the decision on qemu's capabilities.
Thanks everybody who contributed to this release, with report, patches,
docs, reviews, localization, etc ...
Like previous years the the next release 6.0.0 will be mid-January as
the end of the year generates serious slowdown and February is short.
So enjoy the release until next year's one :-)
Daniel
--
Daniel Veillard | Red Hat Developers Tools
http://developer.redhat.com/
veillard(a)redhat.com | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
http://veillard.com/ | virtualization library
http://libvirt.org/