Updated to the latest upstream RC release: nfs-utils-2-4-3-rc2 (bz 1772987)

Signed-off-by: Steve Dickson <steved@redhat.com>
This commit is contained in:
Steve Dickson 2019-11-22 10:55:45 -05:00
parent 39e278aaf6
commit b36dde334e
2 changed files with 427 additions and 1 deletions

421
nfs-utils.2.4.3-rc2.patch Normal file
View File

@ -0,0 +1,421 @@
commit d5e303461846a5c7282b819fb729760bef472d89
Author: Joey Hess <joeyh@debian.org>
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 <chuck.lever@oracle.com>
Signed-off-by: Joey Hess <joeyh@debian.org>
[ 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 <petr.vorel@gmail.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
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 <guillomovitch@gmail.com>
Date: Fri Nov 22 10:20:03 2019 -0500
fix compilation with -Werror=format on i586
Signed-off-by: Steve Dickson <steved@redhat.com>
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 <nazard@nazar.ca>
Date: Fri Nov 22 10:17:38 2019 -0500
nfsdcld: Fix printf format strings on 32bit
Signed-off-by: Steve Dickson <steved@redhat.com>
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 <petr.vorel@gmail.com>
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 <petr.vorel@gmail.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
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 <petr.vorel@gmail.com>
Date: Mon Nov 18 08:58:36 2019 -0500
mountd: Add check for 'struct file_handle'
From: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
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 <thomas.petazzoni@bootlin.com>
[ pvorel: rebased from nfs-utils-1-3-4 ]
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
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 <petr.vorel@gmail.com>
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 <petr.vorel@gmail.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
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 <nazard@nazar.ca>
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 <nazard@nazar.ca>
Signed-off-by: Steve Dickson <steved@redhat.com>
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 <config.h>
+#endif
+
#include <sys/types.h>
#include <sys/stat.h>
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 <http://www.gnu.org/licenses/>.
*/
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
#include <sys/stat.h>
#include <string.h>
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 <config.h>
+#endif
+
#include <string.h>
#include "xcommon.h"
#include <sys/stat.h>
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 <config.h>
+#endif
+
#include <nfslib.h>
#include <stdio.h>
#include <stdio_ext.h>
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 <config.h>
+#endif
+
#include <errno.h>
#include <stdio.h>
#include <fcntl.h>
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 <config.h>
+#endif
+
#include <stdio.h>
#include <dirent.h>
#include <string.h>

View File

@ -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 <steved@redhat.com> 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 <steved@redhat.com> 2.4.2-0
- Updated to the latest upstream release: 2.4.2 (bz 1772987)