Heimdal 1.5.2 problem

Robert Simmons rsimmons0 at gmail.com
Tue May 22 04:34:54 UTC 2012

On Tue, May 15, 2012 at 12:51 PM, Robert Simmons <rsimmons0 at gmail.com> wrote:
> On Tue, May 15, 2012 at 5:46 AM, Dewayne Geraghty
> <dewayne.geraghty at heuristicsystems.com.au> wrote:
>> Thanks for the updates Robert.
>> I've pursued building heimdal on a custom FreeBSD9-Stable jail built without
>> crypto (openssl, heimdal,...); and forced the selection of bdb throughout the
>> range 5 to 41 via the following ports.conf setting
>> *: WITH_BDB_VER=5
>> ...
>> *: WITH_BDB_VER=41
>> Combined with
>> security/heimdal: PREFIX=/usr/local | WITH_CRACKLIB | WITHOUT_SQLITE | WITH_BDB
>> Only the databases/db41 builds heimdal to completion.  All others terminated
>> with
>> ------------------------
>> /var/ports/usr/ports/security/heimdal/work/heimdal-1.5.2/lib/com_err/.libs/libc
>> om_err.so /usr/local/lib/libintl.so /usr/local/lib/libiconv.so
>> /var/ports/usr/ports/security/heimdal/work/heimdal-1.5.2/lib/roken/.libs/librok
>> en.so ../../lib/sqlite/.libs/libheimsqlite.so ../../lib/roken/.libs/libroken.so
>> -lcrypt /usr/local/lib/libldap.so /usr/local/lib/libsasl2.so -lssl -lcrypto
>> /usr/local/lib/liblber.so -ldb  -O2 -O2 -march=prescott -mtune=prescott
>> -Wl,--version-script -Wl,./version-script.map -pthread   -pthread -Wl,-soname
>> -Wl,libhdb.so.11 -o .libs/libhdb.so.11
>> .libs/db3.o: In function `hdb_db_create':
>> db3.c:(.text+0x3a): multiple definition of `hdb_db_create'
>> .libs/db.o:db.c:(.text+0x15): first defined here
>> *** Error code 1
>> ------------------------
>> There was a change to /usr/ports/security/heimda/files with the addition of
>> patch patch-cf__db.m4, which I removed during one build attempt with db41. This
>> generated many more error messages
>> ------------------------
>> libtool: compile:  cc -DHAVE_CONFIG_H -I. -I. -I../../include -I../../include
>> -I../../lib/roken -I../../lib/roken -I../asn1 -I./../asn1 -I/usr/local/include
>> -DHDB_DB_DIR=\"/var/db/heimdal\" -I./../krb5 -I../../lib/sqlite
>> -I/usr/local/include -I/usr/local/include/db41 -D_LARGE_FILES= -Wall
>> -Wmissing-prototypes -Wpointer-arith -Wbad-function-cast -Wmissing-declarations
>> -Wnested-externs -O2 -pipe -pipe -O2 -g0 -ggdb0 -DSTRIP_FBSDID -UDEBUGGING
>> -UEBUGGING -I/usr/local/include/db41 -DLDAP_DEPRECATED -fno-strict-aliasing -MT
>> db.lo -MD -MP -MF .deps/db.Tpo -c db.c  -fPIC -DPIC -o .libs/db.o
>> db.c: In function 'DB_close':
>> db.c:48: error: too few arguments to function 'd->close'
>> db.c: In function 'DB_lock':
>> db.c:67: error: too few arguments to function 'd->fd'
>> db.c: In function 'DB_unlock':
>> db.c:80: error: too few arguments to function 'd->fd'
>> db.c: In function 'DB_seq':
>> db.c:104: error: 'DB' has no member named 'seq'
>> ...
>> ------------------------
>> Unfortunately this confirms that the heimdal 1.5.2 port doesn't build with bdb.
>> I'll advise later in the week, the result of my preferred build of heimdal over
>> ldap (over bdb5).
>> For completeness, FreeBSD9-Stable was updated yesterday (May 14) and the ports
>> tree was also updated and built on a virgin machine today (May 15).
> Yep.  That's exactly what I've found.  Also, as I have noted earlier,
> if you look at the output from configure during the building of the
> heimdal port, it builds db41 as a dependency, but configure does not
> find it!  The only version of BDB that configure finds is the one in
> the base OS which is 185!
> This port is totally borken as far as building with BDB backend support.
> I've reached out to the Heimdal mailing list for some assistance, and
> I will try to fix the problem myself and submit a patch to the port.
> I haven't been able to get the port maintainer to respond to queries
> about this problem, but he may just be very busy.

I have solved the problem.  There are a couple of problems, actually:

Heimdal 1.5.2 is incompatible with the version of BDB included in the
base FreeBSD system.  Also, the Makefile for the port has a few
mistakes which cause configure to find the OS's BDB no matter what.
These same mistakes cause configure to ignore BDB even if the port is
set to install BDB backend support.  Lastly, the default configuration
for this port builds no backend at all, and is therefore broken.

Here is a patch that corrects all the mistakes and sets BDB as the
default backend.  It also removes a dead mirror.

Can the list please review this patch for any mistakes that I've made?
-------------- next part --------------
--- ports/security/heimdal/Makefile.old	2012-05-20 16:19:39.000000000 -0400
+++ ports/security/heimdal/Makefile	2012-05-20 16:21:43.000000000 -0400
@@ -7,13 +7,12 @@
 PORTNAME=	heimdal
 CATEGORIES=	security ipv6
 MASTER_SITES=	http://www.h5l.org/dist/src/ \
 		http://ftp.pdc.kth.se/pub/heimdal/src/ \
 		ftp://ftp.pdc.kth.se/pub/heimdal/src/ \
-		ftp://ftp.sunet.se/pub/unix/admin/mirror-pdc/heimdal/src/ \
-		ftp://ftp.ayamura.org/pub/heimdal/
+		ftp://ftp.sunet.se/pub/unix/admin/mirror-pdc/heimdal/src/
 MAINTAINER=	Joerg.Pulz at frm2.tum.de
 COMMENT=	A popular BSD-licensed implementation of Kerberos 5
@@ -22,7 +21,7 @@
 OPTIONS=	IPV6	"Enable IPV6 support"				on \
 		KCM	"Enable Kerberos Credentials Manager"		on \
-		BDB	"Enable BerkeleyDB KDC backend support"		off \
+		BDB	"Enable BerkeleyDB KDC backend support"		on \
 		SQLITE	"Enable SQLite KDC backend support"		off \
 		LDAP	"Enable OpenLDAP KDC backend support"		off \
 		PKINIT	"Enable PK-INIT support"			on \
@@ -78,9 +77,9 @@
 CONFIGURE_ARGS+=	--with-berkeley-db=${LOCALBASE}
-#			--with-berkeley-db-include=${BDB_INCLUDE_DIR}
+			--with-berkeley-db-include=${BDB_INCLUDE_DIR}
-CONFIGURE_ARGS+=	--without-berkeley-db
+CONFIGURE_ARGS+=	--with-berkeley-db=no
 .if defined(WITH_SQLITE)

More information about the freebsd-ports mailing list