From Fedora Project Wiki
  • Primary contact: Jan Staněk <jstanek@redhat.com>
  • Category: research/implementation
  • Priority: medium
  • Status: open
  • Phase: initiation

Purpose

With introduction of BerkeleyDB (or libdb, as is the package named in Fedora) version 6, the license under which the code was shipped has changed to more restrictive one. This in turn affects a portion of other projects in Fedora, namely those which depends on libdb package and are themselves shipped under more permissive licenses than the new Berkeley DB one.

Licensing change details
Berkeley DB was previously licensed under combination of BSD, LGPLv2 and Sleepycat licenses. From version 6 the code is licensed under the GNU AGPL version 3 license.

The affected project either have to change their licenses to something compatible with GNU AGPL v3, or not use any version of libdb with the new license.

The main issue from Fedora's perspective is the situation, in which we would have to support two versions of libdb at once – one in version 5 for projects that are legally incompatible with version 6, and the other in version 6 or newer for projects that are compatible with the new licensing and depends on features not present in version 5. However, this situation was proved unsustainable, because it is technically not possible to force an application to use only the version it is legally allowed to. In other words, if both versions of libdb would be installed on a system, we cannot guarantee that an application legally compatible only with the older one would always use the older one and not the new one.

The proposed solution to this problem is to get rid of the libdb package from Fedora altogether. Most projects use the libdb only as an optional dependency and can be built and used without it. By doing this, we should avoid this legal minefield, at least until all the projects with license incompatibilities either solve those upstream, move to another database backend or have been replaced with something else.

Objectives

  • Scope: To remove the need of BerkeleyDB from Fedora, either by building the dependent projects without it and providing tools to migrate data, convincing and helping upstream to move to another DB backend, or by finding suitable replacement for projects which we are unable to use without it.
  • Time: As long as it takes

Benefits

  • No legal problems with using projects under incompatible licenses.
  • Sustainable ecosystem without the need of maintaining a fork of deprecated code for legal reasons.