OBS User unknown 2007-06-05 18:06:28 +00:00 committed by Git OBS Bridge
parent 78917d4e0d
commit f284600b48
14 changed files with 628 additions and 631 deletions

137
gssd.init
View File

@ -1,137 +0,0 @@
#! /bin/sh
# Copyright (c) 1996 - 2005 SuSE GmbH Nuernberg, Germany. All rights reserved.
#
# Author: Florian La Roche <florian@suse.de>, 1996
# Werner Fink <werner@suse.de>, 1996,98
# Burchard Steinbild <bs@suse.de>, 1997
# Thorsten Kukuk <kukuk@suse.de>, 2000,01
#
# /etc/init.d/gssd
#
### BEGIN INIT INFO
# Provides: gssd
# Required-Start: $network $remote_fs $named portmap
# Required-Stop: $network portmap
# Should-Start: ypbind krb5kdc
# Should-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Start the RPC GSS security daemon
### END INIT INFO
. /etc/sysconfig/nfs
# Shell functions sourced from /etc/rc.status:
# rc_check check and set local and overall rc status
# rc_status check and set local and overall rc status
# rc_status -v ditto but be verbose in local rc status
# rc_status -v -r ditto and clear the local rc status
# rc_failed set local and overall rc status to failed
# rc_failed <num> set local and overall rc status to <num><num>
# rc_reset clear local rc status (overall remains)
# rc_exit exit appropriate to overall rc status
. /etc/rc.status
# First reset status of this service
rc_reset
# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signalling is not supported) are
# considered a success.
function mount_rpc_pipefs {
# See if the file system is there yet
case `stat -c "%t" -f /var/lib/nfs/rpc_pipefs` in
*67596969*)
return 0;;
esac
echo -n " (mounting rpc_pipefs)"
mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs
}
case $NFS_SECURITY_GSS in
[Nn]*) flavors="";;
[Yy]*) flavors=krb5;;
*) flavors="$NFS_SECURITY_GSS";;
esac
case "$1" in
start)
echo -n "Starting RPC GSS security daemon"
if [ -n "$flavors" ]; then
echo -n " ($flavors)"
for flavor in $flavors; do
/sbin/modprobe rpcsec_gss_$flavor
done
mount_rpc_pipefs
/usr/sbin/rpc.gssd
rc_status -v
else
rc_status -u
fi
;;
stop)
if checkproc /usr/sbin/rpc.gssd; then
echo -n "Shutting down RPC GSS security daemon"
killproc -TERM /usr/sbin/rpc.gssd
rc_status -v
fi
;;
try-restart)
## Stop the service and if this succeeds (i.e. the
## service was running before), start it again.
$0 status >/dev/null && $0 restart
# Remember status and be quiet
rc_status
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
$0 stop
$0 start
# Remember status and be quiet
rc_status
;;
reload|force-reload)
if checkproc /usr/sbin/rpc.gssd; then
$0 restart
fi
;;
status)
echo -n "Checking for RPC GSS security daemon: "
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.
# Status has a slightly different for the status command:
# 0 - service running
# 1 - service dead, but /var/run/ pid file exists
# 2 - service dead, but /var/lock/ lock file exists
# 3 - service not running
# NOTE: checkproc returns LSB compliant status values.
checkproc /usr/sbin/rpc.gssd
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}"
exit 1
;;
esac
rc_exit

View File

@ -1,144 +0,0 @@
#! /bin/sh
# Copyright (c) 1996 - 2005 SuSE GmbH Nuernberg, Germany. All rights reserved.
#
# Author: Florian La Roche <florian@suse.de>, 1996
# Werner Fink <werner@suse.de>, 1996,98
# Burchard Steinbild <bs@suse.de>, 1997
# Thorsten Kukuk <kukuk@suse.de>, 2000,01
#
# /etc/init.d/idmapd
#
### BEGIN INIT INFO
# Provides: idmapd
# Required-Start: $network $remote_fs $named portmap
# Required-Stop: $network portmap
# Should-Start: ypbind krb5kdc
# Should-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Start the NFSv4 ID mapping daemon
### END INIT INFO
. /etc/sysconfig/nfs
# Shell functions sourced from /etc/rc.status:
# rc_check check and set local and overall rc status
# rc_status check and set local and overall rc status
# rc_status -v ditto but be verbose in local rc status
# rc_status -v -r ditto and clear the local rc status
# rc_failed set local and overall rc status to failed
# rc_failed <num> set local and overall rc status to <num><num>
# rc_reset clear local rc status (overall remains)
# rc_exit exit appropriate to overall rc status
. /etc/rc.status
# First reset status of this service
rc_reset
# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signalling is not supported) are
# considered a success.
function mount_rpc_pipefs {
# See if the file system is there yet
case `stat -c "%t" -f /var/lib/nfs/rpc_pipefs` in
*67596969*)
return 0;;
esac
echo -n " (mounting rpc_pipefs)"
mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs
}
function umount_rpc_pipefs {
case `stat -c "%t" -f /var/lib/nfs/rpc_pipefs` in
*67596969*)
umount /var/lib/nfs/rpc_pipefs;;
esac
}
case "$1" in
start)
echo -n "Starting NFSv4 ID mapping daemon"
if [ "$NFS4_SUPPORT" = "yes" ]; then
mount_rpc_pipefs
/usr/sbin/rpc.idmapd
rc_status -v
else
rc_status -u
fi
;;
stop)
if [ "$NFS4_SUPPORT" = "yes" ]; then
echo -n "Shutting down NFSv4 ID mapping daemon"
killproc -TERM /usr/sbin/rpc.idmapd
rc_status
umount_rpc_pipefs
rc_status -v
fi
;;
try-restart)
## Stop the service and if this succeeds (i.e. the
## service was running before), start it again.
$0 status >/dev/null && $0 restart
# Remember status and be quiet
rc_status
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
$0 stop
$0 start
# Remember status and be quiet
rc_status
;;
reload|force-reload)
echo -n "Reload NFSv4 ID mapping daemon"
if [ "$NFS4_SUPPORT" = "yes" ]; then
killproc -HUP /usr/sbin/rpc.idmapd
rc_status -v
else
rc_status -u
fi
;;
status)
echo -n "Checking for NFSv4 ID mapping daemon: "
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.
# Status has a slightly different for the status command:
# 0 - service running
# 1 - service dead, but /var/run/ pid file exists
# 2 - service dead, but /var/lock/ lock file exists
# 3 - service not running
# NOTE: checkproc returns LSB compliant status values.
if [ "$NFS4_SUPPORT" = "yes" ]; then
checkproc /usr/sbin/rpc.idmapd
else
rc_failed 3
fi
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}"
exit 1
;;
esac
rc_exit

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:899844fd86f8b5b2a1a606be3adbc4645d2118e2d56a390028eef6272f0dcc4c
size 548247

