From Fedora Project Wiki

Task for volunteers

Complexity: approx. 20h

Contact person: Honza Horak <hhorak AT redhat.com>

Description: libdb (Berkeley DB) has become incompatible since version 6 for many projects that uses it as embedded library, because it changed license to AGPLv3.

In Fedora we decided that we'll try to port as many packages that use libdb as possible and port those to some other implementation. The most compatible seems to be lmdb, other possibilities are gdbm (GPLv3+), tokyocabinet (GPLv2+) and some others.

The aim of this task is to choose any of the packages that use libdb and prepare a patch that will allow to use one of the implementations above. Ideally the embedded backend could be chosen during build (configure parameter), so there might be quite few new #IF macros in the code. During the implementation, think about practical consequences of changing the backend and document possible issues.

If possible the implementation should be consulted with upstream of the project you wanna port to lmdb.

Some tips:

  • Components that use libdb can be listed using repoquery --whatrequires 'libdb-5.3.so()(64bit)'.
  • Please, check, if the upstream of the selected component has not already started with porting to some other implementation than libdb or if the component already offers to build with different backend.

Expected result: patch file that adds lmdb support into some project