diff --git a/config/rootfiles/packages/libvirt b/config/rootfiles/packages/libvirt
index 18bbbb4cc..77382d468 100644
--- a/config/rootfiles/packages/libvirt
+++ b/config/rootfiles/packages/libvirt
@@ -4,6 +4,7 @@ etc/libvirt/libvirt-admin.conf
 etc/libvirt/libvirt.conf
 etc/libvirt/libvirtd.conf
 #etc/libvirt/nwfilter
+#etc/libvirt/nwfilter.conf
 #etc/libvirt/nwfilter/allow-arp.xml
 #etc/libvirt/nwfilter/allow-dhcp-server.xml
 #etc/libvirt/nwfilter/allow-dhcp.xml
@@ -89,16 +90,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.12003.0
+usr/lib/libvirt-admin.so.0.12008.0
 #usr/lib/libvirt-lxc.so
 usr/lib/libvirt-lxc.so.0
-usr/lib/libvirt-lxc.so.0.12003.0
+usr/lib/libvirt-lxc.so.0.12008.0
 #usr/lib/libvirt-qemu.so
 usr/lib/libvirt-qemu.so.0
-usr/lib/libvirt-qemu.so.0.12003.0
+usr/lib/libvirt-qemu.so.0.12008.0
 #usr/lib/libvirt.so
 usr/lib/libvirt.so.0
-usr/lib/libvirt.so.0.12003.0
+usr/lib/libvirt.so.0.12008.0
 #usr/lib/libvirt/connection-driver
 usr/lib/libvirt/connection-driver/libvirt_driver_ch.so
 usr/lib/libvirt/connection-driver/libvirt_driver_interface.so
@@ -120,8 +121,6 @@ usr/lib/libvirt/storage-backend/libvirt_storage_backend_vstorage.so
 #usr/lib/pkgconfig/libvirt.pc
 #usr/lib/sysctl.d
 usr/lib/sysctl.d/60-libvirtd.conf
-#usr/lib/systemd/system/libvirtd.service.d
-#usr/lib/systemd/system/libvirtd.service.d/10-secret.conf
 #usr/lib/sysusers.d
 usr/lib/sysusers.d/libvirt-login-shell.conf
 usr/lib/sysusers.d/libvirt-qemu.conf
@@ -146,12 +145,14 @@ usr/sbin/virtstoraged
 #usr/share/augeas/lenses/libvirt_secrets.aug
 #usr/share/augeas/lenses/libvirtd.aug
 #usr/share/augeas/lenses/libvirtd_ch.aug
+#usr/share/augeas/lenses/libvirtd_nwfilter.aug
 #usr/share/augeas/lenses/libvirtd_qemu.aug
 #usr/share/augeas/lenses/tests
 #usr/share/augeas/lenses/tests/test_libvirt_lockd.aug
 #usr/share/augeas/lenses/tests/test_libvirt_secrets.aug
 #usr/share/augeas/lenses/tests/test_libvirtd.aug
 #usr/share/augeas/lenses/tests/test_libvirtd_ch.aug
+#usr/share/augeas/lenses/tests/test_libvirtd_nwfilter.aug
 #usr/share/augeas/lenses/tests/test_libvirtd_qemu.aug
 #usr/share/augeas/lenses/tests/test_virtchd.aug
 #usr/share/augeas/lenses/tests/test_virtinterfaced.aug
@@ -236,6 +237,7 @@ usr/share/libvirt/cpu_map/arm_Kunpeng-920.xml
 usr/share/libvirt/cpu_map/arm_Neoverse-N1.xml
 usr/share/libvirt/cpu_map/arm_Neoverse-N2.xml
 usr/share/libvirt/cpu_map/arm_Neoverse-V1.xml
+usr/share/libvirt/cpu_map/arm_Neoverse-V2.xml
 usr/share/libvirt/cpu_map/arm_Tengyun-S2500.xml
 usr/share/libvirt/cpu_map/arm_ThunderX299xx.xml
 usr/share/libvirt/cpu_map/arm_a64fx.xml
@@ -272,6 +274,8 @@ usr/share/libvirt/cpu_map/x86_Cascadelake-Server-v4.xml
 usr/share/libvirt/cpu_map/x86_Cascadelake-Server-v5.xml
 usr/share/libvirt/cpu_map/x86_Cascadelake-Server.xml
 usr/share/libvirt/cpu_map/x86_ClearwaterForest-v1.xml
