databases/evolution-data-server build fails on FreeBSD 10 with new Heimdal

Don Lewis truckman at FreeBSD.org
Thu May 17 01:42:56 UTC 2012


>Submitter-Id:	current-users
>Originator:	Don Lewis
>Organization:	FreeBSD project
>Confidential:	no
>Synopsis:	databases/evolution-data-server build fails on FreeBSD 10 with new Heimdal
>Severity:	serious
>Priority:	medium
>Category:	ports
>Class:		sw-bug
>Release:	FreeBSD 10.0-CURRENT i386
>Environment:
System: FreeBSD scratch.catspoiler.org 10.0-CURRENT FreeBSD 10.0-CURRENT #6: Tue May 15 14:19:58 PDT 2012 dl at scratch.catspoiler.org:/usr/obj/usr/src/sys/GENERIC SMB i386


>Description:

The databases/evolution-data-server port fails to build on FreeBSD 10 since
Heimdel was upgraded to 1.5.1.

  CC     libcamel_provider_1_2_la-camel-sasl-gssapi.lo
In file included from camel-sasl-gssapi.c:51:
/usr/include/gssapi.h:3:2: warning: #warning "this file includes <gssapi.h> which is deprecated, use <gssapi/gssapi.h> instead"
camel-sasl-gssapi.c: In function 'gssapi_set_exception':
camel-sasl-gssapi.c:157: error: implicit declaration of function 'error_message'
camel-sasl-gssapi.c:157: warning: nested extern declaration of 'error_message'
camel-sasl-gssapi.c:157: warning: assignment makes pointer from integer without a cast
gmake[4]: *** [libcamel_provider_1_2_la-camel-sasl-gssapi.lo] Error 1
gmake[4]: Leaving directory `/usr/ports/databases/evolution-data-server/work/evolution-data-server-2.32.1/camel'

The problem is that <com_err.h>, which declares error_message(), is not being
included.  The reason for that problem is that the port's configure test
for this header is failing because <com_err.h> includes <com_right.h>, which
uses size_t in the function prototype for com_right_r(), but size_t has not
been declared because the compile test for this header doesn't include
<sys/types.h>.

The com_err(3) man page imported with the new Heimdel distribution says
that the proper list of includes is:

     #include <stdio.h>
     #include <stdarg.h>
     #include <krb5/com_err.h>

though com_err.h is still being installed directly under /usr/include in
FreeBSD 10.  It appears that this relies on <stdio.h> defining size_t.

>How-To-Repeat:

Attempt to build the port on a recent version of FreeBSD 10.

>Fix:

The configure script should probably be enhanced to handle the new Heimdel
version, but that is probably best handled upstream.  The following patch
uses config.cache to bypass the test for <com_err.h> and just force it
to be included.

Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/databases/evolution-data-server/Makefile,v
retrieving revision 1.84
diff -u -u -r1.84 Makefile
--- Makefile	23 Sep 2011 22:21:32 -0000	1.84
+++ Makefile	17 May 2012 01:14:45 -0000
@@ -38,7 +38,8 @@
 CONFIGURE_ARGS=	--enable-static \
 		--enable-gnome-keyring=yes \
 		--with-openldap=yes \
-		--with-libdb=${LOCALBASE}
+		--with-libdb=${LOCALBASE} \
+		-C
 CPPFLAGS+=	-I${LOCALBASE}/include -I${BDB_INCLUDE_DIR} ${PTHREAD_CFLAGS}
 LDFLAGS+=	-L${LOCALBASE}/lib ${PTHREAD_LIBS}
 
--- /dev/null	2012-05-16 18:35:04.000000000 -0700
+++ files/patch-config.cache	2012-05-16 18:14:18.000000000 -0700
@@ -0,0 +1,4 @@
+--- /dev/null	2012-05-16 18:11:00.000000000 -0700
++++ config.cache	2012-05-16 18:13:49.000000000 -0700
+@@ -0,0 +1 @@
++ac_cv_header_com_err_h=yes


More information about the freebsd-gnome mailing list