[PATCH v2] spec: Fix 'libvirt-daemon-driver-storage-zfs' on Fedora 43 and newer

Peter Krempa via Devel posted 1 patch 2 weeks, 3 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/e4fa990a80cea8fc4bf36dacb23161b43aae5cbe.1763995539.git.pkrempa@redhat.com
There is a newer version of this series
libvirt.spec.in | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
[PATCH v2] spec: Fix 'libvirt-daemon-driver-storage-zfs' on Fedora 43 and newer
Posted by Peter Krempa via Devel 2 weeks, 3 days ago
From: Peter Krempa <pkrempa@redhat.com>

On Fedora 43 and newer the 'fuse-zfs' package was removed. Commit
bd30147e740 added an 'Obsoletes' directive so that the storage driver
core package will update properly but hardcoded the obsoleted version
as 11.4 (when the change was comitted) similarly to the old sheepdog/rbd
packages and disabled the build.

Now it is still possible to obtain ZFS support from other means and it
may be useful for users to have libvirt's ZFS backend. This patch thus:

 - re-enables build of 'libvirt-daemon-driver-storage-zfs' on Fedora
 - removes 'libvirt-daemon-driver-storage-zfs' as 'Requires dependency
   from 'daemon-driver-storage' meta-package on Fedora 43 and newer

With this the package still is built and installable but will require
users to get their ZFS support installed somehow.

Fixes: bd30147e740d49fdb5844160e480ca34611f75e5
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
 libvirt.spec.in | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

I originally thought that the 'Requires' dependancy requiring
/sbin/zpool and /sbin/zfs would need to be dropped but even without
'zfs-fuse' on F43 it builds fine.

diff --git a/libvirt.spec.in b/libvirt.spec.in
index 8314fbeb34..1bfe7d715b 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -76,8 +76,10 @@
     %define with_storage_gluster 0
 %endif

-# Fedora had zfs-fuse until F43
-%if 0%{?fedora} && 0%{?fedora} < 43
+# On Fedora 43, the 'zfs-fuse' package was removed, but is obtainable via
+# other means. Build the backend, but it's no longer considered to be part
+# of 'daemon-driver-storage'.
+%if 0%{?fedora}
     %define with_storage_zfs      0%{!?_without_storage_zfs:1}
 %else
     %define with_storage_zfs      0
@@ -667,9 +669,6 @@ Requires: /usr/bin/qemu-img
 Obsoletes: libvirt-daemon-driver-storage-rbd < 5.2.0
     %endif
 Obsoletes: libvirt-daemon-driver-storage-sheepdog < 8.8.0
-    %if !%{with_storage_zfs}
-Obsoletes: libvirt-daemon-driver-storage-zfs < 11.4.0
-    %endif

 %description daemon-driver-storage-core
 The storage driver plugin for the libvirtd daemon, providing
@@ -796,7 +795,10 @@ Requires: libvirt-daemon-driver-storage-gluster = %{version}-%{release}
     %if %{with_storage_rbd}
 Requires: libvirt-daemon-driver-storage-rbd = %{version}-%{release}
     %endif
-    %if %{with_storage_zfs}
+# Starting with Fedora 43 the 'zfs-fuse' is no longer shipped but obtainable
+# externally. We do not want to install this as part of 'daemon-driver-storage'
+# any more.
+    %if %{with_storage_zfs} && 0%{?fedora} && 0%{?fedora} < 43
 Requires: libvirt-daemon-driver-storage-zfs = %{version}-%{release}
     %endif

-- 
2.51.1
Re: [PATCH v2] spec: Fix 'libvirt-daemon-driver-storage-zfs' on Fedora 43 and newer
Posted by Daniel P. Berrangé via Devel 2 weeks, 3 days ago
On Mon, Nov 24, 2025 at 03:50:23PM +0100, Peter Krempa via Devel wrote:
> From: Peter Krempa <pkrempa@redhat.com>
> 
> On Fedora 43 and newer the 'fuse-zfs' package was removed. Commit
> bd30147e740 added an 'Obsoletes' directive so that the storage driver
> core package will update properly but hardcoded the obsoleted version
> as 11.4 (when the change was comitted) similarly to the old sheepdog/rbd
> packages and disabled the build.
> 
> Now it is still possible to obtain ZFS support from other means and it
> may be useful for users to have libvirt's ZFS backend. This patch thus:
> 
>  - re-enables build of 'libvirt-daemon-driver-storage-zfs' on Fedora
>  - removes 'libvirt-daemon-driver-storage-zfs' as 'Requires dependency
>    from 'daemon-driver-storage' meta-package on Fedora 43 and newer
> 
> With this the package still is built and installable but will require
> users to get their ZFS support installed somehow.
> 
> Fixes: bd30147e740d49fdb5844160e480ca34611f75e5
> Signed-off-by: Peter Krempa <pkrempa@redhat.com>
> ---
>  libvirt.spec.in | 14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
> 
> I originally thought that the 'Requires' dependancy requiring
> /sbin/zpool and /sbin/zfs would need to be dropped but even without
> 'zfs-fuse' on F43 it builds fine.

It'll build OK, but we'll quickly get an automated error report
that the zfs RPM fails to install due to unsatisfied deps in
Fedora repos. So we'll need to drop the /sbin/ deps too.

> 
> diff --git a/libvirt.spec.in b/libvirt.spec.in
> index 8314fbeb34..1bfe7d715b 100644
> --- a/libvirt.spec.in
> +++ b/libvirt.spec.in
> @@ -76,8 +76,10 @@
>      %define with_storage_gluster 0
>  %endif
> 
> -# Fedora had zfs-fuse until F43
> -%if 0%{?fedora} && 0%{?fedora} < 43
> +# On Fedora 43, the 'zfs-fuse' package was removed, but is obtainable via
> +# other means. Build the backend, but it's no longer considered to be part
> +# of 'daemon-driver-storage'.
> +%if 0%{?fedora}
>      %define with_storage_zfs      0%{!?_without_storage_zfs:1}
>  %else
>      %define with_storage_zfs      0
> @@ -667,9 +669,6 @@ Requires: /usr/bin/qemu-img
>  Obsoletes: libvirt-daemon-driver-storage-rbd < 5.2.0
>      %endif
>  Obsoletes: libvirt-daemon-driver-storage-sheepdog < 8.8.0
> -    %if !%{with_storage_zfs}
> -Obsoletes: libvirt-daemon-driver-storage-zfs < 11.4.0
> -    %endif
> 
>  %description daemon-driver-storage-core
>  The storage driver plugin for the libvirtd daemon, providing
> @@ -796,7 +795,10 @@ Requires: libvirt-daemon-driver-storage-gluster = %{version}-%{release}
>      %if %{with_storage_rbd}
>  Requires: libvirt-daemon-driver-storage-rbd = %{version}-%{release}
>      %endif
> -    %if %{with_storage_zfs}
> +# Starting with Fedora 43 the 'zfs-fuse' is no longer shipped but obtainable
> +# externally. We do not want to install this as part of 'daemon-driver-storage'
> +# any more.
> +    %if %{with_storage_zfs} && 0%{?fedora} && 0%{?fedora} < 43
>  Requires: libvirt-daemon-driver-storage-zfs = %{version}-%{release}
>      %endif
> 
> -- 
> 2.51.1
> 

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|