libvirt: Update to version 12.9.0

Message ID 20261103161610.2282465-2-adolf.belka@ipfire.org
State New
Headers
Series libvirt: Update to version 12.9.0 |

Commit Message

Adolf Belka 3 Nov 2026, 4:16 p.m. UTC
- Update from version 12.8.0 to 12.9.0
- Update of rootfile
- Patch used for version 12.8.0 has now been merged in to tarball.
- Changelog
12.9.0
New features
  * bhyve: support session mode
    The bhyve driver now supports the session mode: ``bhyve:///session``.
    It requires bhyve monitor mode support, so at the time of writing it
    is available to -CURRENT users only.
  * bhyve: support boot order configuration for disks
    The bhyve driver now supports boot order configuration for the
    SATA and VirtIO disks with ``<boot order='..'/>``. Now it also
    uses the QEMU-compatible ``fwcfg`` interface.
  * bhyve: TPM support
    The bhyve driver now supports TPM with an external emulator.
  * bhyve: implement ``virDomainReset()``
    The bhyve driver now implements the ``virDomainReset()`` API
    (accessible via ``virsh reset``).
  * FreeBSD: support isolated bridge ports
    libvirt on FreeBSD now supports isolated bridge ports such as::
      <interface type='bridge'>
        <source bridge='bridge0'/>
        <model type='virtio'/>
        <port isolated='yes'/>
      </interface>
Improvements
  * qemu: Emit UNDEFINED event when undefining source after migration
    After successfully migrating a domain with the ``VIR_MIGRATE_UNDEFINE_SOURCE``
    flag, the QEMU driver now emits a ``VIR_DOMAIN_EVENT_UNDEFINED`` lifecycle
    event on the source host. The event includes the newly added
    VIR_DOMAIN_EVENT_UNDEFINED_MIGRATED detail.
  * qemu: report guest reboot as shutdown detail for on_reboot=destroy
    Libvirt now reports the reason of shutdown event properly.
  * qemu: Consider vhost net for MSHV accelerator
    This release enables vhost networking for both KVM and MSHV accelerators.
Bug fixes
  * bhyve: fix shutdown handling on arm64
    Signal-based shutdown now correctly handles bhyve terminating directly
    on arm64, preventing stopped domains from remaining reported as running.
  * virpci: fix handling newline in PCI device class
    This releases fixes a regression introduced in ``v12.2.0`` release which
    kept libvirt unable to parse PCI related files from a sysfs mount, if they
    contained a newline character.
  * security: Check if R/O or shared disk is not directory
    Starting a domain with a read only disk (e.g. cdrom), or attaching one to
    an already running domain might have resulted in mangled permissions, if a
    directory was given as the disk source.
  * esx: Avoid integer overflow in esxDomainGetInfo()
    The ESX driver implementation for ``virDomainGetInfo()`` API fetches domain
    memory size and domain max memory size in MiB and then multiplies both
    values by factor of 1024, since the API reports those sizes in KiB. But
    these multiplications can overflow and thus report invalid values. An error
    is reported instead.
  * conf: Deny negative vcpu count
    If a negative value was specified for the number of vCPUs in domain XML,
    libvirt would try to allocate absurdly large amounts of memory which would
    trigger OOM killer and kill the daemon. Non-positive values are forbidden
    now.

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 config/rootfiles/packages/libvirt             |  18 ++-
 lfs/libvirt                                   |   7 +-
 ...riority-regardless-of-driver_network.patch | 103 ------------------
 3 files changed, 17 insertions(+), 111 deletions(-)
 delete mode 100644 src/patches/libvirt/libvirt-12.8.0-set-firewall_backend_priority-regardless-of-driver_network.patch
  

Patch

diff --git a/config/rootfiles/packages/libvirt b/config/rootfiles/packages/libvirt
index 77382d468..5b3cd573f 100644
--- a/config/rootfiles/packages/libvirt
+++ b/config/rootfiles/packages/libvirt
@@ -52,6 +52,16 @@  etc/logrotate.d/libvirtd
 etc/logrotate.d/libvirtd.libxl
 #etc/logrotate.d/libvirtd.lxc
 etc/logrotate.d/libvirtd.qemu
