[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

configure fails to find Berkeley DB (subversion 1.0.0)

From: <terry_at_eatoni.com>
Date: 2004-02-29 05:42:15 CET

Hi all.

I've just downloaded the source tarball of subversion 1.0.0 and tried
to build it. Getting Berkeley DB to be located properly is beyond me -
or at least beyond my bed time. I've just spent 3 hours on it. A
summary of what I've tried is below.

Thanks for any help.

Regards,
Terry Jones.

---
This is all under Mandrake 9.2.
Following the INSTALL instructions, I ran
  $ ./configure --enable-maintainer-mode
which finished with a message telling me Berkeley DB could not be
located:
  The Subversion filesystem library, part of the server, requires
  Berkeley DB version 4.0.14 or newer, which you don't seem to have
  installed and linked to APR-UTIL.  We have created makefiles which
  will build the Subversion client code only, and skip the server.  You
  can find latest version of Berkeley DB at http://www.sleepycat.com/.
  You can find the latest version of Berkeley DB here:
    http://www.sleepycat.com/download/index.shtml
(note the repeated & slightly differing DB URLs mentioned above).
So I grabbed the latest Berkeley DB (4.2.52) and installed it
(allowing make install to put it in /usr/local):
  /usr/local $ ls -la BerkeleyDB.4.2
  total 24
  drwxr-xr-x    6 root     root         4096 Feb 29 02:36 .
  drwxr-xr-x   14 root     root         4096 Feb 29 02:36 ..
  drwxr-xr-x    2 root     root         4096 Feb 29 02:36 bin
  drwxr-xr-x   10 root     root         4096 Feb 29 02:36 docs
  drwxr-xr-x    2 root     root         4096 Feb 29 02:36 include
  drwxr-xr-x    2 root     root         4096 Feb 29 02:36 lib
Re-running configure didn't help (I got the same message about not
finding Berkeley DB). Using --with-berkeley-db=/usr/local/BerkeleyDB.4.2
also didn't help.
Am I doing something silly here? The output of configure shows it
going to look for Berkeley DB. config.log shows that the test program
isn't even compiling though:
  configure:8818: checking for availability of Berkeley DB
  configure:8882: gcc -o conftest -g -O2  -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -p
  thread  -DNEON_ZLIB  -I/home/terry/s/net/subversion-1.0.0/apr-util/include -I/usr/local/BerkeleyDB.4.2/include   -DLINU
  X=2 -D_REENTRANT -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE     -L/usr/local/BerkeleyDB.4.2/lib con
  ftest.c  -L/usr/local/BerkeleyDB.4.2/lib -ldb1  >&5
  configure:8849: warning: return type defaults to `int'
  configure:8849: warning: function declaration isn't a prototype
  configure: In function `main':
  configure:8852: warning: implicit declaration of function `db_version'
  configure:8856: error: `DB_VERSION_MAJOR' undeclared (first use in this function)
  configure:8856: error: (Each undeclared identifier is reported only once
  configure:8856: error: for each function it appears in.)
  configure:8857: error: `DB_VERSION_MINOR' undeclared (first use in this function)
  configure:8857: error: `DB_VERSION_PATCH' undeclared (first use in this function)
  configure:8858: warning: implicit declaration of function `exit'
  configure:8885: $? = 1
  configure: program exited with status 1
  configure: failed program was:
And it looks like the culprit is in apr-util/include/apu_want.h, which contains
#include <db1/db.h>
and this is pulling in the wrong db.h (from my
/usr/include/db1/db.h). The configure output shows it (I guess)
winding up believing it should use db1:
  checking checking for Berkeley DB 4.1 in /usr/local/BerkeleyDB.4.2... 
  checking db4/db.h usability... no
  checking db4/db.h presence... no
  checking for db4/db.h... no
  checking db.h usability... yes
  checking db.h presence... yes
  checking for db.h... yes
  checking for db-4.1... no
  checking db4/db.h usability... no
  checking db4/db.h presence... no
  checking for db4/db.h... no
  checking db.h usability... yes
  checking db.h presence... yes
  checking for db.h... yes
  checking for db4... no
  checking db4/db.h usability... no
  checking db4/db.h presence... no
  checking for db4/db.h... no
  checking db.h usability... yes
  checking db.h presence... yes
  checking for db.h... yes
  checking for db... no
  checking checking for Berkeley DB 4.0 in /usr/local/BerkeleyDB.4.2... 
  checking db4/db.h usability... no
  checking db4/db.h presence... no
  checking for db4/db.h... no
  checking db.h usability... yes
  checking db.h presence... yes
  checking for db.h... yes
  checking for db-4.0... no
  checking db4/db.h usability... no
  checking db4/db.h presence... no
  checking for db4/db.h... no
  checking db.h usability... yes
  checking db.h presence... yes
  checking for db.h... yes
  checking for db4... no
  checking db4/db.h usability... no
  checking db4/db.h presence... no
  checking for db4/db.h... no
  checking db.h usability... yes
  checking db.h presence... yes
  checking for db.h... yes
  checking for db... no
  checking checking for Berkeley DB 3 in /usr/local/BerkeleyDB.4.2... 
  checking db3/db.h usability... no
  checking db3/db.h presence... no
  checking for db3/db.h... no
  checking db.h usability... yes
  checking db.h presence... yes
  checking for db.h... yes
  checking for db3... no
  checking db3/db.h usability... no
  checking db3/db.h presence... no
  checking for db3/db.h... no
  checking db.h usability... yes
  checking db.h presence... yes
  checking for db.h... yes
  checking for db... no
  checking checking for Berkeley DB 2 in /usr/local/BerkeleyDB.4.2... 
  checking db2/db.h usability... no
  checking db2/db.h presence... no
  checking for db2/db.h... no
  checking db.h usability... yes
  checking db.h presence... yes
  checking for db.h... yes
  checking for db_open in -ldb2... no
  checking db2/db.h usability... no
  checking db2/db.h presence... no
  checking for db2/db.h... no
  checking db.h usability... yes
  checking db.h presence... yes
  checking for db.h... yes
  checking for db_open in -ldb... no
  checking checking for Berkeley DB 1.0.0 in /usr/local/BerkeleyDB.4.2... 
  checking db1/db.h usability... yes
  checking db1/db.h presence... yes
  checking for db1/db.h... yes
  checking for dbopen in -ldb1... yes
    setting APRUTIL_INCLUDES to "-I/usr/local/BerkeleyDB.4.2/include"
    setting APRUTIL_LDFLAGS to "-L/usr/local/BerkeleyDB.4.2/lib"
  checking for Berkeley DB... found db1
Why, oh why, does configure not just go straight for /usr/local/BerkeleyDB.4.2
like it was so nicely told? Argh.
---
I've since gone into the apr and apr-util dirs and run configure and
make in these, including using --with-berkeley-db to try to help
things along. I added ./apr and ./apr-util to my PATH and re-did
configure in the main subversion directory. Same output.
I'll dig into it more on Monday if no-one can tell me what's going on.
I've attached a .bz2 of my config.log


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Received on Sun Feb 29 05:41:37 2004

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.