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.

