[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#197875: python2.3: module dbm is missing



"Martin v. Löwis" writes:
> Matthias Klose wrote:
> > Next thing to investigate, if the archives generated by the gdbm
> > implementation are binary compatible with the ones created by the
> > libdb1 implementation...
> 
> Most definitely not: gdbm produces a different binary format than
> db1 (which is BDB 1.85). Traditionally, the 'dbm' module would
> produce what is the "native" dbm format of the system. On Linux,
> this depends on the distribution; if Debian was using db1 all along,
> it should either continue to do so, or drop the dbm module
> altogether.
> 
> If people need access to BDB 1.85 database files, in Python 2.3,
> they should best use the bsdb185 module; the distributor should
> guarantee that this is always built against BDB 1.85 (or a library
> that emulates not only the BDB 1.85 API, but also the BDB on-disk
> format, such as Sleepycat BSDDB 2).

emulating the BDB 1.85 API can be done using the db_185.h header of
the libdb4.1-dev package, not sure about the BDB on-disk format.

Is there a similiar workaround for 2.2.3? Of course the bsddb185
module could be backported.

> > at least gdbmmodule.c reads: "Please note that the file formats
> > created by GDBM and dbm are incompatible." Or are the files
> > compatible, if gdbm is used via the gdbm-ndbm.h interface?
> 
> They are really incompatible. The OP might not care about on-disk
> compatibility if the API compatibility is provided, but given past
> experience, I'd advise not to silently link dbm.so against a different
> ndbm implementation.

ok.

what about deprecating the use of the dbm module upstream for 2.3?

	Matthias



Reply to: