The current python ebuild/version only works with db3, and even prefers that to db4 when both are installed. As there is a desire to make 1.4 db4 only this should be fixed
python 2.3 works with db-4. but yes, python-2.2.x specifically looks for db3 and does not work with db-4. i'm not sure what we can do about it apart from actually patching python.
Alistair, Can we build in db3 support _statically_, like we do w/ evo? Since Paul has managed to get db3 and db4 to coexist, I don't think we should let this effort hold up 1.4. I would like to see if we can eliminate db1, at least, however.
hmm .. i'd rather not build it statically, but i'll see what has changed between 2.2 and 2.3b1 to see if we can backport the changes. is this plan to make 1.4 db4 dependent for system packages only? or for all packages? i thought the fact taht paul got db-3 and db-4 to coexist meant we could safely fix deps on db-3 and not worry about db-4 creating problems.
I don't think a static db in python is the solution, it is also not necessary at all. Backporting should basically involve replacing the builtin db client lib with the one that is now allready included in 2.3.
it looks pretty non-trivial to backport the changes. the bsddb module was totally rewritten it seems. actually, more correctly, a dev-python/bsddb3 was merged into python-2.3 to provide support for db3 to db4 while the original db module was left behind for compatibility with db1.85. is this something that is urgently needed or can it sit on the back burner for a while?
I don't know. Also does python + the curent ebuild for bsddb3 provide the right functions that are needed. I don't know python. Also how bad is it to have a python without db support (and with bsddb3).
well, the bsddb is one of the included modules with the official python distribution, although it is possible to optionally turn it off (i think). it is just a matter of tweaking the configure script. i could envisage us turning off db support for building stages (eg. USE="build"). would that be a solution? i'm actually not sure what the difference is between the old bsddb module in python-2.2 and dev-python/bsddb3. i assume they have the same API and hence compatible. http://www.python.org/doc/current/lib/module-bsddb.html we're stuck here because i don't have the time to port the bsddb stuff from python-2.3 to python-2.2, and python-2.3 won't be out until july, and even then, it'll take a while for us to migrate to it (especially without reverse deps.)
alright, i committed a fixed db4 compat 2.2.3-r1, can you please test it? (its in package.mask right now)
It works for me, although I don't know whether I actually use any python programs that use bdb
i just tested it by opening some db3/db4 files like from evolution and it seems to work fine. something like this import bsddb d = bsddb.hashopen("/home/liquidx/evolution/local/Contacts/addressbook.db") d.keys() it seems to work fine for me. i'll take it out of package.mask after a little bit more testing. but i think this bug can be closed now.