Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nfs-utils for openSUSE:Factory checked in at 2022-03-11 21:39:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nfs-utils (Old) and /work/SRC/openSUSE:Factory/.nfs-utils.new.25692 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nfs-utils" Fri Mar 11 21:39:59 2022 rev:168 rq:960295 version:unknown Changes: -------- --- /work/SRC/openSUSE:Factory/nfs-utils/nfs-utils.changes 2021-11-04 16:16:16.693281922 +0100 +++ /work/SRC/openSUSE:Factory/.nfs-utils.new.25692/nfs-utils.changes 2022-03-11 21:40:01.442016488 +0100 @@ -1,0 +2,20 @@ +Tue Mar 8 20:58:54 UTC 2022 - Dirk M??ller <dmuel...@suse.com> + +- add reenable-nfsv2.patch for reverting nfsv2 deprecation until + test coverage is fixed (poo#106679) + +------------------------------------------------------------------- +Thu Mar 3 10:08:47 UTC 2022 - Martin Li??ka <mli...@suse.cz> + +- Add gcc12-fix.patch upstream fix for GCC 12 compiler. + +------------------------------------------------------------------- +Mon Jan 31 07:24:41 UTC 2022 - Petr Vorel <pvo...@suse.cz> + +- Update to version 2.6.1 + - https://kernel.org/pub/linux/utils/nfs-utils/2.6.1/2.6.1-Changelog +- remove patches from this release: + - 0001-gssd-fix-crash-in-debug-message.patch, + - Add-disable-sbin-override-for-when-sbin-is-a-symlink.patch + +------------------------------------------------------------------- Old: ---- 0001-gssd-fix-crash-in-debug-message.patch Add-disable-sbin-override-for-when-sbin-is-a-symlink.patch nfs-utils-2.5.4.tar.xz New: ---- gcc12-fix.patch nfs-utils-2.6.1.tar.xz reenable-nfsv2.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nfs-utils.spec ++++++ --- /var/tmp/diff_new_pack.aQiQya/_old 2022-03-11 21:40:02.230017049 +0100 +++ /var/tmp/diff_new_pack.aQiQya/_new 2022-03-11 21:40:02.234017051 +0100 @@ -1,7 +1,7 @@ # # spec file for package nfs-utils # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -22,7 +22,7 @@ %endif Name: nfs-utils -Version: 2.5.4 +Version: 2.6.1 Release: 0 Summary: Support Utilities for Kernel nfsd License: GPL-2.0-or-later @@ -42,9 +42,8 @@ Source26: nfs.conf Source27: nfs-kernel-server.tmpfiles.conf Patch0: nfs-utils-1.0.7-bind-syntax.patch -Patch1: 0001-gssd-fix-crash-in-debug-message.patch -Patch2: Add-disable-sbin-override-for-when-sbin-is-a-symlink.patch - +Patch1: gcc12-fix.patch +Patch2: reenable-nfsv2.patch BuildRequires: e2fsprogs-devel BuildRequires: gcc-c++ BuildRequires: libtool ++++++ gcc12-fix.patch ++++++ >From 7f8463fe702174bd613df9d308cc899af25ae02e Mon Sep 17 00:00:00 2001 From: Steve Dickson <ste...@redhat.com> Date: Wed, 23 Feb 2022 15:19:51 -0500 Subject: [PATCH] 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 <ste...@redhat.com> --- systemd/rpc-pipefs-generator.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/systemd/rpc-pipefs-generator.c b/systemd/rpc-pipefs-generator.c index c24db56..7b2bb4f 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)); - 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) { -- 1.8.3.1 ++++++ nfs-utils-2.5.4.tar.xz -> nfs-utils-2.6.1.tar.xz ++++++ ++++ 2059 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/configure.ac new/nfs-utils-2.6.1/configure.ac --- old/nfs-utils-2.5.4/configure.ac 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/configure.ac 2022-01-10 16:07:16.000000000 +0100 @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. dnl -AC_INIT([linux nfs-utils],[2.5.4],[linux-...@vger.kernel.org],[nfs-utils]) +AC_INIT([linux nfs-utils],[2.6.1],[linux-...@vger.kernel.org],[nfs-utils]) AC_CANONICAL_BUILD([]) AC_CANONICAL_HOST([]) AC_CONFIG_MACRO_DIR(aclocal) @@ -187,6 +187,12 @@ enable_libmount=no fi +AC_ARG_ENABLE(sbin-override, + [AC_HELP_STRING([--disable-sbin-override], + [Don't force nfsdcltrack and mount helpers into /sbin: always honour --sbindir])], + enable_sbin_override=$enableval, + enable_sbin_override=yes) + AM_CONDITIONAL(CONFIG_SBIN_OVERRIDE, [test "$enable_sbin_override" = "yes"]) AC_ARG_ENABLE(junction, [AC_HELP_STRING([--enable-junction], [enable support for NFS junctions @<:@default=no@:>@])], @@ -688,9 +694,28 @@ AC_SUBST([_sysconfdir]) AC_CONFIG_COMMANDS_PRE([eval eval _sysconfdir=$sysconfdir]) +# make _statedir available for substituion in config files +# 2 "evals" needed late to expand variable names. +AC_SUBST([_statedir]) +AC_CONFIG_COMMANDS_PRE([eval eval _statedir=$statedir]) + +if test "$statedir" = "/var/lib/nfs"; then + rpc_pipefsmount="var-lib-nfs-rpc_pipefs.mount" +else + rpc_pipefsmount="$(systemd-escape -p "$statedir/rpc_pipefs").mount" +fi +AC_SUBST(rpc_pipefsmount) + +# make _rpc_pipefsmount available for substituion in config files +# 2 "evals" needed late to expand variable names. +AC_SUBST([_rpc_pipefsmount]) +AC_CONFIG_COMMANDS_PRE([eval eval _rpc_pipefsmount=$rpc_pipefsmount]) + AC_CONFIG_FILES([ Makefile systemd/rpc-gssd.service + systemd/rpc_pipefs.target + systemd/var-lib-nfs-rpc_pipefs.mount linux-nfs/Makefile support/Makefile support/export/Makefile diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/install-dep new/nfs-utils-2.6.1/install-dep --- old/nfs-utils-2.5.4/install-dep 1970-01-01 01:00:00.000000000 +0100 +++ new/nfs-utils-2.6.1/install-dep 2022-01-10 16:07:16.000000000 +0100 @@ -0,0 +1,21 @@ +#!/bin/bash +#install dependencies for compiling from source code + +#RHEL/Fedora/CentOS-Stream/Rocky +command -v dnf >/dev/null || command -v yum >/dev/null && { + yum install -y automake libtool make gcc rpcgen libtirpc-devel libevent-devel sqlite-devel device-mapper-devel \ + libblkid-devel krb5-devel libuuid-devel +} + +#Debian/ubuntu +command -v apt >/dev/null && { + apt install -o APT::Install-Suggests=0 -o APT::Install-Recommends=0 --ignore-missing -y \ + autotools-dev automake make libtool pkg-config libtirpc-dev libevent-dev libsqlite3-dev \ + libdevmapper-dev libblkid-dev libkrb5-dev libkeyutils-dev uuid-dev +} + +#openSUSE Leap +command -v zypper >/dev/null && { + zypper in --no-recommends -y automake libtool make gcc rpcgen libtirpc-devel libevent-devel sqlite-devel \ + device-mapper-devel libblkid-devel krb5-devel libuuid-devel +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/nfs.conf new/nfs-utils-2.6.1/nfs.conf --- old/nfs-utils-2.5.4/nfs.conf 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/nfs.conf 2022-01-10 16:07:16.000000000 +0100 @@ -68,7 +68,6 @@ # lease-time=90 # udp=n # tcp=y -# vers2=n # vers3=y # vers4=y # vers4.0=y diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/support/export/v4clients.c new/nfs-utils-2.6.1/support/export/v4clients.c --- old/nfs-utils-2.5.4/support/export/v4clients.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/support/export/v4clients.c 2022-01-10 16:07:16.000000000 +0100 @@ -10,6 +10,7 @@ #include <sys/inotify.h> #include <errno.h> #include "export.h" +#include "version.h" /* search.h declares 'struct entry' and nfs_prot.h * does too. Easiest fix is to trick search.h into @@ -23,6 +24,8 @@ void v4clients_init(void) { + if (linux_version_code() < MAKE_VERSION(5, 3, 0)) + return; if (clients_fd >= 0) return; clients_fd = inotify_init1(IN_NONBLOCK); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/support/include/version.h new/nfs-utils-2.6.1/support/include/version.h --- old/nfs-utils-2.5.4/support/include/version.h 1970-01-01 01:00:00.000000000 +0100 +++ new/nfs-utils-2.6.1/support/include/version.h 2022-03-11 21:40:02.578017296 +0100 @@ -0,0 +1 @@ +symbolic link to ../../utils/mount/version.h diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/support/nfs/cacheio.c new/nfs-utils-2.6.1/support/nfs/cacheio.c --- old/nfs-utils-2.5.4/support/nfs/cacheio.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/support/nfs/cacheio.c 2022-01-10 16:07:16.000000000 +0100 @@ -213,7 +213,6 @@ void cache_flush(void) { - struct stat stb; int c; char stime[32]; char path[200]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/support/nfsidmap/nss.c new/nfs-utils-2.6.1/support/nfsidmap/nss.c --- old/nfs-utils-2.5.4/support/nfsidmap/nss.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/support/nfsidmap/nss.c 2022-01-10 16:07:16.000000000 +0100 @@ -365,10 +365,8 @@ 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/support/nfsidmap/regex.c new/nfs-utils-2.6.1/support/nfsidmap/regex.c --- old/nfs-utils-2.5.4/support/nfsidmap/regex.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/support/nfsidmap/regex.c 2022-01-10 16:07:16.000000000 +0100 @@ -157,6 +157,7 @@ IDMAP_LOG(4, ("regexp_getpwnam: name '%s' mapped to '%s'", name, localname)); + free(localname); *err_p = 0; return pw; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/systemd/Makefile.am new/nfs-utils-2.6.1/systemd/Makefile.am --- old/nfs-utils-2.5.4/systemd/Makefile.am 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/systemd/Makefile.am 2022-01-10 16:07:16.000000000 +0100 @@ -12,7 +12,9 @@ rpc-statd-notify.service \ rpc-statd.service \ \ - proc-fs-nfsd.mount \ + proc-fs-nfsd.mount + +rpc_pipefs_mount_file = \ var-lib-nfs-rpc_pipefs.mount if CONFIG_NFSV4 @@ -51,8 +53,7 @@ man7_MANS = nfs.systemd.man EXTRA_DIST = $(unit_files) $(man5_MANS) $(man7_MANS) -unit_dir = /usr/lib/systemd/system -generator_dir = /usr/lib/systemd/system-generators +generator_dir = $(unitdir)/../system-generators EXTRA_PROGRAMS = nfs-server-generator rpc-pipefs-generator genexecdir = $(generator_dir) @@ -75,4 +76,5 @@ install-data-hook: $(unit_files) mkdir -p $(DESTDIR)/$(unitdir) cp $(unit_files) $(DESTDIR)/$(unitdir) + cp $(rpc_pipefs_mount_file) $(DESTDIR)/$(unitdir)/$(rpc_pipefsmount) endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/systemd/rpc-pipefs-generator.c new/nfs-utils-2.6.1/systemd/rpc-pipefs-generator.c --- old/nfs-utils-2.5.4/systemd/rpc-pipefs-generator.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/systemd/rpc-pipefs-generator.c 2022-01-10 16:07:16.000000000 +0100 @@ -21,7 +21,7 @@ #include "conffile.h" #include "systemd.h" -#define RPC_PIPEFS_DEFAULT "/var/lib/nfs/rpc_pipefs" +#define RPC_PIPEFS_DEFAULT NFS_STATEDIR "/rpc_pipefs" static int generate_mount_unit(const char *pipefs_path, const char *pipefs_unit, const char *dirname) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/systemd/rpc_pipefs.target.in new/nfs-utils-2.6.1/systemd/rpc_pipefs.target.in --- old/nfs-utils-2.5.4/systemd/rpc_pipefs.target.in 1970-01-01 01:00:00.000000000 +0100 +++ new/nfs-utils-2.6.1/systemd/rpc_pipefs.target.in 2022-01-10 16:07:16.000000000 +0100 @@ -0,0 +1,3 @@ +[Unit] +Requires=@_rpc_pipefsmount@ +After=@_rpc_pipefsmount@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/systemd/var-lib-nfs-rpc_pipefs.mount.in new/nfs-utils-2.6.1/systemd/var-lib-nfs-rpc_pipefs.mount.in --- old/nfs-utils-2.5.4/systemd/var-lib-nfs-rpc_pipefs.mount.in 1970-01-01 01:00:00.000000000 +0100 +++ new/nfs-utils-2.6.1/systemd/var-lib-nfs-rpc_pipefs.mount.in 2022-01-10 16:07:16.000000000 +0100 @@ -0,0 +1,10 @@ +[Unit] +Description=RPC Pipe File System +DefaultDependencies=no +After=systemd-tmpfiles-setup.service +Conflicts=umount.target + +[Mount] +What=sunrpc +Where=@_statedir@/rpc_pipefs +Type=rpc_pipefs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/tools/mountstats/mountstats.py new/nfs-utils-2.6.1/tools/mountstats/mountstats.py --- old/nfs-utils-2.5.4/tools/mountstats/mountstats.py 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/tools/mountstats/mountstats.py 2022-01-10 16:07:16.000000000 +0100 @@ -482,8 +482,11 @@ count = stats[1] if count != 0: print('%s:' % stats[0]) + ops_pcnt = 0 + if sends != 0: + ops_pcnt = (count * 100) / sends print('\t%d ops (%d%%)' % \ - (count, ((count * 100) / sends)), end=' ') + (count, ops_pcnt), end=' ') retrans = stats[2] - count if retrans != 0: print('\t%d retrans (%d%%)' % (retrans, ((retrans * 100) / count)), end=' ') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/tools/rpcgen/rpc_main.c new/nfs-utils-2.6.1/tools/rpcgen/rpc_main.c --- old/nfs-utils-2.5.4/tools/rpcgen/rpc_main.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/tools/rpcgen/rpc_main.c 2022-01-10 16:07:16.000000000 +0100 @@ -62,6 +62,12 @@ #define EXTEND 1 /* alias for TRUE */ #define DONT_EXTEND 0 /* alias for FALSE */ +#ifdef __APPLE__ +# if __DARWIN_ONLY_64_BIT_INO_T +# define stat64 stat +# endif +#endif + struct commandline { int cflag; /* xdr C routines */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/blkmapd/device-discovery.c new/nfs-utils-2.6.1/utils/blkmapd/device-discovery.c --- old/nfs-utils-2.5.4/utils/blkmapd/device-discovery.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/blkmapd/device-discovery.c 2022-01-10 16:07:16.000000000 +0100 @@ -63,7 +63,7 @@ #define EVENT_SIZE (sizeof(struct inotify_event)) #define EVENT_BUFSIZE (1024 * EVENT_SIZE) -#define RPCPIPE_DIR "/var/lib/nfs/rpc_pipefs" +#define RPCPIPE_DIR NFS_STATEDIR "/rpc_pipefs" #define PID_FILE "/run/blkmapd.pid" #define CONF_SAVE(w, f) do { \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/gssd/gssd.c new/nfs-utils-2.6.1/utils/gssd/gssd.c --- old/nfs-utils-2.5.4/utils/gssd/gssd.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/gssd/gssd.c 2022-01-10 16:07:16.000000000 +0100 @@ -1016,7 +1016,7 @@ 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 @@ keytabfile = optarg; break; case 'd': - ccachedir = optarg; + free(ccachedir); + ccachedir = strdup(optarg); break; case 't': context_timeout = atoi(optarg); @@ -1133,7 +1134,6 @@ } if (ccachedir) { - char *ccachedir_copy; char *ptr; for (ptr = ccachedir, i = 2; *ptr; ptr++) @@ -1141,8 +1141,7 @@ 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 @@ free(preferred_realm); free(ccachesearch); + free(ccachedir); return rc < 0 ? EXIT_FAILURE : EXIT_SUCCESS; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/gssd/gssd.h new/nfs-utils-2.6.1/utils/gssd/gssd.h --- old/nfs-utils-2.5.4/utils/gssd/gssd.h 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/gssd/gssd.h 2022-01-10 16:07:16.000000000 +0100 @@ -39,7 +39,7 @@ #include <pthread.h> #ifndef GSSD_PIPEFS_DIR -#define GSSD_PIPEFS_DIR "/var/lib/nfs/rpc_pipefs" +#define GSSD_PIPEFS_DIR NFS_STATEDIR "/rpc_pipefs" #endif #define DNOTIFY_SIGNAL (SIGRTMIN + 3) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/gssd/krb5_util.c new/nfs-utils-2.6.1/utils/gssd/krb5_util.c --- old/nfs-utils-2.5.4/utils/gssd/krb5_util.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/gssd/krb5_util.c 2022-01-10 16:07:16.000000000 +0100 @@ -673,8 +673,8 @@ *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: @@ -1129,6 +1129,12 @@ *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 @@ 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/gssd/svcgssd_krb5.c new/nfs-utils-2.6.1/utils/gssd/svcgssd_krb5.c --- old/nfs-utils-2.5.4/utils/gssd/svcgssd_krb5.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/gssd/svcgssd_krb5.c 2022-01-10 16:07:16.000000000 +0100 @@ -46,7 +46,7 @@ #include "gss_oids.h" #include "err_util.h" #include "svcgssd_krb5.h" -#include "../mount/version.h" +#include "version.h" #define MYBUFLEN 1024 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/idmapd/idmapd.c new/nfs-utils-2.6.1/utils/idmapd/idmapd.c --- old/nfs-utils-2.5.4/utils/idmapd/idmapd.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/idmapd/idmapd.c 2022-01-10 16:07:16.000000000 +0100 @@ -73,7 +73,7 @@ #include "nfslib.h" #ifndef PIPEFS_DIR -#define PIPEFS_DIR "/var/lib/nfs/rpc_pipefs/" +#define PIPEFS_DIR NFS_STATEDIR "/rpc_pipefs/" #endif #ifndef NFSD_DIR diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/mount/Makefile.am new/nfs-utils-2.6.1/utils/mount/Makefile.am --- old/nfs-utils-2.5.4/utils/mount/Makefile.am 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/mount/Makefile.am 2022-01-10 16:07:16.000000000 +0100 @@ -1,8 +1,10 @@ ## Process this file with automake to produce Makefile.in -# These binaries go in /sbin (not /usr/sbin), and that cannot be -# overridden at config time. -sbindir = /sbin +# These binaries go in /sbin (not /usr/sbin), unless CONFIG_SBIN_OVERRIDE +# is disabled as may be appropriate when /sbin is a symlink. +# Note that we don't use "if CONFIG_SBIN_OVERRIDE" as that +# causes autotools to notice the override and disable it. +@CONFIG_SBIN_OVERRIDE_TRUE@sbindir = /sbin man8_MANS = mount.nfs.man umount.nfs.man man5_MANS = nfs.man diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/mount/configfile.c new/nfs-utils-2.6.1/utils/mount/configfile.c --- old/nfs-utils-2.5.4/utils/mount/configfile.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/mount/configfile.c 2022-01-10 16:07:16.000000000 +0100 @@ -71,7 +71,7 @@ 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/mount/mount.nfs.man new/nfs-utils-2.6.1/utils/mount/mount.nfs.man --- old/nfs-utils-2.5.4/utils/mount/mount.nfs.man 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/mount/mount.nfs.man 2022-01-10 16:07:16.000000000 +0100 @@ -27,7 +27,7 @@ .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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/mount/network.c new/nfs-utils-2.6.1/utils/mount/network.c --- old/nfs-utils-2.5.4/utils/mount/network.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/mount/network.c 2022-01-10 16:07:16.000000000 +0100 @@ -97,7 +97,7 @@ }; static const char *nfs_version_opttbl[] = { - "v2", + "v2", /* no longer supported */ "v3", "v4", "vers", @@ -429,10 +429,6 @@ if (resvp) { if (bindresvport(so, &laddr) < 0) goto err_bindresvport; - } else { - cc = bind(so, SAFE_SOCKADDR(&laddr), namelen); - if (cc < 0) - goto err_bind; } if (type == SOCK_STREAM || (conn && type == SOCK_DGRAM)) { cc = connect_to(so, SAFE_SOCKADDR(saddr), namelen, @@ -464,17 +460,6 @@ close(so); return RPC_ANYSOCK; -err_bind: - rpc_createerr.cf_stat = RPC_SYSTEMERROR; - rpc_createerr.cf_error.re_errno = errno; - if (verbose) { - nfs_error(_("%s: Unable to bind to %s socket: errno %d (%s)\n"), - progname, p_prot == IPPROTO_UDP ? _("UDP") : _("TCP"), - errno, strerror(errno)); - } - close(so); - return RPC_ANYSOCK; - err_connect: rpc_createerr.cf_stat = RPC_SYSTEMERROR; rpc_createerr.cf_error.re_errno = errno; @@ -1290,7 +1275,7 @@ 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/mount/nfs.man new/nfs-utils-2.6.1/utils/mount/nfs.man --- old/nfs-utils-2.5.4/utils/mount/nfs.man 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/mount/nfs.man 2022-01-10 16:07:16.000000000 +0100 @@ -12,7 +12,7 @@ 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) @@ -416,6 +416,19 @@ 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 @@ -555,6 +568,13 @@ and <kernel_source>/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. @@ -934,11 +954,6 @@ .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 @@ -965,13 +980,6 @@ 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 @@ -1064,7 +1072,7 @@ 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 @@ -1467,7 +1475,7 @@ 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 -- @@ -1887,8 +1895,6 @@ .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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/mount/nfsmount.conf new/nfs-utils-2.6.1/utils/mount/nfsmount.conf --- old/nfs-utils-2.5.4/utils/mount/nfsmount.conf 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/mount/nfsmount.conf 2022-01-10 16:07:16.000000000 +0100 @@ -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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/mount/stropts.c new/nfs-utils-2.6.1/utils/mount/stropts.c --- old/nfs-utils-2.5.4/utils/mount/stropts.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/mount/stropts.c 2022-01-10 16:07:16.000000000 +0100 @@ -339,16 +339,25 @@ 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; } static int nfs_set_version(struct nfsmount_info *mi) { + if (!nfs_nfs_version(mi->type, mi->options, &mi->version)) return 0; @@ -1008,7 +1017,6 @@ } switch (mi->version.major) { - case 2: case 3: result = nfs_try_mount_v3v2(mi, FALSE); break; @@ -1239,6 +1247,14 @@ 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/mountd/rmtab.c new/nfs-utils-2.6.1/utils/mountd/rmtab.c --- old/nfs-utils-2.5.4/utils/mountd/rmtab.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/mountd/rmtab.c 2022-01-10 16:07:16.000000000 +0100 @@ -233,6 +233,9 @@ 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/nfsd/nfsd.c new/nfs-utils-2.6.1/utils/nfsd/nfsd.c --- old/nfs-utils-2.5.4/utils/nfsd/nfsd.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/nfsd/nfsd.c 2022-01-10 16:07:16.000000000 +0100 @@ -226,7 +226,6 @@ } /* FALLTHRU */ case 3: - case 2: NFSCTL_VERUNSET(versbits, c); break; default: @@ -251,7 +250,6 @@ minorvers = minorversset = minormask; /* FALLTHRU */ case 3: - case 2: NFSCTL_VERSET(versbits, c); break; default: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/nfsd/nfsd.man new/nfs-utils-2.6.1/utils/nfsd/nfsd.man --- old/nfs-utils-2.5.4/utils/nfsd/nfsd.man 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/nfsd/nfsd.man 2022-01-10 16:07:16.000000000 +0100 @@ -57,7 +57,7 @@ .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 @@ .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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/nfsd/nfssvc.c new/nfs-utils-2.6.1/utils/nfsd/nfssvc.c --- old/nfs-utils-2.5.4/utils/nfsd/nfssvc.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/nfsd/nfssvc.c 2022-01-10 16:07:16.000000000 +0100 @@ -25,7 +25,7 @@ #include "nfslib.h" #include "xlog.h" #include "nfssvc.h" -#include "../mount/version.h" +#include "version.h" #ifndef NFSD_FS_DIR #define NFSD_FS_DIR "/proc/fs/nfsd" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/nfsdcld/nfsdcld.c new/nfs-utils-2.6.1/utils/nfsdcld/nfsdcld.c --- old/nfs-utils-2.5.4/utils/nfsdcld/nfsdcld.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/nfsdcld/nfsdcld.c 2022-01-10 16:07:16.000000000 +0100 @@ -45,7 +45,7 @@ #include "cld.h" #include "cld-internal.h" #include "sqlite.h" -#include "../mount/version.h" +#include "version.h" #include "conffile.h" #include "legacy.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/nfsdcltrack/Makefile.am new/nfs-utils-2.6.1/utils/nfsdcltrack/Makefile.am --- old/nfs-utils-2.5.4/utils/nfsdcltrack/Makefile.am 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/nfsdcltrack/Makefile.am 2022-01-10 16:07:16.000000000 +0100 @@ -1,8 +1,11 @@ ## Process this file with automake to produce Makefile.in -# These binaries go in /sbin (not /usr/sbin), and that cannot be -# overridden at config time. The kernel "knows" the /sbin name. -sbindir = /sbin +# These binaries go in /sbin (not /usr/sbin) as the kernel "knows" the +# /sbin name. If /sbin is a symlink, CONFIG_SBIN_OVERRIDE can be +# disabled to install in /usr/sbin anyway. +# Note that we don't use "if CONFIG_SBIN_OVERRIDE" as that +# causes autotools to notice the override and disable it. +@CONFIG_SBIN_OVERRIDE_TRUE@sbindir = /sbin man8_MANS = nfsdcltrack.man EXTRA_DIST = $(man8_MANS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/nfsdcltrack/nfsdcltrack.c new/nfs-utils-2.6.1/utils/nfsdcltrack/nfsdcltrack.c --- old/nfs-utils-2.5.4/utils/nfsdcltrack/nfsdcltrack.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/nfsdcltrack/nfsdcltrack.c 2022-01-10 16:07:16.000000000 +0100 @@ -33,6 +33,7 @@ #include <sys/stat.h> #include <sys/types.h> #include <fcntl.h> +#include <inttypes.h> #include <unistd.h> #include <libgen.h> #include <sys/inotify.h> @@ -507,7 +508,7 @@ { int ret; char *tail; - time_t gracetime; + uint64_t gracetime; ret = sqlite_prepare_dbh(storagedir); @@ -525,7 +526,7 @@ 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.c new/nfs-utils-2.6.1/utils/nfsdcltrack/sqlite.c --- old/nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.c 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/nfsdcltrack/sqlite.c 2022-01-10 16:07:16.000000000 +0100 @@ -46,6 +46,7 @@ #include <sys/stat.h> #include <sys/types.h> #include <fcntl.h> +#include <inttypes.h> #include <unistd.h> #include <sqlite3.h> #include <linux/limits.h> @@ -539,12 +540,12 @@ * 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; - 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.h new/nfs-utils-2.6.1/utils/nfsdcltrack/sqlite.h --- old/nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.h 2021-06-10 20:07:47.000000000 +0200 +++ new/nfs-utils-2.6.1/utils/nfsdcltrack/sqlite.h 2022-01-10 16:07:16.000000000 +0100 @@ -26,7 +26,7 @@ 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 */ ++++++ reenable-nfsv2.patch ++++++ This reverts https://git.kernel.org/pub/scm/linux/kernel/git/rw/nfs-utils.git/commit/?id=2c2c36c59fa1de2ff7fd28917e54700ecb39b730 and https://git.kernel.org/pub/scm/linux/kernel/git/rw/nfs-utils.git/commit/?id=2c2c36c59fa1de2ff7fd28917e54700ecb39b730 as openqa is still testing NFSv2 see https://progress.opensuse.org/issues/106679 --- nfs-utils-2.6.1.orig/utils/mount/configfile.c +++ nfs-utils-2.6.1/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[] = { - "v3", "v4", "vers", "nfsvers", "minorversion", NULL + "v2", "v3", "v4", "vers", "nfsvers", "minorversion", NULL }; static int strict; --- nfs-utils-2.6.1.orig/utils/mount/stropts.c +++ nfs-utils-2.6.1/utils/mount/stropts.c @@ -1017,6 +1017,7 @@ static int nfs_try_mount(struct nfsmount } switch (mi->version.major) { + case 2: case 3: result = nfs_try_mount_v3v2(mi, FALSE); break; @@ -1247,14 +1248,6 @@ static int nfsmount_start(struct nfsmoun 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 */ --- nfs-utils-2.6.1.orig/utils/nfsd/nfsd.c +++ nfs-utils-2.6.1/utils/nfsd/nfsd.c @@ -226,6 +226,7 @@ main(int argc, char **argv) } /* FALLTHRU */ case 3: + case 2: NFSCTL_VERUNSET(versbits, c); break; default: @@ -250,6 +251,7 @@ main(int argc, char **argv) minorvers = minorversset = minormask; /* FALLTHRU */ case 3: + case 2: NFSCTL_VERSET(versbits, c); break; default: