[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
Mon May 27 02:58:36 EDT 2013


Following up, given the amount of new changes required...

To compile 1.11.2 on Solaris with Sun Studio 12.3 compiler:


    setenv CC "cc"
    setenv CXX "CC"
    setenv CC "cc -xtarget=ultra -m64 -xcode=pic32"
    setenv CXX "CC -xtarget=ultra -m64 -xcode=pic32"

    setenv LD_RUN_PATH "/usr/local/lib:/lib:/usr/lib"
    setenv LD_RUN_PATH "/usr/local/lib:/lib/64:/usr/lib/64:/lib:/usr/lib"

    setenv LDFLAGS "-I/usr/local/include -R/usr/local/lib -L/usr/local/lib
-lintl"
    setenv CFLAGS "-I/usr/local/include -R/usr/local/lib -L/usr/local/lib"
    setenv CPPFLAGS "-I/usr/local/include -R/usr/local/lib -L/usr/local/lib"

    cd /var/tmp
    rm -rf /krb5 krb5-1.11.2
    untgz /usr/local/src/crypto/krb5-1.11.2.tar.gz
    cd krb5-1.11.2/src
    setenv DB_LIB "-L/usr/local/lib -ldb-4"
    setenv DB_HEADER db_185.h
    setenv CFLAGS "-DUSE_INTERP_RESULT"
    setenv LDAP_LIBS "-L/usr/local/lib -lldap -llber"
    /bin/perl -pe 's%^DB_LIB\s+=%DB_LIB=\@DB_LIB\@%' -i
plugins/kdb/db2/Makefile.in
    /bin/perl -pe 's%^KDB5_DB_LIB\s+=%KDB5_DB_LIB=\@KDB5_DB_LIB\@%' -i
plugins/kdb/db2/Makefile.in
    /bin/perl -pe 's%LDAP_LIBS=%LDAP_LIBS="-L/usr/local/lib -lldap -llber
"%' -i configure
    /bin/perl -pe 's%"-lcrypto%"-L/usr/local/lib -lcrypto %' -i configure
    /bin/perl -pe 's%=-lcrypto%="-L/usr/local/lib -lcrypto" %' -i configure
    ./configure --prefix=/usr/local \
        --with-ldap \
        --with-system-db \
        --with-tcl=/usr/local \
        --with-pkinit-crypto-impl=openssl \
        --with-readline
    gmake
    gmake install

ta,
Mark.
http://www.ibiblio.org/pub/packages/solaris/sparc/




On Thu, Feb 21, 2013 at 3:06 PM, Mark Ashley <mark at ibiblio.org> wrote:

> Or simply: (per TFM =) )
>
>     cd /var/tmp
>     rm -rf /krb5 krb5-1.11
>     mkdir /krb5
>     untgz /usr/local/src/crypto/krb5-1.11.tar.gz
>     cd krb5-1.11/src
>     setenv DB_HEADER db_185.h
>     ./configure --prefix=/krb5 \
>         --with-ldap \
>         --with-system-db \
>         --with-tcl=/usr/local \
>         --with-pkinit-crypto-impl=openssl \
>         --with-readline
>     gmake
>     gmake install
>
> This compiles fine as well.
>
> ta,
> Mark.
>
>
> On Thu, Feb 21, 2013 at 2:51 PM, Mark Ashley <mark at ibiblio.org> wrote:
> > 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