nfs-utils: use 'make install' for 1.1.2 version
authorMarcin Juszkiewicz <marcin@juszkiewicz.com.pl>
Wed, 25 Nov 2009 13:15:34 +0000 (14:15 +0100)
committerMarcin Juszkiewicz <marcin@juszkiewicz.com.pl>
Wed, 2 Dec 2009 15:53:20 +0000 (16:53 +0100)
This installs all tools as it should (mountd is no longer libtool
wrapper).

Adapted initscript for name changes (mountd is now rpc.mountd).

rpcdebug is removed as it is host built - fix it if you need it (was not
packaged before).

recipes/nfs-utils/nfs-utils-1.1.2/nfsserver [new file with mode: 0644]
recipes/nfs-utils/nfs-utils_1.1.2.bb

diff --git a/recipes/nfs-utils/nfs-utils-1.1.2/nfsserver b/recipes/nfs-utils/nfs-utils-1.1.2/nfsserver
new file mode 100644 (file)
index 0000000..b4c7662
--- /dev/null
@@ -0,0 +1,149 @@
+#!/bin/sh
+#
+# Startup script for nfs-utils
+#
+#
+# The environment variable NFS_SERVERS may be set in /etc/default/nfsd
+# Other control variables may be overridden here too
+test -r /etc/default/nfsd && . /etc/default/nfsd
+#
+# Location of executables:
+test -x "$NFS_MOUNTD" || NFS_MOUNTD=/usr/sbin/rpc.mountd
+test -x "$NFS_NFSD" || NFS_NFSD=/usr/sbin/rpc.nfsd
+test -x "$NFS_STATD" || NFS_STATD=/usr/sbin/rpc.statd
+#
+# The user mode program must also exist (it just starts the kernel
+# threads using the kernel module code).
+test -x "$NFS_MOUNTD" || exit 0
+test -x "$NFS_NFSD" || exit 0
+#
+# Default is 8 threads, value is settable between 1 and the truely
+# ridiculous 99
+test "$NFS_SERVERS" -gt 0 && test "$NFS_SERVERS" -lt 100 || NFS_SERVERS=8
+#
+# The default state directory is /var/lib/nfs
+test -n "$NFS_STATEDIR" || NFS_STATEDIR=/var/lib/nfs
+#
+#----------------------------------------------------------------------
+# Startup and shutdown functions.
+#  Actual startup/shutdown is at the end of this file.
+#directories
+create_directories(){
+       echo -n 'creating NFS state directory: '
+       mkdir -p "$NFS_STATEDIR"
+       (       cd "$NFS_STATEDIR"
+               umask 077
+               mkdir -p sm sm.bak
+               test -w sm/state || {
+                       rm -f sm/state
+                       :>sm/state
+               }
+               umask 022
+               for file in xtab etab smtab rmtab
+               do
+                       test -w "$file" || {
+                               rm -f "$file"
+                               :>"$file"
+                       }
+               done
+       )
+       echo done
+}
+#mountd
+start_mountd(){
+       echo -n 'starting mountd: '
+       start-stop-daemon --start --exec "$NFS_MOUNTD" -- "-f /etc/exports $@"
+       echo done
+}
+stop_mountd(){
+       echo -n 'stopping mountd: '
+       start-stop-daemon --stop --quiet --exec "$NFS_MOUNTD"
+       echo done
+}
+#
+#nfsd
+start_nfsd(){
+       echo -n "starting $1 nfsd kernel threads: "
+       start-stop-daemon --start --exec "$NFS_NFSD" -- "$@"
+       echo done
+}
+delay_nfsd(){
+       for delay in 0 1 2 3 4 5 6 7 8 9 
+       do
+               if pidof nfsd >/dev/null
+               then
+                       echo -n .
+                       sleep 1
+               else
+                       return 0
+               fi
+       done
+       return 1
+}
+stop_nfsd(){
+       # WARNING: this kills any process with the executable
+       # name 'nfsd'.
+       echo -n 'stopping nfsd: '
+       start-stop-daemon --stop --quiet --signal 1 --name nfsd
+       if delay_nfsd || {
+               echo failed
+               echo ' using signal 9: '
+               start-stop-daemon --stop --quiet --signal 9 --name nfsd
+               delay_nfsd
+       }
+       then
+               echo done
+               # This will remove, recursively, dependencies
+               echo -n 'removing nfsd kernel module: '
+               if modprobe -r nfsd
+               then
+                       echo done
+               else
+                       echo failed
+               fi
+       else
+               echo failed
+       fi
+}
+
+#statd
+start_statd(){
+       echo -n "starting statd: "
+       start-stop-daemon --start --exec "$NFS_STATD"
+       echo done
+}
+stop_statd(){
+       # WARNING: this kills any process with the executable
+       # name 'statd'.
+       echo -n 'stopping statd: '
+       start-stop-daemon --stop --quiet --signal 1 --name statd
+       echo done
+}
+#----------------------------------------------------------------------
+#
+# supported options:
+#  start
+#  stop
+#  reload: reloads the exports file
+#  restart: stops and starts mountd
+#FIXME: need to create the /var/lib/nfs/... directories
+case "$1" in
+start) create_directories
+       start_nfsd "$NFS_SERVERS"
+       start_mountd
+       start_statd
+       test -r /etc/exports && exportfs -a;;
+stop)  exportfs -ua
+       stop_statd
+       stop_mountd
+       stop_nfsd;;
+reload)        test -r /etc/exports && exportfs -r;;
+restart)exportfs -ua
+       stop_mountd
+       stop_statd
+       # restart does not restart the kernel threads,
+       # only the user mode processes
+       start_mountd
+       start_statd
+       test -r /etc/exports && exportfs -a;;
+esac
index cdd5d37..3951c46 100644 (file)
@@ -3,7 +3,7 @@ PRIORITY = "optional"
 SECTION = "console/network"
 LICENSE = "GPL"
 
