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

ndbm is a mess



I tried grabbing the current gdbm and db packages.  We have a problem
with ndbm.  When H.J.Lu still maintained these, we had discussed that
db should not be used to emulate ndbm, but that gdbm should.  But the
current packages have reverted.  Now db is installing the
/usr/include/ndbm.h and gdbm is not installing any ndbm.h.

Background:
  db is not a good replacement for ndbm because of two serious
  incompatibilities:
1) ndbm uses two files called .dir and .pag.  Many apps know this.  db
   uses one file called .db.

2) db is missing one of the locking calls that ndbm has.

Gdbm does not suffer from either of these difficiencies.

We need the following:

1) db must install in /usr/include/db.  If you have an application
   that you know will work with db, then you simply do
   -I/usr/include/db and -ldb.

2) gdbm must install it's ndbm.h (with prototypes) in /usr/include.
   libndbm.xxx is symlinked to libgdbm.xxx.  

3) gdbm should be built with flock turned off.  flock is not
   compatible with fcntl locking (if gdbm locks the file with flock
   and your app uses fcntl you lose.)  Since fcntl locking is POSIX we
   should prefer it.  Unfortunately, gdbm-1.7.3 builds out-of-the-box
   with flock, so you must manually edit the autoconf.h.


Reply to: