- 1 Ship BerkleyDB backend as a module
- 1.1 Summary
- 1.2 Owner
- 1.3 Current status
- 1.4 Detailed Description
- 1.5 Benefit to Fedora
- 1.6 Scope
- 1.7 Upgrade/compatibility impact
- 1.8 How To Test
- 1.9 User Experience
- 1.10 Dependencies
- 1.11 Contingency Plan
- 1.12 Documentation
- 1.13 Release Notes
Ship BerkleyDB backend as a module
Change the openldap-servers package so that BDB and HDB backends are required to be dynamically loaded.
- Targeted release: Fedora 31
- Last updated: 2019-08-13
- Tracker bug: #1740811
- Release notes tracker: #377
So far the BDB and HDB were statically built with the slapd binary and merely declaring
database bdb or
database hdb would just work. Change introduces an additional requirement of explicitly declaring to load the backend's SO file according to the documentation of dynamic modules. The respective new modules will be shipped similarly to the rest of the already shipped modules.
This change is directed to conduct a smoother experience before the backends are removed in a next Fedora release. Current configurations using BDB or HDB backend would break, however are easily fixable by a single change; this is intentional as due to the upcoming removal of these backends users should be aware of the necessity to migrate to a different backend in a near future (see #User Experience for more).
Benefit to Fedora
A step on a way to remove unsupported (both by OpenLDAP and BerkleyDB upstream) piece of software.
- Proposal owners:
Change the SPEC file accordingly.
- Other developers: N/A (not a System Wide Change)
- Release engineering: #Releng issue number (a check of an impact with Release Engineering is needed)
- Policies and guidelines: N/A (not a System Wide Change)
- Trademark approval: N/A (not needed for this Change)
Server using BDB or HDB backends without modified configuration would fail to start. See User Experience section for more information.
How To Test
N/A (not a System Wide Change)
To remediate the impact of the change the systemd service file shipped with the package will contain a pre-start script which, in case the server is configured with BDB or HDB backend, will halt the startup and notify the user with a message describing what and why happened, and what steps to take to mitigate the issue.
If a user is using either BDB or HDB they have two options:
- migrate to the fully supported MDB backend (preferred)
- add a
moduleloadconfiguration declaration (discouraged)
Migrating to MDB
The steps required to migrate a database are following:
- Stop the slapd server.
- Export data to an LDIF file using slapcat.
- Change the server's configuration replacing the BDB/HDB sections with its MDB counterparts.
- Import data to a new database from the LDIF file using slapadd.
- Start the slapd server.
ModuleLoad the BDB/HDB backend
Depending on the configuration style and backend type, user should add a declaration in order to load the backend library: add option
moduleload (slapd.conf(5), section GLOBAL CONFIGURATION OPTIONS) or attribute
olcModuleLoad (slapd-config(5), section DYNAMIC MODULE OPTIONS) with value
- Contingency mechanism: Revert the change.
- Contingency deadline: Anytime.
- Blocks release? No.
- Blocks product? None.
N/A (not a System Wide Change)