+etc/logrotate.d/virtchd
+etc/logrotate.d/virtinterfaced
+etc/logrotate.d/virtlockd
+etc/logrotate.d/virtlogd
+etc/logrotate.d/virtnodedevd
+etc/logrotate.d/virtnwfilterd
+etc/logrotate.d/virtproxyd
+etc/logrotate.d/virtqemud
+etc/logrotate.d/virtsecretd
+etc/logrotate.d/virtstoraged
 etc/rc.d/init.d/libvirt-guests
 etc/rc.d/init.d/libvirtd
 etc/rc.d/init.d/virtlogd
@@ -90,16 +100,16 @@  usr/bin/virt-xml-validate
 #usr/lib/libvirt
 #usr/lib/libvirt-admin.so
 usr/lib/libvirt-admin.so.0
-usr/lib/libvirt-admin.so.0.12008.0
+usr/lib/libvirt-admin.so.0.12009.0
 #usr/lib/libvirt-lxc.so
 usr/lib/libvirt-lxc.so.0
-usr/lib/libvirt-lxc.so.0.12008.0
+usr/lib/libvirt-lxc.so.0.12009.0
 #usr/lib/libvirt-qemu.so
 usr/lib/libvirt-qemu.so.0
-usr/lib/libvirt-qemu.so.0.12008.0
+usr/lib/libvirt-qemu.so.0.12009.0
 #usr/lib/libvirt.so
 usr/lib/libvirt.so.0
-usr/lib/libvirt.so.0.12008.0
+usr/lib/libvirt.so.0.12009.0
 #usr/lib/libvirt/connection-driver
 usr/lib/libvirt/connection-driver/libvirt_driver_ch.so
 usr/lib/libvirt/connection-driver/libvirt_driver_interface.so
diff --git a/lfs/libvirt b/lfs/libvirt
index 891286f94..c1a57b6b7 100644
--- a/lfs/libvirt
+++ b/lfs/libvirt
@@ -26,7 +26,7 @@  include Config
 
 SUMMARY	   = Server side daemon and supporting files for libvirt
 
-VER        = 12.8.0
+VER        = 12.9.0
 
 THISAPP    = libvirt-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -35,7 +35,7 @@  DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 SUP_ARCH   = x86_64 aarch64
 PROG       = libvirt
-PAK_VER    = 48
+PAK_VER    = 49
 
 DEPS       = ebtables libpciaccess ovmf swtpm qemu
 
@@ -49,7 +49,7 @@  objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 3bcef7dc68ff3bd36bd9fff8a537fe3ad0b1e8e53dc43e88541cff1296ed32ec83688cee1123d6d43ba6fdcc0c34bae24afbca50f46c9914e97662e11d7bcb23
+$(DL_FILE)_BLAKE2 = dd74564fe7d60fe52d0f6889f04ed75cb584fe4d18cdd11ae36271aec38a2e315b013d16c108ded9981ee4a80d082fe171330cbfe62755c5489eab2052f393d4
 
 install : $(TARGET)
 check : $(patsubst %,$(DIR_CHK)/%,$(objects))
@@ -82,7 +82,6 @@  $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	@$(PREBUILD)
 	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE)
 	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/libvirt/0001-Change-default-behavior-of-libvirt-guests.sh-for-IPF.patch
-	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/libvirt/libvirt-12.8.0-set-firewall_backend_priority-regardless-of-driver_network.patch
 	cd $(DIR_APP) && meson setup \
 				--prefix=/usr \
 				--localstatedir=/var \
