diff options
Diffstat (limited to 'abs/core/nfs-utils')
-rw-r--r-- | abs/core/nfs-utils/PKGBUILD | 48 | ||||
-rw-r--r-- | abs/core/nfs-utils/exports | 8 | ||||
-rw-r--r-- | abs/core/nfs-utils/nfs-utils.install | 38 | ||||
-rw-r--r-- | abs/core/nfs-utils/nfs.conf.d | 20 | ||||
-rwxr-xr-x | abs/core/nfs-utils/nfsd | 91 | ||||
-rwxr-xr-x | abs/core/nfs-utils/nfslock | 50 | ||||
-rw-r--r-- | abs/core/nfs-utils/start-statd.patch | 21 |
7 files changed, 276 insertions, 0 deletions
diff --git a/abs/core/nfs-utils/PKGBUILD b/abs/core/nfs-utils/PKGBUILD new file mode 100644 index 0000000..32626c6 --- /dev/null +++ b/abs/core/nfs-utils/PKGBUILD @@ -0,0 +1,48 @@ +# $Id: PKGBUILD 13100 2008-09-25 22:15:28Z ronald $ +# Maintainer: dorphell <dorphell@archlinux.org> +# Contributor: John Proctor <jproctor@prium.net> +# Contributor: dibblethewrecker <dibblethewrecker.at.jiwe.org> + +pkgname=nfs-utils +pkgver=1.1.3 +pkgrel=2 +pkgdesc="Support programs for Network File Systems" +arch=('i686' 'x86_64') +url='http://nfs.sourceforge.net' +license=('GPL') +backup=('etc/exports' 'etc/conf.d/nfs') +depends=('glibc' 'tcp_wrappers' 'e2fsprogs' 'portmap' 'nfsidmap' 'libevent>=1.3e') +source=(http://downloads.sourceforge.net/nfs/${pkgname}-${pkgver}.tar.gz + nfsd + nfslock + exports + nfs.conf.d + start-statd.patch) +install=nfs-utils.install +md5sums=('167d231850b00c7c63300747aeb94c38' + '5a9436e492e68efaf801b9c496684541' + '5d0d31f27f2319747d4499df11485ae7' + '1358d29a549dfc37b522c35e823c6813' + 'b4aae6963ec25d226eb2d97214f5bb18' + '9c8aeff40ca25312328afe3b7fad293f') + +build() { + cd $srcdir/${pkgname}-${pkgver} + + # arch specific patch + patch -Np0 -i ../start-statd.patch || return 1 + + ./configure --prefix=/usr --enable-nfsv3 --disable-gss \ + --with-statedir=/var/lib/nfs --sysconfdir=/etc + + make || return 1 + make DESTDIR=$pkgdir install || return 1 + + install -D -m 755 ../nfsd ${startdir}/pkg/etc/rc.d/nfsd + install -D -m 755 ../nfslock ${startdir}/pkg/etc/rc.d/nfslock + install -D -m 644 ../exports ${startdir}/pkg/etc/exports + install -D -m 644 ../nfs.conf.d ${startdir}/pkg/etc/conf.d/nfs + + install -d $pkgdir/var/lib/nfs/v4recovery +} + diff --git a/abs/core/nfs-utils/exports b/abs/core/nfs-utils/exports new file mode 100644 index 0000000..c9f93c6 --- /dev/null +++ b/abs/core/nfs-utils/exports @@ -0,0 +1,8 @@ +# /etc/exports +# +# See exports(5) for a description. + +# use exportfs -arv to reread +#/export 192.168.1.10(rw,no_root_squash) + + diff --git a/abs/core/nfs-utils/nfs-utils.install b/abs/core/nfs-utils/nfs-utils.install new file mode 100644 index 0000000..380fc99 --- /dev/null +++ b/abs/core/nfs-utils/nfs-utils.install @@ -0,0 +1,38 @@ + + +post_install() { + cat << 'EOM' + + ==> + ==> PLEASE NOTE: + ==> Extended configuration options for NFS are available in + ==> /etc/conf.d/nfs. + ==> + ==> Please refer to http://wiki.archlinux.org/index.php/Nfs + ==> for further information. + ==> + +EOM +} + +post_upgrade() { + cat << 'EOM' + + ==> + ==> PLEASE NOTE: + ==> Extended configuration options for NFS are now available in + ==> /etc/conf.d/nfs. + ==> If /etc/conf.d/nfsd remains on your system from an earlier + ==> installation, transfer its settings to /etc/conf.d/nfs and + ==> delete it. + ==> + ==> Please refer to http://wiki.archlinux.org/index.php/Nfs + ==> for further information. + ==> + +EOM +} + +op=$1 +shift +$op $* diff --git a/abs/core/nfs-utils/nfs.conf.d b/abs/core/nfs-utils/nfs.conf.d new file mode 100644 index 0000000..73e396a --- /dev/null +++ b/abs/core/nfs-utils/nfs.conf.d @@ -0,0 +1,20 @@ +# Number of servers to be started up by default +NFSD_OPTS=8 + +# Options to pass to rpc.mountd +# e.g. MOUNTDOPTS="-p 32767" +MOUNTD_OPTS="--no-nfs-version 1 --no-nfs-version 2" + +# Options to pass to rpc.statd +# N.B. statd normally runs on both client and server, and run-time +# options should be specified accordingly. Specifically, the Arch +# NFS init scripts require the --no-notify flag on the server, +# but not on the client e.g. +# STATD_OPTS="--no-notify -p 32765 -o 32766" -> server +# STATD_OPTS="-p 32765 -o 32766" -> client +STATD_OPTS="" + +# Options to pass to sm-notify +# e.g. SMNOTIFY_OPTS="-p 32764" +SMNOTIFY_OPTS="" + diff --git a/abs/core/nfs-utils/nfsd b/abs/core/nfs-utils/nfsd new file mode 100755 index 0000000..ce891e2 --- /dev/null +++ b/abs/core/nfs-utils/nfsd @@ -0,0 +1,91 @@ +#!/bin/bash + +# source application-specific settings +[ -f /etc/conf.d/nfs ] && . /etc/conf.d/nfs + +. /etc/rc.conf +. /etc/rc.d/functions + +DAEMON_NAME=nfsd +NFSD_PID=`pidof -o %PPID nfsd` +MOUNTD_PID=`pidof -o %PPID /usr/sbin/rpc.mountd` +case "$1" in + start) + stat_busy "Starting $DAEMON_NAME" + # Check for portmap + if [ ! -f /var/run/daemons/portmap ]; then + echo "ERROR: portmap is not running" + stat_fail + exit 1 + fi + # Check for nfslock + if [ ! -f /var/run/daemons/nfslock ]; then + echo "ERROR: nfslock is not running" + stat_fail + exit 1 + fi + # Check for /proc/fs/nfsd + if grep -qs nfsd /proc/filesystems ; then + if ! grep -qs "nfsd /proc/fs/nfsd" /proc/mounts ; then + mount -t nfsd -o nodev,noexec,nosuid nfsd /proc/fs/nfsd + fi + fi + # Run exportfs + /usr/sbin/exportfs -r + # Run mountd + [ -z "$MOUNTD_PID" ] && /usr/sbin/rpc.mountd $MOUNTD_OPTS + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + echo `pidof -o %PPID /usr/sbin/rpc.mountd` > /var/run/rpc.mountd.pid + fi + # Run nfsd + [ -z "$NFSD_PID" ] && /usr/sbin/rpc.nfsd $NFSD_OPTS + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + echo `pidof -o %PPID nfsd` > /var/run/rpc.nfsd.pid + fi + # Run sm-notify + /usr/sbin/sm-notify $SMNOTIFY_OPTS + add_daemon $DAEMON_NAME + stat_done + ;; + + stop) + stat_busy "Stopping $DAEMON_NAME" + [ ! -z "$MOUNTD_PID" ] && kill $MOUNTD_PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + rm /var/run/rpc.mountd.pid &> /dev/null + fi + sleep 1 + [ ! -z "$NFSD_PID" ] && kill $NFSD_PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + kill -9 $NFSD_PID &> /dev/null + rm /var/run/rpc.nfsd.pid &> /dev/null + fi + if [ "$RUNLEVEL" = "0" ]; then + /usr/sbin/exportfs -au + fi + rm_daemon $DAEMON_NAME + stat_done + ;; + + restart) + $0 stop + sleep 2 + $0 start + ;; + + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/abs/core/nfs-utils/nfslock b/abs/core/nfs-utils/nfslock new file mode 100755 index 0000000..f25ab3c --- /dev/null +++ b/abs/core/nfs-utils/nfslock @@ -0,0 +1,50 @@ +#!/bin/bash + +# source application-specific settings +[ -f /etc/conf.d/nfs ] && . /etc/conf.d/nfs + +. /etc/rc.conf +. /etc/rc.d/functions + +DAEMON_NAME=nfslock +PID=`pidof -o %PPID /usr/sbin/rpc.statd` +case "$1" in + start) + stat_busy "Starting $DAEMON_NAME" + # Check for /proc/fs/nfsd + if grep -qs nfsd /proc/filesystems ; then + if ! grep -qs "nfsd /proc/fs/nfsd" /proc/mounts ; then + mount -t nfsd -o nodev,noexec,nosuid nfsd /proc/fs/nfsd + fi + fi + [ -z "$PID" ] && /usr/sbin/rpc.statd $STATD_OPTS + if [ $? -gt 0 ]; then + stat_fail + else + echo `pidof rpc.statd` > /var/run/rpc.statd.pid + stat_done + add_daemon $DAEMON_NAME + fi + ;; + + stop) + stat_busy "Stopping $DAEMON_NAME" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm /var/run/rpc.statd.pid &> /dev/null + rm_daemon $DAEMON_NAME + stat_done + fi + ;; + + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/abs/core/nfs-utils/start-statd.patch b/abs/core/nfs-utils/start-statd.patch new file mode 100644 index 0000000..aaed93e --- /dev/null +++ b/abs/core/nfs-utils/start-statd.patch @@ -0,0 +1,21 @@ +--- utils/statd/start-statd 2007-05-11 04:40:57.000000000 +0100 ++++ utils/statd/start-statd.new 2007-09-21 17:11:34.000000000 +0100 +@@ -1,9 +1,16 @@ + #!/bin/sh ++ ++# Original script provided by the NFS project ++# Modified for Arch Linux by Tom Killian ++ + # nfsmount calls this script when mounting a filesystem with locking + # enabled, but when statd does not seem to be running (based on + # /var/run/rpc.statd.pid). + # It should run run statd with whatever flags are apropriate for this + # site. +-PATH=/sbin:/usr/sbin +-exec rpc.statd --no-notify ++ ++# source application-specific settings ++[ -f /etc/conf.d/nfs ] && . /etc/conf.d/nfs ++ ++exec /usr/sbin/rpc.statd $STATD_OPTS + |