core/nfs-utils to 1.2.5-2

This commit is contained in:
Kevin Mihelich 2012-03-10 00:21:13 -05:00
parent 1e5610e5fc
commit e61e259c90
5 changed files with 3 additions and 267 deletions

View file

@ -12,7 +12,7 @@ plugrel=1
pkgname=nfs-utils
pkgver=1.2.5
pkgrel=1
pkgrel=2
pkgdesc="Support programs for Network File Systems"
arch=('i686' 'x86_64')
url='http://nfs.sourceforge.net'
@ -36,7 +36,7 @@ md5sums=('8395ac770720b83c5c469f88306d7765'
'dd0d65fc6e8f422fa12520813098264b'
'f73f197a16b02c3e248488ec35c4cf43'
'e619f18354ff958ed624d05d08853d8f'
'2bf71def3263325643a09458635520f0'
'9cef69bc686cc5dcac23fbb51450747d'
'ff585faf410a62c4333a027c50b56bae'
'eb4f4027fab6fc1201f1ca04f5954c76'
'e9144277a89a620d9bc80413158a7d27'

View file

@ -18,7 +18,7 @@ PROCNFSD_MOUNTOPTS=""
# If you have a port-based firewall, you might want to set up
# a fixed port here using the --port option.
# See rpc.mountd(8) for more details.
MOUNTD_OPTS="--no-nfs-version 2"
MOUNTD_OPTS=""
# Do you want to start the svcgssd daemon? It is only required for Kerberos
# exports. Valid alternatives are "yes" and "no"; the default is "no".

View file

@ -1,138 +0,0 @@
diff -NaurwB nfs-utils-1.1.2.orig/aclocal/kerberos5.m4 nfs-utils-1.1.2/aclocal/kerberos5.m4
--- nfs-utils-1.1.2.orig/aclocal/kerberos5.m4 2008-03-14 16:46:29.000000000 +0100
+++ nfs-utils-1.1.2/aclocal/kerberos5.m4 2008-06-12 17:13:51.000000000 +0200
@@ -1,112 +1,48 @@
-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_DEFUN([AC_KERBEROS_V5],[
+ K5CONFIG="krb5-config"
AC_MSG_CHECKING(for Kerberos v5)
- AC_ARG_WITH(krb5,
- [AC_HELP_STRING([--with-krb5=DIR], [use Kerberos v5 installation in DIR])],
+ AC_ARG_WITH(krb5-config,
+ [AC_HELP_STRING([--with-krb5-config=PATH], [Full Path to krb5-config.])],
[ case "$withval" in
yes|no)
- krb5_with=""
+ K5CONFIG="krb5-config"
;;
*)
- krb5_with="$withval"
+ K5CONFIG="$withval"
;;
esac ]
)
- for dir in $krb5_with /usr /usr/kerberos /usr/local /usr/local/krb5 \
- /usr/krb5 /usr/heimdal /usr/local/heimdal /usr/athena ; 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"
- elif test -f "/usr/lib/mit/bin/krb5-config"; then
- K5CONFIG="/usr/lib/mit/bin/krb5-config"
- fi
if test "$K5CONFIG" != ""; then
KRBCFLAGS=`$K5CONFIG --cflags`
KRBLIBS=`$K5CONFIG --libs gssapi`
- K5VERS=`$K5CONFIG --version | head -n 1 | awk '{split($(4),v,"."); if (v@<:@"3"@:>@ == "") v@<:@"3"@:>@ = "0"; print v@<:@"1"@:>@v@<:@"2"@:>@v@<:@"3"@:>@ }'`
- AC_DEFINE_UNQUOTED(KRB5_VERSION, $K5VERS, [Define this as the Kerberos version number])
- if test -f $dir/include/gssapi/gssapi_krb5.h -a \
- \( -f $dir/lib/libgssapi_krb5.a -o \
- -f $dir/lib64/libgssapi_krb5.a -o \
- -f $dir/lib64/libgssapi_krb5.so -o \
- -f $dir/lib/libgssapi_krb5.so \) ; then
+ if $K5CONFIG --version | grep -q -e heimdal; then
+ K5VERS=`$K5CONFIG --version | head -n 1 | cut -f2 -d ' ' | tr -d '.'`
+ AC_DEFINE(HAVE_HEIMDAL, 1, [Define this if you have Heimdal Kerberos libraries])
+ gssapi_lib=gssapi
+ KRBIMPL="heimdal"
+ elif $K5CONFIG --version | grep -q -e mit; then
+ K5VERS=`$K5CONFIG --version | head -n 1 | cut -f4 -d ' ' | tr -d '.'`
AC_DEFINE(HAVE_KRB5, 1, [Define this if you have MIT Kerberos libraries])
- KRBDIR="$dir"
- dnl If we are using MIT K5 1.3.1 and before, we *MUST* use the
- dnl private function (gss_krb5_ccache_name) to get correct
- dnl behavior of changing the ccache used by gssapi.
- dnl Starting in 1.3.2, we *DO NOT* want to use
- dnl gss_krb5_ccache_name, instead we want to set KRB5CCNAME
- dnl to get gssapi to use a different ccache
if test $K5VERS -le 131; then
AC_DEFINE(USE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the private function, gss_krb5_cache_name, must be used to tell the Kerberos library which credentials cache to use. Otherwise, this is done by setting the KRB5CCNAME environment variable])
fi
gssapi_lib=gssapi_krb5
- 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, 1, [Define this if you have Heimdal Kerberos libraries])
- KRBDIR="$dir"
- gssapi_lib=gssapi
- break
- fi
- 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: consider --disable-gss or --with-krb5=)
+ KRBIMPL="mit-krb5"
else
- AC_MSG_ERROR(Kerberos v5 with GSS support not found at $krb5_with)
- fi
+ AC_MSG_ERROR(Unknown Kerberos 5 Implementation. Is neither heimdal or mit-krb5.)
+ KRBIMPL="unknown"
fi
- AC_MSG_RESULT($KRBDIR)
-
- dnl Check if -rpath=$(KRBDIR)/lib is needed
- echo "The current KRBDIR is $KRBDIR"
- if test "$KRBDIR/lib" = "/lib" -o "$KRBDIR/lib" = "/usr/lib" \
- -o "$KRBDIR/lib" = "//lib" -o "$KRBDIR/lib" = "/usr//lib" ; then
- KRBLDFLAGS="";
- elif /sbin/ldconfig -p | grep > /dev/null "=> $KRBDIR/lib/"; then
- KRBLDFLAGS="";
- else
- KRBLDFLAGS="-Wl,-rpath=$KRBDIR/lib"
+ AC_DEFINE_UNQUOTED(KRB5_VERSION, $K5VERS, [Define this as the Kerberos version number])
fi
+ AC_MSG_RESULT($KRBIMPL)
- dnl Now check for functions within gssapi library
- AC_CHECK_LIB($gssapi_lib, gss_krb5_export_lucid_sec_context,
- AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT, 1, [Define this if the Kerberos GSS library supports gss_krb5_export_lucid_sec_context]), ,$KRBLIBS)
- AC_CHECK_LIB($gssapi_lib, gss_krb5_set_allowable_enctypes,
- AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES, 1, [Define this if the Kerberos GSS library supports gss_krb5_set_allowable_enctypes]), ,$KRBLIBS)
- AC_CHECK_LIB($gssapi_lib, gss_krb5_ccache_name,
- AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the Kerberos GSS library supports gss_krb5_ccache_name]), ,$KRBLIBS)
-
- dnl Check for newer error message facility
- AC_CHECK_LIB($gssapi_lib, krb5_get_error_message,
- AC_DEFINE(HAVE_KRB5_GET_ERROR_MESSAGE, 1, [Define this if the function krb5_get_error_message is available]), ,$KRBLIBS)
+ AC_CHECK_LIB($gssapi_lib, gss_krb5_export_lucid_sec_context, AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT, 1, [Define this if the Kerberos GSS library supports gss_krb5_export_lucid_sec_context]), ,$KRBLIBS)
+ AC_CHECK_LIB($gssapi_lib, gss_krb5_set_allowable_enctypes, AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES, 1, [Define this if the Kerberos GSS library supports gss_krb5_set_allowable_enctypes]), ,$KRBLIBS)
+ AC_CHECK_LIB($gssapi_lib, gss_krb5_ccache_name, AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the Kerberos GSS library supports gss_krb5_ccache_name]), ,$KRBLIBS)
+ AC_CHECK_LIB($gssapi_lib, krb5_get_error_message, AC_DEFINE(HAVE_KRB5_GET_ERROR_MESSAGE, 1, [Define this if the function krb5_get_error_message is available]), ,$KRBLIBS)
+ AC_CHECK_LIB($gssapi_lib, krb5_get_init_creds_opt_set_addressless, AC_DEFINE(HAVE_KRB5_GET_INIT_CREDS_OPT_SET_ADDRESSLESS, 1, [Define this if the function krb5_get_init_creds_opt_set_addressless is available]), ,$KRBLIBS)
- dnl Check for function to specify addressless tickets
- AC_CHECK_LIB($gssapi_lib, krb5_get_init_creds_opt_set_addressless,
- AC_DEFINE(HAVE_KRB5_GET_INIT_CREDS_OPT_SET_ADDRESSLESS, 1, [Define this if the function krb5_get_init_creds_opt_set_addressless is available]), ,$KRBLIBS)
-
- 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([KRBLIBS])
AC_SUBST([KRBCFLAGS])
AC_SUBST([KRBLDFLAGS])

