RPCGEN_PATH= )
AC_SUBST(RPCGEN_PATH)
AM_CONDITIONAL(CONFIG_RPCGEN, [test "$RPCGEN_PATH" == ""])
+AC_ARG_ENABLE(uuid,
+ [AC_HELP_STRING([--without-uuid], [Exclude uuid support and so avoid possibly buggy libblkid])],
+ if test "$enableval" = "yes" ; then use_blkid=1; else use_blkid=0; fi,
+ use_blkid=1)
+ AC_DEFINE_UNQUOTED(USE_BLKID, $use_blkid, [Define if you want to use blkid to find uuid of filesystems])
AC_ARG_ENABLE(mount,
[AC_HELP_STRING([--enable-mount],
[Create mount.nfs and don't use the util-linux mount(8) functionality. @<:@default=no@:>@])],
if test "$knfsd_cv_glibc2" = no; then
AC_CHECK_LIB(bsd, daemon, [LIBBSD="-lbsd"])
fi
-AC_CHECK_LIB(blkid, blkid_get_cache, [LIBBLKID="-lblkid"], AC_MSG_ERROR([libblkid needed]))
-AC_CHECK_HEADER(blkid/blkid.h, , AC_MSG_ERROR([Cannot file libblkid header file blkid/blkid.h]))
+if test "$use_blkid" = 1; then
+ AC_CHECK_LIB(blkid, blkid_get_cache, [LIBBLKID="-lblkid"], AC_MSG_ERROR([libblkid needed]))
+ AC_CHECK_HEADER(blkid/blkid.h, , AC_MSG_ERROR([Cannot file libblkid header file blkid/blkid.h]))
+fi
AC_SUBST(LIBSOCKET)
AC_SUBST(LIBCRYPT)
AC_SUBST(LIBBSD)
#include "xmalloc.h"
#include "fsloc.h"
+#ifdef USE_BLKID
#include "blkid/blkid.h"
+#endif
enum nfsd_fsid {
free(groups);
}
+#if USE_BLKID
int get_uuid(char *path, char *uuid, int uuidlen, char *u)
{
/* extract hex digits from uuidstr and compose a uuid
}
return 1;
}
+#endif
/* Iterate through /etc/mtab, finding mountpoints
* at or below a given path
if (!is_mountpoint(path))
continue;
check_uuid:
+#if USE_BLKID
if (exp->m_export.e_uuid)
get_uuid(NULL, exp->m_export.e_uuid,
uuidlen, u);
if (memcmp(u, fhuuid, uuidlen) != 0)
continue;
break;
+#else
+ continue;
+#endif
}
/* It's a match !! */
if (!found) {
qword_printint(f, exp->e_anongid);
qword_printint(f, exp->e_fsid);
write_fsloc(f, exp, path);
+#if USE_BLKID
if (exp->e_uuid == NULL) {
char u[16];
if (get_uuid(path, NULL, 16, u)) {
qword_print(f, "uuid");
qword_printhex(f, exp->e_uuid, 16);
}
+#endif
}
return qword_eol(f);
}