OpenLDAP without Non-threaded Libraries - Fedora 33 System-Wide Change proposal

2020-06-30 Thread Ben Cotton
https://fedoraproject.org/wiki/Changes/OpenLDAPwithoutNonthreadedLibraries

== 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: [[User:mhonek|Matus Honek]]
* Email: mho...@redhat.com

== 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.
* Release engineering: [https://pagure.io/releng/issue/7253]
* 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.

== Documentation ==
Please, follow [[https://bugzilla.redhat.com/show_bug.cgi?id=1370065 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.


-- 
Ben Cotton
He / Him / His
Senior Program Manager, Fedora & CentOS Stream
Red Hat
TZ=America/Indiana/Indianapolis
___
devel-announce mailing list -- devel-announce@lists.fedoraproject.org
To unsubscribe send an email to devel-announce-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org


OpenLDAP without Non-threaded Libraries - Fedora 33 System-Wide Change proposal

2020-06-30 Thread Ben Cotton
https://fedoraproject.org/wiki/Changes/OpenLDAPwithoutNonthreadedLibraries

== 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: [[User:mhonek|Matus Honek]]
* Email: mho...@redhat.com

== 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.
* Release engineering: [https://pagure.io/releng/issue/7253]
* 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.

== Documentation ==
Please, follow [[https://bugzilla.redhat.com/show_bug.cgi?id=1370065 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.


-- 
Ben Cotton
He / Him / His
Senior Program Manager, Fedora & CentOS Stream
Red Hat
TZ=America/Indiana/Indianapolis
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org