-PR = "r6"
+PR = "r7"
 
 DEPENDS = "e2fsprogs-libs tcp-wrappers libevent"
 
@@ -44,30 +44,12 @@ do_ccompile() {
 
 INHIBIT_AUTO_STAGE = "1"
 
-do_install() {
+do_install_append() {
        install -d ${D}${sysconfdir}/init.d
        install -m 0755 ${WORKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver
 
-       install -d ${D}${sbindir}
-       install -d ${D}${base_sbindir}
-       install -m 0755 ${S}/utils/exportfs/exportfs ${D}${sbindir}/exportfs
-       install -m 0755 ${S}/utils/mountd/mountd ${D}${sbindir}/mountd
-       install -m 0755 ${S}/utils/mount/mount.nfs ${D}${base_sbindir}/mount.nfs
-       install -m 0755 ${S}/utils/nfsd/nfsd ${D}${sbindir}/nfsd
-       install -m 0755 ${S}/utils/nfsstat/nfsstat ${D}${sbindir}/nfsstat
-       install -m 0755 ${S}/utils/showmount/showmount ${D}${sbindir}/showmount
-       install -m 0755 ${S}/utils/statd/statd ${D}${sbindir}/statd
-
-       ln -s ${base_sbindir}/mount.nfs ${D}/${base_sbindir}/mount.nfs4
-
-       install -d ${D}${mandir}/man8
-       install -m 0644 ${S}/utils/exportfs/exportfs.man ${D}${mandir}/man8/exportfs.8
-       install -m 0644 ${S}/utils/mountd/mountd.man ${D}${mandir}/man8/mountd.8
-       install -m 0644 ${S}/utils/nfsd/nfsd.man ${D}${mandir}/man8/nfsd.8
-       install -m 0644 ${S}/utils/nfsstat/nfsstat.man ${D}${mandir}/man8/nfsstat.8
-       install -m 0644 ${S}/utils/showmount/showmount.man ${D}${mandir}/man8/showmount.8
-       install -m 0644 ${S}/utils/statd/statd.man ${D}${mandir}/man8/statd.8
+       rm ${D}${sbindir}/rpcdebug
 }
 
 PACKAGES =+ "nfs-utils-client"
-FILES_nfs-utils-client = "${base_sbindir}/mount.nfs ${base_sbindir}/mount.nfs4"
+FILES_nfs-utils-client = "${base_sbindir}/*mount.nfs*"