3
nfs-utils-1.1.0.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a5465ac4fac37888b25ddc12ab6c223641562c13042ad327fdb73e79e8bcc32a
size 558403

View File

@ -1,11 +0,0 @@
--- nfs-utils-1.0.12/utils/gssd/krb5_util.c
+++ nfs-utils-1.0.12/utils/gssd/krb5_util.c
@@ -191,7 +191,7 @@
namelist[i]->d_name);
snprintf(statname, sizeof(statname),
"%s/%s", ccachedir, namelist[i]->d_name);
- if (stat(statname, &tmp_stat)) {
+ if (lstat(statname, &tmp_stat)) {
printerr(0, "Error doing stat on file '%s'\n",
statname);
free(namelist[i]);

View File

@ -1,17 +0,0 @@
--- aclocal/kerberos5.m4
+++ aclocal/kerberos5.m4
@@ -34,9 +34,12 @@
KRBLIBS=`$K5CONFIG --libs gssapi`
K5VERS=`$K5CONFIG --version | head -n 1 | awk '{split($(4),v,"."); if (v@<:@"3"@:>@ == "") v@<:@"3"@:>@ = "0"; print v@<:@"1"@:>@v@<:@"2"@:>@v@<:@"3"@:>@ }'`
AC_DEFINE_UNQUOTED(KRB5_VERSION, $K5VERS, [Define this as the Kerberos version number])
- if test -f $dir/include/gssapi/gssapi_krb5.h -a \
+ if test \( -f $dir/include/gssapi/gssapi_krb5.h -o \
+ -f /usr/include/gssapi/gssapi_krb5.h \) -a \
\( -f $dir/lib/libgssapi_krb5.a -o \
- -f $dir/lib/libgssapi_krb5.so \) ; then
+ -f $dir/lib/libgssapi_krb5.so -o \
+ -f /usr/lib/libgssapi_krb5.so -o \
+ -f /usr/lib64/libgssapi_krb5.so \) ; then
AC_DEFINE(HAVE_KRB5, 1, [Define this if you have MIT Kerberos libraries])
KRBDIR="$dir"
dnl If we are using MIT K5 1.3.1 and before, we *MUST* use the

View File

@ -1,22 +0,0 @@
--- Makefile.am
+++ Makefile.am 2006/08/08 21:55:21
@@ -47,7 +47,7 @@
mkdir -p $(DESTDIR)$(statedir)/sm $(DESTDIR)$(statedir)/sm.bak
touch $(DESTDIR)$(statedir)/state
chmod go-rwx $(DESTDIR)$(statedir)/sm $(DESTDIR)$(statedir)/sm.bak $(DESTDIR)$(statedir)/state
- chown $(statduser) $(DESTDIR)$(statedir)/sm $(DESTDIR)$(statedir)/sm.bak $(DESTDIR)$(statedir)/state
+ -chown $(statduser) $(DESTDIR)$(statedir)/sm $(DESTDIR)$(statedir)/sm.bak $(DESTDIR)$(statedir)/state
uninstall-hook:
rm $(DESTDIR)$(statedir)/xtab
--- Makefile.in
+++ Makefile.in 2006/08/08 21:55:30
@@ -691,7 +691,7 @@
mkdir -p $(DESTDIR)$(statedir)/sm $(DESTDIR)$(statedir)/sm.bak
touch $(DESTDIR)$(statedir)/state
chmod go-rwx $(DESTDIR)$(statedir)/sm $(DESTDIR)$(statedir)/sm.bak $(DESTDIR)$(statedir)/state
- chown $(statduser) $(DESTDIR)$(statedir)/sm $(DESTDIR)$(statedir)/sm.bak $(DESTDIR)$(statedir)/state
+ -chown $(statduser) $(DESTDIR)$(statedir)/sm $(DESTDIR)$(statedir)/sm.bak $(DESTDIR)$(statedir)/state
uninstall-hook:
rm $(DESTDIR)$(statedir)/xtab

View File

@ -1,43 +0,0 @@
--- utils/statd/monitor.c
+++ utils/statd/monitor.c 2002/08/01 14:38:29
@@ -233,7 +233,18 @@
dprintf(L_DEBUG, "UNMONITORING %s for %s",
mon_name, my_name);
nlist_free(&rtnl, clnt);
+ /* Do not unlink the monitor file. There are
+ * cases when a lock is cleared locally on the
+ * NFS client, but not on the server. We
+ * need to make sure these get freed at least
+ * on the next boot.
+ * We might also want to make an attempt in
+ * the kernel to do a NLM_FREE_ALL call the next time
+ * we mount something from this host.
+ */
+#if 0
xunlink(SM_DIR, mon_name, 1);
+#endif
return (&result);
} else
--- utils/statd/state.c
+++ utils/statd/state.c 2002/08/01 14:38:29
@@ -59,6 +59,7 @@
if (MY_NAME == NULL) {
char fullhost[SM_MAXSTRLEN + 1];
struct hostent *hostinfo;
+ char *dot;
if (gethostname (fullhost, SM_MAXSTRLEN) == -1)
die ("gethostname: %s", strerror (errno));
@@ -69,6 +70,11 @@
strncpy (fullhost, hostinfo->h_name, sizeof (fullhost) - 1);
fullhost[sizeof (fullhost) - 1] = '\0';
}
+
+ /* SuSE hack: strip off .local domain; the server will surely
+ * be unable to resolve the name */
+ if ((dot = strrchr(fullhost, '.')) && !strcasecmp(dot, ".local"))
+ *dot = '\0';
MY_NAME = xstrdup (fullhost);
}

