summaryrefslogtreecommitdiffstats
path: root/package/nfs-utils
diff options
context:
space:
mode:
author"Steven J. Hill" <sjhill@realitydiluted.com>2007-01-14 01:46:04 +0000
committer"Steven J. Hill" <sjhill@realitydiluted.com>2007-01-14 01:46:04 +0000
commit72f3ebce22536705f9eb90c6b570a9e19be4eb43 (patch)
tree072f95efa7166c76b4991921d9ba1012c4115504 /package/nfs-utils
parent0d7b08da1300adc4d6f31346e67d54a82e86e915 (diff)
downloadbuildroot-novena-72f3ebce22536705f9eb90c6b570a9e19be4eb43.tar.gz
buildroot-novena-72f3ebce22536705f9eb90c6b570a9e19be4eb43.zip
Add new NFS utilities package with working init script.
Diffstat (limited to 'package/nfs-utils')
-rw-r--r--package/nfs-utils/Config.in33
-rwxr-xr-xpackage/nfs-utils/init-nfs81
-rw-r--r--package/nfs-utils/nfs-utils-1.0.10-debian.patch2675
-rw-r--r--package/nfs-utils/nfs-utils.mk86
4 files changed, 2875 insertions, 0 deletions
diff --git a/package/nfs-utils/Config.in b/package/nfs-utils/Config.in
new file mode 100644
index 000000000..86045fa6b
--- /dev/null
+++ b/package/nfs-utils/Config.in
@@ -0,0 +1,33 @@
+config BR2_PACKAGE_NFS_UTILS
+ bool "nfs-utils"
+ default n
+ help
+ The NFS Linux kernel server.
+
+ http://sourceforge.net/projects/nfs
+
+menu "NFS utilities selection"
+ depends BR2_PACKAGE_NFS_UTILS
+
+config BR2_PACKAGE_NFS_UTILS_RPCDEBUG
+ bool "rpcdebug"
+ default n
+ depends on BR2_PACKAGE_NFS_UTILS
+ help
+ The RPC debugging utility
+
+config BR2_PACKAGE_NFS_UTILS_RPC_LOCKD
+ bool "rpc.lockd"
+ default n
+ depends on BR2_PACKAGE_NFS_UTILS
+ help
+ NFS lock manager for Linux kernels older than 2.4
+
+config BR2_PACKAGE_NFS_UTILS_RPC_RQUOTAD
+ bool "rpc.rquotad"
+ default n
+ depends on BR2_PACKAGE_NFS_UTILS
+ help
+ NFS remote quota server
+
+endmenu
diff --git a/package/nfs-utils/init-nfs b/package/nfs-utils/init-nfs
new file mode 100755
index 000000000..962bd3910
--- /dev/null
+++ b/package/nfs-utils/init-nfs
@@ -0,0 +1,81 @@
+#!/bin/sh
+#
+# nfs This shell script takes care of starting and stopping
+# the NFS services. Stolen from RedHat FC5.
+
+[ -x /usr/sbin/rpc.statd ] || exit 0
+[ -x /usr/sbin/rpc.nfsd ] || exit 0
+[ -x /usr/sbin/rpc.mountd ] || exit 0
+[ -x /usr/sbin/exportfs ] || exit 0
+
+# Don't fail if /etc/exports doesn't exist; create a bare-bones version and continue.
+[ -r /etc/exports ] || \
+ { touch /etc/exports && chmod u+rw,g+r,o+r /etc/exports ; } || \
+ { echo "/etc/exports does not exist" ; exit 0 ; }
+
+# The /var/lib/nfs directory is actually on a tmpfs filesystem.
+mkdir -p /var/lib/nfs/sm
+mkdir -p /var/lib/nfs/sm.bak
+touch /var/lib/nfs/etab
+touch /var/lib/nfs/rmtab
+touch /var/lib/nfs/state
+touch /var/lib/nfs/xtab
+
+# See how we were called.
+case "$1" in
+ start)
+ # Start daemons.
+ echo -n "Starting NFS statd: "
+ rpc.statd
+ touch /var/lock/subsys/nfslock
+ echo "done"
+
+ echo -n "Starting NFS services: "
+ /usr/sbin/exportfs -r
+ rpc.statd
+ echo "done"
+
+ echo -n "Starting NFS daemon: "
+ rpc.nfsd 2
+ echo "done"
+
+ echo -n "Starting NFS mountd: "
+ rpc.mountd
+ echo "done"
+ touch /var/lock/subsys/nfs
+ ;;
+ stop)
+ # Stop daemons.
+ echo -n "Shutting down NFS mountd: "
+ killall -q rpc.mountd
+ echo "done"
+
+ echo "Shutting down NFS daemon: "
+ kill -9 `pidof nfsd` 2>/dev/null
+ echo "done"
+
+ echo -n "Shutting down NFS services: "
+ /usr/sbin/exportfs -au
+ rm -f /var/lock/subsys/nfs
+ killall -q rpc.statd
+ echo "done"
+
+ echo -n "Stopping NFS statd: "
+ killall -q rpc.statd
+ echo "done"
+ rm -f /var/lock/subsys/nfslock
+ ;;
+ restart)
+ stop
+ start
+ ;;
+ reload)
+ /usr/sbin/exportfs -r
+ touch /var/lock/subsys/nfs
+ ;;
+ *)
+ echo "Usage: nfs {start|stop|reload}"
+ exit 1
+esac
+
+exit 0
diff --git a/package/nfs-utils/nfs-utils-1.0.10-debian.patch b/package/nfs-utils/nfs-utils-1.0.10-debian.patch
new file mode 100644
index 000000000..4037dbbeb
--- /dev/null
+++ b/package/nfs-utils/nfs-utils-1.0.10-debian.patch
@@ -0,0 +1,2675 @@
+--- nfs-utils-1.0.10.orig/utils/exportfs/exports.man
++++ nfs-utils-1.0.10/utils/exportfs/exports.man
+@@ -29,6 +29,9 @@
+ the export name using a backslash followed by the character code as three
+ octal digits.
+ .PP
++To apply changes to this file, run exportfs \-ra or /etc/init.d/nfs-kernel-server
++reload (the latter being a distribution-specific extension).
++.PP
+ .SS Machine Name Formats
+ NFS clients may be specified in a number of ways:
+ .IP "single host
+@@ -402,8 +405,11 @@
+ .TP
+ .IR root_squash
+ Map requests from uid/gid 0 to the anonymous uid/gid. Note that this does
+-not apply to any other uids that might be equally sensitive, such as user
+-.IR bin .
++not apply to any other uids or gids that might be equally sensitive, such as
++user
++.IR bin
++or group
++.IR staff .
+ .TP
+ .IR no_root_squash
+ Turn off root squashing. This option is mainly useful for diskless clients.
+--- nfs-utils-1.0.10.orig/utils/mountd/mountd.c
++++ nfs-utils-1.0.10/utils/mountd/mountd.c
+@@ -558,7 +558,7 @@
+
+ /* Parse the command line options and arguments. */
+ opterr = 0;
+- while ((c = getopt_long(argc, argv, "o:n:Fd:f:p:P:hH:N:V:vs:t:", longopts, NULL)) != EOF)
++ while ((c = getopt_long(argc, argv, "o:nFd:f:p:P:hH:N:V:vs:t:", longopts, NULL)) != EOF)
+ switch (c) {
+ case 'o':
+ descriptors = atoi(optarg);
+--- nfs-utils-1.0.10.orig/utils/nfsstat/nfsstat.man
++++ nfs-utils-1.0.10/utils/nfsstat/nfsstat.man
+@@ -14,36 +14,36 @@
+ displays statistics kept about NFS client and server activity.
+ .SH OPTIONS
+ .TP
+-.B -s, --server
++.B \-s, \-\-server
+ Print only server-side statistics. The default is to print both server and
+ client statistics.
+ .TP
+-.B -c, --client
++.B \-c, \-\-client
+ Print only client-side statistics.
+ .TP
+-.B -n, --nfs
++.B \-n, \-\-nfs
+ Print only NFS statistics. The default is to print both NFS and RPC
+ information.
+ .TP
+-.B -2
++.B \-2
+ Print only NFS v2 statistics. The default is to only print information
+ about the versions of \fBNFS\fR that have non-zero counts.
+ .TP
+-.B -3
++.B \-3
+ Print only NFS v3 statistics.
+ .TP
+-.B -4
++.B \-4
+ Print only NFS v4 statistics.
+ .TP
+-.B -m, --mounted
++.B \-m, \-\-mounted
+ Print information about each of the mounted \fBNFS\fR file systems.
+
+ If this option is used, all other options are ignored.
+ .TP
+-.B -r, --rpc
++.B \-r, \-\-rpc
+ Print only RPC statistics.
+ .TP
+-.BI -o " facility
++.BI \-o " facility
+ Display statistics for the specified facility, which must be one of:
+ .RS
+ .TP
+@@ -69,27 +69,27 @@
+ Display all of the above facilities.
+ .RE
+ .TP
+-.B -v, --verbose
+-This is equivalent to \fB-o all\fR.
++.B \-v, \-\-verbose
++This is equivalent to \fB\-o all\fR.
+ .SH EXAMPLES
+ .TP
+-.B nfsstat -o all -234
++.B nfsstat \-o all \-234
+ Show all information about all versions of \fBNFS\fR.
+ .TP
+-.B nfsstat --verbose -234
++.B nfsstat \-\-verbose \-234
+ Same as above.
+ .TP
+-.B nfsstat -o all
++.B nfsstat \-o all
+ Show all information about about active versions of \fBNFS\fR.
+ .TP
+-.B nfsstat --nfs --server -3
++.B nfsstat \-\-nfs \-\-server \-3
+ Show statistics for \fBNFS\fR version 3 server.
+ .TP
+-.B nfsstat -m
++.B nfsstat \-m
+ Show information about mounted \fBNFS\fR filesystems.
+ .\" --------------------- DISPLAY --------------------------------
+ .SH DISPLAY
+-The \fBFlags\fR output from the \fB-m\fR option is the same as the
++The \fBFlags\fR output from the \fB\-m\fR option is the same as the
+ flags give to the \fBmount\fR command.
+ .\" --------------------- FILES ----------------------------------
+ .SH FILES
+@@ -111,11 +111,11 @@
+ .BR nfs (5).
+ .\" ---------------------- BUGS ----------------------------------
+ .SH BUGS
+-The default output has be changed. To get the old default output you must run \fBnfsstat --auto -2\fR.
++The default output has be changed. To get the old default output you must run \fBnfsstat \-\-auto \-2\fR.
+ .P
+-The function of the \fB-v\fR and \fB-a\fR options have changed. The \fB-a\fR option
+-is now reserved for future use. The \fB-v\fR does what the \fB-a\fR option used to do,
+-and the new \fB-[234]\fR options replace the \fB-v\fR option.
++The function of the \fB\-v\fR and \fB\-a\fR options have changed. The \fB\-a\fR option
++is now reserved for future use. The \fB\-v\fR does what the \fB\-a\fR option used to do,
++and the new \fB\-[234]\fR options replace the \fB\-v\fR option.
+ .P
+ The \fBDisplay\fR section should be more complete.
+ .P
+--- nfs-utils-1.0.10.orig/utils/rquotad/rquota.h
++++ nfs-utils-1.0.10/utils/rquotad/rquota.h
+@@ -0,0 +1,155 @@
++/*
++ * Please do not edit this file.
++ * It was generated using rpcgen.
++ */
++
++#ifndef _RQUOTA_H_RPCGEN
++#define _RQUOTA_H_RPCGEN
++
++#include <rpc/rpc.h>
++
++#ifndef IXDR_GET_INT32
++#define IXDR_GET_INT32(buf) IXDR_GET_LONG((buf))
++#endif
++#ifndef IXDR_PUT_INT32
++#define IXDR_PUT_INT32(buf, v) IXDR_PUT_LONG((buf), (v))
++#endif
++#ifndef IXDR_GET_U_INT32
++#define IXDR_GET_U_INT32(buf) IXDR_GET_U_LONG((buf))
++#endif
++#ifndef IXDR_PUT_U_INT32
++#define IXDR_PUT_U_INT32(buf, v) IXDR_PUT_U_LONG((buf), (v))
++#endif
++#define RQ_PATHLEN 1024
++
++struct getquota_args {
++ char *gqa_pathp;
++ int gqa_uid;
++};
++typedef struct getquota_args getquota_args;
++#ifdef __cplusplus
++extern "C" bool_t xdr_getquota_args(XDR *, getquota_args*);
++#elif __STDC__
++extern bool_t xdr_getquota_args(XDR *, getquota_args*);
++#else /* Old Style C */
++bool_t xdr_getquota_args();
++#endif /* Old Style C */
++
++
++struct ext_getquota_args {
++ char *gqa_pathp;
++ int gqa_type;
++ int gqa_id;
++};
++typedef struct ext_getquota_args ext_getquota_args;
++#ifdef __cplusplus
++extern "C" bool_t xdr_ext_getquota_args(XDR *, ext_getquota_args*);
++#elif __STDC__
++extern bool_t xdr_ext_getquota_args(XDR *, ext_getquota_args*);
++#else /* Old Style C */
++bool_t xdr_ext_getquota_args();
++#endif /* Old Style C */
++
++
++struct rquota {
++ int rq_bsize;
++ bool_t rq_active;
++ u_int rq_bhardlimit;
++ u_int rq_bsoftlimit;
++ u_int rq_curblocks;
++ u_int rq_fhardlimit;
++ u_int rq_fsoftlimit;
++ u_int rq_curfiles;
++ u_int rq_btimeleft;
++ u_int rq_ftimeleft;
++};
++typedef struct rquota rquota;
++#ifdef __cplusplus
++extern "C" bool_t xdr_rquota(XDR *, rquota*);
++#elif __STDC__
++extern bool_t xdr_rquota(XDR *, rquota*);
++#else /* Old Style C */
++bool_t xdr_rquota();
++#endif /* Old Style C */
++
++
++enum gqr_status {
++ Q_OK = 1,
++ Q_NOQUOTA = 2,
++ Q_EPERM = 3,
++};
++typedef enum gqr_status gqr_status;
++#ifdef __cplusplus
++extern "C" bool_t xdr_gqr_status(XDR *, gqr_status*);
++#elif __STDC__
++extern bool_t xdr_gqr_status(XDR *, gqr_status*);
++#else /* Old Style C */
++bool_t xdr_gqr_status();
++#endif /* Old Style C */
++
++
++struct getquota_rslt {
++ gqr_status status;
++ union {
++ rquota gqr_rquota;
++ } getquota_rslt_u;
++};
++typedef struct getquota_rslt getquota_rslt;
++#ifdef __cplusplus
++extern "C" bool_t xdr_getquota_rslt(XDR *, getquota_rslt*);
++#elif __STDC__
++extern bool_t xdr_getquota_rslt(XDR *, getquota_rslt*);
++#else /* Old Style C */
++bool_t xdr_getquota_rslt();
++#endif /* Old Style C */
++
++
++#define RQUOTAPROG ((u_int32_t)100011)
++#define RQUOTAVERS ((u_int32_t)1)
++
++#ifdef __cplusplus
++#define RQUOTAPROC_GETQUOTA ((u_int32_t)1)
++extern "C" getquota_rslt * rquotaproc_getquota_1(getquota_args *, CLIENT *);
++extern "C" getquota_rslt * rquotaproc_getquota_1_svc(getquota_args *, struct svc_req *);
++#define RQUOTAPROC_GETACTIVEQUOTA ((u_int32_t)2)
++extern "C" getquota_rslt * rquotaproc_getactivequota_1(getquota_args *, CLIENT *);
++extern "C" getquota_rslt * rquotaproc_getactivequota_1_svc(getquota_args *, struct svc_req *);
++
++#elif __STDC__
++#define RQUOTAPROC_GETQUOTA ((u_int32_t)1)
++extern getquota_rslt * rquotaproc_getquota_1(getquota_args *, CLIENT *);
++extern getquota_rslt * rquotaproc_getquota_1_svc(getquota_args *, struct svc_req *);
++#define RQUOTAPROC_GETACTIVEQUOTA ((u_int32_t)2)
++extern getquota_rslt * rquotaproc_getactivequota_1(getquota_args *, CLIENT *);
++extern getquota_rslt * rquotaproc_getactivequota_1_svc(getquota_args *, struct svc_req *);
++
++#else /* Old Style C */
++#define RQUOTAPROC_GETQUOTA ((u_int32_t)1)
++extern getquota_rslt * rquotaproc_getquota_1();
++extern getquota_rslt * rquotaproc_getquota_1_svc();
++#define RQUOTAPROC_GETACTIVEQUOTA ((u_int32_t)2)
++extern getquota_rslt * rquotaproc_getactivequota_1();
++extern getquota_rslt * rquotaproc_getactivequota_1_svc();
++#endif /* Old Style C */
++#define EXT_RQUOTAVERS ((u_int32_t)2)
++
++#ifdef __cplusplus
++extern "C" getquota_rslt * rquotaproc_getquota_2(ext_getquota_args *, CLIENT *);
++extern "C" getquota_rslt * rquotaproc_getquota_2_svc(ext_getquota_args *, struct svc_req *);
++extern "C" getquota_rslt * rquotaproc_getactivequota_2(ext_getquota_args *, CLIENT *);
++extern "C" getquota_rslt * rquotaproc_getactivequota_2_svc(ext_getquota_args *, struct svc_req *);
++
++#elif __STDC__
++extern getquota_rslt * rquotaproc_getquota_2(ext_getquota_args *, CLIENT *);
++extern getquota_rslt * rquotaproc_getquota_2_svc(ext_getquota_args *, struct svc_req *);
++extern getquota_rslt * rquotaproc_getactivequota_2(ext_getquota_args *, CLIENT *);
++extern getquota_rslt * rquotaproc_getactivequota_2_svc(ext_getquota_args *, struct svc_req *);
++
++#else /* Old Style C */
++extern getquota_rslt * rquotaproc_getquota_2();
++extern getquota_rslt * rquotaproc_getquota_2_svc();
++extern getquota_rslt * rquotaproc_getactivequota_2();
++extern getquota_rslt * rquotaproc_getactivequota_2_svc();
++#endif /* Old Style C */
++
++#endif /* !_RQUOTA_H_RPCGEN */
+--- nfs-utils-1.0.10.orig/utils/rquotad/rquota_xdr.c
++++ nfs-utils-1.0.10/utils/rquotad/rquota_xdr.c
+@@ -0,0 +1,215 @@
++/*
++ * Please do not edit this file.
++ * It was generated using rpcgen.
++ */
++
++#include "rquota.h"
++
++bool_t
++xdr_getquota_args(xdrs, objp)
++ XDR *xdrs;
++ getquota_args *objp;
++{
++
++ if (!xdr_string(xdrs, &objp->gqa_pathp, RQ_PATHLEN)) {
++ return (FALSE);
++ }
++ if (!xdr_int(xdrs, &objp->gqa_uid)) {
++ return (FALSE);
++ }
++ return (TRUE);
++}
++
++bool_t
++xdr_ext_getquota_args(xdrs, objp)
++ XDR *xdrs;
++ ext_getquota_args *objp;
++{
++
++ if (!xdr_string(xdrs, &objp->gqa_pathp, RQ_PATHLEN)) {
++ return (FALSE);
++ }
++ if (!xdr_int(xdrs, &objp->gqa_type)) {
++ return (FALSE);
++ }
++ if (!xdr_int(xdrs, &objp->gqa_id)) {
++ return (FALSE);
++ }
++ return (TRUE);
++}
++
++bool_t
++xdr_rquota(xdrs, objp)
++ XDR *xdrs;
++ rquota *objp;
++{
++
++
++ if (xdrs->x_op == XDR_ENCODE) {
++ int32_t *buf = XDR_INLINE(xdrs,10 * BYTES_PER_XDR_UNIT);
++ if (buf == NULL) {
++ if (!xdr_int(xdrs, &objp->rq_bsize)) {
++ return (FALSE);
++ }
++ if (!xdr_bool(xdrs, &objp->rq_active)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_bhardlimit)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_bsoftlimit)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_curblocks)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_fhardlimit)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_fsoftlimit)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_curfiles)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_btimeleft)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_ftimeleft)) {
++ return (FALSE);
++ }
++
++ }
++ else {
++ (void) IXDR_PUT_INT32(buf,objp->rq_bsize);
++ (void) IXDR_PUT_BOOL(buf,objp->rq_active);
++ (void) IXDR_PUT_U_INT32(buf,objp->rq_bhardlimit);
++ (void) IXDR_PUT_U_INT32(buf,objp->rq_bsoftlimit);
++ (void) IXDR_PUT_U_INT32(buf,objp->rq_curblocks);
++ (void) IXDR_PUT_U_INT32(buf,objp->rq_fhardlimit);
++ (void) IXDR_PUT_U_INT32(buf,objp->rq_fsoftlimit);
++ (void) IXDR_PUT_U_INT32(buf,objp->rq_curfiles);
++ (void) IXDR_PUT_U_INT32(buf,objp->rq_btimeleft);
++ (void) IXDR_PUT_U_INT32(buf,objp->rq_ftimeleft);
++ }
++
++ return (TRUE);
++ } else if (xdrs->x_op == XDR_DECODE) {
++ int32_t *buf = XDR_INLINE(xdrs,10 * BYTES_PER_XDR_UNIT);
++ if (buf == NULL) {
++ if (!xdr_int(xdrs, &objp->rq_bsize)) {
++ return (FALSE);
++ }
++ if (!xdr_bool(xdrs, &objp->rq_active)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_bhardlimit)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_bsoftlimit)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_curblocks)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_fhardlimit)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_fsoftlimit)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_curfiles)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_btimeleft)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_ftimeleft)) {
++ return (FALSE);
++ }
++
++ }
++ else {
++ objp->rq_bsize = IXDR_GET_INT32(buf);
++ objp->rq_active = IXDR_GET_BOOL(buf);
++ objp->rq_bhardlimit = IXDR_GET_U_INT32(buf);
++ objp->rq_bsoftlimit = IXDR_GET_U_INT32(buf);
++ objp->rq_curblocks = IXDR_GET_U_INT32(buf);
++ objp->rq_fhardlimit = IXDR_GET_U_INT32(buf);
++ objp->rq_fsoftlimit = IXDR_GET_U_INT32(buf);
++ objp->rq_curfiles = IXDR_GET_U_INT32(buf);
++ objp->rq_btimeleft = IXDR_GET_U_INT32(buf);
++ objp->rq_ftimeleft = IXDR_GET_U_INT32(buf);
++ }
++ return(TRUE);
++ }
++
++ if (!xdr_int(xdrs, &objp->rq_bsize)) {
++ return (FALSE);
++ }
++ if (!xdr_bool(xdrs, &objp->rq_active)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_bhardlimit)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_bsoftlimit)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_curblocks)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_fhardlimit)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_fsoftlimit)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_curfiles)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_btimeleft)) {
++ return (FALSE);
++ }
++ if (!xdr_u_int(xdrs, &objp->rq_ftimeleft)) {
++ return (FALSE);
++ }
++ return (TRUE);
++}
++
++bool_t
++xdr_gqr_status(xdrs, objp)
++ XDR *xdrs;
++ gqr_status *objp;
++{
++
++ if (!xdr_enum(xdrs, (enum_t *)objp)) {
++ return (FALSE);
++ }
++ return (TRUE);
++}
++
++bool_t
++xdr_getquota_rslt(xdrs, objp)
++ XDR *xdrs;
++ getquota_rslt *objp;
++{
++
++ if (!xdr_gqr_status(xdrs, &objp->status)) {
++ return (FALSE);
++ }
++ switch (objp->status) {
++ case Q_OK:
++ if (!xdr_rquota(xdrs, &objp->getquota_rslt_u.gqr_rquota)) {
++ return (FALSE);
++ }
++ break;
++ case Q_NOQUOTA:
++ break;
++ case Q_EPERM:
++ break;
++ default:
++ return (FALSE);
++ }
++ return (TRUE);
++}
+--- nfs-utils-1.0.10.orig/utils/showmount/showmount.man
++++ nfs-utils-1.0.10/utils/showmount/showmount.man
+@@ -21,7 +21,7 @@
+ The output from
+ .B showmount
+ is designed to
+-appear as though it were processed through ``sort -u''.
++appear as though it were processed through ``sort \-u''.
+ .SH OPTIONS
+ .TP
+ .BR \-a " or " \-\-all
+--- nfs-utils-1.0.10.orig/debian/bzero.patch
++++ nfs-utils-1.0.10/debian/bzero.patch
+@@ -0,0 +1,11 @@
++--- nfs-utils-1.0.9.orig/support/nfs/svc_socket.c
+++++ nfs-utils-1.0.9/support/nfs/svc_socket.c
++@@ -35,6 +35,8 @@
++ # define __close(f) close ((f))
++ #endif
++
+++#define __bzero(d,n) memset((d),'\0',(n))
+++
++ static int
++ svc_socket (u_long number, int type, int protocol, int reuse)
++ {
+--- nfs-utils-1.0.10.orig/debian/control
++++ nfs-utils-1.0.10/debian/control
+@@ -0,0 +1,57 @@
++Source: nfs-utils
++Priority: standard
++Section: net
++Maintainer: Anibal Monsalve Salazar <anibal@debian.org>
++Uploaders: Steinar H. Gunderson <sesse@debian.org>, Daniel Baumann <daniel@debian.org>
++Build-Depends: debhelper (>= 5), libwrap0-dev, libevent-dev, libnfsidmap-dev, libkrb5-dev, libgssapi-dev, librpcsecgss-dev, perl, pkg-config
++Build-Conflicts: librpcsecgss-dev (= 0.14-1)
++Standards-Version: 3.7.2
++
++Package: nfs-kernel-server
++Priority: optional
++Architecture: any
++Depends: nfs-common (>= 1:1.0.8-1), ucf, lsb-base (>= 1.3-9ubuntu3), ${shlibs:Depends}
++Provides: knfs, nfs-server
++Conflicts: knfs, nfs-server
++Replaces: knfs, nfs-server
++Description: Kernel NFS server support
++ Use this package if you want to use the kernel-mode NFS server.
++ The user-mode NFS server in the "nfs-user-server" package is slower
++ and less featureful but easier to debug than the kernel-mode server.
++ .
++ Upstream: SourceForge project "nfs", CVS module nfs-utils.
++ .
++ Homepage: http://nfs.sourceforge.net/
++
++Package: nfs-common
++Architecture: any
++Depends: portmap, adduser, ucf, lsb-base (>= 1.3-9ubuntu3), netbase (>= 4.24), ${shlibs:Depends}
++Provides: nfs-client
++Conflicts: nfs-client
++Replaces: nfs-client, nfs-kernel-server (<< 1:1.0.7-5)
++Description: NFS support files common to client and server
++ Use this package on any machine that uses NFS, either as client or
++ server. Programs included: lockd, statd, showmount, nfsstat, gssd
++ and idmapd.
++ .
++ Upstream: SourceForge project "nfs", CVS module nfs-utils.
++ .
++ Homepage: http://nfs.sourceforge.net/
++
++Package: nhfsstone
++Priority: extra
++Architecture: any
++Depends: nfs-common, ${shlibs:Depends}
++Replaces: nfs-kernel-server
++Description: NFS benchmark program
++ nhfsstone (pronounced n-f-s-stone, the "h" is silent) is used on a
++ NFS client to generate an artificial load with a particular mix of
++ NFS operations. It reports the average response time of the server
++ in milliseconds per call and the load in calls per second. The
++ program adjusts its calling patterns based on the client's kernel
++ NFS statistics and the elapsed time. Load can be generated over a
++ given time or number of NFS calls.
++ .
++ Upstream: SourceForge project "nfs", CVS module nfs-utils.
++ .
++ Homepage: http://nfs.sourceforge.net/
+--- nfs-utils-1.0.10.orig/debian/rules
++++ nfs-utils-1.0.10/debian/rules
+@@ -0,0 +1,65 @@
++#!/usr/bin/make -f
++# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
++
++DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
++DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
++DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
++DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
++
++# Temporary root
++DEBTMP := $(shell pwd)/debian/tmp
++
++build: build-stamp
++build-stamp:
++ dh_testdir
++ifeq ($(DEB_HOST_ARCH),ia64)
++ patch -p1 < debian/bzero.patch
++endif
++ CFLAGS="-g -O2 -Wall" ./configure \
++ --mandir='$${prefix}/share/man' \
++ --enable-secure-statd
++ $(MAKE)
++ touch build-stamp
++
++clean:
++ dh_testdir
++ dh_testroot
++ rm -f build-stamp
++ rm -rf $(DEBTMP)
++ -$(MAKE) distclean
++ dh_clean
++
++binary-indep: build
++binary-arch: build
++ dh_testdir
++ dh_testroot
++ dh_clean -k
++ dh_installdirs
++ mkdir $(DEBTMP)
++ $(MAKE) DESTDIR='$(DEBTMP)' install
++ dh_install
++
++ # Fix up the manpages
++ for f in lockd statd showmount; do \
++ perl -pi -e "s#/usr(/sbin/(rpc\\.)?$$f)#\$$1#g" \
++ debian/tmp/usr/share/man/man8/$$f.8; \
++ done;
++
++ dh_installdocs -A
++ dh_installdocs -pnfs-common debian/README.Debian.nfsv4
++ install -m 0755 debian/nfs-common.init debian/nfs-common/etc/init.d/nfs-common
++ install -m 0755 debian/nfs-kernel-server.init debian/nfs-kernel-server/etc/init.d/nfs-kernel-server
++ dh_installman
++ dh_link
++ dh_installchangelogs ChangeLog
++ dh_strip
++ dh_compress
++ dh_fixperms
++ dh_installdeb
++ dh_shlibdeps
++ dh_gencontrol
++ dh_md5sums
++ dh_builddeb
++
++binary: binary-indep binary-arch
++.PHONY: build clean binary-indep binary-arch binary
+--- nfs-utils-1.0.10.orig/debian/changelog
++++ nfs-utils-1.0.10/debian/changelog
+@@ -0,0 +1,1055 @@
++nfs-utils (1:1.0.10-2) unstable; urgency=low
++
++ * Remove leftover log file from the .diff.gz.
++ * Build package with -O2; it got lost somewhere along the way.
++ * Replace - by \- in man pages (exports, nfsstat, showmount) where
++ appropriate.
++ * Add Required-Stop to the nfs-common and nfs-kernel-server init script
++ blocks to match the Required-Start directives.
++ * Finally remove DH_VERBOSE=1 from debian/rules.
++ * Add a reference to Trond Myklebust's client patch sets in
++ README.Debian.nfsv4.
++ * Handle issues with the nfs entries missing in /etc/services. (Closes:
++ #392276).
++ * Depend on netbase (>= 4.24), to make sure we have a version that has the
++ entries in the first place.
++ * Document that the entries might be missing still in README.Debian.nfsv4
++ (in case the user refused to replace a modified version of
++ /etc/services), and that they might need re-adding.
++ * Make the init script check that the lines are there before starting
++ rpc.gssd, and refer to the README otherwise.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Wed, 11 Oct 2006 15:15:49 +0200
++
++nfs-utils (1:1.0.10-1) unstable; urgency=low
++
++ * New upstream release.
++ * Fixes issues with missing write_oid() function. (Closes: #386117)
++ * Drop versioned dependency on libnfsidmap1, now that libnfsidmap-dev has
++ fixed shlibs. This makes it possible to build against libnfsidmap2.
++ (Closes: #386116)
++ * Update README.Debian.nfsv4.
++ * Remove the part about a patched mount; the NFSv4 patch has been enabled
++ in mount for some time.
++ * Note that the special export structure might go away in the future.
++ * Note that you will need idmapd and possibly gssd/svcgssd enabled.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Wed, 6 Sep 2006 00:30:32 +0200
++
++nfs-utils (1:1.0.9-12) unstable; urgency=low
++
++ * Really remove dependency on sysvinit.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Tue, 5 Sep 2006 13:59:29 +0200
++
++nfs-utils (1:1.0.9-11) unstable; urgency=low
++
++ * In the exports man page, document that there might be sensitive non-root
++ gids as well as uids, for instance gid staff. (Closes: #385377)
++ * Remove unnecessary dependency on sysvinit, in line with the Ubuntu
++ packages.
++ * Change the versioned build-dependency on librpcsecgss-dev (>= 0.14-2)
++ to a build-conflict on 0.14-1, as that is the only version, and it's
++ easier for backports and other distributions without the new version of
++ librpcsecgss.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Thu, 31 Aug 2006 01:53:45 +0200
++
++nfs-utils (1:1.0.9-10) unstable; urgency=low
++
++ * The -n option (short option for --no-tcp) to rpc.mountd was set
++ to take a parameter, even though --no-tcp doesn't take any, the
++ parameter is never used and the help doesn't mention any. Remove
++ the colon after 'n' in the getopt string to fix it.
++ * Add a versioned dependency from nfs-common to libnfsidmap1 (>= 0.16-3)
++ temporarily, to work around #384688.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Sat, 26 Aug 2006 03:29:09 +0200
++
++nfs-utils (1:1.0.9-9) unstable; urgency=medium
++
++ * Patched svc_socket.c to define __bzero only on ia64.
++ Closes: #384552.
++
++ -- Anibal Monsalve Salazar <anibal@debian.org> Fri, 25 Aug 2006 11:45:07 +1000
++
++nfs-utils (1:1.0.9-8) unstable; urgency=medium
++
++ * In the init scripts, don't attempt to use pid files; the daemons don't
++ leave them, and --make-pidfile gives wrong pid files since all the daemons
++ fork by themselves. Thus, multiple invocations of "start" could leave
++ multiple daemons lying around, which could cause all sorts of problems.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Thu, 17 Aug 2006 17:24:11 +0200
++
++nfs-utils (1:1.0.9-7) unstable; urgency=low
++
++ * New sourceful upload to force rebuild against librpcsecgss3, to get all
++ architectures in sync and make sure rpc.gssd actually has a proper library
++ to link against.
++ * Build-depend against librpcsecgss-dev (>= 0.14-2), since that's when
++ the package name bump happened.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Sat, 12 Aug 2006 19:55:35 +0200
++
++nfs-utils (1:1.0.9-6) unstable; urgency=low
++
++ * Enable idmapd by default if we find an /etc/exports file, as NFSv4 exports
++ need idmapd. (See the init script for the complete reasoning). Also start
++ nfs-common on initial installation of nfs-kernel-server, as we don't want
++ to reboot or restart nfs-common manually just to get idmapd working the
++ first time. (Closes: #381366)
++
++ -- Steinar H. Gunderson <sesse@debian.org> Mon, 7 Aug 2006 21:27:37 +0200
++
++nfs-utils (1:1.0.9-5) unstable; urgency=low
++
++ * Put rpc.svcgssd back into place; removing it was obviously not what
++ upstream intended to do after all. (Closes: #378686)
++ * Add rpc.svcgssd to nfs-kernel-server.install.
++ * Add the svcgssd(8) man page, as well as the rpc.svcgssd(8) symlink.
++ * Add NEED_SVCGSSD and RPCSECGSSDOPTS options to nfs-kernel-server.default.
++ * Start and rpc.svcgssd in the nfs-kernel-server init script. Currently,
++ no autodetection is done; you'll need to enable it manually. (We can't
++ start it regardless, since it bombs out if there is no adequate nfs/*
++ entry in the keytab.)
++ * Remove obsolete RPCGSSDOPTS option from the nfs-kernel-server init script.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Wed, 19 Jul 2006 14:06:33 +0200
++
++nfs-utils (1:1.0.9-4) unstable; urgency=low
++
++ * Remove versioned dependency on coreutils, as we don't use it indirectly,
++ only via ucf (so the dependency should be there). This makes the package
++ somewhat easier to backport to sarge.
++ * Remove the word "Debian" from our patch against the exports(5) man page,
++ as Debian is not the only distribution using these packages.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Sun, 16 Jul 2006 01:59:13 +0200
++
++nfs-utils (1:1.0.9-3) unstable; urgency=low
++
++ * Don't automatically assume that the kernel is modular if /sbin/modprobe
++ is available, check for /proc/modules as well; patch from Nicolas
++ Trecourt. (Closes: #377685)
++
++ -- Steinar H. Gunderson <sesse@debian.org> Thu, 13 Jul 2006 21:39:08 +0200
++
++nfs-utils (1:1.0.9-2) unstable; urgency=low
++
++ * Merge changes from 1.0.9-1 and 1.0.9pre1-4:
++ * Disable mount.nfs once again; it's not ready for regular use according
++ to upstream.
++ * Revert mount options patch to mount.nfs; it's irrelevant as long as we
++ don't install the binary.
++ * Install the new rpcdebug program.
++ * Remove the {mount,umount}.nfs manpages.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Sun, 9 Jul 2006 00:16:54 +0200
++
++nfs-utils (1:1.0.9-1) unstable; urgency=high
++
++ * Updated co-mantainer mail address.
++ * New upstream release.
++ - Added 'mount.nfs' utility which can be used as a mount helper
++ to mount nfs filesystems. It does not yet support 'user' mounts.
++ - Makefile/autoconf tidyups
++ - No compiles with no warnings
++ - deleted debian/* at request of debian maintainer
++ - deleted assorted other unused files
++ - mountd can be run multi-threaded for configurations with many hundreds
++ of clients (mountd -t 20). Default is single-threaded
++ - Support for selection NFS version to be exported, and protocol to
++ use. This requires kernel patches that should be in linux 2.6.19.
++ - Use 65534 rather than -2 for default anon. This makes no difference in many
++ cases, but is important in some.
++ - New utility 'rpcdebug' for controlled kernel 'debug' options for nfs and nfsd.
++ - nfsstat reports NFSv4 operation statistics that should be available in
++ linux 2.6.18.
++ - assorted other fixes
++
++ -- Anibal Monsalve Salazar <anibal@debian.org> Sat, 08 Jul 2006 14:26:40 +1000
++
++nfs-utils (1:1.0.8+1.0.9pre1-4) unstable; urgency=low
++
++ * Back out having separate mount.nfs; this is in line with upstream, who
++ wants to delay this to 1.0.10.
++ * No longer install {mount,umount}.{nfs,nfs4} to /sbin.
++ * Revert patch applied in -3.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Sat, 8 Jul 2006 16:43:38 +0200
++
++nfs-utils (1:1.0.8+1.0.9pre1-3) unstable; urgency=high
++
++ * Add patch from upstream to check for common mount options like "user"
++ or "noauto". (Closes: #376839)
++ * Remove obsolete copying of config.{sub,guess} in debian/rules.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Fri, 7 Jul 2006 21:12:06 +0200
++
++nfs-utils (1:1.0.8+1.0.9pre1-2) unstable; urgency=low
++
++ * Provide LSB dependency information in the nfs-common and nfs-kernel-server
++ init scripts; replaces the obsolete chkconfig info. (Closes: #376976)
++ * Update the long descriptions.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Thu, 6 Jul 2006 19:37:58 +0200
++
++nfs-utils (1:1.0.8+1.0.9pre1-1) unstable; urgency=low
++
++ * New upstream release.
++ * debian/ directory removed from upstream; no need to repack or do ugly
++ hacks in debian/rules anymore.
++ * Obsoletes most Debian-specific patches, as they are already included
++ upstream. For reference, the patches that are still Debian-specific are:
++ * Use 65534 instead of -2 for anonuid, update manpage accordingly.
++ * Debian-specific information in exports man page.
++ * Don't use -rpath for gssd.
++ * Hardcode default mapping in svcgssd. Adjust patch to use uid/gid
++ 65534 instead of -2, for consistency; also remove double error
++ message.
++ * Spelling fixes in nfsstat, showmount and statd man pages.
++ * Supports options to bind to specific IPs. (Closes: #246939, #312720)
++ * Include mount.nfs and friends, which will over time take over the job of
++ doing NFS mounting from util-linux.
++ * Complete sync with Ubuntu:
++ * Pull in changes to use LSB display functions in init scripts; adapted
++ to give output more like what was already in Debian, to fix a few bugs,
++ and use plain echo in "status" targets, where using LSB functions makes
++ no sense.
++ * Depend on lsb-base from nfs-common and nfs-kernel-server.
++ * Init script updates:
++ * Document "status" option in the nfs-common init script's help message.
++ * Drop "set -e"; it makes error checking wrt. the LSB functions harder.
++ * Drop obsolete "cd /".
++ * Fix syntax errors in "status" target.
++ * In the "status" target, don't check that the output of pidof matches the
++ pidfiles for gssd and idmapd, as they fork after start and thus get a
++ different pid.
++ * Include gss_clnt_send_err and gss_destroy_creds binaries.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Tue, 4 Jul 2006 18:55:51 +0200
++
++nfs-utils (1:1.0.8-10) unstable; urgency=high
++
++ * Added nfs-common dependency on coreutils (>= 5.93-1). The readlink
++ option -e was introduced since version 5.91 of coreutils. Closes:
++ #376285.
++
++ -- Anibal Monsalve Salazar <anibal@debian.org> Sun, 02 Jul 2006 09:53:16 +1000
++
++nfs-utils (1:1.0.8-9) unstable; urgency=high
++
++ * svcgssd_proc.c: Temporary patch to do default mapping if we get an
++ error while trying to map a gss principal to the appropriate uid/gid.
++ This currently returns hardcoded values. Closes: #376258.
++
++ -- Anibal Monsalve Salazar <anibal@debian.org> Sat, 01 Jul 2006 22:30:11 +1000
++
++nfs-utils (1:1.0.8-8) unstable; urgency=low
++
++ * Include yet more ucf md5sums for /etc/default/nfs-common and
++ /etc/default/nfs-kernel-server (/etc/exports was already OK); this time,
++ I've gone through the entire 1.0.7 series programmatically, so hopefully
++ there should finally be none left.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Wed, 14 Jun 2006 10:47:23 +0200
++
++nfs-utils (1:1.0.8-7) unstable; urgency=low
++
++ * For some odd reason (ie. human error) this package has branched into two
++ different versions from 1:1.0.8-5 on. This package rejoins the two branches.
++ The changelog from the other 1:1.0.8-5 (which was probably never accepted
++ except as part of 1:1.0.8-6) is repeated for convenience and automated bug
++ closing below:
++ * Patch nfs-common and nfs-kernel-server init scripts to make them more LSB
++ compatible, fixing issues with heartbeat2; based on patches by Kilian
++ CAVALOTTI. (Closes: #371084, #371085)
++ * Add --oknodo to start-stop-daemon in start targets, to make a second
++ "start" invocation return exit status 0.
++ * Add status targets to the two init scripts, with correct output and
++ exit codes.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Thu, 08 Jun 2006 17:31:28 +0200
++
++nfs-utils (1:1.0.8-5) unstable; urgency=low
++
++ * Make nfs-kernel-server depend on at least version 1.0.8 of nfs-common;
++ lots of stuff will break with an upstream version mismatch.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Wed, 7 Jun 2006 01:13:28 +0200
++
++nfs-utils (1:1.0.8-4) unstable; urgency=low
++
++ * Fix a few spelling errors in the man pages; patches from A Costa.
++ (Closes: #370561, #370562, #370563)
++
++ -- Steinar H. Gunderson <sesse@debian.org> Tue, 6 Jun 2006 11:59:28 +0200
++
++nfs-utils (1:1.0.8-3) unstable; urgency=low
++
++ * The "what the heck, I uploaded an outdated 1:1.0.8-1 release without
++ the pkg-config fix and some other changes" release.
++ * Tweaks to debian/rules:
++ * Drop --sourcedir=debian/tmp from dh_install so we can also install files
++ directly from the debian/ directory.
++ * Minimize direct uses of install; move all the ucf installation into the
++ debhelper .install files.
++ * Remove some obsolete comments.
++ * Remove empty (modulo #DEBHELPER# tokens) nhfsstone.{postinst,prerm}
++ scripts.
++ * Clear out obsolete (pre-sarge) debconf and rc.d purging from postinst
++ script. (Same as in 1:1.0.7-10, but for nfs-kernel-server too, not just
++ nfs-common.) Minor style cleanup.
++ * Include the md5sum for /etc/default/nfs-kernel-server from 1:1.0.7-13,
++ to make ucf not complain when upgrading from that version.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Sat, 3 Jun 2006 11:00:14 +0200
++
++nfs-utils (1:1.0.8-2) unstable; urgency=low
++
++ * Added missing dependency on pkg-config.
++
++ -- Anibal Monsalve Salazar <anibal@debian.org> Fri, 02 Jun 2006 19:08:11 +1000
++
++nfs-utils (1:1.0.8-1) unstable; urgency=low
++
++ * New upstream version. (Closes: #364902)
++ * Repack without the debian/ directory; remove ugly hacks in
++ debian/rules that as a result are no longer needed. This also makes
++ the permissions in debian/ right.
++ * Forward-port all relevant patches from the old Debian diff.
++ * rpc.svcgssd no longer exists (it's consolidated into rpc.gssd); remove
++ all references to it in from the debian/ directory.
++ * Build-depend on libgssapi-dev and librpcsecgss-dev, as both as now
++ needed to build nfs-utils.
++ * Give DESTDIR instead of install_prefix to "make install" (install_prefix
++ no longer works).
++ * No longer handle gssapi_mech.conf via ucf; it is now managed by the
++ librpcsecgss package. Remove all references to it in debian/rules.
++ * We no longer need to run autoconf as a part of debian/rules; its results
++ are parts of the diff instead, as per usual packaging practices.
++ * Drop the build-dependency on autoconf2.13 and autotools-dev.
++ * No longer rm various autotools-generated files in the clean target.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Thu, 1 Jun 2006 01:59:39 +0200
++
++nfs-utils (1:1.0.7-19) unstable; urgency=low
++
++ * Include the md5sum for /etc/default/nfs-common from 1:1.0.7-15, to
++ make ucf not complain when upgrading from that version. (Closes: #368982)
++
++ -- Steinar H. Gunderson <sesse@debian.org> Sat, 27 May 2006 12:54:50 +0200
++
++nfs-utils (1:1.0.7-18) unstable; urgency=low
++
++ * Make /etc/exports, /etc/default/nfs-{common,kernel-server},
++ /etc/idmapd.conf and /etc/gssapi_mech.conf be managed by ucf
++ instead of being conffiles. (Closes: #353501)
++ * Make directories /usr/share/nfs-{common,kernel-server}/conffiles,
++ and install files in there at debian/rules time. At the same time,
++ install the files with install instead of cp.
++ * Call ucf at postinst time to get the files in.
++ * Correspondingly, call ucf at purge time to remove them as needed (code
++ snippets lifted from autofs).
++ * Make nfs-common and nfs-kernel-server depend on ucf.
++ * Remove the call to dh_installinit -- since it was already not modifying
++ postinst/postrm/prerm scripts due to being called with -n (I must admit
++ I don't know why, but I assume this has a good reason :-) ) and we now
++ install the init script ourself (because we don't want dh_installinit
++ to install our .default files to /etc), it doesn't do anything useful
++ for us.
++ * Include .md5sum files with MD5 checksums of previous defaults shipped,
++ to ease the transition into ucf; at the moment, only checksums from
++ 1:1.0.7-17 (the last non-ucf version) and 1:1.0.6-3.1 (the version
++ shipped in sarge) are included, but I think that should actually cover
++ all the defaults shipped in the period between as well.
++ * Install the .md5sum files in debian/rules.
++ * Remove call to dh_installexamples in debian/rules; we don't install any
++ examples.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Mon, 22 May 2006 01:44:33 +0200
++
++nfs-utils (1:1.0.7-17) unstable; urgency=low
++
++ * The umounting of rpc_pipefs is non-critical and will fail if there are
++ any active NFS mounts during, say, a restart. Thus, send its stderr to
++ /dev/null, and ignore its error status.
++ * Build-Depend on perl, as it's used in debian/rules.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Sun, 14 May 2006 18:22:19 +0200
++
++nfs-utils (1:1.0.7-16) unstable; urgency=high
++
++ * urgency=high; fixes an RC bug.
++ * If one upgraded from 1:1.0.7-13, /var/lib/nfs might never be set as owned
++ by statd. Bump the version check, so everything before this version gets
++ chowned properly. (Closes: #367009)
++ * Add more detailed explanations and links to the Debian wiki for
++ /etc/defaults/nfs-{common,kernel-server}. (Closes: #366989, #366990)
++
++ -- Steinar H. Gunderson <sesse@debian.org> Sat, 13 May 2006 16:06:08 +0200
++
++nfs-utils (1:1.0.7-15) unstable; urgency=low
++
++ * /var/lib/nfs/state is not a directory; it shouldn't really be mkdir-ed
++ or chowned (unless it already exists, in which case it should be
++ chowned). However, /var/lib/nfs should be owned by statd, so it can
++ create the file there. (Really Closes: #366654)
++ * umount /var/lib/nfs/rpc_pipefs on /etc/init.d/nfs-common stop; not doing
++ so could prevent purging of nfs-common.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Thu, 11 May 2006 12:42:13 +0200
++
++nfs-utils (1:1.0.7-14) unstable; urgency=high
++
++ * urgency=high; fixes RC bugs (or at least, bugs that should have been RC).
++ * Add /var/lib/nfs/state to nfs-common.dirs, since we chown it in the
++ postinst. This would prevent nfs-common from configuring on initial
++ install. (Closes: #366654)
++ * Grep after "init_nf(sd|<tab>)" instead of "init_nfsd" in kallsyms, to work
++ around some odd symbol mangling problems on some alpha kernels.
++ (Closes: #363932)
++
++ -- Steinar H. Gunderson <sesse@debian.org> Wed, 10 May 2006 22:00:59 +0200
++
++nfs-utils (1:1.0.7-13) unstable; urgency=low
++
++ * Up the Standards-Version to 3.7.2; no changes needed.
++ * Tidy up after the /home/statd mess if there was a chance the user ever
++ had 1:1.0.7-10 installed; based on patch from Oskar Liljeblad.
++ (Closes: #366182)
++ * Fix the version check for the chown-ing of /var/lib/nfs/sm etc.; I
++ forgot to include the epoch, so only new installs ever got statd running
++ as non-root. (Due to this, the version number to test against is of course
++ also bumped.)
++
++ -- Steinar H. Gunderson <sesse@debian.org> Sat, 6 May 2006 01:50:10 +0200
++
++nfs-utils (1:1.0.7-12) unstable; urgency=low
++
++ * Move the home directory again (by request), this time to /var/lib/nfs.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Wed, 3 May 2006 21:27:18 +0200
++
++nfs-utils (1:1.0.7-11) unstable; urgency=low
++
++ * When creating statd user, create it with a home directory of /nonexistant;
++ it doesn't really require a home directory. (Closes: #365514, #365721)
++ * Fix the signal number for USR1 (actually, use the name instead) in
++ nhfsrun. (Closes: #365657)
++
++ -- Steinar H. Gunderson <sesse@debian.org> Wed, 3 May 2006 19:51:17 +0200
++
++nfs-utils (1:1.0.7-10) unstable; urgency=low
++
++ * Intermediate 1.0.7 release, waiting for librpcsecgss to be uploaded into
++ Debian so we can upload 1.0.8.
++ * Clarify what the NEED_* options in /etc/default/nfs-common mean.
++ (Closes: #364625)
++ * Make /var/lib/nfs/{sm,sm.bak,state,rpc_pipefs} be owned by a new "statd"
++ user (created in postinst), causing rpc.statd to be run as that user
++ instead of root. (Closes: #240689)
++ * Make nfs-common depend on adduser.
++ * Clear out obsolete (pre-sarge) debconf and rc.d purging from postinst
++ script.
++ * Use invoke-rc.d in nfs-common and nfs-kernel-server prerms instead of
++ calling the /etc/init.d script directly; fixes two lintian warnings.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Thu, 27 Apr 2006 00:32:27 +0200
++
++nfs-utils (1:1.0.7-9) unstable; urgency=low
++
++ * When checking for nfsd support in the kernel, check for init_nfsd
++ (which is a function) rather than nfsd_version (which is a variable);
++ kernels compiled without CONFIG_KALLSYMS_ALL=y have only the former.
++ (Closes: #361026)
++
++ -- Steinar H. Gunderson <sesse@debian.org> Thu, 6 Apr 2006 13:31:48 +0200
++
++nfs-utils (1:1.0.7-8) unstable; urgency=low
++
++ * Don't complain about missing sync/async for a read-only export.
++ (Closes: #265409)
++ * Implement --state-directory-path for rpc.mountd; most code borrowed
++ from rpc.statd. (Closes: #352387)
++ * Update mountd.man accordingly.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Wed, 5 Apr 2006 22:54:09 +0200
++
++nfs-utils (1:1.0.7-7) unstable; urgency=high
++
++ * urgency=high, fixes an RC bug.
++ * Let the init script test for kernel support before trying to start
++ nfs-kernel-server. (Closes: #360420)
++ * Include help on how to activate /etc/exports changes; text from
++ Martin Pool. (Closes: #239286)
++ * Document sync option in exports man page. (Closes: #297135)
++ * Give an example in /etc/exports. (Closes: #345460)
++ * Write a mini-HOWTO on how to get NFSv4 up and running. (Closes: #294468)
++ * Install it in debian/rules.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Wed, 5 Apr 2006 18:15:20 +0200
++
++nfs-utils (1:1.0.7-6) unstable; urgency=low
++
++ * Let the man-page fixup script in debian/rules look for the man pages in
++ the right place.
++ * Modprobe nfs4 along with nfs in the nfs-common init script. Also modprobe
++ rpcsec_gss_krb5 before we start gssd.
++ * Implement autodetection for NEED_IDMAPD and NEED_GSSD, based on /etc/fstab.
++ * Add a note to the top of /etc/defaults/nfs-common that the default is to
++ autodetect.
++ * Move /var/lib/nfs/rpc_pipefs from nfs-kernel-server.dirs to
++ nfs-common.dirs; it's needed by the client as well.
++ * Let dh_install install from debian/tmp/ instead of debian/tmp; it fixes
++ minor aesthetic issues in the build log.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Sat, 1 Apr 2006 02:46:53 +0200
++
++nfs-utils (1:1.0.7-5) unstable; urgency=low
++
++ * Non-non-maintainer-upload this time, it seems. :-)
++ * Don't let the init script fail if there wasn't any lockd threads to kill;
++ this could cause the package to fail configuration.
++ * Move to debhelper compatibility level 5.
++ * Use dh_install instead of dh_movefiles (actually a combination was used
++ earlier). Move stuff from *.files accordingly into *.install.
++ * mkdir debian/tmp manually before doing make install, and remove it
++ in the clean target.
++ * Use straight cp -a instead of dh_install for the files that _don't_
++ come from debian/tmp/ (the two /etc files).
++ * Fix the "fixups" part in debian/rules to reflect the behaviour of
++ dh_install compared to dh_movefiles (ie. don't rm lots of stuff in
++ debian/tmp, etc.).
++ * Make a debian/nfs-kernel-server.install listing explicitly the files
++ we want in that package; with dh_movefiles everything from make install
++ was implicitly put there. This has the side effect that the man pages
++ for rpc.gssd and idmap.conf are no longer put in nfs-kernel-server, but
++ in nfs-common, where they should be.
++ * Use dh_installman to install the manpages, to make sure they're in the
++ right place (and move the manpage lists from *.files to *.manpages
++ accordingly). List the rpc.* variants of the manpages in *.links,
++ instead of assuming dh_compress (!) will make them for us. Bonus points
++ for then not including the nonsensical rpc.* variants, such as
++ rpc.idmapd.conf(5).
++ * Don't mv lockd, statd and showmount manually from /usr/sbin to /sbin;
++ let the .install file do it for us.
++ * Remove *.conffiles; debhelper now sets everything in /etc as conffiles
++ automatically.
++ * Extend the debian/rules rm hack to the files we removed in this version
++ (ick).
++ * In debian/control, make nfs-common replace nfs-kernel-server
++ (<< 1:1.0.7-5), since the idmapd manpage switched packages.
++ * Remove old cruft in debian/rules file:
++ * Remove non-used dh_* programs.
++ * Remove obsolete source and diff targets.
++ * Remove SETGCC hack.
++ * Don't set rpath for rpc.gssd and rpc.svcgssd (fixes lintian warnings).
++
++ -- Steinar H. Gunderson <sesse@debian.org> Tue, 28 Mar 2006 02:57:23 +0200
++
++nfs-utils (1:1.0.7-4) unstable; urgency=low
++
++ * Ack NMU. Thanks Steinar H. Gunderson.
++ Closes: #239230, #245449, #246904, #247473, #248300, #252081,
++ #287026, #294928, #303497, #310940, #323460, #326663, #332047,
++ #337836, #338292, #359024.
++ * Added Steinar H. Gunderson and Daniel Baumann as uploaders.
++ * Added homepage to package descriptions.
++ * Set Standards-Version to 3.6.2.
++ * Fixed outdated-autotools-helper-file.
++
++ -- Anibal Monsalve Salazar <anibal@debian.org> Mon, 27 Mar 2006 13:22:51 +1100
++
++nfs-utils (1:1.0.7-3.1) unstable; urgency=low
++
++ * Non-maintainer upload.
++ * Set u+w on all files in debian/, so dch etc. actually works.
++ * Add /var/lib/nfs/v4recovery to nfs-kernel-server.dirs. (Closes: #337836).
++ * Add /var/lib/nfs/rpc_pipefs to nfs-kernel-server.dirs. (Closes: #310940).
++ * Fix problems with exportfs -o when there are multiple entries of the same
++ type for the same path that match a given client; patch from Fumihiko
++ Kakuma. (Closes: #245449)
++ * Start nfs-kernel-server even if /etc/exports is empty, as long as it
++ exists; patch from Alexis Huxley. (Closes: #246904) This patch also
++ happens to fix and thus Closes: #338292.
++ * When stopping daemons, do it even if they do not run as root; based on a
++ patch from Andreas Schmidt. (Closes: #247473)
++ * SIGKILL kernel lockd thread on stop, to make the kernel release all its
++ locks; patch from Jeffrey Layton. (Closes: #252081)
++ * Flush the kernel export table on stop; patch from Jeffrey Layton
++ (Closes: #248300).
++ * Change default root-squashed uid from -2 to 65534; the former changes
++ depending of the size of uid_t, and we want it to match the user "nobody"
++ (which has uid 65534). (Closes: #323460)
++ * Remove dependency on debconf, as it's no longer used. Also, don't run
++ dh_installdebconf anymore. (Closes: #332047)
++ * Check for /sbin/modprobe before using it, for non-modular kernels;
++ patch from Vincent Crvt. (Closes: #294928)
++ * Replaced the rather emtpy nhfsstone long description by the one from
++ its manpage. (Closes: #303497)
++ * Don't ship upstream README anymore, as it's not relevant for our users.
++ (Closes: #326663)
++ * Add the ability to start nfs-kernel-server niced; patch from Kimmo
++ Tervinen. (Closes: #287026)
++ * Escape '#' when writing export entries, so they are not mistakenly parsed
++ as comments when re-reading them. (Closes: #239230)
++ * Also Closes: #359024 automatically by recompiling package.
++
++ -- Steinar H. Gunderson <sesse@debian.org> Sun, 26 Mar 2006 14:57:50 +0200
++
++nfs-utils (1:1.0.7-3) unstable; urgency=medium
++
++ * New maintainer, closes: #303559.
++
++ -- Anibal Monsalve Salazar <anibal@debian.org> Fri, 08 Apr 2005 11:25:17 +1000
++
++nfs-utils (1:1.0.7-2) unstable; urgency=low
++
++ * Orphaning package.
++ * Upstream CVS sync:
++ > Support "no_acl" export option, for the few specially patched
++ kernels that understand it. (Closes: #253824)
++ > Fix FTBTS on amd64. (Closes: #297729)
++ > Update config.{guess,sub}. (Closes: #300552)
++
++ -- Chip Salzenberg <chip@debian.org> Thu, 7 Apr 2005 09:07:24 -0400
++
++nfs-utils (1:1.0.7-1) unstable; urgency=medium
++
++ * Acknowledge NMU; thanks to joeyh. (closes: #287053)
++ * New upstream version:
++ > Add support for NFSv4.
++ > Ignore SIGPIPE, fixing a remote DOS. Note that the previous
++ NMU already fixed this bug. (CAN-2004-1014)
++ > At long last, fix "erroneous SM_UNMON" warnings. (closes: #165744)
++
++ -- Chip Salzenberg <chip@debian.org> Tue, 11 Jan 2005 23:31:05 -0500
++
++nfs-utils (1:1.0.6-3) unstable; urgency=medium
++
++ * Remove obsolete debconf-related files in debian/rules, because source
++ diffs don't implement removals. (closes: #239331)
++
++ -- Chip Salzenberg <chip@debian.org> Wed, 24 Mar 2004 18:09:21 -0500
++
++nfs-utils (1:1.0.6-2) unstable; urgency=medium
++
++ * Upstream CVS sync.
++ * Urgency "medium" to get debconf fix into testing.
++ * Remove debconf warning notes in favor of nfs-kernel-server.NEWS.
++ (closes: #228365)
++ * Make /etc/exports a conffile. (closes: #224557)
++ * Clean up /var/lib/nfs in postrm.
++ * Test kernel version in init script; all kernels from 2.4 forward
++ have a lockd thread, and don't need rpc.lockd. Probe older kernels
++ by checking for lockd-related symbols. When in doubt, go ahead and
++ run rpc.lockd; if it's not needed, it exits. (closes: #205867)
++ * Don't bother removing nfs-server's init links; it's long dead.
++
++ -- Chip Salzenberg <chip@debian.org> Thu, 18 Mar 2004 17:06:00 -0500
++
++nfs-utils (1:1.0.6-1) unstable; urgency=low
++
++ * New upstream version:
++ > Workaround glibc bug with large fd rlimits.
++ * Japanese debconf translation from Kenshi Muto <kmuto@debian.org>.
++ (closes: #209370)
++
++ -- Chip Salzenberg <chip@debian.org> Fri, 12 Sep 2003 12:47:58 -0400
++
++nfs-utils (1:1.0.5-3) unstable; urgency=high
++
++ * Upstream CVS sync:
++ > Fix crash on invalid reverse DNS. (closes: #209318)
++
++ -- Chip Salzenberg <chip@debian.org> Tue, 9 Sep 2003 14:02:46 -0400
++
++nfs-utils (1:1.0.5-2) unstable; urgency=low
++
++ * Upstream CVS sync:
++ > Improve support for 2.6.0 /proc interface.
++ * Use po-debconf. Patch from Andre Luis Lopes <andrelop@ig.com.br>,
++ with improved French from Christian Perrier <bubulle@debian.org>.
++ (closes: #187866, #202196)
++
++ -- Chip Salzenberg <chip@debian.org> Wed, 20 Aug 2003 17:03:44 -0400
++
++nfs-utils (1:1.0.5-1) unstable; urgency=high
++
++ * New upstream version:
++ > Don't use freed memory. (closes: #201311, #201598, #201873)
++ > Fix mountd -o arg. (closes: #197355)
++
++ -- Chip Salzenberg <chip@debian.org> Thu, 24 Jul 2003 15:40:12 -0400
++
++nfs-utils (1:1.0.3-2) unstable; urgency=high
++
++ * Upstream CVS sync:
++ > Fix one-byte buffer overflow in logging code.
++
++ -- Chip Salzenberg <chip@debian.org> Tue, 10 Jun 2003 11:11:56 -0400
++
++nfs-utils (1:1.0.3-1) unstable; urgency=low
++
++ * New upstream version:
++ > Support reading and writing export cache in /proc/rpc/*/channel,
++ as current syscall interface may not survive into 2.6 on all archs.
++
++ -- Chip Salzenberg <chip@debian.org> Wed, 26 Mar 2003 11:38:52 -0500
++
++nfs-utils (1:1.0.2-2) unstable; urgency=medium
++
++ * Upstream CVS sync:
++ > Fix one-byte buffer overflow with no apparent security implications.
++ (It's a readlink on a path that should be writable only to root.)
++ * Make nfs-{common,kernel-server} depend on sysvinit 2.80-1 for invoke-rc.d.
++ * Make nfs-common depend on debconf (long overdue).
++ * Fix package description to name nfs-user-server as an alternative, rather
++ than "nfs-server" (which no longer exists).
++
++ -- Chip Salzenberg <chip@debian.org> Wed, 12 Feb 2003 21:27:24 -0500
++
++nfs-utils (1:1.0.2-1) unstable; urgency=high
++
++ * New upstream version:
++ > Allow program stdin to be a non-INET socket. (closes: #142557)
++ * Start nfs-common after nfs-kernel-server so that the server is running
++ when statd restarts; without this change, a rebooting server may make
++ clients lose mounts. (This postinst removes bad rc.d links from old
++ packages.) From Philippe Troin <phil@fifi.org>. (closes: #160800)
++ * Make init scripts exit with non-zero status when daemons don't start.
++ * Add titles to templates where I forgot them. (closes: #158489)
++ * Add /etc/default/{nfs-common,nfs-kernel-server} so setting random
++ parameters doesn't require editing init scripts. (closes: #131539)
++ * Split templates into separate files, and add French templates.
++ (closes: #134630)
++ * Use invoke-rc.d to avoid premature daemon starts. (closes: 158574)
++ * Change priority of nfs-kernel-server to 'optional'.
++
++ -- Chip Salzenberg <chip@debian.org> Sun, 15 Sep 2002 22:00:27 -0400
++
++nfs-utils (1:1.0.1-1) unstable; urgency=low
++
++ * New upstream version:
++ > BIG CHANGE: Exports default to "sync", that is, synchronous writes.
++ This is safer but MUCH SLOWER than the old default of "async".
++ All exports should be marked as either "sync" or "async" to avoid a
++ warning from exportfs.
++ * Patches from CVS through 2002-08-26.
++ * Let init script start statd on a specific port. (closes: #144344)
++ * Fix typo in debconf message about tcpwrappers. (closes: #128709)
++ * Fix typo in rpc.nfsd(8). (closes: #152556)
++ * Add Russian templates. (closes: #136599, #136932)
++
++ -- Chip Salzenberg <chip@debian.org> Mon, 26 Aug 2002 12:17:57 -0400
++
++nfs-utils (1:1.0-2) unstable; urgency=low
++
++ * Fail an export if its mapping option is unsupported. (closes: #85678)
++
++ -- Chip Salzenberg <chip@debian.org> Wed, 2 Jan 2002 15:52:37 -0800
++
++nfs-utils (1:1.0-1) unstable; urgency=medium
++
++ * New upstream version. (Version number is only change.)
++ * Urgency "medium" so woody users see the pretty new version number.
++ (Yeah, it's shallow... but, doggone it, this is mature code.)
++
++ -- Chip Salzenberg <chip@debian.org> Wed, 26 Dec 2001 20:21:15 -0800
++
++nfs-utils (1:0.3.3-6) unstable; urgency=high
++
++ * Upstream fixes:
++ > Ignore case when comparing host names.
++ > Use all addresses of multi-homed hosts in export processing.
++ > When reading /proc/fs/nfs/exports, assume noasync and nowgather;
++ older kernels did so, while newer kernels report them explicitly.
++ > Remove man page refs to "hosts_allow(5)". (closes: #122540)
++ > In exports.5: Emphasize the need for options to immediately follow
++ client names. Explain that wildcards don't usually work on addresses,
++ but may work when reverse DNS fails. (closes: #118040, #116039)
++
++ -- Chip Salzenberg <chip@debian.org> Wed, 26 Dec 2001 18:54:35 -0800
++
++nfs-utils (1:0.3.3-5) unstable; urgency=high
++
++ * Keep NFS fully operational during upgrade. (closes: #76544)
++ * When calling update-rc.d, send stdout to /dev/null, but not stderr.
++
++ -- Chip Salzenberg <chip@debian.org> Thu, 13 Dec 2001 18:50:47 -0800
++
++nfs-utils (1:0.3.3-4) unstable; urgency=high
++
++ * High priority due to changes in previous version.
++ * Upstream fixes:
++ > Close filehandles in nfsd before spawing kernel threads. This is a
++ workaround for a kernel bug. (closes: #121213)
++ > Document that both host names *and* addresses are checked with tcpwrappers.
++ This is a doc update, not a change. (closes: #108493)
++ > Don't assume that strings starting with digits are IP addresses;
++ host names are allowed to start with digits. (closes: #68977)
++ * German template for nfs-common. (closes: #120939)
++
++ -- Chip Salzenberg <chip@debian.org> Mon, 26 Nov 2001 11:50:43 -0800
++
++nfs-utils (1:0.3.3-3) unstable; urgency=low
++
++ * Upstream fixes:
++ > Accept obsolete mount option "crossmnt" for parsing old xtab files
++ after upgrade. (closes: #78801)
++ > Put filenames into more error messages.
++ * Stop debconf before starting nfsd to avoid a hang. Kernel threads
++ like nfsd aren't supposed to inherit open files from the programs that
++ start them, but nfsd does. See debconf tutorial. (closes: #115817)
++ * Rebuild with current glibc. (closes: #119545)
++ * Carefully account for ownership of /var/lib/nfs/*. (closes: #117258)
++ * Warn about statd using tcpwrappers. (closes: #92666)
++ * Only warn about mountd's tcpwrappers name change if the old name
++ appears in the tcpwrapper config files.
++ * German template for nfs-kernel-server. (closes: #117196)
++
++ -- Chip Salzenberg <chip@debian.org> Wed, 21 Nov 2001 18:30:36 -0800
++
++nfs-utils (1:0.3.3-2) unstable; urgency=high
++
++ * The "Test It Before Release, Stupid" release.
++ * Repair total failure of rpc.mountd. (closes: #115095)
++
++ -- Chip Salzenberg <chip@debian.org> Thu, 11 Oct 2001 13:03:45 -0700
++
++nfs-utils (1:0.3.3-1) unstable; urgency=medium
++
++ * The "Life Goes On" release.
++ * New upstream version. (closes: #113042)
++ > Avoid DNS when unexporting... important for shutdown.
++ > Recognize double-quote and \octal quoting in pathnames.
++ > Print pathnames with \octal quoting as necessary.
++ * Depend on a version of glibc that restores rpcinfo to its rightful
++ place. (closes: #102400)
++ * Fix pathname in mountd doc. (closes: #112088)
++ * debian/nfs-kernel-server.postinst: Remove rc.d symlinks to old
++ nfs-server init script, which doesn't realize when it's been removed.
++ (closes: #97099)
++ * Warn users about "rpc.mountd" -> "mountd" in /etc/hosts.{allow,deny}.
++ This marks my first use of debconf! W00T! (closes: #92671)
++
++ -- Chip Salzenberg <chip@debian.org> Mon, 8 Oct 2001 15:04:08 -0700
++
++nfs-utils (1:0.3.2-2) unstable; urgency=low
++
++ * Rebuild with new libc. (closes: #97252, #97455, #99829, #100317)
++ * Fix typo in nfs-kernel-server init script. (closes: #100380)
++ * Start all daemons in root directory.
++
++ -- Chip Salzenberg <chip@debian.org> Fri, 15 Jun 2001 15:57:18 -0700
++
++nfs-utils (1:0.3.2-1) unstable; urgency=low
++
++ * Upstream changes to statd:
++ > Recognize long options.
++ > On startup, close std{in,out,err}.
++ > Updated man page.
++ * Let debhelper handle doc symlinks. (closes: #74094)
++ * Rename upstream changelog, per policy.
++ * Get rid of suidregister call.
++
++ -- Chip Salzenberg <chip@debian.org> Sun, 1 Apr 2001 19:21:26 -0700
++
++nfs-utils (1:0.3.1-1) unstable; urgency=medium
++
++ * New upstream version.
++ * Incorporate (but not all) Bug Party changes by David LaBissoniere
++ <labiss@usit.net>:
++ > Mention upstream source and license in copyright file. (closes: #79997)
++ > Add Build-Depends for debhelper and libwrap0-dev. (closes: #84131)
++
++ -- Chip Salzenberg <chip@debian.org> Mon, 26 Feb 2001 16:51:15 -0800
++
++nfs-utils (1:0.3-2) unstable; urgency=low
++
++ * Upstream:
++ > Don't modify socket buffer sizes.
++
++ -- Chip Salzenberg <chip@debian.org> Mon, 12 Feb 2001 20:46:22 -0800
++
++nfs-utils (1:0.3-1) unstable; urgency=low
++
++ * New upstream.
++
++ -- Chip Salzenberg <chip@debian.org> Sun, 28 Jan 2001 18:13:59 -0800
++
++nfs-utils (1:0.2.1-5) unstable; urgency=low
++
++ * Fix statd callback protection ("--secure-statd") to
++ 1. work with current kernels as far as possible, and
++ 2. allow for Trond's recent NFS patches, which change the
++ static callback RPC procedure.
++ * Store return values of getc and getopt in int variables:
++ they can return EOF, which requires an int. (From NMU)
++
++ -- Chip Salzenberg <chip@debian.org> Sat, 20 Jan 2001 20:03:07 -0800
++
++nfs-utils (1:0.2.1-4) unstable; urgency=medium
++
++ * Warn about common errors in /etc/exports. (closes: #66421)
++ * Fix line numbers in messages about /etc/exports. (closes: #59734)
++ * Let nhfsstone replace files from old server packages. (closes: #59261)
++
++ -- Chip Salzenberg <chip@valinux.com> Sun, 3 Dec 2000 14:41:13 -0800
++
++nfs-utils (1:0.2.1-3) unstable; urgency=low
++
++ * Add portmap dependency. (closes: #75639)
++ * Upstream:
++ > mountd: New option "-n/--no-tcp".
++
++ -- Chip Salzenberg <chip@valinux.com> Sun, 19 Nov 2000 09:22:19 -0800
++
++nfs-utils (1:0.2.1-2) unstable; urgency=high
++
++ * On shutdown, kill user-mode lockd, not kernel-mode lockd thread.
++ * Big upstream fix:
++ > statd: Repair memory leaks and corruptions.
++ * Other upstream patches:
++ > exportfs: Support CIDR netmasks (e.g. "1.2.3.4/24").
++ > statd: Fix callbacks to local lockd; Be paranoid about IP addresses
++ when doing callbacks to local lockd; Add debugging features; Make
++ logs more readable.
++
++ -- Chip Salzenberg <chip@valinux.com> Thu, 2 Nov 2000 18:10:36 -0800
++
++nfs-utils (1:0.2.1-1) unstable; urgency=low
++
++ * New upstream w/minor fixes.
++
++ -- Chip Salzenberg <chip@valinux.com> Mon, 2 Oct 2000 17:32:00 -0700
++
++nfs-utils (1:0.2-1) unstable; urgency=low
++
++ * New upstream version number.
++ * Minor fixes.
++
++ -- Chip Salzenberg <chip@valinux.com> Tue, 5 Sep 2000 11:30:00 -0700
++
++nfs-utils (1:0.1.9.1-2) unstable; urgency=medium
++
++ * Upstream addition of tcpwrapper support in statd and mountd.
++ * Upstream fixes from H.J. Lu and Neil Brown.
++ * Run exportfs first during startup (again).
++
++ -- Chip Salzenberg <chip@valinux.com> Sat, 26 Aug 2000 17:30:00 -0700
++
++nfs-utils (1:0.1.9.1-1) frozen unstable; urgency=high
++
++ * New upstream version, fixes more logging errors.
++ * Fix Debian distribution list.
++
++ -- Chip Salzenberg <chip@valinux.com> Wed, 5 Jul 2000 15:00:00 -0800
++
++nfs-utils (1:0.1.8.2-2) unstable; urgency=high
++
++ * Fix serious logging error in statd.
++
++ -- Chip Salzenberg <chip@valinux.com> Wed, 28 Jun 2000 23:00:00 -0800
++
++nfs-utils (1:0.1.8.2-1) unstable; urgency=low
++
++ * New upstream version.
++ * During startup, start daemons before running exportfs.
++
++ -- Chip Salzenberg <chip@valinux.com> Wed, 28 Jun 2000 15:00:00 -0800
++
++nfs-utils (1:0.1.8.1-1) unstable; urgency=medium
++
++ * New upstream version.
++ * Chdir to / before spawning daemons. (closes: #60837, #64857)
++ * Follow policy for init messages. (closes: #59184, #65519)
++
++ -- Chip Salzenberg <chip@valinux.com> Mon, 12 Jun 2000 22:30:00 -0800
++
++nfs-utils (1:0.1.8-1) unstable; urgency=low
++
++ * New upstream version.
++
++ -- Chip Salzenberg <chip@valinux.com> Sun, 4 Jun 2000 13:30:00 -0800
++
++nfs-utils (1:0.1.7.1-1) unstable; urgency=medium
++
++ * New upstream version.
++ * Use fewer sockets in mountd by sharing RPC transports,
++ even when it is run without '-p'.
++
++ -- Chip Salzenberg <chip@valinux.com> Sat, 29 Apr 2000 20:45:00 -0800
++
++nfs-utils (1:0.1.6-3) frozen unstable; urgency=medium
++
++ * Fix kernel server shutdown order: mountd, nfsd, exportfs.
++ * Upstream: Fix 'mountd -p'. Use fewer UDP sockets
++ by sharing RPC transports. Display more mount flags.
++
++ -- Chip Salzenberg <chip@valinux.com> Mon, 13 Mar 2000 14:45:00 -0800
++
++nfs-utils (1:0.1.6-2) frozen unstable; urgency=medium
++
++ * Split off nhfsstone into its own package, since it has
++ helper scripts and most people won't use it.
++ * Also include nhfsstone's helpers: nhfs{run,nums,graph}.
++ * Install man page for nhfsstone. (closes: #55194)
++ * Always run lockd on non-module kernels. (closes: #57841)
++ * Make init scripts config files. (closes: #55193)
++ * Handle "force-reload" in nfs-common's init script. (ditto)
++ * Fix line numbers in error messages. (closes: #57717)
++ * Write man page for rpc.lockd. (closes: #55192)
++ * Fix typo in exports(5) man page. (closes: #46933)
++ * Add /usr/doc -> /usr/share doc links. (closes: #54983)
++ * Add copyright file. (closes: #55195)
++ * Refresh sources from upstream.
++ * Refine dependencies.
++
++ -- Chip Salzenberg <chip@valinux.com> Sat, 26 Feb 2000 02:00:00 -0800
++
++nfs-utils (1:0.1.6-1) unstable; urgency=high
++
++ * New upstream version.
++ * Make nfs-kernel-server conflict with and replace knfs.
++
++ -- Chip Salzenberg <chip@valinux.com> Wed, 12 Jan 2000 19:30:00 -0800
++
++nfs-utils (1:0.1.5-2) unstable; urgency=high
++
++ * Rename packages to "nfs-common" and "nfs-kernel-server".
++ (Previous package names were only temporary anyway.)
++ * Prepend "1:" to version, to override existing nfs-common.
++ * Remove rpc.rquotad -- it's already packaged in "quota".
++
++ -- Chip Salzenberg <chip@valinux.com> Wed, 29 Dec 1999 17:00:00 -0800
++
++nfs-utils (0.1.5-1) unstable; urgency=medium
++
++ * New upstream version.
++ * Allow for some kernels not requiring rpc.lockd.
++
++ -- Chip Salzenberg <chip@valinux.com> Sun, 19 Dec 1999 11:40:00 -0800
++
++nfs-utils (0.1.4-1) unstable; urgency=low
++
++ * New upstream version.
++ * Don't disable NFSv3 by default.
++
++ -- Chip Salzenberg <chip@valinux.com> Fri, 10 Dec 1999 23:00:00 -0800
++
++nfs-utils (0.1.3-2) unstable; urgency=low
++
++ * Conflict with standard NFS packages.
++
++ -- Chip Salzenberg <chip@valinux.com> Fri, 3 Dec 1999 22:00:00 -0800
++
++nfs-utils (0.1.3-1) unstable; urgency=low
++
++ * New upstream version.
++ * Start following CVS tree at SourceForge.
++
++ -- Chip Salzenberg <chip@valinux.com> Fri, 3 Dec 1999 20:00:00 -0800
++
+--- nfs-utils-1.0.10.orig/debian/idmapd.conf
++++ nfs-utils-1.0.10/debian/idmapd.conf
+@@ -0,0 +1,10 @@
++[General]
++
++Verbosity = 0
++Pipefs-Directory = /var/lib/nfs/rpc_pipefs
++Domain = localdomain
++
++[Mapping]
++
++Nobody-User = nobody
++Nobody-Group = nogroup
+--- nfs-utils-1.0.10.orig/debian/nfs-common.init
++++ nfs-utils-1.0.10/debian/nfs-common.init
+@@ -0,0 +1,298 @@
++#!/bin/sh
++
++### BEGIN INIT INFO
++# Provides: nfs-common
++# Required-Start: $time
++# Required-Stop: $time
++# Default-Start: 2 3 4 5
++# Default-Stop: 0 1 6
++# Short-Description: NFS support files common to client and server
++# Description: NFS is a popular protocol for file sharing across
++# TCP/IP networks. This service provides various
++# support functions for NFS mounts.
++### END INIT INFO
++
++# What is this?
++DESC="NFS common utilities"
++
++# Read config
++DEFAULTFILE=/etc/default/nfs-common
++PREFIX=
++NEED_LOCKD=
++NEED_IDMAPD=
++NEED_GSSD=
++PIPEFS_MOUNTPOINT=/var/lib/nfs/rpc_pipefs
++RPCGSSDOPTS=
++if [ -f $DEFAULTFILE ]; then
++ . $DEFAULTFILE
++fi
++
++. /lib/lsb/init-functions
++
++# Determine whether lockd daemon is required.
++case "$NEED_LOCKD" in
++yes|no) ;;
++*) case `uname -r` in
++ '' | [01].* | 2.[0123].* )
++ # Older kernels may or may not need a lockd daemon.
++ # We must assume they do, unless we can prove otherwise.
++ # (A false positive here results only in a harmless message.)
++ NEED_LOCKD=yes
++ if test -f /proc/ksyms
++ then
++ grep -q lockdctl /proc/ksyms || NEED_LOCKD=no
++ fi
++ ;;
++
++ *) # Modern kernels (>= 2.4) start a lockd thread automatically.
++ NEED_LOCKD=no
++ ;;
++ esac
++ ;;
++esac
++
++#
++# Parse the fstab file, and determine whether we need idmapd and gssd. (The
++# /etc/defaults settings, if any, will override our autodetection.) This code
++# is partially adapted from the mountnfs.sh script in the sysvinit package.
++#
++AUTO_NEED_IDMAPD=no
++AUTO_NEED_GSSD=no
++
++exec 9<&0 </etc/fstab
++
++while read DEV MTPT FSTYPE OPTS REST
++do
++ if [ "$FSTYPE" = "nfs4" ]; then
++ AUTO_NEED_IDMAPD=yes
++ fi
++ case "$OPTS" in
++ sec=krb5|*,sec=krb5|sec=krb5,*|*,sec=krb5i,*|sec=krb5i|*,sec=krb5i|sec=krb5i,*|*,sec=krb5i,*|sec=krb5p|*,sec=krb5p|sec=krb5p,*|*,sec=krb5p,*)
++ AUTO_NEED_GSSD=yes
++ ;;
++ esac
++done
++
++exec 0<&9 9<&-
++
++#
++# We also need idmapd if we run an NFSv4 server. It's fairly difficult
++# to autodetect whether there are NFSv4 exports or not, and idmapd is not a
++# particularily heavy daemon, so we auto-enable it if we find an /etc/exports
++# file. This does not mean that there are NFSv4 or other mounts active (or
++# even that nfs-kernel-server is installed), but it matches what the "start"
++# condition in nfs-kernel-server's init script does, which has a value in
++# itself.
++#
++if [ -f /etc/exports ]; then
++ AUTO_NEED_IDMAPD=yes
++fi
++
++
++case "$NEED_IDMAPD" in
++ yes|no)
++ ;;
++ *)
++ NEED_IDMAPD=$AUTO_NEED_IDMAPD
++ ;;
++esac
++
++case "$NEED_GSSD" in
++ yes|no)
++ ;;
++ *)
++ NEED_GSSD=$AUTO_NEED_GSSD
++ ;;
++esac
++
++# Exit if required binaries are missing.
++[ -x $PREFIX/sbin/rpc.statd ] || exit 0
++[ -x $PREFIX/sbin/rpc.lockd ] || [ "$NEED_LOCKD" = no ] || exit 0
++[ -x /usr/sbin/rpc.idmapd ] || [ "$NEED_IDMAPD" = no ] || exit 0
++[ -x /usr/sbin/rpc.gssd ] || [ "$NEED_GSSD" = no ] || exit 0
++
++do_modprobe() {
++ modprobe -q "$1" || true
++}
++
++do_mount() {
++ if ! grep -E -qs "$1\$" /proc/filesystems
++ then
++ return 1
++ fi
++ if ! mountpoint -q "$2"
++ then
++ mount -t "$1" "$1" "$2"
++ return
++ fi
++ return 0
++}
++
++do_umount() {
++ if mountpoint -q "$1"
++ then
++ umount "$1"
++ fi
++ return 0
++}
++
++# See how we were called.
++case "$1" in
++ start)
++ log_daemon_msg "Starting $DESC"
++
++ log_progress_msg "statd"
++ start-stop-daemon --start --oknodo --quiet \
++ --exec $PREFIX/sbin/rpc.statd -- $STATDOPTS
++ if [ $? != 0 ]; then
++ log_end_msg $?
++ exit $?
++ fi
++
++ if [ "$NEED_LOCKD" = yes ]
++ then
++ log_progress_msg "lockd"
++ start-stop-daemon --start --oknodo --quiet \
++ --exec $PREFIX/sbin/rpc.lockd
++ if [ $? != 0 ]; then
++ log_end_msg $?
++ exit $?
++ fi
++ fi
++ if [ "$NEED_IDMAPD" = yes ] || [ "$NEED_GSSD" = yes ]
++ then
++ do_modprobe nfs
++ do_modprobe nfs4
++ if do_mount rpc_pipefs $PIPEFS_MOUNTPOINT
++ then
++ if [ "$NEED_IDMAPD" = yes ]
++ then
++ log_progress_msg "idmapd"
++ start-stop-daemon --start --oknodo --quiet \
++ --exec /usr/sbin/rpc.idmapd
++ if [ $? != 0 ]; then
++ log_end_msg $?
++ exit $?
++ fi
++ fi
++ if [ "$NEED_GSSD" = yes ]
++ then
++ do_modprobe rpcsec_gss_krb5
++ log_progress_msg "gssd"
++
++ # we need this available; better to fail now than
++ # mysteriously on the first mount
++ if ! grep -q -E '^nfs[ ]' /etc/services; then
++ log_action_end_msg 1 "broken /etc/services, please see /usr/share/doc/nfs-common/README.Debian.nfsv4"
++ exit 1
++ fi
++
++ start-stop-daemon --start --oknodo --quiet \
++ --exec /usr/sbin/rpc.gssd -- $RPCGSSDOPTS
++ if [ $? != 0 ]; then
++ log_end_msg $?
++ exit $?
++ fi
++ fi
++ fi
++ fi
++ log_end_msg 0
++ ;;
++
++ stop)
++ log_daemon_msg "Stopping $DESC"
++
++ if [ "$NEED_GSSD" = yes ]
++ then
++ log_progress_msg "gssd"
++ start-stop-daemon --stop --oknodo --quiet \
++ --name rpc.gssd
++ if [ $? != 0 ]; then
++ log_end_msg $?
++ exit $?
++ fi
++ fi
++ if [ "$NEED_IDMAPD" = yes ]
++ then
++ log_progress_msg "idmapd"
++ start-stop-daemon --stop --oknodo --quiet \
++ --name rpc.idmapd
++ if [ $? != 0 ]; then
++ log_end_msg $?
++ exit $?
++ fi
++ fi
++ if [ "$NEED_LOCKD" = yes ]
++ then
++ log_progress_msg "lockd"
++ start-stop-daemon --stop --oknodo --quiet \
++ --name rpc.lockd
++ if [ $? != 0 ]; then
++ log_end_msg $?
++ exit $?
++ fi
++ else
++ pkill -KILL -u root -x lockd || true
++ fi
++ log_progress_msg "statd"
++ start-stop-daemon --stop --oknodo --quiet \
++ --name rpc.statd
++ if [ $? != 0 ]; then
++ log_end_msg $?
++ exit $?
++ fi
++ do_umount $PIPEFS_MOUNTPOINT 2>/dev/null || true
++ log_end_msg 0
++ ;;
++
++ status)
++ if ! pidof rpc.statd >/dev/null
++ then
++ echo "rpc.statd not running"
++ exit 3
++ fi
++
++ if [ "$NEED_GSSD" = yes ]
++ then
++ if ! pidof rpc.gssd >/dev/null
++ then
++ echo "rpc.statd running, but rpc.gssd halted"
++ exit 3
++ fi
++ fi
++
++ if [ "$NEED_LOCKD" = yes ]
++ then
++ if ! pidof rpc.lockd >/dev/null
++ then
++ echo "rpc.statd running, but rpc.lockd halted"
++ exit 3
++ fi
++ fi
++
++ if [ "$NEED_IDMAPD" = yes ]
++ then
++ if ! pidof rpc.idmapd >/dev/null
++ then
++ echo "rpc.statd running, but rpc.idmapd halted"
++ exit 3
++ fi
++ fi
++
++ echo "rpc.statd running"
++ exit 0
++ ;;
++
++ restart | force-reload)
++ $0 stop
++ sleep 1
++ $0 start
++ ;;
++
++ *)
++ log_success_msg "Usage: nfs-common {start|stop|status|restart}"
++ exit 1
++ ;;
++esac
++
++exit 0
+--- nfs-utils-1.0.10.orig/debian/nfs-kernel-server.init
++++ nfs-utils-1.0.10/debian/nfs-kernel-server.init
+@@ -0,0 +1,205 @@
++#!/bin/sh
++
++### BEGIN INIT INFO
++# Provides: nfs-kernel-server
++# Required-Start: $portmap $time
++# Required-Stop: $portmap $time
++# Default-Start: 2 3 4 5
++# Default-Stop: 0 1 6
++# Short-Description: Kernel NFS server support
++# Description: NFS is a popular protocol for file sharing across
++# TCP/IP networks. This service provides NFS server
++# functionality, which is configured via the
++# /etc/exports file.
++### END INIT INFO
++
++# What is this?
++DESC="NFS kernel daemon"
++PREFIX=/usr
++
++# Exit if required binaries are missing.
++[ -x $PREFIX/sbin/rpc.nfsd ] || exit 0
++[ -x $PREFIX/sbin/rpc.mountd ] || exit 0
++[ -x $PREFIX/sbin/exportfs ] || exit 0
++
++# Read config
++DEFAULTFILE=/etc/default/nfs-kernel-server
++RPCNFSDCOUNT=8
++RPCNFSDPRIORITY=0
++RPCMOUNTDOPTS=
++NEED_SVCGSSD=no
++RPCSVCGSSDOPTS=
++PROCNFSD_MOUNTPOINT=/proc/fs/nfsd
++if [ -f $DEFAULTFILE ]; then
++ . $DEFAULTFILE
++fi
++
++. /lib/lsb/init-functions
++
++do_modprobe() {
++ if [ -x /sbin/modprobe -a -f /proc/modules ]
++ then
++ modprobe -q "$1" || true
++ fi
++}
++
++do_mount() {
++ if ! grep -E -qs "$1\$" /proc/filesystems
++ then
++ return 1
++ fi
++ if ! mountpoint -q "$2"
++ then
++ mount -t "$1" "$1" "$2"
++ return
++ fi
++ return 0
++}
++
++# See how we were called.
++case "$1" in
++ start)
++ if [ -f /etc/exports ]
++ then
++ do_modprobe nfsd
++
++ # See if our running kernel supports the NFS kernel server
++ if [ -f /proc/kallsyms ] && ! grep -qE 'init_nf(sd| )' /proc/kallsyms; then
++ log_warning_msg "Not starting $DESC: no support in current kernel."
++ exit 0
++ fi
++
++ do_mount nfsd $PROCNFSD_MOUNTPOINT || NEED_SVCGSSD=no
++ log_begin_msg "Exporting directories for $DESC..."
++ $PREFIX/sbin/exportfs -r
++ if [ $? != 0 ]; then
++ log_end_msg $?
++ exit $?
++ fi
++ log_end_msg 0
++
++ log_daemon_msg "Starting $DESC"
++ log_progress_msg "nfsd"
++ start-stop-daemon --start --oknodo --quiet \
++ --nicelevel $RPCNFSDPRIORITY \
++ --exec $PREFIX/sbin/rpc.nfsd -- $RPCNFSDCOUNT
++ if [ $? != 0 ]; then
++ log_end_msg $?
++ exit $?
++ fi
++
++ # make sure 127.0.0.1 is a valid source for requests
++ ClearAddr=
++ if [ -f /proc/net/rpc/auth.unix.ip/channel ]
++ then
++ fgrep -qs 127.0.0.1 /proc/net/rpc/auth.unix.ip/content || {
++ echo "nfsd 127.0.0.1 2147483647 localhost" >/proc/net/rpc/auth.unix.ip/channel
++ ClearAddr=yes
++ }
++ fi
++
++ $PREFIX/bin/rpcinfo -u localhost nfs 3 >/dev/null 2>&1 ||
++ RPCMOUNTDOPTS="$RPCMOUNTDOPTS --no-nfs-version 3"
++
++ [ -z "$ClearAddr" ] || echo "nfsd 127.0.0.1 1" >/proc/net/rpc/auth.unix.ip/channel
++
++ if [ "$NEED_SVCGSSD" = "yes" ]; then
++ log_progress_msg "svcgssd"
++ start-stop-daemon --start --oknodo --quiet \
++ --exec $PREFIX/sbin/rpc.svcgssd -- $RPCSVCGSSDOPTS
++ if [ $? != 0 ]; then
++ log_end_msg $?
++ exit $?
++ fi
++ fi
++
++ log_progress_msg "mountd"
++ start-stop-daemon --start --oknodo --quiet \
++ --exec $PREFIX/sbin/rpc.mountd -- $RPCMOUNTDOPTS
++ if [ $? != 0 ]; then
++ log_end_msg $?
++ exit $?
++ fi
++
++ log_end_msg 0
++ else
++ log_warning_msg "Not starting $DESC: no exports."
++ fi
++ ;;
++
++ stop)
++ log_daemon_msg "Stopping $DESC"
++
++ log_progress_msg "mountd"
++ start-stop-daemon --stop --oknodo --quiet \
++ --name rpc.mountd --user 0
++ if [ $? != 0 ]; then
++ log_end_msg $?
++ exit $?
++ fi
++
++ if [ "$NEED_SVCGSSD" = "yes" ]; then
++ log_progress_msg "svcgssd"
++ start-stop-daemon --stop --oknodo --quiet \
++ --name rpc.svcgssd --user 0
++ if [ $? != 0 ]; then
++ log_end_msg $?
++ exit $?
++ fi
++ fi
++
++ log_progress_msg "nfsd"
++ start-stop-daemon --stop --oknodo --quiet \
++ --name nfsd --user 0 --signal 2
++ if [ $? != 0 ]; then
++ log_end_msg $?
++ exit $?
++ fi
++
++ log_end_msg 0
++
++ log_begin_msg "Unexporting directories for $DESC..."
++ $PREFIX/sbin/exportfs -au
++ if [ $? != 0 ]; then
++ log_end_msg $?
++ exit $?
++ fi
++ log_end_msg 0
++
++ if mountpoint -q /proc/nfs/nfsd
++ then
++ $PREFIX/sbin/exportfs -f
++ fi
++ ;;
++
++ status)
++ if pidof nfsd >/dev/null
++ then
++ echo "nfsd running"
++ exit 0
++ else
++ echo "nfsd not running"
++ exit 3
++ fi
++ ;;
++
++ reload | force-reload)
++ log_begin_msg "Re-exporting directories for $DESC..."
++ $PREFIX/sbin/exportfs -r
++ log_end_msg $?
++ exit $?
++ ;;
++
++ restart)
++ $0 stop
++ sleep 1
++ $0 start
++ ;;
++
++ *)
++ log_success_msg "Usage: nfs-kernel-server {start|stop|status|reload|force-reload|restart}"
++ exit 1
++ ;;
++esac
++
++exit 0
+--- nfs-utils-1.0.10.orig/debian/nfs-kernel-server.postinst
++++ nfs-utils-1.0.10/debian/nfs-kernel-server.postinst
+@@ -0,0 +1,23 @@
++#!/bin/sh -e
++
++#DEBHELPER#
++
++case "$1" in
++ configure)
++ ucf --three-way /usr/share/nfs-kernel-server/conffiles/etc.exports /etc/exports
++ ucf --three-way /usr/share/nfs-kernel-server/conffiles/nfs-kernel-server.default /etc/default/nfs-kernel-server
++
++ for f in /var/lib/nfs/etab \
++ /var/lib/nfs/rmtab \
++ /var/lib/nfs/xtab; do
++ [ -e $f ] || touch $f
++ done
++
++ update-rc.d nfs-kernel-server defaults 20 80 >/dev/null
++ ;;
++esac
++
++act="restart"
++[ "$1:$2" = "configure:" ] && act="start"
++[ "$1:$2" = "configure:" ] && invoke-rc.d nfs-common start
++invoke-rc.d nfs-kernel-server $act
+--- nfs-utils-1.0.10.orig/debian/nfs-kernel-server.default
++++ nfs-utils-1.0.10/debian/nfs-kernel-server.default
+@@ -0,0 +1,18 @@
++# Number of servers to start up
++RPCNFSDCOUNT=8
++
++# Runtime priority of server (see nice(1))
++RPCNFSDPRIORITY=0
++
++# Options for rpc.mountd.
++# If you have a port-based firewall, you might want to set up
++# a fixed port here using the --port option. For more information,
++# see rpc.mountd(8) or http://wiki.debian.org/?SecuringNFS
++RPCMOUNTDOPTS=
++
++# Do you want to start the svcgssd daemon? It is only required for Kerberos
++# exports. Valid alternatives are "yes" and "no"; the default is "no".
++NEED_SVCGSSD=
++
++# Options for rpc.svcgssd.
++RPCSVCGSSDOPTS=
+--- nfs-utils-1.0.10.orig/debian/README.Debian.nfsv4
++++ nfs-utils-1.0.10/debian/README.Debian.nfsv4
+@@ -0,0 +1,62 @@
++NFSv4 in Debian
++===============
++
++NFSv4 support in Debian is rather new, and not fully supported yet. If you want
++to experiment, make sure you have:
++
++ - a recent 2.6 kernel on both client and server; newer is better. You might even
++ want to use CITI's patch set from http://www.citi.umich.edu/projects/nfsv4/linux/
++ on the server, and/or Trond Myklebust's patch set from http://client.linux-nfs.org/ .
++ - a recent enough version of nfs-utils on both client and server (you probably
++ have on at least one of them, since you're reading this file!).
++ - enabled idmapd on both sides (see /etc/default/nfs-common).
++ - The following lines in /etc/services on the client (if not, you will receive
++ the message "broken /etc/services" when starting rpc.gssd; this will usually
++ only happen if you upgrade netbase without letting it replace /etc/services
++ with the new version):
++
++ nfs 2049/tcp # Network File System
++ nfs 2049/udp # Network File System
++
++The export structure might be a bit confusing if you're already familiar with
++NFSv2 or NFSv3. The biggest difference is that you will need to export an explicit
++root of your pseudofilesystem, like this /etc/exports fragment:
++
++ /nfs4 hostname(rw,sync,fsid=0,crossmnt)
++
++(It doesn't need to be named "nfs4".) Then you can mount other volumes under that,
++like:
++
++ /nfs4/music hostname(rw,sync)
++ /nfs4/movies hostname(rw,sync)
++
++Then your client can mount shares like this:
++
++ mount -t nfs4 server:/music /mnt/music
++
++Since you might not have everything under one root, you might want /nfs4/* on the
++server to be bind mounts, ie.:
++
++ mount --bind /srv/music /nfs4/music
++
++or in /etc/fstab:
++
++ /srv/music /nfs4/music none bind 0 0
++
++Note that this special export structure might be handled transparently by
++rpc.mountd at some time in the future, in which case you will probably get the
++traditional (NFSv3-style) behaviour if and only if you have no share with
++fsid=0.
++
++If you do not wish to use host-based authentication, you can specify "gss/krb5"
++instead of a hostname to get Kerberos-based authentication instead. For this,
++you will need an "nfs/hostname@REALM" entry in /etc/krb5.keytab, as well as
++rpc.gssd running on both client and rpc.svcgssd on the server (enable them
++manually in /etc/default/nfs-common and /etc/default/nfs-kernel-server if the
++autodetection fails).
++
++If you use "gss/krb5i", you will also get integrity (ie. authentication), and
++with "gss/krb5p", you'll also get privacy (ie. encryption). Make sure your
++kernel supports this; not all kernels do.
++
++ -- Steinar H. Gunderson <sesse@debian.org>, Wed, 11 Oct 2006 15:18:03 +0200
+--- nfs-utils-1.0.10.orig/debian/nfs-common.install
++++ nfs-utils-1.0.10/debian/nfs-common.install
+@@ -0,0 +1,13 @@
++debian/tmp/usr/sbin/rpc.lockd sbin/
++debian/tmp/usr/sbin/rpc.statd sbin/
++debian/tmp/usr/sbin/showmount sbin/
++debian/tmp/usr/sbin/nfsstat
++debian/tmp/usr/sbin/rpc.gssd
++debian/tmp/usr/sbin/rpc.idmapd
++debian/tmp/usr/sbin/gss_clnt_send_err
++debian/tmp/usr/sbin/gss_destroy_creds
++debian/tmp/usr/sbin/rpcdebug
++debian/idmapd.conf usr/share/nfs-common/conffiles/
++debian/idmapd.conf.md5sum usr/share/nfs-common/conffiles/
++debian/nfs-common.default usr/share/nfs-common/conffiles/
++debian/nfs-common.default.md5sum usr/share/nfs-common/conffiles/
+--- nfs-utils-1.0.10.orig/debian/nfs-common.manpages
++++ nfs-utils-1.0.10/debian/nfs-common.manpages
+@@ -0,0 +1,9 @@
++debian/tmp/usr/share/man/man5/idmapd.conf*
++debian/tmp/usr/share/man/man8/gssd.8
++debian/tmp/usr/share/man/man8/idmapd.8
++debian/tmp/usr/share/man/man8/lockd.8
++debian/tmp/usr/share/man/man8/statd.8
++debian/tmp/usr/share/man/man8/nfsstat*
++debian/tmp/usr/share/man/man8/showmount*
++debian/tmp/usr/share/man/man8/idmapd*
++debian/tmp/usr/share/man/man8/rpcdebug.8
+--- nfs-utils-1.0.10.orig/debian/etc.exports.md5sum
++++ nfs-utils-1.0.10/debian/etc.exports.md5sum
+@@ -0,0 +1,2 @@
++fa071681b8e7f4eff1d6f5c4f43bf1d8 nfs-utils-1.0.6/debian/etc.exports
++d9037825e2fbe4e58d6176e7297830cb nfs-utils-1.0.7/debian/etc.exports
+--- nfs-utils-1.0.10.orig/debian/nfs-kernel-server.install
++++ nfs-utils-1.0.10/debian/nfs-kernel-server.install
+@@ -0,0 +1,8 @@
++debian/tmp/usr/sbin/exportfs
++debian/tmp/usr/sbin/rpc.mountd
++debian/tmp/usr/sbin/rpc.nfsd
++debian/tmp/usr/sbin/rpc.svcgssd
++debian/nfs-kernel-server.default /usr/share/nfs-kernel-server/conffiles/
++debian/etc.exports /usr/share/nfs-kernel-server/conffiles/
++debian/nfs-kernel-server.default.md5sum /usr/share/nfs-kernel-server/conffiles/
++debian/etc.exports.md5sum /usr/share/nfs-kernel-server/conffiles/
+--- nfs-utils-1.0.10.orig/debian/nfs-kernel-server.manpages
++++ nfs-utils-1.0.10/debian/nfs-kernel-server.manpages
+@@ -0,0 +1,6 @@
++debian/tmp/usr/share/man/man5/exports.5
++debian/tmp/usr/share/man/man7/nfsd.7
++debian/tmp/usr/share/man/man8/mountd.8
++debian/tmp/usr/share/man/man8/exportfs.8
++debian/tmp/usr/share/man/man8/nfsd.8
++debian/tmp/usr/share/man/man8/svcgssd.8
+--- nfs-utils-1.0.10.orig/debian/nfs-common.dirs
++++ nfs-utils-1.0.10/debian/nfs-common.dirs
+@@ -0,0 +1,8 @@
++etc/init.d
++sbin
++usr/sbin
++var/lib/nfs
++var/lib/nfs/sm
++var/lib/nfs/sm.bak
++var/lib/nfs/rpc_pipefs
++usr/share/nfs-common/conffiles
+--- nfs-utils-1.0.10.orig/debian/nfs-kernel-server.links
++++ nfs-utils-1.0.10/debian/nfs-kernel-server.links
+@@ -0,0 +1,3 @@
++/usr/share/man/man8/mountd.8 /usr/share/man/man8/rpc.mountd.8
++/usr/share/man/man8/nfsd.8 /usr/share/man/man8/rpc.nfsd.8
++/usr/share/man/man8/svcgssd.8 /usr/share/man/man8/rpc.svcgssd.8
+--- nfs-utils-1.0.10.orig/debian/nfs-common.default.md5sum
++++ nfs-utils-1.0.10/debian/nfs-common.default.md5sum
+@@ -0,0 +1,7 @@
++9409842759091e981d65a210e3e914cb nfs-utils-1.0.6/debian/nfs-common.default
++e9765a19f6be408eb8a8afa0ee9677b9 nfs-utils-1.0.7-2/debian/nfs-common.default
++04d838e3d6ce19ac7d0246740128e4a0 nfs-utils-1.0.7-6/debian/nfs-common.default
++e460b95b3b808e55ec7dcba8e605ab14 nfs-utils-1.0.7-10/debian/nfs-common.default
++bf979c79c0eca8c114c5388bf7225b4f nfs-utils-1.0.7-16/debian/nfs-common.default
++d41d8cd98f00b204e9800998ecf8427e nfs-utils-1.0.7-18/debian/nfs-common.default
++
+--- nfs-utils-1.0.10.orig/debian/nfs-common.default
++++ nfs-utils-1.0.10/debian/nfs-common.default
+@@ -0,0 +1,20 @@
++# If you do not set values for the NEED_ options, they will be attempted
++# autodetected; this should be sufficient for most people. Valid alternatives
++# for the NEED_ options are "yes" and "no".
++
++# Options for rpc.statd.
++# Should rpc.statd listen on a specific port? This is especially useful
++# when you have a port-based firewall. To use a fixed port, set this
++# this variable to a statd argument like: "--port 4000 --outgoing-port 4001".
++# For more information, see rpc.statd(8) or http://wiki.debian.org/?SecuringNFS
++STATDOPTS=
++
++# Some kernels need a separate lockd daemon; most don't. Set this if you
++# want to force an explicit choice for some reason.
++NEED_LOCKD=
++
++# Do you want to start the idmapd daemon? It is only needed for NFSv4.
++NEED_IDMAPD=
++
++# Do you want to start the gssd daemon? It is required for Kerberos mounts.
++NEED_GSSD=
+--- nfs-utils-1.0.10.orig/debian/etc.exports
++++ nfs-utils-1.0.10/debian/etc.exports
+@@ -0,0 +1,10 @@
++# /etc/exports: the access control list for filesystems which may be exported
++# to NFS clients. See exports(5).
++#
++# Example for NFSv2 and NFSv3:
++# /srv/homes hostname1(rw,sync) hostname2(ro,sync)
++#
++# Example for NFSv4:
++# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt)
++# /srv/nfs4/homes gss/krb5i(rw,sync)
++#
+--- nfs-utils-1.0.10.orig/debian/nfs-kernel-server.default.md5sum
++++ nfs-utils-1.0.10/debian/nfs-kernel-server.default.md5sum
+@@ -0,0 +1,4 @@
++226f8fdd37b11c59d73e2f378e22b0d0 nfs-utils-1.0.6/debian/nfs-kernel-server.default
++04755047c69d355d9d103c6f10017ec6 nfs-utils-1.0.7-2/debian/nfs-kernel-server.default
++41cb37d01bbfacaf4bfbe0f62b18284f nfs-utils-1.0.7-4/debian/nfs-kernel-server.default
++41388b5bb60d7ad1b1281b975dc07ce9 nfs-utils-1.0.7-16/debian/nfs-kernel-server.default
+--- nfs-utils-1.0.10.orig/debian/nfs-common.postinst
++++ nfs-utils-1.0.10/debian/nfs-common.postinst
+@@ -0,0 +1,35 @@
++#!/bin/sh -e
++
++#DEBHELPER#
++
++case "$1" in
++ configure)
++ ucf --three-way /usr/share/nfs-common/conffiles/idmapd.conf /etc/idmapd.conf
++ ucf --three-way /usr/share/nfs-common/conffiles/nfs-common.default /etc/default/nfs-common
++
++ update-rc.d nfs-common defaults 21 79 >/dev/null
++
++ if ! getent passwd statd >/dev/null; then
++ adduser --system --home /var/lib/nfs --no-create-home statd
++ fi
++ if dpkg --compare-versions "$2" ge 1:1.0.7-10 && dpkg --compare-versions "$2" lt 1:1.0.7-13; then
++ usermod --home /var/lib/nfs statd || true
++ if [ -d /home/statd ]; then
++ rmdir --ignore-fail-on-non-empty /home/statd
++ fi
++ fi
++ if [ "$2" = "" ] || dpkg --compare-versions "$2" lt 1:1.0.7-16; then
++ chown statd /var/lib/nfs/sm \
++ /var/lib/nfs/sm.bak \
++ /var/lib/nfs/rpc_pipefs \
++ /var/lib/nfs
++ if [ -f /var/lib/nfs/state ]; then
++ chown statd /var/lib/nfs/state
++ fi
++ fi
++ ;;
++esac
++
++act="restart"
++[ "$1:$2" = "configure:" ] && act="start"
++invoke-rc.d nfs-common $act
+--- nfs-utils-1.0.10.orig/debian/nfs-kernel-server.NEWS
++++ nfs-utils-1.0.10/debian/nfs-kernel-server.NEWS
+@@ -0,0 +1,8 @@
++nfs-utils (1:1.0.1-1) unstable; urgency=low
++
++ * Exports default to "sync", that is, synchronous writes.
++ This is safer but MUCH SLOWER than the old default of "async".
++ All exports should be marked as either "sync" or "async" to
++ avoid a warning from exportfs.
++
++ -- Chip Salzenberg <chip@debian.org> Mon, 26 Aug 2002 12:17:57 -0400
+--- nfs-utils-1.0.10.orig/debian/nfs-common.postrm
++++ nfs-utils-1.0.10/debian/nfs-common.postrm
+@@ -0,0 +1,24 @@
++#!/bin/sh
++
++#DEBHELPER#
++
++case "$1" in
++ purge)
++ update-rc.d nfs-common remove >/dev/null
++
++ for FILE in /etc/default/nfs-common /etc/idmapd.conf; do
++ # Taken from the ucf example postrm
++ for ext in '~' '%' .bak .dpkg-tmp .dpkg-new .dpkg-old .dpkg-dist; do
++ rm -f $FILE$ext
++ done
++ rm -f $FILE
++ if [ -x /usr/bin/ucf ]; then
++ ucf --purge $FILE
++ fi
++ done
++
++ rm -f /var/lib/nfs/state \
++ /var/lib/nfs/sm/* \
++ /var/lib/nfs/sm.bak/*
++ ;;
++esac
+--- nfs-utils-1.0.10.orig/debian/copyright
++++ nfs-utils-1.0.10/debian/copyright
+@@ -0,0 +1,11 @@
++This package was debianized by Chip Salzenberg <chip@debian.org> on Fri, 3 Dec 1999 20:00:00 -0800
++
++It was downloaded from http://sourceforge.net/projects/nfs/
++
++View individual source files for respective authors.
++
++
++You are free to distribute this software under the terms of
++the GNU General Public License, version 2 or later.
++On Debian systems, the complete text of the GNU General Public
++License can be found in the file /usr/share/common-licenses/GPL.
+--- nfs-utils-1.0.10.orig/debian/nfs-kernel-server.prerm
++++ nfs-utils-1.0.10/debian/nfs-kernel-server.prerm
+@@ -0,0 +1,19 @@
++#!/bin/sh
++
++#DEBHELPER#
++
++case "$1" in
++ remove|purge)
++ [ -x /etc/init.d/nfs-kernel-server ] &&
++ invoke-rc.d nfs-kernel-server stop
++ ;;
++esac
++
++if [ "$1" != upgrade ]
++then
++ rm -f /var/lib/nfs/etab \
++ /var/lib/nfs/rmtab \
++ /var/lib/nfs/xtab
++fi
++
++exit 0
+--- nfs-utils-1.0.10.orig/debian/nfs-common.prerm
++++ nfs-utils-1.0.10/debian/nfs-common.prerm
+@@ -0,0 +1,19 @@
++#!/bin/sh
++
++#DEBHELPER#
++
++case "$1" in
++ remove|purge)
++ [ -x /etc/init.d/nfs-common ] &&
++ invoke-rc.d nfs-common stop
++ ;;
++esac
++
++if [ "$1" != upgrade ]
++then
++ rm -f /var/lib/nfs/sm/* \
++ /var/lib/nfs/sm.bak/* \
++ /var/lib/nfs/state
++fi
++
++exit 0
+--- nfs-utils-1.0.10.orig/debian/nfs-kernel-server.postrm
++++ nfs-utils-1.0.10/debian/nfs-kernel-server.postrm
+@@ -0,0 +1,25 @@
++#!/bin/sh
++
++#DEBHELPER#
++
++case "$1" in
++ purge)
++ update-rc.d nfs-kernel-server remove >/dev/null
++
++ for FILE in /etc/default/nfs-kernel-server /etc/exports; do
++ # Taken from the ucf example postrm
++ for ext in '~' '%' .bak .dpkg-tmp .dpkg-new .dpkg-old .dpkg-dist; do
++ rm -f $FILE$ext
++ done
++ rm -f $FILE
++ if [ -x /usr/bin/ucf ]; then
++ ucf --purge $FILE
++ fi
++ done
++
++ rm -f /var/lib/nfs/etab \
++ /var/lib/nfs/rmtab \
++ /var/lib/nfs/xtab
++ ;;
++esac
++
+--- nfs-utils-1.0.10.orig/debian/nfs-kernel-server.dirs
++++ nfs-utils-1.0.10/debian/nfs-kernel-server.dirs
+@@ -0,0 +1,5 @@
++etc/init.d
++usr/sbin
++var/lib/nfs
++var/lib/nfs/v4recovery
++usr/share/nfs-kernel-server/conffiles
+--- nfs-utils-1.0.10.orig/debian/nhfsstone.dirs
++++ nfs-utils-1.0.10/debian/nhfsstone.dirs
+@@ -0,0 +1 @@
++usr/sbin
+--- nfs-utils-1.0.10.orig/debian/idmapd.conf.md5sum
++++ nfs-utils-1.0.10/debian/idmapd.conf.md5sum
+@@ -0,0 +1 @@
++3e94f238294cc61b047e7ae50115dffc nfs-utils-1.0.7/debian/idmapd.conf
+--- nfs-utils-1.0.10.orig/debian/nfs-common.links
++++ nfs-utils-1.0.10/debian/nfs-common.links
+@@ -0,0 +1,4 @@
++/usr/share/man/man8/gssd.8 /usr/share/man/man8/rpc.gssd.8
++/usr/share/man/man8/lockd.8 /usr/share/man/man8/rpc.lockd.8
++/usr/share/man/man8/statd.8 /usr/share/man/man8/rpc.statd.8
++/usr/share/man/man8/idmapd.8 /usr/share/man/man8/rpc.idmapd.8
+--- nfs-utils-1.0.10.orig/debian/compat
++++ nfs-utils-1.0.10/debian/compat
+@@ -0,0 +1 @@
++5
+--- nfs-utils-1.0.10.orig/debian/nhfsstone.install
++++ nfs-utils-1.0.10/debian/nhfsstone.install
+@@ -0,0 +1,2 @@
++debian/tmp/usr/sbin/nhfs*
++debian/tmp/usr/share/man/man8/nhfs*
diff --git a/package/nfs-utils/nfs-utils.mk b/package/nfs-utils/nfs-utils.mk
new file mode 100644
index 000000000..76b909fb4
--- /dev/null
+++ b/package/nfs-utils/nfs-utils.mk
@@ -0,0 +1,86 @@
+#############################################################
+#
+# nfs-utils
+#
+#############################################################
+NFS_UTILS_VER:=1.0.10
+NFS_UTILS_SOURCE:=nfs-utils-$(NFS_UTILS_VER).tar.gz
+NFS_UTILS_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/nfs/
+NFS_UTILS_CAT:=$(ZCAT)
+NFS_UTILS_DIR:=$(BUILD_DIR)/nfs-utils-$(NFS_UTILS_VER)
+NFS_UTILS_BINARY:=utils/nfsd/nfsd
+NFS_UTILS_TARGET_BINARY:=usr/sbin/rpc.nfsd
+
+$(DL_DIR)/$(NFS_UTILS_SOURCE):
+ $(WGET) -P $(DL_DIR) $(NFS_UTILS_SITE)/$(NFS_UTILS_SOURCE)
+
+$(NFS_UTILS_DIR)/.unpacked: $(DL_DIR)/$(NFS_UTILS_SOURCE)
+ $(NFS_UTILS_CAT) $(DL_DIR)/$(NFS_UTILS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(NFS_UTILS_DIR) package/nfs-utils/ nfs-utils*.patch
+ toolchain/patch-kernel.sh $(NFS_UTILS_DIR) $(NFS_UTILS_DIR)/debian/ *.patch
+ touch $(NFS_UTILS_DIR)/.unpacked
+
+$(NFS_UTILS_DIR)/.configured: $(NFS_UTILS_DIR)/.unpacked
+ (cd $(NFS_UTILS_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) CC_FOR_BUILD="$(HOSTCC)" \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS)" \
+ knfsd_cv_bsd_signals=no \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --disable-nfsv4 \
+ --disable-gss \
+ );
+ touch $(NFS_UTILS_DIR)/.configured
+
+$(NFS_UTILS_DIR)/$(NFS_UTILS_BINARY): $(NFS_UTILS_DIR)/.configured
+ $(MAKE) CC=$(TARGET_CC) CC_FOR_BUILD="$(HOSTCC)" \
+ RPCGEN=/usr/bin/rpcgen -C $(NFS_UTILS_DIR)
+ touch -c $(NFS_UTILS_DIR)/$(NFS_UTILS_BINARY)
+
+NFS_UTILS_TARGETS_ :=
+NFS_UTILS_TARGETS_y := usr/sbin/exportfs usr/sbin/rpc.mountd \
+ usr/sbin/rpc.nfsd usr/sbin/rpc.statd
+
+NFS_UTILS_TARGETS_$(BR2_PACKAGE_NFS_UTILS_RPCDEBUG) += usr/sbin/rpcdebug
+NFS_UTILS_TARGETS_$(BR2_PACKAGE_NFS_UTILS_RPC_LOCKD) += usr/sbin/rpc.lockd
+NFS_UTILS_TARGETS_$(BR2_PACKAGE_NFS_UTILS_RPC_RQUOTAD) += usr/sbin/rpc.rquotad
+
+$(STAGING_DIR)/.fakeroot.nfs-utils: $(NFS_UTILS_DIR)/$(NFS_UTILS_BINARY)
+ # Use fakeroot to pretend to do 'make install' as root
+ echo "$(MAKE) prefix=$(TARGET_DIR)/usr statedir=$(TARGET_DIR)/var/lib/nfs CC=$(TARGET_CC) -C $(NFS_UTILS_DIR) install" > $@
+ echo "rm -f $(TARGET_DIR)/usr/bin/event_rpcgen.py $(TARGET_DIR)/usr/sbin/nhfs* $(TARGET_DIR)/usr/sbin/nfsstat $(TARGET_DIR)/usr/sbin/showmount" >> $@
+ echo "rm -rf $(TARGET_DIR)/usr/share/man" >> $@
+ echo "$(INSTALL) -m 0755 -D package/nfs-utils/init-nfs $(TARGET_DIR)/etc/init.d/S60nfs" >> $@
+ echo -n "for file in $(NFS_UTILS_TARGETS_) ; do rm -f $(TARGET_DIR)/" >> $@
+ echo -n "\$$" >> $@
+ echo "file; done" >> $@
+ echo "rm -rf $(TARGET_DIR)/var/lib/nfs" >> $@
+
+$(TARGET_DIR)/$(NFS_UTILS_TARGET_BINARY): $(STAGING_DIR)/.fakeroot.nfs-utils
+ touch -c $(TARGET_DIR)/$(NFS_UTILS_TARGET_BINARY)
+
+nfs-utils: uclibc $(TARGET_DIR)/$(NFS_UTILS_TARGET_BINARY)
+
+nfs-utils-clean:
+ rm -f $(TARGET_DIR)/etc/init.d/S60nfs
+ for file in $(NFS_UTILS_TARGETS_y) ; do \
+ rm -f $(TARGET_DIR)/$$file; \
+ done
+ -$(MAKE) -C $(NFS_UTILS_DIR) clean
+ rm -f $(STAGING_DIR)/.fakeroot.nfs-utils
+
+nfs-utils-dirclean:
+ rm -rf $(NFS_UTILS_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_NFS_UTILS)),y)
+TARGETS+=nfs-utils
+endif