Trying to start nfs-idmapd when nfs-utils is built with USE=-nfsv3 results in: > server ~ # systemctl start nfs-idmapd > Failed to start nfs-idmapd.service: Unit nfs-server.service not found. This is because a number of service files depend on nfs-server.service rather than nfsv4-server.service: > server ~ # grep nfs-server.service $(qlist nfs-utils | grep service) > /usr/lib/systemd/system/rpc-statd-notify.service:After=nfs-server.service > /usr/lib/systemd/system/nfs-mountd.service:BindsTo=nfs-server.service > /usr/lib/systemd/system/rpc-svcgssd.service:PartOf=nfs-server.service > /usr/lib/systemd/system/fsidd.service:Before=nfs-mountd.service nfs-server.service > /usr/lib/systemd/system/fsidd.service:RequiredBy=nfs-mountd.service nfs-server.service > /usr/lib/systemd/system/nfs-idmapd.service:BindsTo=nfs-server.service Should we s/nfs-server/nfsv4-server/ if USE=-nfsv3, or should we rename nfsv4-server.service -> nfs-server.service? The only service file that depends on nfsv4-server is nfsv4-exportd: > server ~ # grep nfsv4-server.service $(qlist nfs-utils | grep service) > /usr/lib/systemd/system/nfsv4-exportd.service:BindsTo=nfsv4-server.service
> Should we s/nfs-server/nfsv4-server/ if USE=-nfsv3, ... This seems to work for me.
Those BindsTo and PartOf statements are nasty looking. I think this mess should really be fixed by the dev who added nfsv4-server.service upstream.