View file

@ -1,69 +0,0 @@
diff -Naur nfs-utils-1.1.6.orig/utils/gssd/krb5_util.c nfs-utils-1.1.6/utils/gssd/krb5_util.c
--- utils/gssd/krb5_util.c 2009-04-20 19:32:50.000000000 +0200
+++ utils/gssd/krb5_util.c 2009-04-20 20:57:31.000000000 +0200
@@ -940,9 +940,37 @@
{
krb5_error_code ret;
krb5_creds creds;
- krb5_cc_cursor cur;
int found = 0;
+#ifdef HAVE_HEIMDAL
+ krb5_creds pattern;
+ krb5_realm *client_realm;
+
+ krb5_cc_clear_mcred(&pattern);
+
+ client_realm = krb5_princ_realm (context, principal);
+
+ ret = krb5_make_principal (context, &pattern.server,
+ *client_realm, KRB5_TGS_NAME, *client_realm,
+ NULL);
+ if (ret)
+ krb5_err (context, 1, ret, "krb5_make_principal");
+ pattern.client = principal;
+
+ ret = krb5_cc_retrieve_cred (context, ccache, 0, &pattern, &creds);
+ krb5_free_principal (context, pattern.server);
+ if (ret) {
+ if (ret == KRB5_CC_END)
+ return 1;
+ krb5_err (context, 1, ret, "krb5_cc_retrieve_cred");
+ }
+
+ found = creds.times.endtime > time(NULL);
+
+ krb5_free_cred_contents (context, &creds);
+#else
+ krb5_cc_cursor cur;
+
ret = krb5_cc_start_seq_get(context, ccache, &cur);
if (ret)
return 0;
@@ -962,6 +990,7 @@
krb5_free_cred_contents(context, &creds);
}
krb5_cc_end_seq_get(context, ccache, &cur);
+#endif
return found;
}
@@ -1008,6 +1037,9 @@
}
krb5_free_principal(context, principal);
err_princ:
+#ifdef HAVE_HEIMDAL
+#define KRB5_TC_OPENCLOSE 0x00000001
+#endif
krb5_cc_set_flags(context, ccache, KRB5_TC_OPENCLOSE);
krb5_cc_close(context, ccache);
err_cache:
@@ -1262,7 +1294,7 @@
if (context != NULL) {
origmsg = krb5_get_error_message(context, code);
msg = strdup(origmsg);
- krb5_free_error_message(context, origmsg);
+ krb5_free_error_string(context, origmsg);
}
#endif
if (msg != NULL)

