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: