diff --git a/0001-Revert-report-error-when-virProcessGetStatInfo-is-un.patch b/0001-Revert-report-error-when-virProcessGetStatInfo-is-un.patch
deleted file mode 100644
index 8dbc070..0000000
--- a/0001-Revert-report-error-when-virProcessGetStatInfo-is-un.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From 105dace22cc7b5b18d72a4dcad4a2cf386ce5c99 Mon Sep 17 00:00:00 2001
-From: Michal Privoznik <mprivozn@redhat.com>
-Date: Tue, 18 Jan 2022 12:40:09 +0100
-Subject: [PATCH] Revert "report error when virProcessGetStatInfo() is unable
- to parse data"
-
-This reverts commit 938382b60ae5bd1f83b5cb09e1ce68b9a88f679a.
-
-Turns out, the commit did more harm than good. It changed
-semantics on some public APIs. For instance, while
-qemuDomainGetInfo() previously did not returned an error it does
-now. While the calls to virProcessGetStatInfo() is guarded with
-virDomainObjIsActive() it doesn't necessarily mean that QEMU's
-PID is still alive. QEMU might be gone but we just haven't
-realized it (e.g. because the eof handler thread is waiting for a
-job).
-
-Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2041610
-Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
-Reviewed-by: Andrea Bolognani <abologna@redhat.com>
----
- src/ch/ch_driver.c     | 2 ++
- src/qemu/qemu_driver.c | 7 ++++++-
- src/util/virprocess.c  | 8 ++------
- 3 files changed, 10 insertions(+), 7 deletions(-)
-
-diff --git a/src/ch/ch_driver.c b/src/ch/ch_driver.c
-index 3cbc668489..53e0872207 100644
---- a/src/ch/ch_driver.c
-+++ b/src/ch/ch_driver.c
-@@ -1073,6 +1073,8 @@ chDomainHelperGetVcpus(virDomainObj *vm,
-             if (virProcessGetStatInfo(&vcpuinfo->cpuTime,
-                                       &vcpuinfo->cpu, NULL,
-                                       vm->pid, vcpupid) < 0) {
-+                virReportSystemError(errno, "%s",
-+                                      _("cannot get vCPU placement & pCPU time"));
-                 return -1;
-             }
-         }
-diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
-index 83cc7a04ea..0a1ba74e65 100644
---- a/src/qemu/qemu_driver.c
-+++ b/src/qemu/qemu_driver.c
-@@ -1354,6 +1354,8 @@ qemuDomainHelperGetVcpus(virDomainObj *vm,
-             if (virProcessGetStatInfo(&vcpuinfo->cpuTime,
-                                       &vcpuinfo->cpu, NULL,
-                                       vm->pid, vcpupid) < 0) {
-+                virReportSystemError(errno, "%s",
-+                                     _("cannot get vCPU placement & pCPU time"));
-                 return -1;
-             }
-         }
-@@ -2514,6 +2516,8 @@ qemuDomainGetInfo(virDomainPtr dom,
-     if (virDomainObjIsActive(vm)) {
-         if (virProcessGetStatInfo(&(info->cpuTime), NULL, NULL,
-                                   vm->pid, 0) < 0) {
-+            virReportError(VIR_ERR_OPERATION_FAILED, "%s",
-+                           _("cannot read cputime for domain"));
-             goto cleanup;
-         }
-     }
-@@ -10513,7 +10517,8 @@ qemuDomainMemoryStatsInternal(virQEMUDriver *driver,
-     }
- 
-     if (virProcessGetStatInfo(NULL, NULL, &rss, vm->pid, 0) < 0) {
--        virResetLastError();
-+        virReportError(VIR_ERR_OPERATION_FAILED, "%s",
-+                       _("cannot get RSS for domain"));
-     } else {
-         stats[ret].tag = VIR_DOMAIN_MEMORY_STAT_RSS;
-         stats[ret].val = rss;
-diff --git a/src/util/virprocess.c b/src/util/virprocess.c
-index 85d8c8e747..b559a4257e 100644
---- a/src/util/virprocess.c
-+++ b/src/util/virprocess.c
-@@ -1784,10 +1784,7 @@ virProcessGetStatInfo(unsigned long long *cpuTime,
-         virStrToLong_ullp(proc_stat[VIR_PROCESS_STAT_STIME], NULL, 10, &systime) < 0 ||
-         virStrToLong_l(proc_stat[VIR_PROCESS_STAT_RSS], NULL, 10, &rss) < 0 ||
-         virStrToLong_i(proc_stat[VIR_PROCESS_STAT_PROCESSOR], NULL, 10, &cpu) < 0) {
--        virReportError(VIR_ERR_INTERNAL_ERROR,
--                       _("cannot parse process status data for pid '%d/%d'"),
--                       (int) pid, (int) tid);
--        return -1;
-+        VIR_WARN("cannot parse process status data");
-     }
- 
-     /* We got jiffies
-@@ -1884,8 +1881,7 @@ virProcessGetStatInfo(unsigned long long *cpuTime G_GNUC_UNUSED,
-                       pid_t pid G_GNUC_UNUSED,
-                       pid_t tid G_GNUC_UNUSED)
- {
--    virReportSystemError(ENOSYS, "%s",
--                         _("Process statistics data is not supported on this platform"));
-+    errno = ENOSYS;
-     return -1;
- }
- 
--- 
-2.35.1
-
diff --git a/0001-docs-Fix-template-matching-in-page.xsl.patch b/0001-docs-Fix-template-matching-in-page.xsl.patch
deleted file mode 100644
index 7453957..0000000
--- a/0001-docs-Fix-template-matching-in-page.xsl.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 54814c87f3706cc8eb894634ebef0f9cf7dabae6 Mon Sep 17 00:00:00 2001
-From: Martin Kletzander <mkletzan@redhat.com>
-Date: Mon, 21 Feb 2022 09:26:13 +0100
-Subject: [PATCH] docs: Fix template matching in page.xsl
-
-Our last default template had a match of "node()" which incidentally matched
-everything, including text nodes.  Since this has the same priority according to
-the XSLT spec, section 5.5:
-
-  https://www.w3.org/TR/1999/REC-xslt-19991116#conflict
-
-this is an error.  Also according to the same spec section, the XSLT processor
-may signal the error or pick the last rule.
-
-This was uncovered with libxslt 1.1.35 which contains the following commit:
-
-  https://gitlab.gnome.org/GNOME/libxslt/-/commit/b0074eeca3c6b21b4da14fdf712b853900c51635
-
-which makes the build fail with:
-
-  runtime error: file ../docs/page.xsl line 223 element element
-  xsl:element: The effective name '' is not a valid QName.
-
-because our last rule also matches text nodes and we are trying to extract the
-node name out of them.
-
-To fix this we change the match to "*" which only matches elements and not all
-the nodes, and to avoid any possible errors with different XSLT processors we
-also bump the priority of the match="text()" rule a little higher, just in case
-someone needs to use an XSLT processor that chooses signalling the error instead
-of the optional recovery.
-
-https://bugs.gentoo.org/833586
-
-Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
----
- docs/page.xsl | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/docs/page.xsl b/docs/page.xsl
-index fd67918d3b..72a6fa0842 100644
---- a/docs/page.xsl
-+++ b/docs/page.xsl
-@@ -215,11 +215,11 @@
-     </xsl:element>
-   </xsl:template>
- 
--  <xsl:template match="text()" mode="copy">
-+  <xsl:template match="text()" mode="copy" priority="0">
-     <xsl:value-of select="."/>
-   </xsl:template>
- 
--  <xsl:template match="node()" mode="copy">
-+  <xsl:template match="*" mode="copy">
-     <xsl:element name="{name()}">
-       <xsl:copy-of select="./@*"/>
-       <xsl:apply-templates mode="copy" />
--- 
-2.35.1
-
diff --git a/libvirt.spec b/libvirt.spec
index 9fca42e..514e1ab 100644
--- a/libvirt.spec
+++ b/libvirt.spec
@@ -206,11 +206,29 @@
 
 %define tls_priority "@LIBVIRT,SYSTEM"
 
+# libvirt 8.1.0 stops distributing any sysconfig files.
+# If the user has customized their sysconfig file,
+# the RPM upgrade path will rename it to .rpmsave
+# because the file is no longer managed by RPM.
+# To prevent a regression we rename it back after the
+# transaction to preserve the user's modifications
+%define libvirt_sysconfig_pre() \
+    for sc in %{?*} ; do \
+        test -f "%{_sysconfdir}/sysconfig/${sc}.rpmsave" || continue ; \
+        mv -v "%{_sysconfdir}/sysconfig/${sc}.rpmsave" "%{_sysconfdir}/sysconfig/${sc}.rpmsave.old" ; \
+    done \
+    %{nil}
+%define libvirt_sysconfig_posttrans() \
+    for sc in %{?*} ; do \
+        test -f "%{_sysconfdir}/sysconfig/${sc}.rpmsave" || continue ; \
+        mv -v "%{_sysconfdir}/sysconfig/${sc}.rpmsave" "%{_sysconfdir}/sysconfig/${sc}" ; \
+    done \
+    %{nil}
 
 Summary: Library providing a simple virtualization API
 Name: libvirt
-Version: 8.0.0
-Release: 3%{?dist}
+Version: 8.1.0
+Release: 1%{?dist}
 License: LGPLv2+
 URL: https://libvirt.org/
 
@@ -219,14 +237,6 @@ URL: https://libvirt.org/
 %endif
 Source: https://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.xz
 
-# Fix virt-install bug:
-# ERROR    internal error: cannot parse process status data for pid
-# Upstream commit 105dace22cc7b5
-Patch1: 0001-Revert-report-error-when-virProcessGetStatInfo-is-un.patch
-# Fix build with newest libxslt
-# Upstream commit 54814c87f3706c
-Patch2: 0001-docs-Fix-template-matching-in-page.xsl.patch
-
 Requires: libvirt-daemon = %{version}-%{release}
 Requires: libvirt-daemon-config-network = %{version}-%{release}
 Requires: libvirt-daemon-config-nwfilter = %{version}-%{release}
@@ -289,7 +299,6 @@ BuildRequires: sanlock-devel >= 2.4
 BuildRequires: libpcap-devel >= 1.5.0
 BuildRequires: libnl3-devel
 BuildRequires: libselinux-devel
-BuildRequires: dnsmasq >= 2.41
 BuildRequires: iptables
 BuildRequires: ebtables
 BuildRequires: module-init-tools
@@ -1186,20 +1195,6 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/%{name}.spec)
 
 %meson_install
 
-rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
-rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
-rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/lock-driver/*.la
-rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/lock-driver/*.a
-rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.la
-rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.a
-rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-backend/*.la
-rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-backend/*.a
-rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-file/*.la
-rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-file/*.a
-%if %{with_wireshark}
-rm -f $RPM_BUILD_ROOT%{wireshark_plugindir}/libvirt.la
-%endif
-
 # We don't want to install /etc/libvirt/qemu/networks in the main %%files list
 # because if the admin wants to delete the default network completely, we don't
 # want to end up re-incarnating it on every RPM upgrade.
@@ -1294,6 +1289,7 @@ fi \
 %define libvirt_daemon_systemd_preun_priv() %systemd_preun %1.service %1-admin.socket %1.socket
 
 %pre daemon
+%libvirt_sysconfig_pre libvirtd virtproxyd virtlogd virtlockd libvirt-guests
 # 'libvirt' group is just to allow password-less polkit access to
 # libvirtd. The uid number is irrelevant, so we use dynamic allocation
 # described at the above link.
@@ -1342,6 +1338,7 @@ if [ $1 -ge 1 ] ; then
 fi
 
 %posttrans daemon
+%libvirt_sysconfig_posttrans libvirtd virtproxyd virtlogd virtlockd libvirt-guests
 if test %libvirt_daemon_needs_restart libvirtd
 then
     # See if user has previously modified their install to
@@ -1382,6 +1379,9 @@ fi
 
 %libvirt_daemon_finish_restart libvirtd
 
+%pre daemon-driver-network
+%libvirt_sysconfig_pre virtnetworkd
+
 %post daemon-driver-network
 %if %{with_firewalld_zone}
     %firewalld_reload
@@ -1401,8 +1401,11 @@ fi
 %endif
 
 %posttrans daemon-driver-network
+%libvirt_sysconfig_posttrans virtnetworkd
 %libvirt_daemon_perform_restart virtnetworkd
 
+%pre daemon-driver-nwfilter
+%libvirt_sysconfig_pre virtnwfilterd
 
 %post daemon-driver-nwfilter
 %if %{with_modular_daemons}
@@ -1414,8 +1417,11 @@ fi
 %libvirt_daemon_systemd_preun virtnwfilterd
 
 %posttrans daemon-driver-nwfilter
+%libvirt_sysconfig_posttrans virtnwfilterd
 %libvirt_daemon_perform_restart virtnwfilterd
 
+%pre daemon-driver-nodedev
+%libvirt_sysconfig_pre virtnodedevd
 
 %post daemon-driver-nodedev
 %if %{with_modular_daemons}
@@ -1427,8 +1433,11 @@ fi
 %libvirt_daemon_systemd_preun virtnodedevd
 
 %posttrans daemon-driver-nodedev
+%libvirt_sysconfig_posttrans virtnodedevd
 %libvirt_daemon_perform_restart virtnodedevd
 
+%pre daemon-driver-interface
+%libvirt_sysconfig_pre virtinterfaced
 
 %post daemon-driver-interface
 %if %{with_modular_daemons}
@@ -1440,8 +1449,11 @@ fi
 %libvirt_daemon_systemd_preun virtinterfaced
 
 %posttrans daemon-driver-interface
+%libvirt_sysconfig_posttrans virtinterfaced
 %libvirt_daemon_perform_restart virtinterfaced
 
+%pre daemon-driver-secret
+%libvirt_sysconfig_pre virtsecretd
 
 %post daemon-driver-secret
 %if %{with_modular_daemons}
@@ -1453,24 +1465,30 @@ fi
 %libvirt_daemon_systemd_preun virtsecretd
 
 %posttrans daemon-driver-secret
+%libvirt_sysconfig_posttrans virtsecretd
 %libvirt_daemon_perform_restart virtsecretd
 
 
-%post daemon-driver-storage
+%pre daemon-driver-storage-core
+%libvirt_sysconfig_pre virtstoraged
+
+%post daemon-driver-storage-core
 %if %{with_modular_daemons}
 %libvirt_daemon_systemd_post virtstoraged
 %endif
 %libvirt_daemon_schedule_restart virtstoraged
 
-%preun daemon-driver-storage
+%preun daemon-driver-storage-core
 %libvirt_daemon_systemd_preun virtstoraged
 
-%posttrans daemon-driver-storage
+%posttrans daemon-driver-storage-core
+%libvirt_sysconfig_posttrans virtstoraged
 %libvirt_daemon_perform_restart virtstoraged
 
 
 %if %{with_qemu}
 %pre daemon-driver-qemu
+%libvirt_sysconfig_pre virtqemud
 # We want soft static allocation of well-known ids, as disk images
 # are commonly shared across NFS mounts by id rather than name; see
 # https://fedoraproject.org/wiki/Packaging:UsersAndGroups
@@ -1495,11 +1513,15 @@ exit 0
 %libvirt_daemon_systemd_preun virtqemud
 
 %posttrans daemon-driver-qemu
+%libvirt_sysconfig_posttrans virtqemud
 %libvirt_daemon_perform_restart virtqemud
 %endif
 
 
 %if %{with_lxc}
+%pre daemon-driver-lxc
+%libvirt_sysconfig_pre virtlxcd
+
 %post daemon-driver-lxc
     %if %{with_modular_daemons}
 %libvirt_daemon_systemd_post virtlxcd
@@ -1510,6 +1532,7 @@ exit 0
 %libvirt_daemon_systemd_preun virtlxcd
 
 %posttrans daemon-driver-lxc
+%libvirt_sysconfig_posttrans virtlxcd
 %libvirt_daemon_perform_restart virtlxcd
 %endif
 
@@ -1521,10 +1544,14 @@ exit 0
     %endif
 %libvirt_daemon_schedule_restart virtvboxd
 
+%pre daemon-driver-vbox
+%libvirt_sysconfig_pre virtvboxd
+
 %preun daemon-driver-vbox
 %libvirt_daemon_systemd_preun virtvboxd
 
 %posttrans daemon-driver-vbox
+%libvirt_sysconfig_posttrans virtvboxd
 %libvirt_daemon_perform_restart virtvboxd
 %endif
 
@@ -1536,10 +1563,14 @@ exit 0
     %endif
 %libvirt_daemon_schedule_restart virtxend
 
+%pre daemon-driver-libxl
+%libvirt_sysconfig_pre virtxend
+
 %preun daemon-driver-libxl
 %libvirt_daemon_systemd_preun virtxend
 
 %posttrans daemon-driver-libxl
+%libvirt_sysconfig_posttrans virtxend
 %libvirt_daemon_perform_restart virtxend
 %endif
 
@@ -1620,8 +1651,6 @@ exit 0
 
 %files daemon
 
-%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
-
 %{_unitdir}/libvirtd.service
 %{_unitdir}/libvirtd.socket
 %{_unitdir}/libvirtd-ro.socket
@@ -1642,23 +1671,20 @@ exit 0
 %{_unitdir}/virtlockd.socket
 %{_unitdir}/virtlockd-admin.socket
 %{_unitdir}/libvirt-guests.service
-%config(noreplace) %{_sysconfdir}/sysconfig/libvirtd
-%config(noreplace) %{_sysconfdir}/sysconfig/virtproxyd
-%config(noreplace) %{_sysconfdir}/sysconfig/virtlogd
-%config(noreplace) %{_sysconfdir}/sysconfig/virtlockd
 %config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
 %config(noreplace) %{_sysconfdir}/libvirt/virtproxyd.conf
 %config(noreplace) %{_sysconfdir}/libvirt/virtlogd.conf
 %config(noreplace) %{_sysconfdir}/libvirt/virtlockd.conf
 %config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
-%config(noreplace) %{_sysconfdir}/sysconfig/libvirt-guests
 %config(noreplace) %{_prefix}/lib/sysctl.d/60-libvirtd.conf
 
 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd
 %dir %{_datadir}/libvirt/
 
 %ghost %dir %{_rundir}/libvirt/
+%ghost %dir %{_rundir}/libvirt/common/
 
+%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/images/
 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/filesystems/
 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/boot/
@@ -1702,6 +1728,7 @@ exit 0
 %{_mandir}/man1/virt-admin.1*
 %{_mandir}/man1/virt-host-validate.1*
 %{_mandir}/man8/virt-ssh-helper.8*
+%{_mandir}/man8/libvirt-guests.8*
 %{_mandir}/man8/libvirtd.8*
 %{_mandir}/man8/virtlogd.8*
 %{_mandir}/man8/virtlockd.8*
@@ -1724,7 +1751,6 @@ exit 0
 %ghost %{_sysconfdir}/libvirt/nwfilter/*.xml
 
 %files daemon-driver-interface
-%config(noreplace) %{_sysconfdir}/sysconfig/virtinterfaced
 %config(noreplace) %{_sysconfdir}/libvirt/virtinterfaced.conf
 %{_datadir}/augeas/lenses/virtinterfaced.aug
 %{_datadir}/augeas/lenses/tests/test_virtinterfaced.aug
@@ -1733,11 +1759,11 @@ exit 0
 %{_unitdir}/virtinterfaced-ro.socket
 %{_unitdir}/virtinterfaced-admin.socket
 %attr(0755, root, root) %{_sbindir}/virtinterfaced
+%ghost %dir %{_rundir}/libvirt/interface/
 %{_libdir}/%{name}/connection-driver/libvirt_driver_interface.so
 %{_mandir}/man8/virtinterfaced.8*
 
 %files daemon-driver-network
-%config(noreplace) %{_sysconfdir}/sysconfig/virtnetworkd
 %config(noreplace) %{_sysconfdir}/libvirt/virtnetworkd.conf
 %{_datadir}/augeas/lenses/virtnetworkd.aug
 %{_datadir}/augeas/lenses/tests/test_virtnetworkd.aug
@@ -1761,7 +1787,6 @@ exit 0
 %endif
 
 %files daemon-driver-nodedev
-%config(noreplace) %{_sysconfdir}/sysconfig/virtnodedevd
 %config(noreplace) %{_sysconfdir}/libvirt/virtnodedevd.conf
 %{_datadir}/augeas/lenses/virtnodedevd.aug
 %{_datadir}/augeas/lenses/tests/test_virtnodedevd.aug
@@ -1770,11 +1795,11 @@ exit 0
 %{_unitdir}/virtnodedevd-ro.socket
 %{_unitdir}/virtnodedevd-admin.socket
 %attr(0755, root, root) %{_sbindir}/virtnodedevd
+%ghost %dir %{_rundir}/libvirt/nodedev/
 %{_libdir}/%{name}/connection-driver/libvirt_driver_nodedev.so
 %{_mandir}/man8/virtnodedevd.8*
 
 %files daemon-driver-nwfilter
-%config(noreplace) %{_sysconfdir}/sysconfig/virtnwfilterd
 %config(noreplace) %{_sysconfdir}/libvirt/virtnwfilterd.conf
 %{_datadir}/augeas/lenses/virtnwfilterd.aug
 %{_datadir}/augeas/lenses/tests/test_virtnwfilterd.aug
@@ -1785,11 +1810,12 @@ exit 0
 %attr(0755, root, root) %{_sbindir}/virtnwfilterd
 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/
 %ghost %dir %{_rundir}/libvirt/network/
+%ghost %dir %{_rundir}/libvirt/nwfilter-binding/
+%ghost %dir %{_rundir}/libvirt/nwfilter/
 %{_libdir}/%{name}/connection-driver/libvirt_driver_nwfilter.so
 %{_mandir}/man8/virtnwfilterd.8*
 
 %files daemon-driver-secret
-%config(noreplace) %{_sysconfdir}/sysconfig/virtsecretd
 %config(noreplace) %{_sysconfdir}/libvirt/virtsecretd.conf
 %{_datadir}/augeas/lenses/virtsecretd.aug
 %{_datadir}/augeas/lenses/tests/test_virtsecretd.aug
@@ -1798,13 +1824,14 @@ exit 0
 %{_unitdir}/virtsecretd-ro.socket
 %{_unitdir}/virtsecretd-admin.socket
 %attr(0755, root, root) %{_sbindir}/virtsecretd
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/secrets/
+%ghost %dir %{_rundir}/libvirt/secrets/
 %{_libdir}/%{name}/connection-driver/libvirt_driver_secret.so
 %{_mandir}/man8/virtsecretd.8*
 
 %files daemon-driver-storage
 
 %files daemon-driver-storage-core
-%config(noreplace) %{_sysconfdir}/sysconfig/virtstoraged
 %config(noreplace) %{_sysconfdir}/libvirt/virtstoraged.conf
 %{_datadir}/augeas/lenses/virtstoraged.aug
 %{_datadir}/augeas/lenses/tests/test_virtstoraged.aug
@@ -1814,6 +1841,9 @@ exit 0
 %{_unitdir}/virtstoraged-admin.socket
 %attr(0755, root, root) %{_sbindir}/virtstoraged
 %attr(0755, root, root) %{_libexecdir}/libvirt_parthelper
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/storage/
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/storage/autostart/
+%ghost %dir %{_rundir}/libvirt/storage/
 %{_libdir}/%{name}/connection-driver/libvirt_driver_storage.so
 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_fs.so
 %{_libdir}/%{name}/storage-file/libvirt_storage_file_fs.so
@@ -1862,7 +1892,6 @@ exit 0
 
 %if %{with_qemu}
 %files daemon-driver-qemu
-%config(noreplace) %{_sysconfdir}/sysconfig/virtqemud
 %config(noreplace) %{_sysconfdir}/libvirt/virtqemud.conf
 %config(noreplace) %{_prefix}/lib/sysctl.d/60-qemu-postcopy-migration.conf
 %{_datadir}/augeas/lenses/virtqemud.aug
@@ -1873,12 +1902,24 @@ exit 0
 %{_unitdir}/virtqemud-admin.socket
 %attr(0755, root, root) %{_sbindir}/virtqemud
 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/autostart/
 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/
 %config(noreplace) %{_sysconfdir}/libvirt/qemu.conf
 %config(noreplace) %{_sysconfdir}/libvirt/qemu-lockd.conf
 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.qemu
 %ghost %dir %{_rundir}/libvirt/qemu/
+%ghost %dir %{_rundir}/libvirt/qemu/dbus/
+%ghost %dir %{_rundir}/libvirt/qemu/slirp/
+%ghost %dir %{_rundir}/libvirt/qemu/swtpm/
 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/
+%dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/channel/
+%dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/channel/target/
+%dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/checkpoint/
+%dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/dump/
+%dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/nvram/
+%dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/ram/
+%dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/save/
+%dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/snapshot/
 %dir %attr(0750, root, root) %{_localstatedir}/cache/libvirt/qemu/
 %{_datadir}/augeas/lenses/libvirtd_qemu.aug
 %{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
@@ -1892,7 +1933,6 @@ exit 0
 
 %if %{with_lxc}
 %files daemon-driver-lxc
-%config(noreplace) %{_sysconfdir}/sysconfig/virtlxcd
 %config(noreplace) %{_sysconfdir}/libvirt/virtlxcd.conf
 %{_datadir}/augeas/lenses/virtlxcd.aug
 %{_datadir}/augeas/lenses/tests/test_virtlxcd.aug
@@ -1902,6 +1942,8 @@ exit 0
 %{_unitdir}/virtlxcd-admin.socket
 %attr(0755, root, root) %{_sbindir}/virtlxcd
 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/lxc/
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/lxc/
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/lxc/autostart/
 %config(noreplace) %{_sysconfdir}/libvirt/lxc.conf
 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.lxc
 %ghost %dir %{_rundir}/libvirt/lxc/
@@ -1915,7 +1957,6 @@ exit 0
 
 %if %{with_libxl}
 %files daemon-driver-libxl
-%config(noreplace) %{_sysconfdir}/sysconfig/virtxend
 %config(noreplace) %{_sysconfdir}/libvirt/virtxend.conf
 %{_datadir}/augeas/lenses/virtxend.aug
 %{_datadir}/augeas/lenses/tests/test_virtxend.aug
@@ -1927,18 +1968,23 @@ exit 0
 %config(noreplace) %{_sysconfdir}/libvirt/libxl.conf
 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.libxl
 %config(noreplace) %{_sysconfdir}/libvirt/libxl-lockd.conf
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/libxl/
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/libxl/autostart/
 %{_datadir}/augeas/lenses/libvirtd_libxl.aug
 %{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/libxl/
 %ghost %dir %{_rundir}/libvirt/libxl/
 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/
+%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/channel/
+%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/channel/target/
+%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/dump/
+%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/save/
 %{_libdir}/%{name}/connection-driver/libvirt_driver_libxl.so
 %{_mandir}/man8/virtxend.8*
 %endif
 
 %if %{with_vbox}
 %files daemon-driver-vbox
-%config(noreplace) %{_sysconfdir}/sysconfig/virtvboxd
 %config(noreplace) %{_sysconfdir}/libvirt/virtvboxd.conf
 %{_datadir}/augeas/lenses/virtvboxd.aug
 %{_datadir}/augeas/lenses/tests/test_virtvboxd.aug
@@ -2002,6 +2048,7 @@ exit 0
 
 %files libs -f %{name}.lang
 %license COPYING COPYING.LESSER
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
 %config(noreplace) %{_sysconfdir}/libvirt/libvirt.conf
 %config(noreplace) %{_sysconfdir}/libvirt/libvirt-admin.conf
 %{_libdir}/libvirt.so.*
@@ -2010,7 +2057,6 @@ exit 0
 %{_libdir}/libvirt-admin.so.*
 %dir %{_datadir}/libvirt/
 %dir %{_datadir}/libvirt/schemas/
-%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
 
 %{_datadir}/systemtap/tapset/libvirt_probes*.stp
 %{_datadir}/systemtap/tapset/libvirt_functions.stp
@@ -2078,6 +2124,9 @@ exit 0
 
 
 %changelog
+* Tue Mar 01 2022 Cole Robinson <crobinso@redhat.com> - 8.1.0-1
+- Update to version 8.1.0
+
 * Tue Feb 22 2022 Richard W.M. Jones <rjones@redhat.com> - 8.0.0-3
 - Include upstream patch which fixes virt-install bug.
 
diff --git a/sources b/sources
index 776e466..50c72df 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (libvirt-8.0.0.tar.xz) = e84cf2753d3c57cfe5aadbb6601fa76e0ba750471c1c24631720fe64376c3599ea252863ec671a50527e4fb380ffe0c2f02f07705b4b87d373ccf3e516ff4b1c
+SHA512 (libvirt-8.1.0.tar.xz) = 5db227b78f48e35f917030eeb45ce9d0f7e868c5ce75da496ca06fad175ad6b026173b2fb78415c0103a61af24aec78d89bcebdf60b817d8ff6e84dc926faa97