View File

@ -1,3 +1,20 @@
-------------------------------------------------------------------
Tue Jun 5 16:15:58 CEST 2007 - mkoenig@suse.de
- update to version 1.1.0:
- package mount.nfs, umount.nfs to replace dropped nfs code
from util-linux mount.
- removed patches:
nfs-utils-noroot.patch
nfs-utils-gssd-select-ccache.patch
nfs-utils-krb5.patch
- Package split: nfs-common, nfs-server and nfs-doc
- adjust init scripts
- remove old Obsoletes/Provides:
nfsutils (last used 2001)
knfsd (last used 2000)
linuxnfs (last used 1999)
-------------------------------------------------------------------
Tue Feb 27 08:52:29 CET 2007 - ro@suse.de

View File

@ -1,5 +1,5 @@
#
# spec file for package nfs-utils (Version 1.0.12)
# spec file for package nfs-utils (Version 1.1.0)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@ -14,32 +14,24 @@ Name: nfs-utils
BuildRequires: e2fsprogs-devel gcc-c++ krb5-devel libevent librpcsecgss nfsidmap openldap2-devel pkgconfig tcpd-devel
URL: http://nfs.sourceforge.net
Summary: Support Utilities for Kernel nfsd
Version: 1.0.12
Version: 1.1.0
Release: 1
Group: Productivity/Networking/NFS
Obsoletes: knfsd linuxnfs nfsutils
Provides: knfsd linuxnfs nfsutils
Obsoletes: nfs-utils <= 1.1.0
Provides: nfs-utils = %{version}
License: GNU General Public License (GPL)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: portmap
Conflicts: nfs-server
PreReq: %fillup_prereq %insserv_prereq
Autoreqprov: on
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: ftp://ftp.sourceforge.net/pub/sourceforge/n/nf/nfs/nfs-utils-%{version}.tar.bz2
Source1: ftp://nfs.sourceforge.net/pub/nfs/nfs.doc.tar.bz2
Source10: nfsserver.init
Source12: sysconfig.nfs-nfs-utils
Source13: idmapd.init
Source14: gssd.init
Source15: svcgssd.init
Source16: nfsserver.xml
Patch1: nfs-utils-nsm.patch
Patch2: nfs-utils-largefiles.patch
Patch4: nfs-utils-noroot.patch
Patch5: nfs-utils-gssd-select-ccache.patch
Patch6: nfs-utils-krb5.patch
Patch7: nfs-utils-1.0.7-bind-syntax.patch
Source2: nfs.init
Source3: nfsserver.init
Source4: sysconfig.nfs-nfs-utils
Source5: nfs-kernel-server.xml
Patch0: nfs-utils-largefiles.patch
Patch1: nfs-utils-1.0.7-bind-syntax.patch
%description
This package contains the NFS utilities. You can tune the number of
@ -48,19 +40,68 @@ quota over NFS support, install the quota package.
Authors:
--------
Olaf Kirch <okir@monad.swb.de>
H.J. Lu <hjl@valinux.com>
%package -n nfs-client
Group: Productivity/Networking/NFS
Summary: Support Utilities for Kernel nfsd
Conflicts: nfs-server
Requires: portmap
%description -n nfs-client
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.
Authors:
--------
Olaf Kirch <okir@monad.swb.de>
H.J. Lu <hjl@valinux.com>
%package -n nfs-kernel-server
Group: Productivity/Networking/NFS
Summary: Support Utilities for Kernel nfsd
Provides: nfs-utils = %{version}
Conflicts: nfs-server
Requires: nfs-client = %{version} portmap
%description -n nfs-kernel-server
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.
Authors:
--------
Olaf Kirch <okir@monad.swb.de>
H.J. Lu <hjl@valinux.com>
%package -n nfs-doc
Group: Productivity/Networking/NFS
Summary: Support Utilities for Kernel nfsd
%description -n nfs-doc
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.
Authors:
--------
Olaf Kirch <okir@monad.swb.de>
H.J. Lu <hjl@valinux.com>
%prep
%setup -q -a 1
%patch1
%patch2 -p1
%patch4
%patch5 -p1
%patch6
%patch7 -p1
%setup -q -n nfs-utils-%{version} -a 1
%patch0 -p1
%patch1 -p1
%build
%{?suse_update_config:%{suse_update_config -f }}
@ -70,119 +111,140 @@ CFLAGS="$RPM_OPT_FLAGS -fPIE -fno-strict-aliasing" LDFLAGS="-pie" ./configure \
--disable-rquotad \
--enable-nfsv4 \
--enable-gss \
--enable-mount \
--with-krb5=/usr/lib/mit
make
%install
make install DESTDIR=$RPM_BUILD_ROOT
# we do not need this anymore
rm -fv $RPM_BUILD_ROOT/usr/sbin/rpc.statd
rm -fv $RPM_BUILD_ROOT/%{_mandir}/man8/statd.8*
rm -fv $RPM_BUILD_ROOT/%{_mandir}/man8/rpc.statd.8*
# move lockd to /sbin
install -d $RPM_BUILD_ROOT/sbin
mv $RPM_BUILD_ROOT/usr/sbin/rpc.lockd $RPM_BUILD_ROOT/sbin
# rc-script
install -d $RPM_BUILD_ROOT/etc/init.d
install -m 744 %{SOURCE10} $RPM_BUILD_ROOT/etc/init.d/nfsserver
install -m 744 %{SOURCE3} $RPM_BUILD_ROOT/etc/init.d/nfsserver
install -m 744 %{SOURCE2} $RPM_BUILD_ROOT/etc/init.d/nfs
ln -sf ../../etc/init.d/nfsserver $RPM_BUILD_ROOT/usr/sbin/rcnfsserver
ln -sf ../../etc/init.d/nfs $RPM_BUILD_ROOT/usr/sbin/rcnfs
# sysconfig-data
mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates
install -m 644 %{SOURCE12} $RPM_BUILD_ROOT/var/adm/fillup-templates
# remove file provided by util-linux
rm -f $RPM_BUILD_ROOT/var/lib/nfs/state
install -m 644 %{SOURCE4} $RPM_BUILD_ROOT/var/adm/fillup-templates
# idmapd setup
install -m 644 utils/idmapd/idmapd.conf $RPM_BUILD_ROOT/etc/idmapd.conf
install -m 755 %{SOURCE13} $RPM_BUILD_ROOT/etc/init.d/idmapd
ln -sf ../../etc/init.d/idmapd $RPM_BUILD_ROOT/usr/sbin/rcidmapd
#
install -m 755 %{SOURCE14} $RPM_BUILD_ROOT/etc/init.d/gssd
ln -sf ../../etc/init.d/gssd $RPM_BUILD_ROOT/usr/sbin/rcgssd
install -m 755 %{SOURCE15} $RPM_BUILD_ROOT/etc/init.d/svcgssd
ln -sf ../../etc/init.d/svcgssd $RPM_BUILD_ROOT/usr/sbin/rcsvcgssd
mkdir -p -m 755 $RPM_BUILD_ROOT/var/lib/nfs/rpc_pipefs
mkdir -p -m 755 $RPM_BUILD_ROOT/var/lib/nfs/v4recovery
mkdir -p -m 755 $RPM_BUILD_ROOT/usr/share/omc/srvinfo.d
install -m 644 %{SOURCE16} $RPM_BUILD_ROOT/usr/share/omc/srvinfo.d
install -m 644 %{SOURCE5} $RPM_BUILD_ROOT/usr/share/omc/srvinfo.d
# sm-notify state
mkdir -p -m 755 $RPM_BUILD_ROOT/var/lib/nfs/sm
mkdir -p -m 755 $RPM_BUILD_ROOT/var/lib/nfs/sm.bak
touch $RPM_BUILD_ROOT/var/lib/nfs/state
%clean
rm -rf $RPM_BUILD_ROOT
%preun
%stop_on_removal nfsserver
%stop_on_removal idmapd
%stop_on_removal gssd
%stop_on_removal svcgssd
%post
%{fillup_and_insserv -s nfsserver NFS_SERVER}
%post -n nfs-client
%{fillup_only -an nfs}
%{fillup_only -an idmapd}
%{fillup_only -an gssd}
%{fillup_only -an svcgssd}
%postun
%restart_on_update nfsserver
%restart_on_update idmapd
%restart_on_update gssd
%restart_on_update svcgssd
%preun -n nfs-client
%stop_on_removal nfs
%postun -n nfs-client
%restart_on_update nfs
%insserv_cleanup
%files
%preun -n nfs-kernel-server
%stop_on_removal nfsserver
%post -n nfs-kernel-server
%{fillup_and_insserv -s nfsserver NFS_SERVER}
%postun -n nfs-kernel-server
%restart_on_update nfsserver
%insserv_cleanup
%files -n nfs-client
%defattr(-,root,root)
%doc nfs/*.html nfs/*.ps linux-nfs/*
/var/adm/fillup-templates/sysconfig.nfs-nfs-utils
%dir /var/lib/nfs
%config(noreplace) /var/lib/nfs/xtab
%config(noreplace) /var/lib/nfs/etab
%config(noreplace) /var/lib/nfs/rmtab
%dir /var/lib/nfs/rpc_pipefs
%dir /var/lib/nfs/v4recovery
/usr/sbin/exportfs
%config /etc/init.d/nfs
%config /etc/idmapd.conf
%attr(0755,root,root) /sbin/mount.nfs
/sbin/mount.nfs4
%attr(0755,root,root) /sbin/umount.nfs
/sbin/umount.nfs4
/usr/sbin/gss_clnt_send_err
/usr/sbin/gss_destroy_creds
/usr/sbin/nfsstat
/usr/sbin/showmount
/usr/sbin/rcnfsserver
/usr/sbin/rcidmapd
/usr/sbin/rcgssd
/usr/sbin/rcsvcgssd
/usr/sbin/rpc.mountd
/usr/sbin/rpc.nfsd
/usr/sbin/rcnfs
/usr/sbin/rpc.gssd
/usr/sbin/rpc.idmapd
/usr/sbin/rpc.svcgssd
/usr/sbin/rpc.statd
/usr/sbin/rpcdebug
/sbin/rpc.lockd
%config /etc/init.d/nfsserver
%config /etc/init.d/idmapd
%config /etc/init.d/gssd
%config /etc/init.d/svcgssd
%config /etc/idmapd.conf
%dir /usr/share/omc
%dir /usr/share/omc/srvinfo.d
/usr/share/omc/srvinfo.d/nfsserver.xml
%{_mandir}/man5/exports.5.gz
/usr/sbin/showmount
/usr/sbin/sm-notify
/usr/sbin/start-statd
%{_mandir}/man5/idmapd.conf.5.gz
%{_mandir}/man7/nfsd.7.gz
%{_mandir}/man8/exportfs.8.gz
%{_mandir}/man5/nfs.5.gz
%{_mandir}/man8/mount.nfs.8.gz
%{_mandir}/man8/nfsstat.8.gz
%{_mandir}/man8/rpc.sm-notify.8.gz
%{_mandir}/man8/showmount.8.gz
%{_mandir}/man8/mountd.8.gz
%{_mandir}/man8/sm-notify.8.gz
%{_mandir}/man8/umount.nfs.8.gz
%{_mandir}/man8/rpc.gssd.8.gz
%{_mandir}/man8/rpc.idmapd.8.gz
%{_mandir}/man8/rpc.mountd.8.gz
%{_mandir}/man8/rpc.lockd.8.gz
%{_mandir}/man8/nfsd.8.gz
%{_mandir}/man8/rpc.nfsd.8.gz
%{_mandir}/man8/lockd.8.gz
%{_mandir}/man8/gssd.8.gz
%{_mandir}/man8/idmapd.8.gz
%{_mandir}/man8/svcgssd.8.gz
%{_mandir}/man8/rpc.svcgssd.8.gz
%{_mandir}/man8/rpc.statd.8.gz
%{_mandir}/man8/rpcdebug.8.gz
%{_mandir}/man8/statd.8.gz
/var/adm/fillup-templates/sysconfig.nfs-nfs-utils
%dir /var/lib/nfs
%dir /var/lib/nfs/rpc_pipefs
%dir /var/lib/nfs/v4recovery
%dir /var/lib/nfs/sm
%dir /var/lib/nfs/sm.bak
%ghost /var/lib/nfs/state
%files -n nfs-kernel-server
%defattr(-,root,root)
%config /etc/init.d/nfsserver
/usr/sbin/exportfs
/usr/sbin/rcnfsserver
/usr/sbin/rpc.mountd
/usr/sbin/rpc.nfsd
/usr/sbin/rpc.svcgssd
%{_mandir}/man5/exports.5.gz
%{_mandir}/man7/nfsd.7.gz
%{_mandir}/man8/exportfs.8.gz
%{_mandir}/man8/mountd.8.gz
%{_mandir}/man8/nfsd.8.gz
%{_mandir}/man8/rpc.mountd.8.gz
%{_mandir}/man8/rpc.nfsd.8.gz
%{_mandir}/man8/rpc.svcgssd.8.gz
%dir /usr/share/omc
%dir /usr/share/omc/srvinfo.d
/usr/share/omc/srvinfo.d/nfs-kernel-server.xml
%config(noreplace) /var/lib/nfs/xtab
%config(noreplace) /var/lib/nfs/etab
%config(noreplace) /var/lib/nfs/rmtab
%files -n nfs-doc
%defattr(-,root,root)
%doc nfs/*.html nfs/*.ps linux-nfs/*
%changelog
* Tue Jun 05 2007 - mkoenig@suse.de
- update to version 1.1.0:
- package mount.nfs, umount.nfs to replace dropped nfs code
from util-linux mount.
- removed patches:
nfs-utils-noroot.patch
nfs-utils-gssd-select-ccache.patch
nfs-utils-krb5.patch
- Package split: nfs-common, nfs-server and nfs-doc
- adjust init scripts
- remove old Obsoletes/Provides:
nfsutils (last used 2001)
knfsd (last used 2000)
linuxnfs (last used 1999)
* Tue Feb 27 2007 - ro@suse.de
- update to 1.0.12
- Fix -n option to mountd

267
nfs.init Normal file
View File

@ -0,0 +1,267 @@
#! /bin/bash
# Copyright (c) 1996-2002 SuSE Linux AG, Nuernberg, Germany.
# All rights reserved.
#
# Author: Florian La Roche, 1996
# Werner Fink <werner@suse.de>, 1996
# Burchard Steinbild, 1996
#
# Please send feedback to http://www.suse.de/feedback
#
# /etc/init.d/nfs
#
### BEGIN INIT INFO
# Provides: nfs
# Required-Start: $network $portmap
# Required-Stop:
# Default-Start: 3 5
# Default-Stop:
# Short-Description: NFS client services
# Description: All necessary services for NFS clients
### END INIT INFO
. /etc/rc.status
. /etc/sysconfig/nfs
IDMAPD_BIN=/usr/sbin/rpc.idmapd
GSSD_BIN=/usr/sbin/rpc.gssd
IDMAPD_CLIENT_STATE=/var/lock/subsys/nfs-rpc.idmapd
IDMAPD_SERVER_STATE=/var/lock/subsys/nfsserver-rpc.idmapd
NEED_IDMAPD=no
NEED_GSSD=no
nfs=no
NEED_LDCONFIG=no
while read where what type options rest ; do
case "$where" in
\#*|"") ;;
*) case "$options" in
*noauto*) ;;
*) if test "$type" = "nfs" -o "$type" = "nfs4" ; then
nfs=yes
case "$where" in
/usr*|/opt*)
NEED_LDCONFIG=yes
break
;;
*)
if grep -q "^$where" /etc/ld.so.conf; then
NEED_LDCONFIG=yes
break;
fi
;;
esac
fi ;;
esac
esac
done < /etc/fstab
case $NFS_SECURITY_GSS in
[Nn]*) flavors="";;
[Yy]*) flavors=krb5;;
*) flavors="$NFS_SECURITY_GSS";;
esac
if [ "$flavors" ]; then
NEED_GSSD=yes
fi
if [ "$NFS4_SUPPORT" = yes ]; then
NEED_IDMAPD=yes
fi
mount_rpc_pipefs() {
# See if the file system is there yet
case `stat -c "%t" -f /var/lib/nfs/rpc_pipefs` in
*67596969*)
return 0;;
esac
mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs
}
mount_usr() {
while read where what type options rest ; do
case "$where" in
\#*|"") ;;
*) case "$options" in
*noauto*) ;;
*) if test "$type" = "nfs" -o "$type" = "nfs4" ; then
case "$where" in
/usr*)
mount -o nolock $where
break
;;
esac
fi ;;
esac
esac
done < /etc/fstab
}
do_start_gssd() {
for flavor in $flavors; do
/sbin/modprobe rpcsec_gss_$flavor
done
mount_rpc_pipefs
startproc $GSSD_BIN
return $?
}
do_start_idmapd() {
mount_rpc_pipefs
# as idmapd needs to be run be server and client
# check if there is already a idmapd running
if checkproc $IDMAPD_BIN && test -f $IDMAPD_SERVER_STATE; then
killproc -HUP $IDMAPD_BIN
else
startproc $IDMAPD_BIN
fi
return $?
}
rc_reset
case "$1" in
start|reload)
echo -n "Starting NFS client services:"
# in case we need /usr via nfs
mount_usr
# sm-notify
echo -n " sm-notify"
/usr/sbin/sm-notify
# gssd
if [ "$NEED_GSSD" = yes ]; then
echo -n " gssd"
do_start_gssd
if [ $? != 0 ]; then
rc_status -v
rc_exit
fi
fi
# idmapd
if [ "$NEED_IDMAPD" = yes ]; then
echo -n " idmapd"
do_start_idmapd
if [ $? != 0 ]; then
rc_status -v
rc_exit
fi
echo $IDMAPD_BIN > $IDMAPD_CLIENT_STATE
fi
# statd is started when needed by mount.nfs
#
if test "$nfs" = yes ; then
# Mount all auto NFS devices (-> nfs(5) and mount(8) )
# NFS-Server sometime not reachable during boot phase.
# It's sometime usefull to mount NFS devices in
# background with an ampersand (&) and a sleep time of
# two or more seconds, e.g:
#
# sleep 2 && mount -at nfs,nfs4 &
# sleep 2
#
# Note: Some people importing the /usr partition.
# Therefore we do _NOT_ use an ampersand!
#
mount -at nfs,nfs4 > /dev/null 2>&1
#
# generate new list of available shared libraries
#
if test "$NEED_LDCONFIG" = yes; then
rc_status
sleep 1
# check if ld.so.cache needs to be refreshed
/etc/init.d/boot.ldconfig start > /dev/null 2>&1
fi
fi
#
rc_status -v
;;
stop)
echo -n "Shutting down NFS client services:"
if test "$nfs" = "yes" ; then
#
# Unmount in background because during long timeouts
#
umount -at nfs,nfs4 &
sleep 2
fi
#
if [ "$NEED_GSSD" = yes ]; then
echo -n " gssd"
killproc $GSSD_BIN
if [ $? != 0 ]; then
rc_status -v
rc_exit
fi
fi
#
if [ "$NEED_IDMAPD" = yes ]; then
# only stop idmapd if it is not needed by server
if [ ! -f $IDMAPD_SERVER_STATE ]; then
echo -n " idmapd"
killproc $IDMAPD_BIN
if [ $? != 0 ]; then
rc_status -v
rc_exit
fi
fi
rm -f $IDMAPD_CLIENT_STATE
fi
#
rc_status -v
;;
restart|force-reload)
## Stop the service and regardless of whether it was
## running or not, start it again.
$0 stop
$0 start
rc_status
;;
status)
echo -n "Checking for mounted nfs shares (from /etc/fstab):"
if test "$nfs" = "yes" ; then
while read where what type options rest ; do
case "$where" in
\#*|"") ;;
*) case "$options" in
*noauto*) ;;
*) if test "$type" = "nfs" -o "$type" = "nfs4" ; then
grep -q "$where $what nfs" /proc/mounts || rc_failed 3
fi ;;
esac
esac
done < /etc/fstab
else
rc_failed 3
fi
#
if [ "$NEED_GSSD" = yes ] && ! checkproc $GSSD_BIN; then
echo "gssd not running"
rc_failed 3
fi
#
if [ "$NEED_IDMAPD" = yes ] && ! checkproc $IDMAPD_BIN; then
echo "idmapd not running"
rc_failed 3
fi
rc_status -v
;;
try-restart|condrestart)
$0 status
if test $? = 0; then
$0 restart
else
rc_reset
fi
rc_status
;;
*)
echo "Usage: $0 {start|stop|status|reload|force-reload|restart|try-restart}"
exit 1
esac
rc_exit

View File

@ -1,5 +1,5 @@
#! /bin/sh
# Copyright (c) 1996 - 2001 SuSE GmbH Nuernberg, Germany. All rights reserved.
# Copyright (c) 1996 - 2007 SuSE GmbH Nuernberg, Germany. All rights reserved.
#
# Author: Florian La Roche <florian@suse.de>, 1996
# Werner Fink <werner@suse.de>, 1996,98
@ -10,13 +10,13 @@
#
### BEGIN INIT INFO
# Provides: nfsserver
# Required-Start: $network $remote_fs $named portmap
# Required-Start: $network $named portmap
# Required-Stop: $network portmap
# Should-Start: ypbind svcgssd idmapd
# Should-Start: ypbind krb5kdc
# Should-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Start the kernel based NFS daemon
# Short-Description: Start the kernel based NFS daemon
### END INIT INFO
. /etc/sysconfig/nfs
@ -50,10 +50,34 @@ rc_reset
# with force-reload (in case signalling is not supported) are
# considered a success.
SVCGSSD_BIN=/usr/sbin/rpc.svcgssd
IDMAPD_BIN=/usr/sbin/rpc.idmapd
NFSD_BIN=/usr/sbin/rpc.nfsd
IDMAPD_CLIENT_STATE=/var/lock/subsys/nfs-rpc.idmapd
IDMAPD_SERVER_STATE=/var/lock/subsys/nfsserver-rpc.idmapd
NEED_SVCGSSD=no
NEED_IDMPAPD=no
case `uname -r` in
0.*|1.*|2.0.*) exit 3
esac
case $NFS_SECURITY_GSS in
[Nn]*) flavors="";;
[Yy]*) flavors=krb5;;
*) flavors="$NFS_SECURITY_GSS";;
esac
if [ "$flavors" ]; then
NEED_SVCGSSD=yes
fi
if [ "$NFS4_SUPPORT" = yes ]; then
NEED_IDMAPD=yes
fi
check_for_nfsdfs() {
HAVE_NFSDFS="no"
while read dummy type ; do
@ -89,13 +113,54 @@ nfs4_unbind_mounts() {
done
}
mount_rpc_pipefs() {
# See if the file system is there yet
case `stat -c "%t" -f /var/lib/nfs/rpc_pipefs` in
*67596969*)
return 0;;
esac
mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs
}
umount_rpc_pipefs() {
case `stat -c "%t" -f /var/lib/nfs/rpc_pipefs` in
*67596969*)
umount /var/lib/nfs/rpc_pipefs;;
esac
}
do_start_svcgssd() {
for flavor in $flavors; do
/sbin/modprobe rpcsec_gss_$flavor
done
mount_rpc_pipefs
startproc $SVCGSSD_BIN
return $?
}
do_start_idmapd() {
mount_rpc_pipefs
if checkproc $IDMAPD_BIN && test -f $IDMAPD_CLIENT_STATE; then
killproc -HUP $IDMAPD_BIN
else
startproc $IDMAPD_BIN
fi
return $?
}
case "$1" in
start)
PARAMS=3
test "$USE_KERNEL_NFSD_NUMBER" -gt 0 && PARAMS="$USE_KERNEL_NFSD_NUMBER"
echo -n "Starting kernel based NFS server"
echo -n "Starting kernel based NFS server:"
modprobe nfsd
# mount nfsd filesystem
check_for_nfsdfs
if [ "$HAVE_NFSDFS" = "yes" -a ! -f /proc/fs/nfsd/exports ] ; then
mount -t nfsd nfsd /proc/fs/nfsd
@ -107,36 +172,105 @@ case "$1" in
echo "+2 +3 -4" > /proc/fs/nfsd/versions
fi
nfs4_bind_mounts
# svcgssd; idmapd
if [ "$NEED_SVCGSSD" = yes ]; then
echo -n " svcgssd"
do_start_svcgssd
if [ $? != 0 ]; then
rc_status -v
rc_exit
fi
fi
if [ "$NEED_IDMAPD" = yes ]; then
echo -n " idmapd"
do_start_idmapd
if [ $? != 0 ]; then
rc_status -v
rc_exit
fi
echo $IDMAPD_BIN > $IDMAPD_SERVER_STATE
fi
# exportfs
/usr/sbin/exportfs -r
rc_status
/usr/sbin/rpc.nfsd $PARAMS
rc_status
# rpc.mountd
echo -n " mountd"
if [ -n "$MOUNTD_PORT" ] ; then
startproc /usr/sbin/rpc.mountd -p $MOUNTD_PORT
else
startproc /usr/sbin/rpc.mountd
fi
if [ "$NFS4_SUPPORT" = "yes" ]; then
checkproc /usr/sbin/rpc.idmapd
if [ $? -eq 0 ] ; then
## Let idmapd know that nfs server is starting up
/etc/init.d/idmapd reload
fi
fi
if [ $? != 0 ]; then
rc_status -v
rc_exit
fi
# rpc.statd
echo -n " statd"
startproc /usr/sbin/rpc.statd --no-notify
if [ $? != 0 ]; then
rc_status -v
rc_exit
fi
# rpc.nfsd
echo -n " nfsd"
$NFSD_BIN $PARAMS
if [ $? != 0 ]; then
rc_status -v
rc_exit
fi
# sm-notify needs to be run last
echo -n " sm-notify"
/usr/sbin/sm-notify
#
rc_status -v
;;
stop)
echo -n "Shutting down kernel based NFS server"
echo -n "Shutting down kernel based NFS server:"
# rpc.nfsd
echo -n " nfsd"
killproc -n -KILL nfsd
rc_status
if [ $? != 0 ]; then
rc_status -v
rc_exit
fi
# rpc.statd
if ! checkproc -n lockd; then
echo -n " statd"
killproc rpc.statd
fi
#
# rpc.mountd
echo -n " mountd"
killproc -TERM /usr/sbin/rpc.mountd
rc_status
if [ $? != 0 ]; then
rc_status -v
rc_exit
fi
# svcgssd
if [ "$NEED_SVCGSSD" = yes ]; then
echo -n " svcgssd"
killproc $SVCGSSD_BIN
if [ $? != 0 ]; then
rc_status -v
rc_exit
fi
fi
# idmap
if [ "$NEED_IDMAPD" = yes ]; then
# kill only if not needed by client anymore
if [ ! -f $IDMAPD_CLIENT_STATE ]; then
echo -n " idmapd"
killproc $IDMAPD_BIN
fi
rm -f $IDMAPD_SERVER_STATE
fi
# umount nfsd fs
check_for_nfsdfs
if [ "$HAVE_NFSDFS" = "yes" -a -f /proc/fs/nfsd/exports ] ; then
umount /proc/fs/nfsd
rc_status
fi
nfs4_unbind_mounts
#
rc_status -v
;;
try-restart)
@ -164,7 +298,7 @@ case "$1" in
rc_status -v
;;
status)
echo -n "Checking for kernel based NFS server: "
echo -n "Checking for kernel based NFS server:"
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.
@ -175,10 +309,38 @@ case "$1" in
# 3 - service not running
# NOTE: checkproc returns LSB compliant status values.
if [ "$NEED_SVCGSSD" = yes ]; then
echo -n " svcgssd"
checkproc $SVCGSSD_BIN
if [ $? != 0 ]; then
rc_status -v
rc_exit
fi
fi
if [ "$NEED_IDMAPD" = yes ]; then
echo -n " idmapd"
checkproc $IDMAPD_BIN
if [ $? != 0 ]; then
rc_status -v
rc_exit
fi
fi
echo -n " mountd"
checkproc /usr/sbin/rpc.mountd
rc_status
if [ $? != 0 ]; then
rc_status -v
rc_exit
fi
echo -n " statd"
checkproc /usr/sbin/rpc.statd
if [ $? != 0 ]; then
rc_status -v
rc_exit
fi
echo -n " nfsd"
checkproc -n nfsd
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}"

View File

@ -1,137 +0,0 @@
#! /bin/sh
# Copyright (c) 1996 - 2005 SuSE GmbH Nuernberg, Germany. All rights reserved.
#
# Author: Florian La Roche <florian@suse.de>, 1996
# Werner Fink <werner@suse.de>, 1996,98
# Burchard Steinbild <bs@suse.de>, 1997
# Thorsten Kukuk <kukuk@suse.de>, 2000,01
#
# /etc/init.d/svcgssd
#
### BEGIN INIT INFO
# Provides: svcgssd
# Required-Start: $network $remote_fs $named portmap
# Required-Stop: $network portmap
# Should-Start: ypbind krb5kdc
# Should-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Start the RPC GSS security daemon
### END INIT INFO
. /etc/sysconfig/nfs
# Shell functions sourced from /etc/rc.status:
# rc_check check and set local and overall rc status
# rc_status check and set local and overall rc status
# rc_status -v ditto but be verbose in local rc status
# rc_status -v -r ditto and clear the local rc status
# rc_failed set local and overall rc status to failed
# rc_failed <num> set local and overall rc status to <num><num>
# rc_reset clear local rc status (overall remains)
# rc_exit exit appropriate to overall rc status
. /etc/rc.status
# First reset status of this service
rc_reset
# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signalling is not supported) are
# considered a success.
function mount_rpc_pipefs {
# See if the file system is there yet
case `stat -c "%t" -f /var/lib/nfs/rpc_pipefs` in
*67596969*)
return 0;;
esac
echo -n " (mounting rpc_pipefs)"
mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs
}
case $NFS_SECURITY_GSS in
[Nn]*) flavors="";;
[Yy]*) flavors=krb5;;
*) flavors="$NFS_SECURITY_GSS";;
esac
case "$1" in
start)
echo -n "Starting RPC GSS security daemon"
if [ -n "$flavors" ]; then
echo -n " ($flavors)"
for flavor in $flavors; do
/sbin/modprobe rpcsec_gss_$flavor
done
mount_rpc_pipefs
/usr/sbin/rpc.svcgssd
rc_status -v
else
rc_status -u
fi
;;
stop)
if checkproc /usr/sbin/rpc.svcgssd; then
echo -n "Shutting down RPC GSS security daemon"
killproc -TERM /usr/sbin/rpc.svcgssd
rc_status -v
fi
;;
try-restart)
## Stop the service and if this succeeds (i.e. the
## service was running before), start it again.
$0 status >/dev/null && $0 restart
# Remember status and be quiet
rc_status
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
$0 stop
$0 start
# Remember status and be quiet
rc_status
;;
reload|force-reload)
if checkproc /usr/sbin/rpc.svcgssd; then
$0 restart
fi
;;
status)
echo -n "Checking for RPC GSS security daemon: "
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.
# Status has a slightly different for the status command:
# 0 - service running
# 1 - service dead, but /var/run/ pid file exists
# 2 - service dead, but /var/lock/ lock file exists
# 3 - service not running
# NOTE: checkproc returns LSB compliant status values.
checkproc /usr/sbin/rpc.svcgssd
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}"
exit 1
;;
esac
rc_exit