[Python-Dev] Including BSDDB3
Barry A. Warsaw
barry@zope.com
Mon, 7 Jan 2002 22:41:50 -0500
>>>>> "MvL" == Martin v Loewis <martin@v.loewis.de> writes:
MvL> What do people think about including bsddb3 in Python 2.3,
MvL> along with deprecating the existing bsddb module? You'll find
MvL> the package at
MvL> http://pybsddb.sourceforge.net/
+1, for several reasons.
- Robin's done a great job with the module. It feels quite solid and
reliable. I've used it quite a bit working on Berkeley storage for
ZODB/Zope.
- Berkeley support in 2.2 is broken -- at least the setup.py rules
are. On my stock, but stocked Mandrake 8.1 system, bsddbmodule
never links right and the standard setup.py always deletes it
because oflink problems. Fixing this is on My List, although I'd
prefer to work with pybsddb.
- I've talked to the Sleepycat guys, and if we wanted to, we could
provide the Berkeley libraries with our distros with no licensing
problems. Using Berkeley through the pybsddb binding is perfectly
legal for any programs using them through Python.
- It'd be great if we actually provided bsddb1, bsddb2, bsddb3 (and
bsddb4?) modules which compile against the older libraries so
databases written with any version could be accessed in Python.
Maybe that's not exactly the right way to do it, but I don't think
Python should be limited to just one version of Berkeley db. I've
no idea what the default ought to be -- there's no clear winner.
MvL> It would come as a bsddb3 package, which acts
MvL> interface-compatible with the current bsddb module. Various
MvL> submodules give access to more advanced features.
I often "import bsddb3 as bsddb".
MvL> The main rationale for dropping bsddb is that it still relies
MvL> on the db_185.h interface, which will be phased out sooner or
MvL> later. Existance of this interface, in turn, results in
MvL> problems with anydbm:
As mentioned above, I can see reasons for wanting to access any
version of Berkeley db.
-Barry