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

Re: trouble with the python bindings

From: Jens-Uwe Mager <jum_at_anubis.han.de>
Date: 2003-03-06 00:17:30 CET

On Wed, Mar 05, 2003 at 01:59 +0000, rillian wrote:

> I've been trying to get cvs2svn to work, but keep getting the following
> database version error when it goes to commit the changesets after pass
> 4:
>
> >Traceback (most recent call last):
> > File "./cvs2svn.py", line 873, in ?
> > main()
> > File "./cvs2svn.py", line 870, in main
> > util.run_app(convert, ctx, start_pass=start_pass)
> > File "/usr/local/lib/svn-python/svn/util.py", line 38, in run_app
> > return apply(func, (pool,) + args, kw)
> > File "./cvs2svn.py", line 798, in convert
> > _passes[i](ctx)
> > File "./cvs2svn.py", line 709, in pass4
> > t_repos = repos.svn_repos_open(ctx.target, ctx.pool)
> >RuntimeError: bad database version: got 3.2.9, should be at least
> >4.0.14
>
> the rest of subversion runs fine, and does cvs2svn.py -n.
>
> I guess the python bindings are linking with the system db3 (or db2
> when I tried on an older system) instead of the db4 in
> /usr/local/BerkeleyDB.4.0. _repos.so is linked to both of them, and to
> gdbm.

I have found that this is due to the subversion shared libs linked
against the system db lib instead of what was specified with the
--with-berkeley-db switch of configure. This does not affect the main
programs of subversion as they have an exact reference to the proper db
lib so it does not happen. But if you have a main program that does not
use Berkeley DB like python the reference in the subversion shared
libraries is used instead, which is the wrong one. The reason appears to
be libtool which does put -L /lib and -L /usr/lib before the user
supplied -L arguments, effectively prohibiting the user to override
system shared libraries with other ones in user directories. I have no
idea how to fix this, this 5000 line shell script monster is beyond what
I can handle. I did work around this problem by editing the generated
subversion makefile to replace sequences of -ldb with
/path/to/db-4.0.14/lib/libdb-4.0.la, which is a libtool config file for
linking in the proper version of the db library.

-- 
Jens-Uwe Mager	<pgp-mailto:F476EBC2>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Mar 6 00:18:22 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.