From b36dde334e3121fd99541d85a18f52f9d0d27437 Mon Sep 17 00:00:00 2001 From: Steve Dickson Date: Fri, 22 Nov 2019 10:55:45 -0500 Subject: [PATCH] Updated to the latest upstream RC release: nfs-utils-2-4-3-rc2 (bz 1772987) Signed-off-by: Steve Dickson --- nfs-utils.2.4.3-rc2.patch | 421 ++++++++++++++++++++++++++++++++++++++ nfs-utils.spec | 7 +- 2 files changed, 427 insertions(+), 1 deletion(-) create mode 100644 nfs-utils.2.4.3-rc2.patch diff --git a/nfs-utils.2.4.3-rc2.patch b/nfs-utils.2.4.3-rc2.patch new file mode 100644 index 0000000..14476f2 --- /dev/null +++ b/nfs-utils.2.4.3-rc2.patch @@ -0,0 +1,421 @@ +commit d5e303461846a5c7282b819fb729760bef472d89 +Author: Joey Hess +Date: Fri Nov 22 10:31:13 2019 -0500 + + mount: Do not overwrite /etc/mtab if it's symlink + + Some systems have /etc/mtab symlink to /proc/mounts. In that case + mount.nfs complains: + Can't set permissions on mtab: Operation not permitted + + See https://bugs.debian.org/476577 + + This change makes mount.nfs handle symlinked /etc/mtab the way + umount.nfs and util- linux handle it. + + Cc: Chuck Lever + Signed-off-by: Joey Hess + [ pvorel: took patch from Debian, rebased for 2.4.3-rc1 and created commit + message. Patch is also used in Gentoo. ] + Signed-off-by: Petr Vorel + Signed-off-by: Steve Dickson + +diff --git a/utils/mount/fstab.c b/utils/mount/fstab.c +index 8b0aaf1..146d8f4 100644 +--- a/utils/mount/fstab.c ++++ b/utils/mount/fstab.c +@@ -61,7 +61,7 @@ mtab_does_not_exist(void) { + return var_mtab_does_not_exist; + } + +-static int ++int + mtab_is_a_symlink(void) { + get_mtab_info(); + return var_mtab_is_a_symlink; +diff --git a/utils/mount/fstab.h b/utils/mount/fstab.h +index 313bf9b..8676c8c 100644 +--- a/utils/mount/fstab.h ++++ b/utils/mount/fstab.h +@@ -7,6 +7,7 @@ + #define _PATH_FSTAB "/etc/fstab" + #endif + ++int mtab_is_a_symlink(void); + int mtab_is_writable(void); + int mtab_does_not_exist(void); + void reset_mtab_info(void); +diff --git a/utils/mount/mount.c b/utils/mount/mount.c +index 91f1087..92a0dfe 100644 +--- a/utils/mount/mount.c ++++ b/utils/mount/mount.c +@@ -204,6 +204,13 @@ create_mtab (void) { + int flags; + mntFILE *mfp; + ++ /* Avoid writing if the mtab is a symlink to /proc/mounts, since ++ that would create a file /proc/mounts in case the proc filesystem ++ is not mounted, and the fchmod below would also fail. */ ++ if (mtab_is_a_symlink()) { ++ return EX_SUCCESS; ++ } ++ + lock_mtab(); + + mfp = nfs_setmntent (MOUNTED, "a+"); + +commit f7c0c0dc4a02d87965d3fbbab69786ca07fdecea +Author: Guillaume Rousse +Date: Fri Nov 22 10:20:03 2019 -0500 + + fix compilation with -Werror=format on i586 + + Signed-off-by: Steve Dickson + +diff --git a/support/junction/xml.c b/support/junction/xml.c +index 7005e95..813110b 100644 +--- a/support/junction/xml.c ++++ b/support/junction/xml.c +@@ -327,7 +327,7 @@ junction_parse_xml_read(const char *pathname, int fd, const char *name, + if (retval != FEDFS_OK) + return retval; + +- xlog(D_CALL, "%s: XML document contained in junction:\n%ld.%s", ++ xlog(D_CALL, "%s: XML document contained in junction:\n%zu.%s", + __func__, len, (char *)buf); + + retval = junction_parse_xml_buf(pathname, name, buf, len, doc); +diff --git a/tools/locktest/testlk.c b/tools/locktest/testlk.c +index b392f71..ea51f78 100644 +--- a/tools/locktest/testlk.c ++++ b/tools/locktest/testlk.c +@@ -81,7 +81,7 @@ main(int argc, char **argv) + if (fl.l_type == F_UNLCK) { + printf("%s: no conflicting lock\n", fname); + } else { +- printf("%s: conflicting lock by %d on (%ld;%ld)\n", ++ printf("%s: conflicting lock by %d on (%zd;%zd)\n", + fname, fl.l_pid, fl.l_start, fl.l_len); + } + return 0; + +commit a20dbec98f46c53596646cafca1051cf351ed3a4 +Author: Doug Nazar +Date: Fri Nov 22 10:17:38 2019 -0500 + + nfsdcld: Fix printf format strings on 32bit + + Signed-off-by: Steve Dickson + +diff --git a/utils/nfsdcld/nfsdcld.c b/utils/nfsdcld/nfsdcld.c +index b064336..9297df5 100644 +--- a/utils/nfsdcld/nfsdcld.c ++++ b/utils/nfsdcld/nfsdcld.c +@@ -378,7 +378,7 @@ cld_not_implemented(struct cld_client *clnt) + bsize = cld_message_size(cmsg); + wsize = atomicio((void *)write, clnt->cl_fd, cmsg, bsize); + if (wsize != bsize) +- xlog(L_ERROR, "%s: problem writing to cld pipe (%ld): %m", ++ xlog(L_ERROR, "%s: problem writing to cld pipe (%zd): %m", + __func__, wsize); + + /* reopen pipe, just to be sure */ +@@ -409,7 +409,7 @@ cld_get_version(struct cld_client *clnt) + xlog(D_GENERAL, "Doing downcall with status %d", cmsg->cm_status); + wsize = atomicio((void *)write, clnt->cl_fd, cmsg, bsize); + if (wsize != bsize) { +- xlog(L_ERROR, "%s: problem writing to cld pipe (%ld): %m", ++ xlog(L_ERROR, "%s: problem writing to cld pipe (%zd): %m", + __func__, wsize); + ret = cld_pipe_open(clnt); + if (ret) { +@@ -459,7 +459,7 @@ reply: + xlog(D_GENERAL, "Doing downcall with status %d", cmsg->cm_status); + wsize = atomicio((void *)write, clnt->cl_fd, cmsg, bsize); + if (wsize != bsize) { +- xlog(L_ERROR, "%s: problem writing to cld pipe (%ld): %m", ++ xlog(L_ERROR, "%s: problem writing to cld pipe (%zd): %m", + __func__, wsize); + ret = cld_pipe_open(clnt); + if (ret) { +@@ -498,7 +498,7 @@ reply: + cmsg->cm_status); + wsize = atomicio((void *)write, clnt->cl_fd, cmsg, bsize); + if (wsize != bsize) { +- xlog(L_ERROR, "%s: problem writing to cld pipe (%ld): %m", ++ xlog(L_ERROR, "%s: problem writing to cld pipe (%zd): %m", + __func__, wsize); + ret = cld_pipe_open(clnt); + if (ret) { +@@ -548,7 +548,7 @@ reply: + cmsg->cm_status); + wsize = atomicio((void *)write, clnt->cl_fd, cmsg, bsize); + if (wsize != bsize) { +- xlog(L_ERROR, "%s: problem writing to cld pipe (%ld): %m", ++ xlog(L_ERROR, "%s: problem writing to cld pipe (%zd): %m", + __func__, wsize); + ret = cld_pipe_open(clnt); + if (ret) { +@@ -607,7 +607,7 @@ reply: + xlog(D_GENERAL, "Doing downcall with status %d", cmsg->cm_status); + wsize = atomicio((void *)write, clnt->cl_fd, cmsg, bsize); + if (wsize != bsize) { +- xlog(L_ERROR, "%s: problem writing to cld pipe (%ld): %m", ++ xlog(L_ERROR, "%s: problem writing to cld pipe (%zd): %m", + __func__, wsize); + ret = cld_pipe_open(clnt); + if (ret) { +@@ -667,7 +667,7 @@ reply: + xlog(D_GENERAL, "Doing downcall with status %d", cmsg->cm_status); + wsize = atomicio((void *)write, clnt->cl_fd, cmsg, bsize); + if (wsize != bsize) { +- xlog(L_ERROR, "%s: problem writing to cld pipe (%ld): %m", ++ xlog(L_ERROR, "%s: problem writing to cld pipe (%zd): %m", + __func__, wsize); + ret = cld_pipe_open(clnt); + if (ret) { +diff --git a/utils/nfsdcld/sqlite.c b/utils/nfsdcld/sqlite.c +index 23be797..09518e2 100644 +--- a/utils/nfsdcld/sqlite.c ++++ b/utils/nfsdcld/sqlite.c +@@ -512,7 +512,7 @@ sqlite_startup_query_grace(void) + current_epoch = tcur; + recovery_epoch = trec; + ret = 0; +- xlog(D_GENERAL, "%s: current_epoch=%lu recovery_epoch=%lu", ++ xlog(D_GENERAL, "%s: current_epoch=%"PRIu64" recovery_epoch=%"PRIu64, + __func__, current_epoch, recovery_epoch); + out: + sqlite3_finalize(stmt); +@@ -1223,7 +1223,7 @@ sqlite_grace_start(void) + + current_epoch = tcur; + recovery_epoch = trec; +- xlog(D_GENERAL, "%s: current_epoch=%lu recovery_epoch=%lu", ++ xlog(D_GENERAL, "%s: current_epoch=%"PRIu64" recovery_epoch=%"PRIu64, + __func__, current_epoch, recovery_epoch); + + out: +@@ -1282,7 +1282,7 @@ sqlite_grace_done(void) + } + + recovery_epoch = 0; +- xlog(D_GENERAL, "%s: current_epoch=%lu recovery_epoch=%lu", ++ xlog(D_GENERAL, "%s: current_epoch=%"PRIu64" recovery_epoch=%"PRIu64, + __func__, current_epoch, recovery_epoch); + + out: + +commit 31bb484b22c220c561f3a95c3b7ca3ea9b96cc9b +Author: Petr Vorel +Date: Mon Nov 18 11:27:19 2019 -0500 + + mountd: Fix compilation for --disable-uuid + + Although code in configure.ac pretends to set USE_BLKID as 0 + via AC_DEFINE_UNQUOTED, it's actually not defined + support/include/config.h.in + support/include/config.h + /* #undef USE_BLKID */ + + Fixes: 8e643554 ("Allow disabling of libblkid usage.") + + Signed-off-by: Petr Vorel + Signed-off-by: Steve Dickson + +diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c +index 31e9507..e5186c7 100644 +--- a/utils/mountd/cache.c ++++ b/utils/mountd/cache.c +@@ -221,7 +221,7 @@ static void auth_unix_gid(int f) + xlog(L_ERROR, "auth_unix_gid: error writing reply"); + } + +-#if USE_BLKID ++#ifdef USE_BLKID + static const char *get_uuid_blkdev(char *path) + { + /* We set *safe if we know that we need the + +commit f100d07d923b5db60d42dc2453485fa0dba69a79 +Author: Petr Vorel +Date: Mon Nov 18 08:58:36 2019 -0500 + + mountd: Add check for 'struct file_handle' + + From: Maxime Hadjinlian + + The code to check if name_to_handle_at() is implemented generates only a + warning but with some toolchain it doesn't fail to link (the function must be + implemented somewhere). + However the "struct file_handle" type is not available. + + So, this patch adds a check for this struct. + + Patch taken from buildroot distribution. + + Signed-off-by: Thomas Petazzoni + [ pvorel: rebased from nfs-utils-1-3-4 ] + Signed-off-by: Petr Vorel + Signed-off-by: Maxime Hadjinlian + Signed-off-by: Steve Dickson + +diff --git a/configure.ac b/configure.ac +index 9ba9d4b..949ff9f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -510,6 +510,7 @@ AC_TYPE_PID_T + AC_TYPE_SIZE_T + AC_HEADER_TIME + AC_STRUCT_TM ++AC_CHECK_TYPES([struct file_handle]) + + dnl ************************************************************* + dnl Check for functions +diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c +index 3861f84..31e9507 100644 +--- a/utils/mountd/cache.c ++++ b/utils/mountd/cache.c +@@ -446,7 +446,7 @@ static int same_path(char *child, char *parent, int len) + if (count_slashes(p) != count_slashes(parent)) + return 0; + +-#if HAVE_NAME_TO_HANDLE_AT ++#if defined(HAVE_NAME_TO_HANDLE_AT) && defined(HAVE_STRUCT_FILE_HANDLE) + struct { + struct file_handle fh; + unsigned char handle[128]; + +commit 55185d07ead736fb2cb9e6ec5ae5caba42a7f056 +Author: Petr Vorel +Date: Mon Nov 18 08:51:40 2019 -0500 + + autoconf: Add Debian paths for Kerberos v5 with GSS + + Debian stores it's shared libraries in + /usr/lib/$(uname -m)-linux-gnu + + Signed-off-by: Petr Vorel + Signed-off-by: Steve Dickson + +diff --git a/aclocal/kerberos5.m4 b/aclocal/kerberos5.m4 +index faa5804..bf0e88b 100644 +--- a/aclocal/kerberos5.m4 ++++ b/aclocal/kerberos5.m4 +@@ -42,7 +42,9 @@ AC_DEFUN([AC_KERBEROS_V5],[ + -f $dir/lib32/libgssapi_krb5.a -o \ + -f $dir/lib32/libgssapi_krb5.so -o \ + -f $dir/lib64/libgssapi_krb5.a -o \ +- -f $dir/lib64/libgssapi_krb5.so \) ; then ++ -f $dir/lib64/libgssapi_krb5.so -o \ ++ -f $dir/lib/$(uname -m)-linux-gnu/libgssapi_krb5.a -o \ ++ -f $dir/lib/$(uname -m)-linux-gnu/libgssapi_krb5.so \) ; then + AC_DEFINE(HAVE_KRB5, 1, [Define this if you have MIT Kerberos libraries]) + KRBDIR="$dir" + gssapi_lib=gssapi_krb5 + +commit 1378280398ef9f5cd45f5542ae2945b9a360b132 +Author: Doug Nazar +Date: Sun Nov 17 14:31:33 2019 -0500 + + Ensure consistent struct stat definition + + Although 2fbc62e2a13fc ("Fix include order between config.h and stat.h") + reorganized those files that were already including config.h, not all + files were including config.h. + + Fixes at least stack smashing crashes in mountd on 32-bit systems. + + Signed-off-by: Doug Nazar + Signed-off-by: Steve Dickson + +diff --git a/support/junction/junction.c b/support/junction/junction.c +index ab6caa6..41cce26 100644 +--- a/support/junction/junction.c ++++ b/support/junction/junction.c +@@ -23,6 +23,10 @@ + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt + */ + ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ + #include + #include + +diff --git a/support/misc/file.c b/support/misc/file.c +index e7c3819..06f6bb2 100644 +--- a/support/misc/file.c ++++ b/support/misc/file.c +@@ -18,6 +18,10 @@ + * along with nfs-utils. If not, see . + */ + ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ + #include + + #include +diff --git a/support/misc/mountpoint.c b/support/misc/mountpoint.c +index c6217f2..14d6731 100644 +--- a/support/misc/mountpoint.c ++++ b/support/misc/mountpoint.c +@@ -3,6 +3,10 @@ + * check if a given path is a mountpoint + */ + ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ + #include + #include "xcommon.h" + #include +diff --git a/support/nfs/cacheio.c b/support/nfs/cacheio.c +index 9dc4cf1..7c4cf37 100644 +--- a/support/nfs/cacheio.c ++++ b/support/nfs/cacheio.c +@@ -15,6 +15,10 @@ + * + */ + ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ + #include + #include + #include +diff --git a/utils/mount/fstab.c b/utils/mount/fstab.c +index eedbdda..8b0aaf1 100644 +--- a/utils/mount/fstab.c ++++ b/utils/mount/fstab.c +@@ -7,6 +7,10 @@ + * - Moved code to nfs-utils/support/nfs from util-linux/mount. + */ + ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ + #include + #include + #include +diff --git a/utils/nfsdcld/legacy.c b/utils/nfsdcld/legacy.c +index 07f477a..3c6bea6 100644 +--- a/utils/nfsdcld/legacy.c ++++ b/utils/nfsdcld/legacy.c +@@ -15,6 +15,10 @@ + * Boston, MA 02110-1301, USA. + */ + ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ + #include + #include + #include diff --git a/nfs-utils.spec b/nfs-utils.spec index e452740..12be04b 100644 --- a/nfs-utils.spec +++ b/nfs-utils.spec @@ -2,7 +2,7 @@ Summary: NFS utilities and supporting clients and daemons for the kernel NFS ser Name: nfs-utils URL: http://linux-nfs.org/ Version: 2.4.2 -Release: 0%{?dist} +Release: 1.rc2%{?dist} Epoch: 1 # group all 32bit related archs @@ -16,6 +16,8 @@ Source4: nfsconvert.py Source5: nfsconvert.sh Source6: nfs-convert.service +Patch001: nfs-utils.2.4.3-rc2.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 @@ -364,6 +366,9 @@ fi %{_pkgdir}/*/var-lib-nfs-rpc_pipefs.mount %changelog +* 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)