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).

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.

Regards,
Martin




Reply via email to