I installed Fedora 26 recently. Some recent dnf updates I made pulled in zfs-fuse upon which lots of packages are now dependent (qemu*, gluster*, libvirt*, gnome-boxes, ...).

I am looking for the history of this dependency and the rationale behind it.

It makes it difficult to install kernel-based zfs (zfs-on-linux) since zfs-fuse and zfs (ZoL) are conflicting packages. Attempting to remove zfs-fuse will want to remove all the dependent packages as well.

Secondary question - is there any recent comparison of performance of kernel-based zfs and zfs-fuse? This is related to my primary question - if zfs-fuse is substantially equivalent to kernel zfs performance-wise, then perhaps it's not as problematic to have lots of packages depend on zfs-fuse. But if there's a significant difference between ZoL and zfs-fuse, I'd like to be able to either have the packages be able to co-exist or at least be interchangeable.

  • You could always just force-remove libvirt-daemon-driver-storage-zfs so you can remove it. – Ignacio Vazquez-Abrams Nov 7 '17 at 17:38
  • Yes, I could - I may or may not decide to do that. The questions posed still stand, however. – Juan Nov 7 '17 at 17:45
  • 2
  • That bug report (and referenced libvirt mailing list post) is a good reference to the history and rationale (and mechanism of the dependency). Thanks. – Juan Nov 9 '17 at 13:04

In Fedora 27 (beta now, release next week!), at least, I see this in the spec file:

%if %{with_storage_zfs}
# Support any conforming implementation of zfs. On stock Fedora
# this is zfs-fuse, but could be zfsonlinux upstream RPMs
BuildRequires: /sbin/zfs
BuildRequires: /sbin/zpool

which means this is using file dependencies, specifically so that alternate implementations can be used. You should be able to use dnf swap zfs-fuse zfs to replace the Fedora RPM with your alternate one.

I think probably we should move to using soft dependencies (Recommends instead of Requires) for a lot of these, but apparently libvirt doesn't deal super-gracefully with missing drivers at runtime.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.