diff --git a/0001-util-Fix-logic-in-virFileSetCOW.patch b/0001-util-Fix-logic-in-virFileSetCOW.patch
deleted file mode 100644
index db9737d..0000000
--- a/0001-util-Fix-logic-in-virFileSetCOW.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 2edd63a0dbd445112db23596ee0128521e8f1ff5 Mon Sep 17 00:00:00 2001
-From: Jiri Denemark <jdenemar@redhat.com>
-Date: Wed, 5 Aug 2020 10:01:45 +0200
-Subject: [libvirt PATCH] util: Fix logic in virFileSetCOW
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-When COW is not explicitly requested to be disabled or enabled, the
-function is supposed to do nothing on non-BTRFS file systems.
-
-Fixes commit 7230bc95aa78379c9ee20cf59394c5fc4305b75b.
-
-https://bugzilla.redhat.com/show_bug.cgi?id=1866157
-
-Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
-Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
----
- src/util/virfile.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/util/virfile.c b/src/util/virfile.c
-index 6ada3a708c..7f22884b07 100644
---- a/src/util/virfile.c
-+++ b/src/util/virfile.c
-@@ -4522,7 +4522,7 @@ virFileSetCOW(const char *path,
-     }
- 
-     if (buf.f_type != BTRFS_SUPER_MAGIC) {
--        if (state == VIR_TRISTATE_BOOL_ABSENT) {
-+        if (state != VIR_TRISTATE_BOOL_ABSENT) {
-             virReportSystemError(ENOSYS,
-                                  _("unable to control COW flag on '%s', not btrfs"),
-                                  path);
--- 
-2.26.2
-
diff --git a/libvirt-6.6.0-qemu-avoid-maybe-uninitialized-warning-by-GCC-10.patch b/libvirt-6.6.0-qemu-avoid-maybe-uninitialized-warning-by-GCC-10.patch
deleted file mode 100644
index 6b99c95..0000000
--- a/libvirt-6.6.0-qemu-avoid-maybe-uninitialized-warning-by-GCC-10.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From d96d359a032cda609f9adf3caafdf8425d8aa4ac Mon Sep 17 00:00:00 2001
-From: Boris Fiuczynski <fiuczy@linux.ibm.com>
-Date: Thu, 13 Aug 2020 16:03:44 +0200
-Subject: [PATCH] qemu: avoid maybe-uninitialized warning by GCC 10
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-GCC 10 complains about "well_formed_uri" may be used uninitialzed.
-Even though it is a false positive, we can easily avoid it.
-
-Avoiding
-  ../src/qemu/qemu_migration.c: In function ‘qemuMigrationDstPrepareDirect’:
-  ../src/qemu/qemu_migration.c:2920:16: error: ‘well_formed_uri’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
-    2920 |             if (well_formed_uri) {
-         |                ^
-
-Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
-Reviewed-by: Marc Hartmayer <mhartmay@linux.ibm.com>
-Reviewed-by: Erik Skultety <eskultet@redhat.com>
----
- src/qemu/qemu_migration.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
-index 0f2f92b211..142faa2cf9 100644
---- a/src/qemu/qemu_migration.c
-+++ b/src/qemu/qemu_migration.c
-@@ -2886,7 +2886,7 @@ qemuMigrationDstPrepareDirect(virQEMUDriverPtr driver,
- 
-         *uri_out = g_strdup_printf(incFormat, "tcp", hostname, port);
-     } else {
--        bool well_formed_uri;
-+        bool well_formed_uri = false;
- 
-         if (!(uri = qemuMigrationAnyParseURI(uri_in, &well_formed_uri)))
-             goto cleanup;
--- 
-GitLab
-
diff --git a/libvirt-6.6.0-storage-avoid-maybe-uninitialized-warning-by-GCC-10.patch b/libvirt-6.6.0-storage-avoid-maybe-uninitialized-warning-by-GCC-10.patch
deleted file mode 100644
index fc15370..0000000
--- a/libvirt-6.6.0-storage-avoid-maybe-uninitialized-warning-by-GCC-10.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From ae8a83c35378d8d3eac2e41b3a10cac0e587ce54 Mon Sep 17 00:00:00 2001
-From: Boris Fiuczynski <fiuczy@linux.ibm.com>
-Date: Thu, 13 Aug 2020 16:03:46 +0200
-Subject: [PATCH] storage: avoid maybe-uninitialized warning by GCC 10
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-GCC 10 complains about variables may be used uninitialized.
-Even though it might be false positives, we can easily avoid them.
-
-Avoiding
- ../src/storage/storage_backend_iscsi_direct.c:634:11: error: ‘nb_block’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
-   634 |     while (lba < nb_block) {
-       |           ^
- ../src/storage/storage_backend_iscsi_direct.c:619:14: note: ‘nb_block’ was declared here
-   619 |     uint64_t nb_block;
-       |              ^~~~~~~~
- ../src/storage/storage_backend_iscsi_direct.c:637:16: error: ‘block_size’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
-   637 |         task = iscsi_write16_sync(iscsi, lun, lba, data,
-       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-   638 |                                   block_size * to_write,
-       |                                   ~~~~~~~~~~~~~~~~~~~~~~
-   639 |                                   block_size, 0, 0, 0, 0, 0);
-       |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~
- ../src/storage/storage_backend_iscsi_direct.c:618:14: note: ‘block_size’ was declared here
-   618 |     uint32_t block_size;
-       |              ^~~~~~~~~~
- ../src/storage/storage_backend_iscsi_direct.c: In function ‘virStorageBackendISCSIDirectRefreshPool’:
- ../src/storage/storage_backend_iscsi_direct.c:320:39: error: ‘nb_block’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
-   320 |     vol->target.capacity = block_size * nb_block;
-       |                            ~~~~~~~~~~~^~~~~~~~~~
- ../src/storage/storage_backend_iscsi_direct.c:306:14: note: ‘nb_block’ was declared here
-   306 |     uint64_t nb_block;
-       |              ^~~~~~~~
- ../src/storage/storage_backend_iscsi_direct.c:320:39: error: ‘block_size’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
-   320 |     vol->target.capacity = block_size * nb_block;
-       |                            ~~~~~~~~~~~^~~~~~~~~~
- ../src/storage/storage_backend_iscsi_direct.c:305:14: note: ‘block_size’ was declared here
-   305 |     uint32_t block_size;
-       |              ^~~~~~~~~~
-
-Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
-Reviewed-by: Marc Hartmayer <mhartmay@linux.ibm.com>
-Reviewed-by: Erik Skultety <eskultet@redhat.com>
----
- src/storage/storage_backend_iscsi_direct.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/storage/storage_backend_iscsi_direct.c b/src/storage/storage_backend_iscsi_direct.c
-index c37c671db6..027fa83de7 100644
---- a/src/storage/storage_backend_iscsi_direct.c
-+++ b/src/storage/storage_backend_iscsi_direct.c
-@@ -302,8 +302,8 @@ virISCSIDirectRefreshVol(virStoragePoolObjPtr pool,
-                          char *portal)
- {
-     virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
--    uint32_t block_size;
--    uint64_t nb_block;
-+    uint32_t block_size = 0;
-+    uint64_t nb_block = 0;
-     g_autoptr(virStorageVolDef) vol = NULL;
- 
-     if (virISCSIDirectTestUnitReady(iscsi, lun) < 0)
-@@ -615,8 +615,8 @@ virStorageBackendISCSIDirectVolWipeZero(virStorageVolDefPtr vol,
-                                         struct iscsi_context *iscsi)
- {
-     uint64_t lba = 0;
--    uint32_t block_size;
--    uint64_t nb_block;
-+    uint32_t block_size = 0;
-+    uint64_t nb_block = 0;
-     struct scsi_task *task = NULL;
-     int lun = 0;
-     int ret = -1;
--- 
-GitLab
-
diff --git a/libvirt-6.6.0-tools-avoid-potential-null-pointer-dereference-by-GCC-10.patch b/libvirt-6.6.0-tools-avoid-potential-null-pointer-dereference-by-GCC-10.patch
deleted file mode 100644
index 12e8b53..0000000
--- a/libvirt-6.6.0-tools-avoid-potential-null-pointer-dereference-by-GCC-10.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From e2bd2af6e4f9323cf732563b430ef02e075fc804 Mon Sep 17 00:00:00 2001
-From: Boris Fiuczynski <fiuczy@linux.ibm.com>
-Date: Thu, 13 Aug 2020 16:03:45 +0200
-Subject: [PATCH] tools: avoid potential null pointer dereference by GCC 10
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-GCC 10 complains about "arg" possibly being a NULL dereference.
-Even though it might be a false positive, we can easily avoid it.
-
-Avoiding
- ../tools/vsh.c: In function ‘vshCommandOptStringReq’:
- ../tools/vsh.c:1034:19: error: potential null pointer dereference [-Werror=null-dereference]
-  1034 |     else if (!*arg->data && !(arg->def->flags & VSH_OFLAG_EMPTY_OK))
-       |                ~~~^~~~~~
-
-Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
-Reviewed-by: Marc Hartmayer <mhartmay@linux.ibm.com>
-Reviewed-by: Erik Skultety <eskultet@redhat.com>
----
- tools/vsh.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/vsh.c b/tools/vsh.c
-index 5e2e3ac219..11f493f969 100644
---- a/tools/vsh.c
-+++ b/tools/vsh.c
-@@ -1031,7 +1031,7 @@ vshCommandOptStringReq(vshControl *ctl,
-     /* this should not be propagated here, just to be sure */
-     if (ret == -1)
-         error = N_("Mandatory option not present");
--    else if (!*arg->data && !(arg->def->flags & VSH_OFLAG_EMPTY_OK))
-+    else if (arg && !*arg->data && !(arg->def->flags & VSH_OFLAG_EMPTY_OK))
-         error = N_("Option argument is empty");
- 
-     if (error) {
--- 
-GitLab
-
diff --git a/libvirt.spec b/libvirt.spec
index b792683..a44b073 100644
--- a/libvirt.spec
+++ b/libvirt.spec
@@ -12,11 +12,6 @@
     %define supported_platform 0
 %endif
 
-# Default to skipping autoreconf.  Distros can change just this one line
-# (or provide a command-line override) if they backport any patches that
-# touch configure.ac or Makefile.am.
-%{!?enable_autotools:%global enable_autotools 0}
-
 # The hypervisor drivers that run in libvirtd
 %define with_qemu          0%{!?_without_qemu:1}
 %define with_lxc           0%{!?_without_lxc:1}
@@ -122,7 +117,7 @@
     %define with_storage_zfs 0
 %endif
 
-# Ceph does not support 32-bit hosts
+# Ceph dropped support for 32-bit hosts
 %ifarch %{arm} %{ix86}
     %define with_storage_rbd 0
 %endif
@@ -201,9 +196,9 @@
 # compiler warning into errors without being worried about frequent
 # changes in reported warnings
 %if 0%{?rhel}
-    %define enable_werror --enable-werror
+    %define enable_werror -Dwerror=true
 %else
-    %define enable_werror --disable-werror
+    %define enable_werror -Dwerror=false
 %endif
 
 %if 0%{?rhel} == 7
@@ -215,8 +210,8 @@
 
 Summary: Library providing a simple virtualization API
 Name: libvirt
-Version: 6.6.0
-Release: 3%{?dist}
+Version: 6.7.0
+Release: 1%{?dist}
 License: LGPLv2+
 URL: https://libvirt.org/
 
@@ -224,14 +219,6 @@ URL: https://libvirt.org/
     %define mainturl stable_updates/
 %endif
 Source: https://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.xz
-Patch1: 0001-util-Fix-logic-in-virFileSetCOW.patch
-# Upstream patches to fix GCC 10 warnings
-# https://gitlab.com/libvirt/libvirt/-/commit/d96d359a032cda609f9adf3caafdf8425d8aa4ac
-Patch2: libvirt-6.6.0-qemu-avoid-maybe-uninitialized-warning-by-GCC-10.patch
-# https://gitlab.com/libvirt/libvirt/-/commit/e2bd2af6e4f9323cf732563b430ef02e075fc804
-Patch3: libvirt-6.6.0-tools-avoid-potential-null-pointer-dereference-by-GCC-10.patch
-# https://gitlab.com/libvirt/libvirt/-/commit/ae8a83c35378d8d3eac2e41b3a10cac0e587ce54
-Patch4: libvirt-6.6.0-storage-avoid-maybe-uninitialized-warning-by-GCC-10.patch
 
 Requires: libvirt-daemon = %{version}-%{release}
 Requires: libvirt-daemon-config-network = %{version}-%{release}
@@ -263,18 +250,15 @@ Requires: libvirt-libs = %{version}-%{release}
 
 # All build-time requirements. Run-time requirements are
 # listed against each sub-RPM
-%if 0%{?enable_autotools}
-BuildRequires: autoconf
-BuildRequires: automake
 BuildRequires: gettext-devel
-BuildRequires: libtool
-%endif
 %if 0%{?rhel} == 7
 BuildRequires: python36-docutils
 %else
 BuildRequires: python3-docutils
 %endif
 BuildRequires: gcc
+BuildRequires: meson >= 0.54.0
+BuildRequires: ninja-build
 BuildRequires: make
 BuildRequires: git
 %if 0%{?fedora} || 0%{?rhel} > 7
@@ -1006,230 +990,215 @@ Libvirt plugin for NSS for translating domain names into IP addresses.
 %autosetup -S git_am
 
 %build
-# Disable LTO since it caused test failures by breaking LD_PRELOAD usage.
-# Upstream libvirt changed to meson and appears to succeed with LTO, so
-# remove this when rebasing to libvirt 6.7.0 or newer
-%define _lto_cflags %{nil}
-
 %if ! %{supported_platform}
 echo "This RPM requires either Fedora >= %{min_fedora} or RHEL >= %{min_rhel}"
 exit 1
 %endif
 
 %if %{with_qemu}
-    %define arg_qemu --with-qemu
+    %define arg_qemu -Ddriver_qemu=enabled
 %else
-    %define arg_qemu --without-qemu
+    %define arg_qemu -Ddriver_qemu=disabled
 %endif
 
 %if %{with_openvz}
-    %define arg_openvz --with-openvz
+    %define arg_openvz -Ddriver_openvz=enabled
 %else
-    %define arg_openvz --without-openvz
+    %define arg_openvz -Ddriver_openvz=disabled
 %endif
 
 %if %{with_lxc}
-    %define arg_lxc --with-lxc
-    %define arg_login_shell --with-login-shell
+    %define arg_lxc -Ddriver_lxc=enabled
+    %define arg_login_shell -Dlogin_shell=enabled
 %else
-    %define arg_lxc --without-lxc
-    %define arg_login_shell --without-login-shell
+    %define arg_lxc -Ddriver_lxc=disabled
+    %define arg_login_shell -Dlogin_shell=disabled
 %endif
 
 %if %{with_vbox}
-    %define arg_vbox --with-vbox
+    %define arg_vbox -Ddriver_vbox=enabled
 %else
-    %define arg_vbox --without-vbox
+    %define arg_vbox -Ddriver_vbox=disabled
 %endif
 
 %if %{with_libxl}
-    %define arg_libxl --with-libxl
+    %define arg_libxl -Ddriver_libxl=enabled
 %else
-    %define arg_libxl --without-libxl
+    %define arg_libxl -Ddriver_libxl=disabled
 %endif
 
 %if %{with_esx}
-    %define arg_esx --with-esx
+    %define arg_esx -Ddriver_esx=enabled
 %else
-    %define arg_esx --without-esx
+    %define arg_esx -Ddriver_esx=disabled
 %endif
 
 %if %{with_hyperv}
-    %define arg_hyperv --with-hyperv
+    %define arg_hyperv -Ddriver_hyperv=enabled
 %else
-    %define arg_hyperv --without-hyperv
+    %define arg_hyperv -Ddriver_hyperv=disabled
 %endif
 
 %if %{with_vmware}
-    %define arg_vmware --with-vmware
+    %define arg_vmware -Ddriver_vmware=enabled
 %else
-    %define arg_vmware --without-vmware
+    %define arg_vmware -Ddriver_vmware=disabled
 %endif
 
 %if %{with_storage_rbd}
-    %define arg_storage_rbd --with-storage-rbd
+    %define arg_storage_rbd -Dstorage_rbd=enabled
 %else
-    %define arg_storage_rbd --without-storage-rbd
+    %define arg_storage_rbd -Dstorage_rbd=disabled
 %endif
 
 %if %{with_storage_sheepdog}
-    %define arg_storage_sheepdog --with-storage-sheepdog
+    %define arg_storage_sheepdog -Dstorage_sheepdog=enabled
 %else
-    %define arg_storage_sheepdog --without-storage-sheepdog
+    %define arg_storage_sheepdog -Dstorage_sheepdog=disabled
 %endif
 
 %if %{with_storage_gluster}
-    %define arg_storage_gluster --with-storage-gluster
+    %define arg_storage_gluster -Dstorage_gluster=enabled
 %else
-    %define arg_storage_gluster --without-storage-gluster
+    %define arg_storage_gluster -Dstorage_gluster=disabled
 %endif
 
 %if %{with_storage_zfs}
-    %define arg_storage_zfs --with-storage-zfs
+    %define arg_storage_zfs -Dstorage_zfs=enabled
 %else
-    %define arg_storage_zfs --without-storage-zfs
+    %define arg_storage_zfs -Dstorage_zfs=disabled
 %endif
 
 %if %{with_numactl}
-    %define arg_numactl --with-numactl
+    %define arg_numactl -Dnumactl=enabled
 %else
-    %define arg_numactl --without-numactl
+    %define arg_numactl -Dnumactl=disabled
 %endif
 
 %if %{with_numad}
-    %define arg_numad --with-numad
+    %define arg_numad -Dnumad=enabled
 %else
-    %define arg_numad --without-numad
+    %define arg_numad -Dnumad=disabled
 %endif
 
 %if %{with_fuse}
-    %define arg_fuse --with-fuse
+    %define arg_fuse -Dfuse=enabled
 %else
-    %define arg_fuse --without-fuse
+    %define arg_fuse -Dfuse=disabled
 %endif
 
 %if %{with_sanlock}
-    %define arg_sanlock --with-sanlock
+    %define arg_sanlock -Dsanlock=enabled
 %else
-    %define arg_sanlock --without-sanlock
+    %define arg_sanlock -Dsanlock=disabled
 %endif
 
 %if %{with_firewalld}
-    %define arg_firewalld --with-firewalld
+    %define arg_firewalld -Dfirewalld=enabled
 %else
-    %define arg_firewalld --without-firewalld
+    %define arg_firewalld -Dfirewalld=disabled
 %endif
 
 %if %{with_firewalld_zone}
-    %define arg_firewalld_zone --with-firewalld-zone
+    %define arg_firewalld_zone -Dfirewalld_zone=enabled
 %else
-    %define arg_firewalld_zone --without-firewalld-zone
+    %define arg_firewalld_zone -Dfirewalld_zone=disabled
 %endif
 
 %if %{with_wireshark}
-    %define arg_wireshark --with-wireshark-dissector
+    %define arg_wireshark -Dwireshark_dissector=enabled
 %else
-    %define arg_wireshark --without-wireshark-dissector
+    %define arg_wireshark -Dwireshark_dissector=disabled
 %endif
 
 %if %{with_storage_iscsi_direct}
-    %define arg_storage_iscsi_direct --with-storage-iscsi-direct
+    %define arg_storage_iscsi_direct -Dstorage_iscsi_direct=enabled
 %else
-    %define arg_storage_iscsi_direct --without-storage-iscsi-direct
+    %define arg_storage_iscsi_direct -Dstorage_iscsi_direct=disabled
 %endif
 
 %define when  %(date +"%%F-%%T")
 %define where %(hostname)
 %define who   %{?packager}%{!?packager:Unknown}
-%define arg_packager --with-packager="%{who}, %{when}, %{where}"
-%define arg_packager_version --with-packager-version="%{release}"
+%define arg_packager -Dpackager="%{who}, %{when}, %{where}"
+%define arg_packager_version -Dpackager_version="%{release}"
 
-%define arg_selinux_mount --with-selinux-mount="/sys/fs/selinux"
+%define arg_selinux_mount -Dselinux_mount="/sys/fs/selinux"
 
 # place macros above and build commands below this comment
 
 export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/%{name}.spec)
 
-%if 0%{?enable_autotools}
- autoreconf -if
-%endif
-
-rm -f po/stamp-po
-
-%define _configure ../configure
-mkdir %{_vpath_builddir}
-cd %{_vpath_builddir}
-
-%configure --enable-dependency-tracking \
-           --with-runstatedir=%{_rundir} \
+%meson \
+           -Drunstatedir=%{_rundir} \
            %{?arg_qemu} \
            %{?arg_openvz} \
            %{?arg_lxc} \
            %{?arg_vbox} \
            %{?arg_libxl} \
-           --with-sasl \
-           --with-polkit \
-           --with-libvirtd \
+           -Dsasl=enabled \
+           -Dpolkit=enabled \
+           -Ddriver_libvirtd=enabled \
            %{?arg_esx} \
            %{?arg_hyperv} \
            %{?arg_vmware} \
-           --without-vz \
-           --without-bhyve \
-           --with-remote-default-mode=legacy \
-           --with-interface \
-           --with-network \
-           --with-storage-fs \
-           --with-storage-lvm \
-           --with-storage-iscsi \
+           -Ddriver_vz=disabled \
+           -Ddriver_bhyve=disabled \
+           -Dremote_default_mode=legacy \
+           -Ddriver_interface=enabled \
+           -Ddriver_network=enabled \
+           -Dstorage_fs=enabled \
+           -Dstorage_lvm=enabled \
+           -Dstorage_iscsi=enabled \
            %{?arg_storage_iscsi_direct} \
-           --with-storage-scsi \
-           --with-storage-disk \
-           --with-storage-mpath \
+           -Dstorage_scsi=enabled \
+           -Dstorage_disk=enabled \
+           -Dstorage_mpath=enabled \
            %{?arg_storage_rbd} \
            %{?arg_storage_sheepdog} \
            %{?arg_storage_gluster} \
            %{?arg_storage_zfs} \
-           --without-storage-vstorage \
+           -Dstorage_vstorage=disabled \
            %{?arg_numactl} \
            %{?arg_numad} \
-           --with-capng \
+           -Dcapng=enabled \
            %{?arg_fuse} \
-           --with-netcf \
-           --with-selinux \
+           -Dnetcf=enabled \
+           -Dselinux=enabled \
            %{?arg_selinux_mount} \
-           --without-apparmor \
-           --without-hal \
-           --with-udev \
-           --with-yajl \
+           -Dapparmor=disabled \
+           -Dsecdriver_apparmor=disabled \
+           -Dhal=disabled \
+           -Dudev=enabled \
+           -Dyajl=enabled \
            %{?arg_sanlock} \
-           --with-libpcap \
-           --with-macvtap \
-           --with-audit \
-           --with-dtrace \
-           --with-driver-modules \
+           -Dlibpcap=enabled \
+           -Dmacvtap=enabled \
+           -Daudit=enabled \
+           -Ddtrace=enabled \
            %{?arg_firewalld} \
            %{?arg_firewalld_zone} \
            %{?arg_wireshark} \
-           --without-pm-utils \
-           --with-nss-plugin \
+           -Dpm_utils=disabled \
+           -Dnss=enabled \
            %{arg_packager} \
            %{arg_packager_version} \
-           --with-qemu-user=%{qemu_user} \
-           --with-qemu-group=%{qemu_group} \
-           --with-tls-priority=%{tls_priority} \
+           -Dqemu_user=%{qemu_user} \
+           -Dqemu_group=%{qemu_group} \
+           -Dtls_priority=%{tls_priority} \
            %{?enable_werror} \
-           --enable-expensive-tests \
-           --with-init-script=systemd \
+           -Dexpensive_tests=enabled \
+           -Dinit_script=systemd \
            %{?arg_login_shell}
-make %{?_smp_mflags} V=1
+
+%meson_build
 
 %install
 rm -fr %{buildroot}
 
 export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/%{name}.spec)
 
-cd %{_vpath_builddir}
-%make_install %{?_smp_mflags} SYSTEMD_UNIT_DIR=%{_unitdir} V=1
+%meson_install
 
 rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
 rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
@@ -1310,12 +1279,7 @@ mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes.stp \
 %endif
 
 %check
-cd %{_vpath_builddir}
-if ! make %{?_smp_mflags} check VIR_TEST_DEBUG=1
-then
-  cat tests/test-suite.log || true
-  exit 1
-fi
+VIR_TEST_DEBUG=1 %meson_test --no-suite syntax-check
 
 %post libs
 %if 0%{?rhel} == 7
@@ -1521,8 +1485,8 @@ exit 0
 %files
 
 %files docs
-%doc AUTHORS ChangeLog NEWS.rst README README.rst
-%doc %{_vpath_builddir}/libvirt-docs/*
+%doc AUTHORS NEWS.rst README.rst
+%doc libvirt-docs/*
 
 %files daemon
 
@@ -1895,7 +1859,7 @@ exit 0
 %config(noreplace) %{_sysconfdir}/sysconfig/libvirt-guests
 %attr(0755, root, root) %{_libexecdir}/libvirt-guests.sh
 
-%files libs -f %{_vpath_builddir}/%{name}.lang
+%files libs -f %{name}.lang
 %license COPYING COPYING.LESSER
 %config(noreplace) %{_sysconfdir}/libvirt/libvirt.conf
 %config(noreplace) %{_sysconfdir}/libvirt/libvirt-admin.conf
@@ -2000,6 +1964,9 @@ exit 0
 
 
 %changelog
+* Tue Sep 01 2020 Cole Robinson <crobinso@redhat.com> - 6.7.0-1
+- Update to version 6.7.0
+
 * Fri Aug 21 2020 Merlin Mathesius <mmathesi@redhat.com> - 6.6.0-3
 - Fix so no platforms depend upon ceph for 32-bit architectures
 - Include upstream patches to fix GCC 10 warnings
diff --git a/sources b/sources
index a33c479..ef8ef7b 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (libvirt-6.6.0.tar.xz) = 55091addcf43d3c0bdd50f9378b588351181d191272d5a19220a0babe0893c1f6e0f1e41a7f51b8c1fb8e2098236b273e1a18b81573f4008ee3cf65374ba9465
+SHA512 (libvirt-6.7.0.tar.xz) = cabfb6aa65a3a1412b0111654ad3a7d0a6dfc63399a892c540ca39ab4e56f87626a067037e4480bb55418a371d2b5e9ac74862c92a3cdea69822ec3d158d769f