1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-27 12:41:57 +03:00

Remove support for Kerberos V4. It seems no one is using this, it has

some security issues, and upstream has declared it "dead". Patch from
Magnus Hagander, minor editorialization from Neil Conway.
This commit is contained in:
Neil Conway
2005-06-27 02:04:26 +00:00
parent a051da0207
commit a159ad3048
19 changed files with 46 additions and 794 deletions

387
configure vendored
View File

@ -867,7 +867,6 @@ Optional Packages:
--with-tclconfig=DIR tclConfig.sh is in DIR
--with-perl build Perl modules (PL/Perl)
--with-python build Python modules (PL/Python)
--with-krb4 build with Kerberos 4 support
--with-krb5 build with Kerberos 5 support
--with-krb-srvnam=NAME name of the default service principal in Kerberos [postgres]
--with-pam build with PAM support
@ -3257,49 +3256,6 @@ echo "$as_me:$LINENO: result: $with_python" >&5
echo "${ECHO_T}$with_python" >&6
#
# Kerberos 4
#
echo "$as_me:$LINENO: checking whether to build with Kerberos 4 support" >&5
echo $ECHO_N "checking whether to build with Kerberos 4 support... $ECHO_C" >&6
# Check whether --with-krb4 or --without-krb4 was given.
if test "${with_krb4+set}" = set; then
withval="$with_krb4"
case $withval in
yes)
cat >>confdefs.h <<\_ACEOF
#define KRB4 1
_ACEOF
krb_srvtab="/etc/srvtab"
;;
no)
:
;;
*)
{ { echo "$as_me:$LINENO: error: no argument expected for --with-krb4 option" >&5
echo "$as_me: error: no argument expected for --with-krb4 option" >&2;}
{ (exit 1); exit 1; }; }
;;
esac
else
with_krb4=no
fi;
echo "$as_me:$LINENO: result: $with_krb4" >&5
echo "${ECHO_T}$with_krb4" >&6
#
# Kerberos 5
#
@ -3343,13 +3299,6 @@ echo "${ECHO_T}$with_krb5" >&6
# Using both Kerberos 4 and Kerberos 5 at the same time isn't going to work.
if test "$with_krb4" = yes && test "$with_krb5" = yes ; then
{ { echo "$as_me:$LINENO: error: Kerberos 4 and Kerberos 5 support cannot be combined" >&5
echo "$as_me: error: Kerberos 4 and Kerberos 5 support cannot be combined" >&2;}
{ (exit 1); exit 1; }; }
fi
@ -6137,226 +6086,6 @@ echo "$as_me: WARNING:
*** Not using spinlocks will cause poor performance." >&2;}
fi
if test "$with_krb4" = yes ; then
echo "$as_me:$LINENO: checking for des_encrypt in -ldes" >&5
echo $ECHO_N "checking for des_encrypt in -ldes... $ECHO_C" >&6
if test "${ac_cv_lib_des_des_encrypt+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldes $LIBS"
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char des_encrypt ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
des_encrypt ();
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_des_des_encrypt=yes
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
ac_cv_lib_des_des_encrypt=no
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_des_des_encrypt" >&5
echo "${ECHO_T}$ac_cv_lib_des_des_encrypt" >&6
if test $ac_cv_lib_des_des_encrypt = yes; then
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBDES 1
_ACEOF
LIBS="-ldes $LIBS"
else
{ { echo "$as_me:$LINENO: error: library 'des' is required for Kerberos 4" >&5
echo "$as_me: error: library 'des' is required for Kerberos 4" >&2;}
{ (exit 1); exit 1; }; }
fi
echo "$as_me:$LINENO: checking for krb_sendauth in -lkrb" >&5
echo $ECHO_N "checking for krb_sendauth in -lkrb... $ECHO_C" >&6
if test "${ac_cv_lib_krb_krb_sendauth+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lkrb $LIBS"
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char krb_sendauth ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
krb_sendauth ();
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_krb_krb_sendauth=yes
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
ac_cv_lib_krb_krb_sendauth=no
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_krb_krb_sendauth" >&5
echo "${ECHO_T}$ac_cv_lib_krb_krb_sendauth" >&6
if test $ac_cv_lib_krb_krb_sendauth = yes; then
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBKRB 1
_ACEOF
LIBS="-lkrb $LIBS"
else
{ { echo "$as_me:$LINENO: error: library 'krb' is required for Kerberos 4" >&5
echo "$as_me: error: library 'krb' is required for Kerberos 4" >&2;}
{ (exit 1); exit 1; }; }
fi
for ac_func in gethostname
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
echo "$as_me:$LINENO: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char $ac_func ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
choke me
#else
f = $ac_func;
#endif
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
eval "$as_ac_var=yes"
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
eval "$as_ac_var=no"
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
if test `eval echo '${'$as_ac_var'}'` = yes; then
cat >>confdefs.h <<_ACEOF
#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
else
LIBOBJS="$LIBOBJS $ac_func.$ac_objext"
fi
done
fi
if test "$with_krb5" = yes ; then
if test "$PORTNAME" != "win32"; then
echo "$as_me:$LINENO: checking for library containing com_err" >&5
@ -8987,119 +8716,6 @@ Use --without-zlib to disable zlib support." >&2;}
fi
fi
if test "$with_krb4" = yes ; then
if test "${ac_cv_header_krb_h+set}" = set; then
echo "$as_me:$LINENO: checking for krb.h" >&5
echo $ECHO_N "checking for krb.h... $ECHO_C" >&6
if test "${ac_cv_header_krb_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
fi
echo "$as_me:$LINENO: result: $ac_cv_header_krb_h" >&5
echo "${ECHO_T}$ac_cv_header_krb_h" >&6
else
# Is the header compilable?
echo "$as_me:$LINENO: checking krb.h usability" >&5
echo $ECHO_N "checking krb.h usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
$ac_includes_default
#include <krb.h>
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_header_compiler=yes
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
ac_header_compiler=no
fi
rm -f conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
# Is the header present?
echo "$as_me:$LINENO: checking krb.h presence" >&5
echo $ECHO_N "checking krb.h presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
#include <krb.h>
_ACEOF
if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
else
ac_cpp_err=
fi
else
ac_cpp_err=yes
fi
if test -z "$ac_cpp_err"; then
ac_header_preproc=yes
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
ac_header_preproc=no
fi
rm -f conftest.err conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
case $ac_header_compiler:$ac_header_preproc in
yes:no )
{ echo "$as_me:$LINENO: WARNING: krb.h: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: krb.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
{ echo "$as_me:$LINENO: WARNING: krb.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: krb.h: proceeding with the preprocessor's result" >&2;};;
no:yes )
{ echo "$as_me:$LINENO: WARNING: krb.h: present but cannot be compiled" >&5
echo "$as_me: WARNING: krb.h: present but cannot be compiled" >&2;}
{ echo "$as_me:$LINENO: WARNING: krb.h: check for missing prerequisite headers?" >&5
echo "$as_me: WARNING: krb.h: check for missing prerequisite headers?" >&2;}
{ echo "$as_me:$LINENO: WARNING: krb.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: krb.h: proceeding with the preprocessor's result" >&2;};;
esac
echo "$as_me:$LINENO: checking for krb.h" >&5
echo $ECHO_N "checking for krb.h... $ECHO_C" >&6
if test "${ac_cv_header_krb_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_cv_header_krb_h=$ac_header_preproc
fi
echo "$as_me:$LINENO: result: $ac_cv_header_krb_h" >&5
echo "${ECHO_T}$ac_cv_header_krb_h" >&6
fi
if test $ac_cv_header_krb_h = yes; then
:
else
{ { echo "$as_me:$LINENO: error: header file <krb.h> is required for Kerberos 4" >&5
echo "$as_me: error: header file <krb.h> is required for Kerberos 4" >&2;}
{ (exit 1); exit 1; }; }
fi
fi
if test "$with_krb5" = yes ; then
@ -19706,7 +19322,6 @@ s,@enable_thread_safety@,$enable_thread_safety,;t t
s,@with_tcl@,$with_tcl,;t t
s,@with_perl@,$with_perl,;t t
s,@with_python@,$with_python,;t t
s,@with_krb4@,$with_krb4,;t t
s,@with_krb5@,$with_krb5,;t t
s,@krb_srvtab@,$krb_srvtab,;t t
s,@with_pam@,$with_pam,;t t
@ -19743,8 +19358,8 @@ s,@python_includespec@,$python_includespec,;t t
s,@python_libdir@,$python_libdir,;t t
s,@python_libspec@,$python_libspec,;t t
s,@python_additional_libs@,$python_additional_libs,;t t
s,@LIBOBJS@,$LIBOBJS,;t t
s,@HAVE_IPV6@,$HAVE_IPV6,;t t
s,@LIBOBJS@,$LIBOBJS,;t t
s,@acx_pthread_config@,$acx_pthread_config,;t t
s,@PTHREAD_CC@,$PTHREAD_CC,;t t
s,@PTHREAD_LIBS@,$PTHREAD_LIBS,;t t