Subject: pkg/34917: Cyrus IMAPd and Heimdal GSSAPI problem (patch supplied)
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <j+nbsd@2006.salmi.ch>
List: pkgsrc-bugs
Date: 10/25/2006 21:20:01
>Number:         34917
>Category:       pkg
>Synopsis:       Cyrus IMAPd and Heimdal GSSAPI problem (patch supplied)
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Oct 25 21:20:01 +0000 2006
>Originator:     Jukka Salmi
>Release:        pkgsrc HEAD
>Environment:
NetBSD moray.salmi.ch 3.1_RC4 NetBSD 3.1_RC4 (LIBKVER) #0: Tue Jan 19 00:00:00 UTC 2038 root@localhost:/sys/arch/i386/compile/LIBKVER i386
>Description:
Due to a bug in Cyrus IMAPd's configure script GSSAPI/krb5 support is
not built correctly, at least not on a NetBSD 3.1 system using its
native Heimdal libraries.
>How-To-Repeat:
Using Cyrus IMAPd's krb5 authorisation module, try to use a Kerberos
V principal with an instance (e.g. user/admin@REALM) and notice imapd
logging

badlogin: [...] GSSAPI [SASL(-13): authentication failure: bad userid authenticated]

While building mail/cyrus-imapd, see configure correctly detecting
gssapi.h:

[...]
checking gssapi.h usability... no
checking gssapi.h presence... no
checking for gssapi.h... no
checking gssapi/gssapi.h usability... yes
checking gssapi/gssapi.h presence... yes
checking for gssapi/gssapi.h... yes
[...]
checking for gss_unwrap in -lgssapi... yes
checking GSSAPI... with implementation heimdal
[...]

but then inspect config.h and notice HAVE_GSSAPI_H not being defined...

Read this for more details:
http://thread.gmane.org/gmane.mail.imap.cyrus/24605/focus=24605
>Fix:
Defining HAVE_GSSAPI_H also if .../gssapi/gssapi.h was found seems to
fix the problem:
--- configure.orig	2006-10-25 21:45:46.000000000 +0200
+++ configure	2006-10-25 21:53:03.000000000 +0200
@@ -13460,7 +13460,9 @@
 
 fi
 if test $ac_cv_header_gssapi_gssapi_h = yes; then
-  :
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_GSSAPI_H
+_ACEOF
 else
   { echo "$as_me:$LINENO: WARNING: Disabling GSSAPI - no include files found" >&5
 echo "$as_me: WARNING: Disabling GSSAPI - no include files found" >&2;}; gssapi=no