This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author christian.heimes
Recipients christian.heimes
Date 2021-11-08.10:27:28
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1636367248.6.0.316133977839.issue45747@roundup.psfhosted.org>
In-reply-to
Content
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.
History
Date User Action Args
2021-11-08 10:27:28christian.heimessetrecipients: + christian.heimes
2021-11-08 10:27:28christian.heimessetmessageid: <1636367248.6.0.316133977839.issue45747@roundup.psfhosted.org>
2021-11-08 10:27:28christian.heimeslinkissue45747 messages
2021-11-08 10:27:28christian.heimescreate