X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=configure.in;h=5d683a65a5db9e5cba1eff8178bf2ebc821b019f;hp=aece32c832ede769040e6ecce714e6a21b427025;hb=5206cbfa8934cb7331a840f3446d35cdbb795e34;hpb=475135e4bb90212385f19c8aac8b39bd123f0a2f;ds=inline diff --git a/configure.in b/configure.in index aece32c..5d683a6 100644 --- a/configure.in +++ b/configure.in @@ -4,7 +4,7 @@ AC_INIT(rules.mk) AC_PREFIX_DEFAULT(/usr) # The nfs-utils version -VERSION="1.0.2" +VERSION="1.0.6" AC_SUBST(VERSION) dnl ************************************************************* @@ -20,6 +20,15 @@ AC_ARG_WITH(statedir, statedir=$withval, statedir=/var/lib/nfs) AC_SUBST(statedir) +AC_ARG_WITH(statduser, + [ --with-statduser=rpcuser user for statd to run under [rpcuser or nobody]], + statduser=$withval, + if grep -s '^rpcuser:' /etc/passwd > /dev/null; then + statduser=rpcuser + else + statduser=nobody + fi) + AC_SUBST(statduser) AC_ARG_ENABLE(nfsv3, [ --enable-nfsv3 enable support for NFSv3], enable_nfsv3=$enableval, @@ -30,6 +39,35 @@ AC_ARG_ENABLE(nfsv3, enable_nfsv3= fi AC_SUBST(enable_nfsv3) +AC_ARG_ENABLE(nfsv4, + [ --enable-nfsv4 enable support for NFSv4], + enable_nfsv4=$enableval, + enable_nfsv4=yes) + if test "$enable_nfsv4" = yes; then + AC_DEFINE(NFS4_SUPPORTED) + IDMAPD=idmapd + else + enable_nfsv4= + IDMAPD= + fi + AC_SUBST(IDMAPD) + AC_SUBST(enable_nfsv4) +AC_ARG_ENABLE(gss, + [ --enable-gss enable support for rpcsec_gss], + enable_gss=$enableval, + enable_gss=yes) + if test "$enable_gss" = yes; then + AC_DEFINE(GSS_SUPPORTED) + GSSD=gssd + SVCGSSD=svcgssd + else + enable_gss= + GSSD= + SVCGSSD= + fi + AC_SUBST(GSSD) + AC_SUBST(SVCGSSD) + AC_SUBST(enable_gss) AC_ARG_ENABLE(kprefix, [ --enable-kprefix install progs as rpc.knfsd etc], test "$enableval" = "yes" && kprefix=k, @@ -78,6 +116,12 @@ dnl ************************************************************* AC_CHECK_LIB(socket, main, [LIBSOCKET="-lnsl"]) AC_CHECK_LIB(nsl, main, [LIBNSL="-lnsl"]) AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"]) +if test "$enable_nfsv4" = yes; then + AC_CHECK_LIB(event, event_dispatch) + AC_CHECK_LIB(nfsidmap, nfs4_init_name_mapping) + AC_CHECK_HEADERS(event.h) + AC_CHECK_HEADERS(nfsidmap.h) +fi if test "$knfsd_cv_glibc2" = no; then AC_CHECK_LIB(bsd, daemon, [LIBBSD="-lbsd"]) fi @@ -89,6 +133,94 @@ AC_SUBST(LIBBSD) AC_TCP_WRAPPER AC_SUBST(LIBWRAP) +if test "$enable_gss" = yes; then + dnl Checks for Kerberos + dnl NOTE: while we intend to do generic gss-api, currently we + dnl have a requirement to get an initial Kerberos machine + dnl credential. Thus, the requirement for Kerberos. + dnl The Kerberos gssapi library will be dynamically loaded? + AC_MSG_CHECKING(for Kerberos v5) + AC_ARG_WITH(krb5, + [ --with-krb5=DIR use Kerberos v5 installation in DIR], + [ case "$withval" in + yes|no) + krb5_with="" + ;; + *) + krb5_with="$withval" + ;; + esac ] + ) + + for dir in $krb5_with /usr/kerberos /usr/local /usr/local/krb5 /usr/krb5 \ + /usr/heimdal /usr/local/heimdal /usr/athena /usr ; do + dnl This ugly hack brought on by the split installation of + dnl MIT Kerberos on Fedora Core 1 + K5CONFIG="" + if test -f $dir/bin/krb5-config; then + K5CONFIG=$dir/bin/krb5-config + elif test -f "/usr/kerberos/bin/krb5-config"; then + K5CONFIG="/usr/kerberos/bin/krb5-config" + fi + if test "$K5CONFIG" != ""; then + if test -f $dir/include/gssapi/gssapi_krb5.h -a \ + \( -f $dir/lib/libgssapi_krb5.a -o \ + -f $dir/lib/libgssapi_krb5.so \) ; then + AC_DEFINE(HAVE_KRB5) + KRBDIR="$dir" + K5VERS=`$K5CONFIG --version | awk '{split($4,v,"."); print v[[1]]v[[2]]v[[3]] }'` + AC_DEFINE_UNQUOTED(KRB5_VERSION,$K5VERS) + KRBLIB=`$K5CONFIG --libs gssapi` + if test $K5VERS -le 131; then + AC_DEFINE(USE_PRIVATE_KRB5_FUNCTIONS) + fi + AC_CHECK_LIB(gssapi_krb5, gss_krb5_export_lucid_sec_context, + AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT),,$KRBLIB) + AC_CHECK_LIB(gssapi_krb5, gss_krb5_set_allowable_enctypes, + AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES),,$KRBLIB) + AC_CHECK_LIB(gssapi_krb5, gss_krb5_ccache_name, + AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME),,$KRBLIB) + break + dnl The following ugly hack brought on by the split installation + dnl of Heimdal Kerberos on SuSe + elif test \( -f $dir/include/heim_err.h -o\ + -f $dir/include/heimdal/heim_err.h \) -a \ + -f $dir/lib/libroken.a; then + AC_DEFINE(HAVE_HEIMDAL) + KRBDIR="$dir" + K5VERS=`$K5CONFIG --version | head -1 | awk '{split($2,v,"."); print v[[1]]v[[2]]v[[3]] }'` + AC_DEFINE_UNQUOTED(KRB5_VERSION,$K5VERS) + KRBLIB=`$K5CONFIG --libs gssapi` + AC_CHECK_LIB(gssapi, gss_krb5_export_lucid_sec_context, + AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT),,$KRBLIB) + AC_CHECK_LIB(gssapi, gss_krb5_set_allowable_enctypes, + AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES),,$KRBLIB) + AC_CHECK_LIB(gssapi, gss_krb5_ccache_name, + AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME),,$KRBLIB) + break + fi + CFLAGS=$CFLAGS `K5CONFIG --cflags` + fi + done + dnl We didn't find a usable Kerberos environment + if test "x$KRBDIR" = "x"; then + if test "x$krb5_with" = "x"; then + AC_MSG_ERROR(Kerberos v5 with GSS support not found) + else + AC_MSG_ERROR(Kerberos v5 with GSS support not found at $krb5_with) + fi + fi + AC_MSG_RESULT($KRBDIR) + dnl If they specified a directory and it didn't work, give them a warning + if test "x$krb5_with" != "x" -a "$krb5_with" != "$KRBDIR"; then + AC_MSG_WARN(Using $KRBDIR instead of requested value of $krb5_with for Kerberos!) + fi + + AC_SUBST([KRBDIR]) + AC_SUBST([KRBLIB]) + AC_SUBST([K5VERS]) +fi + dnl ************************************************************* dnl Check for headers dnl ************************************************************* @@ -107,4 +239,4 @@ AC_DEFINE_UNQUOTED(NFS_STATEDIR, "$statedir") AC_SUBST(LDFLAGS) AC_SUBST(CXXFLAGS) AC_SUBST(CFLAGS) -AC_OUTPUT(config.mk nfs-utils.spec utils/Makefile) +AC_OUTPUT(config.mk utils/Makefile)