>From 9ec8cd169c78b4740acf3545fe0b3292785368f4 Mon Sep 17 00:00:00 2001 From: Noam Meltzer Date: Fri, 27 Jun 2014 05:44:37 +0000 Subject: [PATCH 3/4] NFSv4 client: add to build system --- Makefile.am | 24 ++++++++++++++++++++++++ configure.ac | 10 ++++++++++ src/conf_macros.m4 | 30 ++++++++++++++++++++++++++++++ src/external/libnfsidmap.m4 | 17 +++++++++++++++++ 4 files changed, 81 insertions(+) create mode 100644 src/external/libnfsidmap.m4 diff --git a/Makefile.am b/Makefile.am index 4c3dc35d234899d3198ab297f2c2a4895f442b13..727ae2dd3afe24904394b2af9b9bdc850dc0d059 100644 --- a/Makefile.am +++ b/Makefile.am @@ -50,6 +50,7 @@ localedir = @localedir@ nsslibdir = @nsslibdir@ pamlibdir = @pammoddir@ autofslibdir = @appmodpath@ +nfslibdir = @nfsidmaplibdir@ dbpath = @dbpath@ pluginpath = @pluginpath@ @@ -578,6 +579,7 @@ dist_noinst_HEADERS = \ src/sss_client/libwbclient/wbc_err_internal.h \ src/sss_client/libwbclient/wbclient_internal.h \ src/sss_client/libwbclient/wbc_sssd_internal.h \ + src/sss_client/nfs/nfsidmap_internal.h \ src/lib/idmap/sss_idmap_private.h \ src/lib/sifp/sss_sifp_private.h \ src/tests/cmocka/test_utils.h \ @@ -2041,6 +2043,28 @@ libnss_sss_la_LDFLAGS = \ -version-info 2:0:0 \ -Wl,--version-script,$(srcdir)/src/sss_client/sss_nss.exports +if BUILD_NFS_IDMAP +nfslib_LTLIBRARIES = sss.la +sss_la_SOURCES = \ + src/sss_client/common.c \ + src/sss_client/nss_mc_common.c \ + src/util/io.c \ + src/util/murmurhash3.c \ + src/sss_client/nss_mc_passwd.c \ + src/sss_client/nss_mc_group.c \ + src/sss_client/nfs/sss_nfs_client.c \ + $(NULL) +sss_la_CFLAGS = $(AM_CFLAGS) +sss_la_LIBADD = \ + $(CLIENT_LIBS) \ + $(NFSIDMAP_LIBS) \ + $(NULL) +sss_la_LDFLAGS = \ + -module \ + -avoid-version \ + $(NULL) +endif + pamlib_LTLIBRARIES = pam_sss.la pam_sss_la_SOURCES = \ src/sss_client/pam_sss.c \ diff --git a/configure.ac b/configure.ac index d20cb9ca20c927c9e08d2eb3fbacdc9bfd78345b..42d8e5a07066162e39bc812bcfd079e97ae2e273 100644 --- a/configure.ac +++ b/configure.ac @@ -85,6 +85,13 @@ AC_ARG_ENABLE([pammoddir], [AS_HELP_STRING([--enable-pammoddir], [pammoddir=$libdir/security]) AC_SUBST(pammoddir) +#Set the NFSv4 idmapd library install path +AC_ARG_ENABLE([nfsidmaplibdir], [AS_HELP_STRING([--enable-nfsidmaplibdir], + [Where to install libnfsidmap libraries ($libdir/libnfsidmap)])], + [nfsidmaplibdir=$enableval], + [nfsidmaplibdir=$libdir/libnfsidmap]) +AC_SUBST(nfsidmaplibdir) + #Include here cause WITH_INIT_DIR requires $osname set in platform.m4 m4_include([src/external/platform.m4]) @@ -123,6 +130,8 @@ WITH_IFP WITH_CRYPTO WITH_SYSLOG WITH_SAMBA +WITH_NFS +WITH_NFS_LIB_PATH m4_include([src/external/pkg.m4]) m4_include([src/external/libpopt.m4]) @@ -156,6 +165,7 @@ m4_include([src/external/inotify.m4]) m4_include([src/external/samba.m4]) m4_include([src/external/sasl.m4]) m4_include([src/external/configlib.m4]) +m4_include([src/external/libnfsidmap.m4]) if test x$build_config_lib = xyes; then m4_include([src/external/libaugeas.m4]) diff --git a/src/conf_macros.m4 b/src/conf_macros.m4 index 3c9827b4d4e1750fc06af8ab8b69ecf99226a8f6..8f8479459594283696f09c3ea9d79be3229ef3e8 100644 --- a/src/conf_macros.m4 +++ b/src/conf_macros.m4 @@ -691,3 +691,33 @@ AC_ARG_ENABLE([dbus-tests], [build_dbus_tests=$enableval], [build_dbus_tests=yes]) AM_CONDITIONAL([BUILD_DBUS_TESTS], [test x$build_dbus_tests = xyes]) + +AC_DEFUN([WITH_NFS], + [ AC_ARG_WITH([nfs_idmap], + [AC_HELP_STRING([--with-nfsv4-idmapd-plugin], + [Whether to build with NFSv4 IDMAP support [yes]] + ) + ], + [with_nfs_idmap=$withval], + with_nfs_idmap=yes + ) + + if test x"$with_nfs_idmap" = xyes; then + AC_DEFINE(BUILD_NFS_IDMAP, 1, [whether to build with NFSv4 IDMAP support]) + fi + AM_CONDITIONAL([BUILD_NFS_IDMAP], [test x"$with_nfs_idmap" = xyes]) + ]) + +AC_DEFUN([WITH_NFS_LIB_PATH], + [ AC_ARG_WITH([nfs-lib-path], + [AC_HELP_STRING([--with-nfs-lib-path=], + [Path to the nfs library [${libdir}]] + ) + ] + ) + nfslibpath="${libdir}" + if test x"$with_nfs_lib_path" != x; then + nfslibpath=$with_nfs_lib_path + fi + AC_SUBST(nfslibpath) + ]) diff --git a/src/external/libnfsidmap.m4 b/src/external/libnfsidmap.m4 new file mode 100644 index 0000000000000000000000000000000000000000..5bb6d8684732e1d38e1c802dfaedf0ebba281285 --- /dev/null +++ b/src/external/libnfsidmap.m4 @@ -0,0 +1,17 @@ +AC_SUBST(NFSIDMAP_OBJ) +AC_SUBST(NFSIDMAP_CFLAGS) +AC_SUBST(NFSIDMAP_LIBS) + +PKG_CHECK_MODULES([NFSIDMAP], [libnfsidmap], [found_nfsidmap=yes], + [found_nfsidmap=no]) + +SSS_AC_EXPAND_LIB_DIR() +AS_IF([test x"$with_nfs" = xyes -a x"$found_nfsidmap" != xyes], + [AC_CHECK_HEADER([nfsidmap.h], + [AC_CHECK_LIB([nfsidmap], + [nfs4_init_name_mapping], + [NFSIDMAP_LIBS="-L$sss_extra_libdir -lnfsidmap"], + [AC_MSG_ERROR([libnfsidmap missing nfs4_init_name_mapping])], + [-L$sss_extra_libdir])], + [AC_MSG_ERROR([libnfsidmap header files are not installed])])] +) -- 1.9.3