[DRAFT] Ship BerkleyDB backend as a module
Summary
Change the *openldap-servers* package so that BDB and HDB backends are required to be dynamically loaded.
Owner
- Name: Matus Honek
- Email: mhonek (at) redhat (dot) com
- FESCo shepherd: Shehperd name <email address>
Current status
- Targeted release: Fedora 31
- Last updated: 2019-06-19
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
Detailed Description
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.
Benefit to Fedora
A step on a way to remove unsupported (both by OpenLDAP and BerkleyDB upstream) piece of software.
Scope
- 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)
Upgrade/compatibility impact
N/A (not a System Wide Change)
How To Test
N/A (not a System Wide Change)
User Experience
If a user is using either BDB or HDB they have two options:
- migrate to the fully supported MDB backend (preferred)
- add a *moduleload* configuration 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 removing the BDB/HDB sections and add a new MDB section
- 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 *back_bdb* and/or *back_hdb*.
Dependencies
N/A (not a System Wide Change)
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? N/A (not a System Wide Change), Yes/No
- Blocks product? product
Documentation
N/A (not a System Wide Change)