summaryrefslogtreecommitdiffstats
path: root/source/n/nfs-utils/nfs-utils.2.4.3-rc2.patch
diff options
context:
space:
mode:
Diffstat (limited to 'source/n/nfs-utils/nfs-utils.2.4.3-rc2.patch')
-rw-r--r--source/n/nfs-utils/nfs-utils.2.4.3-rc2.patch359
1 files changed, 359 insertions, 0 deletions
diff --git a/source/n/nfs-utils/nfs-utils.2.4.3-rc2.patch b/source/n/nfs-utils/nfs-utils.2.4.3-rc2.patch
new file mode 100644
index 000000000..532289961
--- /dev/null
+++ b/source/n/nfs-utils/nfs-utils.2.4.3-rc2.patch
@@ -0,0 +1,359 @@
+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
+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/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/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/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/support/nfs/nfs_mntent.c b/support/nfs/nfs_mntent.c
+index 05a4c68..25e5944 100644
+--- a/support/nfs/nfs_mntent.c
++++ b/support/nfs/nfs_mntent.c
+@@ -9,7 +9,7 @@
+ */
+
+ #include <stdio.h>
+-#include <string.h> /* for index */
++#include <string.h> /* for strchr */
+ #include <ctype.h> /* for isdigit */
+ #include <sys/stat.h> /* for umask */
+ #include <unistd.h> /* for ftruncate */
+@@ -176,7 +176,7 @@ nfs_getmntent (mntFILE *mfp) {
+ return NULL;
+
+ mfp->mntent_lineno++;
+- s = index (buf, '\n');
++ s = strchr (buf, '\n');
+ if (s == NULL) {
+ /* Missing final newline? Otherwise extremely */
+ /* long line - assume file was corrupted */
+@@ -184,7 +184,7 @@ nfs_getmntent (mntFILE *mfp) {
+ fprintf(stderr, _("[mntent]: warning: no final "
+ "newline at the end of %s\n"),
+ mfp->mntent_file);
+- s = index (buf, 0);
++ s = strchr (buf, 0);
+ } else {
+ mfp->mntent_errs = 1;
+ goto err;
+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;
+diff --git a/utils/mount/error.c b/utils/mount/error.c
+index 562f312..986f066 100644
+--- a/utils/mount/error.c
++++ b/utils/mount/error.c
+@@ -62,7 +62,7 @@ static int rpc_strerror(int spos)
+ char *tmp;
+
+ if (estr) {
+- if ((ptr = index(estr, ':')))
++ if ((ptr = strchr(estr, ':')))
+ estr = ++ptr;
+
+ tmp = &errbuf[spos];
+diff --git a/utils/mount/fstab.c b/utils/mount/fstab.c
+index eedbdda..146d8f4 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>
+@@ -57,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..2be3dc2 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;
++ }
++
+ lock_mtab();
+
+ mfp = nfs_setmntent (MOUNTED, "a+");
+diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
+index 3861f84..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
+@@ -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];
+diff --git a/utils/mountd/fsloc.c b/utils/mountd/fsloc.c
+index cf42944..1b869b6 100644
+--- a/utils/mountd/fsloc.c
++++ b/utils/mountd/fsloc.c
+@@ -128,7 +128,7 @@ static struct servers *method_list(char *data)
+ bool v6esc = false;
+
+ xlog(L_NOTICE, "method_list(%s)", data);
+- for (ptr--, listsize=1; ptr; ptr=index(ptr, ':'), listsize++)
++ for (ptr--, listsize=1; ptr; ptr=strchr(ptr, ':'), listsize++)
+ ptr++;
+ list = malloc(listsize * sizeof(char *));
+ copy = strdup(data);
+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>
+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: