From Fedora Project Wiki
(Deferred: https://pagure.io/fesco/issue/1846#comment-495872)
(prep for f29)
Line 24: Line 24:


== Summary ==
== Summary ==
OpenLDAP will not ship non-threaded versions of its libraries. Instead, it will link these to their threaded counterparts.
OpenLDAP will not ship non-threaded version of libldap. Instead, libldap will be built with the same threading support as libldap_r.
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. -->
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. -->


Line 45: Line 45:


== Current status ==
== Current status ==
* Targeted release: [[Releases/28 | Fedora 28 ]]  
* Targeted release: [[Releases/29 | Fedora 29 ]]  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
Line 58: Line 58:


== Detailed Description ==
== Detailed Description ==
After this change the non-threaded versions of OpenLDAP libraries will not be shipped any more. Instead, these file will rather symlink to their threaded representatives (i.e. libldap -> libldap_r, etc.). This has been previously discussed in [[https://bugzilla.redhat.com/show_bug.cgi?id=1370065 Bugzilla]] and other distributions where this change already happened. Upstream still supports non-threaded versions of their libraries as these might be used on processors where threads are not supported. However, when these two versions happen to be loaded at the same time (as discussed about Curl in the Bugzilla) symbol names overlap which may result in unpredictable behaviour. As the most convenient solution arises the one proposed hereby.
After this change the non-threaded version of libldap will not be shipped any more. Instead, this library will rather be built the same way as the threaded libldap_r. This has been previously discussed in [[https://bugzilla.redhat.com/show_bug.cgi?id=1370065 Bugzilla]] and other distributions where this change already happened. Upstream still supports non-threaded version of their library as it might be used on processors where threads are not supported. However, when these two versions happen to be loaded at the same time (as discussed about Curl in the Bugzilla) symbol names overlap which may result in unpredictable behaviour. Immediate solution would be to symlink libldap to libldap_r, however SONAME of the library would be the same, hence breaking dependencies of other packages. For that reason the solution hereby proposed should be the most convenient one.
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->


Line 66: Line 66:


== Scope ==
== Scope ==
* Proposal owners: update SPEC file so that some files are not shipped and replaced with appropriate symlinks.
* Proposal owners: update SPEC file so that non-threaded libldap is replaced with threaded one.
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


Line 91: Line 91:


== How To Test ==
== How To Test ==
Relevant .so files should be replaced with respective symlinks which should be present. Any applications linking to OpenLDAP libraries may test that their LDAP related functionality works.
libldap and libldap_r should export same symbols, obviously except for SONAME. Any applications linking to OpenLDAP libraries may test that their LDAP related functionality works.
<!-- This does not need to be a full-fledged document. Describe the dimensions of tests that this change implementation is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.  
<!-- This does not need to be a full-fledged document. Describe the dimensions of tests that this change implementation is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.  


Line 140: Line 140:
Release Notes are not required for initial draft of the Change Proposal but has to be completed by the Change Freeze.  
Release Notes are not required for initial draft of the Change Proposal but has to be completed by the Change Freeze.  
-->
-->
OpenLDAP does not ship non-threaded versions of its libraries any more. These files are now linked to their threaded counterparts and should continue to work.
OpenLDAP does not ship non-threaded version of libldap any more, libldap brings now the very same features libldap_r does.


[[Category:ChangePageIncomplete]]
[[Category:ChangePageIncomplete]]

Revision as of 22:54, 2 July 2018


OpenLDAP without Non-threaded Libraries

Summary

OpenLDAP will not ship non-threaded version of libldap. Instead, libldap will be built with the same threading support as libldap_r.

Owner

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

Current status

Detailed Description

After this change the non-threaded version of libldap will not be shipped any more. Instead, this library will rather be built the same way as the threaded libldap_r. This has been previously discussed in [Bugzilla] and other distributions where this change already happened. Upstream still supports non-threaded version of their library as it might be used on processors where threads are not supported. However, when these two versions happen to be loaded at the same time (as discussed about Curl in the Bugzilla) symbol names overlap which may result in unpredictable behaviour. Immediate solution would be to symlink libldap to libldap_r, however SONAME of the library would be the same, hence breaking dependencies of other packages. For that reason the solution hereby proposed should be the most convenient one.

Benefit to Fedora

No potential unexpected issues due to symbol overlap.

Scope

  • Proposal owners: update SPEC file so that non-threaded libldap is replaced with threaded one.
  • 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 same symbols, obviously except for SONAME. 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.
  • 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, libldap brings now the very same features libldap_r does.