From Fedora Project Wiki
(Submitted to FESCo)
(Change approved by FESCo)
Line 45: Line 45:


== Current status ==
== Current status ==
[[Category:ChangeReadyForFesco]]
[[Category:ChangeAcceptedF33]]
[[Category:SystemWideChange]]
[[Category:SystemWideChange]]
* Targeted release: [[Releases/33 | Fedora 33 ]]  
* Targeted release: [[Releases/33 | Fedora 33 ]]  

Revision as of 15:58, 16 July 2020


OpenLDAP without Non-threaded Libraries

Summary

OpenLDAP will not ship non-threaded version of libldap. Instead, symlinks will be provided for runtime libraries to keep working, and all software built with libldap will be effectively built with libldap_r.

Owner

  • Name: Matus Honek
  • Email: mhonek@redhat.com
  • Release notes owner:

Current status

Detailed Description

For historical reasons OpenLDAP is currently shipped with two libraries which provide the very same functionality, differing only in support for multi-threading. If these are both loaded in the same runtime this may lead to unpredictable behaviour due to identical symbol naming. Upstream ceased from supporting the non-threaded variant in the next major release, however in the current stable version it is still supported as it might be used on processors where threads are not supported.

After this change the non-threaded version of the library (libldap) will not be shipped any more. Instead, this library will rather be linked to its threaded counterpart (libldap_r). The runtime symlinks will be moved to a separate openldap-compat subpackage so that any package linked with libldap (i.e. not libldap_r) will be clearly indentifiable by this "new" dependency. The openldap-devel package will provide libldap.so as a symlink to libldap_r.so so that all rebuilt packages are linked to the same library. Initial mass rebuild is anticipated to discover potential build issues as well as to eliminate the actual issues caused by both libraries being loaded at the same time.

Benefit to Fedora

No potential unexpected issues caused by symbol overlap.

Scope

  • Proposal owners: update SPEC file as described in the Detailed Description.
  • Other developers: None. Issues should not occur.
  • Policies and guidelines: None.
  • Trademark approval: (not needed for this Change)

Upgrade/compatibility impact

No issues should occur.


How To Test

libldap and libldap_r should export the same symbols. Any applications linking to OpenLDAP libraries may test that their LDAP related functionality works.

User Experience

User should not notice anything.

Dependencies

None.


Contingency Plan

  • Contingency mechanism: Revert the change in OpenLDAP's SPEC file and rebuild it. Any packages succesfully rebuilt after the SPEC change are expected to be working properly, and if not they shall be rebuilt after the SPEC revert.
  • Contingency deadline: beta freeze.
  • Blocks release? No.
  • Blocks product? No.

Documentation

Please, follow [this bug] for more insights.


Release Notes

OpenLDAP does not ship non-threaded version of libldap any more, and it is seamlessly replaced by the threaded libldap_r. No additional action from development should be required.