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

issue: BDB linking of python bindings

From: Michael Kefeder <michael.kefeder_at_directanddigital.at>
Date: 2003-03-14 11:49:40 CET

Hi

When i install subversion i have to modify the Makefile to get the swig-py
bindings to work, because they get linked to BDB 3.3 and(!?) 4.1.

There are 2 subversion machines i have, both are running RedHat Linux 7.3
and i run following commands on install:

$ sh ./autogen.sh
$ ./configure --with-berkeley-db=/usr/local/BerkeleyDB.4.1 --with-ssl
$ make clean
$ make
# make install
$ make swig-py
# make install-swig-py

All commands succeed without errors. After installing Subversion it works
w/o problems, but the python bindings don't. When i try to use them, e.g.
with viewcvs they raise an error "RuntimeError: bad database version: got
3.3.11, should be at least 4.0.14". What i need to do is change the -ldb
flags to -ldb-4 where they appear in the Makefile, then the bindings work.
./configure seems to check for -ldb4 and -ldb but not -ldb-4 maybe that's
the problem?

IMO the naming scheme of the BDB libs suck anyway because version 1 and 2
are named libdb1, libdb2 but version 3 and up seem to be named like
libdb-3.x with a symlink to libdb-3 and libdb. At least that's what i found
on my machine.

What i'd like to know is:
Is there anybody on the list having the same problem?
Would it be okay for you to check for db-4 too in ./configure?

Basically that is no real problem for me, but i'm too lazy to edit the
Makefile on every update ;) and i wanted to report it so that others with
the same problem may find that post helpful.
Yours
 Mike

p.s.: here's the ldd output of one of the python modules before and after
the -ldb-4 change, interestingly both are linked against BDB 4.1 but only
the second works because it's not linked against BDB 3:

$ ldd /usr/local/lib/svn-python/svn/_fs.so
        libsvn_fs-1.so.0 => /usr/local/lib/libsvn_fs-1.so.0 (0x4000b000)
        libswigpy.so => /usr/local/lib/libswigpy.so (0x40027000)
        libsvn_swig_py-1.so.0 => /usr/local/lib/libsvn_swig_py-1.so.0
(0x4002b000)
        libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
        libsvn_delta-1.so.0 => /usr/local/lib/libsvn_delta-1.so.0
(0x4003e000)
        libsvn_subr-1.so.0 => /usr/local/lib/libsvn_subr-1.so.0 (0x40047000)
        libaprutil-0.so.0 => /usr/local/apache2/lib/libaprutil-0.so.0
(0x40063000)
        libgdbm.so.2 => /usr/lib/libgdbm.so.2 (0x40078000)
        libdb-3.3.so => /lib/libdb-3.3.so (0x4007e000)
        libexpat.so.0 => /usr/lib/libexpat.so.0 (0x4010d000)
        libapr-0.so.0 => /usr/local/apache2/lib/libapr-0.so.0 (0x4012c000)
        libm.so.6 => /lib/i686/libm.so.6 (0x40148000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x4016a000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x40198000)
        libdl.so.2 => /lib/libdl.so.2 (0x401ad000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
        libdb-4.1.so => /usr/local/BerkeleyDB.4.1/lib/libdb-4.1.so
(0x401b0000)

$ ldd /usr/local/lib/svn-python/svn/_fs.so
        libsvn_fs-1.so.0 => /usr/local/lib/libsvn_fs-1.so.0 (0x4000b000)
        libswigpy.so => /usr/local/lib/libswigpy.so (0x40027000)
        libsvn_swig_py-1.so.0 => /usr/local/lib/libsvn_swig_py-1.so.0
(0x4002b000)
        libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
        libsvn_delta-1.so.0 => /usr/local/lib/libsvn_delta-1.so.0
(0x4003e000)
        libsvn_subr-1.so.0 => /usr/local/lib/libsvn_subr-1.so.0 (0x40047000)
        libaprutil-0.so.0 => /usr/local/apache2/lib/libaprutil-0.so.0
(0x40063000)
        libgdbm.so.2 => /usr/lib/libgdbm.so.2 (0x40078000)
        libdb-4.1.so => /usr/local/BerkeleyDB.4.1/lib/libdb-4.1.so
(0x4007e000)
        libexpat.so.0 => /usr/lib/libexpat.so.0 (0x4011b000)
        libapr-0.so.0 => /usr/local/apache2/lib/libapr-0.so.0 (0x4013a000)
        libm.so.6 => /lib/i686/libm.so.6 (0x40156000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x40178000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x401a6000)
        libdl.so.2 => /lib/libdl.so.2 (0x401bb000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Mar 14 14:24:14 2003

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

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