You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.
setup.py jumps through hoops to detect gdbm, gdbm_compat, ndbm, and bdb (libdb) build dependencies. I propose to simplify our support matrix and detect all dependencies in configure.ac.
gdbmmodule.c uses gdbm_open() API, which is provided by gdbm.h and libgdbm
dbmmodule.c uses the dbm_open() API, which can be provided by a combination of headers and shared libraries.
gdbm/ndbm.h with libgdbm_compat
gdbm-ndbm.h with libgdbm_compat
ndbm.h with libgdbm_compat
ndbm.h with libndbm
db.h with libdb (lib-5.3 for over a decade)
setup.py makes some wrong assumption in regards of libgdbm. The shared library libgdbm does not provide the dbm_open() API on any system I tested. libgdbm_compat is always required. Linking with libgdbm is not needed. libgdbm_compat depends on and wraps libgdbm.
setup.py also performs additional steps to locate old versions of libdb-3.x and libdb-4.x. libdb-5.3 has been around for a decade. Even CentOS 7 and Debian oldoldstable ship with libdb version 5.3 and don't offer libdb version 4. I propose to remove support for libdb 4 and libdb 3.