# # spec file for package nfs-utils # # Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # #Compat macro for new _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %define _fillupdir /var/adm/fillup-templates %endif Name: nfs-utils Version: 2.6.3 Release: 0 Summary: Support Utilities for Kernel nfsd License: GPL-2.0-or-later Group: Productivity/Networking/NFS URL: https://kernel.org/pub/linux/utils/nfs-utils/ Source0: https://kernel.org/pub/linux/utils/nfs-utils/%{version}/nfs-utils-%{version}.tar.xz Source4: sysconfig.nfs Source11: idmapd.conf Source12: statd-user.conf Source13: nfs-utils.rpmlintrc Source20: nfs-mountd.options.conf Source21: nfs-server.options.conf Source22: rpc-gssd.options.conf Source23: rpc-statd.options.conf Source24: rpc-statd-notify.options.conf Source25: rpc-svcgssd.options.conf Source26: nfs.conf Source27: nfs-kernel-server.tmpfiles.conf Patch0: nfs-utils-1.0.7-bind-syntax.patch BuildRequires: e2fsprogs-devel BuildRequires: gcc-c++ BuildRequires: libtool BuildRequires: pkgconfig BuildRequires: rpcgen BuildRequires: sysuser-tools BuildRequires: tcpd-devel BuildRequires: pkgconfig(devmapper) BuildRequires: pkgconfig(kdb) BuildRequires: pkgconfig(krb5) BuildRequires: pkgconfig(libevent) BuildRequires: pkgconfig(libkeyutils) BuildRequires: pkgconfig(libtirpc) BuildRequires: pkgconfig(mount) BuildRequires: pkgconfig(sqlite3) Suggests: python-base %{?systemd_ordering} %description This package contains the NFS utilities. You can tune the number of server threads via the sysconfig variable USE_KERNEL_NFSD_NUMBER. For quota over NFS support, install the quota package. %package -n nfs-client Summary: Support Utilities for NFS Group: Productivity/Networking/NFS Requires: keyutils Requires: netcfg Requires: rpcbind Requires(post): %fillup_prereq Requires(pre): permissions Obsoletes: nfs-utils < 1.1.0 %sysusers_requires %description -n nfs-client This package contains common NFS utilities which are needed for client and kernel based server. %package -n nfs-kernel-server Summary: Support Utilities for Kernel nfsd Group: Productivity/Networking/NFS Requires: netcfg Requires: nfs-client = %{version} Requires: rpcbind Requires: (kmod(nfsd.ko) if kernel) Conflicts: nfs-server Provides: nfs-utils = %{version} Obsoletes: nfs-utils < 1.1.0 PreReq: permissions %description -n nfs-kernel-server This package contains support for the kernel based NFS server. You can tune the number of server threads via the sysconfig variable USE_KERNEL_NFSD_NUMBER. For quota over NFS support, install the quota package. %package -n libnfsidmap1 Summary: NFSv4 ID Mapping Library Group: Productivity/Networking/NFS Version: 1.0 Release: 0 Obsoletes: nfsidmap %package -n nfsidmap-devel Summary: NFSv4 ID Mapping Library development libraries Group: Development/Libraries/C and C++ Version: 1.0 Release: 0 Requires: libnfsidmap1 = %{version} %description -n libnfsidmap1 In NFSv4, identities of users are conveyed by names rather than user ID and group ID. Both the NFS server and client code in the kernel need to translate these to numeric IDs. %description -n nfsidmap-devel In NFSv4, identities of users are conveyed by names rather than user ID and group ID. Both the NFS server and client code in the kernel need to translate these to numeric IDs. %prep %autosetup -p1 %build autoreconf -fvi export CFLAGS="%{optflags} -fPIE" export LDFLAGS="-pie" %configure \ --with-systemd \ --enable-nfsv4 \ --enable-gss \ --enable-svcgss \ --enable-ipv6 \ --enable-nfsdcltrack \ --enable-mount \ --enable-libmount-mount \ --disable-static \ --disable-sbin-override \ --with-pluginpath=%{_libdir}/libnfsidmap-1.0.0 \ --enable-mountconfig make %{?_smp_mflags} %sysusers_generate_pre %{SOURCE12} statd statd-user.conf %install make %{?_smp_mflags} DESTDIR=%{buildroot} install find %{buildroot} -type f -name '*.la' -delete -print install -D -m 644 %{SOURCE20} %{buildroot}%{_unitdir}/nfs-mountd.service.d/10-options.conf install -D -m 644 %{SOURCE21} %{buildroot}%{_unitdir}/nfs-server.service.d/10-options.conf install -D -m 644 %{SOURCE22} %{buildroot}%{_unitdir}/rpc-gssd.service.d/10-options.conf install -D -m 644 %{SOURCE23} %{buildroot}%{_unitdir}/rpc-statd.service.d/10-options.conf install -D -m 644 %{SOURCE24} %{buildroot}%{_unitdir}/rpc-statd-notify.service.d/10-options.conf install -D -m 644 %{SOURCE25} %{buildroot}%{_unitdir}/rpc-svcgssd.service.d/10-options.conf install -D -m 644 %{SOURCE26} %{buildroot}%{_sysconfdir}/nfs.conf install -D -m 644 %{SOURCE27} %{buildroot}%{_prefix}/lib/tmpfiles.d/nfs-kernel-server.conf ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcnfs-server ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcnfs-client # sysconfig-data mkdir -p %{buildroot}%{_fillupdir} install -m 644 %{SOURCE4} %{buildroot}%{_fillupdir} # idmapd setup install -D -m 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/idmapd.conf mkdir -p -m 755 %{buildroot}%{_localstatedir}/lib/nfs/rpc_pipefs mkdir -p -m 755 %{buildroot}%{_localstatedir}/lib/nfs/v4recovery # sm-notify state mkdir -p -m 755 %{buildroot}%{_localstatedir}/lib/nfs/sm mkdir -p -m 755 %{buildroot}%{_localstatedir}/lib/nfs/sm.bak touch %{buildroot}%{_localstatedir}/lib/nfs/state mkdir -p %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services install -m 644 utils/mount/nfsmount.conf %{buildroot}%{_sysconfdir}/nfsmount.conf # # hack to avoid automatic python dependency chmod 644 `grep -l -r '^#!/usr/bin/python' %{buildroot}%{_sbindir}` # Install sysusers.d template mkdir -p %{buildroot}%{_sysusersdir} install -m 644 %{SOURCE12} %{buildroot}%{_sysusersdir}/ %pre -n nfs-client -f statd.pre %service_add_pre auth-rpcgss-module.service nfs-idmapd.service nfs-blkmap.service rpc-statd-notify.service rpc-gssd.service rpc-statd.service rpc-svcgssd.service %post -n nfs-client # lib/nfs must be root-owned. # sm and sm.back and contents should be statd:statd, # but only chown if the dirs are currently root-owned. # This is needed for some upgraded, but chown is best avoided # when not necessary chown root:root %{_localstatedir}/lib/nfs > /dev/null 2>&1 || : for i in sm sm.bak; do p=%{_localstatedir}/lib/nfs/$i if [ -d "$b" -a -n "`chown 2> /dev/null -c --from root statd:statd $p`" ]; then chown -R statd:statd $p > /dev/null 2>&1 || : fi done ### migrate from /var/lock/subsys [ -d /run/nfs ] || mkdir /run/nfs if [ -f %{_localstatedir}/lock/subsys/nfs-rpc.idmapd ]; then mv %{_localstatedir}/lock/subsys/nfs-rpc.idmapd /run/nfs fi if [ -f %{_localstatedir}/lock/subsys/nfsserver-rpc.idmapd ]; then mv %{_localstatedir}/lock/subsys/nfsserver-rpc.idmapd /run/nfs fi ### %{fillup_only -n nfs nfs} # %set_permissions %{_sbindir}/mount.nfs /sbin/ldconfig %service_add_post auth-rpcgss-module.service nfs-idmapd.service nfs-blkmap.service rpc-statd-notify.service rpc-gssd.service rpc-statd.service rpc-svcgssd.service %preun -n nfs-client %service_del_preun auth-rpcgss-module.service nfs-idmapd.service nfs-blkmap.service rpc-statd-notify.service rpc-gssd.service rpc-statd.service rpc-svcgssd.service %postun -n nfs-client /sbin/ldconfig %service_del_postun auth-rpcgss-module.service nfs-idmapd.service nfs-blkmap.service rpc-statd-notify.service rpc-gssd.service rpc-statd.service rpc-svcgssd.service %verifyscript -n nfs-client %verify_permissions -e %{_sbindir}/mount.nfs %pre -n nfs-kernel-server %service_add_pre nfs-svcgssd.service nfs-mountd.service nfs-server.service %preun -n nfs-kernel-server %service_del_preun nfs-svcgssd.service nfs-mountd.service nfs-server.service %post -n nfs-kernel-server ### migrate from /var/lock/subsys [ -d /run/nfs ] || mkdir /run/nfs if [ -f %{_localstatedir}/lock/subsys/nfs-rpc.idmapd ]; then mv %{_localstatedir}/lock/subsys/nfs-rpc.idmapd /run/nfs fi if [ -f %{_localstatedir}/lock/subsys/nfsserver-rpc.idmapd ]; then mv %{_localstatedir}/lock/subsys/nfsserver-rpc.idmapd /run/nfs fi ### %service_add_post nfs-mountd.service nfs-server.service nfsdcld.service %tmpfiles_create nfs-kernel-server.conf %set_permissions /var/lib/nfs/rmtab %postun -n nfs-kernel-server %service_del_postun nfs-mountd.service nfs-server.service nfsdcld.service %post -n libnfsidmap1 -p /sbin/ldconfig %postun -n libnfsidmap1 -p /sbin/ldconfig %verifyscript -n nfs-kernel-server %verify_permissions -e /var/lib/nfs/rmtab %files -n nfs-client %license COPYING %config %{_sysconfdir}/idmapd.conf %config %{_sysconfdir}/nfsmount.conf %config %{_sysconfdir}/nfs.conf %verify(not mode) %attr(0755,root,root) %{_sbindir}/mount.nfs %{_sbindir}/mount.nfs4 %{_sbindir}/umount.nfs %{_sbindir}/umount.nfs4 %attr(0755,root,root) %{_sbindir}/mountstats %attr(0755,root,root) %{_sbindir}/nfsiostat %{_sbindir}/nfsdcld %{_sbindir}/nfsidmap %{_sbindir}/nfsstat %{_sbindir}/rcnfs-client %{_sbindir}/rpc.gssd %{_sbindir}/rpc.idmapd %{_sbindir}/rpc.statd %{_sbindir}/rpcctl %{_sbindir}/rpcdebug %{_sbindir}/showmount %{_sbindir}/sm-notify %{_sbindir}/start-statd %{_sbindir}/blkmapd %{_sbindir}/rpc.svcgssd %{_sbindir}/nfsconf %{_udevrulesdir}/60-nfs.rules %{_udevrulesdir}/99-nfs.rules %{_unitdir}/auth-rpcgss-module.service %{_unitdir}/fsidd.service %{_unitdir}/nfs-blkmap.service %{_unitdir}/nfs-client.target %{_unitdir}/nfs-idmapd.service %{_unitdir}/nfs-utils.service %{_unitdir}/nfsdcld.service %{_unitdir}/rpc-gssd.service %{_unitdir}/rpc-gssd.service.d %{_unitdir}/rpc_pipefs.target %{_unitdir}/rpc-statd-notify.service %{_unitdir}/rpc-statd-notify.service.d %{_unitdir}/rpc-statd.service %{_unitdir}/rpc-statd.service.d %{_unitdir}/rpc-svcgssd.service %{_unitdir}/rpc-svcgssd.service.d %{_unitdir}/var-lib-nfs-rpc_pipefs.mount %dir %{_systemdgeneratordir} %{_systemdgeneratordir}/nfs-server-generator %{_systemdgeneratordir}/rpc-pipefs-generator %{_mandir}/man5/idmapd.conf.5%{ext_man} %{_mandir}/man5/nfs.5%{ext_man} %{_mandir}/man5/nfs.conf.5%{ext_man} %{_mandir}/man5/nfsmount.conf.5%{ext_man} %{_mandir}/man5/nfsrahead.5%{ext_man} %{_mandir}/man7/nfs.systemd.7%{ext_man} %{_mandir}/man8/blkmapd.8%{ext_man} %{_mandir}/man8/gssd.8%{ext_man} %{_mandir}/man8/idmapd.8%{ext_man} %{_mandir}/man8/mount.nfs.8%{ext_man} %{_mandir}/man8/mountstats.8%{ext_man} %{_mandir}/man8/nfsconf.8%{ext_man} %{_mandir}/man8/nfsdcld.8%{ext_man} %{_mandir}/man8/nfsdclddb.8%{ext_man} %{_mandir}/man8/nfsdclnts.8%{ext_man} %{_mandir}/man8/nfsidmap.8%{ext_man} %{_mandir}/man8/nfsiostat.8%{ext_man} %{_mandir}/man8/nfsstat.8%{ext_man} %{_mandir}/man8/rpc.gssd.8%{ext_man} %{_mandir}/man8/rpc.idmapd.8%{ext_man} %{_mandir}/man8/rpc.sm-notify.8%{ext_man} %{_mandir}/man8/rpc.statd.8%{ext_man} %{_mandir}/man8/rpc.svcgssd.8%{ext_man} %{_mandir}/man8/rpcctl.8%{ext_man} %{_mandir}/man8/rpcdebug.8%{ext_man} %{_mandir}/man8/showmount.8%{ext_man} %{_mandir}/man8/sm-notify.8%{ext_man} %{_mandir}/man8/statd.8%{ext_man} %{_mandir}/man8/svcgssd.8%{ext_man} %{_mandir}/man8/umount.nfs.8%{ext_man} %{_fillupdir}/sysconfig.nfs %{_sysusersdir}/statd-user.conf %dir %{_localstatedir}/lib/nfs %dir %{_localstatedir}/lib/nfs/rpc_pipefs %dir %{_localstatedir}/lib/nfs/v4recovery %attr(0700,statd,statd) %dir %{_localstatedir}/lib/nfs/sm %attr(0700,statd,statd) %dir %{_localstatedir}/lib/nfs/sm.bak %ghost %{_localstatedir}/lib/nfs/state %{_libexecdir}/nfsrahead %files -n nfs-kernel-server %{_unitdir}/nfs-mountd.service %{_unitdir}/nfs-mountd.service.d %{_unitdir}/nfs-server.service %{_unitdir}/nfs-server.service.d %{_unitdir}/proc-fs-nfsd.mount %{_prefix}/lib/tmpfiles.d/nfs-kernel-server.conf %{_sbindir}/exportfs %{_sbindir}/fsidd %{_sbindir}/rcnfs-server %{_sbindir}/rpc.mountd %{_sbindir}/rpc.nfsd %{_sbindir}/nfsdcltrack %attr(0755,root,root) %{_sbindir}/nfsdclddb %attr(0755,root,root) %{_sbindir}/nfsdclnts %{_mandir}/man5/exports.5%{ext_man} %{_mandir}/man7/nfsd.7%{ext_man} %{_mandir}/man8/exportfs.8%{ext_man} %{_mandir}/man8/mountd.8%{ext_man} %{_mandir}/man8/nfsd.8%{ext_man} %{_mandir}/man8/rpc.mountd.8%{ext_man} %{_mandir}/man8/rpc.nfsd.8%{ext_man} %{_mandir}/man8/nfsdcltrack.8%{ext_man} %config(noreplace) %{_localstatedir}/lib/nfs/etab %config(noreplace) %{_localstatedir}/lib/nfs/rmtab %files -n libnfsidmap1 %{_libdir}/libnfsidmap-1.0.0/ %{_libdir}/libnfsidmap.so.1* %files -n nfsidmap-devel %{_libdir}/libnfsidmap.so %{_includedir}/*.h %{_libdir}/pkgconfig/libnfsidmap.pc %{_mandir}/man3/* %doc support/nfsidmap/README %changelog