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,
-   }
-
