diff --git a/libvirt.spec b/libvirt.spec
index e5e2a54..5c47994 100644
--- a/libvirt.spec
+++ b/libvirt.spec
@@ -95,6 +95,7 @@
 %define with_fuse             0
 %define with_sanlock          0
 %define with_numad            0
+%define with_nbdkit           0
 %define with_firewalld_zone   0
 %define with_netcf            0
 %define with_libssh2          0
@@ -173,6 +174,18 @@
     %endif
 %endif
 
+# We should only enable nbdkit support if the OS ships a SELinux policy that
+# allows libvirt to launch it. Right now that's not the case anywhere, but
+# things should be fine by the time Fedora 40 is released.
+#
+# TODO: add RHEL 9 once a minor release that contains the necessary SELinux
+#       bits exists (we only support the most recent minor release)
+%if %{with_qemu}
+    %if 0%{?fedora} >= 40
+        %define with_nbdkit 0%{!?_without_nbdkit:1}
+    %endif
+%endif
+
 %ifarch %{arches_dmidecode}
     %define with_dmidecode 0%{!?_without_dmidecode:1}
 %endif
@@ -227,7 +240,7 @@
 
 Summary: Library providing a simple virtualization API
 Name: libvirt
-Version: 9.8.0
+Version: 9.9.0
 Release: 1%{?dist}
 License: GPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND OFL-1.1
 URL: https://libvirt.org/
@@ -312,6 +325,9 @@ BuildRequires: util-linux
 BuildRequires: libacl-devel
 # From QEMU RPMs, used by virstoragetest
 BuildRequires: /usr/bin/qemu-img
+%endif
+# nbdkit support requires libnbd
+%if %{with_nbdkit}
 BuildRequires: libnbd-devel
 %endif
 # For LVM drivers
@@ -769,9 +785,11 @@ Requires: numad
 Recommends: passt
 Recommends: passt-selinux
     %endif
+    %if %{with_nbdkit}
 Recommends: nbdkit
 Recommends: nbdkit-curl-plugin
 Recommends: nbdkit-ssh-plugin
+    %endif
 
 %description daemon-driver-qemu
 The qemu driver plugin for the libvirtd daemon, providing
@@ -1078,10 +1096,8 @@ exit 1
 
 %if %{with_qemu}
     %define arg_qemu -Ddriver_qemu=enabled
-    %define arg_libnbd -Dlibnbd=enabled
 %else
     %define arg_qemu -Ddriver_qemu=disabled
-    %define arg_libnbd -Dlibnbd=disabled
 %endif
 
 %if %{with_openvz}
@@ -1158,6 +1174,12 @@ exit 1
     %define arg_numad -Dnumad=disabled
 %endif
 
+%if %{with_nbdkit}
+    %define arg_nbdkit -Dnbdkit=enabled
+%else
+    %define arg_nbdkit -Dnbdkit=disabled
+%endif
+
 %if %{with_fuse}
     %define arg_fuse -Dfuse=enabled
 %else
@@ -1270,7 +1292,7 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/libvirt.spec)
            -Dyajl=enabled \
            %{?arg_sanlock} \
            -Dlibpcap=enabled \
-           %{?arg_libnbd} \
+           %{?arg_nbdkit} \
            -Dlibnl=enabled \
            -Daudit=enabled \
            -Ddtrace=enabled \
@@ -1334,7 +1356,7 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/libvirt.spec)
   -Dglusterfs=disabled \
   -Dhost_validate=disabled \
   -Dlibiscsi=disabled \
-  -Dlibnbd=disabled \
+  -Dnbdkit=disabled \
   -Dlibnl=disabled \
   -Dlibpcap=disabled \
   -Dlibssh2=disabled \
@@ -2478,6 +2500,9 @@ exit 0
 
 
 %changelog
+* Wed Nov 01 2023 Cole Robinson <crobinso@redhat.com> - 9.9.0-1
+- Update to version 9.9.0
+
 * Thu Oct 05 2023 Cole Robinson <crobinso@redhat.com> - 9.8.0-1
 - Update to version 9.8.0
 
diff --git a/sources b/sources
index df8d712..8d03d10 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (libvirt-9.8.0.tar.xz) = 0118725073de33eec3fa3e4616d3154707f9828fdb9ec973f503fe68f18eab72b9704da660f281152630ddc95e605c786673af9d23dc9bdfc0108422e0efbd41
+SHA512 (libvirt-9.9.0.tar.xz) = 77cea28acf4f3e8c92fbd5bd72ad084be183c07f14e3a9ce35d6d9d62d36ee97a30cef55fb204b3e43f282890ecd7d5827a784a517e7f4ed8b22ee502c3f09d7