The 12.4.0 release of both libvirt and libvirt-python is tagged and
signed tarballs are available at

    https://download.libvirt.org/
    https://download.libvirt.org/python/

Thanks everybody who helped with this release by sending patches,
reviewing, testing, or providing feedback. Your work is greatly
appreciated.

* Removed features

  * qemu: Bump minimum version to QEMU-7.2

    The minimal required version of QEMU was bumped to 7.2.0.

* New features

  * resctrl: Add energy monitoring via resctrl's PERF_PKG_MON

    Add support for Linux kernel 7.0 feature - energy monitoring via resctrl.
    This allows to monitor per-VM energy consumption on supported platforms.
    Implemented via ``energytune`` element in ``cputune`` .

  * Add channel lifecycle domain event

    Add support for a new domain event which can be used to track the state of
    any virtio channel. It is similar to guest agent lifecycle event.

  * bhyve: Add memory tuning support

    The bhyve driver now allows setting a domain's memory hard limit using the
    following syntax::

     <memtune>
       <hard_limit unit='G'>1</hard_limit>
     </memtune>

    It also implements the ``virDomainGetMemoryParameters()`` and
    ``virDomainSetMemoryParameters()`` APIs for controlling
    the memory hard limit of a running domain.

  * bhyve: Add virtio-console device support

    Domain XML can now use ``virtio-console`` devices. Among other things,
    these devices can be used to configure a QEMU Guest Agent::

     <devices>
       <channel type='unix'>
         <source mode='bind' path='/var/run/libvirt/bhyve/bhyve.agent'/>
         <target type='virtio' name='org.qemu.guest_agent.0'/>
         <address type='virtio-serial' controller='0' bus='0' port='1'/>
       </channel>
     </devices>

    Additionally, the ``virDomainQemuAgentCommand()`` API which allows
    running arbitrary guest agent commands is now supported.

    The ``virDomainGetHostname()`` API, used to query the hostname of a guest,
    now supports using the guest agent as a source of information.

* Improvements

  * vircgroupv2: Implement freezer controller

    The CGroupV2 code now supports freezer controller which allows suspending
    and resuming of LXC domains.

  * virnetdevbandwidth: Only clear qdisc for defined directions

    Setting a QoS on a vNIC no longer leads to clearing (preconfigured) root
    queuing discipline ('qdisc`) in both directions (egress, ingress), only the
    affected one.

* Bug fixes

  * storage: ZFS: Fix incorrect volsize and refreservation on zvol creation

    When creating a zvol, the ZFS driver listed all volumes in the pool and
    updated the new volume's size with data from the last volume in the list
    rather than the matching one. Now it correctly returns on valid one.

  * esx/vmware: VMs are tracked under different UUIDs by default

    The VMWare-related drivers were using allegedly unique IDs for domains, but
    it turned out they were not completely unique, even for the same host.  That
    caused an issue where a different domain could have been acted upon then
    requested.  Unfortunately, to make this work, the UUIDs of all
    VMWare-related domains will change from this release.  In order to use the
    pre-v12.4.0 behaviour there is a new URI query parameter ``legacy_uuid``
    which, if set to ``1``, will revert to the older way of working.

  * virsh: Provide no auth callbacks for bash completer

    The bash completer script calls virsh to provide completions. In some cases
    the underlying virsh might get stuck waiting on input (e.g. password for
    SSH session). Not anymore.

  * virauth: Verify virConnectAuth::cb is set in virAuthGetPasswordPath()

    A check was missing in ``virAuthGetPasswordPath()`` which might lead to
    crash of the client library when NULL callback was provided. This is now
    fixed.

Enjoy.

Jirka

Reply via email to