commit 546d7493988c7590dac7656348e4f8b9be922e15 Author: MSVSphere Packaging Team Date: Fri Apr 14 14:38:46 2023 +0300 import nfs-utils-2.5.4-18.el9 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..edd4385 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/nfs-utils-2.5.4.tar.xz diff --git a/.nfs-utils.metadata b/.nfs-utils.metadata new file mode 100644 index 0000000..b2ca5d1 --- /dev/null +++ b/.nfs-utils.metadata @@ -0,0 +1 @@ +1b097d511c85f95671619f51b37abd75d56ea777 SOURCES/nfs-utils-2.5.4.tar.xz diff --git a/SOURCES/10-nfsv4.conf b/SOURCES/10-nfsv4.conf new file mode 100644 index 0000000..03510d9 --- /dev/null +++ b/SOURCES/10-nfsv4.conf @@ -0,0 +1,9 @@ +[ NFSMount_Global_Options ] +# This statically named section defines global mount +# options that can be applied on all NFS mount. +# +# Setting this option makes it mandatory the server supports the +# given version. The mount will fail if the given version is +# not support by the server. +Nfsvers=4 + diff --git a/SOURCES/24-nfs-server.conf b/SOURCES/24-nfs-server.conf new file mode 100644 index 0000000..5011e92 --- /dev/null +++ b/SOURCES/24-nfs-server.conf @@ -0,0 +1,7 @@ +[service/nfs-server] + mechs = krb5 + socket = /run/gssproxy.sock + cred_store = keytab:/etc/krb5.keytab + trusted = yes + kernel_nfsd = yes + euid = 0 diff --git a/SOURCES/id_resolver.conf b/SOURCES/id_resolver.conf new file mode 100644 index 0000000..67ccb18 --- /dev/null +++ b/SOURCES/id_resolver.conf @@ -0,0 +1,9 @@ +# +# nfsidmap(5) - The NFS idmapper upcall program +# Summary: Used by NFSv4 to map user/group ids into +# user/group names and names into in ids +# Options: +# -v Increases the verbosity of the output to syslog +# -t timeout Set the expiration timer, in seconds, on the key +# +create id_resolver * * /usr/sbin/nfsidmap %k %d diff --git a/SOURCES/lockd.conf b/SOURCES/lockd.conf new file mode 100644 index 0000000..f672d12 --- /dev/null +++ b/SOURCES/lockd.conf @@ -0,0 +1,23 @@ +# +# Set the NFS lock manager grace period. n is measured in seconds. +#options lockd nlm_grace_period=90 +# +# Set the TCP port that the NFS lock manager should use. +# port must be a valid TCP port value (1-65535). +#options lockd nlm_tcpport +# +# Set the UDP port that the NFS lock manager should use. +# port must be a valid UDP port value (1-65535). +#options lockd nlm_udpport +# +# Set the maximum number of outstanding connections +#options lockd nlm_max_connections=1024 +# +# Set the default time value for the NFS lock manager +# in seconds. Default is 10 secs (min 3 max 20) +#options lockd nlm_timeout=10 +# +# Choose whether to record the caller_name or IP address +# this peer in the local rpc.statd's database. +#options lockd nsm_use_hostnames=0 + diff --git a/SOURCES/nfs-utils-1.2.1-exp-subtree-warn-off.patch b/SOURCES/nfs-utils-1.2.1-exp-subtree-warn-off.patch new file mode 100644 index 0000000..7708750 --- /dev/null +++ b/SOURCES/nfs-utils-1.2.1-exp-subtree-warn-off.patch @@ -0,0 +1,12 @@ +diff -up nfs-utils-2.1.1/support/nfs/exports.c.orig nfs-utils-2.1.1/support/nfs/exports.c +--- nfs-utils-2.1.1/support/nfs/exports.c.orig 2017-01-12 10:21:39.000000000 -0500 ++++ nfs-utils-2.1.1/support/nfs/exports.c 2017-04-26 12:46:24.186480312 -0400 +@@ -507,7 +507,7 @@ void fix_pseudoflavor_flags(struct expor + static int + parseopts(char *cp, struct exportent *ep, int warn, int *had_subtree_opt_ptr) + { +- int had_subtree_opt = 0; ++ int had_subtree_opt = 1; + char *flname = efname?efname:"command line"; + int flline = efp?efp->x_line:0; + unsigned int active = 0; diff --git a/SOURCES/nfs-utils-1.2.1-statdpath-man.patch b/SOURCES/nfs-utils-1.2.1-statdpath-man.patch new file mode 100644 index 0000000..6cbe2ab --- /dev/null +++ b/SOURCES/nfs-utils-1.2.1-statdpath-man.patch @@ -0,0 +1,58 @@ +diff -up nfs-utils-2.5.4/utils/statd/sm-notify.man.orig nfs-utils-2.5.4/utils/statd/sm-notify.man +--- nfs-utils-2.5.4/utils/statd/sm-notify.man.orig 2021-06-10 14:07:47.000000000 -0400 ++++ nfs-utils-2.5.4/utils/statd/sm-notify.man 2021-06-24 14:46:32.413626193 -0400 +@@ -184,7 +184,7 @@ where NSM state information resides. + If this option is not specified, + .B sm-notify + uses +-.I /var/lib/nfs ++.I /var/lib/nfs/statd + by default. + .IP + After starting, +@@ -338,13 +338,13 @@ Currently, the + command supports sending notification only via datagram transport protocols. + .SH FILES + .TP 2.5i +-.I /var/lib/nfs/sm ++.I /var/lib/nfs/statd/sm + directory containing monitor list + .TP 2.5i +-.I /var/lib/nfs/sm.bak ++.I /var/lib/nfs/statd/sm.bak + directory containing notify list + .TP 2.5i +-.I /var/lib/nfs/state ++.I /var/lib/nfs/statd/state + NSM state number for this host + .TP 2.5i + .I /proc/sys/fs/nfs/nsm_local_state +diff -up nfs-utils-2.5.4/utils/statd/statd.man.orig nfs-utils-2.5.4/utils/statd/statd.man +--- nfs-utils-2.5.4/utils/statd/statd.man.orig 2021-06-10 14:07:47.000000000 -0400 ++++ nfs-utils-2.5.4/utils/statd/statd.man 2021-06-24 14:46:32.414626197 -0400 +@@ -251,7 +251,7 @@ where NSM state information resides. + If this option is not specified, + .B rpc.statd + uses +-.I /var/lib/nfs ++.I /var/lib/nfs/statd + by default. + .IP + After starting, +@@ -431,13 +431,13 @@ If set to a positive integer, has the sa + .IR \-\-no\-notify . + .SH FILES + .TP 2.5i +-.I /var/lib/nfs/sm ++.I /var/lib/nfs/statd/sm + directory containing monitor list + .TP 2.5i +-.I /var/lib/nfs/sm.bak ++.I /var/lib/nfs/statd/sm.bak + directory containing notify list + .TP 2.5i +-.I /var/lib/nfs/state ++.I /var/lib/nfs/statd/state + NSM state number for this host + .TP 2.5i + .I /run/run.statd.pid diff --git a/SOURCES/nfs-utils-1.2.5-idmap-errmsg.patch b/SOURCES/nfs-utils-1.2.5-idmap-errmsg.patch new file mode 100644 index 0000000..47143df --- /dev/null +++ b/SOURCES/nfs-utils-1.2.5-idmap-errmsg.patch @@ -0,0 +1,12 @@ +diff -up nfs-utils-2.4.2/utils/nfsidmap/nfsidmap.c.orig nfs-utils-2.4.2/utils/nfsidmap/nfsidmap.c +--- nfs-utils-2.4.2/utils/nfsidmap/nfsidmap.c.orig 2019-11-11 14:15:50.000000000 -0500 ++++ nfs-utils-2.4.2/utils/nfsidmap/nfsidmap.c 2019-11-11 14:29:47.355661037 -0500 +@@ -434,7 +434,7 @@ int main(int argc, char **argv) + + xlog_stderr(verbose); + if ((argc - optind) != 2) { +- xlog_warn("Bad arg count. Check /etc/request-key.conf"); ++ xlog_warn("Bad arg count. Check /etc/request-key.d/request-key.conf"); + xlog_warn(USAGE, progname); + return EXIT_FAILURE; + } diff --git a/SOURCES/nfs-utils-2.3.1-systemd-gssproxy-restart.patch b/SOURCES/nfs-utils-2.3.1-systemd-gssproxy-restart.patch new file mode 100644 index 0000000..08b8dd1 --- /dev/null +++ b/SOURCES/nfs-utils-2.3.1-systemd-gssproxy-restart.patch @@ -0,0 +1,11 @@ +diff -up nfs-utils-2.5.2/systemd/nfs-server.service.orig nfs-utils-2.5.2/systemd/nfs-server.service +--- nfs-utils-2.5.2/systemd/nfs-server.service.orig 2020-12-16 12:31:27.677558163 -0500 ++++ nfs-utils-2.5.2/systemd/nfs-server.service 2020-12-16 12:33:56.751806659 -0500 +@@ -23,6 +23,7 @@ Type=oneshot + RemainAfterExit=yes + ExecStartPre=-/usr/sbin/exportfs -r + ExecStart=/usr/sbin/rpc.nfsd ++ExecStart=-/bin/sh -c 'if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi' + ExecStop=/usr/sbin/rpc.nfsd 0 + ExecStopPost=/usr/sbin/exportfs -au + ExecStopPost=/usr/sbin/exportfs -f diff --git a/SOURCES/nfs-utils-2.3.3-man-tcpwrappers.patch b/SOURCES/nfs-utils-2.3.3-man-tcpwrappers.patch new file mode 100644 index 0000000..83fcb10 --- /dev/null +++ b/SOURCES/nfs-utils-2.3.3-man-tcpwrappers.patch @@ -0,0 +1,89 @@ +diff -up nfs-utils-2.5.4/utils/mountd/mountd.man.orig nfs-utils-2.5.4/utils/mountd/mountd.man +--- nfs-utils-2.5.4/utils/mountd/mountd.man.orig 2022-01-22 16:56:29.715967394 -0500 ++++ nfs-utils-2.5.4/utils/mountd/mountd.man 2022-01-22 16:57:07.494103095 -0500 +@@ -291,36 +291,7 @@ section include + which each have the same meaning as given by + .BR rpc.nfsd (8). + +-.SH TCP_WRAPPERS SUPPORT +-You can protect your +-.B rpc.mountd +-listeners using the +-.B tcp_wrapper +-library or +-.BR iptables (8). +-.PP +-Note that the +-.B tcp_wrapper +-library supports only IPv4 networking. +-.PP +-Add the hostnames of NFS peers that are allowed to access +-.B rpc.mountd +-to +-.IR /etc/hosts.allow . +-Use the daemon name +-.B mountd +-even if the +-.B rpc.mountd +-binary has a different name. +-.PP +-Hostnames used in either access file will be ignored when +-they can not be resolved into IP addresses. +-For further information see the +-.BR tcpd (8) +-and +-.BR hosts_access (5) +-man pages. +-.SS IPv6 and TI-RPC support ++.SH IPv6 and TI-RPC support + TI-RPC is a pre-requisite for supporting NFS on IPv6. + If TI-RPC support is built into + .BR rpc.mountd , +@@ -347,7 +318,6 @@ table of clients accessing server's expo + .BR nfs (5), + .BR nfs.conf (5), + .BR tcpd (8), +-.BR hosts_access (5), + .BR iptables (8), + .BR netconfig (5) + .sp +diff -up nfs-utils-2.5.4/utils/statd/statd.man.orig nfs-utils-2.5.4/utils/statd/statd.man +--- nfs-utils-2.5.4/utils/statd/statd.man.orig 2022-01-22 16:56:29.718967405 -0500 ++++ nfs-utils-2.5.4/utils/statd/statd.man 2022-01-22 16:57:07.495103099 -0500 +@@ -325,28 +325,6 @@ chooses, simply use + .BR chown (1) + to set the owner of + the state directory. +-.PP +-You can also protect your +-.B rpc.statd +-listeners using the +-.B tcp_wrapper +-library or +-.BR iptables (8). +-To use the +-.B tcp_wrapper +-library, add the hostnames of peers that should be allowed access to +-.IR /etc/hosts.allow . +-Use the daemon name +-.B statd +-even if the +-.B rpc.statd +-binary has a different filename. +-.P +-For further information see the +-.BR tcpd (8) +-and +-.BR hosts_access (5) +-man pages. + .SH ADDITIONAL NOTES + Lock recovery after a reboot is critical to maintaining data integrity + and preventing unnecessary application hangs. +@@ -451,7 +429,6 @@ network transport capability database + .BR rpc.nfsd (8), + .BR rpcbind (8), + .BR tcpd (8), +-.BR hosts_access (5), + .BR iptables (8), + .BR netconfig (5) + .sp diff --git a/SOURCES/nfs-utils-2.3.3-nfsconf-usegssproxy.patch b/SOURCES/nfs-utils-2.3.3-nfsconf-usegssproxy.patch new file mode 100644 index 0000000..d87ae7d --- /dev/null +++ b/SOURCES/nfs-utils-2.3.3-nfsconf-usegssproxy.patch @@ -0,0 +1,21 @@ +diff -up nfs-utils-2.3.4/nfs.conf.orig nfs-utils-2.3.4/nfs.conf +--- nfs-utils-2.3.4/nfs.conf.orig 2019-05-10 14:49:49.000000000 -0400 ++++ nfs-utils-2.3.4/nfs.conf 2019-05-10 14:58:20.198714920 -0400 +@@ -13,7 +13,7 @@ + # rpc-verbosity=0 + # use-memcache=0 + # use-machine-creds=1 +-# use-gss-proxy=0 ++use-gss-proxy=1 + # avoid-dns=1 + # limit-to-legacy-enctypes=0 + # context-timeout=0 +@@ -77,6 +77,5 @@ + # outgoing-port= + # outgoing-addr= + # lift-grace=y +-# +-[svcgssd] +-# principal= ++ ++#tag1234 - Used for install purposes only diff --git a/SOURCES/nfs-utils-2.4.2-systemd-svcgssd.patch b/SOURCES/nfs-utils-2.4.2-systemd-svcgssd.patch new file mode 100644 index 0000000..cdda817 --- /dev/null +++ b/SOURCES/nfs-utils-2.4.2-systemd-svcgssd.patch @@ -0,0 +1,14 @@ +diff -up nfs-utils-2.4.2/systemd/auth-rpcgss-module.service.orig nfs-utils-2.4.2/systemd/auth-rpcgss-module.service +--- nfs-utils-2.4.2/systemd/auth-rpcgss-module.service.orig 2019-11-13 12:09:41.000000000 -0500 ++++ nfs-utils-2.4.2/systemd/auth-rpcgss-module.service 2019-12-18 11:32:04.656735515 -0500 +@@ -7,8 +7,8 @@ + [Unit] + Description=Kernel Module supporting RPCSEC_GSS + DefaultDependencies=no +-Before=gssproxy.service rpc-svcgssd.service rpc-gssd.service +-Wants=gssproxy.service rpc-svcgssd.service rpc-gssd.service ++Before=gssproxy.service rpc-gssd.service ++Wants=gssproxy.service rpc-gssd.service + ConditionPathExists=/etc/krb5.keytab + + [Service] diff --git a/SOURCES/nfs-utils-2.5.4-covscan-return-value.patch b/SOURCES/nfs-utils-2.5.4-covscan-return-value.patch new file mode 100644 index 0000000..0d3088a --- /dev/null +++ b/SOURCES/nfs-utils-2.5.4-covscan-return-value.patch @@ -0,0 +1,25 @@ +diff -up nfs-utils-2.5.4/support/export/client.c.orig nfs-utils-2.5.4/support/export/client.c +--- nfs-utils-2.5.4/support/export/client.c.orig 2021-06-10 14:07:47.000000000 -0400 ++++ nfs-utils-2.5.4/support/export/client.c 2023-01-26 11:26:00.279342412 -0500 +@@ -699,6 +699,9 @@ check_netgroup(const nfs_client *clp, co + + /* check whether the IP itself is in the netgroup */ + ip = calloc(INET6_ADDRSTRLEN, 1); ++ if (ip == NULL) ++ goto out; ++ + if (inet_ntop(ai->ai_family, &(((struct sockaddr_in *)ai->ai_addr)->sin_addr), ip, INET6_ADDRSTRLEN) == ip) { + if (innetgr(netgroup, ip, NULL, NULL)) { + free(hname); +diff -up nfs-utils-2.5.4/tools/nfsrahead/main.c.orig nfs-utils-2.5.4/tools/nfsrahead/main.c +--- nfs-utils-2.5.4/tools/nfsrahead/main.c.orig 2023-01-26 11:23:48.941618287 -0500 ++++ nfs-utils-2.5.4/tools/nfsrahead/main.c 2023-01-26 11:26:00.279342412 -0500 +@@ -167,7 +167,7 @@ int main(int argc, char **argv) + if ((ret = get_device_info(argv[optind], &device)) == 0) + break; + +- if (ret != 0) { ++ if (ret != 0 || device.fstype == NULL) { + xlog(D_GENERAL, "unable to find device %s\n", argv[optind]); + goto out; + } diff --git a/SOURCES/nfs-utils-2.5.4-general-memory-fixes.patch b/SOURCES/nfs-utils-2.5.4-general-memory-fixes.patch new file mode 100644 index 0000000..ad95ef9 --- /dev/null +++ b/SOURCES/nfs-utils-2.5.4-general-memory-fixes.patch @@ -0,0 +1,131 @@ +diff --git a/support/nfsidmap/nss.c b/support/nfsidmap/nss.c +index 669760b7..0f43076e 100644 +--- a/support/nfsidmap/nss.c ++++ b/support/nfsidmap/nss.c +@@ -365,10 +365,8 @@ static int _nss_name_to_gid(char *name, gid_t *gid, int dostrip) + out_buf: + free(buf); + out_name: +- if (dostrip) +- free(localname); +- if (get_reformat_group()) +- free(ref_name); ++ free(localname); ++ free(ref_name); + out: + return err; + } +diff --git a/support/nfsidmap/regex.c b/support/nfsidmap/regex.c +index fdbb2e2f..958b4ac8 100644 +--- a/support/nfsidmap/regex.c ++++ b/support/nfsidmap/regex.c +@@ -157,6 +157,7 @@ again: + IDMAP_LOG(4, ("regexp_getpwnam: name '%s' mapped to '%s'", + name, localname)); + ++ free(localname); + *err_p = 0; + return pw; + +diff --git a/utils/gssd/gssd.c b/utils/gssd/gssd.c +index 4113cbab..833d8e01 100644 +--- a/utils/gssd/gssd.c ++++ b/utils/gssd/gssd.c +@@ -1016,7 +1016,7 @@ read_gss_conf(void) + keytabfile = s; + s = conf_get_str("gssd", "cred-cache-directory"); + if (s) +- ccachedir = s; ++ ccachedir = strdup(s); + s = conf_get_str("gssd", "preferred-realm"); + if (s) + preferred_realm = s; +@@ -1070,7 +1070,8 @@ main(int argc, char *argv[]) + keytabfile = optarg; + break; + case 'd': +- ccachedir = optarg; ++ free(ccachedir); ++ ccachedir = strdup(optarg); + break; + case 't': + context_timeout = atoi(optarg); +@@ -1133,7 +1134,6 @@ main(int argc, char *argv[]) + } + + if (ccachedir) { +- char *ccachedir_copy; + char *ptr; + + for (ptr = ccachedir, i = 2; *ptr; ptr++) +@@ -1141,8 +1141,7 @@ main(int argc, char *argv[]) + i++; + + ccachesearch = malloc(i * sizeof(char *)); +- ccachedir_copy = strdup(ccachedir); +- if (!ccachedir_copy || !ccachesearch) { ++ if (!ccachesearch) { + printerr(0, "malloc failure\n"); + exit(EXIT_FAILURE); + } +@@ -1274,6 +1273,7 @@ main(int argc, char *argv[]) + + free(preferred_realm); + free(ccachesearch); ++ free(ccachedir); + + return rc < 0 ? EXIT_FAILURE : EXIT_SUCCESS; + } +diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c +index c5f1152e..6d059f33 100644 +--- a/utils/gssd/krb5_util.c ++++ b/utils/gssd/krb5_util.c +@@ -1129,6 +1129,12 @@ query_krb5_ccache(const char* cred_cache, char **ret_princname, + *str = '\0'; + *ret_princname = strdup(princstring); + *ret_realm = strdup(str+1); ++ if (!*ret_princname || !*ret_realm) { ++ free(*ret_princname); ++ free(*ret_realm); ++ *ret_princname = NULL; ++ *ret_realm = NULL; ++ } + } + k5_free_unparsed_name(context, princstring); + } +@@ -1350,15 +1356,19 @@ gssd_get_krb5_machine_cred_list(char ***list) + if (retval) + continue; + if (i + 1 > listsize) { ++ char **tmplist; + listsize += listinc; +- l = (char **) ++ tmplist = (char **) + realloc(l, listsize * sizeof(char *)); +- if (l == NULL) { ++ if (tmplist == NULL) { ++ gssd_free_krb5_machine_cred_list(l); + retval = ENOMEM; + goto out_lock; + } ++ l = tmplist; + } + if ((l[i++] = strdup(ple->ccname)) == NULL) { ++ gssd_free_krb5_machine_cred_list(l); + retval = ENOMEM; + goto out_lock; + } +diff --git a/utils/mountd/rmtab.c b/utils/mountd/rmtab.c +index 2da97615..752fdb66 100644 +--- a/utils/mountd/rmtab.c ++++ b/utils/mountd/rmtab.c +@@ -233,6 +233,9 @@ mountlist_list(void) + m->ml_directory = strdup(rep->r_path); + + if (m->ml_hostname == NULL || m->ml_directory == NULL) { ++ free(m->ml_hostname); ++ free(m->ml_directory); ++ free(m); + mountlist_freeall(mlist); + mlist = NULL; + xlog(L_ERROR, "%s: memory allocation failed", diff --git a/SOURCES/nfs-utils-2.5.4-gssd-debug-msg.patch b/SOURCES/nfs-utils-2.5.4-gssd-debug-msg.patch new file mode 100644 index 0000000..bdeaaaf --- /dev/null +++ b/SOURCES/nfs-utils-2.5.4-gssd-debug-msg.patch @@ -0,0 +1,33 @@ +commit cfe41d6f06af0e7744c1ca30503f93d28aca4d8b +Author: NeilBrown +Date: Tue Sep 21 12:47:10 2021 -0400 + + gssd: fix crash in debug message. + + A recent cleanup of debug messages added func and tid format specifiers + to a debug message (when full hostname was different), but the func name + and tid were NOT added as arguments. + + Consequently there weren't enough args, random bytes of the stack were + interpreted as a pointer, and rpc.gssd crashed (when -v was specified). + + Fixes: b538862a5135 ("gssd: Cleaned up debug messages") + Reviewed-by: Petr Vorel + Signed-off-by: NeilBrown + Signed-off-by: Steve Dickson + +diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c +index 6d059f33..e3f270e9 100644 +--- a/utils/gssd/krb5_util.c ++++ b/utils/gssd/krb5_util.c +@@ -673,8 +673,8 @@ get_full_hostname(const char *inhost, char *outhost, int outhostlen) + *c = tolower(*c); + + if (get_verbosity() && strcmp(inhost, outhost)) +- printerr(1, "%s(0x%0lx): inhost '%s' different than outhost'%s'\n", +- inhost, outhost); ++ printerr(1, "%s(0x%0lx): inhost '%s' different than outhost '%s'\n", ++ __func__, tid, inhost, outhost); + + retval = 0; + out: diff --git a/SOURCES/nfs-utils-2.5.4-mount-ebusy.patch b/SOURCES/nfs-utils-2.5.4-mount-ebusy.patch new file mode 100644 index 0000000..bd0526f --- /dev/null +++ b/SOURCES/nfs-utils-2.5.4-mount-ebusy.patch @@ -0,0 +1,32 @@ +commit c547ad481dca5bc0b0a2e365ebcff3439848f664 +Author: Rohan Sable +Date: Mon Feb 14 11:15:22 2022 -0500 + + mount.nfs Fix error reporting for already mounted shares + + When mount is triggered for an already mounted + share (using auto negotiation), it displays + "mount.nfs: Protocol not supported" or + "mount.nfs: access denied by server while mounting" + instead of EBUSY. This easily causes confusion if + the mount was not tried verbose : + + Signed-off-by: Rohan Sable + Signed-off-by: Yongcheng Yang + Signed-off-by: Steve Dickson + +diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c +index 3c4e218a..573df6ee 100644 +--- a/utils/mount/stropts.c ++++ b/utils/mount/stropts.c +@@ -973,7 +973,9 @@ fall_back: + if ((result = nfs_try_mount_v3v2(mi, FALSE))) + return result; + +- errno = olderrno; ++ if (errno != EBUSY && errno != EACCES) ++ errno = olderrno; ++ + return result; + } + diff --git a/SOURCES/nfs-utils-2.5.4-mount-nov2.patch b/SOURCES/nfs-utils-2.5.4-mount-nov2.patch new file mode 100644 index 0000000..32beaab --- /dev/null +++ b/SOURCES/nfs-utils-2.5.4-mount-nov2.patch @@ -0,0 +1,253 @@ +diff --git a/nfs.conf b/nfs.conf +index 8c714ff7..21d3e7b2 100644 +--- a/nfs.conf ++++ b/nfs.conf +@@ -68,7 +68,6 @@ + # lease-time=90 + # udp=n + # tcp=y +-# vers2=n + # vers3=y + # vers4=y + # vers4.0=y +diff --git a/systemd/nfs.conf.man b/systemd/nfs.conf.man +index 4436a38a..be487a11 100644 +--- a/systemd/nfs.conf.man ++++ b/systemd/nfs.conf.man +@@ -171,7 +171,6 @@ Recognized values: + .BR lease-time , + .BR udp , + .BR tcp , +-.BR vers2 , + .BR vers3 , + .BR vers4 , + .BR vers4.0 , +diff --git a/utils/mount/configfile.c b/utils/mount/configfile.c +index 3d3684ef..1d88cbfc 100644 +--- a/utils/mount/configfile.c ++++ b/utils/mount/configfile.c +@@ -71,7 +71,7 @@ struct mnt_alias { + int mnt_alias_sz = (sizeof(mnt_alias_tab)/sizeof(mnt_alias_tab[0])); + + static const char *version_keys[] = { +- "v2", "v3", "v4", "vers", "nfsvers", "minorversion", NULL ++ "v3", "v4", "vers", "nfsvers", "minorversion", NULL + }; + + static int strict; +diff --git a/utils/mount/mount.nfs.man b/utils/mount/mount.nfs.man +index 0409c96f..a78a3b0d 100644 +--- a/utils/mount/mount.nfs.man ++++ b/utils/mount/mount.nfs.man +@@ -27,7 +27,7 @@ can mount all NFS file system versions. Under earlier Linux kernel versions, + .BR mount.nfs4 + must be used for mounting NFSv4 file systems while + .BR mount.nfs +-must be used for NFSv3 and v2. ++must be used for NFSv3. + + .SH OPTIONS + .TP +diff --git a/utils/mount/network.c b/utils/mount/network.c +index e803dbbe..0d80d08c 100644 +--- a/utils/mount/network.c ++++ b/utils/mount/network.c +@@ -97,7 +97,7 @@ static const char *nfs_transport_opttbl[] = { + }; + + static const char *nfs_version_opttbl[] = { +- "v2", ++ "v2", /* no longer supported */ + "v3", + "v4", + "vers", +@@ -1290,7 +1290,7 @@ nfs_nfs_version(char *type, struct mount_options *options, struct nfs_version *v + else if (found < 0) + return 1; + else if (found <= 2 ) { +- /* v2, v3, v4 */ ++ /* v3, v4 */ + version_val = version_key + 1; + version->v_mode = V_SPECIFIC; + } else if (found > 2 ) { +diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man +index f1b76936..83365a37 100644 +--- a/utils/mount/nfs.man ++++ b/utils/mount/nfs.man +@@ -12,7 +12,7 @@ created by Sun Microsystems in 1984. NFS was developed + to allow file sharing between systems residing + on a local area network. + Depending on kernel configuration, the Linux NFS client may +-support NFS versions 2, 3, 4.0, 4.1, or 4.2. ++support NFS versions 3, 4.0, 4.1, or 4.2. + .P + The + .BR mount (8) +@@ -941,11 +941,6 @@ file. See + .BR nfsmount.conf(5) + for details. + .SH EXAMPLES +-To mount an export using NFS version 2, +-use the +-.B nfs +-file system type and specify the +-.B nfsvers=2 + mount option. + To mount using NFS version 3, + use the +@@ -972,13 +967,6 @@ reasonable defaults for NFS behavior. + server:/export /mnt nfs defaults 0 0 + .fi + .P +-Here is an example from an /etc/fstab file for an NFS version 2 mount over UDP. +-.P +-.nf +-.ta 8n +16n +6n +6n +30n +- server:/export /mnt nfs nfsvers=2,proto=udp 0 0 +-.fi +-.P + This example shows how to mount using NFS version 4 over TCP + with Kerberos 5 mutual authentication. + .P +@@ -1071,7 +1059,7 @@ and + can safely be allowed to default to the largest values supported by + both client and server, independent of the network's MTU size. + .SS "Using the mountproto mount option" +-This section applies only to NFS version 2 and version 3 mounts ++This section applies only to NFS version 3 mounts + since NFS version 4 does not use a separate protocol for mount + requests. + .P +@@ -1474,7 +1462,7 @@ the use of the + mount option. + .SS "Using file locks with NFS" + The Network Lock Manager protocol is a separate sideband protocol +-used to manage file locks in NFS version 2 and version 3. ++used to manage file locks in NFS version 3. + To support lock recovery after a client or server reboot, + a second sideband protocol -- + known as the Network Status Manager protocol -- +@@ -1894,8 +1882,6 @@ RFC 768 for the UDP specification. + .br + RFC 793 for the TCP specification. + .br +-RFC 1094 for the NFS version 2 specification. +-.br + RFC 1813 for the NFS version 3 specification. + .br + RFC 1832 for the XDR specification. +diff --git a/utils/mount/nfsmount.conf b/utils/mount/nfsmount.conf +index 6bdc225a..342063f7 100644 +--- a/utils/mount/nfsmount.conf ++++ b/utils/mount/nfsmount.conf +@@ -28,7 +28,7 @@ + # This statically named section defines global mount + # options that can be applied on all NFS mount. + # +-# Protocol Version [2,3,4] ++# Protocol Version [3,4] + # This defines the default protocol version which will + # be used to start the negotiation with the server. + # Defaultvers=4 +diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c +index fa67a66f..3c4e218a 100644 +--- a/utils/mount/stropts.c ++++ b/utils/mount/stropts.c +@@ -357,6 +357,7 @@ static int nfs_insert_sloppy_option(struct mount_options *options) + + static int nfs_set_version(struct nfsmount_info *mi) + { ++ + if (!nfs_nfs_version(mi->type, mi->options, &mi->version)) + return 0; + +@@ -1016,7 +1017,6 @@ static int nfs_try_mount(struct nfsmount_info *mi) + } + + switch (mi->version.major) { +- case 2: + case 3: + result = nfs_try_mount_v3v2(mi, FALSE); + break; +@@ -1247,6 +1247,14 @@ static int nfsmount_start(struct nfsmount_info *mi) + if (!nfs_validate_options(mi)) + return EX_FAIL; + ++ /* ++ * NFS v2 has been deprecated ++ */ ++ if (mi->version.major == 2) { ++ mount_error(mi->spec, mi->node, EOPNOTSUPP); ++ return EX_FAIL; ++ } ++ + /* + * Avoid retry and negotiation logic when remounting + */ +diff --git a/utils/mountd/mountd.man b/utils/mountd/mountd.man +index 77e6299a..a206a3e2 100644 +--- a/utils/mountd/mountd.man ++++ b/utils/mountd/mountd.man +@@ -286,10 +286,9 @@ The values recognized in the + section include + .BR TCP , + .BR UDP , +-.BR vers2 , + .BR vers3 ", and" + .B vers4 +-which each have same same meaning as given by ++which each have the same meaning as given by + .BR rpc.nfsd (8). + + .SH TCP_WRAPPERS SUPPORT +diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c +index b0741718..4016a761 100644 +--- a/utils/nfsd/nfsd.c ++++ b/utils/nfsd/nfsd.c +@@ -226,7 +226,6 @@ main(int argc, char **argv) + } + /* FALLTHRU */ + case 3: +- case 2: + NFSCTL_VERUNSET(versbits, c); + break; + default: +@@ -251,7 +250,6 @@ main(int argc, char **argv) + minorvers = minorversset = minormask; + /* FALLTHRU */ + case 3: +- case 2: + NFSCTL_VERSET(versbits, c); + break; + default: +diff --git a/utils/nfsd/nfsd.man b/utils/nfsd/nfsd.man +index 2701ba78..634b8a63 100644 +--- a/utils/nfsd/nfsd.man ++++ b/utils/nfsd/nfsd.man +@@ -57,7 +57,7 @@ This option can be used to request that + .B rpc.nfsd + does not offer certain versions of NFS. The current version of + .B rpc.nfsd +-can support major NFS versions 2,3,4 and the minor versions 4.0, 4.1 and 4.2. ++can support major NFS versions 3,4 and the minor versions 4.0, 4.1 and 4.2. + .TP + .B \-s " or " \-\-syslog + By default, +@@ -84,7 +84,7 @@ This option can be used to request that + .B rpc.nfsd + offer certain versions of NFS. The current version of + .B rpc.nfsd +-can support major NFS versions 2,3,4 and the minor versions 4.0, 4.1 and 4.2. ++can support major NFS versions 3,4 and the minor versions 4.0, 4.1 and 4.2. + .TP + .B \-L " or " \-\-lease-time seconds + Set the lease-time used for NFSv4. This corresponds to how often +@@ -156,8 +156,6 @@ Enable (with "on" or "yes" etc) or disable ("off", "no") UDP support. + .B TCP + Enable or disable TCP support. + .TP +-.B vers2 +-.TP + .B vers3 + .TP + .B vers4 diff --git a/SOURCES/nfs-utils-2.5.4-mount-null-ptr.patch b/SOURCES/nfs-utils-2.5.4-mount-null-ptr.patch new file mode 100644 index 0000000..1143018 --- /dev/null +++ b/SOURCES/nfs-utils-2.5.4-mount-null-ptr.patch @@ -0,0 +1,27 @@ +commit ea536a2e641664c8ea439e5e571e757785f587c9 +Author: Zhi Li +Date: Mon Oct 24 13:31:41 2022 -0400 + + mount.nfs: fix NULL pointer derefernce in nfs_parse_square_bracket + + In function nfs_parse_square_bracket, hostname could be NULL, + dereferencing it in free(*hostname) may cause an unexpected segfault. + + Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2136807 + Signed-off-by: Zhi Li + Signed-off-by: Steve Dickson + +diff --git a/utils/mount/parse_dev.c b/utils/mount/parse_dev.c +index 0d3bcb95..2ade5d5d 100644 +--- a/utils/mount/parse_dev.c ++++ b/utils/mount/parse_dev.c +@@ -170,7 +170,8 @@ static int nfs_parse_square_bracket(const char *dev, + if (pathname) { + *pathname = strndup(cbrace, path_len); + if (*pathname == NULL) { +- free(*hostname); ++ if (hostname) ++ free(*hostname); + return nfs_pdn_nomem_err(); + } + } diff --git a/SOURCES/nfs-utils-2.5.4-mount-sloppy.patch b/SOURCES/nfs-utils-2.5.4-mount-sloppy.patch new file mode 100644 index 0000000..ce1956b --- /dev/null +++ b/SOURCES/nfs-utils-2.5.4-mount-sloppy.patch @@ -0,0 +1,69 @@ +commit 4dd8d833c9350d42528ada0fd65aee41b712f41d +Author: Steve Dickson +Date: Tue Jul 20 17:14:04 2021 -0400 + + mount.nfs: Fix the sloppy option processing + + The new mount API broke how the sloppy option is parsed. + So the option processing needs to be moved up in + the mount.nfs command. + + The option needs to be the first option in the string + that is passed into the kernel with the -s mount(8) + and/or the -o sloppy is used. + + Commit 92b664ef fixed the process of the -s flag + and this version fixes the -o sloppy processing + as well works when libmount-mount is and is not + enabled plus cleans up the mount options passed + to the kernel. + + Reviewed-and-tested-by: Dave Wysochanski + Signed-off-by: Steve Dickson + +diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man +index f98cb47d..f1b76936 100644 +--- a/utils/mount/nfs.man ++++ b/utils/mount/nfs.man +@@ -555,6 +555,13 @@ using the FS-Cache facility. See cachefilesd(8) + and /Documentation/filesystems/caching + for detail on how to configure the FS-Cache facility. + Default value is nofsc. ++.TP 1.5i ++.B sloppy ++The ++.B sloppy ++option is an alternative to specifying ++.BR mount.nfs " -s " option. ++ + .SS "Options for NFS versions 2 and 3 only" + Use these options, along with the options in the above subsection, + for NFS versions 2 and 3 only. +diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c +index 82b054a5..fa67a66f 100644 +--- a/utils/mount/stropts.c ++++ b/utils/mount/stropts.c +@@ -339,11 +339,19 @@ static int nfs_verify_lock_option(struct mount_options *options) + + static int nfs_insert_sloppy_option(struct mount_options *options) + { +- if (!sloppy || linux_version_code() < MAKE_VERSION(2, 6, 27)) ++ if (linux_version_code() < MAKE_VERSION(2, 6, 27)) + return 1; + +- if (po_insert(options, "sloppy") == PO_FAILED) +- return 0; ++ if (po_contains(options, "sloppy")) { ++ po_remove_all(options, "sloppy"); ++ sloppy++; ++ } ++ ++ if (sloppy) { ++ if (po_insert(options, "sloppy") == PO_FAILED) ++ return 0; ++ } ++ + return 1; + } + + diff --git a/SOURCES/nfs-utils-2.5.4-nfsd-man-4vers.patch b/SOURCES/nfs-utils-2.5.4-nfsd-man-4vers.patch new file mode 100644 index 0000000..4870443 --- /dev/null +++ b/SOURCES/nfs-utils-2.5.4-nfsd-man-4vers.patch @@ -0,0 +1,26 @@ +commit d4de031fbb2d797ec9e738deda50feec97db7593 +Author: Steve Dickson +Date: Fri Oct 28 10:56:36 2022 -0400 + + nfsd.man: Explain that setting nfsv4=n turns off all v4 versions + + Update the man page to explicitly say setting + nfsv4=n turns off all v4 versions + + Signed-off-by: Steve Dickson + +diff --git a/utils/nfsd/nfsd.man b/utils/nfsd/nfsd.man +index 634b8a63..bb99fe2b 100644 +--- a/utils/nfsd/nfsd.man ++++ b/utils/nfsd/nfsd.man +@@ -159,7 +159,9 @@ Enable or disable TCP support. + .B vers3 + .TP + .B vers4 +-Enable or disable a major NFS version. 3 and 4 are normally enabled ++Enable or disable ++.B all ++NFSv4 versions. All versions are normally enabled + by default. + .TP + .B vers4.1 diff --git a/SOURCES/nfs-utils-2.5.4-nfsdcltrack-printf.patch b/SOURCES/nfs-utils-2.5.4-nfsdcltrack-printf.patch new file mode 100644 index 0000000..ec5b703 --- /dev/null +++ b/SOURCES/nfs-utils-2.5.4-nfsdcltrack-printf.patch @@ -0,0 +1,86 @@ +diff -up nfs-utils-2.5.4/utils/nfsdcltrack/nfsdcltrack.c.orig nfs-utils-2.5.4/utils/nfsdcltrack/nfsdcltrack.c +--- nfs-utils-2.5.4/utils/nfsdcltrack/nfsdcltrack.c.orig 2021-06-10 14:07:47.000000000 -0400 ++++ nfs-utils-2.5.4/utils/nfsdcltrack/nfsdcltrack.c 2021-08-18 13:44:11.839124879 -0400 +@@ -507,7 +507,7 @@ cltrack_gracedone(const char *timestr) + { + int ret; + char *tail; +- time_t gracetime; ++ uint64_t gracetime; + + + ret = sqlite_prepare_dbh(storagedir); +diff -up nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.c.orig nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.c +--- nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.c.orig 2021-06-10 14:07:47.000000000 -0400 ++++ nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.c 2021-08-18 13:48:16.264408309 -0400 +@@ -48,6 +48,7 @@ + #include + #include + #include ++#include + #include + + #include "xlog.h" +@@ -539,7 +540,7 @@ out_err: + * remove any client records that were not reclaimed since grace_start. + */ + int +-sqlite_remove_unreclaimed(time_t grace_start) ++sqlite_remove_unreclaimed(uint64_t grace_start) + { + int ret; + char *err = NULL; +diff -up nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.h.orig nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.h +--- nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.h.orig 2021-06-10 14:07:47.000000000 -0400 ++++ nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.h 2021-08-18 13:44:11.839124879 -0400 +@@ -26,7 +26,7 @@ int sqlite_insert_client(const unsigned + int sqlite_remove_client(const unsigned char *clname, const size_t namelen); + int sqlite_check_client(const unsigned char *clname, const size_t namelen, + const bool has_session); +-int sqlite_remove_unreclaimed(const time_t grace_start); ++int sqlite_remove_unreclaimed(const uint64_t grace_start); + int sqlite_query_reclaiming(const time_t grace_start); + + #endif /* _SQLITE_H */ +diff --git a/utils/nfsdcltrack/nfsdcltrack.c b/utils/nfsdcltrack/nfsdcltrack.c +index 2f8bea81..7c1c4bcc 100644 +--- a/utils/nfsdcltrack/nfsdcltrack.c ++++ b/utils/nfsdcltrack/nfsdcltrack.c +@@ -33,6 +33,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -525,7 +526,7 @@ cltrack_gracedone(const char *timestr) + if (*tail) + return -EINVAL; + +- xlog(D_GENERAL, "%s: grace done. gracetime=%ld", __func__, gracetime); ++ xlog(D_GENERAL, "%s: grace done. gracetime=%"PRIu64, __func__, gracetime); + + ret = sqlite_remove_unreclaimed(gracetime); + +diff --git a/utils/nfsdcltrack/sqlite.c b/utils/nfsdcltrack/sqlite.c +index b6573544..78c22af8 100644 +--- a/utils/nfsdcltrack/sqlite.c ++++ b/utils/nfsdcltrack/sqlite.c +@@ -46,6 +46,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -545,7 +546,7 @@ sqlite_remove_unreclaimed(uint64_t grace_start) + int ret; + char *err = NULL; + +- ret = snprintf(buf, sizeof(buf), "DELETE FROM clients WHERE time < %ld", ++ ret = snprintf(buf, sizeof(buf), "DELETE FROM clients WHERE time < %"PRIu64, + grace_start); + if (ret < 0) { + return ret; diff --git a/SOURCES/nfs-utils-2.5.4-nfsman-maxconnect.patch b/SOURCES/nfs-utils-2.5.4-nfsman-maxconnect.patch new file mode 100644 index 0000000..3aab8a0 --- /dev/null +++ b/SOURCES/nfs-utils-2.5.4-nfsman-maxconnect.patch @@ -0,0 +1,37 @@ +commit 28deb4f398363e4e75ea41ff0fe604b11f6ee91a +Author: Olga Kornievskaia +Date: Tue Sep 21 13:00:12 2021 -0400 + + nfs.man: adding new mount option max_connect + + When client discovers trunkable servers, instead of dropping newly + created trunkable connections, add this connection to the existing + RPC client. + + Signed-off-by: Olga Kornievskaia + Signed-off-by: Steve Dickson + +diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man +index f1b76936..57a693fd 100644 +--- a/utils/mount/nfs.man ++++ b/utils/mount/nfs.man +@@ -416,6 +416,19 @@ Note that the + option may also be used by some pNFS drivers to decide how many + connections to set up to the data servers. + .TP 1.5i ++.BR max_connect= n ++While ++.BR nconnect ++option sets a limit on the number of connections that can be established ++to a given server IP, ++.BR max_connect ++option allows the user to specify maximum number of connections to different ++server IPs that belong to the same NFSv4.1+ server (session trunkable ++connections) up to a limit of 16. When client discovers that it established ++a client ID to an already existing server, instead of dropping the newly ++created network transport, the client will add this new connection to the ++list of available transports for that RPC client. ++.TP 1.5i + .BR rdirplus " / " nordirplus + Selects whether to use NFS v3 or v4 READDIRPLUS requests. + If this option is not specified, the NFS client uses READDIRPLUS requests diff --git a/SOURCES/nfs-utils-2.5.4-nfsrahead-cmd.patch b/SOURCES/nfs-utils-2.5.4-nfsrahead-cmd.patch new file mode 100644 index 0000000..8c52c89 --- /dev/null +++ b/SOURCES/nfs-utils-2.5.4-nfsrahead-cmd.patch @@ -0,0 +1,406 @@ +diff --git a/.gitignore b/.gitignore +index c89d1cd2..df791a83 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -61,6 +61,8 @@ utils/statd/statd + tools/locktest/testlk + tools/getiversion/getiversion + tools/nfsconf/nfsconf ++tools/nfsrahead/nfsrahead ++tools/nfsrahead/99-nfs_bdi.rules + support/export/mount.h + support/export/mount_clnt.c + support/export/mount_xdr.c +diff --git a/configure.ac b/configure.ac +index d01ce6e4..3f48bd54 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -251,6 +251,16 @@ AC_ARG_ENABLE(nfsdcld, + enable_nfsdcld=$enableval, + enable_nfsdcld="yes") + ++AC_ARG_ENABLE(nfsrahead, ++ [AS_HELP_STRING([--disable-nfsrahead],[disable nfsrahead command @<:@default=no@:>@])], ++ enable_nfsrahead=$enableval, ++ enable_nfsrahead="yes") ++ AM_CONDITIONAL(CONFIG_NFSRAHEAD, [test "$enable_nfsrahead" = "yes" ]) ++ if test "$enable_nfsrahead" = yes; then ++ dnl Check for -lmount ++ PKG_CHECK_MODULES([LIBMOUNT], [mount]) ++ fi ++ + AC_ARG_ENABLE(nfsdcltrack, + [AC_HELP_STRING([--disable-nfsdcltrack], + [disable NFSv4 clientid tracking programs @<:@default=no@:>@])], +@@ -712,6 +722,7 @@ AC_CONFIG_FILES([ + tools/rpcgen/Makefile + tools/mountstats/Makefile + tools/nfs-iostat/Makefile ++ tools/nfsrahead/Makefile + tools/rpcctl/Makefile + tools/nfsdclnts/Makefile + tools/nfsconf/Makefile +diff --git a/nfs.conf b/nfs.conf +index bc1de8d1..6aec1dd9 100644 +--- a/nfs.conf ++++ b/nfs.conf +@@ -5,6 +5,10 @@ + [general] + # pipefs-directory=/var/lib/nfs/rpc_pipefs + # ++[nfsrahead] ++# nfs=15000 ++# nfs4=16000 ++# + [exports] + # rootdir=/export + # +diff --git a/systemd/nfs.conf.man b/systemd/nfs.conf.man +index be487a11..e74083e9 100644 +--- a/systemd/nfs.conf.man ++++ b/systemd/nfs.conf.man +@@ -294,6 +294,17 @@ Only + .B debug= + is recognized. + ++.TP ++.B nfsrahead ++Recognized values: ++.BR nfs , ++.BR nfsv4 , ++.BR default . ++ ++See ++.BR nfsrahead (5) ++for deatils. ++ + .SH FILES + .TP 10n + .I /etc/nfs.conf +diff --git a/tools/Makefile.am b/tools/Makefile.am +index c3feabbe..48fd0cdf 100644 +--- a/tools/Makefile.am ++++ b/tools/Makefile.am +@@ -12,6 +12,10 @@ if CONFIG_NFSDCLD + OPTDIRS += nfsdclddb + endif + ++if CONFIG_NFSRAHEAD ++OPTDIRS += nfsrahead ++endif ++ + SUBDIRS = locktest rpcdebug nlmtest mountstats nfs-iostat rpcctl nfsdclnts $(OPTDIRS) + + MAINTAINERCLEANFILES = Makefile.in +diff --git a/tools/nfsrahead/99-nfs.rules b/tools/nfsrahead/99-nfs.rules +new file mode 100644 +index 00000000..c74914b2 +--- /dev/null ++++ b/tools/nfsrahead/99-nfs.rules +@@ -0,0 +1 @@ ++SUBSYSTEM=="bdi", ACTION=="add", PROGRAM="/usr/libexec/nfsrahead %k", ATTR{read_ahead_kb}="%c" +diff --git a/tools/nfsrahead/99-nfs.rules.in b/tools/nfsrahead/99-nfs.rules.in +new file mode 100644 +index 00000000..648813c5 +--- /dev/null ++++ b/tools/nfsrahead/99-nfs.rules.in +@@ -0,0 +1 @@ ++SUBSYSTEM=="bdi", ACTION=="add", PROGRAM="_libexecdir_/nfsrahead %k", ATTR{read_ahead_kb}="%c" +diff --git a/tools/nfsrahead/Makefile.am b/tools/nfsrahead/Makefile.am +new file mode 100644 +index 00000000..7e08233a +--- /dev/null ++++ b/tools/nfsrahead/Makefile.am +@@ -0,0 +1,16 @@ ++libexec_PROGRAMS = nfsrahead ++nfsrahead_SOURCES = main.c ++nfsrahead_LDFLAGS= $(LIBMOUNT_LIBS) ++nfsrahead_LDADD = ../../support/nfs/libnfsconf.la ++ ++man5_MANS = nfsrahead.man ++EXTRA_DIST = $(man5_MANS) ++ ++udev_rulesdir = /usr/lib/udev/rules.d/ ++udev_rules_DATA = 99-nfs.rules ++ ++99-nfs.rules: 99-nfs.rules.in $(builddefs) ++ $(SED) "s|_libexecdir_|@libexecdir@|g" 99-nfs.rules.in > $@ ++ ++clean-local: ++ $(RM) 99-nfs.rules +diff --git a/tools/nfsrahead/main.c b/tools/nfsrahead/main.c +new file mode 100644 +index 00000000..c83c6f71 +--- /dev/null ++++ b/tools/nfsrahead/main.c +@@ -0,0 +1,192 @@ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include "xlog.h" ++#include "conffile.h" ++ ++#ifndef MOUNTINFO_PATH ++#define MOUNTINFO_PATH "/proc/self/mountinfo" ++#endif ++ ++#define CONF_NAME "nfsrahead" ++#define NFS_DEFAULT_READAHEAD 128 ++ ++/* Device information from the system */ ++struct device_info { ++ char *device_number; ++ dev_t dev; ++ char *mountpoint; ++ char *fstype; ++}; ++ ++/* Convert a string in the format n:m to a device number */ ++static int fill_device_number(struct device_info *info) ++{ ++ char *s = strdup(info->device_number), *p; ++ char *maj_s, *min_s; ++ unsigned int maj, min; ++ int err = -EINVAL; ++ ++ maj_s = p = s; ++ for ( ; *p != ':' && *p != '\0'; p++) ++ ; ++ ++ if (*p == '\0') ++ goto out_free; ++ ++ err = 0; ++ *p = '\0'; ++ min_s = p + 1; ++ ++ maj = strtol(maj_s, NULL, 10); ++ min = strtol(min_s, NULL, 10); ++ ++ info->dev = makedev(maj, min); ++out_free: ++ free(s); ++ return err; ++} ++ ++#define sfree(ptr) if (ptr) free(ptr) ++ ++/* device_info maintenance */ ++static void init_device_info(struct device_info *di, const char *device_number) ++{ ++ di->device_number = strdup(device_number); ++ di->dev = 0; ++ di->mountpoint = NULL; ++ di->fstype = NULL; ++} ++ ++ ++static void free_device_info(struct device_info *di) ++{ ++ sfree(di->mountpoint); ++ sfree(di->fstype); ++ sfree(di->device_number); ++} ++ ++static int get_mountinfo(const char *device_number, struct device_info *device_info, const char *mountinfo_path) ++{ ++ int ret = 0; ++ struct libmnt_table *mnttbl; ++ struct libmnt_fs *fs; ++ char *target; ++ ++ init_device_info(device_info, device_number); ++ if ((ret = fill_device_number(device_info)) < 0) ++ goto out_free_device_info; ++ ++ mnttbl = mnt_new_table(); ++ ++ if ((ret = mnt_table_parse_file(mnttbl, mountinfo_path)) < 0) { ++ xlog(D_GENERAL, "Failed to parse %s\n", mountinfo_path); ++ goto out_free_tbl; ++ } ++ ++ if ((fs = mnt_table_find_devno(mnttbl, device_info->dev, MNT_ITER_FORWARD)) == NULL) { ++ ret = ENOENT; ++ goto out_free_tbl; ++ } ++ ++ if ((target = (char *)mnt_fs_get_target(fs)) == NULL) { ++ ret = ENOENT; ++ goto out_free_fs; ++ } ++ ++ device_info->mountpoint = strdup(target); ++ target = (char *)mnt_fs_get_fstype(fs); ++ if (target) ++ device_info->fstype = strdup(target); ++ ++out_free_fs: ++ mnt_free_fs(fs); ++out_free_tbl: ++ mnt_free_table(mnttbl); ++out_free_device_info: ++ free(device_info->device_number); ++ device_info->device_number = NULL; ++ return ret; ++} ++ ++static int get_device_info(const char *device_number, struct device_info *device_info) ++{ ++ int ret = ENOENT; ++ for (int retry_count = 0; retry_count < 10 && ret != 0; retry_count++) ++ ret = get_mountinfo(device_number, device_info, MOUNTINFO_PATH); ++ ++ return ret; ++} ++ ++static int conf_get_readahead(const char *kind) { ++ int readahead = 0; ++ ++ if((readahead = conf_get_num(CONF_NAME, kind, -1)) == -1) ++ readahead = conf_get_num(CONF_NAME, "default", NFS_DEFAULT_READAHEAD); ++ ++ return readahead; ++} ++ ++int main(int argc, char **argv) ++{ ++ int ret = 0, retry, opt; ++ struct device_info device; ++ unsigned int readahead = 128, log_level, log_stderr = 0; ++ ++ ++ log_level = D_ALL & ~D_GENERAL; ++ while((opt = getopt(argc, argv, "dF")) != -1) { ++ switch (opt) { ++ case 'd': ++ log_level = D_ALL; ++ break; ++ case 'F': ++ log_stderr = 1; ++ break; ++ } ++ } ++ ++ conf_init_file(NFS_CONFFILE); ++ ++ xlog_stderr(log_stderr); ++ xlog_syslog(~log_stderr); ++ xlog_config(log_level, 1); ++ xlog_open(CONF_NAME); ++ ++ // xlog_err causes the system to exit ++ if ((argc - optind) != 1) ++ xlog_err("expected the device number of a BDI; is udev ok?"); ++ ++ for (retry = 0; retry <= 10; retry++ ) ++ if ((ret = get_device_info(argv[optind], &device)) == 0) ++ break; ++ ++ if (ret != 0) { ++ xlog(D_GENERAL, "unable to find device %s\n", argv[optind]); ++ goto out; ++ } ++ ++ if (strncmp("nfs", device.fstype, 3) != 0) { ++ xlog(D_GENERAL, ++ "not setting readahead for non supported fstype %s on device %s\n", ++ device.fstype, argv[optind]); ++ ret = -EINVAL; ++ goto out; ++ } ++ ++ readahead = conf_get_readahead(device.fstype); ++ ++ xlog(D_FAC7, "setting %s readahead to %d\n", device.mountpoint, readahead); ++ ++ printf("%d\n", readahead); ++ ++out: ++ free_device_info(&device); ++ return ret; ++} +diff --git a/tools/nfsrahead/nfsrahead.man b/tools/nfsrahead/nfsrahead.man +new file mode 100644 +index 00000000..5488f633 +--- /dev/null ++++ b/tools/nfsrahead/nfsrahead.man +@@ -0,0 +1,72 @@ ++.\" Manpage for nfsrahead. ++.nh ++.ad l ++.TH man 5 "08 Mar 2022" "1.0" "nfsrahead man page" ++.SH NAME ++ ++nfsrahead \- Configure the readahead for NFS mounts ++ ++.SH SYNOPSIS ++ ++nfsrahead [-F] [-d] ++ ++.SH DESCRIPTION ++ ++\fInfsrahead\fR is a tool intended to be used with udev to set the \fIread_ahead_kb\fR parameter of NFS mounts, according to the configuration file (see \fICONFIGURATION\fR). \fIdevice\fR is the device number for the NFS backing device as provided by the kernel. ++ ++.SH OPTIONS ++.TP ++.B -F ++Send messages to ++.I stderr ++instead of ++.I syslog ++ ++.TP ++.B -d ++Increase the debugging level. ++ ++.SH CONFIGURATION ++.I nfsrahead ++is configured in ++.IR /etc/nfs.conf , ++in the section titled ++.IR nfsrahead . ++It accepts the following configurations. ++ ++.TP ++.B nfs= ++The readahead value applied to NFSv3 mounts. ++ ++.TP ++.B nfs4= ++The readahead value applied to NFSv4 mounts. ++ ++.TP ++.B default= ++The default configuration when none of the configurations above is set. ++ ++.SH EXAMPLE CONFIGURATION ++[nfsrahead] ++.br ++nfs=15000 # readahead of 15000 for NFSv3 mounts ++.br ++nfs4=16000 # readahead of 16000 for NFSv4 mounts ++.br ++default=128 # default is 128 ++ ++.SH SEE ALSO ++ ++.BR mount.nfs (8), ++.BR nfs (5), ++.BR nfs.conf (5), ++.BR udev (7), ++.BR bcc-readahead (8) ++ ++.SH BUGS ++ ++No known bugs. ++ ++.SH AUTHOR ++ ++Thiago Rafael Becker diff --git a/SOURCES/nfs-utils-2.5.4-rpcctl-xprt.patch b/SOURCES/nfs-utils-2.5.4-rpcctl-xprt.patch new file mode 100644 index 0000000..255b384 --- /dev/null +++ b/SOURCES/nfs-utils-2.5.4-rpcctl-xprt.patch @@ -0,0 +1,36 @@ +diff --git a/tools/rpcctl/rpcctl.py b/tools/rpcctl/rpcctl.py +index b8df556b..d2110ad6 100755 +--- a/tools/rpcctl/rpcctl.py ++++ b/tools/rpcctl/rpcctl.py +@@ -90,10 +90,18 @@ class Xprt: + self.dstaddr = write_addr_file(self.path / "dstaddr", newaddr) + + def set_state(self, state): ++ if self.info.get("main_xprt"): ++ raise Exception(f"Main xprts cannot be set {state}") + with open(self.path / "xprt_state", 'w') as f: + f.write(state) + self.read_state() + ++ def remove(self): ++ if self.info.get("main_xprt"): ++ raise Exception("Main xprts cannot be removed") ++ self.set_state("offline") ++ self.set_state("remove") ++ + def add_command(subparser): + parser = subparser.add_parser("xprt", help="Commands for individual xprts") + parser.set_defaults(func=Xprt.show, xprt=None) +@@ -139,10 +147,9 @@ class Xprt: + if args.property == "dstaddr": + xprt.set_dstaddr(socket.gethostbyname(args.newaddr[0])) + elif args.property == "remove": +- xprt.set_state("offline") +- xprt.set_state("remove") ++ xprt.remove() + else: +- args.set_state(args.property) ++ xprt.set_state(args.property) + print(xprt) + + diff --git a/SOURCES/nfs-utils-2.5.4-rpcctl.patch b/SOURCES/nfs-utils-2.5.4-rpcctl.patch new file mode 100644 index 0000000..ca32f63 --- /dev/null +++ b/SOURCES/nfs-utils-2.5.4-rpcctl.patch @@ -0,0 +1,377 @@ +diff --git a/configure.ac b/configure.ac +index 93520a80..d01ce6e4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -712,6 +712,7 @@ AC_CONFIG_FILES([ + tools/rpcgen/Makefile + tools/mountstats/Makefile + tools/nfs-iostat/Makefile ++ tools/rpcctl/Makefile + tools/nfsdclnts/Makefile + tools/nfsconf/Makefile + tools/nfsdclddb/Makefile +diff --git a/tools/Makefile.am b/tools/Makefile.am +index 9b4b0803..c3feabbe 100644 +--- a/tools/Makefile.am ++++ b/tools/Makefile.am +@@ -12,6 +12,6 @@ if CONFIG_NFSDCLD + OPTDIRS += nfsdclddb + endif + +-SUBDIRS = locktest rpcdebug nlmtest mountstats nfs-iostat nfsdclnts $(OPTDIRS) ++SUBDIRS = locktest rpcdebug nlmtest mountstats nfs-iostat rpcctl nfsdclnts $(OPTDIRS) + + MAINTAINERCLEANFILES = Makefile.in +diff --git a/tools/rpcctl/Makefile.am b/tools/rpcctl/Makefile.am +new file mode 100644 +index 00000000..33fb431f +--- /dev/null ++++ b/tools/rpcctl/Makefile.am +@@ -0,0 +1,13 @@ ++## Process this file with automake to produce Makefile.in ++PYTHON_FILES = rpcctl.py ++ ++man8_MANS = rpcctl.man ++ ++EXTRA_DIST = $(man8_MANS) $(PYTHON_FILES) ++ ++all-local: $(PYTHON_FILES) ++ ++install-data-hook: ++ $(INSTALL) -m 755 rpcctl.py $(DESTDIR)$(sbindir)/rpcctl ++ ++MAINTAINERCLEANFILES=Makefile.in +diff --git a/tools/rpcctl/rpcctl.man b/tools/rpcctl/rpcctl.man +new file mode 100644 +index 00000000..b87ba0df +--- /dev/null ++++ b/tools/rpcctl/rpcctl.man +@@ -0,0 +1,67 @@ ++.\" ++.\" rpcctl(8) ++.\" ++.TH rpcctl 8 "15 Feb 2022" ++.SH NAME ++rpcctl \- Displays SunRPC connection information ++.SH SYNOPSIS ++.nf ++.BR rpcctl " [ \fB\-h \fR| \fB\-\-help \fR] { \fBclient \fR| \fBswitch \fR| \fBxprt \fR}" ++.P ++.BR "rpcctl client" " \fR[ \fB\-h \fR| \fB\-\-help \fR] { \fBshow \fR}" ++.BR "rpcctl client show " "\fR[ \fB\-h \f| \fB\-\-help \fR] [ \fIXPRT \fR]" ++.P ++.BR "rpcctl switch" " \fR[ \fB\-h \fR| \fB\-\-help \fR] { \fBset \fR| \fBshow \fR}" ++.BR "rpcctl switch set" " \fR[ \fB\-h \fR| \fB\-\-help \fR] \fISWITCH \fBdstaddr \fINEWADDR" ++.BR "rpcctl switch show" " \fR[ \fB\-h \fR| \fB\-\-help \fR] [ \fISWITCH \fR]" ++.P ++.BR "rpcctl xprt" " \fR[ \fB\-h \fR| \fB\-\-help \fR] { \fBremove \fR| \fBset \fR| \fBshow \fR}" ++.BR "rpcctl xprt remove" " \fR[ \fB\-h \fR| \fB\-\-help \fR] \fIXPRT" ++.BR "rpcctl xprt set" " \fR[ \fB\-h \fR| \fB\-\-help \fR] \fIXPRT \fR{ \fBdstaddr \fINEWADDR \fR| \fBoffline \fR| \fBonline \fR}" ++.BR "rpcctl xprt show" " \fR[ \fB\-h \fR| \fB\-\-help \fR] [ \fIXPRT \fR]" ++.fi ++.SH DESCRIPTION ++.RB "The " rpcctl " command displays information collected in the SunRPC sysfs files about the system's SunRPC objects. ++.P ++.SS rpcctl client \fR- \fBCommands operating on RPC clients ++.IP "\fBshow \fR[ \fICLIENT \fR] \fB(default)" ++Show detailed information about the RPC clients on this system. ++If \fICLIENT \fRwas provided, then only show information about a single RPC client. ++.P ++.SS rpcctl switch \fR- \fBCommands operating on groups of transports ++.IP "\fBset \fISWITCH \fBdstaddr \fINEWADDR" ++Change the destination address of all transports in the \fISWITCH \fRto \fINEWADDR\fR. ++\fINEWADDR \fRcan be an IP address, DNS name, or anything else resolvable by \fBgethostbyname\fR(3). ++.IP "\fBshow \fR[ \fISWITCH \fR] \fB(default)" ++Show detailed information about groups of transports on this system. ++If \fISWITCH \fRwas provided, then only show information about a single transport group. ++.P ++.SS rpcctl xprt \fR- \fBCommands operating on individual transports ++.IP "\fBremove \fIXPRT" ++Removes the specified \fIXPRT \fRfrom the system. ++Note that "main" transports cannot be removed. ++.P ++.IP "\fBset \fIXPRT \fBdstaddr \fINEWADDR" ++Change the destination address of the specified \fIXPRT \fR to \fINEWADDR\fR. ++\fINEWADDR \fRcan be an IP address, DNS name, or anything else resolvable by \fBgethostbyname\fR(3). ++.P ++.IP "\fBset \fIXPRT \fBoffline" ++Sets the specified \fIXPRT\fR's state to offline. ++.P ++.IP "\fBset \fIXPRT \fBonline" ++Sets the specified \fIXPRT\fR's state to online. ++.IP "\fBshow \fR[ \fIXPRT \fR] \fB(default)" ++Show detailed information about this system's transports. ++If \fIXPRT \fRwas provided, then only show information about a single transport. ++.SH EXAMPLES ++.IP "\fBrpcctl switch show switch-2" ++Show details about the RPC switch named "switch-2". ++.IP "\fBrpcctl xprt remove xprt-4" ++Remove the xprt named "xprt-4" from the system. ++.IP "\fBrpcctl xprt set xprt-3 dstaddr https://linux-nfs.org ++Change the dstaddr of the xprt named "xprt-3" to point to linux-nfs.org ++.SH DIRECTORY ++.TP ++.B /sys/kernel/sunrpc/ ++.SH AUTHOR ++Anna Schumaker +diff --git a/tools/rpcctl/rpcctl.py b/tools/rpcctl/rpcctl.py +new file mode 100755 +index 00000000..b8df556b +--- /dev/null ++++ b/tools/rpcctl/rpcctl.py +@@ -0,0 +1,255 @@ ++#!/usr/bin/python3 ++import argparse ++import collections ++import errno ++import os ++import pathlib ++import socket ++import sys ++ ++with open("/proc/mounts", 'r') as f: ++ mount = [ line.split()[1] for line in f if "sysfs" in line ] ++ if len(mount) == 0: ++ print("ERROR: sysfs is not mounted") ++ sys.exit(1) ++ ++sunrpc = pathlib.Path(mount[0]) / "kernel" / "sunrpc" ++if not sunrpc.is_dir(): ++ print("ERROR: sysfs does not have sunrpc directory") ++ sys.exit(1) ++ ++def read_addr_file(path): ++ try: ++ with open(path, 'r') as f: ++ return f.readline().strip() ++ except: ++ return "(enoent)" ++ ++def write_addr_file(path, newaddr): ++ with open(path, 'w') as f: ++ f.write(newaddr) ++ return read_addr_file(path) ++ ++def read_info_file(path): ++ res = collections.defaultdict(int) ++ try: ++ with open(path) as info: ++ lines = [ l.split("=", 1) for l in info if "=" in l ] ++ res.update({ key:int(val.strip()) for (key, val) in lines }) ++ finally: ++ return res ++ ++ ++class Xprt: ++ def __init__(self, path): ++ self.path = path ++ self.name = path.stem.rsplit("-", 1)[0] ++ self.type = path.stem.split("-")[2] ++ self.info = read_info_file(path / "xprt_info") ++ self.dstaddr = read_addr_file(path / "dstaddr") ++ self.srcaddr = read_addr_file(path / "srcaddr") ++ self.read_state() ++ ++ def __lt__(self, rhs): ++ return self.name < rhs.name ++ ++ def _xprt(self): ++ main = ", main" if self.info.get("main_xprt") else "" ++ return f"{self.name}: {self.type}, {self.dstaddr}, " \ ++ f"port {self.info['dst_port']}, state <{self.state}>{main}" ++ ++ def _src_reqs(self): ++ return f" Source: {self.srcaddr}, port {self.info['src_port']}, " \ ++ f"Requests: {self.info['num_reqs']}" ++ ++ def _cong_slots(self): ++ return f" Congestion: cur {self.info['cur_cong']}, win {self.info['cong_win']}, " \ ++ f"Slots: min {self.info['min_num_slots']}, max {self.info['max_num_slots']}" ++ ++ def _queues(self): ++ return f" Queues: binding {self.info['binding_q_len']}, " \ ++ f"sending {self.info['sending_q_len']}, pending {self.info['pending_q_len']}, " \ ++ f"backlog {self.info['backlog_q_len']}, tasks {self.info['tasks_queuelen']}" ++ ++ def __str__(self): ++ if not self.path.exists(): ++ return f"{self.name}: has been removed" ++ return "\n".join([self._xprt(), self._src_reqs(), ++ self._cong_slots(), self._queues() ]) ++ ++ def read_state(self): ++ if self.path.exists(): ++ with open(self.path / "xprt_state") as f: ++ self.state = ','.join(f.readline().split()[1:]) ++ ++ def small_str(self): ++ main = " [main]" if self.info.get("main_xprt") else "" ++ return f"{self.name}: {self.type}, {self.dstaddr}{main}" ++ ++ def set_dstaddr(self, newaddr): ++ self.dstaddr = write_addr_file(self.path / "dstaddr", newaddr) ++ ++ def set_state(self, state): ++ with open(self.path / "xprt_state", 'w') as f: ++ f.write(state) ++ self.read_state() ++ ++ def add_command(subparser): ++ parser = subparser.add_parser("xprt", help="Commands for individual xprts") ++ parser.set_defaults(func=Xprt.show, xprt=None) ++ subparser = parser.add_subparsers() ++ ++ remove = subparser.add_parser("remove", help="Remove an xprt") ++ remove.add_argument("xprt", metavar="XPRT", nargs=1, ++ help="Name of the xprt to remove") ++ remove.set_defaults(func=Xprt.set_property, property="remove") ++ ++ show = subparser.add_parser("show", help="Show xprts") ++ show.add_argument("xprt", metavar="XPRT", nargs='?', ++ help="Name of a specific xprt to show") ++ show.set_defaults(func=Xprt.show) ++ ++ set = subparser.add_parser("set", help="Change an xprt property") ++ set.add_argument("xprt", metavar="XPRT", nargs=1, ++ help="Name of a specific xprt to modify") ++ subparser = set.add_subparsers(required=True) ++ online = subparser.add_parser("online", help="Set an xprt online") ++ online.set_defaults(func=Xprt.set_property, property="online") ++ offline = subparser.add_parser("offline", help="Set an xprt offline") ++ offline.set_defaults(func=Xprt.set_property, property="offline") ++ dstaddr = subparser.add_parser("dstaddr", help="Change an xprt's dstaddr") ++ dstaddr.add_argument("newaddr", metavar="NEWADDR", nargs=1, ++ help="The new address for the xprt") ++ dstaddr.set_defaults(func=Xprt.set_property, property="dstaddr") ++ ++ def get_by_name(name): ++ glob = f"**/{name}-*" if name else "**/xprt-*" ++ res = [ Xprt(x) for x in (sunrpc / "xprt-switches").glob(glob) ] ++ if name and len(res) == 0: ++ raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), ++ f"{sunrpc / 'xprt-switches' / glob}") ++ return sorted(res) ++ ++ def show(args): ++ for xprt in Xprt.get_by_name(args.xprt): ++ print(xprt) ++ ++ def set_property(args): ++ for xprt in Xprt.get_by_name(args.xprt[0]): ++ if args.property == "dstaddr": ++ xprt.set_dstaddr(socket.gethostbyname(args.newaddr[0])) ++ elif args.property == "remove": ++ xprt.set_state("offline") ++ xprt.set_state("remove") ++ else: ++ args.set_state(args.property) ++ print(xprt) ++ ++ ++class XprtSwitch: ++ def __init__(self, path, sep=":"): ++ self.path = path ++ self.name = path.stem ++ self.info = read_info_file(path / "xprt_switch_info") ++ self.xprts = sorted([ Xprt(p) for p in self.path.iterdir() if p.is_dir() ]) ++ self.sep = sep ++ ++ def __lt__(self, rhs): ++ return self.name < rhs.name ++ ++ def __str__(self): ++ switch = f"{self.name}{self.sep} " \ ++ f"xprts {self.info['num_xprts']}, " \ ++ f"active {self.info['num_active']}, " \ ++ f"queue {self.info['queue_len']}" ++ xprts = [ f" {x.small_str()}" for x in self.xprts ] ++ return "\n".join([ switch ] + xprts) ++ ++ def add_command(subparser): ++ parser = subparser.add_parser("switch", help="Commands for xprt switches") ++ parser.set_defaults(func=XprtSwitch.show, switch=None) ++ subparser = parser.add_subparsers() ++ ++ show = subparser.add_parser("show", help="Show xprt switches") ++ show.add_argument("switch", metavar="SWITCH", nargs='?', ++ help="Name of a specific switch to show") ++ show.set_defaults(func=XprtSwitch.show) ++ ++ set = subparser.add_parser("set", help="Change an xprt switch property") ++ set.add_argument("switch", metavar="SWITCH", nargs=1, ++ help="Name of a specific xprt switch to modify") ++ subparser = set.add_subparsers(required=True) ++ dstaddr = subparser.add_parser("dstaddr", help="Change an xprt switch's dstaddr") ++ dstaddr.add_argument("newaddr", metavar="NEWADDR", nargs=1, ++ help="The new address for the xprt switch") ++ dstaddr.set_defaults(func=XprtSwitch.set_property, property="dstaddr") ++ ++ def get_by_name(name): ++ xprt_switches = sunrpc / "xprt-switches" ++ if name: ++ return [ XprtSwitch(xprt_switches / name) ] ++ return [ XprtSwitch(f) for f in sorted(xprt_switches.iterdir()) ] ++ ++ def show(args): ++ for switch in XprtSwitch.get_by_name(args.switch): ++ print(switch) ++ ++ def set_property(args): ++ for switch in XprtSwitch.get_by_name(args.switch[0]): ++ resolved = socket.gethostbyname(args.newaddr[0]) ++ for xprt in switch.xprts: ++ xprt.set_dstaddr(resolved) ++ print(switch) ++ ++ ++class RpcClient: ++ def __init__(self, path): ++ self.path = path ++ self.name = path.stem ++ self.switch = XprtSwitch(path / (path / "switch").readlink(), sep=",") ++ ++ def __lt__(self, rhs): ++ return self.name < rhs.name ++ ++ def __str__(self): ++ return f"{self.name}: {self.switch}" ++ ++ def add_command(subparser): ++ parser = subparser.add_parser("client", help="Commands for rpc clients") ++ parser.set_defaults(func=RpcClient.show, client=None) ++ subparser = parser.add_subparsers() ++ ++ show = subparser.add_parser("show", help="Show rpc clients") ++ show.add_argument("client", metavar="CLIENT", nargs='?', ++ help="Name of a specific rpc client to show") ++ parser.set_defaults(func=RpcClient.show) ++ ++ def get_by_name(name): ++ rpc_clients = sunrpc / "rpc-clients" ++ if name: ++ return [ RpcClient(rpc_clients / name) ] ++ return [ RpcClient(f) for f in sorted(rpc_clients.iterdir()) ] ++ ++ def show(args): ++ for client in RpcClient.get_by_name(args.client): ++ print(client) ++ ++ ++parser = argparse.ArgumentParser() ++ ++def show_small_help(args): ++ parser.print_usage() ++ print("sunrpc dir:", sunrpc) ++parser.set_defaults(func=show_small_help) ++ ++subparser = parser.add_subparsers(title="commands") ++RpcClient.add_command(subparser) ++XprtSwitch.add_command(subparser) ++Xprt.add_command(subparser) ++ ++args = parser.parse_args() ++try: ++ args.func(args) ++except Exception as e: ++ print(str(e)) ++ sys.exit(1) diff --git a/SOURCES/nfs-utils-2.5.4-rpcidmapd-return.patch b/SOURCES/nfs-utils-2.5.4-rpcidmapd-return.patch new file mode 100644 index 0000000..cd5ee1d --- /dev/null +++ b/SOURCES/nfs-utils-2.5.4-rpcidmapd-return.patch @@ -0,0 +1,40 @@ +commit 9abd3b4b57155dfdfd6895e6086ef550ee56fc49 +Author: Wenchao Hao +Date: Tue Feb 22 16:06:51 2022 -0500 + + idmapd: Fix error status when nfs-idmapd exits + + nfs-idmapd.service would report following error when stopped: + + Starting NFSv4 ID-name mapping service... + rpc.idmapd[1198]: Setting log level to 0 + Started NFSv4 ID-name mapping service. + rpc.idmapd[1198]: exiting on signal 15 + Stopping NFSv4 ID-name mapping service... + nfs-idmapd.service: Main process exited, code=exited, status=1/FAILURE + nfs-idmapd.service: Failed with result 'exit-code'. + Stopped NFSv4 ID-name mapping service. + + commit 93e8f092(idmapd: Add graceful exit and resource cleanup) + redirected SIGTERM, so when executing "systemctl stop nfs-idmapd", the + main() of idmapd would running to tail to return, while it returned 1 + which considered as error by systemd. + + So here just return 0 in main(). + + Signed-off-by: Wenchao Hao + Signed-off-by: Steve Dickson + +diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c +index e2c160e8..e79c124d 100644 +--- a/utils/idmapd/idmapd.c ++++ b/utils/idmapd/idmapd.c +@@ -474,7 +474,7 @@ main(int argc, char **argv) + event_free(svrdirev); + event_base_free(evbase); + +- return 1; ++ return 0; + } + + static void diff --git a/SOURCES/nfs-utils-2.5.4-rpcpipefs-warn.patch b/SOURCES/nfs-utils-2.5.4-rpcpipefs-warn.patch new file mode 100644 index 0000000..6e7282e --- /dev/null +++ b/SOURCES/nfs-utils-2.5.4-rpcpipefs-warn.patch @@ -0,0 +1,31 @@ +commit 7f8463fe702174bd613df9d308cc899af25ae02e +Author: Steve Dickson +Date: Wed Feb 23 15:19:51 2022 -0500 + + systemd: Fix format-overflow warning + + rpc-pipefs-generator.c:35:23: error: '%s' directive output between 0 and 2147483653 bytes may exceed minimum required size of 4095 [-Werror=format-overflow=] + 35 | sprintf(path, "%s/%s", dirname, pipefs_unit); + | ^ + + Signed-off-by: Steve Dickson + +diff --git a/systemd/rpc-pipefs-generator.c b/systemd/rpc-pipefs-generator.c +index c24db567..7b2bb4f7 100644 +--- a/systemd/rpc-pipefs-generator.c ++++ b/systemd/rpc-pipefs-generator.c +@@ -28,11 +28,12 @@ static int generate_mount_unit(const char *pipefs_path, const char *pipefs_unit, + { + char *path; + FILE *f; ++ size_t size = (strlen(dirname) + 1 + strlen(pipefs_unit) + 1); + +- path = malloc(strlen(dirname) + 1 + strlen(pipefs_unit)); ++ path = malloc(size); + if (!path) + return 1; +- sprintf(path, "%s/%s", dirname, pipefs_unit); ++ snprintf(path, size, "%s/%s", dirname, pipefs_unit); + f = fopen(path, "w"); + if (!f) + { diff --git a/SOURCES/nfs-utils-2.5.4-systemd-rpcstatd.patch b/SOURCES/nfs-utils-2.5.4-systemd-rpcstatd.patch new file mode 100644 index 0000000..5b2b3aa --- /dev/null +++ b/SOURCES/nfs-utils-2.5.4-systemd-rpcstatd.patch @@ -0,0 +1,31 @@ +commit 8a835cebb149ba2a54b6518722c79019cf8e3da4 +Author: Benjamin Coddington +Date: Mon Aug 1 13:19:04 2022 -0400 + + rpc-statd.service: Stop rpcbind and rpc.stat in an exit race + + When `systemctl stop rpcbind.socket` is run, the dependency means + that systemd first sends SIGTERM to rpcbind, then sigterm to rpc.statd. + + On SIGTERM, rpcbind tears down /var/run/rpcbind.sock. However, + rpc-statd on SIGTERM attempts to unregister from rpcbind + + systemd needs to wait for rpc.statd to exit before sending + SIGTERM to rpcbind + + Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2100395 + Signed-off-by: Steve Dickson + +diff --git a/systemd/rpc-statd.service b/systemd/rpc-statd.service +index 095629f2..392750da 100644 +--- a/systemd/rpc-statd.service ++++ b/systemd/rpc-statd.service +@@ -5,7 +5,7 @@ Conflicts=umount.target + Requires=nss-lookup.target rpcbind.socket + Wants=network-online.target + Wants=rpc-statd-notify.service +-After=network-online.target nss-lookup.target rpcbind.socket ++After=network-online.target nss-lookup.target rpcbind.service + + PartOf=nfs-utils.service + IgnoreOnIsolate=yes diff --git a/SPECS/nfs-utils.spec b/SPECS/nfs-utils.spec new file mode 100644 index 0000000..663f31b --- /dev/null +++ b/SPECS/nfs-utils.spec @@ -0,0 +1,2335 @@ +Summary: NFS utilities and supporting clients and daemons for the kernel NFS server +Name: nfs-utils +URL: http://linux-nfs.org/ +Version: 2.5.4 +Release: 18%{?dist} +Epoch: 1 + +# group all 32bit related archs +%global all_32bit_archs i386 i486 i586 i686 athlon ppc sparcv9 + +Source0: https://www.kernel.org/pub/linux/utils/nfs-utils/%{version}/%{name}-%{version}.tar.xz +Source1: id_resolver.conf +Source2: lockd.conf +Source3: 24-nfs-server.conf +Source4: 10-nfsv4.conf + +# +# RHEL9.0 +# +Patch001: nfs-utils-2.5.4-mount-sloppy.patch +Patch002: nfs-utils-2.5.4-nfsdcltrack-printf.patch +Patch003: nfs-utils-2.5.4-general-memory-fixes.patch +Patch004: nfs-utils-2.5.4-mount-nov2.patch +Patch005: nfs-utils-2.5.4-gssd-debug-msg.patch +Patch006: nfs-utils-2.5.4-rpcctl.patch + +# +# RHEL9.1 +# +Patch007: nfs-utils-2.5.4-nfsman-maxconnect.patch +Patch008: nfs-utils-2.5.4-rpcpipefs-warn.patch +Patch009: nfs-utils-2.5.4-rpcidmapd-return.patch +Patch010: nfs-utils-2.5.4-mount-ebusy.patch +Patch011: nfs-utils-2.5.4-rpcctl-xprt.patch +Patch012: nfs-utils-2.5.4-systemd-rpcstatd.patch + +# +# RHEL9.2 +# +Patch013: nfs-utils-2.5.4-nfsd-man-4vers.patch +Patch014: nfs-utils-2.5.4-mount-null-ptr.patch +Patch015: nfs-utils-2.5.4-nfsrahead-cmd.patch +Patch016: nfs-utils-2.5.4-covscan-return-value.patch + +Patch100: nfs-utils-1.2.1-statdpath-man.patch +Patch101: nfs-utils-1.2.1-exp-subtree-warn-off.patch +Patch102: nfs-utils-1.2.5-idmap-errmsg.patch +Patch103: nfs-utils-2.3.1-systemd-gssproxy-restart.patch +Patch104: nfs-utils-2.3.3-man-tcpwrappers.patch +Patch105: nfs-utils-2.3.3-nfsconf-usegssproxy.patch +Patch106: nfs-utils-2.4.2-systemd-svcgssd.patch + +Provides: exportfs = %{epoch}:%{version}-%{release} +Provides: nfsstat = %{epoch}:%{version}-%{release} +Provides: showmount = %{epoch}:%{version}-%{release} +Provides: rpcdebug = %{epoch}:%{version}-%{release} +Provides: rpcctl = %{epoch}:%{version}-%{release} +Provides: rpc.idmapd = %{epoch}:%{version}-%{release} +Provides: rpc.mountd = %{epoch}:%{version}-%{release} +Provides: rpc.nfsd = %{epoch}:%{version}-%{release} +Provides: rpc.statd = %{epoch}:%{version}-%{release} +Provides: rpc.gssd = %{epoch}:%{version}-%{release} +Provides: mount.nfs = %{epoch}:%{version}-%{release} +Provides: mount.nfs4 = %{epoch}:%{version}-%{release} +Provides: umount.nfs = %{epoch}:%{version}-%{release} +Provides: umount.nfs4 = %{epoch}:%{version}-%{release} +Provides: sm-notify = %{epoch}:%{version}-%{release} +Provides: start-statd = %{epoch}:%{version}-%{release} + +License: MIT and GPLv2 and GPLv2+ and BSD +BuildRequires: make +BuildRequires: libevent-devel libcap-devel libuuid-devel +BuildRequires: libtirpc-devel libblkid-devel +BuildRequires: krb5-libs >= 1.4 autoconf >= 2.57 openldap-devel >= 2.2 +BuildRequires: automake, libtool, gcc, device-mapper-devel +BuildRequires: krb5-devel, libmount-devel, libxml2-devel +BuildRequires: sqlite-devel +BuildRequires: python3-devel +BuildRequires: systemd +BuildRequires: rpcgen +Requires(pre): shadow-utils >= 4.0.3-25 +Requires(pre): util-linux +Requires(pre): coreutils +Requires(preun): coreutils +Requires: libnfsidmap libevent +Requires: libtirpc >= 0.2.3-1 libblkid libcap libmount +Requires: gssproxy => 0.7.0-3 +Requires: rpcbind, sed, gawk, grep +Requires: kmod, keyutils, quota, python3-pyyaml +%{?systemd_requires} + +%package -n nfs-utils-coreos +Summary: Minimal NFS utilities for supporting clients +Provides: nfsstat = %{epoch}:%{version}-%{release} +Provides: rpc.statd = %{epoch}:%{version}-%{release} +Provides: rpc.gssd = %{epoch}:%{version}-%{release} +Provides: mount.nfs = %{epoch}:%{version}-%{release} +Provides: mount.nfs4 = %{epoch}:%{version}-%{release} +Provides: umount.nfs = %{epoch}:%{version}-%{release} +Provides: umount.nfs4 = %{epoch}:%{version}-%{release} +Provides: start-statd = %{epoch}:%{version}-%{release} +Provides: nfsidmap = %{epoch}:%{version}-%{release} +Provides: showmount = %{epoch}:%{version}-%{release} +Requires: rpcbind +%{?systemd_requires} + +%description -n nfs-utils-coreos +Minimal NFS utilities for supporting clients + +%package -n nfs-stats-utils +Summary: NFS utilities for supporting clients +Provides: nfsstat = %{epoch}:%{version}-%{release} +Provides: mountstats = %{epoch}:%{version}-%{release} +Provides: nfsiostat = %{epoch}:%{version}-%{release} + +%description -n nfs-stats-utils +Show NFS client Statistics + +%package -n nfsv4-client-utils +Summary: NFSv4 utilities for supporting client +Provides: rpc.gssd = %{epoch}:%{version}-%{release} +Provides: rpcctl = %{epoch}:%{version}-%{release} +Provides: mount.nfs = %{epoch}:%{version}-%{release} +Provides: mount.nfs4 = %{epoch}:%{version}-%{release} +Provides: umount.nfs = %{epoch}:%{version}-%{release} +Provides: umount.nfs4 = %{epoch}:%{version}-%{release} +Provides: nfsidmap = %{epoch}:%{version}-%{release} +Requires: gssproxy => 0.7.0-3 + +%description -n nfsv4-client-utils +The nfsv4-client-utils packages provided NFSv4 client support + +%package -n libnfsidmap +Summary: NFSv4 User and Group ID Mapping Library +Provides: libnfsidmap%{?_isa} = %{epoch}:%{version}-%{release} +License: BSD +BuildRequires: pkgconfig, openldap-devel +BuildRequires: automake, libtool +Requires: openldap + +%description -n libnfsidmap +Library that handles mapping between names and ids for NFSv4. + +%package -n libnfsidmap-devel +Summary: Development files for the libnfsidmap library +Requires: libnfsidmap%{?_isa} = %{epoch}:%{version}-%{release} +Requires: pkgconfig + +%description -n libnfsidmap-devel +This package includes header files and libraries necessary for +developing programs which use the libnfsidmap library. + + +%description +The nfs-utils package provides a daemon for the kernel NFS server and +related tools, which provides a much higher level of performance than the +traditional Linux NFS server used by most users. + +This package also contains the showmount program. Showmount queries the +mount daemon on a remote host for information about the NFS (Network File +System) server on the remote host. For example, showmount can display the +clients which are mounted on that host. + +This package also contains the mount.nfs and umount.nfs program. + +%prep +%autosetup -p1 + +# Remove .orig files +find . -name "*.orig" | xargs rm -f + +# Change shebangs +find -name \*.py -exec sed -r -i '1s|^#!\s*/usr/bin.*python.*|#!%{__python3}|' {} \; + +%build +sh -x autogen.sh +%global _statdpath /var/lib/nfs/statd +%configure \ + CFLAGS="%{build_cflags} -D_FILE_OFFSET_BITS=64" \ + LDFLAGS="%{build_ldflags}" \ + --enable-mountconfig \ + --enable-ipv6 \ + --with-statdpath=%{_statdpath} \ + --enable-libmount-mount \ + --with-systemd \ + --without-tcp-wrappers \ + --with-pluginpath=%{_libdir}/libnfsidmap \ + --enable-junction + +%make_build all + +%install +%global _pkgdir %{_prefix}/lib/systemd + +rm -rf $RPM_BUILD_ROOT/* + +mkdir -p $RPM_BUILD_ROOT/sbin +mkdir -p $RPM_BUILD_ROOT%{_sbindir} +mkdir -p $RPM_BUILD_ROOT%{_libexecdir}/nfs-utils/ +mkdir -p $RPM_BUILD_ROOT%{_pkgdir}/system +mkdir -p $RPM_BUILD_ROOT%{_pkgdir}/system-generators +mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man8 +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/request-key.d +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/ +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/gssproxy + +%make_install + +install -s -m 755 tools/rpcdebug/rpcdebug $RPM_BUILD_ROOT%{_sbindir} +install -m 644 utils/mount/nfsmount.conf $RPM_BUILD_ROOT%{_sysconfdir} +install -m 644 nfs.conf $RPM_BUILD_ROOT%{_sysconfdir} +install -m 644 support/nfsidmap/idmapd.conf $RPM_BUILD_ROOT%{_sysconfdir} +install -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/request-key.d + +mkdir -p $RPM_BUILD_ROOT/run/sysconfig +install -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/lockd.conf +install -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/gssproxy + +rm -rf $RPM_BUILD_ROOT%{_libdir}/*.{a,la} +rm -rf $RPM_BUILD_ROOT%{_libdir}/libnfsidmap/*.{a,la} + +mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/nfs/rpc_pipefs + +touch $RPM_BUILD_ROOT%{_sharedstatedir}/nfs/rmtab +mv $RPM_BUILD_ROOT%{_sbindir}/rpc.statd $RPM_BUILD_ROOT/sbin + +mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/nfs/statd/sm +mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/nfs/statd/sm.bak +mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/nfs/v4recovery +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/exports.d + +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/nfsmount.conf.d +install -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/nfsmount.conf.d + + +%pre +# move files so the running service will have this applied as well +for x in gssd idmapd ; do + if [ -f /var/lock/subsys/rpc.$x ]; then + mv /var/lock/subsys/rpc.$x /var/lock/subsys/rpc$x + fi +done + +%global rpcuser_uid 29 +# Create rpcuser gid as long as it does not already exist +cat /etc/group | cut -d':' -f 1 | grep --quiet rpcuser 2>/dev/null +if [ "$?" -eq 1 ]; then + /usr/sbin/groupadd -g %{rpcuser_uid} rpcuser >/dev/null 2>&1 || : +fi + +# Create rpcuser uid as long as it does not already exist. +cat /etc/passwd | cut -d':' -f 1 | grep --quiet rpcuser 2>/dev/null +if [ "$?" -eq 1 ]; then + /usr/sbin/useradd -l -c "RPC Service User" -r -g %{rpcuser_uid} \ + -s /sbin/nologin -u %{rpcuser_uid} -d /var/lib/nfs rpcuser >/dev/null 2>&1 || : +else + /usr/sbin/usermod -u %{rpcuser_uid} -g %{rpcuser_uid} rpcuser >/dev/null 2>&1 || : +fi + +# Using the 16-bit value of -2 for the nfsnobody uid and gid +%global nfsnobody_uid 65534 + +# Nowadays 'nobody/65534' user/group are included in setup rpm. But on +# systems installed previously, nobody/99 might be present, with user +# 65534 missing. Let's create nfsnobody/65534 in that case. + +# Create nfsnobody gid as long as it does not already exist +cat /etc/group | cut -d':' -f 3 | grep --quiet %{nfsnobody_uid} 2>/dev/null +if [ "$?" -eq 1 ]; then + /usr/sbin/groupadd -g %{nfsnobody_uid} nfsnobody >/dev/null 2>&1 || : +fi + +# Create nfsnobody uid as long as it does not already exist. +cat /etc/passwd | cut -d':' -f 3 | grep --quiet %{nfsnobody_uid} 2>/dev/null +if [ $? -eq 1 ]; then + /usr/sbin/useradd -l -c "Anonymous NFS User" -r -g %{nfsnobody_uid} \ + -s /sbin/nologin -u %{nfsnobody_uid} -d /var/lib/nfs nfsnobody >/dev/null 2>&1 || : +fi + +%post +if [ $1 -eq 1 ] ; then + # Initial installation + /bin/systemctl enable nfs-client.target >/dev/null 2>&1 || : + /bin/systemctl start nfs-client.target >/dev/null 2>&1 || : +fi + +%systemd_post nfs-server + +%post -n nfsv4-client-utils +if [ $1 -eq 1 ] ; then + # Initial installation + /bin/systemctl enable nfs-client.target >/dev/null 2>&1 || : + /bin/systemctl start nfs-client.target >/dev/null 2>&1 || : +fi + +%preun +if [ $1 -eq 0 ]; then + %systemd_preun nfs-client.target + %systemd_preun nfs-server.service +fi + +%preun -n nfsv4-client-utils +if [ $1 -eq 0 ]; then + %systemd_preun nfs-client.target + + rm -rf /etc/nfsmount.conf.d + rm -rf /var/lib/nfs/v4recovery +fi + +%postun +%systemd_postun_with_restart nfs-client.target +%systemd_postun_with_restart nfs-server + +%postun -n nfsv4-client-utils +%systemd_postun_with_restart nfs-client.target + +/bin/systemctl --system daemon-reload >/dev/null 2>&1 || : + +if [ $1 -eq 0 ] ; then + rm -rf /var/lib/nfs/statd + rm -rf /var/lib/nfs/v4recovery +fi + +%triggerin -- nfs-utils > 1:2.1.1-3 +/bin/systemctl try-restart gssproxy || : + +%triggerun -- nfs-utils < 1:2.5.4-3 +/bin/systemctl disable nfs-convert >/dev/null 2>&1 || : + +%files +%config(noreplace) /etc/nfsmount.conf +%dir %{_sysconfdir}/exports.d +%dir %{_sharedstatedir}/nfs/v4recovery +%dir %attr(555, root, root) %{_sharedstatedir}/nfs/rpc_pipefs +%dir %{_sharedstatedir}/nfs +%dir %{_libexecdir}/nfs-utils +%dir %attr(700,rpcuser,rpcuser) %{_sharedstatedir}/nfs/statd +%dir %attr(700,rpcuser,rpcuser) %{_sharedstatedir}/nfs/statd/sm +%dir %attr(700,rpcuser,rpcuser) %{_sharedstatedir}/nfs/statd/sm.bak +%ghost %attr(644,rpcuser,rpcuser) %{_statdpath}/state +%config(noreplace) %{_sharedstatedir}/nfs/etab +%config(noreplace) %{_sharedstatedir}/nfs/rmtab +%config(noreplace) %{_sysconfdir}/request-key.d/id_resolver.conf +%config(noreplace) %{_sysconfdir}/modprobe.d/lockd.conf +%config(noreplace) %{_sysconfdir}/nfs.conf +%attr(0600,root,root) %config(noreplace) %{_sysconfdir}/gssproxy/24-nfs-server.conf +%doc linux-nfs/ChangeLog linux-nfs/KNOWNBUGS linux-nfs/NEW linux-nfs/README +%doc linux-nfs/THANKS linux-nfs/TODO +/sbin/rpc.statd +/sbin/nfsdcltrack +%{_sbindir}/exportfs +%{_sbindir}/nfsstat +%{_sbindir}/rpcdebug +%{_sbindir}/rpcctl +%{_sbindir}/rpc.mountd +%{_sbindir}/rpc.nfsd +%{_sbindir}/showmount +%{_sbindir}/rpc.idmapd +%{_sbindir}/rpc.gssd +%{_sbindir}/sm-notify +%{_sbindir}/start-statd +%{_sbindir}/mountstats +%{_sbindir}/nfsiostat +%{_sbindir}/nfsidmap +%{_sbindir}/blkmapd +%{_sbindir}/nfsconf +%{_sbindir}/nfsref +%{_sbindir}/nfsdcld +%{_sbindir}/nfsdclddb +%{_sbindir}/nfsdclnts +%{_libexecdir}/nfsrahead +%{_udevrulesdir}/99-nfs.rules +%{_mandir}/*/* +%{_pkgdir}/*/* + +%attr(4755,root,root) /sbin/mount.nfs + +/sbin/mount.nfs4 +/sbin/umount.nfs +/sbin/umount.nfs4 + +%files -n libnfsidmap +%doc support/nfsidmap/AUTHORS support/nfsidmap/README support/nfsidmap/COPYING +%config(noreplace) %{_sysconfdir}/idmapd.conf +%{_libdir}/libnfsidmap.so.* +%{_libdir}/libnfsidmap/*.so +%{_mandir}/man3/nfs4_uid_to_name.* + +%files -n libnfsidmap-devel +%{_libdir}/pkgconfig/libnfsidmap.pc +%{_includedir}/nfsidmap.h +%{_includedir}/nfsidmap_plugin.h +%{_libdir}/libnfsidmap.so + +%files -n nfs-utils-coreos +%dir %attr(555, root, root) %{_sharedstatedir}/nfs/rpc_pipefs +%dir %attr(700,rpcuser,rpcuser) %{_sharedstatedir}/nfs/statd +%dir %attr(700,rpcuser,rpcuser) %{_sharedstatedir}/nfs/statd/sm +%dir %attr(700,rpcuser,rpcuser) %{_sharedstatedir}/nfs/statd/sm.bak +%ghost %attr(644,rpcuser,rpcuser) %{_statdpath}/state +%config(noreplace) %{_sysconfdir}/nfsmount.conf +%config(noreplace) %{_sysconfdir}/nfs.conf +%config(noreplace) %{_sysconfdir}/request-key.d/id_resolver.conf +%{_sbindir}/nfsidmap +%{_sbindir}/nfsstat +%{_sbindir}/rpc.gssd +%{_sbindir}/start-statd +%{_sbindir}/showmount +%{_libexecdir}/nfsrahead +%{_udevrulesdir}/99-nfs.rules +%attr(4755,root,root) /sbin/mount.nfs +/sbin/mount.nfs4 +/sbin/rpc.statd +/sbin/umount.nfs +/sbin/umount.nfs4 +%{_mandir}/*/nfs.5.gz +%{_mandir}/*/nfs.conf.5.gz +%{_mandir}/*/nfsmount.conf.5.gz +%{_mandir}/*/nfs.systemd.7.gz +%{_mandir}/*/gssd.8.gz +%{_mandir}/*/mount.nfs.8.gz +%{_mandir}/*/nfsconf.8.gz +%{_mandir}/*/nfsidmap.8.gz +%{_mandir}/*/nfsstat.8.gz +%{_mandir}/*/rpc.gssd.8.gz +%{_mandir}/*/rpc.statd.8.gz +%{_mandir}/*/showmount.8.gz +%{_mandir}/*/statd.8.gz +%{_mandir}/*/umount.nfs.8.gz +%{_mandir}/*/nfsrahead.5.gz +%{_pkgdir}/*/rpc-pipefs-generator +%{_pkgdir}/*/auth-rpcgss-module.service +%{_pkgdir}/*/nfs-client.target +%{_pkgdir}/*/rpc-gssd.service +%{_pkgdir}/*/rpc-statd.service +%{_pkgdir}/*/rpc_pipefs.target +%{_pkgdir}/*/var-lib-nfs-rpc_pipefs.mount + +%files -n nfsv4-client-utils +%config(noreplace) /etc/nfsmount.conf +%dir %{_sharedstatedir}/nfs/v4recovery +%dir %attr(555, root, root) %{_sharedstatedir}/nfs/rpc_pipefs +%dir %{_libexecdir}/nfs-utils +%config(noreplace) %{_sysconfdir}/request-key.d/id_resolver.conf +%attr(0600,root,root) %config(noreplace) %{_sysconfdir}/gssproxy/24-nfs-server.conf +%attr(0600,root,root) %config(noreplace) %{_sysconfdir}/nfsmount.conf.d/10-nfsv4.conf +%{_sbindir}/rpc.gssd +%{_sbindir}/rpcctl +%{_sbindir}/nfsidmap +%{_sbindir}/nfsstat +%{_libexecdir}/nfsrahead +%{_udevrulesdir}/99-nfs.rules +%attr(4755,root,root) /sbin/mount.nfs +/sbin/mount.nfs4 +/sbin/umount.nfs +/sbin/umount.nfs4 +%{_mandir}/*/nfs.5.gz +%{_mandir}/*/nfs.conf.5.gz +%{_mandir}/*/nfsmount.conf.5.gz +%{_mandir}/*/nfsrahead.5.gz +%{_mandir}/*/gssd.8.gz +%{_mandir}/*/mount.nfs.8.gz +%{_mandir}/*/nfsconf.8.gz +%{_mandir}/*/nfsidmap.8.gz +%{_mandir}/*/rpc.gssd.8.gz +%{_mandir}/*/mount.nfs.8.gz +%{_mandir}/*/umount.nfs.8.gz +%{_mandir}/*/nfsidmap.8.gz +%{_mandir}/*/nfsstat.8.gz +%{_mandir}/*/rpcctl.8.gz +%{_pkgdir}/*/rpc-pipefs-generator +%{_pkgdir}/*/auth-rpcgss-module.service +%{_pkgdir}/*/nfs-client.target +%{_pkgdir}/*/rpc-gssd.service +%{_pkgdir}/*/rpc_pipefs.target +%{_pkgdir}/*/var-lib-nfs-rpc_pipefs.mount + +%files -n nfs-stats-utils +%{_sbindir}/mountstats +%{_sbindir}/nfsiostat +%{_mandir}/*/mountstats.8.gz +%{_mandir}/*/nfsiostat.8.gz + +%changelog +* Fri Apr 14 2023 MSVSphere Packaging Team - 2.5.4-18 +- Rebuilt for MSVSphere 9.2 beta + +* Thu Jan 26 2023 Steve Dickson 2.5.4-18 +- Covscan Scan: Wrong Check of Return Value (bz 2151968) + +* Thu Dec 1 2022 Steve Dickson 2.5.4-17 +- Create the nfsrahead command (bz 2143747) + +* Mon Nov 14 2022 Steve Dickson 2.5.4-16 +- nfsd.man: Explain that setting nfsv4=n turns off all v4 versions (bz 2042362) +- mount.nfs: fix NULL pointer derefernce in nfs_parse_square_bracket (bz 2136807) + +* Thu Aug 18 2022 Steve Dickson 2.5.4-15 +- Fix uninstall warnings (bz 2048023) +- rpc-statd.service: Stop rpcbind and rpc.stat in an exit race (bz 2112941) + +* Mon Aug 1 2022 Steve Dickson 2.5.4-14 +- Fix the typo of dependency tag "Provides: rpcclt" (bz 2104406) + +* Thu Jul 28 2022 Steve Dickson 2.5.4-13 +- mount.nfs: Fix Typo auto negotiating code. (bz 2054300) + +* Fri Jul 22 2022 Steve Dickson 2.5.4-12 +- idmapd: Fix error status when nfs-idmapd exits (bz 2001764) +- mount.nfs Fix error reporting for already mounted shares (bz 2054300) +- rpcctl - fix failure when setting xprt offline and online (bz 2081934) +- rpc-pipefs-generator: allocate enough space (bz 2109420) + +* Sat Jul 16 2022 Steve Dickson 2.5.4-11 +- nfs.man: adding new mount option max_connect (bz 2106848) +- systemd: Fix format-overflow warning (bz 2106896) + +* Mon Feb 28 2022 Steve Dickson 2.5.4-10 +- Added the rpcctl command (bz 2059245) + +* Sat Jan 22 2022 Steve Dickson 2.5.4-9 +- manpage: remove the no longer supported value "vers2" (bz 1966643) + +* Thu Jan 13 2022 Steve Dickson 2.5.4-8 +- Added the tests directory for the gatings tests (bz 1996211) + +* Tue Jan 11 2022 Steve Dickson 2.5.4-7 +- Added a gating.yaml file (bz 1996211) +- gssd: fix crash in debug message. (bz 1999476) + +* Mon Jan 10 2022 Steve Dickson 2.5.4-6 +- Update tools to reflect removal of NFS v2 support (bz 1966643) + +* Thu Aug 26 2021 Alice Mitchell 2.5.4-5 +- triggerun doesn't work correctly unless the epoch is given (bz 1937811) +- Restored the nfs-utils-2.5.4-mount-sloppy.patch (bz 1987070) +- General memory fixes (bz 1938822) + +* Tue Aug 24 2021 Alice Mitchell 2.5.4-4 +- explicitly disable any previous nfs-convert (bz 1937811) + +* Fri Aug 20 2021 Steve Dickson 2.5.4-3 +- mount.nfs: insert 'sloppy' at beginning of the options (bz 1987070) +- spec: Fix dependency problems with nfsdclnts (bz 1924708) +- nfsdcltrack: Fix printf format (bz 1995316) + +* Mon Aug 16 2021 Steve Dickson 2.5.4-2 +- Remove nfsconvert command (bz 1937811) + +* Mon Aug 09 2021 Mohan Boddu - 1:2.5.4-1 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Thu Jun 24 2021 Steve Dickson 2.5.4-0 +- Rebased to upstream release: nfs-utils-2-5-4 (bz 1971684) + +* Fri Apr 16 2021 Mohan Boddu - 1:2.5.3-2.rc1.1 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Tue Mar 16 2021 Steve Dickson 2.5.3-3.rc1 +- Enable NFS server RDMA by default (bz 1931565) + +* Mon Mar 15 2021 Steve Dickson 2.5.3-2.rc1 +- Updated to the latest RC release: nfs-utils-2-5-4-rc1 (bz 1939257) + +* Sat Mar 13 2021 Steve Dickson 2.5.3-1 +- Created a V4 only client package +- Broke out the stat cmds using python into a separate package + +* Sun Feb 21 2021 Steve Dickson 2.5.3-0 +- Updated to latest upstream release: nfs-utils-2-5-3 (bz 1931101) + +* Tue Jan 26 2021 Fedora Release Engineering - 1:2.5.2-1.rc4.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Jan 7 2021 Steve Dickson 2.5.2-1.rc4 +- Updated to the latest RC release: nfs-utils-2-5-3-rc4 (bz 1913830) + +* Thu Dec 17 2020 Steve Dickson 2.5.2-1.rc3 +- Updated to the latest RC release: nfs-utils-2-5-3-rc3 (bz 1906841) + +* Tue Nov 10 2020 Steve Dickson 2.5.2-1.rc1 +- Updated to the latest RC release: nfs-utils-2-5-3-rc1 (bz 1896543) + +* Mon Oct 26 2020 Steve Dickson 2.5.2-0 +- Updated to latest upstream release: nfs-utils-2-5-2 (bz 1880563) + +* Tue Sep 15 2020 Steve Dickson 2.5.2-5.rc4 +- Rebuild for the soname change on libevent + +* Tue Sep 08 2020 Steve Dickson 2.5.2-4.rc4 +- rpc.idmapd: Do not free config variables (bz 1873965) +- nfsiostat: Drop autofs entries before calling compare_iostats() + +* Mon Aug 31 2020 Steve Dickson 2.5.2-3.rc4 +- Fixed rpc.gssd: munmap_chunk(): invalid pointer + +* Mon Aug 31 2020 Steve Dickson 2.5.2-2.rc4 +- Updated to the latest RC release: nfs-utils-2-5-2-rc4 + +* Fri Aug 07 2020 Steve Dickson 2.5.2-2.rc3 +- rpc.idmapd: Turn down the verbosity in flush_inotify() (bz 1867172) +- Don't modify /etc/group on upgrades (bz 1856890) + +* Tue Aug 04 2020 Steve Dickson 2.5.1-1.rc3 +- Updated to the latest RC release: nfs-utils-2-5-2-rc3 (bz 1856958) + +* Tue Jul 28 2020 Fedora Release Engineering - 1:2.5.1-1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 13 2020 Steve Dickson 2.5.1-0 +- Updated to latest upstream release: nfs-utils-2-5-1 + +* Tue Apr 07 2020 Steve Dickson 2.4.3-1.rc2 +- Updated to the latest RC release: nfs-utils-2-4-4-rc2 (bz 1807999) + +* Tue Mar 03 2020 Steve Dickson 2.4.3-1.rc1 +- Updated to the latest RC release: nfs-utils-2-4-4-rc1 (bz 1807999) + +* Mon Feb 10 2020 Steve Dickson 2.4.3-0 +- Updated to latest upstream release: nfs-utils-2-4-3 (bz 1787831) +- Fix error in preuninstall scriptlet (bz 1785816) +- Fix update conflicts (bz 1724305) + +* Wed Jan 29 2020 Fedora Release Engineering - 1:2.4.2-3.rc3.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Dec 19 2019 Steve Dickson 2.4.2-3.rc3 +- Updated to the latest upstream RC release: nfs-utils-2-4-3-rc3 (bz 1782349) +- Remove rpc-svcgssd from auth-rpcgss-module (bz 1662737) +- libnfsidmap: Turn off default verbosity (bz 1774787) + +* Fri Nov 22 2019 Steve Dickson 2.4.2-2.rc2 +- mount: Fix return 0 from void function + +* Fri Nov 22 2019 Steve Dickson 2.4.2-1.rc2 +- Updated to the latest upstream RC release: nfs-utils-2-4-3-rc2 (bz 1772987) + +* Wed Nov 13 2019 Steve Dickson 2.4.2-0 +- Updated to the latest upstream release: 2.4.2 (bz 1772987) + +* Tue Nov 05 2019 Christian Glombek 2.4.1-1.rc1 +- Added missing Requires and statd dirs to nfs-utils-coreos package (bz 1768897) + +* Thu Aug 29 2019 Steve Dickson 2.4.1-1.rc1 +- Updated to the latest upstream RC release: nfs-utils-2-4-2-rc1 + +* Thu Jul 25 2019 Fedora Release Engineering - 1:2.4.1-1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Jun 24 2019 Steve Dickson 2.4.1-0 +- Updated to the latest upstream release: 2.4.1 (bz 1719016) + +* Tue May 28 2019 Steve Dickson 2.3.4-2 +- rpc.mountd: Fix mountd segfault (bz 1713937) + +* Thu May 23 2019 Steve Dickson 2.3.4-1 +- mount: Report correct error in the fall_back cases (bz 1709961) +- sqlite.c: Use PRIx64 macro to print 64-bit integers +- rpc.mountd: Fix e_hostname and e_uuid leaks (bz 1713360) + +* Fri May 10 2019 Steve Dickson 2.3.4-0 +- Updated to the latest upstream release: 2.3.4 (bz 1708690) + +* Wed Feb 20 2019 Steve Dickson 2.3.3-7.rc2 +- Added nfs-utils-coreos package (bz 1667889) + +* Tue Feb 12 2019 Steve Dickson 2.3.3-6.rc2 +- Always have the nfs-convert service enabled (bz 1668836) + +* Mon Feb 11 2019 Steve Dickson 2.3.3-5.rc2 +- Do not install /etc/sysconfig/nfs (bz 1668836) +- Change nfsconvert.sh not to set the immutable bit (bz 1668836) +- Change nfsconvert.py not to create the new dummy /etc/sysconfig/nfs (bz 1668836) + +* Fri Feb 01 2019 Fedora Release Engineering - 1:2.3.3-4.rc2.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Jan 30 2019 Steve Dickson 2.3.3-4.rc2 +- Make sysconfig/nfs mutable when the package is removed +- Removed new error=format-overflow=2 errors + +* Tue Dec 11 2018 Steve Dickson 2.3.3-3.rc2 +- Updated to latest RC release: nfs-utils-2-3-4-rc2 +- Addeding libxml2-devel dependency +- Make sure /etc/sysconfig/nfs is immutable +- Added Requires: e2fsprogs (bz 1647727) +- nfsref: switch the way libraries are linked + +* Fri Nov 9 2018 Steve Dickson 2.3.3-3.rc1 +- Fix typo in the spec file. + +* Mon Nov 5 2018 Steve Dickson 2.3.3-2.rc1 +- Deprecated /etc/sysconfig/nfs (bz 1644049) +- Remove nfs server legacy systemd unit files + +* Sat Oct 27 2018 Steve Dickson 2.3.3-1.rc1 +- Changed /var/lib/nfs/rpc_pipefs to have 555 permissions +- Removed tcp wrappers support from man pages +- Reload not restart gssproxy in nfs-server.service + +* Sat Oct 27 2018 Steve Dickson 2.3.3-0.rc1 +- Updated to latest uupstream RC release: nfs-utils-2-3-4-rc1 + +* Thu Sep 6 2018 Steve Dickson 2.3.3-0 +- Updated to latest upstream release: nfs-utils-2-3-3 + +* Wed Jul 18 2018 Steve Dickson 2.3.2-1.rc3 +- Update to latest RC release: nfs-utils-2-3-3-rc3 (bz 1595927) + +* Fri Jul 13 2018 Fedora Release Engineering - 1:2.3.2-1.rc2.2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Jul 02 2018 Miro Hrončok - 1:2.3.2-1.rc2.1 +- Rebuilt for Python 3.7 + +* Wed Jun 27 2018 Steve Dickson 2.3.2-1-rc2 +- Revert: gssd.c: Remomved a couple of warning errors + +* Mon Jun 25 2018 Steve Dickson 2.3.2-0-rc2 +- Update to latest RC release: nfs-utils-2-3-3-rc2 + +* Tue Jun 19 2018 Miro Hronok - 1:2.3.2-0.rc1.1 +- Rebuilt for Python 3.7 + +* Thu Jun 7 2018 Steve Dickson 2.3.2-0-rc1 +- Update to latest RC release: nfs-utils-2-3-3-rc1 + +* Thu May 24 2018 Steve Dickson 2.3.2-0 +- Updated to latest upstream release: 2.3.2 (bz 1582341) + +* Tue May 15 2018 Zbigniew Jedrzejewski-Szmek 2.3.1-9.rc1 +- Only try to create nfsnobody if the uid/gid are not found (bz 1488897) +- Turn off the building of rpcgen + +* Thu May 3 2018 Steve Dickson 2.3.1-8.rc1 +- nfsd: Set default minor versions (bz 1570066) + +* Wed Apr 11 2018 Steve Dickson 2.3.1-7.rc1 +- mount.nfs: Fix auto protocol negotiation (bz 1565310) + +* Mon Apr 9 2018 Steve Dickson 2.3.1-6.rc1 +- Stop failing when systemctl try-restart gssproxy fails (bz 1552976) +- Use Fedora build flags (bz 1548679) + +* Fri Mar 2 2018 Steve Dickson 2.3.1-5.rc1 +- Updated to latest upstream RC release: nfs-utils-2-3-2-rc1 + +* Wed Feb 14 2018 Kevin Fenzi - 1:2.3.1-5 +- Rebuild for new libevent + +* Fri Feb 09 2018 Igor Gnatenko - 1:2.3.1-4 +- Escape macros in %%changelog + +* Thu Feb 08 2018 Fedora Release Engineering - 1:2.3.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Fri Jan 19 2018 Steve Dickson 2.3.1-2 +- Restart gssproxy (if running) when the NFS server is started (bz 1527653) + +* Tue Jan 9 2018 Steve Dickson 2.3.1-1 +- Added rpcgen dependency (bz 1531540) + +* Wed Dec 20 2017 Steve Dickson 2.3.1-0 +- Updated to latest upstream release: 2.3.1 +- Removed unnecessary chown rpcuser in %%post + +* Tue Dec 19 2017 Steve Dickson 2.2.1-3.rc2 +- Fix typo in nfs-utils_env.sh (bz 1516004) + +* Mon Dec 18 2017 Steve Dickson 2.2.1-2.rc2 +- Removed tcp_wrappers dependency (bz 1518769) + +* Fri Dec 15 2017 Steve Dickson 2.2.1-1.rc2 +- Updated to latest upstream RC release: nfs-utils-2-2-2-rc2 + +* Tue Nov 07 2017 Igor Gnatenko - 1:2.2.1-1.rc1.1 +- Remove old crufty coreutils requires + +* Mon Nov 6 2017 Steve Dickson 2.2.1-1.rc1 +- Restore ABI compat with pre-merge libnfsidmap (bz 1509063) +- Add a build-time dependency on python3-devel + +* Thu Nov 2 2017 Steve Dickson 2.2.1-0.rc1 +- Updated to latest upstream RC release: nfs-utils-2-2-2-rc1 + +* Mon Oct 30 2017 Steve Dickson 2.2.1-0 +- Updated to latest upstream release: nfs-utils-2-2-1 + +* Mon Oct 16 2017 Steve Dickson 2.1.1-8.rc6 +- Own the /usr/libexec/nfs-utils dir (bz 1484300) + +* Thu Oct 5 2017 Steve Dickson 2.1.1-7.rc6 +- Updated to the latest RC releease: nfs-utils-2-1-2-rc6 + +* Tue Sep 19 2017 Orion Poplawski 2.1.1-7.rc5 +- Fix URL + +* Thu Jul 27 2017 Steve Dickson 2.1.1-6.rc5 +- Updated to the latest RC releease: nfs-utils-2-1-2-rc5 + +* Wed Jul 26 2017 Fedora Release Engineering - 1:2.1.1-6.rc4.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed Jul 19 2017 Steve Dickson 2.1.1-6.rc4 +- Removed build dependency on fedfs-utils-devel (bz 1427493) + +* Wed Jun 21 2017 Steve Dickson 2.1.1-5.rc4 +- Updated to the latest RC releease: nfs-utils-2-1-2-rc4 (bz 1462218) +- rpc.c: added include file so UINT16_MAX is defined + +* Thu Jun 1 2017 Steve Dickson 2.1.1-5.rc3 +- Updated to the latest RC releease: nfs-utils-2-1-2-rc3 (bz 1457921) + +* Wed Apr 26 2017 Steve Dickson 2.1.1-5.rc2 +- Conditionally restart gssproxy now that config file is installed (bz 1440885) +- systemd: Afters are also needed for the Wants=network-online.target (bz 1419351) +- nfsdcltrack: silence some expected errors (bz 1445863) +- Cleaned up fuzzy patches + +* Mon Apr 10 2017 Steve Dickson 2.1.1-4.rc2 +- Updated to the latest RC release: nfs-utils-2-1-2-rc2 (bz 1419351) +- Fixed typo in nfs.sysconfig (bz 1422249) + +* Tue Mar 28 2017 Steve Dickson 2.1.1-3.rc1 +- Added gssproxy server config file (bz 1431272) + +* Wed Feb 15 2017 Steve Dickson 2.1.1-2.rc1 +- Updated to the latest RC release: nfs-utils-2-1-2-rc1 + +* Fri Feb 10 2017 Fedora Release Engineering - 1:2.1.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Jan 19 2017 Steve Dickson 2.1.1-1 +- Added back the nfs-config service for backwards compatibility + +* Thu Jan 19 2017 Steve Dickson 2.1.1-0 +- Updated to latest upstream release: nfs-utils-2-1-1 (bz 1413232) + +* Mon Dec 19 2016 Miro Hronok - 1:1.3.4-1.rc3.1 +- Rebuild for Python 3.6 + +* Wed Nov 23 2016 Steve Dickson 1.3.4-1.rc3 +- Updated to the latest RC release: nfs-utils-1-3-5-rc3 + +* Thu Aug 25 2016 Steve Dickson 1.3.4-1.rc2 +- Updated to the latest RC release: nfs-utils-1-3-5-rc2 (bz 1369714) + +* Mon Aug 22 2016 Steve Dickson 1.3.4-1.rc1 +- Stop removing users and groups (bz 1364836) + +* Sat Aug 20 2016 Steve Dickson 1.3.4-0.rc1 +- Updated to the latest RC release: nfs-utils-1-3-5-rc1 +- Updated the Requires(pre) (bz 1319196) + +* Sat Aug 6 2016 Steve Dickson 1.3.4-0 +- Updated to latest upstream version 1.3.4 + +* Thu Jul 21 2016 Steve Dickson 1.3.3-9.rc6 +- Removed the rpc-svcgssd.service systemd file (bz 1334741) + +* Tue Jul 19 2016 Steve Dickson 1.3.3-8.rc6 +- Updated to the latest RC release: nfs-utils-1-3-4-rc6 + +* Mon May 2 2016 Steve Dickson 1.3.3-8.rc5 +- Updated to the latest RC release: nfs-utils-1-3-4-rc5 + +* Wed Mar 16 2016 Steve Dickson 1.3.3-7.rc4 +- Updated to the latest RC release: nfs-utils-1-3-4-rc4 (bz 1316701) +- Changed BuildRequires: glibc-headers ==> BuildRequires: gcc (bz 1230477) + +* Thu Feb 04 2016 Fedora Release Engineering - 1:1.3.3-6.rc3.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Sat Jan 16 2016 Steve Dickson 1.3.3-6.rc3 +- Updated to the latest RC release: nfs-utils-1-3-4-rc3 + +* Wed Dec 16 2015 Steve Dickson 1.3.3-6.rc2 +- mountd: fix netgroup lookup for short hostnames (bz 1284079) + +* Fri Dec 11 2015 Steve Dickson 1.3.3-5.rc2 +- Updated to the latest RC release: nfs-utils-1-3-4-rc2 + +* Tue Nov 17 2015 Steve Dickson 1.3.3-4.rc1 +- ghost-ed rpc.statd state file (bz 1158466) + +* Mon Nov 16 2015 Steve Dickson 1.3.3-3.rc1 +- Improving rpc.gssd's debugging (bz 1282600) + +* Mon Nov 16 2015 Steve Dickson 1.3.3-2.rc1 +- Decouple the starting of nfs-service and rpcbind (bz 1279526) + +* Tue Nov 10 2015 Fedora Release Engineering - 1:1.3.3-1.rc1.1 +- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 + +* Wed Nov 4 2015 Steve Dickson 1.3.3-1.rc1 +- Updated to the latest RC release: nfs-utils-1-3-4-rc1 + +* Tue Nov 3 2015 Steve Dickson 1.3.3-1 +- Removed legacy triggers to remove rpm build errors + +* Mon Nov 2 2015 Steve Dickson 1.3.3-0 +- Updated to latest upstream version 1.3.3 + +* Fri Jul 31 2015 Steve Dickson 1.3.2-12 +- Fixed return value being overrun in gssd (bz 1249046) + +* Mon Jul 13 2015 Miro Hronok - 1:1.3.2-11 +- Replace Python scripts shebangs with %%{__python3} and require python3-devel to have that + +* Fri Jun 26 2015 Steve Dickson 1.3.2-10 +- Update to latest RC release: nfs-utils-1-3-3-rc5 (bz 1233005) + +* Wed Jun 17 2015 Fedora Release Engineering - 1:1.3.2-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed Jun 10 2015 Steve Dickson 1.3.2-8 +- Make systemd args backwards compatible (bz 1210751) +- Stop scribbling on stderr (bz 1211008) + +* Tue May 12 2015 Colin Walters - 1:1.3.2-7 +- Add patch to fix initial start on OSTree managed systems (bz 1219871) + +* Thu May 7 2015 Steve Dickson 1.3.2-4 +- Update to latest RC release: nfs-utils-1-3-3-rc4 + +* Mon Apr 6 2015 Steve Dickson 1.3.2-3 +- Update to latest RC release: nfs-utils-1-3-3-rc3 + +* Thu Apr 2 2015 Steve Dickson 1.3.2-2.1 +- Removed RPCRQUOTADOPTS from /etc/sysconfig/nfs (bz 1208516) + +* Thu Mar 19 2015 Steve Dickson 1.3.2-2.0 +- Update to latest RC release: nfs-utils-1-3-3-rc2 (bz 1088665) + +* Thu Feb 26 2015 Steve Dickson 1.3.2-1.0 +- Update to latest RC release: nfs-utils-1-3-3-rc1 + +* Mon Feb 9 2015 Steve Dickson 1.3.2-0.2 +- Change statd-notify.service to not wait for network to come up (bz 1183293) +- Added the rpcuser group before adding the rpcuser uid (bz 1165322) + +* Sun Feb 1 2015 Steve Dickson 1.3.2-0.1 +- statd: Fix test for foreground mode (bz 1188040) + +* Sat Jan 31 2015 Steve Dickson 1.3.2-0.0 +- Updated to latest upstream release: 1-3-2 + +* Mon Jan 19 2015 Steve Dickson 1.3.1-6.0 +- Set the GSS_USE_PROXY variable in nfs-utils_env.sh (bz 1183787) + +* Thu Jan 15 2015 Steve Dickson 1.3.1-5.0 +- Updated to latest upstream RC release: nfs-utils-1-3-2-rc5 (bz 1181708) + +* Wed Jan 14 2015 Steve Dickson 1.3.1-4.2 +- Added SMNOTIFYARGS to /etc/sysconf/nfs (bz 1182227) + +* Fri Jan 2 2015 Steve Dickson 1.3.1-4.1 +- Change if statments to string comparisons in nfs-utils_env.sh (bz 1170354) + +* Sat Dec 13 2014 Steve Dickson 1.3.1-4.0 +- Updated to latest upstream RC release: nfs-utils-1-3-2-rc4 (bz 1164477) +- Handle the rpcuser like other created users (bz 1165322) +- Restored lockd port and v4 grace/lease interface (bz 1115225) +- Make sure nfs-client target is enabled (bz 1173564) + +* Wed Dec 3 2014 Steve Dickson 1.3.1-2.4 +- Fixed typos in nfs-utils sysconfig files (bz 1170354) + +* Thu Nov 13 2014 Steve Dickson 1.3.1-2.3 +- Fixed a mount DOS (bz 1163886) + +* Thu Nov 6 2014 Richard W.M. Jones 1.3.1-2.2 +- Rebuild against new libnfsimap (bz 1160883) + +* Thu Nov 6 2014 Steve Dickson 1.3.1-2.1 +- Rebuild against new libnfsimap (bz 1160883) + +* Tue Nov 4 2014 Steve Dickson 1.3.1-2.0 +- Updated to latest upstream RC release: nfs-utils-1-3-2-rc2 (bz 1115179) + +* Tue Nov 4 2014 Steve Dickson 1.3.1-1.2 +- Rebuild with new glibc (bz 1158846) + +* Fri Oct 24 2014 Steve Dickson 1.3.1-1.1 +- Added fix to umount in the nfs-utils-1.3.2-rc1.patch + +* Wed Oct 22 2014 Steve Dickson 1.3.1-1.0 +- Updated to latest upstream RC release: nfs-utils-1-3-2-rc1 (bz 1142842) + +* Thu Sep 25 2014 Steve Dickson 1.3.1-0.0 +- Update to the latest upstream release: nfs-utils-1-3-1 +- Enable gssproxy to manage the GSSAPI creds on the server. + +* Fri Sep 12 2014 Steve Dickson 1.3.0-7.0 +- Updated to latest upstream RC release: nfs-utils-1-3-1-rc4 (bz 1108615) + +* Sun Aug 17 2014 Fedora Release Engineering - 1:1.3.0-6.0 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sun Jul 27 2014 Steve Dickson 1.3.0-5.0 +- Updated to latest upstream RC release: nfs-utils-1-3-1-rc3 +- Use _statdpath to define where statd's state lives + +* Tue Jul 01 2014 Jeff Layton - 1:1.3.0-4.0 +- clean up lockd configuration + +* Sat Jun 07 2014 Fedora Release Engineering - 1:1.3.0-3.0 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sun Jun 1 2014 Steve Dickson 1.3.0-2.0 +- Updated to latest upstream RC release: nfs-utils-1-3-1-rc2 + +* Sat May 24 2014 Steve Dickson 1.3.0-1.3 +- Use systemd_post macro to enable services (bz 1087950) + +* Thu May 1 2014 Steve Dickson 1.3.0-1.2 +- mountd: fix segfault in add_name with newer gcc compilers + +* Thu May 1 2014 Steve Dickson 1.3.0-1.1 +- start-statd: rpc.statd's systemd unit changed names + +* Wed Apr 30 2014 Steve Dickson 1.3.0-1.0 +- Updated to latest upstream RC release: nfs-utils-1-3-1-rc1 + +* Fri Apr 25 2014 Steve Dickson 1.3.0-0.2 +- Fix PATH problem in start-statd (bz 1088226) + +* Mon Apr 14 2014 Steve Dickson 1.3.0-0.1 +- Incorporated new upstream systemd units + +* Tue Mar 25 2014 Steve Dickson 1.3.0-0.0 +- Updated to latest major release: nfs-utils-1-3-0 + +* Wed Jan 22 2014 Steve Dickson 1.2.9-3.0 +- Updated to latest upstream RC release: nfs-utils-1-2-10-rc3 + - gssd: Improve first attempt at acquiring GSS credentials (bz 1055077) +- gssd: set $HOME to prevent recursion (bz 1052902) + +* Fri Jan 10 2014 Steve Dickson 1.2.9-2.1 +- Fixed typo in nfs-service file. (bz 1047972) + +* Wed Jan 8 2014 Steve Dickson 1.2.9-2.0 +- Updated to latest upstream RC release: nfs-utils-1-2-10-rc2 +- Added Also=nfs.target to nfs-service file. (bz 1047972) + +* Wed Nov 20 2013 Steve Dickson 1.2.9-1.0 +- Updated to latest upstream RC release: nfs-utils-1-2-10-rc1 + +* Tue Nov 5 2013 Steve Dickson 1.2.9-0.0 +- Updated to latest upstream Release: nfs-utils-1-2-9 + +* Tue Sep 24 2013 Steve Dickson 1.2.8-6.0 +- Updated to latest upstream RC release: nfs-utils-1-2-9-rc6 + +* Wed Sep 18 2013 Steve Dickson 1.2.8-5.0 +- Updated to latest upstream RC release: nfs-utils-1-2-9-rc5 + +* Thu Aug 22 2013 Steve Dickson 1.2.8-4.1 +- nfs-utils: fix a number of specfile problems + +* Mon Aug 19 2013 Steve Dickson 1.2.8-4.0 +- Updated to latest upstream RC release: nfs-utils-1-2-9-rc4 + +* Sat Aug 03 2013 Fedora Release Engineering - 1:1.2.8-4.0 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue Jul 23 2013 Steve Dickson 1.2.8-3.0 +- Updated to latest upstream RC release: nfs-utils-1-2-9-rc3 + +* Tue Jul 23 2013 Steve Dickson 1.2.8-2.1 +- Make sure nfs.target is enabled (bz 970595) +- Fix nfs server reloads (bz 951247) + +* Fri May 31 2013 Steve Dickson 1.2.8-2.0 +- Update to latest upstream RC release: nfs-utils.1.2.9-rc1 +- Added GSS_USE_PROXY variable to nfs.sysconfig (bz 967112) + +* Tue May 7 2013 Steve Dickson 1.2.8-1.1 + systemd: nfs-server.service needs to be split up (bz 769879) + +* Tue May 7 2013 Steve Dickson 1.2.8-1 +- Updated to the latest upstream RC release: nfs-utils.1.2.9-rc1 + +* Tue Apr 23 2013 Steve Dickson 1.2.8-0 +- Updated to latest upstream release: 1.2.8 +- Removed the libgssglue dependency + +* Mon Apr 1 2013 Steve Dickson 1.2.7-6 +- Added v4.1 support rpc.nfsd (bz 947073) + +* Mon Mar 25 2013 Steve Dickson 1.2.7-5 +- Updated to latest upstream RC release: nfs-utils.1.2.8-rc4 +- Added nfs-lock.service to After line in nfs-server.service (bz 914792) + +* Thu Feb 14 2013 Fedora Release Engineering - 1:1.2.7-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Jan 16 2013 Steve Dickson 1.2.7-3 +- Updated to latest upstream RC release: nfs-utils.1.2.8-rc3 +- Took ownership of /usr/lib/nfs-utils (bz 894535) + +* Mon Dec 17 2012 Steve Dickson 1.2.7-2 +- Update to latest upstream RC release: nfs-utils.1.2.8-rc2 + +* Wed Nov 28 2012 Steve Dickson 1.2.7-1 +- Update to latest upstream RC release: nfs-utils.1.2.8-rc1 + +* Fri Nov 9 2012 Steve Dickson 1.2.7-0 +- Updated to latest upstream release: nfs-utils.1.2.7 + +* Thu Nov 8 2012 Steve Dickson 1.2.6-14 +- Allow the service to start when RPCNFSDCOUNT is comment out. (bz 870143) +- Removed some old cruft from the spec file (bz 226198) + +* Mon Oct 15 2012 Steve Dickson 1.2.6-13 +- Added a Requires for the quota package (bz 866225) + +* Thu Aug 23 2012 Steve Dickson 1.2.6-12 +- Added FedFS support by added a BuildRequires for fedfs-utils-devel +- Introduce new systemd-rpm macros (bz 850227) +- Updated to latest upstream RC release: nfs-utils.1.2.7-rc5 (bz 833024) + +* Mon Aug 6 2012 Steve Dickson 1.2.6-11 +- Updated to latest upstream RC release: nfs-utils.1.2.7-rc4 + +* Thu Aug 2 2012 Steve Dickson 1.2.6-10 +- Removed modprobe.d/nfs.conf + +* Thu Jul 19 2012 Steve Dickson 1.2.6-9 +- Updated to latest upstream RC release: nfs-utils.1.2.7-rc3 + +* Thu Jul 5 2012 Steve Dickson 1.2.6-8 +- nfsidmap: default domain no being set (bz 829362) + +* Fri Jun 22 2012 Steve Dickson 1.2.6-7 +- Reworked how the legacy names are enabled in systemd +- Fixed typo in nfs-mountd.service + +* Tue Jun 12 2012 Steve Dickson 1.2.6-6 +- Updated to latest upstream RC release: nfs-utils.1.2.7-rc2 (bz 833555) + +* Tue Jun 12 2012 Steve Dickson 1.2.6-5 +- Reworked how the services are restarted. + +* Tue Jun 12 2012 Steve Dickson 1.2.6-4 +- Enable legacy service names. + +* Tue May 29 2012 Steve Dickson 1.2.6-3 +- Updated to latest upstream RC release: nfs-utils.1.2.7-rc1 + +* Tue May 29 2012 Steve Dickson 1.2.6-2 +* Fixed typo in the checking of nfsnobody (bz 816149) + +* Fri May 25 2012 Steve Dickson 1.2.6-1 +- Correctly search for the existence of nfsnobody (bz 816149) +- Correctly change the default group id for nfsnobody (bz 816149) + +* Tue May 15 2012 Steve Dickson 1.2.6-0 +- Update to the latest upstream release: nfs-utils-1.2.6 (bz 821673) +- Split out NFS server daemons into individual service files (bz 769879) +- Removed Wants= from nfs-lock.service (bz 817895) +- Only enable services if they are enabled on upgrades (bz 807020) + +* Thu May 3 2012 Steve Dickson 1.2.5-16 +- Update to the latest RC release: nfs-utils-1.2.6-rc7 + +* Thu Apr 26 2012 Josh Boyer 1.2.5-15 +- Add modprobe config file to alias 'nfs4' to 'nfs' (bz 806333) + +* Thu Mar 22 2012 Steve Dickson 1.2.5-14 +- gssd: Look for user creds in user defined directory (bz 786993) +- gssd: Don't link with libgssapi_krb5 (bz 784908) + +* Fri Mar 16 2012 Steve Dickson 1.2.5-13 +- Make sure statd is start before NFS mounts (bz 786050) +- rpc.idmap: Hide global symbols from libidmap plugins (bz 797332) +- nfsd: Bump up the default to 8 nprocs (bz 757452) + +* Wed Feb 08 2012 Harald Hoyer 1.2.5-12 +- require kmod instead of modutils (bz 788571) + +* Mon Jan 16 2012 Steve Dickson 1.2.5-11 +- Update to upstream RC release: nfs-utils-1.2.6-rc6 +- Reworked how the nfsd service requires the rpcbind service (bz 768550) + +* Mon Jan 9 2012 Steve Dickson 1.2.5-10 +- Added back the SUID bits on mount commands (bz 772396) +- Added a decency on keyutils (bz 769724) + +* Thu Jan 5 2012 Steve Dickson 1.2.5-9 +- Update to upstream RC release: nfs-utils-1.2.6-rc5 + +* Thu Dec 15 2011 Steve Dickson 1.2.5-8 +- Removed the nfs-idmap service. rpc.idmap is now part of + the nfs-server service + +* Tue Dec 13 2011 Steve Dickson 1.2.5-7 +- Enabled new idmaping by installing the id_resolver.conf file. +- Update to upstream RC release: nfs-utils-1.2.6-rc4 + +* Fri Nov 18 2011 Steve Dickson 1.2.5-6 +- Remove RQUOTAD_PORT and RQUOTAD from /etc/sysconfig/nfs (bz 754496) +- Ensured nfs-idmap service is started after the named is up (bz 748275) + +* Mon Nov 14 2011 Steve Dickson 1.2.5-5 +- Ensured nfs-idmap service is started after the network up (bz 748275) +- Update to upstream RC release: nfs-utils-1.2.6-rc3 (bz 746497) + +* Thu Oct 20 2011 Steve Dickson 1.2.5-4 +- Added pNFS debugging to rpcdebug. + +* Tue Oct 18 2011 Steve Dickson 1.2.5-3 +- Update to upstream RC release: nfs-utils-1.2.6-rc2 + +* Tue Oct 4 2011 Steve Dickson 1.2.5-2 +- Removed SUID bits on mount commands (bz 528498) +- Fixed a few typos in a couple man pages (bz 668124, 673818, 664330) +- Fixed a I/0 problem in rpc.idmapd (bz 684308) + +* Mon Oct 3 2011 Steve Dickson 1.2.5-1 +- Update to upstream RC release: nfs-utils-1.2.6-rc1 +- Added named.service to After list in nfs-server.service (bz 742746) + +* Tue Sep 27 2011 Steve Dickson 1.2.5-0 +- Update to upstream release: nfs-utils-1.2.5 (bz 717931) + +* Wed Sep 21 2011 Steve Dickson 1.2.4-11 +- Update to upstream RC release: nfs-utils-1.2.5-rc3 + +* Wed Sep 14 2011 Steve Dickson 1.2.4-10 +- Created /etc/exports.d to stop a warning (bz 697006) + +* Tue Aug 30 2011 Steve Dickson 1.2.4-9 +- Both the nfs.lock and nfs.idmap services should always + enabled on both installs and upgrades (bz 699040) +- Fixed the paths to the server scriptlets (bz 733531) + +* Mon Aug 29 2011 Steve Dickson 1.2.4-8 +- Update to upstream RC release: nfs-utils-1.2.5-rc2 + +* Wed Aug 24 2011 Steve Dickson 1.2.4-7 +- Added StandardError=syslog+console to all the service files + so startup errors will be logged. +- Changed exportfs to only log errors on existing /etc/export.d + directory, which eliminates a needless syslog entry. +- Automount /proc/fs/nfsd for rpc.nfsd + +* Wed Aug 10 2011 Steve Dickson 1.2.4-6 +- Fixed some bugs in the triggerun script as well in + the nfs-server scripts (bz 699040). + +* Wed Aug 3 2011 Steve Dickson 1.2.4-5 +- Cleaned up the .preconfig and .postconfig files per + code review request. + +* Wed Aug 3 2011 Steve Dickson 1.2.4-4 +- Converted init scrips to systemd services. (bz 699040) +- Made nfsnobody's uid/gid to always be a 16-bit value of -2 +- mount: fix for libmount from util-linux >= 2.20 + +* Thu Jul 21 2011 Steve Dickson 1.2.4-3 +- Updated to latest upstream release: nfs-utils-1-2-5-rc1 + +* Thu Jul 7 2011 Ville Skyttä - 1:1.2.4-2 +- Don't ship Makefiles or INSTALL in docs (#633934). + +* Mon Jul 4 2011 J. Bruce Fields 1.2.4-1 +- Rely on crypto module autoloading in init scripts +- initscripts: just try to mount rpc_pipefs always + +* Wed Jun 29 2011 Steve Dickson 1.2.4-0 +- Updated to latest upstream release: nfs-utils-1-2-4 + +* Wed Apr 20 2011 Steve Dickson 1.2.3-13 +- Updated to latest upstream release: nfs-utils-1-2-4-rc8 + +* Wed Apr 6 2011 Steve Dickson 1.2.3-12 +- Updated to latest upstream release: nfs-utils-1-2-4-rc7 +- Enabled the libmount code. + +* Mon Mar 7 2011 Steve Dickson 1.2.3-11 +- Updated to latest upstream release: nfs-utils-1-2-4-rc6 + +* Wed Feb 09 2011 Christopher Aillon - 1.2.3-10 +- Rebuild against newer libevent + +* Tue Feb 08 2011 Fedora Release Engineering - 1:1.2.3-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Jan 26 2011 Steve Dickson 1.2.3-8 +- Fixed segfault in rpc.mountd (bz 669065) + +* Fri Jan 14 2011 Steve Dickson 1.2.3-7 +- Updated to latest upstream release: nfs-utils-1-2-4-rc5 +- Add initscripts changes needed for rpcbind to be running when nfs is started +- Initscripts changes needed to support NFS over RDMA +- Allow the setting of the NFSv4 grace period (bz 665387) + +* Mon Dec 13 2010 Steve Dickson 1.2.3-6 +- Updated to latest upstream release: nfs-utils-1-2-4-rc4 + +* Wed Dec 8 2010 Steve Dickson 1.2.3-5 +- Replace the nfs-utils-lib dependency with a libnfsidmap + dependency + +* Wed Dec 1 2010 Steve Dickson 1.2.3-4 +- The nfs service is not stopped on reboot or halt (bz 652786) +- Removed obsolete configuration values (bz 653765) + +* Mon Nov 29 2010 Steve Dickson 1.2.3-3 +- Updated to latest upstream release: nfs-utils-1-2-4-rc3 + +* Fri Oct 15 2010 Steve Dickson 1.2.3-2 +- Initscripts do not conform to LSB specification (bz 621562) +- sm-notify needs to call res_init() before each try (bz 625531) +- exports(5) man page duplicated paragraphs (bz 590921) + +* Thu Oct 14 2010 Steve Dickson 1.2.3-1 +- Updated to latest upstream release: nfs-utils-1-2-4-rc1 + +* Mon Oct 4 2010 Steve Dickson 1.2.3-0.1 +- Fixed a regession with -p arguemnt to rpc.mountd + +* Thu Sep 30 2010 Steve Dickson 1.2.3-0 +- Updated to latest upstream release: nfs-utils-1-2-3 + +* Thu Sep 16 2010 Steve Dickson 1.2.2-8 +- Update to upstream RC release: nfs-utils-1-2-3-rc6 + +* Thu Sep 9 2010 Steve Dickson 1.2.2-7 +- Update to upstream RC release: nfs-utils-1-2-3-rc5 + +* Tue Jun 22 2010 Steve Dickson 1.2.2-6 +- Update to upstream RC release: nfs-utils-1-2-3-rc4 + +* Thu May 6 2010 Steve Dickson 1.2.2-4 +- Update to upstream RC release: nfs-utils-1-2-3-rc3 + +* Fri Apr 16 2010 Steve Dickson 1.2.2-3 +- Update to upstream RC release: nfs-utils-1-2-3-rc2 + +* Mon Mar 22 2010 Steve Dickson 1.2.2-2 +- Update to upstream RC release: nfs-utils-1-2-3-rc1 + +* Thu Feb 18 2010 Steve Dickson 1.2.2-1 +- Updated to latest upstream version: 1.2.2 + +* Thu Jan 28 2010 Steve Dickson 1.2.1-17 +- Backed out the "Don't fail mounts when /etc/netconfig is + nonexistent" patch + +* Wed Jan 27 2010 Steve Dickson 1.2.1-16 +- mount.nfs: Don't fail mounts when /etc/netconfig is nonexistent + +* Mon Jan 25 2010 Steve Dickson 1.2.1-15 +- statd: Teach nfs_compare_sockaddr() to handle NULL + arguments + +* Fri Jan 22 2010 Steve Dickson 1.2.1-14 +- Update to upstream RC release: nfs-utils-1-2-2-rc9 + +* Thu Jan 21 2010 Steve Dickson 1.2.1-13 +- mount.nfs: Configuration file parser ignoring options +- mount.nfs: Set the default family for lookups based on + defaultproto= setting +- Enabled ipv6 + +* Sun Jan 17 2010 Steve Dickson 1.2.1-12 +- Updated to latest upstream RC release: nfs-utils-1-2-2-rc7 + which includes Ipv6 support for tcpwrapper (disabled by default). + +* Sat Jan 16 2010 Steve Dickson 1.2.1-11 +- Updated to latest upstream RC release: nfs-utils-1-2-2-rc7 + which includes Ipv6 support for statd (disabled by default). + +* Thu Jan 14 2010 Steve Dickson 1.2.1-10 +- Updated to the latest pseudo root release (rel10) which + containts the upstream pseudo root release + +* Tue Jan 12 2010 Steve Dickson 1.2.1-9 +- Updated to latest upstream RC release: nfs-utils-1-2-2-rc5 + +* Mon Jan 4 2010 Steve Dickson 1.2.1-8 +- mount.nfs: don't use IPv6 unless IPV6_SUPPORTED is set + +* Mon Dec 14 2009 Steve Dickson 1.2.1-7 +- Updated to latest upstream RC release: nfs-utils-1-2-2-rc3 + +* Thu Dec 10 2009 Steve Dickson 1.2.1-6 +- Update the pseudo root to handle security flavors better. + +* Mon Dec 7 2009 Steve Dickson 1.2.1-5 +- mount.nfs: Retry v4 mounts with v3 on ENOENT errors + +* Mon Dec 7 2009 Steve Dickson 1.2.1-4 +- Updated to the latest pseudo root release (rel9) (bz 538609). + +* Thu Nov 12 2009 Steve Dickson 1.2.1-3 +- Stop rpc.nfsd from failing to startup when the network + is down (bz 532270) + +* Wed Nov 11 2009 Steve Dickson 1.2.1-2 +- Updated to the latest pseudo root release (rel8). + +* Wed Nov 4 2009 Steve Dickson 1.2.1-1 +- Updated to latest upstream release: 1.2.0 + +* Tue Nov 3 2009 Steve Dickson 1.2.0-18 +- Reworked and remove some of the Default-Start/Stop stanzas + in the init scripts (bz 531425) + +* Mon Nov 2 2009 Steve Dickson 1.2.0-17 +- Updated to the latest pseudo root release (rel7). +- Added upstream 1.2.1-rc7 patch which fixes: + - Stop ignoring the -o v4 option (bz 529407) + - Allow network protocol roll backs when proto is set + in the config file (bz 529864) +- v4 mounts will roll back to v3 mounts when the mount + fails with ENOENT. + +* Mon Oct 5 2009 Steve Dickson 1.2.0-16 +- Fixed a whole where '-o v4' was not overriding the + version in the conf file. + +* Wed Sep 30 2009 Steve Dickson 1.2.0-15 +- Change the nfsmount.conf file to define v3 as the default + protocol version. +- Make sure versions set on the command line override version + set in nfsmount.conf +- Make version rollbacks still work when versions are set in + nfsmount.conf + +* Tue Sep 29 2009 Steve Dickson 1.2.0-13 +- Added upstream 1.2.1-rc5 patch + - mount.nfs: Support negotiation between v4, v3, and v2 + - mount.nfs: Keep server's address in nfsmount_info + - mount.nfs: Sandbox each mount attempt + - mount.nfs: Support negotiation between v4, v3, and v2 + +* Wed Sep 23 2009 Steve Dickson 1.2.0-12 +- Updated to the latest pseudo root release (rel6). + +* Tue Sep 15 2009 Steve Dickson 1.2.0-11 +- Added upstream 1.2.1-rc5 patch + - Added --sort --list functionality to nfs-iostat.py + - Fixed event handler in idmapd + - Added -o v4 support + - Disabled IPv6 support in nfsd + - Don't give client an empty flavor list + - Fixed gssed so it does not blindly caches machine credentials + +* Mon Aug 17 2009 Steve Dickson 1.2.0-10 +- Added upstream 1.2.1-rc4 patch + - Fix bug when both crossmnt + - nfs(5): Add description of lookupcache mount option + - nfs(5): Remove trailing blanks + - Added nfs41 support to nfssat + - Added support for mount to us a configuration file. + +* Fri Aug 14 2009 Steve Dickson 1.2.0-9 +- Added upstream 1.2.1-rc3 patch + - Add IPv6 support to nfsd + - Allow nfssvc_setfds to properly deal with AF_INET6 + - Convert nfssvc_setfds to use getaddrinfo + - Move check for active knfsd to helper function + - Declare a static common buffer for nfssvc.c routine + - Convert rpc.nfsd to use xlog() and add --debug and --syslog options + +* Tue Jul 28 2009 Steve Dickson 1.2.0-8 +- Fixed 4.1 versioning problem (bz 512377) + +* Wed Jul 15 2009 Steve Dickson 1.2.0-7 +- Added upstream 1.2.1-rc2 patch + - A large number of mount command changes. + +* Mon Jul 13 2009 Steve Dickson 1.2.0-6 +- Added NFSD v4 dynamic pseudo root patch which allows + NFS v3 exports to be mounted by v4 clients. + +* Mon Jun 29 2009 Steve Dickson 1.2.0-5 +- Stopped rpc.idmapd from spinning (bz 508221) + +* Mon Jun 22 2009 Steve Dickson 1.2.0-4 +- Added upstream 1.2.1-rc1 patch + - Fix to check in closeall() + - Make --enable-tirpc the default + - Set all verbose types in gssd daemons + - Retry exports if getfh() fails + +* Wed Jun 10 2009 Steve Dickson 1.2.0-3 +- Updated init scripts to add dependencies + on other system facilities (bz 475133) + +* Wed Jun 10 2009 Steve Dickson 1.2.0-2 +- nfsnobody gid is wrong (bz 485379) + +* Tue Jun 2 2009 Steve Dickson 1.2.0-1 +- Updated to latest upstream release: 1.2.0 + +* Tue May 19 2009 Tom "spot" Callaway 1.1.6-4 +- Replace the Sun RPC license with the BSD license, with the explicit permission of Sun Microsystems + +* Mon May 18 2009 Steve Dickson 1.1.6-3 +- Added upstream 1.1.7-rc1 patch + - utils/nfsd: add support for minorvers4 + - sm-notify: Don't orphan addrinfo structs + - sm-notify: Failed DNS lookups should be retried + - mount: remove legacy version of nfs_name_to_address() + - compiling error in rpcgen + - nfs-utils: Fix IPv6 support in support/nfs/rpc_socket.c + - umount.nfs: Harden umount.nfs error reportin + +* Mon Apr 27 2009 Steve Dickson 1.1.6-2 +- nfslock.init: options not correctly parsed (bz 459591) + +* Mon Apr 20 2009 Steve Dickson 1.1.6-1 +- Updated to latest upstream release: 1.1.6 + +* Mon Mar 23 2009 Steve Dickson 1.1.5-4 +- Added upstream rc3 patch + - gssd: initialize fakeseed in prepare_krb5_rfc1964_buffer + - gssd: NULL-terminate buffer after read in read_service_info (try #2) + - gssd: free buffer allocated by gssd_k5_err_msg + - gssd: fix potential double-frees in gssd + - Removed a number of warn_unused_result warnings + +* Mon Mar 16 2009 Steve Dickson 1.1.5-3 +- Added upstream rc2 patch + +* Fri Mar 6 2009 Steve Dickson 1.1.5-2 +- Fixed lockd not using settings in sysconfig/nfs (bz 461043) +- Fixed some lost externs in the tcpwrapper code + +* Thu Mar 5 2009 Steve Dickson 1.1.5-1 +- Updated to latest upstream version: 1.1.5 + +* Wed Mar 4 2009 Steve Dickson 1.1.4-21 +- configure: fix AC_CACHE_VAL warnings + +* Wed Feb 25 2009 Fedora Release Engineering - 1:1.1.4-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Feb 18 2009 Steve Dickson 1.1.4-19 +- Exportfs and rpc.mountd optimalization (bz 76643) + +* Tue Feb 17 2009 Steve Dickson 1.1.4-18 +- umount.nfs command: Add an AF_INET6-capable version of nfs_call_unmount() +- umount.nfs command: Support AF_INET6 server addresses +- umount command: remove do_nfs_umount23 function + +* Tue Feb 17 2009 Steve Dickson 1.1.4-17 +- Integrated the upstream fix for bz 483375 +- mount: segmentation faults on UDP mounts (bz 485448) + +* Sat Jan 31 2009 Steve Dickson 1.1.4-16 +- Fixed typo in -mount-textbased.patch (bz 483375) + +* Sat Jan 31 2009 Steve Dickson 1.1.4-15 +- Reworked tcp wrapper code to correctly use API (bz 480223) +- General clean up of tcp wrapper code. + +* Tue Jan 27 2009 Steve Dickson 1.1.4-14 +- text-based mount command: make po_rightmost() work for N options +- text-based mount command: Function to stuff "struct pmap" from mount options +- text-based mount options: Use new pmap stuffer when rewriting mount options +- text-based mount command: fix mount option rewriting logic +- text-based mount command: support AF_INET6 in rewrite_mount_options() + +* Tue Jan 20 2009 Steve Dickson 1.1.4-13 +- mountd: Don't do tcp wrapper check when there are no rules (bz 448898) + +* Wed Jan 7 2009 Steve Dickson 1.1.4-12 +- configure: Remove inet_ntop(3) check from configure.ac +- configure: Add new build option "--enable-tirpc" +- showmount command: Quiesce warning when TI-RPC is disabled + +* Sat Jan 3 2009 Steve Dickson 1.1.4-11 +- Added warnings to tcp wrapper code when mounts are + denied due to misconfigured DNS configurations. +- gssd: By default, don't spam syslog when users' credentials expire +- mount: revert recent fix for build problems on old systems +- mount: use gethostbyname(3) when building on old systems +- mount: getport: don't use getaddrinfo(3) on old systems +- mount: Random clean up +- configure: use "--disable-uuid" instead of "--without-uuid" + +* Fri Dec 19 2008 Steve Dickson 1.1.4-10 +- Re-enabled and fixed/enhanced tcp wrappers. + +* Wed Dec 17 2008 Steve Dickson 1.1.4-9 +- text-based mount command: add function to parse numeric mount options +- text-based mount command: use po_get_numeric() for handling retry +- sm-notify command: fix a use-after-free bug +- statd: not unlinking host files + +* Thu Dec 11 2008 Steve Dickson 1.1.4-8 +- mount command: AF_INET6 support for probe_bothports() +- mount command: support AF_INET6 in probe_nfsport() and probe_mntport() +- mount command: full support for AF_INET6 addresses in probe_port() +- gssd/svcgssd: add support to retrieve actual context expiration +- svcgssd: use the actual context expiration for cache + +* Sat Dec 6 2008 Steve Dickson 1.1.4-7 +- sm-notify: always exiting without any notification. + +* Tue Dec 2 2008 Steve Dickson 1.1.4-6 +- mount command: remove local getport() implementation +- mount command: Replace clnt_ping() and getport() calls in probe_port() +- mount command: Use nfs_error() instead of perror() +- mount command: Use nfs_pmap_getport() in probe_statd() + +* Mon Dec 1 2008 Steve Dickson 1.1.4-5 +- Make sure /proc/fs/nfsd exists when the nfs init script + does the exports (bz 473396) +- Fixed typo in nfs init script that caused rpc.rquotad daemons + to be started but not stoppped (bz 473929) + +* Wed Nov 26 2008 Steve Dickson 1.1.4-4 +- gssd: unblock DNOTIFY_SIGNAL in case it was blocked +- Ensure statd gets started if required when non-root + user mounts an NFS filesystem + +* Tue Nov 25 2008 Steve Dickson 1.1.4-3 +- Give showmount support for querying via rpcbindv3/v4 + +* Tue Nov 18 2008 Steve Dickson 1.1.4-2 +- Add AF_INET6-capable API to acquire an RPC CLIENT +- Introduce rpcbind client utility functions + +* Sat Oct 18 2008 Steve Dickson 1.1.4-1 +- Updated to latest upstream version: 1.1.4 + +* Tue Oct 14 2008 Steve Dickson 1.1.3-6 +- sm-notify exists when there are no hosts to notify + +* Thu Sep 18 2008 Steve Dickson 1.1.3-5 +- Reworked init scripts so service will be able to + stop when some of the checks fail. (bz 462508) +- Pre-load nfsd when args to rpc.nfsd are given (bz 441983) + +* Thu Aug 28 2008 Steve Dickson 1.1.3-4 +- Added in a number of up upstream patches (101 thru 110). + +* Mon Aug 11 2008 Tom "spot" Callaway 1.1.3-3 +- fix license tag + +* Thu Jul 31 2008 Steve Dickson 1.1.3-2 +- Mount command did not compile against older glibc versions. + +* Mon Jul 28 2008 Steve Dickson 1.1.3-1 +- Updated to latest upstream version: 1.1.3 + +* Wed Jul 2 2008 Steve Dickson 1.1.2-12 +- Changed the default directories for sm-notify (bz 435480) +- Added 'condstop' to init scripts so service are not + started when nfs-utils is removed. + +* Mon Jun 30 2008 Dennis Gilmore 1.1.2-11 +- add sparc arch handling + +* Mon Jun 30 2008 Steve Dickson 1.1.2-10 +- Rebuild for the updated libevent lib. + +* Fri Jun 27 2008 Steve Dickson 1.1.2-9 +- Removed the nfslock service start/stop from %%post section + (bz 453046) + +* Wed Jun 25 2008 Steve Dickson 1.1.2-8 +- FQDNs in the rmtab causes exportfs to seg fault (bz 444275) + +* Mon Jun 23 2008 Steve Dickson 1.1.2-7 +- Added -D_FILE_OFFSET_BITS=64 to CFLAGS +- make nfsstat read and print stats as unsigned integers +- Added (but not installed) the mountstats and nfs-iostat + python scripts. + +* Fri Jun 6 2008 Steve Dickson 1.1.2-6 +- Added 5 (111 thru 115) upstream patches that fixed + things mostly in the text mounting code. + +* Thu May 8 2008 Steve Dickson 1.1.2-5 +- Added 10 (101 thru 110) upstream patches that fixed + things mostly in the mount and gssd code. + +* Wed May 7 2008 Steve Dickson 1.1.2-4 +- Added ppc arch to the all_32bit_archs list (bz 442847) + +* Wed Apr 23 2008 Steve Dickson 1.1.2-3 +- Documented how to turn off/on protocol support for + rpc.nfsd in /etc/sysconfig/nfs (bz443625) +- Corrected the nfslock initscript 'status' return code (bz 441605) +- Removed obsolete code from the nfslock initscript (bz 441604) + +* Mon Apr 14 2008 Steve Dickson 1.1.2-2 +- Make EACCES a non fatal error (bz 439807) + +* Tue Mar 25 2008 Steve Dickson 1.1.2-1 +- Upgrade to nfs-utils-1.1.2 + +* Mon Mar 3 2008 Steve Dickson 1.1.1-5 +- Stopped mountd from incorrectly logging an error + (commit 9dd9b68c4c44f0d9102eb85ee2fa36a8b7f638e3) +- Stop gssd from ignoring the machine credential caches + (commit 46d439b17f22216ce8f9257a982c6ade5d1c5931) +- Fixed typo in the nfsstat command line arugments. + (commit acf95d32a44fd8357c24e8a04ec53fc6900bfc58) +- Added test to stop buffer overflow in idmapd + (commit bcd0fcaf0966c546da5043be700587f73174ae25) + +* Sat Feb 9 2008 Steve Dickson 1.1.1-4 +- Cleaned up some typos that were found in the various + places in the mountd code + +* Thu Jan 24 2008 Steve Dickson 1.1.1-3 +- Added in relatime mount option so mount.nfs stays + compatible with the mount command in util-linux-ng (bz 274301) + +* Tue Jan 22 2008 Steve Dickson 1.1.1-2 +- Added -S/--since to the nfsstat(1) manpage +- The wording in the exportfs man page can be a bit confusing, implying + that "exportfs -u :/foo" will unexport /foo from all hosts, which it won't +- Removed nfsprog option since the kernel no longer supports it. +- Removed mountprog option since the kernel no longer supports it. +- Stop segfaults on amd64 during warnings messages. +- Fix bug when both crossmnt and fsid are set. + +* Sat Jan 5 2008 Steve Dickson 1.1.1-1 +- Updated to latest upstream release, nfs-utils-1.1.1 +- Added the removal of sm-notify.pid to nfslock init script. +- Changed spec file to use condrestart instead of condstop + when calling init scripts. +- Fixed typo in rpc.mountd man page +- Turn on 'nohide' automatically for all refer exports (bz 313561) + +* Tue Dec 04 2007 Release Engineering - 1.1.0-7 + - Rebuild for openldap bump + +* Wed Oct 17 2007 Steve Dickson 1.1.0-6 +- Switch the libgssapi dependency to libgssglue + +* Fri Sep 14 2007 Steve Dickson 1.1.0-5 +- Changed the default paths in sm-notify to + /var/lib/nfs/statd (bz 258461) +- Updated exportfs manpage (bz 262861) + +* Wed Aug 15 2007 Steve Dickson 1.1.0-4 +- Make sure the open() system calling in exportfs uses + mode bits when creating the etab file (bz 252440). + +* Mon Aug 13 2007 Steve Dickson 1.1.0-3 +- Added nosharecache mount option which re-enables + rw/ro mounts to the same server (bz 243913). + +* Thu Aug 2 2007 Steve Dickson 1.1.0-2 +- Make sure the gss and idmap daemons remove thier lock + files when they are stopped. + +* Sat Jul 28 2007 Steve Dickson 1.1.0-1 +- Upgraded to the latest upstream version (nfs-utils-1.1.0) + +* Thu May 24 2007 Steve Dickson 1.0.10-7 +- Fixed typo in mount.nfs4 that causes a segfault during + error processing (bz 241190) + +* Tue May 22 2007 Steve Dickson 1.0.10-6 +- Make sure the condrestarts exit with a zero value (bz 240225) +- Stopped /etc/sysconfig/nfs from being overwritten on updates (bz 234543) +- Added -o nordirplus mount option to disable READDIRPLUS (bz 240357) +- Disabled the FSCache patch, for now... + +* Thu May 10 2007 Steve Dickson 1.0.12-5 +- Fix mount.nfs4 to display correct error message (bz 227212) +- Updated mountd and showmount reverse lookup flags (bz 220772) +- Eliminate timeout on nfsd shutdowns (bz 222001) +- Eliminate memory leak in mountd (bz 239536) +- Make sure statd uses correct uid/gid by chowning + the /var/lib/nfs/statd with the rpcuser id. (bz 235216) +- Correct some sanity checking in rpc.nfsd. (bz 220887) +- Added missing unlock_mtab() call in moutnd +- Have mountd hold open etab file to force inode number to change (bz 236823) +- Create a /etc/sysconfig/nfs with all the possible init script + variables (bz 234543) +- Changed nfs initscript to exit with correct value (bz 221874) + +* Tue Apr 3 2007 Steve Dickson 1.0.12-4 +- Replace portmap dependency with an rpcbind dependency (bz 228894) + +* Mon Mar 12 2007 Steve Dickson 1.0.12-3 +- Incorporated Merge Review comments (bz 226198) + +* Fri Mar 9 2007 Steve Dickson 1.0.12-2 +- Added condstop to all the initscripts (bz 196934) +- Made no_subtree_check a default export option (bz 212218) + +* Tue Mar 6 2007 Steve Dickson 1.0.12-1 +- Upgraded to 1.0.12 +- Fixed typo in Summary. + +* Thu Mar 1 2007 Karel Zak 1.0.11-2 +- Fixed mount.nfs -f (fake) option (bz 227988) + +* Thu Feb 22 2007 Steve Dickson 1.0.11-1 +- Upgraded to 1.0.11 + +* Wed Feb 21 2007 Steve Dickson 1.0.10-7 +- Added FS_Location support + +* Mon Dec 18 2006 Karel Zak 1.0.10-6 +- add support for mount options that contain commas (bz 219645) + +* Wed Dec 13 2006 Steve Dickson 1.0.10-5 +- Stopped v4 umounts from ping rpc.mountd (bz 215553) + +* Tue Nov 28 2006 Steve Dickson 1.0.10-4 +- Doing a connect on UDP sockets causes the linux network + stack to reject UDP patches from multi-home server with + nic on the same subnet. (bz 212471) + +* Wed Nov 15 2006 Steve Dickson 1.0.10-3 +- Removed some old mounting versioning code that was + stopping tcp mount from working (bz 212471) + +* Tue Oct 31 2006 Steve Dickson 1.0.10-2 +- Fixed -o remount (bz 210346) +- fix memory leak in rpc.idmapd (bz 212547) +- fix use after free bug in dirscancb (bz 212547) +- Made no_subtree_check a default export option (bz 212218) + +* Wed Oct 25 2006 Steve Dickson 1.0.10-1 +- Upgraded to 1.0.10 + +* Mon Oct 16 2006 Steve Dickson 1.0.9-10 +- Fixed typo in nfs man page (bz 210864). + +* Fri Oct 13 2006 Steve Dickson 1.0.9-9 +- Unable to mount NFS V3 share where sec=none is specified (bz 210644) + +* Tue Sep 26 2006 Steve Dickson 1.0.9-8 +- mount.nfs was not returning a non-zero exit value + on failed mounts (bz 206705) + +* Wed Sep 20 2006 Karel Zak 1.0.9-7 +- Added support for the mount -s (sloppy) option (#205038) +- Added nfs.5 man page from util-linux +- Added info about [u]mount.nfs to the package description + +* Mon Sep 11 2006 1.0.9-6 +- Removed the compiling of getiversion and getkversion since + UTS_RELEASE is no longer defined and these binary are + not installed. + +* Fri Aug 18 2006 1.0.9-5 +- Changed gssd daemons to cache things in memory + instead of /tmp which makes selinux much happier. + (bz 203078) + +* Wed Aug 16 2006 1.0.9-4 +- Allow variable for HA callout program in /etc/init.d/nfslock + (bz 202790) + +* Wed Aug 02 2006 1.0.9-3 +- add epoch (#196359) + +* Fri Jul 28 2006 1.0.9-2 +- Enabled the creating of mount.nfs and umount.nfs binaries +- Added mount option fixes suggested by upstream. +- Fix lazy umounts (bz 169299) +- Added -o fsc mount option. + +* Mon Jul 24 2006 1.0.9-1 +- Updated to 1.0.9 release + +* Wed Jul 12 2006 Jesse Keating - 1:1.0.8-5.1 +- rebuild + +* Sun Jul 2 2006 1:1.0.8-5 +- Introduce epoch to fix upgrade path + +* Sat Jul 1 2006 1.0.8-3 +- Fixed typos in /etc/rc.d/init.d/nfs file (bz 184486) + +* Fri Jun 30 2006 1.0.8-3 +- Split the controlling of nfs version, ports, and protocol + into two different patches +- Fixed and added debugging statements to rpc.mountd. +- Fixed -p arg to work with priviledged ports (bz 156655) +- Changed nfslock initscript to set LOCKD_TCPPORT and + LOCKD_UDPPORT (bz 162133) +- Added MOUNTD_NFS_V1 variable to version 1 of the + mount protocol can be turned off. (bz 175729) +- Fixed gssd to handel mixed case characters in + the domainname. (bz 186069) + +* Wed Jun 21 2006 1.0.8-2 +- Updated to nfs-utils-1.0.8 + +* Thu Jun 8 2006 1.0.8.rc4-1 +- Upgraded to the upstream 1.0.8.rc4 version + +* Fri Feb 10 2006 Jesse Keating - 1.0.8.rc2-4.FC5.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 1.0.8.rc2-4.FC5.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Fri Jan 20 2006 Steve Dickson 1.0.8.rc2-4.FC5 +- Added new libnfsidmap call, nfs4_set_debug(), to rpc.idmapd + which turns on debugging in the libarary. + +* Mon Jan 16 2006 Steve Dickson 1.0.8.rc2-3.FC5 +- Added innetgr patch that changes configure scripts to + check for the innetgr function. (bz 177899) + +* Wed Jan 11 2006 Peter Jones 1.0.8.rc2-2.FC5 +- Fix lockfile naming in the initscripts so they're stopped correctly. + +* Mon Jan 9 2006 Steve Dickson 1.0.8.rc2-1.FC5 +- Updated to 1.0.8-rc2 release +- Broke out libgssapi into its own rpm +- Move librpcsecgss and libnfsidmap in the new nfs-utils-lib rpm +- Removed libevent code; Required to be installed. + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Sun Oct 23 2005 Steve Dickson 1.0.7-19 +- Updated to latest code in SourceForge CVS +- Updated to latest CITI patches (1.0.7-4) +- Fix bug in nfsdreopen by compiling in server defaults + +* Thu Sep 22 2005 Steve Dickson 1.0.7-18 +- Updated libnfsidmap to 0.11 +- Updated libgssapi to 0.5 +- Made sure the gss daemons and new libs are + all using the same include files. +- Removed code from the tree that is no longer used. +- Add ctlbits patch that introduced the -N -T and -U + command line flags to rpc.nfsd. + +* Sun Sep 18 2005 Steve Dickson 1.0.7-17 +- Updated to latest nfs-utils code in upstream CVS tree +- Updated libevent from 1.0b to 1.1a +- Added libgssapi-0.4 and librpcsecgss-0.6 libs from CITI + +* Thu Sep 8 2005 Steve Dickson 1.0.7-16 +- Reworked the nfslock init script so if lockd is running + it will be killed which is what the HA community needs. (bz 162446) +- Stopped rpcidmapd.init from doing extra echoing when + condstart-ed. + +* Wed Aug 24 2005 Peter Jones - 1.0.7-15 +- don't strip during "make install", so debuginfo packages are generated right + +* Thu Aug 18 2005 Florian La Roche +- no need to still keep a requirement for kernel-2.2 or newer + +* Tue Aug 16 2005 Steve Dickson 1.0.7-13 +- Changed mountd to use stat64() (bz 165062) + +* Tue Aug 2 2005 Steve Dickson 1.0.7-12 +- Changed useradd to use new -l flag (bz149407) +- 64bit fix in gssd code (bz 163139) +- updated broken dependencies +- updated rquotad to compile with latest + quota version. + +* Thu May 26 2005 Steve Dickson 1.0.7-8 +- Fixed subscripting problem in idmapd (bz 158188) + +* Thu May 19 2005 Steve Dickson 1.0.7-7 +- Fixed buffer overflow in rpc.svcgssd (bz 114288) + +* Wed Apr 13 2005 Steve Dickson 1.0.7-6 +- Fixed misformated output from nfslock script (bz 154648) + +* Tue Mar 29 2005 Steve Dickson 1.0.7-4 +- Fixed a compile error on x86_64 machines in the gss code. +- Updated the statd-notify-hostname.patch to eliminate + a segmentation fault in rpc.statd when an network + interface was down. (bz 151828) + +* Sat Mar 19 2005 Steve Dickson 1.0.7-3 +- Changed xlog to use LOG_INFO instead of LOG_DEBUG + so debug messages will appear w/out any config + changes to syslog.conf. +- Reworked how /etc/exports is setup (bz 151389) + +* Wed Mar 2 2005 Steve Dickson 1.0.7-2 +- Tied the rpcsecgss debugging in with gssd and + svcgssd debugging + +* Mon Feb 14 2005 Steve Dickson +- Added support to rpcgssd.init and rpcsvcgssd.init scripts + to insmod security modules. +- Changed the nfs.init script to bring rpc.svcgssd up and down, + since rpc.svcgssd is only needed with the NFS server is running. + +* Tue Dec 14 2004 Steve Dickson +- Fix problem in idmapd that was causing "xdr error 10008" + errors (bz 142813) +- make sure the correct hostname is used in the SM_NOTIFY + message that is sent from a rebooted server which has + multiple network interfaces. (bz 139101) + +- Changed nfslock to send lockd a -KILL signal + when coming down. (bz 125257) + +* Thu Nov 11 2004 Steve Dickson +- Replaced a memcopy with explicit assignments + in getquotainfo() of rquotad to fix potential overflow + that can occur on 64bit machines. (bz 138068) + +* Mon Nov 8 2004 Steve Dickson +- Updated to latest sourceforge code +- Updated to latest CITIT nfs4 patches + +* Sun Oct 17 2004 Steve Dickson +- Changed nfs.init to bring down rquotad correctly + (bz# 136041) + +* Thu Oct 14 2004 Steve Dickson +- Added "$RQUOTAD_PORT" variable to nfs.init which + allows the rpc.rquotad to use a predefined port + (bz# 124676) + +* Fri Oct 1 2004 +- Make sure the uid/gid of nfsnobody is the + correct value for all archs (bz# 123900) +- Fixed some security issues found by SGI (bz# 133556) + +* Mon Aug 30 2004 Steve Dickson +- Major clean up. +- Removed all unused/old patches +- Rename and condensed a number of patches +- Updated to CITI's nfs-utils-1.0.6-13 patches + +* Tue Aug 10 2004 Bill Nottingham +- move if..fi condrestart stanza to %%postun (#127914, #128601) + +* Wed Jun 16 2004 +- nfslock stop is now done on package removals +- Eliminate 3 syslog messages that are logged for + successful events. + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Mon Jun 14 2004 +- Fixed syntax error in nfs initscripts when + NETWORKING is not defined +- Removed sync warning on readonly exports. +- Changed run levels in rpc initscripts. +- Replaced modinfo with lsmod when checking + for loaded modules. + +* Tue Jun 1 2004 +- Changed the rpcgssd init script to ensure the + rpcsec_gss_krb5 module is loaded + +* Tue May 18 2004 +- Removed the auto option from MOUNTD_NFS_V2 and + MOUNTD_NFS_V3 variables. Since v2 and v3 are on + by default, there only needs to be away of + turning them off. + +* Mon May 10 2004 +- Rebuilt + +* Thu Apr 15 2004 +- Changed the permission on idmapd.conf to 644 +- Added mydaemon code to svcgssd +- Updated the add_gssd.patch from upstream + +* Wed Apr 14 2004 +- Created a pipe between the parent and child so + the parent process can report the correct exit + status to the init scripts +- Added SIGHUP processing to rpc.idmapd and the + rpcidmapd init script. + +* Mon Mar 22 2004 +- Make sure check_new_cache() is looking in the right place + +* Wed Mar 17 2004 +- Changed the v4 initscripts to use $prog for the + arugment to daemon + +* Tue Mar 16 2004 +- Made the nfs4 daemons initscripts work better when + sunrpc is not a module +- added more checks to see if modules are being used. + +* Mon Mar 15 2004 +- Add patch that sets up gssapi_mech.conf correctly + +* Fri Mar 12 2004 +- Added the shutting down of the rpc v4 daemons. +- Updated the Red Hat only patch with some init script changes. + +* Thu Mar 11 2004 Bill Nottingham +- rpc_pipefs mounting and aliases are now in modutils; require that + +* Thu Mar 11 2004 +- Updated the gssd patch. + +* Sun Mar 7 2004 +- Added the addition and deletion of rpc_pipefs to /etc/fstab +- Added the addition and deletion of module aliases to /etc/modules.conf + +* Mon Mar 1 2004 +- Removed gssd tarball and old nfsv4 patch. +- Added new nfsv4 patches that include both the + gssd and idmapd daemons +- Added redhat-only v4 patch that reduces the + static librpc.a to only contain gss rpc related + routines (I would rather have gssd use the glibc + rpc routines) +-Changed the gssd svcgssd init scripts to only + start up if SECURE_NFS is set to 'yes' in + /etc/sysconfig/nfs + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Thu Feb 12 2004 Thomas Woerner +- make rpc.lockd, rpc.statd, rpc.mountd and rpc.nfsd pie + +* Wed Jan 28 2004 Steve Dickson +- Added the NFSv4 bits + +* Mon Dec 29 2003 Steve Dickson +- Added the -z flag to nfsstat + +* Wed Dec 24 2003 Steve Dickson +- Fixed lockd port setting in nfs.int script + +* Wed Oct 22 2003 Steve Dickson +- Upgrated to 1.0.6 +- Commented out the acl path for fedora + +* Wed Aug 27 2003 Steve Dickson +- Added the setting of lockd ports via sysclt interface +- Removed queue setting code since its no longer needed + +* Thu Aug 7 2003 Steve Dickson +- Added back the acl patch Taroon b2 + +* Wed Jul 23 2003 Steve Dickson +- Commented out the acl patch (for now) + +* Mon Jul 21 2003 Steve Dickson +- Upgrated to 1.0.5 + +* Wed Jun 18 2003 Steve Dickson +- Added security update +- Fixed the drop-privs.patch which means the chroot +patch could be removed. + +* Mon Jun 9 2003 Steve Dickson +- Defined the differ kinds of debugging avaliable for mountd in +the mountd man page. + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Tue Jun 3 2003 Steve Dickson +- Upgraded to 1.0.3 +- Fixed numerous bugs in init scrips +- Added nfsstat overflow patch + +* Thu Jan 23 2003 Tim Powers 1.0.1-2.9 +- rebuild + +* Fri Dec 13 2002 Daniel J Walsh +- change init script to not start rpc.lock if already running + +* Wed Dec 11 2002 Daniel J Walsh +- Moved access code to be after dropping privs + +* Mon Nov 18 2002 Stephen C. Tweedie +- Build with %%configure +- Add nhfsgraph, nhfsnums and nhfsrun to the files list + +* Mon Nov 11 2002 Stephen C. Tweedie +- Don't drop privs until we've bound the notification socket + +* Thu Nov 7 2002 Stephen C. Tweedie +- Ignore SIGPIPE in rpc.mountd + +* Thu Aug 1 2002 Bob Matthews +- Add Sean O'Connell's nfs control tweaks +- to nfs init script. + +* Mon Jul 22 2002 Bob Matthews +- Move to nfs-utils-1.0.1 + +* Mon Feb 18 2002 Bob Matthews +- "service nfs restart" should start services even if currently +- not running (#59469) +- bump version to 0.3.3-4 + +* Wed Oct 3 2001 Bob Matthews +- Move to nfs-utils-0.3.3 +- Make nfsnobody a system account (#54221) + +* Tue Aug 21 2001 Bob Matthews +- if UID 65534 is unassigned, add user nfsnobody (#22685) + +* Mon Aug 20 2001 Bob Matthews +- fix typo in nfs init script which prevented MOUNTD_PORT from working (#52113) + +* Tue Aug 7 2001 Bob Matthews +- nfs init script shouldn't fail if /etc/exports doesn't exist (#46432) + +* Fri Jul 13 2001 Bob Matthews +- Make %%pre useradd consistent with other Red Hat packages. + +* Tue Jul 03 2001 Michael K. Johnson +- Added sh-utils dependency for uname -r in nfs init script + +* Tue Jun 12 2001 Bob Matthews +- make non RH kernel release strings scan correctly in +- nfslock init script (#44186) + +* Mon Jun 11 2001 Bob Matthews +- don't install any rquota pages in _mandir: (#39707, #44119) +- don't try to manipulate rpc.rquotad in init scripts +- unless said program actually exists: (#43340) + +* Tue Apr 10 2001 Preston Brown +- don't translate initscripts for 6.x + +* Tue Apr 10 2001 Michael K. Johnson +- do not start lockd on kernel 2.2.18 or higher (done automatically) + +* Fri Mar 30 2001 Preston Brown +- don't use rquotad from here now; quota package contains a version that + works with 2.4 (#33738) + +* Mon Mar 12 2001 Bob Matthews +- Statd logs at LOG_DAEMON rather than LOG_LOCAL5 +- s/nfs/\$0/ where appropriate in init scripts + +* Tue Mar 6 2001 Jeff Johnson +- Move to nfs-utils-0.3.1 + +* Wed Feb 14 2001 Bob Matthews +- #include patch + +* Mon Feb 12 2001 Bob Matthews +- Really enable netgroups + +* Mon Feb 5 2001 Bernhard Rosenkraenzer +- i18nize initscripts + +* Fri Jan 19 2001 Bob Matthews +- Increased {s,r}blen in rpcmisc.c:makesock to accommodate eepro100 + +* Tue Jan 16 2001 Bob Matthews +- Hackish fix in build section to enable netgroups + +* Wed Jan 3 2001 Bob Matthews +- Fix incorrect file specifications in statd manpage. +- Require gawk 'cause it's used in nfslock init script. + +* Wed Dec 13 2000 Bob Matthews +- Require sed because it's used in nfs init script + +* Tue Dec 12 2000 Bob Matthews +- Don't do a chroot(2) after dropping privs, in statd. + +* Mon Dec 11 2000 Bob Matthews +- NFSv3 if kernel >= 2.2.18, detected in init script + +* Thu Nov 23 2000 Florian La Roche +- update to 0.2.1 + +* Tue Nov 14 2000 Bill Nottingham +- don't start lockd on 2.4 kernels; it's unnecessary + +* Tue Sep 5 2000 Florian La Roche +- more portable fix for mandir + +* Sun Sep 3 2000 Florian La Roche +- update to 0.2-release + +* Fri Sep 1 2000 Florian La Roche +- fix reload script + +* Thu Aug 31 2000 Florian La Roche +- update to 0.2 from CVS +- adjust statd-drop-privs patch +- disable tcp_wrapper support + +* Wed Aug 2 2000 Bill Nottingham +- fix stop priority of nfslock + +* Tue Aug 1 2000 Bill Nottingham +- um, actually *include and apply* the statd-drop-privs patch + +* Mon Jul 24 2000 Bill Nottingham +- fix init script ordering (#14502) + +* Sat Jul 22 2000 Bill Nottingham +- run statd chrooted and as non-root +- add prereqs + +* Tue Jul 18 2000 Trond Eivind Glomsrød +- use "License", not "Copyright" +- use %%{_tmppath} and %%{_mandir} + +* Mon Jul 17 2000 Matt Wilson +- built for next release + +* Mon Jul 17 2000 Matt Wilson +- 0.1.9.1 +- remove patch0, has been integrated upstream + +* Wed Feb 9 2000 Bill Nottingham +- the wonderful thing about triggers, is triggers are wonderful things... + +* Thu Feb 03 2000 Cristian Gafton +- switch to nfs-utils as the base tree +- fix the statfs patch for the new code base +- single package that obsoletes everything we had before (if I am to keep + some traces of my sanity with me...) + +* Mon Jan 17 2000 Preston Brown +- use statfs syscall instead of stat to determinal optimal blksize