On my Red Hat 9 machine I'm getting the following error during compile
when configured --with-krb5=/usr/kerberos:
i386-redhat-linux-gcc -O2 -g -Wall -Wmissing-prototypes
-Wmissing-declarations -fpic -I. -I../../../src/include
-I/usr/kerberos/include -DFRONTEND -DSYSCONFDIR='"/etc/sysconfig/pgsql"' -c -o fe-auth.o fe-auth.c -MMD
fe-auth.c: In function `pg_krb5_sendauth':
fe-auth.c:392: parse error before ')' token
fe-auth.c:368: warning: unused variable `auth_context'
fe-auth.c:369: warning: unused variable `err_ret'
fe-auth.c: At top level:
fe-auth.c:400: warning: type defaults to `int' in declaration of `retval'
fe-auth.c:400: `auth_context' undeclared here (not in a function)
fe-auth.c:401: `sock' undeclared here (not in a function)
fe-auth.c:402: `server' undeclared here (not in a function)
fe-auth.c:405: `err_ret' undeclared here (not in a function)
fe-auth.c:405: initializer element is not constant
fe-auth.c:405: warning: data definition has no type or storage class
fe-auth.c:406: parse error before "if"
fe-auth.c:432: warning: type defaults to `int' in declaration of `ret'
fe-auth.c:432: warning: data definition has no type or storage class
fe-auth.c:433: parse error before '}' token
fe-auth.c:435: warning: type defaults to `int' in declaration of
`krb5_free_principal'
fe-auth.c:435: warning: parameter names (without types) in function
declaration
fe-auth.c:435: conflicting types for `krb5_free_principal'
/usr/kerberos/include/krb5.h:1923: previous declaration of
`krb5_free_principal'
fe-auth.c:435: warning: data definition has no type or storage class
fe-auth.c:437: parse error before "if"
fe-auth.c:442: warning: type defaults to `int' in declaration of `ret'
fe-auth.c:442: redefinition of `ret'
fe-auth.c:432: `ret' previously defined here
fe-auth.c:442: warning: data definition has no type or storage class
fe-auth.c:443: parse error before '}' token
make[3]: *** [fe-auth.o] Error 1
make[3]: Leaving directory `/opt/src/pgsql/src/interfaces/libpq'
Looks like it must be related to Bruce's commit from earlier today right
at line 392:
/pgsql-server/src/interfaces/libpq/fe-auth.c
version 1.77, 2003/05/15 16:35:30
(I'd post a link to webcvs, but it seems to be down for the past few hours)
I also noticed that if I try to configure --with-openssl but *not*
--with-krb5=/usr/kerberos, I get configure errors. The error occurs on a
test involving /usr/include/openssl/kssl.h when <krb5.h> cannot be
found. In /usr/include/openssl/kssl.h I see this:
#ifndef OPENSSL_NO_KRB5
#include <stdio.h>
#include <ctype.h>
#include <krb5.h>
And indeed, if I define CPPFLAGS=-DOPENSSL_NO_KRB5 explicitly all goes
fine. It seems Red Hat puts krb5.h here -- /usr/kerberos/include/krb5.h
-- and that is only found when --with-krb5=/usr/kerberos is specified.
I'm not sure what the proper fix for this is. Perhaps a test in
configure.in like this?
if test "$with_openssl" = yes ; then if test "$with_krb5" = no ; then AC_DEFINE(OPENSSL_NO_KRB5, 1, [Define to build
withOpenSSL but not Kerberos 5 support. (--with-openssl --without-krb5)]) fi
fi
Joe