summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoam Meltzer <tsnoam@gmail.com>2014-06-27 05:44:37 +0000
committerJakub Hrozek <jhrozek@redhat.com>2014-09-02 10:56:43 +0200
commitb9c8ce2bdd4045782c243605a1b999098bedcffc (patch)
treea4b405348e38e6e071ea68443f471ebafab9cfac
parent4466604d78e5ffd017e69e6861f7d78242b351fb (diff)
downloadsssd-b9c8ce2bdd4045782c243605a1b999098bedcffc.tar.gz
sssd-b9c8ce2bdd4045782c243605a1b999098bedcffc.tar.xz
sssd-b9c8ce2bdd4045782c243605a1b999098bedcffc.zip
NFSv4 client: add to build system
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com> Reviewed-by: Roland Mainz <rmainz@redhat.com>
-rw-r--r--Makefile.am24
-rw-r--r--configure.ac10
-rw-r--r--src/conf_macros.m430
-rw-r--r--src/external/libnfsidmap.m417
4 files changed, 81 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index 869ebb182..01d1ff600 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -53,6 +53,7 @@ localedir = @localedir@
nsslibdir = @nsslibdir@
pamlibdir = @pammoddir@
autofslibdir = @appmodpath@
+nfslibdir = @nfsidmaplibdir@
dbpath = @dbpath@
pluginpath = @pluginpath@
@@ -596,6 +597,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 \
@@ -2059,6 +2061,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 d20cb9ca2..42d8e5a07 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 3c9827b4d..8f8479459 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>],
+ [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 000000000..5bb6d8684
--- /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])])]
+)