View file

@ -1,57 +0,0 @@
Index: nfs-utils-1.1.6/utils/gssd/context_lucid.c
===================================================================
--- nfs-utils-1.1.6.orig/utils/gssd/context_lucid.c
+++ nfs-utils-1.1.6/utils/gssd/context_lucid.c
@@ -51,8 +51,10 @@
#include "context.h"
#ifndef OM_uint64
+#ifndef GSSAPI_GSSAPI_H_
typedef uint64_t OM_uint64;
#endif
+#endif
static int
write_lucid_keyblock(char **p, char *end, gss_krb5_lucid_key_t *key)
@@ -177,10 +179,10 @@
int retcode = 0;
printerr(2, "DEBUG: serialize_krb5_ctx: lucid version!\n");
- maj_stat = gss_export_lucid_sec_context(&min_stat, &ctx,
+ maj_stat = gss_krb5_export_lucid_sec_context(&min_stat, &ctx,
1, &return_ctx);
if (maj_stat != GSS_S_COMPLETE) {
- pgsserr("gss_export_lucid_sec_context",
+ pgsserr("gss_krb5_export_lucid_sec_context",
maj_stat, min_stat, &krb5oid);
goto out_err;
}
@@ -204,9 +206,9 @@
else
retcode = prepare_krb5_rfc_cfx_buffer(lctx, buf, endtime);
- maj_stat = gss_free_lucid_sec_context(&min_stat, ctx, return_ctx);
+ maj_stat = gss_krb5_free_lucid_sec_context(&min_stat, ctx);
if (maj_stat != GSS_S_COMPLETE) {
- pgsserr("gss_export_lucid_sec_context",
+ pgsserr("gss_krb5_export_lucid_sec_context",
maj_stat, min_stat, &krb5oid);
printerr(0, "WARN: failed to free lucid sec context\n");
}
Index: nfs-utils-1.1.6/utils/gssd/krb5_util.c
===================================================================
--- nfs-utils-1.1.6.orig/utils/gssd/krb5_util.c
+++ nfs-utils-1.1.6/utils/gssd/krb5_util.c
@@ -332,10 +332,10 @@
return -1;
}
- maj_stat = gss_set_allowable_enctypes(&min_stat, credh, &krb5oid,
+ maj_stat = gss_krb5_set_allowable_enctypes(&min_stat, credh,
num_enctypes, &enctypes);
if (maj_stat != GSS_S_COMPLETE) {
- pgsserr("gss_set_allowable_enctypes",
+ pgsserr("gss_krb5_set_allowable_enctypes",
maj_stat, min_stat, &krb5oid);
gss_release_cred(&min_stat, &credh);
return -1;