Whamcloud - gitweb
LU-15956 gss: allow build without ssk 81/47681/6
authorSebastien Buisson <sbuisson@ddn.com>
Wed, 6 Jul 2022 04:22:20 +0000 (21:22 -0700)
committerOleg Drokin <green@whamcloud.com>
Fri, 8 Jul 2022 05:26:45 +0000 (05:26 +0000)
The GSS part of Lustre should be able to build without SSK, in case
some SSK requirements are not met at configure time.

Test-Parameters: trivial
Test-Parameters: testgroup=review-dne-selinux-ssk-part-1
Test-Parameters: testgroup=review-dne-selinux-ssk-part-2
Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
Change-Id: Ieacbcb5db77fcc12cc13579785e640857ce7fb02
Reviewed-on: https://review.whamcloud.com/47681
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Jian Yu <yujian@whamcloud.com>
Reviewed-by: Stephane Thiell <sthiell@stanford.edu>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
config/lustre-build.m4
lustre/utils/Makefile.am
lustre/utils/gss/Makefile.am
lustre/utils/gss/sk_utils.h
lustre/utils/gss/svcgssd_proc.c

index 5d71543..992b031 100644 (file)
@@ -677,12 +677,12 @@ LB_CONFIG_MPITESTS
 LB_CONFIG_SERVERS
 LC_CONFIG_CRYPTO
 LC_GLIBC_SUPPORT_COPY_FILE_RANGE
+LC_OPENSSL_SSK
 
 # Tests depends from utils (multiop from liblustreapi)
 AS_IF([test "x$enable_utils" = xno], [enable_tests="no"])
 
 AS_IF([test "x$enable_utils" = xyes], [
-       LC_OPENSSL_SSK
        LC_OPENSSL_GETSEPOL
        LC_FID2PATH_ANON_UNION
        LC_IOC_REMOVE_ENTRY
index 5808027..4fe86ef 100644 (file)
@@ -13,10 +13,10 @@ if UTILS
 if GSS
 SUBDIRS = . gss
 GSSSRC = gss/err_util.c gss/err_util.h
-GSSLIB = -lcrypto -lssl -lm
+GSSLIB = -lm
 if GSS_SSK
 GSSSRC += gss/sk_utils.c gss/sk_utils.h
-GSSLIB += -lkeyutils
+GSSLIB += -lkeyutils -lcrypto -lssl
 endif
 if GSS_KEYRING
 GSSLIB += -lkeyutils
index 378e17d..5798389 100644 (file)
@@ -32,11 +32,10 @@ COMMON_SRCS = \
         err_util.h \
         gss_oids.h \
         gss_util.h \
-        sk_utils.h \
         lsupport.h
 
 if GSS_SSK
-COMMON_SRCS += sk_utils.c
+COMMON_SRCS += sk_utils.h sk_utils.c
 endif
 
 lgssd_SOURCES = \
@@ -65,8 +64,11 @@ lsvcgssd_SOURCES = \
         svcgssd.h
 
 lsvcgssd_CFLAGS = $(AM_CFLAGS) $(CFLAGS) $(KRBCFLAGS)
-lsvcgssd_LDADD = $(top_builddir)/lustre/utils/liblustreapi.la $(GSSAPI_LIBS) $(KRBLIBS) -lcrypto -lssl -lkeyutils -lm
+lsvcgssd_LDADD = $(top_builddir)/lustre/utils/liblustreapi.la $(GSSAPI_LIBS) $(KRBLIBS) -lkeyutils -lm
 lsvcgssd_LDFLAGS = $(KRBLDFLAGS)
+if GSS_SSK
+lsvcgssd_LDADD += -lcrypto -lssl
+endif
 
 l_idmap_SOURCES = \
        l_idmap.c \
@@ -94,11 +96,12 @@ lgss_keyring_SOURCES = \
        lsupport.h
 
 lgss_keyring_CFLAGS = $(AM_CFLAGS) $(CFLAGS) $(KRBCFLAGS) -D _NEW_BUILD_
-lgss_keyring_LDADD = $(top_builddir)/lustre/utils/liblustreapi.la $(GSSAPI_LIBS) $(KRBLIBS) -lcrypto -lssl -lm -lkeyutils
+lgss_keyring_LDADD = $(top_builddir)/lustre/utils/liblustreapi.la $(GSSAPI_LIBS) $(KRBLIBS) -lm -lkeyutils
 lgss_keyring_LDFLAGS = $(KRBLDFLAGS)
 
 if GSS_SSK
 lgss_keyring_SOURCES += sk_utils.c sk_utils.h lgss_sk_utils.c
+lgss_keyring_LDADD += -lcrypto -lssl
 
 lgss_sk_SOURCES = \
        lgss_sk.c \
index e4832e4..0601a46 100644 (file)
@@ -28,6 +28,7 @@
 #ifndef SK_UTILS_H
 #define SK_UTILS_H
 
+#ifdef HAVE_OPENSSL_SSK
 #include <gssapi/gssapi.h>
 #ifdef HAVE_LIBKEYUTILS
 #include <keyutils.h>
@@ -349,4 +350,5 @@ int sk_decode_netstring(gss_buffer_desc *bufs, int numbufs,
 int sk_encode_netstring(gss_buffer_desc *bufs, int numbufs,
                        gss_buffer_desc *ns);
 
+#endif /* HAVE_OPENSSL_SSK */
 #endif /* SK_UTILS_H */
index 57176e9..eb9bfe7 100644 (file)
@@ -56,6 +56,8 @@
 #include "cacheio.h"
 #include "lsupport.h"
 #include "gss_oids.h"
+#include <time.h>
+#include <linux/lustre/lustre_idl.h>
 #include "sk_utils.h"
 #include <sys/time.h>