3 The complete set of CITI nfs-utils patches rolled into one patch.
5 Changes since 1.0.7-CITI_NFS4_ALL-1:
6 * Clean up configure, especially for Kerberos checking
7 * Fixes for gss context serialization on 64-bit machines
8 * Properly limit the encryption types when using MIT
10 * Add options to turn on rpcsec_gss library debugging
11 if supported by the library
12 * Changes that allow compiling with Heimdal Kerberos
14 NOTE: There are still run-time problems when using
15 the Heimdal libraries.
20 /dev/null | 4185 ---------
21 nfs-utils-1.0.7-kwc/config.mk.in | 1
22 nfs-utils-1.0.7-kwc/configure | 7206 +++++++++++++----
23 nfs-utils-1.0.7-kwc/configure.in | 83
24 nfs-utils-1.0.7-kwc/debian/control | 2
25 nfs-utils-1.0.7-kwc/debian/nfs-common.conffiles | 1
26 nfs-utils-1.0.7-kwc/debian/nfs-common.install | 1
27 nfs-utils-1.0.7-kwc/support/Makefile | 2
28 nfs-utils-1.0.7-kwc/support/include/config.h.in | 31
29 nfs-utils-1.0.7-kwc/support/include/gssapi/gssapi.h | 24
30 nfs-utils-1.0.7-kwc/support/rpc/include/rpc/auth_gss.h | 3
31 nfs-utils-1.0.7-kwc/utils/gssd/Makefile | 3
32 nfs-utils-1.0.7-kwc/utils/gssd/context_heimdal.c | 25
33 nfs-utils-1.0.7-kwc/utils/gssd/gss_oids.h | 1
34 nfs-utils-1.0.7-kwc/utils/gssd/gssd.c | 17
35 nfs-utils-1.0.7-kwc/utils/gssd/gssd.man | 6
36 nfs-utils-1.0.7-kwc/utils/gssd/krb5_util.c | 114
37 nfs-utils-1.0.7-kwc/utils/gssd/write_bytes.h | 18
38 nfs-utils-1.0.7-kwc/utils/idmapd/idmapd.c | 59
39 nfs-utils-1.0.7-kwc/utils/mountd/mountd.c | 8
40 nfs-utils-1.0.7-kwc/utils/svcgssd/Makefile | 25
41 nfs-utils-1.0.7-kwc/utils/svcgssd/svcgssd.c | 17
42 nfs-utils-1.0.7-kwc/utils/svcgssd/svcgssd.man | 6
43 nfs-utils-1.0.7-kwc/utils/svcgssd/svcgssd_main_loop.c | 11
44 nfs-utils-1.0.7-kwc/utils/svcgssd/svcgssd_proc.c | 33
45 25 files changed, 5864 insertions(+), 6018 deletions(-)
47 diff -puN config.mk.in~CITI_NFS4_ALL config.mk.in
48 --- nfs-utils-1.0.7/config.mk.in~CITI_NFS4_ALL 2005-05-06 15:19:22.201567000 -0400
49 +++ nfs-utils-1.0.7-kwc/config.mk.in 2005-05-06 15:19:22.465320000 -0400
50 @@ -61,7 +61,6 @@ INSTALL = install
51 MAN2PS = groff -Tps -man
53 AFLAGS = -I$(TOP)support/include \
54 - -I$(KRBDIR)/include \
55 -Wall $(ARCHFLAGS) -pipe
57 AFLAGS += -I$(KERNEL_INCDIR)
58 diff -puN configure~CITI_NFS4_ALL configure
59 --- nfs-utils-1.0.7/configure~CITI_NFS4_ALL 2005-05-06 15:19:22.266501000 -0400
60 +++ nfs-utils-1.0.7-kwc/configure 2005-05-06 15:19:26.618156000 -0400
64 # Guess values for system-dependent variables and create Makefiles.
65 -# Generated automatically using autoconf version 2.13
66 -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
67 +# Generated by GNU Autoconf 2.59.
69 +# Copyright (C) 2003 Free Software Foundation, Inc.
70 # This configure script is free software; the Free Software Foundation
71 # gives unlimited permission to copy, distribute and modify it.
72 +## --------------------- ##
73 +## M4sh Initialization. ##
74 +## --------------------- ##
76 +# Be Bourne compatible
77 +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
80 + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
81 + # is contrary to our usage. Disable this feature.
82 + alias -g '${1+"$@"}'='"$@"'
83 +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
86 +DUALCASE=1; export DUALCASE # for MKS sh
88 +# Support unset when possible.
89 +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
96 +# Work around bugs in pre-3.0 UWIN ksh.
97 +$as_unset ENV MAIL MAILPATH
104 + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
105 + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
106 + LC_TELEPHONE LC_TIME
108 + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
109 + eval $as_var=C; export $as_var
115 +# Required to use basename.
116 +if expr a : '\(a\)' >/dev/null 2>&1; then
122 +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
123 + as_basename=basename
129 +# Name of the executable.
130 +as_me=`$as_basename "$0" ||
131 +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
132 + X"$0" : 'X\(//\)$' \| \
133 + X"$0" : 'X\(/\)$' \| \
134 + . : '\(.\)' 2>/dev/null ||
136 + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
137 + /^X\/\(\/\/\)$/{ s//\1/; q; }
138 + /^X\/\(\/\).*/{ s//\1/; q; }
142 +# PATH needs CR, and LINENO needs CR and PATH.
143 +# Avoid depending upon Character Ranges.
144 +as_cr_letters='abcdefghijklmnopqrstuvwxyz'
145 +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
146 +as_cr_Letters=$as_cr_letters$as_cr_LETTERS
147 +as_cr_digits='0123456789'
148 +as_cr_alnum=$as_cr_Letters$as_cr_digits
150 +# The user is always right.
151 +if test "${PATH_SEPARATOR+set}" != set; then
152 + echo "#! /bin/sh" >conf$$.sh
153 + echo "exit 0" >>conf$$.sh
155 + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
164 + as_lineno_1=$LINENO
165 + as_lineno_2=$LINENO
166 + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
167 + test "x$as_lineno_1" != "x$as_lineno_2" &&
168 + test "x$as_lineno_3" = "x$as_lineno_2" || {
169 + # Find who we are. Look in the path if we contain no path at all
172 + *[\\/]* ) as_myself=$0 ;;
173 + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
177 + test -z "$as_dir" && as_dir=.
178 + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
183 + # We did not find ourselves, most probably we were run as `sh COMMAND'
184 + # in which case we are not to be found in the path.
185 + if test "x$as_myself" = x; then
188 + if test ! -f "$as_myself"; then
189 + { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
190 + { (exit 1); exit 1; }; }
192 + case $CONFIG_SHELL in
194 + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
195 +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
198 + test -z "$as_dir" && as_dir=.
199 + for as_base in sh bash ksh sh5; do
202 + if ("$as_dir/$as_base" -c '
203 + as_lineno_1=$LINENO
204 + as_lineno_2=$LINENO
205 + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
206 + test "x$as_lineno_1" != "x$as_lineno_2" &&
207 + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
208 + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
209 + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
210 + CONFIG_SHELL=$as_dir/$as_base
211 + export CONFIG_SHELL
212 + exec "$CONFIG_SHELL" "$0" ${1+"$@"}
220 + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
221 + # uniformly replaced by the line number. The first 'sed' inserts a
222 + # line-number line before each line; the second 'sed' does the real
223 + # work. The second script uses 'N' to pair each line-number line
224 + # with the numbered line, and appends trailing '-' during
225 + # substitution so that $LINENO is not a special case at line end.
226 + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
227 + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
228 + sed '=' <$as_myself |
233 + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
236 + s,^['$as_cr_digits']*\n,,
237 + ' >$as_me.lineno &&
238 + chmod +x $as_me.lineno ||
239 + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
240 + { (exit 1); exit 1; }; }
242 + # Don't try to exec as it changes $[0], causing all sort of problems
243 + # (the dirname of $[0] is not the place where we might find the
244 + # original and so on. Autoconf is especially sensible to this).
246 + # Exit status is that of the last command.
251 +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
252 + *c*,-n*) ECHO_N= ECHO_C='
254 + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
255 + *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
258 +if expr a : '\(a\)' >/dev/null 2>&1; then
264 +rm -f conf$$ conf$$.exe conf$$.file
266 +if ln -s conf$$.file conf$$ 2>/dev/null; then
267 + # We could just check for DJGPP; but this test a) works b) is more generic
268 + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
269 + if test -f conf$$.exe; then
270 + # Don't use ln at all; we don't have any links
275 +elif ln conf$$.file conf$$ 2>/dev/null; then
280 +rm -f conf$$ conf$$.exe conf$$.file
282 +if mkdir -p . 2>/dev/null; then
285 + test -d ./-p && rmdir ./-p
289 +as_executable_p="test -f"
291 +# Sed expression to map a string onto a valid CPP name.
292 +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
294 +# Sed expression to map a string onto a valid variable name.
295 +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
299 +# We need space, tab and new line, in precisely that order.
311 +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
312 +# so uname gets run too.
313 +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
320 ac_default_prefix=/usr/local
321 -# Any additions from configure.in:
322 +ac_config_libobj_dir=.
327 +SHELL=${CONFIG_SHELL-/bin/sh}
329 +# Maximum number of lines to put in a shell here document.
330 +# This variable seems obsolete. It should probably be removed, and
331 +# only ac_max_sed_lines should be used.
332 +: ${ac_max_here_lines=38}
334 +# Identity of this package.
341 +ac_unique_file="rules.mk"
342 ac_default_prefix=/usr
344 - --with-release=XXX set release to XXX [1]"
346 - --with-statedir=/foo use state dir /foo [/var/lib/nfs]"
348 - --with-statduser=rpcuser user for statd to run under [rpcuser or nobody]"
350 - --enable-nfsv3 enable support for NFSv3"
352 - --enable-nfsv4 enable support for NFSv4"
354 - --enable-gss enable support for rpcsec_gss"
356 - --enable-kprefix install progs as rpc.knfsd etc"
358 - --enable-secure-statd Only lockd can use statd (security)"
360 - --enable-rquotad enable rquotad"
362 - --with-krb5=DIR use Kerberos v5 installation in DIR"
363 +# Factoring default headers for most tests.
364 +ac_includes_default="\
366 +#if HAVE_SYS_TYPES_H
367 +# include <sys/types.h>
370 +# include <sys/stat.h>
373 +# include <stdlib.h>
374 +# include <stddef.h>
377 +# include <stdlib.h>
381 +# if !STDC_HEADERS && HAVE_MEMORY_H
382 +# include <memory.h>
384 +# include <string.h>
387 +# include <strings.h>
390 +# include <inttypes.h>
393 +# include <stdint.h>
397 +# include <unistd.h>
400 +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS VERSION RELEASE statedir statduser enable_nfsv3 IDMAPD enable_nfsv4 GSSD SVCGSSD enable_gss kprefix secure_statd RQUOTAD CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CC_FOR_BUILD RANLIB ac_ct_RANLIB AR ac_ct_AR LD ac_ct_LD EGREP LIBSOCKET LIBNSL LIBCRYPT LIBBSD LIBWRAP KRBDIR KRBLIB KRBINC K5VERS CXXFLAGS LIBOBJS LTLIBOBJS'
403 # Initialize some variables set by options.
405 +ac_init_version=false
406 # The variables have the same names as the options, with
407 # dashes changed to underlines.
409 -cache_file=./config.cache
410 +cache_file=/dev/null
418 @@ -50,10 +329,15 @@ program_transform_name=s,x,x,
427 +# Installation directory options.
428 +# These are left unexpanded so users can "make install exec_prefix=/foo"
429 +# and all the variables that are supposed to be based on exec_prefix
430 +# by default will actually change.
431 +# Use braces instead of parens because sh, perl, etc. also accept them.
432 bindir='${exec_prefix}/bin'
433 sbindir='${exec_prefix}/sbin'
434 libexecdir='${exec_prefix}/libexec'
435 @@ -67,17 +351,9 @@ oldincludedir='/usr/include'
436 infodir='${prefix}/info'
437 mandir='${prefix}/man'
439 -# Initialize some other variables.
442 -SHELL=${CONFIG_SHELL-/bin/sh}
443 -# Maximum number of lines to put in a shell here document.
444 -ac_max_here_lines=12
450 # If the previous option needs an argument, assign it.
451 if test -n "$ac_prev"; then
452 eval "$ac_prev=\$ac_option"
453 @@ -85,59 +361,59 @@ do
457 - case "$ac_option" in
458 - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
461 + ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
463 # Accept the important Cygnus configure options, so we can diagnose typos.
465 - case "$ac_option" in
468 -bindir | --bindir | --bindi | --bind | --bin | --bi)
470 -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
471 - bindir="$ac_optarg" ;;
472 + bindir=$ac_optarg ;;
474 -build | --build | --buil | --bui | --bu)
476 + ac_prev=build_alias ;;
477 -build=* | --build=* | --buil=* | --bui=* | --bu=*)
478 - build="$ac_optarg" ;;
479 + build_alias=$ac_optarg ;;
481 -cache-file | --cache-file | --cache-fil | --cache-fi \
482 | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
483 ac_prev=cache_file ;;
484 -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
485 | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
486 - cache_file="$ac_optarg" ;;
487 + cache_file=$ac_optarg ;;
489 + --config-cache | -C)
490 + cache_file=config.cache ;;
492 -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
494 -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
496 - datadir="$ac_optarg" ;;
497 + datadir=$ac_optarg ;;
499 -disable-* | --disable-*)
500 - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
501 + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
502 # Reject names that are not valid shell variable names.
503 - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
504 - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
506 - ac_feature=`echo $ac_feature| sed 's/-/_/g'`
507 - eval "enable_${ac_feature}=no" ;;
508 + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
509 + { echo "$as_me: error: invalid feature name: $ac_feature" >&2
510 + { (exit 1); exit 1; }; }
511 + ac_feature=`echo $ac_feature | sed 's/-/_/g'`
512 + eval "enable_$ac_feature=no" ;;
514 -enable-* | --enable-*)
515 - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
516 + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
517 # Reject names that are not valid shell variable names.
518 - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
519 - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
521 - ac_feature=`echo $ac_feature| sed 's/-/_/g'`
522 - case "$ac_option" in
524 + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
525 + { echo "$as_me: error: invalid feature name: $ac_feature" >&2
526 + { (exit 1); exit 1; }; }
527 + ac_feature=`echo $ac_feature | sed 's/-/_/g'`
529 + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
532 - eval "enable_${ac_feature}='$ac_optarg'" ;;
533 + eval "enable_$ac_feature='$ac_optarg'" ;;
535 -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
536 | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
537 @@ -146,95 +422,47 @@ do
538 -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
539 | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
540 | --exec=* | --exe=* | --ex=*)
541 - exec_prefix="$ac_optarg" ;;
542 + exec_prefix=$ac_optarg ;;
544 -gas | --gas | --ga | --g)
545 # Obsolete; use --with-gas.
548 - -help | --help | --hel | --he)
549 - # Omit some internal or obsolete options to make the list less imposing.
550 - # This message is too long to be a string in the A/UX 3.1 sh.
552 -Usage: configure [options] [host]
553 -Options: [defaults in brackets after descriptions]
555 - --cache-file=FILE cache test results in FILE
556 - --help print this message
557 - --no-create do not create output files
558 - --quiet, --silent do not print \`checking...' messages
559 - --version print the version of autoconf that created configure
560 -Directory and file names:
561 - --prefix=PREFIX install architecture-independent files in PREFIX
562 - [$ac_default_prefix]
563 - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
565 - --bindir=DIR user executables in DIR [EPREFIX/bin]
566 - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
567 - --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
568 - --datadir=DIR read-only architecture-independent data in DIR
570 - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
571 - --sharedstatedir=DIR modifiable architecture-independent data in DIR
573 - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
574 - --libdir=DIR object code libraries in DIR [EPREFIX/lib]
575 - --includedir=DIR C header files in DIR [PREFIX/include]
576 - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
577 - --infodir=DIR info documentation in DIR [PREFIX/info]
578 - --mandir=DIR man documentation in DIR [PREFIX/man]
579 - --srcdir=DIR find the sources in DIR [configure dir or ..]
580 - --program-prefix=PREFIX prepend PREFIX to installed program names
581 - --program-suffix=SUFFIX append SUFFIX to installed program names
582 - --program-transform-name=PROGRAM
583 - run sed PROGRAM on installed program names
587 - --build=BUILD configure for building on BUILD [BUILD=HOST]
588 - --host=HOST configure for HOST [guessed]
589 - --target=TARGET configure for TARGET [TARGET=HOST]
590 -Features and packages:
591 - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
592 - --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
593 - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
594 - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
595 - --x-includes=DIR X include files are in DIR
596 - --x-libraries=DIR X library files are in DIR
598 - if test -n "$ac_help"; then
599 - echo "--enable and --with options recognized:$ac_help"
602 + -help | --help | --hel | --he | -h)
603 + ac_init_help=long ;;
604 + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
605 + ac_init_help=recursive ;;
606 + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
607 + ac_init_help=short ;;
609 -host | --host | --hos | --ho)
611 + ac_prev=host_alias ;;
612 -host=* | --host=* | --hos=* | --ho=*)
613 - host="$ac_optarg" ;;
614 + host_alias=$ac_optarg ;;
616 -includedir | --includedir | --includedi | --included | --include \
617 | --includ | --inclu | --incl | --inc)
618 ac_prev=includedir ;;
619 -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
620 | --includ=* | --inclu=* | --incl=* | --inc=*)
621 - includedir="$ac_optarg" ;;
622 + includedir=$ac_optarg ;;
624 -infodir | --infodir | --infodi | --infod | --info | --inf)
626 -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
627 - infodir="$ac_optarg" ;;
628 + infodir=$ac_optarg ;;
630 -libdir | --libdir | --libdi | --libd)
632 -libdir=* | --libdir=* | --libdi=* | --libd=*)
633 - libdir="$ac_optarg" ;;
634 + libdir=$ac_optarg ;;
636 -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
637 | --libexe | --libex | --libe)
638 ac_prev=libexecdir ;;
639 -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
640 | --libexe=* | --libex=* | --libe=*)
641 - libexecdir="$ac_optarg" ;;
642 + libexecdir=$ac_optarg ;;
644 -localstatedir | --localstatedir | --localstatedi | --localstated \
645 | --localstate | --localstat | --localsta | --localst \
646 @@ -243,19 +471,19 @@ EOF
647 -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
648 | --localstate=* | --localstat=* | --localsta=* | --localst=* \
649 | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
650 - localstatedir="$ac_optarg" ;;
651 + localstatedir=$ac_optarg ;;
653 -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
655 -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
656 - mandir="$ac_optarg" ;;
657 + mandir=$ac_optarg ;;
660 # Obsolete; use --without-fp.
663 -no-create | --no-create | --no-creat | --no-crea | --no-cre \
664 - | --no-cr | --no-c)
665 + | --no-cr | --no-c | -n)
668 -no-recursion | --no-recursion | --no-recursio | --no-recursi \
669 @@ -269,26 +497,26 @@ EOF
670 -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
671 | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
672 | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
673 - oldincludedir="$ac_optarg" ;;
674 + oldincludedir=$ac_optarg ;;
676 -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
678 -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
679 - prefix="$ac_optarg" ;;
680 + prefix=$ac_optarg ;;
682 -program-prefix | --program-prefix | --program-prefi | --program-pref \
683 | --program-pre | --program-pr | --program-p)
684 ac_prev=program_prefix ;;
685 -program-prefix=* | --program-prefix=* | --program-prefi=* \
686 | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
687 - program_prefix="$ac_optarg" ;;
688 + program_prefix=$ac_optarg ;;
690 -program-suffix | --program-suffix | --program-suffi | --program-suff \
691 | --program-suf | --program-su | --program-s)
692 ac_prev=program_suffix ;;
693 -program-suffix=* | --program-suffix=* | --program-suffi=* \
694 | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
695 - program_suffix="$ac_optarg" ;;
696 + program_suffix=$ac_optarg ;;
698 -program-transform-name | --program-transform-name \
699 | --program-transform-nam | --program-transform-na \
700 @@ -305,7 +533,7 @@ EOF
701 | --program-transfo=* | --program-transf=* \
702 | --program-trans=* | --program-tran=* \
703 | --progr-tra=* | --program-tr=* | --program-t=*)
704 - program_transform_name="$ac_optarg" ;;
705 + program_transform_name=$ac_optarg ;;
707 -q | -quiet | --quiet | --quie | --qui | --qu | --q \
708 | -silent | --silent | --silen | --sile | --sil)
709 @@ -315,7 +543,7 @@ EOF
711 -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
713 - sbindir="$ac_optarg" ;;
714 + sbindir=$ac_optarg ;;
716 -sharedstatedir | --sharedstatedir | --sharedstatedi \
717 | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
718 @@ -326,58 +554,57 @@ EOF
719 | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
720 | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
722 - sharedstatedir="$ac_optarg" ;;
723 + sharedstatedir=$ac_optarg ;;
725 -site | --site | --sit)
727 -site=* | --site=* | --sit=*)
728 - site="$ac_optarg" ;;
731 -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
733 -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
734 - srcdir="$ac_optarg" ;;
735 + srcdir=$ac_optarg ;;
737 -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
738 | --syscon | --sysco | --sysc | --sys | --sy)
739 ac_prev=sysconfdir ;;
740 -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
741 | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
742 - sysconfdir="$ac_optarg" ;;
743 + sysconfdir=$ac_optarg ;;
745 -target | --target | --targe | --targ | --tar | --ta | --t)
747 + ac_prev=target_alias ;;
748 -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
749 - target="$ac_optarg" ;;
750 + target_alias=$ac_optarg ;;
752 -v | -verbose | --verbose | --verbos | --verbo | --verb)
755 - -version | --version | --versio | --versi | --vers)
756 - echo "configure generated by autoconf version 2.13"
758 + -version | --version | --versio | --versi | --vers | -V)
759 + ac_init_version=: ;;
762 - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
763 + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
764 # Reject names that are not valid shell variable names.
765 - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
766 - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
768 + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
769 + { echo "$as_me: error: invalid package name: $ac_package" >&2
770 + { (exit 1); exit 1; }; }
771 ac_package=`echo $ac_package| sed 's/-/_/g'`
772 - case "$ac_option" in
775 + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
778 - eval "with_${ac_package}='$ac_optarg'" ;;
779 + eval "with_$ac_package='$ac_optarg'" ;;
781 -without-* | --without-*)
782 - ac_package=`echo $ac_option|sed -e 's/-*without-//'`
783 + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
784 # Reject names that are not valid shell variable names.
785 - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
786 - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
788 - ac_package=`echo $ac_package| sed 's/-/_/g'`
789 - eval "with_${ac_package}=no" ;;
790 + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
791 + { echo "$as_me: error: invalid package name: $ac_package" >&2
792 + { (exit 1); exit 1; }; }
793 + ac_package=`echo $ac_package | sed 's/-/_/g'`
794 + eval "with_$ac_package=no" ;;
797 # Obsolete; use --with-x.
798 @@ -388,99 +615,110 @@ EOF
799 ac_prev=x_includes ;;
800 -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
801 | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
802 - x_includes="$ac_optarg" ;;
803 + x_includes=$ac_optarg ;;
805 -x-libraries | --x-libraries | --x-librarie | --x-librari \
806 | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
807 ac_prev=x_libraries ;;
808 -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
809 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
810 - x_libraries="$ac_optarg" ;;
811 + x_libraries=$ac_optarg ;;
813 - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
814 + -*) { echo "$as_me: error: unrecognized option: $ac_option
815 +Try \`$0 --help' for more information." >&2
816 + { (exit 1); exit 1; }; }
820 + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
821 + # Reject names that are not valid shell variable names.
822 + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
823 + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
824 + { (exit 1); exit 1; }; }
825 + ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
826 + eval "$ac_envvar='$ac_optarg'"
827 + export $ac_envvar ;;
830 - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
831 - echo "configure: warning: $ac_option: invalid host type" 1>&2
833 - if test "x$nonopt" != xNONE; then
834 - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
836 - nonopt="$ac_option"
837 + # FIXME: should be removed in autoconf 3.0.
838 + echo "$as_me: WARNING: you should use --build, --host, --target" >&2
839 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
840 + echo "$as_me: WARNING: invalid host type: $ac_option" >&2
841 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
847 if test -n "$ac_prev"; then
848 - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
851 -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
853 -# File descriptor usage:
856 -# 2 errors and warnings
857 -# 3 some systems may open it to /dev/tty
858 -# 4 used on the Kubota Titan
859 -# 6 checking for... messages and results
860 -# 5 compiler messages saved in config.log
861 -if test "$silent" = yes; then
865 + ac_option=--`echo $ac_prev | sed 's/_/-/g'`
866 + { echo "$as_me: error: missing argument to $ac_option" >&2
867 + { (exit 1); exit 1; }; }
872 -This file contains any messages produced by compilers while
873 -running configure, to aid debugging if configure makes a mistake.
875 +# Be sure to have absolute paths.
876 +for ac_var in exec_prefix prefix
878 + eval ac_val=$`echo $ac_var`
880 + [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
881 + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
882 + { (exit 1); exit 1; }; };;
886 -# Strip out --no-create and --no-recursion so they do not pile up.
887 -# Also quote any args containing shell metacharacters.
890 +# Be sure to have absolute paths.
891 +for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
892 + localstatedir libdir includedir oldincludedir infodir mandir
895 - -no-create | --no-create | --no-creat | --no-crea | --no-cre \
896 - | --no-cr | --no-c) ;;
897 - -no-recursion | --no-recursion | --no-recursio | --no-recursi \
898 - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
899 - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
900 - ac_configure_args="$ac_configure_args '$ac_arg'" ;;
901 - *) ac_configure_args="$ac_configure_args $ac_arg" ;;
902 + eval ac_val=$`echo $ac_var`
904 + [\\/$]* | ?:[\\/]* ) ;;
905 + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
906 + { (exit 1); exit 1; }; };;
911 -# Only set these to C if already set. These must not be set unconditionally
912 -# because not all systems understand e.g. LANG=C (notably SCO).
913 -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
914 -# Non-C LC_CTYPE values break the ctype check.
915 -if test "${LANG+set}" = set; then LANG=C; export LANG; fi
916 -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
917 -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
918 -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
919 +# There might be people who depend on the old broken behavior: `$host'
920 +# used to hold the argument of --host etc.
921 +# FIXME: To remove some day.
924 +target=$target_alias
926 +# FIXME: To remove some day.
927 +if test "x$host_alias" != x; then
928 + if test "x$build_alias" = x; then
929 + cross_compiling=maybe
930 + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
931 + If a cross compiler is detected then cross compile mode will be used." >&2
932 + elif test "x$build_alias" != "x$host_alias"; then
933 + cross_compiling=yes
937 -# confdefs.h avoids OS command line length limits that DEFS can exceed.
938 -rm -rf conftest* confdefs.h
939 -# AIX cpp loses on an empty file, so make sure it contains at least a newline.
942 +test -n "$host_alias" && ac_tool_prefix=$host_alias-
944 +test "$silent" = yes && exec 6>/dev/null
946 -# A filename unique to this package, relative to the directory that
947 -# configure is in, which we can look for to find out if srcdir is correct.
948 -ac_unique_file=rules.mk
950 # Find the source files, if location was not specified.
951 if test -z "$srcdir"; then
952 ac_srcdir_defaulted=yes
953 # Try the directory containing this script, then its parent.
955 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
956 - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
957 + ac_confdir=`(dirname "$0") 2>/dev/null ||
958 +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
959 + X"$0" : 'X\(//\)[^/]' \| \
960 + X"$0" : 'X\(//\)$' \| \
961 + X"$0" : 'X\(/\)' \| \
962 + . : '\(.\)' 2>/dev/null ||
964 + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
965 + /^X\(\/\/\)[^/].*/{ s//\1/; q; }
966 + /^X\(\/\/\)$/{ s//\1/; q; }
967 + /^X\(\/\).*/{ s//\1/; q; }
970 if test ! -r $srcdir/$ac_unique_file; then
972 @@ -490,13 +728,472 @@ else
974 if test ! -r $srcdir/$ac_unique_file; then
975 if test "$ac_srcdir_defaulted" = yes; then
976 - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
977 + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
978 + { (exit 1); exit 1; }; }
980 - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
981 + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
982 + { (exit 1); exit 1; }; }
985 -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
986 +(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
987 + { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
988 + { (exit 1); exit 1; }; }
989 +srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
990 +ac_env_build_alias_set=${build_alias+set}
991 +ac_env_build_alias_value=$build_alias
992 +ac_cv_env_build_alias_set=${build_alias+set}
993 +ac_cv_env_build_alias_value=$build_alias
994 +ac_env_host_alias_set=${host_alias+set}
995 +ac_env_host_alias_value=$host_alias
996 +ac_cv_env_host_alias_set=${host_alias+set}
997 +ac_cv_env_host_alias_value=$host_alias
998 +ac_env_target_alias_set=${target_alias+set}
999 +ac_env_target_alias_value=$target_alias
1000 +ac_cv_env_target_alias_set=${target_alias+set}
1001 +ac_cv_env_target_alias_value=$target_alias
1002 +ac_env_CC_set=${CC+set}
1003 +ac_env_CC_value=$CC
1004 +ac_cv_env_CC_set=${CC+set}
1005 +ac_cv_env_CC_value=$CC
1006 +ac_env_CFLAGS_set=${CFLAGS+set}
1007 +ac_env_CFLAGS_value=$CFLAGS
1008 +ac_cv_env_CFLAGS_set=${CFLAGS+set}
1009 +ac_cv_env_CFLAGS_value=$CFLAGS
1010 +ac_env_LDFLAGS_set=${LDFLAGS+set}
1011 +ac_env_LDFLAGS_value=$LDFLAGS
1012 +ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
1013 +ac_cv_env_LDFLAGS_value=$LDFLAGS
1014 +ac_env_CPPFLAGS_set=${CPPFLAGS+set}
1015 +ac_env_CPPFLAGS_value=$CPPFLAGS
1016 +ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
1017 +ac_cv_env_CPPFLAGS_value=$CPPFLAGS
1018 +ac_env_CPP_set=${CPP+set}
1019 +ac_env_CPP_value=$CPP
1020 +ac_cv_env_CPP_set=${CPP+set}
1021 +ac_cv_env_CPP_value=$CPP
1024 +# Report the --help message.
1026 +if test "$ac_init_help" = "long"; then
1027 + # Omit some internal or obsolete options to make the list less imposing.
1028 + # This message is too long to be a string in the A/UX 3.1 sh.
1030 +\`configure' configures this package to adapt to many kinds of systems.
1032 +Usage: $0 [OPTION]... [VAR=VALUE]...
1034 +To assign environment variables (e.g., CC, CFLAGS...), specify them as
1035 +VAR=VALUE. See below for descriptions of some of the useful variables.
1037 +Defaults for the options are specified in brackets.
1040 + -h, --help display this help and exit
1041 + --help=short display options specific to this package
1042 + --help=recursive display the short help of all the included packages
1043 + -V, --version display version information and exit
1044 + -q, --quiet, --silent do not print \`checking...' messages
1045 + --cache-file=FILE cache test results in FILE [disabled]
1046 + -C, --config-cache alias for \`--cache-file=config.cache'
1047 + -n, --no-create do not create output files
1048 + --srcdir=DIR find the sources in DIR [configure dir or \`..']
1053 +Installation directories:
1054 + --prefix=PREFIX install architecture-independent files in PREFIX
1055 + [$ac_default_prefix]
1056 + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
1059 +By default, \`make install' will install all the files in
1060 +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
1061 +an installation prefix other than \`$ac_default_prefix' using \`--prefix',
1062 +for instance \`--prefix=\$HOME'.
1064 +For better control, use the options below.
1066 +Fine tuning of the installation directories:
1067 + --bindir=DIR user executables [EPREFIX/bin]
1068 + --sbindir=DIR system admin executables [EPREFIX/sbin]
1069 + --libexecdir=DIR program executables [EPREFIX/libexec]
1070 + --datadir=DIR read-only architecture-independent data [PREFIX/share]
1071 + --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
1072 + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
1073 + --localstatedir=DIR modifiable single-machine data [PREFIX/var]
1074 + --libdir=DIR object code libraries [EPREFIX/lib]
1075 + --includedir=DIR C header files [PREFIX/include]
1076 + --oldincludedir=DIR C header files for non-gcc [/usr/include]
1077 + --infodir=DIR info documentation [PREFIX/info]
1078 + --mandir=DIR man documentation [PREFIX/man]
1085 +if test -n "$ac_init_help"; then
1090 + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
1091 + --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
1092 + --enable-nfsv3 enable support for NFSv3
1093 + --enable-nfsv4 enable support for NFSv4
1094 + --enable-gss enable support for rpcsec_gss
1095 + --enable-kprefix install progs as rpc.knfsd etc
1096 + --enable-secure-statd Only lockd can use statd (security)
1097 + --enable-rquotad enable rquotad
1100 + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
1101 + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
1102 + --with-release=XXX set release to XXX 1
1103 + --with-statedir=/foo use state dir /foo /var/lib/nfs
1104 + --with-statduser=rpcuser user for statd to run under rpcuser or nobody
1105 + --with-krb5=DIR use Kerberos v5 installation in DIR
1107 +Some influential environment variables:
1108 + CC C compiler command
1109 + CFLAGS C compiler flags
1110 + LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
1111 + nonstandard directory <lib dir>
1112 + CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
1113 + headers in a nonstandard directory <include dir>
1114 + CPP C preprocessor
1116 +Use these variables to override the choices made by `configure' or to help
1117 +it to find libraries and programs with nonstandard names/locations.
1122 +if test "$ac_init_help" = "recursive"; then
1123 + # If there are subdirs, report their specific --help.
1125 + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
1126 + test -d $ac_dir || continue
1129 +if test "$ac_dir" != .; then
1130 + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
1131 + # A "../" for each directory in $ac_dir_suffix.
1132 + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
1134 + ac_dir_suffix= ac_top_builddir=
1138 + .) # No --srcdir option. We are building in place.
1140 + if test -z "$ac_top_builddir"; then
1143 + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
1145 + [\\/]* | ?:[\\/]* ) # Absolute path.
1146 + ac_srcdir=$srcdir$ac_dir_suffix;
1147 + ac_top_srcdir=$srcdir ;;
1148 + *) # Relative path.
1149 + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
1150 + ac_top_srcdir=$ac_top_builddir$srcdir ;;
1153 +# Do not use `cd foo && pwd` to compute absolute paths, because
1154 +# the directories may not exist.
1156 +.) ac_abs_builddir="$ac_dir";;
1159 + .) ac_abs_builddir=`pwd`;;
1160 + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
1161 + *) ac_abs_builddir=`pwd`/"$ac_dir";;
1164 +case $ac_abs_builddir in
1165 +.) ac_abs_top_builddir=${ac_top_builddir}.;;
1167 + case ${ac_top_builddir}. in
1168 + .) ac_abs_top_builddir=$ac_abs_builddir;;
1169 + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
1170 + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
1173 +case $ac_abs_builddir in
1174 +.) ac_abs_srcdir=$ac_srcdir;;
1176 + case $ac_srcdir in
1177 + .) ac_abs_srcdir=$ac_abs_builddir;;
1178 + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
1179 + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
1182 +case $ac_abs_builddir in
1183 +.) ac_abs_top_srcdir=$ac_top_srcdir;;
1185 + case $ac_top_srcdir in
1186 + .) ac_abs_top_srcdir=$ac_abs_builddir;;
1187 + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
1188 + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
1193 + # Check for guested configure; otherwise get Cygnus style configure.
1194 + if test -f $ac_srcdir/configure.gnu; then
1196 + $SHELL $ac_srcdir/configure.gnu --help=recursive
1197 + elif test -f $ac_srcdir/configure; then
1199 + $SHELL $ac_srcdir/configure --help=recursive
1200 + elif test -f $ac_srcdir/configure.ac ||
1201 + test -f $ac_srcdir/configure.in; then
1203 + $ac_configure --help
1205 + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
1211 +test -n "$ac_init_help" && exit 0
1212 +if $ac_init_version; then
1215 +Copyright (C) 2003 Free Software Foundation, Inc.
1216 +This configure script is free software; the Free Software Foundation
1217 +gives unlimited permission to copy, distribute and modify it.
1223 +This file contains any messages produced by compilers while
1224 +running configure, to aid debugging if configure makes a mistake.
1226 +It was created by $as_me, which was
1227 +generated by GNU Autoconf 2.59. Invocation command line was
1238 +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
1239 +uname -m = `(uname -m) 2>/dev/null || echo unknown`
1240 +uname -r = `(uname -r) 2>/dev/null || echo unknown`
1241 +uname -s = `(uname -s) 2>/dev/null || echo unknown`
1242 +uname -v = `(uname -v) 2>/dev/null || echo unknown`
1244 +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
1245 +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
1247 +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
1248 +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
1249 +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
1250 +hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
1251 +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
1252 +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
1253 +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
1257 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1258 +for as_dir in $PATH
1261 + test -z "$as_dir" && as_dir=.
1262 + echo "PATH: $as_dir"
1277 +# Keep a trace of the command line.
1278 +# Strip out --no-create and --no-recursion so they do not pile up.
1279 +# Strip out --silent because we don't want to record it for future runs.
1280 +# Also quote any args containing shell meta-characters.
1281 +# Make two passes to allow for proper duplicate-argument suppression.
1283 +ac_configure_args0=
1284 +ac_configure_args1=
1286 +ac_must_keep_next=false
1292 + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
1293 + -q | -quiet | --quiet | --quie | --qui | --qu | --q \
1294 + | -silent | --silent | --silen | --sile | --sil)
1296 + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
1297 + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
1300 + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
1302 + ac_configure_args1="$ac_configure_args1 '$ac_arg'"
1303 + if test $ac_must_keep_next = true; then
1304 + ac_must_keep_next=false # Got value, back to normal.
1307 + *=* | --config-cache | -C | -disable-* | --disable-* \
1308 + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
1309 + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
1310 + | -with-* | --with-* | -without-* | --without-* | --x)
1311 + case "$ac_configure_args0 " in
1312 + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
1315 + -* ) ac_must_keep_next=true ;;
1318 + ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
1319 + # Get rid of the leading space.
1325 +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
1326 +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
1328 +# When interrupted or exit'd, cleanup temporary files, and complete
1329 +# config.log. We remove comments because anyway the quotes in there
1330 +# would cause problems or look ugly.
1331 +# WARNING: Be sure not to use single quotes in there, as some shells,
1332 +# such as our DU 5.0 friend, will then `close' the trap.
1333 +trap 'exit_status=$?
1334 + # Save into config.log some information that might help in debugging.
1339 +## ---------------- ##
1340 +## Cache variables. ##
1341 +## ---------------- ##
1344 + # The following way of writing the cache mishandles newlines in values,
1347 + case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
1350 + "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
1351 + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
1355 + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
1362 +## ----------------- ##
1363 +## Output variables. ##
1364 +## ----------------- ##
1367 + for ac_var in $ac_subst_vars
1369 + eval ac_val=$`echo $ac_var`
1370 + echo "$ac_var='"'"'$ac_val'"'"'"
1374 + if test -n "$ac_subst_files"; then
1376 +## ------------- ##
1377 +## Output files. ##
1378 +## ------------- ##
1381 + for ac_var in $ac_subst_files
1383 + eval ac_val=$`echo $ac_var`
1384 + echo "$ac_var='"'"'$ac_val'"'"'"
1389 + if test -s confdefs.h; then
1396 + sed "/^$/d" confdefs.h | sort
1399 + test "$ac_signal" != 0 &&
1400 + echo "$as_me: caught signal $ac_signal"
1401 + echo "$as_me: exit $exit_status"
1403 + rm -f core *.core &&
1404 + rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
1407 +for ac_signal in 1 2 13 15; do
1408 + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
1412 +# confdefs.h avoids OS command line length limits that DEFS can exceed.
1413 +rm -rf conftest* confdefs.h
1414 +# AIX cpp loses on an empty file, so make sure it contains at least a newline.
1417 +# Predefined preprocessor variables.
1419 +cat >>confdefs.h <<_ACEOF
1420 +#define PACKAGE_NAME "$PACKAGE_NAME"
1424 +cat >>confdefs.h <<_ACEOF
1425 +#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
1429 +cat >>confdefs.h <<_ACEOF
1430 +#define PACKAGE_VERSION "$PACKAGE_VERSION"
1434 +cat >>confdefs.h <<_ACEOF
1435 +#define PACKAGE_STRING "$PACKAGE_STRING"
1439 +cat >>confdefs.h <<_ACEOF
1440 +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
1444 +# Let the site file select an alternate cache file if it wants to.
1445 # Prefer explicitly selected file to automatically selected ones.
1446 if test -z "$CONFIG_SITE"; then
1447 if test "x$prefix" != xNONE; then
1448 @@ -507,39 +1204,103 @@ if test -z "$CONFIG_SITE"; then
1450 for ac_site_file in $CONFIG_SITE; do
1451 if test -r "$ac_site_file"; then
1452 - echo "loading site script $ac_site_file"
1453 + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
1454 +echo "$as_me: loading site script $ac_site_file" >&6;}
1455 + sed 's/^/| /' "$ac_site_file" >&5
1460 if test -r "$cache_file"; then
1461 - echo "loading cache $cache_file"
1463 + # Some versions of bash will fail to source /dev/null (special
1464 + # files actually), so we avoid doing that.
1465 + if test -f "$cache_file"; then
1466 + { echo "$as_me:$LINENO: loading cache $cache_file" >&5
1467 +echo "$as_me: loading cache $cache_file" >&6;}
1468 + case $cache_file in
1469 + [\\/]* | ?:[\\/]* ) . $cache_file;;
1470 + *) . ./$cache_file;;
1474 - echo "creating cache $cache_file"
1476 + { echo "$as_me:$LINENO: creating cache $cache_file" >&5
1477 +echo "$as_me: creating cache $cache_file" >&6;}
1481 +# Check that the precious variables saved in the cache have kept the same
1483 +ac_cache_corrupted=false
1484 +for ac_var in `(set) 2>&1 |
1485 + sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
1486 + eval ac_old_set=\$ac_cv_env_${ac_var}_set
1487 + eval ac_new_set=\$ac_env_${ac_var}_set
1488 + eval ac_old_val="\$ac_cv_env_${ac_var}_value"
1489 + eval ac_new_val="\$ac_env_${ac_var}_value"
1490 + case $ac_old_set,$ac_new_set in
1492 + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
1493 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
1494 + ac_cache_corrupted=: ;;
1496 + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
1497 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
1498 + ac_cache_corrupted=: ;;
1501 + if test "x$ac_old_val" != "x$ac_new_val"; then
1502 + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
1503 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
1504 + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
1505 +echo "$as_me: former value: $ac_old_val" >&2;}
1506 + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
1507 +echo "$as_me: current value: $ac_new_val" >&2;}
1508 + ac_cache_corrupted=:
1511 + # Pass precious variables to config.status.
1512 + if test "$ac_new_set" = set; then
1513 + case $ac_new_val in
1514 + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
1515 + ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
1516 + *) ac_arg=$ac_var=$ac_new_val ;;
1518 + case " $ac_configure_args " in
1519 + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
1520 + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
1524 +if $ac_cache_corrupted; then
1525 + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
1526 +echo "$as_me: error: changes in the environment can compromise the build" >&2;}
1527 + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
1528 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
1529 + { (exit 1); exit 1; }; }
1533 -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
1534 ac_cpp='$CPP $CPPFLAGS'
1535 -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
1536 -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
1537 -cross_compiling=$ac_cv_prog_cc_cross
1541 -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
1542 - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
1543 - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
1547 - ac_n=-n ac_c= ac_t=
1550 - ac_n= ac_c='\c' ac_t=
1552 +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
1553 +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
1554 +ac_compiler_gnu=$ac_cv_c_compiler_gnu
1575 @@ -548,24 +1309,25 @@ fi
1580 # Check whether --with-release or --without-release was given.
1581 if test "${with_release+set}" = set; then
1582 withval="$with_release"
1591 # Check whether --with-statedir or --without-statedir was given.
1592 if test "${with_statedir+set}" = set; then
1593 withval="$with_statedir"
1596 statedir=/var/lib/nfs
1602 # Check whether --with-statduser or --without-statduser was given.
1603 if test "${with_statduser+set}" = set; then
1604 withval="$with_statduser"
1605 @@ -576,58 +1338,57 @@ else
1613 # Check whether --enable-nfsv3 or --disable-nfsv3 was given.
1614 if test "${enable_nfsv3+set}" = set; then
1615 enableval="$enable_nfsv3"
1616 enable_nfsv3=$enableval
1622 if test "$enable_nfsv3" = yes; then
1623 - cat >> confdefs.h <<\EOF
1625 +cat >>confdefs.h <<\_ACEOF
1626 #define NFS3_SUPPORTED 1
1635 # Check whether --enable-nfsv4 or --disable-nfsv4 was given.
1636 if test "${enable_nfsv4+set}" = set; then
1637 enableval="$enable_nfsv4"
1638 enable_nfsv4=$enableval
1644 if test "$enable_nfsv4" = yes; then
1645 - cat >> confdefs.h <<\EOF
1647 +cat >>confdefs.h <<\_ACEOF
1648 #define NFS4_SUPPORTED 1
1661 # Check whether --enable-gss or --disable-gss was given.
1662 if test "${enable_gss+set}" = set; then
1663 enableval="$enable_gss"
1664 enable_gss=$enableval
1670 if test "$enable_gss" = yes; then
1671 - cat >> confdefs.h <<\EOF
1673 +cat >>confdefs.h <<\_ACEOF
1674 #define GSS_SUPPORTED 1
1680 @@ -636,257 +1397,701 @@ EOF
1690 # Check whether --enable-kprefix or --disable-kprefix was given.
1691 if test "${enable_kprefix+set}" = set; then
1692 enableval="$enable_kprefix"
1693 test "$enableval" = "yes" && kprefix=k
1700 # Check whether --enable-secure-statd or --disable-secure-statd was given.
1701 if test "${enable_secure_statd+set}" = set; then
1702 enableval="$enable_secure_statd"
1703 test "$enableval" = "yes" && secure_statd=yes
1709 if test "$secure_statd" = yes; then
1710 - cat >> confdefs.h <<\EOF
1712 +cat >>confdefs.h <<\_ACEOF
1713 #define RESTRICTED_STATD 1
1720 # Check whether --enable-rquotad or --disable-rquotad was given.
1721 if test "${enable_rquotad+set}" = set; then
1722 enableval="$enable_rquotad"
1723 enable_rquotad=$enableval
1729 if test "$enable_rquotad" = yes; then
1736 + ac_config_headers="$ac_config_headers support/include/config.h"
1738 -# Extract the first word of "gcc", so it can be a program name with args.
1741 +ac_cpp='$CPP $CPPFLAGS'
1742 +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
1743 +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
1744 +ac_compiler_gnu=$ac_cv_c_compiler_gnu
1745 +if test -n "$ac_tool_prefix"; then
1746 + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
1747 +set dummy ${ac_tool_prefix}gcc; ac_word=$2
1748 +echo "$as_me:$LINENO: checking for $ac_word" >&5
1749 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1750 +if test "${ac_cv_prog_CC+set}" = set; then
1751 + echo $ECHO_N "(cached) $ECHO_C" >&6
1753 + if test -n "$CC"; then
1754 + ac_cv_prog_CC="$CC" # Let the user override the test.
1756 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1757 +for as_dir in $PATH
1760 + test -z "$as_dir" && as_dir=.
1761 + for ac_exec_ext in '' $ac_executable_extensions; do
1762 + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1763 + ac_cv_prog_CC="${ac_tool_prefix}gcc"
1764 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1773 +if test -n "$CC"; then
1774 + echo "$as_me:$LINENO: result: $CC" >&5
1775 +echo "${ECHO_T}$CC" >&6
1777 + echo "$as_me:$LINENO: result: no" >&5
1778 +echo "${ECHO_T}no" >&6
1782 +if test -z "$ac_cv_prog_CC"; then
1784 + # Extract the first word of "gcc", so it can be a program name with args.
1785 set dummy gcc; ac_word=$2
1786 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
1787 -echo "configure:686: checking for $ac_word" >&5
1788 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
1789 - echo $ac_n "(cached) $ac_c" 1>&6
1790 +echo "$as_me:$LINENO: checking for $ac_word" >&5
1791 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1792 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
1793 + echo $ECHO_N "(cached) $ECHO_C" >&6
1795 + if test -n "$ac_ct_CC"; then
1796 + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
1798 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1799 +for as_dir in $PATH
1802 + test -z "$as_dir" && as_dir=.
1803 + for ac_exec_ext in '' $ac_executable_extensions; do
1804 + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1805 + ac_cv_prog_ac_ct_CC="gcc"
1806 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1814 +ac_ct_CC=$ac_cv_prog_ac_ct_CC
1815 +if test -n "$ac_ct_CC"; then
1816 + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
1817 +echo "${ECHO_T}$ac_ct_CC" >&6
1819 + echo "$as_me:$LINENO: result: no" >&5
1820 +echo "${ECHO_T}no" >&6
1825 + CC="$ac_cv_prog_CC"
1828 +if test -z "$CC"; then
1829 + if test -n "$ac_tool_prefix"; then
1830 + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
1831 +set dummy ${ac_tool_prefix}cc; ac_word=$2
1832 +echo "$as_me:$LINENO: checking for $ac_word" >&5
1833 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1834 +if test "${ac_cv_prog_CC+set}" = set; then
1835 + echo $ECHO_N "(cached) $ECHO_C" >&6
1837 if test -n "$CC"; then
1838 ac_cv_prog_CC="$CC" # Let the user override the test.
1840 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
1842 - for ac_dir in $ac_dummy; do
1843 - test -z "$ac_dir" && ac_dir=.
1844 - if test -f $ac_dir/$ac_word; then
1845 - ac_cv_prog_CC="gcc"
1849 - IFS="$ac_save_ifs"
1850 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1851 +for as_dir in $PATH
1854 + test -z "$as_dir" && as_dir=.
1855 + for ac_exec_ext in '' $ac_executable_extensions; do
1856 + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1857 + ac_cv_prog_CC="${ac_tool_prefix}cc"
1858 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1866 -CC="$ac_cv_prog_CC"
1868 if test -n "$CC"; then
1869 - echo "$ac_t""$CC" 1>&6
1870 + echo "$as_me:$LINENO: result: $CC" >&5
1871 +echo "${ECHO_T}$CC" >&6
1873 + echo "$as_me:$LINENO: result: no" >&5
1874 +echo "${ECHO_T}no" >&6
1878 +if test -z "$ac_cv_prog_CC"; then
1880 + # Extract the first word of "cc", so it can be a program name with args.
1881 +set dummy cc; ac_word=$2
1882 +echo "$as_me:$LINENO: checking for $ac_word" >&5
1883 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1884 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
1885 + echo $ECHO_N "(cached) $ECHO_C" >&6
1887 + if test -n "$ac_ct_CC"; then
1888 + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
1890 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1891 +for as_dir in $PATH
1894 + test -z "$as_dir" && as_dir=.
1895 + for ac_exec_ext in '' $ac_executable_extensions; do
1896 + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1897 + ac_cv_prog_ac_ct_CC="cc"
1898 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1906 +ac_ct_CC=$ac_cv_prog_ac_ct_CC
1907 +if test -n "$ac_ct_CC"; then
1908 + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
1909 +echo "${ECHO_T}$ac_ct_CC" >&6
1911 + echo "$as_me:$LINENO: result: no" >&5
1912 +echo "${ECHO_T}no" >&6
1917 - echo "$ac_t""no" 1>&6
1918 + CC="$ac_cv_prog_CC"
1922 if test -z "$CC"; then
1923 # Extract the first word of "cc", so it can be a program name with args.
1924 set dummy cc; ac_word=$2
1925 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
1926 -echo "configure:716: checking for $ac_word" >&5
1927 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
1928 - echo $ac_n "(cached) $ac_c" 1>&6
1929 +echo "$as_me:$LINENO: checking for $ac_word" >&5
1930 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1931 +if test "${ac_cv_prog_CC+set}" = set; then
1932 + echo $ECHO_N "(cached) $ECHO_C" >&6
1934 if test -n "$CC"; then
1935 ac_cv_prog_CC="$CC" # Let the user override the test.
1937 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
1940 - for ac_dir in $ac_dummy; do
1941 - test -z "$ac_dir" && ac_dir=.
1942 - if test -f $ac_dir/$ac_word; then
1943 - if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
1944 - ac_prog_rejected=yes
1947 - ac_cv_prog_CC="cc"
1951 - IFS="$ac_save_ifs"
1952 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1953 +for as_dir in $PATH
1956 + test -z "$as_dir" && as_dir=.
1957 + for ac_exec_ext in '' $ac_executable_extensions; do
1958 + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1959 + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
1960 + ac_prog_rejected=yes
1963 + ac_cv_prog_CC="cc"
1964 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1970 if test $ac_prog_rejected = yes; then
1971 # We found a bogon in the path, so make sure we never use it.
1972 set dummy $ac_cv_prog_CC
1974 - if test $# -gt 0; then
1975 + if test $# != 0; then
1976 # We chose a different compiler from the bogus one.
1977 # However, it has the same basename, so the bogon will be chosen
1978 # first if we set CC to just the basename; use the full file name.
1980 - set dummy "$ac_dir/$ac_word" "$@"
1982 - ac_cv_prog_CC="$@"
1983 + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
1988 -CC="$ac_cv_prog_CC"
1990 if test -n "$CC"; then
1991 - echo "$ac_t""$CC" 1>&6
1992 + echo "$as_me:$LINENO: result: $CC" >&5
1993 +echo "${ECHO_T}$CC" >&6
1995 - echo "$ac_t""no" 1>&6
1996 + echo "$as_me:$LINENO: result: no" >&5
1997 +echo "${ECHO_T}no" >&6
2000 - if test -z "$CC"; then
2001 - case "`uname -s`" in
2002 - *win32* | *WIN32*)
2003 - # Extract the first word of "cl", so it can be a program name with args.
2004 -set dummy cl; ac_word=$2
2005 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
2006 -echo "configure:767: checking for $ac_word" >&5
2007 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
2008 - echo $ac_n "(cached) $ac_c" 1>&6
2010 +if test -z "$CC"; then
2011 + if test -n "$ac_tool_prefix"; then
2014 + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
2015 +set dummy $ac_tool_prefix$ac_prog; ac_word=$2
2016 +echo "$as_me:$LINENO: checking for $ac_word" >&5
2017 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2018 +if test "${ac_cv_prog_CC+set}" = set; then
2019 + echo $ECHO_N "(cached) $ECHO_C" >&6
2021 if test -n "$CC"; then
2022 ac_cv_prog_CC="$CC" # Let the user override the test.
2024 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
2026 - for ac_dir in $ac_dummy; do
2027 - test -z "$ac_dir" && ac_dir=.
2028 - if test -f $ac_dir/$ac_word; then
2029 - ac_cv_prog_CC="cl"
2033 - IFS="$ac_save_ifs"
2034 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2035 +for as_dir in $PATH
2038 + test -z "$as_dir" && as_dir=.
2039 + for ac_exec_ext in '' $ac_executable_extensions; do
2040 + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2041 + ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
2042 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2050 -CC="$ac_cv_prog_CC"
2052 if test -n "$CC"; then
2053 - echo "$ac_t""$CC" 1>&6
2054 + echo "$as_me:$LINENO: result: $CC" >&5
2055 +echo "${ECHO_T}$CC" >&6
2057 - echo "$ac_t""no" 1>&6
2058 + echo "$as_me:$LINENO: result: no" >&5
2059 +echo "${ECHO_T}no" >&6
2064 + test -n "$CC" && break
2067 +if test -z "$CC"; then
2071 + # Extract the first word of "$ac_prog", so it can be a program name with args.
2072 +set dummy $ac_prog; ac_word=$2
2073 +echo "$as_me:$LINENO: checking for $ac_word" >&5
2074 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2075 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
2076 + echo $ECHO_N "(cached) $ECHO_C" >&6
2078 + if test -n "$ac_ct_CC"; then
2079 + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
2081 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2082 +for as_dir in $PATH
2085 + test -z "$as_dir" && as_dir=.
2086 + for ac_exec_ext in '' $ac_executable_extensions; do
2087 + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2088 + ac_cv_prog_ac_ct_CC="$ac_prog"
2089 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2092 - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
2098 +ac_ct_CC=$ac_cv_prog_ac_ct_CC
2099 +if test -n "$ac_ct_CC"; then
2100 + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
2101 +echo "${ECHO_T}$ac_ct_CC" >&6
2103 + echo "$as_me:$LINENO: result: no" >&5
2104 +echo "${ECHO_T}no" >&6
2107 + test -n "$ac_ct_CC" && break
2110 -echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
2111 -echo "configure:799: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
2116 -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
2117 -ac_cpp='$CPP $CPPFLAGS'
2118 -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
2119 -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
2120 -cross_compiling=$ac_cv_prog_cc_cross
2123 -cat > conftest.$ac_ext << EOF
2125 -#line 810 "configure"
2126 -#include "confdefs.h"
2127 +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
2128 +See \`config.log' for more details." >&5
2129 +echo "$as_me: error: no acceptable C compiler found in \$PATH
2130 +See \`config.log' for more details." >&2;}
2131 + { (exit 1); exit 1; }; }
2133 +# Provide some information about the compiler.
2134 +echo "$as_me:$LINENO:" \
2135 + "checking for C compiler version" >&5
2136 +ac_compiler=`set X $ac_compile; echo $2`
2137 +{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
2138 + (eval $ac_compiler --version </dev/null >&5) 2>&5
2140 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2141 + (exit $ac_status); }
2142 +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
2143 + (eval $ac_compiler -v </dev/null >&5) 2>&5
2145 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2146 + (exit $ac_status); }
2147 +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
2148 + (eval $ac_compiler -V </dev/null >&5) 2>&5
2150 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2151 + (exit $ac_status); }
2153 +cat >conftest.$ac_ext <<_ACEOF
2156 +cat confdefs.h >>conftest.$ac_ext
2157 +cat >>conftest.$ac_ext <<_ACEOF
2158 +/* end confdefs.h. */
2168 +ac_clean_files_save=$ac_clean_files
2169 +ac_clean_files="$ac_clean_files a.out a.exe b.out"
2170 +# Try to create an executable without -o first, disregard a.out.
2171 +# It will help us diagnose broken compilers, and finding out an intuition
2173 +echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
2174 +echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
2175 +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
2176 +if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
2177 + (eval $ac_link_default) 2>&5
2179 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2180 + (exit $ac_status); }; then
2181 + # Find the output, starting from the most likely. This scheme is
2182 +# not robust to junk in `.', hence go to wildcards (a.*) only as a last
2185 +# Be careful to initialize this variable, since it used to be cached.
2186 +# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
2188 +# b.out is created by i960 compilers.
2189 +for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
2191 + test -f "$ac_file" || continue
2193 + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
2195 + conftest.$ac_ext )
2196 + # This is the source file.
2199 + # We found the default executable, but exeext='' is most
2200 + # certainly right.
2203 + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
2204 + # FIXME: I believe we export ac_cv_exeext for Libtool,
2205 + # but it would be cool to find out if it's true. Does anybody
2206 + # maintain Libtool? --akim.
2207 + export ac_cv_exeext
2214 + echo "$as_me: failed program was:" >&5
2215 +sed 's/^/| /' conftest.$ac_ext >&5
2219 -if { (eval echo configure:815: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
2220 - ac_cv_prog_cc_works=yes
2221 - # If we can't run a trivial program, we are probably using a cross compiler.
2222 - if (./conftest; exit) 2>/dev/null; then
2223 - ac_cv_prog_cc_cross=no
2224 +{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
2225 +See \`config.log' for more details." >&5
2226 +echo "$as_me: error: C compiler cannot create executables
2227 +See \`config.log' for more details." >&2;}
2228 + { (exit 77); exit 77; }; }
2231 +ac_exeext=$ac_cv_exeext
2232 +echo "$as_me:$LINENO: result: $ac_file" >&5
2233 +echo "${ECHO_T}$ac_file" >&6
2235 +# Check the compiler produces executables we can run. If not, either
2236 +# the compiler is broken, or we cross compile.
2237 +echo "$as_me:$LINENO: checking whether the C compiler works" >&5
2238 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
2239 +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
2240 +# If not cross compiling, check that we can run a simple program.
2241 +if test "$cross_compiling" != yes; then
2242 + if { ac_try='./$ac_file'
2243 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2244 + (eval $ac_try) 2>&5
2246 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2247 + (exit $ac_status); }; }; then
2248 + cross_compiling=no
2250 - ac_cv_prog_cc_cross=yes
2251 + if test "$cross_compiling" = maybe; then
2252 + cross_compiling=yes
2254 + { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
2255 +If you meant to cross compile, use \`--host'.
2256 +See \`config.log' for more details." >&5
2257 +echo "$as_me: error: cannot run C compiled programs.
2258 +If you meant to cross compile, use \`--host'.
2259 +See \`config.log' for more details." >&2;}
2260 + { (exit 1); exit 1; }; }
2264 - echo "configure: failed program was:" >&5
2265 - cat conftest.$ac_ext >&5
2266 - ac_cv_prog_cc_works=no
2270 -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
2271 -ac_cpp='$CPP $CPPFLAGS'
2272 -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
2273 -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
2274 -cross_compiling=$ac_cv_prog_cc_cross
2276 -echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
2277 -if test $ac_cv_prog_cc_works = no; then
2278 - { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
2280 -echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
2281 -echo "configure:841: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
2282 -echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
2283 -cross_compiling=$ac_cv_prog_cc_cross
2284 +echo "$as_me:$LINENO: result: yes" >&5
2285 +echo "${ECHO_T}yes" >&6
2287 -echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
2288 -echo "configure:846: checking whether we are using GNU C" >&5
2289 -if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
2290 - echo $ac_n "(cached) $ac_c" 1>&6
2291 +rm -f a.out a.exe conftest$ac_cv_exeext b.out
2292 +ac_clean_files=$ac_clean_files_save
2293 +# Check the compiler produces executables we can run. If not, either
2294 +# the compiler is broken, or we cross compile.
2295 +echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
2296 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
2297 +echo "$as_me:$LINENO: result: $cross_compiling" >&5
2298 +echo "${ECHO_T}$cross_compiling" >&6
2300 +echo "$as_me:$LINENO: checking for suffix of executables" >&5
2301 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
2302 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
2303 + (eval $ac_link) 2>&5
2305 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2306 + (exit $ac_status); }; then
2307 + # If both `conftest.exe' and `conftest' are `present' (well, observable)
2308 +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
2309 +# work properly (i.e., refer to `conftest.exe'), while it won't with
2311 +for ac_file in conftest.exe conftest conftest.*; do
2312 + test -f "$ac_file" || continue
2314 + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
2315 + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
2316 + export ac_cv_exeext
2322 - cat > conftest.c <<EOF
2327 -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:855: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
2328 - ac_cv_prog_gcc=yes
2329 + { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
2330 +See \`config.log' for more details." >&5
2331 +echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
2332 +See \`config.log' for more details." >&2;}
2333 + { (exit 1); exit 1; }; }
2336 +rm -f conftest$ac_cv_exeext
2337 +echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
2338 +echo "${ECHO_T}$ac_cv_exeext" >&6
2340 +rm -f conftest.$ac_ext
2341 +EXEEXT=$ac_cv_exeext
2343 +echo "$as_me:$LINENO: checking for suffix of object files" >&5
2344 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
2345 +if test "${ac_cv_objext+set}" = set; then
2346 + echo $ECHO_N "(cached) $ECHO_C" >&6
2348 + cat >conftest.$ac_ext <<_ACEOF
2351 +cat confdefs.h >>conftest.$ac_ext
2352 +cat >>conftest.$ac_ext <<_ACEOF
2353 +/* end confdefs.h. */
2363 +rm -f conftest.o conftest.obj
2364 +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2365 + (eval $ac_compile) 2>&5
2367 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2368 + (exit $ac_status); }; then
2369 + for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
2371 + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
2372 + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
2381 -echo "$ac_t""$ac_cv_prog_gcc" 1>&6
2382 + echo "$as_me: failed program was:" >&5
2383 +sed 's/^/| /' conftest.$ac_ext >&5
2385 -if test $ac_cv_prog_gcc = yes; then
2390 +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
2391 +See \`config.log' for more details." >&5
2392 +echo "$as_me: error: cannot compute suffix of object files: cannot compile
2393 +See \`config.log' for more details." >&2;}
2394 + { (exit 1); exit 1; }; }
2397 +rm -f conftest.$ac_cv_objext conftest.$ac_ext
2399 +echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
2400 +echo "${ECHO_T}$ac_cv_objext" >&6
2401 +OBJEXT=$ac_cv_objext
2403 +echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
2404 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
2405 +if test "${ac_cv_c_compiler_gnu+set}" = set; then
2406 + echo $ECHO_N "(cached) $ECHO_C" >&6
2408 + cat >conftest.$ac_ext <<_ACEOF
2411 +cat confdefs.h >>conftest.$ac_ext
2412 +cat >>conftest.$ac_ext <<_ACEOF
2413 +/* end confdefs.h. */
2422 -ac_test_CFLAGS="${CFLAGS+set}"
2423 -ac_save_CFLAGS="$CFLAGS"
2425 -echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
2426 -echo "configure:874: checking whether ${CC-cc} accepts -g" >&5
2427 -if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
2428 - echo $ac_n "(cached) $ac_c" 1>&6
2430 - echo 'void f(){}' > conftest.c
2431 -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
2436 +rm -f conftest.$ac_objext
2437 +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2438 + (eval $ac_compile) 2>conftest.er1
2440 + grep -v '^ *+' conftest.er1 >conftest.err
2441 + rm -f conftest.er1
2442 + cat conftest.err >&5
2443 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2444 + (exit $ac_status); } &&
2445 + { ac_try='test -z "$ac_c_werror_flag"
2446 + || test ! -s conftest.err'
2447 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2448 + (eval $ac_try) 2>&5
2450 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2451 + (exit $ac_status); }; } &&
2452 + { ac_try='test -s conftest.$ac_objext'
2453 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2454 + (eval $ac_try) 2>&5
2456 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2457 + (exit $ac_status); }; }; then
2458 + ac_compiler_gnu=yes
2460 + echo "$as_me: failed program was:" >&5
2461 +sed 's/^/| /' conftest.$ac_ext >&5
2465 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
2466 +ac_cv_c_compiler_gnu=$ac_compiler_gnu
2469 +echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
2470 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
2471 +GCC=`test $ac_compiler_gnu = yes && echo yes`
2472 +ac_test_CFLAGS=${CFLAGS+set}
2473 +ac_save_CFLAGS=$CFLAGS
2475 +echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
2476 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
2477 +if test "${ac_cv_prog_cc_g+set}" = set; then
2478 + echo $ECHO_N "(cached) $ECHO_C" >&6
2480 + cat >conftest.$ac_ext <<_ACEOF
2483 +cat confdefs.h >>conftest.$ac_ext
2484 +cat >>conftest.$ac_ext <<_ACEOF
2485 +/* end confdefs.h. */
2495 +rm -f conftest.$ac_objext
2496 +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2497 + (eval $ac_compile) 2>conftest.er1
2499 + grep -v '^ *+' conftest.er1 >conftest.err
2500 + rm -f conftest.er1
2501 + cat conftest.err >&5
2502 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2503 + (exit $ac_status); } &&
2504 + { ac_try='test -z "$ac_c_werror_flag"
2505 + || test ! -s conftest.err'
2506 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2507 + (eval $ac_try) 2>&5
2509 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2510 + (exit $ac_status); }; } &&
2511 + { ac_try='test -s conftest.$ac_objext'
2512 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2513 + (eval $ac_try) 2>&5
2515 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2516 + (exit $ac_status); }; }; then
2519 - ac_cv_prog_cc_g=no
2522 + echo "$as_me: failed program was:" >&5
2523 +sed 's/^/| /' conftest.$ac_ext >&5
2528 -echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
2529 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
2531 +echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
2532 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
2533 if test "$ac_test_CFLAGS" = set; then
2534 - CFLAGS="$ac_save_CFLAGS"
2535 + CFLAGS=$ac_save_CFLAGS
2536 elif test $ac_cv_prog_cc_g = yes; then
2537 if test "$GCC" = yes; then
2539 @@ -900,86 +2105,503 @@ else
2543 +echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
2544 +echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
2545 +if test "${ac_cv_prog_cc_stdc+set}" = set; then
2546 + echo $ECHO_N "(cached) $ECHO_C" >&6
2548 + ac_cv_prog_cc_stdc=no
2550 +cat >conftest.$ac_ext <<_ACEOF
2553 +cat confdefs.h >>conftest.$ac_ext
2554 +cat >>conftest.$ac_ext <<_ACEOF
2555 +/* end confdefs.h. */
2556 +#include <stdarg.h>
2558 +#include <sys/types.h>
2559 +#include <sys/stat.h>
2560 +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
2561 +struct buf { int x; };
2562 +FILE * (*rcsopen) (struct buf *, struct stat *, int);
2563 +static char *e (p, i)
2569 +static char *f (char * (*g) (char **, int), char **p, ...)
2574 + s = g (p, va_arg (v,int));
2579 +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
2580 + function prototypes and stuff, but not '\xHH' hex character constants.
2581 + These don't provoke an error unfortunately, instead are silently treated
2582 + as 'x'. The following induces an error, until -std1 is added to get
2583 + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
2584 + array size at least. It's necessary to write '\x00'==0 to get something
2585 + that's true only with -std1. */
2586 +int osf4_cc_array ['\x00' == 0 ? 1 : -1];
2588 +int test (int i, double x);
2589 +struct s1 {int (*f) (int a);};
2590 +struct s2 {int (*f) (double a);};
2591 +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
2597 +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
2602 +# Don't try gcc -ansi; that turns off useful extensions and
2603 +# breaks some systems' header files.
2604 +# AIX -qlanglvl=ansi
2605 +# Ultrix and OSF/1 -std1
2606 +# HP-UX 10.20 and later -Ae
2607 +# HP-UX older versions -Aa -D_HPUX_SOURCE
2608 +# SVR4 -Xc -D__EXTENSIONS__
2609 +for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
2611 + CC="$ac_save_CC $ac_arg"
2612 + rm -f conftest.$ac_objext
2613 +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2614 + (eval $ac_compile) 2>conftest.er1
2616 + grep -v '^ *+' conftest.er1 >conftest.err
2617 + rm -f conftest.er1
2618 + cat conftest.err >&5
2619 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2620 + (exit $ac_status); } &&
2621 + { ac_try='test -z "$ac_c_werror_flag"
2622 + || test ! -s conftest.err'
2623 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2624 + (eval $ac_try) 2>&5
2626 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2627 + (exit $ac_status); }; } &&
2628 + { ac_try='test -s conftest.$ac_objext'
2629 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2630 + (eval $ac_try) 2>&5
2632 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2633 + (exit $ac_status); }; }; then
2634 + ac_cv_prog_cc_stdc=$ac_arg
2637 + echo "$as_me: failed program was:" >&5
2638 +sed 's/^/| /' conftest.$ac_ext >&5
2641 +rm -f conftest.err conftest.$ac_objext
2643 +rm -f conftest.$ac_ext conftest.$ac_objext
2648 +case "x$ac_cv_prog_cc_stdc" in
2650 + echo "$as_me:$LINENO: result: none needed" >&5
2651 +echo "${ECHO_T}none needed" >&6 ;;
2653 + echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
2654 +echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
2655 + CC="$CC $ac_cv_prog_cc_stdc" ;;
2658 +# Some people use a C++ compiler to compile C. Since we use `exit',
2659 +# in C++ we need to declare it. In case someone uses the same compiler
2660 +# for both compiling C and C++ we need to have the C++ compiler decide
2661 +# the declaration of exit, since it's the most demanding environment.
2662 +cat >conftest.$ac_ext <<_ACEOF
2663 +#ifndef __cplusplus
2667 +rm -f conftest.$ac_objext
2668 +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2669 + (eval $ac_compile) 2>conftest.er1
2671 + grep -v '^ *+' conftest.er1 >conftest.err
2672 + rm -f conftest.er1
2673 + cat conftest.err >&5
2674 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2675 + (exit $ac_status); } &&
2676 + { ac_try='test -z "$ac_c_werror_flag"
2677 + || test ! -s conftest.err'
2678 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2679 + (eval $ac_try) 2>&5
2681 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2682 + (exit $ac_status); }; } &&
2683 + { ac_try='test -s conftest.$ac_objext'
2684 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2685 + (eval $ac_try) 2>&5
2687 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2688 + (exit $ac_status); }; }; then
2689 + for ac_declaration in \
2691 + 'extern "C" void std::exit (int) throw (); using std::exit;' \
2692 + 'extern "C" void std::exit (int); using std::exit;' \
2693 + 'extern "C" void exit (int) throw ();' \
2694 + 'extern "C" void exit (int);' \
2695 + 'void exit (int);'
2697 + cat >conftest.$ac_ext <<_ACEOF
2700 +cat confdefs.h >>conftest.$ac_ext
2701 +cat >>conftest.$ac_ext <<_ACEOF
2702 +/* end confdefs.h. */
2704 +#include <stdlib.h>
2713 +rm -f conftest.$ac_objext
2714 +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2715 + (eval $ac_compile) 2>conftest.er1
2717 + grep -v '^ *+' conftest.er1 >conftest.err
2718 + rm -f conftest.er1
2719 + cat conftest.err >&5
2720 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2721 + (exit $ac_status); } &&
2722 + { ac_try='test -z "$ac_c_werror_flag"
2723 + || test ! -s conftest.err'
2724 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2725 + (eval $ac_try) 2>&5
2727 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2728 + (exit $ac_status); }; } &&
2729 + { ac_try='test -s conftest.$ac_objext'
2730 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2731 + (eval $ac_try) 2>&5
2733 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2734 + (exit $ac_status); }; }; then
2737 + echo "$as_me: failed program was:" >&5
2738 +sed 's/^/| /' conftest.$ac_ext >&5
2742 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
2743 + cat >conftest.$ac_ext <<_ACEOF
2746 +cat confdefs.h >>conftest.$ac_ext
2747 +cat >>conftest.$ac_ext <<_ACEOF
2748 +/* end confdefs.h. */
2758 +rm -f conftest.$ac_objext
2759 +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2760 + (eval $ac_compile) 2>conftest.er1
2762 + grep -v '^ *+' conftest.er1 >conftest.err
2763 + rm -f conftest.er1
2764 + cat conftest.err >&5
2765 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2766 + (exit $ac_status); } &&
2767 + { ac_try='test -z "$ac_c_werror_flag"
2768 + || test ! -s conftest.err'
2769 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2770 + (eval $ac_try) 2>&5
2772 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2773 + (exit $ac_status); }; } &&
2774 + { ac_try='test -s conftest.$ac_objext'
2775 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2776 + (eval $ac_try) 2>&5
2778 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2779 + (exit $ac_status); }; }; then
2782 + echo "$as_me: failed program was:" >&5
2783 +sed 's/^/| /' conftest.$ac_ext >&5
2786 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
2789 +if test -n "$ac_declaration"; then
2790 + echo '#ifdef __cplusplus' >>confdefs.h
2791 + echo $ac_declaration >>confdefs.h
2792 + echo '#endif' >>confdefs.h
2796 + echo "$as_me: failed program was:" >&5
2797 +sed 's/^/| /' conftest.$ac_ext >&5
2800 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
2802 +ac_cpp='$CPP $CPPFLAGS'
2803 +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
2804 +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
2805 +ac_compiler_gnu=$ac_cv_c_compiler_gnu
2807 -echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
2808 -echo "configure:906: checking how to run the C preprocessor" >&5
2810 +ac_cpp='$CPP $CPPFLAGS'
2811 +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
2812 +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
2813 +ac_compiler_gnu=$ac_cv_c_compiler_gnu
2814 +echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
2815 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
2816 # On Suns, sometimes $CPP names a directory.
2817 if test -n "$CPP" && test -d "$CPP"; then
2820 if test -z "$CPP"; then
2821 -if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
2822 - echo $ac_n "(cached) $ac_c" 1>&6
2823 + if test "${ac_cv_prog_CPP+set}" = set; then
2824 + echo $ECHO_N "(cached) $ECHO_C" >&6
2826 - # This must be in double quotes, not single quotes, because CPP may get
2827 - # substituted into the Makefile and "${CC-cc}" will confuse make.
2829 + # Double quotes because CPP needs to be expanded
2830 + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
2832 + ac_preproc_ok=false
2833 +for ac_c_preproc_warn_flag in '' yes
2835 + # Use a header file that comes with gcc, so configuring glibc
2836 + # with a fresh cross-compiler works.
2837 + # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
2838 + # <limits.h> exists even on freestanding compilers.
2839 # On the NeXT, cc -E runs the code through the compiler's parser,
2840 - # not just through cpp.
2841 - cat > conftest.$ac_ext <<EOF
2842 -#line 921 "configure"
2843 -#include "confdefs.h"
2844 -#include <assert.h>
2847 -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
2848 -{ (eval echo configure:927: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
2849 -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
2850 -if test -z "$ac_err"; then
2852 + # not just through cpp. "Syntax error" is here to catch this case.
2853 + cat >conftest.$ac_ext <<_ACEOF
2856 +cat confdefs.h >>conftest.$ac_ext
2857 +cat >>conftest.$ac_ext <<_ACEOF
2858 +/* end confdefs.h. */
2860 +# include <limits.h>
2862 +# include <assert.h>
2866 +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
2867 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
2869 + grep -v '^ *+' conftest.er1 >conftest.err
2870 + rm -f conftest.er1
2871 + cat conftest.err >&5
2872 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2873 + (exit $ac_status); } >/dev/null; then
2874 + if test -s conftest.err; then
2875 + ac_cpp_err=$ac_c_preproc_warn_flag
2876 + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
2881 - echo "$ac_err" >&5
2882 - echo "configure: failed program was:" >&5
2883 - cat conftest.$ac_ext >&5
2885 - CPP="${CC-cc} -E -traditional-cpp"
2886 - cat > conftest.$ac_ext <<EOF
2887 -#line 938 "configure"
2888 -#include "confdefs.h"
2889 -#include <assert.h>
2892 -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
2893 -{ (eval echo configure:944: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
2894 -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
2895 -if test -z "$ac_err"; then
2898 +if test -z "$ac_cpp_err"; then
2901 - echo "$ac_err" >&5
2902 - echo "configure: failed program was:" >&5
2903 - cat conftest.$ac_ext >&5
2905 - CPP="${CC-cc} -nologo -E"
2906 - cat > conftest.$ac_ext <<EOF
2907 -#line 955 "configure"
2908 -#include "confdefs.h"
2909 -#include <assert.h>
2912 -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
2913 -{ (eval echo configure:961: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
2914 -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
2915 -if test -z "$ac_err"; then
2917 + echo "$as_me: failed program was:" >&5
2918 +sed 's/^/| /' conftest.$ac_ext >&5
2920 + # Broken: fails on valid input.
2923 +rm -f conftest.err conftest.$ac_ext
2925 + # OK, works on sane cases. Now check whether non-existent headers
2926 + # can be detected and how.
2927 + cat >conftest.$ac_ext <<_ACEOF
2930 +cat confdefs.h >>conftest.$ac_ext
2931 +cat >>conftest.$ac_ext <<_ACEOF
2932 +/* end confdefs.h. */
2933 +#include <ac_nonexistent.h>
2935 +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
2936 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
2938 + grep -v '^ *+' conftest.er1 >conftest.err
2939 + rm -f conftest.er1
2940 + cat conftest.err >&5
2941 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
2942 + (exit $ac_status); } >/dev/null; then
2943 + if test -s conftest.err; then
2944 + ac_cpp_err=$ac_c_preproc_warn_flag
2945 + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
2950 - echo "$ac_err" >&5
2951 - echo "configure: failed program was:" >&5
2952 - cat conftest.$ac_ext >&5
2958 +if test -z "$ac_cpp_err"; then
2959 + # Broken: success on invalid input.
2962 + echo "$as_me: failed program was:" >&5
2963 +sed 's/^/| /' conftest.$ac_ext >&5
2965 + # Passes both tests.
2970 +rm -f conftest.err conftest.$ac_ext
2973 +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
2974 +rm -f conftest.err conftest.$ac_ext
2975 +if $ac_preproc_ok; then
2979 - ac_cv_prog_CPP="$CPP"
2982 + ac_cv_prog_CPP=$CPP
2985 + CPP=$ac_cv_prog_CPP
2987 + ac_cv_prog_CPP=$CPP
2989 +echo "$as_me:$LINENO: result: $CPP" >&5
2990 +echo "${ECHO_T}$CPP" >&6
2991 +ac_preproc_ok=false
2992 +for ac_c_preproc_warn_flag in '' yes
2994 + # Use a header file that comes with gcc, so configuring glibc
2995 + # with a fresh cross-compiler works.
2996 + # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
2997 + # <limits.h> exists even on freestanding compilers.
2998 + # On the NeXT, cc -E runs the code through the compiler's parser,
2999 + # not just through cpp. "Syntax error" is here to catch this case.
3000 + cat >conftest.$ac_ext <<_ACEOF
3003 +cat confdefs.h >>conftest.$ac_ext
3004 +cat >>conftest.$ac_ext <<_ACEOF
3005 +/* end confdefs.h. */
3007 +# include <limits.h>
3009 +# include <assert.h>
3013 +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
3014 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
3016 + grep -v '^ *+' conftest.er1 >conftest.err
3017 + rm -f conftest.er1
3018 + cat conftest.err >&5
3019 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
3020 + (exit $ac_status); } >/dev/null; then
3021 + if test -s conftest.err; then
3022 + ac_cpp_err=$ac_c_preproc_warn_flag
3023 + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
3030 +if test -z "$ac_cpp_err"; then
3033 + echo "$as_me: failed program was:" >&5
3034 +sed 's/^/| /' conftest.$ac_ext >&5
3036 + # Broken: fails on valid input.
3039 +rm -f conftest.err conftest.$ac_ext
3041 + # OK, works on sane cases. Now check whether non-existent headers
3042 + # can be detected and how.
3043 + cat >conftest.$ac_ext <<_ACEOF
3046 +cat confdefs.h >>conftest.$ac_ext
3047 +cat >>conftest.$ac_ext <<_ACEOF
3048 +/* end confdefs.h. */
3049 +#include <ac_nonexistent.h>
3051 +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
3052 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
3054 + grep -v '^ *+' conftest.er1 >conftest.err
3055 + rm -f conftest.er1
3056 + cat conftest.err >&5
3057 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
3058 + (exit $ac_status); } >/dev/null; then
3059 + if test -s conftest.err; then
3060 + ac_cpp_err=$ac_c_preproc_warn_flag
3061 + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
3068 +if test -z "$ac_cpp_err"; then
3069 + # Broken: success on invalid input.
3072 + echo "$as_me: failed program was:" >&5
3073 +sed 's/^/| /' conftest.$ac_ext >&5
3075 + # Passes both tests.
3079 - CPP="$ac_cv_prog_CPP"
3080 +rm -f conftest.err conftest.$ac_ext
3083 +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
3084 +rm -f conftest.err conftest.$ac_ext
3085 +if $ac_preproc_ok; then
3088 - ac_cv_prog_CPP="$CPP"
3089 + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
3090 +See \`config.log' for more details." >&5
3091 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
3092 +See \`config.log' for more details." >&2;}
3093 + { (exit 1); exit 1; }; }
3095 -echo "$ac_t""$CPP" 1>&6
3098 +ac_cpp='$CPP $CPPFLAGS'
3099 +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
3100 +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
3101 +ac_compiler_gnu=$ac_cv_c_compiler_gnu
3104 for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
3105 @@ -991,14 +2613,20 @@ for ac_dir in $srcdir $srcdir/.. $srcdir
3107 ac_install_sh="$ac_aux_dir/install.sh -c"
3109 + elif test -f $ac_dir/shtool; then
3110 + ac_aux_dir=$ac_dir
3111 + ac_install_sh="$ac_aux_dir/shtool install -c"
3115 if test -z "$ac_aux_dir"; then
3116 - { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
3118 -ac_config_guess=$ac_aux_dir/config.guess
3119 -ac_config_sub=$ac_aux_dir/config.sub
3120 -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
3121 + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
3122 +echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
3123 + { (exit 1); exit 1; }; }
3125 +ac_config_guess="$SHELL $ac_aux_dir/config.guess"
3126 +ac_config_sub="$SHELL $ac_aux_dir/config.sub"
3127 +ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
3129 # Find a good install program. We prefer a C program (faster),
3130 # so one script is as good as another. But avoid the broken or
3131 @@ -1007,60 +2635,75 @@ ac_configure=$ac_aux_dir/configure # Thi
3132 # SunOS /usr/etc/install
3133 # IRIX /sbin/install
3135 +# AmigaOS /C/install, which installs bootblocks on floppy discs
3136 # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
3137 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
3138 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
3139 +# OS/2's system install, which has a completely different semantic
3140 # ./install, which can be erroneously created by make from ./install.sh.
3141 -echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
3142 -echo "configure:1016: checking for a BSD compatible install" >&5
3143 +echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
3144 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
3145 if test -z "$INSTALL"; then
3146 -if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
3147 - echo $ac_n "(cached) $ac_c" 1>&6
3148 +if test "${ac_cv_path_install+set}" = set; then
3149 + echo $ECHO_N "(cached) $ECHO_C" >&6
3151 - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
3152 - for ac_dir in $PATH; do
3153 - # Account for people who put trailing slashes in PATH elements.
3154 - case "$ac_dir/" in
3155 - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
3157 - # OSF1 and SCO ODT 3.0 have their own names for install.
3158 - # Don't use installbsd from OSF since it installs stuff as root
3160 - for ac_prog in ginstall scoinst install; do
3161 - if test -f $ac_dir/$ac_prog; then
3162 + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3163 +for as_dir in $PATH
3166 + test -z "$as_dir" && as_dir=.
3167 + # Account for people who put trailing slashes in PATH elements.
3169 + ./ | .// | /cC/* | \
3170 + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
3171 + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
3174 + # OSF1 and SCO ODT 3.0 have their own names for install.
3175 + # Don't use installbsd from OSF since it installs stuff as root
3177 + for ac_prog in ginstall scoinst install; do
3178 + for ac_exec_ext in '' $ac_executable_extensions; do
3179 + if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
3180 if test $ac_prog = install &&
3181 - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
3182 + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
3183 # AIX install. It has an incompatible calling convention.
3185 + elif test $ac_prog = install &&
3186 + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
3187 + # program-specific install script used by HP pwplus--don't use.
3190 - ac_cv_path_install="$ac_dir/$ac_prog -c"
3192 + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
3200 - IFS="$ac_save_IFS"
3208 if test "${ac_cv_path_install+set}" = set; then
3209 - INSTALL="$ac_cv_path_install"
3210 + INSTALL=$ac_cv_path_install
3212 # As a last resort, use the slow shell script. We don't cache a
3213 # path for INSTALL within a source directory, because that will
3214 # break other packages using the cache if that directory is
3215 # removed, or if the path is relative.
3216 - INSTALL="$ac_install_sh"
3217 + INSTALL=$ac_install_sh
3220 -echo "$ac_t""$INSTALL" 1>&6
3221 +echo "$as_me:$LINENO: result: $INSTALL" >&5
3222 +echo "${ECHO_T}$INSTALL" >&6
3224 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
3225 # It thinks the first close brace ends the variable substitution.
3226 test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
3228 -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
3229 +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
3231 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
3233 @@ -1068,229 +2711,332 @@ test -z "$INSTALL_DATA" && INSTALL_DATA=
3234 test "${CC_FOR_BUILD+set}" = set || CC_FOR_BUILD="$CC"
3238 -# Make sure we can run config.sub.
3239 -if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
3240 -else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
3243 -echo $ac_n "checking host system type""... $ac_c" 1>&6
3244 -echo "configure:1079: checking host system type" >&5
3247 -case "$host_alias" in
3251 - if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
3252 - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
3254 - *) host_alias=$nonopt ;;
3258 -host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
3259 -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
3260 -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
3261 -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
3262 -echo "$ac_t""$host" 1>&6
3264 -echo $ac_n "checking build system type""... $ac_c" 1>&6
3265 -echo "configure:1100: checking build system type" >&5
3268 -case "$build_alias" in
3271 - NONE) build_alias=$host_alias ;;
3272 - *) build_alias=$nonopt ;;
3276 -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
3277 -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
3278 -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
3279 -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
3280 -echo "$ac_t""$build" 1>&6
3282 -if test $host != $build; then
3283 - ac_tool_prefix=${host_alias}-
3288 -# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
3289 +if test -n "$ac_tool_prefix"; then
3290 + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
3291 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
3292 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
3293 -echo "configure:1126: checking for $ac_word" >&5
3294 -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
3295 - echo $ac_n "(cached) $ac_c" 1>&6
3296 +echo "$as_me:$LINENO: checking for $ac_word" >&5
3297 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3298 +if test "${ac_cv_prog_RANLIB+set}" = set; then
3299 + echo $ECHO_N "(cached) $ECHO_C" >&6
3301 if test -n "$RANLIB"; then
3302 ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
3304 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
3306 - for ac_dir in $ac_dummy; do
3307 - test -z "$ac_dir" && ac_dir=.
3308 - if test -f $ac_dir/$ac_word; then
3309 - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
3313 - IFS="$ac_save_ifs"
3314 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3315 +for as_dir in $PATH
3318 + test -z "$as_dir" && as_dir=.
3319 + for ac_exec_ext in '' $ac_executable_extensions; do
3320 + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3321 + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
3322 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3330 -RANLIB="$ac_cv_prog_RANLIB"
3331 +RANLIB=$ac_cv_prog_RANLIB
3332 if test -n "$RANLIB"; then
3333 - echo "$ac_t""$RANLIB" 1>&6
3334 + echo "$as_me:$LINENO: result: $RANLIB" >&5
3335 +echo "${ECHO_T}$RANLIB" >&6
3337 - echo "$ac_t""no" 1>&6
3338 + echo "$as_me:$LINENO: result: no" >&5
3339 +echo "${ECHO_T}no" >&6
3344 if test -z "$ac_cv_prog_RANLIB"; then
3345 -if test -n "$ac_tool_prefix"; then
3346 + ac_ct_RANLIB=$RANLIB
3347 # Extract the first word of "ranlib", so it can be a program name with args.
3348 set dummy ranlib; ac_word=$2
3349 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
3350 -echo "configure:1158: checking for $ac_word" >&5
3351 -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
3352 - echo $ac_n "(cached) $ac_c" 1>&6
3353 +echo "$as_me:$LINENO: checking for $ac_word" >&5
3354 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3355 +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
3356 + echo $ECHO_N "(cached) $ECHO_C" >&6
3358 - if test -n "$RANLIB"; then
3359 - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
3361 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
3363 - for ac_dir in $ac_dummy; do
3364 - test -z "$ac_dir" && ac_dir=.
3365 - if test -f $ac_dir/$ac_word; then
3366 - ac_cv_prog_RANLIB="ranlib"
3370 - IFS="$ac_save_ifs"
3371 - test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
3374 -RANLIB="$ac_cv_prog_RANLIB"
3375 -if test -n "$RANLIB"; then
3376 - echo "$ac_t""$RANLIB" 1>&6
3377 + if test -n "$ac_ct_RANLIB"; then
3378 + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
3380 - echo "$ac_t""no" 1>&6
3382 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3383 +for as_dir in $PATH
3386 + test -z "$as_dir" && as_dir=.
3387 + for ac_exec_ext in '' $ac_executable_extensions; do
3388 + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3389 + ac_cv_prog_ac_ct_RANLIB="ranlib"
3390 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3396 + test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
3399 +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
3400 +if test -n "$ac_ct_RANLIB"; then
3401 + echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
3402 +echo "${ECHO_T}$ac_ct_RANLIB" >&6
3405 + echo "$as_me:$LINENO: result: no" >&5
3406 +echo "${ECHO_T}no" >&6
3409 + RANLIB=$ac_ct_RANLIB
3411 + RANLIB="$ac_cv_prog_RANLIB"
3414 -# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
3415 +if test -n "$ac_tool_prefix"; then
3416 + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
3417 set dummy ${ac_tool_prefix}ar; ac_word=$2
3418 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
3419 -echo "configure:1193: checking for $ac_word" >&5
3420 -if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
3421 - echo $ac_n "(cached) $ac_c" 1>&6
3422 +echo "$as_me:$LINENO: checking for $ac_word" >&5
3423 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3424 +if test "${ac_cv_prog_AR+set}" = set; then
3425 + echo $ECHO_N "(cached) $ECHO_C" >&6
3427 if test -n "$AR"; then
3428 ac_cv_prog_AR="$AR" # Let the user override the test.
3430 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
3432 - for ac_dir in $ac_dummy; do
3433 - test -z "$ac_dir" && ac_dir=.
3434 - if test -f $ac_dir/$ac_word; then
3435 - ac_cv_prog_AR="${ac_tool_prefix}ar"
3439 - IFS="$ac_save_ifs"
3440 - test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
3441 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3442 +for as_dir in $PATH
3445 + test -z "$as_dir" && as_dir=.
3446 + for ac_exec_ext in '' $ac_executable_extensions; do
3447 + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3448 + ac_cv_prog_AR="${ac_tool_prefix}ar"
3449 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3457 -AR="$ac_cv_prog_AR"
3459 if test -n "$AR"; then
3460 - echo "$ac_t""$AR" 1>&6
3461 + echo "$as_me:$LINENO: result: $AR" >&5
3462 +echo "${ECHO_T}$AR" >&6
3464 - echo "$ac_t""no" 1>&6
3465 + echo "$as_me:$LINENO: result: no" >&5
3466 +echo "${ECHO_T}no" >&6
3470 +if test -z "$ac_cv_prog_AR"; then
3472 + # Extract the first word of "ar", so it can be a program name with args.
3473 +set dummy ar; ac_word=$2
3474 +echo "$as_me:$LINENO: checking for $ac_word" >&5
3475 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3476 +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
3477 + echo $ECHO_N "(cached) $ECHO_C" >&6
3479 + if test -n "$ac_ct_AR"; then
3480 + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
3482 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3483 +for as_dir in $PATH
3486 + test -z "$as_dir" && as_dir=.
3487 + for ac_exec_ext in '' $ac_executable_extensions; do
3488 + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3489 + ac_cv_prog_ac_ct_AR="ar"
3490 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3498 +ac_ct_AR=$ac_cv_prog_ac_ct_AR
3499 +if test -n "$ac_ct_AR"; then
3500 + echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
3501 +echo "${ECHO_T}$ac_ct_AR" >&6
3503 + echo "$as_me:$LINENO: result: no" >&5
3504 +echo "${ECHO_T}no" >&6
3509 + AR="$ac_cv_prog_AR"
3512 -# Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
3513 +if test -n "$ac_tool_prefix"; then
3514 + # Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
3515 set dummy ${ac_tool_prefix}ld; ac_word=$2
3516 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
3517 -echo "configure:1225: checking for $ac_word" >&5
3518 -if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then
3519 - echo $ac_n "(cached) $ac_c" 1>&6
3520 +echo "$as_me:$LINENO: checking for $ac_word" >&5
3521 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3522 +if test "${ac_cv_prog_LD+set}" = set; then
3523 + echo $ECHO_N "(cached) $ECHO_C" >&6
3525 if test -n "$LD"; then
3526 ac_cv_prog_LD="$LD" # Let the user override the test.
3528 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
3530 - for ac_dir in $ac_dummy; do
3531 - test -z "$ac_dir" && ac_dir=.
3532 - if test -f $ac_dir/$ac_word; then
3533 - ac_cv_prog_LD="${ac_tool_prefix}ld"
3537 - IFS="$ac_save_ifs"
3538 - test -z "$ac_cv_prog_LD" && ac_cv_prog_LD="ld"
3539 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3540 +for as_dir in $PATH
3543 + test -z "$as_dir" && as_dir=.
3544 + for ac_exec_ext in '' $ac_executable_extensions; do
3545 + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3546 + ac_cv_prog_LD="${ac_tool_prefix}ld"
3547 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3555 -LD="$ac_cv_prog_LD"
3557 if test -n "$LD"; then
3558 - echo "$ac_t""$LD" 1>&6
3559 + echo "$as_me:$LINENO: result: $LD" >&5
3560 +echo "${ECHO_T}$LD" >&6
3562 + echo "$as_me:$LINENO: result: no" >&5
3563 +echo "${ECHO_T}no" >&6
3567 +if test -z "$ac_cv_prog_LD"; then
3569 + # Extract the first word of "ld", so it can be a program name with args.
3570 +set dummy ld; ac_word=$2
3571 +echo "$as_me:$LINENO: checking for $ac_word" >&5
3572 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3573 +if test "${ac_cv_prog_ac_ct_LD+set}" = set; then
3574 + echo $ECHO_N "(cached) $ECHO_C" >&6
3576 + if test -n "$ac_ct_LD"; then
3577 + ac_cv_prog_ac_ct_LD="$ac_ct_LD" # Let the user override the test.
3579 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3580 +for as_dir in $PATH
3583 + test -z "$as_dir" && as_dir=.
3584 + for ac_exec_ext in '' $ac_executable_extensions; do
3585 + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3586 + ac_cv_prog_ac_ct_LD="ld"
3587 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3595 +ac_ct_LD=$ac_cv_prog_ac_ct_LD
3596 +if test -n "$ac_ct_LD"; then
3597 + echo "$as_me:$LINENO: result: $ac_ct_LD" >&5
3598 +echo "${ECHO_T}$ac_ct_LD" >&6
3600 - echo "$ac_t""no" 1>&6
3601 + echo "$as_me:$LINENO: result: no" >&5
3602 +echo "${ECHO_T}no" >&6
3607 + LD="$ac_cv_prog_LD"
3612 -echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
3613 -echo "configure:1256: checking for ANSI C header files" >&5
3614 -if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
3615 - echo $ac_n "(cached) $ac_c" 1>&6
3617 +echo "$as_me:$LINENO: checking for egrep" >&5
3618 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6
3619 +if test "${ac_cv_prog_egrep+set}" = set; then
3620 + echo $ECHO_N "(cached) $ECHO_C" >&6
3622 - cat > conftest.$ac_ext <<EOF
3623 -#line 1261 "configure"
3624 -#include "confdefs.h"
3625 + if echo a | (grep -E '(a|b)') >/dev/null 2>&1
3626 + then ac_cv_prog_egrep='grep -E'
3627 + else ac_cv_prog_egrep='egrep'
3630 +echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
3631 +echo "${ECHO_T}$ac_cv_prog_egrep" >&6
3632 + EGREP=$ac_cv_prog_egrep
3635 +echo "$as_me:$LINENO: checking for ANSI C header files" >&5
3636 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
3637 +if test "${ac_cv_header_stdc+set}" = set; then
3638 + echo $ECHO_N "(cached) $ECHO_C" >&6
3640 + cat >conftest.$ac_ext <<_ACEOF
3643 +cat confdefs.h >>conftest.$ac_ext
3644 +cat >>conftest.$ac_ext <<_ACEOF
3645 +/* end confdefs.h. */
3651 -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
3652 -{ (eval echo configure:1269: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
3653 -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
3654 -if test -z "$ac_err"; then
3665 +rm -f conftest.$ac_objext
3666 +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3667 + (eval $ac_compile) 2>conftest.er1
3669 + grep -v '^ *+' conftest.er1 >conftest.err
3670 + rm -f conftest.er1
3671 + cat conftest.err >&5
3672 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
3673 + (exit $ac_status); } &&
3674 + { ac_try='test -z "$ac_c_werror_flag"
3675 + || test ! -s conftest.err'
3676 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3677 + (eval $ac_try) 2>&5
3679 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
3680 + (exit $ac_status); }; } &&
3681 + { ac_try='test -s conftest.$ac_objext'
3682 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3683 + (eval $ac_try) 2>&5
3685 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
3686 + (exit $ac_status); }; }; then
3687 ac_cv_header_stdc=yes
3689 - echo "$ac_err" >&5
3690 - echo "configure: failed program was:" >&5
3691 - cat conftest.$ac_ext >&5
3693 - ac_cv_header_stdc=no
3694 + echo "$as_me: failed program was:" >&5
3695 +sed 's/^/| /' conftest.$ac_ext >&5
3697 +ac_cv_header_stdc=no
3700 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
3702 if test $ac_cv_header_stdc = yes; then
3703 # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
3704 -cat > conftest.$ac_ext <<EOF
3705 -#line 1286 "configure"
3706 -#include "confdefs.h"
3707 + cat >conftest.$ac_ext <<_ACEOF
3710 +cat confdefs.h >>conftest.$ac_ext
3711 +cat >>conftest.$ac_ext <<_ACEOF
3712 +/* end confdefs.h. */
3717 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
3718 - egrep "memchr" >/dev/null 2>&1; then
3719 + $EGREP "memchr" >/dev/null 2>&1; then
3723 ac_cv_header_stdc=no
3726 @@ -1299,16 +3045,19 @@ fi
3728 if test $ac_cv_header_stdc = yes; then
3729 # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
3730 -cat > conftest.$ac_ext <<EOF
3731 -#line 1304 "configure"
3732 -#include "confdefs.h"
3733 + cat >conftest.$ac_ext <<_ACEOF
3736 +cat confdefs.h >>conftest.$ac_ext
3737 +cat >>conftest.$ac_ext <<_ACEOF
3738 +/* end confdefs.h. */
3743 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
3744 - egrep "free" >/dev/null 2>&1; then
3745 + $EGREP "free" >/dev/null 2>&1; then
3749 ac_cv_header_stdc=no
3752 @@ -1317,412 +3066,911 @@ fi
3754 if test $ac_cv_header_stdc = yes; then
3755 # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
3756 -if test "$cross_compiling" = yes; then
3757 + if test "$cross_compiling" = yes; then
3760 - cat > conftest.$ac_ext <<EOF
3761 -#line 1325 "configure"
3762 -#include "confdefs.h"
3763 + cat >conftest.$ac_ext <<_ACEOF
3766 +cat confdefs.h >>conftest.$ac_ext
3767 +cat >>conftest.$ac_ext <<_ACEOF
3768 +/* end confdefs.h. */
3770 -#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
3771 -#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
3772 +#if ((' ' & 0x0FF) == 0x020)
3773 +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
3774 +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
3776 +# define ISLOWER(c) \
3777 + (('a' <= (c) && (c) <= 'i') \
3778 + || ('j' <= (c) && (c) <= 'r') \
3779 + || ('s' <= (c) && (c) <= 'z'))
3780 +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
3783 #define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
3784 -int main () { int i; for (i = 0; i < 256; i++)
3785 -if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
3789 -if { (eval echo configure:1336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
3795 + for (i = 0; i < 256; i++)
3796 + if (XOR (islower (i), ISLOWER (i))
3797 + || toupper (i) != TOUPPER (i))
3802 +rm -f conftest$ac_exeext
3803 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
3804 + (eval $ac_link) 2>&5
3806 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
3807 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
3808 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3809 + (eval $ac_try) 2>&5
3811 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
3812 + (exit $ac_status); }; }; then
3815 - echo "configure: failed program was:" >&5
3816 - cat conftest.$ac_ext >&5
3818 - ac_cv_header_stdc=no
3819 + echo "$as_me: program exited with status $ac_status" >&5
3820 +echo "$as_me: failed program was:" >&5
3821 +sed 's/^/| /' conftest.$ac_ext >&5
3823 +( exit $ac_status )
3824 +ac_cv_header_stdc=no
3827 +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
3833 -echo "$ac_t""$ac_cv_header_stdc" 1>&6
3834 +echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
3835 +echo "${ECHO_T}$ac_cv_header_stdc" >&6
3836 if test $ac_cv_header_stdc = yes; then
3837 - cat >> confdefs.h <<\EOF
3839 +cat >>confdefs.h <<\_ACEOF
3840 #define STDC_HEADERS 1
3846 -echo $ac_n "checking for GNU libc2""... $ac_c" 1>&6
3847 -echo "configure:1360: checking for GNU libc2" >&5
3848 - if eval "test \"`echo '$''{'knfsd_cv_glibc2'+set}'`\" = set"; then
3849 - echo $ac_n "(cached) $ac_c" 1>&6
3850 +echo "$as_me:$LINENO: checking for GNU libc2" >&5
3851 +echo $ECHO_N "checking for GNU libc2... $ECHO_C" >&6
3852 + if test "${knfsd_cv_glibc2+set}" = set; then
3853 + echo $ECHO_N "(cached) $ECHO_C" >&6
3855 - cat > conftest.$ac_ext <<EOF
3856 -#line 1365 "configure"
3857 -#include "confdefs.h"
3858 + cat >conftest.$ac_ext <<_ACEOF
3861 +cat confdefs.h >>conftest.$ac_ext
3862 +cat >>conftest.$ac_ext <<_ACEOF
3863 +/* end confdefs.h. */
3865 #include <features.h>
3866 #if !defined(__GLIBC__)
3870 -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
3871 -{ (eval echo configure:1374: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
3872 -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
3873 -if test -z "$ac_err"; then
3876 +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
3877 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
3879 + grep -v '^ *+' conftest.er1 >conftest.err
3880 + rm -f conftest.er1
3881 + cat conftest.err >&5
3882 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
3883 + (exit $ac_status); } >/dev/null; then
3884 + if test -s conftest.err; then
3885 + ac_cpp_err=$ac_c_preproc_warn_flag
3886 + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
3893 +if test -z "$ac_cpp_err"; then
3896 - echo "$ac_err" >&5
3897 - echo "configure: failed program was:" >&5
3898 - cat conftest.$ac_ext >&5
3900 + echo "$as_me: failed program was:" >&5
3901 +sed 's/^/| /' conftest.$ac_ext >&5
3906 +rm -f conftest.err conftest.$ac_ext
3909 - echo "$ac_t""$knfsd_cv_glibc2" 1>&6
3910 + echo "$as_me:$LINENO: result: $knfsd_cv_glibc2" >&5
3911 +echo "${ECHO_T}$knfsd_cv_glibc2" >&6
3912 if test $knfsd_cv_glibc2 = yes; then
3913 CFLAGS="$CFLAGS -D_GNU_SOURCE"
3914 CXXFLAGS="$CXXFLAGS -D_GNU_SOURCE"
3918 -echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6
3919 -echo "configure:1397: checking for main in -lsocket" >&5
3920 -ac_lib_var=`echo socket'_'main | sed 'y%./+-%__p_%'`
3921 -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
3922 - echo $ac_n "(cached) $ac_c" 1>&6
3923 +echo "$as_me:$LINENO: checking for main in -lsocket" >&5
3924 +echo $ECHO_N "checking for main in -lsocket... $ECHO_C" >&6
3925 +if test "${ac_cv_lib_socket_main+set}" = set; then
3926 + echo $ECHO_N "(cached) $ECHO_C" >&6
3928 - ac_save_LIBS="$LIBS"
3929 + ac_check_lib_save_LIBS=$LIBS
3930 LIBS="-lsocket $LIBS"
3931 -cat > conftest.$ac_ext <<EOF
3932 -#line 1405 "configure"
3933 -#include "confdefs.h"
3939 -if { (eval echo configure:1412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
3941 - eval "ac_cv_lib_$ac_lib_var=yes"
3943 - echo "configure: failed program was:" >&5
3944 - cat conftest.$ac_ext >&5
3946 - eval "ac_cv_lib_$ac_lib_var=no"
3949 -LIBS="$ac_save_LIBS"
3952 -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
3953 - echo "$ac_t""yes" 1>&6
3954 +cat >conftest.$ac_ext <<_ACEOF
3957 +cat confdefs.h >>conftest.$ac_ext
3958 +cat >>conftest.$ac_ext <<_ACEOF
3959 +/* end confdefs.h. */
3970 +rm -f conftest.$ac_objext conftest$ac_exeext
3971 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
3972 + (eval $ac_link) 2>conftest.er1
3974 + grep -v '^ *+' conftest.er1 >conftest.err
3975 + rm -f conftest.er1
3976 + cat conftest.err >&5
3977 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
3978 + (exit $ac_status); } &&
3979 + { ac_try='test -z "$ac_c_werror_flag"
3980 + || test ! -s conftest.err'
3981 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3982 + (eval $ac_try) 2>&5
3984 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
3985 + (exit $ac_status); }; } &&
3986 + { ac_try='test -s conftest$ac_exeext'
3987 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3988 + (eval $ac_try) 2>&5
3990 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
3991 + (exit $ac_status); }; }; then
3992 + ac_cv_lib_socket_main=yes
3994 + echo "$as_me: failed program was:" >&5
3995 +sed 's/^/| /' conftest.$ac_ext >&5
3997 +ac_cv_lib_socket_main=no
3999 +rm -f conftest.err conftest.$ac_objext \
4000 + conftest$ac_exeext conftest.$ac_ext
4001 +LIBS=$ac_check_lib_save_LIBS
4003 +echo "$as_me:$LINENO: result: $ac_cv_lib_socket_main" >&5
4004 +echo "${ECHO_T}$ac_cv_lib_socket_main" >&6
4005 +if test $ac_cv_lib_socket_main = yes; then
4008 - echo "$ac_t""no" 1>&6
4011 -echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6
4012 -echo "configure:1433: checking for main in -lnsl" >&5
4013 -ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'`
4014 -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
4015 - echo $ac_n "(cached) $ac_c" 1>&6
4016 +echo "$as_me:$LINENO: checking for main in -lnsl" >&5
4017 +echo $ECHO_N "checking for main in -lnsl... $ECHO_C" >&6
4018 +if test "${ac_cv_lib_nsl_main+set}" = set; then
4019 + echo $ECHO_N "(cached) $ECHO_C" >&6
4021 - ac_save_LIBS="$LIBS"
4022 + ac_check_lib_save_LIBS=$LIBS
4024 -cat > conftest.$ac_ext <<EOF
4025 -#line 1441 "configure"
4026 -#include "confdefs.h"
4032 -if { (eval echo configure:1448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
4034 - eval "ac_cv_lib_$ac_lib_var=yes"
4036 - echo "configure: failed program was:" >&5
4037 - cat conftest.$ac_ext >&5
4039 - eval "ac_cv_lib_$ac_lib_var=no"
4042 -LIBS="$ac_save_LIBS"
4045 -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
4046 - echo "$ac_t""yes" 1>&6
4047 +cat >conftest.$ac_ext <<_ACEOF
4050 +cat confdefs.h >>conftest.$ac_ext
4051 +cat >>conftest.$ac_ext <<_ACEOF
4052 +/* end confdefs.h. */
4063 +rm -f conftest.$ac_objext conftest$ac_exeext
4064 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4065 + (eval $ac_link) 2>conftest.er1
4067 + grep -v '^ *+' conftest.er1 >conftest.err
4068 + rm -f conftest.er1
4069 + cat conftest.err >&5
4070 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4071 + (exit $ac_status); } &&
4072 + { ac_try='test -z "$ac_c_werror_flag"
4073 + || test ! -s conftest.err'
4074 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4075 + (eval $ac_try) 2>&5
4077 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4078 + (exit $ac_status); }; } &&
4079 + { ac_try='test -s conftest$ac_exeext'
4080 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4081 + (eval $ac_try) 2>&5
4083 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4084 + (exit $ac_status); }; }; then
4085 + ac_cv_lib_nsl_main=yes
4087 + echo "$as_me: failed program was:" >&5
4088 +sed 's/^/| /' conftest.$ac_ext >&5
4090 +ac_cv_lib_nsl_main=no
4092 +rm -f conftest.err conftest.$ac_objext \
4093 + conftest$ac_exeext conftest.$ac_ext
4094 +LIBS=$ac_check_lib_save_LIBS
4096 +echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_main" >&5
4097 +echo "${ECHO_T}$ac_cv_lib_nsl_main" >&6
4098 +if test $ac_cv_lib_nsl_main = yes; then
4101 - echo "$ac_t""no" 1>&6
4104 -echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
4105 -echo "configure:1469: checking for crypt in -lcrypt" >&5
4106 -ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
4107 -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
4108 - echo $ac_n "(cached) $ac_c" 1>&6
4109 +echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5
4110 +echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6
4111 +if test "${ac_cv_lib_crypt_crypt+set}" = set; then
4112 + echo $ECHO_N "(cached) $ECHO_C" >&6
4114 - ac_save_LIBS="$LIBS"
4115 + ac_check_lib_save_LIBS=$LIBS
4116 LIBS="-lcrypt $LIBS"
4117 -cat > conftest.$ac_ext <<EOF
4118 -#line 1477 "configure"
4119 -#include "confdefs.h"
4120 +cat >conftest.$ac_ext <<_ACEOF
4123 +cat confdefs.h >>conftest.$ac_ext
4124 +cat >>conftest.$ac_ext <<_ACEOF
4125 +/* end confdefs.h. */
4127 /* Override any gcc2 internal prototype to avoid an error. */
4131 /* We use char because int might match the return type of a gcc2
4132 - builtin and then its argument prototype would still apply. */
4139 -if { (eval echo configure:1488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
4141 - eval "ac_cv_lib_$ac_lib_var=yes"
4143 - echo "configure: failed program was:" >&5
4144 - cat conftest.$ac_ext >&5
4146 - eval "ac_cv_lib_$ac_lib_var=no"
4149 -LIBS="$ac_save_LIBS"
4152 -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
4153 - echo "$ac_t""yes" 1>&6
4154 + builtin and then its argument prototype would still apply. */
4164 +rm -f conftest.$ac_objext conftest$ac_exeext
4165 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4166 + (eval $ac_link) 2>conftest.er1
4168 + grep -v '^ *+' conftest.er1 >conftest.err
4169 + rm -f conftest.er1
4170 + cat conftest.err >&5
4171 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4172 + (exit $ac_status); } &&
4173 + { ac_try='test -z "$ac_c_werror_flag"
4174 + || test ! -s conftest.err'
4175 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4176 + (eval $ac_try) 2>&5
4178 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4179 + (exit $ac_status); }; } &&
4180 + { ac_try='test -s conftest$ac_exeext'
4181 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4182 + (eval $ac_try) 2>&5
4184 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4185 + (exit $ac_status); }; }; then
4186 + ac_cv_lib_crypt_crypt=yes
4188 + echo "$as_me: failed program was:" >&5
4189 +sed 's/^/| /' conftest.$ac_ext >&5
4191 +ac_cv_lib_crypt_crypt=no
4193 +rm -f conftest.err conftest.$ac_objext \
4194 + conftest$ac_exeext conftest.$ac_ext
4195 +LIBS=$ac_check_lib_save_LIBS
4197 +echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5
4198 +echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6
4199 +if test $ac_cv_lib_crypt_crypt = yes; then
4202 - echo "$ac_t""no" 1>&6
4205 if test "$enable_nfsv4" = yes; then
4206 - echo $ac_n "checking for event_dispatch in -levent""... $ac_c" 1>&6
4207 -echo "configure:1510: checking for event_dispatch in -levent" >&5
4208 -ac_lib_var=`echo event'_'event_dispatch | sed 'y%./+-%__p_%'`
4209 -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
4210 - echo $ac_n "(cached) $ac_c" 1>&6
4211 + echo "$as_me:$LINENO: checking for event_dispatch in -levent" >&5
4212 +echo $ECHO_N "checking for event_dispatch in -levent... $ECHO_C" >&6
4213 +if test "${ac_cv_lib_event_event_dispatch+set}" = set; then
4214 + echo $ECHO_N "(cached) $ECHO_C" >&6
4216 - ac_save_LIBS="$LIBS"
4217 + ac_check_lib_save_LIBS=$LIBS
4218 LIBS="-levent $LIBS"
4219 -cat > conftest.$ac_ext <<EOF
4220 -#line 1518 "configure"
4221 -#include "confdefs.h"
4222 +cat >conftest.$ac_ext <<_ACEOF
4225 +cat confdefs.h >>conftest.$ac_ext
4226 +cat >>conftest.$ac_ext <<_ACEOF
4227 +/* end confdefs.h. */
4229 /* Override any gcc2 internal prototype to avoid an error. */
4233 /* We use char because int might match the return type of a gcc2
4234 - builtin and then its argument prototype would still apply. */
4235 -char event_dispatch();
4236 + builtin and then its argument prototype would still apply. */
4237 +char event_dispatch ();
4246 +rm -f conftest.$ac_objext conftest$ac_exeext
4247 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4248 + (eval $ac_link) 2>conftest.er1
4250 + grep -v '^ *+' conftest.er1 >conftest.err
4251 + rm -f conftest.er1
4252 + cat conftest.err >&5
4253 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4254 + (exit $ac_status); } &&
4255 + { ac_try='test -z "$ac_c_werror_flag"
4256 + || test ! -s conftest.err'
4257 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4258 + (eval $ac_try) 2>&5
4260 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4261 + (exit $ac_status); }; } &&
4262 + { ac_try='test -s conftest$ac_exeext'
4263 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4264 + (eval $ac_try) 2>&5
4266 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4267 + (exit $ac_status); }; }; then
4268 + ac_cv_lib_event_event_dispatch=yes
4270 + echo "$as_me: failed program was:" >&5
4271 +sed 's/^/| /' conftest.$ac_ext >&5
4273 +ac_cv_lib_event_event_dispatch=no
4275 +rm -f conftest.err conftest.$ac_objext \
4276 + conftest$ac_exeext conftest.$ac_ext
4277 +LIBS=$ac_check_lib_save_LIBS
4279 +echo "$as_me:$LINENO: result: $ac_cv_lib_event_event_dispatch" >&5
4280 +echo "${ECHO_T}$ac_cv_lib_event_event_dispatch" >&6
4281 +if test $ac_cv_lib_event_event_dispatch = yes; then
4284 + { { echo "$as_me:$LINENO: error: libevent needed for nfsv4 support" >&5
4285 +echo "$as_me: error: libevent needed for nfsv4 support" >&2;}
4286 + { (exit 1); exit 1; }; }
4289 + echo "$as_me:$LINENO: checking for nfs4_init_name_mapping in -lnfsidmap" >&5
4290 +echo $ECHO_N "checking for nfs4_init_name_mapping in -lnfsidmap... $ECHO_C" >&6
4291 +if test "${ac_cv_lib_nfsidmap_nfs4_init_name_mapping+set}" = set; then
4292 + echo $ECHO_N "(cached) $ECHO_C" >&6
4294 + ac_check_lib_save_LIBS=$LIBS
4295 +LIBS="-lnfsidmap $LIBS"
4296 +cat >conftest.$ac_ext <<_ACEOF
4299 +cat confdefs.h >>conftest.$ac_ext
4300 +cat >>conftest.$ac_ext <<_ACEOF
4301 +/* end confdefs.h. */
4303 +/* Override any gcc2 internal prototype to avoid an error. */
4307 +/* We use char because int might match the return type of a gcc2
4308 + builtin and then its argument prototype would still apply. */
4309 +char nfs4_init_name_mapping ();
4313 +nfs4_init_name_mapping ();
4318 +rm -f conftest.$ac_objext conftest$ac_exeext
4319 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4320 + (eval $ac_link) 2>conftest.er1
4322 + grep -v '^ *+' conftest.er1 >conftest.err
4323 + rm -f conftest.er1
4324 + cat conftest.err >&5
4325 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4326 + (exit $ac_status); } &&
4327 + { ac_try='test -z "$ac_c_werror_flag"
4328 + || test ! -s conftest.err'
4329 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4330 + (eval $ac_try) 2>&5
4332 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4333 + (exit $ac_status); }; } &&
4334 + { ac_try='test -s conftest$ac_exeext'
4335 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4336 + (eval $ac_try) 2>&5
4338 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4339 + (exit $ac_status); }; }; then
4340 + ac_cv_lib_nfsidmap_nfs4_init_name_mapping=yes
4342 + echo "$as_me: failed program was:" >&5
4343 +sed 's/^/| /' conftest.$ac_ext >&5
4345 +ac_cv_lib_nfsidmap_nfs4_init_name_mapping=no
4347 +rm -f conftest.err conftest.$ac_objext \
4348 + conftest$ac_exeext conftest.$ac_ext
4349 +LIBS=$ac_check_lib_save_LIBS
4351 +echo "$as_me:$LINENO: result: $ac_cv_lib_nfsidmap_nfs4_init_name_mapping" >&5
4352 +echo "${ECHO_T}$ac_cv_lib_nfsidmap_nfs4_init_name_mapping" >&6
4353 +if test $ac_cv_lib_nfsidmap_nfs4_init_name_mapping = yes; then
4356 + { { echo "$as_me:$LINENO: error: libnfsidmap needed for nfsv4 support" >&5
4357 +echo "$as_me: error: libnfsidmap needed for nfsv4 support" >&2;}
4358 + { (exit 1); exit 1; }; }
4361 + # On IRIX 5.3, sys/types and inttypes.h are conflicting.
4369 -if { (eval echo configure:1529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
4371 - eval "ac_cv_lib_$ac_lib_var=yes"
4373 - echo "configure: failed program was:" >&5
4374 - cat conftest.$ac_ext >&5
4376 - eval "ac_cv_lib_$ac_lib_var=no"
4379 -LIBS="$ac_save_LIBS"
4386 +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
4387 + inttypes.h stdint.h unistd.h
4389 +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
4390 +echo "$as_me:$LINENO: checking for $ac_header" >&5
4391 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
4392 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
4393 + echo $ECHO_N "(cached) $ECHO_C" >&6
4395 + cat >conftest.$ac_ext <<_ACEOF
4398 +cat confdefs.h >>conftest.$ac_ext
4399 +cat >>conftest.$ac_ext <<_ACEOF
4400 +/* end confdefs.h. */
4401 +$ac_includes_default
4403 +#include <$ac_header>
4405 +rm -f conftest.$ac_objext
4406 +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4407 + (eval $ac_compile) 2>conftest.er1
4409 + grep -v '^ *+' conftest.er1 >conftest.err
4410 + rm -f conftest.er1
4411 + cat conftest.err >&5
4412 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4413 + (exit $ac_status); } &&
4414 + { ac_try='test -z "$ac_c_werror_flag"
4415 + || test ! -s conftest.err'
4416 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4417 + (eval $ac_try) 2>&5
4419 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4420 + (exit $ac_status); }; } &&
4421 + { ac_try='test -s conftest.$ac_objext'
4422 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4423 + (eval $ac_try) 2>&5
4425 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4426 + (exit $ac_status); }; }; then
4427 + eval "$as_ac_Header=yes"
4429 + echo "$as_me: failed program was:" >&5
4430 +sed 's/^/| /' conftest.$ac_ext >&5
4432 +eval "$as_ac_Header=no"
4434 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
4436 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
4437 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
4438 +if test `eval echo '${'$as_ac_Header'}'` = yes; then
4439 + cat >>confdefs.h <<_ACEOF
4440 +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
4444 -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
4445 - echo "$ac_t""yes" 1>&6
4446 - ac_tr_lib=HAVE_LIB`echo event | sed -e 's/[^a-zA-Z0-9_]/_/g' \
4447 - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
4448 - cat >> confdefs.h <<EOF
4449 -#define $ac_tr_lib 1
4452 - LIBS="-levent $LIBS"
4457 +for ac_header in event.h
4459 +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
4460 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
4461 + echo "$as_me:$LINENO: checking for $ac_header" >&5
4462 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
4463 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
4464 + echo $ECHO_N "(cached) $ECHO_C" >&6
4466 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
4467 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
4469 + # Is the header compilable?
4470 +echo "$as_me:$LINENO: checking $ac_header usability" >&5
4471 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
4472 +cat >conftest.$ac_ext <<_ACEOF
4475 +cat confdefs.h >>conftest.$ac_ext
4476 +cat >>conftest.$ac_ext <<_ACEOF
4477 +/* end confdefs.h. */
4478 +$ac_includes_default
4479 +#include <$ac_header>
4481 +rm -f conftest.$ac_objext
4482 +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4483 + (eval $ac_compile) 2>conftest.er1
4485 + grep -v '^ *+' conftest.er1 >conftest.err
4486 + rm -f conftest.er1
4487 + cat conftest.err >&5
4488 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4489 + (exit $ac_status); } &&
4490 + { ac_try='test -z "$ac_c_werror_flag"
4491 + || test ! -s conftest.err'
4492 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4493 + (eval $ac_try) 2>&5
4495 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4496 + (exit $ac_status); }; } &&
4497 + { ac_try='test -s conftest.$ac_objext'
4498 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4499 + (eval $ac_try) 2>&5
4501 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4502 + (exit $ac_status); }; }; then
4503 + ac_header_compiler=yes
4505 + echo "$as_me: failed program was:" >&5
4506 +sed 's/^/| /' conftest.$ac_ext >&5
4508 +ac_header_compiler=no
4510 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
4511 +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
4512 +echo "${ECHO_T}$ac_header_compiler" >&6
4514 +# Is the header present?
4515 +echo "$as_me:$LINENO: checking $ac_header presence" >&5
4516 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
4517 +cat >conftest.$ac_ext <<_ACEOF
4520 +cat confdefs.h >>conftest.$ac_ext
4521 +cat >>conftest.$ac_ext <<_ACEOF
4522 +/* end confdefs.h. */
4523 +#include <$ac_header>
4525 +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
4526 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
4528 + grep -v '^ *+' conftest.er1 >conftest.err
4529 + rm -f conftest.er1
4530 + cat conftest.err >&5
4531 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4532 + (exit $ac_status); } >/dev/null; then
4533 + if test -s conftest.err; then
4534 + ac_cpp_err=$ac_c_preproc_warn_flag
4535 + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
4540 - echo "$ac_t""no" 1>&6
4541 -{ echo "configure: error: libevent needed for nfsv4 support" 1>&2; exit 1; }
4545 - echo $ac_n "checking for nfs4_init_name_mapping in -lnfsidmap""... $ac_c" 1>&6
4546 -echo "configure:1558: checking for nfs4_init_name_mapping in -lnfsidmap" >&5
4547 -ac_lib_var=`echo nfsidmap'_'nfs4_init_name_mapping | sed 'y%./+-%__p_%'`
4548 -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
4549 - echo $ac_n "(cached) $ac_c" 1>&6
4550 +if test -z "$ac_cpp_err"; then
4551 + ac_header_preproc=yes
4553 - ac_save_LIBS="$LIBS"
4554 -LIBS="-lnfsidmap $LIBS"
4555 -cat > conftest.$ac_ext <<EOF
4556 -#line 1566 "configure"
4557 -#include "confdefs.h"
4558 -/* Override any gcc2 internal prototype to avoid an error. */
4559 -/* We use char because int might match the return type of a gcc2
4560 - builtin and then its argument prototype would still apply. */
4561 -char nfs4_init_name_mapping();
4562 + echo "$as_me: failed program was:" >&5
4563 +sed 's/^/| /' conftest.$ac_ext >&5
4566 -nfs4_init_name_mapping()
4569 -if { (eval echo configure:1577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
4571 - eval "ac_cv_lib_$ac_lib_var=yes"
4573 - echo "configure: failed program was:" >&5
4574 - cat conftest.$ac_ext >&5
4576 - eval "ac_cv_lib_$ac_lib_var=no"
4577 + ac_header_preproc=no
4579 +rm -f conftest.err conftest.$ac_ext
4580 +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
4581 +echo "${ECHO_T}$ac_header_preproc" >&6
4583 +# So? What about this header?
4584 +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
4586 + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
4587 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
4588 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
4589 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
4590 + ac_header_preproc=yes
4593 + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
4594 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
4595 + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
4596 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
4597 + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
4598 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
4599 + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
4600 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
4601 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
4602 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
4603 + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
4604 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
4607 +## ------------------------------------------ ##
4608 +## Report this to the AC_PACKAGE_NAME lists. ##
4609 +## ------------------------------------------ ##
4612 + sed "s/^/$as_me: WARNING: /" >&2
4615 +echo "$as_me:$LINENO: checking for $ac_header" >&5
4616 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
4617 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
4618 + echo $ECHO_N "(cached) $ECHO_C" >&6
4620 + eval "$as_ac_Header=\$ac_header_preproc"
4623 -LIBS="$ac_save_LIBS"
4624 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
4625 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
4628 -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
4629 - echo "$ac_t""yes" 1>&6
4630 - ac_tr_lib=HAVE_LIB`echo nfsidmap | sed -e 's/[^a-zA-Z0-9_]/_/g' \
4631 - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
4632 - cat >> confdefs.h <<EOF
4633 -#define $ac_tr_lib 1
4636 - LIBS="-lnfsidmap $LIBS"
4639 - echo "$ac_t""no" 1>&6
4640 -{ echo "configure: error: libnfsidmap needed for nfsv4 support" 1>&2; exit 1; }
4643 - for ac_hdr in event.h
4645 -ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
4646 -echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
4647 -echo "configure:1609: checking for $ac_hdr" >&5
4648 -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
4649 - echo $ac_n "(cached) $ac_c" 1>&6
4651 - cat > conftest.$ac_ext <<EOF
4652 -#line 1614 "configure"
4653 -#include "confdefs.h"
4656 -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
4657 -{ (eval echo configure:1619: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
4658 -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
4659 -if test -z "$ac_err"; then
4661 - eval "ac_cv_header_$ac_safe=yes"
4663 - echo "$ac_err" >&5
4664 - echo "configure: failed program was:" >&5
4665 - cat conftest.$ac_ext >&5
4667 - eval "ac_cv_header_$ac_safe=no"
4671 -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
4672 - echo "$ac_t""yes" 1>&6
4673 - ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
4674 - cat >> confdefs.h <<EOF
4675 -#define $ac_tr_hdr 1
4679 - echo "$ac_t""no" 1>&6
4680 -{ echo "configure: error: libevent needed for nfsv4 support" 1>&2; exit 1; }
4681 +if test `eval echo '${'$as_ac_Header'}'` = yes; then
4682 + cat >>confdefs.h <<_ACEOF
4683 +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
4687 + { { echo "$as_me:$LINENO: error: libevent needed for nfsv4 support" >&5
4688 +echo "$as_me: error: libevent needed for nfsv4 support" >&2;}
4689 + { (exit 1); exit 1; }; }
4694 - for ac_hdr in nfsidmap.h
4696 -ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
4697 -echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
4698 -echo "configure:1650: checking for $ac_hdr" >&5
4699 -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
4700 - echo $ac_n "(cached) $ac_c" 1>&6
4702 - cat > conftest.$ac_ext <<EOF
4703 -#line 1655 "configure"
4704 -#include "confdefs.h"
4707 -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
4708 -{ (eval echo configure:1660: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
4709 -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
4710 -if test -z "$ac_err"; then
4712 - eval "ac_cv_header_$ac_safe=yes"
4714 - echo "$ac_err" >&5
4715 - echo "configure: failed program was:" >&5
4716 - cat conftest.$ac_ext >&5
4718 - eval "ac_cv_header_$ac_safe=no"
4720 +for ac_header in nfsidmap.h
4722 +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
4723 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
4724 + echo "$as_me:$LINENO: checking for $ac_header" >&5
4725 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
4726 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
4727 + echo $ECHO_N "(cached) $ECHO_C" >&6
4729 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
4730 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
4732 + # Is the header compilable?
4733 +echo "$as_me:$LINENO: checking $ac_header usability" >&5
4734 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
4735 +cat >conftest.$ac_ext <<_ACEOF
4738 +cat confdefs.h >>conftest.$ac_ext
4739 +cat >>conftest.$ac_ext <<_ACEOF
4740 +/* end confdefs.h. */
4741 +$ac_includes_default
4742 +#include <$ac_header>
4744 +rm -f conftest.$ac_objext
4745 +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4746 + (eval $ac_compile) 2>conftest.er1
4748 + grep -v '^ *+' conftest.er1 >conftest.err
4749 + rm -f conftest.er1
4750 + cat conftest.err >&5
4751 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4752 + (exit $ac_status); } &&
4753 + { ac_try='test -z "$ac_c_werror_flag"
4754 + || test ! -s conftest.err'
4755 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4756 + (eval $ac_try) 2>&5
4758 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4759 + (exit $ac_status); }; } &&
4760 + { ac_try='test -s conftest.$ac_objext'
4761 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4762 + (eval $ac_try) 2>&5
4764 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4765 + (exit $ac_status); }; }; then
4766 + ac_header_compiler=yes
4768 + echo "$as_me: failed program was:" >&5
4769 +sed 's/^/| /' conftest.$ac_ext >&5
4771 +ac_header_compiler=no
4773 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
4774 +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
4775 +echo "${ECHO_T}$ac_header_compiler" >&6
4777 +# Is the header present?
4778 +echo "$as_me:$LINENO: checking $ac_header presence" >&5
4779 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
4780 +cat >conftest.$ac_ext <<_ACEOF
4783 +cat confdefs.h >>conftest.$ac_ext
4784 +cat >>conftest.$ac_ext <<_ACEOF
4785 +/* end confdefs.h. */
4786 +#include <$ac_header>
4788 +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
4789 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
4791 + grep -v '^ *+' conftest.er1 >conftest.err
4792 + rm -f conftest.er1
4793 + cat conftest.err >&5
4794 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4795 + (exit $ac_status); } >/dev/null; then
4796 + if test -s conftest.err; then
4797 + ac_cpp_err=$ac_c_preproc_warn_flag
4798 + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
4806 +if test -z "$ac_cpp_err"; then
4807 + ac_header_preproc=yes
4809 + echo "$as_me: failed program was:" >&5
4810 +sed 's/^/| /' conftest.$ac_ext >&5
4812 + ac_header_preproc=no
4814 +rm -f conftest.err conftest.$ac_ext
4815 +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
4816 +echo "${ECHO_T}$ac_header_preproc" >&6
4818 +# So? What about this header?
4819 +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
4821 + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
4822 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
4823 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
4824 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
4825 + ac_header_preproc=yes
4828 + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
4829 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
4830 + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
4831 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
4832 + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
4833 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
4834 + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
4835 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
4836 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
4837 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
4838 + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
4839 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
4842 +## ------------------------------------------ ##
4843 +## Report this to the AC_PACKAGE_NAME lists. ##
4844 +## ------------------------------------------ ##
4847 + sed "s/^/$as_me: WARNING: /" >&2
4850 +echo "$as_me:$LINENO: checking for $ac_header" >&5
4851 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
4852 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
4853 + echo $ECHO_N "(cached) $ECHO_C" >&6
4855 + eval "$as_ac_Header=\$ac_header_preproc"
4857 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
4858 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
4861 -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
4862 - echo "$ac_t""yes" 1>&6
4863 - ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
4864 - cat >> confdefs.h <<EOF
4865 -#define $ac_tr_hdr 1
4868 +if test `eval echo '${'$as_ac_Header'}'` = yes; then
4869 + cat >>confdefs.h <<_ACEOF
4870 +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
4874 - echo "$ac_t""no" 1>&6
4875 -{ echo "configure: error: libnfsidmap needed for nfsv4 support" 1>&2; exit 1; }
4876 + { { echo "$as_me:$LINENO: error: libnfsidmap needed for nfsv4 support" >&5
4877 +echo "$as_me: error: libnfsidmap needed for nfsv4 support" >&2;}
4878 + { (exit 1); exit 1; }; }
4884 if test "$knfsd_cv_glibc2" = no; then
4885 - echo $ac_n "checking for daemon in -lbsd""... $ac_c" 1>&6
4886 -echo "configure:1690: checking for daemon in -lbsd" >&5
4887 -ac_lib_var=`echo bsd'_'daemon | sed 'y%./+-%__p_%'`
4888 -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
4889 - echo $ac_n "(cached) $ac_c" 1>&6
4890 + echo "$as_me:$LINENO: checking for daemon in -lbsd" >&5
4891 +echo $ECHO_N "checking for daemon in -lbsd... $ECHO_C" >&6
4892 +if test "${ac_cv_lib_bsd_daemon+set}" = set; then
4893 + echo $ECHO_N "(cached) $ECHO_C" >&6
4895 - ac_save_LIBS="$LIBS"
4896 + ac_check_lib_save_LIBS=$LIBS
4898 -cat > conftest.$ac_ext <<EOF
4899 -#line 1698 "configure"
4900 -#include "confdefs.h"
4901 +cat >conftest.$ac_ext <<_ACEOF
4904 +cat confdefs.h >>conftest.$ac_ext
4905 +cat >>conftest.$ac_ext <<_ACEOF
4906 +/* end confdefs.h. */
4908 /* Override any gcc2 internal prototype to avoid an error. */
4912 /* We use char because int might match the return type of a gcc2
4913 - builtin and then its argument prototype would still apply. */
4920 -if { (eval echo configure:1709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
4922 - eval "ac_cv_lib_$ac_lib_var=yes"
4924 - echo "configure: failed program was:" >&5
4925 - cat conftest.$ac_ext >&5
4927 - eval "ac_cv_lib_$ac_lib_var=no"
4930 -LIBS="$ac_save_LIBS"
4933 -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
4934 - echo "$ac_t""yes" 1>&6
4935 + builtin and then its argument prototype would still apply. */
4945 +rm -f conftest.$ac_objext conftest$ac_exeext
4946 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4947 + (eval $ac_link) 2>conftest.er1
4949 + grep -v '^ *+' conftest.er1 >conftest.err
4950 + rm -f conftest.er1
4951 + cat conftest.err >&5
4952 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4953 + (exit $ac_status); } &&
4954 + { ac_try='test -z "$ac_c_werror_flag"
4955 + || test ! -s conftest.err'
4956 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4957 + (eval $ac_try) 2>&5
4959 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4960 + (exit $ac_status); }; } &&
4961 + { ac_try='test -s conftest$ac_exeext'
4962 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4963 + (eval $ac_try) 2>&5
4965 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
4966 + (exit $ac_status); }; }; then
4967 + ac_cv_lib_bsd_daemon=yes
4969 + echo "$as_me: failed program was:" >&5
4970 +sed 's/^/| /' conftest.$ac_ext >&5
4972 +ac_cv_lib_bsd_daemon=no
4974 +rm -f conftest.err conftest.$ac_objext \
4975 + conftest$ac_exeext conftest.$ac_ext
4976 +LIBS=$ac_check_lib_save_LIBS
4978 +echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_daemon" >&5
4979 +echo "${ECHO_T}$ac_cv_lib_bsd_daemon" >&6
4980 +if test $ac_cv_lib_bsd_daemon = yes; then
4983 - echo "$ac_t""no" 1>&6
4987 @@ -1731,37 +3979,66 @@ fi
4991 -echo $ac_n "checking for the tcp wrapper library""... $ac_c" 1>&6
4992 -echo "configure:1736: checking for the tcp wrapper library" >&5
4993 - if eval "test \"`echo '$''{'knfsd_cv_tcp_wrapper'+set}'`\" = set"; then
4994 - echo $ac_n "(cached) $ac_c" 1>&6
4995 +echo "$as_me:$LINENO: checking for the tcp wrapper library" >&5
4996 +echo $ECHO_N "checking for the tcp wrapper library... $ECHO_C" >&6
4997 + if test "${knfsd_cv_tcp_wrapper+set}" = set; then
4998 + echo $ECHO_N "(cached) $ECHO_C" >&6
5001 LIBS="$LIBS -lwrap $LIBNSL"
5002 - cat > conftest.$ac_ext <<EOF
5003 -#line 1743 "configure"
5004 -#include "confdefs.h"
5005 + cat >conftest.$ac_ext <<_ACEOF
5008 +cat confdefs.h >>conftest.$ac_ext
5009 +cat >>conftest.$ac_ext <<_ACEOF
5010 +/* end confdefs.h. */
5012 int deny_severity = 0;
5013 int allow_severity = 0;
5018 return hosts_ctl ("nfsd", "", "")
5021 -if { (eval echo configure:1752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
5027 +rm -f conftest.$ac_objext conftest$ac_exeext
5028 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5029 + (eval $ac_link) 2>conftest.er1
5031 + grep -v '^ *+' conftest.er1 >conftest.err
5032 + rm -f conftest.er1
5033 + cat conftest.err >&5
5034 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5035 + (exit $ac_status); } &&
5036 + { ac_try='test -z "$ac_c_werror_flag"
5037 + || test ! -s conftest.err'
5038 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5039 + (eval $ac_try) 2>&5
5041 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5042 + (exit $ac_status); }; } &&
5043 + { ac_try='test -s conftest$ac_exeext'
5044 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5045 + (eval $ac_try) 2>&5
5047 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5048 + (exit $ac_status); }; }; then
5049 knfsd_cv_tcp_wrapper=yes
5051 - echo "configure: failed program was:" >&5
5052 - cat conftest.$ac_ext >&5
5054 - knfsd_cv_tcp_wrapper=no
5055 + echo "$as_me: failed program was:" >&5
5056 +sed 's/^/| /' conftest.$ac_ext >&5
5058 +knfsd_cv_tcp_wrapper=no
5061 +rm -f conftest.err conftest.$ac_objext \
5062 + conftest$ac_exeext conftest.$ac_ext
5066 - echo "$ac_t""$knfsd_cv_tcp_wrapper" 1>&6
5067 + echo "$as_me:$LINENO: result: $knfsd_cv_tcp_wrapper" >&5
5068 +echo "${ECHO_T}$knfsd_cv_tcp_wrapper" >&6
5069 if test "$knfsd_cv_tcp_wrapper" = yes; then
5070 CFLAGS="$CFLAGS -DHAVE_TCP_WRAPPER"
5071 CXXFLAGS="$CXXFLAGS -DHAVE_TCP_WRAPPER"
5072 @@ -1771,51 +4048,165 @@ fi
5075 if test "$enable_gss" = yes; then
5076 - for ac_hdr in nfsidmap.h
5078 +for ac_header in nfsidmap.h
5080 -ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
5081 -echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
5082 -echo "configure:1779: checking for $ac_hdr" >&5
5083 -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
5084 - echo $ac_n "(cached) $ac_c" 1>&6
5086 - cat > conftest.$ac_ext <<EOF
5087 -#line 1784 "configure"
5088 -#include "confdefs.h"
5091 -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
5092 -{ (eval echo configure:1789: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
5093 -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
5094 -if test -z "$ac_err"; then
5096 - eval "ac_cv_header_$ac_safe=yes"
5098 - echo "$ac_err" >&5
5099 - echo "configure: failed program was:" >&5
5100 - cat conftest.$ac_ext >&5
5102 - eval "ac_cv_header_$ac_safe=no"
5103 +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
5104 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
5105 + echo "$as_me:$LINENO: checking for $ac_header" >&5
5106 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
5107 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
5108 + echo $ECHO_N "(cached) $ECHO_C" >&6
5110 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
5111 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
5113 + # Is the header compilable?
5114 +echo "$as_me:$LINENO: checking $ac_header usability" >&5
5115 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
5116 +cat >conftest.$ac_ext <<_ACEOF
5119 +cat confdefs.h >>conftest.$ac_ext
5120 +cat >>conftest.$ac_ext <<_ACEOF
5121 +/* end confdefs.h. */
5122 +$ac_includes_default
5123 +#include <$ac_header>
5125 +rm -f conftest.$ac_objext
5126 +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5127 + (eval $ac_compile) 2>conftest.er1
5129 + grep -v '^ *+' conftest.er1 >conftest.err
5130 + rm -f conftest.er1
5131 + cat conftest.err >&5
5132 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5133 + (exit $ac_status); } &&
5134 + { ac_try='test -z "$ac_c_werror_flag"
5135 + || test ! -s conftest.err'
5136 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5137 + (eval $ac_try) 2>&5
5139 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5140 + (exit $ac_status); }; } &&
5141 + { ac_try='test -s conftest.$ac_objext'
5142 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5143 + (eval $ac_try) 2>&5
5145 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5146 + (exit $ac_status); }; }; then
5147 + ac_header_compiler=yes
5149 + echo "$as_me: failed program was:" >&5
5150 +sed 's/^/| /' conftest.$ac_ext >&5
5152 +ac_header_compiler=no
5154 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
5155 +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
5156 +echo "${ECHO_T}$ac_header_compiler" >&6
5158 +# Is the header present?
5159 +echo "$as_me:$LINENO: checking $ac_header presence" >&5
5160 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
5161 +cat >conftest.$ac_ext <<_ACEOF
5164 +cat confdefs.h >>conftest.$ac_ext
5165 +cat >>conftest.$ac_ext <<_ACEOF
5166 +/* end confdefs.h. */
5167 +#include <$ac_header>
5169 +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
5170 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
5172 + grep -v '^ *+' conftest.er1 >conftest.err
5173 + rm -f conftest.er1
5174 + cat conftest.err >&5
5175 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5176 + (exit $ac_status); } >/dev/null; then
5177 + if test -s conftest.err; then
5178 + ac_cpp_err=$ac_c_preproc_warn_flag
5179 + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
5187 +if test -z "$ac_cpp_err"; then
5188 + ac_header_preproc=yes
5190 + echo "$as_me: failed program was:" >&5
5191 +sed 's/^/| /' conftest.$ac_ext >&5
5193 + ac_header_preproc=no
5195 +rm -f conftest.err conftest.$ac_ext
5196 +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
5197 +echo "${ECHO_T}$ac_header_preproc" >&6
5199 +# So? What about this header?
5200 +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
5202 + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
5203 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
5204 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
5205 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
5206 + ac_header_preproc=yes
5209 + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
5210 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
5211 + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
5212 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
5213 + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
5214 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
5215 + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
5216 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
5217 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
5218 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
5219 + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
5220 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
5223 +## ------------------------------------------ ##
5224 +## Report this to the AC_PACKAGE_NAME lists. ##
5225 +## ------------------------------------------ ##
5228 + sed "s/^/$as_me: WARNING: /" >&2
5231 +echo "$as_me:$LINENO: checking for $ac_header" >&5
5232 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
5233 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
5234 + echo $ECHO_N "(cached) $ECHO_C" >&6
5236 + eval "$as_ac_Header=\$ac_header_preproc"
5238 -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
5239 - echo "$ac_t""yes" 1>&6
5240 - ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
5241 - cat >> confdefs.h <<EOF
5242 -#define $ac_tr_hdr 1
5246 - echo "$ac_t""no" 1>&6
5247 -{ echo "configure: error: libnfsidmap needed for gss support" 1>&2; exit 1; }
5248 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
5249 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
5252 +if test `eval echo '${'$as_ac_Header'}'` = yes; then
5253 + cat >>confdefs.h <<_ACEOF
5254 +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
5258 + { { echo "$as_me:$LINENO: error: libnfsidmap needed for gss support" >&5
5259 +echo "$as_me: error: libnfsidmap needed for gss support" >&2;}
5260 + { (exit 1); exit 1; }; }
5266 - echo $ac_n "checking for Kerberos v5""... $ac_c" 1>&6
5267 -echo "configure:1818: checking for Kerberos v5" >&5
5268 - # Check whether --with-krb5 or --without-krb5 was given.
5270 + echo "$as_me:$LINENO: checking for Kerberos v5" >&5
5271 +echo $ECHO_N "checking for Kerberos v5... $ECHO_C" >&6
5273 +# Check whether --with-krb5 or --without-krb5 was given.
5274 if test "${with_krb5+set}" = set; then
5275 withval="$with_krb5"
5277 @@ -1825,13 +4216,12 @@ if test "${with_krb5+set}" = set; then
5279 krb5_with="$withval"
5288 - for dir in $krb5_with /usr/kerberos /usr/local /usr/local/krb5 /usr/krb5 \
5289 - /usr/heimdal /usr/local/heimdal /usr/athena /usr ; do
5290 + for dir in $krb5_with /usr /usr/kerberos /usr/local /usr/local/krb5 \
5291 + /usr/krb5 /usr/heimdal /usr/local/heimdal /usr/athena ; do
5293 if test -f $dir/bin/krb5-config; then
5294 K5CONFIG=$dir/bin/krb5-config
5295 @@ -1839,776 +4229,2232 @@ fi
5296 K5CONFIG="/usr/kerberos/bin/krb5-config"
5298 if test "$K5CONFIG" != ""; then
5299 + KRBINC=`$K5CONFIG --cflags`
5300 + KRBLIB=`$K5CONFIG --libs gssapi`
5301 + K5VERS=`$K5CONFIG --version | head -n 1 | awk '{split($4,v,"."); if (v[3] == "") v[3] = "0"; print v[1]v[2]v[3] }'`
5303 +cat >>confdefs.h <<_ACEOF
5304 +#define KRB5_VERSION $K5VERS
5307 if test -f $dir/include/gssapi/gssapi_krb5.h -a \
5308 \( -f $dir/lib/libgssapi_krb5.a -o \
5309 -f $dir/lib/libgssapi_krb5.so \) ; then
5310 - cat >> confdefs.h <<\EOF
5312 +cat >>confdefs.h <<\_ACEOF
5318 - K5VERS=`$K5CONFIG --version | awk '{split($4,v,"."); print v[1]v[2]v[3] }'`
5319 - cat >> confdefs.h <<EOF
5320 -#define KRB5_VERSION $K5VERS
5322 + if test $K5VERS -le 131; then
5324 - KRBLIB=`$K5CONFIG --libs gssapi`
5325 - if test $K5VERS -le 131; then
5326 - cat >> confdefs.h <<\EOF
5327 -#define USE_PRIVATE_KRB5_FUNCTIONS 1
5329 +cat >>confdefs.h <<\_ACEOF
5330 +#define USE_GSS_KRB5_CCACHE_NAME 1
5334 - echo $ac_n "checking for gss_krb5_export_lucid_sec_context in -lgssapi_krb5""... $ac_c" 1>&6
5335 -echo "configure:1864: checking for gss_krb5_export_lucid_sec_context in -lgssapi_krb5" >&5
5336 -ac_lib_var=`echo gssapi_krb5'_'gss_krb5_export_lucid_sec_context | sed 'y%./+-%__p_%'`
5337 -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
5338 - echo $ac_n "(cached) $ac_c" 1>&6
5340 - ac_save_LIBS="$LIBS"
5341 -LIBS="-lgssapi_krb5 $KRBLIB $LIBS"
5342 -cat > conftest.$ac_ext <<EOF
5343 -#line 1872 "configure"
5344 -#include "confdefs.h"
5345 + gssapi_lib=gssapi_krb5
5347 + elif test \( -f $dir/include/heim_err.h -o\
5348 + -f $dir/include/heimdal/heim_err.h \) -a \
5349 + -f $dir/lib/libroken.a; then
5351 +cat >>confdefs.h <<\_ACEOF
5352 +#define HAVE_HEIMDAL 1
5361 + if test "x$KRBDIR" = "x"; then
5362 + if test "x$krb5_with" = "x"; then
5363 + { { echo "$as_me:$LINENO: error: Kerberos v5 with GSS support not found: consider --disable-gss or --with-krb5=" >&5
5364 +echo "$as_me: error: Kerberos v5 with GSS support not found: consider --disable-gss or --with-krb5=" >&2;}
5365 + { (exit 1); exit 1; }; }
5367 + { { echo "$as_me:$LINENO: error: Kerberos v5 with GSS support not found at $krb5_with" >&5
5368 +echo "$as_me: error: Kerberos v5 with GSS support not found at $krb5_with" >&2;}
5369 + { (exit 1); exit 1; }; }
5372 + CFLAGS="$CFLAGS `$K5CONFIG --cflags`"
5373 + echo "$as_me:$LINENO: result: $KRBDIR" >&5
5374 +echo "${ECHO_T}$KRBDIR" >&6
5376 + as_ac_Lib=`echo "ac_cv_lib_$gssapi_lib''_gss_krb5_export_lucid_sec_context" | $as_tr_sh`
5377 +echo "$as_me:$LINENO: checking for gss_krb5_export_lucid_sec_context in -l$gssapi_lib" >&5
5378 +echo $ECHO_N "checking for gss_krb5_export_lucid_sec_context in -l$gssapi_lib... $ECHO_C" >&6
5379 +if eval "test \"\${$as_ac_Lib+set}\" = set"; then
5380 + echo $ECHO_N "(cached) $ECHO_C" >&6
5382 + ac_check_lib_save_LIBS=$LIBS
5383 +LIBS="-l$gssapi_lib $KRBLIB $LIBS"
5384 +cat >conftest.$ac_ext <<_ACEOF
5387 +cat confdefs.h >>conftest.$ac_ext
5388 +cat >>conftest.$ac_ext <<_ACEOF
5389 +/* end confdefs.h. */
5391 /* Override any gcc2 internal prototype to avoid an error. */
5395 /* We use char because int might match the return type of a gcc2
5396 - builtin and then its argument prototype would still apply. */
5397 -char gss_krb5_export_lucid_sec_context();
5398 + builtin and then its argument prototype would still apply. */
5399 +char gss_krb5_export_lucid_sec_context ();
5403 +gss_krb5_export_lucid_sec_context ();
5408 +rm -f conftest.$ac_objext conftest$ac_exeext
5409 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5410 + (eval $ac_link) 2>conftest.er1
5412 + grep -v '^ *+' conftest.er1 >conftest.err
5413 + rm -f conftest.er1
5414 + cat conftest.err >&5
5415 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5416 + (exit $ac_status); } &&
5417 + { ac_try='test -z "$ac_c_werror_flag"
5418 + || test ! -s conftest.err'
5419 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5420 + (eval $ac_try) 2>&5
5422 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5423 + (exit $ac_status); }; } &&
5424 + { ac_try='test -s conftest$ac_exeext'
5425 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5426 + (eval $ac_try) 2>&5
5428 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5429 + (exit $ac_status); }; }; then
5430 + eval "$as_ac_Lib=yes"
5432 + echo "$as_me: failed program was:" >&5
5433 +sed 's/^/| /' conftest.$ac_ext >&5
5435 +eval "$as_ac_Lib=no"
5437 +rm -f conftest.err conftest.$ac_objext \
5438 + conftest$ac_exeext conftest.$ac_ext
5439 +LIBS=$ac_check_lib_save_LIBS
5441 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Lib'}'`" >&5
5442 +echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
5443 +if test `eval echo '${'$as_ac_Lib'}'` = yes; then
5446 -gss_krb5_export_lucid_sec_context()
5449 -if { (eval echo configure:1883: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
5451 - eval "ac_cv_lib_$ac_lib_var=yes"
5453 - echo "configure: failed program was:" >&5
5454 - cat conftest.$ac_ext >&5
5456 - eval "ac_cv_lib_$ac_lib_var=no"
5459 -LIBS="$ac_save_LIBS"
5462 -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
5463 - echo "$ac_t""yes" 1>&6
5464 - cat >> confdefs.h <<\EOF
5465 +cat >>confdefs.h <<\_ACEOF
5466 #define HAVE_LUCID_CONTEXT_SUPPORT 1
5471 - echo "$ac_t""no" 1>&6
5474 - echo $ac_n "checking for gss_krb5_set_allowable_enctypes in -lgssapi_krb5""... $ac_c" 1>&6
5475 -echo "configure:1907: checking for gss_krb5_set_allowable_enctypes in -lgssapi_krb5" >&5
5476 -ac_lib_var=`echo gssapi_krb5'_'gss_krb5_set_allowable_enctypes | sed 'y%./+-%__p_%'`
5477 -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
5478 - echo $ac_n "(cached) $ac_c" 1>&6
5480 - ac_save_LIBS="$LIBS"
5481 -LIBS="-lgssapi_krb5 $KRBLIB $LIBS"
5482 -cat > conftest.$ac_ext <<EOF
5483 -#line 1915 "configure"
5484 -#include "confdefs.h"
5485 + as_ac_Lib=`echo "ac_cv_lib_$gssapi_lib''_gss_krb5_set_allowable_enctypes" | $as_tr_sh`
5486 +echo "$as_me:$LINENO: checking for gss_krb5_set_allowable_enctypes in -l$gssapi_lib" >&5
5487 +echo $ECHO_N "checking for gss_krb5_set_allowable_enctypes in -l$gssapi_lib... $ECHO_C" >&6
5488 +if eval "test \"\${$as_ac_Lib+set}\" = set"; then
5489 + echo $ECHO_N "(cached) $ECHO_C" >&6
5491 + ac_check_lib_save_LIBS=$LIBS
5492 +LIBS="-l$gssapi_lib $KRBLIB $LIBS"
5493 +cat >conftest.$ac_ext <<_ACEOF
5496 +cat confdefs.h >>conftest.$ac_ext
5497 +cat >>conftest.$ac_ext <<_ACEOF
5498 +/* end confdefs.h. */
5500 /* Override any gcc2 internal prototype to avoid an error. */
5504 /* We use char because int might match the return type of a gcc2
5505 - builtin and then its argument prototype would still apply. */
5506 -char gss_krb5_set_allowable_enctypes();
5507 + builtin and then its argument prototype would still apply. */
5508 +char gss_krb5_set_allowable_enctypes ();
5512 +gss_krb5_set_allowable_enctypes ();
5517 +rm -f conftest.$ac_objext conftest$ac_exeext
5518 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5519 + (eval $ac_link) 2>conftest.er1
5521 + grep -v '^ *+' conftest.er1 >conftest.err
5522 + rm -f conftest.er1
5523 + cat conftest.err >&5
5524 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5525 + (exit $ac_status); } &&
5526 + { ac_try='test -z "$ac_c_werror_flag"
5527 + || test ! -s conftest.err'
5528 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5529 + (eval $ac_try) 2>&5
5531 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5532 + (exit $ac_status); }; } &&
5533 + { ac_try='test -s conftest$ac_exeext'
5534 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5535 + (eval $ac_try) 2>&5
5537 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5538 + (exit $ac_status); }; }; then
5539 + eval "$as_ac_Lib=yes"
5541 + echo "$as_me: failed program was:" >&5
5542 +sed 's/^/| /' conftest.$ac_ext >&5
5544 +eval "$as_ac_Lib=no"
5546 +rm -f conftest.err conftest.$ac_objext \
5547 + conftest$ac_exeext conftest.$ac_ext
5548 +LIBS=$ac_check_lib_save_LIBS
5550 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Lib'}'`" >&5
5551 +echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
5552 +if test `eval echo '${'$as_ac_Lib'}'` = yes; then
5555 -gss_krb5_set_allowable_enctypes()
5558 -if { (eval echo configure:1926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
5560 - eval "ac_cv_lib_$ac_lib_var=yes"
5562 - echo "configure: failed program was:" >&5
5563 - cat conftest.$ac_ext >&5
5565 - eval "ac_cv_lib_$ac_lib_var=no"
5568 -LIBS="$ac_save_LIBS"
5571 -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
5572 - echo "$ac_t""yes" 1>&6
5573 - cat >> confdefs.h <<\EOF
5574 +cat >>confdefs.h <<\_ACEOF
5575 #define HAVE_SET_ALLOWABLE_ENCTYPES 1
5580 - echo "$ac_t""no" 1>&6
5583 - echo $ac_n "checking for gss_krb5_ccache_name in -lgssapi_krb5""... $ac_c" 1>&6
5584 -echo "configure:1950: checking for gss_krb5_ccache_name in -lgssapi_krb5" >&5
5585 -ac_lib_var=`echo gssapi_krb5'_'gss_krb5_ccache_name | sed 'y%./+-%__p_%'`
5586 -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
5587 - echo $ac_n "(cached) $ac_c" 1>&6
5589 - ac_save_LIBS="$LIBS"
5590 -LIBS="-lgssapi_krb5 $KRBLIB $LIBS"
5591 -cat > conftest.$ac_ext <<EOF
5592 -#line 1958 "configure"
5593 -#include "confdefs.h"
5594 + as_ac_Lib=`echo "ac_cv_lib_$gssapi_lib''_gss_krb5_ccache_name" | $as_tr_sh`
5595 +echo "$as_me:$LINENO: checking for gss_krb5_ccache_name in -l$gssapi_lib" >&5
5596 +echo $ECHO_N "checking for gss_krb5_ccache_name in -l$gssapi_lib... $ECHO_C" >&6
5597 +if eval "test \"\${$as_ac_Lib+set}\" = set"; then
5598 + echo $ECHO_N "(cached) $ECHO_C" >&6
5600 + ac_check_lib_save_LIBS=$LIBS
5601 +LIBS="-l$gssapi_lib $KRBLIB $LIBS"
5602 +cat >conftest.$ac_ext <<_ACEOF
5605 +cat confdefs.h >>conftest.$ac_ext
5606 +cat >>conftest.$ac_ext <<_ACEOF
5607 +/* end confdefs.h. */
5609 /* Override any gcc2 internal prototype to avoid an error. */
5613 /* We use char because int might match the return type of a gcc2
5614 - builtin and then its argument prototype would still apply. */
5615 -char gss_krb5_ccache_name();
5616 + builtin and then its argument prototype would still apply. */
5617 +char gss_krb5_ccache_name ();
5621 +gss_krb5_ccache_name ();
5626 +rm -f conftest.$ac_objext conftest$ac_exeext
5627 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5628 + (eval $ac_link) 2>conftest.er1
5630 + grep -v '^ *+' conftest.er1 >conftest.err
5631 + rm -f conftest.er1
5632 + cat conftest.err >&5
5633 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5634 + (exit $ac_status); } &&
5635 + { ac_try='test -z "$ac_c_werror_flag"
5636 + || test ! -s conftest.err'
5637 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5638 + (eval $ac_try) 2>&5
5640 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5641 + (exit $ac_status); }; } &&
5642 + { ac_try='test -s conftest$ac_exeext'
5643 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5644 + (eval $ac_try) 2>&5
5646 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5647 + (exit $ac_status); }; }; then
5648 + eval "$as_ac_Lib=yes"
5650 + echo "$as_me: failed program was:" >&5
5651 +sed 's/^/| /' conftest.$ac_ext >&5
5653 +eval "$as_ac_Lib=no"
5655 +rm -f conftest.err conftest.$ac_objext \
5656 + conftest$ac_exeext conftest.$ac_ext
5657 +LIBS=$ac_check_lib_save_LIBS
5659 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Lib'}'`" >&5
5660 +echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
5661 +if test `eval echo '${'$as_ac_Lib'}'` = yes; then
5664 -gss_krb5_ccache_name()
5667 -if { (eval echo configure:1969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
5669 - eval "ac_cv_lib_$ac_lib_var=yes"
5671 - echo "configure: failed program was:" >&5
5672 - cat conftest.$ac_ext >&5
5674 - eval "ac_cv_lib_$ac_lib_var=no"
5677 -LIBS="$ac_save_LIBS"
5680 -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
5681 - echo "$ac_t""yes" 1>&6
5682 - cat >> confdefs.h <<\EOF
5683 +cat >>confdefs.h <<\_ACEOF
5684 #define HAVE_GSS_KRB5_CCACHE_NAME 1
5689 - echo "$ac_t""no" 1>&6
5693 - elif test \( -f $dir/include/heim_err.h -o\
5694 - -f $dir/include/heimdal/heim_err.h \) -a \
5695 - -f $dir/lib/libroken.a; then
5696 - cat >> confdefs.h <<\EOF
5697 -#define HAVE_HEIMDAL 1
5701 - K5VERS=`$K5CONFIG --version | head -1 | awk '{split($2,v,"."); print v[1]v[2]v[3] }'`
5702 - cat >> confdefs.h <<EOF
5703 -#define KRB5_VERSION $K5VERS
5705 + if test "x$krb5_with" != "x" -a "$krb5_with" != "$KRBDIR"; then
5706 + { echo "$as_me:$LINENO: WARNING: Using $KRBDIR instead of requested value of $krb5_with for Kerberos!" >&5
5707 +echo "$as_me: WARNING: Using $KRBDIR instead of requested value of $krb5_with for Kerberos!" >&2;}
5710 + echo "$as_me:$LINENO: checking for authgss_create_default in -lrpcsecgss" >&5
5711 +echo $ECHO_N "checking for authgss_create_default in -lrpcsecgss... $ECHO_C" >&6
5712 +if test "${ac_cv_lib_rpcsecgss_authgss_create_default+set}" = set; then
5713 + echo $ECHO_N "(cached) $ECHO_C" >&6
5715 + ac_check_lib_save_LIBS=$LIBS
5716 +LIBS="-lrpcsecgss $KRBLIB $LIBS"
5717 +cat >conftest.$ac_ext <<_ACEOF
5720 +cat confdefs.h >>conftest.$ac_ext
5721 +cat >>conftest.$ac_ext <<_ACEOF
5722 +/* end confdefs.h. */
5724 - KRBLIB=`$K5CONFIG --libs gssapi`
5725 - echo $ac_n "checking for gss_krb5_export_lucid_sec_context in -lgssapi""... $ac_c" 1>&6
5726 -echo "configure:2008: checking for gss_krb5_export_lucid_sec_context in -lgssapi" >&5
5727 -ac_lib_var=`echo gssapi'_'gss_krb5_export_lucid_sec_context | sed 'y%./+-%__p_%'`
5728 -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
5729 - echo $ac_n "(cached) $ac_c" 1>&6
5731 - ac_save_LIBS="$LIBS"
5732 -LIBS="-lgssapi $KRBLIB $LIBS"
5733 -cat > conftest.$ac_ext <<EOF
5734 -#line 2016 "configure"
5735 -#include "confdefs.h"
5736 /* Override any gcc2 internal prototype to avoid an error. */
5740 /* We use char because int might match the return type of a gcc2
5741 - builtin and then its argument prototype would still apply. */
5742 -char gss_krb5_export_lucid_sec_context();
5743 + builtin and then its argument prototype would still apply. */
5744 +char authgss_create_default ();
5748 +authgss_create_default ();
5753 +rm -f conftest.$ac_objext conftest$ac_exeext
5754 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5755 + (eval $ac_link) 2>conftest.er1
5757 + grep -v '^ *+' conftest.er1 >conftest.err
5758 + rm -f conftest.er1
5759 + cat conftest.err >&5
5760 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5761 + (exit $ac_status); } &&
5762 + { ac_try='test -z "$ac_c_werror_flag"
5763 + || test ! -s conftest.err'
5764 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5765 + (eval $ac_try) 2>&5
5767 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5768 + (exit $ac_status); }; } &&
5769 + { ac_try='test -s conftest$ac_exeext'
5770 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5771 + (eval $ac_try) 2>&5
5773 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5774 + (exit $ac_status); }; }; then
5775 + ac_cv_lib_rpcsecgss_authgss_create_default=yes
5777 + echo "$as_me: failed program was:" >&5
5778 +sed 's/^/| /' conftest.$ac_ext >&5
5780 +ac_cv_lib_rpcsecgss_authgss_create_default=no
5782 +rm -f conftest.err conftest.$ac_objext \
5783 + conftest$ac_exeext conftest.$ac_ext
5784 +LIBS=$ac_check_lib_save_LIBS
5786 +echo "$as_me:$LINENO: result: $ac_cv_lib_rpcsecgss_authgss_create_default" >&5
5787 +echo "${ECHO_T}$ac_cv_lib_rpcsecgss_authgss_create_default" >&6
5788 +if test $ac_cv_lib_rpcsecgss_authgss_create_default = yes; then
5791 + { { echo "$as_me:$LINENO: error: librpcsecgss needed for nfsv4 support" >&5
5792 +echo "$as_me: error: librpcsecgss needed for nfsv4 support" >&2;}
5793 + { (exit 1); exit 1; }; }
5796 + echo "$as_me:$LINENO: checking for authgss_set_debug_level in -lrpcsecgss" >&5
5797 +echo $ECHO_N "checking for authgss_set_debug_level in -lrpcsecgss... $ECHO_C" >&6
5798 +if test "${ac_cv_lib_rpcsecgss_authgss_set_debug_level+set}" = set; then
5799 + echo $ECHO_N "(cached) $ECHO_C" >&6
5801 + ac_check_lib_save_LIBS=$LIBS
5802 +LIBS="-lrpcsecgss $KRBLIB $LIBS"
5803 +cat >conftest.$ac_ext <<_ACEOF
5806 +cat confdefs.h >>conftest.$ac_ext
5807 +cat >>conftest.$ac_ext <<_ACEOF
5808 +/* end confdefs.h. */
5811 -gss_krb5_export_lucid_sec_context()
5814 -if { (eval echo configure:2027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
5816 - eval "ac_cv_lib_$ac_lib_var=yes"
5818 - echo "configure: failed program was:" >&5
5819 - cat conftest.$ac_ext >&5
5821 - eval "ac_cv_lib_$ac_lib_var=no"
5822 +/* Override any gcc2 internal prototype to avoid an error. */
5826 +/* We use char because int might match the return type of a gcc2
5827 + builtin and then its argument prototype would still apply. */
5828 +char authgss_set_debug_level ();
5832 +authgss_set_debug_level ();
5837 +rm -f conftest.$ac_objext conftest$ac_exeext
5838 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5839 + (eval $ac_link) 2>conftest.er1
5841 + grep -v '^ *+' conftest.er1 >conftest.err
5842 + rm -f conftest.er1
5843 + cat conftest.err >&5
5844 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5845 + (exit $ac_status); } &&
5846 + { ac_try='test -z "$ac_c_werror_flag"
5847 + || test ! -s conftest.err'
5848 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5849 + (eval $ac_try) 2>&5
5851 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5852 + (exit $ac_status); }; } &&
5853 + { ac_try='test -s conftest$ac_exeext'
5854 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5855 + (eval $ac_try) 2>&5
5857 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5858 + (exit $ac_status); }; }; then
5859 + ac_cv_lib_rpcsecgss_authgss_set_debug_level=yes
5861 + echo "$as_me: failed program was:" >&5
5862 +sed 's/^/| /' conftest.$ac_ext >&5
5864 +ac_cv_lib_rpcsecgss_authgss_set_debug_level=no
5867 -LIBS="$ac_save_LIBS"
5868 +rm -f conftest.err conftest.$ac_objext \
5869 + conftest$ac_exeext conftest.$ac_ext
5870 +LIBS=$ac_check_lib_save_LIBS
5872 +echo "$as_me:$LINENO: result: $ac_cv_lib_rpcsecgss_authgss_set_debug_level" >&5
5873 +echo "${ECHO_T}$ac_cv_lib_rpcsecgss_authgss_set_debug_level" >&6
5874 +if test $ac_cv_lib_rpcsecgss_authgss_set_debug_level = yes; then
5876 +cat >>confdefs.h <<\_ACEOF
5877 +#define HAVE_AUTHGSS_SET_DEBUG_LEVEL 1
5881 -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
5882 - echo "$ac_t""yes" 1>&6
5883 - cat >> confdefs.h <<\EOF
5884 -#define HAVE_LUCID_CONTEXT_SUPPORT 1
5895 +for ac_header in com_err.h
5897 +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
5898 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
5899 + echo "$as_me:$LINENO: checking for $ac_header" >&5
5900 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
5901 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
5902 + echo $ECHO_N "(cached) $ECHO_C" >&6
5904 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
5905 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
5907 + # Is the header compilable?
5908 +echo "$as_me:$LINENO: checking $ac_header usability" >&5
5909 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
5910 +cat >conftest.$ac_ext <<_ACEOF
5913 +cat confdefs.h >>conftest.$ac_ext
5914 +cat >>conftest.$ac_ext <<_ACEOF
5915 +/* end confdefs.h. */
5916 +$ac_includes_default
5917 +#include <$ac_header>
5919 +rm -f conftest.$ac_objext
5920 +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5921 + (eval $ac_compile) 2>conftest.er1
5923 + grep -v '^ *+' conftest.er1 >conftest.err
5924 + rm -f conftest.er1
5925 + cat conftest.err >&5
5926 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5927 + (exit $ac_status); } &&
5928 + { ac_try='test -z "$ac_c_werror_flag"
5929 + || test ! -s conftest.err'
5930 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5931 + (eval $ac_try) 2>&5
5933 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5934 + (exit $ac_status); }; } &&
5935 + { ac_try='test -s conftest.$ac_objext'
5936 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5937 + (eval $ac_try) 2>&5
5939 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5940 + (exit $ac_status); }; }; then
5941 + ac_header_compiler=yes
5943 + echo "$as_me: failed program was:" >&5
5944 +sed 's/^/| /' conftest.$ac_ext >&5
5946 +ac_header_compiler=no
5948 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
5949 +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
5950 +echo "${ECHO_T}$ac_header_compiler" >&6
5952 +# Is the header present?
5953 +echo "$as_me:$LINENO: checking $ac_header presence" >&5
5954 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
5955 +cat >conftest.$ac_ext <<_ACEOF
5958 +cat confdefs.h >>conftest.$ac_ext
5959 +cat >>conftest.$ac_ext <<_ACEOF
5960 +/* end confdefs.h. */
5961 +#include <$ac_header>
5963 +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
5964 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
5966 + grep -v '^ *+' conftest.er1 >conftest.err
5967 + rm -f conftest.er1
5968 + cat conftest.err >&5
5969 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
5970 + (exit $ac_status); } >/dev/null; then
5971 + if test -s conftest.err; then
5972 + ac_cpp_err=$ac_c_preproc_warn_flag
5973 + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
5978 - echo "$ac_t""no" 1>&6
5981 +if test -z "$ac_cpp_err"; then
5982 + ac_header_preproc=yes
5984 + echo "$as_me: failed program was:" >&5
5985 +sed 's/^/| /' conftest.$ac_ext >&5
5987 - echo $ac_n "checking for gss_krb5_set_allowable_enctypes in -lgssapi""... $ac_c" 1>&6
5988 -echo "configure:2051: checking for gss_krb5_set_allowable_enctypes in -lgssapi" >&5
5989 -ac_lib_var=`echo gssapi'_'gss_krb5_set_allowable_enctypes | sed 'y%./+-%__p_%'`
5990 -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
5991 - echo $ac_n "(cached) $ac_c" 1>&6
5992 + ac_header_preproc=no
5994 +rm -f conftest.err conftest.$ac_ext
5995 +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
5996 +echo "${ECHO_T}$ac_header_preproc" >&6
5998 +# So? What about this header?
5999 +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
6001 + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
6002 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
6003 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
6004 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
6005 + ac_header_preproc=yes
6008 + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
6009 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
6010 + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
6011 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
6012 + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
6013 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
6014 + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
6015 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
6016 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
6017 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
6018 + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
6019 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
6022 +## ------------------------------------------ ##
6023 +## Report this to the AC_PACKAGE_NAME lists. ##
6024 +## ------------------------------------------ ##
6027 + sed "s/^/$as_me: WARNING: /" >&2
6030 +echo "$as_me:$LINENO: checking for $ac_header" >&5
6031 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
6032 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
6033 + echo $ECHO_N "(cached) $ECHO_C" >&6
6035 - ac_save_LIBS="$LIBS"
6036 -LIBS="-lgssapi $KRBLIB $LIBS"
6037 -cat > conftest.$ac_ext <<EOF
6038 -#line 2059 "configure"
6039 -#include "confdefs.h"
6040 -/* Override any gcc2 internal prototype to avoid an error. */
6041 -/* We use char because int might match the return type of a gcc2
6042 - builtin and then its argument prototype would still apply. */
6043 -char gss_krb5_set_allowable_enctypes();
6044 + eval "$as_ac_Header=\$ac_header_preproc"
6046 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
6047 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
6050 -gss_krb5_set_allowable_enctypes()
6053 -if { (eval echo configure:2070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
6055 - eval "ac_cv_lib_$ac_lib_var=yes"
6057 - echo "configure: failed program was:" >&5
6058 - cat conftest.$ac_ext >&5
6060 - eval "ac_cv_lib_$ac_lib_var=no"
6063 -LIBS="$ac_save_LIBS"
6064 +if test `eval echo '${'$as_ac_Header'}'` = yes; then
6065 + cat >>confdefs.h <<_ACEOF
6066 +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
6070 -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
6071 - echo "$ac_t""yes" 1>&6
6072 - cat >> confdefs.h <<\EOF
6073 -#define HAVE_SET_ALLOWABLE_ENCTYPES 1
6079 +for ac_header in et/com_err.h
6081 +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
6082 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
6083 + echo "$as_me:$LINENO: checking for $ac_header" >&5
6084 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
6085 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
6086 + echo $ECHO_N "(cached) $ECHO_C" >&6
6088 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
6089 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
6091 + # Is the header compilable?
6092 +echo "$as_me:$LINENO: checking $ac_header usability" >&5
6093 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
6094 +cat >conftest.$ac_ext <<_ACEOF
6097 +cat confdefs.h >>conftest.$ac_ext
6098 +cat >>conftest.$ac_ext <<_ACEOF
6099 +/* end confdefs.h. */
6100 +$ac_includes_default
6101 +#include <$ac_header>
6103 +rm -f conftest.$ac_objext
6104 +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6105 + (eval $ac_compile) 2>conftest.er1
6107 + grep -v '^ *+' conftest.er1 >conftest.err
6108 + rm -f conftest.er1
6109 + cat conftest.err >&5
6110 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
6111 + (exit $ac_status); } &&
6112 + { ac_try='test -z "$ac_c_werror_flag"
6113 + || test ! -s conftest.err'
6114 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6115 + (eval $ac_try) 2>&5
6117 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
6118 + (exit $ac_status); }; } &&
6119 + { ac_try='test -s conftest.$ac_objext'
6120 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6121 + (eval $ac_try) 2>&5
6123 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
6124 + (exit $ac_status); }; }; then
6125 + ac_header_compiler=yes
6127 + echo "$as_me: failed program was:" >&5
6128 +sed 's/^/| /' conftest.$ac_ext >&5
6130 +ac_header_compiler=no
6132 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
6133 +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
6134 +echo "${ECHO_T}$ac_header_compiler" >&6
6136 +# Is the header present?
6137 +echo "$as_me:$LINENO: checking $ac_header presence" >&5
6138 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
6139 +cat >conftest.$ac_ext <<_ACEOF
6142 +cat confdefs.h >>conftest.$ac_ext
6143 +cat >>conftest.$ac_ext <<_ACEOF
6144 +/* end confdefs.h. */
6145 +#include <$ac_header>
6147 +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
6148 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
6150 + grep -v '^ *+' conftest.er1 >conftest.err
6151 + rm -f conftest.er1
6152 + cat conftest.err >&5
6153 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
6154 + (exit $ac_status); } >/dev/null; then
6155 + if test -s conftest.err; then
6156 + ac_cpp_err=$ac_c_preproc_warn_flag
6157 + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
6162 - echo "$ac_t""no" 1>&6
6166 - echo $ac_n "checking for gss_krb5_ccache_name in -lgssapi""... $ac_c" 1>&6
6167 -echo "configure:2094: checking for gss_krb5_ccache_name in -lgssapi" >&5
6168 -ac_lib_var=`echo gssapi'_'gss_krb5_ccache_name | sed 'y%./+-%__p_%'`
6169 -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
6170 - echo $ac_n "(cached) $ac_c" 1>&6
6171 +if test -z "$ac_cpp_err"; then
6172 + ac_header_preproc=yes
6174 - ac_save_LIBS="$LIBS"
6175 -LIBS="-lgssapi $KRBLIB $LIBS"
6176 -cat > conftest.$ac_ext <<EOF
6177 -#line 2102 "configure"
6178 -#include "confdefs.h"
6179 -/* Override any gcc2 internal prototype to avoid an error. */
6180 -/* We use char because int might match the return type of a gcc2
6181 - builtin and then its argument prototype would still apply. */
6182 -char gss_krb5_ccache_name();
6183 + echo "$as_me: failed program was:" >&5
6184 +sed 's/^/| /' conftest.$ac_ext >&5
6187 -gss_krb5_ccache_name()
6190 -if { (eval echo configure:2113: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
6192 - eval "ac_cv_lib_$ac_lib_var=yes"
6194 - echo "configure: failed program was:" >&5
6195 - cat conftest.$ac_ext >&5
6197 - eval "ac_cv_lib_$ac_lib_var=no"
6198 + ac_header_preproc=no
6200 +rm -f conftest.err conftest.$ac_ext
6201 +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
6202 +echo "${ECHO_T}$ac_header_preproc" >&6
6204 +# So? What about this header?
6205 +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
6207 + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
6208 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
6209 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
6210 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
6211 + ac_header_preproc=yes
6214 + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
6215 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
6216 + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
6217 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
6218 + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
6219 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
6220 + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
6221 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
6222 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
6223 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
6224 + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
6225 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
6228 +## ------------------------------------------ ##
6229 +## Report this to the AC_PACKAGE_NAME lists. ##
6230 +## ------------------------------------------ ##
6233 + sed "s/^/$as_me: WARNING: /" >&2
6236 +echo "$as_me:$LINENO: checking for $ac_header" >&5
6237 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
6238 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
6239 + echo $ECHO_N "(cached) $ECHO_C" >&6
6241 + eval "$as_ac_Header=\$ac_header_preproc"
6244 -LIBS="$ac_save_LIBS"
6245 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
6246 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
6249 -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
6250 - echo "$ac_t""yes" 1>&6
6251 - cat >> confdefs.h <<\EOF
6252 -#define HAVE_GSS_KRB5_CCACHE_NAME 1
6254 +if test `eval echo '${'$as_ac_Header'}'` = yes; then
6255 + cat >>confdefs.h <<_ACEOF
6256 +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
6260 - echo "$ac_t""no" 1>&6
6265 - CFLAGS=$CFLAGS `K5CONFIG --cflags`
6268 - if test "x$KRBDIR" = "x"; then
6269 - echo "$ac_t"""no"" 1>&6
6270 - if test "x$krb5_with" = "x"; then
6271 - { echo "configure: error: Kerberos v5 with GSS support not found: consider --disable-gss or --with-krb5=" 1>&2; exit 1; }
6273 - { echo "configure: error: Kerberos v5 with GSS support not found at $krb5_with" 1>&2; exit 1; }
6276 - echo "$ac_t""$KRBDIR" 1>&6
6277 - if test "x$krb5_with" != "x" -a "$krb5_with" != "$KRBDIR"; then
6278 - echo "configure: warning: Using $KRBDIR instead of requested value of $krb5_with for Kerberos!" 1>&2
6288 for ac_func in innetgr
6290 -echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
6291 -echo "configure:2163: checking for $ac_func" >&5
6292 -if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
6293 - echo $ac_n "(cached) $ac_c" 1>&6
6295 - cat > conftest.$ac_ext <<EOF
6296 -#line 2168 "configure"
6297 -#include "confdefs.h"
6298 +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
6299 +echo "$as_me:$LINENO: checking for $ac_func" >&5
6300 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
6301 +if eval "test \"\${$as_ac_var+set}\" = set"; then
6302 + echo $ECHO_N "(cached) $ECHO_C" >&6
6304 + cat >conftest.$ac_ext <<_ACEOF
6307 +cat confdefs.h >>conftest.$ac_ext
6308 +cat >>conftest.$ac_ext <<_ACEOF
6309 +/* end confdefs.h. */
6310 +/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
6311 + For example, HP-UX 11i <limits.h> declares gettimeofday. */
6312 +#define $ac_func innocuous_$ac_func
6314 /* System header to define __stub macros and hopefully few prototypes,
6315 - which can conflict with char $ac_func(); below. */
6316 -#include <assert.h>
6317 -/* Override any gcc2 internal prototype to avoid an error. */
6318 -/* We use char because int might match the return type of a gcc2
6319 - builtin and then its argument prototype would still apply. */
6321 + which can conflict with char $ac_func (); below.
6322 + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
6323 + <limits.h> exists even on freestanding compilers. */
6327 +# include <limits.h>
6329 +# include <assert.h>
6334 +/* Override any gcc2 internal prototype to avoid an error. */
6339 +/* We use char because int might match the return type of a gcc2
6340 + builtin and then its argument prototype would still apply. */
6342 /* The GNU C library defines this for functions which it implements
6343 to always fail with ENOSYS. Some functions are actually named
6344 something starting with __ and the normal name is an alias. */
6345 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
6349 +char (*f) () = $ac_func;
6357 -if { (eval echo configure:2191: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
6359 - eval "ac_cv_func_$ac_func=yes"
6361 - echo "configure: failed program was:" >&5
6362 - cat conftest.$ac_ext >&5
6364 - eval "ac_cv_func_$ac_func=no"
6371 +return f != $ac_func;
6376 +rm -f conftest.$ac_objext conftest$ac_exeext
6377 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6378 + (eval $ac_link) 2>conftest.er1
6380 + grep -v '^ *+' conftest.er1 >conftest.err
6381 + rm -f conftest.er1
6382 + cat conftest.err >&5
6383 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
6384 + (exit $ac_status); } &&
6385 + { ac_try='test -z "$ac_c_werror_flag"
6386 + || test ! -s conftest.err'
6387 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6388 + (eval $ac_try) 2>&5
6390 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
6391 + (exit $ac_status); }; } &&
6392 + { ac_try='test -s conftest$ac_exeext'
6393 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6394 + (eval $ac_try) 2>&5
6396 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
6397 + (exit $ac_status); }; }; then
6398 + eval "$as_ac_var=yes"
6400 + echo "$as_me: failed program was:" >&5
6401 +sed 's/^/| /' conftest.$ac_ext >&5
6403 +eval "$as_ac_var=no"
6405 +rm -f conftest.err conftest.$ac_objext \
6406 + conftest$ac_exeext conftest.$ac_ext
6408 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
6409 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
6410 +if test `eval echo '${'$as_ac_var'}'` = yes; then
6411 + cat >>confdefs.h <<_ACEOF
6412 +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
6415 -if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
6416 - echo "$ac_t""yes" 1>&6
6417 - ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6418 - cat >> confdefs.h <<EOF
6419 -#define $ac_tr_func 1
6423 - echo "$ac_t""no" 1>&6
6428 -cat >> confdefs.h <<EOF
6429 + echo "$as_me:$LINENO: checking size of short" >&5
6430 +echo $ECHO_N "checking size of short... $ECHO_C" >&6
6431 + if test "${ac_cv_sizeof_short+set}" = set; then
6432 + echo $ECHO_N "(cached) $ECHO_C" >&6
6434 + if test "$cross_compiling" = yes; then
6435 + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
6436 +See \`config.log' for more details." >&5
6437 +echo "$as_me: error: cannot run test program while cross compiling
6438 +See \`config.log' for more details." >&2;}
6439 + { (exit 1); exit 1; }; }
6441 + cat >conftest.$ac_ext <<_ACEOF
6444 +cat confdefs.h >>conftest.$ac_ext
6445 +cat >>conftest.$ac_ext <<_ACEOF
6446 +/* end confdefs.h. */
6448 + #include <sys/types.h>
6451 + FILE *f=fopen("conftestval", "w");
6453 + fprintf(f, "%d\n", sizeof(short));
6457 +rm -f conftest$ac_exeext
6458 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6459 + (eval $ac_link) 2>&5
6461 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
6462 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
6463 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6464 + (eval $ac_try) 2>&5
6466 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
6467 + (exit $ac_status); }; }; then
6468 + ac_cv_sizeof_short=`cat conftestval`
6470 + echo "$as_me: program exited with status $ac_status" >&5
6471 +echo "$as_me: failed program was:" >&5
6472 +sed 's/^/| /' conftest.$ac_ext >&5
6474 +( exit $ac_status )
6475 +ac_cv_sizeof_short=0
6477 +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
6481 + echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5
6482 +echo "${ECHO_T}$ac_cv_sizeof_short" >&6
6483 + cat >>confdefs.h <<_ACEOF
6484 +#define SIZEOF_SHORT $ac_cv_sizeof_short
6488 + echo "$as_me:$LINENO: checking size of int" >&5
6489 +echo $ECHO_N "checking size of int... $ECHO_C" >&6
6490 + if test "${ac_cv_sizeof_int+set}" = set; then
6491 + echo $ECHO_N "(cached) $ECHO_C" >&6
6493 + if test "$cross_compiling" = yes; then
6494 + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
6495 +See \`config.log' for more details." >&5
6496 +echo "$as_me: error: cannot run test program while cross compiling
6497 +See \`config.log' for more details." >&2;}
6498 + { (exit 1); exit 1; }; }
6500 + cat >conftest.$ac_ext <<_ACEOF
6503 +cat confdefs.h >>conftest.$ac_ext
6504 +cat >>conftest.$ac_ext <<_ACEOF
6505 +/* end confdefs.h. */
6507 + #include <sys/types.h>
6510 + FILE *f=fopen("conftestval", "w");
6512 + fprintf(f, "%d\n", sizeof(int));
6516 +rm -f conftest$ac_exeext
6517 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6518 + (eval $ac_link) 2>&5
6520 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
6521 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
6522 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6523 + (eval $ac_try) 2>&5
6525 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
6526 + (exit $ac_status); }; }; then
6527 + ac_cv_sizeof_int=`cat conftestval`
6529 + echo "$as_me: program exited with status $ac_status" >&5
6530 +echo "$as_me: failed program was:" >&5
6531 +sed 's/^/| /' conftest.$ac_ext >&5
6533 +( exit $ac_status )
6536 +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
6540 + echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5
6541 +echo "${ECHO_T}$ac_cv_sizeof_int" >&6
6542 + cat >>confdefs.h <<_ACEOF
6543 +#define SIZEOF_INT $ac_cv_sizeof_int
6547 + echo "$as_me:$LINENO: checking size of long" >&5
6548 +echo $ECHO_N "checking size of long... $ECHO_C" >&6
6549 + if test "${ac_cv_sizeof_long+set}" = set; then
6550 + echo $ECHO_N "(cached) $ECHO_C" >&6
6552 + if test "$cross_compiling" = yes; then
6553 + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
6554 +See \`config.log' for more details." >&5
6555 +echo "$as_me: error: cannot run test program while cross compiling
6556 +See \`config.log' for more details." >&2;}
6557 + { (exit 1); exit 1; }; }
6559 + cat >conftest.$ac_ext <<_ACEOF
6562 +cat confdefs.h >>conftest.$ac_ext
6563 +cat >>conftest.$ac_ext <<_ACEOF
6564 +/* end confdefs.h. */
6566 + #include <sys/types.h>
6569 + FILE *f=fopen("conftestval", "w");
6571 + fprintf(f, "%d\n", sizeof(long));
6575 +rm -f conftest$ac_exeext
6576 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6577 + (eval $ac_link) 2>&5
6579 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
6580 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
6581 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6582 + (eval $ac_try) 2>&5
6584 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
6585 + (exit $ac_status); }; }; then
6586 + ac_cv_sizeof_long=`cat conftestval`
6588 + echo "$as_me: program exited with status $ac_status" >&5
6589 +echo "$as_me: failed program was:" >&5
6590 +sed 's/^/| /' conftest.$ac_ext >&5
6592 +( exit $ac_status )
6593 +ac_cv_sizeof_long=0
6595 +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
6599 + echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5
6600 +echo "${ECHO_T}$ac_cv_sizeof_long" >&6
6601 + cat >>confdefs.h <<_ACEOF
6602 +#define SIZEOF_LONG $ac_cv_sizeof_long
6606 + echo "$as_me:$LINENO: checking size of size_t" >&5
6607 +echo $ECHO_N "checking size of size_t... $ECHO_C" >&6
6608 + if test "${ac_cv_sizeof_size_t+set}" = set; then
6609 + echo $ECHO_N "(cached) $ECHO_C" >&6
6611 + if test "$cross_compiling" = yes; then
6612 + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
6613 +See \`config.log' for more details." >&5
6614 +echo "$as_me: error: cannot run test program while cross compiling
6615 +See \`config.log' for more details." >&2;}
6616 + { (exit 1); exit 1; }; }
6618 + cat >conftest.$ac_ext <<_ACEOF
6621 +cat confdefs.h >>conftest.$ac_ext
6622 +cat >>conftest.$ac_ext <<_ACEOF
6623 +/* end confdefs.h. */
6625 + #include <sys/types.h>
6628 + FILE *f=fopen("conftestval", "w");
6630 + fprintf(f, "%d\n", sizeof(size_t));
6634 +rm -f conftest$ac_exeext
6635 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6636 + (eval $ac_link) 2>&5
6638 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
6639 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
6640 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6641 + (eval $ac_try) 2>&5
6643 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
6644 + (exit $ac_status); }; }; then
6645 + ac_cv_sizeof_size_t=`cat conftestval`
6647 + echo "$as_me: program exited with status $ac_status" >&5
6648 +echo "$as_me: failed program was:" >&5
6649 +sed 's/^/| /' conftest.$ac_ext >&5
6651 +( exit $ac_status )
6652 +ac_cv_sizeof_size_t=0
6654 +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
6658 + echo "$as_me:$LINENO: result: $ac_cv_sizeof_size_t" >&5
6659 +echo "${ECHO_T}$ac_cv_sizeof_size_t" >&6
6660 + cat >>confdefs.h <<_ACEOF
6661 +#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t
6667 +cat >>confdefs.h <<_ACEOF
6668 #define NFS_STATEDIR "$statedir"
6677 -cat > confcache <<\EOF
6678 + ac_config_files="$ac_config_files config.mk utils/Makefile"
6679 +cat >confcache <<\_ACEOF
6680 # This file is a shell script that caches the results of configure
6681 # tests run on this system so they can be shared between configure
6682 -# scripts and configure runs. It is not useful on other systems.
6683 -# If it contains results you don't want to keep, you may remove or edit it.
6684 +# scripts and configure runs, see configure's option --config-cache.
6685 +# It is not useful on other systems. If it contains results you don't
6686 +# want to keep, you may remove or edit it.
6688 -# By default, configure uses ./config.cache as the cache file,
6689 -# creating it if it does not exist already. You can give configure
6690 -# the --cache-file=FILE option to use a different cache file; that is
6691 -# what configure does when it calls configure scripts in
6692 -# subdirectories, so they share the cache.
6693 -# Giving --cache-file=/dev/null disables caching, for debugging configure.
6694 -# config.status only pays attention to the cache file if you give it the
6695 -# --recheck option to rerun configure.
6696 +# config.status only pays attention to the cache file if you give it
6697 +# the --recheck option to rerun configure.
6700 +# `ac_cv_env_foo' variables (set or unset) will be overridden when
6701 +# loading this file, other *unset* `ac_cv_foo' will be assigned the
6702 +# following values.
6706 # The following way of writing the cache mishandles newlines in values,
6707 # but we know of no workaround that is simple, portable, and efficient.
6708 # So, don't put newlines in cache variables' values.
6709 # Ultrix sh set writes to stderr and can't be redirected directly,
6710 # and sets the high bit in the cache file unless we assign to the vars.
6712 - case `(ac_space=' '; set | grep ac_space) 2>&1` in
6714 - # `set' does not quote correctly, so add quotes (double-quote substitution
6715 - # turns \\\\ into \\, and sed turns \\ into \).
6717 - -e "s/'/'\\\\''/g" \
6718 - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
6721 - # `set' quotes correctly as required by POSIX, so do not add quotes.
6722 - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
6725 -if cmp -s $cache_file confcache; then
6730 + case `(ac_space=' '; set | grep ac_space) 2>&1` in
6732 + # `set' does not quote correctly, so add quotes (double-quote
6733 + # substitution turns \\\\ into \\, and sed turns \\ into \).
6736 + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
6739 + # `set' quotes correctly as required by POSIX, so do not add quotes.
6741 + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
6748 + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
6750 + /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
6751 + : end' >>confcache
6752 +if diff $cache_file confcache >/dev/null 2>&1; then :; else
6753 if test -w $cache_file; then
6754 - echo "updating cache $cache_file"
6755 - cat confcache > $cache_file
6756 + test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
6757 + cat confcache >$cache_file
6759 echo "not updating unwritable cache $cache_file"
6764 -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
6766 test "x$prefix" = xNONE && prefix=$ac_default_prefix
6767 # Let make expand exec_prefix.
6768 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
6770 -# Any assignment to VPATH causes Sun make to only execute
6771 -# the first set of double-colon rules, so remove it if not needed.
6772 -# If there is a colon in the path, we need to keep it.
6773 +# VPATH may cause trouble with some makes, so we remove $(srcdir),
6774 +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
6775 +# trailing colons and then remove the whole line if VPATH becomes empty
6776 +# (actually we leave an empty line to preserve line numbers).
6777 if test "x$srcdir" = x.; then
6778 - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
6779 + ac_vpsub='/^[ ]*VPATH[ ]*=/{
6780 +s/:*\$(srcdir):*/:/;
6781 +s/:*\${srcdir}:*/:/;
6783 +s/^\([^=]*=[ ]*\):*/\1/;
6789 -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
6791 DEFS=-DHAVE_CONFIG_H
6793 -# Without the "./", some shells look in PATH for config.status.
6794 -: ${CONFIG_STATUS=./config.status}
6797 +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
6798 + # 1. Remove the extension, and $U if already installed.
6799 + ac_i=`echo "$ac_i" |
6800 + sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
6802 + ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
6803 + ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
6805 +LIBOBJS=$ac_libobjs
6807 -echo creating $CONFIG_STATUS
6808 -rm -f $CONFIG_STATUS
6809 -cat > $CONFIG_STATUS <<EOF
6811 -# Generated automatically by configure.
6812 +LTLIBOBJS=$ac_ltlibobjs
6816 +: ${CONFIG_STATUS=./config.status}
6817 +ac_clean_files_save=$ac_clean_files
6818 +ac_clean_files="$ac_clean_files $CONFIG_STATUS"
6819 +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
6820 +echo "$as_me: creating $CONFIG_STATUS" >&6;}
6821 +cat >$CONFIG_STATUS <<_ACEOF
6823 +# Generated by $as_me.
6824 # Run this file to recreate the current configuration.
6825 -# This directory was configured as follows,
6826 -# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
6828 -# $0 $ac_configure_args
6830 # Compiler output produced by configure, useful for debugging
6831 -# configure, is in ./config.log if it exists.
6832 +# configure, is in config.log if it exists.
6834 -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
6837 +ac_cs_recheck=false
6839 +SHELL=\${CONFIG_SHELL-$SHELL}
6842 +cat >>$CONFIG_STATUS <<\_ACEOF
6843 +## --------------------- ##
6844 +## M4sh Initialization. ##
6845 +## --------------------- ##
6847 +# Be Bourne compatible
6848 +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
6851 + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
6852 + # is contrary to our usage. Disable this feature.
6853 + alias -g '${1+"$@"}'='"$@"'
6854 +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
6857 +DUALCASE=1; export DUALCASE # for MKS sh
6859 +# Support unset when possible.
6860 +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
6867 +# Work around bugs in pre-3.0 UWIN ksh.
6868 +$as_unset ENV MAIL MAILPATH
6875 + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
6876 + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
6877 + LC_TELEPHONE LC_TIME
6879 + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
6880 + eval $as_var=C; export $as_var
6886 +# Required to use basename.
6887 +if expr a : '\(a\)' >/dev/null 2>&1; then
6893 +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
6894 + as_basename=basename
6900 +# Name of the executable.
6901 +as_me=`$as_basename "$0" ||
6902 +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
6903 + X"$0" : 'X\(//\)$' \| \
6904 + X"$0" : 'X\(/\)$' \| \
6905 + . : '\(.\)' 2>/dev/null ||
6907 + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
6908 + /^X\/\(\/\/\)$/{ s//\1/; q; }
6909 + /^X\/\(\/\).*/{ s//\1/; q; }
6913 +# PATH needs CR, and LINENO needs CR and PATH.
6914 +# Avoid depending upon Character Ranges.
6915 +as_cr_letters='abcdefghijklmnopqrstuvwxyz'
6916 +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
6917 +as_cr_Letters=$as_cr_letters$as_cr_LETTERS
6918 +as_cr_digits='0123456789'
6919 +as_cr_alnum=$as_cr_Letters$as_cr_digits
6921 +# The user is always right.
6922 +if test "${PATH_SEPARATOR+set}" != set; then
6923 + echo "#! /bin/sh" >conf$$.sh
6924 + echo "exit 0" >>conf$$.sh
6925 + chmod +x conf$$.sh
6926 + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
6927 + PATH_SEPARATOR=';'
6935 + as_lineno_1=$LINENO
6936 + as_lineno_2=$LINENO
6937 + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
6938 + test "x$as_lineno_1" != "x$as_lineno_2" &&
6939 + test "x$as_lineno_3" = "x$as_lineno_2" || {
6940 + # Find who we are. Look in the path if we contain no path at all
6941 + # relative or not.
6943 + *[\\/]* ) as_myself=$0 ;;
6944 + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6945 +for as_dir in $PATH
6948 + test -z "$as_dir" && as_dir=.
6949 + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
6954 + # We did not find ourselves, most probably we were run as `sh COMMAND'
6955 + # in which case we are not to be found in the path.
6956 + if test "x$as_myself" = x; then
6959 + if test ! -f "$as_myself"; then
6960 + { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
6961 +echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
6962 + { (exit 1); exit 1; }; }
6964 + case $CONFIG_SHELL in
6966 + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6967 +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
6970 + test -z "$as_dir" && as_dir=.
6971 + for as_base in sh bash ksh sh5; do
6974 + if ("$as_dir/$as_base" -c '
6975 + as_lineno_1=$LINENO
6976 + as_lineno_2=$LINENO
6977 + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
6978 + test "x$as_lineno_1" != "x$as_lineno_2" &&
6979 + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
6980 + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
6981 + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
6982 + CONFIG_SHELL=$as_dir/$as_base
6983 + export CONFIG_SHELL
6984 + exec "$CONFIG_SHELL" "$0" ${1+"$@"}
6992 + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
6993 + # uniformly replaced by the line number. The first 'sed' inserts a
6994 + # line-number line before each line; the second 'sed' does the real
6995 + # work. The second script uses 'N' to pair each line-number line
6996 + # with the numbered line, and appends trailing '-' during
6997 + # substitution so that $LINENO is not a special case at line end.
6998 + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
6999 + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
7000 + sed '=' <$as_myself |
7005 + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
7008 + s,^['$as_cr_digits']*\n,,
7009 + ' >$as_me.lineno &&
7010 + chmod +x $as_me.lineno ||
7011 + { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
7012 +echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
7013 + { (exit 1); exit 1; }; }
7015 + # Don't try to exec as it changes $[0], causing all sort of problems
7016 + # (the dirname of $[0] is not the place where we might find the
7017 + # original and so on. Autoconf is especially sensible to this).
7019 + # Exit status is that of the last command.
7024 +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
7025 + *c*,-n*) ECHO_N= ECHO_C='
7027 + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
7028 + *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
7031 +if expr a : '\(a\)' >/dev/null 2>&1; then
7037 +rm -f conf$$ conf$$.exe conf$$.file
7039 +if ln -s conf$$.file conf$$ 2>/dev/null; then
7040 + # We could just check for DJGPP; but this test a) works b) is more generic
7041 + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
7042 + if test -f conf$$.exe; then
7043 + # Don't use ln at all; we don't have any links
7048 +elif ln conf$$.file conf$$ 2>/dev/null; then
7053 +rm -f conf$$ conf$$.exe conf$$.file
7055 +if mkdir -p . 2>/dev/null; then
7058 + test -d ./-p && rmdir ./-p
7062 +as_executable_p="test -f"
7064 +# Sed expression to map a string onto a valid CPP name.
7065 +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
7067 +# Sed expression to map a string onto a valid variable name.
7068 +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
7072 +# We need space, tab and new line, in precisely that order.
7082 +# Open the log real soon, to keep \$[0] and so on meaningful, and to
7083 +# report actual input values of CONFIG_FILES etc. instead of their
7084 +# values after options handling. Logging --version etc. is OK.
7088 + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
7089 +## Running $as_me. ##
7094 +This file was extended by $as_me, which was
7095 +generated by GNU Autoconf 2.59. Invocation command line was
7097 + CONFIG_FILES = $CONFIG_FILES
7098 + CONFIG_HEADERS = $CONFIG_HEADERS
7099 + CONFIG_LINKS = $CONFIG_LINKS
7100 + CONFIG_COMMANDS = $CONFIG_COMMANDS
7104 +echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
7108 +# Files that config.status was made for.
7109 +if test -n "$ac_config_files"; then
7110 + echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
7113 +if test -n "$ac_config_headers"; then
7114 + echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
7117 +if test -n "$ac_config_links"; then
7118 + echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
7121 +if test -n "$ac_config_commands"; then
7122 + echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
7125 +cat >>$CONFIG_STATUS <<\_ACEOF
7128 +\`$as_me' instantiates files from templates according to the
7129 +current configuration.
7131 +Usage: $0 [OPTIONS] [FILE]...
7133 + -h, --help print this help, then exit
7134 + -V, --version print version number, then exit
7135 + -q, --quiet do not print progress messages
7136 + -d, --debug don't remove temporary files
7137 + --recheck update $as_me by reconfiguring in the same conditions
7138 + --file=FILE[:TEMPLATE]
7139 + instantiate the configuration file FILE
7140 + --header=FILE[:TEMPLATE]
7141 + instantiate the configuration header FILE
7143 +Configuration files:
7146 +Configuration headers:
7149 +Report bugs to <bug-autoconf@gnu.org>."
7152 +cat >>$CONFIG_STATUS <<_ACEOF
7155 +configured by $0, generated by GNU Autoconf 2.59,
7156 + with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
7158 +Copyright (C) 2003 Free Software Foundation, Inc.
7159 +This config.status script is free software; the Free Software Foundation
7160 +gives unlimited permission to copy, distribute and modify it."
7165 +cat >>$CONFIG_STATUS <<\_ACEOF
7166 +# If no file are specified by the user, then we need to provide default
7167 +# value. By we need to know if files were specified by the user.
7171 - case "\$ac_option" in
7174 + ac_option=`expr "x$1" : 'x\([^=]*\)='`
7175 + ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
7183 + *) # This is not an option, so the user has probably given explicit
7186 + ac_need_defaults=false;;
7189 + case $ac_option in
7190 + # Handling of the options.
7192 +cat >>$CONFIG_STATUS <<\_ACEOF
7193 -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
7194 - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
7195 - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
7196 - -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
7197 - echo "$CONFIG_STATUS generated by autoconf version 2.13"
7199 - -help | --help | --hel | --he | --h)
7200 - echo "\$ac_cs_usage"; exit 0 ;;
7201 - *) echo "\$ac_cs_usage"; exit 1 ;;
7202 + ac_cs_recheck=: ;;
7203 + --version | --vers* | -V )
7204 + echo "$ac_cs_version"; exit 0 ;;
7206 + # Conflict between --help and --header
7207 + { { echo "$as_me:$LINENO: error: ambiguous option: $1
7208 +Try \`$0 --help' for more information." >&5
7209 +echo "$as_me: error: ambiguous option: $1
7210 +Try \`$0 --help' for more information." >&2;}
7211 + { (exit 1); exit 1; }; };;
7212 + --help | --hel | -h )
7213 + echo "$ac_cs_usage"; exit 0 ;;
7214 + --debug | --d* | -d )
7216 + --file | --fil | --fi | --f )
7218 + CONFIG_FILES="$CONFIG_FILES $ac_optarg"
7219 + ac_need_defaults=false;;
7220 + --header | --heade | --head | --hea )
7222 + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
7223 + ac_need_defaults=false;;
7224 + -q | -quiet | --quiet | --quie | --qui | --qu | --q \
7225 + | -silent | --silent | --silen | --sile | --sil | --si | --s)
7228 + # This is an error.
7229 + -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
7230 +Try \`$0 --help' for more information." >&5
7231 +echo "$as_me: error: unrecognized option: $1
7232 +Try \`$0 --help' for more information." >&2;}
7233 + { (exit 1); exit 1; }; } ;;
7235 + *) ac_config_targets="$ac_config_targets $1" ;;
7241 -ac_given_srcdir=$srcdir
7242 -ac_given_INSTALL="$INSTALL"
7243 +ac_configure_extra_args=
7245 -trap 'rm -fr `echo "config.mk utils/Makefile support/include/config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
7247 -cat >> $CONFIG_STATUS <<EOF
7249 -# Protect against being on the right side of a sed subst in config.status.
7250 -sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
7251 - s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
7255 -s%@CFLAGS@%$CFLAGS%g
7256 -s%@CPPFLAGS@%$CPPFLAGS%g
7257 -s%@CXXFLAGS@%$CXXFLAGS%g
7258 -s%@FFLAGS@%$FFLAGS%g
7260 -s%@LDFLAGS@%$LDFLAGS%g
7262 -s%@exec_prefix@%$exec_prefix%g
7263 -s%@prefix@%$prefix%g
7264 -s%@program_transform_name@%$program_transform_name%g
7265 -s%@bindir@%$bindir%g
7266 -s%@sbindir@%$sbindir%g
7267 -s%@libexecdir@%$libexecdir%g
7268 -s%@datadir@%$datadir%g
7269 -s%@sysconfdir@%$sysconfdir%g
7270 -s%@sharedstatedir@%$sharedstatedir%g
7271 -s%@localstatedir@%$localstatedir%g
7272 -s%@libdir@%$libdir%g
7273 -s%@includedir@%$includedir%g
7274 -s%@oldincludedir@%$oldincludedir%g
7275 -s%@infodir@%$infodir%g
7276 -s%@mandir@%$mandir%g
7277 -s%@VERSION@%$VERSION%g
7278 -s%@RELEASE@%$RELEASE%g
7279 -s%@statedir@%$statedir%g
7280 -s%@statduser@%$statduser%g
7281 -s%@enable_nfsv3@%$enable_nfsv3%g
7282 -s%@IDMAPD@%$IDMAPD%g
7283 -s%@enable_nfsv4@%$enable_nfsv4%g
7285 -s%@SVCGSSD@%$SVCGSSD%g
7286 -s%@enable_gss@%$enable_gss%g
7287 -s%@kprefix@%$kprefix%g
7288 -s%@secure_statd@%$secure_statd%g
7289 -s%@RQUOTAD@%$RQUOTAD%g
7292 -s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
7293 -s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
7294 -s%@INSTALL_DATA@%$INSTALL_DATA%g
7295 -s%@CC_FOR_BUILD@%$CC_FOR_BUILD%g
7297 -s%@host_alias@%$host_alias%g
7298 -s%@host_cpu@%$host_cpu%g
7299 -s%@host_vendor@%$host_vendor%g
7300 -s%@host_os@%$host_os%g
7302 -s%@build_alias@%$build_alias%g
7303 -s%@build_cpu@%$build_cpu%g
7304 -s%@build_vendor@%$build_vendor%g
7305 -s%@build_os@%$build_os%g
7306 -s%@RANLIB@%$RANLIB%g
7309 -s%@LIBSOCKET@%$LIBSOCKET%g
7310 -s%@LIBNSL@%$LIBNSL%g
7311 -s%@LIBCRYPT@%$LIBCRYPT%g
7312 -s%@LIBBSD@%$LIBBSD%g
7313 -s%@LIBWRAP@%$LIBWRAP%g
7314 -s%@KRBDIR@%$KRBDIR%g
7315 -s%@KRBLIB@%$KRBLIB%g
7316 -s%@K5VERS@%$K5VERS%g
7317 +if $ac_cs_silent; then
7319 + ac_configure_extra_args="$ac_configure_extra_args --silent"
7323 +cat >>$CONFIG_STATUS <<_ACEOF
7324 +if \$ac_cs_recheck; then
7325 + echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
7326 + exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
7335 +cat >>$CONFIG_STATUS <<\_ACEOF
7336 +for ac_config_target in $ac_config_targets
7338 + case "$ac_config_target" in
7339 + # Handling of arguments.
7340 + "config.mk" ) CONFIG_FILES="$CONFIG_FILES config.mk" ;;
7341 + "utils/Makefile" ) CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;;
7342 + "support/include/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS support/include/config.h" ;;
7343 + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
7344 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
7345 + { (exit 1); exit 1; }; };;
7349 +# If the user did not use the arguments to specify the items to instantiate,
7350 +# then the envvar interface is used. Set only those that are not.
7351 +# We use the long form for the default assignment because of an extremely
7352 +# bizarre bug on SunOS 4.1.3.
7353 +if $ac_need_defaults; then
7354 + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
7355 + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
7358 +# Have a temporary directory for convenience. Make it in the build tree
7359 +# simply because there is no reason to put it here, and in addition,
7360 +# creating and moving files from /tmp can sometimes cause problems.
7361 +# Create a temporary directory, and hook for its removal unless debugging.
7364 + trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
7365 + trap '{ (exit 1); exit 1; }' 1 2 13 15
7368 +# Create a (secure) tmp directory for tmp files.
7371 + tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
7372 + test -n "$tmp" && test -d "$tmp"
7375 + tmp=./confstat$$-$RANDOM
7376 + (umask 077 && mkdir $tmp)
7379 + echo "$me: cannot create a temporary directory in ." >&2
7380 + { (exit 1); exit 1; }
7385 +cat >>$CONFIG_STATUS <<_ACEOF
7388 +# CONFIG_FILES section.
7391 +# No need to generate the scripts if there are no CONFIG_FILES.
7392 +# This happens for instance when ./config.status config.h
7393 +if test -n "\$CONFIG_FILES"; then
7394 + # Protect against being on the right side of a sed subst in config.status.
7395 + sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
7396 + s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
7397 +s,@SHELL@,$SHELL,;t t
7398 +s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
7399 +s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
7400 +s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
7401 +s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
7402 +s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
7403 +s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
7404 +s,@exec_prefix@,$exec_prefix,;t t
7405 +s,@prefix@,$prefix,;t t
7406 +s,@program_transform_name@,$program_transform_name,;t t
7407 +s,@bindir@,$bindir,;t t
7408 +s,@sbindir@,$sbindir,;t t
7409 +s,@libexecdir@,$libexecdir,;t t
7410 +s,@datadir@,$datadir,;t t
7411 +s,@sysconfdir@,$sysconfdir,;t t
7412 +s,@sharedstatedir@,$sharedstatedir,;t t
7413 +s,@localstatedir@,$localstatedir,;t t
7414 +s,@libdir@,$libdir,;t t
7415 +s,@includedir@,$includedir,;t t
7416 +s,@oldincludedir@,$oldincludedir,;t t
7417 +s,@infodir@,$infodir,;t t
7418 +s,@mandir@,$mandir,;t t
7419 +s,@build_alias@,$build_alias,;t t
7420 +s,@host_alias@,$host_alias,;t t
7421 +s,@target_alias@,$target_alias,;t t
7422 +s,@DEFS@,$DEFS,;t t
7423 +s,@ECHO_C@,$ECHO_C,;t t
7424 +s,@ECHO_N@,$ECHO_N,;t t
7425 +s,@ECHO_T@,$ECHO_T,;t t
7426 +s,@LIBS@,$LIBS,;t t
7427 +s,@VERSION@,$VERSION,;t t
7428 +s,@RELEASE@,$RELEASE,;t t
7429 +s,@statedir@,$statedir,;t t
7430 +s,@statduser@,$statduser,;t t
7431 +s,@enable_nfsv3@,$enable_nfsv3,;t t
7432 +s,@IDMAPD@,$IDMAPD,;t t
7433 +s,@enable_nfsv4@,$enable_nfsv4,;t t
7434 +s,@GSSD@,$GSSD,;t t
7435 +s,@SVCGSSD@,$SVCGSSD,;t t
7436 +s,@enable_gss@,$enable_gss,;t t
7437 +s,@kprefix@,$kprefix,;t t
7438 +s,@secure_statd@,$secure_statd,;t t
7439 +s,@RQUOTAD@,$RQUOTAD,;t t
7441 +s,@CFLAGS@,$CFLAGS,;t t
7442 +s,@LDFLAGS@,$LDFLAGS,;t t
7443 +s,@CPPFLAGS@,$CPPFLAGS,;t t
7444 +s,@ac_ct_CC@,$ac_ct_CC,;t t
7445 +s,@EXEEXT@,$EXEEXT,;t t
7446 +s,@OBJEXT@,$OBJEXT,;t t
7448 +s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
7449 +s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
7450 +s,@INSTALL_DATA@,$INSTALL_DATA,;t t
7451 +s,@CC_FOR_BUILD@,$CC_FOR_BUILD,;t t
7452 +s,@RANLIB@,$RANLIB,;t t
7453 +s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
7455 +s,@ac_ct_AR@,$ac_ct_AR,;t t
7457 +s,@ac_ct_LD@,$ac_ct_LD,;t t
7458 +s,@EGREP@,$EGREP,;t t
7459 +s,@LIBSOCKET@,$LIBSOCKET,;t t
7460 +s,@LIBNSL@,$LIBNSL,;t t
7461 +s,@LIBCRYPT@,$LIBCRYPT,;t t
7462 +s,@LIBBSD@,$LIBBSD,;t t
7463 +s,@LIBWRAP@,$LIBWRAP,;t t
7464 +s,@KRBDIR@,$KRBDIR,;t t
7465 +s,@KRBLIB@,$KRBLIB,;t t
7466 +s,@KRBINC@,$KRBINC,;t t
7467 +s,@K5VERS@,$K5VERS,;t t
7468 +s,@CXXFLAGS@,$CXXFLAGS,;t t
7469 +s,@LIBOBJS@,$LIBOBJS,;t t
7470 +s,@LTLIBOBJS@,$LTLIBOBJS,;t t
7474 -cat >> $CONFIG_STATUS <<\EOF
7477 -# Split the substitutions into bite-sized pieces for seds with
7478 -# small command number limits, like on Digital OSF/1 and HP-UX.
7479 -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
7480 -ac_file=1 # Number of current file.
7481 -ac_beg=1 # First line for current file.
7482 -ac_end=$ac_max_sed_cmds # Line after last line for current file.
7485 -while $ac_more_lines; do
7486 - if test $ac_beg -gt 1; then
7487 - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
7489 - sed "${ac_end}q" conftest.subs > conftest.s$ac_file
7491 - if test ! -s conftest.s$ac_file; then
7492 - ac_more_lines=false
7493 - rm -f conftest.s$ac_file
7495 - if test -z "$ac_sed_cmds"; then
7496 - ac_sed_cmds="sed -f conftest.s$ac_file"
7497 + cat >>$CONFIG_STATUS <<\_ACEOF
7498 + # Split the substitutions into bite-sized pieces for seds with
7499 + # small command number limits, like on Digital OSF/1 and HP-UX.
7500 + ac_max_sed_lines=48
7501 + ac_sed_frag=1 # Number of current file.
7502 + ac_beg=1 # First line for current file.
7503 + ac_end=$ac_max_sed_lines # Line after last line for current file.
7506 + while $ac_more_lines; do
7507 + if test $ac_beg -gt 1; then
7508 + sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
7510 - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
7511 + sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
7513 - ac_file=`expr $ac_file + 1`
7515 - ac_end=`expr $ac_end + $ac_max_sed_cmds`
7516 + if test ! -s $tmp/subs.frag; then
7517 + ac_more_lines=false
7519 + # The purpose of the label and of the branching condition is to
7520 + # speed up the sed processing (if there are no `@' at all, there
7521 + # is no need to browse any of the substitutions).
7522 + # These are the two extra sed commands mentioned above.
7524 + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
7525 + if test -z "$ac_sed_cmds"; then
7526 + ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
7528 + ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
7530 + ac_sed_frag=`expr $ac_sed_frag + 1`
7532 + ac_end=`expr $ac_end + $ac_max_sed_lines`
7535 + if test -z "$ac_sed_cmds"; then
7539 -if test -z "$ac_sed_cmds"; then
7543 +fi # test -n "$CONFIG_FILES"
7545 -cat >> $CONFIG_STATUS <<EOF
7547 -CONFIG_FILES=\${CONFIG_FILES-"config.mk utils/Makefile"}
7549 -cat >> $CONFIG_STATUS <<\EOF
7550 -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
7552 +cat >>$CONFIG_STATUS <<\_ACEOF
7553 +for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
7554 # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
7555 - case "$ac_file" in
7556 - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
7557 - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
7558 - *) ac_file_in="${ac_file}.in" ;;
7560 + - | *:- | *:-:* ) # input from stdin
7562 + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
7563 + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
7564 + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
7565 + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
7566 + * ) ac_file_in=$ac_file.in ;;
7569 - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
7571 - # Remove last slash and all that follows it. Not all systems have dirname.
7572 - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
7573 - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
7574 - # The file is in a subdirectory.
7575 - test ! -d "$ac_dir" && mkdir "$ac_dir"
7576 - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
7577 - # A "../" for each directory in $ac_dir_suffix.
7578 - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
7580 - ac_dir_suffix= ac_dots=
7583 - case "$ac_given_srcdir" in
7585 - if test -z "$ac_dots"; then top_srcdir=.
7586 - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
7587 - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
7588 + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
7589 + ac_dir=`(dirname "$ac_file") 2>/dev/null ||
7590 +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
7591 + X"$ac_file" : 'X\(//\)[^/]' \| \
7592 + X"$ac_file" : 'X\(//\)$' \| \
7593 + X"$ac_file" : 'X\(/\)' \| \
7594 + . : '\(.\)' 2>/dev/null ||
7596 + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
7597 + /^X\(\/\/\)[^/].*/{ s//\1/; q; }
7598 + /^X\(\/\/\)$/{ s//\1/; q; }
7599 + /^X\(\/\).*/{ s//\1/; q; }
7601 + { if $as_mkdir_p; then
7602 + mkdir -p "$ac_dir"
7606 + while test ! -d "$as_dir"; do
7607 + as_dirs="$as_dir $as_dirs"
7608 + as_dir=`(dirname "$as_dir") 2>/dev/null ||
7609 +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
7610 + X"$as_dir" : 'X\(//\)[^/]' \| \
7611 + X"$as_dir" : 'X\(//\)$' \| \
7612 + X"$as_dir" : 'X\(/\)' \| \
7613 + . : '\(.\)' 2>/dev/null ||
7615 + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
7616 + /^X\(\/\/\)[^/].*/{ s//\1/; q; }
7617 + /^X\(\/\/\)$/{ s//\1/; q; }
7618 + /^X\(\/\).*/{ s//\1/; q; }
7621 + test ! -n "$as_dirs" || mkdir $as_dirs
7622 + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
7623 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
7624 + { (exit 1); exit 1; }; }; }
7628 +if test "$ac_dir" != .; then
7629 + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
7630 + # A "../" for each directory in $ac_dir_suffix.
7631 + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
7633 + ac_dir_suffix= ac_top_builddir=
7637 + .) # No --srcdir option. We are building in place.
7639 + if test -z "$ac_top_builddir"; then
7642 + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
7644 + [\\/]* | ?:[\\/]* ) # Absolute path.
7645 + ac_srcdir=$srcdir$ac_dir_suffix;
7646 + ac_top_srcdir=$srcdir ;;
7648 - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
7649 - top_srcdir="$ac_dots$ac_given_srcdir" ;;
7651 + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
7652 + ac_top_srcdir=$ac_top_builddir$srcdir ;;
7655 - case "$ac_given_INSTALL" in
7656 - [/$]*) INSTALL="$ac_given_INSTALL" ;;
7657 - *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
7659 +# Do not use `cd foo && pwd` to compute absolute paths, because
7660 +# the directories may not exist.
7662 +.) ac_abs_builddir="$ac_dir";;
7665 + .) ac_abs_builddir=`pwd`;;
7666 + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
7667 + *) ac_abs_builddir=`pwd`/"$ac_dir";;
7670 +case $ac_abs_builddir in
7671 +.) ac_abs_top_builddir=${ac_top_builddir}.;;
7673 + case ${ac_top_builddir}. in
7674 + .) ac_abs_top_builddir=$ac_abs_builddir;;
7675 + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
7676 + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
7679 +case $ac_abs_builddir in
7680 +.) ac_abs_srcdir=$ac_srcdir;;
7682 + case $ac_srcdir in
7683 + .) ac_abs_srcdir=$ac_abs_builddir;;
7684 + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
7685 + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
7688 +case $ac_abs_builddir in
7689 +.) ac_abs_top_srcdir=$ac_top_srcdir;;
7691 + case $ac_top_srcdir in
7692 + .) ac_abs_top_srcdir=$ac_abs_builddir;;
7693 + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
7694 + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
7698 - echo creating "$ac_file"
7700 - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
7701 - case "$ac_file" in
7702 - *Makefile*) ac_comsub="1i\\
7703 -# $configure_input" ;;
7707 + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
7708 + *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
7711 - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
7712 - sed -e "$ac_comsub
7713 -s%@configure_input@%$configure_input%g
7714 -s%@srcdir@%$srcdir%g
7715 -s%@top_srcdir@%$top_srcdir%g
7716 -s%@INSTALL@%$INSTALL%g
7717 -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
7720 + if test x"$ac_file" != x-; then
7721 + { echo "$as_me:$LINENO: creating $ac_file" >&5
7722 +echo "$as_me: creating $ac_file" >&6;}
7725 + # Let's still pretend it is `configure' which instantiates (i.e., don't
7726 + # use $as_me), people would be surprised to read:
7727 + # /* config.h. Generated by config.status. */
7728 + if test x"$ac_file" = x-; then
7731 + configure_input="$ac_file. "
7733 + configure_input=$configure_input"Generated from `echo $ac_file_in |
7734 + sed 's,.*/,,'` by configure."
7736 + # First look for the input files in the build tree, otherwise in the
7738 + ac_file_inputs=`IFS=:
7739 + for f in $ac_file_in; do
7741 + -) echo $tmp/stdin ;;
7743 + # Absolute (can't be DOS-style, as IFS=:)
7744 + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
7745 +echo "$as_me: error: cannot find input file: $f" >&2;}
7746 + { (exit 1); exit 1; }; }
7749 + if test -f "$f"; then
7752 + elif test -f "$srcdir/$f"; then
7757 + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
7758 +echo "$as_me: error: cannot find input file: $f" >&2;}
7759 + { (exit 1); exit 1; }; }
7762 + done` || { (exit 1); exit 1; }
7764 +cat >>$CONFIG_STATUS <<_ACEOF
7768 +cat >>$CONFIG_STATUS <<\_ACEOF
7770 +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
7771 +s,@configure_input@,$configure_input,;t t
7772 +s,@srcdir@,$ac_srcdir,;t t
7773 +s,@abs_srcdir@,$ac_abs_srcdir,;t t
7774 +s,@top_srcdir@,$ac_top_srcdir,;t t
7775 +s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
7776 +s,@builddir@,$ac_builddir,;t t
7777 +s,@abs_builddir@,$ac_abs_builddir,;t t
7778 +s,@top_builddir@,$ac_top_builddir,;t t
7779 +s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
7780 +s,@INSTALL@,$ac_INSTALL,;t t
7781 +" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
7783 + if test x"$ac_file" != x-; then
7784 + mv $tmp/out $ac_file
7792 +cat >>$CONFIG_STATUS <<\_ACEOF
7795 +# CONFIG_HEADER section.
7798 # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
7799 # NAME is the cpp macro being defined and VALUE is the value it is being given.
7801 # ac_d sets the value in "#define NAME VALUE" lines.
7802 -ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
7803 -ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
7806 -# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
7807 -ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
7808 -ac_uB='\([ ]\)%\1#\2define\3'
7809 +ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
7810 +ac_dB='[ ].*$,\1#\2'
7813 +# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
7814 +ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
7815 +ac_uB='$,\1#\2define\3'
7818 -# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
7819 -ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
7820 -ac_eB='$%\1#\2define\3'
7824 -if test "${CONFIG_HEADERS+set}" != set; then
7826 -cat >> $CONFIG_STATUS <<EOF
7827 - CONFIG_HEADERS="support/include/config.h"
7829 -cat >> $CONFIG_STATUS <<\EOF
7831 -for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
7834 +for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
7835 # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
7836 - case "$ac_file" in
7837 - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
7838 - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
7839 - *) ac_file_in="${ac_file}.in" ;;
7841 + - | *:- | *:-:* ) # input from stdin
7843 + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
7844 + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
7845 + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
7846 + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
7847 + * ) ac_file_in=$ac_file.in ;;
7850 - echo creating $ac_file
7851 + test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
7852 +echo "$as_me: creating $ac_file" >&6;}
7854 - rm -f conftest.frag conftest.in conftest.out
7855 - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
7856 - cat $ac_file_inputs > conftest.in
7860 -# Transform confdefs.h into a sed script conftest.vals that substitutes
7861 -# the proper values into config.h.in to produce config.h. And first:
7862 -# Protect against being on the right side of a sed subst in config.status.
7863 -# Protect against being in an unquoted here document in config.status.
7864 -rm -f conftest.vals
7865 -cat > conftest.hdr <<\EOF
7868 -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
7872 -sed -n -f conftest.hdr confdefs.h > conftest.vals
7874 + # First look for the input files in the build tree, otherwise in the
7876 + ac_file_inputs=`IFS=:
7877 + for f in $ac_file_in; do
7879 + -) echo $tmp/stdin ;;
7881 + # Absolute (can't be DOS-style, as IFS=:)
7882 + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
7883 +echo "$as_me: error: cannot find input file: $f" >&2;}
7884 + { (exit 1); exit 1; }; }
7885 + # Do quote $f, to prevent DOS paths from being IFS'd.
7888 + if test -f "$f"; then
7891 + elif test -f "$srcdir/$f"; then
7896 + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
7897 +echo "$as_me: error: cannot find input file: $f" >&2;}
7898 + { (exit 1); exit 1; }; }
7901 + done` || { (exit 1); exit 1; }
7902 + # Remove the trailing spaces.
7903 + sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
7907 +# Transform confdefs.h into two sed scripts, `conftest.defines' and
7908 +# `conftest.undefs', that substitutes the proper values into
7909 +# config.h.in to produce config.h. The first handles `#define'
7910 +# templates, and the second `#undef' templates.
7911 +# And first: Protect against being on the right side of a sed subst in
7912 +# config.status. Protect against being in an unquoted here document
7913 +# in config.status.
7914 +rm -f conftest.defines conftest.undefs
7915 +# Using a here document instead of a string reduces the quoting nightmare.
7916 +# Putting comments in sed scripts is not portable.
7918 +# `end' is used to avoid that the second main sed command (meant for
7919 +# 0-ary CPP macros) applies to n-ary macro definitions.
7920 +# See the Autoconf documentation for `clear'.
7921 +cat >confdef2sed.sed <<\_ACEOF
7926 +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
7928 +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
7931 +# If some macros were called several times there might be several times
7932 +# the same #defines, which is useless. Nevertheless, we may not want to
7933 +# sort them, since we want the *last* AC-DEFINE to be honored.
7934 +uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
7935 +sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
7936 +rm -f confdef2sed.sed
7938 # This sed command replaces #undef with comments. This is necessary, for
7939 # example, in the case of _POSIX_SOURCE, which is predefined and required
7940 # on some systems where configure will not decide to define it.
7941 -cat >> conftest.vals <<\EOF
7942 -s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
7945 -# Break up conftest.vals because some shells have a limit on
7946 -# the size of here documents, and old seds have small limits too.
7948 +cat >>conftest.undefs <<\_ACEOF
7949 +s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
7952 +# Break up conftest.defines because some shells have a limit on the size
7953 +# of here documents, and old seds have small limits too (100 cmds).
7954 +echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
7955 +echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
7956 +echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
7957 +echo ' :' >>$CONFIG_STATUS
7960 +while grep . conftest.defines >/dev/null
7962 - ac_lines=`grep -c . conftest.vals`
7963 - # grep -c gives empty output for an empty file on some AIX systems.
7964 - if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
7965 - # Write a limited-size here document to conftest.frag.
7966 - echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
7967 - sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
7968 + # Write a limited-size here document to $tmp/defines.sed.
7969 + echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
7970 + # Speed up: don't consider the non `#define' lines.
7971 + echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
7972 + # Work around the forget-to-reset-the-flag bug.
7973 + echo 't clr' >>$CONFIG_STATUS
7974 + echo ': clr' >>$CONFIG_STATUS
7975 + sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
7977 - sed -f conftest.frag conftest.in > conftest.out
7979 - mv conftest.out conftest.in
7980 -' >> $CONFIG_STATUS
7981 - sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
7982 - rm -f conftest.vals
7983 - mv conftest.tail conftest.vals
7985 -rm -f conftest.vals
7987 -cat >> $CONFIG_STATUS <<\EOF
7988 - rm -f conftest.frag conftest.h
7989 - echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
7990 - cat conftest.in >> conftest.h
7992 - if cmp -s $ac_file conftest.h 2>/dev/null; then
7993 - echo "$ac_file is unchanged"
7996 - # Remove last slash and all that follows it. Not all systems have dirname.
7997 - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
7998 - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
7999 - # The file is in a subdirectory.
8000 - test ! -d "$ac_dir" && mkdir "$ac_dir"
8003 - mv conftest.h $ac_file
8004 + sed -f $tmp/defines.sed $tmp/in >$tmp/out
8006 + mv $tmp/out $tmp/in
8008 + sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
8009 + rm -f conftest.defines
8010 + mv conftest.tail conftest.defines
8012 +rm -f conftest.defines
8013 +echo ' fi # grep' >>$CONFIG_STATUS
8014 +echo >>$CONFIG_STATUS
8016 +# Break up conftest.undefs because some shells have a limit on the size
8017 +# of here documents, and old seds have small limits too (100 cmds).
8018 +echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
8019 +rm -f conftest.tail
8020 +while grep . conftest.undefs >/dev/null
8022 + # Write a limited-size here document to $tmp/undefs.sed.
8023 + echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
8024 + # Speed up: don't consider the non `#undef'
8025 + echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
8026 + # Work around the forget-to-reset-the-flag bug.
8027 + echo 't clr' >>$CONFIG_STATUS
8028 + echo ': clr' >>$CONFIG_STATUS
8029 + sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
8031 + sed -f $tmp/undefs.sed $tmp/in >$tmp/out
8033 + mv $tmp/out $tmp/in
8035 + sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
8036 + rm -f conftest.undefs
8037 + mv conftest.tail conftest.undefs
8039 +rm -f conftest.undefs
8041 +cat >>$CONFIG_STATUS <<\_ACEOF
8042 + # Let's still pretend it is `configure' which instantiates (i.e., don't
8043 + # use $as_me), people would be surprised to read:
8044 + # /* config.h. Generated by config.status. */
8045 + if test x"$ac_file" = x-; then
8046 + echo "/* Generated by configure. */" >$tmp/config.h
8048 + echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
8051 + cat $tmp/in >>$tmp/config.h
8053 + if test x"$ac_file" != x-; then
8054 + if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
8055 + { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
8056 +echo "$as_me: $ac_file is unchanged" >&6;}
8058 + ac_dir=`(dirname "$ac_file") 2>/dev/null ||
8059 +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
8060 + X"$ac_file" : 'X\(//\)[^/]' \| \
8061 + X"$ac_file" : 'X\(//\)$' \| \
8062 + X"$ac_file" : 'X\(/\)' \| \
8063 + . : '\(.\)' 2>/dev/null ||
8065 + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
8066 + /^X\(\/\/\)[^/].*/{ s//\1/; q; }
8067 + /^X\(\/\/\)$/{ s//\1/; q; }
8068 + /^X\(\/\).*/{ s//\1/; q; }
8070 + { if $as_mkdir_p; then
8071 + mkdir -p "$ac_dir"
8075 + while test ! -d "$as_dir"; do
8076 + as_dirs="$as_dir $as_dirs"
8077 + as_dir=`(dirname "$as_dir") 2>/dev/null ||
8078 +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
8079 + X"$as_dir" : 'X\(//\)[^/]' \| \
8080 + X"$as_dir" : 'X\(//\)$' \| \
8081 + X"$as_dir" : 'X\(/\)' \| \
8082 + . : '\(.\)' 2>/dev/null ||
8084 + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
8085 + /^X\(\/\/\)[^/].*/{ s//\1/; q; }
8086 + /^X\(\/\/\)$/{ s//\1/; q; }
8087 + /^X\(\/\).*/{ s//\1/; q; }
8090 + test ! -n "$as_dirs" || mkdir $as_dirs
8091 + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
8092 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
8093 + { (exit 1); exit 1; }; }; }
8096 -cat >> $CONFIG_STATUS <<EOF
8098 + mv $tmp/config.h $ac_file
8102 + rm -f $tmp/config.h
8108 -cat >> $CONFIG_STATUS <<\EOF
8109 +cat >>$CONFIG_STATUS <<\_ACEOF
8113 +{ (exit 0); exit 0; }
8115 chmod +x $CONFIG_STATUS
8116 -rm -fr confdefs* $ac_clean_files
8117 -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
8118 +ac_clean_files=$ac_clean_files_save
8121 +# configure is writing to config.log, and then calls config.status.
8122 +# config.status does its own redirection, appending to config.log.
8123 +# Unfortunately, on DOS this fails, as config.log is still kept open
8124 +# by configure, so config.status won't be able to write to it; its
8125 +# output is simply discarded. So we exec the FD to /dev/null,
8126 +# effectively closing config.log, so it can be properly (re)opened and
8127 +# appended to by config.status. When coming back to configure, we
8128 +# need to make the FD available again.
8129 +if test "$no_create" != yes; then
8131 + ac_config_status_args=
8132 + test "$silent" = yes &&
8133 + ac_config_status_args="$ac_config_status_args --quiet"
8135 + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
8136 + exec 5>>config.log
8137 + # Use ||, not &&, to avoid exiting from the if with $? = 1, which
8138 + # would make configure fail if this is the last instruction.
8139 + $ac_cs_success || { (exit 1); exit 1; }
8142 diff -puN configure.in~CITI_NFS4_ALL configure.in
8143 --- nfs-utils-1.0.7/configure.in~CITI_NFS4_ALL 2005-05-06 15:19:22.324443000 -0400
8144 +++ nfs-utils-1.0.7-kwc/configure.in 2005-05-06 15:19:26.022447000 -0400
8145 @@ -34,7 +34,7 @@ AC_ARG_ENABLE(nfsv3,
8146 enable_nfsv3=$enableval,
8148 if test "$enable_nfsv3" = yes; then
8149 - AC_DEFINE(NFS3_SUPPORTED)
8150 + AC_DEFINE(NFS3_SUPPORTED, 1, [Define this if you want NFSv3 support compiled in])
8154 @@ -44,7 +44,7 @@ AC_ARG_ENABLE(nfsv4,
8155 enable_nfsv4=$enableval,
8157 if test "$enable_nfsv4" = yes; then
8158 - AC_DEFINE(NFS4_SUPPORTED)
8159 + AC_DEFINE(NFS4_SUPPORTED, 1, [Define this if you want NFSv4 support compiled in])
8163 @@ -57,7 +57,7 @@ AC_ARG_ENABLE(gss,
8164 enable_gss=$enableval,
8166 if test "$enable_gss" = yes; then
8167 - AC_DEFINE(GSS_SUPPORTED)
8168 + AC_DEFINE(GSS_SUPPORTED, 1, [Define this if you want rpcsec_gss support compiled in])
8172 @@ -78,7 +78,7 @@ AC_ARG_ENABLE(secure-statd,
8173 test "$enableval" = "yes" && secure_statd=yes,
8175 if test "$secure_statd" = yes; then
8176 - AC_DEFINE(RESTRICTED_STATD)
8177 + AC_DEFINE(RESTRICTED_STATD, 1, [Define this if you want to enable various security checks in statd. These checks basically keep anyone but lockd from using this service.])
8179 AC_SUBST(secure_statd)
8180 AC_ARG_ENABLE(rquotad,
8181 @@ -117,8 +117,8 @@ AC_CHECK_LIB(socket, main, [LIBSOCKET="-
8182 AC_CHECK_LIB(nsl, main, [LIBNSL="-lnsl"])
8183 AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"])
8184 if test "$enable_nfsv4" = yes; then
8185 - AC_CHECK_LIB(event, event_dispatch, , [AC_MSG_ERROR(libevent needed for nfsv4 support)])
8186 - AC_CHECK_LIB(nfsidmap, nfs4_init_name_mapping, ,[AC_MSG_ERROR(libnfsidmap needed for nfsv4 support)])
8187 + AC_CHECK_LIB(event, event_dispatch, [libevent=1], [AC_MSG_ERROR(libevent needed for nfsv4 support)])
8188 + AC_CHECK_LIB(nfsidmap, nfs4_init_name_mapping, [libnfsidmap=1], [AC_MSG_ERROR(libnfsidmap needed for nfsv4 support)])
8189 AC_CHECK_HEADERS(event.h, ,[AC_MSG_ERROR(libevent needed for nfsv4 support)])
8190 AC_CHECK_HEADERS(nfsidmap.h, ,[AC_MSG_ERROR(libnfsidmap needed for nfsv4 support)])
8192 @@ -155,8 +155,8 @@ if test "$enable_gss" = yes; then
8196 - for dir in $krb5_with /usr/kerberos /usr/local /usr/local/krb5 /usr/krb5 \
8197 - /usr/heimdal /usr/local/heimdal /usr/athena /usr ; do
8198 + for dir in $krb5_with /usr /usr/kerberos /usr/local /usr/local/krb5 \
8199 + /usr/krb5 /usr/heimdal /usr/local/heimdal /usr/athena ; do
8200 dnl This ugly hack brought on by the split installation of
8201 dnl MIT Kerberos on Fedora Core 1
8203 @@ -166,62 +166,71 @@ if test "$enable_gss" = yes; then
8204 K5CONFIG="/usr/kerberos/bin/krb5-config"
8206 if test "$K5CONFIG" != ""; then
8207 + KRBINC=`$K5CONFIG --cflags`
8208 + KRBLIB=`$K5CONFIG --libs gssapi`
8209 + K5VERS=`$K5CONFIG --version | head -n 1 | awk '{split($4,v,"."); if (v[[3]] == "") v[[3]] = "0"; print v[[1]]v[[2]]v[[3]] }'`
8210 + AC_DEFINE_UNQUOTED(KRB5_VERSION, $K5VERS, [Define this as the Kerberos version number])
8211 if test -f $dir/include/gssapi/gssapi_krb5.h -a \
8212 \( -f $dir/lib/libgssapi_krb5.a -o \
8213 -f $dir/lib/libgssapi_krb5.so \) ; then
8214 - AC_DEFINE(HAVE_KRB5)
8215 + AC_DEFINE(HAVE_KRB5, 1, [Define this if you have MIT Kerberos libraries])
8217 - K5VERS=`$K5CONFIG --version | awk '{split($4,v,"."); print v[[1]]v[[2]]v[[3]] }'`
8218 - AC_DEFINE_UNQUOTED(KRB5_VERSION,$K5VERS)
8219 - KRBLIB=`$K5CONFIG --libs gssapi`
8220 + dnl If we are using MIT K5 1.3.1 and before, we *MUST* use the
8221 + dnl private function (gss_krb5_ccache_name) to get correct
8222 + dnl behavior of changing the ccache used by gssapi.
8223 + dnl Starting in 1.3.2, we *DO NOT* want to use
8224 + dnl gss_krb5_ccache_name, instead we want to set KRB5CCNAME
8225 + dnl to get gssapi to use a different ccache
8226 if test $K5VERS -le 131; then
8227 - AC_DEFINE(USE_PRIVATE_KRB5_FUNCTIONS)
8228 + 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])
8230 - AC_CHECK_LIB(gssapi_krb5, gss_krb5_export_lucid_sec_context,
8231 - AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT),,$KRBLIB)
8232 - AC_CHECK_LIB(gssapi_krb5, gss_krb5_set_allowable_enctypes,
8233 - AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES),,$KRBLIB)
8234 - AC_CHECK_LIB(gssapi_krb5, gss_krb5_ccache_name,
8235 - AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME),,$KRBLIB)
8236 + gssapi_lib=gssapi_krb5
8238 dnl The following ugly hack brought on by the split installation
8239 dnl of Heimdal Kerberos on SuSe
8240 elif test \( -f $dir/include/heim_err.h -o\
8241 -f $dir/include/heimdal/heim_err.h \) -a \
8242 -f $dir/lib/libroken.a; then
8243 - AC_DEFINE(HAVE_HEIMDAL)
8244 + AC_DEFINE(HAVE_HEIMDAL, 1, [Define this if you have Heimdal Kerberos libraries])
8246 - K5VERS=`$K5CONFIG --version | head -1 | awk '{split($2,v,"."); print v[[1]]v[[2]]v[[3]] }'`
8247 - AC_DEFINE_UNQUOTED(KRB5_VERSION,$K5VERS)
8248 - KRBLIB=`$K5CONFIG --libs gssapi`
8249 - AC_CHECK_LIB(gssapi, gss_krb5_export_lucid_sec_context,
8250 - AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT),,$KRBLIB)
8251 - AC_CHECK_LIB(gssapi, gss_krb5_set_allowable_enctypes,
8252 - AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES),,$KRBLIB)
8253 - AC_CHECK_LIB(gssapi, gss_krb5_ccache_name,
8254 - AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME),,$KRBLIB)
8258 - CFLAGS=$CFLAGS `K5CONFIG --cflags`
8261 dnl We didn't find a usable Kerberos environment
8262 if test "x$KRBDIR" = "x"; then
8263 - AC_MSG_RESULT("no")
8264 if test "x$krb5_with" = "x"; then
8265 AC_MSG_ERROR(Kerberos v5 with GSS support not found: consider --disable-gss or --with-krb5=)
8267 AC_MSG_ERROR(Kerberos v5 with GSS support not found at $krb5_with)
8270 + CFLAGS="$CFLAGS `$K5CONFIG --cflags`"
8271 AC_MSG_RESULT($KRBDIR)
8273 + dnl Now check for functions within gssapi library
8274 + AC_CHECK_LIB($gssapi_lib, gss_krb5_export_lucid_sec_context,
8275 + AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT, 1, [Define this if the Kerberos GSS library supports gss_krb5_export_lucid_sec_context]), ,$KRBLIB)
8276 + AC_CHECK_LIB($gssapi_lib, gss_krb5_set_allowable_enctypes,
8277 + AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES, 1, [Define this if the Kerberos GSS library supports gss_krb5_set_allowable_enctypes]), ,$KRBLIB)
8278 + AC_CHECK_LIB($gssapi_lib, gss_krb5_ccache_name,
8279 + AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the Kerberos GSS library supports gss_krb5_ccache_name]), ,$KRBLIB)
8281 dnl If they specified a directory and it didn't work, give them a warning
8282 if test "x$krb5_with" != "x" -a "$krb5_with" != "$KRBDIR"; then
8283 AC_MSG_WARN(Using $KRBDIR instead of requested value of $krb5_with for Kerberos!)
8286 + dnl This is not done until here because we need to have KRBLIB set
8287 + dnl "librpcsecgss=1" is so that it doesn't get added to LIBS
8288 + AC_CHECK_LIB(rpcsecgss, authgss_create_default, [librpcsecgss=1], [AC_MSG_ERROR(librpcsecgss needed for nfsv4 support)], $KRBLIB)
8289 + AC_CHECK_LIB(rpcsecgss, authgss_set_debug_level,
8290 + AC_DEFINE(HAVE_AUTHGSS_SET_DEBUG_LEVEL, 1, [Define this if the rpcsec_gss library has the function authgss_set_debug_level]),, $KRBLIB)
8294 + AC_SUBST([KRBINC])
8298 @@ -229,6 +238,8 @@ dnl ************************************
8299 dnl Check for headers
8300 dnl *************************************************************
8301 dnl AC_HAVE_HEADERS(string.h)
8302 +AC_HAVE_HEADERS(com_err.h)
8303 +AC_HAVE_HEADERS(et/com_err.h)
8305 dnl *************************************************************
8306 dnl Check for functions
8307 @@ -236,9 +247,17 @@ dnl ************************************
8308 AC_HAVE_FUNCS(innetgr)
8310 dnl *************************************************************
8311 +dnl Check for data sizes
8312 +dnl *************************************************************
8313 +AC_CHECK_SIZEOF(short)
8314 +AC_CHECK_SIZEOF(int)
8315 +AC_CHECK_SIZEOF(long)
8316 +AC_CHECK_SIZEOF(size_t)
8318 +dnl *************************************************************
8319 dnl Export some path names to config.h
8320 dnl *************************************************************
8321 -AC_DEFINE_UNQUOTED(NFS_STATEDIR, "$statedir")
8322 +AC_DEFINE_UNQUOTED(NFS_STATEDIR, "$statedir", [This defines the location of the NFS state files. Warning: this must match definitions in config.mk!])
8326 diff -puN support/include/config.h.in~CITI_NFS4_ALL support/include/config.h.in
8327 --- nfs-utils-1.0.7/support/include/config.h.in~CITI_NFS4_ALL 2005-05-06 15:19:22.383384000 -0400
8328 +++ nfs-utils-1.0.7-kwc/support/include/config.h.in 2005-05-06 15:19:26.028447000 -0400
8330 /* Define this if you have string.h */
8331 #undef HAVE_STRING_H
8333 +/* Define this if you have com_err.h */
8334 +#undef HAVE_COM_ERR_H
8336 +/* Define this if you have <et/com_err.h> */
8337 +#undef HAVE_ET_COM_ERR_H
8339 /* Define this if you have netgroup support
8343 /* Define this if the Kerberos gssapi library has function
8344 * gss_krb5_cache_name */
8345 #undef HAVE_GSS_KRB5_CCACHE_NAME
8347 +/* Define this if the rpcsec_gss library has the function
8348 + * authgss_set_debug_level */
8349 +#undef HAVE_AUTHGSS_SET_DEBUG_LEVEL
8351 +/* Define this if we want to use the private Kerberos
8352 + * gssapi library function, gss_krb5_cache_name, to
8353 + * specify the credentials cache file to be used by
8354 + * the gssapi library.
8355 + * (For MIT releases 1.3.1 and before, this must
8356 + * be defined. For later releases we can simply
8357 + * set the KRB5CCNAME environment variable.) */
8358 +#undef USE_GSS_KRB5_CCACHE_NAME
8360 +/* The size of a `int', as computed by sizeof. */
8363 +/* The size of a `long', as computed by sizeof. */
8366 +/* The size of a `short', as computed by sizeof. */
8367 +#undef SIZEOF_SHORT
8369 +/* The size of a `size_t', as computed by sizeof. */
8370 +#undef SIZEOF_SIZE_T
8371 diff -puN utils/svcgssd/Makefile~CITI_NFS4_ALL utils/svcgssd/Makefile
8372 --- nfs-utils-1.0.7/utils/svcgssd/Makefile~CITI_NFS4_ALL 2005-05-06 15:19:22.441326000 -0400
8373 +++ nfs-utils-1.0.7-kwc/utils/svcgssd/Makefile 2005-05-06 15:19:26.017448000 -0400
8374 @@ -6,18 +6,23 @@ PROGRAM = svcgssd
8376 OBJS = svcgssd.o svcgssd_main_loop.o svcgssd_proc.o err_util.o gss_util.o \
8377 gss_oids.o context.o context_heimdal.o cacheio.o svcgssd_mech2file.o
8378 -LIBDEPS = $(TOP)support/lib/librpc.a $(TOP)support/lib/libgssapi.a
8379 -LIBS = -Wl,-rpath=$(KRBDIR)/lib -lrpc -lgssapi -ldl $(KRBLIB) -lnfsidmap
8380 +LIBS = -Wl,-rpath=$(KRBDIR)/lib -lrpcsecgss -lgssapi -ldl $(KRBLIB) -lnfsidmap
8384 - - ln ../gssd/err_util.c
8385 - - ln ../gssd/gss_util.c
8386 - - ln ../gssd/gss_oids.c
8387 - - ln ../gssd/context.c
8388 - - ln ../gssd/context_heimdal.c
8390 include $(TOP)rules.mk
8392 CFLAGS += -I../gssd -DKRB5_VERSION=$(KRB5_VERSION) \
8393 - -I$(TOP)support/rpc/include/ -I$(KRBDIR)/include
8394 + -I$(TOP)support/rpc/include/
8396 + - ln -s ../gssd/err_util.c
8397 + - ln -s ../gssd/gss_util.c
8398 + - ln -s ../gssd/gss_oids.c
8399 + - ln -s ../gssd/context.c
8400 + - ln -s ../gssd/context_heimdal.c
8407 + - rm context_heimdal.c
8408 diff -puN support/include/gssapi/gssapi.h~CITI_NFS4_ALL support/include/gssapi/gssapi.h
8409 --- nfs-utils-1.0.7/support/include/gssapi/gssapi.h~CITI_NFS4_ALL 2005-05-06 15:19:22.696320000 -0400
8410 +++ nfs-utils-1.0.7-kwc/support/include/gssapi/gssapi.h 2005-05-06 15:19:22.781320000 -0400
8412 -/* This is the gssapi.h prologue. */
8413 -/* It contains some choice pieces of autoconf.h */
8414 -#define SIZEOF_INT 4
8415 -#define SIZEOF_LONG 4
8416 -#define SIZEOF_SHORT 2
8417 -#define HAVE_STDARG_H 1
8418 -/* #undef HAVE_VARARGS_H */
8419 -/* #undef HAVE_MACSOCK_H */
8420 -#define HAVE_NETINET_IN_H 1
8421 -#define HAVE_STDDEF_H 1
8422 -#define HAVE_STDLIB_H 1
8423 -#define HAVE_STRING_H 1
8424 -#define HAVE_SYS_FILE_H 1
8425 -#define HAVE_SYS_PARAM_H 1
8426 -#define HAVE_SYS_SOCKET_H 1
8427 -#define HAVE_SYS_STAT_H 1
8428 -#define HAVE_SYS_TIME_H 1
8429 -#define HAVE_SYS_TYPES_H 1
8430 -#define HAVE_UNISTD_H 1
8431 -/* #undef HAVE_XOM_H */
8432 -#define USE_DIRENT_H 1
8433 -/* End of gssapi.h prologue. */
8435 * Copyright 1993 by OpenVision Technologies, Inc.
8441 +#include "config.h"
8444 * Determine platform-dependent configuration.
8446 diff -puN utils/gssd/write_bytes.h~CITI_NFS4_ALL utils/gssd/write_bytes.h
8447 --- nfs-utils-1.0.7/utils/gssd/write_bytes.h~CITI_NFS4_ALL 2005-05-06 15:19:22.755320000 -0400
8448 +++ nfs-utils-1.0.7-kwc/utils/gssd/write_bytes.h 2005-05-06 15:19:22.771320000 -0400
8449 @@ -53,12 +53,13 @@ write_bytes(char **ptr, const char *end,
8451 write_buffer(char **p, char *end, gss_buffer_desc *arg)
8453 - if (WRITE_BYTES(p, end, arg->length))
8454 + int len = (int)arg->length; /* make an int out of size_t */
8455 + if (WRITE_BYTES(p, end, len))
8457 if (*p + arg->length > end)
8459 - memcpy(*p, arg->value, arg->length);
8460 - *p += arg->length;
8461 + memcpy(*p, arg->value, len);
8466 @@ -80,8 +81,10 @@ get_buffer(char **ptr, const char *end,
8470 - if (get_bytes(&p, end, &res->length, sizeof(res->length)))
8472 + if (get_bytes(&p, end, &len, sizeof(len)))
8474 + res->length = len; /* promote to size_t if necessary */
8475 q = p + res->length;
8476 if (q > end || q < p)
8478 @@ -105,9 +108,11 @@ static inline int
8479 xdr_get_buffer(u_int32_t **ptr, const u_int32_t *end, gss_buffer_desc *res)
8484 - if (xdr_get_u32(&p, end, &res->length))
8485 + if (xdr_get_u32(&p, end, &len))
8487 + res->length = len;
8488 q = p + ((res->length + 3) >> 2);
8489 if (q > end || q < p)
8491 @@ -130,7 +135,8 @@ xdr_write_u32(u_int32_t **ptr, const u_i
8493 xdr_write_buffer(u_int32_t **ptr, const u_int32_t *end, gss_buffer_desc *arg)
8495 - if (xdr_write_u32(ptr, end, arg->length))
8496 + int len = arg->length;
8497 + if (xdr_write_u32(ptr, end, len))
8499 return write_bytes((char **)ptr, (char *)end, arg->value,
8500 (arg->length + 3) & ~3);
8501 diff -puN utils/idmapd/idmapd.c~CITI_NFS4_ALL utils/idmapd/idmapd.c
8502 --- nfs-utils-1.0.7/utils/idmapd/idmapd.c~CITI_NFS4_ALL 2005-05-06 15:19:22.926320000 -0400
8503 +++ nfs-utils-1.0.7-kwc/utils/idmapd/idmapd.c 2005-05-06 15:19:23.940029000 -0400
8504 @@ -141,6 +141,34 @@ static struct idmap_client nfsd_ic[2];
8509 +flush_nfsd_cache(char *path, time_t now)
8514 + sprintf(stime, "%ld\n", now);
8515 + fd = open(path, O_RDWR);
8518 + write(fd, stime, strlen(stime));
8524 +flush_nfsd_idmap_cache(void)
8526 + time_t now = time(NULL);
8529 + ret = flush_nfsd_cache("/proc/net/rpc/nfs4.idtoname/flush", now);
8532 + ret = flush_nfsd_cache("/proc/net/rpc/nfs4.nametoid/flush", now);
8537 main(int argc, char **argv)
8539 @@ -153,6 +181,7 @@ main(int argc, char **argv)
8541 char *xpipefsdir = NULL;
8542 int serverstart = 1, clientstart = 1;
8545 conf_path = _PATH_IDMAPDCONF;
8546 nobodyuser = NFS4NOBODY_USER;
8547 @@ -230,8 +259,14 @@ main(int argc, char **argv)
8552 + if (serverstart) {
8553 nfsdret = nfsdopen(NFSD_DIR);
8554 + if (nfsdret == 0) {
8555 + ret = flush_nfsd_idmap_cache();
8557 + errx(1, "Failed to flush nfsd idmap cache\n");
8562 struct timeval now = {
8563 @@ -565,10 +600,8 @@ nfsdreopen_one(struct idmap_client *ic)
8564 if (ic->ic_fd != -1)
8566 ic->ic_event.ev_fd = ic->ic_fd = fd;
8567 - if ((ic->ic_event.ev_flags & EVLIST_INIT) == 0) {
8568 - event_set(&ic->ic_event, ic->ic_fd, EV_READ, nfsdcb, ic);
8569 - event_add(&ic->ic_event, NULL);
8571 + event_set(&ic->ic_event, ic->ic_fd, EV_READ, nfsdcb, ic);
8572 + event_add(&ic->ic_event, NULL);
8574 warnx("nfsdreopen: Opening '%s' failed: errno %d (%s)",
8575 ic->ic_path, errno, strerror(errno));
8576 @@ -681,9 +714,7 @@ idtonameres(struct idmap_msg *im)
8577 sizeof(im->im_name));
8580 - /* XXX Hack? would rather return failure instead of writing nobody
8581 - * as above, but kernel seems not to deal well with that as of
8584 im->im_status = IDMAP_STATUS_SUCCESS;
8587 @@ -692,6 +723,14 @@ nametoidres(struct idmap_msg *im)
8591 + /* XXX: nobody fallbacks shouldn't always happen:
8592 + * server id -> name should be OK
8593 + * client name -> id should be OK
8594 + * but not otherwise */
8595 + /* XXX: move nobody stuff to library calls
8596 + * (nfs4_get_nobody_user(domain), nfs4_get_nobody_group(domain)) */
8597 + /* XXX: should make this call higher up in the call chain (so we'd
8598 + * have a chance on looking up server/whatever. */
8599 switch (im->im_type) {
8600 case IDMAP_TYPE_USER:
8601 ret = nfs4_name_to_uid(im->im_name, &im->im_id);
8602 @@ -704,9 +743,7 @@ nametoidres(struct idmap_msg *im)
8603 im->im_id = nobodygid;
8606 - /* XXX Hack? would rather return failure instead of writing nobody
8607 - * as above, but kernel seems not to deal well with that as of
8610 im->im_status = IDMAP_STATUS_SUCCESS;
8613 diff -puN utils/gssd/krb5_util.c~CITI_NFS4_ALL utils/gssd/krb5_util.c
8614 --- nfs-utils-1.0.7/utils/gssd/krb5_util.c~CITI_NFS4_ALL 2005-05-06 15:19:23.197280000 -0400
8615 +++ nfs-utils-1.0.7-kwc/utils/gssd/krb5_util.c 2005-05-06 15:19:26.501156000 -0400
8616 @@ -131,7 +131,7 @@ static int select_krb5_ccache(const stru
8617 static int gssd_find_existing_krb5_ccache(uid_t uid, struct dirent **d);
8618 static int gssd_get_single_krb5_cred(krb5_context context,
8619 krb5_keytab kt, struct gssd_k5_kt_princ *ple);
8620 -static int gssd_have_realm_ple(krb5_data *realm);
8621 +static int gssd_have_realm_ple(void *realm);
8622 static int gssd_process_krb5_keytab(krb5_context context, krb5_keytab kt,
8625 @@ -270,11 +270,7 @@ limit_krb5_enctypes(struct rpc_gss_sec *
8627 u_int maj_stat, min_stat;
8628 gss_cred_id_t credh;
8629 -/* krb5_enctype enctypes[] = {ENCTYPE_DES3_CBC_SHA1};
8630 - ENCTYPE_ARCFOUR_HMAC, */
8631 - krb5_enctype enctypes[] = {ENCTYPE_DES3_CBC_SHA1,
8632 - ENCTYPE_DES_CBC_MD5,
8633 - ENCTYPE_DES_CBC_CRC};
8634 + krb5_enctype enctypes[] = { ENCTYPE_DES_CBC_CRC };
8635 int num_enctypes = sizeof(enctypes) / sizeof(enctypes[0]);
8637 maj_stat = gss_acquire_cred(&min_stat, NULL, 0,
8638 @@ -349,7 +345,7 @@ gssd_get_single_krb5_cred(krb5_context c
8639 krb5_get_init_creds_opt_set_tkt_life(&options, 5*60);
8641 if ((code = krb5_get_init_creds_keytab(context, &my_creds, ple->princ,
8642 - kt, 0, 0, &options))) {
8643 + kt, 0, NULL, &options))) {
8645 if ((krb5_unparse_name(context, ple->princ, &pname))) {
8647 @@ -358,7 +354,11 @@ gssd_get_single_krb5_cred(krb5_context c
8648 "principal '%s' from keytab '%s'\n",
8649 error_message(code),
8650 pname ? pname : "<unparsable>", kt_name);
8652 if (pname) krb5_free_unparsed_name(context, pname);
8654 + if (pname) free(pname);
8659 @@ -410,13 +410,22 @@ gssd_get_single_krb5_cred(krb5_context c
8660 * 1 => found ple for given realm
8663 -gssd_have_realm_ple(krb5_data *realm)
8664 +gssd_have_realm_ple(void *r)
8666 struct gssd_k5_kt_princ *ple;
8668 + krb5_data *realm = (krb5_data *)r;
8670 + char *realm = (char *)r;
8673 for (ple = gssd_k5_kt_princ_list; ple; ple = ple->next) {
8675 if ((realm->length == strlen(ple->realm)) &&
8676 (strncmp(realm->data, ple->realm, realm->length) == 0)) {
8678 + if (strcmp(realm, ple->realm) == 0) {
8683 @@ -466,16 +475,27 @@ gssd_process_krb5_keytab(krb5_context co
8685 printerr(2, "Processing keytab entry for principal '%s'\n",
8688 if ( (kte.principal->data[0].length == GSSD_SERVICE_NAME_LEN) &&
8689 (strncmp(kte.principal->data[0].data, GSSD_SERVICE_NAME,
8690 GSSD_SERVICE_NAME_LEN) == 0) &&
8691 - (!gssd_have_realm_ple(&kte.principal->realm)) ) {
8693 + if ( (strlen(kte.principal->name.name_string.val[0]) == GSSD_SERVICE_NAME_LEN) &&
8694 + (strncmp(kte.principal->name.name_string.val[0], GSSD_SERVICE_NAME,
8695 + GSSD_SERVICE_NAME_LEN) == 0) &&
8698 + (!gssd_have_realm_ple((void *)&kte.principal->realm)) ) {
8699 printerr(2, "We will use this entry (%s)\n", pname);
8700 ple = malloc(sizeof(struct gssd_k5_kt_princ));
8702 printerr(0, "ERROR: could not allocate storage "
8703 "for principal list entry\n");
8705 krb5_free_unparsed_name(context, pname);
8712 @@ -484,13 +504,21 @@ gssd_process_krb5_keytab(krb5_context co
8717 strndup(kte.principal->realm.data,
8718 kte.principal->realm.length))
8720 + strdup(kte.principal->realm))
8723 printerr(0, "ERROR: %s while copying realm to "
8724 "principal list entry\n",
8725 "not enough memory");
8727 krb5_free_unparsed_name(context, pname);
8734 @@ -499,7 +527,11 @@ gssd_process_krb5_keytab(krb5_context co
8735 printerr(0, "ERROR: %s while copying principal "
8736 "to principal list entry\n",
8737 error_message(code));
8739 krb5_free_unparsed_name(context, pname);
8746 @@ -514,7 +546,11 @@ gssd_process_krb5_keytab(krb5_context co
8747 printerr(2, "We will NOT use this entry (%s)\n",
8751 krb5_free_unparsed_name(context, pname);
8757 if ((code = krb5_kt_end_seq_get(context, kt, &cursor))) {
8758 @@ -528,6 +564,36 @@ gssd_process_krb5_keytab(krb5_context co
8763 + * Depending on the version of Kerberos, we either need to use
8764 + * a private function, or simply set the environment variable.
8767 +gssd_set_krb5_ccache_name(char *ccname)
8769 +#ifdef USE_GSS_KRB5_CCACHE_NAME
8770 + u_int maj_stat, min_stat;
8772 + printerr(2, "using gss_krb5_ccache_name to select krb5 ccache %s\n",
8774 + maj_stat = gss_krb5_ccache_name(&min_stat, ccname, NULL);
8775 + if (maj_stat != GSS_S_COMPLETE) {
8776 + printerr(0, "WARNING: gss_krb5_ccache_name with "
8777 + "name '%s' failed (%s)\n",
8778 + ccname, error_message(min_stat));
8782 + * Set the KRB5CCNAME environment variable to tell the krb5 code
8783 + * which credentials cache to use. (Instead of using the private
8784 + * function above for which there is no generic gssapi
8787 + printerr(2, "using environment variable to select krb5 ccache %s\n",
8789 + setenv("KRB5CCNAME", ccname, 1);
8793 /*==========================*/
8794 /*=== External routines ===*/
8795 @@ -545,9 +611,6 @@ void
8796 gssd_setup_krb5_user_gss_ccache(uid_t uid, char *servername)
8798 char buf[MAX_NETOBJ_SZ];
8799 -#ifdef HAVE_GSS_KRB5_CCACHE_NAME
8804 printerr(2, "getting credentials for client with uid %u for "
8805 @@ -564,17 +627,7 @@ gssd_setup_krb5_user_gss_ccache(uid_t ui
8806 GSSD_DEFAULT_CRED_PREFIX, uid);
8807 printerr(2, "using %s as credentials cache for client with "
8808 "uid %u for server %s\n", buf, uid, servername);
8809 -#ifdef HAVE_GSS_KRB5_CCACHE_NAME
8810 - gss_krb5_ccache_name(&min_stat, buf, NULL);
8813 - * Set the KRB5CCNAME environment variable to tell the krb5 code
8814 - * which credentials cache to use. (Instead of using the private
8815 - * function above for which there is no generic gssapi
8818 - setenv("KRB5CCNAME", buf, 1);
8820 + gssd_set_krb5_ccache_name(buf);
8824 @@ -586,22 +639,9 @@ gssd_setup_krb5_user_gss_ccache(uid_t ui
8826 gssd_setup_krb5_machine_gss_ccache(char *ccname)
8828 -#ifdef HAVE_GSS_KRB5_CCACHE_NAME
8831 printerr(2, "using %s as credentials cache for machine creds\n",
8833 -#ifdef HAVE_GSS_KRB5_CCACHE_NAME
8834 - gss_krb5_ccache_name(&min_stat, ccname, NULL);
8837 - * Set the KRB5CCNAME environment variable to tell the krb5 code
8838 - * which credentials cache to use. (Instead of using the private
8839 - * function above for which there is no generic gssapi
8842 - setenv("KRB5CCNAME", ccname, 1);
8844 + gssd_set_krb5_ccache_name(ccname);
8848 diff -puN utils/svcgssd/svcgssd_main_loop.c~CITI_NFS4_ALL utils/svcgssd/svcgssd_main_loop.c
8849 --- nfs-utils-1.0.7/utils/svcgssd/svcgssd_main_loop.c~CITI_NFS4_ALL 2005-05-06 15:19:23.823030000 -0400
8850 +++ nfs-utils-1.0.7-kwc/utils/svcgssd/svcgssd_main_loop.c 2005-05-06 15:19:23.839029000 -0400
8851 @@ -58,19 +58,24 @@ gssd_run()
8852 f = fopen(NULLRPC_FILE, "rw");
8855 - printerr(0, "failed to open %s\n", NULLRPC_FILE);
8856 + printerr(0, "failed to open %s: %s\n",
8857 + NULLRPC_FILE, strerror(errno));
8860 pollfd.fd = fileno(f);
8861 pollfd.events = POLLIN;
8866 printerr(1, "entering poll\n");
8867 ret = poll(&pollfd, 1, -1);
8869 printerr(1, "leaving poll\n");
8871 - if (errno != EINTR)
8872 - printerr(0, "error return from poll\n");
8873 + if (save_err != EINTR)
8874 + printerr(0, "error return from poll: %s\n",
8875 + strerror(save_err));
8876 } else if (ret == 0) {
8877 /* timeout; shouldn't happen. */
8879 diff -puN utils/svcgssd/svcgssd_proc.c~CITI_NFS4_ALL utils/svcgssd/svcgssd_proc.c
8880 --- nfs-utils-1.0.7/utils/svcgssd/svcgssd_proc.c~CITI_NFS4_ALL 2005-05-06 15:19:24.071029000 -0400
8881 +++ nfs-utils-1.0.7-kwc/utils/svcgssd/svcgssd_proc.c 2005-05-06 15:19:24.087029000 -0400
8883 #include "context.h"
8884 #include "cacheio.h"
8891 extern char * mech2file(gss_OID mech);
8892 #define SVCGSSD_CONTEXT_CHANNEL "/proc/net/rpc/auth.rpcsec.context/channel"
8893 #define SVCGSSD_INIT_CHANNEL "/proc/net/rpc/auth.rpcsec.init/channel"
8894 @@ -162,6 +157,30 @@ send_response(FILE *f, gss_buffer_desc *
8895 #define rpcsec_gsserr_credproblem 13
8896 #define rpcsec_gsserr_ctxproblem 14
8899 +add_supplementary_groups(char *secname, char *name, struct svc_cred *cred)
8902 + static gid_t *groups = NULL;
8904 + cred->cr_ngroups = NGROUPS;
8905 + ret = nfs4_gss_princ_to_grouplist(secname, name,
8906 + cred->cr_groups, &cred->cr_ngroups);
8908 + groups = realloc(groups, cred->cr_ngroups*sizeof(gid_t));
8909 + ret = nfs4_gss_princ_to_grouplist(secname, name,
8910 + groups, &cred->cr_ngroups);
8912 + cred->cr_ngroups = 0;
8914 + if (cred->cr_ngroups > NGROUPS)
8915 + cred->cr_ngroups = NGROUPS;
8916 + memcpy(cred->cr_groups, groups,
8917 + cred->cr_ngroups*sizeof(gid_t));
8923 get_ids(gss_name_t client_name, gss_OID mech, struct svc_cred *cred)
8925 @@ -172,6 +191,7 @@ get_ids(gss_name_t client_name, gss_OID
8931 maj_stat = gss_display_name(&min_stat, client_name, &name, &name_type);
8932 if (maj_stat != GSS_S_COMPLETE)
8933 @@ -190,8 +210,7 @@ get_ids(gss_name_t client_name, gss_OID
8937 - /*XXX: want add_supplementary_groups(secname, sname, cred)? */
8938 - cred->cr_ngroups = 0;
8939 + add_supplementary_groups(secname, sname, cred);
8943 diff -puN utils/mountd/mountd.c~CITI_NFS4_ALL utils/mountd/mountd.c
8944 --- nfs-utils-1.0.7/utils/mountd/mountd.c~CITI_NFS4_ALL 2005-05-06 15:19:24.223963000 -0400
8945 +++ nfs-utils-1.0.7-kwc/utils/mountd/mountd.c 2005-05-06 15:19:24.241945000 -0400
8946 @@ -234,7 +234,10 @@ mount_pathconf_2_svc(struct svc_req *rqs
8948 mount_mnt_3_svc(struct svc_req *rqstp, dirpath *path, mountres3 *res)
8950 - static int flavors[] = { AUTH_NULL, AUTH_UNIX };
8951 +#define AUTH_GSS_KRB5 390003
8952 +#define AUTH_GSS_KRB5I 390004
8953 +#define AUTH_GSS_KRB5P 390005
8954 + static int flavors[] = { AUTH_NULL, AUTH_UNIX, AUTH_GSS_KRB5, AUTH_GSS_KRB5I, AUTH_GSS_KRB5P};
8955 struct nfs_fh_len *fh;
8957 xlog(D_CALL, "MNT3(%s) called", *path);
8958 @@ -243,7 +246,8 @@ mount_mnt_3_svc(struct svc_req *rqstp, d
8960 ok->fhandle.fhandle3_len = fh->fh_size;
8961 ok->fhandle.fhandle3_val = fh->fh_handle;
8962 - ok->auth_flavors.auth_flavors_len = 2;
8963 + ok->auth_flavors.auth_flavors_len
8964 + = sizeof(flavors)/sizeof(flavors[0]);
8965 ok->auth_flavors.auth_flavors_val = flavors;
8968 diff -puN debian/control~CITI_NFS4_ALL debian/control
8969 --- nfs-utils-1.0.7/debian/control~CITI_NFS4_ALL 2005-05-06 15:19:24.380806000 -0400
8970 +++ nfs-utils-1.0.7-kwc/debian/control 2005-05-06 15:19:25.937448000 -0400
8971 @@ -2,7 +2,7 @@ Source: nfs-utils
8974 Maintainer: Chip Salzenberg <chip@debian.org>
8975 -Build-Depends: debhelper (>= 4.1.16), libwrap0-dev, libevent-dev, libnfsidmap-dev, libkrb5-dev
8976 +Build-Depends: debhelper (>= 4.1.16), libwrap0-dev, libevent-dev, libnfsidmap-dev, libkrb5-dev, libgssapi-dev, librpcsecgss-dev
8977 Standards-Version: 3.1.1.1
8979 Package: nfs-kernel-server
8980 diff -puN -L debian/gssapi_mech.conf debian/gssapi_mech.conf~CITI_NFS4_ALL /dev/null
8981 --- nfs-utils-1.0.7/debian/gssapi_mech.conf
8982 +++ /dev/null 2005-05-05 05:47:05.259725168 -0400
8984 -# GSSAPI Mechanism Definitions
8986 -# This configuration file determines which GSS-API mechanisms
8987 -# the gssd code should use
8990 -# The initiaiization function "mechglue_internal_krb5_init"
8991 -# is used for the MIT krb5 gssapi mechanism. This special
8992 -# function name indicates that an internal function should
8993 -# be used to determine the entry points for the MIT gssapi
8994 -# mechanism funtions.
8996 -# library initialization function
8997 -# ================================ ==========================
8998 -# The MIT K5 gssapi library, use special function for initialization.
8999 -/usr/lib/libgssapi_krb5.so.2 mechglue_internal_krb5_init
9001 -# The SPKM3 gssapi library function. Use the function spkm3_gss_initialize.
9002 -#/usr/local/gss_mechs/spkm/spkm3/libgssapi_spkm3.so spkm3_gss_initialize
9003 diff -puN debian/nfs-common.conffiles~CITI_NFS4_ALL debian/nfs-common.conffiles
9004 --- nfs-utils-1.0.7/debian/nfs-common.conffiles~CITI_NFS4_ALL 2005-05-06 15:19:24.495740000 -0400
9005 +++ nfs-utils-1.0.7-kwc/debian/nfs-common.conffiles 2005-05-06 15:19:24.693739000 -0400
9007 /etc/default/nfs-common
9008 /etc/init.d/nfs-common
9010 -/etc/gssapi_mech.conf
9011 diff -puN debian/nfs-common.install~CITI_NFS4_ALL debian/nfs-common.install
9012 --- nfs-utils-1.0.7/debian/nfs-common.install~CITI_NFS4_ALL 2005-05-06 15:19:24.553740000 -0400
9013 +++ nfs-utils-1.0.7-kwc/debian/nfs-common.install 2005-05-06 15:19:24.698741000 -0400
9015 debian/idmapd.conf etc
9016 -debian/gssapi_mech.conf etc
9017 diff -puN support/Makefile~CITI_NFS4_ALL support/Makefile
9018 --- nfs-utils-1.0.7/support/Makefile~CITI_NFS4_ALL 2005-05-06 15:19:24.614738000 -0400
9019 +++ nfs-utils-1.0.7-kwc/support/Makefile 2005-05-06 15:19:25.944448000 -0400
9021 # Makefile for linux-nfs/support
9024 -SUBDIRS = include nfs export lib misc rpc gssapi
9025 +SUBDIRS = include nfs export lib misc
9028 include $(TOP)rules.mk
9029 diff -puN utils/gssd/Makefile~CITI_NFS4_ALL utils/gssd/Makefile
9030 --- nfs-utils-1.0.7/utils/gssd/Makefile~CITI_NFS4_ALL 2005-05-06 15:19:24.671739000 -0400
9031 +++ nfs-utils-1.0.7-kwc/utils/gssd/Makefile 2005-05-06 15:19:26.010447000 -0400
9032 @@ -6,8 +6,7 @@ PROGRAM = gssd
9034 OBJS = gssd.o gssd_main_loop.o gssd_proc.o err_util.o gss_util.o \
9035 gss_oids.o context.o context_heimdal.o krb5_util.o
9036 -LIBDEPS = $(TOP)support/lib/librpc.a $(TOP)support/lib/libgssapi.a
9037 -LIBS = -Wl,-rpath=$(KRBDIR)/lib -lrpc -lgssapi -ldl $(KRBLIB)
9038 +LIBS = -Wl,-rpath=$(KRBDIR)/lib -lrpcsecgss -lgssapi -ldl $(KRBLIB)
9041 include $(TOP)rules.mk
9042 diff -puN -L support/rpc/auth_gss.c support/rpc/auth_gss.c~CITI_NFS4_ALL /dev/null
9043 --- nfs-utils-1.0.7/support/rpc/auth_gss.c
9044 +++ /dev/null 2005-05-05 05:47:05.259725168 -0400
9049 - RPCSEC_GSS client routines.
9051 - Copyright (c) 2000 The Regents of the University of Michigan.
9052 - All rights reserved.
9054 - Copyright (c) 2000 Dug Song <dugsong@UMICH.EDU>.
9055 - All rights reserved, all wrongs reversed.
9057 - Redistribution and use in source and binary forms, with or without
9058 - modification, are permitted provided that the following conditions
9061 - 1. Redistributions of source code must retain the above copyright
9062 - notice, this list of conditions and the following disclaimer.
9063 - 2. Redistributions in binary form must reproduce the above copyright
9064 - notice, this list of conditions and the following disclaimer in the
9065 - documentation and/or other materials provided with the distribution.
9066 - 3. Neither the name of the University nor the names of its
9067 - contributors may be used to endorse or promote products derived
9068 - from this software without specific prior written permission.
9070 - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
9071 - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
9072 - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
9073 - DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
9074 - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
9075 - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
9076 - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
9077 - BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
9078 - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
9079 - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
9080 - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9085 -#include <stdlib.h>
9086 -#include <unistd.h>
9087 -#include <string.h>
9089 -#include <rpc/types.h>
9090 -#include <rpc/xdr.h>
9091 -#include <rpc/auth.h>
9092 -#include <rpc/auth_gss.h>
9093 -#include <rpc/clnt.h>
9094 -#include <netinet/in.h>
9095 -#include <gssapi/gssapi.h>
9097 -static void authgss_nextverf();
9098 -static bool_t authgss_marshal();
9099 -static bool_t authgss_refresh();
9100 -static bool_t authgss_validate();
9101 -static void authgss_destroy();
9102 -static void authgss_destroy_context();
9103 -static bool_t authgss_wrap();
9104 -static bool_t authgss_unwrap();
9108 - * from mit-krb5-1.2.1 mechglue/mglueP.h:
9109 - * Array of context IDs typed by mechanism OID
9111 -typedef struct gss_union_ctx_id_t {
9112 - gss_OID mech_type;
9113 - gss_ctx_id_t internal_ctx_id;
9114 -} gss_union_ctx_id_desc, *gss_union_ctx_id_t;
9116 -static struct auth_ops authgss_ops = {
9128 -/* useful as i add more mechanisms */
9130 -print_rpc_gss_sec(struct rpc_gss_sec *ptr)
9135 - log_debug("rpc_gss_sec:");
9136 - if(ptr->mech == NULL)
9137 - log_debug("NULL gss_OID mech");
9139 - fprintf(stderr, " mechanism_OID: {");
9140 - p = (char *)ptr->mech->elements;
9141 - for (i=0; i < ptr->mech->length; i++)
9142 - /* First byte of OIDs encoded to save a byte */
9144 - int first, second;
9149 - else if (40 <= *p && *p < 80) {
9153 - else if (80 <= *p && *p < 127) {
9158 - /* Invalid value! */
9162 - fprintf(stderr, " %u %u", first, second);
9166 - fprintf(stderr, " %u", (unsigned char)*p++);
9168 - fprintf(stderr, " }\n");
9170 - fprintf(stderr, " qop: %d\n", ptr->qop);
9171 - fprintf(stderr, " service: %d\n", ptr->svc);
9172 - fprintf(stderr, " cred: %p\n", ptr->cred);
9176 -struct rpc_gss_data {
9177 - bool_t established; /* context established */
9178 - gss_buffer_desc gc_wire_verf; /* save GSS_S_COMPLETE NULL RPC verfier
9179 - * to process at end of context negotiation*/
9180 - CLIENT *clnt; /* client handle */
9181 - gss_name_t name; /* service name */
9182 - struct rpc_gss_sec sec; /* security tuple */
9183 - gss_ctx_id_t ctx; /* context id */
9184 - struct rpc_gss_cred gc; /* client credentials */
9185 - u_int win; /* sequence window */
9188 -#define AUTH_PRIVATE(auth) ((struct rpc_gss_data *)auth->ah_private)
9190 -static struct timeval AUTH_TIMEOUT = { 25, 0 };
9193 -authgss_create(CLIENT *clnt, gss_name_t name, struct rpc_gss_sec *sec)
9195 - AUTH *auth, *save_auth;
9196 - struct rpc_gss_data *gd;
9197 - OM_uint32 min_stat = 0;
9199 - log_debug("in authgss_create()");
9201 - memset(&rpc_createerr, 0, sizeof(rpc_createerr));
9203 - if ((auth = calloc(sizeof(*auth), 1)) == NULL) {
9204 - rpc_createerr.cf_stat = RPC_SYSTEMERROR;
9205 - rpc_createerr.cf_error.re_errno = ENOMEM;
9208 - if ((gd = calloc(sizeof(*gd), 1)) == NULL) {
9209 - rpc_createerr.cf_stat = RPC_SYSTEMERROR;
9210 - rpc_createerr.cf_error.re_errno = ENOMEM;
9215 - fprintf(stderr, "authgss_create: name is %p\n", name);
9217 - if (name != GSS_C_NO_NAME) {
9218 - if (gss_duplicate_name(&min_stat, name, &gd->name)
9219 - != GSS_S_COMPLETE) {
9220 - rpc_createerr.cf_stat = RPC_SYSTEMERROR;
9221 - rpc_createerr.cf_error.re_errno = ENOMEM;
9230 - fprintf(stderr, "authgss_create: gd->name is %p\n", gd->name);
9233 - gd->ctx = GSS_C_NO_CONTEXT;
9236 - gd->gc.gc_v = RPCSEC_GSS_VERSION;
9237 - gd->gc.gc_proc = RPCSEC_GSS_INIT;
9238 - gd->gc.gc_svc = gd->sec.svc;
9240 - auth->ah_ops = &authgss_ops;
9241 - auth->ah_private = (caddr_t)gd;
9243 - save_auth = clnt->cl_auth;
9244 - clnt->cl_auth = auth;
9246 - if (!authgss_refresh(auth))
9249 - clnt->cl_auth = save_auth;
9255 -authgss_create_default(CLIENT *clnt, char *service, struct rpc_gss_sec *sec)
9258 - OM_uint32 maj_stat = 0, min_stat = 0;
9259 - gss_buffer_desc sname;
9260 - gss_name_t name = GSS_C_NO_NAME;
9262 - log_debug("in authgss_create_default()");
9265 - sname.value = service;
9266 - sname.length = strlen(service);
9268 - maj_stat = gss_import_name(&min_stat, &sname,
9269 - GSS_C_NT_HOSTBASED_SERVICE,
9272 - if (maj_stat != GSS_S_COMPLETE) {
9273 - log_status("gss_import_name", maj_stat, min_stat);
9274 - rpc_createerr.cf_stat = RPC_AUTHERROR;
9278 - auth = authgss_create(clnt, name, sec);
9280 - if (name != GSS_C_NO_NAME) {
9282 - fprintf(stderr, "authgss_create_default: freeing name %p\n", name);
9284 - gss_release_name(&min_stat, &name);
9291 -authgss_get_private_data(AUTH *auth, struct authgss_private_data *pd)
9293 - struct rpc_gss_data *gd;
9295 - log_debug("in authgss_get_private_data()");
9300 - gd = AUTH_PRIVATE(auth);
9302 - if (!gd || !gd->established)
9305 - pd->pd_ctx = gd->ctx;
9306 - pd->pd_ctx_hndl = gd->gc.gc_ctx;
9307 - pd->pd_seq_win = gd->win;
9313 -authgss_nextverf(AUTH *auth)
9315 - log_debug("in authgss_nextverf()");
9316 - /* no action necessary */
9320 -authgss_marshal(AUTH *auth, XDR *xdrs)
9323 - char tmp[MAX_AUTH_BYTES];
9324 - struct rpc_gss_data *gd;
9325 - gss_buffer_desc rpcbuf, checksum;
9326 - OM_uint32 maj_stat, min_stat;
9329 - log_debug("in authgss_marshal()");
9331 - gd = AUTH_PRIVATE(auth);
9333 - if (gd->established)
9336 - xdrmem_create(&tmpxdrs, tmp, sizeof(tmp), XDR_ENCODE);
9338 - if (!xdr_rpc_gss_cred(&tmpxdrs, &gd->gc)) {
9339 - XDR_DESTROY(&tmpxdrs);
9342 - auth->ah_cred.oa_flavor = RPCSEC_GSS;
9343 - auth->ah_cred.oa_base = tmp;
9344 - auth->ah_cred.oa_length = XDR_GETPOS(&tmpxdrs);
9346 - XDR_DESTROY(&tmpxdrs);
9348 - if (!xdr_opaque_auth(xdrs, &auth->ah_cred))
9351 - if (gd->gc.gc_proc == RPCSEC_GSS_INIT ||
9352 - gd->gc.gc_proc == RPCSEC_GSS_CONTINUE_INIT) {
9353 - return (xdr_opaque_auth(xdrs, &_null_auth));
9355 - /* Checksum serialized RPC header, up to and including credential. */
9356 - rpcbuf.length = XDR_GETPOS(xdrs);
9357 - XDR_SETPOS(xdrs, 0);
9358 - rpcbuf.value = XDR_INLINE(xdrs, rpcbuf.length);
9360 - maj_stat = gss_get_mic(&min_stat, gd->ctx, gd->sec.qop,
9361 - &rpcbuf, &checksum);
9363 - if (maj_stat != GSS_S_COMPLETE) {
9364 - log_status("gss_get_mic", maj_stat, min_stat);
9365 - if (maj_stat == GSS_S_CONTEXT_EXPIRED) {
9366 - gd->established = FALSE;
9367 - authgss_destroy_context(auth);
9371 - auth->ah_verf.oa_flavor = RPCSEC_GSS;
9372 - auth->ah_verf.oa_base = checksum.value;
9373 - auth->ah_verf.oa_length = checksum.length;
9375 - xdr_stat = xdr_opaque_auth(xdrs, &auth->ah_verf);
9376 - gss_release_buffer(&min_stat, &checksum);
9378 - return (xdr_stat);
9382 -authgss_validate(AUTH *auth, struct opaque_auth *verf)
9384 - struct rpc_gss_data *gd;
9385 - u_int num, qop_state;
9386 - gss_buffer_desc signbuf, checksum;
9387 - OM_uint32 maj_stat, min_stat;
9389 - log_debug("in authgss_validate()");
9391 - gd = AUTH_PRIVATE(auth);
9393 - if (gd->established == FALSE) {
9394 - /* would like to do this only on NULL rpc --
9395 - * gc->established is good enough.
9396 - * save the on the wire verifier to validate last
9397 - * INIT phase packet after decode if the major
9398 - * status is GSS_S_COMPLETE
9400 - if ((gd->gc_wire_verf.value =
9401 - mem_alloc(verf->oa_length)) == NULL) {
9402 - fprintf(stderr, "gss_validate: out of memory\n");
9405 - memcpy(gd->gc_wire_verf.value, verf->oa_base, verf->oa_length);
9406 - gd->gc_wire_verf.length = verf->oa_length;
9410 - if (gd->gc.gc_proc == RPCSEC_GSS_INIT ||
9411 - gd->gc.gc_proc == RPCSEC_GSS_CONTINUE_INIT) {
9412 - num = htonl(gd->win);
9414 - else num = htonl(gd->gc.gc_seq);
9416 - signbuf.value = #
9417 - signbuf.length = sizeof(num);
9419 - checksum.value = verf->oa_base;
9420 - checksum.length = verf->oa_length;
9422 - maj_stat = gss_verify_mic(&min_stat, gd->ctx, &signbuf,
9423 - &checksum, &qop_state);
9424 - if (maj_stat != GSS_S_COMPLETE || qop_state != gd->sec.qop) {
9425 - log_status("gss_verify_mic", maj_stat, min_stat);
9426 - if (maj_stat == GSS_S_CONTEXT_EXPIRED) {
9427 - gd->established = FALSE;
9428 - authgss_destroy_context(auth);
9436 -authgss_refresh(AUTH *auth)
9438 - struct rpc_gss_data *gd;
9439 - struct rpc_gss_init_res gr;
9440 - gss_buffer_desc *recv_tokenp, send_token;
9441 - OM_uint32 maj_stat, min_stat, call_stat, ret_flags;
9442 - OM_uint32 req_flags=0;
9444 - log_debug("in authgss_refresh()");
9446 - gd = AUTH_PRIVATE(auth);
9448 - if (gd->established)
9451 - /* GSS context establishment loop. */
9452 - memset(&gr, 0, sizeof(gr));
9453 - recv_tokenp = GSS_C_NO_BUFFER;
9456 - print_rpc_gss_sec(&gd->sec);
9461 - /* print the token we just received */
9462 - if (recv_tokenp != GSS_C_NO_BUFFER) {
9463 - log_debug("The token we just received (length %d):",
9464 - recv_tokenp->length);
9465 - log_hexdump(recv_tokenp->value, recv_tokenp->length, 0);
9468 - maj_stat = gss_init_sec_context(&min_stat,
9473 - gd->sec.req_flags,
9475 - NULL, /* channel */
9477 - NULL, /* used mech */
9480 - NULL); /* time rec */
9482 - if (recv_tokenp != GSS_C_NO_BUFFER) {
9483 - gss_release_buffer(&min_stat, &gr.gr_token);
9484 - recv_tokenp = GSS_C_NO_BUFFER;
9486 - if (maj_stat != GSS_S_COMPLETE &&
9487 - maj_stat != GSS_S_CONTINUE_NEEDED) {
9488 - log_status("gss_init_sec_context", maj_stat, min_stat);
9491 - if (send_token.length != 0) {
9492 - memset(&gr, 0, sizeof(gr));
9495 - /* print the token we are about to send */
9496 - log_debug("The token being sent (length %d):",
9497 - send_token.length);
9498 - log_hexdump(send_token.value, send_token.length, 0);
9501 - call_stat = clnt_call(gd->clnt, NULLPROC,
9502 - xdr_rpc_gss_init_args,
9504 - xdr_rpc_gss_init_res,
9505 - (caddr_t)&gr, AUTH_TIMEOUT);
9507 - gss_release_buffer(&min_stat, &send_token);
9509 - if (call_stat != RPC_SUCCESS ||
9510 - (gr.gr_major != GSS_S_COMPLETE &&
9511 - gr.gr_major != GSS_S_CONTINUE_NEEDED))
9514 - if (gr.gr_ctx.length != 0) {
9515 - if (gd->gc.gc_ctx.value)
9516 - gss_release_buffer(&min_stat,
9518 - gd->gc.gc_ctx = gr.gr_ctx;
9520 - if (gr.gr_token.length != 0) {
9521 - if (maj_stat != GSS_S_CONTINUE_NEEDED)
9523 - recv_tokenp = &gr.gr_token;
9525 - gd->gc.gc_proc = RPCSEC_GSS_CONTINUE_INIT;
9528 - /* GSS_S_COMPLETE => check gss header verifier,
9529 - * usually checked in gss_validate
9531 - if (maj_stat == GSS_S_COMPLETE) {
9532 - gss_buffer_desc bufin;
9533 - gss_buffer_desc bufout;
9534 - u_int seq, qop_state = 0;
9536 - seq = htonl(gr.gr_win);
9537 - bufin.value = (unsigned char *)&seq;
9538 - bufin.length = sizeof(seq);
9539 - bufout.value = (unsigned char *)gd->gc_wire_verf.value;
9540 - bufout.length = gd->gc_wire_verf.length;
9542 - maj_stat = gss_verify_mic(&min_stat, gd->ctx,
9543 - &bufin, &bufout, &qop_state);
9545 - if (maj_stat != GSS_S_COMPLETE
9546 - || qop_state != gd->sec.qop) {
9547 - log_status("gss_verify_mic", maj_stat, min_stat);
9548 - if (maj_stat == GSS_S_CONTEXT_EXPIRED) {
9549 - gd->established = FALSE;
9550 - authgss_destroy_context(auth);
9554 - gd->established = TRUE;
9555 - gd->gc.gc_proc = RPCSEC_GSS_DATA;
9556 - gd->gc.gc_seq = 0;
9557 - gd->win = gr.gr_win;
9561 - /* End context negotiation loop. */
9562 - if (gd->gc.gc_proc != RPCSEC_GSS_DATA) {
9563 - if (gr.gr_token.length != 0)
9564 - gss_release_buffer(&min_stat, &gr.gr_token);
9566 - authgss_destroy(auth);
9568 - rpc_createerr.cf_stat = RPC_AUTHERROR;
9576 -authgss_service(AUTH *auth, int svc)
9578 - struct rpc_gss_data *gd;
9580 - log_debug("in authgss_service()");
9584 - gd = AUTH_PRIVATE(auth);
9585 - if (!gd || !gd->established)
9587 - gd->sec.svc = svc;
9588 - gd->gc.gc_svc = svc;
9593 -authgss_destroy_context(AUTH *auth)
9595 - struct rpc_gss_data *gd;
9596 - OM_uint32 min_stat;
9598 - log_debug("in authgss_destroy_context()");
9600 - gd = AUTH_PRIVATE(auth);
9602 - if (gd->gc.gc_ctx.length != 0) {
9603 - if (gd->established) {
9604 - gd->gc.gc_proc = RPCSEC_GSS_DESTROY;
9605 - clnt_call(gd->clnt, NULLPROC, xdr_void, NULL,
9606 - xdr_void, NULL, AUTH_TIMEOUT);
9608 - gss_release_buffer(&min_stat, &gd->gc.gc_ctx);
9609 - /* XXX ANDROS check size of context - should be 8 */
9610 - memset(&gd->gc.gc_ctx, 0, sizeof(gd->gc.gc_ctx));
9612 - if (gd->ctx != GSS_C_NO_CONTEXT) {
9613 - gss_delete_sec_context(&min_stat, &gd->ctx, NULL);
9614 - gd->ctx = GSS_C_NO_CONTEXT;
9616 - gd->established = FALSE;
9620 -authgss_destroy(AUTH *auth)
9622 - struct rpc_gss_data *gd;
9623 - OM_uint32 min_stat;
9625 - log_debug("in authgss_destroy()");
9627 - gd = AUTH_PRIVATE(auth);
9629 - authgss_destroy_context(auth);
9632 - fprintf(stderr, "authgss_destroy: freeing name %p\n", gd->name);
9634 - if (gd->name != GSS_C_NO_NAME)
9635 - gss_release_name(&min_stat, &gd->name);
9642 -authgss_wrap(AUTH *auth, XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr)
9644 - struct rpc_gss_data *gd;
9646 - log_debug("in authgss_wrap()");
9648 - gd = AUTH_PRIVATE(auth);
9650 - if (!gd->established || gd->sec.svc == RPCSEC_GSS_SVC_NONE) {
9651 - return ((*xdr_func)(xdrs, xdr_ptr));
9653 - return (xdr_rpc_gss_data(xdrs, xdr_func, xdr_ptr,
9654 - gd->ctx, gd->sec.qop,
9655 - gd->sec.svc, gd->gc.gc_seq));
9659 -authgss_unwrap(AUTH *auth, XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr)
9661 - struct rpc_gss_data *gd;
9663 - log_debug("in authgss_unwrap()");
9665 - gd = AUTH_PRIVATE(auth);
9667 - if (!gd->established || gd->sec.svc == RPCSEC_GSS_SVC_NONE) {
9668 - return ((*xdr_func)(xdrs, xdr_ptr));
9670 - return (xdr_rpc_gss_data(xdrs, xdr_func, xdr_ptr,
9671 - gd->ctx, gd->sec.qop,
9672 - gd->sec.svc, gd->gc.gc_seq));
9674 diff -puN -L support/rpc/authgss_prot.c support/rpc/authgss_prot.c~CITI_NFS4_ALL /dev/null
9675 --- nfs-utils-1.0.7/support/rpc/authgss_prot.c
9676 +++ /dev/null 2005-05-05 05:47:05.259725168 -0400
9681 - Copyright (c) 2000 The Regents of the University of Michigan.
9682 - All rights reserved.
9684 - Copyright (c) 2000 Dug Song <dugsong@UMICH.EDU>.
9685 - All rights reserved, all wrongs reversed.
9687 - Redistribution and use in source and binary forms, with or without
9688 - modification, are permitted provided that the following conditions
9691 - 1. Redistributions of source code must retain the above copyright
9692 - notice, this list of conditions and the following disclaimer.
9693 - 2. Redistributions in binary form must reproduce the above copyright
9694 - notice, this list of conditions and the following disclaimer in the
9695 - documentation and/or other materials provided with the distribution.
9696 - 3. Neither the name of the University nor the names of its
9697 - contributors may be used to endorse or promote products derived
9698 - from this software without specific prior written permission.
9700 - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
9701 - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
9702 - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
9703 - DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
9704 - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
9705 - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
9706 - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
9707 - BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
9708 - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
9709 - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
9710 - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9715 -#include <stdlib.h>
9716 -#include <stdarg.h>
9717 -#include <rpc/types.h>
9718 -#include <rpc/xdr.h>
9719 -#include <rpc/auth.h>
9720 -#include <rpc/auth_gss.h>
9721 -#include <rpc/rpc.h>
9722 -#include <gssapi/gssapi.h>
9725 -xdr_rpc_gss_cred(XDR *xdrs, struct rpc_gss_cred *p)
9729 - xdr_stat = (xdr_u_int(xdrs, &p->gc_v) &&
9730 - xdr_enum(xdrs, (enum_t *)&p->gc_proc) &&
9731 - xdr_u_int(xdrs, &p->gc_seq) &&
9732 - xdr_enum(xdrs, (enum_t *)&p->gc_svc) &&
9733 - xdr_bytes(xdrs, (char **)&p->gc_ctx.value,
9734 - &p->gc_ctx.length, MAX_AUTH_BYTES));
9736 - log_debug("xdr_rpc_gss_cred: %s %s "
9737 - "(v %d, proc %d, seq %d, svc %d, ctx %p:%d)",
9738 - (xdrs->x_op == XDR_ENCODE) ? "encode" : "decode",
9739 - (xdr_stat == TRUE) ? "success" : "failure",
9740 - p->gc_v, p->gc_proc, p->gc_seq, p->gc_svc,
9741 - p->gc_ctx.value, p->gc_ctx.length);
9743 - return (xdr_stat);
9747 -xdr_rpc_gss_init_args(XDR *xdrs, gss_buffer_desc *p)
9751 - xdr_stat = xdr_bytes(xdrs, (char **)&p->value,
9752 - &p->length, MAX_NETOBJ_SZ);
9754 - log_debug("xdr_rpc_gss_init_args: %s %s (token %p:%d)",
9755 - (xdrs->x_op == XDR_ENCODE) ? "encode" : "decode",
9756 - (xdr_stat == TRUE) ? "success" : "failure",
9757 - p->value, p->length);
9759 - return (xdr_stat);
9763 -xdr_rpc_gss_init_res(XDR *xdrs, struct rpc_gss_init_res *p)
9767 - xdr_stat = (xdr_bytes(xdrs, (char **)&p->gr_ctx.value,
9768 - &p->gr_ctx.length, MAX_NETOBJ_SZ) &&
9769 - xdr_u_int(xdrs, &p->gr_major) &&
9770 - xdr_u_int(xdrs, &p->gr_minor) &&
9771 - xdr_u_int(xdrs, &p->gr_win) &&
9772 - xdr_bytes(xdrs, (char **)&p->gr_token.value,
9773 - &p->gr_token.length, MAX_NETOBJ_SZ));
9775 - log_debug("xdr_rpc_gss_init_res %s %s "
9776 - "(ctx %p:%d, maj %d, min %d, win %d, token %p:%d)",
9777 - (xdrs->x_op == XDR_ENCODE) ? "encode" : "decode",
9778 - (xdr_stat == TRUE) ? "success" : "failure",
9779 - p->gr_ctx.value, p->gr_ctx.length,
9780 - p->gr_major, p->gr_minor, p->gr_win,
9781 - p->gr_token.value, p->gr_token.length);
9783 - return (xdr_stat);
9787 -xdr_rpc_gss_wrap_data(XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr,
9788 - gss_ctx_id_t ctx, gss_qop_t qop,
9789 - rpc_gss_svc_t svc, u_int seq)
9791 - gss_buffer_desc databuf, wrapbuf;
9792 - OM_uint32 maj_stat, min_stat;
9793 - int start, end, conf_state;
9796 - /* Skip databody length. */
9797 - start = XDR_GETPOS(xdrs);
9798 - XDR_SETPOS(xdrs, start + 4);
9800 - /* Marshal rpc_gss_data_t (sequence number + arguments). */
9801 - if (!xdr_u_int(xdrs, &seq) || !(*xdr_func)(xdrs, xdr_ptr))
9803 - end = XDR_GETPOS(xdrs);
9805 - /* Set databuf to marshalled rpc_gss_data_t. */
9806 - databuf.length = end - start - 4;
9807 - XDR_SETPOS(xdrs, start + 4);
9808 - databuf.value = XDR_INLINE(xdrs, databuf.length);
9812 - if (svc == RPCSEC_GSS_SVC_INTEGRITY) {
9813 - /* Marshal databody_integ length. */
9814 - XDR_SETPOS(xdrs, start);
9815 - if (!xdr_u_int(xdrs, &databuf.length))
9818 - /* Checksum rpc_gss_data_t. */
9819 - maj_stat = gss_get_mic(&min_stat, ctx, qop,
9820 - &databuf, &wrapbuf);
9821 - if (maj_stat != GSS_S_COMPLETE) {
9822 - log_debug("gss_get_mic failed");
9825 - /* Marshal checksum. */
9826 - XDR_SETPOS(xdrs, end);
9827 - xdr_stat = xdr_bytes(xdrs, (char **)&wrapbuf.value,
9828 - &wrapbuf.length, MAX_NETOBJ_SZ);
9829 - gss_release_buffer(&min_stat, &wrapbuf);
9831 - else if (svc == RPCSEC_GSS_SVC_PRIVACY) {
9832 - /* Encrypt rpc_gss_data_t. */
9833 - maj_stat = gss_wrap(&min_stat, ctx, TRUE, qop, &databuf,
9834 - &conf_state, &wrapbuf);
9835 - if (maj_stat != GSS_S_COMPLETE) {
9836 - log_status("gss_wrap", maj_stat, min_stat);
9839 - /* Marshal databody_priv. */
9840 - XDR_SETPOS(xdrs, start);
9841 - xdr_stat = xdr_bytes(xdrs, (char **)&wrapbuf.value,
9842 - &wrapbuf.length, MAX_NETOBJ_SZ);
9843 - gss_release_buffer(&min_stat, &wrapbuf);
9845 - return (xdr_stat);
9849 -xdr_rpc_gss_unwrap_data(XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr,
9850 - gss_ctx_id_t ctx, gss_qop_t qop,
9851 - rpc_gss_svc_t svc, u_int seq)
9854 - gss_buffer_desc databuf, wrapbuf;
9855 - OM_uint32 maj_stat, min_stat;
9856 - u_int seq_num, conf_state, qop_state;
9859 - if (xdr_func == xdr_void || xdr_ptr == NULL)
9862 - memset(&databuf, 0, sizeof(databuf));
9863 - memset(&wrapbuf, 0, sizeof(wrapbuf));
9865 - if (svc == RPCSEC_GSS_SVC_INTEGRITY) {
9866 - /* Decode databody_integ. */
9867 - if (!xdr_bytes(xdrs, (char **)&databuf.value, &databuf.length,
9869 - log_debug("xdr decode databody_integ failed");
9872 - /* Decode checksum. */
9873 - if (!xdr_bytes(xdrs, (char **)&wrapbuf.value, &wrapbuf.length,
9875 - gss_release_buffer(&min_stat, &databuf);
9876 - log_debug("xdr decode checksum failed");
9879 - /* Verify checksum and QOP. */
9880 - maj_stat = gss_verify_mic(&min_stat, ctx, &databuf,
9881 - &wrapbuf, &qop_state);
9882 - gss_release_buffer(&min_stat, &wrapbuf);
9884 - if (maj_stat != GSS_S_COMPLETE || qop_state != qop) {
9885 - gss_release_buffer(&min_stat, &databuf);
9886 - log_status("gss_verify_mic", maj_stat, min_stat);
9890 - else if (svc == RPCSEC_GSS_SVC_PRIVACY) {
9891 - /* Decode databody_priv. */
9892 - if (!xdr_bytes(xdrs, (char **)&wrapbuf.value, &wrapbuf.length,
9894 - log_debug("xdr decode databody_priv failed");
9897 - /* Decrypt databody. */
9898 - maj_stat = gss_unwrap(&min_stat, ctx, &wrapbuf, &databuf,
9899 - &conf_state, &qop_state);
9901 - gss_release_buffer(&min_stat, &wrapbuf);
9903 - /* Verify encryption and QOP. */
9904 - if (maj_stat != GSS_S_COMPLETE || qop_state != qop ||
9905 - conf_state != TRUE) {
9906 - gss_release_buffer(&min_stat, &databuf);
9907 - log_status("gss_unwrap", maj_stat, min_stat);
9911 - /* Decode rpc_gss_data_t (sequence number + arguments). */
9912 - xdrmem_create(&tmpxdrs, databuf.value, databuf.length, XDR_DECODE);
9913 - xdr_stat = (xdr_u_int(&tmpxdrs, &seq_num) &&
9914 - (*xdr_func)(&tmpxdrs, xdr_ptr));
9915 - XDR_DESTROY(&tmpxdrs);
9916 - gss_release_buffer(&min_stat, &databuf);
9918 - /* Verify sequence number. */
9919 - if (xdr_stat == TRUE && seq_num != seq) {
9920 - log_debug("wrong sequence number in databody");
9923 - return (xdr_stat);
9927 -xdr_rpc_gss_data(XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr,
9928 - gss_ctx_id_t ctx, gss_qop_t qop,
9929 - rpc_gss_svc_t svc, u_int seq)
9931 - switch (xdrs->x_op) {
9934 - return (xdr_rpc_gss_wrap_data(xdrs, xdr_func, xdr_ptr,
9935 - ctx, qop, svc, seq));
9937 - return (xdr_rpc_gss_unwrap_data(xdrs, xdr_func, xdr_ptr,
9938 - ctx, qop,svc, seq));
9949 -log_debug(const char *fmt, ...)
9953 - va_start(ap, fmt);
9954 - fprintf(stderr, "rpcsec_gss: ");
9955 - vfprintf(stderr, fmt, ap);
9956 - fprintf(stderr, "\n");
9961 -log_status(char *m, OM_uint32 maj_stat, OM_uint32 min_stat)
9964 - gss_buffer_desc msg;
9967 - fprintf(stderr, "rpcsec_gss: %s: ", m);
9969 - gss_display_status(&min, maj_stat, GSS_C_GSS_CODE, GSS_C_NULL_OID,
9971 - fprintf(stderr, "%s - ", (char *)msg.value);
9972 - gss_release_buffer(&min, &msg);
9974 - gss_display_status(&min, min_stat, GSS_C_MECH_CODE, GSS_C_NULL_OID,
9976 - fprintf(stderr, "%s\n", (char *)msg.value);
9977 - gss_release_buffer(&min, &msg);
9981 -log_hexdump(const u_char *buf, int len, int offset)
9986 - fprintf(stderr, "\n");
9987 - for (i = 0; i < len; i += 0x10) {
9988 - fprintf(stderr, " %04x: ", (u_int)(i + offset));
9990 - jm = jm > 16 ? 16 : jm;
9992 - for (j = 0; j < jm; j++) {
9994 - fprintf(stderr, "%02x ", (u_int) buf[i+j]);
9996 - fprintf(stderr, "%02x", (u_int) buf[i+j]);
9998 - for (; j < 16; j++) {
9999 - if ((j % 2) == 1) printf(" ");
10000 - else fprintf(stderr, " ");
10002 - fprintf(stderr, " ");
10004 - for (j = 0; j < jm; j++) {
10006 - c = isprint(c) ? c : '.';
10007 - fprintf(stderr, "%c", c);
10009 - fprintf(stderr, "\n");
10016 -log_debug(const char *fmt, ...)
10021 -log_status(char *m, OM_uint32 maj_stat, OM_uint32 min_stat)
10026 -log_hexdump(const u_char *buf, int len, int offset)
10033 diff -puN -L support/rpc/DISCLAIMER support/rpc/DISCLAIMER~CITI_NFS4_ALL /dev/null
10034 --- nfs-utils-1.0.7/support/rpc/DISCLAIMER
10035 +++ /dev/null 2005-05-05 05:47:05.259725168 -0400
10037 -/* $OpenBSD: DISCLAIMER,v 1.2 1996/07/20 06:12:14 deraadt Exp $ */
10040 - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
10041 - * unrestricted use provided that this legend is included on all tape
10042 - * media and as a part of the software program in whole or part. Users
10043 - * may copy or modify Sun RPC without charge, but are not authorized
10044 - * to license or distribute it to anyone else except as part of a product or
10045 - * program developed by the user.
10047 - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
10048 - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
10049 - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
10051 - * Sun RPC is provided with no support and without any obligation on the
10052 - * part of Sun Microsystems, Inc. to assist in its use, correction,
10053 - * modification or enhancement.
10055 - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
10056 - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
10057 - * OR ANY PART THEREOF.
10059 - * In no event will Sun Microsystems, Inc. be liable for any lost revenue
10060 - * or profits or other special, indirect and consequential damages, even if
10061 - * Sun has been advised of the possibility of such damages.
10063 - * Sun Microsystems, Inc.
10064 - * 2550 Garcia Avenue
10065 - * Mountain View, California 94043
10067 diff -puN support/rpc/include/rpc/auth_gss.h~CITI_NFS4_ALL support/rpc/include/rpc/auth_gss.h
10068 --- nfs-utils-1.0.7/support/rpc/include/rpc/auth_gss.h~CITI_NFS4_ALL 2005-05-06 15:19:25.015738000 -0400
10069 +++ nfs-utils-1.0.7-kwc/support/rpc/include/rpc/auth_gss.h 2005-05-06 15:19:25.961448000 -0400
10071 #ifndef _RPC_AUTH_GSS_H
10072 #define _RPC_AUTH_GSS_H
10074 -#include "config.h"
10075 #include <rpc/clnt.h>
10076 -#include "../../../include/gssapi/gssapi.h"
10077 +#include <gssapi/gssapi.h>
10079 /* RPCSEC_GSS control procedures. */
10081 diff -puN -L support/rpc/Makefile support/rpc/Makefile~CITI_NFS4_ALL /dev/null
10082 --- nfs-utils-1.0.7/support/rpc/Makefile
10083 +++ /dev/null 2005-05-05 05:47:05.259725168 -0400
10087 -# rpc library with rpcsec_gss
10090 -LIBNAME = librpc.a
10091 -SRCS = auth_gss.c authgss_prot.c svc.c svc_run.c svc_auth.c \
10092 - svc_auth_none.c svc_auth_unix.c svc_auth_gss.c \
10093 - svc_raw.c svc_simple.c svc_tcp.c svc_udp.c \
10095 -OBJS = $(SRCS:.c=.o)
10097 -include $(TOP)rules.mk
10099 -CFLAGS += -I$(TOP)support/rpc/include -DDEBUG
10103 diff -puN -L support/rpc/README support/rpc/README~CITI_NFS4_ALL /dev/null
10104 --- nfs-utils-1.0.7/support/rpc/README
10105 +++ /dev/null 2005-05-05 05:47:05.259725168 -0400
10107 -RPCSRC 4.0 7/11/89
10109 -This distribution contains Sun Microsystem's implementation of the
10110 -RPC and XDR protocols and is compatible with 4.2BSD and 4.3BSD. Also
10111 -included is complete documentation, utilities, RPC service
10112 -specification files, and demonstration services in the format used by
10113 -the RPC protocol compiler (rpcgen). See WHAT'S NEW below for
10116 -NOTE ABOUT SECURE RPC:
10118 -This release of RPCSRC contains most of the code needed to implement
10119 -Secure RPC (see "DES Authentication" in the RPC Protocol Specification,
10120 -doc/rpc.rfc.ms). Due to legal considerations, we are unable to
10121 -distribute an implementation of DES, the Data Encryption Standard, which
10122 -Secure RPC requires. For this reason, all of the files, documentation, and
10123 -programs associated with Secure RPC have been placed into a separate
10124 -directory, secure_rpc. The RPC library contained in the main body of this
10125 -release *DOES NOT* support Secure RPC. See secure_rpc/README for more
10126 -details. (A DES library was posted in Volume 18 of comp.sources.unix.)
10128 -If you wish to report bugs found in this release, send mail to:
10131 -Sun Microsystems, Inc
10133 -2550 Garcia Avenue
10134 -Mountain View, CA 94043
10136 -or send Email to nfsnet@sun.com (the Internet) or sun!nfsnet (Usenet).
10140 -The directory hierarchy is as follows:
10142 - demo/ Various demonstration services
10143 - demo/dir Remote directory lister
10144 - demo/msg Remote console message delivery service
10145 - demo/sort Remote sort service
10147 - doc/ Documentation for RPC, XDR and NFS in "-ms" format.
10149 - etc/ Utilities (rpcinfo and portmap). portmap must be
10150 - started by root before any other RPC network services are
10151 - used. SEE BELOW FOR BUGFIX TO 4.3BSD COMPILER.
10153 - man/ Manual pages for RPC library, rpcgen, and utilities.
10155 - rpc/ The RPC and XDR library. SEE BELOW
10156 - FOR BUGFIX TO 4.2BSD COMPILER.
10158 - rpcgen/ The RPC Language compiler (for .x files)
10160 - rpcsvc/ Service definition files for various services and the
10161 - server and client code for the Remote Status service.
10163 - secure_rpc/ The files in this directory are used to build a version of
10164 - the RPC library with DES Authentication. See the README
10165 - file in that directory for more details.
10167 -BUILD INSTRUCTIONS
10169 -Makefiles can be found in all directories except for man. The
10170 -Makefile in the top directory will cause these others to be invoked
10171 -(except for in the doc, man and demo directories), in turn building the
10174 -WARNING! THE DEFAULT INSTALLATION PROCEDURES WILL INSTALL FILES
10175 -IN /usr/include, /usr/lib, /usr/bin and /etc.
10177 -The master RPC include file, rpc/rpc.h, is used by all programs and
10178 -routines that use RPC. It includes other RPC and system include files
10179 -needed by the RPC system. PLEASE NOTE: If your system has NFS, it
10180 -may have been based on Sun's NFS Source. The include files installed
10181 -by this package may duplicate include files you will find on your NFS
10182 -system. The RPCSRC 4.0 include files are upwardly compatible to all
10183 -NFS Source include files as of the date of this distribution (not
10184 -including any new definitions or declarations added by your system
10185 -vendor). HOWEVER: Please read the comments towards the end of
10186 -rpc/rpc.h regarding rpc/netdb.h. You may need to uncomment the
10187 -inclusion of that file if the structures it defines are already
10188 -defined by your system's include files.
10190 -After making any compiler fixes that are needed (see below), at
10191 -the top directory, type:
10195 -For all installations, the Makefile macro DESTDIR is prepended to the
10196 -installation path. It is defined to be null in the Makefiles, so
10197 -installations are relative to root. (You will probably need root
10198 -privileges for installing the files under the default path.) To
10199 -install the files under some other tree (e.g., /usr/local), use the
10202 - make install DESTDIR=/usr/local
10204 -This will place the include files in /usr/local/usr/include, the RPC
10205 -library in /usr/local/usr/lib, rpcgen in /usr/local/usr/bin, and the
10206 -utilities in /usr/local/etc. You'll have to edit the Makefiles or
10207 -install the files by hand if you want to do anything other than this
10208 -kind of relocation of the installation tree.
10210 -The RPC library will be built and installed first. By default it is
10211 -installed in /usr/lib as "librpclib.a". The directory
10212 -/usr/include/rpc will also be created, and several header files will
10213 -be installed there. ALL RPC SERVICES INCLUDE THESE HEADER FILES.
10215 -The programs in etc/ link in routines from librpclib.a. If you change
10216 -where it is installed, be sure to edit etc/'s Makefile to reflect this.
10217 -These programs are installed in /etc. PORTMAP MUST BE RUNNING ON
10218 -YOUR SYSTEM BEFORE YOU START ANY OTHER RPC SERVICE.
10220 -rpcgen is installed in /usr/bin. This program is required to build
10221 -the demonstration services in demo and the rstat client and server in
10224 -The rpcsvc/ directory will install its files in the directory
10225 -/usr/include/rpcsvc. The Remote Status service (rstat_svc) will be
10226 -compiled and installed in /etc. If you wish to make this service
10227 -available, you should either start this service when needed or have
10228 -it started at boot time by invoking it in your /etc/rc.local script.
10229 -(Be sure that portmap is started first!) Sun has modified its
10230 -version of inetd to automatically start RPC services. (Use "make
10231 -LIB=" when building rstat on a Sun Workstation.) The Remote Status
10232 -client (rstat) will be installed in /usr/bin. This program queries
10233 -the rstat_svc on a remote host and prints a system status summary
10234 -similar to the one printed by "uptime".
10236 -The documentation is not built during the "make install" command.
10237 -Typing "make" in the doc directory will cause all of the manuals to
10238 -be formatted using nroff into a single file. We have had a report
10239 -that certain "troff" equivalents have trouble processing the full
10240 -manual. If you have trouble, try building the manuals individually
10241 -(see the Makefile).
10243 -The demonstration services in the demo directory are not built by the
10244 -top-level "make install" command. To build these, cd to the demo
10245 -directory and enter "make". The three services will be built.
10246 -RPCGEN MUST BE INSTALLED in a path that make can find. To run the
10247 -services, start the portmap program as root and invoke the service
10248 -(you probably will want to put it in the background). rpcinfo can be
10249 -used to check that the service succeeded in getting registered with
10250 -portmap, and to ping the service (see rpcinfo's man page). You can
10251 -then use the corresponding client program to exercise the service.
10252 -To build these services on a Sun workstation, you must prevent the
10253 -Makefile from trying to link the RPC library (as these routines are
10254 -already a part of Sun's libc). Use: "make LIB=".
10256 -BUGFIX FOR 4.3BSD COMPILER
10258 -The use of a 'void *' declaration for one of the arguments in
10259 -the reply_proc() procedure in etc/rpcinfo.c will trigger a bug
10260 -in the 4.3BSD compiler. The bug is fixed by the following change to
10261 -the compiler file mip/manifest.h:
10263 -*** manifest.h.r1.1 Thu Apr 30 13:52:25 1987
10264 ---- manifest.h.r1.2 Mon Nov 23 18:58:17 1987
10268 - * Bogus type values
10270 -! #define TNULL PTR /* pointer to UNDEF */
10271 - #define TVOID FTN /* function returning UNDEF (for void) */
10276 - * Bogus type values
10278 -! #define TNULL INCREF(MOETY) /* pointer to MOETY -- impossible type */
10279 - #define TVOID FTN /* function returning UNDEF (for void) */
10283 -If you cannot fix your compiler, change the declaration in reply_proc()
10284 -from 'void *' to 'char *'.
10286 -BUGFIX FOR 4.2BSD COMPILER
10288 -Unpatched 4.2BSD compilers complain about valid C. You can make old
10289 -compilers happy by changing some voids to ints. However, the fix to
10290 -the 4.2 VAX compiler is as follows (to mip/trees.c):
10292 -*** trees.c.r1.1 Mon May 11 13:47:58 1987
10293 ---- trees.c.r1.2 Wed Jul 2 18:28:52 1986
10295 -*** 1247,1253 ****
10296 - if(o==CAST && mt1==0)return(TYPL+TYMATCH);
10297 - if( mt12 & MDBI ) return( TYPL+LVAL+TYMATCH );
10298 - else if( (mt1&MENU)||(mt2&MENU) ) return( LVAL+NCVT+TYPL+PTMATCH+PUN );
10299 -! else if( mt12 == 0 ) break;
10300 - else if( mt1 & MPTR ) return( LVAL+PTMATCH+PUN );
10301 - else if( mt12 & MPTI ) return( TYPL+LVAL+TYMATCH+PUN );
10303 ---- 1261,1269 ----
10304 - if(o==CAST && mt1==0)return(TYPL+TYMATCH);
10305 - if( mt12 & MDBI ) return( TYPL+LVAL+TYMATCH );
10306 - else if( (mt1&MENU)||(mt2&MENU) ) return( LVAL+NCVT+TYPL+PTMATCH+PUN );
10307 -! /* if right is TVOID and looks like a CALL, is not ok */
10308 -! else if (mt2 == 0 && (p->in.right->in.op == CALL || p->in.right->in.op == UNARY CALL))
10310 - else if( mt1 & MPTR ) return( LVAL+PTMATCH+PUN );
10311 - else if( mt12 & MPTI ) return( TYPL+LVAL+TYMATCH+PUN );
10314 -WHAT'S NEW IN THIS RELEASE: RPCSRC 4.0
10316 -The previous release was RPCSRC 3.9. As with all previous releases,
10317 -this release is based directly on files from Sun Microsystem's
10320 -Upgrade from RPCSRC 3.9
10322 -1) RPCSRC 4.0 upgrades RPCSRC 3.9. Improvements from SunOS 4.0 have
10323 - been integrated into this release.
10325 -Secure RPC (in the secure_rpc/ directory)
10327 -2) DES Authentication routines and programs are provided.
10328 -3) A new manual, "Secure NFS" is provided, which describes Secure RPC
10330 -4) Skeleton routines and manual pages are provided which describe the
10331 - DES encryption procedures required by Secure RPC. HOWEVER, NO DES
10332 - ROUTINE IS PROVIDED.
10336 -5) rpcinfo can now be used to de-register services from the portmapper
10337 - which may have terminated abnormally.
10338 -6) A new client, rstat, is provided which queries the rstat_svc and
10339 - prints a status line similar to the one displayed by "uptime".
10340 diff -puN -L support/rpc/rpc_commondata.c support/rpc/rpc_commondata.c~CITI_NFS4_ALL /dev/null
10341 --- nfs-utils-1.0.7/support/rpc/rpc_commondata.c
10342 +++ /dev/null 2005-05-05 05:47:05.259725168 -0400
10345 - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
10346 - * unrestricted use provided that this legend is included on all tape
10347 - * media and as a part of the software program in whole or part. Users
10348 - * may copy or modify Sun RPC without charge, but are not authorized
10349 - * to license or distribute it to anyone else except as part of a product or
10350 - * program developed by the user.
10352 - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
10353 - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
10354 - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
10356 - * Sun RPC is provided with no support and without any obligation on the
10357 - * part of Sun Microsystems, Inc. to assist in its use, correction,
10358 - * modification or enhancement.
10360 - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
10361 - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
10362 - * OR ANY PART THEREOF.
10364 - * In no event will Sun Microsystems, Inc. be liable for any lost revenue
10365 - * or profits or other special, indirect and consequential damages, even if
10366 - * Sun has been advised of the possibility of such damages.
10368 - * Sun Microsystems, Inc.
10369 - * 2550 Garcia Avenue
10370 - * Mountain View, California 94043
10373 -#if defined(LIBC_SCCS) && !defined(lint)
10374 -static char *rcsid = "$OpenBSD: rpc_commondata.c,v 1.3 1996/08/19 08:31:47 tholo Exp $";
10375 -#endif /* LIBC_SCCS and not lint */
10377 -#include <rpc/rpc.h>
10379 - * This file should only contain common data (global data) that is exported
10380 - * by public interfaces
10382 -struct opaque_auth _null_auth;
10384 -int svc_maxfd = -1;
10385 -struct rpc_createerr rpc_createerr;
10386 diff -puN -L support/rpc/svc_auth.c support/rpc/svc_auth.c~CITI_NFS4_ALL /dev/null
10387 --- nfs-utils-1.0.7/support/rpc/svc_auth.c
10388 +++ /dev/null 2005-05-05 05:47:05.259725168 -0400
10391 - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
10392 - * unrestricted use provided that this legend is included on all tape
10393 - * media and as a part of the software program in whole or part. Users
10394 - * may copy or modify Sun RPC without charge, but are not authorized
10395 - * to license or distribute it to anyone else except as part of a product or
10396 - * program developed by the user.
10398 - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
10399 - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
10400 - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
10402 - * Sun RPC is provided with no support and without any obligation on the
10403 - * part of Sun Microsystems, Inc. to assist in its use, correction,
10404 - * modification or enhancement.
10406 - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
10407 - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
10408 - * OR ANY PART THEREOF.
10410 - * In no event will Sun Microsystems, Inc. be liable for any lost revenue
10411 - * or profits or other special, indirect and consequential damages, even if
10412 - * Sun has been advised of the possibility of such damages.
10414 - * Sun Microsystems, Inc.
10415 - * 2550 Garcia Avenue
10416 - * Mountain View, California 94043
10419 -#if defined(LIBC_SCCS) && !defined(lint)
10420 -static char *rcsid = "$OpenBSD: svc_auth.c,v 1.4 1998/03/19 00:27:22 millert Exp $";
10421 -#endif /* LIBC_SCCS and not lint */
10424 - * svc_auth_nodes.c, Server-side rpc authenticator interface,
10425 - * *WITHOUT* DES authentication.
10427 - * Copyright (C) 1984, Sun Microsystems, Inc.
10430 -#include <rpc/rpc.h>
10433 - * svcauthsw is the bdevsw of server side authentication.
10435 - * Server side authenticators are called from authenticate by
10436 - * using the client auth struct flavor field to index into svcauthsw.
10437 - * The server auth flavors must implement a routine that looks
10441 - * flavorx_auth(rqst, msg)
10442 - * register struct svc_req *rqst;
10443 - * register struct rpc_msg *msg;
10447 -enum auth_stat _svcauth_none(); /* no authentication */
10448 -enum auth_stat _svcauth_unix(); /* unix style (uid, gids) */
10449 -enum auth_stat _svcauth_short(); /* short hand unix style */
10450 -enum auth_stat _svcauth_gss(); /* RPCSEC_GSS */
10453 - enum auth_stat (*authenticator)();
10455 - { _svcauth_none }, /* AUTH_NONE */
10456 - { _svcauth_unix }, /* AUTH_UNIX */
10457 - { _svcauth_short }, /* AUTH_SHORT */
10458 - { _svcauth_none }, /* AUTH_DES - does not exist */
10459 - { _svcauth_none },
10460 - { _svcauth_none },
10461 - { _svcauth_gss } /* RPCSEC_GSS */
10463 -#define AUTH_MAX 6 /* HIGHEST AUTH NUMBER */
10466 - * The call rpc message, msg has been obtained from the wire. The msg contains
10467 - * the raw form of credentials and verifiers. authenticate returns AUTH_OK
10468 - * if the msg is successfully authenticated. If AUTH_OK then the routine also
10469 - * does the following things:
10470 - * set rqst->rq_xprt->verf to the appropriate response verifier;
10471 - * sets rqst->rq_clntcred to the "cooked" form of the credentials.
10473 - * NB: rqst->rq_xprt->verf must be pre-alloctaed;
10474 - * its length is set appropriately.
10476 - * The caller still owns and is responsible for msg->u.cmb.cred and
10477 - * msg->u.cmb.verf. The authentication system retains ownership of
10478 - * rqst->rq_clntcred, the cooked credentials.
10480 - * There is an assumption that any flavour less than AUTH_NONE is
10484 -_authenticate(rqst, msg, no_dispatch)
10485 - register struct svc_req *rqst;
10486 - struct rpc_msg *msg;
10487 - bool_t *no_dispatch;
10489 - register int cred_flavor;
10491 - rqst->rq_cred = msg->rm_call.cb_cred;
10492 - rqst->rq_xprt->xp_verf.oa_flavor = _null_auth.oa_flavor;
10493 - rqst->rq_xprt->xp_verf.oa_length = 0;
10494 - cred_flavor = rqst->rq_cred.oa_flavor;
10495 - *no_dispatch = FALSE;
10497 - if ((cred_flavor <= AUTH_MAX) && (cred_flavor >= AUTH_NONE)) {
10498 - return ((*(svcauthsw[cred_flavor].authenticator))(rqst, msg, no_dispatch));
10501 - return (AUTH_REJECTEDCRED);
10503 diff -puN -L support/rpc/svc_auth_gss.c support/rpc/svc_auth_gss.c~CITI_NFS4_ALL /dev/null
10504 --- nfs-utils-1.0.7/support/rpc/svc_auth_gss.c
10505 +++ /dev/null 2005-05-05 05:47:05.259725168 -0400
10510 - Copyright (c) 2000 The Regents of the University of Michigan.
10511 - All rights reserved.
10513 - Copyright (c) 2000 Dug Song <dugsong@UMICH.EDU>.
10514 - All rights reserved, all wrongs reversed.
10516 - Redistribution and use in source and binary forms, with or without
10517 - modification, are permitted provided that the following conditions
10520 - 1. Redistributions of source code must retain the above copyright
10521 - notice, this list of conditions and the following disclaimer.
10522 - 2. Redistributions in binary form must reproduce the above copyright
10523 - notice, this list of conditions and the following disclaimer in the
10524 - documentation and/or other materials provided with the distribution.
10525 - 3. Neither the name of the University nor the names of its
10526 - contributors may be used to endorse or promote products derived
10527 - from this software without specific prior written permission.
10529 - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
10530 - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
10531 - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
10532 - DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
10533 - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
10534 - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
10535 - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
10536 - BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
10537 - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
10538 - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
10539 - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
10543 -#include <stdio.h>
10544 -#include <stdlib.h>
10545 -#include <string.h>
10546 -#include <rpc/rpc.h>
10547 -#include <gssapi/gssapi.h>
10549 -extern SVCAUTH svc_auth_none;
10552 - * from mit-krb5-1.2.1 mechglue/mglueP.h:
10553 - * Array of context IDs typed by mechanism OID
10555 -typedef struct gss_union_ctx_id_t {
10556 - gss_OID mech_type;
10557 - gss_ctx_id_t internal_ctx_id;
10558 -} gss_union_ctx_id_desc, *gss_union_ctx_id_t;
10562 -static bool_t svcauth_gss_destroy();
10563 -static bool_t svcauth_gss_wrap();
10564 -static bool_t svcauth_gss_unwrap();
10566 -struct svc_auth_ops svc_auth_gss_ops = {
10567 - svcauth_gss_wrap,
10568 - svcauth_gss_unwrap,
10569 - svcauth_gss_destroy
10572 -struct svc_rpc_gss_data {
10573 - bool_t established; /* context established */
10574 - gss_ctx_id_t ctx; /* context id */
10575 - struct rpc_gss_sec sec; /* security triple */
10576 - gss_buffer_desc cname; /* GSS client name */
10577 - u_int seq; /* sequence number */
10578 - u_int win; /* sequence window */
10579 - u_int seqlast; /* last sequence number */
10580 - u_int32_t seqmask; /* bitmask of seqnums */
10581 - gss_name_t client_name; /* unparsed name string */
10584 -#define SVCAUTH_PRIVATE(auth) \
10585 - ((struct svc_rpc_gss_data *)(auth)->svc_ah_private)
10587 -/* Global server credentials. */
10588 -gss_cred_id_t _svcauth_gss_creds;
10589 -static gss_name_t _svcauth_gss_name = NULL;
10592 -svcauth_gss_set_svc_name(gss_name_t name)
10594 - OM_uint32 maj_stat, min_stat;
10596 - log_debug("in svcauth_gss_set_svc_name()");
10598 - if (_svcauth_gss_name != NULL) {
10599 - maj_stat = gss_release_name(&min_stat, &_svcauth_gss_name);
10601 - if (maj_stat != GSS_S_COMPLETE) {
10602 - log_status("gss_release_name", maj_stat, min_stat);
10605 - _svcauth_gss_name = NULL;
10607 - maj_stat = gss_duplicate_name(&min_stat, name, &_svcauth_gss_name);
10609 - if (maj_stat != GSS_S_COMPLETE) {
10610 - log_status("gss_duplicate_name", maj_stat, min_stat);
10618 -svcauth_gss_import_name(char *service)
10621 - gss_buffer_desc namebuf;
10622 - OM_uint32 maj_stat, min_stat;
10624 - log_debug("in svcauth_gss_import_name()");
10626 - namebuf.value = service;
10627 - namebuf.length = strlen(service);
10629 - maj_stat = gss_import_name(&min_stat, &namebuf,
10630 - GSS_C_NT_HOSTBASED_SERVICE, &name);
10632 - if (maj_stat != GSS_S_COMPLETE) {
10633 - log_status("gss_import_name", maj_stat, min_stat);
10636 - if (svcauth_gss_set_svc_name(name) != TRUE) {
10637 - gss_release_name(&min_stat, &name);
10644 -svcauth_gss_acquire_cred(void)
10646 - OM_uint32 maj_stat, min_stat;
10648 - log_debug("in svcauth_gss_acquire_cred()");
10650 - maj_stat = gss_acquire_cred(&min_stat, _svcauth_gss_name, 0,
10651 - GSS_C_NULL_OID_SET, GSS_C_ACCEPT,
10652 - &_svcauth_gss_creds, NULL, NULL);
10654 - if (maj_stat != GSS_S_COMPLETE) {
10655 - log_status("gss_acquire_cred", maj_stat, min_stat);
10662 -svcauth_gss_release_cred(void)
10664 - OM_uint32 maj_stat, min_stat;
10666 - log_debug("in svcauth_gss_release_cred()");
10668 - maj_stat = gss_release_cred(&min_stat, &_svcauth_gss_creds);
10670 - if (maj_stat != GSS_S_COMPLETE) {
10671 - log_status("gss_release_cred", maj_stat, min_stat);
10675 - _svcauth_gss_creds = NULL;
10681 -svcauth_gss_accept_sec_context(struct svc_req *rqst,
10682 - struct rpc_gss_init_res *gr)
10684 - struct svc_rpc_gss_data *gd;
10685 - struct rpc_gss_cred *gc;
10686 - gss_buffer_desc recv_tok, seqbuf, checksum;
10688 - OM_uint32 maj_stat = 0, min_stat = 0, ret_flags, seq;
10690 - log_debug("in svcauth_gss_accept_context()");
10692 - gd = SVCAUTH_PRIVATE(rqst->rq_xprt->xp_auth);
10693 - gc = (struct rpc_gss_cred *)rqst->rq_clntcred;
10694 - memset(gr, 0, sizeof(*gr));
10696 - /* Deserialize arguments. */
10697 - memset(&recv_tok, 0, sizeof(recv_tok));
10699 - if (!svc_getargs(rqst->rq_xprt, xdr_rpc_gss_init_args,
10700 - (caddr_t)&recv_tok))
10703 - gr->gr_major = gss_accept_sec_context(&gr->gr_minor,
10705 - _svcauth_gss_creds,
10707 - GSS_C_NO_CHANNEL_BINDINGS,
10708 - &gd->client_name,
10715 - if (gr->gr_major != GSS_S_COMPLETE &&
10716 - gr->gr_major != GSS_S_CONTINUE_NEEDED) {
10717 - log_status("accept_sec_context", gr->gr_major, gr->gr_minor);
10718 - gd->ctx = GSS_C_NO_CONTEXT;
10719 - gss_release_buffer(&min_stat, &gr->gr_token);
10722 - /* ANDROS: krb5 mechglue returns ctx of size 8 - two pointers,
10723 - * one to the mechanism oid, one to the internal_ctx_id */
10724 - if ((gr->gr_ctx.value = mem_alloc(sizeof(gss_union_ctx_id_desc))) == NULL) {
10725 - fprintf(stderr, "svcauth_gss_accept_context: out of memory\n");
10728 - memcpy(gr->gr_ctx.value, gd->ctx, sizeof(gss_union_ctx_id_desc));
10729 - gr->gr_ctx.length = sizeof(gss_union_ctx_id_desc);
10731 - /* ANDROS: change for debugging linux kernel version...
10732 - gr->gr_win = sizeof(gd->seqmask) * 8;
10734 - gr->gr_win = 0x00000005;
10736 - /* Save client info. */
10737 - gd->sec.mech = mech;
10738 - gd->sec.qop = GSS_C_QOP_DEFAULT;
10739 - gd->sec.svc = gc->gc_svc;
10740 - gd->seq = gc->gc_seq;
10741 - gd->win = gr->gr_win;
10743 - if (gr->gr_major == GSS_S_COMPLETE) {
10744 - maj_stat = gss_display_name(&min_stat, gd->client_name,
10745 - &gd->cname, &gd->sec.mech);
10746 - if (maj_stat != GSS_S_COMPLETE) {
10747 - log_status("display_name", maj_stat, min_stat);
10753 - gss_buffer_desc mechname;
10755 - gss_oid_to_str(&min_stat, mech, &mechname);
10757 - log_debug("accepted context for %.*s with "
10758 - "<mech %.*s, qop %d, svc %d>",
10759 - gd->cname.length, (char *)gd->cname.value,
10760 - mechname.length, (char *)mechname.value,
10761 - gd->sec.qop, gd->sec.svc);
10763 - gss_release_buffer(&min_stat, &mechname);
10765 -#elif HAVE_HEIMDAL
10766 - log_debug("accepted context for %.*s with "
10767 - "<mech {}, qop %d, svc %d>",
10768 - gd->cname.length, (char *)gd->cname.value,
10769 - gd->sec.qop, gd->sec.svc);
10771 -#endif /* DEBUG */
10772 - seq = htonl(gr->gr_win);
10773 - seqbuf.value = &seq;
10774 - seqbuf.length = sizeof(seq);
10776 - maj_stat = gss_sign(&min_stat, gd->ctx, GSS_C_QOP_DEFAULT,
10777 - &seqbuf, &checksum);
10779 - if (maj_stat != GSS_S_COMPLETE)
10782 - rqst->rq_xprt->xp_verf.oa_flavor = RPCSEC_GSS;
10783 - rqst->rq_xprt->xp_verf.oa_base = checksum.value;
10784 - rqst->rq_xprt->xp_verf.oa_length = checksum.length;
10790 -svcauth_gss_validate(struct svc_rpc_gss_data *gd, struct rpc_msg *msg)
10792 - struct opaque_auth *oa;
10793 - gss_buffer_desc rpcbuf, checksum;
10794 - OM_uint32 maj_stat, min_stat, qop_state;
10795 - u_char rpchdr[128];
10798 - log_debug("in svcauth_gss_validate()");
10800 - memset(rpchdr, 0, sizeof(rpchdr));
10802 - /* XXX - Reconstruct RPC header for signing (from xdr_callmsg). */
10803 - buf = (int32_t *)rpchdr;
10804 - IXDR_PUT_LONG(buf, msg->rm_xid);
10805 - IXDR_PUT_ENUM(buf, msg->rm_direction);
10806 - IXDR_PUT_LONG(buf, msg->rm_call.cb_rpcvers);
10807 - IXDR_PUT_LONG(buf, msg->rm_call.cb_prog);
10808 - IXDR_PUT_LONG(buf, msg->rm_call.cb_vers);
10809 - IXDR_PUT_LONG(buf, msg->rm_call.cb_proc);
10810 - oa = &msg->rm_call.cb_cred;
10811 - IXDR_PUT_ENUM(buf, oa->oa_flavor);
10812 - IXDR_PUT_LONG(buf, oa->oa_length);
10813 - if (oa->oa_length) {
10814 - memcpy((caddr_t)buf, oa->oa_base, oa->oa_length);
10815 - buf += RNDUP(oa->oa_length) / sizeof(int32_t);
10817 - rpcbuf.value = rpchdr;
10818 - rpcbuf.length = (u_char *)buf - rpchdr;
10820 - checksum.value = msg->rm_call.cb_verf.oa_base;
10821 - checksum.length = msg->rm_call.cb_verf.oa_length;
10823 - maj_stat = gss_verify_mic(&min_stat, gd->ctx, &rpcbuf, &checksum,
10826 - if (maj_stat != GSS_S_COMPLETE) {
10827 - log_status("gss_verify_mic", maj_stat, min_stat);
10834 -svcauth_gss_nextverf(struct svc_req *rqst, u_int num)
10836 - struct svc_rpc_gss_data *gd;
10837 - gss_buffer_desc signbuf, checksum;
10838 - OM_uint32 maj_stat, min_stat;
10840 - log_debug("in svcauth_gss_nextverf()");
10842 - if (rqst->rq_xprt->xp_auth == NULL)
10845 - gd = SVCAUTH_PRIVATE(rqst->rq_xprt->xp_auth);
10847 - signbuf.value = #
10848 - signbuf.length = sizeof(num);
10850 - maj_stat = gss_get_mic(&min_stat, gd->ctx, gd->sec.qop,
10851 - &signbuf, &checksum);
10853 - if (maj_stat != GSS_S_COMPLETE) {
10854 - log_status("gss_get_mic", maj_stat, min_stat);
10857 - rqst->rq_xprt->xp_verf.oa_flavor = RPCSEC_GSS;
10858 - rqst->rq_xprt->xp_verf.oa_base = (caddr_t)checksum.value;
10859 - rqst->rq_xprt->xp_verf.oa_length = (u_int)checksum.length;
10865 -_svcauth_gss(struct svc_req *rqst, struct rpc_msg *msg, bool_t *no_dispatch)
10869 - struct svc_rpc_gss_data *gd;
10870 - struct rpc_gss_cred *gc;
10871 - struct rpc_gss_init_res gr;
10872 - int call_stat, offset;
10874 - log_debug("in svcauth_gss()");
10876 - /* Initialize reply. */
10877 - rqst->rq_xprt->xp_verf = _null_auth;
10879 - /* Allocate and set up server auth handle. */
10880 - if (rqst->rq_xprt->xp_auth == NULL ||
10881 - rqst->rq_xprt->xp_auth == &svc_auth_none) {
10882 - if ((auth = calloc(sizeof(*auth), 1)) == NULL) {
10883 - fprintf(stderr, "svcauth_gss: out_of_memory\n");
10884 - return (AUTH_FAILED);
10886 - if ((gd = calloc(sizeof(*gd), 1)) == NULL) {
10887 - fprintf(stderr, "svcauth_gss: out_of_memory\n");
10888 - return (AUTH_FAILED);
10890 - auth->svc_ah_ops = &svc_auth_gss_ops;
10891 - SVCAUTH_PRIVATE(auth) = gd;
10892 - rqst->rq_xprt->xp_auth = auth;
10894 - else gd = SVCAUTH_PRIVATE(rqst->rq_xprt->xp_auth);
10896 - /* Deserialize client credentials. */
10897 - if (rqst->rq_cred.oa_length <= 0)
10898 - return (AUTH_BADCRED);
10900 - gc = (struct rpc_gss_cred *)rqst->rq_clntcred;
10901 - memset(gc, 0, sizeof(*gc));
10903 - xdrmem_create(&xdrs, rqst->rq_cred.oa_base,
10904 - rqst->rq_cred.oa_length, XDR_DECODE);
10906 - if (!xdr_rpc_gss_cred(&xdrs, gc)) {
10907 - XDR_DESTROY(&xdrs);
10908 - return (AUTH_BADCRED);
10910 - XDR_DESTROY(&xdrs);
10912 - /* Check version. */
10913 - if (gc->gc_v != RPCSEC_GSS_VERSION)
10914 - return (AUTH_BADCRED);
10916 - /* Check RPCSEC_GSS service. */
10917 - if (gc->gc_svc != RPCSEC_GSS_SVC_NONE &&
10918 - gc->gc_svc != RPCSEC_GSS_SVC_INTEGRITY &&
10919 - gc->gc_svc != RPCSEC_GSS_SVC_PRIVACY)
10920 - return (AUTH_BADCRED);
10922 - /* Check sequence number. */
10923 - if (gd->established) {
10924 - if (gc->gc_seq > MAXSEQ)
10925 - return (RPCSEC_GSS_CTXPROBLEM);
10927 - if ((offset = gd->seqlast - gc->gc_seq) < 0) {
10928 - gd->seqlast = gc->gc_seq;
10929 - offset = 0 - offset;
10930 - gd->seqmask <<= offset;
10933 - else if (offset >= gd->win || (gd->seqmask & (1 << offset))) {
10934 - *no_dispatch = 1;
10935 - return (RPCSEC_GSS_CTXPROBLEM);
10937 - gd->seq = gc->gc_seq;
10938 - gd->seqmask |= (1 << offset);
10941 - if (gd->established) {
10942 - rqst->rq_clntname = (char *)gd->client_name;
10943 - rqst->rq_svcname = (char *)gd->ctx;
10946 - /* Handle RPCSEC_GSS control procedure. */
10947 - switch (gc->gc_proc) {
10949 - case RPCSEC_GSS_INIT:
10950 - case RPCSEC_GSS_CONTINUE_INIT:
10951 - if (rqst->rq_proc != NULLPROC)
10952 - return (AUTH_FAILED); /* XXX ? */
10954 - if (_svcauth_gss_name == NULL) {
10955 - if (!svcauth_gss_import_name("nfs"))
10956 - return (AUTH_FAILED);
10959 - if (!svcauth_gss_acquire_cred())
10960 - return (AUTH_FAILED);
10962 - if (!svcauth_gss_accept_sec_context(rqst, &gr))
10963 - return (AUTH_REJECTEDCRED);
10965 - if (!svcauth_gss_nextverf(rqst, htonl(gr.gr_win)))
10966 - return (AUTH_FAILED);
10968 - *no_dispatch = TRUE;
10970 - call_stat = svc_sendreply(rqst->rq_xprt, xdr_rpc_gss_init_res,
10974 - return (AUTH_FAILED);
10976 - if (gr.gr_major == GSS_S_COMPLETE)
10977 - gd->established = TRUE;
10981 - case RPCSEC_GSS_DATA:
10982 - if (!svcauth_gss_validate(gd, msg))
10983 - return (RPCSEC_GSS_CREDPROBLEM);
10985 - if (!svcauth_gss_nextverf(rqst, htonl(gc->gc_seq)))
10986 - return (AUTH_FAILED);
10989 - case RPCSEC_GSS_DESTROY:
10990 - if (rqst->rq_proc != NULLPROC)
10991 - return (AUTH_FAILED); /* XXX ? */
10993 - if (!svcauth_gss_validate(gd, msg))
10994 - return (RPCSEC_GSS_CREDPROBLEM);
10996 - if (!svcauth_gss_nextverf(rqst, htonl(gc->gc_seq)))
10997 - return (AUTH_FAILED);
10999 - if (!svcauth_gss_release_cred())
11000 - return (AUTH_FAILED);
11002 - SVCAUTH_DESTROY(rqst->rq_xprt->xp_auth);
11003 - rqst->rq_xprt->xp_auth = &svc_auth_none;
11008 - return (AUTH_REJECTEDCRED);
11011 - return (AUTH_OK);
11015 -svcauth_gss_destroy(SVCAUTH *auth)
11017 - struct svc_rpc_gss_data *gd;
11018 - OM_uint32 min_stat;
11020 - log_debug("in svcauth_gss_destroy()");
11022 - gd = SVCAUTH_PRIVATE(auth);
11024 - gss_delete_sec_context(&min_stat, &gd->ctx, GSS_C_NO_BUFFER);
11025 - gss_release_buffer(&min_stat, &gd->cname);
11027 - if (gd->client_name)
11028 - gss_release_name(&min_stat, &gd->client_name);
11030 - mem_free(gd, sizeof(*gd));
11031 - mem_free(auth, sizeof(*auth));
11037 -svcauth_gss_wrap(SVCAUTH *auth, XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr)
11039 - struct svc_rpc_gss_data *gd;
11041 - log_debug("in svcauth_gss_wrap()");
11043 - gd = SVCAUTH_PRIVATE(auth);
11045 - if (!gd->established || gd->sec.svc == RPCSEC_GSS_SVC_NONE) {
11046 - return ((*xdr_func)(xdrs, xdr_ptr));
11048 - return (xdr_rpc_gss_data(xdrs, xdr_func, xdr_ptr,
11049 - gd->ctx, gd->sec.qop,
11050 - gd->sec.svc, gd->seq));
11054 -svcauth_gss_unwrap(SVCAUTH *auth, XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr)
11056 - struct svc_rpc_gss_data *gd;
11058 - log_debug("in svcauth_gss_unwrap()");
11060 - gd = SVCAUTH_PRIVATE(auth);
11062 - if (!gd->established || gd->sec.svc == RPCSEC_GSS_SVC_NONE) {
11063 - return ((*xdr_func)(xdrs, xdr_ptr));
11065 - return (xdr_rpc_gss_data(xdrs, xdr_func, xdr_ptr,
11066 - gd->ctx, gd->sec.qop,
11067 - gd->sec.svc, gd->seq));
11071 -svcauth_gss_get_principal(SVCAUTH *auth)
11073 - struct svc_rpc_gss_data *gd;
11076 - gd = SVCAUTH_PRIVATE(auth);
11078 - if (gd->cname.length == 0)
11081 - if ((pname = malloc(gd->cname.length + 1)) == NULL)
11084 - memcpy(pname, gd->cname.value, gd->cname.length);
11085 - pname[gd->cname.length] = '\0';
11089 diff -puN -L support/rpc/svc_auth_none.c support/rpc/svc_auth_none.c~CITI_NFS4_ALL /dev/null
11090 --- nfs-utils-1.0.7/support/rpc/svc_auth_none.c
11091 +++ /dev/null 2005-05-05 05:47:05.259725168 -0400
11096 - Copyright (c) 2000 The Regents of the University of Michigan.
11097 - All rights reserved.
11099 - Copyright (c) 2000 Dug Song <dugsong@UMICH.EDU>.
11100 - All rights reserved, all wrongs reversed.
11102 - Redistribution and use in source and binary forms, with or without
11103 - modification, are permitted provided that the following conditions
11106 - 1. Redistributions of source code must retain the above copyright
11107 - notice, this list of conditions and the following disclaimer.
11108 - 2. Redistributions in binary form must reproduce the above copyright
11109 - notice, this list of conditions and the following disclaimer in the
11110 - documentation and/or other materials provided with the distribution.
11111 - 3. Neither the name of the University nor the names of its
11112 - contributors may be used to endorse or promote products derived
11113 - from this software without specific prior written permission.
11115 - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
11116 - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
11117 - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
11118 - DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
11119 - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
11120 - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
11121 - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
11122 - BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
11123 - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
11124 - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
11125 - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
11130 -#include <rpc/rpc.h>
11132 -static bool_t svcauth_none_destroy();
11133 -static bool_t svcauth_none_wrap();
11135 -struct svc_auth_ops svc_auth_none_ops = {
11136 - svcauth_none_wrap,
11137 - svcauth_none_wrap,
11138 - svcauth_none_destroy
11141 -SVCAUTH svc_auth_none = {
11142 - &svc_auth_none_ops,
11147 -svcauth_none_destroy(SVCAUTH *auth)
11153 -svcauth_none_wrap(SVCAUTH *auth, XDR *xdrs, xdrproc_t xdr_func,
11156 - return ((*xdr_func)(xdrs, xdr_ptr));
11160 -_svcauth_none(struct svc_req *rqst, struct rpc_msg *msg)
11162 - rqst->rq_xprt->xp_auth = &svc_auth_none;
11164 - return (AUTH_OK);
11166 diff -puN -L support/rpc/svc_auth_unix.c support/rpc/svc_auth_unix.c~CITI_NFS4_ALL /dev/null
11167 --- nfs-utils-1.0.7/support/rpc/svc_auth_unix.c
11168 +++ /dev/null 2005-05-05 05:47:05.259725168 -0400
11171 - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
11172 - * unrestricted use provided that this legend is included on all tape
11173 - * media and as a part of the software program in whole or part. Users
11174 - * may copy or modify Sun RPC without charge, but are not authorized
11175 - * to license or distribute it to anyone else except as part of a product or
11176 - * program developed by the user.
11178 - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
11179 - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
11180 - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
11182 - * Sun RPC is provided with no support and without any obligation on the
11183 - * part of Sun Microsystems, Inc. to assist in its use, correction,
11184 - * modification or enhancement.
11186 - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
11187 - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
11188 - * OR ANY PART THEREOF.
11190 - * In no event will Sun Microsystems, Inc. be liable for any lost revenue
11191 - * or profits or other special, indirect and consequential damages, even if
11192 - * Sun has been advised of the possibility of such damages.
11194 - * Sun Microsystems, Inc.
11195 - * 2550 Garcia Avenue
11196 - * Mountain View, California 94043
11199 -#if defined(LIBC_SCCS) && !defined(lint)
11200 -static char *rcsid = "$OpenBSD: svc_auth_unix.c,v 1.6 1998/11/22 07:38:25 deraadt Exp $";
11201 -#endif /* LIBC_SCCS and not lint */
11204 - * svc_auth_unix.c
11205 - * Handles UNIX flavor authentication parameters on the service side of rpc.
11206 - * There are two svc auth implementations here: AUTH_UNIX and AUTH_SHORT.
11207 - * _svcauth_unix does full blown unix style uid,gid+gids auth,
11208 - * _svcauth_short uses a shorthand auth to index into a cache of longhand auths.
11209 - * Note: the shorthand has been gutted for efficiency.
11211 - * Copyright (C) 1984, Sun Microsystems, Inc.
11214 -#include <stdio.h>
11215 -#include <rpc/rpc.h>
11216 -#include <string.h>
11218 -extern SVCAUTH svc_auth_none;
11221 - * Unix longhand authenticator
11224 -_svcauth_unix(rqst, msg)
11225 - register struct svc_req *rqst;
11226 - register struct rpc_msg *msg;
11228 - register enum auth_stat stat;
11230 - register struct authunix_parms *aup;
11231 - register int32_t *buf;
11233 - struct authunix_parms area_aup;
11234 - char area_machname[MAX_MACHINE_NAME+1];
11235 - int area_gids[NGRPS];
11238 - u_int str_len, gid_len;
11239 - register u_int i;
11241 - rqst->rq_xprt->xp_auth = &svc_auth_none;
11243 - area = (struct area *) rqst->rq_clntcred;
11244 - aup = &area->area_aup;
11245 - aup->aup_machname = area->area_machname;
11246 - aup->aup_gids = area->area_gids;
11247 - auth_len = (u_int)msg->rm_call.cb_cred.oa_length;
11248 - xdrmem_create(&xdrs, msg->rm_call.cb_cred.oa_base, auth_len,XDR_DECODE);
11249 - buf = XDR_INLINE(&xdrs, auth_len);
11250 - if (buf != NULL) {
11251 - aup->aup_time = IXDR_GET_LONG(buf);
11252 - str_len = IXDR_GET_U_LONG(buf);
11253 - if (str_len > MAX_MACHINE_NAME) {
11254 - stat = AUTH_BADCRED;
11257 - memcpy(aup->aup_machname, (caddr_t)buf, (u_int)str_len);
11258 - aup->aup_machname[str_len] = 0;
11259 - str_len = RNDUP(str_len);
11260 - buf += str_len / sizeof (int32_t);
11261 - aup->aup_uid = IXDR_GET_LONG(buf);
11262 - aup->aup_gid = IXDR_GET_LONG(buf);
11263 - gid_len = IXDR_GET_U_LONG(buf);
11264 - if (gid_len > NGRPS) {
11265 - stat = AUTH_BADCRED;
11268 - aup->aup_len = gid_len;
11269 - for (i = 0; i < gid_len; i++) {
11270 - aup->aup_gids[i] = IXDR_GET_LONG(buf);
11273 - * five is the smallest unix credentials structure -
11274 - * timestamp, hostname len (0), uid, gid, and gids len (0).
11276 - if ((5 + gid_len) * BYTES_PER_XDR_UNIT + str_len > auth_len) {
11277 - (void) printf("bad auth_len gid %u str %u auth %u\n",
11278 - gid_len, str_len, auth_len);
11279 - stat = AUTH_BADCRED;
11282 - } else if (! xdr_authunix_parms(&xdrs, aup)) {
11283 - xdrs.x_op = XDR_FREE;
11284 - (void)xdr_authunix_parms(&xdrs, aup);
11285 - stat = AUTH_BADCRED;
11288 - rqst->rq_xprt->xp_verf.oa_flavor = AUTH_NULL;
11289 - rqst->rq_xprt->xp_verf.oa_length = 0;
11292 - XDR_DESTROY(&xdrs);
11298 - * Shorthand unix authenticator
11299 - * Looks up longhand in a cache.
11302 -_svcauth_short(rqst, msg)
11303 - struct svc_req *rqst;
11304 - struct rpc_msg *msg;
11306 - rqst->rq_xprt->xp_auth = &svc_auth_none;
11308 - return (AUTH_REJECTEDCRED);
11310 diff -puN -L support/rpc/svc.c support/rpc/svc.c~CITI_NFS4_ALL /dev/null
11311 --- nfs-utils-1.0.7/support/rpc/svc.c
11312 +++ /dev/null 2005-05-05 05:47:05.259725168 -0400
11315 - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
11316 - * unrestricted use provided that this legend is included on all tape
11317 - * media and as a part of the software program in whole or part. Users
11318 - * may copy or modify Sun RPC without charge, but are not authorized
11319 - * to license or distribute it to anyone else except as part of a product or
11320 - * program developed by the user.
11322 - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
11323 - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
11324 - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
11326 - * Sun RPC is provided with no support and without any obligation on the
11327 - * part of Sun Microsystems, Inc. to assist in its use, correction,
11328 - * modification or enhancement.
11330 - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
11331 - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
11332 - * OR ANY PART THEREOF.
11334 - * In no event will Sun Microsystems, Inc. be liable for any lost revenue
11335 - * or profits or other special, indirect and consequential damages, even if
11336 - * Sun has been advised of the possibility of such damages.
11338 - * Sun Microsystems, Inc.
11339 - * 2550 Garcia Avenue
11340 - * Mountain View, California 94043
11343 -#if defined(LIBC_SCCS) && !defined(lint)
11344 -static char *rcsid = "$OpenBSD: svc.c,v 1.11 1998/02/25 12:21:18 deraadt Exp $";
11345 -#endif /* LIBC_SCCS and not lint */
11348 - * svc.c, Server-side remote procedure call interface.
11350 - * There are two sets of procedures here. The xprt routines are
11351 - * for handling transport handles. The svc routines handle the
11352 - * list of service routines.
11354 - * Copyright (C) 1984, Sun Microsystems, Inc.
11357 -#include <stdlib.h>
11358 -#include <string.h>
11360 -#include <sys/param.h>
11361 -#include <sys/errno.h>
11362 -#include <rpc/rpc.h>
11363 -#include <rpc/pmap_clnt.h>
11365 -static SVCXPRT **xports;
11366 -static int xportssize;
11368 -#define NULL_SVC ((struct svc_callout *)0)
11369 -#define RQCRED_SIZE 1024 /* this size is excessive */
11371 -#define max(a, b) (a > b ? a : b)
11375 -#define fds_bits __fds_bits /* XXX - Linux sux */
11380 - * The services list
11381 - * Each entry represents a set of procedures (an rpc program).
11382 - * The dispatch routine takes request structs and runs the
11383 - * apropriate procedure.
11385 -static struct svc_callout {
11386 - struct svc_callout *sc_next;
11389 - void (*sc_dispatch)();
11392 -static struct svc_callout *svc_find();
11394 -int __svc_fdsetsize;
11395 -fd_set *__svc_fdset;
11397 -/* *************** SVCXPRT related stuff **************** */
11400 - * Activate a transport handle.
11403 -xprt_register(xprt)
11406 - register int sock = xprt->xp_sock;
11408 - if (sock+1 > __svc_fdsetsize) {
11409 - int bytes = howmany(sock+1, NFDBITS) * sizeof(fd_mask);
11412 - fds = (fd_set *)malloc(bytes);
11413 - memset(fds, 0, bytes);
11414 - if (__svc_fdset) {
11415 - memcpy(fds, __svc_fdset, howmany(__svc_fdsetsize,
11416 - NFDBITS) * sizeof(fd_mask));
11417 - free(__svc_fdset);
11419 - __svc_fdset = fds;
11420 - __svc_fdsetsize = sock+1;
11423 - if (sock < FD_SETSIZE)
11424 - FD_SET(sock, &svc_fdset);
11425 - FD_SET(sock, __svc_fdset);
11427 - if (xports == NULL || sock+1 > xportssize) {
11429 - int size = FD_SETSIZE;
11431 - if (sock+1 > size)
11433 - xp = (SVCXPRT **)mem_alloc(size * sizeof(SVCXPRT *));
11434 - memset(xp, 0, size * sizeof(SVCXPRT *));
11436 - memcpy(xp, xports, xportssize * sizeof(SVCXPRT *));
11439 - xportssize = size;
11442 - xports[sock] = xprt;
11443 - svc_maxfd = max(svc_maxfd, sock);
11447 - * De-activate a transport handle.
11450 -xprt_unregister(xprt)
11453 - register int sock = xprt->xp_sock;
11455 - if (xports[sock] == xprt) {
11456 - xports[sock] = (SVCXPRT *)0;
11457 - if (sock < FD_SETSIZE)
11458 - FD_CLR(sock, &svc_fdset);
11459 - FD_CLR(sock, __svc_fdset);
11460 - if (sock == svc_maxfd) {
11461 - for (svc_maxfd--; svc_maxfd>=0; svc_maxfd--)
11462 - if (xports[svc_maxfd])
11466 - * XXX could use svc_maxfd as a hint to
11467 - * decrease the size of __svc_fdset
11473 -/* ********************** CALLOUT list related stuff ************* */
11476 - * Add a service program to the callout list.
11477 - * The dispatch routine will be called when a rpc request for this
11478 - * program number comes in.
11481 -svc_register(xprt, prog, vers, dispatch, protocol)
11485 - void (*dispatch)();
11488 - struct svc_callout *prev;
11489 - register struct svc_callout *s;
11491 - if ((s = svc_find(prog, vers, &prev)) != NULL_SVC) {
11492 - if (s->sc_dispatch == dispatch)
11493 - goto pmap_it; /* he is registering another xptr */
11496 - s = (struct svc_callout *)mem_alloc(sizeof(struct svc_callout));
11497 - if (s == (struct svc_callout *)0) {
11500 - s->sc_prog = prog;
11501 - s->sc_vers = vers;
11502 - s->sc_dispatch = dispatch;
11503 - s->sc_next = svc_head;
11506 - /* now register the information with the local binder service */
11508 - return (pmap_set(prog, vers, protocol, xprt->xp_port));
11514 - * Remove a service program from the callout list.
11517 -svc_unregister(prog, vers)
11521 - struct svc_callout *prev;
11522 - register struct svc_callout *s;
11524 - if ((s = svc_find(prog, vers, &prev)) == NULL_SVC)
11526 - if (prev == NULL_SVC) {
11527 - svc_head = s->sc_next;
11529 - prev->sc_next = s->sc_next;
11531 - s->sc_next = NULL_SVC;
11532 - mem_free((char *) s, (u_int) sizeof(struct svc_callout));
11533 - /* now unregister the information with the local binder service */
11534 - (void)pmap_unset(prog, vers);
11538 - * Search the callout list for a program number, return the callout
11541 -static struct svc_callout *
11542 -svc_find(prog, vers, prev)
11545 - struct svc_callout **prev;
11547 - register struct svc_callout *s, *p;
11550 - for (s = svc_head; s != NULL_SVC; s = s->sc_next) {
11551 - if ((s->sc_prog == prog) && (s->sc_vers == vers))
11560 -/* ******************* REPLY GENERATION ROUTINES ************ */
11563 - * Send a reply to an rpc request
11566 -svc_sendreply(xprt, xdr_results, xdr_location)
11567 - register SVCXPRT *xprt;
11568 - xdrproc_t xdr_results;
11569 - caddr_t xdr_location;
11571 - struct rpc_msg rply;
11573 - rply.rm_direction = REPLY;
11574 - rply.rm_reply.rp_stat = MSG_ACCEPTED;
11575 - rply.acpted_rply.ar_verf = xprt->xp_verf;
11576 - rply.acpted_rply.ar_stat = SUCCESS;
11577 - rply.acpted_rply.ar_results.where = xdr_location;
11578 - rply.acpted_rply.ar_results.proc = xdr_results;
11579 - return (SVC_REPLY(xprt, &rply));
11583 - * No procedure error reply
11586 -svcerr_noproc(xprt)
11587 - register SVCXPRT *xprt;
11589 - struct rpc_msg rply;
11591 - rply.rm_direction = REPLY;
11592 - rply.rm_reply.rp_stat = MSG_ACCEPTED;
11593 - rply.acpted_rply.ar_verf = xprt->xp_verf;
11594 - rply.acpted_rply.ar_stat = PROC_UNAVAIL;
11595 - SVC_REPLY(xprt, &rply);
11599 - * Can't decode args error reply
11602 -svcerr_decode(xprt)
11603 - register SVCXPRT *xprt;
11605 - struct rpc_msg rply;
11607 - rply.rm_direction = REPLY;
11608 - rply.rm_reply.rp_stat = MSG_ACCEPTED;
11609 - rply.acpted_rply.ar_verf = xprt->xp_verf;
11610 - rply.acpted_rply.ar_stat = GARBAGE_ARGS;
11611 - SVC_REPLY(xprt, &rply);
11615 - * Some system error
11618 -svcerr_systemerr(xprt)
11619 - register SVCXPRT *xprt;
11621 - struct rpc_msg rply;
11623 - rply.rm_direction = REPLY;
11624 - rply.rm_reply.rp_stat = MSG_ACCEPTED;
11625 - rply.acpted_rply.ar_verf = xprt->xp_verf;
11626 - rply.acpted_rply.ar_stat = SYSTEM_ERR;
11627 - SVC_REPLY(xprt, &rply);
11631 - * Authentication error reply
11634 -svcerr_auth(xprt, why)
11636 - enum auth_stat why;
11638 - struct rpc_msg rply;
11640 - rply.rm_direction = REPLY;
11641 - rply.rm_reply.rp_stat = MSG_DENIED;
11642 - rply.rjcted_rply.rj_stat = AUTH_ERROR;
11643 - rply.rjcted_rply.rj_why = why;
11644 - SVC_REPLY(xprt, &rply);
11648 - * Auth too weak error reply
11651 -svcerr_weakauth(xprt)
11655 - svcerr_auth(xprt, AUTH_TOOWEAK);
11659 - * Program unavailable error reply
11662 -svcerr_noprog(xprt)
11663 - register SVCXPRT *xprt;
11665 - struct rpc_msg rply;
11667 - rply.rm_direction = REPLY;
11668 - rply.rm_reply.rp_stat = MSG_ACCEPTED;
11669 - rply.acpted_rply.ar_verf = xprt->xp_verf;
11670 - rply.acpted_rply.ar_stat = PROG_UNAVAIL;
11671 - SVC_REPLY(xprt, &rply);
11675 - * Program version mismatch error reply
11678 -svcerr_progvers(xprt, low_vers, high_vers)
11679 - register SVCXPRT *xprt;
11681 - u_long high_vers;
11683 - struct rpc_msg rply;
11685 - rply.rm_direction = REPLY;
11686 - rply.rm_reply.rp_stat = MSG_ACCEPTED;
11687 - rply.acpted_rply.ar_verf = xprt->xp_verf;
11688 - rply.acpted_rply.ar_stat = PROG_MISMATCH;
11689 - rply.acpted_rply.ar_vers.low = low_vers;
11690 - rply.acpted_rply.ar_vers.high = high_vers;
11691 - SVC_REPLY(xprt, &rply);
11694 -/* ******************* SERVER INPUT STUFF ******************* */
11697 - * Get server side input from some transport.
11699 - * Statement of authentication parameters management:
11700 - * This function owns and manages all authentication parameters, specifically
11701 - * the "raw" parameters (msg.rm_call.cb_cred and msg.rm_call.cb_verf) and
11702 - * the "cooked" credentials (rqst->rq_clntcred).
11703 - * However, this function does not know the structure of the cooked
11704 - * credentials, so it make the following assumptions:
11705 - * a) the structure is contiguous (no pointers), and
11706 - * b) the cred structure size does not exceed RQCRED_SIZE bytes.
11707 - * In all events, all three parameters are freed upon exit from this routine.
11708 - * The storage is trivially management on the call stack in user land, but
11709 - * is mallocated in kernel land.
11718 - FD_ZERO(&readfds);
11719 - readfds.fds_bits[0] = rdfds;
11720 - svc_getreqset(&readfds);
11723 -void svc_getreqset2 __P((fd_set *, int));
11726 -svc_getreqset(readfds)
11729 - svc_getreqset2(readfds, FD_SETSIZE);
11733 -svc_getreqset2(readfds, width)
11737 - enum xprt_stat stat;
11738 - struct rpc_msg msg;
11741 - u_long high_vers;
11742 - struct svc_req r;
11743 - register SVCXPRT *xprt;
11744 - register int bit;
11745 - register fd_mask mask, *maskp;
11746 - register int sock;
11747 - bool_t no_dispatch;
11748 - char cred_area[2*MAX_AUTH_BYTES + RQCRED_SIZE];
11749 - msg.rm_call.cb_cred.oa_base = cred_area;
11750 - msg.rm_call.cb_verf.oa_base = &(cred_area[MAX_AUTH_BYTES]);
11751 - r.rq_clntcred = &(cred_area[2*MAX_AUTH_BYTES]);
11753 - maskp = readfds->fds_bits;
11754 - for (sock = 0; sock < width; sock += NFDBITS) {
11755 - for (mask = *maskp++; (bit = ffs(mask)); mask ^= (1 << (bit - 1))) {
11756 - /* sock has input waiting */
11757 - xprt = xports[sock + bit - 1];
11758 - if (xprt == NULL)
11759 - /* But do we control sock? */
11761 - /* now receive msgs from xprtprt (support batch calls) */
11763 - if (SVC_RECV(xprt, &msg)) {
11765 - /* now find the exported program and call it */
11766 - register struct svc_callout *s;
11767 - enum auth_stat why;
11769 - r.rq_xprt = xprt;
11770 - r.rq_prog = msg.rm_call.cb_prog;
11771 - r.rq_vers = msg.rm_call.cb_vers;
11772 - r.rq_proc = msg.rm_call.cb_proc;
11773 - r.rq_cred = msg.rm_call.cb_cred;
11775 - no_dispatch = FALSE;
11777 - /* first authenticate the message */
11778 - if ((why = _authenticate(&r, &msg, &no_dispatch)) != AUTH_OK) {
11779 - svcerr_auth(xprt, why);
11782 - else if (no_dispatch) {
11785 - /* now match message with a registered service*/
11786 - prog_found = FALSE;
11787 - low_vers = (u_long) -1;
11789 - for (s = svc_head; s != NULL_SVC; s = s->sc_next) {
11790 - if (s->sc_prog == r.rq_prog) {
11791 - if (s->sc_vers == r.rq_vers) {
11792 - (*s->sc_dispatch)(&r, xprt);
11794 - } /* found correct version */
11795 - prog_found = TRUE;
11796 - if (s->sc_vers < low_vers)
11797 - low_vers = s->sc_vers;
11798 - if (s->sc_vers > high_vers)
11799 - high_vers = s->sc_vers;
11800 - } /* found correct program */
11803 - * if we got here, the program or version
11804 - * is not served ...
11807 - svcerr_progvers(xprt,
11808 - low_vers, high_vers);
11810 - svcerr_noprog(xprt);
11811 - /* Fall through to ... */
11814 - if ((stat = SVC_STAT(xprt)) == XPRT_DIED) {
11815 - SVC_DESTROY(xprt);
11818 - } while (stat == XPRT_MOREREQS);
11822 diff -puN -L support/rpc/svc_raw.c support/rpc/svc_raw.c~CITI_NFS4_ALL /dev/null
11823 --- nfs-utils-1.0.7/support/rpc/svc_raw.c
11824 +++ /dev/null 2005-05-05 05:47:05.259725168 -0400
11827 - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
11828 - * unrestricted use provided that this legend is included on all tape
11829 - * media and as a part of the software program in whole or part. Users
11830 - * may copy or modify Sun RPC without charge, but are not authorized
11831 - * to license or distribute it to anyone else except as part of a product or
11832 - * program developed by the user.
11834 - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
11835 - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
11836 - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
11838 - * Sun RPC is provided with no support and without any obligation on the
11839 - * part of Sun Microsystems, Inc. to assist in its use, correction,
11840 - * modification or enhancement.
11842 - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
11843 - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
11844 - * OR ANY PART THEREOF.
11846 - * In no event will Sun Microsystems, Inc. be liable for any lost revenue
11847 - * or profits or other special, indirect and consequential damages, even if
11848 - * Sun has been advised of the possibility of such damages.
11850 - * Sun Microsystems, Inc.
11851 - * 2550 Garcia Avenue
11852 - * Mountain View, California 94043
11855 -#if defined(LIBC_SCCS) && !defined(lint)
11856 -static char *rcsid = "$OpenBSD: svc_raw.c,v 1.4 1996/09/15 09:31:39 tholo Exp $";
11857 -#endif /* LIBC_SCCS and not lint */
11860 - * svc_raw.c, This a toy for simple testing and timing.
11861 - * Interface to create an rpc client and server in the same UNIX process.
11862 - * This lets us similate rpc and get rpc (round trip) overhead, without
11863 - * any interference from the kernal.
11865 - * Copyright (C) 1984, Sun Microsystems, Inc.
11868 -#include <stdlib.h>
11869 -#include <rpc/rpc.h>
11873 - * This is the "network" that we will be moving data over
11875 -static struct svcraw_private {
11876 - char _raw_buf[UDPMSGSIZE];
11879 - char verf_body[MAX_AUTH_BYTES];
11880 -} *svcraw_private;
11882 -static bool_t svcraw_recv();
11883 -static enum xprt_stat svcraw_stat();
11884 -static bool_t svcraw_getargs();
11885 -static bool_t svcraw_reply();
11886 -static bool_t svcraw_freeargs();
11887 -static void svcraw_destroy();
11889 -static struct xp_ops server_ops = {
11901 - register struct svcraw_private *srp = svcraw_private;
11904 - srp = (struct svcraw_private *)calloc(1, sizeof (*srp));
11908 - srp->server.xp_sock = 0;
11909 - srp->server.xp_port = 0;
11910 - srp->server.xp_ops = &server_ops;
11911 - srp->server.xp_verf.oa_base = srp->verf_body;
11912 - xdrmem_create(&srp->xdr_stream, srp->_raw_buf, UDPMSGSIZE, XDR_FREE);
11913 - return (&srp->server);
11916 -static enum xprt_stat
11920 - return (XPRT_IDLE);
11925 -svcraw_recv(xprt, msg)
11927 - struct rpc_msg *msg;
11929 - register struct svcraw_private *srp = svcraw_private;
11930 - register XDR *xdrs;
11934 - xdrs = &srp->xdr_stream;
11935 - xdrs->x_op = XDR_DECODE;
11936 - XDR_SETPOS(xdrs, 0);
11937 - if (! xdr_callmsg(xdrs, msg))
11944 -svcraw_reply(xprt, msg)
11946 - struct rpc_msg *msg;
11948 - register struct svcraw_private *srp = svcraw_private;
11949 - register XDR *xdrs;
11953 - xdrs = &srp->xdr_stream;
11954 - xdrs->x_op = XDR_ENCODE;
11955 - XDR_SETPOS(xdrs, 0);
11956 - if (! xdr_replymsg(xdrs, msg))
11958 - (void)XDR_GETPOS(xdrs); /* called just for overhead */
11964 -svcraw_getargs(xprt, xdr_args, args_ptr)
11966 - xdrproc_t xdr_args;
11967 - caddr_t args_ptr;
11969 - register struct svcraw_private *srp = svcraw_private;
11973 - return ((*xdr_args)(&srp->xdr_stream, args_ptr));
11978 -svcraw_freeargs(xprt, xdr_args, args_ptr)
11980 - xdrproc_t xdr_args;
11981 - caddr_t args_ptr;
11983 - register struct svcraw_private *srp = svcraw_private;
11984 - register XDR *xdrs;
11988 - xdrs = &srp->xdr_stream;
11989 - xdrs->x_op = XDR_FREE;
11990 - return ((*xdr_args)(xdrs, args_ptr));
11997 diff -puN -L support/rpc/svc_run.c support/rpc/svc_run.c~CITI_NFS4_ALL /dev/null
11998 --- nfs-utils-1.0.7/support/rpc/svc_run.c
11999 +++ /dev/null 2005-05-05 05:47:05.259725168 -0400
12002 - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
12003 - * unrestricted use provided that this legend is included on all tape
12004 - * media and as a part of the software program in whole or part. Users
12005 - * may copy or modify Sun RPC without charge, but are not authorized
12006 - * to license or distribute it to anyone else except as part of a product or
12007 - * program developed by the user.
12009 - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
12010 - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
12011 - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
12013 - * Sun RPC is provided with no support and without any obligation on the
12014 - * part of Sun Microsystems, Inc. to assist in its use, correction,
12015 - * modification or enhancement.
12017 - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
12018 - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
12019 - * OR ANY PART THEREOF.
12021 - * In no event will Sun Microsystems, Inc. be liable for any lost revenue
12022 - * or profits or other special, indirect and consequential damages, even if
12023 - * Sun has been advised of the possibility of such damages.
12025 - * Sun Microsystems, Inc.
12026 - * 2550 Garcia Avenue
12027 - * Mountain View, California 94043
12030 -#if defined(LIBC_SCCS) && !defined(lint)
12031 -static char *rcsid = "$OpenBSD: svc_run.c,v 1.10 1998/03/19 00:27:24 millert Exp $";
12032 -#endif /* LIBC_SCCS and not lint */
12035 - * This is the rpc server side idle loop
12036 - * Wait for input, call server program.
12038 -#include <rpc/rpc.h>
12039 -#include <sys/param.h>
12040 -#include <sys/errno.h>
12041 -#include <unistd.h>
12042 -#include <stdio.h>
12043 -#include <stdlib.h>
12044 -#include <string.h>
12046 -extern int __svc_fdsetsize;
12047 -extern fd_set *__svc_fdset;
12049 -void svc_getreqset2 __P((fd_set *, int));
12057 - if (__svc_fdset) {
12058 - int bytes = howmany(__svc_fdsetsize, NFDBITS) *
12060 - fds = (fd_set *)malloc(bytes);
12061 - memcpy(fds, __svc_fdset, bytes);
12064 - switch (select(svc_maxfd+1, fds, 0, 0, (struct timeval *)0)) {
12066 - if (errno == EINTR) {
12071 - perror("svc_run: - select failed");
12080 - svc_getreqset2(fds, svc_maxfd+1);
12085 diff -puN -L support/rpc/svc_simple.c support/rpc/svc_simple.c~CITI_NFS4_ALL /dev/null
12086 --- nfs-utils-1.0.7/support/rpc/svc_simple.c
12087 +++ /dev/null 2005-05-05 05:47:05.259725168 -0400
12090 - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
12091 - * unrestricted use provided that this legend is included on all tape
12092 - * media and as a part of the software program in whole or part. Users
12093 - * may copy or modify Sun RPC without charge, but are not authorized
12094 - * to license or distribute it to anyone else except as part of a product or
12095 - * program developed by the user.
12097 - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
12098 - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
12099 - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
12101 - * Sun RPC is provided with no support and without any obligation on the
12102 - * part of Sun Microsystems, Inc. to assist in its use, correction,
12103 - * modification or enhancement.
12105 - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
12106 - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
12107 - * OR ANY PART THEREOF.
12109 - * In no event will Sun Microsystems, Inc. be liable for any lost revenue
12110 - * or profits or other special, indirect and consequential damages, even if
12111 - * Sun has been advised of the possibility of such damages.
12113 - * Sun Microsystems, Inc.
12114 - * 2550 Garcia Avenue
12115 - * Mountain View, California 94043
12118 -#if defined(LIBC_SCCS) && !defined(lint)
12119 -static char *rcsid = "$OpenBSD: svc_simple.c,v 1.6 1998/11/22 07:38:25 deraadt Exp $";
12120 -#endif /* LIBC_SCCS and not lint */
12124 - * Simplified front end to rpc.
12126 - * Copyright (C) 1984, Sun Microsystems, Inc.
12129 -#include <stdio.h>
12130 -#include <stdlib.h>
12131 -#include <string.h>
12132 -#include <rpc/rpc.h>
12133 -#include <rpc/pmap_clnt.h>
12134 -#include <sys/socket.h>
12135 -#include <netdb.h>
12137 -static struct proglst {
12138 - char *(*p_progname)();
12141 - xdrproc_t p_inproc, p_outproc;
12142 - struct proglst *p_nxt;
12144 -static void universal();
12145 -static SVCXPRT *transp;
12146 -struct proglst *pl;
12149 -registerrpc(prognum, versnum, procnum, progname, inproc, outproc)
12150 - int prognum, versnum, procnum;
12151 - char *(*progname)();
12152 - xdrproc_t inproc, outproc;
12155 - if (procnum == NULLPROC) {
12156 - (void) fprintf(stderr,
12157 - "can't reassign procedure number %u\n", NULLPROC);
12160 - if (transp == 0) {
12161 - transp = svcudp_create(RPC_ANYSOCK);
12162 - if (transp == NULL) {
12163 - (void) fprintf(stderr, "couldn't create an rpc server\n");
12167 - (void) pmap_unset((u_long)prognum, (u_long)versnum);
12168 - if (!svc_register(transp, (u_long)prognum, (u_long)versnum,
12169 - universal, IPPROTO_UDP)) {
12170 - (void) fprintf(stderr, "couldn't register prog %d vers %d\n",
12171 - prognum, versnum);
12174 - pl = (struct proglst *)malloc(sizeof(struct proglst));
12175 - if (pl == NULL) {
12176 - (void) fprintf(stderr, "registerrpc: out of memory\n");
12179 - pl->p_progname = progname;
12180 - pl->p_prognum = prognum;
12181 - pl->p_procnum = procnum;
12182 - pl->p_inproc = inproc;
12183 - pl->p_outproc = outproc;
12184 - pl->p_nxt = proglst;
12190 -universal(rqstp, transp)
12191 - struct svc_req *rqstp;
12196 - char xdrbuf[UDPMSGSIZE];
12197 - struct proglst *pl;
12200 - * enforce "procnum 0 is echo" convention
12202 - if (rqstp->rq_proc == NULLPROC) {
12203 - if (svc_sendreply(transp, xdr_void, NULL) == FALSE) {
12204 - (void) fprintf(stderr, "xxx\n");
12209 - prog = rqstp->rq_prog;
12210 - proc = rqstp->rq_proc;
12211 - for (pl = proglst; pl != NULL; pl = pl->p_nxt)
12212 - if (pl->p_prognum == prog && pl->p_procnum == proc) {
12213 - /* decode arguments into a CLEAN buffer */
12214 - memset(xdrbuf, 0, sizeof(xdrbuf)); /* required ! */
12215 - if (!svc_getargs(transp, pl->p_inproc, xdrbuf)) {
12216 - svcerr_decode(transp);
12219 - outdata = (*(pl->p_progname))(xdrbuf);
12220 - if (outdata == NULL &&
12221 - pl->p_outproc != xdr_void)
12222 - /* there was an error */
12224 - if (!svc_sendreply(transp, pl->p_outproc, outdata)) {
12225 - (void) fprintf(stderr,
12226 - "trouble replying to prog %d\n",
12230 - /* free the decoded arguments */
12231 - (void)svc_freeargs(transp, pl->p_inproc, xdrbuf);
12234 - (void) fprintf(stderr, "never registered prog %d\n", prog);
12238 diff -puN -L support/rpc/svc_tcp.c support/rpc/svc_tcp.c~CITI_NFS4_ALL /dev/null
12239 --- nfs-utils-1.0.7/support/rpc/svc_tcp.c
12240 +++ /dev/null 2005-05-05 05:47:05.259725168 -0400
12243 - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
12244 - * unrestricted use provided that this legend is included on all tape
12245 - * media and as a part of the software program in whole or part. Users
12246 - * may copy or modify Sun RPC without charge, but are not authorized
12247 - * to license or distribute it to anyone else except as part of a product or
12248 - * program developed by the user.
12250 - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
12251 - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
12252 - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
12254 - * Sun RPC is provided with no support and without any obligation on the
12255 - * part of Sun Microsystems, Inc. to assist in its use, correction,
12256 - * modification or enhancement.
12258 - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
12259 - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
12260 - * OR ANY PART THEREOF.
12262 - * In no event will Sun Microsystems, Inc. be liable for any lost revenue
12263 - * or profits or other special, indirect and consequential damages, even if
12264 - * Sun has been advised of the possibility of such damages.
12266 - * Sun Microsystems, Inc.
12267 - * 2550 Garcia Avenue
12268 - * Mountain View, California 94043
12271 -#if defined(LIBC_SCCS) && !defined(lint)
12272 -static char *rcsid = "$OpenBSD: svc_tcp.c,v 1.18 1998/05/22 04:23:01 deraadt Exp $";
12273 -#endif /* LIBC_SCCS and not lint */
12276 - * svc_tcp.c, Server side for TCP/IP based RPC.
12278 - * Copyright (C) 1984, Sun Microsystems, Inc.
12280 - * Actually implements two flavors of transporter -
12281 - * a tcp rendezvouser (a listner and connection establisher)
12282 - * and a record/tcp stream.
12285 -#include <stdio.h>
12286 -#include <stdlib.h>
12287 -#include <string.h>
12288 -#include <unistd.h>
12289 -#include <rpc/rpc.h>
12290 -#include <sys/param.h>
12291 -#include <sys/socket.h>
12292 -#include <errno.h>
12294 -#include <netinet/in_systm.h>
12295 -#include <netinet/in.h>
12296 -#include <netinet/ip.h>
12298 -#include <netinet/ip_var.h>
12302 - * Ops vector for TCP/IP based rpc service handle
12304 -static bool_t svctcp_recv();
12305 -static enum xprt_stat svctcp_stat();
12306 -static bool_t svctcp_getargs();
12307 -static bool_t svctcp_reply();
12308 -static bool_t svctcp_freeargs();
12309 -static void svctcp_destroy();
12311 -static struct xp_ops svctcp_op = {
12321 - * Ops vector for TCP/IP rendezvous handler
12323 -static bool_t rendezvous_request();
12324 -static enum xprt_stat rendezvous_stat();
12326 -static struct xp_ops svctcp_rendezvous_op = {
12327 - rendezvous_request,
12329 - (bool_t (*)())abort,
12330 - (bool_t (*)())abort,
12331 - (bool_t (*)())abort,
12335 -static int readtcp(), writetcp();
12336 -static SVCXPRT *makefd_xprt();
12338 -struct tcp_rendezvous { /* kept in xprt->xp_p1 */
12343 -struct tcp_conn { /* kept in xprt->xp_p1 */
12344 - enum xprt_stat strm_stat;
12347 - char verf_body[MAX_AUTH_BYTES];
12352 - * xprt = svctcp_create(sock, send_buf_size, recv_buf_size);
12354 - * Creates, registers, and returns a (rpc) tcp based transporter.
12355 - * Once *xprt is initialized, it is registered as a transporter
12356 - * see (svc.h, xprt_register). This routine returns
12357 - * a NULL if a problem occurred.
12359 - * If sock<0 then a socket is created, else sock is used.
12360 - * If the socket, sock is not bound to a port then svctcp_create
12361 - * binds it to an arbitrary port. The routine then starts a tcp
12362 - * listener on the socket's associated port. In any (successful) case,
12363 - * xprt->xp_sock is the registered socket number and xprt->xp_port is the
12364 - * associated port number.
12366 - * Since tcp streams do buffered io similar to stdio, the caller can specify
12367 - * how big the send and receive buffers are via the second and third parms;
12368 - * 0 => use the system default.
12371 -svctcp_create(sock, sendsize, recvsize)
12372 - register int sock;
12376 - bool_t madesock = FALSE;
12377 - register SVCXPRT *xprt;
12378 - register struct tcp_rendezvous *r;
12379 - struct sockaddr_in addr;
12380 - int len = sizeof(struct sockaddr_in);
12382 - if (sock == RPC_ANYSOCK) {
12383 - if ((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
12384 - perror("svctcp_.c - udp socket creation problem");
12385 - return ((SVCXPRT *)NULL);
12389 - memset(&addr, 0, sizeof (addr));
12391 - addr.sin_len = sizeof(struct sockaddr_in);
12393 - addr.sin_family = AF_INET;
12394 - if (bindresvport(sock, &addr)) {
12395 - addr.sin_port = 0;
12396 - (void)bind(sock, (struct sockaddr *)&addr, len);
12398 - if ((getsockname(sock, (struct sockaddr *)&addr, &len) != 0) ||
12399 - (listen(sock, 2) != 0)) {
12400 - perror("svctcp_.c - cannot getsockname or listen");
12402 - (void)close(sock);
12403 - return ((SVCXPRT *)NULL);
12405 - r = (struct tcp_rendezvous *)mem_alloc(sizeof(*r));
12407 - (void)fprintf(stderr, "svctcp_create: out of memory\n");
12409 - (void)close(sock);
12412 - r->sendsize = sendsize;
12413 - r->recvsize = recvsize;
12414 - xprt = (SVCXPRT *)mem_alloc(sizeof(SVCXPRT));
12415 - if (xprt == NULL) {
12416 - (void)fprintf(stderr, "svctcp_create: out of memory\n");
12418 - (void)close(sock);
12422 - xprt->xp_p2 = NULL;
12423 - xprt->xp_p1 = (caddr_t)r;
12424 - xprt->xp_auth = NULL;
12425 - xprt->xp_verf = _null_auth;
12426 - xprt->xp_ops = &svctcp_rendezvous_op;
12427 - xprt->xp_port = ntohs(addr.sin_port);
12428 - xprt->xp_sock = sock;
12429 - xprt_register(xprt);
12434 - * Like svtcp_create(), except the routine takes any *open* UNIX file
12435 - * descriptor as its first input.
12438 -svcfd_create(fd, sendsize, recvsize)
12444 - return (makefd_xprt(fd, sendsize, recvsize));
12448 -makefd_xprt(fd, sendsize, recvsize)
12453 - register SVCXPRT *xprt;
12454 - register struct tcp_conn *cd;
12456 - xprt = (SVCXPRT *)mem_alloc(sizeof(SVCXPRT));
12457 - if (xprt == (SVCXPRT *)NULL) {
12458 - (void) fprintf(stderr, "svc_tcp: makefd_xprt: out of memory\n");
12461 - cd = (struct tcp_conn *)mem_alloc(sizeof(struct tcp_conn));
12462 - if (cd == (struct tcp_conn *)NULL) {
12463 - (void) fprintf(stderr, "svc_tcp: makefd_xprt: out of memory\n");
12464 - mem_free((char *) xprt, sizeof(SVCXPRT));
12465 - xprt = (SVCXPRT *)NULL;
12468 - cd->strm_stat = XPRT_IDLE;
12469 - xdrrec_create(&(cd->xdrs), sendsize, recvsize,
12470 - (caddr_t)xprt, readtcp, writetcp);
12471 - xprt->xp_p2 = NULL;
12472 - xprt->xp_p1 = (caddr_t)cd;
12473 - xprt->xp_auth = NULL;
12474 - xprt->xp_verf.oa_base = cd->verf_body;
12475 - xprt->xp_addrlen = 0;
12476 - xprt->xp_ops = &svctcp_op; /* truely deals with calls */
12477 - xprt->xp_port = 0; /* this is a connection, not a rendezvouser */
12478 - xprt->xp_sock = fd;
12479 - xprt_register(xprt);
12485 -rendezvous_request(xprt)
12486 - register SVCXPRT *xprt;
12489 - struct tcp_rendezvous *r;
12490 - struct sockaddr_in addr;
12493 - r = (struct tcp_rendezvous *)xprt->xp_p1;
12495 - len = sizeof(struct sockaddr_in);
12496 - if ((sock = accept(xprt->xp_sock, (struct sockaddr *)&addr,
12498 - if (errno == EINTR)
12506 -#define ipopt_list ip_opts
12507 - struct ip_opts opts;
12509 - struct ipoption opts;
12511 - int optsize = sizeof(opts), i;
12513 - if (!getsockopt(sock, IPPROTO_IP, IP_OPTIONS, (char *)&opts,
12514 - &optsize) && optsize != 0) {
12515 - for (i = 0; (char *)&opts.ipopt_list[i] - (char *)&opts <
12517 - u_char c = (u_char)opts.ipopt_list[i];
12518 - if (c == IPOPT_LSRR || c == IPOPT_SSRR) {
12522 - if (c == IPOPT_EOL)
12524 - i += (c == IPOPT_NOP) ? 1 :
12525 - (u_char)opts.ipopt_list[i+1];
12532 - * XXX careful for ftp bounce attacks. If discovered, close the
12533 - * socket and look for another connection.
12535 - if (addr.sin_port == htons(20)) {
12541 - * make a new transporter (re-uses xprt)
12543 - xprt = makefd_xprt(sock, r->sendsize, r->recvsize);
12544 - xprt->xp_raddr = addr;
12545 - xprt->xp_addrlen = len;
12546 - return (FALSE); /* there is never an rpc msg to be processed */
12549 -static enum xprt_stat
12553 - return (XPRT_IDLE);
12557 -svctcp_destroy(xprt)
12558 - register SVCXPRT *xprt;
12560 - register struct tcp_conn *cd = (struct tcp_conn *)xprt->xp_p1;
12562 - xprt_unregister(xprt);
12563 - if (xprt->xp_sock != -1)
12564 - (void)close(xprt->xp_sock);
12565 - xprt->xp_sock = -1;
12566 - if (xprt->xp_port != 0) {
12567 - /* a rendezvouser socket */
12568 - xprt->xp_port = 0;
12570 - /* an actual connection socket */
12571 - XDR_DESTROY(&(cd->xdrs));
12573 - if (xprt->xp_auth != NULL) {
12574 - SVCAUTH_DESTROY(xprt->xp_auth);
12575 - xprt->xp_auth = NULL;
12577 - mem_free((caddr_t)cd, sizeof(struct tcp_conn));
12578 - mem_free((caddr_t)xprt, sizeof(SVCXPRT));
12582 - * All read operations timeout after 35 seconds.
12583 - * A timeout is fatal for the connection.
12585 -static struct timeval wait_per_try = { 35, 0 };
12588 - * reads data from the tcp conection.
12589 - * any error is fatal and the connection is closed.
12590 - * (And a read of zero bytes is a half closed stream => error.)
12593 -readtcp(xprt, buf, len)
12594 - register SVCXPRT *xprt;
12596 - register int len;
12598 - register int sock = xprt->xp_sock;
12599 - struct timeval start, delta;
12600 - struct timeval tmp1, tmp2;
12601 - fd_set *fds = NULL;
12602 - int prevbytes = 0, bytes;
12603 - extern int __svc_fdsetsize;
12604 - extern fd_set *__svc_fdset;
12606 - delta = wait_per_try;
12607 - gettimeofday(&start, NULL);
12609 - bytes = howmany(__svc_fdsetsize, NFDBITS) * sizeof(fd_mask);
12610 - if (bytes != prevbytes) {
12613 - fds = (fd_set *)malloc(bytes);
12614 - prevbytes = bytes;
12618 - memcpy(fds, __svc_fdset, bytes);
12620 - FD_SET(sock, fds);
12621 - switch (select(svc_maxfd+1, fds, NULL, NULL, &delta)) {
12623 - if (errno != EINTR)
12625 - gettimeofday(&tmp1, NULL);
12626 - timersub(&tmp1, &start, &tmp2);
12627 - timersub(&wait_per_try, &tmp2, &tmp1);
12628 - if (tmp1.tv_sec < 0 || !timerisset(&tmp1))
12635 - if (!FD_ISSET(sock, fds)) {
12636 - svc_getreqset2(fds, svc_maxfd+1);
12637 - gettimeofday(&tmp1, NULL);
12638 - timersub(&tmp1, &start, &tmp2);
12639 - timersub(&wait_per_try, &tmp2, &tmp1);
12640 - if (tmp1.tv_sec < 0 || !timerisset(&tmp1))
12646 - } while (!FD_ISSET(sock, fds));
12647 - if ((len = read(sock, buf, len)) > 0) {
12653 - ((struct tcp_conn *)(xprt->xp_p1))->strm_stat = XPRT_DIED;
12660 - * writes data to the tcp connection.
12661 - * Any error is fatal and the connection is closed.
12664 -writetcp(xprt, buf, len)
12665 - register SVCXPRT *xprt;
12669 - register int i, cnt;
12671 - for (cnt = len; cnt > 0; cnt -= i, buf += i) {
12672 - if ((i = write(xprt->xp_sock, buf, cnt)) < 0) {
12673 - ((struct tcp_conn *)(xprt->xp_p1))->strm_stat =
12681 -static enum xprt_stat
12685 - register struct tcp_conn *cd =
12686 - (struct tcp_conn *)(xprt->xp_p1);
12688 - if (cd->strm_stat == XPRT_DIED)
12689 - return (XPRT_DIED);
12690 - if (! xdrrec_eof(&(cd->xdrs)))
12691 - return (XPRT_MOREREQS);
12692 - return (XPRT_IDLE);
12696 -svctcp_recv(xprt, msg)
12698 - register struct rpc_msg *msg;
12700 - register struct tcp_conn *cd =
12701 - (struct tcp_conn *)(xprt->xp_p1);
12702 - register XDR *xdrs = &(cd->xdrs);
12704 - xdrs->x_op = XDR_DECODE;
12705 - (void)xdrrec_skiprecord(xdrs);
12706 - if (xdr_callmsg(xdrs, msg)) {
12707 - cd->x_id = msg->rm_xid;
12710 - cd->strm_stat = XPRT_DIED; /* XXX */
12715 -svctcp_getargs(xprt, xdr_args, args_ptr)
12717 - xdrproc_t xdr_args;
12718 - caddr_t args_ptr;
12720 - return (SVCAUTH_UNWRAP(xprt->xp_auth,
12721 - &(((struct tcp_conn *)(xprt->xp_p1))->xdrs),
12722 - xdr_args, args_ptr));
12726 -svctcp_freeargs(xprt, xdr_args, args_ptr)
12728 - xdrproc_t xdr_args;
12729 - caddr_t args_ptr;
12731 - register XDR *xdrs =
12732 - &(((struct tcp_conn *)(xprt->xp_p1))->xdrs);
12734 - xdrs->x_op = XDR_FREE;
12735 - return ((*xdr_args)(xdrs, args_ptr));
12739 -svctcp_reply(xprt, msg)
12741 - register struct rpc_msg *msg;
12743 - register struct tcp_conn *cd =
12744 - (struct tcp_conn *)(xprt->xp_p1);
12745 - register XDR *xdrs = &(cd->xdrs);
12746 - xdrproc_t xdr_proc;
12747 - caddr_t xdr_where;
12749 - xdrs->x_op = XDR_ENCODE;
12750 - msg->rm_xid = cd->x_id;
12752 - if (msg->rm_reply.rp_stat == MSG_ACCEPTED &&
12753 - msg->rm_reply.rp_acpt.ar_stat == SUCCESS) {
12754 - xdr_proc = msg->acpted_rply.ar_results.proc;
12755 - xdr_where = msg->acpted_rply.ar_results.where;
12756 - msg->acpted_rply.ar_results.proc = xdr_void;
12757 - msg->acpted_rply.ar_results.where = NULL;
12759 - if (!xdr_replymsg(xdrs, msg) ||
12760 - !SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_proc, xdr_where))
12763 - else if (!xdr_replymsg(xdrs, msg)) {
12766 - (void)xdrrec_endofrecord(xdrs, TRUE);
12770 diff -puN -L support/rpc/svc_udp.c support/rpc/svc_udp.c~CITI_NFS4_ALL /dev/null
12771 --- nfs-utils-1.0.7/support/rpc/svc_udp.c
12772 +++ /dev/null 2005-05-05 05:47:05.259725168 -0400
12775 - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
12776 - * unrestricted use provided that this legend is included on all tape
12777 - * media and as a part of the software program in whole or part. Users
12778 - * may copy or modify Sun RPC without charge, but are not authorized
12779 - * to license or distribute it to anyone else except as part of a product or
12780 - * program developed by the user.
12782 - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
12783 - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
12784 - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
12786 - * Sun RPC is provided with no support and without any obligation on the
12787 - * part of Sun Microsystems, Inc. to assist in its use, correction,
12788 - * modification or enhancement.
12790 - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
12791 - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
12792 - * OR ANY PART THEREOF.
12794 - * In no event will Sun Microsystems, Inc. be liable for any lost revenue
12795 - * or profits or other special, indirect and consequential damages, even if
12796 - * Sun has been advised of the possibility of such damages.
12798 - * Sun Microsystems, Inc.
12799 - * 2550 Garcia Avenue
12800 - * Mountain View, California 94043
12803 -#if defined(LIBC_SCCS) && !defined(lint)
12804 -static char *rcsid = "$OpenBSD: svc_udp.c,v 1.8 1998/03/19 00:27:26 millert Exp $";
12805 -#endif /* LIBC_SCCS and not lint */
12809 - * Server side for UDP/IP based RPC. (Does some caching in the hopes of
12810 - * achieving execute-at-most-once semantics.)
12812 - * Copyright (C) 1984, Sun Microsystems, Inc.
12815 -#include <stdio.h>
12816 -#include <stdlib.h>
12817 -#include <string.h>
12818 -#include <rpc/rpc.h>
12819 -#include <sys/socket.h>
12820 -#include <errno.h>
12821 -#include <unistd.h>
12824 -#define rpc_buffer(xprt) ((xprt)->xp_p1)
12826 -#define MAX(a, b) ((a > b) ? a : b)
12829 -static bool_t svcudp_recv();
12830 -static bool_t svcudp_reply();
12831 -static enum xprt_stat svcudp_stat();
12832 -static bool_t svcudp_getargs();
12833 -static bool_t svcudp_freeargs();
12834 -static void svcudp_destroy();
12835 -static void cache_set __P((SVCXPRT *, u_long));
12836 -static int cache_get __P((SVCXPRT *, struct rpc_msg *, char **, u_long *));
12838 -static struct xp_ops svcudp_op = {
12848 - * kept in xprt->xp_p2
12850 -struct svcudp_data {
12851 - u_int su_iosz; /* byte size of send.recv buffer */
12852 - u_long su_xid; /* transaction id */
12853 - XDR su_xdrs; /* XDR handle */
12854 - char su_verfbody[MAX_AUTH_BYTES]; /* verifier body */
12855 - char * su_cache; /* cached data, NULL if no cache */
12857 -#define su_data(xprt) ((struct svcudp_data *)(xprt->xp_p2))
12861 - * xprt = svcudp_create(sock);
12863 - * If sock<0 then a socket is created, else sock is used.
12864 - * If the socket, sock is not bound to a port then svcudp_create
12865 - * binds it to an arbitrary port. In any (successful) case,
12866 - * xprt->xp_sock is the registered socket number and xprt->xp_port is the
12867 - * associated port number.
12868 - * Once *xprt is initialized, it is registered as a transporter;
12869 - * see (svc.h, xprt_register).
12870 - * The routines returns NULL if a problem occurred.
12873 -svcudp_bufcreate(sock, sendsz, recvsz)
12874 - register int sock;
12875 - u_int sendsz, recvsz;
12877 - bool_t madesock = FALSE;
12878 - register SVCXPRT *xprt;
12879 - register struct svcudp_data *su;
12880 - struct sockaddr_in addr;
12881 - int len = sizeof(struct sockaddr_in);
12883 - if (sock == RPC_ANYSOCK) {
12884 - if ((sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
12885 - perror("svcudp_create: socket creation problem");
12886 - return ((SVCXPRT *)NULL);
12890 - memset(&addr, 0, sizeof (addr));
12892 - addr.sin_len = sizeof(struct sockaddr_in);
12894 - addr.sin_family = AF_INET;
12895 - if (bindresvport(sock, &addr)) {
12896 - addr.sin_port = 0;
12897 - (void)bind(sock, (struct sockaddr *)&addr, len);
12899 - if (getsockname(sock, (struct sockaddr *)&addr, &len) != 0) {
12900 - perror("svcudp_create - cannot getsockname");
12902 - (void)close(sock);
12903 - return ((SVCXPRT *)NULL);
12905 - xprt = (SVCXPRT *)mem_alloc(sizeof(SVCXPRT));
12906 - if (xprt == NULL) {
12907 - (void)fprintf(stderr, "svcudp_create: out of memory\n");
12909 - (void)close(sock);
12912 - su = (struct svcudp_data *)mem_alloc(sizeof(*su));
12913 - if (su == NULL) {
12914 - (void)fprintf(stderr, "svcudp_create: out of memory\n");
12916 - (void)close(sock);
12920 - su->su_iosz = ((MAX(sendsz, recvsz) + 3) / 4) * 4;
12921 - if ((rpc_buffer(xprt) = mem_alloc(su->su_iosz)) == NULL) {
12922 - (void)fprintf(stderr, "svcudp_create: out of memory\n");
12924 - (void)close(sock);
12930 - &(su->su_xdrs), rpc_buffer(xprt), su->su_iosz, XDR_DECODE);
12931 - su->su_cache = NULL;
12932 - xprt->xp_p2 = (caddr_t)su;
12933 - xprt->xp_auth = NULL;
12934 - xprt->xp_verf.oa_base = su->su_verfbody;
12935 - xprt->xp_ops = &svcudp_op;
12936 - xprt->xp_port = ntohs(addr.sin_port);
12937 - xprt->xp_sock = sock;
12938 - xprt_register(xprt);
12943 -svcudp_create(sock)
12947 - return(svcudp_bufcreate(sock, UDPMSGSIZE, UDPMSGSIZE));
12951 -static enum xprt_stat
12956 - return (XPRT_IDLE);
12960 -svcudp_recv(xprt, msg)
12961 - register SVCXPRT *xprt;
12962 - struct rpc_msg *msg;
12964 - register struct svcudp_data *su = su_data(xprt);
12965 - register XDR *xdrs = &(su->su_xdrs);
12966 - register int rlen;
12971 - xprt->xp_addrlen = sizeof(struct sockaddr_in);
12972 - rlen = recvfrom(xprt->xp_sock, rpc_buffer(xprt), (int) su->su_iosz,
12973 - 0, (struct sockaddr *)&(xprt->xp_raddr), &(xprt->xp_addrlen));
12974 - if (rlen == -1 && errno == EINTR)
12976 - if (rlen == -1 || rlen < 4*sizeof(u_int32_t))
12978 - xdrs->x_op = XDR_DECODE;
12979 - XDR_SETPOS(xdrs, 0);
12980 - if (! xdr_callmsg(xdrs, msg))
12982 - su->su_xid = msg->rm_xid;
12983 - if (su->su_cache != NULL) {
12984 - if (cache_get(xprt, msg, &reply, &replylen)) {
12985 - (void) sendto(xprt->xp_sock, reply, (int) replylen, 0,
12986 - (struct sockaddr *) &xprt->xp_raddr, xprt->xp_addrlen);
12994 -svcudp_reply(xprt, msg)
12995 - register SVCXPRT *xprt;
12996 - struct rpc_msg *msg;
12998 - register struct svcudp_data *su = su_data(xprt);
12999 - register XDR *xdrs = &(su->su_xdrs);
13000 - register int slen;
13001 - xdrproc_t xdr_proc;
13002 - caddr_t xdr_where;
13004 - xdrs->x_op = XDR_ENCODE;
13005 - XDR_SETPOS(xdrs, 0);
13006 - msg->rm_xid = su->su_xid;
13008 - if (msg->rm_reply.rp_stat == MSG_ACCEPTED &&
13009 - msg->rm_reply.rp_acpt.ar_stat == SUCCESS) {
13010 - xdr_proc = msg->acpted_rply.ar_results.proc;
13011 - xdr_where = msg->acpted_rply.ar_results.where;
13012 - msg->acpted_rply.ar_results.proc = xdr_void;
13013 - msg->acpted_rply.ar_results.where = NULL;
13015 - if (!xdr_replymsg(xdrs, msg) ||
13016 - !SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_proc, xdr_where))
13019 - else if (!xdr_replymsg(xdrs, msg)) {
13022 - slen = (int)XDR_GETPOS(xdrs);
13024 - if (sendto(xprt->xp_sock, rpc_buffer(xprt), slen, 0,
13025 - (struct sockaddr *)&(xprt->xp_raddr), xprt->xp_addrlen)
13029 - if (su->su_cache && slen >= 0)
13030 - cache_set(xprt, (u_long) slen);
13036 -svcudp_getargs(xprt, xdr_args, args_ptr)
13038 - xdrproc_t xdr_args;
13039 - caddr_t args_ptr;
13041 - return (SVCAUTH_UNWRAP(xprt->xp_auth, &(su_data(xprt)->su_xdrs),
13042 - xdr_args, args_ptr));
13046 -svcudp_freeargs(xprt, xdr_args, args_ptr)
13048 - xdrproc_t xdr_args;
13049 - caddr_t args_ptr;
13051 - register XDR *xdrs = &(su_data(xprt)->su_xdrs);
13053 - xdrs->x_op = XDR_FREE;
13054 - return ((*xdr_args)(xdrs, args_ptr));
13058 -svcudp_destroy(xprt)
13059 - register SVCXPRT *xprt;
13061 - register struct svcudp_data *su = su_data(xprt);
13063 - xprt_unregister(xprt);
13064 - if (xprt->xp_sock != -1)
13065 - (void)close(xprt->xp_sock);
13066 - xprt->xp_sock = -1;
13067 - if (xprt->xp_auth != NULL) {
13068 - SVCAUTH_DESTROY(xprt->xp_auth);
13069 - xprt->xp_auth = NULL;
13071 - XDR_DESTROY(&(su->su_xdrs));
13072 - mem_free(rpc_buffer(xprt), su->su_iosz);
13073 - mem_free((caddr_t)su, sizeof(struct svcudp_data));
13074 - mem_free((caddr_t)xprt, sizeof(SVCXPRT));
13078 -/***********this could be a separate file*********************/
13081 - * Fifo cache for udp server
13082 - * Copies pointers to reply buffers into fifo cache
13083 - * Buffers are sent again if retransmissions are detected.
13086 -#define SPARSENESS 4 /* 75% sparse */
13088 -#define CACHE_PERROR(msg) \
13089 - (void) fprintf(stderr,"%s\n", msg)
13091 -#define ALLOC(type, size) \
13092 - (type *) mem_alloc((unsigned) (sizeof(type) * (size)))
13094 -#define BZERO(addr, type, size) \
13095 - memset((char *) addr, 0, sizeof(type) * (int) (size))
13098 - * An entry in the cache
13100 -typedef struct cache_node *cache_ptr;
13101 -struct cache_node {
13103 - * Index into cache is xid, proc, vers, prog and address
13105 - u_long cache_xid;
13106 - u_long cache_proc;
13107 - u_long cache_vers;
13108 - u_long cache_prog;
13109 - struct sockaddr_in cache_addr;
13111 - * The cached reply and length
13113 - char * cache_reply;
13114 - u_long cache_replylen;
13116 - * Next node on the list, if there is a collision
13118 - cache_ptr cache_next;
13124 - * The entire cache
13126 -struct udp_cache {
13127 - u_long uc_size; /* size of cache */
13128 - cache_ptr *uc_entries; /* hash table of entries in cache */
13129 - cache_ptr *uc_fifo; /* fifo list of entries in cache */
13130 - u_long uc_nextvictim; /* points to next victim in fifo list */
13131 - u_long uc_prog; /* saved program number */
13132 - u_long uc_vers; /* saved version number */
13133 - u_long uc_proc; /* saved procedure number */
13134 - struct sockaddr_in uc_addr; /* saved caller's address */
13139 - * the hashing function
13141 -#define CACHE_LOC(transp, xid) \
13142 - (xid % (SPARSENESS*((struct udp_cache *) su_data(transp)->su_cache)->uc_size))
13146 - * Enable use of the cache.
13147 - * Note: there is no disable.
13150 -svcudp_enablecache(transp, size)
13154 - struct svcudp_data *su = su_data(transp);
13155 - struct udp_cache *uc;
13157 - if (su->su_cache != NULL) {
13158 - CACHE_PERROR("enablecache: cache already enabled");
13161 - uc = ALLOC(struct udp_cache, 1);
13162 - if (uc == NULL) {
13163 - CACHE_PERROR("enablecache: could not allocate cache");
13166 - uc->uc_size = size;
13167 - uc->uc_nextvictim = 0;
13168 - uc->uc_entries = ALLOC(cache_ptr, size * SPARSENESS);
13169 - if (uc->uc_entries == NULL) {
13170 - CACHE_PERROR("enablecache: could not allocate cache data");
13173 - BZERO(uc->uc_entries, cache_ptr, size * SPARSENESS);
13174 - uc->uc_fifo = ALLOC(cache_ptr, size);
13175 - if (uc->uc_fifo == NULL) {
13176 - CACHE_PERROR("enablecache: could not allocate cache fifo");
13179 - BZERO(uc->uc_fifo, cache_ptr, size);
13180 - su->su_cache = (char *) uc;
13186 - * Set an entry in the cache
13189 -cache_set(xprt, replylen)
13193 - register cache_ptr victim;
13194 - register cache_ptr *vicp;
13195 - register struct svcudp_data *su = su_data(xprt);
13196 - struct udp_cache *uc = (struct udp_cache *) su->su_cache;
13201 - * Find space for the new entry, either by
13202 - * reusing an old entry, or by mallocing a new one
13204 - victim = uc->uc_fifo[uc->uc_nextvictim];
13205 - if (victim != NULL) {
13206 - loc = CACHE_LOC(xprt, victim->cache_xid);
13207 - for (vicp = &uc->uc_entries[loc];
13208 - *vicp != NULL && *vicp != victim;
13209 - vicp = &(*vicp)->cache_next)
13211 - if (*vicp == NULL) {
13212 - CACHE_PERROR("cache_set: victim not found");
13215 - *vicp = victim->cache_next; /* remote from cache */
13216 - newbuf = victim->cache_reply;
13218 - victim = ALLOC(struct cache_node, 1);
13219 - if (victim == NULL) {
13220 - CACHE_PERROR("cache_set: victim alloc failed");
13223 - newbuf = mem_alloc(su->su_iosz);
13224 - if (newbuf == NULL) {
13225 - CACHE_PERROR("cache_set: could not allocate new rpc_buffer");
13233 - victim->cache_replylen = replylen;
13234 - victim->cache_reply = rpc_buffer(xprt);
13235 - rpc_buffer(xprt) = newbuf;
13236 - xdrmem_create(&(su->su_xdrs), rpc_buffer(xprt), su->su_iosz, XDR_ENCODE);
13237 - victim->cache_xid = su->su_xid;
13238 - victim->cache_proc = uc->uc_proc;
13239 - victim->cache_vers = uc->uc_vers;
13240 - victim->cache_prog = uc->uc_prog;
13241 - victim->cache_addr = uc->uc_addr;
13242 - loc = CACHE_LOC(xprt, victim->cache_xid);
13243 - victim->cache_next = uc->uc_entries[loc];
13244 - uc->uc_entries[loc] = victim;
13245 - uc->uc_fifo[uc->uc_nextvictim++] = victim;
13246 - uc->uc_nextvictim %= uc->uc_size;
13250 - * Try to get an entry from the cache
13251 - * return 1 if found, 0 if not found
13254 -cache_get(xprt, msg, replyp, replylenp)
13256 - struct rpc_msg *msg;
13258 - u_long *replylenp;
13261 - register cache_ptr ent;
13262 - register struct svcudp_data *su = su_data(xprt);
13263 - register struct udp_cache *uc = (struct udp_cache *) su->su_cache;
13265 -# define EQADDR(a1, a2) (memcmp(&a1, &a2, sizeof(a1)) == 0)
13267 - loc = CACHE_LOC(xprt, su->su_xid);
13268 - for (ent = uc->uc_entries[loc]; ent != NULL; ent = ent->cache_next) {
13269 - if (ent->cache_xid == su->su_xid &&
13270 - ent->cache_proc == uc->uc_proc &&
13271 - ent->cache_vers == uc->uc_vers &&
13272 - ent->cache_prog == uc->uc_prog &&
13273 - EQADDR(ent->cache_addr, uc->uc_addr)) {
13274 - *replyp = ent->cache_reply;
13275 - *replylenp = ent->cache_replylen;
13280 - * Failed to find entry
13281 - * Remember a few things so we can do a set later
13283 - uc->uc_proc = msg->rm_call.cb_proc;
13284 - uc->uc_vers = msg->rm_call.cb_vers;
13285 - uc->uc_prog = msg->rm_call.cb_prog;
13286 - uc->uc_addr = xprt->xp_raddr;
13290 diff -puN utils/gssd/gssd.c~CITI_NFS4_ALL utils/gssd/gssd.c
13291 --- nfs-utils-1.0.7/utils/gssd/gssd.c~CITI_NFS4_ALL 2005-05-06 15:19:26.142447000 -0400
13292 +++ nfs-utils-1.0.7-kwc/utils/gssd/gssd.c 2005-05-06 15:19:26.301305000 -0400
13297 +#include "config.h"
13299 #include <sys/param.h>
13300 #include <sys/socket.h>
13301 #include <rpc/rpc.h>
13302 @@ -66,7 +68,7 @@ sig_die(int signal)
13304 usage(char *progname)
13306 - fprintf(stderr, "usage: %s [-f] [-v] [-p pipefsdir] [-k keytab]\n",
13307 + fprintf(stderr, "usage: %s [-f] [-v] [-r] [-p pipefsdir] [-k keytab]\n",
13311 @@ -76,11 +78,12 @@ main(int argc, char *argv[])
13315 + int rpc_verbosity = 0;
13317 extern char *optarg;
13320 - while ((opt = getopt(argc, argv, "fvmp:k:")) != -1) {
13321 + while ((opt = getopt(argc, argv, "fvrmp:k:")) != -1) {
13325 @@ -91,6 +94,9 @@ main(int argc, char *argv[])
13333 strncpy(pipefsdir, optarg, sizeof(pipefsdir));
13334 if (pipefsdir[sizeof(pipefsdir)-1] != '\0')
13335 @@ -117,6 +123,13 @@ main(int argc, char *argv[])
13336 progname = argv[0];
13338 initerr(progname, verbosity, fg);
13339 +#ifdef HAVE_AUTHGSS_SET_DEBUG_LEVEL
13340 + authgss_set_debug_level(rpc_verbosity);
13342 + if (rpc_verbosity > 0)
13343 + printerr(0, "Warning: rpcsec_gss library does not "
13344 + "support setting debug level\n");
13347 if (!fg && daemon(0, 0) < 0)
13349 diff -puN utils/gssd/gssd.man~CITI_NFS4_ALL utils/gssd/gssd.man
13350 --- nfs-utils-1.0.7/utils/gssd/gssd.man~CITI_NFS4_ALL 2005-05-06 15:19:26.190416000 -0400
13351 +++ nfs-utils-1.0.7-kwc/utils/gssd/gssd.man 2005-05-06 15:19:26.316291000 -0400
13354 rpc.gssd \- rpcsec_gss daemon
13356 -.B "rpc.gssd [-f] [-k keytab] [-p pipefsdir] [-v]"
13357 +.B "rpc.gssd [-f] [-k keytab] [-p pipefsdir] [-v] [-r]"
13359 The rpcsec_gss protocol gives a means of using the gss-api generic security
13360 api to provide security for protocols using rpc (in particular, nfs). Before
13361 @@ -50,6 +50,10 @@ where to look for the rpc_pipefs filesys
13364 Increases the verbosity of the output (can be specified multiple times).
13367 +If the rpcsec_gss library supports setting debug level,
13368 +increases the verbosity of the output (can be specified multiple times).
13372 diff -puN utils/svcgssd/svcgssd.c~CITI_NFS4_ALL utils/svcgssd/svcgssd.c
13373 --- nfs-utils-1.0.7/utils/svcgssd/svcgssd.c~CITI_NFS4_ALL 2005-05-06 15:19:26.238369000 -0400
13374 +++ nfs-utils-1.0.7-kwc/utils/svcgssd/svcgssd.c 2005-05-06 15:19:26.309297000 -0400
13379 +#include "config.h"
13381 #include <sys/param.h>
13382 #include <sys/types.h>
13383 #include <sys/stat.h>
13384 @@ -146,7 +148,7 @@ sig_die(int signal)
13386 usage(char *progname)
13388 - fprintf(stderr, "usage: %s [-n] [-f] [-v]\n",
13389 + fprintf(stderr, "usage: %s [-n] [-f] [-v] [-r]\n",
13393 @@ -157,11 +159,12 @@ main(int argc, char *argv[])
13397 + int rpc_verbosity = 0;
13399 extern char *optarg;
13402 - while ((opt = getopt(argc, argv, "fvnp:")) != -1) {
13403 + while ((opt = getopt(argc, argv, "fvrnp:")) != -1) {
13407 @@ -172,6 +175,9 @@ main(int argc, char *argv[])
13417 @@ -184,6 +190,13 @@ main(int argc, char *argv[])
13418 progname = argv[0];
13420 initerr(progname, verbosity, fg);
13421 +#ifdef HAVE_AUTHGSS_SET_DEBUG_LEVEL
13422 + authgss_set_debug_level(rpc_verbosity);
13424 + if (rpc_verbosity > 0)
13425 + printerr(0, "Warning: rpcsec_gss library does not "
13426 + "support setting debug level\n");
13431 diff -puN utils/svcgssd/svcgssd.man~CITI_NFS4_ALL utils/svcgssd/svcgssd.man
13432 --- nfs-utils-1.0.7/utils/svcgssd/svcgssd.man~CITI_NFS4_ALL 2005-05-06 15:19:26.287319000 -0400
13433 +++ nfs-utils-1.0.7-kwc/utils/svcgssd/svcgssd.man 2005-05-06 15:19:26.323285000 -0400
13436 rpc.svcgssd \- server-side rpcsec_gss daemon
13438 -.B "rpc.svcgssd [-v] [-f] [-p pipefsdir]"
13439 +.B "rpc.svcgssd [-v] [-r] [-f] [-p pipefsdir]"
13441 The rpcsec_gss protocol gives a means of using the gss-api generic security
13442 api to provide security for protocols using rpc (in particular, nfs). Before
13443 @@ -27,6 +27,10 @@ in the foreground and sends output to st
13446 Increases the verbosity of the output (can be specified multiple times).
13449 +If the rpcsec_gss library supports setting debug level,
13450 +increases the verbosity of the output (can be specified multiple times).
13454 diff -puN utils/gssd/context_heimdal.c~CITI_NFS4_ALL utils/gssd/context_heimdal.c
13455 --- nfs-utils-1.0.7/utils/gssd/context_heimdal.c~CITI_NFS4_ALL 2005-05-06 15:19:26.436170000 -0400
13456 +++ nfs-utils-1.0.7-kwc/utils/gssd/context_heimdal.c 2005-05-06 15:19:26.510156000 -0400
13458 #include <syslog.h>
13459 #include <string.h>
13461 -#include <gssapi.h>
13463 +#include <gssapi.h> /* Must use the heimdal copy! */
13464 +#ifdef HAVE_COM_ERR_H
13465 #include <com_err.h>
13467 #include "err_util.h"
13468 #include "gss_oids.h"
13469 #include "write_bytes.h"
13470 @@ -83,9 +85,14 @@ int write_heimdal_enc_key(char **p, char
13473 memset(&enc_key, 0, sizeof(enc_key));
13474 - printerr(1, "WARN: write_heimdal_enc_key: "
13475 - "overriding heimdal keytype\n");
13476 - enc_key.keytype = 4 /* XXX XXX XXX XXX key->keytype */;
13477 + enc_key.keytype = key->keytype;
13478 + /* XXX current kernel code only handles des-cbc-raw (4) */
13479 + if (enc_key.keytype != 4) {
13480 + printerr(1, "WARN: write_heimdal_enc_key: "
13481 + "overriding heimdal keytype (%d => %d)\n",
13482 + enc_key.keytype, 4);
13483 + enc_key.keytype = 4;
13485 enc_key.keyvalue.length = key->keyvalue.length;
13486 if ((enc_key.keyvalue.data =
13487 calloc(1, enc_key.keyvalue.length)) == NULL) {
13488 @@ -135,9 +142,13 @@ int write_heimdal_seq_key(char **p, char
13489 goto out_err_free_context;
13492 - printerr(1, "WARN: write_heimdal_seq_key: "
13493 - "overriding heimdal keytype\n");
13494 - key->keytype = 4; /* XXX XXX XXX XXX XXX */
13495 + /* XXX current kernel code only handles des-cbc-raw (4) */
13496 + if (key->keytype != 4) {
13497 + printerr(1, "WARN: write_heimdal_seq_key: "
13498 + "overriding heimdal keytype (%d => %d)\n",
13499 + key->keytype, 4);
13500 + key->keytype = 4;
13503 if (write_heimdal_keyblock(p, end, key)) {
13504 goto out_err_free_key;
13505 diff -puN utils/gssd/gss_oids.h~CITI_NFS4_ALL utils/gssd/gss_oids.h
13506 --- nfs-utils-1.0.7/utils/gssd/gss_oids.h~CITI_NFS4_ALL 2005-05-06 15:19:26.484156000 -0400
13507 +++ nfs-utils-1.0.7-kwc/utils/gssd/gss_oids.h 2005-05-06 15:19:26.517156000 -0400
13509 #define _GSS_OIDS_H_
13511 #include <sys/types.h>
13512 -#include <gssapi/gssapi.h>
13514 extern gss_OID_desc krb5oid;
13515 extern gss_OID_desc spkm3oid;