When building GSS support, gss_keyring requires libkeyutils.
So make sure this dependency is properly detected at configure time,
and include keyutils.h only when required.
Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
Change-Id: I9fa5750f4609250ecdc1c47f68b97bff9be13ace
Reviewed-on: https://review.whamcloud.com/44597
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
AC_ARG_ENABLE([gss_keyring],
[AC_HELP_STRING([--disable-gss-keyring],
[disable gss keyring backend])],
- [], [enable_gss_keyring="auto"])
+ [], [AS_IF([test "x$enable_gss" != xno], [
+ enable_gss_keyring="yes"], [
+ enable_gss_keyring="auto"])])
AC_MSG_RESULT([$enable_gss_keyring])
AS_IF([test "x$enable_gss_keyring" != xno], [
LB_CHECK_CONFIG_IM([KEYS], [], [
AS_IF([test "x$enable_gss_keyring" = xyes], [
AC_MSG_ERROR([Cannot enable gss_keyring. See above for details.])
])
+ enable_ssk="no"
])
+], [
+ enable_ssk="no"
])
]) # LC_CONFIG_GSS_KEYRING
enable_gss="no"
])
- enable_ssk=$enable_gss
+ AS_IF([test "x$enable_ssk" != xno], [
+ enable_ssk=$enable_gss
+ ])
], [
enable_gss_keyring="no"
])
}
LPROC_SEQ_FOPS(sptlrpc_krb5_allow_old_client_csum);
+#ifdef HAVE_GSS_KEYRING
int sptlrpc_gss_check_upcall_ns_seq_show(struct seq_file *m, void *data)
{
seq_printf(m, "%u\n", gss_check_upcall_ns);
return count;
}
LPROC_SEQ_FOPS(sptlrpc_gss_check_upcall_ns);
+#endif /* HAVE_GSS_KEYRING */
static struct ldebugfs_vars gss_debugfs_vars[] = {
{ .name = "replays",
static struct lprocfs_vars gss_lprocfs_vars[] = {
{ .name = "krb5_allow_old_client_csum",
.fops = &sptlrpc_krb5_allow_old_client_csum_fops },
+#ifdef HAVE_GSS_KEYRING
{ .name = "gss_check_upcall_ns",
.fops = &sptlrpc_gss_check_upcall_ns_fops },
+#endif
{ NULL }
};
if GSS
SUBDIRS = . gss
GSSSRC = gss/err_util.c gss/err_util.h
+GSSLIB = -lcrypto -lssl -lm
if GSS_SSK
GSSSRC += gss/sk_utils.c gss/sk_utils.h
+GSSLIB += -lkeyutils
+endif
+if GSS_KEYRING
+GSSLIB += -lkeyutils
endif
-GSSLIB = -lcrypto -lssl -lkeyutils -lm
else
GSSSRC =
GSSLIB =
-D_LARGEFILE64_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DLUSTRE_UTILS=1 \
-D_GNU_SOURCE
-sbin_PROGRAMS = lsvcgssd l_idmap
+sbin_PROGRAMS = l_idmap
if GSS_KEYRING
-sbin_PROGRAMS += lgss_keyring
+sbin_PROGRAMS += lsvcgssd lgss_keyring
if GSS_SSK
sbin_PROGRAMS += lgss_sk
endif
#define SK_UTILS_H
#include <gssapi/gssapi.h>
+#ifdef HAVE_LIBKEYUTILS
#include <keyutils.h>
+#endif
#include <linux/lustre/lustre_idl.h>
#include <openssl/dh.h>
#include <openssl/evp.h>
#include <sys/xattr.h>
#ifdef HAVE_GSS
+#ifdef HAVE_LIBKEYUTILS
#include <keyutils.h>
+#endif
#include <lustre/utils/gss/sk_utils.h>
#endif