Before patch for LU-4606 landed, to be able to have a working Lustre Server (presently zfs-only) installation based on [lustre, spl, zfs]-dkms RPMs use, only a lustre (for the same Lustre version) RPM was required to be installed.
Now that backend/osd-specific hooks have been extracted into different DSOs and are shipped separately as part of their corresponding lustre-osd RPM we need to find a way to install the required DSO but not the lustre-osd module (that is built by lustre-dkms RPM and thus Provides it but also Conflicts with it to prevent dual installs).
So with my 1st patch, where the zfs osd-hooks DSO is built+installed by lustre-dkms, only lustre RPM still needs to be also installed.
With my 2nd patch, where both the ldiskfs and zfs DSOs are shipped as part of lustre RPM, again only lustre RPM still needs to be also installed. But then, their dynamic load by [mkfs,mount,tunefs].lustre tools must not be so strict than presently and allow for failures if some of their load/run-time dependencies are missing, like if spl/zfs modules/libs are not installed, ...
With my 3rd patch, where each osd-hooks DSO is now shipped into a new+separate RPM than the respective/corresponding lustre-osd, they (at least one) will need to be installed in addition to the lustre RPM.
BTW, for both the 2nd/3rd cases/patches, I will also need to re-evaluate and likely have to add/change the necessary Provides/Requires/Conflicts rules in lustre[-dkms].spec files for the concerned lustre-dkms/lustre-modules/lustre-osd/lustre[/lustre-osd-mount] packages.
It is a bit late for me, so I hope to have been flaw-less, enough clear and also to have answered your questions.
Patches have landed to Master. Please reopen ticket if more work is still needed.