+usr/share/libvirt/cpu_map/x86_ClearwaterForest-v2.xml
+usr/share/libvirt/cpu_map/x86_ClearwaterForest-v3.xml
 usr/share/libvirt/cpu_map/x86_ClearwaterForest.xml
 usr/share/libvirt/cpu_map/x86_Conroe-v1.xml
 usr/share/libvirt/cpu_map/x86_Conroe.xml
@@ -285,6 +289,8 @@ usr/share/libvirt/cpu_map/x86_Denverton.xml
 usr/share/libvirt/cpu_map/x86_Dhyana-v1.xml
 usr/share/libvirt/cpu_map/x86_Dhyana-v2.xml
 usr/share/libvirt/cpu_map/x86_Dhyana.xml
+usr/share/libvirt/cpu_map/x86_DiamondRapids-v1.xml
+usr/share/libvirt/cpu_map/x86_DiamondRapids.xml
 usr/share/libvirt/cpu_map/x86_EPYC-Genoa-v1.xml
 usr/share/libvirt/cpu_map/x86_EPYC-Genoa-v2.xml
 usr/share/libvirt/cpu_map/x86_EPYC-Genoa.xml
@@ -310,6 +316,8 @@ usr/share/libvirt/cpu_map/x86_EPYC.xml
 usr/share/libvirt/cpu_map/x86_GraniteRapids-v1.xml
 usr/share/libvirt/cpu_map/x86_GraniteRapids-v2.xml
 usr/share/libvirt/cpu_map/x86_GraniteRapids-v3.xml
+usr/share/libvirt/cpu_map/x86_GraniteRapids-v4.xml
+usr/share/libvirt/cpu_map/x86_GraniteRapids-v5.xml
 usr/share/libvirt/cpu_map/x86_GraniteRapids.xml
 usr/share/libvirt/cpu_map/x86_Haswell-IBRS.xml
 usr/share/libvirt/cpu_map/x86_Haswell-noTSX-IBRS.xml
@@ -360,10 +368,14 @@ usr/share/libvirt/cpu_map/x86_SapphireRapids-v1.xml
 usr/share/libvirt/cpu_map/x86_SapphireRapids-v2.xml
 usr/share/libvirt/cpu_map/x86_SapphireRapids-v3.xml
 usr/share/libvirt/cpu_map/x86_SapphireRapids-v4.xml
+usr/share/libvirt/cpu_map/x86_SapphireRapids-v5.xml
+usr/share/libvirt/cpu_map/x86_SapphireRapids-v6.xml
 usr/share/libvirt/cpu_map/x86_SapphireRapids.xml
 usr/share/libvirt/cpu_map/x86_SierraForest-v1.xml
 usr/share/libvirt/cpu_map/x86_SierraForest-v2.xml
 usr/share/libvirt/cpu_map/x86_SierraForest-v3.xml
+usr/share/libvirt/cpu_map/x86_SierraForest-v4.xml
+usr/share/libvirt/cpu_map/x86_SierraForest-v5.xml
 usr/share/libvirt/cpu_map/x86_SierraForest.xml
 usr/share/libvirt/cpu_map/x86_Skylake-Client-IBRS.xml
 usr/share/libvirt/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml
diff --git a/lfs/libvirt b/lfs/libvirt
index 7a879924d..891286f94 100644
--- a/lfs/libvirt
+++ b/lfs/libvirt
@@ -26,7 +26,7 @@ include Config
 
 SUMMARY	   = Server side daemon and supporting files for libvirt
 
-VER        = 12.3.0
+VER        = 12.8.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    = 47
+PAK_VER    = 48
 
 DEPS       = ebtables libpciaccess ovmf swtpm qemu
 
@@ -49,7 +49,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = a6b2cd5de3f9cd81b8dadc8193c6bd12a018d8c4a6b175168a81988224a66f8e3ab28a2dccc441f8867b896271f6c3fa640cd456af07c64784b4adda5cea8e35
+$(DL_FILE)_BLAKE2 = 3bcef7dc68ff3bd36bd9fff8a537fe3ad0b1e8e53dc43e88541cff1296ed32ec83688cee1123d6d43ba6fdcc0c34bae24afbca50f46c9914e97662e11d7bcb23
 
 install : $(TARGET)
 check : $(patsubst %,$(DIR_CHK)/%,$(objects))
@@ -82,7 +82,8 @@ $(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) && meson \
+	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 \
 				--sysconfdir=/etc \
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
new file mode 100644
index 000000000..54500d6e3
--- /dev/null
+++ b/src/patches/libvirt/libvirt-12.8.0-set-firewall_backend_priority-regardless-of-driver_network.patch
@@ -0,0 +1,103 @@
+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,
+   }
+