diff --git a/src/patches/libvirt/libvirt-12.8.0-set-firewall_backend_priority-regardless-of-driver_network.patch b/src/patches/libvirt/libvirt-12.8.0-set-firewall_backend_priority-regardless-of-driver_network.patch
deleted file mode 100644
index 54500d6e3..000000000
--- a/src/patches/libvirt/libvirt-12.8.0-set-firewall_backend_priority-regardless-of-driver_network.patch
+++ /dev/null
@@ -1,103 +0,0 @@ 
-From 135e47348266fa6529db7d135abc9204615137ed Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?=
- <marmarek@invisiblethingslab.com>
-Date: Fri, 16 Oct 2026 14:40:44 +0200
-Subject: [PATCH] build: set firewall_backend_priority regardless of
- driver_network
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Set firewall_backend_priority whenever WITH_NWFILTER or WITH_NETWORK is
-set. And similarly, print firewall backends on the same condition.
-
-Otherwise a build with -Ddriver_network=disabled fails with:
-
-    src/nwfilter/meson.build:51:43: ERROR: Unknown variable "firewall_backend_priority".
-
-Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
-Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
----
- meson.build | 54 +++++++++++++++++++++++++++--------------------------
- 1 file changed, 28 insertions(+), 26 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 91547a1cc47..6d5ae23e3eb 100644
---- a/meson.build
-+++ b/meson.build
-@@ -1650,31 +1650,6 @@ endif
- 
- if not get_option('driver_network').disabled() and conf.has('WITH_LIBVIRTD')
-   conf.set('WITH_NETWORK', 1)
--
--  firewall_backend_priority = get_option('firewall_backend_priority')
--  if firewall_backend_priority.length() == 0
--      if host_machine.system() == 'linux'
--          firewall_backend_priority = ['nftables', 'iptables']
--      elif host_machine.system() == 'freebsd'
--          firewall_backend_priority = ['pf']
--      else
--          # No firewall impl on non-Linux so far, so force 'none'
--          # as placeholder
--          firewall_backend_priority = ['none']
--      endif
--  else
--      if host_machine.system() != 'linux'
--          error('firewall backend priority only supported on linux hosts')
--      endif
--  endif
--
--  backends = []
--  foreach backend: firewall_backend_priority
--      backend = 'VIR_FIREWALL_BACKEND_' + backend.to_upper()
--      backends += backend
--  endforeach
--
--  conf.set('FIREWALL_BACKENDS', ', '.join(backends))
- elif get_option('driver_network').enabled()
-   error('libvirtd must be enabled to build the network driver')
- endif
-@@ -2035,6 +2010,33 @@ if conf.has('WITH_LIBVIRTD') and host_machine.system() == 'linux'
-   conf.set('WITH_NWFILTER', 1)
- endif
- 
-+if conf.has('WITH_NWFILTER') or conf.has('WITH_NETWORK')
-+  firewall_backend_priority = get_option('firewall_backend_priority')
-+  if firewall_backend_priority.length() == 0
-+      if host_machine.system() == 'linux'
-+          firewall_backend_priority = ['nftables', 'iptables']
-+      elif host_machine.system() == 'freebsd'
-+          firewall_backend_priority = ['pf']
-+      else
-+          # No firewall impl on non-Linux so far, so force 'none'
-+          # as placeholder
-+          firewall_backend_priority = ['none']
-+      endif
-+  else
-+      if host_machine.system() != 'linux'
-+          error('firewall backend priority only supported on linux hosts')
-+      endif
-+  endif
-+
-+  backends = []
-+  foreach backend: firewall_backend_priority
-+      backend = 'VIR_FIREWALL_BACKEND_' + backend.to_upper()
-+      backends += backend
-+  endforeach
-+
-+  conf.set('FIREWALL_BACKENDS', ', '.join(backends))
-+endif
-+
- if not get_option('pm_utils').disabled()
-   use_pm_utils = true
-   if init_script == 'systemd'
-@@ -2373,7 +2375,7 @@ misc_summary = {
-   'virt-login-shell': conf.has('WITH_LOGIN_SHELL'),
-   'Warning Flags': supported_cc_flags,
- }
--if conf.has('WITH_NETWORK')
-+if conf.has('WITH_NWFILTER') or conf.has('WITH_NETWORK')
-   misc_summary += {
-     'firewall backends': firewall_backend_priority,
-   }
-