info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CVS+GSSAPI (Kerb5)


From: Derek Robert Price
Subject: Re: CVS+GSSAPI (Kerb5)
Date: Mon, 24 Sep 2001 11:53:11 -0400

"John W. Warner" wrote:

> Ok,
>
> Ok, I'm using Solaris 2.8. MIT K5 1.2.1 (binary distribution). More
> specifically, krb5-1.2.1-sparc-sun-solaris2.6.tar
>
> I am finding the libraries and headers fine now.
>
> checking for krb.h...
> checking for krb_get_err_text... no
> checking for GSSAPI
> checking for gssapi.h... yes
> checking for gssapi/gssapi.h... yes
> checking for krb5.h... yes
> checking for GSSAPI... yes

The "yes" here, by virtue of not being a path, means that the autodetect
code found your Krb5 headers in the default include path.  We've had
problems with Solaris before because it is distributed with the Krb5
headers installed by default, but not the libraries.  So, the autodetect
code, and thus the compiler, could be finding the Solaris headers rather
than the MIT K5 ones.  Try configuring with
`--with-gssapi=<path_to_MIT_K5>'.


> However, I get the follwing error when compiling;
>
> make[3]: Entering directory `/home/root/projects/cvs/ccvs/src'
> source='client.c' object='client.o' libtool=no \
> depfile='.deps/client.Po' tmpdepfile='.deps/client.TPo' \
> depmode=gcc /bin/sh ../depcomp \
> gcc -DHAVE_CONFIG_H -I. -I. -I.. -I. -I../lib -I../diff -I../zlib
> -Iyes/include    -g -O2 -c `test -f client.c || echo './'`client.c
> client.c: In function `connect_to_gserver':
> client.c:4246: `GSS_C_NT_HOSTBASED_SERVICE' undeclared (first use in
> this function)
> client.c:4246: (Each undeclared identifier is reported only once
> client.c:4246: for each function it appears in.)
> make[3]: *** [client.o] Error 1
>
> The gssapi.h file does not contain a reference to
> GSS_C_NT_HOSTBASED_SERVICE

Again, _which_ gssapi.h?  You'll notice in config.h.in, config.h, and
acinclude.m4:

/* Define to an alternative value if GSS_C_NT_HOSTBASED_SERVICE isn't
defined
in the gssapi.h header file.  MIT Kerberos 1.2.1 requires this.  Only
relevant
when using GSSAPI. */

If GSS_C_NT_HOSTBASED_SERVICE didn't get defined by configure in your
config.h, then the configure script either found the string in one of the
files, or didn't find one of its known alternatives.  Ah, here it is, it
found it:


> checking for GSS_C_NT_HOSTBASED_SERVICE... yes
>

So, again, the autodetect code probably found the Solaris headers.


> The code in ccvs src/client.c refers to xgssapi.h. Shouldn't it refer to
> gssapi.h instead?

The file is lib/xgssapi.h.  I include it rather than including all the
GSSAPI headers directly to consolidate and hide some of the #ifdef
<HEADER_EXISTS> magic that was appearing repetively in various source files
and complicating maintenance.


> #  nm -A *.a | grep gss_nt_service_name
> libgssapi_krb5.a:gssapi_generic.o:000000000000003c D gss_nt_service_name
> libgssapi_krb5.a:gssapi_generic.o:0000000000000044 D
> gss_nt_service_name_v2
> libgssapi_krb5.a:oid_ops.o:                 U gss_nt_service_name
> libgssapi_krb5.a:oid_ops.o:                 U gss_nt_service_name_v2
> libgssapi_krb5.a:import_name.o:                 U gss_nt_service_name
> libgssapi_krb5.a:import_name.o:                 U gss_nt_service_name_v2
> libgssapi_krb5.a:inq_names.o:                 U gss_nt_service_name
> libgssapi_krb5.a:inq_names.o:                 U gss_nt_service_name_v2
> libgssrpc.a:auth_gssapi.o:                 U gss_nt_service_name

Yep.  Looks like MIT K5.  The dir you want to pass to configure with
--with-gssapi= should be the dir you were in when you did that `nm' minus
the `/lib' part.

Derek




reply via email to

[Prev in Thread] Current Thread [Next in Thread]