[krbdev.mit.edu #7572] krb5 1.11 doesn't build on Solaris w/ Sun Studio, the first time. A re-make works
Mark Ashley via RT
rt-comment at krbdev.mit.edu
Wed Feb 20 22:52:19 EST 2013
Hey Greg,
Thanks for the follow up. It appears that Oracle has deprecated
BTREEINFO in its latest BDB versions.
Digging into the krb5 install guide:
--with-system-db
Use an installed version of the Berkeley DB package, which must
provide an API compatible with version 1.85. This option is
unsupported and untested. In particular, we do not know if the
database-rename code used in the dumpfile load operation will behave
properly. If this option is not given, a version supplied with the
Kerberos sources will be built and installed. (We are not updating
this version at this time because of licensing issues with newer
versions that we haven't investigated sufficiently yet.)
So it looks like the configure script could be enhanced to first hunt
for <db_185.h> when --with-system-db is used.
These perl replacement lines result in a full clean compile with what
I assume is the expected results.
cd /var/tmp
rm -rf krb5-1.11
untgz /usr/local/src/crypto/krb5-1.11.tar.gz
cd krb5-1.11/src
./configure --prefix=/usr/local \
--with-ldap \
--with-system-db \
--with-tcl=/usr/local \
--with-pkinit-crypto-impl=openssl \
--with-readline
/bin/perl -pe 's%<db.h>%<db_185.h>%' -i ./plugins/kdb/db2/policy_db.h
/bin/perl -pe 's%<db.h>%<db_185.h>%' -i ./plugins/kdb/db2/adb_openclose.c
/bin/perl -pe 's%<db.h>%<db_185.h>%' -i ./plugins/kdb/db2/kdb_db2.c
/bin/perl -pe 's%<db.h>%<db_185.h>%' -i ./plugins/kdb/db2/db2_exp.c
/bin/perl -pe 's%<db.h>%<db_185.h>%' -i ./plugins/kdb/hdb/kdb_hdb.c
/bin/perl -pe 's%<db.h>%<db_185.h>%' -i ./plugins/kdb/hdb/kdb_marshal.c
/bin/perl -pe 's%<db.h>%<db_185.h>%' -i ./plugins/kdb/hdb/kdb_windc.c
/bin/perl -pe 's%<db.h>%<db_185.h>%' -i ./kadmin/testing/util/bsddb_dump.c
/bin/perl -pe 's%<db.h>%<db_185.h>%' -i ./include/Makefile
gmake
gmake install
ta,
Mark.
My /usr/local/include/db.h:
#define DB_VERSION_STRING "Berkeley DB 4.8.30: (April 9, 2010)"
# grep BTREE /usr/local/include/*
/usr/local/include/db.h:struct __db_bt_stat; typedef struct
__db_bt_stat DB_BTREE_STAT;
/usr/local/include/db.h: DB_BTREE=1,
/usr/local/include/db.h:#define DB_BTREEVERSION 9 /*
Current btree version. */
/usr/local/include/db.h:#define DB_BTREEOLDVER 8 /*
Oldest btree version supported. */
/usr/local/include/db.h:#define DB_BTREEMAGIC 0x053162
/usr/local/include/db.h:#define DB_OK_BTREE 0x01
/usr/local/include/db_185.h:#define R_LAST 6
/* seq (BTREE, RECNO) */
/usr/local/include/db_185.h:#define R_PREV 9
/* seq (BTREE, RECNO) */
/usr/local/include/db_185.h:typedef enum { DB_BTREE, DB_HASH, DB_RECNO } DBTYPE;
/usr/local/include/db_185.h:#define BTREEMAGIC 0x053162
/usr/local/include/db_185.h:#define BTREEVERSION 3
/usr/local/include/db_185.h:} BTREEINFO;
/usr/local/include/kdb.h:#define KRB5_KDB_CREATE_BTREE 0x00000001
/usr/local/include/ldap.h:#define LDAP_URLEXT_X_SEARCHEDSUBTREEOID \
/usr/local/include/ldap.h:#define LDAP_URLEXT_X_SEARCHEDSUBTREE
"x-searchedSubtree"
/usr/local/include/ldap.h:#define LDAP_SCOPE_SUBTREE
((ber_int_t) 0x0002)
/usr/local/include/ldap.h:#define LDAP_SCOPE_SUB
LDAP_SCOPE_SUBTREE
On Wed, Feb 20, 2013 at 5:06 PM, Greg Hudson via RT
<rt-comment at krbdev.mit.edu> wrote:
> Your build was configured with --with-system-db, so plugins/kdb/db2/libdb2
> was not built, and <db.h> was taken from /usr/local/include or the system
> include path. If that system header does not defined BTREEINFO or
> HASHINFO, then the failure you observed is unsurprising. Those symbols
> are a documented part of the BDB interface at least as of 4.2.
More information about the krb5-bugs
mailing list